首页 > 解决方案 > 为什么在 Dymola/Modelica 中通过 Controlbus 组件连接的模型之间无法识别参数?

问题描述

我正在制作可以在仿真循环中输入模型参数的接口包。为了在接口包和仿真模型之间进行连接,我使用了 Standard Modelica Library Ver. 中的 Controlbus。3.2.2.

检查模型没问题,但是如果我模拟模型,就会弹出如下图所示的错误。

错误信息

这是与该模型相关的方程式

Omega_e = Omega_d * N_t[N]; Alpha_d = der(Omega_d);

为了求解微分方程,我认为求解器需要一个特定的 N_t 参数。所以我从接口模型中放入参数,并使用标准 Modelica 库中的 Controlbus 组件发送参数。

在此处输入图像描述

在此处输入图像描述

如上图,我肯定放了参数。(参数的具体值被删除,因为它是一个机密)

我找不到这个错误的问题。请帮帮我。

非常感谢。

标签: modelicadymola

解决方案


基于不完整的模型,说发生了什么有点棘手,但是:

通过控制总线(或一般的连接器)发送参数有点复杂,并不鼓励。

应该可以通过将“计算参数”声明为parameter Integer N(fixed=false); initial equation N=myBus.N;,而不是像parameter在连接器中那样。

如果您不将其声明为参数,Dymola 将尝试(并失败)区分它。如果您在连接器中将其声明为参数,它将不会被传播(因为连接两个参数会导致断言)。


推荐阅读