我从来没有使用过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
非常感谢。
发布于 2017-08-16 18:03:21
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之前,需要先定义变量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,你可以看看类似的初始化。
https://stackoverflow.com/questions/45691785
复制相似问题