首页 文章

从MATLAB运行Simulink模型回调?

提问于
浏览
0

有没有办法从MATLAB命令窗口运行Simulink模型回调?我有模型用回调函数初始化参数,例如 PreLoadFcnInitFcn . 然后将这些模型用于其他Simulink模型 . 让我们称这些为主要模型 . 当我想模拟这些主要模型时,除非我在新的Simulink窗口中打开子模型(前面提到的回调),否则它会崩溃 . 我希望能够在不打开子模型的情况下运行模拟 .

我目前的做法基本上是:

% 1. Check for if the sub models have been started already, using find_systems(...) (omitting details here)
...

% 2. If not loaded, open sub models (only one here)
open('subModel.slx');

% 3. Simulate main model
sim('mainModel.slx');

我宁愿使用类似的东西

% 1. Check for if the parameter variables needed are , using exist(...) and some relevant variable name (omitting details here)
...

% 2. If not loaded, run sub model callbacks
...

% 3. Simulate main model
sim('mainModel.slx');

我的模拟过程应该变得更快,我的屏幕会更清洁 . 关于如何以一种巧妙的方式完成上述步骤2的任何想法?

1 回答

  • 1

    这是使用Simulink的“老式”方法 .

    有两种模型方法可以解决这个问题 .

    • 数据字典(https://uk.mathworks.com/help/simulink/ug/what-is-a-data-dictionary.html)这些存储变量,数据类型,总线等模型可能需要,并且可以由许多模型共享

    • Simulink Projects(https://www.mathworks.com/discovery/simulink-projects.html)这允许您在同一个项目中存储模型组 . 打开/关闭项目时,可以调用一组"startup"或"shutdown"函数来配置环境 . 您的项目的启动文件可能包含加载所有子模型的代码(无需打开它们),这将设置您的工作区 . 使用Simulink Project方法,您最好保持"PreLoad"回调为空,并通过其他方式(如启动脚本或数据字典)处理任何模型配置

相关问题