Simulink模型仿真数据记录
模型仿真过程中的数据记录对于学术研究、算法的仿真验证和嵌入式开发的测试阶段都是至关重要的环节。将模型仿真的数据导出到工作空间,除了Configuration Parameters→Data Import/Export对话框外,还有一些其他的手段。如使用信号日志(Signal logging)功能记录仿真数据,测试点(Test point)方式可以通过浮动示波器展示波形等。
1.信号日志
右击模型中希望记录过程数据的信号线,打开属性对话框,勾选 Log signal data的勾选框。设置之后的信号上出现一个蓝色探针符号,表示此信号的数据记录功能已开,如图所示。
设置图所示模型中Clock模块输入和积分器输出信号,单击仿真,工作空间中会出现一个名为out.logsout 的变量,其类型为Simulink.SimulationData.Dataset,内部包含了仿真过程的采样时间信息。在Command Window中输入变量名可以看到其结构的说明和提示,如图所示。
>> out.logsout ans = Simulink.SimulationData.Dataset "logsout" with 2 elements Name BlockPath ____ _________________ 1 [1x1 Signal] "" test26/Clock 2 [1x1 Signal] "" test26/Integrator - Use braces { } to access, modify, or add elements using index.
根据提示可以得知模型仿真中保存了2个信号量,合并保存为变量 out.logsout。如果要分别获取其内容,需要使用此类型的内建方法 getElement等根据索引号1或⒉来获取。在Command Window中输入signall =out.logsout. getElement(1),返回结果如下所示。 signall =out.logsout. getElement(1) signall = Simulink.SimulationData.Signal Package: Simulink.SimulationData Properties: Name: "" PropagatedName: "" BlockPath: [1×1 Simulink.SimulationData.BlockPath] PortType: "outport" PortIndex: 1 Values: [1×1 timeseries]
signall有一个 Values成员,这里保存了仿真采样时间信息和信号数据,再度访问即可看出其内部数据结构。在Command Window中输入 signal1.Values即可得到返回信号值的信息,如下所示。 signall.Values timeseries 常见属性: Name: "" Time: [58x1 double] TimeInfo: [1x1 tsdata.timemetadata] Data: [58x1 double] DataInfo: [1x1 tsdata.datametadata]
signall.Values是一个时间序列对象( timeseries object),其成员 Time即仿真时间列向量, Data即为Clock模块输出的信号数据序列。使用M代码将这些数据绘制为图像: plot(signall.Values.Time,signall.Values.Data,"b-"); xlabel("time"); ylabel("signall.Values.Data")
2. Data Inspector
信号日志还可与 Data Inspector联合使用,记录模型仿真过程中的数据。记录按钮右侧的下拉框提供相关的功能,如图所示。
Inspector需要同信号线的信号日志功能联合使用,如果模型中没有设置开启信号日志功能的信号线,则不能启动记录仿真。选中希望记录的信号线,单击记录菜单栏中的Log/Un-log Selected Signals可以增设/删除信号日志功能点,如图所示,相对于打开信号线的属性对话框再勾选,稍微方便一些。
通过Configuration Parameter对话框的 Data Import/Export页面,单击图所示Configure signals toLog 按钮启动Simulink Signal Log Selector对话框,如图所示,从所有具有信号日志功能的信号线中选择期望记录的信号线。
勾选需要记录的信号后可关闭Simulink Signal Logging Selector并启动模型仿真。仿真结束后,信号记录也同时完成了。这时可以在记录菜单栏中按下启动Inspector 以观察记录的数据波形。不仅可以一次记录多个信号数据,还可以记录多次仿真的数据过程。图所示模型中Clock 与Integrator模块的输出同时被选中并记录。
3.参考内容
[1] 孙忠潇.Simulink仿真及代码生成技术入门到精通[M].北京:北京航空航天大学出版社,2015.
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙