我希望为现有的 Simulink 模型设置一个测试集。理想情况下,我可以完全控制模型,明确地步进并测量模型中任何总线上的任何信号的状态。
正如可能已经收集到的那样,这是模型单元测试系统的前身。既然如此,我真的无法证明更改模型以适应测试是合理的,测试必须按原样适应模型。
到目前为止,我最远的是使用 load_model() 来返回模型的句柄。从那里似乎有一组非常模糊的用于访问模型的函数。我看不到任何与访问状态相关的内容,也看不到与访问已加载模型相关的任何其他命令。
我希望为现有的 Simulink 模型设置一个测试集。理想情况下,我可以完全控制模型,明确地步进并测量模型中任何总线上的任何信号的状态。
正如可能已经收集到的那样,这是模型单元测试系统的前身。既然如此,我真的无法证明更改模型以适应测试是合理的,测试必须按原样适应模型。
到目前为止,我最远的是使用 load_model() 来返回模型的句柄。从那里似乎有一组非常模糊的用于访问模型的函数。我看不到任何与访问状态相关的内容,也看不到与访问已加载模型相关的任何其他命令。
最简单的方法是Data Import/Export
使用Simulink Preferences
.
设置复选框States
,它将在您的工作区中存储每个时间步的系统的每个状态,当您暂停模拟或逐步执行它时也是如此。
注意不要设置Save simulation output as single object
,这种情况下访问会比较复杂,你需要按照这里的说明进行操作。
要添加到其他答案,您可能需要查看文档中的此页面:使用命令控制模拟set_param
。感兴趣的是以下命令:
set_param(<model_name>, 'SimulationCommand', 'start')
set_param(<model_name>, 'SimulationCommand', 'pause')
set_param(<model_name>, 'SimulationCommand', 'WriteDataLogs')
set_param(<model_name>, 'SimulationCommand', 'continue')
替换<model_name>
为模型文件的路径。