Update Content - 2022-03-15

This commit is contained in:
2022-03-15 16:40:48 +01:00
parent e6390908c4
commit 22fb3361a5
148 changed files with 3981 additions and 3197 deletions

View File

@@ -1,16 +1,16 @@
+++
title = "Simultaneous, fault-tolerant vibration isolation and pointing control of flexure jointed hexapods"
author = ["Thomas Dehaeze"]
author = ["Dehaeze Thomas"]
draft = false
ref_author = "Li, X."
ref_year = 2001
+++
Tags
: [Stewart Platforms]({{<relref "stewart_platforms.md#" >}}), [Vibration Isolation]({{<relref "vibration_isolation.md#" >}}), [Cubic Architecture]({{<relref "cubic_architecture.md#" >}}), [Flexible Joints]({{<relref "flexible_joints.md#" >}}), [Multivariable Control]({{<relref "multivariable_control.md#" >}})
: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Cubic Architecture]({{< relref "cubic_architecture.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}}), [Multivariable Control]({{< relref "multivariable_control.md" >}})
Reference
: ([Li 2001](#org8036ec7))
: (<a href="#citeproc_bib_item_1">Li 2001</a>)
Author(s)
: Li, X.
@@ -24,17 +24,17 @@ Year
### Flexure Jointed Hexapods {#flexure-jointed-hexapods}
A general flexible jointed hexapod is shown in Figure [1](#orgd9d105c).
A general flexible jointed hexapod is shown in Figure [1](#figure--fig:li01-flexure-hexapod-model).
<a id="orgd9d105c"></a>
<a id="figure--fig:li01-flexure-hexapod-model"></a>
{{< figure src="/ox-hugo/li01_flexure_hexapod_model.png" caption="Figure 1: A flexure jointed hexapod. {P} is a cartesian coordinate frame located at, and rigidly attached to the payload's center of mass. {B} is the frame attached to the base, and {U} is a universal inertial frame of reference" >}}
{{< figure src="/ox-hugo/li01_flexure_hexapod_model.png" caption="<span class=\"figure-number\">Figure 1: </span>A flexure jointed hexapod. {P} is a cartesian coordinate frame located at, and rigidly attached to the payload's center of mass. {B} is the frame attached to the base, and {U} is a universal inertial frame of reference" >}}
Flexure jointed hexapods have been developed to meet two needs illustrated in Figure [2](#orgaa02e76).
Flexure jointed hexapods have been developed to meet two needs illustrated in Figure [2](#figure--fig:li01-quet-dirty-box).
<a id="orgaa02e76"></a>
<a id="figure--fig:li01-quet-dirty-box"></a>
{{< figure src="/ox-hugo/li01_quet_dirty_box.png" caption="Figure 2: (left) Vibration machinery must be isolated from a precision bus. (right) A precision paylaod must be manipulated in the presence of base vibrations and/or exogenous forces." >}}
{{< figure src="/ox-hugo/li01_quet_dirty_box.png" caption="<span class=\"figure-number\">Figure 2: </span>(left) Vibration machinery must be isolated from a precision bus. (right) A precision paylaod must be manipulated in the presence of base vibrations and/or exogenous forces." >}}
Since only small movements are considered in flexure jointed hexapod, the Jacobian matrix, which relates changes in the Cartesian pose to changes in the strut lengths, can be considered constant.
Thus a static kinematic decoupling algorithm can be implemented for both vibration isolation and pointed controls on flexible jointed hexapods.
@@ -43,14 +43,14 @@ On the other hand, the flexures add some complexity to the hexapod dynamics.
Although the flexure joints do eliminate friction and backlash, they add spring dynamics and severely limit the workspace.
Moreover, base and/or payload vibrations become significant contributors to the motion.
The University of Wyoming hexapods (example in Figure [3](#orgf80b696)) are:
The University of Wyoming hexapods (example in Figure [3](#figure--fig:li01-stewart-platform)) are:
- Cubic (mutually orthogonal)
- Flexure Jointed
<a id="orgf80b696"></a>
<a id="figure--fig:li01-stewart-platform"></a>
{{< figure src="/ox-hugo/li01_stewart_platform.png" caption="Figure 3: Flexure jointed Stewart platform used for analysis and control" >}}
{{< figure src="/ox-hugo/li01_stewart_platform.png" caption="<span class=\"figure-number\">Figure 3: </span>Flexure jointed Stewart platform used for analysis and control" >}}
The objectives of the hexapods are:
@@ -81,13 +81,13 @@ p\_x & p\_y & p\_z & \theta\_x & \theta\_y & \theta\_z
\begin{equation}
J = \begin{bmatrix}
{}^B\hat{u}\_1^T & [({}^B\_PR^P p\_1) \times {}^B\hat{u}\_1]^T \\\\\\
\vdots & \vdots \\\\\\
{}^B\hat{u}\_1^T & [({}^B\_PR^P p\_1) \times {}^B\hat{u}\_1]^T \\\\
\vdots & \vdots \\\\
{}^B\hat{u}\_6^T & [({}^B\_PR^P p\_6) \times {}^B\hat{u}\_6]^T
\end{bmatrix}
\end{equation}
where (see Figure [1](#orgd9d105c)) \\(p\_i\\) denotes the payload attachment point of strut \\(i\\), the prescripts denote the frame of reference, and \\(\hat{u}\_i\\) denotes a unit vector along strut \\(i\\).
where (see Figure [1](#figure--fig:li01-flexure-hexapod-model)) \\(p\_i\\) denotes the payload attachment point of strut \\(i\\), the prescripts denote the frame of reference, and \\(\hat{u}\_i\\) denotes a unit vector along strut \\(i\\).
To make the dynamic model as simple as possible, the origin of {P} is located at the payload's center of mass.
Thus all \\({}^Pp\_i\\) are found with respect to the center of mass.
@@ -98,7 +98,7 @@ The dynamics of a flexure jointed hexapod can be written in joint space:
\begin{equation} \label{eq:hexapod\_eq\_motion}
\begin{split}
& \left( J^{-T} \cdot {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR^T \cdot J^{-1} + M\_s \right) \ddot{l} + B \dot{l} + K (l - l\_r) = \\\\\\
& \left( J^{-T} \cdot {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR^T \cdot J^{-1} + M\_s \right) \ddot{l} + B \dot{l} + K (l - l\_r) = \\\\
&\quad f\_m - \left( M\_s + J^{-T} \cdot {}^B\_PR \cdot {}^PM\_x \cdot {}^U\_PR^T \cdot J\_c \cdot J\_b^{-1} \right) \ddot{q}\_u + J^{-T} \cdot {}^U\_BR^T(\mathcal{F}\_e + \mathcal{G} + \mathcal{C})
\end{split}
\end{equation}
@@ -131,20 +131,20 @@ Define a new input and a new output:
u\_1 = J^T f\_m, \quad y = J^{-1} (l - l\_r)
\end{equation}
Equation \eqref{eq:hexapod_eq_motion} can be rewritten as:
Equation <eq:hexapod_eq_motion> can be rewritten as:
\begin{equation} \label{eq:hexapod\_eq\_motion\_decoup\_1}
\begin{split}
& \left( {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR^T + J^T \cdot M\_s \cdot J \right) \cdot \ddot{y} + J^T \cdot B J \dot{y} + J^T \cdot K \cdot J y = \\\\\\
& \left( {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR^T + J^T \cdot M\_s \cdot J \right) \cdot \ddot{y} + J^T \cdot B J \dot{y} + J^T \cdot K \cdot J y = \\\\
&\quad u\_1 - \left( J^T \cdot M\_s + {}^B\_PR \cdot {}^PM\_x \cdot {}^U\_PR^T \cdot J\_c \cdot J\_b^{-1} \right) \ddot{q}\_u + {}^U\_BR^T\mathcal{F}\_e
\end{split}
\end{equation}
If the hexapod is designed such that the payload mass/inertia matrix written in the base frame (\\(^BM\_x = {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR\_T\\)) and \\(J^T J\\) are diagonal, the dynamics from \\(u\_1\\) to \\(y\\) are decoupled (Figure [4](#org493f606)).
If the hexapod is designed such that the payload mass/inertia matrix written in the base frame (\\(^BM\_x = {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR\_T\\)) and \\(J^T J\\) are diagonal, the dynamics from \\(u\_1\\) to \\(y\\) are decoupled (Figure [4](#figure--fig:li01-decoupling-conf)).
<a id="org493f606"></a>
<a id="figure--fig:li01-decoupling-conf"></a>
{{< figure src="/ox-hugo/li01_decoupling_conf.png" caption="Figure 4: Decoupling the dynamics of the Stewart Platform using the Jacobians" >}}
{{< figure src="/ox-hugo/li01_decoupling_conf.png" caption="<span class=\"figure-number\">Figure 4: </span>Decoupling the dynamics of the Stewart Platform using the Jacobians" >}}
Alternatively, a new set of inputs and outputs can be defined:
@@ -152,21 +152,20 @@ Alternatively, a new set of inputs and outputs can be defined:
u\_2 = J^{-1} f\_m, \quad y = J^{-1} (l - l\_r)
\end{equation}
And another decoupled plant is found (Figure [5](#orgbeff72d)):
And another decoupled plant is found (Figure [5](#figure--fig:li01-decoupling-conf-bis)):
\begin{equation} \label{eq:hexapod\_eq\_motion\_decoup\_2}
\begin{split}
& \left( J^{-1} \cdot J^{-T} \cdot {}^BM\_x + M\_s \right) \cdot \ddot{y} + B \dot{y} + K y = \\\\\\
& \left( J^{-1} \cdot J^{-T} \cdot {}^BM\_x + M\_s \right) \cdot \ddot{y} + B \dot{y} + K y = \\\\
&\quad u\_2 - J^{-1} \cdot J^{-T} \left( J^T \cdot M\_s + {}^B\_PR \cdot {}^PM\_x \cdot {}^U\_PR^T \cdot J\_c \cdot J\_b^{-1} \right) \ddot{q}\_u + {}^U\_BR^T\mathcal{F}\_e
\end{split}
\end{equation}
<a id="orgbeff72d"></a>
<a id="figure--fig:li01-decoupling-conf-bis"></a>
{{< figure src="/ox-hugo/li01_decoupling_conf_bis.png" caption="Figure 5: Decoupling the dynamics of the Stewart Platform using the Jacobians" >}}
{{< figure src="/ox-hugo/li01_decoupling_conf_bis.png" caption="<span class=\"figure-number\">Figure 5: </span>Decoupling the dynamics of the Stewart Platform using the Jacobians" >}}
<div class="important">
<div></div>
These decoupling algorithms have two constraints:
@@ -201,17 +200,17 @@ The control bandwidth is divided as follows:
### Vibration Isolation {#vibration-isolation}
The system is decoupled into six independent SISO subsystems using the architecture shown in Figure [6](#orgd7c310d).
The system is decoupled into six independent SISO subsystems using the architecture shown in Figure [6](#figure--fig:li01-vibration-isolation-control).
<a id="orgd7c310d"></a>
<a id="figure--fig:li01-vibration-isolation-control"></a>
{{< figure src="/ox-hugo/li01_vibration_isolation_control.png" caption="Figure 6: Vibration isolation control strategy" >}}
{{< figure src="/ox-hugo/li01_vibration_isolation_control.png" caption="<span class=\"figure-number\">Figure 6: </span>Vibration isolation control strategy" >}}
One of the subsystem plant transfer function is shown in Figure [6](#orgd7c310d)
One of the subsystem plant transfer function is shown in Figure [6](#figure--fig:li01-vibration-isolation-control)
<a id="org1d9e762"></a>
<a id="figure--fig:li01-vibration-isolation-control"></a>
{{< figure src="/ox-hugo/li01_vibration_control_plant.png" caption="Figure 7: Plant transfer function of one of the SISO subsystem for Vibration Control" >}}
{{< figure src="/ox-hugo/li01_vibration_control_plant.png" caption="<span class=\"figure-number\">Figure 7: </span>Plant transfer function of one of the SISO subsystem for Vibration Control" >}}
Each compensator is designed using simple loop-shaping techniques.
A typical compensator consists of the following elements:
@@ -225,7 +224,6 @@ A typical compensator consists of the following elements:
The unity control bandwidth of the isolation loop is designed to be from **5Hz to 50Hz**, so the vibration isolation loop works as a band-pass filter.
<div class="important">
<div></div>
Despite a reasonably good match between the modeled and the measured transfer functions, the model based decoupling algorithm does not produce the expected decoupling.
Only about 20 dB separation is achieve between the diagonal and off-diagonal responses.
@@ -233,7 +231,6 @@ Only about 20 dB separation is achieve between the diagonal and off-diagonal res
</div>
<div class="note">
<div></div>
Severe phase delay exists in the actual transfer function.
This is due to the limited sample frequency and sensor bandwidth limitation.
@@ -246,20 +243,20 @@ The reason is not explained.
### Pointing Control Techniques {#pointing-control-techniques}
A block diagram of the pointing control system is shown in Figure [8](#orge6a2624).
A block diagram of the pointing control system is shown in Figure [8](#figure--fig:li01-pointing-control).
<a id="orge6a2624"></a>
<a id="figure--fig:li01-pointing-control"></a>
{{< figure src="/ox-hugo/li01_pointing_control.png" caption="Figure 8: Figure caption" >}}
{{< figure src="/ox-hugo/li01_pointing_control.png" caption="<span class=\"figure-number\">Figure 8: </span>Figure caption" >}}
The plant is decoupled into two independent SISO subsystems.
The decoupling matrix consists of the columns of \\(J\\) corresponding to the pointing DoFs.
Figure [9](#org54b4cd4) shows the measured transfer function of the \\(\theta\_x\\) axis.
Figure [9](#figure--fig:li01-transfer-function-angle) shows the measured transfer function of the \\(\theta\_x\\) axis.
<a id="org54b4cd4"></a>
<a id="figure--fig:li01-transfer-function-angle"></a>
{{< figure src="/ox-hugo/li01_transfer_function_angle.png" caption="Figure 9: Experimentally measured plant transfer function of \\(\theta\_x/\theta\_{x\_d}\\)" >}}
{{< figure src="/ox-hugo/li01_transfer_function_angle.png" caption="<span class=\"figure-number\">Figure 9: </span>Experimentally measured plant transfer function of \\(\theta\_x/\theta\_{x\_d}\\)" >}}
A typical compensator consists of the following elements:
@@ -271,13 +268,13 @@ A typical compensator consists of the following elements:
The unity control bandwidth of the pointing loop is designed to be from **0Hz to 20Hz**.
A feedforward control is added as shown in Figure [10](#orga527171).
A feedforward control is added as shown in Figure [10](#figure--fig:li01-feedforward-control).
\\(C\_f\\) is the feedforward compensator which is a 2x2 diagonal matrix.
Ideally, the feedforward compensator is an invert of the plant dynamics.
<a id="orga527171"></a>
<a id="figure--fig:li01-feedforward-control"></a>
{{< figure src="/ox-hugo/li01_feedforward_control.png" caption="Figure 10: Feedforward control" >}}
{{< figure src="/ox-hugo/li01_feedforward_control.png" caption="<span class=\"figure-number\">Figure 10: </span>Feedforward control" >}}
### Simultaneous Control {#simultaneous-control}
@@ -287,14 +284,13 @@ The simultaneous vibration isolation and pointing control is approached in two w
1. **Closing the vibration isolation loop first**: Design and implement the vibration isolation control first, identify the pointing plant when the isolation loops are closed, then implement the pointing compensators.
2. **Closing the pointing loop first**: Reverse order.
Figure [11](#orge85d506) shows a parallel control structure where \\(G\_1(s)\\) is the dynamics from input force to output strut length.
Figure [11](#figure--fig:li01-parallel-control) shows a parallel control structure where \\(G\_1(s)\\) is the dynamics from input force to output strut length.
<a id="orge85d506"></a>
<a id="figure--fig:li01-parallel-control"></a>
{{< figure src="/ox-hugo/li01_parallel_control.png" caption="Figure 11: A parallel scheme" >}}
{{< figure src="/ox-hugo/li01_parallel_control.png" caption="<span class=\"figure-number\">Figure 11: </span>A parallel scheme" >}}
<div class="important">
<div></div>
The transfer function matrix for the pointing loop after the vibration isolation is closed is still decoupled.
The same happens when closing the pointing loop first and looking at the transfer function matrix of the vibration isolation.
@@ -306,24 +302,23 @@ However, the interaction between loops may affect the transfer functions of the
The dynamic interaction effect:
- Only happens in the unity bandwidth of the loop transmission of the first closed loop.
- Affect the closed loop transmission of the loop first closed (see Figures [12](#org1065b18) and [13](#orgba389c3))
- Affect the closed loop transmission of the loop first closed (see Figures [12](#figure--fig:li01-closed-loop-pointing) and [13](#figure--fig:li01-closed-loop-vibration))
As shown in Figure [12](#org1065b18), the peak resonance of the pointing loop increase after the isolation loop is closed.
As shown in Figure [12](#figure--fig:li01-closed-loop-pointing), the peak resonance of the pointing loop increase after the isolation loop is closed.
The resonances happen at both crossovers of the isolation loop (15Hz and 50Hz) and they may show of loss of robustness.
<a id="org1065b18"></a>
<a id="figure--fig:li01-closed-loop-pointing"></a>
{{< figure src="/ox-hugo/li01_closed_loop_pointing.png" caption="Figure 12: Closed-loop transfer functions \\(\theta\_y/\theta\_{y\_d}\\) of the pointing loop before and after the vibration isolation loop is closed" >}}
{{< figure src="/ox-hugo/li01_closed_loop_pointing.png" caption="<span class=\"figure-number\">Figure 12: </span>Closed-loop transfer functions \\(\theta\_y/\theta\_{y\_d}\\) of the pointing loop before and after the vibration isolation loop is closed" >}}
The same happens when first closing the vibration isolation loop and after the pointing loop (Figure [13](#orgba389c3)).
The same happens when first closing the vibration isolation loop and after the pointing loop (Figure [13](#figure--fig:li01-closed-loop-vibration)).
The first peak resonance of the vibration isolation loop at 15Hz is increased when closing the pointing loop.
<a id="orgba389c3"></a>
<a id="figure--fig:li01-closed-loop-vibration"></a>
{{< figure src="/ox-hugo/li01_closed_loop_vibration.png" caption="Figure 13: Closed-loop transfer functions of the vibration isolation loop before and after the pointing control loop is closed" >}}
{{< figure src="/ox-hugo/li01_closed_loop_vibration.png" caption="<span class=\"figure-number\">Figure 13: </span>Closed-loop transfer functions of the vibration isolation loop before and after the pointing control loop is closed" >}}
<div class="important">
<div></div>
From the analysis above, it is hard to say which loop has more significant affect on the other loop, but the isolation loop adds a second resonance peak at its high frequency crossover in the pointing closed loop transfer function, which may cause instability.
Thus, it is recommended to design and implement the isolation control system first, and then identify the pointing plant with the isolation loop closed.
@@ -333,38 +328,37 @@ Thus, it is recommended to design and implement the isolation control system fir
### Experimental results {#experimental-results}
Two hexapods are stacked (Figure [14](#orgc3b1ba9)):
Two hexapods are stacked (Figure [14](#figure--fig:li01-test-bench)):
- the bottom hexapod is used to generate disturbances matching candidate applications
- the top hexapod provide simultaneous vibration isolation and pointing control
<a id="orgc3b1ba9"></a>
<a id="figure--fig:li01-test-bench"></a>
{{< figure src="/ox-hugo/li01_test_bench.png" caption="Figure 14: Stacked Hexapods" >}}
{{< figure src="/ox-hugo/li01_test_bench.png" caption="<span class=\"figure-number\">Figure 14: </span>Stacked Hexapods" >}}
First, the vibration isolation and pointing controls were implemented separately.
Using the vibration isolation control alone, no attenuation is achieved below 1Hz as shown in figure [15](#org933bc12).
Using the vibration isolation control alone, no attenuation is achieved below 1Hz as shown in figure [15](#figure--fig:li01-vibration-isolation-control-results).
<a id="org933bc12"></a>
<a id="figure--fig:li01-vibration-isolation-control-results"></a>
{{< figure src="/ox-hugo/li01_vibration_isolation_control_results.png" caption="Figure 15: Vibration isolation control: open-loop (solid) vs. closed-loop (dashed)" >}}
{{< figure src="/ox-hugo/li01_vibration_isolation_control_results.png" caption="<span class=\"figure-number\">Figure 15: </span>Vibration isolation control: open-loop (solid) vs. closed-loop (dashed)" >}}
The simultaneous control is of dual use:
- it provide simultaneous pointing and isolation control
- it can also be used to expand the bandwidth of the isolation control to low frequencies because the pointing loops suppress pointing errors due to both base vibrations and tracking
The results of simultaneous control is shown in Figure [16](#org3618406) where the bandwidth of the isolation control is expanded to very low frequency.
The results of simultaneous control is shown in Figure [16](#figure--fig:li01-simultaneous-control-results) where the bandwidth of the isolation control is expanded to very low frequency.
<a id="org3618406"></a>
<a id="figure--fig:li01-simultaneous-control-results"></a>
{{< figure src="/ox-hugo/li01_simultaneous_control_results.png" caption="Figure 16: Simultaneous control: open-loop (solid) vs. closed-loop (dashed)" >}}
{{< figure src="/ox-hugo/li01_simultaneous_control_results.png" caption="<span class=\"figure-number\">Figure 16: </span>Simultaneous control: open-loop (solid) vs. closed-loop (dashed)" >}}
### Summary and Conclusion {#summary-and-conclusion}
<div class="sum">
<div></div>
A parallel control scheme is proposed in this chapters.
This scheme is suitable for simultaneous vibration isolation and pointing control.
@@ -380,7 +374,6 @@ Experiments show that this scheme takes advantage of the bandwidths of both poin
## Future research areas {#future-research-areas}
<div class="sum">
<div></div>
Proposed future research areas include:
@@ -406,7 +399,8 @@ Proposed future research areas include:
</div>
## Bibliography {#bibliography}
<a id="org8036ec7"></a>Li, Xiaochun. 2001. “Simultaneous, Fault-Tolerant Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” University of Wyoming.
<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>Li, Xiaochun. 2001. “Simultaneous, Fault-Tolerant Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” University of Wyoming.</div>
</div>