首页 文章

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

提问于
浏览
0

我想知道如何以动画的形式可视化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上 .

到目前为止我发现了什么以及我遇到的问题:

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

编辑:Modelica3D似乎已经过折旧(对于OMVisualize也是如此) . 现在ModelicaServices正用于动画 . 更多信息here

  • 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对象分配给模拟,而是显示圆柱体 .

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

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

1 回答

  • 0

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

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

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

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

    r = {x,0,0};
    

相关问题