+++ title = "Modeling and design of flexure jointed stewart platforms for control purposes" author = ["Thomas Dehaeze"] draft = false +++ Tags : Reference : ([McInroy 2002](#org2871bf9)) Author(s) : McInroy, J. Year : 2002 This short paper is very similar to ([McInroy 1999](#org1d169f9)). > This paper develops guidelines for designing the flexure joints to facilitate closed-loop control. ## Introduction {#introduction} > When pursuing micro-meter/micro-radian scale motion, two new phenomena become important: > > 1. joint friction and backlash can cause extremely nonlinear micro-dynamics > 2. base and/or payload vibrations become significant contributor to the motion > If the spherical flexure is not properly matched to the particular application, it is shown that the complexity of the dynamics can greatly increase, thus limiting the control performance. ## Flexure Jointed Hexapod Dynamics {#flexure-jointed-hexapod-dynamics} {{< figure src="/ox-hugo/mcinroy02_leg_model.png" caption="Figure 1: The dynamics of the ith strut. A parallel spring, damper, and actautor drives the moving mass of the strut and a payload" >}} The strut can be modeled as consisting of a parallel arrangement of an actuator force, a spring and some damping driving a mass (Figure [1](#org4ea1e8b)). Thus, **the strut does not output force directly, but rather outputs a mechanically filtered force**. The model of the strut are shown in Figure [1](#org4ea1e8b) with: - \\(m\_{s\_i}\\) moving strut mass - \\(k\_i\\) spring constant - \\(b\_i\\) damping constant - \\(f\_{m\_i}\\) force applied by the actuator - \\(f\_{p\_i}\\) force 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 In general, **the strut mass and spherical flexure stiffness will cause payload forces that are not perfectly aligned with the strut**. Applying Newton's second law and stacking the equations into a vector form gives: \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 = \text{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\\) contains nonlinear Coriolis and centripetal accelerations ### 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 \eqref{eq:strut_dynamics_vec}, \eqref{eq:payload_dynamics} and \eqref{eq:generalized_force}, a single equation describing the dynamics of a flexure jointed hexapod can be found: \begin{equation} {}^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) \label{eq:eom\_fjh} \end{equation} 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 ## Direction of Payload Force {#direction-of-payload-force} Many prior hexapod dynamic formulations assume that the strut exerts force only along its direction of motion. The flexure joints Hexapods transmit forces (or torques) proportional to the deflection of the joints. This section establishes design guidelines for the spherical flexure joint to guarantee that the dynamics remain tractable for control. {{< figure src="/ox-hugo/mcinroy02_model_strut_joint.png" caption="Figure 2: A simplified dynamic model of a strut and its joint" >}} Figure [2](#org5bc5fa8) depicts a strut, along with the corresponding force diagram. The force diagram is obtained using standard finite element assumptions (\\(\sin \theta \approx \theta\\)). Damping terms are neglected. \\(k\_r\\) denotes the rotational stiffness of the spherical joint. From Figure [2](#org5bc5fa8) (b), Newton's second law yields: \begin{equation} f\_p = \begin{bmatrix} -f\_m + m\_s \Delta \ddot{x} + k\Delta x \\\\\\ m\_s \Delta \ddot{y} + \frac{k\_r}{l^2} \Delta y \\\\\\ m\_s \Delta \ddot{z} + \frac{k\_r}{l^2} \Delta z \end{bmatrix} \end{equation} Note that the payload force is **not** in general aligned with the strut. The force is aligned perfectly with the strut only if \\(m\_s = 0\\) and \\(k\_r = 0\\) (i.e. the struts have negligible mass and the spherical joints have negligible rotational stiffness). To examine the passive behavior, let \\(f\_m = 0\\) and consider a sinusoidal motion: \begin{equation} \begin{bmatrix} \Delta x \\ \Delta y \\ \Delta z \end{bmatrix} = \begin{bmatrix} A\_x \cos \omega t \\ A\_y \cos \omega t \\ A\_z \cos \omega t \end{bmatrix} \end{equation} This yields: \begin{equation} f\_p = \begin{bmatrix} \Big( -m\_s \omega^2 + k \Big) A\_x \cos \omega t \\\\\\ \Big( -m\_s \omega^2 + \frac{k\_r}{l^2} \Big) A\_y \cos \omega t \\\\\\ \Big( -m\_s \omega^2 + \frac{k\_r}{l^2} \Big) A\_z \cos \omega t \end{bmatrix} \end{equation} The direction of \\(f\_p\\) depends upon to motion specifications, leg inertia and control algorithm. The hypothesis that it is mostly along the strut direction can be tested by dividing the magnitude of the \\(x\\) component by the magnitude of the combined \\(y\\) and \\(z\\) components: \begin{equation} x\_\text{gain} = \frac{|-m\_s \omega^2 + k|}{|-m\_s \omega^2 + \frac{k\_r}{l^2}|} \frac{|A\_x|}{\sqrt{A\_y^2 + A\_z^2}} \end{equation} Note that large \\(x\_\text{gain}\\) indicates \\(x\\) direction dominance. \\(x\_\text{gain}\\) is divided into two parts. The first part depends on the mechanical terms and the frequency of the movement: \begin{equation} x\_{\text{gain}\_\omega} = \frac{|-m\_s \omega^2 + k|}{|-m\_s \omega^2 + \frac{k\_r}{l^2}|} \end{equation}