Main Content

find

查询和访问 Simulink.SimulationOutput 对象的属性

    说明

    示例

    res = find(simOut,varName)Simulink.SimulationOutput 对象 simOut 返回由 varName 指定的仿真数据。如果名为 varName 的对象中不存在属性,则返回值为空。

    您还可以使用 get 函数或使用圆点表示法来访问 Simulink.SimulationOutput 对象内部的数据。使用上述任一选项访问属性时,如果指定的对象中不存在指定的属性,软件将发出诊断信息。

    示例

    全部折叠

    当您以将仿真结果作为单个对象返回的方式仿真模型时,您可以使用 Simulink.SimulationOutput 对象访问所有记录的数据和仿真元数据。

    此示例中的模型启用了单一仿真输出参数,并使用多种不同记录方法记录数据。

    • Sine Wave 模块的输出使用信号记录进行记录。

    • Gain 模块的输出使用 To Workspace 模块进行记录。

    • Gain、Chirp Signal 和 Square Wave Generator 模块的输出使用 Record 模块记录。

    • Square Wave Generator 模块的输出使用输出记录进行记录。

    该模型还配置为记录时间数据。

    打开模型。

    mdl = "LoggingBlocks";
    open_system(mdl)

    The model LoggingBlocks.

    创建一个 Simulink.SimulationInput 对象来配置模型的仿真。使用 setModelParameter 函数将 StopTime 参数设置为 20

    simIn = Simulink.SimulationInput(mdl);
    simIn = setModelParameter(simIn,'StopTime','20');

    对模型进行仿真。sim 函数输出 out 是一个 Simulink.SimulationOutput 对象,其中包含从仿真记录的所有数据。每个模块和每种记录类型的数据都存储为与在模块或模型中指定的记录变量的名称匹配的属性。

    out = sim(simIn);

    您可以使用圆点表示法、get 函数或 find 函数来访问记录的数据。

    使用圆点表示法访问使用 To Workspace 模块记录的 Big Sine 信号。

    simout = out.simout
      timeseries
    
      Common Properties:
                Name: 'Big Sine'
                Time: [51x1 double]
            TimeInfo: tsdata.timemetadata
                Data: [51x1 double]
            DataInfo: tsdata.datametadata
    

    使用 get 函数访问使用信号记录来记录的 Sine 信号。

    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.
    
    

    使用 find 函数访问使用输出记录来记录的 Square Wave 信号。

    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.
    
    

    您可以使用圆点表示法或使用 getSimulationMetadata 函数来访问仿真元数据。

    simMetadata = getSimulationMetadata(out)
    simMetadata = 
      SimulationMetadata with properties:
    
            ModelInfo: [1x1 struct]
           TimingInfo: [1x1 struct]
        ExecutionInfo: [1x1 struct]
           UserString: ''
             UserData: []
    
    

    仿真元数据以 Simulink.SimulationMetadata 对象形式返回。SimulationMetadata 对象将有关仿真的信息分组为具有结构体值的属性中,并具有允许您指定与仿真相关的字符串和附加数据的属性。

    访问 SimulationMetadata 对象的 ExecutionInfo 属性。执行信息显示,仿真运行到其停止时间 20,没有出现警告或错误。

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

    输入参数

    全部折叠

    仿真结果,指定为 Simulink.SimulationOutput 对象。

    要返回的仿真数据,指定为字符串或字符向量。

    通过指定记录变量的名称,使用 find 函数访问从仿真记录的数据,如信号记录数据、记录的输出和状态。例如,当您使用默认信号记录变量名称 logsout 时,请指定 "logsout" 来访问信号记录数据。

    示例: "logsout"

    数据类型: char | string

    输出参量

    全部折叠

    仿真结果,以下列形式之一返回:

    返回参量的形式取决于您访问的数据类型和仿真模型的配置。

    版本历史记录

    在 R2009b 中推出