我对Matlab和Simulink还是很陌生,并且在最新模型上苦苦挣扎了几天。
应该代表多组分化学反应器(FTS反应器)和产品分离单元(Flash)。
我的目标是使用产品循环(代数循环)计算系统的行为,直到达到稳态为止。
我使用Matlab函数生成可变大小的信号。 (M_dot_'') 而且我无法使循环正常工作。
我已经尝试对回收信号实施以下解决方案:
和失败->内存块和传递函数不支持可变大小的信号
然后我在已启用的子系统中以单位延迟尝试了该操作,该子系统在启用时会重置其状态,这是Matlab / Simulink的建议(第二张图片),并出现以下错误:
块'... / MATLAB函数'具有大小可变的信号,并且位于代数循环内。可变大小的信号不支持代数循环。考虑消除代数循环。
在以下线程中描述了类似的问题:
我试图通过将脚本保存到m.file并在S函数中调用它来实现2级Matlab
我遇到以下错误:
在“ recycle_FTS / Level-2 MATLAB S-Function”中评估MATLAB S-Function“ msfcn_varsize_delay”的注册方法“ PostPropagationSetup”时出错。以下是产生此错误的MATLAB调用堆栈(文件名和行号): ['C:\ Users \ ulric \ Desktop \ MA \ Simulink \ FTS \ msfcn_varsize_delay.m'] [67]
原因: 为'recycle_FTS / Level-2 MATLAB S-Function'的Dwork 1指定的尺寸无效。 Dwork必须是向量,并且其宽度必须是正整数
如何消除代数循环并仍然解决我的问题?
这是我第一次使用这种功能,老实说我很迷失。 感谢您的帮助,我们将为您提供任何可能缺少的信息。
亲切的问候 乌里