Skip to main content
Engineering LibreTexts

1.10: Linearization of Nonlinear Models

  • Page ID
    17750
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    In systems analysis, we come across both linear and nonlinear models of physical systems. The concept of linearity can be explained by expressing the system behavior as a mathematical function: \(y=f(x)\). Next, let the input comprise a weighted sum of two components as: \(x=\alpha x_1+\beta x_2;\) then, a linear system model obeys the law of superposition: \[f\left(\alpha x_1+\beta x_2\right)=\alpha f\left(x_1\right)+\beta f(x_2).\]

    Graphically, the input-output plot for a linear system is a straight line passing through the origin. Further, if the input-output behavior is a straight line that does not pass through origin, a simple change of variables can be employed to include the origin in the input-output graph.

    The behavior of a nonlinear system at a given operating point, \(x=x_0\), is approximated by plotting a tangent line to the graph of \(f\left(x\right)\) at that point. Linearization of a nonlinear model involves first-order Taylor series expansion of the nonlinear function about a designated equilibrium point, i.e., the point where the time derivative is zero. The state variables for the linear model are selected as deviations of the original variables relative to the equilibrium point.

    For example, model of a simple pendulum model described by the dynamic equation: \[ml^{2} \ddot{\theta }(t)+mgl\; \sin \theta (t)=T(t),\] where \(\theta (t)\) is the pendulum angle, \(T(t)\) is the applied torque; \(m,l\) represent the mass and the length of the pendulum, and \(g\) is the gravitational constant. Using \((\theta ,\; \omega )\) as state variables, the nonlinear pendulum model is expressed in state variable form as: \[\frac

    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[4]/span[7]/span, line 1, column 1
    
    {{\rm d}t} \left(\begin{array}{c} {\theta } \\ {\omega } \end{array}\right)=\left(\begin{array}{c} {\omega } \\ {-\frac{g}{l} \sin \theta } \end{array}\right)+\left(\begin{array}{c} {0} \\ {T(t)} \end{array}\right).\] Two equilibrium points are identified in the case of a simple pendulum: \(\theta _
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[4]/span[8]/span, line 1, column 1
    
    =0^{\circ } ,\; 180^{\circ }\)
    . The Jacobian matrix for the simple pendulum is expressed as: \(\left[\frac{\partial f}{\partial x}\right]=\)\(\left(\begin{array}{cc} {0} & {1} \\ {-\frac{g}{l} \cos \theta \; } & {0} \end{array}\right)\). The linearized models, defined at the two equilibrium points: \(\theta _
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[4]/span[11]/span, line 1, column 1
    
    =0^{\circ } ,\; 180^{\circ }\)
    , are given as: \[{\theta }_e=0{}^\circ : \frac
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[4]/span[12]/span, line 1, column 1
    
    {{\rm d}t} \left[\begin{array}{c} {\theta } \\ {\omega } \end{array}\right]=\left[\begin{array}{cc} {0} & {1} \\ {-\frac{g}{l} } & {0} \end{array}\right]\left[\begin{array}{c} {\theta } \\ {\omega } \end{array}\right]+\left[\begin{array}{c} {0} \\ {1} \end{array}\right]T(t)\]

    \[{\theta }_e=180{}^\circ : \frac

    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[5]/span[1]/span, line 1, column 1
    
    {{\rm d}t} \left[\begin{array}{c} {\theta } \\ {\omega } \end{array}\right]=\left[\begin{array}{cc} {0} & {1} \\ {\frac{g}{l} } & {0} \end{array}\right]\left[\begin{array}{c} {\theta } \\ {\omega } \end{array}\right]+\left[\begin{array}{c} {0} \\ {1} \end{array}\right]T(t)\] The output equation in both cases is given as: \(\theta \left(t\right)=\left[ \begin{array}{cc} 1 & 0 \end{array} \right]\left[ \begin{array}{c} \theta \\ \omega \end{array} \right]\).

    To generalize, we assume that the nonlinear state variable model of a single-input single-output (SISO) system is described by the following state and output equations: \[\dot{x}(t)=f(x,u)\] \[y(t)=g(x,u),\] In the above, \(x\) is a vector of state variables, \(u\) is a scalar input variable, \(y\) is a scalar output variable, \(f\) is a vector function of the state and input variables, and \(g\) is a scalar function of those variables.

    We assume that a stationary point for the model is defined by: \(f(x_

    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[1]/span[1], line 1, column 1
    
    ,u_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[1]/span[2], line 1, column 1
    
    )=0\). Next, we express the deviations from the stationary point as: \(x(t)=x_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[2]/span[1], line 1, column 1
    
    (t)+\delta x(t);\, \, \, u(t)=u_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[2]/span[2], line 1, column 1
    
    (t)+\delta u(t)\)
    . Then, using \(\delta x,\delta u\) as the new state and input variables, the linearized model is expressed as: \[\dot{\delta }x(t)=\left[\partial f_{i} /\partial x_{j} \right]|_{(x_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[4]/span[1], line 1, column 1
    
    ,u_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[4]/span[2], line 1, column 1
    
    )} \delta x(t)+\left[\partial f_{i} /\partial u\right]|_{(x_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[4]/span[3], line 1, column 1
    
    ,u_
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[7]/span[4]/span[4], line 1, column 1
    
    )} u(t)\]
    \[y(t)=\left[\partial g/\partial x_{j} \right]|_{(x_{e} ,u_{e} )} \delta x(t)+\left[\partial g/\partial u\right]|_{(x_{e} ,u_{e} )} \delta u(t),\] where \([\partial f_{i} /\partial x_{j} ]\) is a Jacobian matrix of partial derivatives; \([\partial f_{i} /\partial u],[\partial g/\partial x_{j} ]\) are vectors of partial derivatives, and \([\partial g/\partial u]\) is a scalar partial derivative, where all derivatives are computed at the stationary point.

    The linearized model is expressed in its familiar vector-matrix form as: \[\dot{\delta }x(t)=A\delta x(t)+bu(t)\] \[y(t)=c^

    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[8]/span[2]/span, line 1, column 1
    
    \delta x(t)+d\delta u(t).\] In the above description, \(A\) represents an \(n\times n\) system matrix, \(b\) is a \(n\times 1\) column vector of input distributions, \(c^
    ParseError: invalid DekiScript (click for details)
    Callstack:
        at (Courses/University_of_Arkansas_Little_Rock/Introduction_to_Control_Systems_(Iqbal)/01:_Mathematical_Models_of_Physical_Systems/1.10:_Linearization_of_Nonlinear_Models), /content/body/p[8]/span[7]/span, line 1, column 1
    
    \)
    is a \(1\times n\) row vector of output contributions, and d is a scalar feed through term.

    Finally, the above linearization process described for a SISO system can be generalized in the case of multi-input multi-output (MIMO) systems (see references).


    1.10: Linearization of Nonlinear Models is shared under a not declared license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?