Main Content

Test Export-Function Model Simulation Using Input Matrix

When function-call sequencing is simple enough to be specified as a model input, simulation using an input matrix is the preferred method for testing an export-function model.

  1. Create time vectors that specify function-call times.

  2. Create a matrix that adds input data to the time vectors.

  3. Run a simulation.

To create an export-function model for this example, see Create Export-Function Model.

Create Function-Call Inputs and Data Inputs

Create time-vectors indicating when events occur for root-level function-call Inport blocks and data-vectors for root-level data Inport blocks.

  1. For function-call Inport blocks 1 and 2, create column vectors with time steps of 0.1 and 0.01. In the MATLAB® Command Window, enter

    t1 = [0:0.1:10]';
    t2 = [0:0.01:10]';
    • The time vector must be monotonically increasing and of double data type.

    • If the sample time for a function-call Inport block is specified, the values in the corresponding time vector must all be integer multiples of the specified value.

    • To specify multiple function-calls at a given time step, repeat the time value accordingly. For example, to specify three events at t = 0.1 and 2 events at t = 0.5, list 0.1 three times and 0.5 twice in your time vector, t1 = [0.1 0.1 0.1 0.5 0.5]'.

    • To use nonperiodic sample times, set the Inport block Sample time to -1 and provide a nonuniform time vector, e.g. t1 = [0, 0.1, 0.2, 0.4, 0.8].

  2. Create a matrix with time steps and data values for data Inport block 3.

    sine_data = sin(0:0.01:10)';
    d3 = [t2,sine_data];

    The data input can use any supported format as described in Forms of Input Data.

The following table provides additional information for specifying the time vector t.

Sample time type for internal Trigger Port block set to:

Root-level Function-Call Inport block with inherited sample time (-1)

Root-level Function-Call Inport block with discrete sample time

triggered

Nondecreasing column vector.

The function-call subsystem executes at the times specified by the column vector. The sample times can be periodic or aperiodic.

If you specify an empty matrix ([]), the function-call subsystem does not execute.

Nondecreasing column vector. Each element in the column vector must be an integer multiple of the sample time specified by the Inport block.

The function-call subsystem executes at the times specified by the column vector.

Alternatively, specify an empty matrix ([]) and the function-call subsystem executes once at every sample time specified by the Inport block.

periodic

Configuration not allowed

Empty matrix([]).

The function-call subsystem executes at the times specified by the Inport block calling it.

Simulate Export-Function Model

Simulate the export-function model to test and observe its behavior before generating code.

  1. Import time and data from the MATLAB workspace.

    On the Modeling tab, select Model Settings . In the Configuration Parameters dialog box, select the Data Import/Export pane and set the Input parameter to t1, t2, d3.

    t1 and t2 are column vectors containing event times for the function-call Inport blocks 1 and 2. d3 is a table of input values versus time for the data Inport block 3.

  2. Run a simulation.

  3. Plot results. In the MATLAB Command Window, enter.

    plot(yout.time, yout.signals(1).values)
    hold
    plot(yout.time, yout.signals(2).values)

    Scope displaying simulation results

  4. Change t1 to provide events every 0.5 seconds (0.5 is an integer multiple of the sample time of 0.1 specified in Inport block 1).

    t1 = [0:0.5:10]';
  5. Rerun simulation.

    Scope displaying simulation results

After you test your model, you can generate code for the functions. See Generate Code for Export-Function Model.

See Also

Related Topics