Products & Services Solutions Academia Support User Community Company

Learn more about Simulink   

Exporting Data to the MATLAB Workspace

Enabling Data Export

You can export a model's states and root-level outputs to the MATLAB workspace during simulation of the model. To do this, select the type of data that you want to export on the Save to workspace area of the Data Import/Export Pane pane of the Configuration Parameters dialog box. The field adjacent to each type specifies the name of a MATLAB workspace variable to be used by the Simulink software to store the exported data.

Each field initially specifies a default variable. You can edit the fields to specify names of your own choosing. Select Signal logging to enable signal logging for the model. See Logging Signals for more information. See the documentation of the sim command for some data export capabilities that are available only for programmatic simulation.

The Save options area enables you to specify the format and restrict the amount of output saved.

See the documentation of the sim command for some capabilities that are available only for programmatic simulation. Format options for model states and outputs are listed below.

Format Options

Array

If you select this option, a model's states and outputs are saved in a state and output array, respectively.

The state matrix has the name specified in the Save to workspace area (for example, xout). Each row of the state matrix corresponds to a time sample of the model's states. Each column corresponds to an element of a state. For example, suppose that your model has two continuous states, each of which is a two-element vector. Then the first two elements of each row of the state matrix contains a time sample of the first state vector. The last two elements of each row contain a time sample of the second state vector.

The model output matrix has the name specified in the Save to workspace area (for example, yout). Each column corresponds to a model output port, each row to the outputs at a specific time.

Structure with time

If you select this format, the model's states and outputs are saved in structures having the names specified in the Save to workspace area (for example, xout and yout).

The structure used to save outputs has two top-level fields:

Each substructure has four fields:

The following is an example of the structure-with-time format for a nonreferenced model.

>> xout.signals(1)

ans = 

               values: [296206x1 double]
           dimensions: 1
                label: 'CSTATE'
            blockName: 'vdp/x1'
    inReferencedModel: 0
 

The structure used to save states has a similar organization. The states structure has two top-level fields:

Each signals structure has four fields: values, dimensions, label, and blockName. The values field contains time samples of a state of the block specified by the blockName field. The label field for built-in blocks indicates the type of state: either CSTATE (continuous state) or DSTATE (discrete state). For S-Function blocks, the label contains whatever name is assigned to the state by the S-Function block.

The time samples of a state are stored in the values field as a matrix of values. Each row corresponds to a time sample. Each element of a row corresponds to an element of the state. If the state is a matrix, the matrix is stored in the values array in column-major order. For example, suppose that the model includes a 2-by-2 matrix state and that 51 samples of the state are logged during a simulation run. The values field for this state would contain a 51-by-4 matrix where each row corresponds to a time sample of the state and where the first two elements of each row correspond to the first column of the sample and the last two elements correspond to the second column of the sample.

Structure

This format is the same as the preceding except that the Simulink software does not store simulation times in the time field of the saved structure.

Per-Port Structures

This format consists of a separate structure-with-time or structure-without-time for each output port. Each output data structure has only one signals field. To specify this option, enter the names of the structures in the Output text field as a comma-separated list, out1, out2,..., outN, where out1 is the data for your model's first port, out2 for the second input port, and so on.

  


Related Products & Applications

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS