# Udwadia–Kalaba formulation

In classical mechanics, the Udwadia–Kalaba formulation is a method for deriving the equations of motion of a constrained mechanical system. The method was first described by Anatolii Fedorovich Vereshchagin for the particular case of robotic arms, and later generalized to all mechanical systems by Firdaus E. Udwadia and Robert E. Kalaba in 1992. The approach is based on Gauss's principle of least constraint. The Udwadia–Kalaba method applies to both holonomic constraints and nonholonomic constraints, as long as they are linear with respect to the accelerations. The method generalizes to constraint forces that do not obey D'Alembert's principle.

## Background

The Udwadia–Kalaba equation was developed in 1992 and describes the motion of a constrained mechanical system that is subjected to equality constraints.
This differs from the Lagrangian formalism, which uses the Lagrange multipliers to describe the motion of constrained mechanical systems, and other similar approaches such as the Gibbs–Appell approach. The physical interpretation of the equation has applications in areas beyond theoretical physics, such as the control of highly nonlinear general dynamical systems.

## The central problem of constrained motion

In the study of the dynamics of mechanical systems, the configuration of a given system S is, in general, completely described by n generalized coordinates so that its generalized coordinate n-vector is given by
    $\mathbf {q} :=[q_{1},q_{2},\ldots ,q_{n}]^{\mathrm {T} }.$
where T denotes matrix transpose. Using Newtonian or Lagrangian dynamics, the unconstrained equations of motion of the system S under study can be derived as a matrix equation (see matrix multiplication):
$\mathbf {M} (q,t){\ddot {\mathbf {q} }}(t)=\mathbf {Q} (q,{\dot {q}},t)\,,$
where the dots represent derivatives with respect to time:
    ${\dot {q}}_{i}={\frac {dq_{i}}{dt}}\,.$
It is assumed that the initial conditions q(0) and ${\dot {\mathbf {q} }}(0)$ are known. We call the system S unconstrained because ${\dot {\mathbf {q} }}(0)$ may be arbitrarily assigned.
The n-vector Q denotes the total generalized force acted on the system by some external influence; it can be expressed as the sum of all the conservative forces as well as non-conservative forces.
The n-by-n matrix M is symmetric, and it can be positive definite $(\mathbf {M} >0)$ or semi-positive definite $(\mathbf {M} \geq 0)$. Typically, it is assumed that M is positive definite; however, it is not uncommon to derive the unconstrained equations of motion of the system S such that M is only semi-positive definite; i.e., the mass matrix may be singular (it has no inverse matrix).

### Constraints

We now assume that the unconstrained system S is subjected to a set of m consistent equality constraints given by
    $\mathbf {A} (q,{\dot {q}},t){\ddot {\mathbf {q} }}=\mathbf {b} (q,{\dot {q}},t),$
where A is a known m-by-n matrix of rank r and b is a known m-vector. We note that this set of constraint equations encompass a very general variety of holonomic and non-holonomic equality constraints. For example, holonomic constraints of the form
    $\varphi (q,t)=0$
can be differentiated twice with respect to time while non-holonomic constraints of the form
    $\psi (q,{\dot {q}},t)=0$
can be differentiated once with respect to time to obtain the m-by-n matrix A and the m-vector b. In short, constraints may be specified that are
* nonlinear functions of displacement and velocity,
* explicitly dependent on time, and
* functionally dependent.
As a consequence of subjecting these constraints to the unconstrained system S, an additional force is conceptualized to arise, namely, the force of constraint. Therefore, the constrained system S$_c$ becomes
$\mathbf {M} {\ddot {\mathbf {q} }}=\mathbf {Q} +\mathbf {Q} _{c}(q,{\dot {q}},t),$
where Q$_c$—the constraint force—is the additional force needed to satisfy the imposed constraints. The central problem of constrained motion is now stated as follows:
* given the unconstrained equations of motion of the system S,
* given the generalized displacement q(t) and the generalized velocity ${\dot {q}}(t)$ of the constrained system S$_c$ at time t, and
* given the constraints in the form $\mathbf {A} {\ddot {q}}=\mathbf {b}$ as stated above,
find the equations of motion for the constrained system—the acceleration—at time t, which is in accordance with the agreed upon principles of analytical dynamics.

## Notation

Below, for positive definite ⁠$\mathbf {M}$⁠, ⁠$\mathbf {M} ^{-1/2}$⁠ denotes the inverse of its square root, defined as
    $\mathbf {M} ^{-1/2}=\mathbf {W} \mathbf {\Lambda } ^{-1/2}\mathbf {W} ^{T}$,
where ⁠$\mathbf {W}$⁠ is the orthogonal matrix arising from eigendecomposition (whose rows consist of suitably selected eigenvectors of ⁠$\mathbf {M}$⁠), and ⁠$\mathbf {\Lambda } ^{-1/2}$⁠ is the diagonal matrix whose diagonal elements are the inverse square roots of the eigenvalues corresponding to the eigenvectors in ⁠$\mathbf {W}$⁠.

## Equation of motion

The solution to this central problem is given by the Udwadia–Kalaba equation. When the matrix M is positive definite, the equation of motion of the constrained system S$_c$, at each instant of time, is
    $\mathbf {M} {\ddot {\mathbf {q} }}=\mathbf {Q} +\mathbf {M} ^{1/2}\left(\mathbf {A} \mathbf {M} ^{-1/2}\right)^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} ^{-1}\mathbf {Q} ),$
where the '+' symbol denotes the pseudoinverse of the matrix $\mathbf {A} \mathbf {M} ^{-1/2}$. The force of constraint is thus given explicitly as
    $\mathbf {Q} _{c}=\mathbf {M} ^{1/2}\left(\mathbf {A} \mathbf {M} ^{-1/2}\right)^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} ^{-1}\mathbf {Q} ),$
and since the matrix M is positive definite the generalized acceleration of the constrained system S$_c$ is determined explicitly by
    ${\ddot {\mathbf {q} }}=\mathbf {M} ^{-1}\mathbf {Q} +\mathbf {M} ^{-1/2}\left(\mathbf {A} \mathbf {M} ^{-1/2}\right)^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} ^{-1}\mathbf {Q} ).$
In the case that the matrix M is semi-positive definite $(\mathbf {M} \geq 0)$, the above equation cannot be used directly because M may be singular. Furthermore, the generalized accelerations may not be unique unless the (n + m)-by-n matrix
    ${\hat {\mathbf {M} }}=\left[{\begin{array}{c}\mathbf {M} \\\mathbf {A} \end{array}}\right]$
has full rank (rank = n). But since the observed accelerations of mechanical systems in nature are always unique, this rank condition is a necessary and sufficient condition for obtaining the uniquely defined generalized accelerations of the constrained system S$_c$ at each instant of time. Thus, when ${\hat {\mathbf {M} }}$ has full rank, the equations of motion of the constrained system S$_c$ at each instant of time are uniquely determined by (1) creating the auxiliary unconstrained system
    $\mathbf {M} _{\mathbf {A} }{\ddot {\mathbf {q} }}:=(\mathbf {M} +\mathbf {A} ^{+}\mathbf {A} ){\ddot {\mathbf {q} }}=\mathbf {Q} +\mathbf {A} ^{+}\mathbf {b} :=\mathbf {Q} _{\mathbf {b} },$
and by (2) applying the fundamental equation of constrained motion to this auxiliary unconstrained system so that the auxiliary constrained equations of motion are explicitly given by
    $\mathbf {M} _{\mathbf {A} }{\ddot {\mathbf {q} }}=\mathbf {Q} _{\mathbf {b} }+\mathbf {M} _{\mathbf {A} }^{1/2}(\mathbf {A} \mathbf {M} _{\mathbf {A} }^{-1/2})^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} _{\mathbf {A} }^{-1}\mathbf {Q} _{\mathbf {b} }).$
Moreover, when the matrix ${\hat {\mathbf {M} }}$ has full rank, the matrix $\mathbf {M} _{\mathbf {A} }$ is always positive definite. This yields, explicitly, the generalized accelerations of the constrained system S$_c$ as
    ${\ddot {\mathbf {q} }}=\mathbf {M} _{\mathbf {A} }^{-1}\mathbf {Q} _{\mathbf {b} }+\mathbf {M} _{\mathbf {A} }^{-1/2}(\mathbf {A} \mathbf {M} _{\mathbf {A} }^{-1/2})^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} _{\mathbf {A} }^{-1}\mathbf {Q} _{\mathbf {b} }).$
This equation is valid when the matrix M is either positive definite or positive semi-definite. Additionally, the force of constraint that causes the constrained system S$_c$—a system that may have a singular mass matrix M—to satisfy the imposed constraints is explicitly given by
    $\mathbf {Q} _{c}=\mathbf {M} _{\mathbf {A} }^{1/2}(\mathbf {A} \mathbf {M} _{\mathbf {A} }^{-1/2})^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} _{\mathbf {A} }^{-1}\mathbf {Q} _{\mathbf {b} }).$

## Non-ideal constraints

At any time during the motion we may consider perturbing the system by a virtual displacement δr consistent with the constraints of the system. The displacement is allowed to be either reversible or irreversible. If the displacement is irreversible, then it performs virtual work. We may write the virtual work of the displacement as
    $W_{c}(t)=\mathbf {C} ^{\mathrm {T} }(q,{\dot {q}},t)\delta \mathbf {r} (t)$
The vector $\mathbf {C} (q,{\dot {q}},t)$ describes the non-ideality of the virtual work and may be related, for example, to friction or drag forces (such forces have velocity dependence). This is a generalized D'Alembert's principle, where the usual form of the principle has vanishing virtual work with $\mathbf {C} (q,{\dot {q}},t)=0$.
The Udwadia–Kalaba equation is modified by an additional non-ideal constraint term to
    $\mathbf {M} {\ddot {\mathbf {q} }}=\mathbf {Q} +\mathbf {M} ^{1/2}\left(\mathbf {A} \mathbf {M} ^{-1/2}\right)^{+}(\mathbf {b} -\mathbf {A} \mathbf {M} ^{-1}\mathbf {Q} )+\mathbf {M} ^{1/2}\left[\mathbf {I} -\left(\mathbf {A} \mathbf {M} ^{-1/2}\right)^{+}\mathbf {A} \mathbf {M} ^{-1/2}\right]\mathbf {M} ^{-1/2}\mathbf {C}$

## Examples
### Inverse Kepler problem

The method can solve the inverse Kepler problem of determining the force law that corresponds to the orbits that are conic sections. We take there to be no external forces (not even gravity) and instead constrain the particle motion to follow orbits of the form
    $r=\varepsilon x+\ell$
where $r={\sqrt {x^{2}+y^{2}}}$, $\varepsilon$ is the eccentricity, and ℓ{\textstyle \ell } is the semi-latus rectum. Differentiating twice with respect to time and rearranging slightly gives a constraint
    $(x-r\varepsilon ){\ddot {x}}+y{\ddot {y}}=-{\frac {(x{\dot {y}}-y{\dot {x}})^{2}}{r^{2}}}$
We assume the body has a simple, constant mass. We also assume that angular momentum about the focus is conserved as
    $m(x{\dot {y}}-y{\dot {x}})=L$
with time derivative
    $x{\ddot {y}}-y{\ddot {x}}=0$
We can combine these two constraints into the matrix equation
    ${\begin{pmatrix}x-r\varepsilon &y\\y&-x\end{pmatrix}}{\begin{pmatrix}{\ddot {x}}\\{\ddot {y}}\end{pmatrix}}={\begin{pmatrix}-{\frac {L^{2}}{m^{2}r^{2}}}\\0\end{pmatrix}}$
The constraint matrix has inverse
    ${\begin{pmatrix}x-r\varepsilon &y\\y&-x\end{pmatrix}}^{-1}={\frac {1}{\ell r}}{\begin{pmatrix}x&y\\y&-(x-r\varepsilon )\end{pmatrix}}$
The force of constraint is therefore the expected, central inverse square law
    $\mathbf {F} _{c}=m\mathbf {A} ^{-1}\mathbf {b} ={\frac {m}{\ell r}}{\begin{pmatrix}x&y\\y&-(x-r\varepsilon )\end{pmatrix}}{\begin{pmatrix}-{\frac {L^{2}}{m^{2}r^{2}}}\\0\end{pmatrix}}=-{\frac {L^{2}}{m\ell r^{2}}}{\begin{pmatrix}\cos \theta \\\sin \theta \end{pmatrix}}$

### Inclined plane with friction

Consider a small block of constant mass on an inclined plane at an angle $\alpha$ above horizontal. The constraint that the block lie on the plane can be written as
    $y=x\tan \alpha$
After taking two time derivatives, we can put this into a standard constraint matrix equation form
    ${\begin{pmatrix}-\tan \alpha &1\end{pmatrix}}{\begin{pmatrix}{\ddot {x}}\\{\ddot {y}}\end{pmatrix}}=0$
The constraint matrix has pseudoinverse
    ${\begin{pmatrix}-\tan \alpha &1\end{pmatrix}}^{+}=\cos ^{2}\alpha {\begin{pmatrix}-\tan \alpha \\1\end{pmatrix}}$
We allow there to be sliding friction between the block and the inclined plane. We parameterize this force by a standard coefficient of friction multiplied by the normal force
    $\mathbf {C} =-\mu mg\cos \alpha \operatorname {sgn} {\dot {y}}{\begin{pmatrix}\cos \alpha \\\sin \alpha \end{pmatrix}}$
Whereas the force of gravity is reversible, the force of friction is not. Therefore, the virtual work associated with a virtual displacement will depend on C. We may summarize the three forces (external, ideal constraint, and non-ideal constraint) as follows:
    $\mathbf {F} _{\text{ext}}=\mathbf {Q} =-mg{\begin{pmatrix}0\\y\end{pmatrix}}$
    $\mathbf {F} _{c,i}=-\mathbf {A} ^{+}\mathbf {A} \mathbf {Q} =mg\cos ^{2}\alpha {\begin{pmatrix}-\tan \alpha \\1\end{pmatrix}}{\begin{pmatrix}-\tan \alpha &1\end{pmatrix}}{\begin{pmatrix}0\\y\end{pmatrix}}=mg{\begin{pmatrix}-\sin \alpha \cos \alpha \\\cos ^{2}\alpha \end{pmatrix}}$
    $\mathbf {F} _{c,ni}=(\mathbf {I} -\mathbf {A} ^{+}\mathbf {A} )\mathbf {C} =-\mu mg\cos \alpha \operatorname {sgn} {\dot {y}}\left[{\begin{pmatrix}1&0\\0&1\end{pmatrix}}-\cos ^{2}\alpha {\begin{pmatrix}-\tan \alpha \\1\end{pmatrix}}{\begin{pmatrix}-\tan \alpha &1\end{pmatrix}}\right]=-\mu mg\cos \alpha \operatorname {sgn} {\dot {y}}{\begin{pmatrix}\cos ^{2}\alpha \\\sin \alpha \cos \alpha \end{pmatrix}}$
Combining the above, we find that the equations of motion are
    ${\begin{pmatrix}{\ddot {x}}\\{\ddot {y}}\end{pmatrix}}={\frac {1}{m}}\left(\mathbf {F} _{\text{ext}}+\mathbf {F} _{c,i}+\mathbf {F} _{c,ni}\right)=-g\left(\sin \alpha +\mu \cos \alpha \operatorname {sgn} {\dot {y}}\right){\begin{pmatrix}\cos \alpha \\\sin \alpha \end{pmatrix}}$
This is like a constant downward acceleration due to gravity with a slight modification. If the block is moving up the inclined plane, then the friction increases the downward acceleration. If the block is moving down the inclined plane, then the friction reduces the downward acceleration.