This example shows how to:
Configure a Simscape™ plant model to generate code that supports signal visualization and changes to Simscape run-time parameters.
Use Simulink® Real-Time™ and Simulink Coder™ to deploy an executable version of the plant model to a real-time target machine.
Use Simulink Real-Time Explorer on your development computer to change the value of a Simscape run-time parameter on the target machine and to see the effects of the parameter change.
This example requires an active connection between your development computer and a real-time target machine. For information on configuring and connecting your development computer to target hardware, see Simulink Real-Time Setup and Configuration (Simulink Real-Time).
To prepare to change parameter values on a real-time target machine, configure the Simscape run-time, code generation, and scope parameters for your Simscape model on your development computer.
To open the reference model, at the MATLAB® command prompt, enter:
The model opens and the PreLoadFcn loads parameters for the model to the MATLAB workspace. The peak voltage, A_peak_voltage_src, is 3 V, the resistance, R_resistor, is 10 Ohms, and the step size is 1e-5.
To allot enough time to see the effects of parameter-tuning
on the target machine, configure the application to run until you
stop the simulation, set the simulation stop time to
Adjust the step size for real-time simulation. At the MATLAB command prompt, enter:
ts = 4e-5;
Configure the model for code generation using Simulink Coder and Simulink Real-Time.
Open the model configuration parameters.
To set the System Target File, on the Code
Generation pane, click Browse and
In the System Target File Browser window, click OK.
Open the Report pane.
To display a code generation report, on the Report pane, select the Create Code Generation report check box.
Add a Simulink Real-Time Scope block to the Simscape plant model.
In the Simulink library browser, navigate to the Simulink-Real Time > Displays and Logging library.
Add a Scope block to the Simscape model.
Connect the scope to the output signal from the PS-Simulink Converter block.
Configure Simulink Real-Time Scope block as a host scope.
Specify the Scope type parameter
Set the Number of samples to
Build an executable application and download it to real-time hardware.
Check that you are connected to the real-time target machine, in this case, the target name is SLRTLABTG2:
tg = slrt
Target: SLRTLABTGT2 Connected = Yes Application = loader
To build and download the code to the target machine, in the model window, click the Build button .
The code report opens after the code download.
Verify that the generated code represents the Simscape run-time variables in a data structure.
In the Code Generation Report, in the left pane, in
the Data files node, open
Search for the section of the code that contains the
parameter variables. In the Find box, enter
parameters (auto storage).
Verify that the A_peak_voltage_src and the R_resistor variables are represented in the P_ssc_resistive_ac_circuit_T ssc_resistive_ac_circuit_P data structure.
Use Simulink Real-Time Explorer to change Simscape run-time parameters between runs of your real-time application on target hardware. Visualize the simulation results on a scope in the Explorer window.
To open Simulink Real-Time Explorer, on your development computer, at the MATLAB command prompt, enter:
View the Simscape run-time parameters in Simulink Real-Time Explorer.
In the Applications pane, expand the real-time application node, in this case, SLRTLABTGT2/ssc_resistive_ac_circuit.
Under the real-time application node, expand the Model Hierarchy node.
Select ssc_resistive_ac_circuit and click the View Parameters button .
The Parameters workspace opens, showing a table of parameters with properties and actions.
View the host scope in Simulink Real-Time Explorer.
In the Scopes pane, expand the real-time application node (SLRTLABTGT2/ssc_resistive_ac_circuit).
Under the real-time application node, expand the Host Scopes node.
To open the Scopes workspace, select Scope 1 and click the View Host Scope button .
To make both the parameter and scope workspaces visible at the same time, click the scope workspace tab and drag the tab down until the Pane Move button appears in the middle of the dialog box. Release the tab when the cursor reaches the lower quadrant of the Pane Move button.
To see the value for the peak amplitude of the voltage source, click the arrow next to the A_peak_voltage_src parameter.
The Values text box opens, containing the
original value of
3 V for the peak amplitude.
Simulate with the original peak amplitude value. To start execution, click the real-time application (SLRTLABTGT2/ssc_resistive_ac_circuit) and then click the Start button on the Applications toolbar.
The scope shows that the current is approximately 0.3 A. The defining equation for the circuit in the model, is I = V/R. The results are correct for the given voltage (10 V) and resistance (3 Ohms).
Change the parameter that represents the peak amplitude for the Simscape Voltage Source block. Because Simscape run-time parameters are run-time configurable, cannot change the parameter value during simulation. Instead, you stop the simulation, change the value of the parameter, and apply the parameter change. Then, you restart the simulation to see how changing the parameter affects the results.
To stop execution, click the real-time application in the Applications workspace, and then click the Stop button .
50 in the Values text
box for the peak amplitude parameter and press Enter.
Click the Apply parameter value changes button .
Click the Start button to simulate with the modified peak amplitude value.
The scope shows that the current is approximately 5 A when the peak amplitude is 50 V. The results reflect the change in the value for the voltage given that the resistance is 10 Ohms.
Modify and revert the value for the resistance of the Resistor block.
Stop the execution.
Click the arrow next to the R_resistor parameter.
The Values text box opens, containing the original value of 10 Ohms for the resistance.
Specify 2 in the text box, and then press Enter.
To revert the resistance to its previous value, click the Revert button .