基于Modelica语言的球轴承建模技术问题咨询
Modelica球轴承动力学建模问题
问题概述
基于Modelica构建球轴承的无故障及故障动力学模型并开展可视化分析,当前通过BodyShape组件调用SolidWorks图纸实现轴承可视化,但添加第二个滚珠时出现方程与未知量数量不匹配的模型错误,无法完成滚珠、保持架的约束与运动设置。
当前建模配置
- 轴承外圈通过Fixed组件固定
- 外圈与滚珠1间连接Revolute1组件,滚珠1与内圈间连接Revolute组件,为Revolute组件添加BearingFriction组件实现摩擦
- 轴承内圈另一端添加WorldTorque与RealExpression[3],单个滚珠可正常滚动,添加第二个滚珠时触发报错
模型代码
model Main annotation (Diagram(coordinateSystem(extent = {{-250, 410}, {660, 730}}, grid = {2, 2})), Icon(coordinateSystem(extent = {{-100, -100}, {100, 100}}, preserveAspectRatio = false, initialScale = 0.1, grid = {2, 2}), graphics = {Rectangle(extent = {{-100, -100}, {100, 100}}), Text(extent = {{-120, 100}, {120, 140}}, textString = "Main"), Bitmap(extent = {{-100, -100}, {100, 100}}, fileName = ".\bearing.jpg")})); inner Modelica.Mechanics.MultiBody.World world( animateWorld = false, animateGravity = false) annotation (Placement(transformation(origin = {-220, 561.7547938270272}, extent = {{-10, -10}, {10.000000000000028, 10}}))); model Tybodyshape_ball_1 extends Modelica.Mechanics.MultiBody.Parts.BodyShape; annotation (Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}, grid = {1, 1}), graphics = {Bitmap(extent = {{-100, -100}, {100, 100}}, fileName = "ball_1_prt.jpg")})); end Tybodyshape_ball_1; Tybodyshape_ball_1 ball_1( animation = true, animateSphere = false, r = {0, 0, 0}, r_CM = {0, 0, 0}, m = 0.00205743, I_11 = 1.2971e-008, I_22 = 1.29706e-008, I_33 = 1.29706e-008, I_21 = -4.53357e-032, I_31 = 3.70194e-016, I_32 = -6.19219e-041, shapeType = "5.stl", r_shape = {0, 0, 0}, lengthDirection = {1, 0, 0}, widthDirection = {0, 1, 0}, length = 1, width = 1, height = 1, extra = 1, color = {198, 193, 188}, specularCoefficient = 0.7, r_0(start = {-2.03501e-018, -0.0168136, 0.000220603}, fixed = false)) annotation (Placement(transformation(origin = {98, 654}, extent = {{-10, -10}, {10, 10}}))); model Tybodyshape_ball_1_2 extends Modelica.Mechanics.MultiBody.Parts.BodyShape; annotation (Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}, grid = {1, 1}), graphics = {Bitmap(extent = {{-100, -100}, {100, 100}}, fileName = "ball_1_prt.jpg")})); end Tybodyshape_ball_1_2; model Tybodyshape_cage_new extends Modelica.Mechanics.MultiBody.Parts.BodyShape; annotation (Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}, grid = {1, 1}), graphics = {Bitmap(extent = {{-100, -100}, {100, 100}}, fileName = "cage_new_prt.jpg")})); end Tybodyshape_cage_new; model Tybodyshape_inner_race_1 extends Modelica.Mechanics.MultiBody.Parts.BodyShape; annotation (Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}, grid = {1, 1}), graphics = {Bitmap(extent = {{-100, -100}, {100, 100}}, fileName = "inner_race_1_prt.jpg")})); end Tybodyshape_inner_race_1; Tybodyshape_inner_race_1 inner_race_1( animation = true, animateSphere = false, r = {0, 0, 0}, r_CM = {0, 0, 0}, m = 0.0301719, I_11 = 4.36027e-006, I_22 = 2.71662e-006, I_33 = 2.71662e-006, I_21 = -3.36432e-015, I_31 = -1.45451e-022, I_32 = -1.93935e-022, shapeType = "6.stl", r_shape = {0, 21, 0}, lengthDirection = {1, 1.16033e-028, 4.37135e-029}, widthDirection = {-1.14809e-028, 0.733312, 0.679892}, length = 1, width = 1, height = 1, extra = 1, color = {198, 193, 188}, specularCoefficient = 0.7, r_0(start = {0, 0, 0}, fixed = false)) annotation (Placement(transformation(origin = {458, 654}, extent = {{-10, -10}, {10, 10}}))); model Tybodyshape_out_race_1 extends Modelica.Mechanics.MultiBody.Parts.BodyShape; annotation (Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}, grid = {1, 1}), graphics = {Bitmap(extent = {{-100, -100}, {100, 100}}, fileName = "out_race_1_prt.jpg")})); end Tybodyshape_out_race_1; Tybodyshape_out_race_1 out_race_1( animation = true, animateSphere = false, r = {0, 0, 0}, r_CM = {0, 0, 0}, m = 0.0553286, I_11 = 2.64058e-005, I_22 = 1.41716e-005, I_33 = 1.41716e-005, I_21 = 3.53996e-013, I_31 = 3.8787e-022, I_32 = 1.55148e-021, shapeType = "7.stl", r_shape = {0, -21, 0}, lengthDirection = {1, 0, 0}, widthDirection = {0, 1, 0}, length = 1, width = 1, height = 1, extra = 1, color = {198, 193, 188}, specularCoefficient = 0.7, r_0(start = {0, 0, 0}, fixed = false)) annotation (Placement(transformation(origin = {-96, 561.7547938270272}, extent = {{-10, -10}, {10, 10}}))); Modelica.Mechanics.MultiBody.Parts.Fixed fixed1(animation = false) annotation (Placement(transformation(origin = {-158, 561.7547938270272}, extent = {{-10, -10}, {10, 10}})), __MWORKS(BlockSystem(StateMachine))); Modelica.Mechanics.MultiBody.Joints.Revolute revolute(useAxisFlange = true, animation = false, n = {1, 0, 0}) annotation (Placement(transformation(origin = {342, 654}, extent = {{-10, -10}, {10, 10}}))); Modelica.Mechanics.MultiBody.Joints.Revolute revolute1(useAxisFlange = false, animation = false, n = {1, 0, 0}) annotation (Placement(transformation(origin = {-50, 561.7547938270272}, extent = {{-10, -10}, {10, 10}})), __MWORKS(BlockSystem(StateMachine))); Modelica.Blocks.Sources.RealExpression realExpression[3](y = 0.001) annotation (Placement(transformation(origin = {574, 654}, extent = {{10, -10}, {-10, 10}})), __MWORKS(BlockSystem(StateMachine))); Modelica.Mechanics.MultiBody.Forces.WorldTorque torque(animation = false) annotation (Placement(transformation(origin = {526, 654}, extent = {{10, -10}, {-10, 10}})), __MWORKS(BlockSystem(StateMachine))); Modelica.Mechanics.Rotational.Components.BearingFriction bearingFriction1(useSupport = false, peak = 1, tau_pos = [0, 1]) annotation (Placement(transformation(origin = {352, 694}, extent = {{-10, -10}, {10, 10}})), __MWORKS(BlockSystem(StateMachine))); equation connect(fixed1.frame_b, out_race_1.frame_a) annotation (Line(origin = {-107, 562}, points = {{-41, -0.24520617297275749}, {1.0000000000000142, -0.24520617297275749}}, color = {95, 95, 95}, thickness = 0.5)); connect(revolute1.frame_a, out_race_1.frame_b) annotation (Line(origin = {-60, 622}, points = {{0, -60.24520617297276}, {-26, -60.24520617297276}}, color = {95, 95, 95}, thickness = 0.5)); connect(realExpression.y, torque.torque) annotation (Line(origin = {546, 654.3850644181664}, points = {{17, -0.3850644181663938}, {-8, -0.3850644181663938}}, color = {0, 0, 127})); connect(inner_race_1.frame_b, torque.frame_b) annotation (Line(origin = {489, 597}, points = {{-21, 57}, {27, 57}}, color = {95, 95, 95}, thickness = 0.5)); connect(revolute.frame_b, inner_race_1.frame_a) annotation (Line(origin = {399, 612}, points = {{-47, 42}, {49, 42}}, color = {95, 95, 95}, thickness = 0.5)); connect(revolute1.frame_b, ball_1.frame_a) annotation (Line(origin = {18, 608}, points = {{-58, -46.24520617297276}, {-28, -46.24520617297276}, {-28, 46}, {70, 46}}, color = {95, 95, 95}, thickness = 0.5)); connect(bearingFriction1.flange_a, revolute.support) annotation (Line(origin = {339, 679}, points = {{3, 15}, {-11, 15}, {-11, -15}, {-3, -15}}, color = {0, 0, 0})); connect(bearingFriction1.flange_b, revolute.axis) annotation (Line(origin = {352, 679}, points = {{10, 15}, {20, 15}, {20, -15}, {-10, -15}}, color = {0, 0, 0})); connect(ball_1.frame_b, revolute.frame_a) annotation (Line(origin = {214, 654}, points = {{-106, 0}, {118, 0}}, color = {95, 95, 95}, thickness = 0.5)); end Main;
内容的提问来源于stack exchange,提问作者KE SHI
相关产品推荐
相关产品推荐

