如何使用OpenModelica创建一个pnuematic舞者模型?

时间:2017-08-15 11:19:00

标签: openmodelica

我从未使用过Modelica,所以我很难按如下方式构建模型。 我想创建一个模型,以模拟绕线机的气动舞者的行为。有一个主轴可以转动并卷绕一定量的纸幅。舞者的行为根据纸网的要求而变化。我有一张表,其中包含基于主轴旋转角度的请求数据 我想了解如何构建一个简单的模型,其中主轴以特定的速度转动(由梯形信号导出 - > Modelica.Blocks.Sources.Trapezoid,其中我给出了所有时间参数)。我不想考虑主轴的质量和惯性。我认为主轴是系统的速度源。所以,我必须集成(Modelica.Blocks.Continuous.Integrator)速度才能获得主轴的位置。我有一个带有所有数据请求的combiTable1D(Modelica.Blocks.Tables.CombiTable1D) - 主轴的旋转角度。在我的模型中,主轴的旋转角度被命名为“angolo”,它是combiTable中的第一列。 enter image description here

第一个问题是:在第一步中我是否选择了正确的模块来启动我的模型? CombiTable输出是基于主轴位置的纸幅请求。这个输出将是我将在第二步中构建的舞者系统的输入。 我连接了这三个块,我开始模拟,但是我遇到了翻译错误。请参见下图。第二个问题是:为什么会出现这个错误?我该如何解决? enter image description here

非常感谢。

1 个答案:

答案 0 :(得分:0)

1)这部分对我来说不太清楚,但让我试着回答。你想生成主轴的旋转角度,我想你的意思是主轴的角度位置。为此,你所做的是有效的。只是为了提供更好的见解,您也可以通过编写以下内容来实现:

  Modelica.SIunits.Angular Velocity angular_speed          "speed of the spindle";
  Modelica.SIunits.Angle angular_position                  "angular position of the spindle";
  parameter Modelica.SIunits.Angle initial_position        "starting angle of the spindle";

initial equation
  angular_position = initial_position;

equation
  angular_speed = trapezoid1.y;
  der(angular_position) = angular_speed;

2)在模型中使用之前,您需要定义变量“angolo”。你可以添加类似的东西。或者,您可以为变量选择具有正确SI单位的类型。

  Real angolo "This is where you define your variable";

equation
  angolo = CombiTable1D1.y[1];

一般来说,我的理解是你已经将主轴的角度位置作为数据数组,并且你想将它导入到Modelica中以便以后使用。我不明白为什么当你已经拥有想要实现的目标时,你试图整合Modelica中生成的速度信号。

我认为你可以从Michael Tiller的书Modelica by Example中受益匪浅。 In this example,您可以查看类似的初始化。

相关问题