如何让DynamicSelect()在基础储罐模型中实现动画效果?
储罐液位动态动画问题(OpenModelica 1.21 + MSL 3.2.3)
- 环境:OpenModelica 1.21,Modelica标准库3.2.3
- 参考
Mechanics/Multibody/Examples/Elementary/DoublePendulum示例,用DynamicSelect()实现动画功能完全正常 - 自制泵向储罐注液模型,需求为让
harvestTank5的液位随注入液体容积V动态上升;该组件图标原本为外部矩形+内部实心填充矩形 - 初始测试:在图标注释中添加
DynamicSelect(),且最后一个参数重复第一个静态参数时,仿真正常,图标显示正确 - 异常现象:将
DynamicSelect()最后一个参数改为{40, V}(V为动态变化的液体容积实变量)后,模型翻译完成,harvestTank5变为大正方形图标,仿真过程正常但无液位上升动画 - 已尝试:参考MSL
Fluid/Media中的储罐示例,问题仍未解决
相关截图
正常显示的储罐图标:
异常显示的大正方形图标:
参考博客核心内容(翻译自Claytex技术博客)
在图标中使用DynamicSelect的关键要点:
DynamicSelect()的作用是区分模型编辑/编译阶段和仿真运行阶段的图形显示,第一个参数对应静态编辑状态,后续参数对应动态仿真状态- 动态参数必须是模型中可被图标访问的变量,且变量的类型、维度要和静态参数完全匹配
- 要注意图形元素的坐标系统,确保动态变化的图形元素始终在组件容器的范围内,避免出现显示异常
内容的提问来源于stack exchange,提问作者janpeter
相关产品推荐
相关产品推荐

