Re-export everything
Deploy / deploy (push) Successful in 5s

This commit is contained in:
tdehaeze committed 2026-10-12 14:10:30 +02:00
1 parent 665774dd08
commit 432702d1a4
40 files changed
+382 -631

No files matched your search

@@ -31,7 +31,7 @@ Year
- \\(T\_{wx}(s)\\) is called the **transmissibility** of the isolator. It characterize the way seismic vibrations \\(w\\) are transmitted to the equipment. - \\(T\_{wx}(s)\\) is called the **transmissibility** of the isolator. It characterize the way seismic vibrations \\(w\\) are transmitted to the equipment.
- \\(T\_{Fx}(s)\\) is called the **compliance**. It characterize the capacity of disturbing forces \\(F\\) to create motion \\(x\\) of the equipment. - \\(T\_{Fx}(s)\\) is called the **compliance**. It characterize the capacity of disturbing forces \\(F\\) to create motion \\(x\\) of the equipment.
In order to minimize the vibrations of a sensitive equipment, a general objective to design a good isolator is to minimize both \\(\abs{T\_{wx}}\\) and \\(\abs{T\_{Fx}}\\) in the frequency range of interest. In order to minimize the vibrations of a sensitive equipment, a general objective to design a good isolator is to minimize both \\(|T\_{wx}|\\) and \\(|T\_{Fx}|\\) in the frequency range of interest.
To decrease the amplitude of the overshoot at the resonance frequency, **damping** can be increased. To decrease the amplitude of the overshoot at the resonance frequency, **damping** can be increased.
The price to pay is degradation of the isolation at high frequency (the roll off becomes \\(-1\\) instead of \\(-2\\)). The price to pay is degradation of the isolation at high frequency (the roll off becomes \\(-1\\) instead of \\(-2\\)).
@@ -1,7 +1,7 @@
+++ +++
title = "Exploiting additional actuators and sensors for nano-positioning robust motion control" title = "Exploiting additional actuators and sensors for nano-positioning robust motion control"
author = ["Dehaeze Thomas"] author = ["Dehaeze Thomas"]
draft = false draft = true
+++ +++
Tags Tags
@@ -1,26 +0,0 @@
+++
title = "Simultaneous vibration isolation and pointing control of flexure jointed hexapods"
author = ["Dehaeze Thomas"]
draft = false
+++
Tags
: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
Reference
: (<a href="#citeproc_bib_item_1">Li, Hamann, and McInroy 2001</a>)
Author(s)
: Li, X., Hamann, J. C., &amp; McInroy, J. E.
Year
: 2001
- if the hexapod is designed such that the payload mass/inertia matrix (\\(M\_x\\)) and \\(J^T J\\) are diagonal, the dynamics from \\(u\\) to \\(y\\) are decoupled.
## 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>Li, Xiaochun, Jerry C. Hamann, and John E. McInroy. 2001. “Simultaneous Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” In <i>Smart Structures and Materials 2001: Smart Structures and Integrated Systems</i>. doi:<a href="https://doi.org/10.1117/12.436521">10.1117/12.436521</a>.</div>
</div>
@@ -115,7 +115,7 @@ where:
- \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass - \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass
- \\(g\\) is the gravity vector - \\(g\\) is the gravity vector
By combining \ref{eq:strut\_dynamics\_vec}, \ref{eq:payload\_dynamics} and \ref{eq:generalized\_force}, a single equation describing the dynamics of a flexure jointed hexapod can be found: 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} \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} {}^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}
@@ -200,7 +200,7 @@ In order to get dominance at low frequencies, the hexapod must be designed so th
This puts a limit on the rotational stiffness of the flexure joint and shows that as the strut is made softer (by decreasing \\(k\\)), the spherical flexure joint must be made proportionately softer. This puts a limit on the rotational stiffness of the flexure joint and shows that as the strut is made softer (by decreasing \\(k\\)), the spherical flexure joint must be made proportionately softer.
By satisfying \ref{eq:cond\_stiff}, \\(f\_p\\) can be aligned with the strut for frequencies much below the spherical joint's resonance mode: By satisfying \eqref{eq:cond\_stiff}, \\(f\_p\\) can be aligned with the strut for frequencies much below the spherical joint's resonance mode:
\\[ \omega \ll \sqrt{\frac{k\_r}{m\_s l^2}} \rightarrow x\_{\text{gain}\_\omega} \approx \frac{k}{k\_r/l^2} \gg 1 \\] \\[ \omega \ll \sqrt{\frac{k\_r}{m\_s l^2}} \rightarrow x\_{\text{gain}\_\omega} \approx \frac{k}{k\_r/l^2} \gg 1 \\]
At frequencies much above the strut's resonance mode, \\(f\_p\\) is not dominated by its \\(x\\) component: At frequencies much above the strut's resonance mode, \\(f\_p\\) is not dominated by its \\(x\\) component:
\\[ \omega \gg \sqrt{\frac{k}{m\_s}} \rightarrow x\_{\text{gain}\_\omega} \approx 1 \\] \\[ \omega \gg \sqrt{\frac{k}{m\_s}} \rightarrow x\_{\text{gain}\_\omega} \approx 1 \\]
@@ -225,14 +225,14 @@ In this case, it is reasonable to use:
<div class="important"> <div class="important">
By designing the flexure jointed hexapod and its controller so that both \ref{eq:cond\_stiff} and \ref{eq:cond\_bandwidth} are met, the dynamics of the hexapod can be greatly reduced in complexity. By designing the flexure jointed hexapod and its controller so that both \eqref{eq:cond\_stiff} and \eqref{eq:cond\_bandwidth} are met, the dynamics of the hexapod can be greatly reduced in complexity.
</div> </div>
## Relationships between joint and cartesian space {#relationships-between-joint-and-cartesian-space} ## Relationships between joint and cartesian space {#relationships-between-joint-and-cartesian-space}
Equation \ref{eq:eom\_fjh} is not suitable for control analysis and design because \\(\ddot{\mathcal{X}}\\) is implicitly a function of \\(\ddot{q}\_u\\). Equation \eqref{eq:eom\_fjh} is not suitable for control analysis and design because \\(\ddot{\mathcal{X}}\\) is implicitly a function of \\(\ddot{q}\_u\\).
This section will derive this implicit relationship. This section will derive this implicit relationship.
Let denote: Let denote:
+2 -2
View File
@@ -53,7 +53,7 @@ In order to provide low frequency passive vibration isolation, the hard actuator
<a id="table--tab:mcinroy99-strut-model"></a> <a id="table--tab:mcinroy99-strut-model"></a>
<div class="table-caption"> <div class="table-caption">
<span class="table-number"><a href="#table--tab:mcinroy99-strut-model">Table 1</a>:</span> <span class="table-number"><a href="#table--tab:mcinroy99-strut-model">Table 1</a>:</span>
Definition of quantities on <a href="#orgfe6d4ea">2</a> Definition of quantities on <a href="#orgf3f08ed">2</a>
</div> </div>
| **Symbol** | **Meaning** | | **Symbol** | **Meaning** |
@@ -142,7 +142,7 @@ where:
- \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass - \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass
- \\(g\\) is the gravity vector - \\(g\\) is the gravity vector
By combining \ref{eq:strut\_dynamics\_vec}, \ref{eq:payload\_dynamics} and \ref{eq:generalized\_force}, a single equation describing the dynamics of a flexure jointed hexapod can be found: 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{aligned} \begin{aligned}
& {}^UJ^T [ f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u\\\\ & {}^UJ^T [ f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u\\\\
+1 -1
View File
@@ -100,7 +100,7 @@ The loop must maintain very good frequency response fidelity over wide frequency
But a key fact about physical systems is that they do not exhibit good frequency response fidelity beyond a certain bandwidth. But a key fact about physical systems is that they do not exhibit good frequency response fidelity beyond a certain bandwidth.
This is due to uncertain or unmodeled dynamics in the plant, to digital control implementations, to power limits, to nonlinearities, and to many other factors. This is due to uncertain or unmodeled dynamics in the plant, to digital control implementations, to power limits, to nonlinearities, and to many other factors.
Let us call that bandwidth the available bandwidth" \\(\Omega\_a\\), to distinguish it from other bandwidths such as crossover or \\(3-dB\\) magnitude loss. Let us call that bandwidth the available bandwidth" \\(\Omega\_a\\), to distinguish it from other bandwidths such as crossover or \\(3-dB\\) magnitude loss.
The available bandwidth is the frequency up to which we can keep \\(G(j\omega) K(j\omega)\\) close to a nominal design and beyond which we can only guarantee that the actual loop magnitude will attenuate rapidly enough (e.g. \\(|G(j\omega) K(j\omeg\\))| &lt; &delta;/&omega;^2$). The available bandwidth is the frequency up to which we can keep \\(G(j\omega) K(j\omega)\\) close to a nominal design and beyond which we can only guarantee that the actual loop magnitude will attenuate rapidly enough (e.g. \\(|G(j\omega) K(j\omega)| < \delta/\omega^2\\)).
In today's popular robust control jargon, the available bandwidth is the frequency range over which the unstructured multiplicative perturbations are substantially less than unity. In today's popular robust control jargon, the available bandwidth is the frequency range over which the unstructured multiplicative perturbations are substantially less than unity.
Note that the available bandwidth is not a function of the compensator or of the control design process. Note that the available bandwidth is not a function of the compensator or of the control design process.
@@ -80,7 +80,7 @@ The array \\(H(\omega\_i), i = 1 \dots N\_f\\) of complex matrices can be repres
<div class="important"> <div class="important">
The core result of this paper is that the decomposition can be found by rephrasing \ref{eq:decomposition} as a "Canonical Polyadic Decomposition" (CPD). The core result of this paper is that the decomposition can be found by rephrasing \eqref{eq:decomposition} as a "Canonical Polyadic Decomposition" (CPD).
This is shown in [Figure 2](#figure--fig:stoev17-decompos-3d-tensor), where \\(T\_y,T\_u,S\_d\\) can be directly computed using a single Matlab function. This is shown in [Figure 2](#figure--fig:stoev17-decompos-3d-tensor), where \\(T\_y,T\_u,S\_d\\) can be directly computed using a single Matlab function.
</div> </div>
+37 -39
View File
@@ -221,7 +221,7 @@ This process itself falls into two stages:
Most of the effort goes into this second stage, which is widely referred to as "modal parameter extraction", or simply as "modal analysis". Most of the effort goes into this second stage, which is widely referred to as "modal parameter extraction", or simply as "modal analysis".
We have seen that we can predict the form of the FRF plots for a multi degree-of-freedom system, and that these are directly related to the modal properties of that system. We have seen that we can predict the form of the FRF plots for a multi degree-of-freedom system, and that these are directly related to the modal properties of that system.
The great majority of the modal analysis effort involves **curve-fitting** an expression such as equation \ref{eq:frf\_modal} to the measured FRF and thereby finding the appropriate modal parameters. The great majority of the modal analysis effort involves **curve-fitting** an expression such as equation \eqref{eq:frf\_modal} to the measured FRF and thereby finding the appropriate modal parameters.
A completely general curve-fitting approach is possible but generally inefficient. A completely general curve-fitting approach is possible but generally inefficient.
Mathematically, we can take an equation of the form Mathematically, we can take an equation of the form
@@ -485,11 +485,11 @@ where \\(\eta\\) is the **structural damping loss factor** and replaces the crit
#### Alternative Forms of FRF {#alternative-forms-of-frf} #### Alternative Forms of FRF {#alternative-forms-of-frf}
So far we have defined our receptance frequency response function \\(\alpha(\omega)\\) as the ratio between a harmonic displacement response and the harmonic force \ref{eq:receptance}. So far we have defined our receptance frequency response function \\(\alpha(\omega)\\) as the ratio between a harmonic displacement response and the harmonic force \eqref{eq:receptance}.
This ratio is complex: we can look at its **amplitude** ratio \\(|\alpha(\omega)|\\) and its **phase** angle \\(\theta\_\alpha(\omega)\\). This ratio is complex: we can look at its **amplitude** ratio \\(|\alpha(\omega)|\\) and its **phase** angle \\(\theta\_\alpha(\omega)\\).
We could have selected the response velocity \\(v(t)\\) as the output quantity and defined an alternative frequency response function \ref{eq:mobility}. We could have selected the response velocity \\(v(t)\\) as the output quantity and defined an alternative frequency response function \eqref{eq:mobility}.
Similarly we could use the acceleration parameter so we could define a third FRF parameter \ref{eq:inertance}. Similarly we could use the acceleration parameter so we could define a third FRF parameter \eqref{eq:inertance}.
<div class="definition"> <div class="definition">
@@ -608,7 +608,7 @@ This type of display is not widely used as we cannot use logarithmic axes (as we
##### Real part and Imaginary part of reciprocal FRF {#real-part-and-imaginary-part-of-reciprocal-frf} ##### Real part and Imaginary part of reciprocal FRF {#real-part-and-imaginary-part-of-reciprocal-frf}
It can be seen from the expression of the inverse receptance \ref{eq:dynamic\_stiffness} that the Real part depends entirely on the mass and stiffness properties while the Imaginary part is a only function of the damping. It can be seen from the expression of the inverse receptance \eqref{eq:dynamic\_stiffness} that the Real part depends entirely on the mass and stiffness properties while the Imaginary part is a only function of the damping.
[Figure 9a](#org-target--fig-inverse-frf-mixed) shows an example of a plot of a system with a combination of both viscous and structural damping. The imaginary part is a straight line whose slope is given by the viscous damping rate \\(c\\) and whose intercept at \\(\omega = 0\\) is provided by the structural damping coefficient \\(d\\). [Figure 9a](#org-target--fig-inverse-frf-mixed) shows an example of a plot of a system with a combination of both viscous and structural damping. The imaginary part is a straight line whose slope is given by the viscous damping rate \\(c\\) and whose intercept at \\(\omega = 0\\) is provided by the structural damping coefficient \\(d\\).
@@ -657,7 +657,7 @@ This makes the Nyquist plot very effective for modal testing applications.
#### Free Vibration Solution - The modal Properties {#free-vibration-solution-the-modal-properties} #### Free Vibration Solution - The modal Properties {#free-vibration-solution-the-modal-properties}
For an undamped MDOF system, with \\(N\\) degrees of freedom, the governing equations of motion can be written in matrix form \ref{eq:undamped\_mdof}. For an undamped MDOF system, with \\(N\\) degrees of freedom, the governing equations of motion can be written in matrix form \eqref{eq:undamped\_mdof}.
<div class="important"> <div class="important">
@@ -673,7 +673,7 @@ where \\([M]\\) and \\([K]\\) are \\(N\times N\\) mass and stiffness matrices, a
We shall consider first the free vibration solution by taking \\(f(t) = 0\\). We shall consider first the free vibration solution by taking \\(f(t) = 0\\).
In this case, we assume that a solution exists of the form \\(\\{x(t)\\} = \\{X\\} e^{i \omega t}\\) where \\(\\{X\\}\\) is an \\(N \times 1\\) vector of time-independent amplitudes. In this case, we assume that a solution exists of the form \\(\\{x(t)\\} = \\{X\\} e^{i \omega t}\\) where \\(\\{X\\}\\) is an \\(N \times 1\\) vector of time-independent amplitudes.
Substitution of this condition into \ref{eq:undamped\_mdof} leads to Substitution of this condition into \eqref{eq:undamped\_mdof} leads to
\begin{equation} \label{eq:free\_eom\_mdof} \begin{equation} \label{eq:free\_eom\_mdof}
\left( [K] - \omega^2 [M] \right) \\{X\\} e^{i\omega t} = \\{0\\} \left( [K] - \omega^2 [M] \right) \\{X\\} e^{i\omega t} = \\{0\\}
@@ -683,7 +683,7 @@ for which the non trivial solutions are those which satisfy
\\[ \det \left| [K] - \omega^2 [M] \right| = 0 \\] \\[ \det \left| [K] - \omega^2 [M] \right| = 0 \\]
from which we can find \\(N\\) values of \\(\omega^2\\) corresponding to the undamped system's **natural frequencies**. from which we can find \\(N\\) values of \\(\omega^2\\) corresponding to the undamped system's **natural frequencies**.
Substituting any of these back into \ref{eq:free\_eom\_mdof} yields a corresponding set of relative values for \\(\\{X\\}\\): \\(\\{\psi\\}\_r\\) the so-called **mode shape** corresponding to that natural frequency. Substituting any of these back into \eqref{eq:free\_eom\_mdof} yields a corresponding set of relative values for \\(\\{X\\}\\): \\(\\{\psi\\}\_r\\) the so-called **mode shape** corresponding to that natural frequency.
<div class="important"> <div class="important">
@@ -820,7 +820,7 @@ An alternative means of deriving the FRF parameters is used which makes use of t
\\[ [K] - \omega^2 [M] = [\alpha(\omega)]^{-1} \\] \\[ [K] - \omega^2 [M] = [\alpha(\omega)]^{-1} \\]
Pre-multiply both sides by \\([\Phi]^T\\) and post-multiply both sides by \\([\Phi]\\) to obtain Pre-multiply both sides by \\([\Phi]^T\\) and post-multiply both sides by \\([\Phi]\\) to obtain
\\[ [\Phi]^T ([K] - \omega^2 [M]) [\Phi] = [\Phi]^T [\alpha(\omega)]^{-1} [\Phi] \\] \\[ [\Phi]^T ([K] - \omega^2 [M]) [\Phi] = [\Phi]^T [\alpha(\omega)]^{-1} [\Phi] \\]
which leads to \ref{eq:receptance\_modal}. which leads to \eqref{eq:receptance\_modal}.
<div class="important"> <div class="important">
@@ -830,7 +830,7 @@ Receptance FRF matrix - Modal Properties;
[\alpha(\omega)] = [\Phi] \left[ \bar{\omega}\_r^2 - \omega^2 \right]^{-1} [\Phi]^T \label{eq:receptance\_modal} [\alpha(\omega)] = [\Phi] \left[ \bar{\omega}\_r^2 - \omega^2 \right]^{-1} [\Phi]^T \label{eq:receptance\_modal}
\end{equation} \end{equation}
Equation \ref{eq:receptance\_modal} permits us to compute any individual FRF parameters \\(\alpha\_{jk}(\omega)\\) using the following formula Equation \eqref{eq:receptance\_modal} permits us to compute any individual FRF parameters \\(\alpha\_{jk}(\omega)\\) using the following formula
\begin{align} \begin{align}
\alpha\_{jk}(\omega) &= \sum\_{r=1}^N \frac{\phi\_{jr} \phi\_{kr}}{\bar{\omega}\_r^2 - \omega^2}\\\\ \alpha\_{jk}(\omega) &= \sum\_{r=1}^N \frac{\phi\_{jr} \phi\_{kr}}{\bar{\omega}\_r^2 - \omega^2}\\\\
@@ -844,7 +844,7 @@ where \\({}\_rA\_{jk}\\) is called the **modal constant**.
<div class="important"> <div class="important">
It is clear from equation \ref{eq:receptance\_modal} that the receptance matrix \\([\alpha(\omega)]\\) is **symmetric** and this will be recognized as the **principle of reciprocity**. It is clear from equation \eqref{eq:receptance\_modal} that the receptance matrix \\([\alpha(\omega)]\\) is **symmetric** and this will be recognized as the **principle of reciprocity**.
This principle of reciprocity applies to many structural characteristics. This principle of reciprocity applies to many structural characteristics.
@@ -982,7 +982,7 @@ From this full matrix equation, we have:
Having derived an expression for the general term in the frequency response function matrix \\(\alpha\_{jk}(\omega)\\), it is appropriate to consider next the analysis of a situation where the system is **excited simultaneously at several points**. Having derived an expression for the general term in the frequency response function matrix \\(\alpha\_{jk}(\omega)\\), it is appropriate to consider next the analysis of a situation where the system is **excited simultaneously at several points**.
The general behavior for this case is governed by equation \ref{eq:force\_response\_eom} with solution \ref{eq:force\_response\_eom\_solution}. The general behavior for this case is governed by equation \eqref{eq:force\_response\_eom} with solution \eqref{eq:force\_response\_eom\_solution}.
However, a more explicit form of the solution is However, a more explicit form of the solution is
\begin{equation} \label{eq:ods} \begin{equation} \label{eq:ods}
@@ -1005,7 +1005,7 @@ The properties of the normal modes of the undamped system are of interest becaus
</div> </div>
We are seeking an excitation vector \\(\\{F\\}\\) such that the **response** \\(\\{X\\}\\) **consists of a single modal component** so that all terms in \ref{eq:ods} but one is zero. We are seeking an excitation vector \\(\\{F\\}\\) such that the **response** \\(\\{X\\}\\) **consists of a single modal component** so that all terms in \eqref{eq:ods} but one is zero.
This can be attained if \\(\\{F\\}\\) is chosen such that This can be attained if \\(\\{F\\}\\) is chosen such that
\\[ \\{\phi\_r\\}^T \\{F\\}\_s = 0, \ r \neq s \\] \\[ \\{\phi\_r\\}^T \\{F\\}\_s = 0, \ r \neq s \\]
@@ -1087,7 +1087,7 @@ where \\(\omega\_r\\) is the **natural frequency** and \\(\xi\_r\\) is the **cri
When the modes \\(r\\) and \\(q\\) are a complex conjugate pair: When the modes \\(r\\) and \\(q\\) are a complex conjugate pair:
\\[ s\_r = \omega\_r \left( -\xi\_r - i\sqrt{1 - \xi\_r^2} \right); \quad \\{\psi\\}\_q = \\{\psi\\}\_r^\* \\] \\[ s\_r = \omega\_r \left( -\xi\_r - i\sqrt{1 - \xi\_r^2} \right); \quad \\{\psi\\}\_q = \\{\psi\\}\_r^\* \\]
From equations \ref{eq:viscous\_damping\_orthogonality}, we can obtain From equations \eqref{eq:viscous\_damping\_orthogonality}, we can obtain
\begin{align} \begin{align}
2 \omega\_r \xi\_r &= \frac{\\{\psi\\}\_r^H [C] \\{\psi\\}\_r}{\\{\psi\\}\_r^H [M] \\{\psi\\}\_r} = \frac{c\_r}{m\_r} \\\\ 2 \omega\_r \xi\_r &= \frac{\\{\psi\\}\_r^H [C] \\{\psi\\}\_r}{\\{\psi\\}\_r^H [M] \\{\psi\\}\_r} = \frac{c\_r}{m\_r} \\\\
@@ -1400,7 +1400,7 @@ One these two series are available, the FRF can be defined at the same set of fr
##### Analysis via Fourier transform {#analysis-via-fourier-transform} ##### Analysis via Fourier transform {#analysis-via-fourier-transform}
For most transient cases, the input function \\(f(t)\\) will satisfy the **Dirichlet condition** and so its Fourier Transform \\(F(\omega)\\) can be computed from \ref{eq:fourier\_transform}. For most transient cases, the input function \\(f(t)\\) will satisfy the **Dirichlet condition** and so its Fourier Transform \\(F(\omega)\\) can be computed from \eqref{eq:fourier\_transform}.
\begin{equation} \label{eq:fourier\_transform} \begin{equation} \label{eq:fourier\_transform}
F(\omega) = \frac{1}{2 \pi} \int\_{-\infty}^\infty f(t) e^{i\omega t} dt F(\omega) = \frac{1}{2 \pi} \int\_{-\infty}^\infty f(t) e^{i\omega t} dt
@@ -1556,10 +1556,10 @@ However, the same equation can be transform to the frequency domain
\tcmbox{ S\_{xx}(\omega) = \left| H(\omega) \right|^2 S\_{ff}(\omega) } \tcmbox{ S\_{xx}(\omega) = \left| H(\omega) \right|^2 S\_{ff}(\omega) }
\end{equation} \end{equation}
Although very convenient, equation \ref{eq:psd\_input\_output} does not provide a complete description of the random vibration conditions. Although very convenient, equation \eqref{eq:psd\_input\_output} does not provide a complete description of the random vibration conditions.
Further, it is clear that **is could not be used to determine the FRF** from measurement of excitation and response because it **contains only the modulus** of \\(H(\omega)\\), the phase information begin omitted from this formula. Further, it is clear that **is could not be used to determine the FRF** from measurement of excitation and response because it **contains only the modulus** of \\(H(\omega)\\), the phase information begin omitted from this formula.
A second equation is required and this may be obtain by a similar analysis, two alternative formulas can be obtained \ref{eq:cross\_relation\_alternatives}. A second equation is required and this may be obtain by a similar analysis, two alternative formulas can be obtained \eqref{eq:cross\_relation\_alternatives}.
<div class="important"> <div class="important">
@@ -1573,8 +1573,8 @@ A second equation is required and this may be obtain by a similar analysis, two
##### To derive FRF from random vibration signals {#to-derive-frf-from-random-vibration-signals} ##### To derive FRF from random vibration signals {#to-derive-frf-from-random-vibration-signals}
The pair of equations \ref{eq:cross\_relation\_alternatives} provides the basic of determining a system's FRF properties from the measurements and analysis of a random vibration test. The pair of equations \eqref{eq:cross\_relation\_alternatives} provides the basic of determining a system's FRF properties from the measurements and analysis of a random vibration test.
Using either of them, we have a simple formula for determining the FRF from estimates of the relevant spectral densities \ref{eq:H1} \ref{eq:H2}. Using either of them, we have a simple formula for determining the FRF from estimates of the relevant spectral densities \eqref{eq:H1} \eqref{eq:H2}.
<div class="important"> <div class="important">
@@ -1615,7 +1615,7 @@ Then in [Figure 18b](#org-target--fig-frf-feedback-model) is given a more detail
</figure> </figure>
In this configuration, it can be seen that there are two feedback mechanisms which apply. In this configuration, it can be seen that there are two feedback mechanisms which apply.
We then introduce an alternative formula which is available for the determination of the system FRF from measurements of the input and output quantities \ref{eq:H3}. We then introduce an alternative formula which is available for the determination of the system FRF from measurements of the input and output quantities \eqref{eq:H3}.
<div class="important"> <div class="important">
@@ -1754,7 +1754,7 @@ First, if we have a **modal incompleteness** (\\(m<N\\) modes included), then we
However, if we have **spatial incompleteness** (only \\(n<N\\) DOFs included), then we cannot express any orthogonality properties at all because the eigenvector matrix is not commutable with the system mass and stiffness matrices. However, if we have **spatial incompleteness** (only \\(n<N\\) DOFs included), then we cannot express any orthogonality properties at all because the eigenvector matrix is not commutable with the system mass and stiffness matrices.
In both reduced-model cases, it is not possible to use equation \ref{eq:spatial\_model\_from\_modal} to re-construct the system mass and stiffness matrices. In both reduced-model cases, it is not possible to use equation \eqref{eq:spatial\_model\_from\_modal} to re-construct the system mass and stiffness matrices.
First of all because the eigen matrices are generally singular and even if it is not, the obtained mass and stiffness matrices produced have no physical significance and should not be used. First of all because the eigen matrices are generally singular and even if it is not, the obtained mass and stiffness matrices produced have no physical significance and should not be used.
@@ -2288,9 +2288,7 @@ The process of filtering has a direct parallel with windowing.
Common filters are: low-pass, high-pass, band-limited, narrow-band, notch. Common filters are: low-pass, high-pass, band-limited, narrow-band, notch.
#### Improving Resolution {#improving-resolution} #### Improving Resolution {#sec:improving_resolution}
<span class="org-target" id="org-target--sec-improving-resolution"></span>
##### Increasing transform size {#increasing-transform-size} ##### Increasing transform size {#increasing-transform-size}
@@ -2783,7 +2781,7 @@ Then, the full \\(6 \times 6\\) mobility matrix can be measured, however this pr
Other methods for measuring rotational effects include specially developed rotational accelerometers and shakers. Other methods for measuring rotational effects include specially developed rotational accelerometers and shakers.
However, there is a major problem that is encountered when measuring rotational FRF: the translational components of the structure's movement tends to overshadow those due to the rotational motions. However, there is a major problem that is encountered when measuring rotational FRF: the translational components of the structure's movement tends to overshadow those due to the rotational motions.
For example, the magnitude of the difference in equation \ref{eq:rotational\_diff} is often of the order of \\(\SI{1}{\\%}\\) of the two individual values which is similar to the transverse sensitivity of the accelerometers: potential errors in rotations are thus enormous. For example, the magnitude of the difference in equation \eqref{eq:rotational\_diff} is often of the order of \\(\SI{1}{\\%}\\) of the two individual values which is similar to the transverse sensitivity of the accelerometers: potential errors in rotations are thus enormous.
### Multi-point excitation methods {#multi-point-excitation-methods} ### Multi-point excitation methods {#multi-point-excitation-methods}
@@ -2822,7 +2820,7 @@ The two vectors are related by the system's FRF properties as:
\\{X\\}\_{n\times 1} = [H(\omega)]\_{n\times p} \\{F\\}\_{p\times 1} \\{X\\}\_{n\times 1} = [H(\omega)]\_{n\times p} \\{F\\}\_{p\times 1}
\end{equation} \end{equation}
However, it is not possible to derive the FRF matrix from the single equation \ref{eq:mpss\_equation}, because there will be insufficient data in the two vectors (one of length \\(p\\), the other of length \\(n\\)) to define completely the \\(n\times p\\) FRF matrix. However, it is not possible to derive the FRF matrix from the single equation \eqref{eq:mpss\_equation}, because there will be insufficient data in the two vectors (one of length \\(p\\), the other of length \\(n\\)) to define completely the \\(n\times p\\) FRF matrix.
What is required is to make a series of \\(p^\prime\\) measurements of the same basic type using different excitation vectors \\(\\{F\\}\_i\\) that should be chosen such that the forcing matrix \\([F]\_{p\times p^\prime} = [\\{F\\}\_1, \dots, \\{F\\}\_p]\\) is non-singular. What is required is to make a series of \\(p^\prime\\) measurements of the same basic type using different excitation vectors \\(\\{F\\}\_i\\) that should be chosen such that the forcing matrix \\([F]\_{p\times p^\prime} = [\\{F\\}\_1, \dots, \\{F\\}\_p]\\) is non-singular.
This can be assured if: This can be assured if:
@@ -3330,13 +3328,13 @@ For any frequency \\(\omega\\), we have the following relationship:
\end{aligned} \end{aligned}
\end{equation} \end{equation}
From \ref{eq:modal\_circle\_tan}, we obtain: From \eqref{eq:modal\_circle\_tan}, we obtain:
\begin{equation} \label{eq:modal\_circle\_omega} \begin{equation} \label{eq:modal\_circle\_omega}
\omega^2 = \omega\_r^2 \left(1 - \eta\_r \tan\left(\frac{\theta}{2}\right) \right) \omega^2 = \omega\_r^2 \left(1 - \eta\_r \tan\left(\frac{\theta}{2}\right) \right)
\end{equation} \end{equation}
If we differentiate \ref{eq:modal\_circle\_omega} with respect to \\(\theta\\), we obtain: If we differentiate \eqref{eq:modal\_circle\_omega} with respect to \\(\theta\\), we obtain:
\begin{equation} \begin{equation}
\frac{d\omega^2}{d\theta} = \frac{-\omega\_r^2 \eta\_r}{2} \frac{\left(1 - (\omega/\omega\_r)^2\right)^2}{\eta\_r^2} \frac{d\omega^2}{d\theta} = \frac{-\omega\_r^2 \eta\_r}{2} \frac{\left(1 - (\omega/\omega\_r)^2\right)^2}{\eta\_r^2}
@@ -3421,10 +3419,10 @@ The sequence is:
Then we obtain the **center** and **radius** of the circle and the **quality factor** is the mean square deviation of the chosen points from the circle. Then we obtain the **center** and **radius** of the circle and the **quality factor** is the mean square deviation of the chosen points from the circle.
3. **Locate natural frequency, obtain damping estimate**. 3. **Locate natural frequency, obtain damping estimate**.
The rate of sweep through the region is estimated numerically and the frequency at which it reaches the maximum is deduced. The rate of sweep through the region is estimated numerically and the frequency at which it reaches the maximum is deduced.
At the same time, an estimate of the damping is derived using \ref{eq:estimate\_damping\_sweep\_rate}. At the same time, an estimate of the damping is derived using \eqref{eq:estimate\_damping\_sweep\_rate}.
A typical example is shown on [Figure 48](#figure--fig:circle-fit-natural-frequency). A typical example is shown on [Figure 48](#figure--fig:circle-fit-natural-frequency).
4. **Calculate multiple damping estimates, and scatter**. 4. **Calculate multiple damping estimates, and scatter**.
A set of damping estimates using all possible combination of the selected data points are computed using \ref{eq:estimate\_damping}. A set of damping estimates using all possible combination of the selected data points are computed using \eqref{eq:estimate\_damping}.
Then, we can choose the damping estimate to be the mean value. Then, we can choose the damping estimate to be the mean value.
We also look at the distribution of the obtained damping estimates as is permits a useful diagnostic of the quality of the entire analysis: We also look at the distribution of the obtained damping estimates as is permits a useful diagnostic of the quality of the entire analysis:
- Good measured data should lead to a smooth plot of these damping estimates, any roughness of the surface can be explained in terms of noise in the original data. - Good measured data should lead to a smooth plot of these damping estimates, any roughness of the surface can be explained in terms of noise in the original data.
@@ -3530,7 +3528,7 @@ we now have sufficient information to extract estimates for the four parameters
3. Plot graphs of \\(m\_R(\Omega)\\) vs \\(\Omega^2\\) and of \\(m\_I(\Omega)\\) vs \\(\Omega^2\\) using the results from step 1., each time using a different measurement points as the fixing frequency \\(\Omega\_j\\) 3. Plot graphs of \\(m\_R(\Omega)\\) vs \\(\Omega^2\\) and of \\(m\_I(\Omega)\\) vs \\(\Omega^2\\) using the results from step 1., each time using a different measurement points as the fixing frequency \\(\Omega\_j\\)
4. Determine the slopes of the best fit straight lines through these two plots, \\(n\_R\\) and \\(n\_I\\), and their intercepts with the vertical axis \\(d\_R\\) and \\(d\_I\\) 4. Determine the slopes of the best fit straight lines through these two plots, \\(n\_R\\) and \\(n\_I\\), and their intercepts with the vertical axis \\(d\_R\\) and \\(d\_I\\)
5. Use these four quantities, and equation \ref{eq:modal\_parameters\_formula}, to determine the **four modal parameters** required for that mode 5. Use these four quantities, and equation \eqref{eq:modal\_parameters\_formula}, to determine the **four modal parameters** required for that mode
This procedure which places more weight to points slightly away from the resonance region is likely to be less sensitive to measurement difficulties of measuring the resonance region. This procedure which places more weight to points slightly away from the resonance region is likely to be less sensitive to measurement difficulties of measuring the resonance region.
@@ -3599,7 +3597,7 @@ From the sketch, it may be seen that within the frequency range of interest:
- the first term tends to approximate to a **mass-like behavior** - the first term tends to approximate to a **mass-like behavior**
- the third term approximates to a **stiffness effect** - the third term approximates to a **stiffness effect**
Thus, we have a basis for the residual terms and shall rewrite equation \ref{eq:sum\_modes:} Thus, we have a basis for the residual terms and shall rewrite equation \eqref{eq:sum\_modes:}
\begin{equation} \begin{equation}
H\_{jk}(\omega) \simeq -\frac{1}{\omega^2 M\_{jk}^R} + \sum\_{r=m\_1}^{m\_2} \left( \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} \right) + \frac{1}{K\_{jk}^R} H\_{jk}(\omega) \simeq -\frac{1}{\omega^2 M\_{jk}^R} + \sum\_{r=m\_1}^{m\_2} \left( \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} \right) + \frac{1}{K\_{jk}^R}
@@ -3659,7 +3657,7 @@ We can write the receptance in the frequency range of interest as:
In the previous methods, the second term was assumed to be a constant in the curve-fit procedure for mode \\(r\\). In the previous methods, the second term was assumed to be a constant in the curve-fit procedure for mode \\(r\\).
However, if we have good **estimates** for the coefficients which constitutes the second term, for example by having already completed an SDOF analysis, we may remove the restriction on the analysis. However, if we have good **estimates** for the coefficients which constitutes the second term, for example by having already completed an SDOF analysis, we may remove the restriction on the analysis.
Indeed, suppose we take a set of measured data points around the resonance at \\(\omega\_r\\), and that we can compute the magnitude of the second term in \ref{eq:second\_term\_refinement}, we then subtract this from the measurement and we obtain adjusted data points that are conform to a true SDOF behavior and we can use the same technique as before to obtain **improved estimated** to the modal parameters of more \\(r\\). Indeed, suppose we take a set of measured data points around the resonance at \\(\omega\_r\\), and that we can compute the magnitude of the second term in \eqref{eq:second\_term\_refinement}, we then subtract this from the measurement and we obtain adjusted data points that are conform to a true SDOF behavior and we can use the same technique as before to obtain **improved estimated** to the modal parameters of more \\(r\\).
This procedure can be repeated iteratively for all the modes in the range of interest and it can significantly enhance the quality of found modal parameters for system with **strong coupling**. This procedure can be repeated iteratively for all the modes in the range of interest and it can significantly enhance the quality of found modal parameters for system with **strong coupling**.
@@ -3718,7 +3716,7 @@ If we further increase the generality by attaching a **weighting factor** \\(w\_
is minimized. is minimized.
This is achieved by differentiating \ref{eq:error\_weighted} with respect to each unknown in turn, thus generating a set of as many equations as there are unknown: This is achieved by differentiating \eqref{eq:error\_weighted} with respect to each unknown in turn, thus generating a set of as many equations as there are unknown:
\begin{equation} \begin{equation}
\frac{d E}{d q} = 0; \quad q = {}\_1A\_{jk}, {}\_2A\_{jk}, \dots \frac{d E}{d q} = 0; \quad q = {}\_1A\_{jk}, {}\_2A\_{jk}, \dots
@@ -3769,7 +3767,7 @@ leading to the modified, but more convenient version actually used in the analys
\end{equation} \end{equation}
In these expressions, only \\(m\\) modes are included in the theoretical FRF formula: the true number of modes, \\(N\\), is actually one of the **unknowns** to be determined during the analysis. In these expressions, only \\(m\\) modes are included in the theoretical FRF formula: the true number of modes, \\(N\\), is actually one of the **unknowns** to be determined during the analysis.
Equation \ref{eq:rpf\_error} can be rewritten as follows: Equation \eqref{eq:rpf\_error} can be rewritten as follows:
\begin{equation} \begin{equation}
\begin{aligned} \begin{aligned}
@@ -3823,7 +3821,7 @@ where \\([X], [Y], [Z], \\{G\\}\\) and \\(\\{F\\}\\) are known measured quantiti
\end{equation} \end{equation}
Once the solution has been obtained for the coefficients \\(a\_k, \dots , b\_k, \dots\\) then the second stage of the modal analysis can be performed in which the required **modal parameters are derived**. Once the solution has been obtained for the coefficients \\(a\_k, \dots , b\_k, \dots\\) then the second stage of the modal analysis can be performed in which the required **modal parameters are derived**.
This is usually done by solving the two polynomial expressions which form the numerator and denominator of equations \ref{eq:frf\_clasic} and \ref{eq:frf\_rational:} This is usually done by solving the two polynomial expressions which form the numerator and denominator of equations \eqref{eq:frf\_clasic} and \eqref{eq:frf\_rational:}
- the denominator is used to obtain the natural frequencies \\(\omega\_r\\) and damping factors \\(\xi\_r\\) - the denominator is used to obtain the natural frequencies \\(\omega\_r\\) and damping factors \\(\xi\_r\\)
- the numerator is used to determine the complex modal constants \\(A\_r\\) - the numerator is used to determine the complex modal constants \\(A\_r\\)
@@ -4055,7 +4053,7 @@ First, we note that from a single FRF curve, \\(H\_{jk}(\omega)\\), it is possib
Now, although this gives us the natural frequency and damping properties directly, it does not explicitly yield the mode shape: only a modal constant \\({}\_rA\_{jk}\\) which is formed from the mode shape data. Now, although this gives us the natural frequency and damping properties directly, it does not explicitly yield the mode shape: only a modal constant \\({}\_rA\_{jk}\\) which is formed from the mode shape data.
In order to extract the individual elements \\(\phi\_{jr}\\) of the mode shape matrix \\([\Phi]\\), it is necessary to make a series of measurements of specific FRFs including, especially, the point FRF at the excitation position. In order to extract the individual elements \\(\phi\_{jr}\\) of the mode shape matrix \\([\Phi]\\), it is necessary to make a series of measurements of specific FRFs including, especially, the point FRF at the excitation position.
If we measure \\(H\_{kk}\\), then by using \ref{eq:modal\_model\_from\_frf}, we also obtain the specific elements in the mode shape matrix corresponding to the excitation point: If we measure \\(H\_{kk}\\), then by using \eqref{eq:modal\_model\_from\_frf}, we also obtain the specific elements in the mode shape matrix corresponding to the excitation point:
\begin{equation} \begin{equation}
H\_{kk}(\omega) \longrightarrow \omega\_r, \eta\_r, {}\_rA\_{jk} \longrightarrow \phi\_{kr}; \quad r=1, m H\_{kk}(\omega) \longrightarrow \omega\_r, \eta\_r, {}\_rA\_{jk} \longrightarrow \phi\_{kr}; \quad r=1, m
@@ -4529,7 +4527,7 @@ In this respect, the demands of the response model are more stringent that those
#### Synthesis of FRF curves {#synthesis-of-frf-curves} #### Synthesis of FRF curves {#synthesis-of-frf-curves}
One of the implications of equation \ref{eq:regenerate\_full\_frf\_matrix} is that **it is possible to synthesize the FRF curves which were not measured**. One of the implications of equation \eqref{eq:regenerate\_full\_frf\_matrix} is that **it is possible to synthesize the FRF curves which were not measured**.
This arises because if we measured three individual FRF such as \\(H\_{ik}(\omega)\\), \\(H\_{jk}(\omega)\\) and \\(K\_{kk}(\omega)\\), then modal analysis of these yields the modal parameters from which it is possible to generate the FRF \\(H\_{ij}(\omega)\\), \\(H\_{jj}(\omega)\\), etc. This arises because if we measured three individual FRF such as \\(H\_{ik}(\omega)\\), \\(H\_{jk}(\omega)\\) and \\(K\_{kk}(\omega)\\), then modal analysis of these yields the modal parameters from which it is possible to generate the FRF \\(H\_{ij}(\omega)\\), \\(H\_{jj}(\omega)\\), etc.
However, it must be noted that there is an important **limitation to this procedure** which is highlighted in the example below. However, it must be noted that there is an important **limitation to this procedure** which is highlighted in the example below.
@@ -4661,7 +4659,7 @@ from which is would appear that we can write
\end{aligned} \end{aligned}
\end{equation} \end{equation}
However, equation \ref{eq:m\_k\_from\_modes} is **only applicable when we have available the complete \\(N \times N\\) modal model**. However, equation \eqref{eq:m\_k\_from\_modes} is **only applicable when we have available the complete \\(N \times N\\) modal model**.
It is much more usual to have an incomplete model in which the eigenvector matrix is rectangle and, as such, is non-invertible. It is much more usual to have an incomplete model in which the eigenvector matrix is rectangle and, as such, is non-invertible.
One step which can be made using the incomplete data is the construction of "pseudo" flexibility and inverse-mass matrices. One step which can be made using the incomplete data is the construction of "pseudo" flexibility and inverse-mass matrices.
+13 -32
View File
@@ -21,9 +21,7 @@ Year
Matlab Code form the book is available [here](https://in.mathworks.com/matlabcentral/fileexchange/2186-vibration-simulation-using-matlab-and-ansys). Matlab Code form the book is available [here](https://in.mathworks.com/matlabcentral/fileexchange/2186-vibration-simulation-using-matlab-and-ansys).
## Introduction {#introduction} ## Introduction {#sec:introduction}
<span class="org-target" id="org-target--sec-introduction"></span>
The main goal of this book is to show how to take results of large dynamic finite element models and build small Matlab state space dynamic mechanical models for use in control system models. The main goal of this book is to show how to take results of large dynamic finite element models and build small Matlab state space dynamic mechanical models for use in control system models.
@@ -125,9 +123,8 @@ Because finite element models usually have a very large number of states, an imp
| Principal Force Vector | \\(\bm{F}\_p\\) | \\(m \times 1\\) | | Principal Force Vector | \\(\bm{F}\_p\\) | \\(m \times 1\\) |
## Zeros in SISO Mechanical Systems {#zeros-in-siso-mechanical-systems} ## Zeros in SISO Mechanical Systems {#sec:zeros_siso_systems}
<span class="org-target" id="org-target--sec-zeros-siso-systems"></span>
The origin and influence of poles are clear: they represent the resonant frequencies of the system, and for each resonance frequency, a mode shape can be defined to describe the motion at that frequency. The origin and influence of poles are clear: they represent the resonant frequencies of the system, and for each resonance frequency, a mode shape can be defined to describe the motion at that frequency.
We here which to give an intuitive understanding for **when to expect zeros in SISO mechanical systems** and **how to predict the frequencies at which they will occur**. We here which to give an intuitive understanding for **when to expect zeros in SISO mechanical systems** and **how to predict the frequencies at which they will occur**.
@@ -148,14 +145,10 @@ The resonances of the "overhanging appendages" of the constrained system create
</div> </div>
## State Space Analysis {#state-space-analysis} ## State Space Analysis {#sec:state_space_analysis}
<span class="org-target" id="org-target--sec-state-space-analysis"></span>
## Modal Analysis {#modal-analysis} ## Modal Analysis {#sec:modal_analysis}
<span class="org-target" id="org-target--sec-modal-analysis"></span>
Lightly damped structures are typically analyzed with the "normal mode" method described in this section. Lightly damped structures are typically analyzed with the "normal mode" method described in this section.
@@ -252,7 +245,7 @@ where:
#### Eigenvalues / Characteristic Equation {#eigenvalues-characteristic-equation} #### Eigenvalues / Characteristic Equation {#eigenvalues-characteristic-equation}
Re-injecting normal modes \ref{eq:principal\_mode} into the equation of motion \ref{eq:tdof\_eom} gives the eigenvalue problem: Re-injecting normal modes \eqref{eq:principal\_mode} into the equation of motion \eqref{eq:tdof\_eom} gives the eigenvalue problem:
\begin{equation} \begin{equation}
(\bm{k} - \omega\_i^2 \bm{m}) \bm{z}\_{mi} = 0 (\bm{k} - \omega\_i^2 \bm{m}) \bm{z}\_{mi} = 0
@@ -310,7 +303,7 @@ Virtual interpretation of the eigenvectors are shown in [Figure 5](#figure--fig:
#### Modal Matrix {#modal-matrix} #### Modal Matrix {#modal-matrix}
The modal matrix is an \\(n \times m\\) matrix with columns corresponding to the \\(m\\) system eigenvectors as shown in Eq. \ref{eq:modal\_matrix} The modal matrix is an \\(n \times m\\) matrix with columns corresponding to the \\(m\\) system eigenvectors as shown in Eq. \eqref{eq:modal\_matrix}
\begin{equation} \begin{equation}
\bm{z}\_m = \begin{bmatrix} \bm{z}\_m = \begin{bmatrix}
@@ -685,9 +678,7 @@ Absolute damping is based on making \\(b = 0\\), in which case the percentage of
## Modal Analysis: State Space Form {#modal-analysis-state-space-form} ## Modal Analysis: State Space Form {#modal-analysis-state-space-form}
## Frequency Response: Modal Form {#frequency-response-modal-form} ## Frequency Response: Modal Form {#sec:frequency_response_modal_form}
<span class="org-target" id="org-target--sec-frequency-response-modal-form"></span>
The procedure to obtain the frequency response from a modal form is as follow: The procedure to obtain the frequency response from a modal form is as follow:
@@ -873,7 +864,7 @@ If modes have some damping:
\frac{z\_j}{F\_k} = \sum\_{i = 1}^m \frac{z\_{nji} z\_{nki}}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \label{eq:general\_add\_tf\_damp} \frac{z\_j}{F\_k} = \sum\_{i = 1}^m \frac{z\_{nji} z\_{nki}}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \label{eq:general\_add\_tf\_damp}
\end{equation} \end{equation}
Equations \ref{eq:general\_add\_tf} and \ref{eq:general\_add\_tf\_damp} shows that in general every transfer function is made up of **additive combinations of single degree of freedom systems**, with each system having its DC gain determined by the appropriate eigenvector entry product divided by the square of the eigenvalue, \\(z\_{nji} z\_{nki}/\omega\_i^2\\), and with resonant frequency defined by the eigenvalue \\(\omega\_i\\). Equations \eqref{eq:general\_add\_tf} and \eqref{eq:general\_add\_tf\_damp} shows that in general every transfer function is made up of **additive combinations of single degree of freedom systems**, with each system having its DC gain determined by the appropriate eigenvector entry product divided by the square of the eigenvalue, \\(z\_{nji} z\_{nki}/\omega\_i^2\\), and with resonant frequency defined by the eigenvalue \\(\omega\_i\\).
</div> </div>
@@ -886,9 +877,7 @@ Equations \ref{eq:general\_add\_tf} and \ref{eq:general\_add\_tf\_damp} shows th
The zeros for SISO transfer functions are the roots of the numerator, however, from modal analysis we can see that the zeros arise when modes combine with appropriate phase such that the resulting motion is null. The zeros for SISO transfer functions are the roots of the numerator, however, from modal analysis we can see that the zeros arise when modes combine with appropriate phase such that the resulting motion is null.
## SISO State Space Matlab Model from ANSYS Model {#siso-state-space-matlab-model-from-ansys-model} ## SISO State Space Matlab Model from ANSYS Model {#sec:siso_state_space}
<span class="org-target" id="org-target--sec-siso-state-space"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -974,9 +963,7 @@ However, the `truncate` method has the advantage that it does not exhibit the un
If sorting of DC gain values is performed prior to the `truncate` operation, the system DC gain error may be acceptable while maintaining better high frequency performance. If sorting of DC gain values is performed prior to the `truncate` operation, the system DC gain error may be acceptable while maintaining better high frequency performance.
## Ground Acceleration Matlab Model From ANSYS Model {#ground-acceleration-matlab-model-from-ansys-model} ## Ground Acceleration Matlab Model From ANSYS Model {#sec:ground_acceleration}
<span class="org-target" id="org-target--sec-ground-acceleration"></span>
### Model Description {#model-description} ### Model Description {#model-description}
@@ -988,9 +975,7 @@ If sorting of DC gain values is performed prior to the `truncate` operation, the
### Matlab State Space Model from Eigenvalue Run {#matlab-state-space-model-from-eigenvalue-run} ### Matlab State Space Model from Eigenvalue Run {#matlab-state-space-model-from-eigenvalue-run}
## SISO Disk Drive Actuator Model {#siso-disk-drive-actuator-model} ## SISO Disk Drive Actuator Model {#sec:siso_disk_drive}
<span class="org-target" id="org-target--sec-siso-disk-drive"></span>
In this section we wish to extract a SISO state space model from a Finite Element model representing a Disk Drive Actuator ([Figure 12](#figure--fig:hatch00-disk-drive-siso-model)). In this section we wish to extract a SISO state space model from a Finite Element model representing a Disk Drive Actuator ([Figure 12](#figure--fig:hatch00-disk-drive-siso-model)).
@@ -1072,9 +1057,7 @@ The dimensions of this operation are \\((1 \times n) \times (n \times m) = (1 \t
From Ansys, we have the eigenvalues \\(\omega\_i\\) and eigenvectors \\(\bm{z}\\). From Ansys, we have the eigenvalues \\(\omega\_i\\) and eigenvectors \\(\bm{z}\\).
## Balanced Reduction {#balanced-reduction} ## Balanced Reduction {#sec:balanced_reduction}
<span class="org-target" id="org-target--sec-balanced-reduction"></span>
In this chapter another method of reducing models, “balanced reduction”, will be introduced and compared with the DC and peak gain ranking methods. In this chapter another method of reducing models, “balanced reduction”, will be introduced and compared with the DC and peak gain ranking methods.
@@ -1187,9 +1170,7 @@ Because the controllability and observability gramians are identical, there is n
The **states to be kept are the states with the largest diagonal terms**. The **states to be kept are the states with the largest diagonal terms**.
## MIMO Two Stage Actuator Model {#mimo-two-stage-actuator-model} ## MIMO Two Stage Actuator Model {#sec:mimo_disk_drive}
<span class="org-target" id="org-target--sec-mimo-disk-drive"></span>
In this section, a MIMO two-stage actuator model is derived from a finite element model ([Figure 14](#figure--fig:hatch00-disk-drive-mimo-schematic)). In this section, a MIMO two-stage actuator model is derived from a finite element model ([Figure 14](#figure--fig:hatch00-disk-drive-mimo-schematic)).
+3 -3
View File
@@ -125,7 +125,7 @@ And we see that \\(H\\) has units of amperes per meter.
The magnetic field of a solenoid is shown in [Figure 7](#figure--fig:morrison16-solenoid). The magnetic field of a solenoid is shown in [Figure 7](#figure--fig:morrison16-solenoid).
The field intensity inside the solenoid is nearly constant, while outside its intensity falls of rapidly. The field intensity inside the solenoid is nearly constant, while outside its intensity falls of rapidly.
Using Ampere's law \ref{eq:ampere\_law:} Using Ampere's law \eqref{eq:ampere\_law:}
\begin{equation} \begin{equation}
\oint H dl \approx n I l \oint H dl \approx n I l
@@ -187,12 +187,12 @@ V = n^2 A k \mu\_0 \frac{dI}{dt} = L \frac{dI}{dt}
where \\(k\\) relates to the geometry of the coil. where \\(k\\) relates to the geometry of the coil.
Equation \ref{eq:inductance\_coil} states that if \\(V\\) is one volt, then for an inductance of one henry, the current will rise at the rate of one ampere per second. Equation \eqref{eq:inductance\_coil} states that if \\(V\\) is one volt, then for an inductance of one henry, the current will rise at the rate of one ampere per second.
### The energy stored in an inductance {#the-energy-stored-in-an-inductance} ### The energy stored in an inductance {#the-energy-stored-in-an-inductance}
One way to calculate the work stored in a magnetic field is to use Eq. \ref{eq:inductance\_coil}. One way to calculate the work stored in a magnetic field is to use Eq. \eqref{eq:inductance\_coil}.
The voltage \\(V\\) applied to a coil results in a linearly increasing current. The voltage \\(V\\) applied to a coil results in a linearly increasing current.
At any time \\(t\\), the power \\(P\\) supplied is equal to \\(VI\\). At any time \\(t\\), the power \\(P\\) supplied is equal to \\(VI\\).
Power is the rate of change of energy or \\(P = d\bm{E}/dt\\) where \\(\bm{E}\\) is the stored energy in the inductance. Power is the rate of change of energy or \\(P = d\bm{E}/dt\\) where \\(\bm{E}\\) is the stored energy in the inductance.
@@ -347,9 +347,9 @@ If we left multiply the equation by \\(\Phi^T\\) and we use the orthogonalily re
If \\(\Phi^T C \Phi\\) is diagonal, the **damping is said classical or normal**. In this case: If \\(\Phi^T C \Phi\\) is diagonal, the **damping is said classical or normal**. In this case:
\\[ \Phi^T C \Phi = diag(2 \xi\_i \mu\_i \omega\_i) \\] \\[ \Phi^T C \Phi = diag(2 \xi\_i \mu\_i \omega\_i) \\]
One can verify that the Rayleigh damping \ref{eq:rayleigh\_damping} complies with this condition with modal damping ratios \\(\xi\_i = \frac{1}{2} ( \frac{\alpha}{\omega\_i} + \beta\omega\_i )\\). One can verify that the Rayleigh damping \eqref{eq:rayleigh\_damping} complies with this condition with modal damping ratios \\(\xi\_i = \frac{1}{2} ( \frac{\alpha}{\omega\_i} + \beta\omega\_i )\\).
And we obtain decoupled modal equations \ref{eq:modal\_eom}. And we obtain decoupled modal equations \eqref{eq:modal\_eom}.
<div class="cbox"> <div class="cbox">
@@ -365,7 +365,7 @@ with:
</div> </div>
Typical values of the modal damping ratio are summarized on table [Table 2](#table--tab:damping-ratio). Typical values of the modal damping ratio are summarized on [Table 2](#table--tab:damping-ratio).
<a id="table--tab:damping-ratio"></a> <a id="table--tab:damping-ratio"></a>
<div class="table-caption"> <div class="table-caption">
@@ -382,15 +382,15 @@ Typical values of the modal damping ratio are summarized on table [Table 2](#tab
The assumption of classical damping is often justified for light damping, but it is questionable when the damping is large. The assumption of classical damping is often justified for light damping, but it is questionable when the damping is large.
If one accepts the assumption of classical damping, the only difference between equation \ref{eq:general\_eom} and \ref{eq:modal\_eom} lies in the change of coordinates. If one accepts the assumption of classical damping, the only difference between equation \eqref{eq:general\_eom} and \eqref{eq:modal\_eom} lies in the change of coordinates.
However, in physical coordinates, the number of degrees of freedom is usually very large. However, in physical coordinates, the number of degrees of freedom is usually very large.
If a structure is excited in by a band limited excitation, its response is dominated by the modes whose natural frequencies are inside the bandwidth of the excitation and the equation \ref{eq:modal\_eom} can often be restricted to theses modes. If a structure is excited in by a band limited excitation, its response is dominated by the modes whose natural frequencies are inside the bandwidth of the excitation and the equation \eqref{eq:modal\_eom} can often be restricted to theses modes.
Therefore, the number of degrees of freedom contribution effectively to the response is **reduced drastically** in modal coordinates. Therefore, the number of degrees of freedom contribution effectively to the response is **reduced drastically** in modal coordinates.
#### Dynamic Flexibility Matrix {#dynamic-flexibility-matrix} #### Dynamic Flexibility Matrix {#dynamic-flexibility-matrix}
If we consider the steady-state response of equation \ref{eq:general\_eom} to harmonic excitation \\(f=F e^{j\omega t}\\), the response is also harmonic \\(x = Xe^{j\omega t}\\). The amplitude of \\(F\\) and \\(X\\) is related by: If we consider the steady-state response of equation \eqref{eq:general\_eom} to harmonic excitation \\(f=F e^{j\omega t}\\), the response is also harmonic \\(x = Xe^{j\omega t}\\). The amplitude of \\(F\\) and \\(X\\) is related by:
\\[ X = G(\omega) F \\] \\[ X = G(\omega) F \\]
Where \\(G(\omega)\\) is called the **Dynamic flexibility Matrix**: Where \\(G(\omega)\\) is called the **Dynamic flexibility Matrix**:
@@ -647,7 +647,7 @@ With:
- \\(T\_{me}\\) is the transduction coefficient representing the force acting on the mechanical terminals to balance the electromagnetic force induced per unit current input (in \\(N/A\\)) - \\(T\_{me}\\) is the transduction coefficient representing the force acting on the mechanical terminals to balance the electromagnetic force induced per unit current input (in \\(N/A\\))
- \\(Z\_m\\) is the mechanical impedance measured when \\(i=0\\) - \\(Z\_m\\) is the mechanical impedance measured when \\(i=0\\)
Equation \ref{eq:gen\_trans\_e} shows that the voltage across the electrical terminals of any electromechanical transducer is the sum of a contribution proportional to the current applied and a contribution proportional to the velocity of the mechanical terminals. Equation \eqref{eq:gen\_trans\_e} shows that the voltage across the electrical terminals of any electromechanical transducer is the sum of a contribution proportional to the current applied and a contribution proportional to the velocity of the mechanical terminals.
Thus, if \\(Z\_ei\\) can be measured and substracted from \\(e\\), a signal proportional to the velocity is obtained. Thus, if \\(Z\_ei\\) can be measured and substracted from \\(e\\), a signal proportional to the velocity is obtained.
To do so, the bridge circuit as shown on [Figure 15](#figure--fig:bridge-circuit) can be used. To do so, the bridge circuit as shown on [Figure 15](#figure--fig:bridge-circuit) can be used.
@@ -719,7 +719,7 @@ With:
#### Constitutive Relations of a Discrete Transducer {#constitutive-relations-of-a-discrete-transducer} #### Constitutive Relations of a Discrete Transducer {#constitutive-relations-of-a-discrete-transducer}
The set of equations \ref{eq:piezo\_eq} can be written in a matrix form: The set of equations \eqref{eq:piezo\_eq} can be written in a matrix form:
\begin{equation}\label{eq:piezo\_eq\_matrix} \begin{equation}\label{eq:piezo\_eq\_matrix}
\begin{bmatrix} \begin{bmatrix}
@@ -769,7 +769,7 @@ It measures the efficiency of the conversion of the mechanical energy into elect
</div> </div>
If one assumes that all the electrical and mechanical quantities are uniformly distributed in a linear transducer formed by a **stack** (see [Figure 17](#figure--fig:piezo-stack)) of \\(n\\) disks of thickness \\(t\\) and cross section \\(A\\), the global constitutive equations of the transducer are obtained by integrating \ref{eq:piezo\_eq\_matrix\_bis} over the volume of the transducer: If one assumes that all the electrical and mechanical quantities are uniformly distributed in a linear transducer formed by a **stack** (see [Figure 17](#figure--fig:piezo-stack)) of \\(n\\) disks of thickness \\(t\\) and cross section \\(A\\), the global constitutive equations of the transducer are obtained by integrating \eqref{eq:piezo\_eq\_matrix\_bis} over the volume of the transducer:
\begin{equation}\label{eq:piezo\_stack\_eq} \begin{equation}\label{eq:piezo\_stack\_eq}
\begin{bmatrix} \begin{bmatrix}
@@ -798,7 +798,7 @@ where
{{< figure src="/ox-hugo/preumont18_piezo_stack.png" caption="<span class='figure-number'>Figure 17: </span>Piezoelectric linear transducer" >}} {{< figure src="/ox-hugo/preumont18_piezo_stack.png" caption="<span class='figure-number'>Figure 17: </span>Piezoelectric linear transducer" >}}
Equation \ref{eq:piezo\_stack\_eq} can be inverted to obtain Equation \eqref{eq:piezo\_stack\_eq} can be inverted to obtain
\begin{equation}\label{eq:piezo\_stack\_eq\_inv} \begin{equation}\label{eq:piezo\_stack\_eq\_inv}
\begin{bmatrix} \begin{bmatrix}
@@ -830,7 +830,7 @@ The total power delivered to the transducer is the sum of electric power \\(V i\
{{< figure src="/ox-hugo/preumont18_piezo_discrete.png" caption="<span class='figure-number'>Figure 18: </span>Discrete Piezoelectric Transducer" >}} {{< figure src="/ox-hugo/preumont18_piezo_discrete.png" caption="<span class='figure-number'>Figure 18: </span>Discrete Piezoelectric Transducer" >}}
By integrating equation \ref{eq:piezo\_work} and using the constitutive equations \ref{eq:piezo\_stack\_eq\_inv}, we obtain the analytical expression of the stored electromechanical energy for the discrete transducer: By integrating equation \eqref{eq:piezo\_work} and using the constitutive equations \eqref{eq:piezo\_stack\_eq\_inv}, we obtain the analytical expression of the stored electromechanical energy for the discrete transducer:
\begin{equation}\label{eq:piezo\_stack\_work} \begin{equation}\label{eq:piezo\_stack\_work}
W\_e(\Delta, Q) = \frac{Q^2}{2 C (1 - k^2)} - \frac{n d\_{33} K\_a}{C(1-k^2)} Q\Delta + \frac{K\_a}{1-k^2}\frac{\Delta^2}{2} W\_e(\Delta, Q) = \frac{Q^2}{2 C (1 - k^2)} - \frac{n d\_{33} K\_a}{C(1-k^2)} Q\Delta + \frac{K\_a}{1-k^2}\frac{\Delta^2}{2}
@@ -882,7 +882,7 @@ And one can see that
\frac{z^2 - p^2}{z^2} = k^2 \frac{z^2 - p^2}{z^2} = k^2
\end{equation} \end{equation}
Equation \ref{eq:distance\_p\_z} constitutes a practical way to determine the electromechanical coupling factor from the poles and zeros of the admittance measurement ([Figure 20](#figure--fig:piezo-admittance-curve)). Equation \eqref{eq:distance\_p\_z} constitutes a practical way to determine the electromechanical coupling factor from the poles and zeros of the admittance measurement ([Figure 20](#figure--fig:piezo-admittance-curve)).
<a id="figure--fig:piezo-admittance-curve"></a> <a id="figure--fig:piezo-admittance-curve"></a>
@@ -454,7 +454,7 @@ The core of the control system is the _plant_, which is the physical system that
<a id="table--tab:walk-control-loop"></a> <a id="table--tab:walk-control-loop"></a>
<div class="table-caption"> <div class="table-caption">
<span class="table-number"><a href="#table--tab:walk-control-loop">Table 3</a>:</span> <span class="table-number"><a href="#table--tab:walk-control-loop">Table 3</a>:</span>
Symbols used in <a href="#orgda28b83">3</a> Symbols used in <a href="#org0e13ef0">3</a>
</div> </div>
| Symbol | Meaning | Unit | | Symbol | Meaning | Unit |
@@ -753,7 +753,7 @@ There are derived from a simplified version of the generic feedback loop as show
The first simplification is made by approximating the measurement system to have a unity-gain transfer function. The first simplification is made by approximating the measurement system to have a unity-gain transfer function.
For further simplification the sensor disturbance in the measurement system is included in the output disturbance \\(n\\), thereby defining the output of the system \\(y\\) as the measured output. For further simplification the sensor disturbance in the measurement system is included in the output disturbance \\(n\\), thereby defining the output of the system \\(y\\) as the measured output.
With this simplified model, the transfer functions of the different inputs of the system to three relevant output variables in the loop are written down in a set of equations. With this simplified model, the transfer functions of the different inputs of the system to three relevant output variables in the loop are written down in a set of equations.
Six different transfer functions are obtained and summarized in equation \ref{eq:gang\_of\_six}. Six different transfer functions are obtained and summarized in equation \eqref{eq:gang\_of\_six}.
\begin{equation} \label{eq:gang\_of\_six} \begin{equation} \label{eq:gang\_of\_six}
\begin{aligned} \begin{aligned}
@@ -766,7 +766,7 @@ Six different transfer functions are obtained and summarized in equation \ref{eq
\end{aligned} \end{aligned}
\end{equation} \end{equation}
In case no input filter is applied \\(F\\) is equal to one and the set of six equations is reduced to a set of four equations as shown in equation \ref{eq:gang\_of\_four}. In case no input filter is applied \\(F\\) is equal to one and the set of six equations is reduced to a set of four equations as shown in equation \eqref{eq:gang\_of\_four}.
This short set of equations also corresponds to the situation without a reference signal. This short set of equations also corresponds to the situation without a reference signal.
The most important transfer function is named the _Sensitivity Function_ (no unit): The most important transfer function is named the _Sensitivity Function_ (no unit):
+35 -56
View File
@@ -63,9 +63,7 @@ PDF version
</div> </div>
## Introduction {#introduction} ## Introduction {#sec:introduction}
<span class="org-target" id="org-target--sec-introduction"></span>
### The Process of Control System Design {#the-process-of-control-system-design} ### The Process of Control System Design {#the-process-of-control-system-design}
@@ -87,10 +85,10 @@ The process of designing a control system is a step by step design procedure as
13. Choose hardware and software and implement the controller 13. Choose hardware and software and implement the controller
14. Test and validate the control system, and tune the controller on-line, if necessary 14. Test and validate the control system, and tune the controller on-line, if necessary
Input-output controllability analysis is studied in section for SISO systems and in section for MIMO systems. Input-output controllability analysis is studied in section [Limitations on Performance in SISO Systems](#sec:perf_limit_siso) for SISO systems and in section [Limitations on Performance in MIMO Systems](#sec:perf_limit_mimo) for MIMO systems.
The steps 4, 5, 6 and 7 are corresponding to the **control structure design**. This is treated in section . The steps 4, 5, 6 and 7 are corresponding to the **control structure design**. This is treated in section [Controller Structure Design](#sec:controller_structure_design).
The design of the controller is described in section . The design of the controller is described in section [Controller Design](#sec:controller_design).
The analysis of performance and robustness of a controlled system is studied in sections and . The analysis of performance and robustness of a controlled system is studied in sections [Uncertainty and Robustness for SISO Systems](#sec:uncertainty_robustness_siso) and [Robust Stability and Performance Analysis](#sec:robust_perf_mimo).
### The Control Problem {#the-control-problem} ### The Control Problem {#the-control-problem}
@@ -238,9 +236,7 @@ Notations used throughout this note are summarized in [Table 1](#table--tab:nota
| \\(T\\) | Complementary sensitivity function: \\(T = (I + L)\*(I + L)^{-1}\\) | | \\(T\\) | Complementary sensitivity function: \\(T = (I + L)\*(I + L)^{-1}\\) |
## Classical Feedback Control {#classical-feedback-control} ## Classical Feedback Control {#sec:classical_feedback}
<span class="org-target" id="org-target--sec-classical-feedback"></span>
### Frequency Response {#frequency-response} ### Frequency Response {#frequency-response}
@@ -721,9 +717,7 @@ To combined these **mixed sensitivity specifications**, a **stacking approach**
After selecting the form of \\(N\\) and the weights, the \\(\hinf\\) optimal controller is obtained by solving the problem \\(\min\_K\hnorm{N(K)}\\). After selecting the form of \\(N\\) and the weights, the \\(\hinf\\) optimal controller is obtained by solving the problem \\(\min\_K\hnorm{N(K)}\\).
## Introduction to Multivariable Control {#introduction-to-multivariable-control} ## Introduction to Multivariable Control {#sec:multivariable_control}
<span class="org-target" id="org-target--sec-multivariable-control"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -1235,9 +1229,7 @@ MIMO systems are often **more sensitive to uncertainty** than SISO systems.
</div> </div>
## Elements of Linear System Theory {#elements-of-linear-system-theory} ## Elements of Linear System Theory {#sec:linear_sys_theory}
<span class="org-target" id="org-target--sec-linear-sys-theory"></span>
### System Descriptions {#system-descriptions} ### System Descriptions {#system-descriptions}
@@ -1768,9 +1760,7 @@ The Hankel norm is a kind of induced norm from past inputs to future outputs.
It may be shown that the Hankel norm is equal to \\(\left\\|G(s)\right\\|\_H = \sqrt{\rho(PQ)}\\) where \\(\rho\\) is the spectral radius, \\(P\\) is the controllability Gramian and \\(Q\\) the observability Gramian. It may be shown that the Hankel norm is equal to \\(\left\\|G(s)\right\\|\_H = \sqrt{\rho(PQ)}\\) where \\(\rho\\) is the spectral radius, \\(P\\) is the controllability Gramian and \\(Q\\) the observability Gramian.
## Limitations on Performance in SISO Systems {#limitations-on-performance-in-siso-systems} ## Limitations on Performance in SISO Systems {#sec:perf_limit_siso}
<span class="org-target" id="org-target--sec-perf-limit-siso"></span>
### Input-Output Controllability {#input-output-controllability} ### Input-Output Controllability {#input-output-controllability}
@@ -2292,9 +2282,7 @@ They are not sufficient since among other things they only consider one effect a
The rules may be used to **determine whether or not a given plant is controllable**. The rules may be used to **determine whether or not a given plant is controllable**.
## Limitations on Performance in MIMO Systems {#limitations-on-performance-in-mimo-systems} ## Limitations on Performance in MIMO Systems {#sec:perf_limit_mimo}
<span class="org-target" id="org-target--sec-perf-limit-mimo"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -2808,9 +2796,7 @@ For RHP-zeros, RHP-poles and disturbances, the issue of directions usually makes
However, the situation is usually the opposite with model uncertainty because for MIMO systems, there is also uncertainty associated with plant directionality. However, the situation is usually the opposite with model uncertainty because for MIMO systems, there is also uncertainty associated with plant directionality.
## Uncertainty and Robustness for SISO Systems {#uncertainty-and-robustness-for-siso-systems} ## Uncertainty and Robustness for SISO Systems {#sec:uncertainty_robustness_siso}
<span class="org-target" id="org-target--sec-uncertainty-robustness-siso"></span>
### Introduction to Robustness {#introduction-to-robustness} ### Introduction to Robustness {#introduction-to-robustness}
@@ -3551,9 +3537,7 @@ Similarly, the inverse multiplicative uncertainty imposes an upper bound on the
We also derived a condition for robust performance with multiplicative uncertainty, \\(\abs{w\_P S} + \abs{w\_I T} < 1, \ \forall\w\\). We also derived a condition for robust performance with multiplicative uncertainty, \\(\abs{w\_P S} + \abs{w\_I T} < 1, \ \forall\w\\).
## Robust Stability and Performance Analysis {#robust-stability-and-performance-analysis} ## Robust Stability and Performance Analysis {#sec:robust_perf_mimo}
<span class="org-target" id="org-target--sec-robust-perf-mimo"></span>
### General Control Configuration with Uncertainty {#general-control-configuration-with-uncertainty} ### General Control Configuration with Uncertainty {#general-control-configuration-with-uncertainty}
@@ -4474,7 +4458,7 @@ The peak value is close to 6, meaning that even with 6 times less uncertainty, t
We here consider the relationship between \\(\mu\\) for RP and the condition number of the plant or of the controller. We here consider the relationship between \\(\mu\\) for RP and the condition number of the plant or of the controller.
We consider unstructured multiplicative uncertainty (i.e. \\(\Delta\_I\\) is a full matrix) and performance is measured in terms of the weighted sensitivity. We consider unstructured multiplicative uncertainty (i.e. \\(\Delta\_I\\) is a full matrix) and performance is measured in terms of the weighted sensitivity.
With \\(N\\) given by \ref{eq:n\_delta\_structure\_clasic}, we have: With \\(N\\) given by \eqref{eq:n\_delta\_structure\_clasic}, we have:
\begin{equation\*} \begin{equation\*}
\overbrace{\mu\_{\tilde{\Delta}}(N)}^{\text{RP}} \le [ \overbrace{\overline{\sigma}(w\_I T\_I)}^{\text{RS}} + \overbrace{\overline{\sigma}(w\_P S)}^{\text{NP}} ] (1 + \sqrt{k}) \overbrace{\mu\_{\tilde{\Delta}}(N)}^{\text{RP}} \le [ \overbrace{\overline{\sigma}(w\_I T\_I)}^{\text{RS}} + \overbrace{\overline{\sigma}(w\_P S)}^{\text{NP}} ] (1 + \sqrt{k})
@@ -4711,9 +4695,7 @@ If resulting control performance is not satisfactory, one may switch to the seco
4. \\(\mu\\) is most commonly used for analysis. If \\(\mu\\) is used for synthesis, then we recommend that you keep the uncertainty fixed and adjust the parameters in the performance weight until \\(\mu\\) is close to 1 4. \\(\mu\\) is most commonly used for analysis. If \\(\mu\\) is used for synthesis, then we recommend that you keep the uncertainty fixed and adjust the parameters in the performance weight until \\(\mu\\) is close to 1
## Controller Design {#controller-design} ## Controller Design {#sec:controller_design}
<span class="org-target" id="org-target--sec-controller-design"></span>
### Trade-offs in MIMO Feedback Design {#trade-offs-in-mimo-feedback-design} ### Trade-offs in MIMO Feedback Design {#trade-offs-in-mimo-feedback-design}
@@ -4921,14 +4903,11 @@ These procedure are somehow difficult to use in practice.
Their main limitation is that they can only be applied to minimum phase plants. Their main limitation is that they can only be applied to minimum phase plants.
### \\(\htwo\\) and \\(\hinf\\) Control {#htwo-and-hinf-control} ### \\(\htwo\\) and \\(\hinf\\) Control {#sec:htwo_and_hinf}
<span class="org-target" id="org-target--sec-htwo-and-hinf"></span>
#### General Control Problem Formulation {#general-control-problem-formulation} #### General Control Problem Formulation {#sec:htwo_inf_assumptions}
<span class="org-target" id="org-target--sec-htwo-inf-assumptions"></span>
There are many ways in which feedback design problems can be cast as \\(\htwo\\) and \\(\hinf\\) optimization problems. There are many ways in which feedback design problems can be cast as \\(\htwo\\) and \\(\hinf\\) optimization problems.
It is very useful therefore to have a **standard problem formulation** into which any particular problem may be manipulated. It is very useful therefore to have a **standard problem formulation** into which any particular problem may be manipulated.
@@ -5466,13 +5445,12 @@ for a specified \\(\gamma > \gamma\_\text{min}\\), is given by
L &= (1-\gamma^2) I + XZ L &= (1-\gamma^2) I + XZ
\end{align} \end{align}
The Matlab function `coprimeunc` can be used to generate the controller in \ref{eq:control\_coprime\_factor}. The Matlab function `coprimeunc` can be used to generate the controller in \eqref{eq:control\_coprime\_factor}.
It is important to emphasize that since we can compute \\(\gamma\_\text{min}\\) from \ref{eq:gamma\_min\_coprime} we get an explicit solution by solving just two Riccati equations and avoid the \\(\gamma\text{-iteration}\\) needed to solve the general \\(\mathcal{H}\_\infty\\) problem. It is important to emphasize that since we can compute \\(\gamma\_\text{min}\\) from \eqref{eq:gamma\_min\_coprime} we get an explicit solution by solving just two Riccati equations and avoid the \\(\gamma\text{-iteration}\\) needed to solve the general \\(\mathcal{H}\_\infty\\) problem.
#### A Systematic \\(\hinf\\) Loop-Shaping Design Procedure {#a-systematic-hinf-loop-shaping-design-procedure} #### A Systematic \\(\hinf\\) Loop-Shaping Design Procedure {#sec:hinf_loop_shaping_procedure}
<span class="org-target" id="org-target--sec-hinf-loop-shaping-procedure"></span>
Robust stabilization alone is not much used in practice because the designer is not able to specify any performance requirements. Robust stabilization alone is not much used in practice because the designer is not able to specify any performance requirements.
To do so, **pre and post compensators** are used to **shape the open-loop singular values** prior to robust stabilization of the "shaped" plant. To do so, **pre and post compensators** are used to **shape the open-loop singular values** prior to robust stabilization of the "shaped" plant.
@@ -5552,7 +5530,7 @@ The commands and feedbacks enter the controller separately and are independently
{{< figure src="/ox-hugo/skogestad07_classical_feedback_2dof_simple.png" caption="<span class='figure-number'>Figure 55: </span>General two degrees-of-freedom feedback control scheme" >}} {{< figure src="/ox-hugo/skogestad07_classical_feedback_2dof_simple.png" caption="<span class='figure-number'>Figure 55: </span>General two degrees-of-freedom feedback control scheme" >}}
The presented \\(\mathcal{H}\_\infty\\) loop-shaping design procedure in section is a one-degree-of-freedom design, although a **constant** pre-filter can be easily implemented for steady-state accuracy. The presented \\(\mathcal{H}\_\infty\\) loop-shaping design procedure in section [A Systematic \\(\hinf\\) Loop-Shaping Design Procedure](#sec:hinf_loop_shaping_procedure) is a one-degree-of-freedom design, although a **constant** pre-filter can be easily implemented for steady-state accuracy.
However, this may not be sufficient and a dynamic two degrees-of-freedom design is required.<br /> However, this may not be sufficient and a dynamic two degrees-of-freedom design is required.<br />
The design problem is illustrated in [Figure 56](#figure--fig:coprime-uncertainty-hinf). The design problem is illustrated in [Figure 56](#figure--fig:coprime-uncertainty-hinf).
@@ -5586,7 +5564,7 @@ The purpose of the prefilter is to ensure that:
The main steps required to synthesize a two degrees-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller are: The main steps required to synthesize a two degrees-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller are:
1. Design a one degree-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller (section ) but without a post-compensator \\(W\_2\\) 1. Design a one degree-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller (section [A Systematic \\(\hinf\\) Loop-Shaping Design Procedure](#sec:hinf_loop_shaping_procedure)) but without a post-compensator \\(W\_2\\)
2. Select a desired closed-loop transfer function \\(T\_{\text{ref}}\\) between the commands and controller outputs 2. Select a desired closed-loop transfer function \\(T\_{\text{ref}}\\) between the commands and controller outputs
3. Set the scalar parameter \\(\rho\\) to a small value greater than \\(1\\); something in the range \\(1\\) to \\(3\\) will usually suffice 3. Set the scalar parameter \\(\rho\\) to a small value greater than \\(1\\); something in the range \\(1\\) to \\(3\\) will usually suffice
4. For the shaped \\(G\_s = G W\_1\\), the desired response \\(T\_{\text{ref}}\\), and the scalar parameter \\(\rho\\), solve the standard \\(\mathcal{H}\_\infty\\) optimization problem to a specified tolerance to get \\(K = [K\_1,\ K\_2]\\) 4. For the shaped \\(G\_s = G W\_1\\), the desired response \\(T\_{\text{ref}}\\), and the scalar parameter \\(\rho\\), solve the standard \\(\mathcal{H}\_\infty\\) optimization problem to a specified tolerance to get \\(K = [K\_1,\ K\_2]\\)
@@ -5733,9 +5711,7 @@ Sometimes, one might consider synthesizing a \\(\mu\text{-optimal}\\) controller
Moreover, one should be careful about combining controller synthesis and analysis into a single step. Moreover, one should be careful about combining controller synthesis and analysis into a single step.
## Controller Structure Design {#controller-structure-design} ## Controller Structure Design {#sec:controller_structure_design}
<span class="org-target" id="org-target--sec-controller-structure-design"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -6214,7 +6190,7 @@ Four applications of partial control are:
The outputs \\(y\_1\\) have an associated control objective but are not measured. The outputs \\(y\_1\\) have an associated control objective but are not measured.
Instead, we aim at indirectly controlling \\(y\_1\\) by controlling the secondary measured variables \\(y\_2\\). Instead, we aim at indirectly controlling \\(y\_1\\) by controlling the secondary measured variables \\(y\_2\\).
The table [Table 4](#table--tab:partial-control) shows clearly the differences between the four applications of partial control. The [Table 4](#table--tab:partial-control) shows clearly the differences between the four applications of partial control.
In all cases, there is a control objective associated with \\(y\_1\\) and a feedback involving measurement and control of \\(y\_2\\) and we want: In all cases, there is a control objective associated with \\(y\_1\\) and a feedback involving measurement and control of \\(y\_2\\) and we want:
- The effect of disturbances on \\(y\_1\\) to be small (when \\(y\_2\\) is controlled) - The effect of disturbances on \\(y\_1\\) to be small (when \\(y\_2\\) is controlled)
@@ -6314,7 +6290,7 @@ The selection of \\(u\_2\\) and \\(y\_2\\) for use in the lower-layer control sy
Consider the conventional cascade control system in [Figure 62a](#org-target--fig-cascade-extra-meas) where we have additional "secondary" measurements \\(y\_2\\) with no associated control objective, and the objective is to improve the control of \\(y\_1\\) by locally controlling \\(y\_2\\). Consider the conventional cascade control system in [Figure 62a](#org-target--fig-cascade-extra-meas) where we have additional "secondary" measurements \\(y\_2\\) with no associated control objective, and the objective is to improve the control of \\(y\_1\\) by locally controlling \\(y\_2\\).
The idea is that this should reduce the effect of disturbances and uncertainty on \\(y\_1\\). The idea is that this should reduce the effect of disturbances and uncertainty on \\(y\_1\\).
From \ref{eq:partial\_control}, it follows that we should select \\(y\_2\\) and \\(u\_2\\) such that \\(\\|P\_d\\|\\) is small and at least smaller than \\(\\|G\_{d1}\\|\\). From \eqref{eq:partial\_control}, it follows that we should select \\(y\_2\\) and \\(u\_2\\) such that \\(\\|P\_d\\|\\) is small and at least smaller than \\(\\|G\_{d1}\\|\\).
These arguments particularly apply at high frequencies. These arguments particularly apply at high frequencies.
More precisely, we want the input-output controllability of \\([P\_u\ P\_r]\\) with disturbance model \\(P\_d\\) to be better that of the plant \\([G\_{11}\ G\_{12}]\\) with disturbance model \\(G\_{d1}\\). More precisely, we want the input-output controllability of \\([P\_u\ P\_r]\\) with disturbance model \\(P\_d\\) to be better that of the plant \\([G\_{11}\ G\_{12}]\\) with disturbance model \\(G\_{d1}\\).
@@ -6330,7 +6306,7 @@ A set of outputs \\(y\_1\\) may be left uncontrolled only if the effects of all
</div> </div>
To evaluate the feasibility of partial control, one must for each choice of \\(y\_2\\) and \\(u\_2\\), rearrange the system as in \ref{eq:partial\_control\_partitioning} and \ref{eq:partial\_control}, and compute \\(P\_d\\) using \ref{eq:tight\_control\_y2}. To evaluate the feasibility of partial control, one must for each choice of \\(y\_2\\) and \\(u\_2\\), rearrange the system as in \eqref{eq:partial\_control\_partitioning} and \eqref{eq:partial\_control}, and compute \\(P\_d\\) using \eqref{eq:tight\_control\_y2}.
#### Measurement Selection for Indirect Control {#measurement-selection-for-indirect-control} #### Measurement Selection for Indirect Control {#measurement-selection-for-indirect-control}
@@ -6500,7 +6476,7 @@ We then derive **necessary conditions for stability** which may be used to elimi
For decentralized diagonal control, it is desirable that the system can be tuned and operated one loop at a time. For decentralized diagonal control, it is desirable that the system can be tuned and operated one loop at a time.
Assume therefore that \\(G\\) is stable and each individual loop is stable by itself (\\(\tilde{S}\\) and \\(\tilde{T}\\) are stable). Assume therefore that \\(G\\) is stable and each individual loop is stable by itself (\\(\tilde{S}\\) and \\(\tilde{T}\\) are stable).
Using the **spectral radius condition** on the factorized \\(S\\) in \ref{eq:S\_factorization}, we have that the overall system is stable (\\(S\\) is stable) if Using the **spectral radius condition** on the factorized \\(S\\) in \eqref{eq:S\_factorization}, we have that the overall system is stable (\\(S\\) is stable) if
\begin{equation} \begin{equation}
\rho(E\tilde{T}(j\omega)) < 1, \forall\omega \rho(E\tilde{T}(j\omega)) < 1, \forall\omega
@@ -6725,7 +6701,7 @@ When a reasonable choice of pairings have been made, one should rearrange \\(G\\
|1 + L\_i| > \max\_{k,j}\\{|\tilde{g}\_{dik}|, |\gamma\_{ij}|\\} |1 + L\_i| > \max\_{k,j}\\{|\tilde{g}\_{dik}|, |\gamma\_{ij}|\\}
\end{equation} \end{equation}
To achieve stability of the individual loops, one must analyze \\(g\_{ii}(s)\\) to ensure that the bandwidth required by \ref{eq:decent\_contr\_one\_loop} is achievable. To achieve stability of the individual loops, one must analyze \\(g\_{ii}(s)\\) to ensure that the bandwidth required by \eqref{eq:decent\_contr\_one\_loop} is achievable.
Note that RHP-zeros in the diagonal elements may limit achievable decentralized control, whereas they may not pose any problems for a multivariable controller. Note that RHP-zeros in the diagonal elements may limit achievable decentralized control, whereas they may not pose any problems for a multivariable controller.
Since with decentralized control, we usually want to use simple controllers, the achievable bandwidth in each loop will be limited by the frequency where \\(\angle g\_{ii}\\) is \\(\SI{-180}{\degree}\\) Since with decentralized control, we usually want to use simple controllers, the achievable bandwidth in each loop will be limited by the frequency where \\(\angle g\_{ii}\\) is \\(\SI{-180}{\degree}\\)
6. Check for constraints by considering the elements of \\(G^{-1} G\_d\\) and make sure that they do not exceed one in magnitude within the frequency range where control is needed. 6. Check for constraints by considering the elements of \\(G^{-1} G\_d\\) and make sure that they do not exceed one in magnitude within the frequency range where control is needed.
@@ -6741,7 +6717,7 @@ When a reasonable choice of pairings have been made, one should rearrange \\(G\\
If the plant is not controllable, then one may consider another choice of pairing and go back to Step 4. If the plant is not controllable, then one may consider another choice of pairing and go back to Step 4.
If one still cannot find any pairing which are controllable, then one should consider multivariable control. If one still cannot find any pairing which are controllable, then one should consider multivariable control.
7. If the chosen pairing is controllable, then \ref{eq:decent\_contr\_one\_loop} tells us how large \\(|L\_i| = |g\_{ii} k\_i|\\) must be. 7. If the chosen pairing is controllable, then \eqref{eq:decent\_contr\_one\_loop} tells us how large \\(|L\_i| = |g\_{ii} k\_i|\\) must be.
This can be used as a basis for designing the controller \\(k\_i(s)\\) for loop \\(i\\) This can be used as a basis for designing the controller \\(k\_i(s)\\) for loop \\(i\\)
@@ -6761,16 +6737,14 @@ Thus sequential design may involve many iterations.
#### Conclusion on Decentralized Control {#conclusion-on-decentralized-control} #### Conclusion on Decentralized Control {#conclusion-on-decentralized-control}
A number of **conditions for the stability**, e.g. \ref{eq:decent\_contr\_cond\_stability} and \ref{eq:decent\_contr\_necessary\_cond\_stability}, and **performance**, e.g. \ref{eq:decent\_contr\_cond\_perf\_dist} and \ref{eq:decent\_contr\_cond\_perf\_ref}, of decentralized control systems have been derived. A number of **conditions for the stability**, e.g. \eqref{eq:decent\_contr\_cond\_stability} and \eqref{eq:decent\_contr\_necessary\_cond\_stability}, and **performance**, e.g. \eqref{eq:decent\_contr\_cond\_perf\_dist} and \eqref{eq:decent\_contr\_cond\_perf\_ref}, of decentralized control systems have been derived.
The conditions may be useful in **determining appropriate pairings of inputs and outputs** and the **sequence in which the decentralized controllers should be designed**. The conditions may be useful in **determining appropriate pairings of inputs and outputs** and the **sequence in which the decentralized controllers should be designed**.
The conditions are also useful in an **input-output controllability analysis** for determining the viability of decentralized control. The conditions are also useful in an **input-output controllability analysis** for determining the viability of decentralized control.
## Model Reduction {#model-reduction} ## Model Reduction {#sec:model_reduction}
<span class="org-target" id="org-target--sec-model-reduction"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -7193,3 +7167,8 @@ In such a case, using truncation or optimal Hankel norm approximation with appro
## Bibliography {#bibliography} ## 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>Doyle, John C. 1983. “Synthesis of Robust Controllers and Filters.” In <i>The 22nd IEEE Conference on Decision and Control</i>, 109–14. IEEE.</div>
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Skogestad, S., and I. Postlethwaite. 2007. <i>Multivariable Feedback Control: Analysis and Design - Second Edition</i>. John Wiley.</div>
</div>
+44 -62
View File
@@ -22,34 +22,30 @@ PDF version
: [link](/ox-hugo/taghirad13_paral.pdf) : [link](/ox-hugo/taghirad13_paral.pdf)
## Introduction {#introduction} ## Introduction {#sec:introduction}
<span class="org-target" id="org-target--sec-introduction"></span>
This book is intended to give some analysis and design tools for the increase number of engineers and researchers who are interested in the design and implementation of parallel robots. This book is intended to give some analysis and design tools for the increase number of engineers and researchers who are interested in the design and implementation of parallel robots.
A systematic approach is presented to analyze the kinematics, dynamics and control of parallel robots. A systematic approach is presented to analyze the kinematics, dynamics and control of parallel robots.
To define the motion characteristics of such robots, it is necessary to represent 3D motion of the robot moving platform with respect to a fixed coordinate. To define the motion characteristics of such robots, it is necessary to represent 3D motion of the robot moving platform with respect to a fixed coordinate.
This issue leads to the requirements for 3D representation of position, orientation and motion of bodies in space. This issue leads to the requirements for 3D representation of position, orientation and motion of bodies in space.
In chapter , such representation are introduced with emphasis on screw coordinates, which makes the representation of the general motion of the robot much easier to follow.<br /> In chapter [Motion Representation](#sec:motion_representation), such representation are introduced with emphasis on screw coordinates, which makes the representation of the general motion of the robot much easier to follow.<br />
Kinematic analysis refers to the study of robot motion geometry without considering the forces and torques that cause the motion. Kinematic analysis refers to the study of robot motion geometry without considering the forces and torques that cause the motion.
In this analysis (chapter ), the relation between the geometrical parameters of the manipulator and the final motion of the moving platform is derived and analyzed.<br /> In this analysis (chapter [Kinematics](#sec:kinematics)), the relation between the geometrical parameters of the manipulator and the final motion of the moving platform is derived and analyzed.<br />
In Chapter , the kinematics analysis of robot manipulators is further examined beyond static positioning. In Chapter [Jacobian: Velocities and Static Forces](#sec:jacobian), the kinematics analysis of robot manipulators is further examined beyond static positioning.
Jacobian analysis not only reveals the relation between the joint variable velocities of a parallel manipulator and the moving platform linear and angular velocities, but also constructs the transformation needed to find the actuator forces from the forces and moments acting on the moving platform. Jacobian analysis not only reveals the relation between the joint variable velocities of a parallel manipulator and the moving platform linear and angular velocities, but also constructs the transformation needed to find the actuator forces from the forces and moments acting on the moving platform.
A systematic means to perform Jacobian analysis of parallel manipulators is given in this chapter.<br /> A systematic means to perform Jacobian analysis of parallel manipulators is given in this chapter.<br />
Dynamic analysis of parallel manipulators presents an inherent complexity due to their closed-loop structure and kinematic constraints. Dynamic analysis of parallel manipulators presents an inherent complexity due to their closed-loop structure and kinematic constraints.
Nevertheless, dynamic modeling is quite important for the control, in particular because parallel manipulators are preferred in applications where precise positioning and suitable dynamic performance under high loads are the prime requirements. Nevertheless, dynamic modeling is quite important for the control, in particular because parallel manipulators are preferred in applications where precise positioning and suitable dynamic performance under high loads are the prime requirements.
In Chapter , the dynamic analysis of such robots is examined through three methods, namely the Newton-Euler principle of virtual work and Lagrange formations. In Chapter [Dynamics](#sec:dynamics), the dynamic analysis of such robots is examined through three methods, namely the Newton-Euler principle of virtual work and Lagrange formations.
Furthermore, a method is presented in this chapter to formulate the dynamic equation of parallel robots into closed form, by which the dynamic matrices are more tractable, and dynamics verification becomes feasible.<br /> Furthermore, a method is presented in this chapter to formulate the dynamic equation of parallel robots into closed form, by which the dynamic matrices are more tractable, and dynamics verification becomes feasible.<br />
The control of parallel robots is elaborated in the last two chapters, in which both the motion and force control are covered. The control of parallel robots is elaborated in the last two chapters, in which both the motion and force control are covered.
## Motion Representation {#motion-representation} ## Motion Representation {#sec:motion_representation}
<span class="org-target" id="org-target--sec-motion-representation"></span>
### Spatial Motion Representation {#spatial-motion-representation} ### Spatial Motion Representation {#spatial-motion-representation}
@@ -264,7 +260,7 @@ If the pose of a rigid body \\(\\{{}^A\bm{R}\_B, {}^A\bm{P}\_{O\_B}\\}\\) is giv
### Homogeneous Transformations {#homogeneous-transformations} ### Homogeneous Transformations {#homogeneous-transformations}
To describe general transformations, we introduce the \\(4\times1\\) **homogeneous coordinates**, and Eq. \ref{eq:chasles\_therorem} is generalized to To describe general transformations, we introduce the \\(4\times1\\) **homogeneous coordinates**, and Eq. \eqref{eq:chasles\_therorem} is generalized to
\begin{equation} \label{eq:homogeneous\_transformation} \begin{equation} \label{eq:homogeneous\_transformation}
\boxed{{}^A\bm{P} = {}^A\bm{T}\_B {}^B\bm{P}} \boxed{{}^A\bm{P} = {}^A\bm{T}\_B {}^B\bm{P}}
@@ -427,9 +423,7 @@ Hence, the **inverse of the transformation matrix** can be obtain by
\end{equation} \end{equation}
## Kinematics {#kinematics} ## Kinematics {#sec:kinematics}
<span class="org-target" id="org-target--sec-kinematics"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -581,9 +575,7 @@ The forward kinematic problem is then to solve many **highly nonlinear equations
The complexity of the problem depends widely on the manipulator architecture and geometry. The complexity of the problem depends widely on the manipulator architecture and geometry.
## Jacobian: Velocities and Static Forces {#jacobian-velocities-and-static-forces} ## Jacobian: Velocities and Static Forces {#sec:jacobian}
<span class="org-target" id="org-target--sec-jacobian"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -620,7 +612,7 @@ The direction of \\(\bm{\Omega}\\) indicates the instantaneous axis of rotation
</div> </div>
The angular velocity vector is related to the screw formalism by equation \ref{eq:angular\_velocity\_vector}. The angular velocity vector is related to the screw formalism by equation \eqref{eq:angular\_velocity\_vector}.
\begin{equation} \label{eq:angular\_velocity\_vector} \begin{equation} \label{eq:angular\_velocity\_vector}
\boxed{\bm{\Omega} \triangleq \dot{\theta} \hat{\bm{s}}} \boxed{\bm{\Omega} \triangleq \dot{\theta} \hat{\bm{s}}}
@@ -695,7 +687,7 @@ The time derivative of the rotation matrix \\({}^A\dot{\bm{R}}\_B\\) is:
\boxed{{}^A\dot{\bm{R}}\_B = {}^A\bm{\Omega}^\times \ {}^A\bm{R}\_B} \boxed{{}^A\dot{\bm{R}}\_B = {}^A\bm{\Omega}^\times \ {}^A\bm{R}\_B}
\end{equation} \end{equation}
And we finally obtain equation \ref{eq:absolute\_velocity\_formula}. And we finally obtain equation \eqref{eq:absolute\_velocity\_formula}.
<div class="important"> <div class="important">
@@ -755,7 +747,7 @@ The **general Jacobian matrix** is defined as:
\dot{\bm{q}} = \bm{J} \dot{\bm{\mathcal{X}}} \dot{\bm{q}} = \bm{J} \dot{\bm{\mathcal{X}}}
\end{equation} \end{equation}
From equation \ref{eq:jacobians}, we have: From equation \eqref{eq:jacobians}, we have:
\begin{equation} \begin{equation}
\bm{J} = {\bm{J}\_q}^{-1} \bm{J}\_x \bm{J} = {\bm{J}\_q}^{-1} \bm{J}\_x
@@ -842,7 +834,7 @@ Moreover, we have:
- \\({}^A\dot{\bm{R}}\_B {}^B\bm{b}\_i = {}^A\bm{\omega} \times {}^A\bm{R}\_B {}^B\bm{b}\_i = {}^A\bm{\omega} \times {}^A\bm{b}\_i\\) in which \\({}^A\bm{\omega}\\) denotes the angular velocity of the moving platform expressed in the fixed frame \\(\\{\bm{A}\\}\\). - \\({}^A\dot{\bm{R}}\_B {}^B\bm{b}\_i = {}^A\bm{\omega} \times {}^A\bm{R}\_B {}^B\bm{b}\_i = {}^A\bm{\omega} \times {}^A\bm{b}\_i\\) in which \\({}^A\bm{\omega}\\) denotes the angular velocity of the moving platform expressed in the fixed frame \\(\\{\bm{A}\\}\\).
- \\(l\_i {}^A\dot{\hat{\bm{s}}}\_i = l\_i \left( {}^A\bm{\omega}\_i \times \hat{\bm{s}}\_i \right)\\) in which \\({}^A\bm{\omega}\_i\\) is the angular velocity of limb \\(i\\) express in fixed frame \\(\\{\bm{A}\\}\\). - \\(l\_i {}^A\dot{\hat{\bm{s}}}\_i = l\_i \left( {}^A\bm{\omega}\_i \times \hat{\bm{s}}\_i \right)\\) in which \\({}^A\bm{\omega}\_i\\) is the angular velocity of limb \\(i\\) express in fixed frame \\(\\{\bm{A}\\}\\).
Then, the velocity loop closure \ref{eq:loop\_closure\_limb\_diff} simplifies to Then, the velocity loop closure \eqref{eq:loop\_closure\_limb\_diff} simplifies to
\\[ {}^A\bm{v}\_p + {}^A\bm{\omega} \times {}^A\bm{b}\_i = \dot{l}\_i {}^A\hat{\bm{s}}\_i + l\_i ({}^A\bm{\omega}\_i \times \hat{\bm{s}}\_i) \\] \\[ {}^A\bm{v}\_p + {}^A\bm{\omega} \times {}^A\bm{b}\_i = \dot{l}\_i {}^A\hat{\bm{s}}\_i + l\_i ({}^A\bm{\omega}\_i \times \hat{\bm{s}}\_i) \\]
By dot multiply both side of the equation by \\(\hat{\bm{s}}\_i\\): By dot multiply both side of the equation by \\(\hat{\bm{s}}\_i\\):
@@ -880,9 +872,9 @@ We then omit the superscript \\(A\\) and we can rearrange the 6 equations into a
#### Singularity Analysis {#singularity-analysis} #### Singularity Analysis {#singularity-analysis}
It is of primary importance to avoid singularities in a given workspace. It is of primary importance to avoid singularities in a given workspace.
To study the singularity configurations of the Stewart-Gough platform, we consider the Jacobian matrix determined with the equation \ref{eq:jacobian\_formula\_stewart}.<br /> To study the singularity configurations of the Stewart-Gough platform, we consider the Jacobian matrix determined with the equation \eqref{eq:jacobian\_formula\_stewart}.<br />
From equation \ref{eq:jacobians}, it is clear that for the Stewart-Gough platform, \\(\bm{J}\_q = \bm{I}\\) and \\(\bm{J}\_x = \bm{J}\\). From equation \eqref{eq:jacobians}, it is clear that for the Stewart-Gough platform, \\(\bm{J}\_q = \bm{I}\\) and \\(\bm{J}\_x = \bm{J}\\).
Hence the manipulator has **no inverse kinematic singularities** within the manipulator workspace, but **may possess forward kinematic singularity** when \\(\bm{J}\\) becomes rank deficient. This may occur when Hence the manipulator has **no inverse kinematic singularities** within the manipulator workspace, but **may possess forward kinematic singularity** when \\(\bm{J}\\) becomes rank deficient. This may occur when
\\[ \det \bm{J} = 0 \\] \\[ \det \bm{J} = 0 \\]
@@ -1001,7 +993,7 @@ The relation between the applied actuator force \\(\tau\_i\\) and the correspond
in which \\(k\_i\\) denotes the **stiffness constant of the actuator**.<br /> in which \\(k\_i\\) denotes the **stiffness constant of the actuator**.<br />
Re-writing the equation \ref{eq:stiffness\_actuator} for all limbs in a matrix form result in Re-writing the equation \eqref{eq:stiffness\_actuator} for all limbs in a matrix form result in
\begin{equation} \label{eq:stiffness\_matrix\_relation} \begin{equation} \label{eq:stiffness\_matrix\_relation}
\boxed{\bm{\tau} = \mathcal{K} \cdot \Delta \bm{q}} \boxed{\bm{\tau} = \mathcal{K} \cdot \Delta \bm{q}}
@@ -1010,7 +1002,7 @@ Re-writing the equation \ref{eq:stiffness\_actuator} for all limbs in a matrix f
in which \\(\bm{\tau}\\) is the vector of actuator forces, and \\(\Delta \bm{q}\\) corresponds to the actuator deflections. in which \\(\bm{\tau}\\) is the vector of actuator forces, and \\(\Delta \bm{q}\\) corresponds to the actuator deflections.
\\(\mathcal{K} = \text{diag}\left[ k\_1 \ k\_2 \dots k\_m \right]\\) is an \\(m \times m\\) diagonal matrix composed of the actuator stiffness constants.<br /> \\(\mathcal{K} = \text{diag}\left[ k\_1 \ k\_2 \dots k\_m \right]\\) is an \\(m \times m\\) diagonal matrix composed of the actuator stiffness constants.<br />
Writing the Jacobian relation given in equation \ref{eq:jacobian\_disp} for infinitesimal deflection read Writing the Jacobian relation given in equation \eqref{eq:jacobian\_disp} for infinitesimal deflection read
\begin{equation} \label{eq:jacobian\_disp\_inf} \begin{equation} \label{eq:jacobian\_disp\_inf}
\Delta \bm{q} = \bm{J} \cdot \Delta \bm{\mathcal{X}} \Delta \bm{q} = \bm{J} \cdot \Delta \bm{\mathcal{X}}
@@ -1018,19 +1010,19 @@ Writing the Jacobian relation given in equation \ref{eq:jacobian\_disp} for infi
in which \\(\Delta \bm{\mathcal{X}} = [\Delta x\ \Delta y\ \Delta z\ \Delta\theta x\ \Delta\theta y\ \Delta\theta z]\\) is the infinitesimal linear and angular deflection of the moving platform. in which \\(\Delta \bm{\mathcal{X}} = [\Delta x\ \Delta y\ \Delta z\ \Delta\theta x\ \Delta\theta y\ \Delta\theta z]\\) is the infinitesimal linear and angular deflection of the moving platform.
Furthermore, rewriting the Jacobian as the projection of actuator forces to the moving platform \ref{eq:jacobian\_forces} gives Furthermore, rewriting the Jacobian as the projection of actuator forces to the moving platform \eqref{eq:jacobian\_forces} gives
\begin{equation} \label{eq:jacobian\_force\_inf} \begin{equation} \label{eq:jacobian\_force\_inf}
\bm{\mathcal{F}} = \bm{J}^T \bm{\tau} \bm{\mathcal{F}} = \bm{J}^T \bm{\tau}
\end{equation} \end{equation}
Hence, by substituting \ref{eq:stiffness\_matrix\_relation} and \ref{eq:jacobian\_disp\_inf} in \ref{eq:jacobian\_force\_inf}, we obtain: Hence, by substituting \eqref{eq:stiffness\_matrix\_relation} and \eqref{eq:jacobian\_disp\_inf} in \eqref{eq:jacobian\_force\_inf}, we obtain:
\begin{equation} \label{eq:stiffness\_jacobian} \begin{equation} \label{eq:stiffness\_jacobian}
\boxed{\bm{\mathcal{F}} = \underbrace{\bm{J}^T \mathcal{K} \bm{J}}\_{\bm{K}} \cdot \Delta \bm{\mathcal{X}}} \boxed{\bm{\mathcal{F}} = \underbrace{\bm{J}^T \mathcal{K} \bm{J}}\_{\bm{K}} \cdot \Delta \bm{\mathcal{X}}}
\end{equation} \end{equation}
Equation \ref{eq:stiffness\_jacobian} implies that the moving platform output wrench is related to its deflection by the **stiffness matrix** \\(K\\). Equation \eqref{eq:stiffness\_jacobian} implies that the moving platform output wrench is related to its deflection by the **stiffness matrix** \\(K\\).
<div class="important"> <div class="important">
@@ -1123,9 +1115,7 @@ The maximum stiffness of the manipulator can be analyzed by the maximum singular
The largest axis of the stiffness transformation hyper-ellipsoid is given by this value at each configuration. The largest axis of the stiffness transformation hyper-ellipsoid is given by this value at each configuration.
## Dynamics {#dynamics} ## Dynamics {#sec:dynamics}
<span class="org-target" id="org-target--sec-dynamics"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -1208,7 +1198,7 @@ where \\(\\{\theta, \hat{\bm{s}}\\}\\) are the screw parameters representing the
</div> </div>
As shown by \ref{eq:angular\_acceleration}, the angular acceleration of the rigid body is also along the screw axis \\(\hat{\bm{s}}\\) with a magnitude equal to \\(\ddot{\theta}\\). As shown by \eqref{eq:angular\_acceleration}, the angular acceleration of the rigid body is also along the screw axis \\(\hat{\bm{s}}\\) with a magnitude equal to \\(\ddot{\theta}\\).
##### Linear Acceleration of a Point {#linear-acceleration-of-a-point} ##### Linear Acceleration of a Point {#linear-acceleration-of-a-point}
@@ -1305,7 +1295,7 @@ in which
##### Principal Axes {#principal-axes} ##### Principal Axes {#principal-axes}
As seen in equation \ref{eq:moment\_inertia}, the inertia matrix elements are a function of mass distribution of the rigid body with respect to the frame \\(\\{\bm{A}\\}\\). As seen in equation \eqref{eq:moment\_inertia}, the inertia matrix elements are a function of mass distribution of the rigid body with respect to the frame \\(\\{\bm{A}\\}\\).
Hence, it is possible to find **orientations of frame** \\(\\{\bm{A}\\}\\) in which the product of inertia terms vanish and inertia matrix becomes **diagonal**: Hence, it is possible to find **orientations of frame** \\(\\{\bm{A}\\}\\) in which the product of inertia terms vanish and inertia matrix becomes **diagonal**:
\begin{equation} \label{eq:inertia\_matrix\_diagonal} \begin{equation} \label{eq:inertia\_matrix\_diagonal}
@@ -1393,10 +1383,10 @@ Therefore, angular momentum of the rigid body about point \\(A\\) is reduced to
in which in which
\\[ {}^C\bm{H} = \int\_V \bm{r} \times (\bm{\Omega} \times \bm{r}) \rho dV = {}^C\bm{I} \cdot \bm{\Omega} \\] \\[ {}^C\bm{H} = \int\_V \bm{r} \times (\bm{\Omega} \times \bm{r}) \rho dV = {}^C\bm{I} \cdot \bm{\Omega} \\]
Equation \ref{eq:angular\_momentum} reveals that angular momentum of a rigid body about a point \\(A\\) can be written as \\(\bm{p}\_c \times \bm{G}\_c\\), which is the contribution of linear momentum of the rigid body about point \\(A\\), and \\({}^C\bm{H}\\) which is the angular momentum of the rigid body about the center of mass. Equation \eqref{eq:angular\_momentum} reveals that angular momentum of a rigid body about a point \\(A\\) can be written as \\(\bm{p}\_c \times \bm{G}\_c\\), which is the contribution of linear momentum of the rigid body about point \\(A\\), and \\({}^C\bm{H}\\) which is the angular momentum of the rigid body about the center of mass.
This also highlights the important of the center of mass in the dynamic analysis of rigid bodies. This also highlights the important of the center of mass in the dynamic analysis of rigid bodies.
If the center of mass is taken as the reference point, the relation describing angular momentum \ref{eq:angular\_momentum} is very analogous to that of linear momentum \ref{eq:linear\_momentum}. If the center of mass is taken as the reference point, the relation describing angular momentum \eqref{eq:angular\_momentum} is very analogous to that of linear momentum \eqref{eq:linear\_momentum}.
##### Kinetic Energy {#kinetic-energy} ##### Kinetic Energy {#kinetic-energy}
@@ -1608,7 +1598,7 @@ in which \\(\bm{\mathcal{X}} = [\bm{x}\_P, \bm{\theta}]^T\\) is the motion varia
#### Closed-Form Dynamics {#closed-form-dynamics} #### Closed-Form Dynamics {#closed-form-dynamics}
While dynamic formulation in the form of Equation \ref{eq:dynamic\_formulation\_implicit} can be used to simulate inverse dynamics of the Stewart-Gough platform, its implicit nature makes it unpleasant for the dynamic analysis and control. While dynamic formulation in the form of Equation \eqref{eq:dynamic\_formulation\_implicit} can be used to simulate inverse dynamics of the Stewart-Gough platform, its implicit nature makes it unpleasant for the dynamic analysis and control.
##### Closed-Form Dynamics of the Limbs {#closed-form-dynamics-of-the-limbs} ##### Closed-Form Dynamics of the Limbs {#closed-form-dynamics-of-the-limbs}
@@ -1666,7 +1656,7 @@ It is preferable to use the **screw coordinates** for representing the angular m
\ddot{\bm{\mathcal{X}}} = \begin{bmatrix}\bm{a}\_p \\\ \dot{\bm{\omega}}\end{bmatrix}} \ddot{\bm{\mathcal{X}}} = \begin{bmatrix}\bm{a}\_p \\\ \dot{\bm{\omega}}\end{bmatrix}}
\end{equation} \end{equation}
Equations \ref{eq:dyn\_form\_implicit\_trans} and \ref{eq:dyn\_form\_implicit\_rot} can be simply converted into a closed form of Equation \ref{eq:close\_form\_dynamics\_platform} with the following terms: Equations \eqref{eq:dyn\_form\_implicit\_trans} and \eqref{eq:dyn\_form\_implicit\_rot} can be simply converted into a closed form of Equation \eqref{eq:close\_form\_dynamics\_platform} with the following terms:
\begin{equation} \label{eq:close\_form\_dynamics\_stewart\_terms} \begin{equation} \label{eq:close\_form\_dynamics\_stewart\_terms}
\begin{aligned} \begin{aligned}
@@ -1729,7 +1719,7 @@ As shown in [Figure 13](#figure--fig:stewart-forward-dynamics), it is **assumed
{{< figure src="/ox-hugo/taghirad13_stewart_forward_dynamics.png" caption="<span class='figure-number'>Figure 13: </span>Flowchart of forward dynamics implementation sequence" >}} {{< figure src="/ox-hugo/taghirad13_stewart_forward_dynamics.png" caption="<span class='figure-number'>Figure 13: </span>Flowchart of forward dynamics implementation sequence" >}}
The closed-form dynamic formulation of the Stewart-Gough platform corresponds to the set of equations given in \ref{eq:closed\_form\_dynamic\_stewart\_wanted}, whose terms are given in \ref{eq:close\_form\_dynamics\_stewart\_terms}. The closed-form dynamic formulation of the Stewart-Gough platform corresponds to the set of equations given in \eqref{eq:closed\_form\_dynamic\_stewart\_wanted}, whose terms are given in \eqref{eq:close\_form\_dynamics\_stewart\_terms}.
##### Inverse Dynamics Simulation {#inverse-dynamics-simulation} ##### Inverse Dynamics Simulation {#inverse-dynamics-simulation}
@@ -1744,11 +1734,11 @@ For such a trajectory, \\(\bm{\mathcal{X}}\_{d}(t)\\) and the time derivatives \
The next step is to solve the inverse kinematics of the manipulator and to find the limbs' linear and angular positions, velocity and acceleration as a function of the manipulator trajectory. The next step is to solve the inverse kinematics of the manipulator and to find the limbs' linear and angular positions, velocity and acceleration as a function of the manipulator trajectory.
The manipulator Jacobian matrix \\(\bm{J}\\) is also calculated in this step. The manipulator Jacobian matrix \\(\bm{J}\\) is also calculated in this step.
Next, the dynamic matrices given in the closed-form formulations of the limbs and the moving platform are calculated using equations \ref{eq:closed\_form\_intermediate\_parameters} and \ref{eq:close\_form\_dynamics\_stewart\_terms}, respectively.<br /> Next, the dynamic matrices given in the closed-form formulations of the limbs and the moving platform are calculated using equations \eqref{eq:closed\_form\_intermediate\_parameters} and \eqref{eq:close\_form\_dynamics\_stewart\_terms}, respectively.<br />
To combine the corresponding matrices, an to generate the whole manipulator dynamics, it is necessary to find intermediate Jacobian matrices \\(\bm{J}\_i\\), given in \ref{eq:jacobian\_intermediate}, and then compute compatible matrices for the limbs given in \ref{eq:closed\_form\_stewart\_manipulator}. To combine the corresponding matrices, an to generate the whole manipulator dynamics, it is necessary to find intermediate Jacobian matrices \\(\bm{J}\_i\\), given in \eqref{eq:jacobian\_intermediate}, and then compute compatible matrices for the limbs given in \eqref{eq:closed\_form\_stewart\_manipulator}.
Now that all the terms required to **computed to actuator forces required to generate such a trajectory** is computed, let us define \\(\bm{\mathcal{F}}\\) as the resulting Cartesian wrench applied to the moving platform. Now that all the terms required to **computed to actuator forces required to generate such a trajectory** is computed, let us define \\(\bm{\mathcal{F}}\\) as the resulting Cartesian wrench applied to the moving platform.
This wrench can be calculated from the summation of all inertial and external forces **excluding the actuator torques** \\(\bm{\tau}\\) in the closed-form dynamic formulation \ref{eq:closed\_form\_dynamic\_stewart\_wanted}. This wrench can be calculated from the summation of all inertial and external forces **excluding the actuator torques** \\(\bm{\tau}\\) in the closed-form dynamic formulation \eqref{eq:closed\_form\_dynamic\_stewart\_wanted}.
By this definition, \\(\bm{\mathcal{F}}\\) can be viewed as the projector of the actuator forces acting on the manipulator, mapped to the Cartesian space. By this definition, \\(\bm{\mathcal{F}}\\) can be viewed as the projector of the actuator forces acting on the manipulator, mapped to the Cartesian space.
Since there is no redundancy in actuation in the Stewart-Gough manipulator, the Jacobian matrix \\(\bm{J}\\), squared and actuator forces can be uniquely determined from this wrench, by \\(\bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}}\\), provided \\(\bm{J}\\) is non-singular. Since there is no redundancy in actuation in the Stewart-Gough manipulator, the Jacobian matrix \\(\bm{J}\\), squared and actuator forces can be uniquely determined from this wrench, by \\(\bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}}\\), provided \\(\bm{J}\\) is non-singular.
@@ -1781,9 +1771,7 @@ Therefore, actuator forces \\(\bm{\tau}\\) are computed in the simulation from
\end{equation} \end{equation}
## Motion Control {#motion-control} ## Motion Control {#sec:motion_control}
<span class="org-target" id="org-target--sec-motion-control"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -1802,9 +1790,7 @@ One of the reasons why such decentralization can perform well in practice is the
However, using advanced techniques in nonlinear and MIMO control permits to overcome limitations of the SISO approach. However, using advanced techniques in nonlinear and MIMO control permits to overcome limitations of the SISO approach.
### Controller Topology {#controller-topology} ### Controller Topology {#sec:control_topology}
<span class="org-target" id="org-target--sec-control-topology"></span>
<div class="important"> <div class="important">
@@ -1897,9 +1883,7 @@ For a fully parallel manipulator such as the Stewart-Gough platform, this mappin
\\[ \bm{\mathcal{F}} = \bm{J}^T \bm{\tau}; \quad \bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}} \\] \\[ \bm{\mathcal{F}} = \bm{J}^T \bm{\tau}; \quad \bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}} \\]
### Motion Control in Task Space {#motion-control-in-task-space} ### Motion Control in Task Space {#sec:control_task_space}
<span class="org-target" id="org-target--sec-control-task-space"></span>
#### Decentralized PD Control {#decentralized-pd-control} #### Decentralized PD Control {#decentralized-pd-control}
@@ -2043,9 +2027,9 @@ These are the reasons why, in practice, IDC control is extended to different for
To develop the simplest possible implementable IDC, let us recall dynamic formulation complexities: To develop the simplest possible implementable IDC, let us recall dynamic formulation complexities:
- the manipulator mass matrix \\(\bm{M}(\bm{\mathcal{X}})\\) is derived from kinetic energy of the manipulator (Eq. \ref{eq:kinetic\_energy}) - the manipulator mass matrix \\(\bm{M}(\bm{\mathcal{X}})\\) is derived from kinetic energy of the manipulator (Eq. \eqref{eq:kinetic\_energy})
- the gravity vector \\(\bm{G}(\bm{\mathcal{X}})\\) is derived from potential energy (Eq. \ref{eq:gravity\_vectory}) - the gravity vector \\(\bm{G}(\bm{\mathcal{X}})\\) is derived from potential energy (Eq. \eqref{eq:gravity\_vectory})
- the Coriolis and centrifugal matrix \\(\bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\\) is derived from Eq. \ref{eq:gravity\_vectory} - the Coriolis and centrifugal matrix \\(\bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\\) is derived from Eq. \eqref{eq:gravity\_vectory}
The computation of the Coriolis and centrifugal matrix is more intensive than that of the mass matrix. The computation of the Coriolis and centrifugal matrix is more intensive than that of the mass matrix.
Gravity vector is more easily computable. Gravity vector is more easily computable.
@@ -2053,7 +2037,7 @@ Gravity vector is more easily computable.
However, it is shown that certain properties hold for mass matrix, gravity vector and Coriolis and centrifugal matrix, which might be directly used in the control techniques developed for parallel manipulators. However, it is shown that certain properties hold for mass matrix, gravity vector and Coriolis and centrifugal matrix, which might be directly used in the control techniques developed for parallel manipulators.
One of the most important properties of dynamic matrices is the skew-symmetric property of the matrix \\(\dot{\bm{M}} - 2 \bm{C}\\) .<br /> One of the most important properties of dynamic matrices is the skew-symmetric property of the matrix \\(\dot{\bm{M}} - 2 \bm{C}\\) .<br />
Consider dynamic formulation of parallel robot given in Eq. \ref{eq:closed\_form\_dynamic\_formulation}, in which the skew-symmetric property of dynamic matrices is satisfied. Consider dynamic formulation of parallel robot given in Eq. \eqref{eq:closed\_form\_dynamic\_formulation}, in which the skew-symmetric property of dynamic matrices is satisfied.
The simplest form of IDC control effort \\(\bm{\mathcal{F}}\\) consists of: The simplest form of IDC control effort \\(\bm{\mathcal{F}}\\) consists of:
\\[ \bm{\mathcal{F}} = \bm{\mathcal{F}}\_{pd} + \bm{\mathcal{F}}\_{fl} \\] \\[ \bm{\mathcal{F}} = \bm{\mathcal{F}}\_{pd} + \bm{\mathcal{F}}\_{fl} \\]
in which the first term \\(\bm{\mathcal{F}}\_{pd}\\) is generated by the simplified PD form on the motion error: in which the first term \\(\bm{\mathcal{F}}\_{pd}\\) is generated by the simplified PD form on the motion error:
@@ -2091,7 +2075,7 @@ A global understanding of the trade-offs involved in each method is needed to em
Various sources of uncertainties such as unmodelled dynamics, unknown parameters, calibration error, unknown disturbance wrenches, and varying payloads may exist, and are not seen in dynamic model of the manipulator. Various sources of uncertainties such as unmodelled dynamics, unknown parameters, calibration error, unknown disturbance wrenches, and varying payloads may exist, and are not seen in dynamic model of the manipulator.
To consider these modeling uncertainty in the closed-loop performance of the manipulator, recall the general closed-form dynamic formulation of the manipulator given in Eq. \ref{eq:closed\_form\_dynamic\_formulation}, and modify the inverse dynamics control input \\(\bm{\mathcal{F}}\\) as To consider these modeling uncertainty in the closed-loop performance of the manipulator, recall the general closed-form dynamic formulation of the manipulator given in Eq. \eqref{eq:closed\_form\_dynamic\_formulation}, and modify the inverse dynamics control input \\(\bm{\mathcal{F}}\\) as
\begin{align\*} \begin{align\*}
\bm{\mathcal{F}} &= \hat{\bm{M}}(\bm{\mathcal{X}}) \bm{a}\_r + \hat{\bm{C}}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) \dot{\bm{\mathcal{X}}} + \hat{\bm{G}}(\bm{\mathcal{X}})\\\\ \bm{\mathcal{F}} &= \hat{\bm{M}}(\bm{\mathcal{X}}) \bm{a}\_r + \hat{\bm{C}}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) \dot{\bm{\mathcal{X}}} + \hat{\bm{G}}(\bm{\mathcal{X}})\\\\
@@ -2127,10 +2111,10 @@ is a measure of modeling uncertainty.
### Motion Control in Joint Space {#motion-control-in-joint-space} ### Motion Control in Joint Space {#motion-control-in-joint-space}
Although the motion control schemes developed in section are very effective for tracking performance, they suffer from an implementation constraint that the motion variable \\(\bm{\mathcal{X}}\\) must be measured in practice.<br /> Although the motion control schemes developed in section [Motion Control in Task Space](#sec:control_task_space) are very effective for tracking performance, they suffer from an implementation constraint that the motion variable \\(\bm{\mathcal{X}}\\) must be measured in practice.<br />
If this measurement is available without any doubt, such topologies are among the best routines to be implemented in practice. If this measurement is available without any doubt, such topologies are among the best routines to be implemented in practice.
However, as explained in Section , in many practical situations measurement of the motion variable \\(\bm{\mathcal{X}}\\) is difficult or expensive, and usually just the active joint variables \\(\bm{q}\\) are measured. However, as explained in Section [Controller Topology](#sec:control_topology), in many practical situations measurement of the motion variable \\(\bm{\mathcal{X}}\\) is difficult or expensive, and usually just the active joint variables \\(\bm{q}\\) are measured.
In such cases, the controllers developed in the joint space may be recommended for practical implementation.<br /> In such cases, the controllers developed in the joint space may be recommended for practical implementation.<br />
To generate a direct input to output relation in the joint space, consider the topology depicted in [Figure 16](#figure--fig:general-topology-motion-feedback-bis). To generate a direct input to output relation in the joint space, consider the topology depicted in [Figure 16](#figure--fig:general-topology-motion-feedback-bis).
@@ -2183,7 +2167,7 @@ with:
</div> </div>
Equation \ref{eq:dynamics\_joint\_space} represents the closed form dynamic formulation of a general parallel robot in the joint space.<br /> Equation \eqref{eq:dynamics\_joint\_space} represents the closed form dynamic formulation of a general parallel robot in the joint space.<br />
Note that the dynamic matrices are **not** explicitly represented in terms of the joint variable vector \\(\bm{q}\\). Note that the dynamic matrices are **not** explicitly represented in terms of the joint variable vector \\(\bm{q}\\).
In fact, to fully derive these matrices, the Jacobian matrices must be computed and are generally derived as a function of the motion variables \\(\bm{\mathcal{X}}\\). In fact, to fully derive these matrices, the Jacobian matrices must be computed and are generally derived as a function of the motion variables \\(\bm{\mathcal{X}}\\).
@@ -2301,7 +2285,7 @@ However, note that for a good performance, an **accurate model of the system is
### Summary of Motion Control Techniques {#summary-of-motion-control-techniques} ### Summary of Motion Control Techniques {#summary-of-motion-control-techniques}
In this section, a number of control techniques have been developed for parallel robots. In this section, a number of control techniques have been developed for parallel robots.
Based on the dynamic formulation given in Section , many **model-based** control techniques have been developed for implementation in the task space as well as in the joint space. Based on the dynamic formulation given in Section [Dynamics](#sec:dynamics), many **model-based** control techniques have been developed for implementation in the task space as well as in the joint space.
These control techniques are presented from the simplest form of decentralized PD control to more advanced robust and adaptive inverse dynamics control. These control techniques are presented from the simplest form of decentralized PD control to more advanced robust and adaptive inverse dynamics control.
A summary of these techniques is given below. A summary of these techniques is given below.
@@ -2545,9 +2529,7 @@ Furthermore, a very small error signature in the joint space may be accumulated
Hence, it is recommended to design and implement controllers in the task space, if the required motion variables can be directly measured or the forward kinematic solution can be calculated in an online routine. Hence, it is recommended to design and implement controllers in the task space, if the required motion variables can be directly measured or the forward kinematic solution can be calculated in an online routine.
## Force Control {#force-control} ## Force Control {#sec:force:control}
<span class="org-target" id="org-target--sec-force-control"></span>
### Introduction {#introduction} ### Introduction {#introduction}
@@ -182,7 +182,7 @@ In saturation, \\(u\_m\\) is a constant and the resulting equations drive \\(u\\
### [Bumpless Transfer]({{< relref "bumpless_transfer.md" >}}) {#bumpless-transfer--bumpless-transfer-dot-md} ### [Bumpless Transfer]({{< relref "bumpless_transfer.md" >}}) {#bumpless-transfer--bumpless-transfer-dot-md}
When switching on the regulator, significant transient behavior can be seen and the controller may saturate the actuators. When switching on the regulator, significant transient behavior can be seen and the controller may saturate the actuators.
The solution is similar to that of the wind-up phenomenon: the regulator should be always on, carrying out calculations by using \ref{eq:antiwindup\_pid}. The solution is similar to that of the wind-up phenomenon: the regulator should be always on, carrying out calculations by using \eqref{eq:antiwindup\_pid}.
## Bibliography {#bibliography} ## Bibliography {#bibliography}
@@ -1,7 +1,7 @@
+++ +++
title = "Active damping of vibrations in high-precision motion systems" title = "Active damping of vibrations in high-precision motion systems"
author = ["Dehaeze Thomas"] author = ["Dehaeze Thomas"]
draft = false draft = true
ref_author = "Babakhani, B." ref_author = "Babakhani, B."
ref_year = 2012 ref_year = 2012
+++ +++
+7
View File
@@ -233,3 +233,10 @@ By calculation \\(\mathcal{H}\_2\\) optimal controllers for increasing \\(\alpha
> To use the measured PSDs in an optimal control design, such as H2-control, the disturbances must be modelled using linear time invariant models with multiple white noise input. > To use the measured PSDs in an optimal control design, such as H2-control, the disturbances must be modelled using linear time invariant models with multiple white noise input.
> To derive such models, spectral factorization is used. > To derive such models, spectral factorization is used.
> It is recommended to investigate which methods for spectral factorization are currently available and numerically robust. > It is recommended to investigate which methods for spectral factorization are currently available and numerically robust.
## 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>Jabben, Leon. 2007. “Mechatronic Design of a Magnetically Suspended Rotating Platform.” Delft University.</div>
</div>
@@ -131,7 +131,7 @@ Define a new input and a new output:
u\_1 = J^T f\_m, \quad y = J^{-1} (l - l\_r) u\_1 = J^T f\_m, \quad y = J^{-1} (l - l\_r)
\end{equation} \end{equation}
Equation \ref{eq:hexapod\_eq\_motion} can be rewritten as: Equation \eqref{eq:hexapod\_eq\_motion} can be rewritten as:
\begin{equation} \label{eq:hexapod\_eq\_motion\_decoup\_1} \begin{equation} \label{eq:hexapod\_eq\_motion\_decoup\_1}
\begin{split} \begin{split}
+13 -13
View File
@@ -335,17 +335,17 @@ These eigenvectors have the following orthogonality properties, or can always be
\phi\_i^T M \phi\_j = 0 \quad (i \neq j) \phi\_i^T M \phi\_j = 0 \quad (i \neq j)
\end{equation} \end{equation}
For \\(i=j\\) the result of the multiplication according to equation \ref{eq:eigenvector\_orthogonality\_mass} yields a non-zero result, which is normally indicated as **modal mass** \\(\mathit{m}\_i\\): For \\(i=j\\) the result of the multiplication according to equation \eqref{eq:eigenvector\_orthogonality\_mass} yields a non-zero result, which is normally indicated as **modal mass** \\(\mathit{m}\_i\\):
\begin{equation} \label{eq:modal\_mass} \begin{equation} \label{eq:modal\_mass}
\phi\_i^T M \phi\_i = \mathit{m}\_i \phi\_i^T M \phi\_i = \mathit{m}\_i
\end{equation} \end{equation}
Because only the direction but not the length of an eigenvector is defined, several scaling methods are used, all based on equation \ref{eq:modal\_mass:} Because only the direction but not the length of an eigenvector is defined, several scaling methods are used, all based on equation \eqref{eq:modal\_mass:}
- \\(|\phi\_i| = 1\\). Each eigenvector \\(\phi\_i\\) is scaled such that its length is equal to \\(1\\). The modal mass are then calculated from equation \ref{eq:modal\_mass}. - \\(|\phi\_i| = 1\\). Each eigenvector \\(\phi\_i\\) is scaled such that its length is equal to \\(1\\). The modal mass are then calculated from equation \eqref{eq:modal\_mass}.
- \\(\max(\phi\_i) = 1\\). Each eigenvector \\(\phi\_i\\) is scaled such that its largest element is equation to \\(1\\). The modal mass is then calculated from equation \ref{eq:modal\_mass}. - \\(\max(\phi\_i) = 1\\). Each eigenvector \\(\phi\_i\\) is scaled such that its largest element is equation to \\(1\\). The modal mass is then calculated from equation \eqref{eq:modal\_mass}.
- \\(m\_i = 1\\). The modal mass \\(\mathit{m}\_i\\) is set to \\(1\\). The scaling of the mode vector \\(\phi\_i\\) follows from equation \ref{eq:modal\_mass}. - \\(m\_i = 1\\). The modal mass \\(\mathit{m}\_i\\) is set to \\(1\\). The scaling of the mode vector \\(\phi\_i\\) follows from equation \eqref{eq:modal\_mass}.
The orthogonality properties also apply to the stiffness matrix \\(K\\): The orthogonality properties also apply to the stiffness matrix \\(K\\):
@@ -450,7 +450,7 @@ In such an analysis one is typically interested in the transfer function between
Applying the principle of modal decomposition, any transfer function can be derived by first calculating the behavior of the individual modes, and then **summing all modal contributions**. Applying the principle of modal decomposition, any transfer function can be derived by first calculating the behavior of the individual modes, and then **summing all modal contributions**.
The contribution of one single mode \\(i\\) to the transfer function \\(x\_l/f\_k\\) can be derived by first considering the response of the modal DoF \\(q\_i\\) to a force vector \\(f\\) with only one non-zero component \\(f\_k\\). The contribution of one single mode \\(i\\) to the transfer function \\(x\_l/f\_k\\) can be derived by first considering the response of the modal DoF \\(q\_i\\) to a force vector \\(f\\) with only one non-zero component \\(f\_k\\).
In that case, equation \ref{eq:eoq\_modal\_i} is reduced to: In that case, equation \eqref{eq:eoq\_modal\_i} is reduced to:
\begin{equation} \begin{equation}
m\_i \ddot{q}\_i(t) + k\_i q\_i(t) = \phi\_{ik} f\_k(t) m\_i \ddot{q}\_i(t) + k\_i q\_i(t) = \phi\_{ik} f\_k(t)
@@ -481,7 +481,7 @@ The overall transfer function can be found by summation of the individual modal
### Graphical Representation {#graphical-representation} ### Graphical Representation {#graphical-representation}
Due to the equivalence with the differential equations of a single mass spring system, equation \ref{eq:eoq\_modal\_i} is often represented by a single mass spring system on which a force \\(f^\prime = \phi\_i^T f\\) acts. Due to the equivalence with the differential equations of a single mass spring system, equation \eqref{eq:eoq\_modal\_i} is often represented by a single mass spring system on which a force \\(f^\prime = \phi\_i^T f\\) acts.
However, this representation implies an important loss of information because it neglects all information about the mode-shape vector. However, this representation implies an important loss of information because it neglects all information about the mode-shape vector.
Consider the system in [Figure 8](#figure--fig:rankers98-mode-trad-representation) for which the three mode shapes are depicted in the traditional graphical representation. Consider the system in [Figure 8](#figure--fig:rankers98-mode-trad-representation) for which the three mode shapes are depicted in the traditional graphical representation.
@@ -516,7 +516,7 @@ The resulting moment of inertia \\(J\_i\\) of the i-th modal lever then is:
J\_i = \sum\_{k=1}^n m\_k \phi\_{ik}^2 J\_i = \sum\_{k=1}^n m\_k \phi\_{ik}^2
\end{equation} \end{equation}
This result is identical to the modal mass \\(m\_i\\) found with Equation \ref{eq:modal\_mass}, because the mass matrix \\(M\\) is a diagonal matrix of physical masses \\(m\_k\\), and consequently the expression for the modal mass \\(m\_i\\) yields: This result is identical to the modal mass \\(m\_i\\) found with Equation \eqref{eq:modal\_mass}, because the mass matrix \\(M\\) is a diagonal matrix of physical masses \\(m\_k\\), and consequently the expression for the modal mass \\(m\_i\\) yields:
\begin{equation} \begin{equation}
m\_i = \phi\_j^T M \phi\_j = \sum\_{k=1}^n m\_k \phi\_{ik}^2 m\_i = \phi\_j^T M \phi\_j = \sum\_{k=1}^n m\_k \phi\_{ik}^2
@@ -637,7 +637,7 @@ whereas the modal stiffnesses follow from \\(k\_i = \omega\_i^2 m\_i\\).
{{< figure src="/ox-hugo/rankers98_example_2dof_modal.png" caption="<span class='figure-number'>Figure 15: </span>Graphical representation of modes and modal parameters of the two mass spring system" >}} {{< figure src="/ox-hugo/rankers98_example_2dof_modal.png" caption="<span class='figure-number'>Figure 15: </span>Graphical representation of modes and modal parameters of the two mass spring system" >}}
From these results, the effective modal parameters for each mode, and for each individual DoF can be defined using equations \ref{eq:m\_modal\_eff} and \ref{eq:k\_modal\_eff}. From these results, the effective modal parameters for each mode, and for each individual DoF can be defined using equations \eqref{eq:m\_modal\_eff} and \eqref{eq:k\_modal\_eff}.
The results are summarized in [Table 2](#table--tab:2dof-example-modal-params-eff). The results are summarized in [Table 2](#table--tab:2dof-example-modal-params-eff).
<a id="table--tab:2dof-example-modal-params-eff"></a> <a id="table--tab:2dof-example-modal-params-eff"></a>
@@ -716,7 +716,7 @@ f\_{\text{new},i}(\Delta k) &= \frac{1}{2\pi}\sqrt{\frac{k\_{\text{eff},i} + \De
Let's use the two mass spring system in [Figure 14](#figure--fig:rankers98-example-2dof) as an example. Let's use the two mass spring system in [Figure 14](#figure--fig:rankers98-example-2dof) as an example.
In order to analyze the effect of an extra mass at \\(x\_2\\), the effective modal mass at that DoF needs to be known for both modes (see [Table 2](#table--tab:2dof-example-modal-params-eff)). In order to analyze the effect of an extra mass at \\(x\_2\\), the effective modal mass at that DoF needs to be known for both modes (see [Table 2](#table--tab:2dof-example-modal-params-eff)).
Then using equation \ref{eq:sensitivity\_add\_m}, one can estimate the effect of an extra mass \\(\Delta m = 1 kg\\) added to \\(m\_2\\). Then using equation \eqref{eq:sensitivity\_add\_m}, one can estimate the effect of an extra mass \\(\Delta m = 1 kg\\) added to \\(m\_2\\).
To estimate the influence of extra stiffness between the two DoF, one needs to calculate the effective modal stiffness that corresponds to the relative motion between \\(x\_2\\) and \\(x\_1\\). To estimate the influence of extra stiffness between the two DoF, one needs to calculate the effective modal stiffness that corresponds to the relative motion between \\(x\_2\\) and \\(x\_1\\).
This can be graphically done as shown in [Figure 19](#figure--fig:rankers98-example-sensitivity-2dof): This can be graphically done as shown in [Figure 19](#figure--fig:rankers98-example-sensitivity-2dof):
@@ -726,7 +726,7 @@ k\_{\text{eff},1,(2-1)} &= 0.46 \cdot 10^7 / 0.07^2 = 93.9 \cdot 10^7 N/m \\\\
k\_{\text{eff},2,(2-1)} &= 1.23 \cdot 10^7 / 1.1^2 = 1.0 \cdot 10^7 N/m k\_{\text{eff},2,(2-1)} &= 1.23 \cdot 10^7 / 1.1^2 = 1.0 \cdot 10^7 N/m
\end{align} \end{align}
And using equation \ref{eq:sensitivity\_add\_m}, the effect of additional stiffness on the frequency of the two modes can be computed. And using equation \eqref{eq:sensitivity\_add\_m}, the effect of additional stiffness on the frequency of the two modes can be computed.
The results are summarized in [Table 3](#table--tab:example-sensitivity-2dof-results). The results are summarized in [Table 3](#table--tab:example-sensitivity-2dof-results).
@@ -860,13 +860,13 @@ Let's introduce a variable \\(\alpha\\), which **relates the high-frequency cont
\alpha = \frac{\frac{\phi\_{i,\text{servo}} \phi\_{i,\text{force}}}{m\_i}}{\frac{1}{m}} \alpha = \frac{\frac{\phi\_{i,\text{servo}} \phi\_{i,\text{force}}}{m\_i}}{\frac{1}{m}}
\end{equation} \end{equation}
which simplifies equation \ref{eq:effect\_one\_mode} to: which simplifies equation \eqref{eq:effect\_one\_mode} to:
\begin{equation} \label{eq:effect\_one\_mode\_simplified} \begin{equation} \label{eq:effect\_one\_mode\_simplified}
\boxed{\frac{x\_{\text{servo}}}{F\_{\text{servo}}} = \frac{1}{ms^2} + \frac{\alpha}{m s^2 + m \omega\_i^2}} \boxed{\frac{x\_{\text{servo}}}{F\_{\text{servo}}} = \frac{1}{ms^2} + \frac{\alpha}{m s^2 + m \omega\_i^2}}
\end{equation} \end{equation}
Equation \ref{eq:effect\_one\_mode\_simplified} will be the basis for the discussion of the various patterns that can be observe in the frequency response functions and the effect of resonances on servo stability. Equation \eqref{eq:effect\_one\_mode\_simplified} will be the basis for the discussion of the various patterns that can be observe in the frequency response functions and the effect of resonances on servo stability.
Three different types of intersection pattern can be found in the amplitude plot as shown in [Figure 25](#figure--fig:rankers98-frf-effect-alpha). Three different types of intersection pattern can be found in the amplitude plot as shown in [Figure 25](#figure--fig:rankers98-frf-effect-alpha).
Depending on the absolute value of \\(\alpha\\) one can observe: Depending on the absolute value of \\(\alpha\\) one can observe:
+2 -2
View File
@@ -87,13 +87,13 @@ Here is some inline mathematics: \\(z = 2\\).
Unumbered equation: Unumbered equation:
\\[ F(x) = \int\_0^x f(t) dt \\] \\[ F(x) = \int\_0^x f(t) dt \\]
Using the `equation` environment in Eq. \ref{eq:numbered}. Using the `equation` environment in Eq. \eqref{eq:numbered}.
\begin{equation} \label{eq:numbered} \begin{equation} \label{eq:numbered}
F(s) = \int\_0^\infty f(t) e^{-st} dt F(s) = \int\_0^\infty f(t) e^{-st} dt
\end{equation} \end{equation}
Using the `align` environment Equations \ref{eq:align\_1} and \ref{eq:align\_2}. Using the `align` environment Equations \eqref{eq:align\_1} and \eqref{eq:align\_2}.
\begin{align} \begin{align}
\mathcal{F}(a) &= \frac{1}{2\pi i}\oint\_\gamma \frac{f(z)}{z - a}\\,dz \label{eq:align\_1} \\\\ \mathcal{F}(a) &= \frac{1}{2\pi i}\oint\_\gamma \frac{f(z)}{z - a}\\,dz \label{eq:align\_1} \\\\
@@ -51,7 +51,7 @@ It consists of three steps:
<a id="figure--fig:control-procedure"></a> <a id="figure--fig:control-procedure"></a>
{{< figure src="figs/control-procedure.png" caption="<span class=\"figure-number\">Figure 1: </span>Typical Methodoly for Model Based Control" >}} {{< figure src="figs/control-procedure.png" caption="<span class='figure-number'>Figure 1: </span>Typical Methodoly for Model Based Control" >}}
In this document, we will suppose a model of the plant is available (step 1 already performed), and we will focus on steps 2 and 3. In this document, we will suppose a model of the plant is available (step 1 already performed), and we will focus on steps 2 and 3.
@@ -121,7 +121,7 @@ The notations used on [Figure 2](#figure--fig:mech-sys-1dof-inertial-contr) are
<a id="figure--fig:mech-sys-1dof-inertial-contr"></a> <a id="figure--fig:mech-sys-1dof-inertial-contr"></a>
{{< figure src="figs/mech_sys_1dof_inertial_contr.png" caption="<span class=\"figure-number\">Figure 2: </span>Test System consisting of a payload with a mass \\(m\\) on top of an active system with a stiffness \\(k\\), damping \\(c\\) and an actuator. A feedback controller \\(K(s)\\) is added to position / isolate the payload." >}} {{< figure src="figs/mech_sys_1dof_inertial_contr.png" caption="<span class='figure-number'>Figure 2: </span>Test System consisting of a payload with a mass \\(m\\) on top of an active system with a stiffness \\(k\\), damping \\(c\\) and an actuator. A feedback controller \\(K(s)\\) is added to position / isolate the payload." >}}
<a id="table--tab:example-notations"></a> <a id="table--tab:example-notations"></a>
<div class="table-caption"> <div class="table-caption">
@@ -178,7 +178,7 @@ Having obtained \\(G(s)\\) and \\(G\_d(s)\\), we can transform the system shown
<a id="figure--fig:classical-feedback-test-system"></a> <a id="figure--fig:classical-feedback-test-system"></a>
{{< figure src="figs/classical_feedback_test_system.png" caption="<span class=\"figure-number\">Figure 3: </span>Block diagram corresponding to the example system of [Figure 2](#figure--fig:mech-sys-1dof-inertial-contr)" >}} {{< figure src="figs/classical_feedback_test_system.png" caption="<span class='figure-number'>Figure 3: </span>Block diagram corresponding to the example system of [Figure 2](#figure--fig:mech-sys-1dof-inertial-contr)" >}}
Let's define the system parameters on Matlab. Let's define the system parameters on Matlab.
@@ -199,11 +199,11 @@ The Bode plots of \\(G(s)\\) and \\(G\_d(s)\\) are shown in Figures [Figure 4](#
<a id="figure--fig:bode-plot-example-afm"></a> <a id="figure--fig:bode-plot-example-afm"></a>
{{< figure src="figs/bode_plot_example_afm.png" caption="<span class=\"figure-number\">Figure 4: </span>Bode plot of the plant \\(G(s)\\)" >}} {{< figure src="figs/bode_plot_example_afm.png" caption="<span class='figure-number'>Figure 4: </span>Bode plot of the plant \\(G(s)\\)" >}}
<a id="figure--fig:bode-plot-example-Gd"></a> <a id="figure--fig:bode-plot-example-Gd"></a>
{{< figure src="figs/bode_plot_example_Gd.png" caption="<span class=\"figure-number\">Figure 5: </span>Magnitude of the disturbance transfer function \\(G\_d(s)\\)" >}} {{< figure src="figs/bode_plot_example_Gd.png" caption="<span class='figure-number'>Figure 5: </span>Magnitude of the disturbance transfer function \\(G\_d(s)\\)" >}}
## Classical Open Loop Shaping {#sec:open_loop_shaping} ## Classical Open Loop Shaping {#sec:open_loop_shaping}
@@ -235,7 +235,7 @@ Its name comes from the fact that this is actually the "gain around the loop".
<a id="figure--fig:open-loop-shaping"></a> <a id="figure--fig:open-loop-shaping"></a>
{{< figure src="figs/open_loop_shaping.png" caption="<span class=\"figure-number\">Figure 6: </span>Classical Feedback Architecture" >}} {{< figure src="figs/open_loop_shaping.png" caption="<span class='figure-number'>Figure 6: </span>Classical Feedback Architecture" >}}
</div> </div>
@@ -256,7 +256,7 @@ Another interesting Loop shape called "Bode Step" is described in (<a href="#cit
<a id="figure--fig:open-loop-shaping-shape"></a> <a id="figure--fig:open-loop-shaping-shape"></a>
{{< figure src="figs/open_loop_shaping_shape.png" caption="<span class=\"figure-number\">Figure 7: </span>Typical Wanted Shape for the Loop Gain \\(L(s)\\)" >}} {{< figure src="figs/open_loop_shaping_shape.png" caption="<span class='figure-number'>Figure 7: </span>Typical Wanted Shape for the Loop Gain \\(L(s)\\)" >}}
The shaping of **closed-loop** transfer functions is obviously not as simple as they don't depend linearly on \\(K(s)\\). The shaping of **closed-loop** transfer functions is obviously not as simple as they don't depend linearly on \\(K(s)\\).
But this is were the \\(\mathcal{H}\_\infty\\) Synthesis will be useful! But this is were the \\(\mathcal{H}\_\infty\\) Synthesis will be useful!
@@ -324,7 +324,7 @@ The bode plot of the Loop Gain is shown in [Figure 8](#figure--fig:loop-gain-man
<a id="figure--fig:loop-gain-manual-afm"></a> <a id="figure--fig:loop-gain-manual-afm"></a>
{{< figure src="figs/loop_gain_manual_afm.png" caption="<span class=\"figure-number\">Figure 8: </span>Bode Plot of the obtained Loop Gain \\(L(s) = G(s) K(s)\\)" >}} {{< figure src="figs/loop_gain_manual_afm.png" caption="<span class='figure-number'>Figure 8: </span>Bode Plot of the obtained Loop Gain \\(L(s) = G(s) K(s)\\)" >}}
### \\(\mathcal{H}\_\infty\\) Loop Shaping Synthesis {#sec:h_infinity_open_loop_shaping} ### \\(\mathcal{H}\_\infty\\) Loop Shaping Synthesis {#sec:h_infinity_open_loop_shaping}
@@ -396,7 +396,7 @@ The obtained Loop Gain is shown in [Figure 9](#figure--fig:open-loop-shaping-hin
<a id="figure--fig:open-loop-shaping-hinf-L"></a> <a id="figure--fig:open-loop-shaping-hinf-L"></a>
{{< figure src="figs/open_loop_shaping_hinf_L.png" caption="<span class=\"figure-number\">Figure 9: </span>Obtained Open Loop Gain \\(L(s) = G(s) K(s)\\) and comparison with the wanted Loop gain \\(L\_w\\)" >}} {{< figure src="figs/open_loop_shaping_hinf_L.png" caption="<span class='figure-number'>Figure 9: </span>Obtained Open Loop Gain \\(L(s) = G(s) K(s)\\) and comparison with the wanted Loop gain \\(L\_w\\)" >}}
<div class="important"> <div class="important">
@@ -414,7 +414,7 @@ Let's briefly analyze the obtained controller which bode plot is shown in [Figur
<a id="figure--fig:open-loop-shaping-hinf-K"></a> <a id="figure--fig:open-loop-shaping-hinf-K"></a>
{{< figure src="figs/open_loop_shaping_hinf_K.png" caption="<span class=\"figure-number\">Figure 10: </span>Obtained controller \\(K\\) using the open-loop \\(\mathcal{H}\_\infty\\) shaping" >}} {{< figure src="figs/open_loop_shaping_hinf_K.png" caption="<span class='figure-number'>Figure 10: </span>Obtained controller \\(K\\) using the open-loop \\(\mathcal{H}\_\infty\\) shaping" >}}
Let's finally compare the obtained stability margins of the \\(\mathcal{H}\_\infty\\) controller and of the manually developed controller in [Table 4](#table--tab:open-loop-shaping-compare). Let's finally compare the obtained stability margins of the \\(\mathcal{H}\_\infty\\) controller and of the manually developed controller in [Table 4](#table--tab:open-loop-shaping-compare).
@@ -477,7 +477,7 @@ We can see in [Figure 11](#figure--fig:hinfinity-norm-siso-bode) that indeed, th
<a id="figure--fig:hinfinity-norm-siso-bode"></a> <a id="figure--fig:hinfinity-norm-siso-bode"></a>
{{< figure src="figs/hinfinity_norm_siso_bode.png" caption="<span class=\"figure-number\">Figure 11: </span>Example of the \\(\mathcal{H}\_\infty\\) norm of a SISO system" >}} {{< figure src="figs/hinfinity_norm_siso_bode.png" caption="<span class='figure-number'>Figure 11: </span>Example of the \\(\mathcal{H}\_\infty\\) norm of a SISO system" >}}
</div> </div>
@@ -533,7 +533,7 @@ A practical example about how to derive the generalized plant for a classical co
<a id="figure--fig:general-plant"></a> <a id="figure--fig:general-plant"></a>
{{< figure src="figs/general_plant.png" caption="<span class=\"figure-number\">Figure 12: </span>Inputs and Outputs of the generalized Plant" >}} {{< figure src="figs/general_plant.png" caption="<span class='figure-number'>Figure 12: </span>Inputs and Outputs of the generalized Plant" >}}
<a id="table--tab:notation-general"></a> <a id="table--tab:notation-general"></a>
<div class="table-caption"> <div class="table-caption">
@@ -569,7 +569,7 @@ The obtained controller \\(K\\) and the generalized plant are connected as shown
<a id="figure--fig:general-control-names"></a> <a id="figure--fig:general-control-names"></a>
{{< figure src="figs/general_control_names.png" caption="<span class=\"figure-number\">Figure 13: </span>General Control Configuration" >}} {{< figure src="figs/general_control_names.png" caption="<span class='figure-number'>Figure 13: </span>General Control Configuration" >}}
</div> </div>
@@ -606,7 +606,7 @@ Suppose we want to design \\(K\\) using the general \\(\mathcal{H}\_\infty\\) sy
<a id="figure--fig:classical-feedback-tracking"></a> <a id="figure--fig:classical-feedback-tracking"></a>
{{< figure src="figs/classical_feedback_tracking.png" caption="<span class=\"figure-number\">Figure 14: </span>Classical Feedback Control Architecture (Tracking)" >}} {{< figure src="figs/classical_feedback_tracking.png" caption="<span class='figure-number'>Figure 14: </span>Classical Feedback Control Architecture (Tracking)" >}}
<details><summary>Hint</summary> <details><summary>Hint</summary>
@@ -628,7 +628,7 @@ The obtained generalized plant shown in [Figure 15](#figure--fig:mixed-sensitivi
<a id="figure--fig:mixed-sensitivity-ref-tracking"></a> <a id="figure--fig:mixed-sensitivity-ref-tracking"></a>
{{< figure src="figs/mixed_sensitivity_ref_tracking.png" caption="<span class=\"figure-number\">Figure 15: </span>Generalized plant of the Classical Feedback Control Architecture (Tracking)" >}} {{< figure src="figs/mixed_sensitivity_ref_tracking.png" caption="<span class='figure-number'>Figure 15: </span>Generalized plant of the Classical Feedback Control Architecture (Tracking)" >}}
Using Matlab, the generalized plant can be defined as follows: Using Matlab, the generalized plant can be defined as follows:
@@ -678,7 +678,7 @@ These are summarized in [Table 6](#table--tab:spec-closed-loop-tf).
<a id="figure--fig:gang-of-four-feedback"></a> <a id="figure--fig:gang-of-four-feedback"></a>
{{< figure src="figs/gang_of_four_feedback.png" caption="<span class=\"figure-number\">Figure 16: </span>Simple Feedback Architecture with \\(r\\) the reference signal, \\(\epsilon\\) the tracking error, \\(d\\) a disturbance acting at the plant input \\(u\\), \\(y\\) is the output signal and \\(n\\) the measurement noise" >}} {{< figure src="figs/gang_of_four_feedback.png" caption="<span class='figure-number'>Figure 16: </span>Simple Feedback Architecture with \\(r\\) the reference signal, \\(\epsilon\\) the tracking error, \\(d\\) a disturbance acting at the plant input \\(u\\), \\(y\\) is the output signal and \\(n\\) the measurement noise" >}}
<a id="table--tab:spec-closed-loop-tf"></a> <a id="table--tab:spec-closed-loop-tf"></a>
<div class="table-caption"> <div class="table-caption">
@@ -788,11 +788,11 @@ The comparison of the sensitivity functions shapes and their effect on the step
<a id="figure--fig:sensitivity-shape-effect"></a> <a id="figure--fig:sensitivity-shape-effect"></a>
{{< figure src="figs/sensitivity_shape_effect.png" caption="<span class=\"figure-number\">Figure 17: </span>Sensitivity function magnitude \\(|S(j\omega)|\\) corresponding to the reference controller \\(K\_r(s)\\) and the three modified controllers \\(K\_i(s)\\)" >}} {{< figure src="figs/sensitivity_shape_effect.png" caption="<span class='figure-number'>Figure 17: </span>Sensitivity function magnitude \\(|S(j\omega)|\\) corresponding to the reference controller \\(K\_r(s)\\) and the three modified controllers \\(K\_i(s)\\)" >}}
<a id="figure--fig:sensitivity-shape-effect-step"></a> <a id="figure--fig:sensitivity-shape-effect-step"></a>
{{< figure src="figs/sensitivity_shape_effect_step.png" caption="<span class=\"figure-number\">Figure 18: </span>Step response (response from \\(r\\) to \\(y\\)) for the different controllers" >}} {{< figure src="figs/sensitivity_shape_effect_step.png" caption="<span class='figure-number'>Figure 18: </span>Step response (response from \\(r\\) to \\(y\\)) for the different controllers" >}}
<div class="definition"> <div class="definition">
@@ -815,7 +815,7 @@ From the simple analysis above, we can draw a first estimation of the wanted sha
<a id="figure--fig:h-infinity-spec-S"></a> <a id="figure--fig:h-infinity-spec-S"></a>
{{< figure src="figs/h-infinity-spec-S.png" caption="<span class=\"figure-number\">Figure 19: </span>Typical wanted shape of the Sensitivity transfer function" >}} {{< figure src="figs/h-infinity-spec-S.png" caption="<span class='figure-number'>Figure 19: </span>Typical wanted shape of the Sensitivity transfer function" >}}
</div> </div>
@@ -854,7 +854,7 @@ Or does it? Let's find out.
<a id="figure--fig:phase-gain-margin-model-plant"></a> <a id="figure--fig:phase-gain-margin-model-plant"></a>
{{< figure src="figs/phase_gain_margin_model_plant.png" caption="<span class=\"figure-number\">Figure 20: </span>Bode plot of the obtained Loop Gain \\(L(s)\\)" >}} {{< figure src="figs/phase_gain_margin_model_plant.png" caption="<span class='figure-number'>Figure 20: </span>Bode plot of the obtained Loop Gain \\(L(s)\\)" >}}
Now let's suppose the controller is implemented in practice, and the "real" plant \\(G\_r(s)\\) as a slightly lower damping factor than the one estimated for the model: Now let's suppose the controller is implemented in practice, and the "real" plant \\(G\_r(s)\\) as a slightly lower damping factor than the one estimated for the model:
@@ -877,7 +877,7 @@ isstable(feedback(Gr,Kt))
<a id="figure--fig:phase-gain-margin-real-plant"></a> <a id="figure--fig:phase-gain-margin-real-plant"></a>
{{< figure src="figs/phase_gain_margin_real_plant.png" caption="<span class=\"figure-number\">Figure 21: </span>Bode plots of \\(L(s)\\) (loop gain corresponding the nominal plant) and \\(L\_r(s)\\) (loop gain corresponding to the real plant)" >}} {{< figure src="figs/phase_gain_margin_real_plant.png" caption="<span class='figure-number'>Figure 21: </span>Bode plots of \\(L(s)\\) (loop gain corresponding the nominal plant) and \\(L\_r(s)\\) (loop gain corresponding to the real plant)" >}}
Therefore, even a small change of the plant parameter renders the system unstable even though both the gain margin and the phase margin for the nominal plant are excellent. Therefore, even a small change of the plant parameter renders the system unstable even though both the gain margin and the phase margin for the nominal plant are excellent.
@@ -921,7 +921,7 @@ The gain, phase and module margins are graphically shown to have an idea of what
<a id="figure--fig:module-margin-example"></a> <a id="figure--fig:module-margin-example"></a>
{{< figure src="figs/module_margin_example.png" caption="<span class=\"figure-number\">Figure 22: </span>Nyquist plot with visual indication of the Gain margin \\(\Delta G\\), Phase margin \\(\Delta \phi\\) and Module margin \\(\Delta M\\)" >}} {{< figure src="figs/module_margin_example.png" caption="<span class='figure-number'>Figure 22: </span>Nyquist plot with visual indication of the Gain margin \\(\Delta G\\), Phase margin \\(\Delta \phi\\) and Module margin \\(\Delta M\\)" >}}
</div> </div>
@@ -1024,7 +1024,7 @@ Clearly this does not allow to **shape** the norm of \\(S(j\omega)\\) over all f
<a id="figure--fig:loop-shaping-S-without-W"></a> <a id="figure--fig:loop-shaping-S-without-W"></a>
{{< figure src="figs/loop_shaping_S_without_W.png" caption="<span class=\"figure-number\">Figure 23: </span>Generalized Plant" >}} {{< figure src="figs/loop_shaping_S_without_W.png" caption="<span class='figure-number'>Figure 23: </span>Generalized Plant" >}}
<div class="important"> <div class="important">
@@ -1052,7 +1052,7 @@ Therefore, the choice of the weighting function \\(W\_s(s)\\) is very important:
<a id="figure--fig:loop-shaping-S-with-W"></a> <a id="figure--fig:loop-shaping-S-with-W"></a>
{{< figure src="figs/loop_shaping_S_with_W.png" caption="<span class=\"figure-number\">Figure 24: </span>Weighted Generalized Plant" >}} {{< figure src="figs/loop_shaping_S_with_W.png" caption="<span class='figure-number'>Figure 24: </span>Weighted Generalized Plant" >}}
<div class="exercice"> <div class="exercice">
@@ -1136,7 +1136,7 @@ Ws = makeweight(1e2, [2*pi*10, 1], 1/2);
<a id="figure--fig:first-order-weight"></a> <a id="figure--fig:first-order-weight"></a>
{{< figure src="figs/first_order_weight.png" caption="<span class=\"figure-number\">Figure 25: </span>Obtained Magnitude of the Weighting Function" >}} {{< figure src="figs/first_order_weight.png" caption="<span class='figure-number'>Figure 25: </span>Obtained Magnitude of the Weighting Function" >}}
</div> </div>
@@ -1198,7 +1198,7 @@ The obtained shapes are shown in [Figure 26](#figure--fig:high-order-weight).
<a id="figure--fig:high-order-weight"></a> <a id="figure--fig:high-order-weight"></a>
{{< figure src="figs/high_order_weight.png" caption="<span class=\"figure-number\">Figure 26: </span>Higher order weights using Equation " >}} {{< figure src="figs/high_order_weight.png" caption="<span class='figure-number'>Figure 26: </span>Higher order weights using Equation " >}}
</div> </div>
@@ -1232,7 +1232,7 @@ Remember that the wanted upper bound of the sensitivity function is defined by t
<a id="figure--fig:h-infinity-spec-S-bis"></a> <a id="figure--fig:h-infinity-spec-S-bis"></a>
{{< figure src="figs/h-infinity-spec-S.png" caption="<span class=\"figure-number\">Figure 27: </span>Typical wanted shape of the Sensitivity transfer function" >}} {{< figure src="figs/h-infinity-spec-S.png" caption="<span class='figure-number'>Figure 27: </span>Typical wanted shape of the Sensitivity transfer function" >}}
</details> </details>
@@ -1318,7 +1318,7 @@ It just means that at some frequency, one of the closed-loop transfer functions
<a id="figure--fig:results-sensitivity-hinf"></a> <a id="figure--fig:results-sensitivity-hinf"></a>
{{< figure src="figs/results_sensitivity_hinf.png" caption="<span class=\"figure-number\">Figure 28: </span>Weighting function and obtained closed-loop sensitivity" >}} {{< figure src="figs/results_sensitivity_hinf.png" caption="<span class='figure-number'>Figure 28: </span>Weighting function and obtained closed-loop sensitivity" >}}
### Shaping multiple closed-loop transfer functions - Limitations {#sec:shaping_multiple_tf} ### Shaping multiple closed-loop transfer functions - Limitations {#sec:shaping_multiple_tf}
@@ -1359,7 +1359,7 @@ Some of them are described below for reference, it is a good exercise to try to
<a id="figure--fig:general-conf-shaping-S-KS"></a> <a id="figure--fig:general-conf-shaping-S-KS"></a>
{{< figure src="figs/general_conf_shaping_S_KS.png" caption="<span class=\"figure-number\">Figure 29: </span>Generalized Plant to shape \\(S\\) and \\(KS\\)" >}} {{< figure src="figs/general_conf_shaping_S_KS.png" caption="<span class='figure-number'>Figure 29: </span>Generalized Plant to shape \\(S\\) and \\(KS\\)" >}}
Weighting functions: Weighting functions:
@@ -1381,7 +1381,7 @@ Pw = blkdiag(W1, W2, 1)*P;
<a id="figure--fig:general-conf-shaping-S-T"></a> <a id="figure--fig:general-conf-shaping-S-T"></a>
{{< figure src="figs/general_conf_shaping_S_T.png" caption="<span class=\"figure-number\">Figure 30: </span>Generalized Plant to shape \\(S\\) and \\(T\\)" >}} {{< figure src="figs/general_conf_shaping_S_T.png" caption="<span class='figure-number'>Figure 30: </span>Generalized Plant to shape \\(S\\) and \\(T\\)" >}}
Weighting functions: Weighting functions:
@@ -1403,7 +1403,7 @@ Pw = blkdiag(W1, W2, 1)*P;
<a id="figure--fig:general-conf-shaping-S-GS"></a> <a id="figure--fig:general-conf-shaping-S-GS"></a>
{{< figure src="figs/general_conf_shaping_S_GS.png" caption="<span class=\"figure-number\">Figure 31: </span>Generalized Plant to shape \\(S\\) and \\(GS\\)" >}} {{< figure src="figs/general_conf_shaping_S_GS.png" caption="<span class='figure-number'>Figure 31: </span>Generalized Plant to shape \\(S\\) and \\(GS\\)" >}}
Weighting functions: Weighting functions:
@@ -1425,7 +1425,7 @@ Pw = blkdiag(W1, W2, 1)*P;
<a id="figure--fig:general-conf-shaping-S-T-KS"></a> <a id="figure--fig:general-conf-shaping-S-T-KS"></a>
{{< figure src="figs/general_conf_shaping_S_T_KS.png" caption="<span class=\"figure-number\">Figure 32: </span>Generalized Plant to shape \\(S\\), \\(T\\) and \\(KS\\)" >}} {{< figure src="figs/general_conf_shaping_S_T_KS.png" caption="<span class='figure-number'>Figure 32: </span>Generalized Plant to shape \\(S\\), \\(T\\) and \\(KS\\)" >}}
Weighting functions: Weighting functions:
@@ -1449,7 +1449,7 @@ Pw = blkdiag(W1, W2, W3, 1)*P;
<a id="figure--fig:general-conf-shaping-S-T-GS"></a> <a id="figure--fig:general-conf-shaping-S-T-GS"></a>
{{< figure src="figs/general_conf_shaping_S_T_GS.png" caption="<span class=\"figure-number\">Figure 33: </span>Generalized Plant to shape \\(S\\), \\(T\\) and \\(GS\\)" >}} {{< figure src="figs/general_conf_shaping_S_T_GS.png" caption="<span class='figure-number'>Figure 33: </span>Generalized Plant to shape \\(S\\), \\(T\\) and \\(GS\\)" >}}
Weighting functions: Weighting functions:
@@ -1473,7 +1473,7 @@ Pw = blkdiag(W1, W2, W3, 1)*P;
<a id="figure--fig:general-conf-shaping-S-T-KS-GS"></a> <a id="figure--fig:general-conf-shaping-S-T-KS-GS"></a>
{{< figure src="figs/general_conf_shaping_S_T_KS_GS.png" caption="<span class=\"figure-number\">Figure 34: </span>Generalized Plant to shape \\(S\\), \\(T\\), \\(KS\\) and \\(GS\\)" >}} {{< figure src="figs/general_conf_shaping_S_T_KS_GS.png" caption="<span class='figure-number'>Figure 34: </span>Generalized Plant to shape \\(S\\), \\(T\\), \\(KS\\) and \\(GS\\)" >}}
Weighting functions: Weighting functions:
@@ -1563,7 +1563,7 @@ These regions are summarized in [Figure 35](#figure--fig:h-infinity-4-blocs-cons
<a id="figure--fig:h-infinity-4-blocs-constrains"></a> <a id="figure--fig:h-infinity-4-blocs-constrains"></a>
{{< figure src="figs/h-infinity-4-blocs-constrains.png" caption="<span class=\"figure-number\">Figure 35: </span>Shaping the Gang of Four. Blue regions indicate that the transfer function can be shaped using \\(K\\). Red regions indicate this is not the case" >}} {{< figure src="figs/h-infinity-4-blocs-constrains.png" caption="<span class='figure-number'>Figure 35: </span>Shaping the Gang of Four. Blue regions indicate that the transfer function can be shaped using \\(K\\). Red regions indicate this is not the case" >}}
<div class="warning"> <div class="warning">
@@ -1597,7 +1597,7 @@ Let's consider our usual _test system_ shown in [Figure 36](#figure--fig:ex-test
<a id="figure--fig:ex-test-system"></a> <a id="figure--fig:ex-test-system"></a>
{{< figure src="figs/ex_test_system.png" caption="<span class=\"figure-number\">Figure 36: </span>Test System consisting of a payload with a mass \\(m\\) on top of an active system with a stiffness \\(k\\), damping \\(c\\) and an actuator. A feedback controller \\(K(s)\\) is added to position / isolate the payload." >}} {{< figure src="figs/ex_test_system.png" caption="<span class='figure-number'>Figure 36: </span>Test System consisting of a payload with a mass \\(m\\) on top of an active system with a stiffness \\(k\\), damping \\(c\\) and an actuator. A feedback controller \\(K(s)\\) is added to position / isolate the payload." >}}
<div class="important"> <div class="important">
@@ -1631,7 +1631,7 @@ Let's first convert the system of [Figure 36](#figure--fig:ex-test-system) into
<a id="figure--fig:classical-feedback-test-system-bis"></a> <a id="figure--fig:classical-feedback-test-system-bis"></a>
{{< figure src="figs/ex_test_system_feedback.png" caption="<span class=\"figure-number\">Figure 37: </span>Block diagram corresponding to the example system" >}} {{< figure src="figs/ex_test_system_feedback.png" caption="<span class='figure-number'>Figure 37: </span>Block diagram corresponding to the example system" >}}
The two transfer functions present in the system are derived and defined below: The two transfer functions present in the system are derived and defined below:
@@ -1671,13 +1671,13 @@ d(t>0.3) = 5e-6;
<a id="figure--fig:ex-inputs-signals"></a> <a id="figure--fig:ex-inputs-signals"></a>
{{< figure src="figs/ex_inputs_signals.png" caption="<span class=\"figure-number\">Figure 38: </span>Time domain inputs signals" >}} {{< figure src="figs/ex_inputs_signals.png" caption="<span class='figure-number'>Figure 38: </span>Time domain inputs signals" >}}
We also define the generalized plant corresponding to the system and that will be used for time domain simulations ([Figure 39](#figure--fig:ex-general-plant-sim)). We also define the generalized plant corresponding to the system and that will be used for time domain simulations ([Figure 39](#figure--fig:ex-general-plant-sim)).
<a id="figure--fig:ex-general-plant-sim"></a> <a id="figure--fig:ex-general-plant-sim"></a>
{{< figure src="figs/ex_general_plant_sim.png" caption="<span class=\"figure-number\">Figure 39: </span>Generalized plant that will be used for simulations" >}} {{< figure src="figs/ex_general_plant_sim.png" caption="<span class='figure-number'>Figure 39: </span>Generalized plant that will be used for simulations" >}}
The Generalized plant of [Figure 39](#figure--fig:ex-general-plant-sim) is defined on Matlab as follows: The Generalized plant of [Figure 39](#figure--fig:ex-general-plant-sim) is defined on Matlab as follows:
@@ -1754,7 +1754,7 @@ P = [1 -1
<a id="figure--fig:ex-general-plant"></a> <a id="figure--fig:ex-general-plant"></a>
{{< figure src="figs/ex_general_plant.png" caption="<span class=\"figure-number\">Figure 40: </span>Generalized plant chosen for the shaping of \\(S\\), \\(GS\\) \\(T\\)" >}} {{< figure src="figs/ex_general_plant.png" caption="<span class='figure-number'>Figure 40: </span>Generalized plant chosen for the shaping of \\(S\\), \\(GS\\) \\(T\\)" >}}
However, to performed the \\(\mathcal{H}\_\infty\\) loop shaping, we have to include **weighting function** to the Generalized plant. However, to performed the \\(\mathcal{H}\_\infty\\) loop shaping, we have to include **weighting function** to the Generalized plant.
We obtain the **weighted generalized plant** in [Figure 41](#figure--fig:ex-general-weighted-plant), and that is computed using Matlab as follows: We obtain the **weighted generalized plant** in [Figure 41](#figure--fig:ex-general-weighted-plant), and that is computed using Matlab as follows:
@@ -1765,7 +1765,7 @@ Pw = blkdiag(W1, W2, W3, 1)*P;
<a id="figure--fig:ex-general-weighted-plant"></a> <a id="figure--fig:ex-general-weighted-plant"></a>
{{< figure src="figs/ex_general_weighted_plant.png" caption="<span class=\"figure-number\">Figure 41: </span>Generalized weighted plant used for the \\(\mathcal{H}\_\infty\\) Synthesis" >}} {{< figure src="figs/ex_general_weighted_plant.png" caption="<span class='figure-number'>Figure 41: </span>Generalized weighted plant used for the \\(\mathcal{H}\_\infty\\) Synthesis" >}}
Finlay, performing the \\(\mathcal{H}\_\infty\\) Shaping of \\(S\\), \\(GS\\) and \\(T\\) is as simple as ruining the `hinfsyn` command: Finlay, performing the \\(\mathcal{H}\_\infty\\) Shaping of \\(S\\), \\(GS\\) and \\(T\\) is as simple as ruining the `hinfsyn` command:
@@ -1825,7 +1825,7 @@ Best performance (actual): 0.502
<a id="figure--fig:ex-results-1"></a> <a id="figure--fig:ex-results-1"></a>
{{< figure src="figs/ex_results_1.png" caption="<span class=\"figure-number\">Figure 42: </span>Obtained Shape Closed-Loop transfer functions (dashed black lines indicate inverse magnitude of the weighting functions)" >}} {{< figure src="figs/ex_results_1.png" caption="<span class='figure-number'>Figure 42: </span>Obtained Shape Closed-Loop transfer functions (dashed black lines indicate inverse magnitude of the weighting functions)" >}}
Time domain simulation is then performed and the obtained output displacement and control inputs are shown in [Figure 43](#figure--fig:ex-time-domain-1). Time domain simulation is then performed and the obtained output displacement and control inputs are shown in [Figure 43](#figure--fig:ex-time-domain-1).
@@ -1837,7 +1837,7 @@ We can see:
<a id="figure--fig:ex-time-domain-1"></a> <a id="figure--fig:ex-time-domain-1"></a>
{{< figure src="figs/ex_time_domain_1.png" caption="<span class=\"figure-number\">Figure 43: </span>Time domain simulation results" >}} {{< figure src="figs/ex_time_domain_1.png" caption="<span class='figure-number'>Figure 43: </span>Time domain simulation results" >}}
Remember that in order to follow ramp inputs, the sensitivity function should have a slope of +40dB/dec at low frequency ([Table 9](#table--tab:usual-shaping-gang-four)). Remember that in order to follow ramp inputs, the sensitivity function should have a slope of +40dB/dec at low frequency ([Table 9](#table--tab:usual-shaping-gang-four)).
@@ -1857,11 +1857,11 @@ The time domain signals are shown in [Figure 45](#figure--fig:ex-time-domain-1b)
<a id="figure--fig:ex-results-1b"></a> <a id="figure--fig:ex-results-1b"></a>
{{< figure src="figs/ex_results_1b.png" caption="<span class=\"figure-number\">Figure 44: </span>Obtained Shape Closed-Loop transfer functions" >}} {{< figure src="figs/ex_results_1b.png" caption="<span class='figure-number'>Figure 44: </span>Obtained Shape Closed-Loop transfer functions" >}}
<a id="figure--fig:ex-time-domain-1b"></a> <a id="figure--fig:ex-time-domain-1b"></a>
{{< figure src="figs/ex_time_domain_1b.png" caption="<span class=\"figure-number\">Figure 45: </span>Time domain simulation results" >}} {{< figure src="figs/ex_time_domain_1b.png" caption="<span class='figure-number'>Figure 45: </span>Time domain simulation results" >}}
### Step 2 - Shaping of \\(GS\\) {#sec:ex_shaping_GS} ### Step 2 - Shaping of \\(GS\\) {#sec:ex_shaping_GS}
@@ -1882,14 +1882,14 @@ The \\(\mathcal{H}\_\infty\\) Synthesis is performed and the obtained closed-loo
<a id="figure--fig:ex-results-2"></a> <a id="figure--fig:ex-results-2"></a>
{{< figure src="figs/ex_results_2.png" caption="<span class=\"figure-number\">Figure 46: </span>Obtained Shape Closed-Loop transfer functions" >}} {{< figure src="figs/ex_results_2.png" caption="<span class='figure-number'>Figure 46: </span>Obtained Shape Closed-Loop transfer functions" >}}
Time domain simulation results are shown in [Figure 47](#figure--fig:ex-time-domain-2). Time domain simulation results are shown in [Figure 47](#figure--fig:ex-time-domain-2).
If is shown that indeed, the disturbance rejection performance are much better and only very small oscillation is obtained. If is shown that indeed, the disturbance rejection performance are much better and only very small oscillation is obtained.
<a id="figure--fig:ex-time-domain-2"></a> <a id="figure--fig:ex-time-domain-2"></a>
{{< figure src="figs/ex_time_domain_2.png" caption="<span class=\"figure-number\">Figure 47: </span>Time domain simulation results" >}} {{< figure src="figs/ex_time_domain_2.png" caption="<span class='figure-number'>Figure 47: </span>Time domain simulation results" >}}
### Step 3 - Shaping of \\(T\\) {#sec:ex_shaping_T} ### Step 3 - Shaping of \\(T\\) {#sec:ex_shaping_T}
@@ -1918,7 +1918,7 @@ The obtained closed-loop transfer functions are shown in [Figure 48](#figure--fi
<a id="figure--fig:ex-results-3"></a> <a id="figure--fig:ex-results-3"></a>
{{< figure src="figs/ex_results_3.png" caption="<span class=\"figure-number\">Figure 48: </span>Obtained Shape Closed-Loop transfer functions" >}} {{< figure src="figs/ex_results_3.png" caption="<span class='figure-number'>Figure 48: </span>Obtained Shape Closed-Loop transfer functions" >}}
The time domain simulation signals are shown in [Figure 49](#figure--fig:ex-time-domain-3). The time domain simulation signals are shown in [Figure 49](#figure--fig:ex-time-domain-3).
We can indeed see a slightly less good disturbance rejection. We can indeed see a slightly less good disturbance rejection.
@@ -1927,11 +1927,11 @@ This can be seen when zooming on the output signal in [Figure 50](#figure--fig:e
<a id="figure--fig:ex-time-domain-3"></a> <a id="figure--fig:ex-time-domain-3"></a>
{{< figure src="figs/ex_time_domain_3.png" caption="<span class=\"figure-number\">Figure 49: </span>Time domain simulation results" >}} {{< figure src="figs/ex_time_domain_3.png" caption="<span class='figure-number'>Figure 49: </span>Time domain simulation results" >}}
<a id="figure--fig:ex-time-domaim-3-zoom"></a> <a id="figure--fig:ex-time-domaim-3-zoom"></a>
{{< figure src="figs/ex_time_domaim_3_zoom.png" caption="<span class=\"figure-number\">Figure 50: </span>Zoom on the output signal" >}} {{< figure src="figs/ex_time_domaim_3_zoom.png" caption="<span class='figure-number'>Figure 50: </span>Zoom on the output signal" >}}
### Conclusion and Discussion {#conclusion-and-discussion} ### Conclusion and Discussion {#conclusion-and-discussion}
@@ -11,9 +11,9 @@ One use of complementary filter is described below:
> The basic idea of a complementary filter involves taking two or more sensors, filtering out unreliable frequencies for each sensor, and combining the filtered outputs to get a better estimate throughout the entire bandwidth of the system. > The basic idea of a complementary filter involves taking two or more sensors, filtering out unreliable frequencies for each sensor, and combining the filtered outputs to get a better estimate throughout the entire bandwidth of the system.
> To achieve this, the sensors included in the filter should complement one another by performing better over specific parts of the system bandwidth. > To achieve this, the sensors included in the filter should complement one another by performing better over specific parts of the system bandwidth.
- in section , the \\(\mathcal{H}\_\infty\\) synthesis is used for generating two complementary filters - in section [H-Infinity synthesis of complementary filters](#sec:h_inf_synthesis_complementary_filters), the \\(\mathcal{H}\_\infty\\) synthesis is used for generating two complementary filters
- in section , a method using the \\(\mathcal{H}\_\infty\\) synthesis is proposed to shape three of more complementary filters - in section [Generating 3 complementary filters](#sec:three_comp_filters), a method using the \\(\mathcal{H}\_\infty\\) synthesis is proposed to shape three of more complementary filters
- in section , the \\(\mathcal{H}\_\infty\\) synthesis is used and compared with FIR complementary filters used for LIGO - in section [Try to implement complementary filters for LIGO](#sec:comp_filters_ligo), the \\(\mathcal{H}\_\infty\\) synthesis is used and compared with FIR complementary filters used for LIGO
<div class="note"> <div class="note">
@@ -22,9 +22,7 @@ Add the Matlab code use to obtain the results presented in the paper are accessi
</div> </div>
## H-Infinity synthesis of complementary filters {#h-infinity-synthesis-of-complementary-filters} ## H-Infinity synthesis of complementary filters {#sec:h_inf_synthesis_complementary_filters}
<span class="org-target" id="org-target--sec-h-inf-synthesis-complementary-filters"></span>
<div class="note"> <div class="note">
@@ -38,13 +36,13 @@ The Matlab file corresponding to this section is accessible [here](https://git.t
We here synthesize two complementary filters using the \\(\mathcal{H}\_\infty\\) synthesis. We here synthesize two complementary filters using the \\(\mathcal{H}\_\infty\\) synthesis.
The goal is to specify upper bounds on the norms of the two complementary filters \\(H\_1(s)\\) and \\(H\_2(s)\\) while ensuring their complementary property (\\(H\_1(s) + H\_2(s) = 1\\)). The goal is to specify upper bounds on the norms of the two complementary filters \\(H\_1(s)\\) and \\(H\_2(s)\\) while ensuring their complementary property (\\(H\_1(s) + H\_2(s) = 1\\)).
In order to do so, we use the generalized plant shown on figure [Figure 1](#figure--fig:h-infinity-robst-fusion) where \\(W\_1(s)\\) and \\(W\_2(s)\\) are weighting transfer functions that will be used to shape \\(H\_1(s)\\) and \\(H\_2(s)\\) respectively. In order to do so, we use the generalized plant shown on [Figure 1](#figure--fig:h-infinity-robst-fusion) where \\(W\_1(s)\\) and \\(W\_2(s)\\) are weighting transfer functions that will be used to shape \\(H\_1(s)\\) and \\(H\_2(s)\\) respectively.
<a id="figure--fig:h-infinity-robst-fusion"></a> <a id="figure--fig:h-infinity-robst-fusion"></a>
{{< figure src="h_infinity_robust_fusion.png" caption="<span class='figure-number'>Figure 1: </span>\\(\mathcal{H}\_\infty\\) synthesis of the complementary filters" >}} {{< figure src="h_infinity_robust_fusion.png" caption="<span class='figure-number'>Figure 1: </span>\\(\mathcal{H}\_\infty\\) synthesis of the complementary filters" >}}
The \\(\mathcal{H}\_\infty\\) synthesis applied on this generalized plant will give a transfer function \\(H\_2\\) (figure [Figure 1](#figure--fig:h-infinity-robst-fusion)) such that the \\(\mathcal{H}\_\infty\\) norm of the transfer function from \\(w\\) to \\([z\_1,\ z\_2]\\) is less than one: The \\(\mathcal{H}\_\infty\\) synthesis applied on this generalized plant will give a transfer function \\(H\_2\\) ([Figure 1](#figure--fig:h-infinity-robst-fusion)) such that the \\(\mathcal{H}\_\infty\\) norm of the transfer function from \\(w\\) to \\([z\_1,\ z\_2]\\) is less than one:
\\[ \left\\| \begin{array}{c} (1 - H\_2(s)) W\_1(s) \\\ H\_2(s) W\_2(s) \end{array} \right\\|\_\infty < 1 \\] \\[ \left\\| \begin{array}{c} (1 - H\_2(s)) W\_1(s) \\\ H\_2(s) W\_2(s) \end{array} \right\\|\_\infty < 1 \\]
Thus, if the above condition is verified, we can define \\(H\_1(s) = 1 - H\_2(s)\\) and we have that: Thus, if the above condition is verified, we can define \\(H\_1(s) = 1 - H\_2(s)\\) and we have that:
@@ -78,7 +76,7 @@ The parameters permits to specify:
- the absolute gain at \\(\omega\_0\\): \\(G\_c = |W(j\omega\_0)|\\) - the absolute gain at \\(\omega\_0\\): \\(G\_c = |W(j\omega\_0)|\\)
- the absolute slope between high and low frequency: \\(n\\) - the absolute slope between high and low frequency: \\(n\\)
The general shape of a weighting function generated using the formula is shown in figure [Figure 2](#figure--fig:weight-formula). The general shape of a weighting function generated using the formula is shown in [Figure 2](#figure--fig:weight-formula).
<a id="figure--fig:weight-formula"></a> <a id="figure--fig:weight-formula"></a>
@@ -146,7 +144,7 @@ Test bounds: 0.1000 < gamma <= 1050.0000
Gamma value achieved: 1.0036 Gamma value achieved: 1.0036
``` ```
We then define the high pass filter \\(H\_1 = 1 - H\_2\\). The bode plot of both \\(H\_1\\) and \\(H\_2\\) is shown on figure [Figure 4](#figure--fig:hinf-filters-results). We then define the high pass filter \\(H\_1 = 1 - H\_2\\). The bode plot of both \\(H\_1\\) and \\(H\_2\\) is shown on [Figure 4](#figure--fig:hinf-filters-results).
```matlab ```matlab
H1 = 1 - H2; H1 = 1 - H2;
@@ -155,16 +153,14 @@ We then define the high pass filter \\(H\_1 = 1 - H\_2\\). The bode plot of both
### Obtained Complementary Filters {#obtained-complementary-filters} ### Obtained Complementary Filters {#obtained-complementary-filters}
The obtained complementary filters are shown on figure [Figure 4](#figure--fig:hinf-filters-results). The obtained complementary filters are shown on [Figure 4](#figure--fig:hinf-filters-results).
<a id="figure--fig:hinf-filters-results"></a> <a id="figure--fig:hinf-filters-results"></a>
{{< figure src="figs/hinf_filters_results.png" caption="<span class='figure-number'>Figure 4: </span>Obtained complementary filters using \\(\mathcal{H}\_\infty\\) synthesis" >}} {{< figure src="figs/hinf_filters_results.png" caption="<span class='figure-number'>Figure 4: </span>Obtained complementary filters using \\(\mathcal{H}\_\infty\\) synthesis" >}}
## Generating 3 complementary filters {#generating-3-complementary-filters} ## Generating 3 complementary filters {#sec:three_comp_filters}
<span class="org-target" id="org-target--sec-three-comp-filters"></span>
<div class="note"> <div class="note">
@@ -184,7 +180,7 @@ We want:
& H\_1(s) + H\_2(s) + H\_3(s) = 1 & H\_1(s) + H\_2(s) + H\_3(s) = 1
\end{align\*} \end{align\*}
For that, we use the \\(\mathcal{H}\_\infty\\) synthesis with the architecture shown on figure [Figure 5](#figure--fig:comp-filter-three-hinf). For that, we use the \\(\mathcal{H}\_\infty\\) synthesis with the architecture shown on [Figure 5](#figure--fig:comp-filter-three-hinf).
<a id="figure--fig:comp-filter-three-hinf"></a> <a id="figure--fig:comp-filter-three-hinf"></a>
@@ -286,9 +282,7 @@ The obtained filters are:
{{< figure src="figs/three_complementary_filters_results.png" caption="<span class='figure-number'>Figure 7: </span>The three complementary filters obtained after \\(\mathcal{H}\_\infty\\) synthesis" >}} {{< figure src="figs/three_complementary_filters_results.png" caption="<span class='figure-number'>Figure 7: </span>The three complementary filters obtained after \\(\mathcal{H}\_\infty\\) synthesis" >}}
## Try to implement complementary filters for LIGO {#try-to-implement-complementary-filters-for-ligo} ## Try to implement complementary filters for LIGO {#sec:comp_filters_ligo}
<span class="org-target" id="org-target--sec-comp-filters-ligo"></span>
<div class="note"> <div class="note">
@@ -310,7 +304,7 @@ The specifications for the filters are:
3. Between \\(0.04\text{ Hz}\\) and \\(0.1\text{ Hz}\\), the magnitude of the transfer function should be less than 3 3. Between \\(0.04\text{ Hz}\\) and \\(0.1\text{ Hz}\\), the magnitude of the transfer function should be less than 3
4. Above \\(0.1\text{ Hz}\\), the maximum of the magnitude of the complement filter should be as close to zero as possible. In our system, we would like to have the magnitude of the complementary filter to be less than \\(0.1\\). As the filters obtained in (<a href="#citeproc_bib_item_1">Hua 2005</a>) have a magnitude of \\(0.045\\), we will set that as our requirement 4. Above \\(0.1\text{ Hz}\\), the maximum of the magnitude of the complement filter should be as close to zero as possible. In our system, we would like to have the magnitude of the complementary filter to be less than \\(0.1\\). As the filters obtained in (<a href="#citeproc_bib_item_1">Hua 2005</a>) have a magnitude of \\(0.045\\), we will set that as our requirement
The specifications are translated in upper bounds of the complementary filters are shown on figure [Figure 8](#figure--fig:ligo-specifications). The specifications are translated in upper bounds of the complementary filters are shown on [Figure 8](#figure--fig:ligo-specifications).
<a id="figure--fig:ligo-specifications"></a> <a id="figure--fig:ligo-specifications"></a>
@@ -463,7 +457,7 @@ Optimal value (cvx_optval): -0.0433341
h = y(2:end); h = y(2:end);
``` ```
Finally, we compute the filter response over the frequency vector defined and the result is shown on figure [Figure 9](#figure--fig:fir-filter-ligo) which is very close to the filters obtain in (<a href="#citeproc_bib_item_1">Hua 2005</a>). Finally, we compute the filter response over the frequency vector defined and the result is shown on [Figure 9](#figure--fig:fir-filter-ligo) which is very close to the filters obtain in (<a href="#citeproc_bib_item_1">Hua 2005</a>).
```matlab ```matlab
w = [w1 w2 w3 w4]; w = [w1 w2 w3 w4];
@@ -485,7 +479,7 @@ Here are the requirements on the filters:
- to be as close as possible to the specified upper bounds - to be as close as possible to the specified upper bounds
- stable minimum phase - stable minimum phase
The bode plot of the weights is shown on figure [Figure 10](#figure--fig:ligo-weights). The bode plot of the weights is shown on [Figure 10](#figure--fig:ligo-weights).
<a id="figure--fig:ligo-weights"></a> <a id="figure--fig:ligo-weights"></a>
@@ -494,7 +488,7 @@ The bode plot of the weights is shown on figure [Figure 10](#figure--fig:ligo-we
### H-Infinity Synthesis {#h-infinity-synthesis} ### H-Infinity Synthesis {#h-infinity-synthesis}
We define the generalized plant as shown on figure [Figure 1](#figure--fig:h-infinity-robst-fusion). We define the generalized plant as shown on [Figure 1](#figure--fig:h-infinity-robst-fusion).
```matlab ```matlab
P = [0 wL; P = [0 wL;
@@ -544,7 +538,7 @@ The size of the filters is shown below.
State-space model with 1 outputs, 1 inputs, and 27 states. State-space model with 1 outputs, 1 inputs, and 27 states.
``` ```
The bode plot of the obtained filters as shown on figure [Figure 11](#figure--fig:hinf-synthesis-ligo-results). The bode plot of the obtained filters as shown on [Figure 11](#figure--fig:hinf-synthesis-ligo-results).
<a id="figure--fig:hinf-synthesis-ligo-results"></a> <a id="figure--fig:hinf-synthesis-ligo-results"></a>
@@ -553,7 +547,7 @@ The bode plot of the obtained filters as shown on figure [Figure 11](#figure--fi
### Compare FIR and H-Infinity Filters {#compare-fir-and-h-infinity-filters} ### Compare FIR and H-Infinity Filters {#compare-fir-and-h-infinity-filters}
Let's now compare the FIR filters designed in (<a href="#citeproc_bib_item_1">Hua 2005</a>) and the one obtained with the \\(\mathcal{H}\_\infty\\) synthesis on figure [Figure 12](#figure--fig:comp-fir-ligo-hinf). Let's now compare the FIR filters designed in (<a href="#citeproc_bib_item_1">Hua 2005</a>) and the one obtained with the \\(\mathcal{H}\_\infty\\) synthesis on [Figure 12](#figure--fig:comp-fir-ligo-hinf).
<a id="figure--fig:comp-fir-ligo-hinf"></a> <a id="figure--fig:comp-fir-ligo-hinf"></a>
@@ -4,20 +4,16 @@ author = ["Dehaeze Thomas"]
draft = false draft = false
+++ +++
<hr>
<p>This report is also available as a <a href="./index.pdf">pdf</a>.</p>
<hr>
This document gathers the Matlab code used to for the conference paper (<a href="#citeproc_bib_item_1">Dehaeze and Collette 2020</a>) and the journal paper (<a href="#citeproc_bib_item_3">Dehaeze and Collette 2021</a>). This document gathers the Matlab code used to for the conference paper (<a href="#citeproc_bib_item_1">Dehaeze and Collette 2020</a>) and the journal paper (<a href="#citeproc_bib_item_3">Dehaeze and Collette 2021</a>).
It is structured in several sections: It is structured in several sections:
- Section : presents a simple model of a rotating suspended platform that will be used throughout this study. - Section [System Description and Analysis](#sec:system_description): presents a simple model of a rotating suspended platform that will be used throughout this study.
- Section : explains how the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation. - Section [Problem with pure Integral Force Feedback](#sec:iff_pure_int): explains how the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation.
- Section : suggests a simple modification of the control law such that damping can be added to the suspension modes in a robust way. - Section [Integral Force Feedback with an High Pass Filter](#sec:iff_pseudo_int): suggests a simple modification of the control law such that damping can be added to the suspension modes in a robust way.
- Section : proposes to add springs in parallel with the force sensors to regain the unconditional stability of IFF. - Section [IFF with a stiffness in parallel with the force sensor](#sec:iff_parallel_stiffness): proposes to add springs in parallel with the force sensors to regain the unconditional stability of IFF.
- Section : compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior. - Section [Comparison](#sec:comparison): compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior.
- Section : contains the notations used for both the Matlab code and the paper - Section [Notations](#sec:notations): contains the notations used for both the Matlab code and the paper
The matlab code is accessible on [Zonodo](https://zenodo.org/record/3894343) and [Github](https://github.com/tdehaeze/dehaeze20_contr_stewa_platf) (<a href="#citeproc_bib_item_2">Dehaeze 2020</a>). It can also be download as a `.zip` file [here](https://git.tdehaeze.xyz/tdehaeze/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb/archive/master.zip). The matlab code is accessible on [Zonodo](https://zenodo.org/record/3894343) and [Github](https://github.com/tdehaeze/dehaeze20_contr_stewa_platf) (<a href="#citeproc_bib_item_2">Dehaeze 2020</a>). It can also be download as a `.zip` file [here](https://git.tdehaeze.xyz/tdehaeze/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb/archive/master.zip).
@@ -29,22 +25,20 @@ To run the Matlab code, go in the `matlab` directory and run the following Matla
</div> </div>
| Sections | Matlab File | | Sections | Matlab File |
|----------|----------------------------| |-----------------------------------------------------------------------------------------------|----------------------------|
| Section | `s1_system_description.m` | | Section [System Description and Analysis](#sec:system_description) | `s1_system_description.m` |
| Section | `s2_iff_pure_int.m` | | Section [Problem with pure Integral Force Feedback](#sec:iff_pure_int) | `s2_iff_pure_int.m` |
| Section | `s3_iff_hpf.m` | | Section [Integral Force Feedback with an High Pass Filter](#sec:iff_pseudo_int) | `s3_iff_hpf.m` |
| Section | `s4_iff_kp.m` | | Section [IFF with a stiffness in parallel with the force sensor](#sec:iff_parallel_stiffness) | `s4_iff_kp.m` |
| Section | `s5_act_damp_comparison.m` | | Section [Comparison](#sec:comparison) | `s5_act_damp_comparison.m` |
## System Description and Analysis {#system-description-and-analysis} ## System Description and Analysis {#sec:system_description}
<span class="org-target" id="org-target--sec-system-description"></span>
### System description {#system-description} ### System description {#system-description}
The system consists of one 2 degree of freedom translation stage on top of a spindle (figure [Figure 1](#figure--fig:system)). The system consists of one 2 degree of freedom translation stage on top of a spindle ([Figure 1](#figure--fig:system)).
<a id="figure--fig:system"></a> <a id="figure--fig:system"></a>
@@ -56,7 +50,7 @@ As the translation stage is rotating around the Z axis due to the spindle, the f
### Equations {#equations} ### Equations {#equations}
Based on the Figure [Figure 1](#figure--fig:system), the equations of motions are: Based on the [Figure 1](#figure--fig:system), the equations of motions are:
<div class="important"> <div class="important">
@@ -161,7 +155,7 @@ The same transfer function from \\([F\_u, F\_v]\\) to \\([d\_u, d\_v]\\) is writ
-2*W*s/(w0^2), (s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)]; -2*W*s/(w0^2), (s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)];
``` ```
Both transfer functions are compared in Figure [Figure 4](#figure--fig:plant-simscape-analytical) and are found to perfectly match. Both transfer functions are compared in [Figure 4](#figure--fig:plant-simscape-analytical) and are found to perfectly match.
<a id="figure--fig:plant-simscape-analytical"></a> <a id="figure--fig:plant-simscape-analytical"></a>
@@ -199,11 +193,9 @@ They are compared in Figures [Figure 5](#figure--fig:plant-compare-rotating-spee
{{< figure src="figs/plant_compare_rotating_speed_coupling.png" caption="<span class='figure-number'>Figure 6: </span>Comparison of the transfer functions from \\([F\_u, F\_v]\\) to \\([d\_u, d\_v]\\) for several rotating speed - Coupling Terms" >}} {{< figure src="figs/plant_compare_rotating_speed_coupling.png" caption="<span class='figure-number'>Figure 6: </span>Comparison of the transfer functions from \\([F\_u, F\_v]\\) to \\([d\_u, d\_v]\\) for several rotating speed - Coupling Terms" >}}
## Problem with pure Integral Force Feedback {#problem-with-pure-integral-force-feedback} ## Problem with pure Integral Force Feedback {#sec:iff_pure_int}
<span class="org-target" id="org-target--sec-iff-pure-int"></span> Force sensors are added in series with the two actuators ([Figure 7](#figure--fig:system-iff)).
Force sensors are added in series with the two actuators (Figure [Figure 7](#figure--fig:system-iff)).
Two identical controllers \\(K\_F\\) are used to feedback each of the sensed force to its associated actuator. Two identical controllers \\(K\_F\\) are used to feedback each of the sensed force to its associated actuator.
@@ -311,7 +303,7 @@ The same transfer function from \\([F\_u, F\_v]\\) to \\([f\_u, f\_v]\\) is writ
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2]; (2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
``` ```
The two are compared in Figure [Figure 8](#figure--fig:plant-iff-comp-simscape-analytical) and found to perfectly match. The two are compared in [Figure 8](#figure--fig:plant-iff-comp-simscape-analytical) and found to perfectly match.
<a id="figure--fig:plant-iff-comp-simscape-analytical"></a> <a id="figure--fig:plant-iff-comp-simscape-analytical"></a>
@@ -338,7 +330,7 @@ The transfer functions from \\([F\_u, F\_v]\\) to \\([f\_u, f\_v]\\) are identif
end end
``` ```
The obtained transfer functions are shown in Figure [Figure 9](#figure--fig:plant-iff-compare-rotating-speed). The obtained transfer functions are shown in [Figure 9](#figure--fig:plant-iff-compare-rotating-speed).
<a id="figure--fig:plant-iff-compare-rotating-speed"></a> <a id="figure--fig:plant-iff-compare-rotating-speed"></a>
@@ -356,7 +348,7 @@ The decentralized IFF controller consists of pure integrators:
\end{bmatrix} \end{bmatrix}
\end{equation} \end{equation}
The Root Locus (evolution of the poles of the closed loop system in the complex plane as a function of \\(g\\)) is shown in Figure [Figure 10](#figure--fig:root-locus-pure-iff). The Root Locus (evolution of the poles of the closed loop system in the complex plane as a function of \\(g\\)) is shown in [Figure 10](#figure--fig:root-locus-pure-iff).
It is shown that for non-null rotating speed, one pole is bound to the right-half plane, and thus the closed loop system is unstable. It is shown that for non-null rotating speed, one pole is bound to the right-half plane, and thus the closed loop system is unstable.
<a id="figure--fig:root-locus-pure-iff"></a> <a id="figure--fig:root-locus-pure-iff"></a>
@@ -364,9 +356,7 @@ It is shown that for non-null rotating speed, one pole is bound to the right-hal
{{< figure src="figs/root_locus_pure_iff.png" caption="<span class='figure-number'>Figure 10: </span>Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown." >}} {{< figure src="figs/root_locus_pure_iff.png" caption="<span class='figure-number'>Figure 10: </span>Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown." >}}
## Integral Force Feedback with an High Pass Filter {#integral-force-feedback-with-an-high-pass-filter} ## Integral Force Feedback with an High Pass Filter {#sec:iff_pseudo_int}
<span class="org-target" id="org-target--sec-iff-pseudo-int"></span>
### Plant Parameters {#plant-parameters} ### Plant Parameters {#plant-parameters}
@@ -413,7 +403,7 @@ And the following rotating speed.
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2]; (2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
``` ```
The obtained Loop Gain is shown in Figure [Figure 11](#figure--fig:loop-gain-modified-iff). The obtained Loop Gain is shown in [Figure 11](#figure--fig:loop-gain-modified-iff).
<a id="figure--fig:loop-gain-modified-iff"></a> <a id="figure--fig:loop-gain-modified-iff"></a>
@@ -422,7 +412,7 @@ The obtained Loop Gain is shown in Figure [Figure 11](#figure--fig:loop-gain-mod
### Root Locus {#root-locus} ### Root Locus {#root-locus}
As shown in the Root Locus plot (Figure [Figure 12](#figure--fig:root-locus-modified-iff)), for some value of the gain, the system remains stable. As shown in the Root Locus plot ([Figure 12](#figure--fig:root-locus-modified-iff)), for some value of the gain, the system remains stable.
<a id="figure--fig:root-locus-modified-iff"></a> <a id="figure--fig:root-locus-modified-iff"></a>
@@ -435,7 +425,7 @@ As shown in the Root Locus plot (Figure [Figure 12](#figure--fig:root-locus-modi
### What is the optimal \\(\omega\_i\\) and \\(g\\)? {#what-is-the-optimal-omega-i-and-g} ### What is the optimal \\(\omega\_i\\) and \\(g\\)? {#what-is-the-optimal-omega-i-and-g}
In order to visualize the effect of \\(\omega\_i\\) on the attainable damping, the Root Locus is displayed in Figure [Figure 14](#figure--fig:root-locus-wi-modified-iff) for the following \\(\omega\_i\\): In order to visualize the effect of \\(\omega\_i\\) on the attainable damping, the Root Locus is displayed in [Figure 14](#figure--fig:root-locus-wi-modified-iff) for the following \\(\omega\_i\\):
```matlab ```matlab
wis = [0.01, 0.1, 0.5, 1]*w0; % [rad/s] wis = [0.01, 0.1, 0.5, 1]*w0; % [rad/s]
@@ -464,10 +454,10 @@ The gain at which the system becomes unstable is
g\_\text{max} = \omega\_i \left( \frac{{\omega\_0}^2}{\Omega^2} - 1 \right) \label{eq:iff\_gmax} g\_\text{max} = \omega\_i \left( \frac{{\omega\_0}^2}{\Omega^2} - 1 \right) \label{eq:iff\_gmax}
\end{equation} \end{equation}
While it seems that small \\(\omega\_i\\) do allow more damping to be added to the system (Figure [Figure 14](#figure--fig:root-locus-wi-modified-iff)), the control gains may be limited to small values due to \ref{eq:iff\_gmax} thus reducing the attainable damping. While it seems that small \\(\omega\_i\\) do allow more damping to be added to the system ([Figure 14](#figure--fig:root-locus-wi-modified-iff)), the control gains may be limited to small values due to \eqref{eq:iff\_gmax} thus reducing the attainable damping.
There must be an optimum for \\(\omega\_i\\). There must be an optimum for \\(\omega\_i\\).
To find the optimum, the gain that maximize the simultaneous damping of the mode is identified for a wide range of \\(\omega\_i\\) (Figure [Figure 16](#figure--fig:mod-iff-damping-wi)). To find the optimum, the gain that maximize the simultaneous damping of the mode is identified for a wide range of \\(\omega\_i\\) ([Figure 16](#figure--fig:mod-iff-damping-wi)).
```matlab ```matlab
wis = logspace(-2, 1, 100)*w0; % [rad/s] wis = logspace(-2, 1, 100)*w0; % [rad/s]
@@ -492,9 +482,7 @@ To find the optimum, the gain that maximize the simultaneous damping of the mode
{{< figure src="figs/mod_iff_damping_wi.png" caption="<span class='figure-number'>Figure 16: </span>Simultaneous attainable damping of the closed loop poles as a function of \\(\omega\_i\\)" >}} {{< figure src="figs/mod_iff_damping_wi.png" caption="<span class='figure-number'>Figure 16: </span>Simultaneous attainable damping of the closed loop poles as a function of \\(\omega\_i\\)" >}}
## IFF with a stiffness in parallel with the force sensor {#iff-with-a-stiffness-in-parallel-with-the-force-sensor} ## IFF with a stiffness in parallel with the force sensor {#sec:iff_parallel_stiffness}
<span class="org-target" id="org-target--sec-iff-parallel-stiffness"></span>
### Schematic {#schematic} ### Schematic {#schematic}
@@ -627,7 +615,7 @@ And the IFF plant (transfer function from \\([F\_u, F\_v]\\) to \\([f\_u, f\_v]\
- with a small parallel stiffness \\(k\_p < m \Omega^2\\) - with a small parallel stiffness \\(k\_p < m \Omega^2\\)
- with a large parallel stiffness \\(k\_p > m \Omega^2\\) - with a large parallel stiffness \\(k\_p > m \Omega^2\\)
The results are shown in Figure [Figure 19](#figure--fig:plant-iff-kp). The results are shown in [Figure 19](#figure--fig:plant-iff-kp).
One can see that for \\(k\_p > m \Omega^2\\), the systems shows alternating complex conjugate poles and zeros. One can see that for \\(k\_p > m \Omega^2\\), the systems shows alternating complex conjugate poles and zeros.
@@ -673,7 +661,7 @@ One can see that for \\(k\_p > m \Omega^2\\), the systems shows alternating comp
### IFF when adding a spring in parallel {#iff-when-adding-a-spring-in-parallel} ### IFF when adding a spring in parallel {#iff-when-adding-a-spring-in-parallel}
In Figure [Figure 20](#figure--fig:root-locus-iff-kp) is displayed the Root Locus in the three considered cases with In [Figure 20](#figure--fig:root-locus-iff-kp) is displayed the Root Locus in the three considered cases with
\begin{equation} \begin{equation}
K\_{\text{IFF}} = \frac{g}{s} \begin{bmatrix} K\_{\text{IFF}} = \frac{g}{s} \begin{bmatrix}
@@ -703,7 +691,7 @@ Thus, decentralized IFF controller with pure integrators can be used if:
However, having large values of \\(k\_p\\) may decrease the attainable damping. However, having large values of \\(k\_p\\) may decrease the attainable damping.
To study the second point, Root Locus plots for the following values of \\(k\_p\\) are shown in Figure [Figure 22](#figure--fig:root-locus-iff-kps). To study the second point, Root Locus plots for the following values of \\(k\_p\\) are shown in [Figure 22](#figure--fig:root-locus-iff-kps).
```matlab ```matlab
kps = [2, 20, 40]*m*W^2; kps = [2, 20, 40]*m*W^2;
@@ -747,9 +735,7 @@ It is shown that large values of \\(k\_p\\) decreases the attainable damping.
{{< figure src="figs/opt_damp_alpha.png" caption="<span class='figure-number'>Figure 23: </span>Attainable damping ratio and corresponding controller gain for different parameter \\(\alpha\\)" >}} {{< figure src="figs/opt_damp_alpha.png" caption="<span class='figure-number'>Figure 23: </span>Attainable damping ratio and corresponding controller gain for different parameter \\(\alpha\\)" >}}
## Comparison {#comparison} ## Comparison {#sec:comparison}
<span class="org-target" id="org-target--sec-comparison"></span>
Two modifications to adapt the IFF control strategy to rotating platforms have been proposed. Two modifications to adapt the IFF control strategy to rotating platforms have been proposed.
These two methods are now compared in terms of added damping, closed-loop compliance and transmissibility. These two methods are now compared in terms of added damping, closed-loop compliance and transmissibility.
@@ -839,9 +825,7 @@ Critical Damping corresponds to to \\(\xi = 1\\), and thus:
``` ```
### Transmissibility And Compliance {#transmissibility-and-compliance} ### Transmissibility And Compliance {#sec:comp_transmissibilty}
<span class="org-target" id="org-target--sec-comp-transmissibilty"></span>
```matlab ```matlab
open('rotating_frame.slx'); open('rotating_frame.slx');
@@ -929,9 +913,7 @@ Critical Damping corresponds to to \\(\xi = 1\\), and thus:
{{< figure src="figs/comp_compliance.png" caption="<span class='figure-number'>Figure 26: </span>Comparison of the obtained Compliance" >}} {{< figure src="figs/comp_compliance.png" caption="<span class='figure-number'>Figure 26: </span>Comparison of the obtained Compliance" >}}
## Notations {#notations} ## Notations {#sec:notations}
<span class="org-target" id="org-target--sec-notations"></span>
| | Mathematical Notation | Matlab | Unit | | | Mathematical Notation | Matlab | Unit |
|---------------------------------------|----------------------------------|---------------|---------| |---------------------------------------|----------------------------------|---------------|---------|
Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

@@ -4,20 +4,16 @@ author = ["Dehaeze Thomas"]
draft = false draft = false
+++ +++
<hr>
<p>This report is also available as a <a href="./index.pdf">pdf</a>.</p>
<hr>
This document gathers the Matlab code used to for the conference paper (<a href="#citeproc_bib_item_1">Dehaeze and Collette 2020</a>) and the journal paper (<a href="#citeproc_bib_item_3">Dehaeze and Collette 2021</a>). This document gathers the Matlab code used to for the conference paper (<a href="#citeproc_bib_item_1">Dehaeze and Collette 2020</a>) and the journal paper (<a href="#citeproc_bib_item_3">Dehaeze and Collette 2021</a>).
It is structured in several sections: It is structured in several sections:
- Section : presents a simple model of a rotating suspended platform that will be used throughout this study. - Section [System Description and Analysis](#sec:system_description): presents a simple model of a rotating suspended platform that will be used throughout this study.
- Section : explains how the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation. - Section [Problem with pure Integral Force Feedback](#sec:iff_pure_int): explains how the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation.
- Section : suggests a simple modification of the control law such that damping can be added to the suspension modes in a robust way. - Section [Integral Force Feedback with an High Pass Filter](#sec:iff_pseudo_int): suggests a simple modification of the control law such that damping can be added to the suspension modes in a robust way.
- Section : proposes to add springs in parallel with the force sensors to regain the unconditional stability of IFF. - Section [IFF with a stiffness in parallel with the force sensor](#sec:iff_parallel_stiffness): proposes to add springs in parallel with the force sensors to regain the unconditional stability of IFF.
- Section : compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior. - Section [Comparison](#sec:comparison): compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior.
- Section : contains the notations used for both the Matlab code and the paper - Section [Notations](#sec:notations): contains the notations used for both the Matlab code and the paper
The matlab code is accessible on [Zonodo](https://zenodo.org/record/3894343) and [Github](https://github.com/tdehaeze/dehaeze20_contr_stewa_platf) (<a href="#citeproc_bib_item_2">Dehaeze 2020</a>). It can also be download as a `.zip` file [here](https://git.tdehaeze.xyz/tdehaeze/dehaeze21_activ_dampin_rotat_platf_using/archive/master.zip). The matlab code is accessible on [Zonodo](https://zenodo.org/record/3894343) and [Github](https://github.com/tdehaeze/dehaeze20_contr_stewa_platf) (<a href="#citeproc_bib_item_2">Dehaeze 2020</a>). It can also be download as a `.zip` file [here](https://git.tdehaeze.xyz/tdehaeze/dehaeze21_activ_dampin_rotat_platf_using/archive/master.zip).
@@ -29,26 +25,24 @@ To run the Matlab code, go in the `matlab` directory and run the following Matla
</div> </div>
| Sections | Matlab File | | Sections | Matlab File |
|----------|----------------------------| |-----------------------------------------------------------------------------------------------|----------------------------|
| Section | `s1_system_description.m` | | Section [System Description and Analysis](#sec:system_description) | `s1_system_description.m` |
| Section | `s2_iff_pure_int.m` | | Section [Problem with pure Integral Force Feedback](#sec:iff_pure_int) | `s2_iff_pure_int.m` |
| Section | `s3_iff_hpf.m` | | Section [Integral Force Feedback with an High Pass Filter](#sec:iff_pseudo_int) | `s3_iff_hpf.m` |
| Section | `s4_iff_kp.m` | | Section [IFF with a stiffness in parallel with the force sensor](#sec:iff_parallel_stiffness) | `s4_iff_kp.m` |
| Section | `s5_act_damp_comparison.m` | | Section [Comparison](#sec:comparison) | `s5_act_damp_comparison.m` |
## System Description and Analysis {#system-description-and-analysis} ## System Description and Analysis {#sec:system_description}
<span class="org-target" id="org-target--sec-system-description"></span>
### System description {#system-description} ### System description {#system-description}
The system consists of one 2 degree of freedom translation stage on top of a spindle (figure [Figure 1](#figure--fig:system)). The system consists of one 2 degree of freedom translation stage on top of a spindle ([Figure 1](#figure--fig:system)).
<a id="figure--fig:system"></a> <a id="figure--fig:system"></a>
{{< figure src="figs-paper/system.png" caption="<span class='figure-number'>Figure 1: </span>Schematic of the studied system" >}} {{< figure src="figs/fig04.png" caption="<span class='figure-number'>Figure 1: </span>Schematic of the studied system" >}}
The control inputs are the forces applied by the actuators of the translation stage (\\(F\_u\\) and \\(F\_v\\)). The control inputs are the forces applied by the actuators of the translation stage (\\(F\_u\\) and \\(F\_v\\)).
As the translation stage is rotating around the Z axis due to the spindle, the forces are applied along \\(\vec{i}\_u\\) and \\(\vec{i}\_v\\). As the translation stage is rotating around the Z axis due to the spindle, the forces are applied along \\(\vec{i}\_u\\) and \\(\vec{i}\_v\\).
@@ -56,7 +50,7 @@ As the translation stage is rotating around the Z axis due to the spindle, the f
### Equations {#equations} ### Equations {#equations}
Based on the Figure [Figure 1](#figure--fig:system), the equations of motions are: Based on the [Figure 1](#figure--fig:system), the equations of motions are:
<div class="important"> <div class="important">
@@ -161,7 +155,7 @@ The same transfer function from \\([F\_u, F\_v]\\) to \\([d\_u, d\_v]\\) is writ
-2*W*s/(w0^2), (s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)]; -2*W*s/(w0^2), (s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)];
``` ```
Both transfer functions are compared in Figure [Figure 4](#figure--fig:plant-simscape-analytical) and are found to perfectly match. Both transfer functions are compared in [Figure 4](#figure--fig:plant-simscape-analytical) and are found to perfectly match.
<a id="figure--fig:plant-simscape-analytical"></a> <a id="figure--fig:plant-simscape-analytical"></a>
@@ -199,17 +193,15 @@ They are compared in Figures [Figure 5](#figure--fig:plant-compare-rotating-spee
{{< figure src="figs/plant_compare_rotating_speed_coupling.png" caption="<span class='figure-number'>Figure 6: </span>Comparison of the transfer functions from \\([F\_u, F\_v]\\) to \\([d\_u, d\_v]\\) for several rotating speed - Coupling Terms" >}} {{< figure src="figs/plant_compare_rotating_speed_coupling.png" caption="<span class='figure-number'>Figure 6: </span>Comparison of the transfer functions from \\([F\_u, F\_v]\\) to \\([d\_u, d\_v]\\) for several rotating speed - Coupling Terms" >}}
## Problem with pure Integral Force Feedback {#problem-with-pure-integral-force-feedback} ## Problem with pure Integral Force Feedback {#sec:iff_pure_int}
<span class="org-target" id="org-target--sec-iff-pure-int"></span> Force sensors are added in series with the two actuators ([Figure 7](#figure--fig:system-iff)).
Force sensors are added in series with the two actuators (Figure [Figure 7](#figure--fig:system-iff)).
Two identical controllers \\(K\_F\\) are used to feedback each of the sensed force to its associated actuator. Two identical controllers \\(K\_F\\) are used to feedback each of the sensed force to its associated actuator.
<a id="figure--fig:system-iff"></a> <a id="figure--fig:system-iff"></a>
{{< figure src="figs-paper/system_iff.png" caption="<span class='figure-number'>Figure 7: </span>System with added Force Sensor in series with the actuators" >}} {{< figure src="figs/fig01.png" caption="<span class='figure-number'>Figure 7: </span>System with added Force Sensor in series with the actuators" >}}
### Plant Parameters {#plant-parameters} ### Plant Parameters {#plant-parameters}
@@ -311,7 +303,7 @@ The same transfer function from \\([F\_u, F\_v]\\) to \\([f\_u, f\_v]\\) is writ
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2]; (2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
``` ```
The two are compared in Figure [Figure 8](#figure--fig:plant-iff-comp-simscape-analytical) and found to perfectly match. The two are compared in [Figure 8](#figure--fig:plant-iff-comp-simscape-analytical) and found to perfectly match.
<a id="figure--fig:plant-iff-comp-simscape-analytical"></a> <a id="figure--fig:plant-iff-comp-simscape-analytical"></a>
@@ -338,7 +330,7 @@ The transfer functions from \\([F\_u, F\_v]\\) to \\([f\_u, f\_v]\\) are identif
end end
``` ```
The obtained transfer functions are shown in Figure [Figure 9](#figure--fig:plant-iff-compare-rotating-speed). The obtained transfer functions are shown in [Figure 9](#figure--fig:plant-iff-compare-rotating-speed).
<a id="figure--fig:plant-iff-compare-rotating-speed"></a> <a id="figure--fig:plant-iff-compare-rotating-speed"></a>
@@ -356,7 +348,7 @@ The decentralized IFF controller consists of pure integrators:
\end{bmatrix} \end{bmatrix}
\end{equation} \end{equation}
The Root Locus (evolution of the poles of the closed loop system in the complex plane as a function of \\(g\\)) is shown in Figure [Figure 10](#figure--fig:root-locus-pure-iff). The Root Locus (evolution of the poles of the closed loop system in the complex plane as a function of \\(g\\)) is shown in [Figure 10](#figure--fig:root-locus-pure-iff).
It is shown that for non-null rotating speed, one pole is bound to the right-half plane, and thus the closed loop system is unstable. It is shown that for non-null rotating speed, one pole is bound to the right-half plane, and thus the closed loop system is unstable.
<a id="figure--fig:root-locus-pure-iff"></a> <a id="figure--fig:root-locus-pure-iff"></a>
@@ -364,9 +356,7 @@ It is shown that for non-null rotating speed, one pole is bound to the right-hal
{{< figure src="figs/root_locus_pure_iff.png" caption="<span class='figure-number'>Figure 10: </span>Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown." >}} {{< figure src="figs/root_locus_pure_iff.png" caption="<span class='figure-number'>Figure 10: </span>Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown." >}}
## Integral Force Feedback with an High Pass Filter {#integral-force-feedback-with-an-high-pass-filter} ## Integral Force Feedback with an High Pass Filter {#sec:iff_pseudo_int}
<span class="org-target" id="org-target--sec-iff-pseudo-int"></span>
### Plant Parameters {#plant-parameters} ### Plant Parameters {#plant-parameters}
@@ -413,7 +403,7 @@ And the following rotating speed.
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2]; (2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
``` ```
The obtained Loop Gain is shown in Figure [Figure 11](#figure--fig:loop-gain-modified-iff). The obtained Loop Gain is shown in [Figure 11](#figure--fig:loop-gain-modified-iff).
<a id="figure--fig:loop-gain-modified-iff"></a> <a id="figure--fig:loop-gain-modified-iff"></a>
@@ -422,7 +412,7 @@ The obtained Loop Gain is shown in Figure [Figure 11](#figure--fig:loop-gain-mod
### Root Locus {#root-locus} ### Root Locus {#root-locus}
As shown in the Root Locus plot (Figure [Figure 12](#figure--fig:root-locus-modified-iff)), for some value of the gain, the system remains stable. As shown in the Root Locus plot ([Figure 12](#figure--fig:root-locus-modified-iff)), for some value of the gain, the system remains stable.
<a id="figure--fig:root-locus-modified-iff"></a> <a id="figure--fig:root-locus-modified-iff"></a>
@@ -435,7 +425,7 @@ As shown in the Root Locus plot (Figure [Figure 12](#figure--fig:root-locus-modi
### What is the optimal \\(\omega\_i\\) and \\(g\\)? {#what-is-the-optimal-omega-i-and-g} ### What is the optimal \\(\omega\_i\\) and \\(g\\)? {#what-is-the-optimal-omega-i-and-g}
In order to visualize the effect of \\(\omega\_i\\) on the attainable damping, the Root Locus is displayed in Figure [Figure 14](#figure--fig:root-locus-wi-modified-iff) for the following \\(\omega\_i\\): In order to visualize the effect of \\(\omega\_i\\) on the attainable damping, the Root Locus is displayed in [Figure 14](#figure--fig:root-locus-wi-modified-iff) for the following \\(\omega\_i\\):
```matlab ```matlab
wis = [0.01, 0.1, 0.5, 1]*w0; % [rad/s] wis = [0.01, 0.1, 0.5, 1]*w0; % [rad/s]
@@ -464,10 +454,10 @@ The gain at which the system becomes unstable is
g\_\text{max} = \omega\_i \left( \frac{{\omega\_0}^2}{\Omega^2} - 1 \right) \label{eq:iff\_gmax} g\_\text{max} = \omega\_i \left( \frac{{\omega\_0}^2}{\Omega^2} - 1 \right) \label{eq:iff\_gmax}
\end{equation} \end{equation}
While it seems that small \\(\omega\_i\\) do allow more damping to be added to the system (Figure [Figure 14](#figure--fig:root-locus-wi-modified-iff)), the control gains may be limited to small values due to \ref{eq:iff\_gmax} thus reducing the attainable damping. While it seems that small \\(\omega\_i\\) do allow more damping to be added to the system ([Figure 14](#figure--fig:root-locus-wi-modified-iff)), the control gains may be limited to small values due to \eqref{eq:iff\_gmax} thus reducing the attainable damping.
There must be an optimum for \\(\omega\_i\\). There must be an optimum for \\(\omega\_i\\).
To find the optimum, the gain that maximize the simultaneous damping of the mode is identified for a wide range of \\(\omega\_i\\) (Figure [Figure 16](#figure--fig:mod-iff-damping-wi)). To find the optimum, the gain that maximize the simultaneous damping of the mode is identified for a wide range of \\(\omega\_i\\) ([Figure 16](#figure--fig:mod-iff-damping-wi)).
```matlab ```matlab
wis = logspace(-2, 1, 100)*w0; % [rad/s] wis = logspace(-2, 1, 100)*w0; % [rad/s]
@@ -492,9 +482,7 @@ To find the optimum, the gain that maximize the simultaneous damping of the mode
{{< figure src="figs/mod_iff_damping_wi.png" caption="<span class='figure-number'>Figure 16: </span>Simultaneous attainable damping of the closed loop poles as a function of \\(\omega\_i\\)" >}} {{< figure src="figs/mod_iff_damping_wi.png" caption="<span class='figure-number'>Figure 16: </span>Simultaneous attainable damping of the closed loop poles as a function of \\(\omega\_i\\)" >}}
## IFF with a stiffness in parallel with the force sensor {#iff-with-a-stiffness-in-parallel-with-the-force-sensor} ## IFF with a stiffness in parallel with the force sensor {#sec:iff_parallel_stiffness}
<span class="org-target" id="org-target--sec-iff-parallel-stiffness"></span>
### Schematic {#schematic} ### Schematic {#schematic}
@@ -503,7 +491,7 @@ In this section additional springs in parallel with the force sensors are added
<a id="figure--fig:system-parallel-springs"></a> <a id="figure--fig:system-parallel-springs"></a>
{{< figure src="figs-paper/system_parallel_springs.png" caption="<span class='figure-number'>Figure 17: </span>Studied system with additional springs in parallel with the actuators and force sensors" >}} {{< figure src="figs/fig12.png" caption="<span class='figure-number'>Figure 17: </span>Studied system with additional springs in parallel with the actuators and force sensors" >}}
In order to keep the overall stiffness \\(k = k\_a + k\_p\\) constant, a scalar parameter \\(\alpha\\) (\\(0 \le \alpha < 1\\)) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor In order to keep the overall stiffness \\(k = k\_a + k\_p\\) constant, a scalar parameter \\(\alpha\\) (\\(0 \le \alpha < 1\\)) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor
@@ -627,7 +615,7 @@ And the IFF plant (transfer function from \\([F\_u, F\_v]\\) to \\([f\_u, f\_v]\
- with a small parallel stiffness \\(k\_p < m \Omega^2\\) - with a small parallel stiffness \\(k\_p < m \Omega^2\\)
- with a large parallel stiffness \\(k\_p > m \Omega^2\\) - with a large parallel stiffness \\(k\_p > m \Omega^2\\)
The results are shown in Figure [Figure 19](#figure--fig:plant-iff-kp). The results are shown in [Figure 19](#figure--fig:plant-iff-kp).
One can see that for \\(k\_p > m \Omega^2\\), the systems shows alternating complex conjugate poles and zeros. One can see that for \\(k\_p > m \Omega^2\\), the systems shows alternating complex conjugate poles and zeros.
@@ -673,7 +661,7 @@ One can see that for \\(k\_p > m \Omega^2\\), the systems shows alternating comp
### IFF when adding a spring in parallel {#iff-when-adding-a-spring-in-parallel} ### IFF when adding a spring in parallel {#iff-when-adding-a-spring-in-parallel}
In Figure [Figure 20](#figure--fig:root-locus-iff-kp) is displayed the Root Locus in the three considered cases with In [Figure 20](#figure--fig:root-locus-iff-kp) is displayed the Root Locus in the three considered cases with
\begin{equation} \begin{equation}
K\_{\text{IFF}} = \frac{g}{s} \begin{bmatrix} K\_{\text{IFF}} = \frac{g}{s} \begin{bmatrix}
@@ -703,7 +691,7 @@ Thus, decentralized IFF controller with pure integrators can be used if:
However, having large values of \\(k\_p\\) may decrease the attainable damping. However, having large values of \\(k\_p\\) may decrease the attainable damping.
To study the second point, Root Locus plots for the following values of \\(k\_p\\) are shown in Figure [Figure 22](#figure--fig:root-locus-iff-kps). To study the second point, Root Locus plots for the following values of \\(k\_p\\) are shown in [Figure 22](#figure--fig:root-locus-iff-kps).
```matlab ```matlab
kps = [2, 20, 40]*m*W^2; kps = [2, 20, 40]*m*W^2;
@@ -747,9 +735,7 @@ It is shown that large values of \\(k\_p\\) decreases the attainable damping.
{{< figure src="figs/opt_damp_alpha.png" caption="<span class='figure-number'>Figure 23: </span>Attainable damping ratio and corresponding controller gain for different parameter \\(\alpha\\)" >}} {{< figure src="figs/opt_damp_alpha.png" caption="<span class='figure-number'>Figure 23: </span>Attainable damping ratio and corresponding controller gain for different parameter \\(\alpha\\)" >}}
## Comparison {#comparison} ## Comparison {#sec:comparison}
<span class="org-target" id="org-target--sec-comparison"></span>
Two modifications to adapt the IFF control strategy to rotating platforms have been proposed. Two modifications to adapt the IFF control strategy to rotating platforms have been proposed.
These two methods are now compared in terms of added damping, closed-loop compliance and transmissibility. These two methods are now compared in terms of added damping, closed-loop compliance and transmissibility.
@@ -839,9 +825,7 @@ Critical Damping corresponds to to \\(\xi = 1\\), and thus:
``` ```
### Transmissibility And Compliance {#transmissibility-and-compliance} ### Transmissibility And Compliance {#sec:comp_transmissibilty}
<span class="org-target" id="org-target--sec-comp-transmissibilty"></span>
```matlab ```matlab
open('rotating_frame.slx'); open('rotating_frame.slx');
@@ -929,9 +913,7 @@ Critical Damping corresponds to to \\(\xi = 1\\), and thus:
{{< figure src="figs/comp_compliance.png" caption="<span class='figure-number'>Figure 26: </span>Comparison of the obtained Compliance" >}} {{< figure src="figs/comp_compliance.png" caption="<span class='figure-number'>Figure 26: </span>Comparison of the obtained Compliance" >}}
## Notations {#notations} ## Notations {#sec:notations}
<span class="org-target" id="org-target--sec-notations"></span>
| | Mathematical Notation | Matlab | Unit | | | Mathematical Notation | Matlab | Unit |
|---------------------------------------|----------------------------------|---------------|---------| |---------------------------------------|----------------------------------|---------------|---------|
@@ -275,89 +275,3 @@ draft = false
``` ```
{{< figure src="mass_spring_damper_hac_lac.png" >}} {{< figure src="mass_spring_damper_hac_lac.png" >}}
## Mass Spring Damper Model - Bis {#mass-spring-damper-model-bis}
```latex
\begin{tikzpicture}
% ====================
% Parameters
% ====================
\def\bracs{0.05} % Brace spacing vertically
\def\brach{-12pt} % Brace shift horizontaly
% ====================
% ====================
% Ground
% ====================
\draw (-0.9, 0) -- (0.9, 0);
\draw[dashed] (0.9, 0) -- ++(0.5, 0);
\draw[->] (1.3, 0) -- ++(0, 0.4) node[right]{$w$};
% ====================
% ====================
% Granite
\begin{scope}[shift={(0, 0)}]
\draw[fill=white] (-0.9, 1.2) rectangle (0.9, 2.0) node[pos=0.5]{$\scriptstyle\text{granite}$};
\draw[spring] (-0.7, 0) -- ++(0, 1.2);
\draw[damper] ( 0, 0) -- ++(0, 1.2);
\draw[dashed] ( 0.9, 2.0) -- ++(2.0, 0) coordinate(xg);
% \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
% (-0.9, \bracs) -- ++(0, 2.0) node[midway,rotate=90,anchor=south,yshift=10pt]{Granite};
\end{scope}
% ====================
% ====================
% Stages
\begin{scope}[shift={(0, 2.0)}]
\draw[fill=white] (-0.9, 1.2) rectangle (0.9, 2.0) node[pos=0.5]{$\scriptstyle\mu\text{-station}$};
\coordinate (mustation) at (0.9, 1.6);
\draw[spring] (-0.7, 0) -- ++(0, 1.2);
\draw[damper] ( 0, 0) -- ++(0, 1.2);
\draw[actuator] ( 0.7, 0) -- ++(0, 1.2) node[midway, right=0.1](ft){$f_t$};
% \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
% (-0.9, \bracs) -- ++(0, 2.0) node[midway,rotate=90,anchor=south,yshift=10pt]{$\mu\text{-station}$};
\end{scope}
% ====================
% ====================
% NASS
\begin{scope}[shift={(0, 4.0)}]
\draw[fill=white] (-0.9, 1.2) rectangle (0.9, 2.0) node[pos=0.5]{$\scriptstyle\nu\text{-hexapod}$};
\draw[dashed] (0.9, 2.0) -- ++(2.0, 0) coordinate(xnpos);
\draw[spring] (-0.7, 0) -- ++(0, 1.2) node[midway, left=0.1]{};
\draw[damper] ( 0, 0) -- ++(0, 1.2) node[midway, left=0.2]{};
\draw[actuator] ( 0.7, 0) -- ++(0, 1.2) coordinate[midway, right=0.1](f);
% \draw[decorate, decoration={brace, amplitude=8pt}, xshift=\brach] %
% (-0.9, \bracs) -- ++(0, 2.2) node[midway,rotate=90,anchor=south,yshift=10pt]{$\nu\text{-hexapod}$};
\end{scope}
% ====================
% ====================
% Measured Displacement
\draw[<->, dashed] ($(xg)+(-0.1, 0)$) node[above left](d){$d$} -- ($(xnpos)+(-0.1, 0)$);
% ====================
% ====================
% IFF Control
% \node[block={2em}{1.5em}, right=0.6 of fsensn] (iff) {$K_{\scriptscriptstyle IFF}$};
% \node[addb] (ctrladd) at (f-|iff) {};
\node[block={2em}{1.5em}, right=0.6 of mustation] (ctrl) {$K$};
% \draw[->] (fsensn.east) -- node[midway, above]{$\tau_m$} (iff.west);
% \draw[->] (iff.south) -- (ctrladd.north);
% \draw[->] (ctrladd.west) -- (f.east) node[above right]{$u$};
\draw[->] (d.west) -| (ctrl.south);
\draw[->] (ctrl.north) |- (f) node[above right]{$u$};
% ====================
\end{tikzpicture}
```
@@ -33,7 +33,7 @@ Let's suppose that the ADC is ideal and the only noise comes from the quantizati
Interestingly, the noise amplitude is uniformly distributed. Interestingly, the noise amplitude is uniformly distributed.
The quantization noise can take a value between \\(\pm q/2\\), and the probability density function is constant in this range (i.e., it’s a uniform distribution). The quantization noise can take a value between \\(\pm q/2\\), and the probability density function is constant in this range (i.e., it’s a uniform distribution).
Since the integral of the probability density function is equal to one, its value will be \\(1/q\\) for \\(-q/2 < e < q/2\\) (Fig. [Figure 1](#figure--fig:probability-density-function-adc)). Since the integral of the probability density function is equal to one, its value will be \\(1/q\\) for \\(-q/2 < e < q/2\\) ([Figure 1](#figure--fig:probability-density-function-adc)).
<a id="figure--fig:probability-density-function-adc"></a> <a id="figure--fig:probability-density-function-adc"></a>
@@ -192,7 +192,7 @@ Characteristics:
- Zero at \\(\omega\_c/\sqrt{a}\\) and pole at \\(\omega\_c \sqrt{a}\\), geometrically centered on \\(\omega\_c\\) - Zero at \\(\omega\_c/\sqrt{a}\\) and pole at \\(\omega\_c \sqrt{a}\\), geometrically centered on \\(\omega\_c\\)
- Unity gain at \\(\omega\_c\\), low frequency gain of \\(1/\sqrt{a}\\), high frequency gain of \\(\sqrt{a}\\) - Unity gain at \\(\omega\_c\\), low frequency gain of \\(1/\sqrt{a}\\), high frequency gain of \\(\sqrt{a}\\)
- Maximum phase lead, obtained at \\(\omega\_c\\), equal to (Figure [Figure 8](#figure--fig:filter-lead-effect-a-phase)): - Maximum phase lead, obtained at \\(\omega\_c\\), equal to ([Figure 8](#figure--fig:filter-lead-effect-a-phase)):
\\[ \angle H(j\omega\_c) = \tan^{-1}(\sqrt{a}) - \tan^{-1}(1/\sqrt{a}) \\] \\[ \angle H(j\omega\_c) = \tan^{-1}(\sqrt{a}) - \tan^{-1}(1/\sqrt{a}) \\]
<!--listend--> <!--listend-->
+13 -11
View File
@@ -69,7 +69,7 @@ where \\(F\\) is the ratio of single-stage low pass filter's transition region w
F = \frac{f\_{\text{stop}} - B^\prime}{f\_{\text{stop}}} F = \frac{f\_{\text{stop}} - B^\prime}{f\_{\text{stop}}}
\end{equation} \end{equation}
After using Eq. \ref{eq:M1opt} to determine the optimum first downsampling factor, and setting \\(M\_1\\) equal to the integer sub-multiple of \\(M\\) that is closest to \\(M\_{1,\text{opt}}\\), the second downsampling factor is: After using Eq. \eqref{eq:M1opt} to determine the optimum first downsampling factor, and setting \\(M\_1\\) equal to the integer sub-multiple of \\(M\\) that is closest to \\(M\_{1,\text{opt}}\\), the second downsampling factor is:
\begin{equation} \label{eq:M2\_from\_M1} \begin{equation} \label{eq:M2\_from\_M1}
M\_2 = \frac{M}{M\_1} M\_2 = \frac{M}{M\_1}
@@ -89,9 +89,9 @@ N = \frac{\text{Atten}}{22 (f\_{\text{stop}} - f\_{\text{pass}})} = \frac{60}{22
which is way too large for practical implementation. which is way too large for practical implementation.
To reduce the number of necessary filter taps, we can partition the decimation problem into two stages. To reduce the number of necessary filter taps, we can partition the decimation problem into two stages.
With \\(M = 100\\), \\(F = (2200-1800)/2200\\), Eq. \ref{eq:M1opt} yields \\(M\_{1,\text{opt}} = 26.4\\). With \\(M = 100\\), \\(F = (2200-1800)/2200\\), Eq. \eqref{eq:M1opt} yields \\(M\_{1,\text{opt}} = 26.4\\).
The integer sub-multiple of 100 closest to \\(26.4\\) is \\(25\\), so we set \\(M\_1 = 25\\). The integer sub-multiple of 100 closest to \\(26.4\\) is \\(25\\), so we set \\(M\_1 = 25\\).
Next, from Eq. \ref{eq:M2\_from\_M1}, \\(M\_2 = 4\\) is found. Next, from Eq. \eqref{eq:M2\_from\_M1}, \\(M\_2 = 4\\) is found.
The first low pass filter has a pass-band cutoff frequency of \\(1.8\\,kHz\\) and its stop-band is \\(400/25 - 1.8 = 14.2\\,kHz\\) ([Figure 4](#figure--fig:decimation-two-stage-example) (d)). The first low pass filter has a pass-band cutoff frequency of \\(1.8\\,kHz\\) and its stop-band is \\(400/25 - 1.8 = 14.2\\,kHz\\) ([Figure 4](#figure--fig:decimation-two-stage-example) (d)).
The second low pass filter has a pass-band cutoff frequency of \\(1.8\\,kHz\\) and its stop-band is \\(4-1.8 = 2.2\\,kHz\\). The second low pass filter has a pass-band cutoff frequency of \\(1.8\\,kHz\\) and its stop-band is \\(4-1.8 = 2.2\\,kHz\\).
@@ -116,16 +116,18 @@ There are two **practical issues** to consider for two-stage decimation:
In order to cope with the second issue, an efficient decimation filter implementation scheme called _polyphase decomposition_ can be used. In order to cope with the second issue, an efficient decimation filter implementation scheme called _polyphase decomposition_ can be used.
<summary>The advantages of two stage decimation, over single-stage decimation are: <div class="sum">
<ul class="org-ul"> The advantages of two stage decimation, over single-stage decimation are:
<li>an overall reduction in computation workload</li>
<li>reduced signal and filter coefficient data storage</li>
<li>simpler filter designs</li>
<li>a decrease in the ill effects of finite binary-work-length filter coefficients</li>
</ul>
These advantages become more pronounced as the overall desired decimation factor \(M\) becomes larger.</summary> - an overall reduction in computation workload
- reduced signal and filter coefficient data storage
- simpler filter designs
- a decrease in the ill effects of finite binary-work-length filter coefficients
These advantages become more pronounced as the overall desired decimation factor \\(M\\) becomes larger.
</div>
### References: {#references} ### References: {#references}
+1 -1
View File
@@ -36,7 +36,7 @@ It is equal to the inverse of the mass matrix (diagonal when evaluated at the Co
\bm{G}\_{\\{CoM\\}}(s) = \frac{\bm{\mathcal{X}}\_{\\{CoM\\}}}{\bm{\mathcal{F}}\_{\\{CoM\\}}} \approx \frac{1}{s^2} \bm{M}^{-1} \bm{G}\_{\\{CoM\\}}(s) = \frac{\bm{\mathcal{X}}\_{\\{CoM\\}}}{\bm{\mathcal{F}}\_{\\{CoM\\}}} \approx \frac{1}{s^2} \bm{M}^{-1}
\end{equation} \end{equation}
To work at the CoM, the plant is pre- and post-multiplied by the Jacobian matrices as shown in Figure [Figure 1](#figure--fig:detail-control-decoupling-control-jacobian): To work at the CoM, the plant is pre- and post-multiplied by the Jacobian matrices as shown in [Figure 1](#figure--fig:detail-control-decoupling-control-jacobian):
\begin{equation} \begin{equation}
\bm{G}\_{\\{CoM\\}}(s) = \bm{J}\_{\\{CoM\\}}^{-1} \\, \bm{G}\_{\\{\mathcal{L}\\}}(s) \\, \bm{J}\_{\\{CoM\\}}^{-\intercal} \bm{G}\_{\\{CoM\\}}(s) = \bm{J}\_{\\{CoM\\}}^{-1} \\, \bm{G}\_{\\{\mathcal{L}\\}}(s) \\, \bm{J}\_{\\{CoM\\}}^{-\intercal}
+1 -1
View File
@@ -40,7 +40,7 @@ with:
\\(C\_0 = 1\\) corresponds to a conductor with conductivity \\(\sigma\\) inside a uniform magnetic field and conductivity infinite outside this field. \\(C\_0 = 1\\) corresponds to a conductor with conductivity \\(\sigma\\) inside a uniform magnetic field and conductivity infinite outside this field.
A typical value of \\(C\_0\\) is about 0.25-0.4 for a conductor plate with area 2 to 5 times that of the magnetic field. A typical value of \\(C\_0\\) is about 0.25-0.4 for a conductor plate with area 2 to 5 times that of the magnetic field.
From \ref{eq:damping\_formula}, we see that the damping coefficient is proportional to: From \eqref{eq:damping\_formula}, we see that the damping coefficient is proportional to:
- the square of the magnetic flux density \\(B\\). Therefore it is very important to have large magnetic field strengh - the square of the magnetic flux density \\(B\\). Therefore it is very important to have large magnetic field strengh
- the thickness \\(t\\) of the conductor. However due to **skin depth effect**, the benefit of increasing the thickness is limited. - the thickness \\(t\\) of the conductor. However due to **skin depth effect**, the benefit of increasing the thickness is limited.
+6 -12
View File
@@ -11,14 +11,12 @@ Tags
Depending on the physical system to be controlled, several feedforward controllers can be used: Depending on the physical system to be controlled, several feedforward controllers can be used:
- [Rigid body feedforward](#org-target--sec-rigid-body-feedforward) - [Rigid body feedforward](#sec:rigid_body_feedforward)
- [Fourth order feedforward](#org-target--sec-fourth-order-feedforward) - [Fourth order feedforward](#sec:fourth_order_feedforward)
- [Model based feedforward](#org-target--sec-model-based-feedforward) - [Model based feedforward](#sec:model_based_feedforward)
## Rigid Body Feedforward {#rigid-body-feedforward} ## Rigid Body Feedforward {#sec:rigid_body_feedforward}
<span class="org-target" id="org-target--sec-rigid-body-feedforward"></span>
Second order trajectory planning: the acceleration and velocity can be bound to wanted values. Second order trajectory planning: the acceleration and velocity can be bound to wanted values.
@@ -36,9 +34,7 @@ F\_{ff} = m a + c v
\end{equation} \end{equation}
## Fourth Order Feedforward {#fourth-order-feedforward} ## Fourth Order Feedforward {#sec:fourth_order_feedforward}
<span class="org-target" id="org-target--sec-fourth-order-feedforward"></span>
The main advantage of "fourth order feedforward" is that it takes into account the flexibility in the system (one resonance between the actuation point and the measurement point, see [Figure 2](#figure--fig:feedforward-double-mass-system)). The main advantage of "fourth order feedforward" is that it takes into account the flexibility in the system (one resonance between the actuation point and the measurement point, see [Figure 2](#figure--fig:feedforward-double-mass-system)).
This can lead to better results than second order trajectory planning as demonstrated [here](https://www.20sim.com/control-engineering/snap-feedforward/). This can lead to better results than second order trajectory planning as demonstrated [here](https://www.20sim.com/control-engineering/snap-feedforward/).
@@ -110,9 +106,7 @@ The same architecture shown in [Figure 3](#figure--fig:feedforward-fourth-order-
In order to implement a fourth order trajectory, look at [this](https://www.mathworks.com/matlabcentral/fileexchange/16352-advanced-setpoints-for-motion-systems) nice implementation in Simulink of fourth-order trajectory planning (see also (<a href="#citeproc_bib_item_1">Lambrechts, Boerlage, and Steinbuch 2004</a>)). In order to implement a fourth order trajectory, look at [this](https://www.mathworks.com/matlabcentral/fileexchange/16352-advanced-setpoints-for-motion-systems) nice implementation in Simulink of fourth-order trajectory planning (see also (<a href="#citeproc_bib_item_1">Lambrechts, Boerlage, and Steinbuch 2004</a>)).
## Model Based Feedforward Control for Second Order resonance plant {#model-based-feedforward-control-for-second-order-resonance-plant} ## Model Based Feedforward Control for Second Order resonance plant {#sec:model_based_feedforward}
<span class="org-target" id="org-target--sec-model-based-feedforward"></span>
See (<a href="#citeproc_bib_item_2">Schmidt, Schitter, and Rankers 2020</a>) (Section 4.2.1). See (<a href="#citeproc_bib_item_2">Schmidt, Schitter, and Rankers 2020</a>) (Section 4.2.1).
+1 -1
View File
@@ -37,7 +37,7 @@ Wireless Accelerometers
- <https://micromega-dynamics.com/products/recovib/miniature-vibration-recorder/> - <https://micromega-dynamics.com/products/recovib/miniature-vibration-recorder/>
Several commercial accelerometers are compared in Table [Figure 2](#figure--fig:characteristics-accelerometers) (see (<a href="#citeproc_bib_item_1">Collette et al. 2011</a>)). Several commercial accelerometers are compared in [Figure 2](#figure--fig:characteristics-accelerometers) (see (<a href="#citeproc_bib_item_1">Collette et al. 2011</a>)).
<a id="figure--fig:characteristics-accelerometers"></a> <a id="figure--fig:characteristics-accelerometers"></a>
+1 -1
View File
@@ -67,7 +67,7 @@ The Jacobian matrix links the joint variable velocities to the moving platform l
with \\(\bm{q} = \left[ q\_1, q\_2, \ldots, q\_m \right]^T\\) the vector of actuated joint coordinates (linear displacement of an actuator prismatic joint or angular rotation of an actuated revolute joint) and \\(\bm{\mathcal{X}} = \left[ x\_1, x\_2, \ldots, x\_n \right]^T\\) the vector of moving platform motion variables (position or orientation). with \\(\bm{q} = \left[ q\_1, q\_2, \ldots, q\_m \right]^T\\) the vector of actuated joint coordinates (linear displacement of an actuator prismatic joint or angular rotation of an actuated revolute joint) and \\(\bm{\mathcal{X}} = \left[ x\_1, x\_2, \ldots, x\_n \right]^T\\) the vector of moving platform motion variables (position or orientation).
From equation \ref{eq:velocity\_loop\_closure}, we have: From equation \eqref{eq:velocity\_loop\_closure}, we have:
\begin{equation} \begin{equation}
\bm{J} = \begin{bmatrix} \bm{J} = \begin{bmatrix}
+22 -50
View File
@@ -35,9 +35,7 @@ Tags
| ID16a | ESRF | Piezo (PI) | | ID16a | ESRF | Piezo (PI) |
## Built Stewart PLatforms {#built-stewart-platforms} ## Built Stewart PLatforms {#sec:built}
<span class="org-target" id="org-target--sec-built"></span>
**Actuators**: **Actuators**:
@@ -58,9 +56,7 @@ Tags
- External Metrology - External Metrology
### Short Stroke {#short-stroke} ### Short Stroke {#sec:built_short_stroke}
<span class="org-target" id="org-target--sec-built-short-stroke"></span>
| University | Figure | Configuration | Joints | Actuators | Sensors | Application | Link to bibliography | | University | Figure | Configuration | Joints | Actuators | Sensors | Application | Link to bibliography |
|----------------|---------------------------------------------|-------------------|-------------|--------------------------|------------------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |----------------|---------------------------------------------|-------------------|-------------|--------------------------|------------------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -171,9 +167,7 @@ Tags
{{< figure src="/ox-hugo/stewart_ulb_vc.jpg" caption="<span class='figure-number'>Figure 21: </span>ULB - Voice Coil <&hanieh03_activ_stewar>" >}} {{< figure src="/ox-hugo/stewart_ulb_vc.jpg" caption="<span class='figure-number'>Figure 21: </span>ULB - Voice Coil <&hanieh03_activ_stewar>" >}}
### Long Stroke {#long-stroke} ### Long Stroke {#sec:built_long_stroke}
<span class="org-target" id="org-target--sec-built-long-stroke"></span>
| University | Figure | Configuration | Joints | Actuators | Sensors | Link to bibliography | | University | Figure | Configuration | Joints | Actuators | Sensors | Link to bibliography |
|----------------|------------------------------------------|---------------|--------------|-------------------------|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |----------------|------------------------------------------|---------------|--------------|-------------------------|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -199,20 +193,16 @@ Tags
{{< figure src="/ox-hugo/stewart_czech.jpg" caption="<span class='figure-number'>Figure 25: </span>Stewart platform from Brno University (Czech) <&brezina08_ni_labview_matlab_simmec_stewar_platf_desig>" >}} {{< figure src="/ox-hugo/stewart_czech.jpg" caption="<span class='figure-number'>Figure 25: </span>Stewart platform from Brno University (Czech) <&brezina08_ni_labview_matlab_simmec_stewar_platf_desig>" >}}
## Articles - Design Related {#articles-design-related} ## Articles - Design Related {#sec:design}
<span class="org-target" id="org-target--sec-design"></span> - Flexible joints (Section [Flexures](#sec:design_flexure))
- Specific geometry to have good decoupling properties (Section [Decoupling](#sec:design_decoupling))
- Flexible joints (Section ) - Alternative architectures for 6DoF parallel mechanisms (Section [Alternative Architectures](#sec:design_architecture))
- Specific geometry to have good decoupling properties (Section ) - Workspace (Section [Workspace](#sec:design_workspace))
- Alternative architectures for 6DoF parallel mechanisms (Section ) - Modelling (Section [Modelling](#sec:design_modelling))
- Workspace (Section )
- Modelling (Section )
### Flexures {#flexures} ### Flexures {#sec:design_flexure}
<span class="org-target" id="org-target--sec-design-flexure"></span>
From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>): From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
@@ -223,9 +213,7 @@ From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
| Effect of flexures | (<a href="#citeproc_bib_item_46">McInroy 2002</a>) | | Effect of flexures | (<a href="#citeproc_bib_item_46">McInroy 2002</a>) |
### Decoupling {#decoupling} ### Decoupling {#sec:design_decoupling}
<span class="org-target" id="org-target--sec-design-decoupling"></span>
| Main Object | Link to bibliography | | Main Object | Link to bibliography |
|------------------------------------|---------------------------------------------------------------| |------------------------------------|---------------------------------------------------------------|
@@ -233,9 +221,7 @@ From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
| | (<a href="#citeproc_bib_item_4">Afzali-Far 2016</a>) | | | (<a href="#citeproc_bib_item_4">Afzali-Far 2016</a>) |
### Alternative Architectures {#alternative-architectures} ### Alternative Architectures {#sec:design_architecture}
<span class="org-target" id="org-target--sec-design-architecture"></span>
| Figure | Link to bibliography | | Figure | Link to bibliography |
|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| |------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
@@ -250,9 +236,7 @@ From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
{{< figure src="/ox-hugo/stewart_dong07.jpg" caption="<span class='figure-number'>Figure 26: </span><&dong07_desig_precis_compl_paral_posit>" >}} {{< figure src="/ox-hugo/stewart_dong07.jpg" caption="<span class='figure-number'>Figure 26: </span><&dong07_desig_precis_compl_paral_posit>" >}}
### Workspace {#workspace} ### Workspace {#sec:design_workspace}
<span class="org-target" id="org-target--sec-design-workspace"></span>
| Main Object | Link to bibliography | | Main Object | Link to bibliography |
|------------------------------------------------------|----------------------------------------------------------------| |------------------------------------------------------|----------------------------------------------------------------|
@@ -262,9 +246,7 @@ From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
| Orientation Workspace | (<a href="#citeproc_bib_item_37">Jiang and Gosselin 2009b</a>) | | Orientation Workspace | (<a href="#citeproc_bib_item_37">Jiang and Gosselin 2009b</a>) |
### Modelling {#modelling} ### Modelling {#sec:design_modelling}
<span class="org-target" id="org-target--sec-design-modelling"></span>
#### Multi Body {#multi-body} #### Multi Body {#multi-body}
@@ -276,25 +258,21 @@ From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
#### Lumped {#lumped} #### Lumped {#lumped}
## Control {#control} ## Control {#sec:control}
<span class="org-target" id="org-target--sec-control"></span>
Different control objectives: Different control objectives:
- Vibration Control (Section ) - Vibration Control (Section [Vibration Control and Active Damping](#sec:control_isolation))
- Position Control (Section ) - Position Control (Section [Position Control](#sec:control_position))
Sometimes, the two objectives are simultaneous, in that case multiple sensors needs to be combined in the control architecture (Section ). Sometimes, the two objectives are simultaneous, in that case multiple sensors needs to be combined in the control architecture (Section [Multi Sensor Control](#sec:control_multi_sensor)).
Stewart platform, being 6DoF parallel mechanisms, have a coupled dynamics. Stewart platform, being 6DoF parallel mechanisms, have a coupled dynamics.
In order to ease the control design, decoupling is generally required. In order to ease the control design, decoupling is generally required.
Several approaches can be used (Section ). Several approaches can be used (Section ).
### Vibration Control and Active Damping {#vibration-control-and-active-damping} ### Vibration Control and Active Damping {#sec:control_isolation}
<span class="org-target" id="org-target--sec-control-isolation"></span>
From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>): From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
@@ -348,9 +326,7 @@ From (<a href="#citeproc_bib_item_31">Hauge and Campbell 2004</a>):
| Shangai | Piezoelectric | Force Sensor + Accelerometer | Vibration isolation, HAC-LAC (IFF + FxLMS) | Dynamic Model + Vibration Control | (<a href="#citeproc_bib_item_76">Wang et al. 2016</a>) | | Shangai | Piezoelectric | Force Sensor + Accelerometer | Vibration isolation, HAC-LAC (IFF + FxLMS) | Dynamic Model + Vibration Control | (<a href="#citeproc_bib_item_76">Wang et al. 2016</a>) |
### Position Control {#position-control} ### Position Control {#sec:control_position}
<span class="org-target" id="org-target--sec-control-position"></span>
Here, the objective is to _position_ the mobile platform with respect to an external metrology or internal metrology. Here, the objective is to _position_ the mobile platform with respect to an external metrology or internal metrology.
@@ -380,9 +356,7 @@ From: (<a href="#citeproc_bib_item_80">Yang et al. 2019</a>):
> The idea is to synthesize the control force that can compensate the parasitic bending and torsional torques of the flexible joints and simultaneously achieve diagonalization of the matrices M, C and K. > The idea is to synthesize the control force that can compensate the parasitic bending and torsional torques of the flexible joints and simultaneously achieve diagonalization of the matrices M, C and K.
### Multi Sensor Control {#multi-sensor-control} ### Multi Sensor Control {#sec:control_multi_sensor}
<span class="org-target" id="org-target--sec-control-multi-sensor"></span>
Improvement by the use of several sensors: Improvement by the use of several sensors:
@@ -478,9 +452,7 @@ From (<a href="#citeproc_bib_item_68">Thayer et al. 2002</a>):
| Harbin (China) | Voice Coil | Accelerometers | MIMO H-Infinity, active damping | (<a href="#citeproc_bib_item_38">Jiao et al. 2018</a>) | | Harbin (China) | Voice Coil | Accelerometers | MIMO H-Infinity, active damping | (<a href="#citeproc_bib_item_38">Jiao et al. 2018</a>) |
### Long Stroke Stewart Platforms {#long-stroke-stewart-platforms} ### Long Stroke Stewart Platforms {#sec:control_long_stroke}
<span class="org-target" id="org-target--sec-control-long-stroke"></span>
| Link to bibliography | University | Actuators | Sensors | Control | Main Object | | Link to bibliography | University | Actuators | Sensors | Control | Main Object |
|-------------------------------------------------------------------------------------------------------------------------------------------------|----------------|------------------------|------------------|--------------------------------------------------|--------------------------------------------| |-------------------------------------------------------------------------------------------------------------------------------------------------|----------------|------------------------|------------------|--------------------------------------------------|--------------------------------------------|
+2 -4
View File
@@ -23,7 +23,7 @@ The system is represented in [Figure 1](#figure--fig:siso-identification-schemat
The goal of system identification is to compute the transfer function \\(G\\) from known excitation signal \\(u\\) and from a measure of \\(y\_m\\). The goal of system identification is to compute the transfer function \\(G\\) from known excitation signal \\(u\\) and from a measure of \\(y\_m\\).
There are different ways of obtaining a model \\(G\\) of the system summarized in Table [Table 1](#table--tab:system-identification-model-types). There are different ways of obtaining a model \\(G\\) of the system summarized in [Table 1](#table--tab:system-identification-model-types).
For mechatronics systems, _frequency domain identification_ is the norm. For mechatronics systems, _frequency domain identification_ is the norm.
<a id="table--tab:system-identification-model-types"></a> <a id="table--tab:system-identification-model-types"></a>
@@ -161,9 +161,7 @@ When the complete \\(GS\\) and \\(S\\) matrices are identified, the plan estimat
\\[ \hat{\bm{G}}(j\omega) = \bm{GS}(j\omega) \bm{S\_i}^{-1}(j\omega) \\] \\[ \hat{\bm{G}}(j\omega) = \bm{GS}(j\omega) \bm{S\_i}^{-1}(j\omega) \\]
## Design of the Excitation Signal {#design-of-the-excitation-signal} ## Design of the Excitation Signal {#sec:system_identification_excitation_signal}
<span class="org-target" id="org-target--sec-system-identification-excitation-signal"></span>
### Introduction {#introduction} ### Introduction {#introduction}
+6 -12
View File
@@ -14,16 +14,14 @@ Tags
There are mainly three main types of temperature sensors: There are mainly three main types of temperature sensors:
- [Thermocouples](#org-target--sec-temperature-sensor-thermocouple) with are based on the Seebeck effect - [Thermocouples](#sec:temperature_sensor_thermocouple) with are based on the Seebeck effect
- [RTD](#org-target--sec-temperature-sensor-rtd) (Resistance Temperature Detectors): made of pure metals (Pt, Ni or Cu) - [RTD](#sec:temperature_sensor_rtd) (Resistance Temperature Detectors): made of pure metals (Pt, Ni or Cu)
They are all PTC (Positive Temperature Coefficient): PT100, PT1000, Ni100, Ni1000, ... They are all PTC (Positive Temperature Coefficient): PT100, PT1000, Ni100, Ni1000, ...
- [Thermistor](#org-target--sec-temperature-sensor-thermistor): made of metal oxide mixtures (semiconductor materials). - [Thermistor](#sec:temperature_sensor_thermistor): made of metal oxide mixtures (semiconductor materials).
They typically have a NTC (Negative Temperature Coefficient). They typically have a NTC (Negative Temperature Coefficient).
### Thermocouple {#thermocouple} ### Thermocouple {#sec:temperature_sensor_thermocouple}
<span class="org-target" id="org-target--sec-temperature-sensor-thermocouple"></span>
#### Working Principle {#working-principle} #### Working Principle {#working-principle}
@@ -101,9 +99,7 @@ Disadvantages:
- Uncertainty about 0.1K, not feasible to reach mK - Uncertainty about 0.1K, not feasible to reach mK
### RTD {#rtd} ### RTD {#sec:temperature_sensor_rtd}
<span class="org-target" id="org-target--sec-temperature-sensor-rtd"></span>
Sensitivity of PT100 is typically around . Sensitivity of PT100 is typically around .
@@ -123,9 +119,7 @@ Disadvantages:
This corresponds to approximately 0.1 degree of self heating in "still" air This corresponds to approximately 0.1 degree of self heating in "still" air
### Thermistor {#thermistor} ### Thermistor {#sec:temperature_sensor_thermistor}
<span class="org-target" id="org-target--sec-temperature-sensor-thermistor"></span>
Sensitivity of NTC is . Sensitivity of NTC is .
+6 -8
View File
@@ -82,8 +82,8 @@ Here is a list of links to:
- [Table 2](#table--tab:table-with-equations) - [Table 2](#table--tab:table-with-equations)
- Listing [Code Snippet 1](#code-snippet--lst:matlab-figure) - Listing [Code Snippet 1](#code-snippet--lst:matlab-figure)
- Specific [line of code](#org-coderef--967846-4) - Specific [line of code](#org-coderef--967846-4)
- Equation \ref{eq:numbered} - Equation \eqref{eq:numbered}
- Section - Section [Headlines](#sec:headlines)
- Bibliographic Reference (<a href="#citeproc_bib_item_3">Stanisic and Legrand 2014</a>), and (<a href="#citeproc_bib_item_2">Schulte and Davison 2011</a>; <a href="#citeproc_bib_item_1">Dominik 2010</a>; <a href="#citeproc_bib_item_3">Stanisic and Legrand 2014</a>) - Bibliographic Reference (<a href="#citeproc_bib_item_3">Stanisic and Legrand 2014</a>), and (<a href="#citeproc_bib_item_2">Schulte and Davison 2011</a>; <a href="#citeproc_bib_item_1">Dominik 2010</a>; <a href="#citeproc_bib_item_3">Stanisic and Legrand 2014</a>)
@@ -94,14 +94,14 @@ Here is some inline mathematics: \\(z = 2\\).
Unumbered equation: Unumbered equation:
\\[ F(x) = \int\_0^x f(t) dt \\] \\[ F(x) = \int\_0^x f(t) dt \\]
Using the `equation` environment in Eq. \ref{eq:numbered}. Using the `equation` environment in Eq. \eqref{eq:numbered}.
\begin{equation} \begin{equation}
\label{eq:numbered} \label{eq:numbered}
F(s) = \int\_0^\infty f(t) e^{-st} dt F(s) = \int\_0^\infty f(t) e^{-st} dt
\end{equation} \end{equation}
Using the `align` environment Equations \ref{eq:align\_1} and \ref{eq:align\_2}. Using the `align` environment Equations \eqref{eq:align\_1} and \eqref{eq:align\_2}.
\begin{align} \begin{align}
\mathcal{F}(a) &= \frac{1}{2\pi i}\oint\_\gamma \frac{f(z)}{z - a}\\,dz \label{eq:align\_1} \\\\ \mathcal{F}(a) &= \frac{1}{2\pi i}\oint\_\gamma \frac{f(z)}{z - a}\\,dz \label{eq:align\_1} \\\\
@@ -157,9 +157,7 @@ Some text.
Some text. Some text.
## Headlines {#headlines} ## Headlines {#sec:headlines}
<span class="org-target" id="org-target--sec-headlines"></span>
### Second level Headline with tags <span class="tag"><span class="_home">@home</span><span class="_work">@work</span></span> {#second-level-headline-with-tags} ### Second level Headline with tags <span class="tag"><span class="_home">@home</span><span class="_work">@work</span></span> {#second-level-headline-with-tags}
@@ -465,7 +463,7 @@ Numbering can be continued by using `+n` option as shown below.
``` ```
<div class="src-block-caption"> <div class="src-block-caption">
<span class="src-block-number"><a href="#code-snippet--lst:tikz-test-general-control-names">Code Snippet 4</a>:</span> <span class="src-block-number"><a href="#code-snippet--lst:tikz-test-general-control-names">Code Snippet 4</a>:</span>
Tikz code that is used to generate <a href="#orgd87d21e">5</a> Tikz code that is used to generate <a href="#org7b171b1">5</a>
</div> </div>
<a id="figure--fig:test-general-control-names"></a> <a id="figure--fig:test-general-control-names"></a>