PlanarLoops

Planar loops

    PlanarLoops

Library

Modelica/Mechanics/MultiBody/UsersGuide/Tutorial/LoopStructures

Description

In the figure below, the model of a V6 engine isshown that has a simple combustion model. It is available asMultiBody.Examples.Loops.EngineV6.

The Modelica schematic of one cylinderis given in the figure below. Connecting 6 instances of thiscylinder appropriately together results in the engine schematic displayedabove.

In the next figure the animation of the engine isshown. Every cylinder consists essentially of 1 prismatic and 2 revolutejoints that form a planar loop, since the axes of the two revolute joints areparallel to each other and the axis of the prismatic joint is orthogonal tothe revolute joint axes. All 6 cylinders together form a coupled set of 6loops that have together 1 degree of freedom.

All planar loops, and especially the engine, result ina DAE (= Differential-Algebraic Equation system)that does not have a unique solution. The reason is that, e.g., the cutforces in direction of the axes of the revolute joints cannot be uniquelycomputed. Any value fulfills the DAE equations. This is a structural propertythat is determined by the symbolic algorithms. Since they detect that the DAE isstructurally singular, a further processing is not possible. Withoutadditional information it is also impossible that the symbolic algorithmscould be enhanced because if the axes of rotations of the revolute joints areonly slightly changed such that they are no longer parallel to each other, theplanar loop can no longer move and has 0 degrees of freedom. Algorithms basedon pure structural information cannot distinguish these two cases.

The usual remedy is to remove superfluous constraints,e.g., along the axis of rotation of one revolute joint. Since this isnot easy for an inexperienced modeler, the special joint:RevolutePlanarLoopConstraint is provided that removes these constraints.Exactly one revolute joint in a every planar loop must be replaced by thisjoint type. In the engine example, this special joint is used forthe revolute joint B2 in the cylinder model above. The icon of the joint isslightly different to other revolute joints to visualize this case.

If a modeler is not aware of the problems with planarloops and models them without special consideration, a Modelicatranslator displays an errormessage and points out that a planar loop may be the reason and suggests touse the RevolutePlanarLoopConstraint joint.This error message is due to an annotation inthe Frame connector.

  connector Frame     ...     flow SI.Force f[3] annotation(unassignedMessage="..");  end Frame;

If no assignment can be found for someforces in a connector, the "unassignedMessage" is displayed. In most cases thereason for this is a planar loop or two joints that constrain the same motion.Both cases are discussed in the error message.

Note, that the non-linear algebraic equations occurringin planar loops can be solved analytically in most cases and therefore it ishighly recommended to use the techniques discussed in section"Analytic loop handling"for such systems.