Feedback linearization: Difference between revisions

Content deleted Content added
removed Category:Control theory using HotCat remove redundant parent cat
 
(17 intermediate revisions by 15 users not shown)
Line 1:
{{short description|Approach used in controlling nonlinear systems}}
{{NoMore footnotes|date=May 2009}}
 
[[File:Feedback linearization.svg|thumb|Block diagram illustrating the feedback linearization of a nonlinear system]]
 
'''Feedback linearization''' is a common approachstrategy usedemployed in controlling [[nonlinear systemscontrol]]. Theto approach involves coming up with a transformation of thecontrol [[nonlinear system into an equivalent linear system through a change of variables and a suitable control inputsystems]]. Feedback linearization techniques may be applied to nonlinear control systems of the form
 
{{NumBlk|:|<math>\dot{x}(t) = f(x(t)) + \sum_{i=1}^{m}\,g_i(x(t))\,u_i(t)</math><ref>{{cite book |last1=Isidori |first1=Alberto |title=Nonlinear Control Systems |date=1995 |publisher=Springer-Verlag London |isbn=978-1-4471-3909-6 |page=5 |edition=Third}}</ref>|{{EquationRef|1}}}}
:<math>\begin{align}\dot{x} &= f(x) + g(x)u \qquad &(1)\\
y &= h(x) \qquad \qquad \qquad &(2)\end{align}</math>
 
where <math>x(t) \in \mathbb{R}^n</math> is the state vector, <math>uu_1(t), \ldots, u_m(t) \in \mathbb{R}^p</math> isare the vectorinputs. The approach involves transforming a nonlinear control system into an equivalent linear control system through a change of inputs,variables and a suitable control input. In particular, one seeks a change of coordinates <math>yz = \inPhi(x)</math> and control input <math>u = a(x) + b(x)\mathbb{R}^m,v,</math> isso that the vectordynamics of outputs.<math>x(t)</math> Thein goalthe iscoordinates to<math>z(t)</math> develop take the form of a linear, controllable control inputsystem,
:<math>u = a(x) + b(x)v\,</math>
that renders a linear input&ndash;output map between the new input <math>v</math> and the output. An outer-loop control strategy for the resulting linear control system can then be applied.
 
{{NumBlk|:|<math>\dot{z}(t) = A\,z(t) + \sum_{i=1}^{m} b_i\,v(t).</math><ref>H. Nijmeijer and A. van der Shaft, Nonlinear Dynamical Control Systems, Springer-Verlag, p. 163, 2016.</ref>|{{EquationRef|2}}}}
 
that renders a linear input&ndash;output map between the new input <math>v</math> and the output. An outer-loop control strategy for the resulting linear control system can then be applied to achieve the control objective.
== Feedback Linearization of SISO Systems ==
 
== Feedback Linearizationlinearization of SISO Systemssystems ==
 
Here, consider the case of feedback linearization of a single-input single-output (SISO) system. Similar results can be extended to multiple-input multiple-output (MIMO) systems. In this case, <math>u \in \mathbb{R}</math> and <math>y \in \mathbb{R}</math>. The objective is to find a coordinate transformation <math>z = T(x)</math> that transforms the system (1) into the so-called [[Normal form (abstract rewriting)|normal form]] which will reveal a feedback law of the form
{{NumBlk|:|<math>u = a(x) + b(x)v\,</math><ref>{{cite book |last1=Isidori |first1=Alberto |title=Nonlinear Control Systems |date=1995 |publisher=Springer-Verlag London |isbn=978-1-4471-3909-6 |page=147 |edition=Third}}</ref>|{{EquationRef|3}}}}
:<math>u = a(x) + b(x)v\,</math>
that will render a linear input&ndash;output map from the new input <math>v \in \mathbb{R}</math> to the output <math>y</math>. To ensure that the transformed system is an equivalent representation of the original system, the transformation must be a [[diffeomorphism]]. That is, the transformation must not only be invertible (i.e., bijective), but both the transformation and its inverse must be [[smooth function|smooth]] so that differentiability in the original coordinate system is preserved in the new coordinate system. In practice, the transformation can be only locally diffeomorphic, butand the linearization results only hold in this smaller region.
 
Several tools are required to solve this problem.
Line 26 ⟶ 27:
 
:<math>\begin{align}
\dot{y} = \frac{\mathrm{d}h(x)}mathord{\mathrmoperatorname{d}t} &=\frac{\mathrm{d}h(x)}{\mathrmmathord{\operatorname{d}x}\dot{xt}\\
&= \frac{\mathrm{d}partial h(x)}{\mathrm{d}partial x}f(x) + \fracdot{\mathrm{d}h(x)}{\mathrm{d}x}g(x)u\
&= \frac{\partial h(x)}{\partial x}f(x) + \frac{\partial h(x)}{\partial x}g(x)u
\end{align}</math>
 
Now we can define the [[Lie derivative]] of <math>h(x)</math> along <math>f(x)</math> as,
 
:<math>L_{f}h(x) =\triangleq \frac{\mathrm{d}partial h(x)}{\mathrm{d}partial x}f(x),</math>
 
and similarly, the Lie derivative of <math>h(x)</math> along <math>g(x)</math> as,
 
:<math>L_{g}h(x) =\triangleq \frac{\mathrm{d}partial h(x)}{\mathrm{d}partial x}g(x).</math>
 
With this new notation, we may express <math>\dot{y}</math> as,
Line 44 ⟶ 46:
Note that the notation of Lie derivatives is convenient when we take multiple derivatives with respect to either the same vector field, or a different one. For example,
 
:<math>L_{f}^{2}h(x) = L_{f}L_{f}h(x) = \frac{\mathrm{d}partial (L_{f}h(x))}{\mathrm{d}partial x}f(x),</math>
 
and
 
:<math>L_{g}L_{f}h(x) = \frac{\mathrm{d}partial (L_{f}h(x))}{\mathrm{d}partial x}g(x).</math>
 
=== Relative degree ===
Line 128 ⟶ 130:
\end{bmatrix}.</math>
 
So, with the appropriate choice of <math>kK</math>, we can arbitrarily place the closed-loop poles of the linearized system.
 
=== Unstable zero dynamics ===
 
Feedback linearization can be accomplished with systems that have relative degree less than <math>n</math>. However, the normal form of the system will include [[zero dynamics]] (i.e., states that are not [[observable]] from the output of the system) that may be unstable. In practice, unstable dynamics may have deleterious effects on the system (e.g., it may be dangerous for internal states of the system to grow unbounded). These unobservable states may be controllable or at least stable, and so measures can be taken to ensure these states do not cause problems in practice. [[Minimum phase]] systems provide some insight on zero dynamics.
 
== Feedback linearization of MIMO systems ==
Although NDI is not necessarily restricted to this type of system, lets consider a nonlinear MIMO system that is affine in input <math>\mathbf{\mathbf{u}}</math>, as is shown below.
{{NumBlk|:|
<math>
\begin{aligned}
\dot{\mathbf{x}} &= \mathbf{f}(\mathbf{x}) + G(\mathbf{x})\mathbf{u}\\
\mathbf{y} &= \mathbf{h}(\mathbf{x})
\end{aligned}
</math>
|{{EquationRef|4}}}}
 
It is assumed that the amount of inputs is the same as the amount of outputs. Lets say there are <math>m</math> inputs and outputs. Then <math>G = [\mathbf{g}_1 \, \mathbf{g}_2 \, \cdots \, \mathbf{g}_m]</math> is an <math>n\times m</math> matrix, where <math>\mathbf{g}_j</math> are the vectors making up its columns. Furthermore, <math>\mathbf{u}\in \mathbb{R}^m</math> and <math>\mathbf{y}\in \mathbb{R}^m</math>. To use a similar derivation as for SISO, the system from Eq. 4 can be split up by isolating each <math>i</math>'th output <math>y_i</math>, as is shown in Eq. 5.
 
{{NumBlk|:|
<math>
\begin{aligned}
\dot{\mathbf{x}} &= \mathbf{f}(\mathbf{x}) + \mathbf{g}_1(\mathbf{x}) u_1 + \mathbf{g}_2(\mathbf{x}) u_2 + \cdots + \mathbf{g}_m(\mathbf{x}) u_m\\
y_i &= h_i(\mathbf{x})
\end{aligned}
</math>
|{{EquationRef|5}}}}
 
Similarly to SISO, it can be shown that up until the <math>(r_i-1)</math>’th derivative of <math>y_i</math>, the term <math>L_{g_j} h_i (\mathbf{x}) = 0</math>. Here <math>r_i</math> refers to the relative degree of the <math>i</math>'th output. Analogously, this gives
 
{{NumBlk|:|
<math>
\begin{aligned}
y_i =& h_i(\mathbf{x})\\
\dot{y}_i =& L_fh_i(\mathbf{x})\\
\ddot{y}_i =& L_f^2h_i(\mathbf{x})\\
&\vdots\\
y_i^{(r_i)} =& L_f^{r_i}h_i(\mathbf{x}) + \sum^m_{j=1} L_{g_j}L_f^{r_i-1}h_i(\mathbf{x})u_j\\
=& L_f^{r_i}h_i(\mathbf{x}) +
\begin{bmatrix}
L_{g_1}L_f^{r_i-1}h_i &
L_{g_2}L_f^{r_i-1}h_i&
\cdots&
L_{g_m}L_f^{r_i-1}h_i
\end{bmatrix} \mathbf{u}
\end{aligned}
</math>
|{{EquationRef|6}}}}
 
Working this out the same way as SISO, one finds that defining a virtual input <math>v_i</math> such that
{{NumBlk|:|
<math>
\begin{aligned}
v_i &= L_f^{r_i}h_i(\mathbf{x}) + \sum^m_{j=1} L_{g_j}L_f^{r_i-1}h_i(\mathbf{x})u_j\\
&= b_i(\mathbf{x}) +
\begin{bmatrix}
a_{i1} & a_{i1} & \cdots& a_{im}
\end{bmatrix} \mathbf{u}
\end{aligned}
</math>
|{{EquationRef|7}}}}
linearizes this <math>i</math>'th system. However, if <math>m>1</math>, <math>\mathbf{u}</math> can obviously not be solved given a value for <math>v_i</math>. However, setting up such an equation for all <math>m</math> outputs, <math>y_1,y_2,\ldots,y_m</math>, results in <math>m</math> equations of the form shown in Eq. 7. Combining these equation results in a matrix equation, which generally allows solving for the input <math>\mathbf{u}</math>, as is shown below.
{{NumBlk|:|
<math>
\begin{aligned}
\mathbf{v} &= \mathbf{b} + A \mathbf{u}\\
A^{-1} (\mathbf{v}-\mathbf{b}) &= \mathbf{u}
\end{aligned}
</math>
|{{EquationRef|8}}}}
 
== See also ==
Line 141 ⟶ 208:
* A. Isidori, ''Nonlinear Control Systems,'' third edition, Springer Verlag, London, 1995.
* H. K. Khalil, ''Nonlinear Systems,'' third edition, Prentice Hall, Upper Saddle River, New Jersey, 2002.
* M. Vidyasagar, ''Nonlinear Systems Analysis'', second edition, Prentice Hall, Englewood Cliffs, New Jersey, 1993.
* B. Friedland, ''Advanced Control System Design'', Facsimilefacsimile edition, Prentice Hall, Upper Saddle river, New Jersey, 1996.
{{refend}}
 
==References==
{{Reflist}}
 
== External links ==
* {{Scholarpedia|title=Feedback linearization|urlname=Feedback_linearization|date=2009|curator=Fabio Celani and Alberto Isidori|accessdate=31 December 2022}}
* [http://wwwwww2.ece.osuohio-state.edu/~passino/lab5prelabnlc.pdf ECE&nbsp;758: Modeling and Nonlinear Control of a Single-link Flexible Joint Manipulator]&nbsp;&ndash; Gives explanation and an application of feedback linearization.
* [http://www2.ece.ohio-state.edu/~passino/lab5_nonlinear_ball_tube_ex.pdf ECE&nbsp;758: Ball-in-Tube Linearization Example]&nbsp;&ndash; Trivial application of linearization for a system already in normal form (i.e., no coordinate transformation necessary).
* [[Wolfram language]] functions to do [http://reference.wolfram.com/language/ref/FeedbackLinearize.html feedback linearization], compute [http://reference.wolfram.com/language/ref/SystemsModelVectorRelativeOrders.html relative orders], and determine [http://wolfram.com/xid/0dbi23tfa58uxj73eu-ve3iy4 zero dynamics].