When you simulate a model in a way that returns simulation results as a single object, you access all logged data and simulation metadata using the Simulink.SimulationOutput
object.
The model in this example has the Single simulation output parameter enabled and logs data using several different logging methods.
The output of the Sine Wave block is logged using signal logging.
The output of the Gain block is logged using a To Workspace block.
The outputs of the Gain, Chirp Signal, and Square Wave Generator blocks are logged using a Record block.
The output of the Square Wave Generator block is logged using output logging.
The model is also configured to log time data.
Open the model.
Create a Simulink.SimulationInput
object to configure the simulation for the model. Use the setModelParameter
function to set the StopTime
parameter to 20
.
Simulate the model. The sim
function output out
is a Simulink.SimulationOutput
object that contains all data logged from the simulation. The data for each block and each type of logging is stored as a property that matches the name of the logging variable specified in the block or model.
You can access logged data using dot notation, the get
function, or the find
function.
Use dot notation to access the Big Sine
signal logged using the To Workspace block.
timeseries
Common Properties:
Name: 'Big Sine'
Time: [51x1 double]
TimeInfo: tsdata.timemetadata
Data: [51x1 double]
DataInfo: tsdata.datametadata
Use the get
function to access the Sine
signal logged using signal logging.
logsout =
Simulink.SimulationData.Dataset 'logsout' with 1 element
Name BlockPath
____ _______________________
1 [1x1 Signal] Sine LoggingBlocks/Sine Wave
- Use braces { } to access, modify, or add elements using index.
Use the find
function to access the Square Wave
signal logged using output logging.
yout =
Simulink.SimulationData.Dataset 'yout' with 1 element
Name BlockPath
___________ _____________________
1 [1x1 Signal] Square Wave LoggingBlocks/Outport
- Use braces { } to access, modify, or add elements using index.
You can access the simulation metadata using dot notation or using the getSimulationMetadata
function.
simMetadata =
SimulationMetadata with properties:
ModelInfo: [1x1 struct]
TimingInfo: [1x1 struct]
ExecutionInfo: [1x1 struct]
UserString: ''
UserData: []
The simulation metadata is returned as a Simulink.SimulationMetadata
object. The SimulationMetadata
object groups information about the simulation in properties with structure values and has properties that allow you to specify a string and additional data related to the simulation.
Access the ExecutionInfo
property on the SimulationMetadata
object. The execution information shows that the simulation ran through its stop time of 20
without warnings or errors.
ans = struct with fields:
StopEvent: 'ReachedStopTime'
StopEventSource: []
StopEventDescription: 'Reached stop time of 20'
ErrorDiagnostic: []
WarningDiagnostics: [0x1 struct]