问题模型调范围万博1manbetx

4视图(30天)
Peter O
Peter O 2012年9月17日
你好!
我试图执行计算基于一些仿真参数在仿真软件模拟运行时加载之后。万博1manbetx基本上,我需要一些约束评估在运行时,我宁愿没有eval内部框图。
紧性和可移植性,我想保持约束作为模型参数模型中定义的工作区,我遇到一些问题了解回调函数的范围。万博1manbetx
现在我有以下(简化的)坐在InitFcn代码:
%地图处理
探测= get_param (bdroot,“modelworkspace”);
SPEED_MIN = evalin(探测,“SPEED_MIN”);
FLOW_RATIO_MIN = evalin(探测,“RATIO_MIN”);
V_MIN = evalin(探测,“V_MIN”);
FLYWHEEL_R = evalin(探测,“FLYWHEEL_R”);
minspeed_rad = SPEED_MIN.Value *(2 *π/ 60);
w_min = minspeed_rad * RATIO_MIN.Value;
V_MIN。值= 1/2 * minspeed_rad * FLYWHEEL_R.Value;
我的问题:
  1. 这是“正确”的方式吗?如果是正确的方法之一,其他的是什么?我不是超级舒服的想法用“evalin”抓住处理工作区var。也把所有的垃圾MATLAB基础工作空间时,它显然不是评估范围内我想(模型级)。有办法导入一个m文件的模型文件评估可以mat文件导入到模型空间吗?
  2. 为什么粘贴上面的代码在StartFcn调导致模型抛出“试图访问只读工作区”错误而InitFcn运行好吗?万博1manbetx
谢谢你,彼得

答案(1)

家伙卷轴
家伙卷轴 2012年9月17日
有趣的…
1。模型工作区可以MAT-file,还一个MATLAB文件。根据您的描述,这似乎你正在寻找什么。这是介绍:
你应该能够执行你的代码在这个MATLAB文件并摆脱evalin。
2。这是预期。对模型不可能写工作区一旦初始化完成。这是通过设计。
InitFcn模型之前执行初始化和startFcn之间执行模型的初始化和模拟的时间步长0。这就是为什么你得到错误。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!