如何将OpenModelica中的模拟结果可视化为动画?

时间:2017-02-14 19:01:10

标签: modelica openmodelica

我想知道如何以动画的形式可视化Modelica模拟的结果。

想象一下,我有一个简单的模拟如下:

model test
  //parameters
  parameter Real m_1 = 1;
  parameter Real m_2 = 10;
  parameter Real K_c = 100000;
  //variables
  Real x_1;
  Real v_1;
  Real x_2;
  Real v_2;
  Real f_1;
  Real f_12;
initial equation
  x_1 = 0;
  v_1 = 0;
  x_2 = 0.2;
  v_2 = 0;
equation
  v_1 = der(x_1);
  m_1 * der(v_1) = f_1 - f_12;
  v_2 = der(x_2);
  m_2 * der(v_2) = f_12;
  f_12 = if x_2 >= x_1 then 0 else K_c * (x_1 - x_2);
  f_1 = 1;
end test;

(它实际上是一个非常简单的弹性碰撞)

我有part1.obj和part2.obj(或其他可能的格式而不是.obj),在其他CAD软件中设计,我想导入并分配给x_1和x_2然后设置动画。 OpenModelica 1.11.0已经使用these instructions安装在Ubuntu上。

到目前为止我所发现的以及我遇到的问题:

  1. this page我了解到还应该安装Modelica3D。但是我无法使用apt或aptitude找到这个库。

    我是否还需要单独安装此库,或者它已经集成到最新的稳定OpenModelica版本中?如果是,我该怎么安装呢?可能需要哪些其他库/包?

    编辑:看起来Modelica3D已被折旧(对于OMVisualize也是如此)。现在ModelicaServices正用于动画。更多信息here

  2. This post给出了一个使用Wolfram SystemModeller制作动画的简单示例。当我打开它进入OpenModelica时,它会编译并显示结果。我尝试将模型导出为FMU和XML,然后使用顶部菜单中的动画图标导入模型。

    enter image description here

    但是当试图导入.mat文件时,我得到了错误:

      

    脚本错误   找不到可视XML文件/tmp/OpenModelica_user/OMEdit/SimpleCarModel_visual.xml。

    此示例是否与OpenModelica兼容?如果是,问题是什么以及如何解决? (您也可以从this Github gist)下载示例

    编辑:此示例与OpenModelica兼容。我正在干嘛。我不得不选择"模拟动画"而不是"模拟"。我仍然无法为模拟分配外部CAD对象,而是显示一个圆柱体。

  3. 我还尝试学习使用OMShell脚本从this page运行Modelica3D示例。但是,似乎代码是错误的,因为我在OMShell中运行它会遇到很多错误。

  4. One of the linked websites已经提到可以使用blender进行动画效果,但作者没有成功。如果您能以简单明了的步骤帮助您学习,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

目前只能对.stl.dxf显示CAD文件。 您可以在形状的shapeType参数中指定CAD文件的URI。请使用以下表示法:

"modelica://packageName/relativePath/To/Your/CADfile.stl"

也可以在模拟结果生成的*_visual.xml中设置绝对路径(如果要从OMEdit加载模拟,则应该在同一目录中)。

如果要移动动画形状,只需将变量分配给位置矢量

即可
r = {x,0,0};