我想要一个Matlab Simulink的命令行实现解决方案。在simulink模型中,有一个模拟开关叫做#34;前进"。有了这个,我能够一步一步地运行,并能够在每个采样时间内查看范围内的输出。
我还可以在任何采样周期时更改常量输入块的某些输入。但是,我想在命令行中执行此操作,因为我有一个庞大的模型,我想重用此模型验证脚本。
我可以使用" sim"做这样的事情。命令。但是sim命令只是模拟整个模型,我无法观察/改变中间输出/输入。 " sim"具有特定停止时间的命令正在运行某些采样周期,但稍后如果我给出下一个" sim"命令,它从头开始运行,而不是从停止的位置开始。但是,是否存在任何精确的Matlab命令来逐步和暂停(一个采样周期时间)模拟,就像在simulink gui中那样。
答案 0 :(得分:1)
您希望在一次模拟结束时使用SimState
保存模型的状态,并在下一次模拟开始时恢复它们。如何执行此操作在Save and Restore Simulation State as SimState下的文档中进行了描述。
您不能在每次调用sim
之间对模型进行任何结构更改(例如添加或删除块)。还有一些块不支持SimState
,请参阅文档以获取更多详细信息。请注意,这是针对最新版本(R2015a),在过去几年中添加了越来越多的块以支持SimState
,因此您需要根据您使用的版本检查release notes。
答案 1 :(得分:1)
你可以试试这个:
sldebug('gcs');
您现在处于调试模式,您可以输入帮助以获取可用命令的概述。要在:
中输入模型类型next
每次下次输入时,都会向前移动模拟一步。
以下链接将为您提供有关如何逐步完成模拟的更多详细信息。
http://www.mathworks.com/help/simulink/ug/how-stepping-through-a-simulation-works.html
有关使用调试器逐步运行模拟的更多详细信息,请访问:
http://www.mathworks.com/help/simulink/ug/running-a-simulation-step-by-step.html