Trigger-Based Linearization

Generate linear models in base workspace when triggered


Model-Wide Utilities


When triggered, this block calls linmod or dlinmod to create a linear model for the system at the current operating point. No trimming is performed. The linear model is stored in the base workspace as a structure, along with information about the operating point at which the snapshot was taken. Multiple snapshots are appended to form an array of structures.

The block sets the following model parameters to the indicated values:

  • BufferReuse = 'off'

  • RTWInlineParameters = 'on'

  • BlockReductionOpt = 'off'

The name of the structure used to save the snapshots is the name of the model appended by _Trigger_Based_Linearization, for example, vdp_Trigger_Based_Linearization. The structure has the following fields:




The A matrix of the linearization


The B matrix of the linearization


The C matrix of the linearization


The D matrix of the linearization


Names of the model's states


Names of the model's output ports


Names of the model's input ports


A structure that specifies the operating point of the linearization. The structure specifies the value of the model's states (OperPoint.x) and inputs (OperPoint.u) at the operating point time (OperPoint.t).


The sample time of the linearization for a discrete linearization

Use the Timed-Based Linearization block to generate linear models at predetermined times.

You can use state and simulation time logging to extract the model states at operating points. For example, suppose that you want to get the states of the vdp example model when the signal x1 triggers the Trigger-Based Linearization block on a rising edge.

  1. Open the model and drag an instance of this block from the Model-Wide Utilities library and drop the instance into the model.

  2. Connect the block's trigger port to the signal labeled x1.

  3. Open the model's Model Configuration Parameters dialog box.

  4. Select the Data Import/Export pane.

  5. Check States and Time on the Save to Workspace control panel

  6. Select OK to confirm the selections and close the dialog box.

  7. Simulate the model.

    At the end of the simulation, the following variables appear in the MATLAB® workspace: vdp_Trigger_Based_Linearization, tout, and xout.

  8. Get the index to the first operating point time by entering the following at the MATLAB command line:

    ind1 = find(vdp_Trigger_Based_Linearization(1).OperPoint.t==tout);
  9. Get the state vector at this operating point.

    x1 = xout(ind1,:);

Data Type Support

The trigger port accepts signals of any numeric data type that Simulink® supports.

For more information, see Data Types Supported by Simulink in the Simulink documentation.


Trigger type

Type of event on the trigger input signal that triggers generation of a linear model. See the Trigger type parameter of the Trigger block for an explanation of the various trigger types that you can select.

Sample time (of linearized model)

Specify a sample time to create a discrete-time linearization of the model (see Discrete-Time System Linearization).


Data Types

Double | Single | Boolean | Base Integer | Fixed-Point

Sample Time

Specified in the Sample time parameter

Multidimensional Signals


Variable-Size Signals


Code Generation


Introduced before R2006a

Was this topic helpful?