Main Content

getSimulationMetadata

Access simulation metadata in Simulink.SimulationOutput object

    Description

    example

    simMeta = getSimulationMetadata(simOut) returns the simulation metadata stored in the Simulink.SimulationOutput object simOut. The simulation metadata includes information about the model, simulation execution and timing, and details about errors and warnings that occurred during the simulation.

    You can also get the simulation metadata using a dot to access the value of the SimulationMetadata property.

    simMeta = simOut.SimulationMetadata;

    Examples

    collapse all

    When simulation results are returned as a single output object, you can 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.

    mdl = "LoggingBlocks";
    open_system(mdl)

    Create a Simulink.SimulationInput object to configure the simulation for the model. Use the setModelParameter function to set the StopTime parameter to 20.

    simIn = Simulink.SimulationInput(mdl);
    simIn = setModelParameter(simIn,'StopTime','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.

    out = sim(simIn);

    You can access logged data using a dot, the get function, or the find function. Each method operates on the logging variable name, and you can use any method to access any kind of logged data.

    Use a dot to access the Big Sine signal logged using the To Workspace block.

    simout = out.simout
      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 = get(out,"logsout")
    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 = find(out,"yout")
    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 a dot or using the getSimulationMetadata function.

    simMetadata = getSimulationMetadata(out)
    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.

    simMetadata.ExecutionInfo
    ans = struct with fields:
                   StopEvent: 'ReachedStopTime'
             StopEventSource: []
        StopEventDescription: 'Reached stop time of 20'
             ErrorDiagnostic: []
          WarningDiagnostics: [0x1 struct]
    
    

    Input Arguments

    collapse all

    Simulation results, specified as a Simulink.SimulationOutput object.

    Output Arguments

    collapse all

    Simulation metadata, returned as a Simulink.SimulationMetadata object.

    Tips

    You can view the contents of the Simulink.SimulationMetadata object using the Variables editor in MATLAB®. In the Workspace pane, double-click the variable that contains the Simulink.SimulationOutput object with metadata you want to view. Then, in the Variables editor, select Explore SimulationMetadata to open a pane that displays the information in the SimulationMetadata object using a tree structure.

    Version History

    Introduced in R2015a