digital-brain/content/article/mcinroy99_dynam.md

171 lines
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "Dynamic modeling of flexure jointed hexapods for control purposes"
author = ["Dehaeze Thomas"]
draft = false
+++
Tags
: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
Reference
: (<a href="#citeproc_bib_item_1">McInroy 1999</a>)
Author(s)
: McInroy, J.
Year
: 1999
This conference paper has been further published in a journal as a short note (<a href="#citeproc_bib_item_2">McInroy 2002</a>).
## Abstract {#abstract}
> This paper presents a new dynamic model suitable for control of flexure jointed hexapods (FJH).
>
> Novel contributions include:
>
> 1. Base acceleration inputs are included
> 2. The dynamic model is experimentally verified
> 3. The model is developed so that it is suitable for control
> 4. A decoupled force control is derived
## Strut Dynamics {#strut-dynamics}
The actuators for FJHs can be divided into two categories:
1. soft (voice coil), which employs a spring flexure mount
2. hard (piezoceramic or magnetostrictive), which employs a compressive load spring.
<a id="figure--fig:mcinroy99-general-hexapod"></a>
{{< figure src="/ox-hugo/mcinroy99_general_hexapod.png" caption="<span class=\"figure-number\">Figure 1: </span>A general Stewart Platform" >}}
Since both actuator types employ force production in parallel with a spring, they can both be modeled as shown in Figure [2](#figure--fig:mcinroy99-strut-model).
In order to provide low frequency passive vibration isolation, the hard actuators are sometimes placed in series with additional passive springs.
<a id="figure--fig:mcinroy99-strut-model"></a>
{{< figure src="/ox-hugo/mcinroy99_strut_model.png" caption="<span class=\"figure-number\">Figure 2: </span>The dynamics of the i'th strut. A parallel spring, damper and actuator drives the moving mass of the strut and a payload" >}}
<a id="table--tab:mcinroy99-strut-model"></a>
<div class="table-caption">
<span class="table-number"><a href="#table--tab:mcinroy99-strut-model">Table 1</a></span>:
Definition of quantities on Figure <a href="#org84f1a50">2</a>
</div>
| **Symbol** | **Meaning** |
|------------------------------|--------------------------------------------|
| \\(m\_i\\) | moving strut mass |
| \\(k\_i\\) | spring constant |
| \\(b\_i\\) | damping constant |
| \\(f\_m\\) | force the actuator applies |
| \\(f\_{p\_i}\\) | forced exerted by the payload |
| \\(p\_i\\) | three dimensional position of the top |
| \\(q\_i\\) | three dimensional position of the bottom |
| \\(l\_i\\) | strut length |
| \\(l\_{r\_i}\\) | relaxed strut length |
| \\(v\_i = p\_i - q\_i\\) | vector pointing from the bottom to the top |
| \\(\hat{u}\_i = v\_i/l\_i\\) | unit direction of the strut |
It is here supposed that \\(f\_{p\_i}\\) is predominantly in the strut direction (explained in (<a href="#citeproc_bib_item_2">McInroy 2002</a>)).
This is a good approximation unless the spherical joints and extremely stiff or massive, of high inertia struts are used.
This allows to reduce considerably the complexity of the model.
From Figure [2](#figure--fig:mcinroy99-strut-model) (b), forces along the strut direction are summed to yield (projected along the strut direction, hence the \\(\hat{u}\_i^T\\) term):
\begin{equation}
m\_i \hat{u}\_i^T \ddot{p}\_i = f\_{m\_i} - f\_{p\_i} - m\_i \hat{u}\_i^Tg - k\_i(l\_i - l\_{r\_i}) - b\_i \dot{l}\_i
\end{equation}
The acceleration \\(\hat{u}\_i^T \ddot{p}\_i\\) can be written as:
\\[ \hat{u}\_i^T \ddot{p}\_i = \ddot{l}\_i + \hat{u}\_i^T \ddot{q}\_i - \dot{\hat{u}}\_i^T \dot{v}\_i \\]
- [ ] Not sure how the last term is obtained
Separating strut and base accelerations, and putting all six strut equations in a single vector yields:
\begin{equation}
f\_p = f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u - M\_s g\_u + M\_s v\_2 \label{eq:strut\_dynamics\_vec}
\end{equation}
where:
- \\(\ddot{q}\_u = \left[ \hat{u}\_1^T \ddot{q}\_1 \ \dots \ \hat{u}\_6^T \ddot{q}\_6 \right]^T\\) notes the vector of base accelerations in the strut directions
- \\(g\_u\\) denotes the vector of gravity accelerations in the strut directions
- \\(Ms = \diag([m\_1\ \dots \ m\_6])\\), \\(f\_p = [f\_{p\_1}\ \dots \ f\_{p\_6}]^T\\)
- \\(v\_2 = [ \dot{\hat{u}}\_1^T \dot{v}\_1 \ \dots \ \dot{\hat{u}}\_6^T \dot{v}\_6 ]^T\\)
## Payload Dynamics {#payload-dynamics}
The payload is modeled as a rigid body:
\begin{equation}
\underbrace{\begin{bmatrix}
m I\_3 & 0\_{3\times 3} \\\\
0\_{3\times 3} & {}^cI
\end{bmatrix}}\_{M\_x} \ddot{\mathcal{X}} + \underbrace{\begin{bmatrix}
0\_{3 \times 1} \\\ \omega \times {}^cI\omega
\end{bmatrix}}\_{c(\omega)} = \mathcal{F} \label{eq:payload\_dynamics}
\end{equation}
where:
- \\(\ddot{\mathcal{X}}\\) is the \\(6 \times 1\\) generalized acceleration of the payload's center of mass
- \\(\omega\\) is the \\(3 \times 1\\) payload's angular velocity vector
- \\(\mathcal{F}\\) is the \\(6 \times 1\\) generalized force exerted on the payload
- \\(M\_x\\) is the combined mass/inertia matrix of the payload, written in the payload frame {P}
- \\(c(\omega)\\) represents the shown vector of Coriolis and centripetal terms
Note \\(\dot{\mathcal{X}} = [\dot{p}^T\ \omega^T]^T\\) denotes the time derivative of the payload's combined position and orientation (or pose) with respect to a universal frame of reference {U}.
First, consider the **generalized force due to struts**.
Denoting this force as \\(\mathcal{F}\_s\\), it can be calculated form the strut forces as:
\begin{equation}
\mathcal{F}\_s = {}^UJ^T f\_p = {}^U\_BR J^T f\_p
\end{equation}
where \\(J\\) is the manipulator Jacobian and \\({}^U\_BR\\) is the rotation matrix from {B} to {U}.
The total generalized force acting on the payload is the sum of the strut, exogenous, and gravity forces:
\begin{equation}
\mathcal{F} = {}^UJ^T f\_p + \mathcal{F}\_e - \begin{bmatrix} mg \\\ 0\_{3\times 1} \end{bmatrix} \label{eq:generalized\_force}
\end{equation}
where:
- \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass
- \\(g\\) is the gravity vector
By combining <eq:strut_dynamics_vec>, <eq:payload_dynamics> and <eq:generalized_force>, a single equation describing the dynamics of a flexure jointed hexapod can be found:
\begin{aligned}
& {}^UJ^T [ f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u\\\\
& - M\_s g\_u + M\_s v\_2] + \mathcal{F}\_e - \begin{bmatrix} mg \\\ 0\_{3\times 1} \end{bmatrix} = M\_x \ddot{\mathcal{X}} + c(\omega)
\end{aligned}
Joint (\\(l\\)) and Cartesian (\\(\mathcal{X}\\)) terms are still mixed.
In the next section, a connection between the two will be found to complete the formulation
## Relationships between joint and cartesian space {#relationships-between-joint-and-cartesian-space}
## Joint Space Dynamics {#joint-space-dynamics}
## Control Example {#control-example}
## Bibliography {#bibliography}
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>McInroy, J.E. 1999. “Dynamic Modeling of Flexure Jointed Hexapods for Control Purposes.” In <i>Proceedings of the 1999 Ieee International Conference on Control Applications (Cat. No.99ch36328)</i>, nil. doi:<a href="https://doi.org/10.1109/cca.1999.806694">10.1109/cca.1999.806694</a>.</div>
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>———. 2002. “Modeling and Design of Flexure Jointed Stewart Platforms for Control Purposes.” <i>Ieee/Asme Transactions on Mechatronics</i> 7 (1): 9599. doi:<a href="https://doi.org/10.1109/3516.990892">10.1109/3516.990892</a>.</div>
</div>