为什么Dymola/Modelica中Controlbus组件连接的模型之间无法识别参数?
Why the parameters can't be recognized between the models connected by the Controlbus component in Dymola/Modelica?
我正在制作接口包,可以在仿真循环中输入模型的参数。
为了连接接口包和仿真模型,我使用了 Standard Modelica Library Ver. 中的 Controlbus。 3.2.2.
检查模型没问题,但是如果我模拟模型,弹出如下图的错误。
这是与此模型相关的方程式
Omega_e = Omega_d * N_t[N];
Alpha_d = der(Omega_d);
为了求解微分方程,我认为求解器需要一个特定的参数N_t。
所以我从接口模型中放入参数,并使用标准模型库中的 Controlbus 组件发送参数。
如上图,参数肯定是我放的。
(参数的具体值因为是机密被删除了)
我找不到这个错误的问题所在。
请大家帮帮我。
非常感谢。
基于不完整的模型,很难说出发生了什么,但是:
通过控制总线(或一般的连接器)发送参数有点复杂,不鼓励。
应该可以通过将“计算参数”声明为 parameter Integer N(fixed=false); initial equation N=myBus.N;
,而不是在连接器中将其声明为 parameter
。
如果您不将其声明为参数,Dymola 将尝试(但失败)区分它。
如果您将它声明为连接器中的参数,它将不会被传播(因为连接两个参数会导致断言)。
我正在制作接口包,可以在仿真循环中输入模型的参数。 为了连接接口包和仿真模型,我使用了 Standard Modelica Library Ver. 中的 Controlbus。 3.2.2.
检查模型没问题,但是如果我模拟模型,弹出如下图的错误。
这是与此模型相关的方程式
Omega_e = Omega_d * N_t[N];
Alpha_d = der(Omega_d);
为了求解微分方程,我认为求解器需要一个特定的参数N_t。 所以我从接口模型中放入参数,并使用标准模型库中的 Controlbus 组件发送参数。
如上图,参数肯定是我放的。 (参数的具体值因为是机密被删除了)
我找不到这个错误的问题所在。 请大家帮帮我。
非常感谢。
基于不完整的模型,很难说出发生了什么,但是:
通过控制总线(或一般的连接器)发送参数有点复杂,不鼓励。
应该可以通过将“计算参数”声明为 parameter Integer N(fixed=false); initial equation N=myBus.N;
,而不是在连接器中将其声明为 parameter
。
如果您不将其声明为参数,Dymola 将尝试(但失败)区分它。 如果您将它声明为连接器中的参数,它将不会被传播(因为连接两个参数会导致断言)。