gpt4 book ai didi

matlab - 从 Matlab 函数运行 Simulink

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:29 24 4
gpt4 key购买 nike

我正在使用 FastRestart 运行 Simulink,因为我需要多次更改参数来启动和停止仿真。当我从主脚本运行 Simulink 时,没有任何问题。但是,一旦我将脚本设为函数以便我可以针对不同的输入数据运行它,我就会收到一个错误,该错误显然与 Simulink 在函数中看不到 Matlab 工作区有关。

更准确地说,sfile 是我的 Simulink 文件,然后我在初始化 Matlab 结构中需要的所有变量后运行以下行:

load_system(sfile);
set_param(sfile,'FastRestart','on');
set_param(sfile,'SaveFinalState','on');
set_param(sfile,'SaveCompleteFinalSimState','on');
set_param(sfile,'SimulationCommand','update');

在最后一行,我收到 Simulink 无法识别 mdl.tStep(这是时间步长)的错误,因为 mdl 不是可识别的结构。事实上,如果我从主脚本运行 Simulink,一切都很好。

现在,在过去,我会用

options = simset('SrcWorkspace','current');

但是,我认识的一位专家建议我不要使用 simset(因为它将来可能会被弃用),并鼓励我改用 set_param。我有在线查找 set_param 的选项,但我找不到 Matlab 工作区的设置。

如有任何帮助,我们将不胜感激。提前致谢!

最佳答案

在许多情况下,最好使用 Model Workspace 而不是 Base Workspace:

hws = get_param(model, 'modelworkspace');
hws.assignin('mdl',mdl);

至少要知道这个选项的存在。

关于matlab - 从 Matlab 函数运行 Simulink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com