Main Content

Compute Uncertain State-Space Models from Simulink Models

When you have the Simulink® Control Design™ software, you can compute an uncertain linearization, i.e., an uncertain state-space model (uss) combining the uncertain variables with linearized dynamics. Use the uss model to perform linear analysis and robust control design.

You can compute an uncertain linearization in one of the following ways:

Obtain Uncertain State-Space Model from Simulink Model

To obtain an uncertain state-space model from a model that contains Uncertain State Space blocks, use the following steps:

Note

If you do not have Uncertain State Space blocks in the model but still want to obtain an uncertain state-space model, see Specify Uncertain Linearization for Core or Custom Simulink Blocks.

  1. (Prerequisite) Create or open the Simulink model.

  2. (Prerequisite) In the Simulink model, specify the linearization input and output points using Simulink Control Design getlinio or linio commands. For more information, see Specify Portion of Model to Linearize (Simulink Control Design).

  3. (Prerequisite) If you have not already done so, specify uncertainty in the Simulink model as described in Specify Uncertainty Using Uncertain State Space Blocks.

    Note

    The software does not evaluate the uncertain variables during linearization. Thus, the value of the uncertainty does not affect the linearization.

  4. Run ulinearize to compute an uncertain linearization. This command returns an uss model.

    Note

    If you use the Simulink Control Design linearize (Simulink Control Design) command, the Uncertain State Space blocks linearize to their nominal value.

For more information on linearization and how to evaluate the results, see Linearization Basics (Simulink Control Design).

For an example of how to use the Simulink Control Design linearize (Simulink Control Design) command, see Linearization of Simulink Models with Uncertainty.

Specify Uncertain Linearization for Core or Custom Simulink Blocks

In some cases, you cannot use Uncertain State Space blocks in the Simulink model because you share the model or generate code. You can still account for uncertainty in your linear analysis without specifying uncertainty using Uncertain State Space blocks. Robust Control Toolbox™ lets you specify a core or custom Simulink block to linearize to an uncertain variable. The linearization produces an uncertain state-space uss model. The specified uncertainty associates only with the block and does not affect the model simulation. For more information, see Specify Block Linearization Using MATLAB Expression (Simulink Control Design).

Note

If you have Uncertain State Space blocks in the model and want to obtain an uncertain state-space model, see Obtain Uncertain State-Space Model from Simulink Model.

To specify blocks to linearize to uncertain variables and obtain an uncertain state-space model:

  1. (Prerequisites) Create or open the Simulink model. Specify linearization input and output points using the Simulink Control Design getlinio or linio commands.

  2. In your model, specify a block to linearize to an uncertain variable.

    1. Right-click the block and select Linear Analysis > Specify Selected Block Linearization.

      Simulink model canvas with right-click menu displayed on a block

      This action opens the Block Linearization Specification dialog box.

      Block Linearization Specification dialog box showing the block linearization specified as a MATLAB expression, plant * (1 + wt * input_unc)

    2. In the Block Linearization Specification dialog box, select Specify block linearization using one of the following: to specify an uncertain variable for linearization.

      The drop-down menu defaults to MATLAB Expression in the drop-down menu. This option lets you specify the block to linearize to an uncertain variable using a MATLAB® expression containing Robust Control Toolbox functions. To learn more about the options, see Specify Block Linearization Using MATLAB Expression (Simulink Control Design).

    3. In the Enter an expression to specify the linearization of the Simulink block field, enter an expression, which must evaluate to an uncertain variable or uncertain model, such as ureal, umat, ultidyn, umargin, or uss.

      Block Linearization Specification dialog box showing the block linearization specified as the MATLAB expression ss(ureal('a',-5),5,1,1)

    4. Click OK to save the changes.

      Note

      You can also specify a block to linearize to an uncertain variable at the command line. For an example, see Linearize Simulink Block to Uncertain Model.

  3. Run the linearize command to compute an uncertain linearization. This command returns an uss model.

For more information on linearization and how to validate linearization results, see Linearization Basics (Simulink Control Design).

For an example of how to use the linearize command to compute an uncertain linearization, see Linearization of Simulink Models with Uncertainty.

Using Uncertain Linearization for Analysis or Control Design

After computing an uncertain linearization, you can perform any analysis or design tasks you would perform on any linear model, including:

See Also

| (Simulink Control Design)

Related Topics