- Index
- » Programming
- » Modelica Language
- » Problem in Freefall with planar loop...
Problem in Freefall with planar loop using Modelica.Multibody Library
Problem in Freefall with planar loop using Modelica.Multibody Library
Is it possible to have a freefall object that has a planar loop structure inside? I know freefall with one single body works well in the bounced ball example. What if I want to simulate a much complicated structure that is falling. I get singularity problem from Dymola. Here's a model and the errors associated.
model Test
Modelica.Mechanics.MultiBody.Joints.Revolute revolute(phi(fixed=true, start=1.5707963267949),
w(fixed=true))
annotation (Placement(transformation(extent={{-56,34},{-36,54}})));
Modelica.Mechanics.MultiBody.Joints.Revolute revolute1
annotation (Placement(transformation(extent={{28,34},{48,54}})));
Modelica.Mechanics.MultiBody.Joints.Revolute revolute2
annotation (Placement(transformation(extent={{-52,-52},{-32,-32}})));
Modelica.Mechanics.MultiBody.Joints.RevolutePlanarLoopConstraint revolute3
annotation (Placement(transformation(extent={{28,-52},{48,-32}})));
Modelica.Mechanics.MultiBody.Parts.BodyBox bodyBox(r={1,0,0})
annotation (Placement(transformation(extent={{-20,36},{0,56}})));
Modelica.Mechanics.MultiBody.Parts.BodyBox bodyBox1(r={0.3,0,0}) annotation (
Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
origin={50,12})));
Modelica.Mechanics.MultiBody.Parts.BodyBox bodyBox2(r={1,0,0})
annotation (Placement(transformation(extent={{-18,-56},{2,-36}})));
Modelica.Mechanics.MultiBody.Parts.BodyBox bodyBox3(r={1,0,0}) annotation (
Placement(transformation(
extent={{-10,-10},{10,10}},
rotation=90,
origin={-48,4})));
inner Modelica.Mechanics.MultiBody.World world
annotation (Placement(transformation(extent={{-84,62},{-64,82}})));
Modelica.Mechanics.MultiBody.Joints.FreeMotion freeMotion(
r_rel_a(fixed=true),
v_rel_a(fixed=true),
angles_fixed=true,
w_rel_a_fixed=true)
annotation (Placement(transformation(extent={{-40,68},{-20,88}})));
equation
connect(revolute.frame_b, bodyBox.frame_a) annotation (Line(
points={{-36,44},{-28,44},{-28,46},{-20,46}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(bodyBox.frame_b, revolute1.frame_a) annotation (Line(
points={{0,46},{14,46},{14,44},{28,44}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(revolute1.frame_b, bodyBox1.frame_b) annotation (Line(
points={{48,44},{50,44},{50,22}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(bodyBox1.frame_a, revolute3.frame_b) annotation (Line(
points={{50,2},{50,-42},{48,-42}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(revolute3.frame_a, bodyBox2.frame_b) annotation (Line(
points={{28,-42},{14,-42},{14,-46},{2,-46}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(bodyBox2.frame_a, revolute2.frame_b) annotation (Line(
points={{-18,-46},{-26,-46},{-26,-42},{-32,-42}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(revolute2.frame_a, bodyBox3.frame_a) annotation (Line(
points={{-52,-42},{-50,-42},{-50,-6},{-48,-6}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(bodyBox3.frame_b, revolute.frame_a) annotation (Line(
points={{-48,14},{-48,28},{-56,28},{-56,44}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(freeMotion.frame_b, bodyBox.frame_a) annotation (Line(
points={{-20,78},{-20,46}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
connect(freeMotion.frame_a, world.frame_b) annotation (Line(
points={{-40,78},{-52,78},{-52,72},{-64,72}},
color={95,95,95},
thickness=0.5,
smooth=Smooth.None));
annotation (Diagram(graphics));
end Test;
ERROR: Failed to solve non-linear system using Newton solver.To get more information: Turn on Simulation/Setup/Debug/Nonlinear solver diagnostics/DetailsSolution to systems of equations not found at time = 0 Nonlinear system of equations number = 2 Infinity-norm of residue = 0.147649 Iteration is not making good progress. Accumulated number of residue calc.: 65 Accumulated number of symbolic Jacobian calc.: 6 Last values of solution vector:revolute2.phi = 0.755891
revolute1.phi = -0.788992
Last values of residual vector:{ -0.113699, -0.0339503 }
Trying to solve non-linear system using global homotopy-method.
ERROR: Failed to solve non-linear system using Newton solver.To get more information: Turn on Simulation/Setup/Debug/Nonlinear solver diagnostics/DetailsSolution to systems of equations not found at time = 0 Nonlinear system of equations number = 2 Infinity-norm of residue = 0.000933738 Iteration is not making good progress. Accumulated number of residue calc.: 176 Accumulated number of symbolic Jacobian calc.: 20 Last values of solution vector:revolute2.phi = 0.329567
revolute1.phi = -0.785398
Last values of residual vector:{ -0.000447414, -0.000486324 }
Error: Failed to start model.
- Index
- » Programming
- » Modelica Language
- » Problem in Freefall with planar loop...