Main Content

Tune Parameter Structures by Using Simulink® Real-Time™ Explorer

To reduce the number of workspace variables you must maintain and avoid name conflicts, you can group closely related parameters into structures. See Organize Related Block Parameter Definitions in Structures.

In this example, the initial model slrt_ex_osc has four parameters that determine the shape of the output waveform.

Block

Parameter

Structure Field Expression

Initial Value

Signal Generator

Freq

spkp.sg_freq

20

Gain

Gain

spkp.g_gain

1000^2

Gain1

Gain

spkp.g1_gain

2*0.2*1000

Gain2

Gain

spkp.g2_gain

1000^2

Create Parameter Structure

This procedure groups some closely related parameters into structures.

  1. Open model slrt_ex_osc, and save a copy of the model to a working folder.

  2. Open the Base Workspace in the Model Explorer. On the Modeling tab, click Base Workspace.

  3. Click Add Simulink Parameter gui-icon-add-sl-param.png.

  4. In the Name column, type the name spkp.

  5. In the Storage class field, select ExportedGlobal.

  6. In the Value field, type as one line: struct('sg_freq',20, 'g2_gain',1000^2, 'g1_gain',2*0.2*1000, 'g_gain',1000^2)

  7. The field values duplicate the literal values in the dialog boxes. To change the field values, in row spkp, click the Value cell and click Edit .window-structured-parameters-model-explorer.png

  8. Click Apply.

  9. Save the model as slrt_ex_osc_struct. On the Simulation tab, from Save, click Save As.

Replace Block Parameters with Parameter Structure Fields

  1. In the Signal Generator block, replace the value of parameter Frequency with spkp.sg_freq.

  2. In the Gain block, replace the value of parameter Gain with spkp.g_gain.

  3. In the Gain1 block, replace the value of parameter Gain with spkp.g1_gain.

  4. In the Gain2 block, replace the value of parameter Gain with spkp.g2_gain.

Save and Load Parameter Structure

  1. In Model Explorer, right-click row spkp.

  2. Click Export selected and save the variable as slrt_ex_osc_struct.mat.

To load the parameter structure when you open the model, add a load command to the PreLoadFcn callback. To remove the parameter structure from the workspace when you close the model, add a clear command to the CloseFcn callback. For more information, see Model Callbacks.

Tune Parameters in a Parameter Structure

If you have not completed the steps in Create Parameter Structure, Replace Block Parameters with Parameter Structure Fields, and Save and Load Parameter Structure, you can start by using the completed model.

To open the model, in the MATLAB Command Window, type:

openExample('slrealtime/SlrtTuneParameterStructuresByUsingMATLABLanguageExample');
open_system('slrt_ex_osc_struct');
load('slrt_ex_osc_struct.mat');
  1. Build the real-time application for the target computer. In the Real-Time tab, click Run on Target > Build Application.

  2. Open Simulink Real-Time Explorer. In the Real-Time tab, click Prepare > SLRT Explorer.

  3. Connect to the target computer, then load the real-time application. Click Load Application to select the slrt_ex_osc_struct application.

  4. Set the real-time application Stop Time to Inf.

  5. Click the Parameters tab.

  6. Start the real-time application.

  7. Open the Simulation Data Inspector and view the signals from the real-time application.

  8. In the Values text box for spkp(1).g1_gain, change the value to 800 and press Enter.

  9. Observe the change to the signals in the Simulation Data Inspector.

  10. Stop the real-time application.

Related Topics