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)
创建一个 Simulink.SimulationInput 对象来配置模型的仿真。使用 setModelParameter 函数将 StopTime 参数设置为 20。
simin = Simulink.SimulationInput(mdl);
simin = setModelParameter(simin,StopTime="20");对模型进行仿真。sim 函数以 Simulink.SimulationOutput 对象形式返回结果,其中包含从仿真记录的所有数据。每个模块和每种记录类型的数据都存储为与在模块或模型中指定的记录变量的名称匹配的属性。
out = sim(simin);
您可以使用圆点表示法、get 函数或 find 函数来访问记录的数据。
使用圆点表示法访问使用 To Workspace 模块记录的信号 Big Sine。
simout = out.simout
timeseries
Common Properties:
Name: 'Big Sine'
Time: [51x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [51x1 double]
DataInfo: [1x1 tsdata.datametadata]
More properties, Methods
使用 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.
访问 SimulationOutput 对象的 SimulationMetadata 属性中的仿真元数据。
simmetadata = out.SimulationMetadata
simmetadata =
SimulationMetadata with properties:
ModelInfo: [1×1 struct]
TimingInfo: [1×1 struct]
ExecutionInfo: [1×1 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: [0×1 struct]
输入参数
仿真结果,指定为 Simulink.SimulationOutput 对象。
要返回的仿真数据,指定为字符串或字符向量。
通过指定记录变量的名称,使用 get 函数访问从仿真记录的数据,如信号记录数据、记录的输出和状态。例如,当您使用默认信号记录变量名称 logsout 时,请指定 "logsout" 来访问信号记录数据。
示例: "logsout"
数据类型: char | string
输出参量
仿真结果,以下列形式之一返回:
返回参量的形式取决于您访问的数据类型和仿真模型的配置。
版本历史记录
在 R2010a 中推出在 R2020a 之前,如果指定的 Simulink.SimulationOutput 对象没有指定的属性,则 get 函数返回空值 ([])。从 R2020a 开始,get 函数在这种情况下会发出警告并返回空值 ([])。从 R2023a 开始,get 函数发出错误且不再返回输出参量。
要查询 Simulink.SimulationOutput 对象是否具有给定的属性,请使用 find 函数。在对象不具有该属性时,find 函数返回空值 ([]) 并且不发出诊断信息。
如果指定的 Simulink.SimulationOutput 对象没有指定的属性,则 get 函数会发出警告并返回空值 ([])。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)