This example demonstrates at hand of a double pendulum, how non-standard initialization can be defined: The absolute position of the pendulum tip, and its absolute speed shall be initially defined. This can be performed with the Joints.FreeMotionScalarInit joint that allows to initialize individual elements of its relative vectors. In this case, the x-, and y-coordinates of the relative position vector (visualized by the yellow arrow in the figure below) and of its derivative shall have a defined value at initial time. The configuration of the double pendulum at the initial time is shown below, where the tip position is required to have the coordinates x=0.7, y=0.3.
Setting only the tip's start position results in an ambiguous
initialization since two valid solutions for
revolute1.phi
and revolute2.phi
exist.
Moreover, the calculated angles revolute1.phi
and
revolute2.phi
can be a multiple of expected solution
phi1
and phi2
,
To clearly indicate the preferred solution, guess initial angles
can be additionally given. In this example, it is simply done by
revolute2.phi.start = Modelica.Constants.pi/2
.