首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用OpenModelica创建一个舞蹈演员的模型?

如何用OpenModelica创建一个舞蹈演员的模型?
EN

Stack Overflow用户
提问于 2017-08-15 19:19:00
回答 1查看 38关注 0票数 0

我从来没有使用过Modelica,所以我很难像下面这样构建一个模型。我想创建一个模型,以便模拟绕线机的气动舞者的行为。有一个主轴,它旋转和滚动自己的一定数量的纸幅。舞者的行为会随着纸幅的要求而变化。我有一个表格,里面有基于主轴旋转角度的请求数据。

我想了解如何构建一个简单的模型,使主轴以特定的速度旋转(由梯形信号-->Modelica.Blocks.Sources.Trapezoid导出,其中我已经给出了所有的时间参数)。我不想考虑主轴的质量和惯性。我认为主轴是系统的速度源。因此,我必须积分( Modelica.Blocks.Continuous.Integrator )速度才能获得主轴的位置。我有一个包含所有数据请求的combiTable1D ( Modelica.Blocks.Tables.CombiTable1D )-主轴的旋转角度。在我的模型中,主轴的旋转角度被命名为"angolo“,这是combiTable中的第一列。enter image description here

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

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2017-08-16 18:03:21

1)这部分我不太清楚,但让我试着回答。你想产生主轴的旋转角度,我想你是指主轴的角位置。因此,您所做的是有效的。为了给你更好的洞察力,你也可以通过写下下面几行代码来实现:

代码语言:javascript
复制
  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之前,需要先定义变量angolo。您可以添加类似这样的内容。或者,您可以为您的变量选择具有正确SI单位的类型。

代码语言:javascript
复制
  Real angolo "This is where you define your variable";

equation
  angolo = CombiTable1D1.y[1];

一般来说,我所理解的是,您已经将主轴的角度位置作为一个数据数组,并且希望将其导入Modelica以供以后使用。我不明白你为什么要尝试集成Modelica中生成的速度信号,而你最终已经拥有了你想要实现的东西。

我认为你可以从Michael Tiller的书Modelica by Example中获益良多。In this example,你可以看看类似的初始化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45691785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档