SystemModelLinearize

SystemModelLinearize[model]

gives a linearized StateSpaceModel for model at an equilibrium.

SystemModelLinearize[model,op]

linearizes at the operating point op.

Details and Options

  • SystemModelLinearize gives a linear approximation of model near an operating point.
  • A linear model is typically used for control design, optimization and frequency analysis.
  • A system with equations and output equations is linearized at an operating point and that should satisfy f(0,x0,u0)0.
  • The returned linear StateSpaceModel has state , input and output , with state equations and output equation . The matrices are given by , , , and , all evaluated at , and .
  • SystemModelLinearize[model] is equivalent to SystemModelLinearize[model,"EquilibriumValues"].
  • Specifications for op use the following values for the operating point:
  • "InitialValues"initial values from model
    "EquilibriumValues"FindSystemModelEquilibrium[model]
    sim or {sim,"StopTime"}final values from SystemModelSimulationData sim
    {sim,"StartTime"}initial values of sim
    {sim,time}values at time from sim
    {{{x1,x10},},{{u1,u10},}}state values xi0 and input values ui0
  • The simulation sim can be obtained using SystemModelSimulate[model,All,].
  • SystemModelLinearize linearizes a system of DAEs symbolically, or first reduces it to a system of ODEs and linearizes the resulting ODEs numerically.
  • The following options can be given:
  • Method Automaticmethods for linearization algorithm
    ProgressReporting $ProgressReportingcontrol display of progress
  • The option Method has the following possible settings:
  • "NumericDerivative"reduces to ODEs and then linearizes numerically
    "SymbolicDerivative"linearizes symbolically from a system of DAEs
  • Method{"SymbolicDerivative","ReduceIndex"False} turns off index reduction.

Examples

open allclose all

Basic Examples  (3)

Linearize a DC-motor model around an equilibrium:

Linearize a mixing tank model around equilibrium with given state and input constraints:

Linearize one of the included introductory hierarchical examples:

Scope  (19)

Model Types  (5)

Linearize a textual RLC circuit model:

Linearize an RLC circuit block diagram model:

Linearize an acausal RLC circuit:

Linearize a DAE model:

Linearize a DAE model symbolically:

Limiting Cases  (3)

Linearize a model without inputs:

Linearize a model without states:

Linearize a model without outputs:

Linearization Values  (5)

Linearize around an equilibrium:

Linearize around initial values:

Linearize around equilibrium with given state and input constraints:

Linearize around equilibrium with state constraints:

Linearize around given partial states and inputs, using initial values for remaining values:

Operating Point  (6)

Linearize around an equilibrium:

Linearize around initial values:

Linearize around equilibrium with given state and input constraints:

Linearize around initial values from a simulation:

Linearize around final values from a simulation:

Linearize around final values from a simulation run to steady state:

Generalizations & Extensions  (1)

Hide labels in the resulting StateSpaceModel:

Options  (5)

Method  (4)

The "SymbolicDerivative" method uses a fully specified operating point from a simulation:

The "NumericDerivative" method uses an operating point specified by state and input values:

Linearizing symbolically allows keeping some parameters symbolic:

Use "ReduceIndex" to turn off index reduction when linearizing symbolically:

Turning off index reduction results in a descriptor StateSpaceModel:

ProgressReporting  (1)

Control progress reporting with ProgressReporting:

Applications  (10)

Analyzing Linearized System  (5)

Compare responses from a model and its linearization at an equilibrium point:

Linearize around the equilibrium point:

Compare the stationary output response with a nonlinear model:

Compare the y1 output:

Test the stability of a linearized system from eigenvalues of the system matrix:

Since there is an eigenvalue with a positive real part, the system is unstable:

Plotting the output response also indicates an unstable system:

Test the stability of a linearized system from poles of the transfer function:

Since there is a pole with a positive real part, the system is unstable:

Do a frequency analysis using a linear model:

By plotting TemplateBox[{{H, (, {ⅈ,  , omega}, )}}, Abs] for the linearized transfer function :

Verify the result using Fourier on simulated data:

Compute TemplateBox[{{H, (, {ⅈ,  , omega}, )}}, Abs] from :

Alternatively, the imaginary parts of the eigenvalues give the resonance peaks:

Linearization takes place at time 0:

Linearize with the switch connecting at time 0:

If the switch is not connected at time 0, the result is different:

Controller Design for Linearized System  (5)

Design a PID controller using a linearized model:

Define a PID controller and closed-loop transfer function:

Select PID parameters for appropriate step response:

Design a lead-based controller for a DC motor based on its linearization:

Define a PI-lead controller transfer function:

Open-loop transfer function:

Select controller parameters:

Use selected parameters and close the loop with the PI-lead controller:

Design a controller using pole placement:

Place the closed-loop poles:

Compute the closed-loop state-space model:

Show the step response:

Design an LQ controller:

Define state and input weight matrices:

Define LQ controller gain:

Closed-loop state-space model:

Closed-loop step response:

Design a state estimator:

Compute estimator gains and the estimator state-space model:

The state and output response to a unit step on the inputs:

Observer state response:

Compare each state and its estimate:

Properties & Relations  (8)

Linearize around initial values using properties from SystemModel:

Compare results:

Linearize around equilibrium using FindSystemModelEquilibrium:

Compare results:

Compare responses from a model and its linearization at an equilibrium point:

Linearize around the equilibrium point:

Compare the stationary output response with a nonlinear model:

Compare the first output:

Compare responses from a model and its linearization at a non-equilibrium point:

Linearize around the given point:

Compare the stationary output response with a nonlinear model:

Get the output equations:

Compute the stationary output:

Compare the first output:

Use TransferFunctionModel to convert to a transfer function representation:

Use ToDiscreteTimeModel to discretize a linearized model:

Discretize using sample time 0.10:

The linearized state-space model is not unique:

Change the order in which the variables x1 and x2 are declared:

The models are equivalent and have identical transfer functions:

StateSpaceModel can linearize systems of ordinary differential equations:

Use approximate numeric parameter values:

Use SystemModelLinearize to linearize a SystemModel of the same system:

Create a NonlinearStateSpaceModel from the equations and compare with the SystemModel:

Possible Issues  (1)

Some models cannot be linearized symbolically:

Use "NumericDerivative" to linearize numerically:

Wolfram Research (2018), SystemModelLinearize, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemModelLinearize.html (updated 2020).

Text

Wolfram Research (2018), SystemModelLinearize, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemModelLinearize.html (updated 2020).

CMS

Wolfram Language. 2018. "SystemModelLinearize." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/SystemModelLinearize.html.

APA

Wolfram Language. (2018). SystemModelLinearize. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SystemModelLinearize.html

BibTeX

@misc{reference.wolfram_2024_systemmodellinearize, author="Wolfram Research", title="{SystemModelLinearize}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/SystemModelLinearize.html}", note=[Accessed: 24-April-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_systemmodellinearize, organization={Wolfram Research}, title={SystemModelLinearize}, year={2020}, url={https://reference.wolfram.com/language/ref/SystemModelLinearize.html}, note=[Accessed: 24-April-2024 ]}