- Index
- » Usage and Applications
- » OpenModelica Usage and Applications
- » Solving Loops with Spherical Joints
Page Start Prev 1 Next End
Solving Loops with Spherical Joints
Solving Loops with Spherical Joints
Dec-06-19 09:54:53
Hi,
i want to simulate arbitrary truss structures and want to determine which of the trusses form a structurally rigid group using Modelica.
In this example, I want to show that a triangle of spherical joints and trusses is fully stiff and stays in place. However currently, state selection fails:
Any hints (also on better debugging are) towards the solution and comments on the fundamental nature of the problem are appreciated.
Thanks a lot in advance.
Edited by: ramboldio - Dec-06-19 10:01:35
Re: Solving Loops with Spherical Joints
Dec-06-19 10:00:32
Code:
model balljointtest
inner Modelica.Mechanics.MultiBody.World world(n = {0, 0, -1}) annotation(
Placement(visible = true, transformation(origin = {-78, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.MultiBody.Joints.Spherical spherical(angles_fixed = true, w_rel_a_fixed = true, z_rel_a_fixed = true) annotation(
Placement(visible = true, transformation(origin = {-46, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.MultiBody.Parts.BodyCylinder bodyCylinder(a_0(fixed = false),angles_fixed = true, r = {0, 1, 1}, r_0(fixed = true), v_0(fixed = false), w_0_fixed = true, z_0_fixed = true) annotation(
Placement(visible = true, transformation(origin = {-16, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.MultiBody.Joints.Spherical spherical1(angles_fixed = true, w_rel_a_fixed = true, z_rel_a_fixed = true) annotation(
Placement(visible = true, transformation(origin = {20, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.MultiBody.Parts.BodyCylinder bodyCylinder1(a_0(fixed = false), angles_fixed = true, r = {0, 0, -1}, r_0(fixed = true), v_0(fixed = false), w_0_fixed = true, z_0_fixed = true) annotation(
Placement(visible = true, transformation(origin = {56, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.MultiBody.Joints.Spherical spherical2(angles_fixed = true, w_rel_a_fixed = true, z_rel_a_fixed = true) annotation(
Placement(visible = true, transformation(origin = {92, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.MultiBody.Parts.BodyCylinder bodyCylinder2(a_0(fixed = false), angles_fixed = true, r = {0, -1, 0}, r_0(fixed = true), v_0(fixed = false), w_0_fixed = true, z_0_fixed = true) annotation(
Placement(visible = true, transformation(origin = {124, 18}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(world.frame_b, spherical.frame_a) annotation(
Line(points = {{-68, 18}, {-56, 18}, {-56, 18}, {-56, 18}}));
connect(spherical.frame_b, bodyCylinder.frame_a) annotation(
Line(points = {{-36, 18}, {-26, 18}}, color = {95, 95, 95}));
connect(bodyCylinder.frame_b, spherical1.frame_a) annotation(
Line(points = {{-6, 18}, {10, 18}, {10, 18}, {10, 18}}));
connect(spherical1.frame_b, bodyCylinder1.frame_a) annotation(
Line(points = {{30, 18}, {46, 18}, {46, 18}, {46, 18}}, color = {95, 95, 95}));
connect(bodyCylinder1.frame_b, spherical2.frame_a) annotation(
Line(points = {{66, 18}, {82, 18}, {82, 18}, {82, 18}}, color = {95, 95, 95}));
connect(spherical2.frame_b, bodyCylinder2.frame_a) annotation(
Line(points = {{102, 18}, {112, 18}, {112, 18}, {114, 18}}, color = {95, 95, 95}));
connect(bodyCylinder2.frame_b, world.frame_b) annotation(
Line(points = {{134, 18}, {156, 18}, {156, 30}, {-62, 30}, {-62, 18}, {-68, 18}, {-68, 18}}, color = {95, 95, 95}));
annotation(
uses(Modelica(version = "3.2.2")));
end balljointtest;
Page Start Prev 1 Next End
- Index
- » Usage and Applications
- » OpenModelica Usage and Applications
- » Solving Loops with Spherical Joints
There are 0 guests and 0 other users also viewing this topic