Archived OpenModelica forums. Posting is disabled.

Alternative forums include GitHub discussions or StackOverflow (make sure to read the Stack Overflow rules; you need to have well-formed questions)


Forgot password? | Forgot username? | Register

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.

There are 0 guests and 0 other users also viewing this topic
You are here: