Relations

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.

../_images/relation_classes.jpg

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

Linear

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

Scleronomous

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}\]

with

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

Rheonomous

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}\]

with

\[\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}\]

Compliant

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}\]

with

\[\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)\)