Relations are used to link local variables of the Interaction and global variables of the DynamicalSystems, and thus define constraints in the systems.

Relation is an abstract class which provides a generic interface for all types of relations. Each relation has a type which correspond to the types of dynamical systems they fit with (FirstOrder or Lagrangian), a sub-type, (linear, non linear, scleronomous…). Usually, “type+subtype” corresponds more or less to the name of the derived class. Then, depending on the sub-class, each relation holds some plug-in functions or operators used to define the constraints. They are listed below for each available type of relation.

Available classes: FirstOrderR, FirstOrderLinearR, FirstOrderLinearTIR, LagrangianR, LagrangianRheonomousR, LagrangianScleronomousR, LagrangianCompliantR, LagrangianLinearR.


First Order Relations

Non Linear

Class FirstOrderR

\[\begin{split}output &= y = h(X,t,\lambda,Z)\\ input &= R = g(X,t,\lambda,Z)\end{split}\]

We denote:

\[\begin{split}\begin{array}{ccc} H_0(X,t,\lambda,Z)=\nabla_X h(X,t,\lambda,Z)&, & H_1(X,t,\lambda,Z)=\nabla_{\lambda} h(X,t,\lambda,Z) \\ \\ G_0(X,t,\lambda,Z)=\nabla_X g(X,t,\lambda,Z)&, & G_1(X,t,\lambda,Z)=\nabla_{\lambda} g(X,t,\lambda,Z) \end{array}\end{split}\]

\(h\), \(g\) (and their jacobian according to \(X\) and \(\lambda\)) are defined with some plug-in functions. n See the doxygen documentation of the class FirstOrderR to have a list of the set/get/compute functions.

Note: for the signification of \(X\), \(Z\), \(R\) see Interactions between dynamical systems


Class: FirstOrderLinearR

\[\begin{split}y &= C(t,Z)X + F(t,Z)Z + D(t,Z) \lambda + e(t,Z) \\ R &= B(t,Z) \lambda\end{split}\]

Plug-in functions are available for all operators.

Linear with Time Invariant Coefficients

Class FirstOrderLinearTIR

\[\begin{split}y &= CX + FZ + D\lambda + e \\ R &= B \lambda\end{split}\]

Lagrangian (second order) Relations


Class LagrangianScleronomousR

The constraints depend only on the state,

\[\begin{split}y &= h(Q,Z) \\ \dot y &= G_0(Q,Z)\dot Q \\ P &= G_0^t(Q,Z)\lambda\end{split}\]


\[G_0(Q,Z) = \nabla_Q h(Q,Z)\]


Class LagrangianRheonomousR

The constraints depend on time and state,

\[\begin{split}y &= h(Q,t,Z)\\ \dot y &= G_0(Q,t,Z)\dot Q + \frac{\partial h}{\partial t}(Q,t,Z) \\ P &= G_0^t(Q,t,Z)\lambda\end{split}\]


\[\begin{split}G_0(Q,t,Z) = \nabla_Q h(Q,t,Z) \\ hdot(Q,t,Z) = \frac{\partial h}{\partial t}(Q,t,Z)\end{split}\]


Class: LagrangianCompliantR

The constraints depends on state and \(\lambda\), with a function of time for which \(\dot\lambda(t)\) makes sense.

\[\begin{split}y &= h(Q,\lambda(t),Z) \\ \dot y &= G_0(Q,\lambda(t),Z)\dot Q + G_1(Q,\lambda(t),Z)\dot\lambda(t) \\ P &= G_0^t(Q,\lambda(t),Z)\lambda(t)\end{split}\]


\[\begin{split}G_0(Q,\lambda(t),Z) = \nabla_q h(Q,\lambda(t),Z) \\ G_1(Q,\lambda(t),Z) = \nabla_{\lambda(t)}h(Q,\lambda(t),Z)\end{split}\]

Linear and Time Invariant Coefficients

Class: LagrangianLinearR

Lagrangian linear relations with time-invariant coefficients.

\[\begin{split}y&= H Q + b + D\lambda +FZ \\ P &= H^t \lambda\end{split}\]

Relations plug-in functions

  • FirstOrderR: \(h(X,t,\lambda,Z), \ \ g(\lambda,t,Z)\)

  • FirstOrderLinearR: \(C(t,Z), \ \ F(t,Z), \ \ , D(t,Z), \ \ e(t,Z), B(t,Z)\)

  • LagrangianScleronomousR: \(h(Q,Z), \ \ G_0(Q,Z)\)

  • LagrangianRheonomousR: \(h(Q,t,Z), \ \ G_0(Q,t,Z), \ \ hdot(Q,t,Z)\)

  • LagrangianCompliantR: \(h(Q,\lambda,Z), \ \ G_0(Q,\lambda,Z), \ \ G_1(Q,\lambda,Z)\)