modelica - 为什么在 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 组件发送参数。
如上图,我肯定放了参数。(参数的具体值被删除,因为它是一个机密)
我找不到这个错误的问题。请帮帮我。
非常感谢。
解决方案
基于不完整的模型,说发生了什么有点棘手,但是:
通过控制总线(或一般的连接器)发送参数有点复杂,并不鼓励。
应该可以通过将“计算参数”声明为parameter Integer N(fixed=false); initial equation N=myBus.N;
,而不是像parameter
在连接器中那样。
如果您不将其声明为参数,Dymola 将尝试(并失败)区分它。如果您在连接器中将其声明为参数,它将不会被传播(因为连接两个参数会导致断言)。
推荐阅读
- reactjs - react-redux 可以充当 js/css 包的缓存和/或存储吗?
- scheme - Scheme中复数的数据表示
- javascript - Javascript数组帮助,如何找到一个项目
- ignite - 升级 java.lang.IllegalAccessError 时引发 2.7 问题:尝试访问字段 org.h2.util.LocalDateTimeUtils.LOCAL_DATE
- ios - 如何在 XCUITest 中访问导航栏上的右键项目按钮?
- python - 如何将整数索引转换为日期
- python - 运行 .exe 以执行用 Python 编写的批处理文件(新手程序员)
- python - 使用 request 和 BeautifulSoup 包解码网页
- mysql - 如何将数据插入包含一列的表中?
- php - 在 Centos 7 上完全卸载并重新安装 PHP