Constraints.m

Andrew D. Lewis

16 August 1998

1 What does Constraints.m do?

First of all, unless you are somewhat familiar with affine differential geometry, this Mathematica package will probably be useless to you. The constructions I do here are presented in [1, 2].

It is possible write the equations of motion for a constrained mechanical with a kinetic energy Lagrangian as the geodesic equations for a certain affine connection. This assumes constraints linear in velocity. In fact, since we are only interested in those geodesics whose initial velocities satisfy the constraints, there are a family of eligible affine connections, all agreeing when fed vector fields satisfying the constraints.

Here’s a quick description of the construction. Let g be a Riemannian metric on a manifold M with ∇^{g} the corresponding Levi-Civita connection. The constraints are determined by a distribution D; let P : T M → T M be the orthogonal projection onto D^{⊥}, the orthogonal complement of D. For

any invertible (1, 1)-tensor field A define an affine connection ∇^{A} by

∇^{A}_{X} Y =∇^{g}_{X} Y + A^{−1}(∇^{g}_{X} (AP))(Y).

Let’s make sure we understand this: ∇^{g}_{X} (AP) means the covariant deriva-

tive of the (1, 1)-tensor field AP. It turns out that those geodesics of ∇^{A} whose initial velocities lie in D are precisely the solutions of the constrained mechanical system with Lagrangian L(v_{x}) = \frac{1}{2}g(v_{x}, v_{x}). See the references if you want details and worked examples.

2 The functions available with Constraints.m

Here are the commands you get in alphabetical order. Optional arguments are given in italics.

ConstrainedConnection[Conn,A,P,x,Deriv] This returns the Christoffel

symbols for the connection ∇^{A}. Thus the result is a triply indexed array. Conn are the components of ∇^{g}, A are the components of some invertible (1, 1)-tensor field, P is the projection onto D^{⊥}, and x are the coordinates.

Deform[X,Y,Conn,AConn,x] This  gets  you  the  term

A^{−1}(∇_{X}(AP))(Y) i.e., the deformation to the original affine connection. The arguments are vector fields X and Y, the “original” Christoffel symbols Conn, the Christoffel symbols AConn as determined

by ConstrainedConnection, and coordinates x.

Deriv->{Explicit,Implicit} This is an option for certain function calls which differentiate. If you select Explicit, differentiation will be explicit (the default), and if you select Implicit, differentiation will be implicit.

MomentumEquation[g,X,gamma,x,xdot,Deriv] X is a matrix whose

columns are components of vector fields. Thus, if there are m vector fields and Length[x]= n, X will be an m × n matrix. In gamma are m functions of coordinates x. The result will then be the momentum equation corresponding to these vector fields. For this to make sense as the momentum equation for a constrained system, the vector field γ^{a}X_{a} should satisfy the constraints. The vector xdot is the vector of names for the velocities and g is the matrix for the Riemannian metric.

MomentumMap[g,X,gamma,x,xdot] The arguments are those of

MomentumEquation. The result is the nonholonomic momentum map. Thus, for this to make sense, the vector fields forming the columns of X ought to be infinitesimal generators for a group action.

References

[1] Andrew D. Lewis. Affine connections and distributions with applications to nonholonomic mechanics. To appear in Reports on Mathematical Physics, 1997. Proceedings of The Workshop on Non-holonomic Constraints in Dynamics, Calgary, Alberta, August 1997.

[2] Andrew D. Lewis. Simple mechanical control systems with constraints. Submitted to IEEE Transactions on Automatic Control, 1997.