Change transpose symbol
This commit is contained in:
parent
5db04e754f
commit
a4be97337d
@ -696,12 +696,12 @@ This equation links the pose[fn:nhexa_2] variables ${}^A\bm{P}$ and ${}^A\bm{R}_
|
||||
|
||||
**** Inverse Kinematics
|
||||
|
||||
The inverse kinematic problem involves determining the required strut lengths $\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^T$ for a desired platform pose $\bm{\mathcal{X}}$ (i.e. position ${}^A\bm{P}$ and orientation ${}^A\bm{R}_B$).
|
||||
The inverse kinematic problem involves determining the required strut lengths $\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^{\intercal}$ for a desired platform pose $\bm{\mathcal{X}}$ (i.e. position ${}^A\bm{P}$ and orientation ${}^A\bm{R}_B$).
|
||||
This problem can be solved analytically using the loop closure equations eqref:eq:nhexa_loop_closure.
|
||||
The obtained strut lengths are given by eqref:eq:nhexa_inverse_kinematics.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_inverse_kinematics}
|
||||
l_i = \sqrt{{}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}_i^T {}^B\bm{b}_i + {}^A\bm{a}_i^T {}^A\bm{a}_i - 2 {}^A\bm{P}^T {}^A\bm{a}_i + 2 {}^A\bm{P}^T \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^T {}^A\bm{a}_i}
|
||||
l_i = \sqrt{{}^A\bm{P}^{\intercal} {}^A\bm{P} + {}^B\bm{b}_i^{\intercal} {}^B\bm{b}_i + {}^A\bm{a}_i^{\intercal} {}^A\bm{a}_i - 2 {}^A\bm{P}^{\intercal} {}^A\bm{a}_i + 2 {}^A\bm{P}^{\intercal} \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^{\intercal} {}^A\bm{a}_i}
|
||||
\end{equation}
|
||||
|
||||
If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
|
||||
@ -745,7 +745,7 @@ By multiplying both sides by ${}^A\hat{\bm{s}}_i$, eqref:eq:nhexa_loop_closure_v
|
||||
{}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
|
||||
\end{equation}
|
||||
|
||||
Equation eqref:eq:nhexa_loop_closure_velocity_bis can be rearranged in matrix form to obtain eqref:eq:nhexa_jacobian_velocities, with $\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^T$ the vector of strut velocities, and $\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^T$ the vector of platform velocity and angular velocity.
|
||||
Equation eqref:eq:nhexa_loop_closure_velocity_bis can be rearranged in matrix form to obtain eqref:eq:nhexa_jacobian_velocities, with $\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^{\intercal}$ the vector of strut velocities, and $\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^{\intercal}$ the vector of platform velocity and angular velocity.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_jacobian_velocities}
|
||||
\boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
|
||||
@ -755,12 +755,12 @@ The matrix $\bm{J}$ is called the Jacobian matrix and is defined by eqref:eq:nhe
|
||||
|
||||
\begin{equation}\label{eq:nhexa_jacobian}
|
||||
\bm{J} = \begin{bmatrix}
|
||||
{{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
|
||||
{{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
|
||||
{{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
|
||||
{{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
|
||||
{{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
|
||||
{{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
|
||||
{{}^A\hat{\bm{s}}_1}^{\intercal} & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_2}^{\intercal} & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_3}^{\intercal} & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_4}^{\intercal} & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_5}^{\intercal} & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_6}^{\intercal} & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^{\intercal}
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
@ -769,7 +769,7 @@ However, $\bm{J}$ needs to be recomputed for every Stewart platform pose because
|
||||
|
||||
**** Approximate solution to the Forward and Inverse Kinematic problems
|
||||
|
||||
For small displacements $\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^T$ around an operating point $\bm{\mathcal{X}}_0$ (for which the Jacobian was computed), the associated joint displacement $\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^T$ can be computed using the Jacobian eqref:eq:nhexa_inverse_kinematics_approximate.
|
||||
For small displacements $\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^{\intercal}$ around an operating point $\bm{\mathcal{X}}_0$ (for which the Jacobian was computed), the associated joint displacement $\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^{\intercal}$ can be computed using the Jacobian eqref:eq:nhexa_inverse_kinematics_approximate.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
|
||||
\boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
|
||||
@ -871,25 +871,25 @@ exportFig('figs/nhexa_forward_kinematics_approximate_errors.pdf', 'width', 'wide
|
||||
The static force analysis of the Stewart platform can be performed using the principle of virtual work.
|
||||
This principle states that for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.
|
||||
|
||||
Let $\bm{f} = [f_1, f_2, \cdots, f_6]^T$ represent the vector of actuator forces applied in each strut, and $\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^T$ denote the external wrench (combined force $\bm{F}$ and torque $\bm{n}$) acting on the mobile platform at point $\bm{O}_B$.
|
||||
Let $\bm{f} = [f_1, f_2, \cdots, f_6]^{\intercal}$ represent the vector of actuator forces applied in each strut, and $\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^{\intercal}$ denote the external wrench (combined force $\bm{F}$ and torque $\bm{n}$) acting on the mobile platform at point $\bm{O}_B$.
|
||||
The virtual work $\delta W$ consists of two contributions:
|
||||
- The work performed by the actuator forces through virtual strut displacements $\delta \bm{\mathcal{L}}$: $\bm{f}^T \delta \bm{\mathcal{L}}$
|
||||
- The work performed by the external wrench through virtual platform displacements $\delta \bm{\mathcal{X}}$: $-\bm{\mathcal{F}}^T \delta \bm{\mathcal{X}}$
|
||||
- The work performed by the actuator forces through virtual strut displacements $\delta \bm{\mathcal{L}}$: $\bm{f}^{\intercal} \delta \bm{\mathcal{L}}$
|
||||
- The work performed by the external wrench through virtual platform displacements $\delta \bm{\mathcal{X}}$: $-\bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}}$
|
||||
|
||||
Thus, the principle of virtual work can be expressed as:
|
||||
\begin{equation}
|
||||
\delta W = \bm{f}^T \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^T \delta \bm{\mathcal{X}} = 0
|
||||
\delta W = \bm{f}^{\intercal} \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}} = 0
|
||||
\end{equation}
|
||||
|
||||
Using the Jacobian relationship that links virtual displacements eqref:eq:nhexa_inverse_kinematics_approximate, this equation becomes:
|
||||
\begin{equation}
|
||||
\left( \bm{f}^T \bm{J} - \bm{\mathcal{F}}^T \right) \delta \bm{\mathcal{X}} = 0
|
||||
\left( \bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} \right) \delta \bm{\mathcal{X}} = 0
|
||||
\end{equation}
|
||||
|
||||
Because this equation must hold for any virtual displacement $\delta \bm{\mathcal{X}}$, the force mapping relationships eqref:eq:nhexa_jacobian_forces can be derived.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_jacobian_forces}
|
||||
\bm{f}^T \bm{J} - \bm{\mathcal{F}}^T = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-T} \bm{\mathcal{F}}}
|
||||
\bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^{\intercal} \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-\intercal} \bm{\mathcal{F}}}
|
||||
\end{equation}
|
||||
|
||||
These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.
|
||||
@ -913,14 +913,14 @@ These individual relationships can be combined into a matrix form using the diag
|
||||
By applying the force mapping relationships eqref:eq:nhexa_jacobian_forces derived in the previous section and the Jacobian relationship for small displacements eqref:eq:nhexa_forward_kinematics_approximate, the relationship between applied wrench $\bm{\mathcal{F}}$ and resulting platform displacement $\delta \bm{\mathcal{X}}$ is obtained eqref:eq:nhexa_stiffness_matrix.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_stiffness_matrix}
|
||||
\bm{\mathcal{F}} = \underbrace{\bm{J}^T \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
||||
\bm{\mathcal{F}} = \underbrace{\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
||||
\end{equation}
|
||||
where $\bm{K} = \bm{J}^T \bm{\mathcal{K}} \bm{J}$ is identified as the platform stiffness matrix.
|
||||
where $\bm{K} = \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}$ is identified as the platform stiffness matrix.
|
||||
|
||||
The inverse relationship is given by the compliance matrix $\bm{C}$:
|
||||
|
||||
\begin{equation}
|
||||
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^T \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
||||
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
||||
\end{equation}
|
||||
|
||||
These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
|
||||
@ -949,25 +949,25 @@ where $\bm{M}$ represents the platform mass matrix, $\bm{\mathcal{X}}$ the platf
|
||||
The primary forces acting on the system are actuator forces $\bm{f}$, elastic forces due to strut stiffness $-\bm{\mathcal{K}} \bm{\mathcal{L}}$ and damping forces in the struts $\bm{\mathcal{C}} \dot{\bm{\mathcal{L}}}$.
|
||||
|
||||
\begin{equation}
|
||||
\Sigma \bm{\mathcal{F}} = \bm{J}^T (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
||||
\Sigma \bm{\mathcal{F}} = \bm{J}^{\intercal} (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
||||
\end{equation}
|
||||
|
||||
Combining these forces and using eqref:eq:nhexa_forward_kinematics_approximate yields the complete dynamic equation eqref:eq:nhexa_dynamical_equations.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_dynamical_equations}
|
||||
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^T \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^T \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
||||
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
||||
\end{equation}
|
||||
|
||||
The transfer function matrix in the Cartesian frame becomes eqref:eq:nhexa_transfer_function_cart.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_transfer_function_cart}
|
||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{T} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{T} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||
\end{equation}
|
||||
|
||||
Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained eqref:eq:nhexa_transfer_function_struts.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_transfer_function_struts}
|
||||
\frac{\bm{\mathcal{L}}}{\bm{f}}(s) = ( \bm{J}^{-T} \bm{M} \bm{J}^{-1} s^2 + \bm{\mathcal{C}} + \bm{\mathcal{K}} )^{-1}
|
||||
\frac{\bm{\mathcal{L}}}{\bm{f}}(s) = ( \bm{J}^{-\intercal} \bm{M} \bm{J}^{-1} s^2 + \bm{\mathcal{C}} + \bm{\mathcal{K}} )^{-1}
|
||||
\end{equation}
|
||||
|
||||
Although this simplified model provides useful insights, real Stewart platforms exhibit more complex behaviors.
|
||||
@ -1292,7 +1292,7 @@ This reduction from six to four observable modes is attributed to the system's s
|
||||
The system's behavior can be characterized in three frequency regions.
|
||||
At low frequencies, well below the first resonance, the plant demonstrates good decoupling between actuators, with the response dominated by the strut stiffness: $\bm{G}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}}^{-1}$.
|
||||
In the mid-frequency range, the system exhibits coupled dynamics through its resonant modes, reflecting the complex interactions between the platform's degrees of freedom.
|
||||
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: $\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-T} \bm{J}^T \frac{-1}{\omega^2}$
|
||||
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: $\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-\intercal} \bm{J}^{\intercal} \frac{-1}{\omega^2}$
|
||||
|
||||
The force sensor transfer functions, shown in Figure ref:fig:nhexa_multi_body_plant_fm, display characteristics typical of collocated actuator-sensor pairs.
|
||||
Each actuator's transfer function to its associated force sensor exhibits alternating complex conjugate poles and zeros.
|
||||
@ -1572,7 +1572,7 @@ Furthermore, at low frequencies, the plant exhibits good decoupling between the
|
||||
\coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$);
|
||||
\coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$);
|
||||
|
||||
\node[block, left=0.8 of inputF] (J) {$\bm{J}^{-T}$};
|
||||
\node[block, left=0.8 of inputF] (J) {$\bm{J}^{-\intercal}$};
|
||||
\node[block={2.0cm}{2.0cm}, left=0.8 of J] (K) {\begin{matrix}K_{D_x} & & 0 \\ & \ddots & \\ 0 & & K_{R_z}\end{matrix}};
|
||||
\node[addb={+}{}{}{}{-}, left=0.8 of K] (subr) {};
|
||||
|
||||
@ -1599,7 +1599,7 @@ Furthermore, at low frequencies, the plant exhibits good decoupling between the
|
||||
#+end_subfigure
|
||||
|
||||
\bigskip
|
||||
#+attr_latex: :caption \subcaption{\label{fig:nhexa_control_cartesian}Control in the Cartesian frame. $\bm{J}^{-T}$ is used to project force and torques on each strut}
|
||||
#+attr_latex: :caption \subcaption{\label{fig:nhexa_control_cartesian}Control in the Cartesian frame. $\bm{J}^{-\intercal}$ is used to project force and torques on each strut}
|
||||
#+attr_latex: :options {0.98\textwidth}
|
||||
#+begin_subfigure
|
||||
#+attr_latex: :scale 1
|
||||
|
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
% Created 2025-04-03 Thu 22:05
|
||||
% Created 2025-04-07 Mon 17:07
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||
|
||||
@ -8,6 +8,13 @@
|
||||
\author{Dehaeze Thomas}
|
||||
\date{\today}
|
||||
\title{Simscape Model - Nano Hexapod}
|
||||
\hypersetup{
|
||||
pdfauthor={Dehaeze Thomas},
|
||||
pdftitle={Simscape Model - Nano Hexapod},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 30.1 (Org mode 9.7.26)},
|
||||
pdflang={English}}
|
||||
\usepackage{biblatex}
|
||||
|
||||
\begin{document}
|
||||
@ -297,12 +304,12 @@ This equation links the pose\footnote{The \emph{pose} represents the position an
|
||||
\end{figure}
|
||||
\subsubsection{Inverse Kinematics}
|
||||
|
||||
The inverse kinematic problem involves determining the required strut lengths \(\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^T\) for a desired platform pose \(\bm{\mathcal{X}}\) (i.e. position \({}^A\bm{P}\) and orientation \({}^A\bm{R}_B\)).
|
||||
The inverse kinematic problem involves determining the required strut lengths \(\bm{\mathcal{L}} = \left[ l_1, l_2, \ldots, l_6 \right]^{\intercal}\) for a desired platform pose \(\bm{\mathcal{X}}\) (i.e. position \({}^A\bm{P}\) and orientation \({}^A\bm{R}_B\)).
|
||||
This problem can be solved analytically using the loop closure equations \eqref{eq:nhexa_loop_closure}.
|
||||
The obtained strut lengths are given by \eqref{eq:nhexa_inverse_kinematics}.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_inverse_kinematics}
|
||||
l_i = \sqrt{{}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}_i^T {}^B\bm{b}_i + {}^A\bm{a}_i^T {}^A\bm{a}_i - 2 {}^A\bm{P}^T {}^A\bm{a}_i + 2 {}^A\bm{P}^T \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^T {}^A\bm{a}_i}
|
||||
l_i = \sqrt{{}^A\bm{P}^{\intercal} {}^A\bm{P} + {}^B\bm{b}_i^{\intercal} {}^B\bm{b}_i + {}^A\bm{a}_i^{\intercal} {}^A\bm{a}_i - 2 {}^A\bm{P}^{\intercal} {}^A\bm{a}_i + 2 {}^A\bm{P}^{\intercal} \left[{}^A\bm{R}_B {}^B\bm{b}_i\right] - 2 \left[{}^A\bm{R}_B {}^B\bm{b}_i\right]^{\intercal} {}^A\bm{a}_i}
|
||||
\end{equation}
|
||||
|
||||
If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
|
||||
@ -341,7 +348,7 @@ By multiplying both sides by \({}^A\hat{\bm{s}}_i\), \eqref{eq:nhexa_loop_closur
|
||||
{}^A\hat{\bm{s}}_i {}^A\bm{v}_p + \underbrace{{}^A\hat{\bm{s}}_i ({}^A\bm{\omega} \times {}^A\bm{b}_i)}_{=({}^A\bm{b}_i \times {}^A\hat{\bm{s}}_i) {}^A\bm{\omega}} = \dot{l}_i + \underbrace{{}^A\hat{s}_i l_i \left( {}^A\bm{\omega}_i \times {}^A\hat{\bm{s}}_i \right)}_{=0}
|
||||
\end{equation}
|
||||
|
||||
Equation \eqref{eq:nhexa_loop_closure_velocity_bis} can be rearranged in matrix form to obtain \eqref{eq:nhexa_jacobian_velocities}, with \(\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^T\) the vector of strut velocities, and \(\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^T\) the vector of platform velocity and angular velocity.
|
||||
Equation \eqref{eq:nhexa_loop_closure_velocity_bis} can be rearranged in matrix form to obtain \eqref{eq:nhexa_jacobian_velocities}, with \(\dot{\bm{\mathcal{L}}} = [ \dot{l}_1 \ \dots \ \dot{l}_6 ]^{\intercal}\) the vector of strut velocities, and \(\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}_p ,\ {}^A\bm{\omega}]^{\intercal}\) the vector of platform velocity and angular velocity.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_jacobian_velocities}
|
||||
\boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
|
||||
@ -351,12 +358,12 @@ The matrix \(\bm{J}\) is called the Jacobian matrix and is defined by \eqref{eq:
|
||||
|
||||
\begin{equation}\label{eq:nhexa_jacobian}
|
||||
\bm{J} = \begin{bmatrix}
|
||||
{{}^A\hat{\bm{s}}_1}^T & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^T \\
|
||||
{{}^A\hat{\bm{s}}_2}^T & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^T \\
|
||||
{{}^A\hat{\bm{s}}_3}^T & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^T \\
|
||||
{{}^A\hat{\bm{s}}_4}^T & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^T \\
|
||||
{{}^A\hat{\bm{s}}_5}^T & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^T \\
|
||||
{{}^A\hat{\bm{s}}_6}^T & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^T
|
||||
{{}^A\hat{\bm{s}}_1}^{\intercal} & ({}^A\bm{b}_1 \times {}^A\hat{\bm{s}}_1)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_2}^{\intercal} & ({}^A\bm{b}_2 \times {}^A\hat{\bm{s}}_2)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_3}^{\intercal} & ({}^A\bm{b}_3 \times {}^A\hat{\bm{s}}_3)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_4}^{\intercal} & ({}^A\bm{b}_4 \times {}^A\hat{\bm{s}}_4)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_5}^{\intercal} & ({}^A\bm{b}_5 \times {}^A\hat{\bm{s}}_5)^{\intercal} \\
|
||||
{{}^A\hat{\bm{s}}_6}^{\intercal} & ({}^A\bm{b}_6 \times {}^A\hat{\bm{s}}_6)^{\intercal}
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
@ -364,7 +371,7 @@ Therefore, the Jacobian matrix \(\bm{J}\) links the rate of change of the strut
|
||||
However, \(\bm{J}\) needs to be recomputed for every Stewart platform pose because it depends on the actual pose of the manipulator.
|
||||
\subsubsection{Approximate solution to the Forward and Inverse Kinematic problems}
|
||||
|
||||
For small displacements \(\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^T\) around an operating point \(\bm{\mathcal{X}}_0\) (for which the Jacobian was computed), the associated joint displacement \(\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^T\) can be computed using the Jacobian \eqref{eq:nhexa_inverse_kinematics_approximate}.
|
||||
For small displacements \(\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta_x, \delta \theta_y, \delta \theta_z ]^{\intercal}\) around an operating point \(\bm{\mathcal{X}}_0\) (for which the Jacobian was computed), the associated joint displacement \(\delta\bm{\mathcal{L}} = [\delta l_1,\,\delta l_2,\,\delta l_3,\,\delta l_4,\,\delta l_5,\,\delta l_6]^{\intercal}\) can be computed using the Jacobian \eqref{eq:nhexa_inverse_kinematics_approximate}.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_inverse_kinematics_approximate}
|
||||
\boxed{\delta\bm{\mathcal{L}} = \bm{J} \delta\bm{\mathcal{X}}}
|
||||
@ -400,27 +407,27 @@ It can be computed once at the rest position and used for both forward and inver
|
||||
The static force analysis of the Stewart platform can be performed using the principle of virtual work.
|
||||
This principle states that for a system in static equilibrium, the total virtual work of all forces acting on the system must be zero for any virtual displacement compatible with the system's constraints.
|
||||
|
||||
Let \(\bm{f} = [f_1, f_2, \cdots, f_6]^T\) represent the vector of actuator forces applied in each strut, and \(\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^T\) denote the external wrench (combined force \(\bm{F}\) and torque \(\bm{n}\)) acting on the mobile platform at point \(\bm{O}_B\).
|
||||
Let \(\bm{f} = [f_1, f_2, \cdots, f_6]^{\intercal}\) represent the vector of actuator forces applied in each strut, and \(\bm{\mathcal{F}} = [\bm{F}, \bm{n}]^{\intercal}\) denote the external wrench (combined force \(\bm{F}\) and torque \(\bm{n}\)) acting on the mobile platform at point \(\bm{O}_B\).
|
||||
The virtual work \(\delta W\) consists of two contributions:
|
||||
\begin{itemize}
|
||||
\item The work performed by the actuator forces through virtual strut displacements \(\delta \bm{\mathcal{L}}\): \(\bm{f}^T \delta \bm{\mathcal{L}}\)
|
||||
\item The work performed by the external wrench through virtual platform displacements \(\delta \bm{\mathcal{X}}\): \(-\bm{\mathcal{F}}^T \delta \bm{\mathcal{X}}\)
|
||||
\item The work performed by the actuator forces through virtual strut displacements \(\delta \bm{\mathcal{L}}\): \(\bm{f}^{\intercal} \delta \bm{\mathcal{L}}\)
|
||||
\item The work performed by the external wrench through virtual platform displacements \(\delta \bm{\mathcal{X}}\): \(-\bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}}\)
|
||||
\end{itemize}
|
||||
|
||||
Thus, the principle of virtual work can be expressed as:
|
||||
\begin{equation}
|
||||
\delta W = \bm{f}^T \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^T \delta \bm{\mathcal{X}} = 0
|
||||
\delta W = \bm{f}^{\intercal} \delta \bm{\mathcal{L}} - \bm{\mathcal{F}}^{\intercal} \delta \bm{\mathcal{X}} = 0
|
||||
\end{equation}
|
||||
|
||||
Using the Jacobian relationship that links virtual displacements \eqref{eq:nhexa_inverse_kinematics_approximate}, this equation becomes:
|
||||
\begin{equation}
|
||||
\left( \bm{f}^T \bm{J} - \bm{\mathcal{F}}^T \right) \delta \bm{\mathcal{X}} = 0
|
||||
\left( \bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} \right) \delta \bm{\mathcal{X}} = 0
|
||||
\end{equation}
|
||||
|
||||
Because this equation must hold for any virtual displacement \(\delta \bm{\mathcal{X}}\), the force mapping relationships \eqref{eq:nhexa_jacobian_forces} can be derived.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_jacobian_forces}
|
||||
\bm{f}^T \bm{J} - \bm{\mathcal{F}}^T = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-T} \bm{\mathcal{F}}}
|
||||
\bm{f}^{\intercal} \bm{J} - \bm{\mathcal{F}}^{\intercal} = 0 \quad \Rightarrow \quad \boxed{\bm{\mathcal{F}} = \bm{J}^{\intercal} \bm{f}} \quad \text{and} \quad \boxed{\bm{f} = \bm{J}^{-\intercal} \bm{\mathcal{F}}}
|
||||
\end{equation}
|
||||
|
||||
These equations establish that the transpose of the Jacobian matrix maps actuator forces to platform forces and torques, while its inverse transpose maps platform forces and torques to required actuator forces.
|
||||
@ -443,14 +450,14 @@ These individual relationships can be combined into a matrix form using the diag
|
||||
By applying the force mapping relationships \eqref{eq:nhexa_jacobian_forces} derived in the previous section and the Jacobian relationship for small displacements \eqref{eq:nhexa_forward_kinematics_approximate}, the relationship between applied wrench \(\bm{\mathcal{F}}\) and resulting platform displacement \(\delta \bm{\mathcal{X}}\) is obtained \eqref{eq:nhexa_stiffness_matrix}.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_stiffness_matrix}
|
||||
\bm{\mathcal{F}} = \underbrace{\bm{J}^T \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
||||
\bm{\mathcal{F}} = \underbrace{\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}}_{\bm{K}} \cdot \delta \bm{\mathcal{X}}
|
||||
\end{equation}
|
||||
where \(\bm{K} = \bm{J}^T \bm{\mathcal{K}} \bm{J}\) is identified as the platform stiffness matrix.
|
||||
where \(\bm{K} = \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J}\) is identified as the platform stiffness matrix.
|
||||
|
||||
The inverse relationship is given by the compliance matrix \(\bm{C}\):
|
||||
|
||||
\begin{equation}
|
||||
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^T \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
||||
\delta \bm{\mathcal{X}} = \underbrace{(\bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J})^{-1}}_{\bm{C}} \bm{\mathcal{F}}
|
||||
\end{equation}
|
||||
|
||||
These relationships reveal that the overall platform stiffness and compliance characteristics are determined by two factors:
|
||||
@ -480,25 +487,25 @@ where \(\bm{M}\) represents the platform mass matrix, \(\bm{\mathcal{X}}\) the p
|
||||
The primary forces acting on the system are actuator forces \(\bm{f}\), elastic forces due to strut stiffness \(-\bm{\mathcal{K}} \bm{\mathcal{L}}\) and damping forces in the struts \(\bm{\mathcal{C}} \dot{\bm{\mathcal{L}}}\).
|
||||
|
||||
\begin{equation}
|
||||
\Sigma \bm{\mathcal{F}} = \bm{J}^T (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
||||
\Sigma \bm{\mathcal{F}} = \bm{J}^{\intercal} (\bm{f} - \bm{\mathcal{K}} \bm{\mathcal{L}} - s \bm{\mathcal{C}} \bm{\mathcal{L}}), \quad \bm{\mathcal{K}} = \text{diag}(k_1\,\dots\,k_6),\ \bm{\mathcal{C}} = \text{diag}(c_1\,\dots\,c_6)
|
||||
\end{equation}
|
||||
|
||||
Combining these forces and using \eqref{eq:nhexa_forward_kinematics_approximate} yields the complete dynamic equation \eqref{eq:nhexa_dynamical_equations}.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_dynamical_equations}
|
||||
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^T \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^T \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
||||
\bm{M} s^2 \bm{\mathcal{X}} = \bm{\mathcal{F}} - \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} \bm{\mathcal{X}} - \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s \bm{\mathcal{X}}
|
||||
\end{equation}
|
||||
|
||||
The transfer function matrix in the Cartesian frame becomes \eqref{eq:nhexa_transfer_function_cart}.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_transfer_function_cart}
|
||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{T} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{T} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||
\frac{{\mathcal{X}}}{\bm{\mathcal{F}}}(s) = ( \bm{M} s^2 + \bm{J}^{\intercal} \bm{\mathcal{C}} \bm{J} s + \bm{J}^{\intercal} \bm{\mathcal{K}} \bm{J} )^{-1}
|
||||
\end{equation}
|
||||
|
||||
Through coordinate transformation using the Jacobian matrix, the dynamics in the actuator space is obtained \eqref{eq:nhexa_transfer_function_struts}.
|
||||
|
||||
\begin{equation}\label{eq:nhexa_transfer_function_struts}
|
||||
\frac{\bm{\mathcal{L}}}{\bm{f}}(s) = ( \bm{J}^{-T} \bm{M} \bm{J}^{-1} s^2 + \bm{\mathcal{C}} + \bm{\mathcal{K}} )^{-1}
|
||||
\frac{\bm{\mathcal{L}}}{\bm{f}}(s) = ( \bm{J}^{-\intercal} \bm{M} \bm{J}^{-1} s^2 + \bm{\mathcal{C}} + \bm{\mathcal{K}} )^{-1}
|
||||
\end{equation}
|
||||
|
||||
Although this simplified model provides useful insights, real Stewart platforms exhibit more complex behaviors.
|
||||
@ -688,7 +695,7 @@ This reduction from six to four observable modes is attributed to the system's s
|
||||
The system's behavior can be characterized in three frequency regions.
|
||||
At low frequencies, well below the first resonance, the plant demonstrates good decoupling between actuators, with the response dominated by the strut stiffness: \(\bm{G}(j\omega) \xrightarrow[\omega \to 0]{} \bm{\mathcal{K}}^{-1}\).
|
||||
In the mid-frequency range, the system exhibits coupled dynamics through its resonant modes, reflecting the complex interactions between the platform's degrees of freedom.
|
||||
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: \(\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-T} \bm{J}^T \frac{-1}{\omega^2}\)
|
||||
At high frequencies, above the highest resonance, the response is governed by the payload's inertia mapped to the strut coordinates: \(\bm{G}(j\omega) \xrightarrow[\omega \to \infty]{} \bm{J} \bm{M}^{-\intercal} \bm{J}^{\intercal} \frac{-1}{\omega^2}\)
|
||||
|
||||
The force sensor transfer functions, shown in Figure \ref{fig:nhexa_multi_body_plant_fm}, display characteristics typical of collocated actuator-sensor pairs.
|
||||
Each actuator's transfer function to its associated force sensor exhibits alternating complex conjugate poles and zeros.
|
||||
@ -782,7 +789,7 @@ Furthermore, at low frequencies, the plant exhibits good decoupling between the
|
||||
\begin{center}
|
||||
\includegraphics[scale=1,scale=1]{figs/nhexa_control_cartesian.png}
|
||||
\end{center}
|
||||
\subcaption{\label{fig:nhexa_control_cartesian}Control in the Cartesian frame. $\bm{J}^{-T}$ is used to project force and torques on each strut}
|
||||
\subcaption{\label{fig:nhexa_control_cartesian}Control in the Cartesian frame. $\bm{J}^{-\intercal}$ is used to project force and torques on each strut}
|
||||
\end{subfigure}
|
||||
\caption{\label{fig:nhexa_control_frame}Two control strategies}
|
||||
\end{figure}
|
||||
|
Loading…
x
Reference in New Issue
Block a user