用modelica进行简单四连杆机构仿真的误差分析

用modelica进行简单四连杆机构仿真的误差分析,modelica,openmodelica,Modelica,Openmodelica,我正在尝试实现一个4链接机制,我建立的模型如下所示: Revolution1的速度为5 rad/s。所有钢筋的直径均为0.05 m。世界设置是默认设置,您可以在图片上看到条形向量。其他一切都没有改变 当我尝试运行模拟时,OpenModelica上出现以下错误: [1] 10:29:43符号错误 [Modelica.Mechanics.MultiBody.Parts:238:5-238:62]:模型结构奇异,存在错误 [2] 10:33:25翻译错误 内部错误转换模块PFPlusExt索引缩减方

我正在尝试实现一个4链接机制,我建立的模型如下所示:

Revolution1的速度为5 rad/s。所有钢筋的直径均为0.05 m。世界设置是默认设置,您可以在图片上看到条形向量。其他一切都没有改变

当我尝试运行模拟时,OpenModelica上出现以下错误:

[1] 10:29:43符号错误 [Modelica.Mechanics.MultiBody.Parts:238:5-238:62]:模型结构奇异,存在错误

[2] 10:33:25翻译错误 内部错误转换模块PFPlusExt索引缩减方法Pantelides失败


我做错了什么?这似乎很直截了当。谢谢。

您需要将其中一个
revolution
关节替换为
revolutionplanarloopConstraint
。为什么?引用:

如果存在平面回路,例如,由4个旋转接头组成 如果关节轴彼此平行,则不存在 如果所有旋转关节都使用 Revolute和符号算法将失败。原因是 例如,垂直于旋转轴的旋转关节中的切削力 三维时,平面回路不是唯一定义的。描述 使用旋转接头


您需要将其中一个
revolution
关节替换为
RevolutionPlanarLoopConstraint
。为什么?引用:

如果存在平面回路,例如,由4个旋转接头组成 如果关节轴彼此平行,则不存在 如果所有旋转关节都使用 Revolute和符号算法将失败。原因是 例如,垂直于旋转轴的旋转关节中的切削力 三维时,平面回路不是唯一定义的。描述 使用旋转接头


除了需要使用平面四杆机构的
Modelica.Mechanics.multi-body.joint.revolutionplanarloopConstraint
外,还需要调整模型拓扑,因为将
bar2
固定为
world
。参见示例模型。

除了需要使用
Modelica.Mechanics.multi-body.joint.revolutionplanarloopConstraint
外,对于平面四杆机构,还需要调整模型拓扑,因为
bar2
固定为
world
。参见示例模型。

您是否满足了链接图右上角的条件?根据我的经验,奇异模型通常要么是因为冗余方程,要么是因为一开始的不相容条件。另一种可能性是,你的方程系统无法实现,例如,如果你的棒的长度是错误的,以至于它们无法物理连接,我猜。@Christoph除非我误解了棒的“r”向量是如何工作的,否则我会填充它。从我所看到的,“r”总是相对于点框a的位置,对吗?在这种情况下,你可以在模型中看到,我的ABCD点是这样设置的:{0,0,0},{0,2,0},{4,3,0},{5,0,0},它给出了AB=2,BC=sqrt(17),CD=sqrt(10)和AD=5,除了“r”向量和直径之外,我还需要为这些条添加任何其他参数吗?我帮不了你,我从未使用过机械部件。您是否满足链接图右上角的条件?根据我的经验,奇异模型通常要么是因为冗余方程,要么是因为一开始的不相容条件。另一种可能性是,你的方程系统无法实现,例如,如果你的棒的长度是错误的,以至于它们无法物理连接,我猜。@Christoph除非我误解了棒的“r”向量是如何工作的,否则我会填充它。从我所看到的,“r”总是相对于点框a的位置,对吗?在这种情况下,你可以在模型中看到,我的ABCD点是这样设置的:{0,0,0},{0,2,0},{4,3,0},{5,0,0},它给出了AB=2,BC=sqrt(17),CD=sqrt(10)和AD=5,除了“r”向量和直径之外,我还必须为钢筋设置任何其他参数吗?我帮不了你,我从未使用过机械部件。