Board Reference

    Flight Controller
    Field Oriented Controller

    Motor Drive

    PMSM

    Motion Control

    Attitude Control

    Tutorial

    Mathematics
    Classical Control
    State Estimation
    Feedforward Control
    Disturbance Observer
    Motion Control

Acceleration controller for Multi-DoF System

If an acceleration controller can be constructed on a joint space, acceleration control on another coordinate system, called a work space, is indirectly available.

Kinematics

Let us consider a injective map
hq:qRmxRm,\begin{align} h_{q}: \bm{\bm{q}}\in\mathbb{R}^{m} \hookrightarrow \bm{x}\in\mathbb{R}^{m}, \end{align}
where q\bm{\bm{q}} and x\bm{x} stands for generalized positions on a joint space and work space, and mm denotes the dimension of the vectors. A point on a joint space corresponds to a point on a work space one to one, i.e., there is no redundant degree-of-freedom. Let a joint space and work space be a differentiable manifold. A velocity and acceleration on a joint space map to
x˙=Jaco(q)q˙x¨=Jaco(q)q¨+J˙aco(q)q˙,\begin{align} \dot{\bm{x}} &= \bm{J}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}} \\ \ddot{\bm{x}} &= \bm{J}_{\rm aco}(\bm{\bm{q}})\ddot{\bm{\bm{q}}} + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}, \end{align}
where Jaco\bm{J}_{\rm aco} denotes a Jacobian matrix
Jaco(q)hq(q)qRm×m.\begin{align} \bm{J}_{\rm aco}(\bm{\bm{q}}) \equiv \frac{\partial h_{q}(\bm{\bm{q}})}{\partial \bm{\bm{q}}} \in \mathbb{R}^{m \times m}. \end{align}

Energy conservation law

Here, let J\bm{J} and M\bm{M} be an inertia of joint-space system and work-space system. Since a kinetic energy of a system is constant on any coordinates, an equation
12q˙TJ(q)q˙=12x˙TM(q)x˙.\begin{align} \frac{1}{2}\dot{\bm{q}}^{\mathrm T}\bm{J}(\bm{\bm{q}})\dot{\bm{q}} &= \frac{1}{2}\dot{\bm{x}}^{\mathrm T}\bm{M}(\bm{\bm{q}})\dot{\bm{x}}. \end{align}
holds, i.e.,
J(q)=JacoT(q)M(q)Jaco(q)M(q)=JacoT(q)J(q)Jaco1(q).\begin{align} \bm{J}(\bm{\bm{q}}) &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{\bm{q}})\\ \bm{M}(\bm{\bm{q}}) &= \bm{J}_{\rm aco}^{-{\mathrm T}}(\bm{\bm{q}})\bm{J}(\bm{\bm{q}})\bm{J}_{\rm aco}^{-1}(\bm{\bm{q}}). \end{align}

Dynamics

Motion equations on a joint space and work space are described as
τ=J(q)q¨f=M(q)x¨.\begin{align} \bm{\tau}&=\bm{J}(\bm{\bm{q}})\ddot{\bm{q}}\\ \bm{f}&=\bm{M}(\bm{\bm{q}})\ddot{\bm{x}}. \end{align}
Here, we can found
JacoT(q)f=JacoT(q)M(q)J˙aco(q)q˙+JacoT(q)M(q)Jaco(q)q¨=JacoT(q)M(q)J˙aco(q)q˙+J(q)q¨=JacoT(q)M(q)J˙aco(q)q˙+τ\begin{align} \bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{f} &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}+\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{q})\ddot{\bm{q}}\\ &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}+\bm{J}(\bm{q})\ddot{\bm{q}}\\ &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}+\bm{\tau}\\ \end{align}
Therefore, forces are mutually map to the other
τ=JacoT(q)(fM(q)J˙aco(q)q˙)f=JacoT(q)τ+M(q)J˙aco(q)q˙.\begin{align} \bm{\tau} &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}-\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right)\\ \bm{f} &= \bm{J}_{\rm aco}^{-{\mathrm T}}(\bm{\bm{q}})\bm{\tau} + \bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}. \end{align}

Work space acceleration control

Acceleration control is achieved when
M(q)=I.\begin{align} \bm{M}(\bm{q}) = \bm{I}. \end{align}
It is achieved by controlling a virtual inertia of a joint-space system using a joint-space acceleration controller. A joint-space acceleration controller makes a virtual inertia
Jv(q)=I.\begin{align} \bm{J}_{\rm v}(\bm{q}) = \bm{I}. \end{align}
By setting a virtual joint-space inertia as follow, work-space acceleration control is achieved.
Jv(q)=JacoT(q)Jaco(q),\begin{align} \bm{J}_{\rm v}(\bm{q}) = \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{\bm{q}}), \end{align}

Computing torque method

For implementation, a control input to be calculated is a joint-space torque. Assuming that a joint-space acceleration controller is implemented, we show a calculation process of an acceleration reference. When work-space force reference fref\bm{f}^{\rm ref} is given, a joint-space torque reference is calculated as
τref=JacoT(q)(frefM(q)J˙aco(q)q˙)=JacoT(q)(frefJ˙aco(q)q˙).\begin{align} \bm{\tau}^{\rm ref} &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right)\\ &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right). \end{align}
Considering a virtual joint-space inertia, an acceleration reference is caluclated as
q¨ref=Jv1τref=Jaco1(q)JacoT(q)JacoT(q)(frefJ˙aco(q)q˙)=Jaco1(q)(frefJ˙aco(q)q˙).\begin{align} \ddot{\bm{q}}^{\rm ref} &= \bm{J}_{\rm v}^{-1}\bm{\tau}^{\rm ref}\\ &=\bm{J}_{\rm aco}^{-1}(\bm{\bm{q}})\bm{J}_{\rm aco}^{-{\mathrm T}}(\bm{\bm{q}})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right)\\ &=\bm{J}_{\rm aco}^{-1}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right). \end{align}
Assuming that an joint-space acceleration control works,
q¨=q¨ref\begin{align} \ddot{\bm{q}} &= \ddot{\bm{q}}^{\rm ref} \end{align}
holds. Then, a work-space acceleration is calculated as
x¨=Jaco(q)q¨ref+J˙aco(q)q˙=Jaco(q)Jaco1(q)(frefJ˙aco(q)q˙)+J˙aco(q)q˙=fref.\begin{align} \ddot{\bm{x}} &= \bm{J}_{\rm aco}(\bm{\bm{q}})\ddot{\bm{\bm{q}}}^{\rm ref} + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}\\ &= \bm{J}_{\rm aco}(\bm{\bm{q}})\bm{J}_{\rm aco}^{-1}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right) + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}\\ &=\bm{f}^{\rm ref}. \end{align}

© DigitalServo