get
访问 Simulink.SimulationOutput
对象中的仿真结果
说明
示例
访问 Simulink.SimulationOutput
对象中的数据
当您以将仿真结果作为单个对象返回的方式仿真模型时,您可以使用 Simulink.SimulationOutput
对象访问所有记录的数据和仿真元数据。
此示例中的模型启用了单一仿真输出参数,并使用多种不同记录方法记录数据。
Sine Wave 模块的输出使用信号记录进行记录。
Gain 模块的输出使用 To Workspace 模块进行记录。
Gain、Chirp Signal 和 Square Wave Generator 模块的输出使用 Record 模块记录。
Square Wave Generator 模块的输出使用输出记录进行记录。
该模型还配置为记录时间数据。
打开模型。
mdl = "LoggingBlocks";
open_system(mdl)
创建一个 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]
输入参数
simOut
— 仿真结果
Simulink.SimulationOutput
对象
仿真结果,指定为 Simulink.SimulationOutput
对象。
varName
— 要返回的仿真数据
字符串 | 字符向量
要返回的仿真数据,指定为字符串或字符向量。
通过指定记录变量的名称,使用 get
函数访问从仿真记录的数据,如信号记录数据、记录的输出和状态。例如,当您使用默认信号记录变量名称 logsout
时,请指定 "logsout"
来访问信号记录数据。
示例: "logsout"
数据类型: char
| string
输出参数
res
— 仿真结果
Simulink.SimulationData.Dataset
对象 | timeseries
对象 | timetable
| 数组 | 结构体
仿真结果,以下列形式之一返回:
返回参数的形式取决于您访问的数据类型和仿真模型的配置。
版本历史记录
在 R2010a 中推出R2023a: 如果指定的对象没有指定的属性,则发出错误
在 R2020a 之前,如果指定的 Simulink.SimulationOutput
对象没有指定的属性,则 get
函数返回空值 ([]
)。从 R2020a 开始,get
函数在这种情况下会发出警告并返回空值 ([]
)。从 R2023a 开始,get
函数发出错误且不再返回输出参数。
要查询 Simulink.SimulationOutput
对象是否具有给定的属性,请使用 find
函数。在对象不具有该属性时,find
函数返回空值 ([]
) 并且不发出诊断信息。
R2020a: 如果指定的对象没有指定的属性,则发出警告
如果指定的 Simulink.SimulationOutput
对象没有指定的属性,则 get
函数会发出警告并返回空值 ([]
)。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)