diff --git a/content/article/_index.md b/content/article/_index.md
new file mode 100644
index 0000000..8410710
--- /dev/null
+++ b/content/article/_index.md
@@ -0,0 +1,8 @@
++++
+title = "Papers"
+author = ["Thomas Dehaeze"]
+type = "paper"
+draft = false
++++
+
+Here is the list of papers I took note about.
diff --git a/content/article/abir16_optim_estim_real_time_dynam.md b/content/article/abir16_optim_estim_real_time_dynam.md
new file mode 100644
index 0000000..9716a62
--- /dev/null
+++ b/content/article/abir16_optim_estim_real_time_dynam.md
@@ -0,0 +1,25 @@
++++
+title = "Optimized estimator for real-time dynamic displacement measurement using accelerometers"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Abir et al. 2016)
+
+Author(s)
+: Abir, J., Longo, S., Morantz, P., & Shore, P.
+
+Year
+: 2016
+
+
+## Bibliography {#bibliography}
+
+
+
Abir, Jonathan, Stefano Longo, Paul Morantz, and Paul Shore. 2016. “Optimized Estimator for Real-Time Dynamic Displacement Measurement Using Accelerometers.” Mechatronics 39: 1–11. doi:10.1016/j.mechatronics.2016.07.003.
+
diff --git a/content/article/alkhatib03_activ_struc_vibrat_contr.md b/content/article/alkhatib03_activ_struc_vibrat_contr.md
new file mode 100644
index 0000000..9873def
--- /dev/null
+++ b/content/article/alkhatib03_activ_struc_vibrat_contr.md
@@ -0,0 +1,232 @@
++++
+title = "Active structural vibration control: a review"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Alkhatib and Golnaraghi 2003)
+
+Author(s)
+: Alkhatib, R., & Golnaraghi, M. F.
+
+Year
+: 2003
+
+
+## Process of designing an active vibration control system {#process-of-designing-an-active-vibration-control-system}
+
+1. Analyze the structure to be controled
+2. Obtain an idealized mathematical model with FEM or experimental modal analysis
+3. Reduce the model order is necessary
+4. Analyze the resulting model: dynamics properties, types of disturbances, ...
+5. Quantify sensors and actuators requirements. Decide on their types and location
+6. Analyze the impact of the sensors and actuators on the overall dynamic characteristics
+7. Specify performance criteria and stability tradeoffs
+8. Device of the type of control algorythm to be employed and design a controller to meet the specifications
+9. Simulate the resulting controlled system on a computer
+10. If the controller does not meet the requirements, adjust the specifications or modify the type of controller
+11. Choose hardware and software and integrate the components on a pilot plant
+12. Formulate experiments and perform system identification and model updating
+13. Implement controller and carry out system test to evaluate the performance
+
+
+## Feedback control {#feedback-control}
+
+
+### Active damping {#active-damping}
+
+The objective is to reduce the resonance peaks of the closed loop transfer function.
+
+\\[T(s) = \frac{G(s)H(s)}{1+G(s)H(s)}\\]
+
+Then \\(T(s) \approx G(s)\\) except near the resonance peaks where the amplitude is reduced.
+
+This method can be realized without a model of the structure with **guaranteed stability**, granted that the actuators and sensors are **collocated**.
+
+
+### Model based feedback {#model-based-feedback}
+
+Objective: keep a control variable (position, velocity, ...) to a desired value in spite of external disturbances \\(d(s)\\).
+
+We have \\[\frac{y(s)}{d(s)} = \frac{1}{1+G(s)H(s)}\\] so we need large values of \\(G(s)H(s)\\) in the frequency range where the disturbance has considerable effect.
+
+To do so, we need a mathematical model of the system, then the control bandwidth and effectiveness are restricted by the accuracy of the model.
+Unmodeled structural dynamics may destabilize the system.
+
+
+## Feedforward Control {#feedforward-control}
+
+We need a signal that is correlated to the disturbance. Then feedforward can improve performance over simple feedback control.
+
+An adaptive filter manipulates the signal correlated to the disturbance and the output is applied to the system by the actuator.
+The filter coefficients are adapted in such a way that an error signal is minimized.
+The idea is to generate a secondary disturbance, which destructively interferes with the effect of the primary distance at the location of the error sensor.
+However, there is no guarantee that the global response is also reduced at other locations.
+
+The method is considered to be a **local technique**, in contrast to feedback which is global.
+
+Contrary to active damping which can only reduce the vibration near the resonance, **feedforward control can be effective for any frequency**.
+The major restriction to the application of feedforward adaptive filtering is the accessibility of a reference signal correlated to the disturbance.
+
+
+
+
+| Type of control | Advantages | Disadvantages |
+|--------------------------------|---------------------------------------------|-----------------------------------------------|
+| Active Damping | Simple to implement | Effective only near resonance |
+| | Does not required accurate model | |
+| | Guaranteed stability (collocated) | |
+| Model Based | Global method | Requires accurate model |
+| | Attenuate all disturbance within bandwidth | Required low delay |
+| | | Limited bandwidth |
+| | | Spillover |
+| Feedforward Adaptive filtering | No model is necessary | Error signal required |
+| | Robust to change in plant transfer function | Local method: may amplify vibration elsewhere |
+| | More effective for narrowband disturbance | Large amount of real-time computation |
+
+
+## Controllability and Observability {#controllability-and-observability}
+
+Controllability and Observability are two fundamental qualitave properties of dynamic systems.
+
+A system is said to be **controllable** if every state vector can be transform to a desirate state in finite time by the application of unconstrained control inputs.
+
+A system is said to be **observable** at time \\(t\_0\\) if for a state \\(z(t\_0)\\), there is a finite time \\(t\_1>t\_0\\) such that the knowledge of the input \\(u(t)\\) and output \\(y(t)\\) from \\(t\_0\\) to \\(t\_1\\) are sufficient to determine the state \\(z(t\_0)\\).
+
+
+## Coordinate Coupling Control {#coordinate-coupling-control}
+
+Coordinate coupling control (CCC) is an **energy-basded method**.
+
+The idea is to **transfer the vibrations** from a low or undamped oscilatory system (the plant) to a damped system (the controller).
+
+This can be implemented passively using tuned mass damper. But the key advantage of this technique is that one can replace the physical absorber with a computer model. The coupling terms can then be selected to maximise the energy transfer.
+
+
+## Robust control {#robust-control}
+
+Robust control concentrates on the **tradeoffs between performance and stability** in the presence of uncertainty in the system model as well as the exogenous inputs to which it is subjected.
+
+Uncertainty can be divided into four types:
+
+- parameter errors
+- error in model order
+- neglected disturbances
+- neglected nonlinearities
+
+The \\(\mathcal{H}\_\infty\\) controller is developed to address uncertainty by systematic means.
+A general block diagram of the control system is shown [Figure 1](#figure--fig:alkhatib03-hinf-control).
+
+A **frequency shaped filter** \\(W(s)\\) coupled to selected inputs and outputs of the plant is included.
+The outputs of this frequency shaped filter define the error ouputs used to evaluate the system performance and generate the **cost** that will be used in the design process.
+
+
+
+{{< figure src="/ox-hugo/alkhatib03_hinf_control.png" caption="Figure 1: Block diagram for robust control" >}}
+
+The generalized plan \\(G\\) can be partitionned according to the input-output variables. And we have that the transfer function matrix from \\(d\\) to \\(z\\) is:
+\\[ H\_{z/d} = G\_{z/d} + G\_{z/u} K (I - G\_{y/u} K)^{-1} G\_{y/d} \\]
+This transfer function matrix contains measures of performance and stability robustness.
+
+The objective of \\(\mathcal{H}\_\infty\\) control is to design an admissible control \\(u(s)=K(s)y(s)\\) such that \\(\\| H\_{z/d} \\|\_\infty\\) is minimum.
+
+
+## Optimal Control {#optimal-control}
+
+The control \\(u(t)\\) is designed to minimize a cost function \\(J\\), given the initial conditions \\(z(t\_0)\\) and \\(\dot{z}(t\_0)\\) subject to the constraint that:
+
+\begin{align\*}
+\dot{z} &= Az + Bu\\\\
+y &= Cz
+\end{align\*}
+
+One such cost function appropriate to a vibration control is
+\\[J = 1/2 \int\_{t\_0}^{t\_f} ( z^T A z + u^T R u ) dt\\]
+Where \\(Q\\) and \\(R\\) and positive definite symmetric weighting matrices.
+
+
+## State Observers (Estimators) {#state-observers--estimators}
+
+It is not always possible to determine the entire state variables. There are usualy too many degrees of freedom and only limited measurements.
+
+The state vector \\(z(t)\\) can be estimated independently of the control problem, and the resulting estimate \\(\hat{z}(t)\\) can be used.
+
+
+## Intelligent Structure and Controller {#intelligent-structure-and-controller}
+
+Intelligent structure would have the capability to:
+
+- recognize the present dynamic state of its own structure and evaluate the functional performance of the structure
+- identify functional descriptions of external and internal disturbances
+- detect changes in structural properties and changes in external and internal disturbances
+- predict possible future changes in structural properties
+- make intelligent decisions regarding compensations for disturbances and adequately generale actuation forces
+- learn from past performance to improve future actions
+
+Two main methodologies:
+
+- artificial neural networks
+- fuzzy logic
+
+
+## Adaptive Control {#adaptive-control}
+
+Adaptive control is frequently used to control systems whose parameters are unknown, uncertain, or slowly varying.
+
+The design of an adaptive controller involves several steps:
+
+- selection of a controller structure with adjustable parameters
+- selection of an adaptation law for adjusting those parameters
+- selection of a performance index
+- real-time evaluation of the performance with respect to some desired behavior
+- real-time plant identification and model updating
+- real-time adjustment of the controller parameters to bring the performance closer to the desired behavior
+
+It essentially consists of a real-time system identification technique integrated with a control algorithm.
+
+Two different methods
+
+- **Direct method**: the controller parameters are adjusted directly based on the error between the measured and desired outputs.
+- **Indirect method**: the computations are divided into two consecutive phases. First, the plant model is first estimated in real time. Second, the controller parameters are modified based on the most recent updated plant parameters.
+
+
+## Active Control Effects on the System {#active-control-effects-on-the-system}
+
+
+
+{{< figure src="/ox-hugo/alkhatib03_1dof_control.png" caption="Figure 2: 1 DoF control of a spring-mass-damping system" >}}
+
+Consider the control system [Figure 2](#figure--fig:alkhatib03-1dof-control), the equation of motion of the system is:
+\\[ m\ddot{x} + c\dot{x} + kx = f\_a + f \\]
+
+The controller force can be expressed as: \\(f\_a = -g\_a \ddot{x} + g\_v \dot{x} + g\_d x\\). The equation of motion becomes:
+\\[ (m+g\_a)\ddot{x} + (c+g\_v)\dot{x} + (k+g\_d)x = f \\]
+
+Depending of the type of signal used, the active control adds/substracts mass, damping and stiffness.
+
+
+## Time Delays {#time-delays}
+
+One of the limits to the performance of active control is the time delay in controllers and actuators. Time delay introduces phase shift, which deteriorates the controller performance or even causes instability in the system.
+
+
+## Optimal Placement of Actuators {#optimal-placement-of-actuators}
+
+The problem of optimizing the locations of the actuators can be more significant than the control law itself.
+
+If the actuator is placed at the wrong location, the system will require a greater force control. In that case, the system is said to have a **low degree of controllability**.
+
+
+## Bibliography {#bibliography}
+
+
+
Alkhatib, Rabih, and M. F. Golnaraghi. 2003. “Active Structural Vibration Control: A Review.” The Shock and Vibration Digest 35 (5): 367–83. doi:10.1177/05831024030355002.
+
diff --git a/content/article/bibel92_guidel_h.md b/content/article/bibel92_guidel_h.md
new file mode 100644
index 0000000..61087a5
--- /dev/null
+++ b/content/article/bibel92_guidel_h.md
@@ -0,0 +1,183 @@
++++
+title = "Guidelines for the selection of weighting functions for h-infinity control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [H Infinity Control]({{< relref "h_infinity_control.md" >}})
+
+Reference
+: (Bibel and Malyevac 1992)
+
+Author(s)
+: Bibel, J. E., & Malyevac, D. S.
+
+Year
+: 1992
+
+
+## Properties of feedback control {#properties-of-feedback-control}
+
+
+
+{{< figure src="/ox-hugo/bibel92_control_diag.png" caption="Figure 1: Control System Diagram" >}}
+
+From the [Figure 1](#figure--fig:bibel92-control-diag), we have:
+
+\begin{align\*}
+y(s) &= T(s) r(s) + S(s) d(s) - T(s) n(s)\\\\
+e(s) &= S(s) r(s) - S(s) d(s) - S(s) n(s)\\\\
+u(s) &= S(s)K(s) r(s) - S(s)K(s) d(s) - S(s)K(s) n(s)
+\end{align\*}
+
+With the following definitions
+
+- \\(L(s) = G(s)K(s)\\) is the **loop transfer matrix**
+- \\(S(s) = [I+G(s)K(s)]^{-1}\\) is the **Sensitivity** function matrix
+- \\(T(s) = [I+G(s)K(s)]^{-1}G(s)K(s)\\) is the **Transmissibility** function matrix
+
+
+
+\\[ S(s) + T(s) = 1 \\]
+
+
+
+
+
+- **Command following**: \\(S=0\\) and \\(T=1\\) => large gains
+- **Disturbance rejection**: \\(S=0\\) => large gains
+- **Sensor noise attenuation**: \\(T\\) small where the noise is concentrated
+- **Control Sensitivity minimization**: \\(K S\\) small
+- **Robustness to modeling errors**: \\(T\\) small in the frequency range of the expected model undertainties
+
+
+
+
+## SISO tradeoff {#siso-tradeoff}
+
+We want \\(S\\) small for command following and disturbance rejection.
+We want \\(T\\) small to remain insensitive to sensor noise and modeling errors and to reduce control sensitivity.
+
+However we cannot keep both \\(S\\) and \\(T\\) small as \\(S(s)+T(s)=1\\).
+
+We must determine some **tradeoff** between the sensitivity and the complementary sensitivity functions.
+
+Usually, reference signals and disturbances occur at low frequencies, while noise and modeling errors are concentrated at high frequencies. The tradeoff, in a SISO sense, is to make \\(|S(j\omega)|\\) small as low frequencies and \\(|T(j\omega)|\\) small at high frequencies.
+
+
+## \\(H\_\infty\\) and weighting functions {#h-infty-and-weighting-functions}
+
+
+
+\\(\mathcal{H}\_\infty\\) control is a design technique with a state-space computation solution that utilizes frequency-dependent weighting functions to tune the controller's performance and robustness characteristics.
+
+
+
+
+
+{{< figure src="/ox-hugo/bibel92_general_plant.png" caption="Figure 2: \\(\mathcal{H}\_\infty\\) control framework" >}}
+
+New design framework ([Figure 2](#figure--fig:bibel92-general-plant)): \\(P(s)\\) is the **generalized plant** transfer function matrix:
+
+- \\(w\\): exogenous inputs
+- \\(z\\): regulated performance output
+- \\(u\\): control inputs
+- \\(y\\): measured output variables
+
+The plant \\(P\\) has two inputs and two outputs, it can be decomposed into four sub-transfer function matrices:
+\\[P = \begin{bmatrix}P\_{11} & P\_{12} \\\ P\_{21} & P\_{22} \end{bmatrix}\\]
+
+
+## Lower Linear Fractional Transformation {#lower-linear-fractional-transformation}
+
+The transformation from the input \\(w\\) to the output \\(z\\), \\(T\_{zw}\\) is called the **Lower Linear Fractional Transformation** \\(F\_l (P, K)\\).
+
+
+
+The \\(H\_\infty\\) control problem is to find a controller that minimizes \\(\\| T\_{zw} \\|\_\infty\\) over the space of all realizable controllers \\(K(s)\\) that stabilize the closed-loop system.
+
+
+## Weights for inputs/outputs signals {#weights-for-inputs-outputs-signals}
+
+Since \\(S\\) and \\(T\\) cannot be minimized together at all frequency, **weights are introduced to shape the solutions**. Not only can \\(S\\) and \\(T\\) be weighted, but other regulated performance variables and inputs ([Figure 3](#figure--fig:bibel92-hinf-weights)).
+
+
+
+{{< figure src="/ox-hugo/bibel92_hinf_weights.png" caption="Figure 3: Input and Output weights in \\(\mathcal{H}\_\infty\\) framework" >}}
+
+The weights on the input and output variables are selected to reflect the spatial and **frequency dependence** of the respective signals and performance specifications.
+
+These inputs and output weighting functions are defined as rational, stable and **minimum-phase transfer function** (no poles or zero in the right half plane).
+
+
+## General Guidelines for Weight Selection: \\(W\_S\\) {#general-guidelines-for-weight-selection-w-s}
+
+\\(W\_S\\) is selected to reflect the desired **performance characteristics**.
+The sensitivity function \\(S\\) should have low gain at low frequency for good tracking performance and high gain at high frequencies to limit overshoot.
+We have to select \\(W\_S\\) such that \\({W\_S}^-1\\) reflects the desired shape of \\(S\\).
+
+
+
+- **Low frequency gain**: set to the inverse of the desired steady state tracking error
+- **High frequency gain**: set to limit overshoot (\\(0.1\\) to \\(0.5\\) is a good compromise between overshoot and response speed)
+- **Crossover frequency**: chosen to limit the maximum closed-loop time constant (\\(\omega\_c \approx 1/\tau\\))
+
+
+
+
+## General Guidelines for Weight Selection: \\(W\_T\\) {#general-guidelines-for-weight-selection-w-t}
+
+We want \\(T\\) near unity for good tracking of reference and near zero for noise suppresion.
+
+
+
+A high pass weight is usualy used on \\(T\\) because the noise energy is mostly concentrated at high frequencies. It should have the following characteristics:
+
+- The **crossover frequency** is chosen to **limit the closed-loop bandwidth**
+- The **high frequency gain** is set high to proide **sensor noise rejection** and high frequency gain attenuation
+
+
+
+When using both \\(W\_S\\) and \\(W\_T\\), it is important to make sure that the magnitude of theise weights at the crossover frequency is less that one to not violate \\(S+T=1\\).
+
+
+## Unmodeled dynamics weighting function {#unmodeled-dynamics-weighting-function}
+
+Another method of limiting the controller bandwidth and providing high frequency gain attenuation is to use a high pass weight on an **unmodeled dynamics uncertainty block** that may be added from the plant input to the plant output ([Figure 4](#figure--fig:bibel92-unmodeled-dynamics)).
+
+
+
+{{< figure src="/ox-hugo/bibel92_unmodeled_dynamics.png" caption="Figure 4: Unmodeled dynamics model" >}}
+
+The weight is chosen to cover the expected worst case magnitude of the unmodeled dynamics. A typical unmodeled dynamics weighting function is shown [Figure 5](#figure--fig:bibel92-weight-dynamics).
+
+
+
+{{< figure src="/ox-hugo/bibel92_weight_dynamics.png" caption="Figure 5: Example of unmodeled dynamics weight" >}}
+
+
+## Inputs and Output weighting function {#inputs-and-output-weighting-function}
+
+It is possible to **weight the control input and actuator rate**.
+This is used to **prevent actuator saturation** and **limit amplification of sensor noise signals** on the control input signal.
+
+Typically actuator input weights are constant over frequency and set at the inverse of the saturation limit.
+
+
+## Order of the weighting functions {#order-of-the-weighting-functions}
+
+**The order of the optimal controller is equal to the order of the nominal plant model plus the order of the weights**. The complexity of the controller is increase as the order of the weights increases.
+
+**The order of the weights should be kept reasonably low** to reduce the order of th resulting optimal compensator and avoid potential convergence problems in the DK interactions.
+
+
+## Bibliography {#bibliography}
+
+
+
Bibel, J. E., and D. S. Malyevac. 1992. “Guidelines for the Selection of Weighting Functions for H-Infinity Control.” Naval Surface Warfare Center Dahlgren div va.
+
diff --git a/content/article/bryson93_contr_spacec_aircr.md b/content/article/bryson93_contr_spacec_aircr.md
new file mode 100644
index 0000000..80892a3
--- /dev/null
+++ b/content/article/bryson93_contr_spacec_aircr.md
@@ -0,0 +1,58 @@
++++
+title = "Control of spacecraft and aircraft"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Bryson 1993)
+
+Author(s)
+: Bryson, A. E.
+
+Year
+: 1993
+
+
+## 9.2.3 Roll-Off Filters {#9-dot-2-dot-3-roll-off-filters}
+
+[Spillover Effect]({{< relref "spillover_effect.md" >}})
+
+> Synthesizing control logic using only one vibration mode means we are consciously **neglecting the higher-order vibration modes**.
+> When doing this, it is a good idea to insert "roll-off" into the control logic, so that the loop-transfer gain decreases rapidly with frequency beyond the control bandwidth.
+> This reduces the possibility of destabilizing the unmodelled higher frequency dynamics ("**spillover**").
+
+
+## 9.5 Robust Compensator Synthesis {#9-dot-5-robust-compensator-synthesis}
+
+> LQG synthesis using feedback of estimated states will produce almost the same good response as LQR [...] for systems with control system bandwidths that are well below the frequency of the first vibration mode.
+> However, it may not be true for systems with higher control system bandwidths, even when one or more vibration modes are included in the control design model.
+
+
+
+> If a rate sensor is co-located with an actuator on a flexible body, and its signal is fed back to the actuator, all vibration modes are stabilized.
+> If a rate sensor is not co-located with an actuator on a flexible body, ans its signal is fed back to the actuator, some vibration modes are stabilized and others are destabilized, depending on the location of the sensor relative to the actuator.
+
+
+## 9.5.2 Low-Authority Control/High-Authority Control [HAC-HAC]({{< relref "hac_hac.md" >}}) {#9-dot-5-dot-2-low-authority-control-high-authority-control-hac-hac--hac-hac-dot-md}
+
+> [Figure 1](#figure--fig:bryson93-hac-lac) shows the concept of Low-Authority Control/High-Authority Control (LAC/HAC) is the s-plane.
+> LAC uses a co-located rate sensor to add damping to all the vibratory modes (but not the rigid-body mode).
+> HAC uses a separated displacement sensor to stabilize the rigid body mode, which slightly decreases the damping of the vibratory modes but not enough to produce instability (called "spillover")
+
+
+
+{{< figure src="/ox-hugo/bryson93_hac_lac.png" caption="Figure 1: HAC-LAC control concept" >}}
+
+> LAC/HAC is usually insensitive to small deviation of the plant dynamics away from the design values, that is, it is **robust** to plant parameter changes.
+
+
+## Bibliography {#bibliography}
+
+
+
Bryson, Arthur Earl. 1993. Control of Spacecraft and Aircraft. Princeton university press Princeton, New Jersey.
Butler, H. 2011. “Position Control in Lithographic Equipment.” IEEE Control Systems 31 (5): 28–47. doi:10.1109/mcs.2011.941882.
+
diff --git a/content/article/chen00_ident_decoup_contr_flexur_joint_hexap.md b/content/article/chen00_ident_decoup_contr_flexur_joint_hexap.md
new file mode 100644
index 0000000..26e75ff
--- /dev/null
+++ b/content/article/chen00_ident_decoup_contr_flexur_joint_hexap.md
@@ -0,0 +1,108 @@
++++
+title = "Identification and decoupling control of flexure jointed hexapods"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (Chen and McInroy 2000)
+
+Author(s)
+: Chen, Y., & McInroy, J.
+
+Year
+: 2000
+
+
+## Abstract {#abstract}
+
+> By exploiting properties of the joint space mass-inertia matrix of flexure jointed hexapods, a new **decoupling method** is proposed.
+> The new decoupling method, through a **static** input-output mapping, transforms the highly coupled 6 inputs 6 outputs dynamics into 6 independent single-input single-output channels.
+> Prior decoupling control algorithms imposed severe constraints on the allowable geometry, workspace and payload.
+> This paper derives a new algorithm which removes these constraints, thus greatly expanding the applications.
+> Based on the new decoupling algorithm, an **identification algorithm** is introduced to identify the **joint space mass-inertia matrix** using payload acceleration and base forces.
+> This algorithm can be used for precision payload calibration, thus improving performance and removing the labor required to design the control for different payloads.
+> The new decoupling algorithm is experimentally compared to earlier techniques.
+> These experimental results indicate that the new approach is practical, and improves performance.
+
+
+## Introduction {#introduction}
+
+Typical decoupling algorithm ([Decoupled Control]({{< relref "decoupled_control.md" >}})) impose two constraints:
+
+- the payload mass/inertia matrix is diagonal
+- the geometry of the platform and attachment of the payload must be carefully chosen
+
+This limits the applications significantly.
+
+The algorithm derived herein removes these constraints, thus greatly expanding the potential applications.
+
+
+## Dynamic Model of Flexure Jointed Hexapods {#dynamic-model-of-flexure-jointed-hexapods}
+
+The derivation of the dynamic model is done in (McInroy 1999) ([Notes]({{< relref "mcinroy99_dynam.md" >}})).
+
+
+
+{{< figure src="/ox-hugo/chen00_flexure_hexapod.png" caption="Figure 1: A flexured joint Hexapod. {P} is a cartesian coordiante frame located at (and rigidly connected to) the payload's center of mass. {B} is a frame attached to the (possibly moving) base, and {U} is a universal inertial frame of reference" >}}
+
+In the joint space, the dynamics of a flexure jointed hexapod are written as:
+
+\begin{equation}
+ \vec{f}\_b = \vec{f}\_m - \bm{K}(\vec{l} - \vec{l}\_r) - \bm{B} \dot{\vec{l}}
+\end{equation}
+
+\begin{aligned}
+ & \left( {}^U\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}^{-1} \right) \ddot{\vec{l}} + \\\\
+ & {}^U\_B\bm{R} \bm{J}^T \bm{B} \dot{\vec{l}} + {}^U\_B\bm{R}\bm{J}^T \bm{K}(\vec{l} - \vec{l}\_r) = \\\\
+ & {}^U\_B\bm{R} \bm{J}^T \vec{f}\_m + \vec{\mathcal{F}}\_e + \vec{\mathcal{F}} + \vec{\mathcal{C}} - \\\\
+ & \left( {}^U\_B\bm{R} \bm{J}^T \bm{M}\_s + {}^U\_P\bm{R} {}^P\bm{M}\_x {}^U\_P\bm{R}^T \bm{J}\_c \bm{J}\_B^{-1} \right) \ddot{\vec{q}}\_s
+\end{aligned}
+
+where:
+
+- \\(\bm{J}\\) is the \\(6 \times 6\\) hexapod Jacobian relating payload Cartesian movements, expressed in {P}, to strut length changes in the joint space
+- \\({}^B\_U\bm{R}\\) is the \\(6 \times 6\\) rotation matrix from the base frame {B} to the universal inertial frame of reference {U} (it consists of two identical \\(3 \times 3\\) rotation matrices forming a block diagonal \\(6 \times 6\\) matrix)
+- \\(\bm{J}\_c\\) and \\(\bm{J}\_B\\) are \\(6 \times 6\\) Jacobian matrices capturing base motion
+- \\({}^P\bm{M}\_x\\) is the \\(6 \times 6\\) mass-inertia matrix of the payload found with respect to the payload frame {P}
+- \\(\bm{M}\_s\\) is a diagonal \\(6 \times 6\\) matrix containing the moving mass of each strut
+- \\(\bm{B}\\) and \\(\bm{K}\\) are \\(6 \times 6\\) diagonal matrices containing the damping of stiffness, respectively, of each strut
+- \\(\vec{l}\\) is the \\(6 \times 1\\) vector of strut lengths, and \\(\vec{l}\_r\\) is the constant vector of relaxed strut length
+- \\(\vec{f}\_b\\) is the vector of forces exerted at the bottom of the strut
+- \\(\vec{f}\_m\\) is the vector of strut motor forces
+- \\(\ddot{\vec{q}}\_s\\) is a \\(6 \times 1\\) vector of base accelerations along each strut plus some Coriolis terms
+- \\(\vec{\mathcal{F}}\_e\\) is a vector of payload exogenous generalized forces
+- \\(\vec{\mathcal{C}}\\) is a vector containing all the Coriolis and centripetal terms except the Coriolis terms in \\(\ddot{\vec{q}}\_s\\)
+- \\(\vec{\mathcal{G}}\\) is a vector containing all gravity terms
+
+\begin{aligned}
+ \bm{M}\_p & \ddot{\vec{p}}\_s + \bm{B} \dot{\vec{p}}\_s + \bm{K} \vec{p}\_s = \vec{f}\_m + \\\\
+ & \bm{M}\_q \ddot{\vec{q}}\_s + \bm{B} \dot{\vec{q}}\_s + \bm{J}^{-T} {}^U\_B\bm{R}^T \vec{\mathcal{F}}\_e
+\end{aligned}
+
+where
+
+- \\(\bm{M}\_p = \bm{J}^{-T} {}^B\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}^{-1} + \bm{M}\_s\\)
+- \\(\bm{M}\_q = \bm{J}^{-T} {}^B\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}^{-1} - \bm{J}^{-T} {}^B\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}\_c \bm{J}\_B^{-1}\\)
+
+\\(\bm{M}\_p\\) and \\(\bm{M}\_q\\) are joint space mass-inertia matrices.
+
+
+## Decoupling the Dynamics of Flexure Jointed Hexapods {#decoupling-the-dynamics-of-flexure-jointed-hexapods}
+
+
+## Identification of Joint Space Mass-Inertia Matrix {#identification-of-joint-space-mass-inertia-matrix}
+
+
+## Experimental Results {#experimental-results}
+
+
+## Bibliography {#bibliography}
+
+
+
Chen, Yixin, and J.E. McInroy. 2000. “Identification and Decoupling Control of Flexure Jointed Hexapods.” In Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065). doi:10.1109/robot.2000.844878.
+
McInroy, J. E. 1999. “Dynamic Modeling of Flexure Jointed Hexapods for Control Purposes.” In Proceedings of the 1999 IEEE International Conference on Control Applications (Cat. No.99CH36328). doi:10.1109/cca.1999.806694.
Chen, Y., and J. E. McInroy. 2004. “Decoupled Control of Flexure-Jointed Hexapods Using Estimated Joint-Space Mass-Inertia Matrix.” IEEE Transactions on Control Systems Technology 12 (3): 413–21. doi:10.1109/tcst.2004.824339.
+
diff --git a/content/article/chesne16_enhan_dampin_flexib_struc_using_force_feedb.md b/content/article/chesne16_enhan_dampin_flexib_struc_using_force_feedb.md
new file mode 100644
index 0000000..d11d040
--- /dev/null
+++ b/content/article/chesne16_enhan_dampin_flexib_struc_using_force_feedb.md
@@ -0,0 +1,92 @@
++++
+title = "Enhanced damping of flexible structures using force feedback"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Active Damping]({{< relref "active_damping.md" >}}), [Integral Force Feedback]({{< relref "integral_force_feedback.md" >}})
+
+Reference
+: (Chesné, Milhomem, and Collette 2016)
+
+Author(s)
+: Simon Chesné, Milhomem, A., & Collette, C.
+
+Year
+: 2016
+
+One problem of Integral Force Feedback (IFF) is that the achievable damping decreases at high frequency.
+A modification of the IFF is proposed in order to significantly increase the damping of **a** selected mode.
+
+The test system is shown in [Figure 1](#figure--fig:chesne16-2dof-system).
+
+Classical IFF corresponds to:
+
+\begin{equation}
+H(s) = \frac{g}{s}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/chesne16_2dof_system.png" caption="Figure 1: Two DoF system representing a flexible structuer controlled by an active mount" >}}
+
+The proposed controller, called **alpha controller** is:
+
+\begin{equation}
+H(s) = g \frac{s + \alpha}{s^2}
+\end{equation}
+
+where \\(\alpha\\) is a parameter.
+
+A new pair of pole/zero has been introduced.
+The new pole is located at \\(s = 0\\) and the zeros at \\(s = -\alpha\\).
+
+For \\(\omega > \alpha\\) the controller is essentially an integrator.
+For \\(\omega < \alpha\\) the controller is a double integrator.
+
+Depending on the chosen \\(\alpha\\) we obtain different root locus as shown in [Figure 2](#figure--fig:chesne16-root-locus-alpha).
+There is an optimal gain \\(\alpha^\star\\) at which the attainable damping of the flexible mode is maximized.
+
+
+
+{{< figure src="/ox-hugo/chesne16_root_locus_alpha.png" caption="Figure 2: Root locus with the alpha controller for different values of \\(\alpha\\)" >}}
+
+The obtained transmissibility is shown without controller, for classical IFF and for \\(\alpha\\) controller in [Figure 3](#figure--fig:chesne16-transmissibility).
+
+Using the \\(\alpha\\) controller, the compliance is however degraded a lot.
+
+
+
+{{< figure src="/ox-hugo/chesne16_transmissibility.png" caption="Figure 3: Transmissibility \\(x\_1/x\_0\\)" >}}
+
+In order to recover the compliance at low frequency, high pass filters can be added to the controller.
+
+\begin{equation}
+H(s) = g \frac{s + \alpha}{(s + \beta)^2}
+\end{equation}
+
+The condition for stability found here is:
+
+\begin{equation}
+\alpha \ge \beta/2
+\end{equation}
+
+
+
+The active damping of flexible structures with collocated force sensor/actuator pairs have been reviewed in this Note.
+In the first part of the Note, two limitations of the integral force feedback (IFF) have been discussed, which are the limited damping of flexible modes and the loss of compliance.
+By slightly modifying the controller, it has been shown that the active damping of a target mode can be significantly increased.
+Analytical formulas of the optimal parameters have been derived.
+In the second part, the loss of compliance inherent to IFF has been addressed.
+It has been shown that, when a high-pass filter is inserted into the IFF controller, the compliance at low frequency can be recovered but the unconditional stability is lost.
+On the other side, with the new proposed control law, the stability is always guaranteed even when using a high-pass filter.
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Chesné, S., A. Milhomem, and C. Collette. 2016. “Enhanced Damping of Flexible Structures Using Force Feedback.” Journal of Guidance, Control, and Dynamics 39 (7): 1654–58. doi:10.2514/1.g001620.
+
diff --git a/content/article/claeyssen07_amplif_piezoel_actuat.md b/content/article/claeyssen07_amplif_piezoel_actuat.md
new file mode 100644
index 0000000..9b3c554
--- /dev/null
+++ b/content/article/claeyssen07_amplif_piezoel_actuat.md
@@ -0,0 +1,41 @@
++++
+title = "Amplified piezoelectric actuators: static & dynamic applications"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}})
+
+Reference
+: (Claeyssen et al. 2007)
+
+Author(s)
+: Claeyssen, F., Letty, R. L., Barillot, F., & Sosnicki, O.
+
+Year
+: 2007
+
+The amplified piezo actuator APA is an external leveraged actuator based on a shell used both for the ceramic **pre stress** and for the ceramic **motion magnification**.
+
+It is based on low voltage multilayer piezoelectric ceramics (PZT type).
+In static conditions, their free strain \\(S\_p\\) is typically 0.1% when driven at 150 V.
+
+The displacement amplification effect is related in a first approximation to the ratio of the shell long axis length to the short axis height.
+The flatter is the actuator, the higher is the amplification.
+
+Piezoceramics can bear large compressive stress but they can not bear tensile forces with a good reliability.
+The usual way to solve this limitation consists in prestressing the ceramics by maintaining a compressive stress.
+This introduces another force limit: if the internal dynamic forces are above the prestress, the actuator is endangered because of the ceramic goes in tensile stress and also the ceramic stack looses contact with the shell interface.
+
+For many APA actuators, the amplitude of maximal applicable external force is close to half the actuator blocked force.
+
+The maximum dynamic force achievable by the actuator is determined by the prestress.
+The prestress design allows a peak force equal to half the blocked force.
+
+
+## Bibliography {#bibliography}
+
+
+
Claeyssen, F., R. Le Letty, F. Barillot, and O. Sosnicki. 2007. “Amplified Piezoelectric Actuators: Static & Dynamic Applications.” Ferroelectrics 351 (1): 3–14. doi:10.1080/00150190701351865.
+
diff --git a/content/article/collette11_review_activ_vibrat_isolat_strat.md b/content/article/collette11_review_activ_vibrat_isolat_strat.md
new file mode 100644
index 0000000..bbf9c54
--- /dev/null
+++ b/content/article/collette11_review_activ_vibrat_isolat_strat.md
@@ -0,0 +1,82 @@
++++
+title = "Review of active vibration isolation strategies"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Collette, Janssens, and Artoos 2011)
+
+Author(s)
+: Collette, C., Janssens, S., & Artoos, K.
+
+Year
+: 2011
+
+
+## Background and Motivations {#background-and-motivations}
+
+
+### Passive Isolation Tradeoffs {#passive-isolation-tradeoffs}
+
+1DoF Equations:
+
+\begin{equation}
+\boxed{X(s) = \underbrace{\frac{cs + k}{ms^2 + cs + k}}\_{T\_{wx}(s)} W(s) + \underbrace{\frac{1}{ms^2 + cs + k}}\_{T\_{Fx}(s)} F(s)}
+\end{equation}
+
+- \\(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.
+
+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.
+
+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\\)).
+
+**First Trade-off**: Trade-off between damping and isolation.
+
+To improve the transmissibility, the resonance frequency can be decreased.
+However, the systems becomes more sensitive to external force \\(F\\) applied on the equipment.
+
+**Second trade-off**: Trade-off between isolation and robustness to external force
+
+
+### Active Isolation {#active-isolation}
+
+We apply a feedback control.
+The general expression of the force delivered by the actuator is \\(f = g\_a \ddot{x} + g\_v \dot{x} + g\_p x\\). \\(g\_a\\), \\(g\_v\\) and \\(g\_p\\) are constant gains.
+
+
+
+
+| **Feedback Signal** | **Effect** | **Applications** |
+|---------------------|------------------------------------------|------------------|
+| Acceleration | Add virtual mass | Few |
+| Velocity | Add virtual dashpot connected to the sky | Sky-Hook Damping |
+| Position | Add virtual spring connected to the sky | Sky-Hook Spring |
+
+
+## Practical Realizations {#practical-realizations}
+
+
+## Sensor Limitations {#sensor-limitations}
+
+
+## Conclusions {#conclusions}
+
+
+
+{{< figure src="/ox-hugo/collette11_comp_isolation_strategies.png" caption="Figure 1: Comparison of Active Vibration Isolation Strategies" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Collette, C., S. Janssens, and K. Artoos. 2011. “Review of Active Vibration Isolation Strategies.” Recent Patents on Mechanical Engineeringe 4 (3): 212–19. doi:10.2174/2212797611104030212.
+
diff --git a/content/article/collette14_vibrat.md b/content/article/collette14_vibrat.md
new file mode 100644
index 0000000..e2fb779
--- /dev/null
+++ b/content/article/collette14_vibrat.md
@@ -0,0 +1,107 @@
++++
+title = "Vibration control of flexible structures using fusion of inertial sensors and hyper-stable actuator-sensor pairs"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Sensor Fusion]({{< relref "sensor_fusion.md" >}})
+
+Reference
+: (Collette and Matichard 2014)
+
+Author(s)
+: Collette, C., & Matichard, F.
+
+Year
+: 2014
+
+
+## Introduction {#introduction}
+
+[Sensor Fusion]({{< relref "sensor_fusion.md" >}}) is used to combine the benefits of different types of sensors:
+
+- Relative sensor for DC positioning capability at low frequency
+- Inertial sensors for isolation at high frequency
+- Force sensor / collocated sensor to improve the robustness
+
+
+## Different types of sensors {#different-types-of-sensors}
+
+In this paper, three types of sensors are used. Their advantages and disadvantages are summarized [Table 1](#table--tab:sensors).
+
+> Several types of sensors can be used for the feedback control of vibration isolation systems:
+>
+> - Feedback control based on **relative motion sensors** (inductive, capactive, ferromagnetic sensors...) typically permits to servo-position a system or platform relative to a reference (e.g. floor or support base), but does not provide isolation from the ground motion.
+> - Feedback control based on **force sensors** typically lowers the effective natural frequency, and therefore increases the isolation, but sacrifices the systems compliance in doing so.
+> - Feedback control based on **inertial sensors** (geophones, seismometers, accelerometers...) improves not only the vibration isolation but also the compliance. Inertial sensors are, however, AC coupled and noisy at low frequencies.
+
+
+
+
+| Sensors | Advantages | Disadvantages |
+|------------------|----------------------------------|---------------------------------------|
+| Relative motion | Servo-position | No isolation from ground motion |
+| Force sensors | Improve isolation | Increase compliance |
+| Inertial sensors | Improve isolation and compliance | AC couple and noisy at high frequency |
+
+
+## Inertial Control and sensor fusion configurations {#inertial-control-and-sensor-fusion-configurations}
+
+For a simple 1DoF model, two fusion-sensor configuration are studied. The results are summarized [Table 2](#table--tab:fusion-trade-off).
+
+
+
+
+| Low freq. sensor | High freq. sensor | Transmissibility | Compliance | Trade-off |
+|------------------|-------------------|------------------|------------|----------------------------------------------------|
+| Inertial | Force sensor | Unchanged | Degraded | Sensor noise filtering / compliance degradation |
+| Inertial | Relative sensor | Degraded | Unchanged | Isolation in the bandwidth / amplification outside |
+
+
+## Flexible structure {#flexible-structure}
+
+Flexibility is added between the inertial sensor and the actuator.
+Now the sensor and actuator are not collocated anymore and the system is unstable because there is no zero between the two poles.
+We use sensor fusion to obtain stability at high frequency.
+
+
+### Inertial and small accelerometer {#inertial-and-small-accelerometer}
+
+The idea is to use a small accelerometer which is easier to locate near the actuator at high frequency.
+However, it is important to verify that the noise introduced by the accelerometer does not degrades too much the isolation performance.
+
+
+### Inertial and force sensor {#inertial-and-force-sensor}
+
+Here the advantage is that the deformation mode is almost not present in the open-loop transfer function.
+This simplifies the loop shaping of the controller.
+
+
+### Inertial and relative sensor {#inertial-and-relative-sensor}
+
+The relative sensor introduces coupling between both side of the actuator which induces degradation of the isolation at high frequency. However, the compliance remains unchanged at high frequency.
+
+
+## Conclusion {#conclusion}
+
+Fusion of inertial instruments with sensors collocated with the actuator permits to increase the feedback control bandwidth of active isolation systems.
+
+Three types of sensors have been considered for the high frequency part of the fusion:
+
+- The fusion with a **relative sensor** improves the stability but compromises the transmissibility. It can be of interested for stiff suspension where high frequency isolation can be sacrified to improve stability.
+- The fusion with an **accelerometre** is used to increase the loop gain. However, as the accelerometer is not dual with the actuator, there is no guaranty stability when the isolation stage is mounted on a flexible support.
+- The fusion with a **force sensor** can be used to increase the loop gain with little effect on the compliance and passive isolation, provided that the blend is possible and that no active damping of flexible modes is required.
+
+
+## Bibliography {#bibliography}
+
+
+
Collette, C., and F Matichard. 2014. “Vibration Control of Flexible Structures Using Fusion of Inertial Sensors and Hyper-Stable Actuator-Sensor Pairs.” In International Conference on Noise and Vibration Engineering (ISMA2014).
+
diff --git a/content/article/collette15_sensor_fusion_method_high_perfor.md b/content/article/collette15_sensor_fusion_method_high_perfor.md
new file mode 100644
index 0000000..8d25378
--- /dev/null
+++ b/content/article/collette15_sensor_fusion_method_high_perfor.md
@@ -0,0 +1,32 @@
++++
+title = "Sensor fusion methods for high performance active vibration isolation systems"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Sensor Fusion]({{< relref "sensor_fusion.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Collette and Matichard 2015)
+
+Author(s)
+: Collette, C., & Matichard, F.
+
+Year
+: 2015
+
+In order to have good stability margins, it is common practice to collocate sensors and actuators. This ensures alternating poles and zeros along the imaginary axis. Then, each phase lag introduced by the poles is compensated by phase lead introduced by the zeroes. This guarantees stability and such system is referred to as **hyperstable**.
+
+In this paper, we study and compare different sensor fusion methods combining inertial sensors at low frequency with sensors adding stability at high frequency.
+The stability margins of the controller can be significantly increased with no or little effect on the low-frequency active isolation, provided that the two following conditions are fulfilled:
+
+- the high frequency sensor and the actuator are dual
+- there exists a bandwidth where we can superimpose the open loop transfer functions obtained with the two sensors.
+
+
+## Bibliography {#bibliography}
+
+
+
Collette, C., and F. Matichard. 2015. “Sensor Fusion Methods for High Performance Active Vibration Isolation Systems.” Journal of Sound and Vibration 342: 1–21. doi:10.1016/j.jsv.2015.01.006.
+
diff --git a/content/article/csencsics20_explor_paret_front_actuat_techn.md b/content/article/csencsics20_explor_paret_front_actuat_techn.md
new file mode 100644
index 0000000..fe3d539
--- /dev/null
+++ b/content/article/csencsics20_explor_paret_front_actuat_techn.md
@@ -0,0 +1,124 @@
++++
+title = "Exploring the pareto fronts of actuation technologies for high performance mechatronic systems"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Csencsics and Schitter 2020)
+
+Author(s)
+: Csencsics, E., & Schitter, G.
+
+Year
+: 2020
+
+
+## Abstract {#abstract}
+
+> This paper proposes a novel method for estimating the limitations of individual actuation technologies for a desired system class based on analytically obtained relations, which can be used to systematically trade off desired range and speed specifications in the design phase.
+> The method is presented along the example of **fast steering mirrors** with the tradeoff limit curves estimated for the established **piezoelectric**, **lorentz force** and **hybrid reluctance** actuation technologies.
+
+
+
+{{< figure src="/ox-hugo/csencsics20_fsm_schematic.png" caption="Figure 1: Fast Steering Mirror system. The main components are: mirror, actuators, position sensors and suspension system." >}}
+
+
+## Fast Steering Mirrors {#fast-steering-mirrors}
+
+
+### Application area and performance specification {#application-area-and-performance-specification}
+
+
+
+ Table 1:
+ FSM performance requirements for two application
+
+
+| Application | Pointing | Scanning |
+|-------------------|-----------------|----------|
+| System Range | large | large |
+| System Dimensions | arbitrary | compact |
+| Main objective | dist. rejection | tracking |
+| Bandwidth | high | high |
+| Motion amplitude | small | large |
+| Mover inertia | arbitrary | small |
+| Precision | high | high |
+
+
+### Safe operating area {#safe-operating-area}
+
+The concept of the Safe Operating Area (SOA) relates the frequency of a sinusoidal reference to the maximum admissible scan amplitude that still stays within the limits of the system.
+
+From [Figure 2](#figure--fig:csencsics20-soa) we can already see that piezo are typically used for system with high bandwidth and small range.
+
+
+
+{{< figure src="/ox-hugo/csencsics20_soa.png" caption="Figure 2: Measured safe operating area of closed-loop FSM systems with sinusoidal reference signals. Piezo actuated in blue, lorentz force actuated in red and hybrid reluctance actuated in green." >}}
+
+
+## Limitations of actuator technology {#limitations-of-actuator-technology}
+
+
+### Piezo actuation {#piezo-actuation}
+
+Piezo actuated FMS are in general **high stiffness** system, for which the **bandwidth limitation** for feedback control is typically given by the **first mechanical resonance**.
+
+
+
+{{< figure src="/ox-hugo/csencsics20_typical_piezo_fsm.png" caption="Figure 3: Piezo actuated FSM cross section" >}}
+
+The angular range of the FSM is:
+
+\begin{equation}
+\phi = \frac{L/1000}{2 d}
+\end{equation}
+
+with \\(L\\) the length of the stack, and d the distance between the stacks and the center of rotation (the factor 1000 is linked to the fact that typical piezo stack have a store equal to 0.1% of their length).
+
+The first resonance frequency is:
+
+\begin{equation}
+f\_{PZA} = \frac{1}{2\pi L}\sqrt{\frac{3E}{\rho\_\text{piezo}}}
+\end{equation}
+
+with \\(E\\) the elastic modulus and \\(\rho\_\text{piezo}\\) the density of the piezo material.
+
+As the resonance limits the achievable bandwidth, we therefore have that \\(f\_{\text{max,PZA}} \propto 1/\phi\\).
+
+
+### Lorentz force actuation {#lorentz-force-actuation}
+
+Lorentz force actuated FSM are in general **low stiffness** systems, which typically have a control bandwidth beyond the suspension mode that is usually limited by the **internal modes of the moving part**.
+
+The mover's mass is dominating the dynamics of low stiffness systems beyond the suspension mode.
+
+
+
+{{< figure src="/ox-hugo/csencsics20_typical_lorentz_fsm.png" caption="Figure 4: Lorentz force actuator designs." >}}
+
+\begin{equation}
+f\_\text{max,LFA} = \frac{1}{2\pi} k\_\text{LFA} \sqrt{\frac{1}{\phi J\_\text{init} + \Delta\_J + 2 d \phi^2}}
+\end{equation}
+
+
+### Hybrid reluctance force actuation {#hybrid-reluctance-force-actuation}
+
+
+
+{{< figure src="/ox-hugo/csencsics20_typical_hybrid_reluctance_fsm.png" caption="Figure 5: Hybrid reluctance actuator designs" >}}
+
+
+## Pareto front estimates for FSM systems {#pareto-front-estimates-for-fsm-systems}
+
+
+
+{{< figure src="/ox-hugo/csencsics20_pareto_estimate.png" caption="Figure 6: Two dimensional performance space for FSM systems showing the tradeoff between range and bandwidth. Commercially available (symbols) as well as academically reported systems (dots) actuated by piezo (blue), Lorentz force (red) and reluctance actuators (green) are depicted." >}}
+
+
+
Csencsics, Ernst, and Georg Schitter. 2020. “Exploring the Pareto Fronts of Actuation Technologies for High Performance Mechatronic Systems.” IEEE/ASME Transactions on Mechatronics. IEEE.
+
diff --git a/content/article/dasgupta00_stewar_platf_manip.md b/content/article/dasgupta00_stewar_platf_manip.md
new file mode 100644
index 0000000..78c32d8
--- /dev/null
+++ b/content/article/dasgupta00_stewar_platf_manip.md
@@ -0,0 +1,41 @@
++++
+title = "The stewart platform manipulator: a review"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}})
+
+Reference
+: (Dasgupta and Mruthyunjaya 2000)
+
+Author(s)
+: Dasgupta, B., & Mruthyunjaya, T.
+
+Year
+: 2000
+
+
+
+
+| | **Advantages** | **Disadvantages** |
+|--------------|---------------------------|-----------------------|
+| **Serial** | Maneuverability | Poor precision |
+| | Large workspace | Bends under high load |
+| | | Vibrate at high speed |
+| **Parallel** | High stiffness | Small workspace |
+| | Good dynamic performances | |
+| | Precise positioning | |
+
+The generalized Stewart platforms consists of two rigid bodies (referred to as the base and the platform) connected through six extensible legs, each with spherical joints at both ends.
+
+
+## Bibliography {#bibliography}
+
+
+
Dasgupta, B., and T. S. Mruthyunjaya. 2000. “The Stewart Platform Manipulator: A Review.” Mechanism and Machine Theory 35 (1): 15–40. doi:10.1016/s0094-114x(99)00006-3.
+
diff --git a/content/article/devasia07_survey_contr_issues_nanop.md b/content/article/devasia07_survey_contr_issues_nanop.md
new file mode 100644
index 0000000..87ff3c4
--- /dev/null
+++ b/content/article/devasia07_survey_contr_issues_nanop.md
@@ -0,0 +1,34 @@
++++
+title = "A survey of control issues in nanopositioning"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Devasia, Eleftheriou, and Moheimani 2007)
+
+Author(s)
+: Devasia, S., Eleftheriou, E., & Moheimani, S. R.
+
+Year
+: 2007
+
+- Talks about Scanning Tunneling Microscope (STM) and Scanning Probe Microscope (SPM)
+- [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}): Creep, Hysteresis, Vibrations, Modeling errors
+- Interesting analysis about Bandwidth-Precision-Range tradeoffs
+- Control approaches for piezoelectric actuators: feedforward, Feedback, Iterative, Sensorless controls
+
+
+
+{{< figure src="/ox-hugo/devasia07_piezoelectric_tradeoff.png" caption="Figure 1: Tradeoffs between bandwidth, precision and range" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Devasia, Santosh, Evangelos Eleftheriou, and SO Reza Moheimani. 2007. “A Survey of Control Issues in Nanopositioning.” IEEE Transactions on Control Systems Technology 15 (5). IEEE: 802–23.
+
diff --git a/content/article/fleming10_nanop_system_with_force_feedb.md b/content/article/fleming10_nanop_system_with_force_feedb.md
new file mode 100644
index 0000000..3a1bd2c
--- /dev/null
+++ b/content/article/fleming10_nanop_system_with_force_feedb.md
@@ -0,0 +1,128 @@
++++
+title = "Nanopositioning system with force feedback for high-performance tracking and vibration control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Sensor Fusion]({{< relref "sensor_fusion.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}})
+
+Reference
+: (Fleming 2010)
+
+Author(s)
+: Fleming, A.
+
+Year
+: 2010
+
+
+## Summary {#summary}
+
+- The noise generated by a piezoelectric force sensor is much less than a capacitive sensor
+- Dynamical model of a piezoelectric stack actuator and piezoelectric force sensor
+- Noise of a piezoelectric force sensor
+- IFF with a piezoelectric stack actuator and piezoelectric force sensor
+- A force sensor is used as a displacement sensor below the frequency of the first zero
+- Sensor fusion architecture with a capacitive sensor and a force sensor and using complementary filters
+- Virtual sensor fusion architecture (called low-frequency bypass)
+- Analog implementation of the control strategies to avoid quantization noise, finite resolution and sampling delay
+
+
+## Model of a multi-layer monolithic piezoelectric stack actuator {#model-of-a-multi-layer-monolithic-piezoelectric-stack-actuator}
+
+
+
+{{< figure src="/ox-hugo/fleming10_piezo_model.png" caption="Figure 1: Schematic of a multi-layer monolithic piezoelectric stack actuator model" >}}
+
+The actuator experiences an internal stress in response to an applied voltage.
+This stress is represented by the voltage dependent force \\(F\_a\\) and is related to free displacement by
+\\[ \Delta L = \frac{F\_a}{k\_a} \\]
+
+- \\(\Delta L\\) is the change in actuator length in [m]
+- \\(k\_a\\) is the actuator stiffness in [N/m]
+
+The developed force \\(F\_a\\) is related to the applied voltage by:
+\\[ \Delta L = d\_{33} n V\_a \\]
+
+- \\(d\_{33}\\) is the piezoelectric strain constant in [m/V]
+- \\(n\\) is the number of layers
+- \\(V\_a\\) is the applied voltage in [V]
+
+Combining the two equations, we obtain:
+\\[ F\_a = d\_{33} n k\_a V\_a \\]
+
+The ratio of the developed force to applied voltage is \\(d\_{33} n k\_a\\) in [N/V].
+We denote this constant by \\(g\_a\\) and:
+\\[ F\_a = g\_a V\_a, \quad g\_a = d\_{33} n k\_a \\]
+
+
+## Dynamics of a piezoelectric force sensor {#dynamics-of-a-piezoelectric-force-sensor}
+
+Piezoelectric force sensors provide a high sensitivity and bandwidth with low noise at high frequencies.
+
+If a **single wafer** of piezoelectric material is sandwiched between the actuator and platform:
+\\[ D = d\_{33} T \\]
+
+- \\(D\\) is the amount of generated charge per unit area in \\([C/m^2]\\)
+- \\(T\\) is the stress in \\([N/m^2]\\)
+- \\(d\_{33}\\) is the piezoelectric strain constant in \\([m/V] = [C/N]\\)
+
+The generated charge is then
+\\[ q = d\_{33} F\_s \\]
+
+If an **n-layer** piezoelectric transducer is used as a force sensor, the generated charge is then:
+\\[ q = n d\_{33} F\_s \\]
+
+---
+
+We can use a **charge amplifier** to measure the force \\(F\_s\\).
+
+{{< figure src="/ox-hugo/fleming10_charge_ampl_piezo.png" caption="Figure 2: Electrical model of a piezoelectric force sensor is shown in gray. Developed charge \\(q\\) is proportional to the strain and hence the force experienced by the sensor. Op-amp charge amplifier produces an output voltage \\(V\_s\\) equal to \\(-q/C\_s\\)" >}}
+
+The output voltage \\(V\_s\\) is equal to
+\\[ V\_s = -\frac{q}{C\_s} = -\frac{n d\_{33}F\_s}{C\_s} \\]
+that is, the scaling between the force and voltage is \\(-\frac{n d\_{33}F\_s}{C\_s}\ [V/N]\\) .
+
+---
+
+We can also use a voltage amplifier.
+In that case, the generated charge is deposited on the transducer's internal capacitance.
+
+The open-circuit voltage of a piezoelectric force sensor is:
+\\[ V\_s = \frac{n d\_{33} F\_s}{C} \\]
+
+- \\(C\\) is the transducer capacitance defined by \\(C = n \epsilon\_T A / h\\) in [F]
+ - \\(A\\) is the area in \\([m^2]\\)
+ - \\(h\\) is the layer thickness in [m]
+ - \\(\epsilon\_T\\) is the dielectric permittivity under a constant stress in \\([F/m]\\)
+
+We obtain
+\\[ V\_s = g\_s F\_s, \quad g\_s = \frac{n d\_{33}}{C} \\]
+
+
+## Noise of a piezoelectric force sensor {#noise-of-a-piezoelectric-force-sensor}
+
+As piezoelectric sensors have a capacitive source impedance, the sensor noise density \\(N\_{V\_s}(\omega)\\) is primarily due to current noise \\(i\_n\\) reacting the capacitive source impedance:
+\\[ N\_{V\_s}(\omega) = i\_n \frac{1}{C \omega} \\]
+
+- \\(N\_{V\_s}\\) is the measured noise in \\(V/\sqrt{\text{Hz}}\\)
+- \\(i\_n\\) is the current noise in \\(A/\sqrt{\text{Hz}}\\)
+- \\(C\\) is the capacitance of the piezoelectric in \\(F\\)
+
+The current noise density of a general purpose LM833 FET-input op-amp is \\(0.5\ pA/\sqrt{\text{Hz}}\\).
+The capacitance of a piezoelectric stack is typically between \\(1 \mu F\\) and \\(100 \mu F\\).
+
+
+## Tested feedback control strategies {#tested-feedback-control-strategies}
+
+
+
+{{< figure src="/ox-hugo/fleming10_fb_control_strats.png" caption="Figure 3: Comparison of: (a) basic integral control. (b) direct tracking control. (c) dual-sensor feedback. (d) low frequency bypass" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” IEEE/ASME Transactions on Mechatronics 15 (3): 433–47. doi:10.1109/tmech.2009.2028422.
+
diff --git a/content/article/fleming12_estim.md b/content/article/fleming12_estim.md
new file mode 100644
index 0000000..970596e
--- /dev/null
+++ b/content/article/fleming12_estim.md
@@ -0,0 +1,25 @@
++++
+title = "Estimating the resolution of nanopositioning systems from frequency domain data"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Fleming 2012)
+
+Author(s)
+: Fleming, A. J.
+
+Year
+: 2012
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, Andrew J. 2012. “Estimating the Resolution of Nanopositioning Systems from Frequency Domain Data.” In 2012 IEEE International Conference on Robotics and Automation. doi:10.1109/icra.2012.6224850.
+
diff --git a/content/article/fleming13_review_nanom_resol_posit_sensor.md b/content/article/fleming13_review_nanom_resol_posit_sensor.md
new file mode 100644
index 0000000..d32547c
--- /dev/null
+++ b/content/article/fleming13_review_nanom_resol_posit_sensor.md
@@ -0,0 +1,189 @@
++++
+title = "A review of nanometer resolution position sensors: operation and performance"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Position Sensors]({{< relref "position_sensors.md" >}})
+
+Reference
+: (Fleming 2013)
+
+Author(s)
+: Fleming, A. J.
+
+Year
+: 2013
+
+- Define concise performance metric and provide expressions for errors sources (non-linearity, drift, noise)
+- Review current position sensor technologies and compare their performance
+
+
+## Sensor Characteristics {#sensor-characteristics}
+
+
+### Calibration and nonlinearity {#calibration-and-nonlinearity}
+
+Usually quoted as a percentage of the fill-scale range (FSR):
+
+\begin{equation}
+ \text{mapping error (\\%)} = \pm 100 \frac{\max{}|e\_m(v)|}{\text{FSR}}
+\end{equation}
+
+With \\(e\_m(v)\\) is the mapping error.
+
+
+
+{{< figure src="/ox-hugo/fleming13_mapping_error.png" caption="Figure 1: The actual position versus the output voltage of a position sensor. The calibration function \\(f\_{cal}(v)\\) is an approximation of the sensor mapping function \\(f\_a(v)\\) where \\(v\\) is the voltage resulting from a displacement \\(x\\). \\(e\_m(v)\\) is the residual error." >}}
+
+
+### Drift and Stability {#drift-and-stability}
+
+If the shape of the mapping function actually varies with time, the maximum error due to drift must be evaluated by finding the worst-case mapping error.
+
+
+
+{{< figure src="/ox-hugo/fleming13_drift_stability.png" caption="Figure 2: The worst case range of a linear mapping function \\(f\_a(v)\\) for a given error in sensitivity and offset." >}}
+
+
+### Bandwidth {#bandwidth}
+
+The bandwidth of a position sensor is the frequency at which the magnitude of the transfer function \\(P(s) = v(s)/x(s)\\) drops by \\(3\\,dB\\).
+
+Although the bandwidth specification is useful for predicting the resolution of sensor, it reveals very little about the measurement errors caused by sensor dynamics.
+
+The frequency domain position error is
+
+\begin{equation}
+ \begin{aligned}
+ e\_{bw}(s) &= x(s) - v(s) \\\\
+ &= x(s) (1 - P(s))
+ \end{aligned}
+\end{equation}
+
+If the actual position is a sinewave of peak amplitude \\(A = \text{FSR}/2\\):
+
+\begin{equation}
+ \begin{aligned}
+ e\_{bw} &= \pm \frac{\text{FSR}}{2} |1 - P(s)| \\\\
+ &\approx \pm A n \frac{f}{f\_c}
+ \end{aligned}
+\end{equation}
+
+with \\(n\\) is the low pass filter order corresponding to the sensor dynamics and \\(f\_c\\) is the measurement bandwidth.
+
+Thus, the sensor bandwidth must be significantly higher than the operating frequency if dynamic errors are to be avoided.
+
+
+### Noise {#noise}
+
+In addition to the actual position signal, all sensors produce some additive measurement noise.
+In many types of sensor, the majority of noise arises from the thermal noise in resistors and the voltage and current noise in conditioning circuit transistors.
+These noise processes can usually be approximated by a Gaussian random process.
+
+A Gaussian random process is usually described by its autocorrelation function or its Power Spectral Density.
+
+The autocorrelation function of a random process \\(\mathcal{X}\\) is
+
+\begin{equation}
+ R\_{\mathcal{X}}(\tau) = E[\mathcal{X}(t)\mathcal{X}(t + \tau)]
+\end{equation}
+
+where \\(E\\) is the expected value operator.
+
+The variance of the process is equal to \\(R\_\mathcal{X}(0)\\) and is the expected value of the varying part squared:
+
+\begin{equation}
+ \text{Var} \mathcal{X} = E \left[ (\mathcal{X} - E[\mathcal{X}])^2 \right]
+\end{equation}
+
+The standard deviation \\(\sigma\\) is the square root of the variance:
+
+\begin{equation}
+ \sigma\_\mathcal{X} = \sqrt{\text{Var} \mathcal{X}}
+\end{equation}
+
+The standard deviation is also the Root Mean Square (RMS) value of a zero-mean random process.
+
+The Power Spectral Density \\(S\_\mathcal{X}(f)\\) of a random process represents the distribution of power (or variance) across frequency \\(f\\).
+
+For example, if the random process under consideration was measured in volts, the power spectral density would have the units of \\(V^2/\text{Hz}\\).
+
+The Power Spectral Density can be obtained from the autocorrelation function from the Wiener-Khinchin relation:
+
+\begin{equation}
+ S\_{\mathcal{X}} = 2 \mathcal{F}\\{ R\_\mathcal{X}(\tau) \\} = 2 \int\_{-\infty}^{\infty} R\_\mathcal{X}(\tau) e^{-2j\pi f \tau} d\tau
+\end{equation}
+
+If the power Spectral Density is known, the variance of the generating process can be found from the area under the curve:
+
+\begin{equation}
+ \sigma\_\mathcal{X}^2 = E[\mathcal{X}^2(t)] = R\_\mathcal{X}(0) = \int\_0^\infty S\_\mathcal{X}(f) df
+\end{equation}
+
+Rather than plotting the frequency distribution of power, it is often convenient to plot the frequency distribution of the standard deviation, which is referred to as the spectral density.
+It is related to the power spectral density by a square root:
+
+\begin{equation}
+ \text{spectral density} = \sqrt{S\_\mathcal{X}(f)}
+\end{equation}
+
+The units of \\(\sqrt{S\_\mathcal{X}(f)}\\) are \\(\text{units}/\sqrt{Hz}\\).
+
+The spectral density if preferred in the electronics literature as the RMS value of a noise process can be determined directly from the noise density and effective bandwidth.
+
+
+### Resolution {#resolution}
+
+The random noise of a position sensor causes an uncertainty in the measured position.
+If the distance between two measured locations is smaller than the uncertainty, it is possible to mistake one point for the other.
+
+To characterize the resolution, we use the probability that the measured value is within a certain error bound.
+
+If the measurement noise is approximately Gaussian, the resolution can be quantified by the standard deviation \\(\sigma\\) (RMS value).
+
+The empirical rule states that there is a \\(99.7\\%\\) probability that a sample of a Gaussian random process lie within \\(\pm 3 \sigma\\).
+This if we define the resolution as \\(\delta = 6 \sigma\\), we will referred to as the \\(6\sigma\text{-resolution}\\).
+
+Another important parameter that must be specified when quoting resolution is the sensor bandwidth.
+There is usually a trade-off between bandwidth and resolution ([Figure 3](#figure--fig:tradeoff-res-bandwidth)).
+
+
+
+{{< figure src="/ox-hugo/fleming13_tradeoff_res_bandwidth.png" caption="Figure 3: The resolution versus banwidth of a position sensor." >}}
+
+Many type of sensor have a limited full-scale-range (FSR) and tend to have an approximated proportional relationship between the resolution and range.
+As a result, it is convenient to consider the ratio of resolution to the FSR, or equivalently, the dynamic range (DNR).
+A convenient method for reporting this ratio is in parts-per-million (ppm):
+
+\begin{equation}
+ \text{DNR}\_{\text{ppm}} = 10^6 \frac{\text{full scale range}}{6\sigma\text{-resolution}}
+\end{equation}
+
+
+## Comparison and summary {#comparison-and-summary}
+
+
+
+ Table 1:
+ Summary of position sensor characteristics. The dynamic range (DNR) and resolution are approximations based on a full-scale range of \(100\,\mu m\) and a first order bandwidth of \(1\,kHz\)
+
Fleming, A. J. 2013. “A Review of Nanometer Resolution Position Sensors: Operation and Performance.” Sensors and Actuators a: Physical 190: 106–26. doi:10.1016/j.sna.2012.10.016.
+
diff --git a/content/article/fleming15_low_order_dampin_track_contr.md b/content/article/fleming15_low_order_dampin_track_contr.md
new file mode 100644
index 0000000..0ba6c77
--- /dev/null
+++ b/content/article/fleming15_low_order_dampin_track_contr.md
@@ -0,0 +1,25 @@
++++
+title = "Low-order damping and tracking control for scanning probe systems"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Fleming, Teo, and Leang 2015)
+
+Author(s)
+: Fleming, A. J., Teo, Y. R., & Leang, K. K.
+
+Year
+: 2015
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, Andrew J., Yik Ren Teo, and Kam K. Leang. 2015. “Low-Order Damping and Tracking Control for Scanning Probe Systems.” Frontiers in Mechanical Engineering 1. doi:10.3389/fmech.2015.00014.
+
diff --git a/content/article/furutani04_nanom_cuttin_machin_using_stewar.md b/content/article/furutani04_nanom_cuttin_machin_using_stewar.md
new file mode 100644
index 0000000..9cdb95a
--- /dev/null
+++ b/content/article/furutani04_nanom_cuttin_machin_using_stewar.md
@@ -0,0 +1,42 @@
++++
+title = "Nanometre-cutting machine using a stewart-platform parallel mechanism"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (Furutani, Suzuki, and Kudoh 2004)
+
+Author(s)
+: Furutani, K., Suzuki, M., & Kudoh, R.
+
+Year
+: 2004
+
+- Lever mechanism to amplify the motion of piezoelectric stack actuators
+- Use of flexure joints
+- Eddy current displacement sensors for control (decentralized)
+
+{{< figure src="/ox-hugo/furutani04_ctrl_arch.png" >}}
+
+- Isotropic performance (cubic configuration even if not said so)
+
+Possible sources of error:
+
+- position error of the link ends in assembly => simulation of position error and it is not significant
+- Inaccurate modelling of the links
+- insufficient generative force
+- unwanted deformation of the links
+
+To minimize the errors, a calibration is done between the required leg length and the wanted platform pose.
+Then, it is fitted with 4th order polynomial and included in the control architecture.
+
+
+## Bibliography {#bibliography}
+
+
+
Furutani, K., M. Suzuki, and R. Kudoh. 2004. “Nanometre-Cutting Machine Using a Stewart-Platform Parallel Mechanism.” Measurement Science and Technology 15 (2): 467–74. doi:10.1088/0957-0233/15/2/022.
Gao, W., S.W. Kim, H. Bosse, H. Haitjema, Y.L. Chen, X.D. Lu, W. Knapp, A. Weckenmann, W.T. Estler, and H. Kunzmann. 2015. “Measurement Technologies for Precision Positioning.” CIRP Annals 64 (2): 773–96. doi:10.1016/j.cirp.2015.05.009.
+
diff --git a/content/article/garg07_implem_chall_multiv_contr.md b/content/article/garg07_implem_chall_multiv_contr.md
new file mode 100644
index 0000000..3736b88
--- /dev/null
+++ b/content/article/garg07_implem_chall_multiv_contr.md
@@ -0,0 +1,42 @@
++++
+title = "Implementation challenges for multivariable control: what you did not learn in school!"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Multivariable Control]({{< relref "multivariable_control.md" >}})
+
+Reference
+: (Garg 2007)
+
+Author(s)
+: Garg, S.
+
+Year
+: 2007
+
+Discusses:
+
+- When to use multivariable control and when not to?
+- Two major issues with implementing multivariable control: **gain scheduling** and **integrator wind up protection**
+
+> Inline simple gain and phase margin measured for SISO, "robustness" determination of multivariable control requires complex analyses using **singular value techniques** and **Monte Carlo** simulations.
+
+**When to use multivariable control**:
+
+- System has high input/output coupling and not much separation between loop bandwidth
+- System is complex with large number of states
+- When sequential SISO loop closure will not meet performance requirements
+
+Importance of having a mechanism to limit the control rate in the synthesis process.
+The control rate should be weighted appropriately in order to not saturate the system and stay in the linearity regime.
+
+- importance of scaling the plant prior to synthesis and also replacing pure integrators with slow poles
+
+
+## Bibliography {#bibliography}
+
+
+
Garg, Sanjay. 2007. “Implementation Challenges for Multivariable Control: What You Did Not Learn in School!” In AIAA Guidance, Navigation and Control Conference and Exhibit. doi:10.2514/6.2007-6334.
+
diff --git a/content/article/garrido12_centr_multiv_contr_by_simpl_decoup.md b/content/article/garrido12_centr_multiv_contr_by_simpl_decoup.md
new file mode 100644
index 0000000..805ad3d
--- /dev/null
+++ b/content/article/garrido12_centr_multiv_contr_by_simpl_decoup.md
@@ -0,0 +1,120 @@
++++
+title = "Centralized Multivariable Control By Simplified Decoupling"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Decoupled Control]({{< relref "decoupled_control.md" >}})
+
+Reference
+: (Garrido, Vázquez, and Morilla 2012)
+
+Author(s)
+: Garrido, J., Francisco V\\'azquez, & Morilla, F.
+
+Year
+: 2012
+
+
+## Introduction {#introduction}
+
+Most decoupling approaches use the conventional decoupling scheme in [Figure 1](#figure--fig:garrido12-decoupling-control-system) with:
+
+- \\(G(s)\\) the process matrix
+- \\(D(s)\\) the decoupler matrix
+- \\(C(s)\\) the diagonal control matrix
+
+The design of the decoupler is obtained from:
+
+\begin{equation}
+D(s) = G^{-1} (s) \cdot Q(s)
+\end{equation}
+
+where \\(Q(s)\\) is the desired apparent process which is a diagonal matrix.
+
+The main problem of this methodology is the fact that the complexity of the decoupler elements increases for high dimensional MIMO processes, which may require model reductions.
+
+An alternative decoupling methods, called _inverted decoupling_, maintains very simple apparent processes and decoupler element independently of the system size.
+However, inverted decoupling cannot be applied to processes with multivariable [Right Half Plane Zeros]({{< relref "right_half_plane_zeros.md" >}}).
+
+
+
+{{< figure src="/ox-hugo/garrido12_decoupling_control_system.png" caption="Figure 1: Block diagram of a decoupling control system" >}}
+
+This work focuses on one of the most extended forms of conventional decoupling called simplified decoupling, in which \\(n\\) elements of the decoupler are set to unity.
+When the system has two inputs and two outputs (TITO), the simplified decoupling \\(G(s)\\) is given by:
+
+\begin{equation}
+D(s) = \begin{bmatrix}
+1 & -g\_{12}(s)/g\_{11}(s) \\\\
+-g\_{21}(s)/g\_{22}(s) & 1
+\end{bmatrix}
+\end{equation}
+
+And the decoupled apparent process \\(Q(s)\\) is given by:
+
+\begin{equation}
+Q(s) = G(s) \cdot D(s) = \begin{bmatrix}
+g\_{11}(s) - \frac{g\_{21}(s g\_{12}(s))}{g\_{22}(s)} & 0 \\\\
+0 & g\_{22}(s) - \frac{g\_{21}(s)g\_{12}(s)}{g\_{11}(s)}
+\end{bmatrix}
+\end{equation}
+
+In cases where the system is larger than 2x2, the decoupler elements set to unity are always the diagonal ones as found using:
+
+\begin{equation}
+D(s) = G(s)^{-1} (\text{diag}(G(s)^{-1}))^{-1}
+\end{equation}
+
+In this work, a simplified decoupling strategy is proposed for stable processes with possibly RHP zeros and time delays.
+
+
+## Methodology {#methodology}
+
+Assuming that the process \\(G(s)\\) may have RHP zeros and time delays, but does not have any unstable poles, the decoupler matrix \\(D(s)\\) is obtained as follows (one of many possible configurations):
+
+\begin{equation}
+D(s) = \begin{bmatrix}
+1 & \frac{\text{adj}G\_{12}}{\text{adj}G\_{22}} & \dots & \frac{\text{adj}G\_{1n}}{\text{adj}\_{nn}} \\\\
+\frac{\text{adj}G\_{21}}{\text{adj}G\_{11}} & 1 & \dots & \frac{\text{adj}G\_{2n}}{\text{adj}\_{nn}} \\\\
+\vdots & \vdots & \ddots & \vdots \\\\
+\frac{\text{adj}G\_{n1}}{\text{adj}G\_{11}} & \frac{\text{adj}G\_{n2}}{\text{adj}G\_{22}} & \dots & 1
+\end{bmatrix}
+\end{equation}
+
+And the decoupled apparent plant is:
+
+\begin{equation}
+A(s) = \begin{bmatrix}
+\frac{|G|}{\text{adj}G\_{11}} & 0 & \dots & 0 \\\\
+0 & \frac{|G|}{\text{adj}G\_{22}} & \dots & 0 \\\\
+\vdots & \vdots & \ddots & \vdots \\\\
+0 & 0 & \dots & \frac{|G|}{\text{adj}G\_{nn}}
+\end{bmatrix}
+\end{equation}
+
+where \\(|G(s)|\\) is the determinant of \\(G(s)\\), \\(\text{adj}G(s)\\) is the adjugate matrix of \\(G(s)\\), that is, the transpose of the cofactor matrix of \\(G(s)\\).
+
+The proposed general simplified decoupling control is performed in three steps:
+
+1. select a configuration: select the \\(n\\) elements of \\(D(s)\\) to be set to unity, one for each column
+2. Compose the decoupler elements of \\(D(s)\\)
+3. Design the \\(n\\) controllers of the diagonal control \\(C(s)\\) for the decoupled processes
+
+The realizability requirement for the decoupler is that all of its elements must be proper, causal and stable.
+For processes with time delays, non-minimum phase zeros or different relative degrees, direct calculation of the decoupler element can lead to elements with RHP poles or negative relative degrees.
+
+Several advice for the proper chose of the configuration are given in the paper.
+
+
+## Design and practical considerations {#design-and-practical-considerations}
+
+It is usually necessary to approximate the expressions of \\(|G(s)|\\) and \\(\text{adj}G(s)\\) as it usually give non-rational expressions.
+
+
+## Bibliography {#bibliography}
+
+
+
Garrido, Juan, Francisco Vázquez, and Fernando Morilla. 2012. “Centralized Multivariable Control by Simplified Decoupling.” Journal of Process Control 22 (6): 1044–62. doi:10.1016/j.jprocont.2012.04.008.
+
diff --git a/content/article/geng95_intel_contr_system_multip_degree.md b/content/article/geng95_intel_contr_system_multip_degree.md
new file mode 100644
index 0000000..3c41890
--- /dev/null
+++ b/content/article/geng95_intel_contr_system_multip_degree.md
@@ -0,0 +1,28 @@
++++
+title = "An intelligent control system for multiple degree-of-freedom vibration isolation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Geng et al. 1995)
+
+Author(s)
+: Geng, Z. J., Pan, G. G., Haynes, L. S., Wada, B. K., & Garba, J. A.
+
+Year
+: 1995
+
+
+
+{{< figure src="/ox-hugo/geng95_control_structure.png" caption="Figure 1: Local force feedback and adaptive acceleration feedback for active isolation" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Geng, Z. J., G. G. Pan, L. S. Haynes, B. K. Wada, and J. A. Garba. 1995. “An Intelligent Control System for Multiple Degree-of-Freedom Vibration Isolation.” Journal of Intelligent Material Systems and Structures 6 (6): 787–800. doi:10.1177/1045389x9500600607.
+
diff --git a/content/article/geraldes23_fly_scan_orien_motion_analy.md b/content/article/geraldes23_fly_scan_orien_motion_analy.md
new file mode 100644
index 0000000..8e775f8
--- /dev/null
+++ b/content/article/geraldes23_fly_scan_orien_motion_analy.md
@@ -0,0 +1,84 @@
++++
+title = "Fly-scan-oriented motion analyses and upgraded beamline integration architecture for the high-dynamic double-crystal monochromator at sirius/lnls"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Geraldes et al. 2023)
+
+Author(s)
+: Geraldes, R. R., Luiz, S. A. L., Neto, J. L. d. B., Telles Ren\\'e Silva Soares, Reis, R. D. d., Calligaris, G. A., Witvoet, G., …
+
+Year
+: 2023
+
+
+## Effect of different d spacing {#effect-of-different-d-spacing}
+
+> Thus, if different d-spacings are found in the two crystals, an ideal energy matching for maximum flux would be related to slightly different \\(\theta\_B\\) in the crystals, such that the monochromatic beam would no longer be exactly parallel to the incoming beam, and **the magnitude of the deviation would be variable over the operational energy range**.
+
+
+## Effect of pitch error on source motion {#effect-of-pitch-error-on-source-motion}
+
+> Then, considering that variations of the virtual source are often proportionally related to shifts of the beam at the sample through the beamline optics, **a common requirement is having them small compared with the source size**.
+> With **X-ray source sizes of about 5 um** and **L commonly of the order of 30m** for modern beamlines, a typical budget of 10% pushes **pitch errors to the range of 10 nrad** only.
+
+
+## Correct pitch errors with gap adjustments {#correct-pitch-errors-with-gap-adjustments}
+
+> It can be seen that displacements in the virtual source related to pitch errors may be at least partly compensated by energy-dependent beam offset corrections via gap adjustments.
+
+
+## Allow some flux loss in order to have a more stable beam {#allow-some-flux-loss-in-order-to-have-a-more-stable-beam}
+
+> The angular boundaries for pitch around an ideal energy tuning, which might be already out or perfect parallelism due to d-spacing variations, can be derived as a fraction of the angular bandwidth of the Darwin width of the crystals.
+> This can be used, for example, to **evaluate acceptable flux losses in trying to keep the incoming and outgoing beam parallel despite thermal effects**.
+
+The pitch bandwidth for typical Si111 and Si311 can vary from 100urad at low energy to <1urad at high energy.
+
+
+## Analytical effect of miss-cut on the change of beam height {#analytical-effect-of-miss-cut-on-the-change-of-beam-height}
+
+> This indicates that in reality the **gap motion range may need to be larger by a few percent than nominally expected**, that sensitivities at low angles may vary by more than one order of magnitude, that **calibrations for fixed exit may require more than the simpler trigonometric relation** of (2), and that the required velocities and accelerations related to the fly scan are in practice different from nominal ones.
+
+
+### Estimate the effect of the miss-cut on the beam error for our values of angles and miss-cut {#estimate-the-effect-of-the-miss-cut-on-the-beam-error-for-our-values-of-angles-and-miss-cut}
+
+
+## High dynamic range: low energy and high energy issues {#high-dynamic-range-low-energy-and-high-energy-issues}
+
+> Hence, **differences of three to four orders of magnitude occur for the gap velocity for a given energy variation rate** within the operational range of the HD-DCM.
+>
+> For a control-based instrument like the HD-DCM, these aspects place demanding specifications on metrology and acquisition hardware, since very high resolution and low noise are required for the lower angular (higher energy) range, whereas high rates are necessary at the opposite limit.
+>
+> For example, while the angular resolution in the Bragg angle quadrature encoder is 50nrad for high angular resolution and small control errors, for an energy scan of 1keV/s, the crystal angular speed requirements would be around 0.1deg/s at the high energy range and as much as 40deg/s at the low energy limit.
+> In the latter case, the counting rates would have to be higher than the current electronics capacity of 10 MHz.
+>
+> Similarly for the gap, with a resolution of 0.1 nm from the quadrature laser interferometers for the nanometre-level control performance, an equivalent energy rate scan speed with Si(111) crystals without a miscut would translate to about 0.8 mm/s and 20 mm/s at the high and low energy limits, respectively.
+> In the latter case, counting rates would need to reach 200 MHz.
+
+
+## Bragg control has a bandwidth of 20Hz {#bragg-control-has-a-bandwidth-of-20hz}
+
+
+## Crystal control has a bandwidth between 150Hz and 250Hz {#crystal-control-has-a-bandwidth-between-150hz-and-250hz}
+
+
+## They are using the Bragg angle reference signal to measure the wanted crystal distance {#they-are-using-the-bragg-angle-reference-signal-to-measure-the-wanted-crystal-distance}
+
+They are not using the encoder signal as we are doing.
+
+
+## Modes of operation {#modes-of-operation}
+
+1. Standalone (similar as what we are using).
+2. Follower: follows an encoder signal from the ID
+
+
+
Geraldes, Renan Ramalho, Sergio Augusto Lordano Luiz, João Leandro de Brito Neto, Telles René Silva Soares, Ricardo Donizeth dos Reis, Guilherme A. Calligaris, Gert Witvoet, and J. P. M. B. Vermeulen. 2023. “Fly-Scan-Oriented Motion Analyses and Upgraded Beamline Integration Architecture for the High-Dynamic Double-Crystal Monochromator at Sirius/Lnls.” Journal of Synchrotron Radiation 30 (1): 90–110. doi:10.1107/s1600577522010724.
+
diff --git a/content/article/hauge04_sensor_contr_space_based_six.md b/content/article/hauge04_sensor_contr_space_based_six.md
new file mode 100644
index 0000000..9961159
--- /dev/null
+++ b/content/article/hauge04_sensor_contr_space_based_six.md
@@ -0,0 +1,148 @@
++++
+title = "Sensors and control of a space-based six-axis vibration isolation system"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Cubic Architecture]({{< relref "cubic_architecture.md" >}})
+
+Reference
+: (Hauge and Campbell 2004)
+
+Author(s)
+: Hauge, G., & Campbell, M.
+
+Year
+: 2004
+
+**Discusses**:
+
+- Choice of sensors and control architecture
+- Predictability and limitations of the system dynamics
+- Two-Sensor control architecture
+- Vibration isolation using a Stewart platform
+- Experimental comparison of Force sensor and Inertial Sensor and associated control architecture for vibration isolation
+
+
+
+{{< figure src="/ox-hugo/hauge04_stewart_platform.png" caption="Figure 1: Hexapod for active vibration isolation" >}}
+
+**Stewart platform** ([Figure 1](#figure--fig:hauge04-stewart-platform)):
+
+- Low corner frequency
+- Large actuator stroke (\\(\pm5mm\\))
+- Sensors in each strut ([Figure 2](#figure--fig:hauge05-struts)):
+ - three-axis load cell
+ - base and payload geophone in parallel with the struts
+ - LVDT
+
+
+
+{{< figure src="/ox-hugo/hauge05_struts.png" caption="Figure 2: Strut" >}}
+
+> Force sensors typically work well because they are not as sensitive to payload and base dynamics, but are limited in performance by a low-frequency zero pair resulting from the cross-axial stiffness.
+
+**Performance Objective** (frequency domain metric):
+
+- The transmissibility should be close to 1 between 0-1.5Hz
+ \\(-3dB < |T(\omega)| < 3db\\)
+- The transmissibility should be below -20dB in the 5-20Hz range
+ \\(|T(\omega)| < -20db\\)
+
+With \\(|T(\omega)|\\) is the Frobenius norm of the transmissibility matrix and is used to obtain a scalar performance metric.
+
+**Challenge**:
+
+- small frequency separation between the two requirements
+
+**Robustness**:
+
+- minimization of the transmissibility amplification (Bode's "pop") outside the performance region
+
+**Model**:
+
+- single strut axis as the cubic Stewart platform can be decomposed into 6 single-axis systems
+
+
+
+{{< figure src="/ox-hugo/hauge04_strut_model.png" caption="Figure 3: Strut model" >}}
+
+**Zero Pair when using a Force Sensor**:
+
+- The frequency of the zero pair corresponds to the resonance frequency of the payload mass and the "parasitic" stiffness (sum of the cross-axial, suspension, wiring stiffnesses)
+- This zero pair is usually not predictable nor repeatable
+- In this Stewart platform, this zero pair uncertainty is due to the internal wiring of the struts
+
+**Control**:
+
+- Single-axis controllers => combine them into a full six-axis controller => evaluate the full controller in terms of stability and robustness
+- Sensitivity weighted LQG controller (SWLQG) => address robustness in flexible dynamic systems
+- Three type of controller:
+ - Force feedback (cell-based)
+ - Inertial feedback (geophone-based)
+ - Combined force/velocity feedback (load cell/geophone based)
+
+> The use of multivariable and robust control on the full 6x6 hexapod does not improve performance over single-axis designs.
+
+
+
+ Table 1:
+ Typical characteristics of sensors used for isolation in hexapod systems
+
+
+| | **Load cell** | **Geophone** |
+|-----------------------------------------|---------------------------------|-------------------------------------|
+| Type | Relative | Inertial |
+| Relationship with voice coil | Collocated and Dual | Non-Collocated and non-Dual |
+| Open loop transfer function | (+) Alternating poles/zeros | (-) Large phase drop |
+| Limitation from low-frequency zero pair | (-) Yes | (+) No |
+| Sensitive to payload/base dynamics | (+) No | (-) Yes |
+| Best frequency range | High (low-freq zero limitation) | Low (high-freq toll-off limitation) |
+
+**Ability of a sensor-actuator pair to improve performance**:
+General system with input \\(u\\), performance \\(z\\), output \\(y\\) disturbance \\(u\\).
+
+Given a sensor \\(u\\) and actuator \\(y\\) and a controller \\(u = -K(s) y\\), the closed loop disturbance to performance transfer function can be written as:
+
+\\[ \left[ \frac{z}{w} \right]\_\text{CL} = \frac{G(s)\_{zw} + K(G(s)\_{zw} G(s)\_{yu} - G(s)\_{zu} G(s)\_{yw})}{1 + K G(s)\_{yu}} \\]
+
+In order to obtain a significant performance improvement is to use a high gain controller, _provided_ the term \\(G(s)\_{zw} + K(G(s)\_{zw} G(s)\_{yu} - G(s)\_{zu} G(s)\_{yw})\\) is small.
+
+We can compare the transfer function from \\(w\\) to \\(z\\) with and without a high gain controller.
+And we find that for \\(u\\) and \\(y\\) to be an acceptable pair for high gain control:
+\\[ \left| \frac{G(j\omega)\_{zw} G(j\omega)\_{yu} - G(j\omega)\_{zu} G(j\omega)\_{yw}}{K G(j\omega)\_{yu}} \right| \ll |G\_{zw}(j\omega)| \\]
+
+**Controllers**:
+
+**Force feedback**:
+
+- Performance limited by the low frequency zero-pair
+- It is desirable to separate the zero-pair and first most are separated by at least a decade in frequency
+- This can be achieve by reducing the cross-axis stiffness
+- If the low frequency zero pair is inverted, robustness is lost
+- Thus, the force feedback controller should be designed to have combined performance and robustness at frequencies at least a decade above the zero pair
+- The presented controller as a high pass filter at to reduce the gain below the zero-pair, a lag at low frequency to improve phase margin, and a low pass filter for roll off
+
+**Inertial feedback**:
+
+- Non-Collocated => multiple phase drops that limit the bandwidth of the controller
+- Good performance, but the transmissibility "pops" due to low phase margin and thus this indicates robustness problems
+
+**Combined force/velocity feedback**:
+
+- Use the low frequency performance advantages of geophone sensor with the high robustness advantages of the load cell sensor
+- A Single-Input-Multiple-Outputs (SIMO) controller is found using LQG
+- The performance requirements are met
+- Good robustness
+
+
+
+{{< figure src="/ox-hugo/hauge04_obtained_transmissibility.png" caption="Figure 4: Experimental open loop (solid) and closed loop six-axis transmissibility using the geophone only controller (dotted), and combined geophone/load cell controller (dashed)" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Hauge, G. S., and M. E. Campbell. 2004. “Sensors and Control of a Space-Based Six-Axis Vibration Isolation System.” Journal of Sound and Vibration 269 (3-5): 913–31. doi:10.1016/s0022-460x(03)00206-2.
+
diff --git a/content/article/heertjes11_minim_cross_talk_high_precis.md b/content/article/heertjes11_minim_cross_talk_high_precis.md
new file mode 100644
index 0000000..5a3bd79
--- /dev/null
+++ b/content/article/heertjes11_minim_cross_talk_high_precis.md
@@ -0,0 +1,36 @@
++++
+title = "Minimizing cross-talk in high-precision motion systems using data-based dynamic decoupling"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Decoupled Control]({{< relref "decoupled_control.md" >}})
+
+Reference
+: (Heertjes and van Engelen 2011)
+
+Author(s)
+: Heertjes, M., & Engelen, A. v.
+
+Year
+: 2011
+
+> In the field of high-precision motion control, a static decoupling control design is generally used to command motion in the directions of an orthogonal basis.
+> Around the center-of-gravity of the system it then usually suffices to apply single-input single-output control in each of these directions separately.
+> Among the advantages are robust stability and performance through straightforward control designs and loop shaping techniques.
+>
+> If the static decoupling part does not fully achieve desired decoupling of the underlying MIMO motion system, a multi-variable controller can be sought to replace the SISO controller part.
+> A more natural approach would therefore be to replace the MIMO static decoupling part by a dynamic part and leave the SISO controller part intact.
+
+
+
+> The aim of the paper is to minimize directly the cross-talk outputs via data-based optimization.
+> The criterion to be optimized consists solely of time-domain signals taken from a performance-relevant time interval.
+
+
+## Bibliography {#bibliography}
+
+
+
Heertjes, Marcel, and Arjan van Engelen. 2011. “Minimizing Cross-Talk in High-Precision Motion Systems Using Data-Based Dynamic Decoupling.” Control Engineering Practice 19 (12): 1423–32. doi:10.1016/j.conengprac.2011.07.016.
+
diff --git a/content/article/herpen14_exploit_addit_actuat_sensor_nano.md b/content/article/herpen14_exploit_addit_actuat_sensor_nano.md
new file mode 100644
index 0000000..06c5ac2
--- /dev/null
+++ b/content/article/herpen14_exploit_addit_actuat_sensor_nano.md
@@ -0,0 +1,25 @@
++++
+title = "Exploiting additional actuators and sensors for nano-positioning robust motion control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Van Herpen et al. 2014)
+
+Author(s)
+: Herpen, R. v., Oomen, T., Kikken, E., Wal, M. v. d., Aangenent, W., & Steinbuch, M.
+
+Year
+: 2014
+
+
+## Bibliography {#bibliography}
+
+
+
Herpen, Robbert van, Tom Oomen, Edward Kikken, Marc van de Wal, Wouter Aangenent, and Maarten Steinbuch. 2014. “Exploiting Additional Actuators and Sensors for Nano-Positioning Robust Motion Control.” Mechatronics 24 (6): 619–31. doi:10.1016/j.mechatronics.2014.03.008.
+
diff --git a/content/article/holler12_instr_x_ray_nano_imagin.md b/content/article/holler12_instr_x_ray_nano_imagin.md
new file mode 100644
index 0000000..8933ef4
--- /dev/null
+++ b/content/article/holler12_instr_x_ray_nano_imagin.md
@@ -0,0 +1,46 @@
++++
+title = "An instrument for 3d x-ray nano-imaging"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Nano Active Stabilization System]({{< relref "nano_active_stabilization_system.md" >}}), [Positioning Stations]({{< relref "positioning_stations.md" >}})
+
+Reference
+: (Holler et al. 2012)
+
+Author(s)
+: Holler, M., Raabe, J., Diaz, A., Guizar-Sicairos, M., Quitmann, C., Menzel, A., & Bunk, O.
+
+Year
+: 2012
+
+Instrument similar to the NASS.
+Obtain position stability of 10nm (standard deviation).
+
+
+
+{{< figure src="/ox-hugo/holler12_station.png" caption="Figure 1: Schematic of the tomography setup" >}}
+
+- **Limited resolution due to instrumentation**:
+ The resolution of ptychographic tomography remains above 100nm due to instabilities and drifts of the scanning systems.
+- **Need of a Metrology System**:
+
+ > To achieve positioning accuracy and stability in the nanometer range, one cannot rely on the position encoders built into individual positioning stages.
+ > A precise exteroceptive measurement of the relative position of the optical elements with respect to the sample is mandatory.
+ > Thus, thermal drifts and parasitic motions can be measured and compensated for.
+- **Interferometer System Concept**:
+ The sample is aligned with the X-ray with the XYZ piezo stage.
+ As a result, the metrology sphere will be usually off center with respect to the rotation axis of the spindle.
+ That implies that the laser will not propagate back to the interferometer at all rotation angles.
+ A position sensitive detector (PSD) is used, it provides a measurement of the position of the sphere in the plane perpendicular to the laser.
+ The interferometer is positionned on top of a translation stage. The PSD information is used to close the loop so that the interferometer follows the displacement of the metrology sphere.
+- **Feedback Loop**: Using the signals from the 2 interferometers, the loop is closed to compensate low frequency vibrations and thermal drifts.
+
+
+## Bibliography {#bibliography}
+
+
+
Holler, M., J. Raabe, A. Diaz, M. Guizar-Sicairos, C. Quitmann, A. Menzel, and O. Bunk. 2012. “An Instrument for 3d X-Ray Nano-Imaging.” Review of Scientific Instruments 83 (7): 073703. doi:10.1063/1.4737624.
Holterman, J., and T. J. A. de Vries. 2005. “Active Damping Based on Decoupled Collocated Control.” IEEE/ASME Transactions on Mechatronics 10 (2): 135–45. doi:10.1109/tmech.2005.844702.
+
diff --git a/content/article/ito16_compar_class_high_precis_actuat.md b/content/article/ito16_compar_class_high_precis_actuat.md
new file mode 100644
index 0000000..d2815bc
--- /dev/null
+++ b/content/article/ito16_compar_class_high_precis_actuat.md
@@ -0,0 +1,74 @@
++++
+title = "Comparison and classification of high-precision actuators based on stiffness influencing vibration isolation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Actuators]({{< relref "actuators.md" >}})
+
+Reference
+: (Ito and Schitter 2016)
+
+Author(s)
+: Ito, S., & Schitter, G.
+
+Year
+: 2016
+
+
+## Classification of high-precision actuators {#classification-of-high-precision-actuators}
+
+
+ Table 1:
+ Zero/Low and High stiffness actuators
+
+
+| **Categories** | **Pros** | **Cons** |
+|----------------|---------------------------|-----------------------------|
+| Zero stiffness | No vibration transmission | Large and Heavy |
+| Low stiffness | High vibration isolation | Typically for low load |
+| High Stiffness | High control bandwidth | High vibration transmission |
+
+
+## Time Delay of Piezoelectric Electronics {#time-delay-of-piezoelectric-electronics}
+
+In this paper, the piezoelectric actuator/electronics adds a time delay which is much higher than the time delay added by the voice coil/electronics.
+
+
+## Definition of low-stiffness and high-stiffness actuator {#definition-of-low-stiffness-and-high-stiffness-actuator}
+
+- **Low Stiffness** actuator is defined as the ones where the transmissibility stays below 0dB at all frequency
+- **High Stiffness** actuator is defined as the ones where the transmissibility goes above 0dB at some frequency
+
+
+
+{{< figure src="/ox-hugo/ito16_low_high_stiffness_actuators.png" caption="Figure 1: Definition of low-stiffness and high-stiffness actuator" >}}
+
+
+## Low-Stiffness / High-Stiffness characteristics {#low-stiffness-high-stiffness-characteristics}
+
+- The low stiffness actuators achieve smooth transition from active isolation to passive isolation.
+- The high stiffness actuators can have a gap between the passive and active isolation vibration where the vibrations are amplified in a certain frequency band.
+
+
+## Controller Design {#controller-design}
+
+
+
+{{< figure src="/ox-hugo/ito16_transmissibility.png" caption="Figure 2: Obtained transmissibility" >}}
+
+
+## Discussion {#discussion}
+
+The stiffness requirement for low-stiffness actuators can be rephrased in the frequency domain as: "the cross-over frequency of the sensitivity function of the feedback system must be larger than \\(\sqrt{2} \omega\_r\\) with \\(\omega\_r\\) is the resonant frequency of the uncontrolled system".
+
+In practice, this is difficult to achieve with piezoelectric actuators as their first resonant frequency \\(\omega\_r\\) is **too close to other resonant frequencies to ensure close-loop stability**.
+In contrast, the frequency band between the first and the other resonances of Lorentz actuators can be broad by design making them more suitable to construct a low-stiffness actuators.
+
+
+## Bibliography {#bibliography}
+
+
+
Ito, Shingo, and Georg Schitter. 2016. “Comparison and Classification of High-Precision Actuators Based on Stiffness Influencing Vibration Isolation.” IEEE/ASME Transactions on Mechatronics 21 (2): 1169–78. doi:10.1109/tmech.2015.2478658.
Ito, Shingo, Francesco Cigarini, Severin Unger, and Georg Schitter. 2016. “Flexure Design for Precision Positioning Using Low-Stiffness Actuators.” IFAC-PapersOnLine 49 (21): 200–205. doi:10.1016/j.ifacol.2016.10.548.
+
diff --git a/content/article/jiao18_dynam_model_exper_analy_stewar.md b/content/article/jiao18_dynam_model_exper_analy_stewar.md
new file mode 100644
index 0000000..3bf1a60
--- /dev/null
+++ b/content/article/jiao18_dynam_model_exper_analy_stewar.md
@@ -0,0 +1,24 @@
++++
+title = "Dynamic modeling and experimental analyses of stewart platform with flexible hinges"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (Jiao et al. 2018)
+
+Author(s)
+: Jiao, J., Wu, Y., Yu, K., & Zhao, R.
+
+Year
+: 2018
+
+
+## Bibliography {#bibliography}
+
+
+
Jiao, J., Y. Wu, K. Yu, and R. Zhao. 2018. “Dynamic Modeling and Experimental Analyses of Stewart Platform with Flexible Hinges.” Journal of Vibration and Control 25 (1): 151–71. doi:10.1177/1077546318772474.
Kwakernaak, Huibert. 1993. “Robust Control and H$\Infty$-Optimization - Tutorial Paper.” Automatica 29 (2): 255–73. doi:10.1016/0005-1098(93)90122-a.
+
diff --git a/content/article/legnani12_new_isotr_decoup_paral_manip.md b/content/article/legnani12_new_isotr_decoup_paral_manip.md
new file mode 100644
index 0000000..d290f5b
--- /dev/null
+++ b/content/article/legnani12_new_isotr_decoup_paral_manip.md
@@ -0,0 +1,38 @@
++++
+title = "A new isotropic and decoupled 6-dof parallel manipulator"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}})
+
+Reference
+: (Legnani et al. 2012)
+
+Author(s)
+: Legnani, G., Fassi, I., Giberti, H., Cinquemani, S., & Tosi, D.
+
+Year
+: 2012
+
+- Concepts of isotropy and decoupling for parallel manipulators
+- **isotropy**: the kinetostatic properties (same applicable force, same possible velocity, same stiffness) are identical in all directions (e.g. cubic configuration for Stewart platform)
+- **decoupling**: each DoF of the end effector can be controlled by a **single** actuator (not the case for the Stewart platform)
+
+Example of generated isotropic manipulator (not decoupled).
+
+
+
+{{< figure src="/ox-hugo/legnani12_isotropy_gen.png" caption="Figure 1: Location of the leg axes using an isotropy generator" >}}
+
+
+
+{{< figure src="/ox-hugo/legnani12_generated_isotropy.png" caption="Figure 2: Isotropic configuration" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Legnani, G., I. Fassi, H. Giberti, S. Cinquemani, and D. Tosi. 2012. “A New Isotropic and Decoupled 6-Dof Parallel Manipulator.” Mechanism and Machine Theory 58: 64–81. doi:10.1016/j.mechmachtheory.2012.07.008.
+
diff --git a/content/article/li01_simul_vibrat_isolat_point_contr.md b/content/article/li01_simul_vibrat_isolat_point_contr.md
new file mode 100644
index 0000000..ef1b430
--- /dev/null
+++ b/content/article/li01_simul_vibrat_isolat_point_contr.md
@@ -0,0 +1,26 @@
++++
+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
+: (Li, Hamann, and McInroy 2001)
+
+Author(s)
+: Li, X., Hamann, J. C., & 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}
+
+
+
Li, Xiaochun, Jerry C. Hamann, and John E. McInroy. 2001. “Simultaneous Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” In Smart Structures and Materials 2001: Smart Structures and Integrated Systems. doi:10.1117/12.436521.
+
diff --git a/content/article/lin06_distur_atten_precis_hexap_point.md b/content/article/lin06_distur_atten_precis_hexap_point.md
new file mode 100644
index 0000000..f1caf57
--- /dev/null
+++ b/content/article/lin06_distur_atten_precis_hexap_point.md
@@ -0,0 +1,25 @@
++++
+title = "Disturbance attenuation in precise hexapod pointing using positive force feedback"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Lin and McInroy 2006)
+
+Author(s)
+: Lin, H., & McInroy, J. E.
+
+Year
+: 2006
+
+
+## Bibliography {#bibliography}
+
+
+
Lin, H., and J. E. McInroy. 2006. “Disturbance Attenuation in Precise Hexapod Pointing Using Positive Force Feedback.” Control Engineering Practice 14 (11): 1377–86. doi:10.1016/j.conengprac.2005.10.002.
+
diff --git a/content/article/mcinroy00_desig_contr_flexur_joint_hexap.md b/content/article/mcinroy00_desig_contr_flexur_joint_hexap.md
new file mode 100644
index 0000000..11f820c
--- /dev/null
+++ b/content/article/mcinroy00_desig_contr_flexur_joint_hexap.md
@@ -0,0 +1,25 @@
++++
+title = "Design and control of flexure jointed hexapods"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (McInroy and Hamann 2000)
+
+Author(s)
+: McInroy, J., & Hamann, J.
+
+Year
+: 2000
+
+
+## Bibliography {#bibliography}
+
+
+
McInroy, J. E., and J. C. Hamann. 2000. “Design and Control of Flexure Jointed Hexapods.” IEEE Transactions on Robotics and Automation 16 (4): 372–81. doi:10.1109/70.864229.
+
diff --git a/content/article/mcinroy02_model_desig_flexur_joint_stewar.md b/content/article/mcinroy02_model_desig_flexur_joint_stewar.md
new file mode 100644
index 0000000..c573d17
--- /dev/null
+++ b/content/article/mcinroy02_model_desig_flexur_joint_stewar.md
@@ -0,0 +1,274 @@
++++
+title = "Modeling and design of flexure jointed stewart platforms for control purposes"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (McInroy 2002)
+
+Author(s)
+: McInroy, J.
+
+Year
+: 2002
+
+This short paper is very similar to (McInroy 1999).
+
+> This paper develops guidelines for designing the flexure joints to facilitate closed-loop control.
+
+
+## Introduction {#introduction}
+
+> When pursuing micro-meter/micro-radian scale motion, two new phenomena become important:
+>
+> 1. joint friction and backlash can cause extremely nonlinear micro-dynamics
+> 2. base and/or payload vibrations become significant contributor to the motion
+
+
+
+> If the spherical flexure is not properly matched to the particular application, it is shown that the complexity of the dynamics can greatly increase, thus limiting the control performance.
+
+
+## Flexure Jointed Hexapod Dynamics {#flexure-jointed-hexapod-dynamics}
+
+
+
+{{< figure src="/ox-hugo/mcinroy02_leg_model.png" caption="Figure 1: The dynamics of the ith strut. A parallel spring, damper, and actautor drives the moving mass of the strut and a payload" >}}
+
+The strut can be modeled as consisting of a parallel arrangement of an actuator force, a spring and some damping driving a mass ([Figure 1](#figure--fig:mcinroy02-leg-model)).
+
+Thus, **the strut does not output force directly, but rather outputs a mechanically filtered force**.
+
+The model of the strut are shown in [Figure 1](#figure--fig:mcinroy02-leg-model) with:
+
+- \\(m\_{s\_i}\\) moving strut mass
+- \\(k\_i\\) spring constant
+- \\(b\_i\\) damping constant
+- \\(f\_{m\_i}\\) force applied by the actuator
+- \\(f\_{p\_i}\\) force exerted by the payload
+- \\(p\_i\\) three dimensional position of the top
+- \\(q\_i\\) three dimensional position of the bottom
+- \\(l\_i\\) strut length
+- \\(l\_{r\_i}\\) relaxed strut length
+
+In general, **the strut mass and spherical flexure stiffness will cause payload forces that are not perfectly aligned with the strut**.
+
+Applying Newton's second law and stacking the equations into a vector form gives:
+
+\begin{equation}
+ f\_p = f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u - M\_s g\_u + M\_s v\_2 \label{eq:strut\_dynamics\_vec}
+\end{equation}
+
+where:
+
+- \\(\ddot{q}\_u = \left[ \hat{u}\_1^T \ddot{q}\_1 \ \dots \ \hat{u}\_6^T \ddot{q}\_6 \right]^T\\) notes the vector of base accelerations in the strut directions
+- \\(g\_u\\) denotes the vector of gravity accelerations in the strut directions
+- \\(Ms = \text{diag}([m\_1\ \dots \ m\_6])\\), \\(f\_p = [f\_{p\_1}\ \dots \ f\_{p\_6}]^T\\)
+- \\(v\_2 = [ \dot{\hat{u}}\_1^T \dot{v}\_1 \ \dots \ \dot{\hat{u}}\_6^T \dot{v}\_6 ]^T\\) contains nonlinear Coriolis and centripetal accelerations
+
+
+### Payload Dynamics {#payload-dynamics}
+
+The payload is modeled as a rigid body:
+
+\begin{equation}
+\underbrace{\begin{bmatrix}
+m I\_3 & 0\_{3\times 3} \\\\
+0\_{3\times 3} & {}^cI
+\end{bmatrix}}\_{M\_x} \ddot{\mathcal{X}} + \underbrace{\begin{bmatrix}
+ 0\_{3 \times 1} \\\ \omega \times {}^cI\omega
+\end{bmatrix}}\_{c(\omega)} = \mathcal{F} \label{eq:payload\_dynamics}
+\end{equation}
+
+where:
+
+- \\(\ddot{\mathcal{X}}\\) is the \\(6 \times 1\\) generalized acceleration of the payload's center of mass
+- \\(\omega\\) is the \\(3 \times 1\\) payload's angular velocity vector
+- \\(\mathcal{F}\\) is the \\(6 \times 1\\) generalized force exerted on the payload
+- \\(M\_x\\) is the combined mass/inertia matrix of the payload, written in the payload frame {P}
+- \\(c(\omega)\\) represents the shown vector of Coriolis and centripetal terms
+
+Note \\(\dot{\mathcal{X}} = [\dot{p}^T\ \omega^T]^T\\) denotes the time derivative of the payload's combined position and orientation (or pose) with respect to a universal frame of reference {U}.
+
+First, consider the **generalized force due to struts**.
+Denoting this force as \\(\mathcal{F}\_s\\), it can be calculated form the strut forces as:
+
+\begin{equation}
+ \mathcal{F}\_s = {}^UJ^T f\_p = {}^U\_BR J^T f\_p
+\end{equation}
+
+where \\(J\\) is the manipulator Jacobian and \\({}^U\_BR\\) is the rotation matrix from {B} to {U}.
+
+The total generalized force acting on the payload is the sum of the strut, exogenous, and gravity forces:
+
+\begin{equation}
+ \mathcal{F} = {}^UJ^T f\_p + \mathcal{F}\_e - \begin{bmatrix} mg \\\ 0\_{3\times 1} \end{bmatrix} \label{eq:generalized\_force}
+\end{equation}
+
+where:
+
+- \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass
+- \\(g\\) is the gravity vector
+
+By combining \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:
+
+\begin{equation}
+ {}^UJ^T [ f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u - M\_s g\_u + M\_s v\_2] + \mathcal{F}\_e - \begin{bmatrix} mg \\\ 0\_{3\times 1} \end{bmatrix} = M\_x \ddot{\mathcal{X}} + c(\omega) \label{eq:eom\_fjh}
+\end{equation}
+
+Joint (\\(l\\)) and Cartesian (\\(\mathcal{X}\\)) terms are still mixed.
+In the next section, a connection between the two will be found to complete the formulation
+
+
+## Direction of Payload Force {#direction-of-payload-force}
+
+Many prior hexapod dynamic formulations assume that the strut exerts force only along its direction of motion.
+
+The flexure joints Hexapods transmit forces (or torques) proportional to the deflection of the joints.
+This section establishes design guidelines for the spherical flexure joint to guarantee that the dynamics remain tractable for control.
+
+
+
+{{< figure src="/ox-hugo/mcinroy02_model_strut_joint.png" caption="Figure 2: A simplified dynamic model of a strut and its joint" >}}
+
+[Figure 2](#figure--fig:mcinroy02-model-strut-joint) depicts a strut, along with the corresponding force diagram.
+The force diagram is obtained using standard finite element assumptions (\\(\sin \theta \approx \theta\\)).
+Damping terms are neglected.
+\\(k\_r\\) denotes the rotational stiffness of the spherical joint.
+
+From [Figure 2](#figure--fig:mcinroy02-model-strut-joint) (b), Newton's second law yields:
+
+\begin{equation}
+ f\_p = \begin{bmatrix}
+ -f\_m + m\_s \Delta \ddot{x} + k\Delta x \\\\
+ m\_s \Delta \ddot{y} + \frac{k\_r}{l^2} \Delta y \\\\
+ m\_s \Delta \ddot{z} + \frac{k\_r}{l^2} \Delta z
+\end{bmatrix}
+\end{equation}
+
+Note that the payload force is **not** in general aligned with the strut.
+The force is aligned perfectly with the strut only if \\(m\_s = 0\\) and \\(k\_r = 0\\) (i.e. the struts have negligible mass and the spherical joints have negligible rotational stiffness).
+
+To examine the passive behavior, let \\(f\_m = 0\\) and consider a sinusoidal motion:
+
+\begin{equation}
+ \begin{bmatrix} \Delta x \\\ \Delta y \\\ \Delta z \end{bmatrix} =
+ \begin{bmatrix} A\_x \cos \omega t \\\ A\_y \cos \omega t \\\ A\_z \cos \omega t \end{bmatrix}
+\end{equation}
+
+This yields:
+
+\begin{equation}
+ f\_p = \begin{bmatrix}
+ \Big( -m\_s \omega^2 + k \Big) A\_x \cos \omega t \\\\
+ \Big( -m\_s \omega^2 + \frac{k\_r}{l^2} \Big) A\_y \cos \omega t \\\\
+ \Big( -m\_s \omega^2 + \frac{k\_r}{l^2} \Big) A\_z \cos \omega t
+ \end{bmatrix}
+\end{equation}
+
+The direction of \\(f\_p\\) depends upon to motion specifications, leg inertia and control algorithm.
+
+The hypothesis that it is mostly along the strut direction can be tested by dividing the magnitude of the \\(x\\) component by the magnitude of the combined \\(y\\) and \\(z\\) components:
+
+\begin{equation}
+ x\_\text{gain} = \frac{|-m\_s \omega^2 + k|}{|-m\_s \omega^2 + \frac{k\_r}{l^2}|} \frac{|A\_x|}{\sqrt{A\_y^2 + A\_z^2}}
+\end{equation}
+
+Note that large \\(x\_\text{gain}\\) indicates \\(x\\) direction dominance.
+
+\\(x\_\text{gain}\\) is divided into two parts.
+The first part depends on the mechanical terms and the frequency of the movement:
+
+\begin{equation}
+ x\_{\text{gain}\_\omega} = \frac{|-m\_s \omega^2 + k|}{|-m\_s \omega^2 + \frac{k\_r}{l^2}|}
+\end{equation}
+
+
+
+In order to get dominance at low frequencies, the hexapod must be designed so that:
+
+\begin{equation}
+ \frac{k\_r}{l^2} \ll k \label{eq:cond\_stiff}
+\end{equation}
+
+
+
+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:
+\\[ \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:
+\\[ \omega \gg \sqrt{\frac{k}{m\_s}} \rightarrow x\_{\text{gain}\_\omega} \approx 1 \\]
+
+
+
+To ensure that the control system acts only in the band of frequencies where dominance is retained, the control bandwidth can be selected so that:
+
+\begin{equation}
+ \text{control bandwidth} \ll \sqrt{\frac{k\_r}{m\_s l^2}} \label{eq:cond\_bandwidth}
+\end{equation}
+
+
+
+The control bandwidth can be increase for hexapods that are designed so that \\(x\_{\text{gain}\_\omega} \gg 1\\) for \\(\omega \ll \sqrt{k/m\_s}\\).
+This can be achieve, for instance, by adding damping.
+In this case, it is reasonable to use:
+
+\begin{equation}
+ \text{control bandwidth} \ll \sqrt{\frac{k}{m\_s}}
+\end{equation}
+
+
+
+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.
+
+
+
+
+## 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\\).
+
+This section will derive this implicit relationship.
+Let denote:
+
+- \\(\mathcal{X}\_B\\) the pose of {B} with respect to {U}
+- \\({}^B\mathcal{X}\_P\\) the pose of {P} with respect to {B}
+- \\({}^Uq\_i = {}^U\_BR {}^Bq\_i + {}^UP\_{BORG}\\) the position of the ith base attachment point, expressed in the universal frame {U}
+- \\(P\_{BORG}\\) the position of the origin of frame {B}
+
+Note that although \\({}^Bq\_i\\) is fixed, \\({}^Uq\_i\\) varies due to base motion.
+
+Differentiating twice and converting derivatives of rotation matrices into angular velocity cross products yields:
+
+\begin{equation}
+ {}^U\dot{q}\_i = \omega\_B \times {}^U\_BR {}^Bq\_i + \underbrace{{}^U\_BR {}^B\dot{q}\_i}\_{= 0} + v\_B
+\end{equation}
+
+\begin{equation}
+ {}^U\ddot{q}\_i = \dot{\omega}\_B \times {}^U\_BR {}^Bq\_i + \omega\_B \times \omega\_B \times {}^U\_BR {}^Bq\_i + \dot{v}\_B
+\end{equation}
+
+where:
+
+- \\(\omega\_B\\) denotes the angular velocity of {B} with respect to {U}
+- \\(v\_B = {}^U\dot{P}\_{BORG}\\) denotes the linear velocity of the origin of {B} with respect to {U}
+
+By using the vector triple identity \\(a \cdot (b \times c) = b \cdot (c \times a)\\) and putting the equation in a matrix form:
+
+\begin{equation}
+ {}^U \hat{u}\_i^T {}^U\ddot{q}\_i = \left[ {}^U\hat{u}\_i^T \left( {}^U\_BR {}^Bq\_i \times {}^U\hat{u}\_i \right)^T \right] \ddot{\mathcal{X}}\_B + {}^U\hat{u}\_i^T \left( \omega\_B \times \left[ \omega\_B \times {}^U\_BR {}^Bq\_i \right] \right)
+\end{equation}
+
+
+## Bibliography {#bibliography}
+
+
+
McInroy, J. E. 1999. “Dynamic Modeling of Flexure Jointed Hexapods for Control Purposes.” In Proceedings of the 1999 IEEE International Conference on Control Applications (Cat. No.99CH36328). doi:10.1109/cca.1999.806694.
+
———. 2002. “Modeling and Design of Flexure Jointed Stewart Platforms for Control Purposes.” IEEE/ASME Transactions on Mechatronics 7 (1): 95–99. doi:10.1109/3516.990892.
+
diff --git a/content/article/mcinroy99_dynam.md b/content/article/mcinroy99_dynam.md
new file mode 100644
index 0000000..b24ca71
--- /dev/null
+++ b/content/article/mcinroy99_dynam.md
@@ -0,0 +1,170 @@
++++
+title = "Dynamic modeling of flexure jointed hexapods for control purposes"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (McInroy 1999)
+
+Author(s)
+: McInroy, J.
+
+Year
+: 1999
+
+This conference paper has been further published in a journal as a short note (McInroy 2002).
+
+
+## Abstract {#abstract}
+
+> This paper presents a new dynamic model suitable for control of flexure jointed hexapods (FJH).
+>
+> Novel contributions include:
+>
+> 1. Base acceleration inputs are included
+> 2. The dynamic model is experimentally verified
+> 3. The model is developed so that it is suitable for control
+> 4. A decoupled force control is derived
+
+
+## Strut Dynamics {#strut-dynamics}
+
+The actuators for FJHs can be divided into two categories:
+
+1. soft (voice coil), which employs a spring flexure mount
+2. hard (piezoceramic or magnetostrictive), which employs a compressive load spring.
+
+
+
+{{< figure src="/ox-hugo/mcinroy99_general_hexapod.png" caption="Figure 1: A general Stewart Platform" >}}
+
+Since both actuator types employ force production in parallel with a spring, they can both be modeled as shown in [Figure 2](#figure--fig:mcinroy99-strut-model).
+
+In order to provide low frequency passive vibration isolation, the hard actuators are sometimes placed in series with additional passive springs.
+
+
+
+{{< figure src="/ox-hugo/mcinroy99_strut_model.png" caption="Figure 2: The dynamics of the i'th strut. A parallel spring, damper and actuator drives the moving mass of the strut and a payload" >}}
+
+
+
+
+| **Symbol** | **Meaning** |
+|------------------------------|--------------------------------------------|
+| \\(m\_i\\) | moving strut mass |
+| \\(k\_i\\) | spring constant |
+| \\(b\_i\\) | damping constant |
+| \\(f\_m\\) | force the actuator applies |
+| \\(f\_{p\_i}\\) | forced exerted by the payload |
+| \\(p\_i\\) | three dimensional position of the top |
+| \\(q\_i\\) | three dimensional position of the bottom |
+| \\(l\_i\\) | strut length |
+| \\(l\_{r\_i}\\) | relaxed strut length |
+| \\(v\_i = p\_i - q\_i\\) | vector pointing from the bottom to the top |
+| \\(\hat{u}\_i = v\_i/l\_i\\) | unit direction of the strut |
+
+It is here supposed that \\(f\_{p\_i}\\) is predominantly in the strut direction (explained in (McInroy 2002)).
+This is a good approximation unless the spherical joints and extremely stiff or massive, of high inertia struts are used.
+This allows to reduce considerably the complexity of the model.
+
+From [Figure 2](#figure--fig:mcinroy99-strut-model) (b), forces along the strut direction are summed to yield (projected along the strut direction, hence the \\(\hat{u}\_i^T\\) term):
+
+\begin{equation}
+ m\_i \hat{u}\_i^T \ddot{p}\_i = f\_{m\_i} - f\_{p\_i} - m\_i \hat{u}\_i^Tg - k\_i(l\_i - l\_{r\_i}) - b\_i \dot{l}\_i
+\end{equation}
+
+The acceleration \\(\hat{u}\_i^T \ddot{p}\_i\\) can be written as:
+\\[ \hat{u}\_i^T \ddot{p}\_i = \ddot{l}\_i + \hat{u}\_i^T \ddot{q}\_i - \dot{\hat{u}}\_i^T \dot{v}\_i \\]
+
+- [ ] Not sure how the last term is obtained
+
+Separating strut and base accelerations, and putting all six strut equations in a single vector yields:
+
+\begin{equation}
+ f\_p = f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u - M\_s g\_u + M\_s v\_2 \label{eq:strut\_dynamics\_vec}
+\end{equation}
+
+where:
+
+- \\(\ddot{q}\_u = \left[ \hat{u}\_1^T \ddot{q}\_1 \ \dots \ \hat{u}\_6^T \ddot{q}\_6 \right]^T\\) notes the vector of base accelerations in the strut directions
+- \\(g\_u\\) denotes the vector of gravity accelerations in the strut directions
+- \\(Ms = \diag([m\_1\ \dots \ m\_6])\\), \\(f\_p = [f\_{p\_1}\ \dots \ f\_{p\_6}]^T\\)
+- \\(v\_2 = [ \dot{\hat{u}}\_1^T \dot{v}\_1 \ \dots \ \dot{\hat{u}}\_6^T \dot{v}\_6 ]^T\\)
+
+
+## Payload Dynamics {#payload-dynamics}
+
+The payload is modeled as a rigid body:
+
+\begin{equation}
+\underbrace{\begin{bmatrix}
+m I\_3 & 0\_{3\times 3} \\\\
+0\_{3\times 3} & {}^cI
+\end{bmatrix}}\_{M\_x} \ddot{\mathcal{X}} + \underbrace{\begin{bmatrix}
+ 0\_{3 \times 1} \\\ \omega \times {}^cI\omega
+\end{bmatrix}}\_{c(\omega)} = \mathcal{F} \label{eq:payload\_dynamics}
+\end{equation}
+
+where:
+
+- \\(\ddot{\mathcal{X}}\\) is the \\(6 \times 1\\) generalized acceleration of the payload's center of mass
+- \\(\omega\\) is the \\(3 \times 1\\) payload's angular velocity vector
+- \\(\mathcal{F}\\) is the \\(6 \times 1\\) generalized force exerted on the payload
+- \\(M\_x\\) is the combined mass/inertia matrix of the payload, written in the payload frame {P}
+- \\(c(\omega)\\) represents the shown vector of Coriolis and centripetal terms
+
+Note \\(\dot{\mathcal{X}} = [\dot{p}^T\ \omega^T]^T\\) denotes the time derivative of the payload's combined position and orientation (or pose) with respect to a universal frame of reference {U}.
+
+First, consider the **generalized force due to struts**.
+Denoting this force as \\(\mathcal{F}\_s\\), it can be calculated form the strut forces as:
+
+\begin{equation}
+ \mathcal{F}\_s = {}^UJ^T f\_p = {}^U\_BR J^T f\_p
+\end{equation}
+
+where \\(J\\) is the manipulator Jacobian and \\({}^U\_BR\\) is the rotation matrix from {B} to {U}.
+
+The total generalized force acting on the payload is the sum of the strut, exogenous, and gravity forces:
+
+\begin{equation}
+ \mathcal{F} = {}^UJ^T f\_p + \mathcal{F}\_e - \begin{bmatrix} mg \\\ 0\_{3\times 1} \end{bmatrix} \label{eq:generalized\_force}
+\end{equation}
+
+where:
+
+- \\(\mathcal{F}\_e\\) represents a vector of exogenous generalized forces applied at the center of mass
+- \\(g\\) is the gravity vector
+
+By combining \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:
+
+\begin{aligned}
+ & {}^UJ^T [ f\_m - M\_s \ddot{l} - B \dot{l} - K(l - l\_r) - M\_s \ddot{q}\_u\\\\
+ & - M\_s g\_u + M\_s v\_2] + \mathcal{F}\_e - \begin{bmatrix} mg \\\ 0\_{3\times 1} \end{bmatrix} = M\_x \ddot{\mathcal{X}} + c(\omega)
+\end{aligned}
+
+Joint (\\(l\\)) and Cartesian (\\(\mathcal{X}\\)) terms are still mixed.
+In the next section, a connection between the two will be found to complete the formulation
+
+
+## Relationships between joint and cartesian space {#relationships-between-joint-and-cartesian-space}
+
+
+## Joint Space Dynamics {#joint-space-dynamics}
+
+
+## Control Example {#control-example}
+
+
+## Bibliography {#bibliography}
+
+
+
McInroy, J. E. 1999. “Dynamic Modeling of Flexure Jointed Hexapods for Control Purposes.” In Proceedings of the 1999 IEEE International Conference on Control Applications (Cat. No.99CH36328). doi:10.1109/cca.1999.806694.
+
———. 2002. “Modeling and Design of Flexure Jointed Stewart Platforms for Control Purposes.” IEEE/ASME Transactions on Mechatronics 7 (1): 95–99. doi:10.1109/3516.990892.
+
diff --git a/content/article/nosova20_review_paral_struc_mechan_with_kinem_decoup.md b/content/article/nosova20_review_paral_struc_mechan_with_kinem_decoup.md
new file mode 100644
index 0000000..4a8e92b
--- /dev/null
+++ b/content/article/nosova20_review_paral_struc_mechan_with_kinem_decoup.md
@@ -0,0 +1,41 @@
++++
+title = "A review of the parallel structure mechanisms with kinematic decoupling"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Parallel Manipulators]({{< relref "parallel_manipulators.md" >}})
+
+Reference
+: (Nosova 2020)
+
+Author(s)
+: Nosova, N. Y.
+
+Year
+: 2020
+
+
+## Introduction {#introduction}
+
+Parallel mechanisms can be characterized by high speeds, since the engines are mounted on the base and the links have a relatively small mass.
+The disadvantages are: limited working space, the presence of singularities in the immediate vicinity of the workspace.
+
+The kinematic decoupling for a parallel structure manipulator consists in that one movement of the output platform is provided by only one input link or group of links of the kinematic chain.
+
+
+## Types of Kinematic Decoupling {#types-of-kinematic-decoupling}
+
+There are three different types of decoupling:
+
+1. **strong coupling**: where each configuration parameter is a function of all joint variable (e.g. Stewart platform)
+2. **complete decoupling**: each configuration parameter is a function of only one joint variable (e.g. Ortoglide)
+3. **partial decoupling**: some configuration parameters are in function of only some joint variables
+
+
+## Bibliography {#bibliography}
+
+
+
Nosova, N. Yu. 2020. “A Review of the Parallel Structure Mechanisms with Kinematic Decoupling.” Advanced Technologies in Robotics and Intelligent Systems. Springer International Publishing, 247–55. doi:10.1007/978-3-030-33491-8_30.
+
diff --git a/content/article/oomen18_advan_motion_contr_precis_mechat.md b/content/article/oomen18_advan_motion_contr_precis_mechat.md
new file mode 100644
index 0000000..ca1195a
--- /dev/null
+++ b/content/article/oomen18_advan_motion_contr_precis_mechat.md
@@ -0,0 +1,185 @@
++++
+title = "Advanced motion control for precision mechatronics: control, identification, and learning of complex systems"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Motion Control]({{< relref "motion_control.md" >}})
+
+Reference
+: (Oomen 2018)
+
+Author(s)
+: Oomen, T.
+
+Year
+: 2018
+
+
+## Introduction {#introduction}
+
+Control of positioning systems is traditionally simplified by an excellent mechanical design.
+In particular, the mechanical design is such that the system is stiff and highly reproducible.
+In conjunction with moderate performance requirements, the control bandwidth is well-below the resonance frequency of the flexible mechanics as is shown in [Figure 1](#figure--fig:oomen18-next-gen-loop-gain) (a).
+As a result, the system can often be completely **decoupled** in the frequency range relevant for control.
+Consequently, the control design is divided into well-manageable SISO control loops.
+
+Although motion control design is well developed, presently available techniques mainly apply to positioning systems that behave as a rigid body in the relevant frequency range.
+On one hand, increasing performance requirements hamper the validity of this assumption, since the bandwidth has to increase, leading to flexible dynamics in the cross-over region, see [Figure 1](#figure--fig:oomen18-next-gen-loop-gain) (b).
+
+
+
+{{< figure src="/ox-hugo/oomen18_next_gen_loop_gain.png" caption="Figure 1: Envisaged developments in motion systems. In traditional motion systems, the control bandwidth takes place in the rigid-body region. In the next generation systemes, flexible dynamics are foreseen to occur within the control bandwidth." >}}
+
+
+## Traditional motion control {#traditional-motion-control}
+
+In the frequency range that is relevant for control, the dynamical behavior is mainly determined by the mechanics.
+In particular, the mechanics can typically be described as:
+
+\begin{equation}
+G\_m = \sum\_{i=1}^{n\_{RB}} \frac{c\_i b\_i^T}{s^2} + \sum\_{n\_{RB} + 1}^{n\_s} \frac{c\_i b\_i^T}{s^2 + 2\xi \omega\_i s + \omega\_i^2}
+\end{equation}
+
+where the first term refers to rigid body modes and the second term to flexible modes.
+
+- \\(n\_{RB}\\) is the number of rigid body modes
+- \\(c\_i \in \mathbb{R}^{n\_y}\\) and \\(b\_i \in \mathbb{R}^{n\_u}\\) are associated with the mode shapes
+- \\(\xi\_i, \omega\_i \in \mathbb{R}\_+\\)
+
+In traditional positioning systems, the number of actuators \\(n\_u\\) and sensors \\(n\_y\\) equals the number of rigid body modes \\(n\_{RB}\\) and are positioned such that the matrix \\(\sum\_{i=1}^{n\_{RB}} c\_i b\_i^T\\) is invertible.
+In this case, matrices \\(T\_u\\) and \\(T\_y\\) can be selected such that:
+
+\begin{equation}
+G = T\_y G\_m T\_u = \frac{1}{s^2} I\_{n\_{RB}} + G\_{\text{flex}}
+\end{equation}
+
+A tradition motion control architecture is shown in [Figure 2](#figure--fig:oomen18-control-architecture).
+
+
+
+{{< figure src="/ox-hugo/oomen18_control_architecture.png" caption="Figure 2: Traditional motion control architecture" >}}
+
+
+### Traditional feedforward design {#traditional-feedforward-design}
+
+[Feedforward Control]({{< relref "feedforward_control.md" >}}) can effectively compensate for reference induced error signals.
+In particular, \\(f\\) should be selected such that \\(r - G f\\) is minimized.
+In the low frequency range, the system is decoupled and \\(G\_{\text{flex}}\\) can be ignored, in which case \\(f = G^{-1} r\\).
+In practice, the feedforward signal is selected as \\(f = ms^2 r\\).
+
+
+### Traditional feedback design {#traditional-feedback-design}
+
+The [Feedback Controller]({{< relref "feedback_control.md" >}}) has to minimize \\((1 + GK)^{-1}(\delta - v)\\).
+The main idea is that rigid body decoupling of \\(G\\) enables the shaping of the diagonal elements of \\(K\\) through a decentralized feedback controller.
+As a result, each diagonal element of \\(K\\) may be tuned independently.
+Typically, a PID controller is tuned through manual loop-shaping, followed by notch filters to account the the flexible modes that hamper stability and/or performance.
+
+
+### Traditional design procedure {#traditional-design-procedure}
+
+Traditional motion control design divides the multi-variable control design problems into sub-problems that are manageable by manual control design.
+The traditional procedure consists of the following steps:
+
+- identify an FRF of \\(G\_m\\)
+- decouple the plant to obtain an FRF of \\(G\\)
+- design \\(K\\) using manual loop-shaping, consisting of PID with notches
+- tune a feedforward controller, e.g. \\(f = m s^2 r\\)
+
+
+## Precision motion control developments {#precision-motion-control-developments}
+
+
+### Challenges {#challenges}
+
+High performance mechatronic systems are becoming lighter and lighter.
+Such lightweight systems exhibit predominant flexible dynamical behavior, as well as an increased susceptibility to disturbances.
+
+This leads to several challenges for motion control design:
+
+- **Unmeasured performance variables** due to spatio-temporal deformations.
+ In particular, the location where the performance is desired may not be directly measured.
+- **Many additional inputs and outputs** can be exploited to actively control the flexible dynamical behavior.
+ Spatially distributed actuators can actively provide stiffness and damping to the mechanical deformations.
+- **Position dependent behavior** is almost unavoidable.
+ For instance in gantry stage designs, mass distribution change due to motion, leading to additional position-dependent behavior.
+ A key challenge lies in handling the position dependence of future systems
+- A **system-of-systems perspective** on motion control design provides a strong potential for performance enhancement of the overall system.
+ In particular, typical manufacturing machines and scientific instruments involves multiple controlled subsystems where the two subsystems have to move relative to each other.
+ Performance limitations in each subsystem will negatively impact the overall performance.
+ A joint design enables that individual subsystems will be able to compensate each other's limitations.
+ A main challenge lies in an increase of the complexity of the control problem.
+- **Thermal dynamics**, in addition to mechanical deformations are expected to become substantially more important due to increasing performance specifications.
+- **Vibrations**, such as flow induced vibrations of cooling liquids and floor vibrations, have to be attenuated.
+
+
+### Generalized plant approach {#generalized-plant-approach}
+
+A generalized plant framework allows for a systematic way to address the future challenges in advanced motion control.
+
+The generalized plant is depicted in [Figure 3](#figure--fig:oomen18-generalized-plant):
+
+- \\(z\\) are the performance variables
+- \\(y\\) and \\(u\\) are the measured variables and measured variables, respectively
+- \\(w\\) contains the exogenous inputs, typically including both reference signals and disturbances.
+
+
+
+{{< figure src="/ox-hugo/oomen18_generalized_plant.png" caption="Figure 3: Generalized plant setup" >}}
+
+
+## Feedback and Identification for Control {#feedback-and-identification-for-control}
+
+Feedback control is essential to deal with uncertainty in the system dynamics \\(G\\) and disturbances \\(v\\).
+Indeed, the main goal of feedback si to render the system insensitive to such uncertainties.
+
+
+### Norm-based control {#norm-based-control}
+
+A model-based design is foreseen to be able to systematically address the above mentioned challenges.
+
+To specify the control goal, the criterion:
+
+\begin{equation}
+J(G, K) = \\| \mathcal{F}\_l(P(G), K) \\|
+\end{equation}
+
+is posed, where the goal is to compute:
+
+\begin{equation}
+K\_{\text{opt}} = \text{arg} \text{min}\_{K} J(G\_0, K)
+\end{equation}
+
+Where \\(\\| \cdot \\|\\) denotes a suitable norm, e.g. \\(\mathcal{H}\_2\\) or \\(\mathcal{H}\_\infty\\), and \\(\mathcal{F}\_l\\) denotes a lower linear fractional transformation.
+
+\\(G\_0\\) denotes the true system, which is generally unknown and represented by a model \\(\hat{G}\\).
+
+
+### Nominal modeling for control {#nominal-modeling-for-control}
+
+To arrive at a mathematically tractable optimization problem, knowledge of the true system is represented through a model \\(\hat{G}\\).
+The central question is how to obtain such a model that is suitable for controller design.
+[System Identification]({{< relref "system_identification.md" >}}) as opposed to first principles modeling, is an inexpensive, fast and accurate approach to obtain such a model.
+Indeed, the machine is often already built, enabling direct experimentation.
+
+The model \\(\hat{G}\\) that results from system identification is an approximation of the true system \\(G\_0\\) for several reasons:
+
+- motion systems often contains an infinite number of modes \\(n\_s\\), while a model of limited complexity may be desirable from a control perspective
+- parasitic non-linearities are present, including nonlinear damping
+- identification experiments are based on finite time disturbed observations, leading to uncertainties on estimated parameters
+
+
+### Toward robust motion control {#toward-robust-motion-control}
+
+Doing a model based control design using an identified model may not work well due to a lack of robustness.
+Indeed, if \\(K(\hat{G})\\) is designed solely based on \\(\hat{G}\\), there is no reason to assume that it achieves a suitable level of performance on \\(G\_0\\).
+This motivates a robust control design, where the **model quality is explicitly addressed during controller synthesis**.
+
+
+## Feedforward and learning {#feedforward-and-learning}
+
+
+
Oomen, Tom. 2018. “Advanced Motion Control for Precision Mechatronics: Control, Identification, and Learning of Complex Systems.” IEEJ Journal of Industry Applications 7 (2): 127–40. doi:10.1541/ieejjia.7.127.
+
diff --git a/content/article/preumont02_force_feedb_versus_accel_feedb.md b/content/article/preumont02_force_feedb_versus_accel_feedb.md
new file mode 100644
index 0000000..8e8beae
--- /dev/null
+++ b/content/article/preumont02_force_feedb_versus_accel_feedb.md
@@ -0,0 +1,53 @@
++++
+title = "Force feedback versus acceleration feedback in active vibration isolation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Preumont et al. 2002)
+
+Author(s)
+: Preumont, A., A. Francois, Bossens, F., & Abu-Hanieh, A.
+
+Year
+: 2002
+
+Summary:
+
+- Compares the force feedback and acceleration feedback for active damping
+- The use of a force sensor always give alternating poles and zeros in the open-loop transfer function between for force actuator and the force sensor which **guarantees the stability of the closed loop**
+- Acceleration feedback produces alternating poles and zeros only when the flexible structure is stiff compared to the isolation system
+
+The force applied to a **rigid body** is proportional to its acceleration, thus sensing the total interface force gives a measured of the absolute acceleration of the solid body.
+Thus force feedback and acceleration feedback are equivalent for solid bodies.
+When there is a flexible payload, the two sensing options are not longer equivalent.
+
+- For light payload ([Figure 1](#figure--fig:preumont02-force-acc-fb-light)), the acceleration feedback gives larger damping on the higher mode.
+- For heavy payload ([Figure 2](#figure--fig:preumont02-force-acc-fb-heavy)), the acceleration feedback do not give alternating poles and zeros and thus for high control gains, the system becomes unstable
+
+
+
+{{< figure src="/ox-hugo/preumont02_force_acc_fb_light.png" caption="Figure 1: Root locus for **light** flexible payload, (a) Force feedback, (b) acceleration feedback" >}}
+
+
+
+{{< figure src="/ox-hugo/preumont02_force_acc_fb_heavy.png" caption="Figure 2: Root locus for **heavy** flexible payload, (a) Force feedback, (b) acceleration feedback" >}}
+
+Guaranteed stability of the force feedback:
+
+> If two arbitrary flexible, undamped structures are connected with a single-axis soft isolator with force feedback, the poles and zeros of the open-loop transfer function from the force actuator to the force sensor alternate on the imaginary axis.
+
+The same is true for the transfer function from the force actuator to the relative displacement of the actuator.
+
+> According to physical interpretation of the zeros, they represent the resonances of the subsystem constrained by the sensor and the actuator.
+
+
+## Bibliography {#bibliography}
+
+
+
Preumont, A., A. François, F. Bossens, and A. Abu-Hanieh. 2002. “Force Feedback versus Acceleration Feedback in Active Vibration Isolation.” Journal of Sound and Vibration 257 (4): 605–13. doi:10.1006/jsvi.2002.5047.
+
diff --git a/content/article/preumont07_six_axis_singl_stage_activ.md b/content/article/preumont07_six_axis_singl_stage_activ.md
new file mode 100644
index 0000000..533a70d
--- /dev/null
+++ b/content/article/preumont07_six_axis_singl_stage_activ.md
@@ -0,0 +1,53 @@
++++
+title = "A six-axis single-stage active vibration isolator based on stewart platform"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (Preumont et al. 2007)
+
+Author(s)
+: Preumont, A., Horodinca, M., Romanescu, I., Marneffe, B. d., Avraam, M., Deraemaeker, A., Bossens, F., …
+
+Year
+: 2007
+
+Summary:
+
+- **Cubic** Stewart platform ([Figure 3](#figure--fig:preumont07-stewart-platform))
+ - Provides uniform control capability
+ - Uniform stiffness in all directions
+ - minimizes the cross-coupling among actuators and sensors of different legs
+- Flexible joints ([Figure 2](#figure--fig:preumont07-flexible-joints))
+- Piezoelectric force sensors
+- Voice coil actuators
+- Decentralized feedback control approach for vibration isolation
+- Effect of parasitic stiffness of the flexible joints on the IFF performance ([Figure 1](#figure--fig:preumont07-iff-effect-stiffness))
+- The Stewart platform has 6 suspension modes at different frequencies.
+ Thus the gain of the IFF controller cannot be optimal for all the modes.
+ It is better if all the modes of the platform are near to each other.
+- Discusses the design of the legs in order to maximize the natural frequency of the local modes.
+- To estimate the isolation performance of the Stewart platform, a scalar indicator is defined as the Frobenius norm of the transmissibility matrix
+
+
+
+{{< figure src="/ox-hugo/preumont07_iff_effect_stiffness.png" caption="Figure 1: Root locus with IFF with no parasitic stiffness and with parasitic stiffness" >}}
+
+
+
+{{< figure src="/ox-hugo/preumont07_flexible_joints.png" caption="Figure 2: Flexible joints used for the Stewart platform" >}}
+
+
+
+{{< figure src="/ox-hugo/preumont07_stewart_platform.png" caption="Figure 3: Stewart platform" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Preumont, A., M. Horodinca, I. Romanescu, B. de Marneffe, M. Avraam, A. Deraemaeker, F. Bossens, and A. Abu Hanieh. 2007. “A Six-Axis Single-Stage Active Vibration Isolator Based on Stewart Platform.” Journal of Sound and Vibration 300 (3-5): 644–61. doi:10.1016/j.jsv.2006.07.050.
+
diff --git a/content/article/saxena12_advan_inter_model_contr_techn.md b/content/article/saxena12_advan_inter_model_contr_techn.md
new file mode 100644
index 0000000..a6d6e79
--- /dev/null
+++ b/content/article/saxena12_advan_inter_model_contr_techn.md
@@ -0,0 +1,92 @@
++++
+title = "Advances in internal model control technique: a review and future prospects"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Complementary Filters]({{< relref "complementary_filters.md" >}}), [Virtual Sensor Fusion]({{< relref "virtual_sensor_fusion.md" >}})
+
+Reference
+: (Saxena and Hote 2012)
+
+Author(s)
+: Saxena, S., & Hote, Y.
+
+Year
+: 2012
+
+
+## Proposed Filter \\(F(s)\\) {#proposed-filter-f--s}
+
+\begin{align\*}
+ F(s) &= \frac{1}{(\lambda s + 1)^n} \\\\
+ F(s) &= \frac{n \lambda + 1}{(\lambda s + 1)^n}
+\end{align\*}
+
+
+## Internal Model Control {#internal-model-control}
+
+Central concept in IMC: control can be acheive only if the control system involves, either implicitly or explicitly, some representation of the process to be controlled.
+
+
+### Basic IMC structure {#basic-imc-structure}
+
+IMC can be considered as a special case of classical feedback structure with plant \\(G(s)\\) and controller \\(C(s)\\).
+
+The plan model \\(G\_M(s)\\) is added and substracted into the feedback path of feedback controller.
+
+The structure can then be modified and we obtain a new controller \\(Q(s)\\).
+
+IMC is related to the classical controller through:
+
+\begin{align\*}
+Q(s) = \frac{C(s)}{1+G\_M(s)C(s)} \\\\
+C(s) = \frac{Q(s)}{1-G\_M(s)Q(s)}
+\end{align\*}
+
+Internal model control system is characterized by a control device consisting of the controller \\(Q(s)\\) and a predictive model \\(G\_M(s)\\) of the process (internal model).
+The internal model loop uses the difference between the outputs of the process \\(G(s)\\) to be controlled and the internal model.
+This difference \\(E(s)\\) represents the effect of disturbance and mismatch of the model.
+
+
+### Features of IMC Structure {#features-of-imc-structure}
+
+Three properties:
+
+- **Dual stability**: assume that, if the plant model is perfect (\\(G\_M(s) = G(s)\\)) and disturbance is absent, the system becomes open-loop and the closed-loop stability is characterized by the stability of \\(G(s)\\) and \\(Q(s)\\)
+- **Perfect control**: assume that, if the controller is equal to the model inverse (\\(Q(s) = G\_M^{-1}\\)) and \\(G(s) = G\_M(s)\\) with \\(G(s)\\) stable, then the system is perfectly controlled.
+- **Zero Offset**: assume that, if the steady state gain of the controller is equal to the inverse of model gain, then offset free control is obtained for constant step of ramp type inputs and disturbances. As expected, the equivalent classical controller leads to integral action.
+
+Issues:
+
+- the plant model is never perfect
+- inverting the model can cause instability
+- control signal may have large magnitude
+
+
+## Design procedure for IMC Compensator {#design-procedure-for-imc-compensator}
+
+1. factorize the plant model as \\(G\_M(s) = G\_{M-}(s)G\_{M+}(s)\\) where \\(G\_{M-}(s)\\) is invertible and minimum phase and \\(G\_{M+}(s)\\) is non-invertible and contains all non-minimum phase elements (delays, RHP zeros). Then, the controller is the inverse of the invertible portion of the plant model: \\(Q\_1(s) = G\_{M-}^{-1}(s)\\).
+2. Filter selection: to make the controller proper and robust against the plant-model mismatch, a low pass filter of the form \\(F(s) = \frac{n \lambda}{(\lambda s + 1)^n}\\) is augmented with the inverted model \\(Q\_1(s)\\): \\(Q(s) = Q\_1(s) F(s)\\). \\(\lambda\\) is a tuning parameter which has an inverse relationship with the speed of closed loop response, \\(n\\) is selected such that \\(Q(s)\\) becomes proper.
+
+
+## Issues in IMC {#issues-in-imc}
+
+
+### Filter selection and tuning guidelines {#filter-selection-and-tuning-guidelines}
+
+
+## Some advantages and future prospects {#some-advantages-and-future-prospects}
+
+
+## Conclusion {#conclusion}
+
+The interesting feature regarding IMC is that the design scheme is identical to the open-loop control design procedure and the implementation of IMC results in a feedback system, thereby copying the disturbances and parameter uncertainties, while open-loop control is not.
+
+
+## Bibliography {#bibliography}
+
+
+
Saxena, S., and Y. V. Hote. 2012. “Advances in Internal Model Control Technique: A Review and Future Prospects.” IETE Technical Review 29 (6): 461. doi:10.4103/0256-4602.105001.
+
diff --git a/content/article/schellekens98_desig_precis.md b/content/article/schellekens98_desig_precis.md
new file mode 100644
index 0000000..869d8fd
--- /dev/null
+++ b/content/article/schellekens98_desig_precis.md
@@ -0,0 +1,24 @@
++++
+title = "Design for precision: current status and trends"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [Precision Engineering]({{< relref "precision_engineering.md" >}})
+
+Reference
+: (Schellekens et al. 1998)
+
+Author(s)
+: Schellekens, P., Rosielle, N., Vermeulen, H., Vermeulen, M., Wetzels, S., & Pril, W.
+
+Year
+: 1998
+
+
+## Bibliography {#bibliography}
+
+
+
Schellekens, P., N. Rosielle, H. Vermeulen, M. Vermeulen, S. Wetzels, and W. Pril. 1998. “Design for Precision: Current Status and Trends.” Cirp Annals, no. 2: 557–86. doi:10.1016/s0007-8506(07)63243-0.
Schroeck, S.J., W.C. Messner, and R.J. McNab. 2001. “On Compensator Design for Linear Time-Invariant Dual-Input Single-Output Systems.” IEEE/ASME Transactions on Mechatronics 6 (1): 50–57. doi:10.1109/3516.914391.
+
diff --git a/content/article/sebastian12_nanop_with_multip_sensor.md b/content/article/sebastian12_nanop_with_multip_sensor.md
new file mode 100644
index 0000000..24e0b43
--- /dev/null
+++ b/content/article/sebastian12_nanop_with_multip_sensor.md
@@ -0,0 +1,24 @@
++++
+title = "Nanopositioning with multiple sensors: a case study in data storage"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [Sensor Fusion]({{< relref "sensor_fusion.md" >}})
+
+Reference
+: (Sebastian and Pantazi 2012)
+
+Author(s)
+: Sebastian, A., & Pantazi, A.
+
+Year
+: 2012
+
+
+## Bibliography {#bibliography}
+
+
+
Sebastian, Abu, and Angeliki Pantazi. 2012. “Nanopositioning with Multiple Sensors: A Case Study in Data Storage.” IEEE Transactions on Control Systems Technology 20 (2): 382–94. doi:10.1109/tcst.2011.2177982.
+
diff --git a/content/article/souleille18_concep_activ_mount_space_applic.md b/content/article/souleille18_concep_activ_mount_space_applic.md
new file mode 100644
index 0000000..a7d4a5b
--- /dev/null
+++ b/content/article/souleille18_concep_activ_mount_space_applic.md
@@ -0,0 +1,100 @@
++++
+title = "A concept of active mount for space applications"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Active Damping]({{< relref "active_damping.md" >}})
+
+Reference
+: (Souleille et al. 2018)
+
+Author(s)
+: Souleille, A., Lampert, T., Lafarga, V., Hellegouarch, S., Rondineau, A., Rodrigues, Gonccalo, & Collette, C.
+
+Year
+: 2018
+
+This article discusses the use of Integral Force Feedback with amplified piezoelectric stack actuators.
+
+> In the proposed configuration, it can also be noticed by the softening effect inherent to force control is limited by the metallic suspension.
+
+
+## Single degree-of-freedom isolator {#single-degree-of-freedom-isolator}
+
+[Figure 1](#figure--fig:souleille18-model-piezo) shows a picture of the amplified piezoelectric stack.
+The piezoelectric actuator is divided into two parts: one is used as an actuator, and the other one is used as a force sensor.
+
+
+
+{{< figure src="/ox-hugo/souleille18_model_piezo.png" caption="Figure 1: Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator" >}}
+
+
+ Table 1:
+ Parameters used for the model of the APA 100M
+
+
+| | Value | Meaning |
+|------------|------------------------|----------------------------------------------------------------|
+| \\(m\\) | \\(1\\,[kg]\\) | Payload mass |
+| \\(k\_e\\) | \\(4.8\\,[N/\mu m]\\) | Stiffness used to adjust the pole of the isolator |
+| \\(k\_1\\) | \\(0.96\\,[N/\mu m]\\) | Stiffness of the metallic suspension when the stack is removed |
+| \\(k\_a\\) | \\(65\\,[N/\mu m]\\) | Stiffness of the actuator |
+| \\(c\_1\\) | \\(10\\,[N/(m/s)]\\) | Added viscous damping |
+
+The dynamic equation of the system is:
+
+\begin{equation}
+ m \ddot{x}\_1 = \left( k\_1 + \frac{k\_ek\_a}{k\_e + k\_a} \right) ( w - x\_1) + c\_1 (\dot{w} - \dot{x}\_1) + F + \left( \frac{k\_e}{k\_e + k\_a} \right)f
+\end{equation}
+
+The expression of the force measured by the force sensor is:
+
+\begin{equation}
+ F\_s = \left( -\frac{k\_e k\_a}{k\_e + k\_a} \right) x\_1 + \left( \frac{k\_e k\_a}{k\_e + k\_a} \right) w + \left( \frac{k\_e}{k\_e + k\_a} \right) f
+\end{equation}
+
+and the control force is given by:
+
+\begin{equation}
+ f = F\_s G(s) = F\_s \frac{g}{s}
+\end{equation}
+
+The effect of the controller are shown in [Figure 2](#figure--fig:souleille18-tf-iff-result):
+
+- the resonance peak is almost critically damped
+- the passive isolation \\(\frac{x\_1}{w}\\) is not degraded at high frequencies
+- the degradation of the compliance \\(\frac{x\_1}{F}\\) induced by feedback is limited at \\(\frac{1}{k\_1}\\)
+- the fraction of the force transmitted to the payload that is measured by the force sensor is reduced at low frequencies
+
+
+
+{{< figure src="/ox-hugo/souleille18_tf_iff_result.png" caption="Figure 2: Matrix of transfer functions from input (w, f, F) to output (Fs, x1) in open loop (blue curves) and closed loop (dashed red curves)" >}}
+
+
+
+{{< figure src="/ox-hugo/souleille18_root_locus.png" caption="Figure 3: Single DoF system. Comparison between the theoretical (solid curve) and the experimental (crosses) root-locus" >}}
+
+
+## Flexible payload mounted on three isolators {#flexible-payload-mounted-on-three-isolators}
+
+A heavy payload is mounted on a set of three isolators ([Figure 4](#figure--fig:souleille18-setup-flexible-payload)).
+The payload consists of two masses, connected through flexible blades such that the flexible resonance of the payload in the vertical direction is around 65Hz.
+
+
+
+{{< figure src="/ox-hugo/souleille18_setup_flexible_payload.png" caption="Figure 4: Right: picture of the experimental setup. It consists of a flexible payload mounted on a set of three isolators. Left: simplified sketch of the setup, showing only the vertical direction" >}}
+
+As shown in [Figure 5](#figure--fig:souleille18-result-damping-transmissibility), both the suspension modes and the flexible modes of the payload can be critically damped.
+
+
+
+{{< figure src="/ox-hugo/souleille18_result_damping_transmissibility.png" caption="Figure 5: Transmissibility between the table top \\(w\\) and \\(m\_1\\)" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Souleille, A., T. Lampert, V. Lafarga, S. Hellegouarch, A. Rondineau, G. Rodrigues, and C. Collette. 2018. “A Concept of Active Mount for Space Applications.” CEAS Space Journal 10 (2). Springer: 157–65.
+
diff --git a/content/article/spanos95_soft_activ_vibrat_isolat.md b/content/article/spanos95_soft_activ_vibrat_isolat.md
new file mode 100644
index 0000000..d019d38
--- /dev/null
+++ b/content/article/spanos95_soft_activ_vibrat_isolat.md
@@ -0,0 +1,66 @@
++++
+title = "A soft 6-axis active vibration isolator"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Spanos, Rahman, and Blackwood 1995)
+
+Author(s)
+: Spanos, J., Rahman, Z., & Blackwood, G.
+
+Year
+: 1995
+
+**Stewart Platform** ([Figure 1](#figure--fig:spanos95-stewart-platform)):
+
+- Voice Coil
+- Flexible joints (cross-blades)
+- Force Sensors
+- Cubic Configuration
+
+
+
+{{< figure src="/ox-hugo/spanos95_stewart_platform.png" caption="Figure 1: Stewart Platform" >}}
+
+Total mass of the paylaod: 30kg
+Center of gravity is 9cm above the geometry center of the mount (cube's center?).
+
+Limitation of the **Decentralized Force Feedback**:
+
+- high frequency pole due to internal resonances of the struts
+- low frequency zero due to the rotational stiffness of the flexible joints
+
+After redesign of the struts:
+
+- high frequency pole at 4.7kHz
+- low frequency zero at 2.6Hz but non-minimum phase (not explained).
+ Small viscous damping material in the cross blade flexures made the zero minimum phase again.
+
+
+
+{{< figure src="/ox-hugo/spanos95_iff_plant.png" caption="Figure 2: Experimentally measured transfer function from voice coil drive voltage to collocated load cell output voltage" >}}
+
+The controller used consisted of:
+
+- second order low pass filter to gain stabilize the plant at high frequencies and provide steep roll-off
+- first order lead filter to provide adequate phase margin at the high frequency crossover
+- first order lag filter to provide adequate phase margin at the low frequency crossover
+- a first order high pass filter to attenuate the excess gain resulting from the low frequency zero
+
+The results in terms of transmissibility are shown in [Figure 3](#figure--fig:spanos95-results).
+
+
+
+{{< figure src="/ox-hugo/spanos95_results.png" caption="Figure 3: Experimentally measured Frobenius norm of the 6-axis transmissibility" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Spanos, J., Z. Rahman, and G. Blackwood. 1995. “A Soft 6-Axis Active Vibration Isolator.” In Proceedings of 1995 American Control Conference - ACC’95. doi:10.1109/acc.1995.529280.
+
diff --git a/content/article/stankevic17_inter_charac_rotat_stages_x_ray_nanot.md b/content/article/stankevic17_inter_charac_rotat_stages_x_ray_nanot.md
new file mode 100644
index 0000000..c316d67
--- /dev/null
+++ b/content/article/stankevic17_inter_charac_rotat_stages_x_ray_nanot.md
@@ -0,0 +1,37 @@
++++
+title = "Interferometric characterization of rotation stages for x-ray nanotomography"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Nano Active Stabilization System]({{< relref "nano_active_stabilization_system.md" >}}), [Positioning Stations]({{< relref "positioning_stations.md" >}})
+
+Reference
+: (Stankevic et al. 2017)
+
+Author(s)
+: Stankevic, T., Engblom, C., Langlois, F., Alves, F., Lestrade, A., Jobert, N., Cauchon, G., …
+
+Year
+: 2017
+
+- Similar Station than the NASS
+- Similar Metrology with fiber based interferometers and cylindrical reference mirror
+
+
+
+{{< figure src="/ox-hugo/stankevic17_station.png" caption="Figure 1: Positioning Station" >}}
+
+- **Thermal expansion**: Stabilized down to \\(5mK/h\\) using passive water flow through the baseplate below the sample stage and in the interferometry reference frame.
+- **Controller**: Two Independant PID loops
+- Repeatable errors => feedforward (Look Up Table)
+- Non-repeatable errors => feedback
+- Result: 40nm runout error
+
+
+## Bibliography {#bibliography}
+
+
+
Stankevic, T., C. Engblom, F. Langlois, F. Alves, A. Lestrade, N. Jobert, G. Cauchon, U. Vogt, and S. Kubsky. 2017. “Interferometric Characterization of Rotation Stages for X-Ray Nanotomography.” Review of Scientific Instruments 88 (5): 053703. doi:10.1063/1.4983405.
+
diff --git a/content/article/stein03_respec_unstab.md b/content/article/stein03_respec_unstab.md
new file mode 100644
index 0000000..58878f3
--- /dev/null
+++ b/content/article/stein03_respec_unstab.md
@@ -0,0 +1,125 @@
++++
+title = "Respect the unstable"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Stein 2003)
+
+Author(s)
+: Stein, G.
+
+Year
+: 2003
+
+
+## Introduction {#introduction}
+
+> The second trend has been evident at our conferences, and certainly in our journal, over the years.
+> This trend is the increasing worship of abstract mathematical results in control at the expense of more specific examinations of their practical, physical consequences.
+
+
+
+**Basic facts about unstable plants**:
+
+- Unstable systems are fundamentally, and quantifiably more difficult to control than stable ones
+- Controllers for unstable systems are operationally critical
+- Closed-loop systems with unstable components are only locally stable
+
+
+
+
+## The Bode Integrals {#the-bode-integrals}
+
+
+
+**Bode Integrals**:
+
+The first integral applies to stable plants and the second to unstable plants.
+They are valid for every stabilizing controller, assuming only that both plan and controller have finite bandwidths.
+In words, the integrals state that the log of magnitude of sensitivity function of a SISO feedback system, integrated over frequency, is constant.
+The constant is zero for stable plants, and it is positive for unstable ones.
+It becomes larger as the number of unstable poles increases and/or as the poles more farther into the right-half plane.
+
+\begin{align}
+ \int\_0^\infty \ln |S(j\omega)| d \omega & = 0 \label{eq:bode\_integral\_stable} \\\\
+ \int\_0^\infty \ln |S(j\omega)| d \omega & = \pi \sum\_{p \in P} \text{Re}(p) \label{eq:bode\_integral\_unstable}
+\end{align}
+
+
+
+
+## A Bode Integral Interpretation {#a-bode-integral-interpretation}
+
+Bode integral can be thought as **conservation laws**.
+They state that a certain quantity, the integrated value of the log of the magnitude of the sensitivity function, is conserved under the action of feedback.
+The total amount of this quantity is always the same.
+It is equal to zero for stable plant/compensator pairs, and it is equal to some fixed positive amount for unstable ones.
+
+Since we are talking about the log of sensitivity magnitude, it follows that negative values are good, and positive values are bad.
+
+
+
+It is curious, somehow, that our field has not adopted a name for this quantity being conserved (i.e. the integrated log of sensitivity magnitude).
+It is here proposed to call it **dirt**
+
+
+
+The job of a serious control designer is then to more dirt from one place to another, using appropriate tools, without being able to get rid of any of it (illustrated in [Figure 1](#figure--fig:stein03-serious-design)).
+
+
+
+{{< figure src="/ox-hugo/stein03_serious_design.png" caption="Figure 1: Sensitivity reduction at low frequency unavoidably leads to sensitivity increase at higher frequencies" >}}
+
+In the same spirit, the job of a more academic control designer with more abstract tools such as LQG, \\(\mathcal{H}\_\infty\\), is to set parameters (weights) of a synthesis machine to adjust the contours of the machine's digging blades to get just the right shape for the sensitivity function ([Figure 2](#figure--fig:stein03-formal-design)).
+
+
+
+{{< figure src="/ox-hugo/stein03_formal_design.png" caption="Figure 2: Sensitivity shaping automated by modern control tools" >}}
+
+
+## Available bandwidth {#available-bandwidth}
+
+An argument is sometimes made that the Bode integrals are not really restrictive because we only seek to dig holes over finite frequency bands.
+We then have an infinite frequency range left over into which to dump the dirt, so we can make the layer arbitrarily thin ([Figure 3](#figure--fig:stein03-spreading-it-thin)).
+
+
+
+{{< figure src="/ox-hugo/stein03_spreading_it_thin.png" caption="Figure 3: It is possible to spead the increase of the sensitivity function over a larger frequency band" >}}
+
+The weakness of this argument is evident from standard classical theory.
+A thin layer, say with \\(\ln|S| = \epsilon\\) requires a loop transfer function whose Nyquist diagram falls on a near-unit circle, centered at \\((-1 + j 0)\\) with a radius \\(\approx (1-\epsilon)\\), over a wide frequency range.
+This means that the loop cannot simply attenuate at high frequencies but must attenuate in a very precise way.
+The loop must maintain very good frequency response fidelity over wide frequency ranges.
+
+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.
+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\\))| < δ/ω^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.
+
+Note that the available bandwidth is not a function of the compensator or of the control design process.
+Rather, it is an a priori constraint imposed by the physical hardware we use in the control loop.
+Most importantly, the available bandwidth is always finite.
+
+Given all this, Bode's integrals really reduce to finite integrals over the range \\(0 \ge \omega \ge \Omega\_a\\):
+
+\begin{align}
+ \int\_0^{\Omega\_a} \ln{|S(j \omega)|} d \omega &= \delta \\\\
+ \int\_0^{\Omega\_a} \ln{|S(j \omega)|} d \omega &= \pi \sum\_{p \in P} \text{Re}(p) + \delta
+\end{align}
+
+All the action of the feedback design, the sensitivity improvements as well as the sensitivity deterioration, must occur within \\(0 \ge \omega \ge \Omega\_a\\).
+Only a small error \\(\delta\\) occurs outside that range, associated with the tail of the complete integrals.
+
+
+## Bibliography {#bibliography}
+
+
+
Stein, Gunter. 2003. “Respect the Unstable.” IEEE Control Systems Magazine 23 (4). IEEE: 12–25.
Steinbuch, Maarten, Tom Oomen, and Hans Vermeulen. 2021. “Motion Control, Mechatronics Design, and Moore’s Law.” IEEJ Journal of Industry Applications. The Institute of Electrical Engineers of Japan, 21006010.
Steinbuch, M., and M.L. Norg. 1998. “Advanced Motion Control: An Industrial Perspective.” European Journal of Control 4 (4): 278–93. doi:10.1016/s0947-3580(98)70121-9.
+
diff --git a/content/article/stoev17_tensor_method_mimo_decoup_contr.md b/content/article/stoev17_tensor_method_mimo_decoup_contr.md
new file mode 100644
index 0000000..31773dc
--- /dev/null
+++ b/content/article/stoev17_tensor_method_mimo_decoup_contr.md
@@ -0,0 +1,202 @@
++++
+title = "Tensor methods for mimo decoupling and control design using frequency response functions"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Decoupled Control]({{< relref "decoupled_control.md" >}}), [Multivariable Control]({{< relref "multivariable_control.md" >}})
+
+Reference
+: (Stoev et al. 2017)
+
+Author(s)
+: Stoev, J., Ertveldt, J., Oomen, T., & Schoukens, J.
+
+Year
+: 2017
+
+
+## Introduction {#introduction}
+
+By appropriate system design, most systems are either decoupled or can be decoupled using static input-output transformations.
+Hence, most motion system and their motion software architecture use SISO control design method and solutions.
+
+The first step typically involves a FRF identification using specific excitation signals.
+Once the FRF is available, the controller \\(K\\) can be designed directly based on the FRF data.
+Many classical MIMO control design methods aim at decoupling the open loop function at some location in the feedback loop.
+Because their are strong non-intuitive aspect of MIMO loop-shaping, the following step-by-step approach is proposed, in which the design complexity is only increased if justified by the problem at hand:
+
+- **[Interaction Analysis]({{< relref "interaction_analysis.md" >}})**.
+ The goal is to identify two sided interactions in the plant dynamics.
+ If there is no two sided interaction, then feedback design becomes a standard multi-loop SISO design problem.
+ Two measured of the plant interaction are [Relative Gain Array]({{< relref "relative_gain_array.md" >}}) and [Structured Singular Value]({{< relref "structured_singular_value.md" >}}).
+- **Decoupling transformations**.
+ To reduce interaction, one may redefine the input and output of the plant using a decoupling transformation.
+ For motion systems, most transformations are found on the basis of **kinematic model**.
+ Herein, combinations of the actuators are defined so that actuator variables act in independent (orthogonal) directions at the center of gravity.
+ Similarly, combinations of the sensors are defined so that each translation and rotation of the center of gravity can be measured independently.
+ This, this basically amounts to the **inversion of a kinematic model** of the plant.
+- Independent feedback control design
+- Sequential feedback control design
+- Norm based control design
+
+All steps, except for the last, can be performed with a non-parametric model of the plant (i.e. an identified FRF).
+
+
+## MIMO frequency response decomposition {#mimo-frequency-response-decomposition}
+
+The problem addressed in this paper is to decouple a given set of MIMO FRF.
+Such decoupled representation, if existing, would permit the MIMO FRF to be written as a linear combination of parallel SISO FRFs.
+The existing methods to convert the MIMO FRF into equivalent combination of SISO FRF fall into two groups:
+
+- **matrix decomposition methods** use linear algebra based on eigen-value, or singular value decomposition which are able to diagonalize the FRF at a single frequency.
+- **optimization methods** formulate the problem of simultaneous diagonalization of the FRF at multiple frequencies as an optimization problem.
+
+At each frequency \\(\omega\_i, i = 1 \dots N\_f\\), we have a square matrix \\(H(\omega\_i) \in \mathbb{C}^{N \times N}\\) with the complex response of the system relating the inputs and outputs.
+
+**MIMO decoupling of dyadic system**:
+
+\begin{align}
+H(\omega\_i) &= T\_y S(\omega\_i) T\_u + E(\omega\_i), \ i = 1 \dots N\_f \label{eq:decomposition} \\\\
+S(\omega\_i) &= \begin{bmatrix}
+S\_1(\omega\_i) & 0 & 0 \\\\
+0 & \ddots & 0 \\\\
+0 & 0 & S\_N(\omega\_i)
+\end{bmatrix}
+\end{align}
+
+where \\(S(\omega\_i)\\) is a diagonal matrix containing SISO FRFs \\(S\_k(\omega\_i) \in \mathbb{C}\\) on the main diagonal, \\(T\_y \in \mathbb{R}^{N \times N}\\), \\(T\_u \in \mathbb{R}^{N \times N}\\), \\(E(\omega\_i)\\) is the error.
+
+The approximate MIMO system decoupling is shown in [Figure 1](#figure--fig:stoev17-decoupled-system-schematic).
+
+In practical cases, the matrix \\(\hat{S}(\omega\_i) = T\_y^{-1} H(\omega\_i) T\_u^{-1}\\) will not be purely diagonal, but rather diagonally dominated.
+
+
+
+{{< figure src="/ox-hugo/stoev17_decoupled_system_schematic.png" caption="Figure 1: MIMO FRF decomposition in parallel branches" >}}
+
+The array \\(H(\omega\_i), i = 1 \dots N\_f\\) of complex matrices can be represented as a 3-dimensional sensor \\(\underline{H}\\).
+
+
+
+The core result of this paper is that the decomposition can be found by rephrasing \ref{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.
+
+
+
+Mathematically equivalent form of CPD is shown in the lower part of [Figure 2](#figure--fig:stoev17-decompos-3d-tensor), where the tensor \\(\underline{S}\\) contains the rows of the matrix \\(S\_d\\) on each of its diagonals in the third dimension, which is exactly the problem of simultaneous diagonalization.
+
+The transformation effectively diagonalises the original frequency response tensor \\(\underline{H}\\) using two transformation matrices \\(T\_y, T\_u\\).
+This operation is closely related to the SVD on a single matrix, however in this case the diagonalisation occurs for a set of matrices, each describing the MIMO FRF at different frequency.
+
+
+
+{{< figure src="/ox-hugo/stoev17_decompos_3d_tensor.png" caption="Figure 2: Decomposition of 3D tensor" >}}
+
+The direct application of a CPD procedure on the above complex data tensor would result in complex solutions, including complex matrices \\(T\_y \in \mathbb{C}^{N \times N}\\), \\(T\_u \in \mathbb{C}^{N \times N}\\).
+This is not useful for a practical decoupling of physical systems as we require real solutions for \\(T\_y,T\_u\\).
+The direct solution we use for this is to take the imaginary and real part of the complex tensor \\(\underline{H} \in \mathbb{C}^{N \times N \times N\_f}\\), each of them a real tensor by itself, and stack them one behind the other in the dimension of the frequencies, thus getting an augmented real-valued tensor \\(\underline{\breve{H}} \in \mathbb{R}^{N \times N \times 2N\_f}\\).
+
+
+## Numerical Example {#numerical-example}
+
+Let's now make a Matlab example using the [Tensorlab](https://www.tensorlab.net/) toolbox.
+
+Let's define a 2x2 diagonal system:
+
+```matlab
+S = [4e3/(s^2 + 25*s + 4e3) 0
+ 0 4e5/(s^2 + 250*s + 4e5)];
+```
+
+And coupled this system with two random matrices:
+
+```matlab
+Ty = [0.13 0.003
+ 0.43 0.51];
+
+Tu = [0.32 0.67
+ 0.95 0.006];
+```
+
+The couple system is defined:
+
+```matlab
+H = Ty * S * Tu;
+```
+
+Then, suppose with have the frequency response function of the coupled plant:
+
+```matlab
+freqs = logspace(0,3,1000);
+H_frf = freqresp(H, freqs, 'Hz');
+```
+
+
+
+{{< figure src="/ox-hugo/stoev17_coupled_diagonal_plants.png" caption="Figure 3: Diagonal and coupled plants" >}}
+
+We take the real and imaginary part of the FRF and concatenate the two along the frequency dimension.
+
+```matlab
+H_frf_real = cat(3, real(H_frf), imag(H_frf));
+```
+
+Then random matrices are initialize the the CPD.
+
+```matlab
+U = cpd_rnd(size(H_frf_real), size(H_frf_real,1));
+```
+
+And the CPD is performed.
+
+```matlab
+[T, ~] = cpd3_sd(H_frf_real, U);
+```
+
+The obtained decoupling matrices are:
+
+```matlab
+Ty_est = T{1};
+```
+
+```text
+Ty_est =
+ -0.289402459385387 -0.00647742171539879
+ -0.957207509228524 -1.10111369041218
+```
+
+```matlab
+Tu_est = T{2};
+```
+
+```text
+Tu_est =
+ 0.430893809258741 0.999980044721872
+ 0.902402640256826 0.00631744869723862
+```
+
+And the decoupled plant using the estimated optimal decoupling matrices is:
+
+```matlab
+H_dec = inv(Ty_est) * H * inv(Tu_est);
+```
+
+
+
+{{< figure src="/ox-hugo/stoev17_results_decoupling_example.png" caption="Figure 4: Diagonal, coupled and decoupled plants" >}}
+
+
+## Conclusion {#conclusion}
+
+The paper presents an application for the tensor decomposition for the design of a static decoupling of a MIMO system.
+The results in this paper are obtained on a _non-parametric_ frequency domain model of the plant and indicate that the procedure is more robust that the eigen-value based decoupling.
+The advantages of this method with respect to some of th existing methods can be found when the FRF data available is disturbed by noise.
+
+
+## Bibliography {#bibliography}
+
+
+
Stoev, Julian, Julien Ertveldt, Tom Oomen, and Johan Schoukens. 2017. “Tensor Methods for Mimo Decoupling and Control Design Using Frequency Response Functions.” Mechatronics 45: 71–81. doi:10.1016/j.mechatronics.2017.05.009.
+
diff --git a/content/article/tang18_decen_vibrat_contr_voice_coil.md b/content/article/tang18_decen_vibrat_contr_voice_coil.md
new file mode 100644
index 0000000..2cc8a46
--- /dev/null
+++ b/content/article/tang18_decen_vibrat_contr_voice_coil.md
@@ -0,0 +1,24 @@
++++
+title = "Decentralized vibration control of a voice coil motor-based stewart parallel mechanism: simulation and experiments"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}})
+
+Reference
+: (Tang, Cao, and Yu 2018)
+
+Author(s)
+: Tang, J., Cao, D., & Yu, T.
+
+Year
+: 2018
+
+
+## Bibliography {#bibliography}
+
+
+
Tang, J., D. Cao, and T. Yu. 2018. “Decentralized Vibration Control of a Voice Coil Motor-Based Stewart Parallel Mechanism: Simulation and Experiments.” Proceedings of the Institution of Mechanical Engineers, Part c: Journal of Mechanical Engineering Science 233 (1): 132–45. doi:10.1177/0954406218756941.
+
diff --git a/content/article/thayer02_six_axis_vibrat_isolat_system.md b/content/article/thayer02_six_axis_vibrat_isolat_system.md
new file mode 100644
index 0000000..aeb9020
--- /dev/null
+++ b/content/article/thayer02_six_axis_vibrat_isolat_system.md
@@ -0,0 +1,25 @@
++++
+title = "Six-axis vibration isolation system using soft actuators and multiple sensors"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Thayer et al. 2002)
+
+Author(s)
+: Thayer, D., Campbell, M., Vagners, J., & Flotow, A. v.
+
+Year
+: 2002
+
+
+## Bibliography {#bibliography}
+
+
+
Thayer, D., M. Campbell, J. Vagners, and A. von Flotow. 2002. “Six-Axis Vibration Isolation System Using Soft Actuators and Multiple Sensors.” Journal of Spacecraft and Rockets 39 (2): 206–12. doi:10.2514/2.3821.
Thurner, Klaus, Francesca Paola Quacquarelli, Pierre-François Braun, Claudio Dal Savio, and Khaled Karrai. 2015. “Fiber-Based Distance Sensing Interferometry.” Applied Optics 54 (10). Optical Society of America: 3051–63.
+
diff --git a/content/article/tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip.md b/content/article/tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip.md
new file mode 100644
index 0000000..1d7ab6a
--- /dev/null
+++ b/content/article/tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip.md
@@ -0,0 +1,54 @@
++++
+title = "Sensor fusion for active vibration isolation in precision equipment"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Sensor Fusion]({{< relref "sensor_fusion.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Tjepkema, van Dijk, and Soemers 2012)
+
+Author(s)
+: Tjepkema, D., Dijk, J. v., & Soemers, H.
+
+Year
+: 2012
+
+
+## Relative motion Control {#relative-motion-control}
+
+Control law: \\(f = -G(x-w)\\)
+
+\\[ \frac{x}{w} = \frac{k+G}{ms^2 + k+G} \\]
+\\[ \frac{x}{F} = \frac{1}{ms^2 + k+G} \\]
+
+
+## Force Control {#force-control}
+
+Control law: \\(f = -G F\_a = -G \left(f-k(x-w)\right)\\)
+
+\\[ \frac{x}{w} = \frac{k}{(1+G)ms^2 + k} \\]
+\\[ \frac{x}{F} = \frac{1+G}{(1+G)ms^2 + k} \\]
+
+
+## Inertial Control {#inertial-control}
+
+Control law: \\(f = -Gx\\)
+
+\\[ \frac{x}{w} = \frac{k}{ms^2 + k+G} \\]
+\\[ \frac{x}{F} = \frac{1}{ms^2 + k+G} \\]
+
+
+## Design constraints and control bandwidth {#design-constraints-and-control-bandwidth}
+
+Heavier sensor => lower noise but it is harder to maintain collocation with the actuator => that limits the bandwidth.
+There is a compromise between sensor noise and the influence of the sensor size on the system's design and on the control bandwidth.
+
+
+## Bibliography {#bibliography}
+
+
+
Tjepkema, D., J. van Dijk, and H. M. J. R. Soemers. 2012. “Sensor Fusion for Active Vibration Isolation in Precision Equipment.” Journal of Sound and Vibration 331 (4): 735–49. doi:10.1016/j.jsv.2011.09.022.
+
diff --git a/content/article/vcech19_essen_chall_motion_contr_educat.md b/content/article/vcech19_essen_chall_motion_contr_educat.md
new file mode 100644
index 0000000..87f1a3b
--- /dev/null
+++ b/content/article/vcech19_essen_chall_motion_contr_educat.md
@@ -0,0 +1,25 @@
++++
+title = "Essential challenges in motion control education"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Ech et al. 2019)
+
+Author(s)
+: M. \VCech, J. K\\"onigsmarkov\\'a, Goubej, M., Oomen, T., & Visioli, A.
+
+Year
+: 2019
+
+
+## Bibliography {#bibliography}
+
+
+
ech, M., J. Königsmarková, M. Goubej, T. Oomen, and A. Visioli. 2019. “Essential Challenges in Motion Control Education.” IFAC-PapersOnLine 52 (9): 200–205. doi:10.1016/j.ifacol.2019.08.196.
+
diff --git a/content/article/wang12_autom_marker_full_field_hard.md b/content/article/wang12_autom_marker_full_field_hard.md
new file mode 100644
index 0000000..889f905
--- /dev/null
+++ b/content/article/wang12_autom_marker_full_field_hard.md
@@ -0,0 +1,33 @@
++++
+title = "Automated markerless full field hard x-ray microscopic tomography at sub-50 nm 3-dimension spatial resolution"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Nano Active Stabilization System]({{< relref "nano_active_stabilization_system.md" >}})
+
+Reference
+: (Wang et al. 2012)
+
+Author(s)
+: Wang, J., Chen, Y. K., Yuan, Q., Tkachuk, A., Erdonmez, C., Hornberger, B., & Feser, M.
+
+Year
+: 2012
+
+**Introduction of Markers**:
+That limits the type of samples that is studied
+
+There is a need for markerless nano-tomography
+=> the key requirement is the precision and stability of the positioning stages.
+
+**Passive rotational run-out error system**:
+It uses calibrated metrology disc and capacitive sensors
+
+
+## Bibliography {#bibliography}
+
+
+
Wang, J., Y.-c. K. Chen, Q. Yuan, A. Tkachuk, C. Erdonmez, B. Hornberger, and M. Feser. 2012. “Automated Markerless Full Field Hard X-Ray Microscopic Tomography at Sub-50 Nm 3-Dimension Spatial Resolution.” Applied Physics Letters 100 (14): 143107. doi:10.1063/1.3701579.
+
diff --git a/content/article/wang16_inves_activ_vibrat_isolat_stewar.md b/content/article/wang16_inves_activ_vibrat_isolat_stewar.md
new file mode 100644
index 0000000..8c0f89b
--- /dev/null
+++ b/content/article/wang16_inves_activ_vibrat_isolat_stewar.md
@@ -0,0 +1,61 @@
++++
+title = "Investigation on active vibration isolation of a stewart platform with piezoelectric actuators"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (Wang et al. 2016)
+
+Author(s)
+: Wang, C., Xie, X., Chen, Y., & Zhang, Z.
+
+Year
+: 2016
+
+**Model of the Stewart platform**:
+
+- Struts are treated as flexible beams
+- Payload and the base are treated as flexible plates
+- The FRF synthesis method permits to derive FRFs of the Stewart platform
+
+The model is compared with a Finite Element model and is shown to give the same results.
+The proposed model is thus effective.
+
+
+
+{{< figure src="/ox-hugo/wang16_stewart_platform.png" caption="Figure 1: Stewart Platform" >}}
+
+**Control**:
+Combines:
+
+- the FxLMS-based adaptive inverse control => suppress transmission of periodic vibrations
+- direct feedback of integrated forces => dampen vibration of inherent modes and thus reduce random vibrations
+
+Force Feedback ([Figure 2](#figure--fig:wang16-force-feedback)).
+
+- the force sensor is mounted **between the base and the strut**
+
+
+
+{{< figure src="/ox-hugo/wang16_force_feedback.png" caption="Figure 2: Feedback of integrated forces in the platform" >}}
+
+Sorts of HAC-LAC control:
+
+- LAC: Decentralized integral force feedback
+- HAC: Inertial control using accelerometers. Use of the Jacobian to decouple the motion and then Fx-LMS based adaptive control is used
+
+**Experimental validation**:
+
+- All 6 transfer function from actuator force to force sensors are almost the same (gain offset)
+- Effectiveness of control methods are shown
+
+
+## Bibliography {#bibliography}
+
+
+
Wang, C., X. Xie, Y. Chen, and Z. Zhang. 2016. “Investigation on Active Vibration Isolation of a Stewart Platform with Piezoelectric Actuators.” Journal of Sound and Vibration 383. Elsevier BV: 1–19. doi:10.1016/j.jsv.2016.07.021.
+
diff --git a/content/article/yang19_dynam_model_decoup_contr_flexib.md b/content/article/yang19_dynam_model_decoup_contr_flexib.md
new file mode 100644
index 0000000..6f287d3
--- /dev/null
+++ b/content/article/yang19_dynam_model_decoup_contr_flexib.md
@@ -0,0 +1,141 @@
++++
+title = "Dynamic modeling and decoupled control of a flexible stewart platform for vibration isolation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}}), [Cubic Architecture]({{< relref "cubic_architecture.md" >}})
+
+Reference
+: (Yang et al. 2019)
+
+Author(s)
+: Yang, X., Wu, H., Chen, B., Kang, S., & Cheng, S.
+
+Year
+: 2019
+
+**Discusses**:
+
+- flexible-rigid model of Stewart platform
+- the impact of joint stiffness is compensated using a displacement sensor and a force sensor
+- then the MIMO system is decoupled in modal space and 6 SISO controllers are applied for vibration isolation using force sensors
+
+The joint stiffness impose a limitation on the control performance using force sensors as it adds a zero at low frequency in the dynamics.
+Thus, this stiffness is taken into account in the dynamics and compensated for.
+
+**Stewart platform** ([Figure 1](#figure--fig:yang19-stewart-platform)):
+
+- piezoelectric actuators
+- flexible joints ([Figure 2](#figure--fig:yang19-flexible-joints))
+- force sensors (used for vibration isolation)
+- displacement sensors (used to decouple the dynamics)
+- cubic (even though not said explicitly)
+
+
+
+{{< figure src="/ox-hugo/yang19_stewart_platform.png" caption="Figure 1: Stewart Platform" >}}
+
+
+
+{{< figure src="/ox-hugo/yang19_flexible_joints.png" caption="Figure 2: Flexible Joints" >}}
+
+The stiffness of the flexible joints ([Figure 2](#figure--fig:yang19-flexible-joints)) are computed with an FEM model and shown in [Table 1](#table--tab:yang19-stiffness-flexible-joints).
+
+
+
+ Table 1:
+ Stiffness of flexible joints obtained by FEM
+
+
+| \\(k\_{\theta u},\ k\_{\psi u}\\) | \\(72 Nm/rad\\) |
+|-----------------------------------|-----------------|
+| \\(k\_{\theta s}\\) | \\(51 Nm/rad\\) |
+| \\(k\_{\psi s}\\) | \\(62 Nm/rad\\) |
+| \\(k\_{\gamma s}\\) | \\(64 Nm/rad\\) |
+
+**Dynamics**:
+If the bending and torsional stiffness of the flexible joints are neglected:
+\\[ M \ddot{x} + C \dot{x} + K x = J^T f \\]
+
+- \\(M\\) is the mass matrix
+- \\(C\\) is the damping matrix
+- \\(K\\) is the stiffness matrix
+- \\(x\\) is the generalized coordinates, representing the displacement and orientation of the payload plate
+- \\(f\\) is the actuator forces
+- \\(J\\) is the Jacobian matrix
+
+In this paper, the parasitic bending stiffness of the flexible joints are considered:
+\\[ M \ddot{x} + C \dot{x} + (K + K\_e) x = J^T f \\]
+where \\(K\_e\\) is the stiffness matrix induced by the parasitic stiffness of the flexible joints.
+
+Analytical expression for \\(K\_e\\) are derived in the paper.
+
+**Controller Design**:
+There is a strong coupling between the input forces and the state variables in the task space.
+The traditional modal decoupled control strategy cannot work with the flexible Stewart platform because it is impossible to achieve simultaneous diagonalization of the mass, damped and stiffness matrices.
+
+To make the six-dof system decoupled into six single-dof isolators, a controller based on the leg's force and position feedback is designed.
+
+> 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 force measured by the force sensors are:
+\\[ y = f - k J x - c J \dot{x} \\]
+The displacements measured by the position sensors are:
+\\[ z = [\Delta l\_1\ \dots\ \Delta l\_6]^T \\]
+
+Let's apply the feedback control based on both the force sensor and the position sensor:
+\\[ f = -H(s) y + (1 + H(s)) K\_{el} z \\]
+where \\(K\_{el} = J^{-T} K\_e J^T\\) is the stiffness matrix of the flexible joints expressed in joint space.
+
+We thus obtain:
+\\[ f = \frac{H(s)}{1 + H(s)} (k J x + c J \dot{x}) + J^{-T} K\_e x \\]
+
+If we substitute \\(f\\) in the dynamic equation, we obtain that the parasitic stiffness effect of the flexible joints has been compensated by the actuation forces and the system can now be decoupled in modal space \\(x = \Phi u\\).
+\\(\Phi\\) is the modal matrix selected such that \\(\Phi^T M \Phi = I\_6\\) and \\(k \Phi^T J^T J \Phi = \text{diag}(\omega\_1^2\ \dots\ \omega\_6^2)\\):
+\\[ s^2 + \frac{1}{1 + H(s)} \frac{c \omega\_i^2}{k} s + \frac{1}{1 + H(s)} \omega\_i^2 = 0, \quad i = 1,\ \dots,\ 6 \\]
+
+The six-dof system is now transformed into a six one-dof system where \\(H(s)\\) can be designed for control purpose.
+
+In order to apply this control strategy:
+
+- A force sensor and displacement sensor are need in each strut
+- The joint stiffness has to be known
+- The jacobian has to be computed
+- No information about modal matrix is needed
+
+The block diagram of the control strategy is represented in [Figure 3](#figure--fig:yang19-control-arch).
+
+
+
+{{< figure src="/ox-hugo/yang19_control_arch.png" caption="Figure 3: Control Architecture used" >}}
+
+\\(H(s)\\) is designed as a proportional plus integral compensator:
+\\[ H(s) = k\_p + k\_i/s \\]
+
+Substituting \\(H(s)\\) in the equation of motion gives that:
+
+- an increase of \\(k\_i\\) increase the damping and thus suppress the resonance peaks
+- an increase of \\(k\_p\\) lowers the resonance frequency and thus the bandwidth of vibration isolation is examped
+
+**Experimental Validation**:
+An external Shaker is used to excite the base and accelerometers are located on the base and mobile platforms to measure their motion.
+The results are shown in [Figure 4](#figure--fig:yang19-results).
+In theory, the vibration performance can be improved, however in practice, increasing the gain causes saturation of the piezoelectric actuators and then the instability occurs.
+
+
+
+{{< figure src="/ox-hugo/yang19_results.png" caption="Figure 4: Frequency response of the acceleration ratio between the paylaod and excitation (Transmissibility)" >}}
+
+> A model-based controller is then designed based on the leg’s force and position feedback.
+> The position feedback compensates the effect of parasitic bending and torsional stiffness of the flexible joints.
+> The force feedback makes the six-DOF MIMO system decoupled into six SISO subsystems in modal space, where the control gains can be designed and analyzed more effectively and conveniently.
+> The proportional and integral gains in the sub-controller are used to separately regulate the vibration isolation bandwidth and active damping simultaneously for the six vibration modes.
+
+
+## Bibliography {#bibliography}
+
+
+
Yang, X., H. Wu, B. Chen, S. Kang, and S. Cheng. 2019. “Dynamic Modeling and Decoupled Control of a Flexible Stewart Platform for Vibration Isolation.” Journal of Sound and Vibration 439. Elsevier BV: 398–412. doi:10.1016/j.jsv.2018.10.007.
+
diff --git a/content/article/yong12_invit_review_artic.md b/content/article/yong12_invit_review_artic.md
new file mode 100644
index 0000000..f952bce
--- /dev/null
+++ b/content/article/yong12_invit_review_artic.md
@@ -0,0 +1,22 @@
++++
+title = "Invited review article: high-speed flexure-guided nanopositioning: mechanical design and control issues"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Yong et al. 2012)
+
+Author(s)
+: Yong, Y. K., Moheimani, S. O. R., Kenton, B. J., & Leang, K. K.
+
+Year
+: 2012
+
+
+
Yong, Y. K., S. O. R. Moheimani, B. J. Kenton, and K. K. Leang. 2012. “Invited Review Article: High-Speed Flexure-Guided Nanopositioning: Mechanical Design and Control Issues.” Review of Scientific Instruments 83 (12): 121101. doi:10.1063/1.4765048.
+
diff --git a/content/article/yun20_inves_two_stage_vibrat_suppr.md b/content/article/yun20_inves_two_stage_vibrat_suppr.md
new file mode 100644
index 0000000..0a6d668
--- /dev/null
+++ b/content/article/yun20_inves_two_stage_vibrat_suppr.md
@@ -0,0 +1,25 @@
++++
+title = "Investigation on two-stage vibration suppression and precision pointing for space optical payloads"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Yun et al. 2020)
+
+Author(s)
+: Yun, H., Liu, L., Li, Q., & Yang, H.
+
+Year
+: 2020
+
+
+## Bibliography {#bibliography}
+
+
+
Yun, Hai, Lei Liu, Qing Li, and Hongjie Yang. 2020. “Investigation on Two-Stage Vibration Suppression and Precision Pointing for Space Optical Payloads.” Aerospace Science and Technology 96: 105543. doi:10.1016/j.ast.2019.105543.
+
diff --git a/content/article/zhang11_six_dof.md b/content/article/zhang11_six_dof.md
new file mode 100644
index 0000000..a74baf3
--- /dev/null
+++ b/content/article/zhang11_six_dof.md
@@ -0,0 +1,37 @@
++++
+title = "Six dof active vibration control using stewart platform with non-cubic configuration"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Zhang et al. 2011)
+
+Author(s)
+: Zhang, Z., Liu, J., Mao, J., Guo, Y., & Ma, Y.
+
+Year
+: 2011
+
+- **Non-cubic** stewart platform
+- **Flexible** joints
+- Magnetostrictive actuators
+- Strong coupled motions along different axes
+- Non-cubic architecture => permits to have larger workspace which was required
+- Structure parameters (radius of plates, length of struts) are determined by optimization of the condition number of the Jacobian matrix
+- **Accelerometers** for active isolation
+- Adaptive FIR filters for active isolation control
+
+
+
+{{< figure src="/ox-hugo/zhang11_platform.png" caption="Figure 1: Prototype of the non-cubic stewart platform" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Zhang, Z., J. Liu, J. Mao, Y. Guo, and Y. Ma. 2011. “Six DOF Active Vibration Control Using Stewart Platform with Non-Cubic Configuration.” In 2011 6th IEEE Conference on Industrial Electronics and Applications. doi:10.1109/iciea.2011.5975679.
+
diff --git a/content/bibliography/_index.md b/content/bibliography/_index.md
new file mode 100644
index 0000000..e69de29
diff --git a/content/book/_index.md b/content/book/_index.md
new file mode 100644
index 0000000..7265672
--- /dev/null
+++ b/content/book/_index.md
@@ -0,0 +1,8 @@
++++
+title = "Books"
+author = ["Thomas Dehaeze"]
+type = "book"
+draft = false
++++
+
+Here is the list of books I took note about.
diff --git a/content/book/du10_model_contr_vibrat_mechan_system.md b/content/book/du10_model_contr_vibrat_mechan_system.md
new file mode 100644
index 0000000..e5de9b3
--- /dev/null
+++ b/content/book/du10_model_contr_vibrat_mechan_system.md
@@ -0,0 +1,540 @@
++++
+title = "Modeling and control of vibration in mechanical systems"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Du and Xie 2010)
+
+Author(s)
+: Du, C., & Xie, L.
+
+Year
+: 2010
+
+
+## 1. Mechanical Systems and Vibration {#1-dot-mechanical-systems-and-vibration}
+
+
+### 1.1 Magnetic recording system {#1-dot-1-magnetic-recording-system}
+
+
+### 1.2 Stewart platform {#1-dot-2-stewart-platform}
+
+
+### 1.3 Vibration sources and descriptions {#1-dot-3-vibration-sources-and-descriptions}
+
+
+### 1.4 Types of vibration {#1-dot-4-types-of-vibration}
+
+
+#### 1.4.1 Free and forced vibration {#1-dot-4-dot-1-free-and-forced-vibration}
+
+
+#### 1.4.2 Damped and undamped vibration {#1-dot-4-dot-2-damped-and-undamped-vibration}
+
+
+#### 1.4.3 Linear and nonlinear vibration {#1-dot-4-dot-3-linear-and-nonlinear-vibration}
+
+
+#### 1.4.4 Deterministic and random vibration {#1-dot-4-dot-4-deterministic-and-random-vibration}
+
+
+#### 1.4.5 Periodic and nonperiodic vibration {#1-dot-4-dot-5-periodic-and-nonperiodic-vibration}
+
+
+#### 1.4.6 Broad-band and narrow-band vibration {#1-dot-4-dot-6-broad-band-and-narrow-band-vibration}
+
+
+### 1.5 Random vibration {#1-dot-5-random-vibration}
+
+
+#### 1.5.1 Random process {#1-dot-5-dot-1-random-process}
+
+
+#### 1.5.2 Stationary random process {#1-dot-5-dot-2-stationary-random-process}
+
+
+#### 1.5.3 Gaussian random process {#1-dot-5-dot-3-gaussian-random-process}
+
+
+### 1.6 Vibration analysis {#1-dot-6-vibration-analysis}
+
+
+#### 1.6.1 Fourier transform and spectrum analysis {#1-dot-6-dot-1-fourier-transform-and-spectrum-analysis}
+
+
+#### 1.6.2 Relationship between the Fourier and Laplace transforms {#1-dot-6-dot-2-relationship-between-the-fourier-and-laplace-transforms}
+
+
+#### 1.6.3 Spectral analysis {#1-dot-6-dot-3-spectral-analysis}
+
+
+## 2. Modeling of Disk Drive System and Its Vibration {#2-dot-modeling-of-disk-drive-system-and-its-vibration}
+
+
+### 2.1 Introduction {#2-dot-1-introduction}
+
+
+### 2.2 System description {#2-dot-2-system-description}
+
+
+### 2.3 System modeling {#2-dot-3-system-modeling}
+
+
+#### 2.3.1 Modeling of a VCM actuator {#2-dot-3-dot-1-modeling-of-a-vcm-actuator}
+
+
+#### 2.3.2 Modeling of friction {#2-dot-3-dot-2-modeling-of-friction}
+
+
+#### 2.3.3 Modeling of a PZT microactuator {#2-dot-3-dot-3-modeling-of-a-pzt-microactuator}
+
+
+#### 2.3.4 An example {#2-dot-3-dot-4-an-example}
+
+
+### 2.4 Vibration modeling {#2-dot-4-vibration-modeling}
+
+
+#### 2.4.1 Spectrum-based vibration modeling {#2-dot-4-dot-1-spectrum-based-vibration-modeling}
+
+
+#### 2.4.2 Adaptive modeling of disturbance {#2-dot-4-dot-2-adaptive-modeling-of-disturbance}
+
+
+### 2.5 Conclusion {#2-dot-5-conclusion}
+
+
+## 3. Modeling of [Stewart Platforms]({{< relref "stewart_platforms.md" >}}) {#3-dot-modeling-of-stewart-platforms--stewart-platforms-dot-md}
+
+
+### 3.1 Introduction {#3-dot-1-introduction}
+
+
+### 3.2 System description and governing equations {#3-dot-2-system-description-and-governing-equations}
+
+
+### 3.3 Modeling using adaptive filtering approach {#3-dot-3-modeling-using-adaptive-filtering-approach}
+
+
+#### 3.3.1 Adaptive filtering theory {#3-dot-3-dot-1-adaptive-filtering-theory}
+
+
+#### 3.3.2 Modeling of a Stewart platform {#3-dot-3-dot-2-modeling-of-a-stewart-platform}
+
+
+### 3.4 Conclusion {#3-dot-4-conclusion}
+
+
+## 4. Classical Vibration Control {#4-dot-classical-vibration-control}
+
+
+### 4.1 Introduction {#4-dot-1-introduction}
+
+
+### 4.2 Passive control {#4-dot-2-passive-control}
+
+
+#### 4.2.1 Isolators {#4-dot-2-dot-1-isolators}
+
+
+#### 4.2.2 Absorbers {#4-dot-2-dot-2-absorbers}
+
+
+#### 4.2.3 Resonators {#4-dot-2-dot-3-resonators}
+
+
+#### 4.2.4 Suspension {#4-dot-2-dot-4-suspension}
+
+
+#### 4.2.5 An application example – Disk vibration reduction via stacked disks {#4-dot-2-dot-5-an-application-example-and-8211-disk-vibration-reduction-via-stacked-disks}
+
+
+### 4.3 Self-adapting systems {#4-dot-3-self-adapting-systems}
+
+
+### 4.4 Active vibration control {#4-dot-4-active-vibration-control}
+
+
+#### 4.4.1 Actuators {#4-dot-4-dot-1-actuators}
+
+
+#### 4.4.2 Active systems {#4-dot-4-dot-2-active-systems}
+
+
+#### 4.4.3 Control strategy {#4-dot-4-dot-3-control-strategy}
+
+
+### 4.5 Conclusion {#4-dot-5-conclusion}
+
+
+## 5. Introduction to Optimal and Robust Control {#5-dot-introduction-to-optimal-and-robust-control}
+
+
+### 5.1 Introduction {#5-dot-1-introduction}
+
+
+### 5.2 H2 and H∞ norms {#5-dot-2-h2-and-h-and-8734-norms}
+
+
+#### 5.2.1 H2 norm {#5-dot-2-dot-1-h2-norm}
+
+
+#### 5.2.2 H∞ norm {#5-dot-2-dot-2-h-and-8734-norm}
+
+
+### 5.3 H2 optimal control {#5-dot-3-h2-optimal-control}
+
+
+#### 5.3.1 Continuous-time case {#5-dot-3-dot-1-continuous-time-case}
+
+
+#### 5.3.2 Discrete-time case {#5-dot-3-dot-2-discrete-time-case}
+
+
+### 5.4 H∞ control {#5-dot-4-h-and-8734-control}
+
+
+#### 5.4.1 Continuous-time case {#5-dot-4-dot-1-continuous-time-case}
+
+
+#### 5.4.2 Discrete-time case {#5-dot-4-dot-2-discrete-time-case}
+
+
+### 5.5 Robust control {#5-dot-5-robust-control}
+
+
+### 5.6 Controller parametrization {#5-dot-6-controller-parametrization}
+
+
+### 5.7 Performance limitation {#5-dot-7-performance-limitation}
+
+
+#### 5.7.1 Bode integral constraint {#5-dot-7-dot-1-bode-integral-constraint}
+
+
+#### 5.7.2 Relationship between system gain and phase {#5-dot-7-dot-2-relationship-between-system-gain-and-phase}
+
+
+#### 5.7.3 Sampling {#5-dot-7-dot-3-sampling}
+
+
+### 5.8 Conclusion {#5-dot-8-conclusion}
+
+
+## 6. Mixed H2/H∞ Control Design for Vibration Rejection {#6-dot-mixed-h2-h-and-8734-control-design-for-vibration-rejection}
+
+
+### 6.1 Introduction {#6-dot-1-introduction}
+
+
+### 6.2 Mixed H2/H∞ control problem {#6-dot-2-mixed-h2-h-and-8734-control-problem}
+
+
+### 6.3 Method 1: slack variable approach {#6-dot-3-method-1-slack-variable-approach}
+
+
+### 6.4 Method 2: an improved slack variable approach {#6-dot-4-method-2-an-improved-slack-variable-approach}
+
+
+### 6.5 Application in servo loop design for hard disk drives {#6-dot-5-application-in-servo-loop-design-for-hard-disk-drives}
+
+
+#### 6.5.1 Problem formulation {#6-dot-5-dot-1-problem-formulation}
+
+
+#### 6.5.2 Design results {#6-dot-5-dot-2-design-results}
+
+
+### 6.6 Conclusion {#6-dot-6-conclusion}
+
+
+## 7. Low-Hump Sensitivity Control Design for Hard Disk Drive Systems {#7-dot-low-hump-sensitivity-control-design-for-hard-disk-drive-systems}
+
+
+### 7.1 Introduction {#7-dot-1-introduction}
+
+
+### 7.2 Problem statement {#7-dot-2-problem-statement}
+
+
+### 7.3 Design in continuous-time domain {#7-dot-3-design-in-continuous-time-domain}
+
+
+#### 7.3.1 H∞ loop shaping for low-hump sensitivity functions {#7-dot-3-dot-1-h-and-8734-loop-shaping-for-low-hump-sensitivity-functions}
+
+
+#### 7.3.2 Application examples {#7-dot-3-dot-2-application-examples}
+
+
+#### 7.3.3 Implementation on a hard disk drive {#7-dot-3-dot-3-implementation-on-a-hard-disk-drive}
+
+
+### 7.4 Design in discrete-time domain {#7-dot-4-design-in-discrete-time-domain}
+
+
+#### 7.4.1 Synthesis method for low-hump sensitivity function {#7-dot-4-dot-1-synthesis-method-for-low-hump-sensitivity-function}
+
+
+#### 7.4.2 An application example {#7-dot-4-dot-2-an-application-example}
+
+
+#### 7.4.3 Implementation on a hard disk drive {#7-dot-4-dot-3-implementation-on-a-hard-disk-drive}
+
+
+### 7.5 Conclusion {#7-dot-5-conclusion}
+
+
+## 8. Generalized KYP Lemma-Based Loop Shaping Control Design {#8-dot-generalized-kyp-lemma-based-loop-shaping-control-design}
+
+
+### 8.1 Introduction {#8-dot-1-introduction}
+
+
+### 8.2 Problem description {#8-dot-2-problem-description}
+
+
+### 8.3 Generalized KYP lemma-based control design method {#8-dot-3-generalized-kyp-lemma-based-control-design-method}
+
+
+### 8.4 Peak filter {#8-dot-4-peak-filter}
+
+
+#### 8.4.1 Conventional peak filter {#8-dot-4-dot-1-conventional-peak-filter}
+
+
+#### 8.4.2 Phase lead peak filter {#8-dot-4-dot-2-phase-lead-peak-filter}
+
+
+#### 8.4.3 Group peak filter {#8-dot-4-dot-3-group-peak-filter}
+
+
+### 8.5 Application in high frequency vibration rejection {#8-dot-5-application-in-high-frequency-vibration-rejection}
+
+
+### 8.6 Application in mid-frequency vibration rejection {#8-dot-6-application-in-mid-frequency-vibration-rejection}
+
+
+### 8.7 Conclusion {#8-dot-7-conclusion}
+
+
+## 9. Combined H2 and KYP Lemma-Based Control Design {#9-dot-combined-h2-and-kyp-lemma-based-control-design}
+
+
+### 9.1 Introduction {#9-dot-1-introduction}
+
+
+### 9.2 Problem formulation {#9-dot-2-problem-formulation}
+
+
+### 9.3 Controller design for specific disturbance rejection and overall error minimization {#9-dot-3-controller-design-for-specific-disturbance-rejection-and-overall-error-minimization}
+
+
+#### 9.3.1 Q parametrization to meet specific specifications {#9-dot-3-dot-1-q-parametrization-to-meet-specific-specifications}
+
+
+#### 9.3.2 Q parametrization to minimize H2 performance {#9-dot-3-dot-2-q-parametrization-to-minimize-h2-performance}
+
+
+#### 9.3.3 Design steps {#9-dot-3-dot-3-design-steps}
+
+
+### 9.4 Simulation and implementation results {#9-dot-4-simulation-and-implementation-results}
+
+
+#### 9.4.1 System models {#9-dot-4-dot-1-system-models}
+
+
+#### 9.4.2 Rejection of specific disturbance and H2 performance minimization {#9-dot-4-dot-2-rejection-of-specific-disturbance-and-h2-performance-minimization}
+
+
+#### 9.4.3 Rejection of two disturbances with H[sub(2)] performance minimization {#9-dot-4-dot-3-rejection-of-two-disturbances-with-h-sub--2--performance-minimization}
+
+
+### 9.5 Conclusion {#9-dot-5-conclusion}
+
+
+## 10. Blending Control for Multi-Frequency Disturbance Rejection {#10-dot-blending-control-for-multi-frequency-disturbance-rejection}
+
+
+### 10.1 Introduction {#10-dot-1-introduction}
+
+
+### 10.2 Control blending {#10-dot-2-control-blending}
+
+
+#### 10.2.1 State feedback control blending {#10-dot-2-dot-1-state-feedback-control-blending}
+
+
+#### 10.2.2 Output feedback control blending {#10-dot-2-dot-2-output-feedback-control-blending}
+
+
+### 10.3 Control blending application in multi-frequency disturbance rejection {#10-dot-3-control-blending-application-in-multi-frequency-disturbance-rejection}
+
+
+#### 10.3.1 Problem formulation {#10-dot-3-dot-1-problem-formulation}
+
+
+#### 10.3.2 Controller design via the control blending technique {#10-dot-3-dot-2-controller-design-via-the-control-blending-technique}
+
+
+### 10.4 Simulation and experimental results {#10-dot-4-simulation-and-experimental-results}
+
+
+#### 10.4.1 Rejecting high-frequency disturbances {#10-dot-4-dot-1-rejecting-high-frequency-disturbances}
+
+
+#### 10.4.2 Rejecting a combined mid and high frequency disturbance {#10-dot-4-dot-2-rejecting-a-combined-mid-and-high-frequency-disturbance}
+
+
+### 10.5 Conclusion {#10-dot-5-conclusion}
+
+
+## 11. H∞-Based Design for Disturbance Observer {#11-dot-h-and-8734-based-design-for-disturbance-observer}
+
+
+### 11.1 Introduction {#11-dot-1-introduction}
+
+
+### 11.2 Conventional disturbance observer {#11-dot-2-conventional-disturbance-observer}
+
+
+### 11.3 A general form of disturbance observer {#11-dot-3-a-general-form-of-disturbance-observer}
+
+
+### 11.4 Application results {#11-dot-4-application-results}
+
+
+### 11.5 Conclusion {#11-dot-5-conclusion}
+
+
+## 12. Two-Dimensional H2 Control for Error Minimization {#12-dot-two-dimensional-h2-control-for-error-minimization}
+
+
+### 12.1 Introduction {#12-dot-1-introduction}
+
+
+### 12.2 2-D stabilization control {#12-dot-2-2-d-stabilization-control}
+
+
+### 12.3 2-D H2 control {#12-dot-3-2-d-h2-control}
+
+
+### 12.4 SSTW process and modeling {#12-dot-4-sstw-process-and-modeling}
+
+
+#### 12.4.1 SSTW servo loop {#12-dot-4-dot-1-sstw-servo-loop}
+
+
+#### 12.4.2 Two-dimensional model {#12-dot-4-dot-2-two-dimensional-model}
+
+
+### 12.5 Feedforward compensation method {#12-dot-5-feedforward-compensation-method}
+
+
+### 12.6 2-D control formulation for SSTW {#12-dot-6-2-d-control-formulation-for-sstw}
+
+
+### 12.7 2-D stabilization control for error propagation containment {#12-dot-7-2-d-stabilization-control-for-error-propagation-containment}
+
+
+#### 12.7.1 Simulation results {#12-dot-7-dot-1-simulation-results}
+
+
+### 12.8 2-D H2 control for error minimization {#12-dot-8-2-d-h2-control-for-error-minimization}
+
+
+#### 12.8.1 Simulation results {#12-dot-8-dot-1-simulation-results}
+
+
+#### 12.8.2 Experimental results {#12-dot-8-dot-2-experimental-results}
+
+
+### 12.9 Conclusion {#12-dot-9-conclusion}
+
+
+## 13. Nonlinearity Compensation and Nonlinear Control {#13-dot-nonlinearity-compensation-and-nonlinear-control}
+
+
+### 13.1 Introduction {#13-dot-1-introduction}
+
+
+### 13.2 Nonlinearity compensation {#13-dot-2-nonlinearity-compensation}
+
+
+### 13.3 Nonlinear control {#13-dot-3-nonlinear-control}
+
+
+#### 13.3.1 Design of a composite control law {#13-dot-3-dot-1-design-of-a-composite-control-law}
+
+
+#### 13.3.2 Experimental results in hard disk drives {#13-dot-3-dot-2-experimental-results-in-hard-disk-drives}
+
+
+### 13.4 Conclusion {#13-dot-4-conclusion}
+
+
+## 14. Quantization Effect on Vibration Rejection and Its Compensation {#14-dot-quantization-effect-on-vibration-rejection-and-its-compensation}
+
+
+### 14.1 Introduction {#14-dot-1-introduction}
+
+
+### 14.2 Description of control system with quantizer {#14-dot-2-description-of-control-system-with-quantizer}
+
+
+### 14.3 Quantization effect on error rejection {#14-dot-3-quantization-effect-on-error-rejection}
+
+
+#### 14.3.1 Quantizer frequency response measurement {#14-dot-3-dot-1-quantizer-frequency-response-measurement}
+
+
+#### 14.3.2 Quantization effect on error rejection {#14-dot-3-dot-2-quantization-effect-on-error-rejection}
+
+
+### 14.4 Compensation of quantization effect on error rejection {#14-dot-4-compensation-of-quantization-effect-on-error-rejection}
+
+
+### 14.5 Conclusion {#14-dot-5-conclusion}
+
+
+## 15. Adaptive Filtering Algorithms for Active Vibration Control {#15-dot-adaptive-filtering-algorithms-for-active-vibration-control}
+
+
+### 15.1 Introduction {#15-dot-1-introduction}
+
+
+### 15.2 Adaptive feedforward algorithm {#15-dot-2-adaptive-feedforward-algorithm}
+
+
+### 15.3 Adaptive feedback algorithm {#15-dot-3-adaptive-feedback-algorithm}
+
+
+### 15.4 Comparison between feedforward and feedback controls {#15-dot-4-comparison-between-feedforward-and-feedback-controls}
+
+
+### 15.5 Application in Stewart platform {#15-dot-5-application-in-stewart-platform}
+
+
+#### 15.5.1 Multi-channel adaptive feedback AVC system {#15-dot-5-dot-1-multi-channel-adaptive-feedback-avc-system}
+
+
+#### 15.5.2 Multi-channel adaptive feedback algorithm for hexapod platform {#15-dot-5-dot-2-multi-channel-adaptive-feedback-algorithm-for-hexapod-platform}
+
+
+#### 15.5.3 Simulation and implementation {#15-dot-5-dot-3-simulation-and-implementation}
+
+
+### 15.6 Conclusion {#15-dot-6-conclusion}
+
+
+## Bibliography {#bibliography}
+
+
+
Du, Chunling, and Lihua Xie. 2010. Modeling and Control of Vibration in Mechanical Systems. Automation and Control Engineering. CRC Press. doi:10.1201/9781439817995.
+
diff --git a/content/book/du19_multi_actuat_system_contr.md b/content/book/du19_multi_actuat_system_contr.md
new file mode 100644
index 0000000..ba372ca
--- /dev/null
+++ b/content/book/du19_multi_actuat_system_contr.md
@@ -0,0 +1,678 @@
++++
+title = "Multi-stage actuation systems and control"
+author = ["Dehaeze Thomas"]
+description = "Proposes a way to combine multiple actuators (short stroke and long stroke) for control."
+keywords = ["Control", "Mechatronics"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Du and Pang 2019)
+
+Author(s)
+: Du, C., & Pang, C. K.
+
+Year
+: 2019
+
+
+
+
+## Mechanical Actuation Systems {#mechanical-actuation-systems}
+
+
+### Introduction {#introduction}
+
+When high bandwidth, high position accuracy and long stroke are required simultaneously: dual-stage systems composed of a coarse (or primary) actuator and a fine actuator working together are used.
+
+Popular choices for coarse actuator are:
+
+- DC motor
+- [Voice Coil Motors]({{< relref "voice_coil_actuators.md" >}}) (VCM)
+- Permanent magnet stepper motor
+- Permanent magnet linear synchronous motor
+
+As fine actuators, most of the time [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}) are used.
+
+In order to overcome fine actuator stringent stroke limitation and increase control bandwidth, three-stage actuation systems are necessary in practical applications.
+
+
+### Actuators {#actuators}
+
+
+#### Primary Actuator {#primary-actuator}
+
+Without loss of generality, the VCM actuator is used as the primary actuator.
+When current passes through the coil, a force is produced which accelerates the actuator radially.
+The produced force is a function of the current \\(i\_c\\):
+\\[ f\_m = k\_t i\_c \\]
+where \\(k\_t\\) is a linearized nominal value called the torque constant.
+
+The resonance of the actuator is mainly due to the flexibility of the pivot bearing, arm, suspension.
+
+Then the bandwidth of the control loop is low and the resonances are not a limiting factor of the control design, the actuator model can be considered as follows:
+\\[ P\_v(s) = \frac{k\_{vcm}}{s^2} \\]
+
+When the bandwidth is high, the actuator resonances have to be considered in the control design since the flexible resonance modes will reduce the system stability and affect the control performance. Then the actuator model becomes
+\\[ P\_v(s) = \frac{k\_{vcm}}{s^2} P\_r(s) \\]
+which includes the resonance model
+\\[ P\_r(s) = \Pi\_{i=1}^{N} P\_{ri}(s) \\]
+and the resonance \\(P\_{ri}(s)\\) can be represented as one of the following forms
+
+\begin{align\*}
+ P\_{ri}(s) &= \frac{\omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \\\\
+ P\_{ri}(s) &= \frac{b\_{1i} \omega\_i s + b\_{0i} \omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \\\\
+ P\_{ri}(s) &= \frac{b\_{2i} s^2 + b\_{1i} \omega\_i s + b\_{0i} \omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2}
+\end{align\*}
+
+
+#### Secondary Actuators {#secondary-actuators}
+
+We here consider two types of secondary actuators: the PZT milliactuator ([Figure 1](#figure--fig:pzt-actuator)) and the microactuator.
+
+
+
+{{< figure src="/ox-hugo/du19_pzt_actuator.png" caption="Figure 1: A PZT-actuator suspension" >}}
+
+There are three popular types of micro-actuators: electrostatic moving-slider microactuator, PZT slider-driven microactuator and thermal microactuator.
+There characteristics are shown on [Table 1](#table--tab:microactuator).
+
+
+
+ Table 1:
+ Performance comparison of microactuators
+
+
+| | Elect. | PZT | Thermal |
+|--------------|-----------------------------------------------|-----------------------------------------------|----------------------------|
+| TF | \\(\frac{K}{s^2 + 2\xi\omega s + \omega^2}\\) | \\(\frac{K}{s^2 + 2\xi\omega s + \omega^2}\\) | \\(\frac{K}{\tau s + 1}\\) |
+| \\(\tau\\) | \\(<\SI{0.1}{ms}\\) | \\(<\SI{0.05}{ms}\\) | \\(>\SI{0.1}{ms}\\) |
+| \\(\omega\\) | \\(1-\SI{2}{kHz}\\) | \\(20-\SI{25}{kHz}\\) | \\(>\SI{15}{kHz}\\) |
+
+
+### Single-Stage Actuation Systems {#single-stage-actuation-systems}
+
+A typical closed-loop control system is shown on [Figure 2](#figure--fig:single-stage-control), where \\(P\_v(s)\\) and \\(C(z)\\) represent the actuator system and its controller.
+
+
+
+{{< figure src="/ox-hugo/du19_single_stage_control.png" caption="Figure 2: Block diagram of a single-stage actuation system" >}}
+
+
+### Dual-Stage Actuation Systems {#dual-stage-actuation-systems}
+
+Dual-stage actuation mechanism for the hard disk drives consists of a VCM actuator and a secondary actuator placed between the VCM and the sensor head.
+The VCM is used as the primary stage to provide long track seeking but with poor accuracy and slow response time, while the secondary stage actuator is used to provide higher positioning accuracy and faster response but with a stroke limit.
+
+
+
+{{< figure src="/ox-hugo/du19_dual_stage_control.png" caption="Figure 3: Block diagram of dual-stage actuation system" >}}
+
+
+### Three-Stage Actuation Systems {#three-stage-actuation-systems}
+
+Due to the limited allowed stroke of the microactuator, the control bandwidth has to be restricted and that limits the dual-stage disturbance rejection capability.
+
+A three-stage actuation system is therefore introduced to further increase the bandwidth.
+
+Typically, a VCM actuator is used as the primary actuator, PZT milliactuator as the second stage actuator and a third actuator more collocated is used.
+
+
+## High-Precision Positioning Control of Dual-Stage Actuation Systems {#high-precision-positioning-control-of-dual-stage-actuation-systems}
+
+
+### Introduction {#introduction}
+
+The sensitivity function of the closed-loop system has provided a straightforward view of its disturbance rejection capability.
+It is demanded that the sensitivity function magnitude in the low-frequency range be sufficiently low, while its hump in high-frequency range stays low enough.
+In view of this, the controller design for dual-stage actuation systems adopts a weighting function to shape the sensitivity function.
+
+
+### Control Schemes {#control-schemes}
+
+A popular control scheme for dual-stage actuation system is the **decoupled structure** as shown in [Figure 4](#figure--fig:decoupled-control).
+
+- \\(C\_v(z)\\) and \\(C\_p(z)\\) are the controllers respectively, for the primary VCM actuator \\(P\_v(s)\\) and the secondary actuator \\(P\_p(s)\\).
+- \\(\hat{P}\_p(z)\\) is an approximation of \\(P\_p\\) to estimate \\(y\_p\\).
+- \\(d\_1\\) and \\(d\_2\\) denote internal disturbances
+- \\(n\\) is the measurement noise
+- \\(d\_u\\) stands for external vibration
+
+
+
+{{< figure src="/ox-hugo/du19_decoupled_control.png" caption="Figure 4: Decoupled control structure for the dual-stage actuation system" >}}
+
+The open-loop transfer function from \\(pes\\) to \\(y\\) is
+\\[ G(z) = P\_p(z) C\_p(z) + P\_v(z) C\_v(z) + P\_v(z) C\_v(z) \hat{P}\_p(z) C\_p(z) \\]
+And the overall sensitivity function of the closed loop system from \\(r\\) to \\(pes\\) is
+\\[ S(z) = \frac{1}{1 + G(z)} \\]
+which is approximately
+\\[ S(z) = \frac{1}{[1 + P\_p(z) C\_p(z)] [1 + P\_v(z)C\_v(z)]} \\]
+since within a certain bandwidth
+\\[ \hat{P}\_p(z) \approx P\_p(z) \\]
+
+The sensitivity functions of the VCM loop and the secondary actuator loop are
+
+\begin{equation}
+ S\_v(z) = \frac{1}{1 + P\_v(z) C\_v(z)}, \quad S\_p(z) = \frac{1}{1 + P\_p(z) C\_p(z)}
+\end{equation}
+
+And we obtain that the dual-stage sensitivity function \\(S(z)\\) is the product of \\(S\_v(z)\\) and \\(S\_p(z)\\).
+Thus, the dual-stage system control design can be decoupled into two independent controller designs.
+
+Another type of control scheme is the **parallel structure** as shown in [Figure 5](#figure--fig:parallel-control-structure).
+The open-loop transfer function from \\(pes\\) to \\(y\\) is
+\\[ G(z) = P\_p(z) C\_p(z) + P\_v(z) C\_v(z) \\]
+
+The overall sensitivity function of the closed-loop system from \\(r\\) to \\(pes\\) is
+\\[ S(z) = \frac{1}{1 + G(z)} = \frac{1}{1 + P\_p(z) C\_p(z) + P\_v(z) C\_v(z)} \\]
+
+
+
+{{< figure src="/ox-hugo/du19_parallel_control_structure.png" caption="Figure 5: Parallel control structure for the dual-stage actuator system" >}}
+
+Because of the limited displacement range of the secondary actuator, the control efforts for the two actuators should be distributed properly when designing respective controllers to meet the required performance, make the actuators not conflict with each other, as well as prevent the saturation of the secondary actuator.
+
+
+### Controller Design Method in the Continuous-Time Domain {#controller-design-method-in-the-continuous-time-domain}
+
+\\(\mathcal{H}\_\infty\\) loop shaping method is used to design the controllers for the primary and secondary actuators.
+The structure of the \\(\mathcal{H}\_\infty\\) loop shaping method is plotted in [Figure 6](#figure--fig:h-inf-diagram) where \\(W(s)\\) is a weighting function relevant to the designed control system performance such as the sensitivity function.
+
+For a plant model \\(P(s)\\), a controller \\(C(s)\\) is to be designed such that the closed-loop system is stable and
+
+\begin{equation}
+ \\|T\_{zw}\\|\_\infty < 1
+\end{equation}
+
+is satisfied, where \\(T\_{zw}\\) is the transfer function from \\(w\\) to \\(z\\): \\(T\_{zw} = S(s) W(s)\\).
+
+
+
+{{< figure src="/ox-hugo/du19_h_inf_diagram.png" caption="Figure 6: Block diagram for \\(\mathcal{H}\_\infty\\) loop shaping method to design the controller \\(C(s)\\) with the weighting function \\(W(s)\\)" >}}
+
+Equation means that \\(S(s)\\) can be shaped similarly to the inverse of the chosen weighting function \\(W(s)\\).
+One form of \\(W(s)\\) is taken as
+
+\begin{equation}
+ W(s) = \frac{\frac{1}{M}s^2 + 2\xi\omega\frac{1}{\sqrt{M}}s + \omega^2}{s^2 + 2\omega\sqrt{\epsilon}s + \omega^2\epsilon}
+\end{equation}
+
+where \\(\omega\\) is the desired bandwidth, \\(\epsilon\\) is used to determine the desired low frequency level of sensitivity magnitude and \\(\xi\\) is the damping ratio.
+
+The controller can then be synthesis using the linear matrix inequality (LMI) approach.
+
+The primary and secondary actuator control loops are designed separately for the dual-stage control systems.
+But when designing their respective controllers, certain performances are required for the two actuators, so that control efforts for the two actuators are distributed properly and the actuators don't conflict with each other's control authority.
+As seen in [Figure 7](#figure--fig:dual-stage-loop-gain), the VCM primary actuator open loop has a higher gain at low frequencies, and the secondary actuator open loop has a higher gain in the high-frequency range.
+
+
+
+{{< figure src="/ox-hugo/du19_dual_stage_loop_gain.png" caption="Figure 7: Frequency responses of \\(G\_v(s) = C\_v(s)P\_v(s)\\) (solid line) and \\(G\_p(s) = C\_p(s) P\_p(s)\\) (dotted line)" >}}
+
+The sensitivity functions are shown in [Figure 8](#figure--fig:dual-stage-sensitivity), where the hump of \\(S\_v\\) is arranged within the bandwidth of \\(S\_p\\) and the hump of \\(S\_p\\) is lowered as much as possible.
+This needs to decrease the bandwidth of the primary actuator loop and increase the bandwidth of the secondary actuator loop.
+
+
+
+{{< figure src="/ox-hugo/du19_dual_stage_sensitivity.png" caption="Figure 8: Frequency response of \\(S\_v(s)\\) and \\(S\_p(s)\\)" >}}
+
+A basic requirement of the dual-stage actuation control system is to make the individual primary and secondary loops stable.
+It also required that the primary actuator path has a higher gain than the secondary actuator path at low frequency range and the secondary actuator path has a higher gain than the primary actuator path in high-frequency range.
+These can be achieve by choosing appropriate weighting function for the controllers design.
+
+
+### Conclusion {#conclusion}
+
+The controller design has been discussed for high-precision positioning control of the dual-stage actuation systems.
+The \\(\mathcal{H}\_\infty\\) loop shaping method has been applied and the design method has been presented.
+With the weighting functions, the desired sensitivity function can achieved.
+Such a design method can produce robust controllers with more disturbance rejection in the low frequency range and less disturbance amplification in the high-frequency range.
+
+
+## Modeling and Control of a Three-Stage Actuation System {#modeling-and-control-of-a-three-stage-actuation-system}
+
+
+### Introduction {#introduction}
+
+In view of the additional bandwidth requirement which is limited by stroke constraint and saturation of secondary actuators, three-stage actuation systems are thereby proposed to meet the demand of a higher bandwidth.
+In this section, a specific three-stage actuation system is presented and a controller strategy is proposed, which is based on a decoupled master-slave dual-stage control structure combined with a third stage actuation in parallel format.
+
+
+### Actuator and Vibration Modeling {#actuator-and-vibration-modeling}
+
+A VCM actuator is used as the first-stage actuator denoted by \\(P\_v(s)\\), a PZT milliactuator as the second-stage actuator denoted by \\(P\_p(s)\\), and a thermal microactuator denoted by \\(P\_m(s)\\).
+
+
+### Control Strategy and Controller Design {#control-strategy-and-controller-design}
+
+[Figure 9](#figure--fig:three-stage-control) shows the control structure for the three-stage actuation system.
+
+The control scheme is based on the decoupled master-slave dual-stage control and the third stage microactuator is added in parallel with the dual-stage control system.
+The parallel format is advantageous to the overall control bandwidth enhancement, especially for the microactuator having limited stroke which restricts the bandwidth of its own loop.
+The reason why the decoupled control structure is adopted here is that its overall sensitivity function is the product of those of the two individual loops, and the VCM and the PTZ controllers can be designed separately.
+
+
+
+{{< figure src="/ox-hugo/du19_three_stage_control.png" caption="Figure 9: Control system for the three-stage actuation system" >}}
+
+The open-loop transfer function of the three-stage actuation system is derived as
+
+\begin{equation}
+ G(z) = G\_v(z) + G\_p(z) + G\_v(z) G\_p(z) + G\_m(z)
+\end{equation}
+
+with
+
+ \begin{align\*}
+ G\_v(z) &= P\_v(z) C\_v(z) \\\\
+ G\_p(z) &= P\_p(z) C\_p(z) \\\\
+ G\_m(z) &= P\_m(z) C\_m(z)
+\end{align\*}
+
+The overall sensitivity function is given by
+
+\begin{equation}
+ S(z) = \frac{1}{1 + G(z)}
+\end{equation}
+
+The VCM actuator \\(P\_v(s)\\) works in a low bandwidth below \\(\SI{1}{kHz}\\).
+The PZT actuated milliactuator \\(P\_p(s)\\) works under a reasonably high bandwidth up to \\(\SI{3}{kHz}\\).
+The third-stage actuator \\(P\_m(s)\\) is used to further push the bandwidth as high as possible.
+
+The control performances of both the VCM and the PZT actuators are limited by their dominant resonance modes.
+The open-loop frequency responses of the three stages are shown on [Figure 10](#figure--fig:open-loop-three-stage).
+
+
+
+{{< figure src="/ox-hugo/du19_open_loop_three_stage.png" caption="Figure 10: Frequency response of the open-loop transfer function" >}}
+
+The obtained sensitivity function is shown on [Figure 11](#figure--fig:sensitivity-three-stage).
+
+
+
+{{< figure src="/ox-hugo/du19_sensitivity_three_stage.png" caption="Figure 11: Sensitivity function of the VCM single stage, the dual-stage and the three-stage loops" >}}
+
+
+### Performance Evaluation {#performance-evaluation}
+
+External vibration from the system working environment is much higher than the internal disturbance, especially for ultra-high precision positioning systems.
+In the presence of external vibration, the actuators control effort is dominantly determined by the external vibration.
+But because the actuator input is constrained, the external vibration level has to be limited.
+Otherwise, saturation will occur in the control loop and the control system performance will be degraded.
+
+Therefore, the stroke specification of the actuators, especially milliactuator and microactuators, is very important for achievable control performance.
+Higher stroke actuators have stronger abilities to make sure that the control performances are not degraded in the presence of external vibrations.
+
+For the three-stage control architecture as shown on [Figure 9](#figure--fig:three-stage-control), the position error is
+\\[ e = -S(P\_v d\_1 + d\_2 + d\_e) + S n \\]
+The control signals and positions of the actuators are given by
+
+\begin{align\*}
+ u\_p &= C\_p e,\ y\_p = P\_p C\_p e \\\\
+ u\_m &= C\_m e,\ y\_m = P\_m C\_m e \\\\
+ u\_v &= C\_v ( 1 + \hat{P}\_pC\_p ) e,\ y\_v = P\_v ( u\_v + d\_1 )
+\end{align\*}
+
+The controller design for the microactuators with input constraints must take into account both external vibration requirements and actuators' stroke, based on which an appropriate bandwidth should be decided when designing the control system.
+Higher bandwidth/higher level of disturbance generally means high stroke needed.
+
+
+### Different Configurations of the Control System {#different-configurations-of-the-control-system}
+
+A decoupled control structure can be used for the three-stage actuation system (see [Figure 12](#figure--fig:three-stage-decoupled)).
+
+The overall sensitivity function is
+\\[ S(z) = \approx S\_v(z) S\_p(z) S\_m(z) \\]
+with \\(S\_v(z)\\) and \\(S\_p(z)\\) are defined in equation and
+\\[ S\_m(z) = \frac{1}{1 + P\_m(z) C\_m(z)} \\]
+
+Denote the dual-stage open-loop transfer function as \\(G\_d\\)
+\\[ G\_d(z) = G\_v(z) + G\_p(z) + G\_v(z) G\_p(z) \\]
+
+The open-loop transfer function of the overall system is
+\\[ G(z) = G\_d(z) + G\_m(z) + G\_d(z) G\_m(z) \\]
+
+
+
+{{< figure src="/ox-hugo/du19_three_stage_decoupled.png" caption="Figure 12: Decoupled control structure for the three-stage actuation system" >}}
+
+The control signals and the positions of the three actuators are
+
+\begin{align\*}
+ u\_p &= C\_p(1 + \hat{P}\_m C\_m) e, \ y\_p = P\_p u\_p \\\\
+ u\_m &= C\_m e, \ y\_m = P\_m M\_m e \\\\
+ u\_v &= C\_v(1 + \hat{P}\_p C\_p) (1 + \hat{P}\_m C\_m) e, \ y\_v = P\_v u\_v
+\end{align\*}
+
+The decoupled configuration makes the low frequency gain much higher, and consequently there is much better rejection capability at low frequency compared to the parallel architecture (see [Figure 13](#figure--fig:three-stage-decoupled-loop-gain)).
+
+
+
+{{< figure src="/ox-hugo/du19_three_stage_decoupled_loop_gain.png" caption="Figure 13: Frequency responses of the open-loop transfer functions for the three-stages parallel and decoupled structure" >}}
+
+
+### Conclusion {#conclusion}
+
+The relationship among the external vibration, the microactuator stroke, and the achievable control bandwidth has been discussed for being considered in the controller design.
+The discussion suggests that in addition to the traditional wisdom of just increasing the resonant frequency, adding more stroke to the microactuator will give more freedom to the loop shaping for the control system design.
+
+
+## Dual-Stage System Control Considering Secondary Actuator Stroke Limitation {#dual-stage-system-control-considering-secondary-actuator-stroke-limitation}
+
+
+### Introduction {#introduction}
+
+
+### More Freedom Loop Shaping for Microactuator Controller Design {#more-freedom-loop-shaping-for-microactuator-controller-design}
+
+
+### Dual-Stage System Control Design for 5 kHz Bandwidth {#dual-stage-system-control-design-for-5-khz-bandwidth}
+
+
+### Evaluation with the Consideration of External Vibration and Microactuator Stroke {#evaluation-with-the-consideration-of-external-vibration-and-microactuator-stroke}
+
+
+### Conclusion {#conclusion}
+
+
+## Saturation Control for Microactuators in Dual-Stage Actuation Systems {#saturation-control-for-microactuators-in-dual-stage-actuation-systems}
+
+
+### Introduction {#introduction}
+
+
+### Modeling and Feedback Control {#modeling-and-feedback-control}
+
+
+### Anti-Windup Compensation Design {#anti-windup-compensation-design}
+
+
+### Simulation and Experimental Results {#simulation-and-experimental-results}
+
+
+### Conclusion {#conclusion}
+
+
+## Time Delay and Sampling Rate Effect on Control Performance of Dual-Stage Actuation Systems {#time-delay-and-sampling-rate-effect-on-control-performance-of-dual-stage-actuation-systems}
+
+
+### Introduction {#introduction}
+
+
+### Modeling of Time Delay {#modeling-of-time-delay}
+
+
+### Dual-Stage Actuation System Modeling with Time Delay for Controller Design {#dual-stage-actuation-system-modeling-with-time-delay-for-controller-design}
+
+
+### Controller Design with Time Delay for the Dual-Stage Actuation Systems {#controller-design-with-time-delay-for-the-dual-stage-actuation-systems}
+
+
+### Time Delay Effect on Dual-Stage System Control Performance {#time-delay-effect-on-dual-stage-system-control-performance}
+
+
+### Sampling Rate Effect on Dual-Stage System Control Performance {#sampling-rate-effect-on-dual-stage-system-control-performance}
+
+
+### Conclusion {#conclusion}
+
+
+## PZT Hysteresis Modeling and Compensation {#pzt-hysteresis-modeling-and-compensation}
+
+
+### Introduction {#introduction}
+
+
+### Modeling of Hysteresis {#modeling-of-hysteresis}
+
+
+#### PI Model {#pi-model}
+
+
+#### GPI Model {#gpi-model}
+
+
+#### Inverse GPI Model {#inverse-gpi-model}
+
+
+### Application of GPI Model to a PZT-Actuated Structure {#application-of-gpi-model-to-a-pzt-actuated-structure}
+
+
+#### Modeling of the Hysteresis in the PZT-Actuated Structure {#modeling-of-the-hysteresis-in-the-pzt-actuated-structure}
+
+
+#### Hysteresis Compensator Design {#hysteresis-compensator-design}
+
+
+#### Experimental Verification {#experimental-verification}
+
+
+### Conclusion {#conclusion}
+
+
+## Seeking Control of Dual-Stage Actuation Systems with Trajectory Optimization {#seeking-control-of-dual-stage-actuation-systems-with-trajectory-optimization}
+
+
+### Introduction {#introduction}
+
+
+### Current Profile of VCM Primary Actuator {#current-profile-of-vcm-primary-actuator}
+
+
+#### PTOS Method {#ptos-method}
+
+
+#### A General Form of VCM Current Profiles {#a-general-form-of-vcm-current-profiles}
+
+
+### Control System Structure for the Dual-Stage Actuation System {#control-system-structure-for-the-dual-stage-actuation-system}
+
+
+### Design of VCM Current Profile a[sub(v)] and Dual-Stage Reference Trajectory r[sub(d)] {#design-of-vcm-current-profile-a-sub--v--and-dual-stage-reference-trajectory-r-sub--d}
+
+
+### Seeking within PZT Milliactuator Stroke {#seeking-within-pzt-milliactuator-stroke}
+
+
+### Seeking over PZT Milliactuator Stroke {#seeking-over-pzt-milliactuator-stroke}
+
+
+### Conclusion {#conclusion}
+
+
+## High-Frequency Vibration Control Using PZT Active Damping {#high-frequency-vibration-control-using-pzt-active-damping}
+
+
+### Introduction {#introduction}
+
+
+### Singular Perturbation Method-Based Controller Design {#singular-perturbation-method-based-controller-design}
+
+
+#### Singular Perturbation Control Topology {#singular-perturbation-control-topology}
+
+
+#### Identification of Fast Dynamics Using PZT as a Sensor {#identification-of-fast-dynamics-using-pzt-as-a-sensor}
+
+
+#### Design of Controllers {#design-of-controllers}
+
+
+##### Fast Subsystem Estimator G[sub(v)][sup(\*)] {#fast-subsystem-estimator-g-sub--v--sup}
+
+
+##### Fast Controller C[sub(v)] {#fast-controller-c-sub--v}
+
+
+##### Slow Controller C[sub(v)] {#slow-controller-c-sub--v}
+
+
+#### Simulation and Experimental Results {#simulation-and-experimental-results}
+
+
+##### Frequency Responses {#frequency-responses}
+
+
+##### Time Responses {#time-responses}
+
+
+### H[sub(2)] Controller Design {#h-sub--2--controller-design}
+
+
+### Design of C[sub(d)](z) with H[sub(2)] Method and Notch Filters {#design-of-c-sub--d----z--with-h-sub--2--method-and-notch-filters}
+
+
+### Design of Mixed H[sub(2)]/H[sub(∞)] Controller C[sub(d)](z) {#design-of-mixed-h-sub--2--h-sub-----controller-c-sub--d----z}
+
+
+### Application Results {#application-results}
+
+
+#### System Modeling {#system-modeling}
+
+
+#### H[sub(2)] Active Damping Control {#h-sub--2--active-damping-control}
+
+
+#### Mixed H[sub(2)]/H[sub(∞)] Active Damping Control {#mixed-h-sub--2--h-sub-----active-damping-control}
+
+
+#### Experimental Results {#experimental-results}
+
+
+### Conclusion {#conclusion}
+
+
+## Self-Sensing Actuation of Dual-Stage Systems {#self-sensing-actuation-of-dual-stage-systems}
+
+
+### Introduction {#introduction}
+
+
+### Estimation of PZT Secondary Actuator’s Displacement y[sub(p)][sup(\*)] {#estimation-of-pzt-secondary-actuator-s-displacement-y-sub--p--sup}
+
+
+#### Self-Sensing Actuation and Bridge Circuit {#self-sensing-actuation-and-bridge-circuit}
+
+
+#### PZT Displacement Estimation Circuit H[sub(B)] {#pzt-displacement-estimation-circuit-h-sub--b}
+
+
+### Design of Controllers {#design-of-controllers}
+
+
+#### VCM Controller and Controller C[sub(D)] {#vcm-controller-and-controller-c-sub--d}
+
+
+#### PZT Controller {#pzt-controller}
+
+
+### Performance Evaluation {#performance-evaluation}
+
+
+#### Effectiveness of C[sub(D)] {#effectiveness-of-c-sub--d}
+
+
+#### Position Errors {#position-errors}
+
+
+### Conclusion {#conclusion}
+
+
+## Modeling and Control of a MEMS Micro X–Y Stage Media Platform {#modeling-and-control-of-a-mems-micro-x-y-stage-media-platform}
+
+
+### Introduction {#introduction}
+
+
+### MEMS Micro X–Y Stage {#mems-micro-x-y-stage}
+
+
+#### Design and Simulation of Micro X–Y Stage {#design-and-simulation-of-micro-x-y-stage}
+
+
+##### Static {#static}
+
+
+##### Dynamic {#dynamic}
+
+
+#### Modeling of Micro X–Y Stage {#modeling-of-micro-x-y-stage}
+
+
+#### Fabrication of the MEMS Micro X–Y Stage {#fabrication-of-the-mems-micro-x-y-stage}
+
+
+### Capacitive Self-Sensing Actuation {#capacitive-self-sensing-actuation}
+
+
+#### Design of CSSA Bridge Circuit {#design-of-cssa-bridge-circuit}
+
+
+#### Experimental Verification {#experimental-verification}
+
+
+### Robust Decoupling Controller Design {#robust-decoupling-controller-design}
+
+
+#### Choice of Pre-Shaping Filters {#choice-of-pre-shaping-filters}
+
+
+#### Controller Synthesis {#controller-synthesis}
+
+
+#### Frequency Responses {#frequency-responses}
+
+
+#### Time Responses {#time-responses}
+
+
+#### Robustness Analysis {#robustness-analysis}
+
+
+### Conclusion {#conclusion}
+
+
+## Conclusions {#conclusions}
+
+Many secondary actuators have been developed in addition to primary actuators in the field of mechanical actuation systems.
+The aim is to provide high performance such as high precision and fast response.
+Several types of secondary actuators have been introduced such as PZT milliactuator, electrostatic microactuator, PZT microactuator, and thermal microactuator.
+Comparison of these secondary actuators has been made, and these secondary actuators have made dual and multi-stage actuation mechanisms possible.
+
+Three-stage actuation systems have been proposed for the demand of wider bandwidth, to overcome the limitation by stroke constraint and saturation of secondary actuators.
+After the characteristics of the three-stage systems have been developed and the models have been identified, the control strategy and algorithm have been developed to deal with vibrations and meet different requirements.
+Particularly, for the three-stage actuation systems, the presented control strategies make it easy to further push the bandwidth and meet the performance requirement.
+The control of the thermal microactuator based dual-stage system has been discussed in detail, including linearization and controller design method.
+
+The developed advanced algorithms applied in the multi-stage systems include \\(\mathcal{H}\_\infty\\) loop shaping, anti-windup compensation, \\(\mathcal{H}\_2\\) control method,
+and mixed \\(\mathcal{H}\_2/\mathcal{H}\_\infty\\) control method.
+Typical problems of the milli and micro-actuators as the secondary actuators have been considered and appropriate solutions have been presented such as saturation compensation, hysteresis modeling and compensation, stroke limitation, and PZT self-sensing scheme.
+Time delay and sampling rate effect on the control performance have been analyzed to help select appropriate sampling rate and design suitable controllers.
+
+Specific usage of PZT elements has been produced for system performance improvement.
+Using PZT elements as a sensor to deal with high-frequency vibration beyond the bandwidth has been proposed and systematic controller design methods have been developed.
+As a more advanced concept, PZT elements being used as actuator and sensor simultaneously has also been addressed in this book with detailed scheme and controller design methodology for effective utilization.
+
+
+## Bibliography {#bibliography}
+
+
+
Du, Chunling, and Chee Khiang Pang. 2019. Multi-Stage Actuation Systems and Control. Boca Raton, FL: CRC Press.
+
+
+## Overview {#overview}
+
+
+### Introduction to Modal Testing {#introduction-to-modal-testing}
+
+The **major objectives** of modal testing are:
+
+- Determining the nature and extent of vibration response levels in operation
+- Verifying theoretical models and predictions of the vibrations
+- Measurement of the essential materials properties under dynamic loading, such as damping capacity, friction and fatigue endurance
+
+For many applications, vibrations is directly related to performance and it is important that the vibration levels are anticipated and brought under satisfactory control.
+
+The two major vibration measurement objectives corresponds to two types of test:
+
+1. **Free vibration**: responses are measured during operation of the machine
+2. **Forced vibrations**: the structure is vibrated with a known excitation, often out of its normal service environment. This type of testing is generally made under more closely-controlled conditions than the first one, and yields to more accurate information
+
+Modal Testing means "the processes involved in testing components or structure with the objective of obtaining a mathematical description of their dynamic of vibration behavior".
+The form of "mathematical description" can vary from one application to the other: it can be an estimate of natural frequency and damping factor in one case and a full mass-spring-dashpot model for the next.
+
+
+### Applications of modal testing {#applications-of-modal-testing}
+
+We must remember that no single test or analysis procedure is best for all cases and so it is very important that a clear objective is defined before any industrial test is undertaken so that the optimum methods may be used.
+
+The different objectives can be:
+
+1. Measurement of a structure's vibration properties in order to **compare these with a theoretical model** (finite element model for instance).
+ This is usually used to **validate a model**. What is required for the test are:
+
+ - accurate estimates of natural frequencies
+ - descriptions of the mode shapes
+
+ At this stage, accurate mode shape data are not essential. It is generally not possible to "predict" the damping in each mode of vibration from a theoretical model.
+2. **Adjust or correct the theoretical model** in order to bring its modal properties closer into line with the measured results.
+ A **correlation** technique can be used: the two sets of data are combined, quantitatively, in order to identify specifically the causes of the discrepancies between predicted and measured properties. This however, requires precise description of the mode shapes (the eigenvectors) from the modal analysis.
+3. **Sub-structuring process**: use modal testing in order to produce a mathematical model of a component which may be incorporated into a structural assembly.
+ Here, as it is a fully quantitative model that is sought, accurate data are required for natural frequencies, modal damping factors and mode shapes.
+ Also, all modes must be included simultaneously as **out-of-range modes will influence the structure's behavior** in a given frequency range of interest for the complete assembly. This application is altogether more demanding than the previous ones.
+4. **Predicting the effects of modifications** to the original structure, as tested.
+ For this application and the sub-structuring process, one need information about **rotational degrees-of-freedom**, i.e. moments and rotational displacements.
+ These are generally ignore in experimental-based studies as they are much more difficult to measure.
+5. **Force Determination**. There are a number of situations where **knowledge of the dynamic forces causing vibration is required** but where direct measurement of these forces is not practical.
+ For these cases, one solution is offered by a process whereby measurements of the response caused by the forces are combined with a mathematical description of the transfer functions of the structure in order to deduce the forces.
+ This process can be very sensitive to the accuracy of the model used, and it is often essential that the model itself be derived from measurements
+
+Usually, the normal procedure for modal testing is:
+
+1. **Measure**
+2. **Analyze** the measured data
+3. **Derive a mathematical model** of the structure
+
+However, there are some cases where this is not the optimum procedure.
+The last step is usually taken in order to reduce a vast quantity of actual measurements to a small and efficient data set usually referred to as the "modal model".
+This reduction process has an additional benefit of eliminating small inconsistencies which will inevitably occur in measured data.
+
+
+### Philosophy of Modal Testing {#philosophy-of-modal-testing}
+
+One of the major requirements to apply modal testing is a thorough integration with an high level of understanding of three components:
+
+1. **Theoretical basis** of vibration
+2. **Accurate measurement** of vibration
+3. Realistic and detailed **data analysis**
+
+For instance, there are many features of a frequency response function that can be assessed rapidly understanding some **theoretical basis**.
+This could prevent the wasted effort of analyzing incorrect measurements.
+
+Then, for the **practical** side, there are many choices of test methods: harmonic, random, transient excitation.
+The experimenter should be aware of the limitations and implications of the various techniques used in the measurement phases.
+
+Next, we consider the **analysis** stage where the measured data (Frequency Response Functions or FRF) are subjected to a range of curve-fitting procedures in an attempt to find the mathematical model which provides the closest description of the actually-observed behavior.
+There are many approached, and one should be aware of the alternatives in order to choose the optimal one.
+
+Often, an analysis may be conducted on each measured curve individually.
+Then, there is a further step in the process: **modeling**.
+This is the final stage where all the measured and processed data are combined to yield the most compact and efficient mathematical model of the test structure.
+
+However, the averaging process is a valid and valuable technique only is provided that the data contain **random** vibrations.
+Data with systematic trends, such as those causes by poor testing practices or non-linearities, should no be averaged in the same way.
+
+
+### Summary of Theory {#summary-of-theory}
+
+It is very important that a clear distinction is made between **free** vibrations and **forced** vibration analysis.
+
+For the SDOF system, a free vibration analysis yields its natural frequency and damping factor, where a forced response analysis (assuming a harmonic excitation), leads to the definition of the frequency response function.
+These two types of results are referred to as **modal properties** and **frequency response characteristics**.
+
+Next, we consider the more general class of systems which have more than one degree-of-freedom.
+For these, it is customary that the spatial properties (the values of the mass, stiffness, and damper elements) be expressed as matrices.
+Those used are the mass matrix \\(M\\), the stiffness matrix \\(K\\), the viscous damping matrix \\(C\\) and the structural or hysteretic damping matrix \\(D\\).
+
+There are three phases in the vibration analysis of such systems:
+
+1. **Setting up the governing equations of motion**, which means determining the elements of the above matrices
+2. **Free vibration analysis** using the equations of motion.
+ This analysis produces first a set of \\(N\\) natural frequencies and damping factors, and secondly a matching set of \\(N\\) "mode shape" vectors, each one of these being associated with a specific natural frequency and damping factor.
+ The complete free vibration solution is conveniently contained in two matrices \\(h^2\\) and \\(\phi\\), which are again referred to as "modal properties", or sometimes, as the **eigenvalue** and **eigenvector matrices**.
+ One element from the diagonal eigenvalue matrix \\(\lambda\_r^2\\) contains **both the natural frequency and the damping factor** for the \\(r^{\text{th}}\\) normal mode of vibration of the system while the corresponding column \\(\phi\_r\\) describes the **shape of that same mode of vibration**
+3. **Forced response analysis**, and in particular harmonic excitation.
+ By solving the equations of motion when harmonic forcing is applied, we are able to describe the complete solution by a single matrix, known as the **frequency response matrix** \\(H(\omega)\\).
+ Thus, element \\(H\_{jk}(\omega)\\) represents the harmonic response, \\(X\_j\\) in one of the DOF \\(j\\) caused by a single harmonic force \\(F\_k\\) applied in the DOF \\(k\\).
+ The particular relevance of these specific response characteristics is the fact that they are the quantities which are the most likely to be able to **measure in practice**.
+ However, the same expressions can be **drastically simplified if we use the modal properties** instead of the spatial properties and it is possible to write an expressing for any FRF, \\(H\_{jk}(\omega)\\), which has the general form
+
+ \begin{equation}
+ H\_{jk}(\omega) = \frac{X\_j}{F\_k} = \sum\_{r=1}^{N}\frac{{}\_rA\_{jk}}{\lambda\_r^2 - \omega^2} \label{eq:frf\_modal}
+ \end{equation}
+
+ where \\(\lambda\_r^2\\) is the eigenvalue of the \\(r^{\text{th}}\\) mode, \\({}\_rA\_{jk}\\) (the modal constant) is constructed from \\(\phi\_{jk}\\) which is the \\(j^{\text{th}}\\) element of the \\(r^{\text{th}}\\) eigenvector \\(\phi\_r\\) and \\(N\\) is the number of degrees-of-freedom (or modes).
+ This expression forms the foundation of modal analysis: it shows a **direct connection between the modal properties of a system and its response characteristics**.
+
+Thus, we find that by making a thorough study of the theory of structural vibration, we are able to "predict" what we might expect to find if we make FRF measurements on actual hardware.
+Indeed, we shall see later how these predictions can be quite detailed, to the point where it is possible to comment on the likely quality of measured data.
+
+
+### Summary of measurement methods {#summary-of-measurement-methods}
+
+The main measurement technique studied are those which will permit to make **direct measurements of the various FRF** properties of the test structure.
+
+The type of test best suited to FRF measurement is shown in [Figure 1](#figure--fig:modal-analysis-schematic).
+
+
+
+{{< figure src="/ox-hugo/ewins00_modal_analysis_schematic.png" caption="Figure 1: Basic components of FRF measurement system" >}}
+
+Essentially, there are three aspect of the measurement process which demand particular attention in order to ensure the acquisition of the high-quality data which are required for the next stage (data analysis). These are:
+
+1. The mechanical aspect of **supporting** and **correctly exciting the structure**
+2. The **correct transduction** of the quantities to be measured (force input and motion response)
+3. The **signal processing** which is appropriate to the type of test used
+
+
+##### Mechanical Aspect {#mechanical-aspect}
+
+We here encounter questions as how the testpiece should be suspended, or supported and how it should be excited.
+Usually, one of three options is chosen for the support:
+
+- **Free or unrestrained**: usually means suspended on very soft springs, this has the advantage that free boundaries are easy to simulate
+- **Grounded**: requires rigid clamping at certain points
+- **In situ**: the testpiece is connected to some structure representing a non-rigid attachment
+
+The mechanics of the excitation are achieve either by connection a **vibration generator** or shaker, or by using some form of **transient input**, such as a hammer blow or sudden release from a deformed position.
+Both approaches have advantages and disadvantages and it can be very important to choose the best one in each case.
+
+
+##### Transducers {#transducers}
+
+Transducers are very important elements in the system as it is essential that accurate measurements be made of both the input to the structure and of its response.
+Nowadays, **piezoelectric transducers** are widely used to detect both force and acceleration and the major problems associated with them are to ensure that they **interfere as little as possible with the test structure** and that their **performance is adequate for the ranges of frequency and amplitude** of the test.
+
+
+##### Signal Processing {#signal-processing}
+
+The FRF parameters to be measured can be obtained directly by applying an harmonic excitation and then measuring the resulting harmonic response.
+This type of test is often referred to as **sinewave testing** and it requires the attachment of a shaker to the structure.
+The frequency range is covered by sweeping the frequency continuously or by step.
+
+Alternative excitation procedures are now widely used.
+Transient (including burst signals) periodic, pseudo-random or **random excitation signals** often replace the signal wave approach and are made practical by the existence of complex signal processing analyser which are capable of resolving the frequency content of both input and response signals using Fourier analysis.
+
+In modal testing applications of vibrations measurements, **accuracy of the measured data is of paramount importance**.
+This is so because this data are generally to be submitted to a range of analysis procedures, in order to extract the results.
+Some of these analysis processes are themselves quite complex and can seldom be regarded as insensitive to the accuracy of the input data.
+
+
+### Summary of Modal Analysis Processes {#summary-of-modal-analysis-processes}
+
+The third skill required for modal testing is concerned with the **analysis of the measured FRF data**.
+This is quite separate from the signals processing which may be necessary to convert raw measurements into frequency response.
+
+It is a procedure whereby the measured mobilities are analyzed in such a way as to find a theoretical model which most closely resembles the behavior of the actual testpiece.
+This process itself falls into two stages:
+
+1. **Identify the appropriate type of model**
+2. **Determine the appropriate parameters** of the chosen model
+
+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.
+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.
+
+A completely general curve-fitting approach is possible but generally inefficient.
+Mathematically, we can take an equation of the form
+\\[ H(\omega) = \sum\_{r=1}^N \frac{A\_r}{\lambda\_r^2 - \omega^2} \\]
+and curve fit a set of measured values \\(H\_m(\omega\_1), H\_m(\omega\_2), \dots\\) to this expression so that we obtain estimates for the coefficients \\(A\_1, A\_2, \dots, \lambda\_1^2, \lambda\_2^2, \dots\\).
+These coefficients are closely related to the modal properties of the system.
+However, although such approaches are made, they are **inefficient** and neither exploit the particular properties of resonant systems nor take due account of the unequal quality of the various measured points in the data set, both of which can have a significant influence on the overall analysis process.
+Thus there is **no single modal analysis method**, but rater a selection, each being the most appropriate in differing conditions.
+
+One of the most widespread and useful approaches is known as the **single-degree-of-freedom curve-fit**, or often as the **circle fit** procedure.
+This method uses the fact that **at frequencies close to a natural frequency**, the FRF can often be **approximated to that of a single degree-of-freedom system** plus a constant offset term (which approximately accounts for the existence of other modes).
+This assumption allows us to use the circular nature of a modulus/phase polar plot of the frequency response function of a SDOF system (see [Figure 2](#figure--fig:sdof-modulus-phase)).
+This process can be **repeated** for each resonance individually until the whole curve has been analyzed.
+At this stage, a theoretical regeneration of the FRF is possible using the set of coefficients extracted.
+
+
+
+{{< figure src="/ox-hugo/ewins00_sdof_modulus_phase.png" caption="Figure 2: Curve fit to resonant FRF data" >}}
+
+These simple methods can be used for many of the cases encountered in practice but they become inadequate and **inaccurate when the structure has mode which are close**.
+Under these conditions, it becomes necessary to use a more complex process which accepts the simultaneous influence of more than one mode.
+These methods are referred to as **MDOF curve-fits** and are naturally more complicated and require more computation effort but, provided the data are accurate, they have the capability of producing more accurate estimates for the modal properties.
+
+Some of more detailed considerations include: compensating for slightly non-linear behavior, simultaneously analyzing more than one FRF and curve-fitting to actual time histories.
+
+
+### Review of Test Procedures and Levels {#review-of-test-procedures-and-levels}
+
+The overall objective of the test is to determine a set of modal properties for a structure.
+These consist of natural frequencies, damping factors and mode shapes.
+The procedure consists of **three steps**:
+
+1. **Measure** an appropriate set of mobilities, or FRF
+2. **Analyze** these using appropriate curve-fitting procedures
+3. **Combine** the results of the curve-fits to construct the required model
+
+Using our knowledge of the theoretical relationship between FRF functions and modal properties, it is possible to show that an "appropriate" set of FRFs to measure consists in most cases of **just one row or one column in the FRF matrix** \\(H(\omega)\\).
+In practice this either means **exciting the structure at one point and measuring responses at all points** or **measuring the response at one point while the excitation is applied separately at each point in turn**.
+This last option is most conveniently achieve using a hammer.
+
+Even though the same overall procedure is always followed, there will be a **different level of detail** required for each different application.
+
+
+## Theoretical Basis {#theoretical-basis}
+
+
+### Introduction {#introduction}
+
+Theoretical foundations of modal testing are of paramount importance to its successful implementation.
+
+The three phases through a typical theoretical vibration analysis progresses are shown on [Figure 3](#figure--fig:vibration-analysis-procedure).
+Generally, we start with a description of the structure's physical characteristics (mass, stiffness and damping properties), this is referred to as the **Spatial model**.
+
+
+
+{{< figure src="/ox-hugo/ewins00_vibration_analysis_procedure.png" caption="Figure 3: Theoretical route to vibration analysis" >}}
+
+Then, it is customary to perform a theoretical modal analysis of the spatial model which leads to a description of the structure's behavior as a set of vibration modes: the **modal model**.
+
+
+
+A **modal model** is defined a set of **natural frequencies** with corresponding **modal damping factors** and **vibration mode shapes**.
+This solution describes the various ways in which the structure is capable of vibrating **naturally** (without any external forces or excitations), and so these are called the **natural** or **normal** modes of the structure.
+
+
+
+The third stage is generally that in which we have the greatest interest; namely, the analysis of **exactly how the structure will respond under given excitation conditions**.
+It is convenient to present an analysis of the structure's response to a "standard" excitation (from which the solution for **any particular case** can be constructed) and to describe this as the **response model**.
+The **standard excitation** chosen is a **unit-amplitude sinusoidal force applied to each point on the structure individually**, and at every frequency within a specified range.
+Thus our response model will consist of a set of **frequency response functions**.
+
+
+
+As indicated in [Figure 3](#figure--fig:vibration-analysis-procedure), it is also possible to do an analysis in the reverse directly: from a description of the response properties (FRFs), we can deduce modal properties and the spatial properties: this is the **experimental route** to vibration analysis.
+
+
+
+
+### Single Degree of Freedom System Theory {#single-degree-of-freedom-system-theory}
+
+Although very few practical structures could realistically be modeled by a SDOF system, the properties of such a system are very important because those for a more complex MDOF system can always be represented as a **linear superposition** of a number of SDOF characteristics.
+
+
+
+Three classes of system model will be described:
+
+- Undamped
+- Viscously-damped
+- Hysteretically (or structurally) damped
+
+
+
+The basic model for the SDOF system is shown in [Figure 4](#figure--fig:sdof-model) where \\(f(t)\\) and \\(x(t)\\) are general time-varying force and displacement response quantities.
+The spatial model consists of a **mass** \\(m\\), a **spring** \\(k\\) and (when damped) either a **viscous dashpot** \\(c\\) or **hysteretic damper** \\(d\\).
+
+
+
+{{< figure src="/ox-hugo/ewins00_sdof_model.png" caption="Figure 4: Single degree-of-freedom system" >}}
+
+
+#### Undamped Systems {#undamped-systems}
+
+The governing equation of motion is
+
+\begin{equation}
+ m \ddot{x} + k = 0
+\end{equation}
+
+The trial solution \\(x(t) = X e^{i\omega t}\\) leads to
+\\[ k - m \omega^2 = 0 \\]
+
+Hence the modal model consists of a single solution (mode of vibration) with a **natural frequency**
+\\[ \omega\_0 = \sqrt{k/m} \\]
+
+Turning next to a **frequency response analysis**, we consider an excitation of the form
+\\[ f(t) = F e^{i\omega t} \\]
+and assume a solution of the form
+\\[ x(t) = X e^{i\omega t} \\]
+where \\(F\\) and \\(X\\) are complex.
+Now the equation of motion is
+
+\begin{equation}
+ (k - m \omega^2) X e^{i\omega t} = F e^{i\omega t}
+\end{equation}
+
+from which we extract the required response model in the form of a **frequency response function**.
+
+
+
+This particular form of FRF, where the response parameter is **displacement** (as opposed to velocity of acceleration) is called a **receptance**.
+
+
+#### Viscous Damping {#viscous-damping}
+
+If we add a **viscous dashpot** \\(c\\), the equation of motion becomes
+
+\begin{equation}
+ m \ddot{x} + c \dot{x} + k x = 0
+\end{equation}
+
+and we must now use a more general trial solution
+\\[ x(t) = X e^{st} \\]
+where \\(s\\) is **complex**.
+We obtain the condition
+\\[ ms^2 + cs + k = 0 \\]
+which leads to
+
+\begin{align}
+ s\_{1, 2} &= -\frac{c}{2 m} \pm \frac{\sqrt{c^2 - 4 k m}}{2 m} \\\\
+ &= - \bar{\omega}\_0 \xi \pm i \bar{\omega}\_0 \sqrt{1 - \xi^2} \nonumber
+\end{align}
+
+where
+\\[ \bar{\omega}\_0^2 = \frac{k}{m};\quad \xi = \frac{c}{c\_0} = \frac{c}{2 \sqrt{km}} \\]
+
+This implies a modal solution of the form
+\\[ x(t) = X e^{-\bar{\omega}\_0 \xi t} e^{i (\bar{\omega}\_0 \sqrt{1 - \xi^2})t} = X e^{-a t} e^{i \omega\_0^\prime t} \\]
+which is a single mode of vibration with a complex natural frequency having two part:
+
+- **An imaginary or oscillatory part**
+- **A real or decay part**
+
+The physical significance of these two parts is illustrated in the typical free response plot shown in [Figure 5](#figure--fig:sdof-response)
+
+
+
+{{< figure src="/ox-hugo/ewins00_sdof_response.png" caption="Figure 5: Oscillatory and decay part" >}}
+
+Lastly, we consider the forced response when \\(f(t) = F e^{i\omega t}\\) and, as before, we assume \\(x(t) = Xe^{i\omega t}\\):
+\\[ \left( -\omega^2 m + i \omega c + k \right) X e^{i\omega t} = F e^{i \omega t} \\]
+gives a receptance FRF of the form
+
+
+
+Receptance FRF - Viscous Damping:
+
+\begin{equation}
+ \alpha(\omega) = \frac{1}{(k - \omega^2 m) + i \omega c}
+\end{equation}
+
+which is now complex, containing both magnitude and phase information:
+
+\begin{aligned}
+ \frac{|X|}{|F|} &= \frac{1}{\sqrt{(k - \omega^2 m)^2 + (\omega c)^2}} \\\\
+ \angle{X} - \angle{F} &= \text{tg}^{-1} \left( \frac{\omega c}{k - \omega^2 m} \right)
+\end{aligned}
+
+
+
+
+#### Structural Damping {#structural-damping}
+
+All structures exhibit a degree of damping due to the **hysteresis properties** of the material(s) from which they are made.
+
+A typical example of this effect is shown in the force displacement plot in [ 1](#org-target--fig-material-histeresis) in which the **area contained by the loop represents the energy lost in one cycle of vibration** between the extremities shown.
+The maximum energy stored corresponds to the elastic energy of the structure at the point of maximum deflection.
+The damping effect of such a component can conveniently be defined by the ratio of these two:
+\\[ \tcmbox{\text{damping capacity} = \frac{\text{energy lost per cycle}}{\text{maximum energy stored}}} \\]
+
+
+
+
+|  |  |  |
+|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
+| Material hysteresis | Dry friction | Viscous damper |
+| height=2cm | height=2cm | height=2cm |
+
+Another common source of energy dissipation in practical structures, is the **friction** which exist in joints between components of the structure.
+It may be described very roughly by the simple **dry friction model** shown in [ 1](#org-target--fig-dry-friction).
+
+The mathematical model of the **viscous damper** which we have used can be compared with these more physical effects by plotting the corresponding force-displacement diagram for it, and this is shown in [ 1](#org-target--fig-viscous-damper).
+Because the relationship is linear between force and velocity, it is necessary to suppose harmonic motion, at frequency \\(\omega\\), in order to construct a force-displacement diagram.
+The resulting diagram shows the nature of the approximation provided by the viscous damper model and the concept of the **effective or equivalent viscous damping coefficient** for any of the actual phenomena as being which provides the **same energy loss per cycle** as the real thing.
+
+
+
+The problem which arises with the **viscous damping model** is that it has a **frequency-dependence in the amount of energy loss per cycle** whereas the dry friction mechanism is clearly unaffected by the frequency of loading and experiments suggests that the hysteresis effect is similarly independent of frequency.
+Thus, we find a problem in obtaining a single equivalent viscous dashpot model which will be **valid over a range of frequencies**, such as will be necessary to represent the damping of a MDOF system over all, or at least several, of its modes of vibration.
+
+
+
+An alternative theoretical damping model is provided by the **hysteretic** or **structural damper** which not only has the advantage that the **energy lost per cycle is independent of the frequency**, but also provides a much simpler analysis for MDOF systems.
+However, it presents difficulties to a rigorous free vibration analysis and its application is generally focused on the forced response analysis.
+In this case, we can write an equation of motion:
+\\[ (-\omega^2 m + k + i d) X e^{i\omega t} = F e^{i \omega t} \\]
+
+
+
+Receptance FRF - Structural Damping:
+
+\begin{equation}
+ \alpha(\omega) = \frac{1/k}{1 - \left(\omega/\bar{\omega}\_0\right)^2 + i \eta}
+\end{equation}
+
+where \\(\eta\\) is the **structural damping loss factor** and replaces the critical damping ratio used for the viscous damping model.
+
+
+
+
+### Presentation and Properties of FRF data for SDOF system {#presentation-and-properties-of-frf-data-for-sdof-system}
+
+
+#### 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}.
+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}.
+Similarly we could use the acceleration parameter so we could define a third FRF parameter \ref{eq:inertance}.
+
+
+
+[Table 2](#table--tab:frf-alternatives) gives details of all six of the FRF parameters and of the names used for them.
+
+**Inverse response** can also be defined. For instance, the **dynamic stiffness** is defined as the force over the displacement.
+
+
+
+**Dynamic Stiffness**:
+
+\begin{equation}
+ \frac{\text{force}}{\text{displacement}} = (k - \omega^2 m) + (i \omega c) \label{eq:dynamic\_stiffness}
+\end{equation}
+
+
+
+It should be noted that that the use of displacement as the response is greatly encouraged as the other options can lead to confusion when used in MDOF system.
+
+
+
+ Table 2:
+ Definition of Frequency Response Functions
+
+
+| | **Standard FRF** | **Inverse FRF: FIR** |
+|-----------|---------------------|----------------------|
+| **Disp**. | Receptance | Dynamic Stiffness |
+| | Admittance | |
+| | Dynamic compliance | |
+| | Dynamic flexibility | |
+| **Vel**. | Mobility | Mechanical Impedance |
+| **Acc**. | Accelerance | Apparent Mass |
+| | Inertance | |
+
+
+#### Graphical Displays of FRF Data {#graphical-displays-of-frf-data}
+
+FRF data are complex and thus there are three quantities (frequency and two parts of the complex function) to display.
+Any simple plot can only show two of the three quantities and so there are different possibilities available for the presentation of such data:
+
+1. Modulus of FRF vs Frequency and Phase of FRF vs Frequency: the **Bode plot**
+2. Real Part of FRF vs Frequency and Imaginary Part of FRF vs Frequency
+3. Real Part of reciprocal FRF vs Frequency and Imaginary part of reciprocal FRF vs Frequency
+4. Real part of FRF vs Imaginary part of FRF: the **Nyquist plot**
+
+
+##### Bode Plot {#bode-plot}
+
+Bode plot are usually displayed using logarithmic scales as shown on [Table 3](#table--fig:bode-plots).
+
+
+
+
+|  |  |  |
+|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|
+| Receptance FRF | Mobility FRF | Accelerance FRF |
+| width=\linewidth | width=\linewidth | width=\linewidth |
+
+Each plot can be divided into three regimes:
+
+- a low frequency straight line characteristic
+- a high frequency straight line characteristic
+- the resonant region with its abrupt magnitude and phase variations
+
+
+##### Real part and Imaginary part of FRF {#real-part-and-imaginary-part-of-frf}
+
+Real and imaginary part of a receptance FRF of a damped SDOF system is shown on [Table 4](#table--fig:plot-receptance-real-imag).
+This type of display is not widely used as we cannot use logarithmic axes (as we have to show positive and negative values).
+
+
+
+ Table 4:
+ Plot of real and imaginary part for the receptance of a damped SDOF
+
+
+|  |  |
+|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
+| Real part | Imaginary part |
+| width=\linewidth | width=\linewidth |
+
+
+##### 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.
+
+[ 5](#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\\).
+
+
+
+
+|  |  |
+|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
+| Mixed | Viscous |
+| width=\linewidth | width=\linewidth |
+
+
+##### Real part vs Imaginary part of FRF {#real-part-vs-imaginary-part-of-frf}
+
+[Table 6](#table--fig:nyquist-receptance) shows Nyquist type FRF plots of a viscously damped SDOF system.
+The missing information (in this case, the frequency) must be added by identifying the values of frequency corresponding to particular points on the curve.
+
+
+
+ Table 6:
+ Nyquist FRF plots of the mobility for a SDOF system
+
+
+|  |  |
+|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
+| Viscous damping | Structural damping |
+| width=\linewidth | width=\linewidth |
+
+The Nyquist plot has the particularity of distorting the plot so as to focus on the resonance area.
+This makes the Nyquist plot very effective for modal testing applications.
+
+
+### Undamped MDOF Systems {#undamped-mdof-systems}
+
+
+#### 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}.
+
+
+
+**MDOF - Equation of Motion**;
+
+\begin{equation}
+ [M] \\{\ddot{x}(t)\\} + [K] \\{x(t)\\} = \\{f(t)\\} \label{eq:undamped\_mdof}
+\end{equation}
+
+where \\([M]\\) and \\([K]\\) are \\(N\times N\\) mass and stiffness matrices, and \\(\\{x(t)\\}\\) and \\(\\{f(t)\\}\\) are \\(N\times 1\\) vectors of time-varying displacements and forces.
+
+
+
+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.
+Substitution of this condition into \ref{eq:undamped\_mdof} leads to
+
+\begin{equation} \label{eq:free\_eom\_mdof}
+ \left( [K] - \omega^2 [M] \right) \\{X\\} e^{i\omega t} = \\{0\\}
+\end{equation}
+
+for which the non trivial solutions are those which satisfy
+\\[ \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**.
+
+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.
+
+
+
+The complete solution can be expressed in two \\(N \times N\\) **eigen matrices**.
+
+\\[ \begin{bmatrix}
+ \omega\_1^2 & & 0 \\\\
+ & \ddots & \\\\
+ 0 & & \omega\_n^2
+\end{bmatrix}; \quad \Psi = \begin{bmatrix}
+ & & \\\\
+ \\{\psi\_1\\} & \dots & \\{\psi\_n\\} \\\\
+ & &
+\end{bmatrix} \\]
+
+where \\(\bar{\omega}\_r^2\\) is the \\(r^\text{th}\\) **eigenvalue squared** and \\(\\{\psi\\}\_r\\) is a description of the corresponding **mode shape**
+
+
+
+Various numerical procedures are available which take the system matrices \\([M]\\) and \\([K]\\) (the **Spatial Model**), and convert them to the two eigen matrices \\([\bar{\omega}\_r^2]\\) and \\([\Psi]\\) which constitute the **Modal Model**.
+
+It is important to realize that whereas the eigenvalue matrix is unique, the eigenvector matrix is **not**.
+Indeed, the natural frequencies are fixed quantities, and the mode shapes are subject to an **indeterminate scaling factor**.
+
+
+#### Orthogonality Properties {#orthogonality-properties}
+
+
+
+The modal model possesses some very important properties known as the **orthogonality properties**:
+
+\begin{equation}
+ \begin{aligned}
+ [\Psi]^T[M][\Psi] &= [m\_r]\\\\
+ [\Psi]^T[K][\Psi] &= [k\_r]
+ \end{aligned}
+\end{equation}
+
+from which \\([\bar{\omega}\_r^2] = [m\_r]^{-1} [k\_r]\\) where \\(m\_r\\) and \\(k\_r\\) are often referred to as the **modal mass** and **modal stiffness** of mode \\(r\\).
+
+
+
+Now, because the eigenvector matrix is subject to an **arbitrary scaling factor**, the values of \\(m\_r\\) and \\(k\_r\\) are not unique.
+
+Among the many scaling or normalization processes, the **mass-normalization** has the most relevance.
+
+
+
+The **mass-normalized eigenvectors** are written as \\([\Phi]\\) and have the particular property that
+
+\begin{equation}
+ \begin{aligned}
+ [\Phi]^T[M][\Phi] &= [I]\\\\
+ [\Phi]^T[K][\Phi] &= [\bar{\omega}\_r^2]
+ \end{aligned}
+\end{equation}
+
+
+
+The relationship between the mass-normalized mode shape for mode \\(r\\) \\(\\{\Phi\\}\_r\\) and its more general form \\(\\{\Psi\\}\_r\\) is simply
+
+\begin{equation}
+ \\{\Phi\\}\_r = \frac{1}{\sqrt{m\_r}} \\{\Psi\\}\_r
+\end{equation}
+
+
+#### Modal, Generalized and Effective Mass and Stiffness {#modal-generalized-and-effective-mass-and-stiffness}
+
+The **modal mass** is based on the mode shape vector for mode \\(r\\) and the system mass matrix.
+As mentioned, there is no unique value for the modal mass as it is directly related to the scaling method which has been used to determine the mode shape eigenvector \\(\\{\Psi\\}\_r\\).
+However, the ratio between any modal stiffness and its associated modal mass is unique and is equal to the corresponding eigenvalue.
+The modal mass is generally used to convert the original mode shape vector \\(\\{\Psi\\}\_r\\) to the more useful mass-normalized mode shape vector \\(\\{\Phi\\}\_r\\).
+
+
+
+Using the mass-normalized mode shape vectors, we can see how to derive quantities which provide us with information about the **effective mass** (or stiffness) at any point on the structure (any DOF \\(j\\)).
+
+The **effective mass** at DOF \\(j\\) for mode \\(r\\) is define as
+\\[ (m\_{jj})\_r = \frac{1}{(\phi\_{jr})^2}, \text{ which as units of mass} \\]
+and the **effective stiffness** at DOF \\(j\\) for mode \\(r\\)
+\\[ (k\_{jj})\_r = \frac{\bar{\omega}\_r^2}{(\phi\_{jr}^2)} \\]
+
+
+
+It can be seen that since the mass-normalized eigenvectors are unique, these effective mass and stiffness properties are also unique and represent a useful description of the behavior of the structure point by point, and mode by mode.
+
+
+
+The other quantities which are sometimes referred to as unique properties of each mode are the **generalized mass** and **generalized stiffness**.
+The generalized mass (or stiffness) of the \\(r^{\text{th}}\\) mode is defined as the effective mass (or stiffness) at the DOF with the largest amplitude of response.
+This quantity serves to provide a comparison of the **relative strength of each mode of the structure**.
+
+
+
+
+#### Repeated Roots or Multiple Modes {#repeated-roots-or-multiple-modes}
+
+There are situations where two (or more) different modes will have the **same natural frequency**.
+This occurs frequently in structures which exhibit a degree of **symmetry** (especially axi-symmetry).
+In these cases, there is no guarantee that the corresponding eigenvectors are orthogonal.
+However, linear combinations of these vectors can always be found such that orthogonality is observed between the mode shapes.
+It should be noted, that free vibration at that frequency is possible not only in each of the two vectors thus defined, but also in a deformation pattern which is given by **any linear combination** of these two vectors.
+
+
+#### Force Response Solution - The FRF Characteristics {#force-response-solution-the-frf-characteristics}
+
+Let's consider the case where the structure is excited sinusoidally by a set of forces all at the same frequency \\(\omega\\), but with individual amplitudes and phases: \\(\\{f(t)\\} = \\{F\\} e^{i\omega t}\\).
+
+Assuming solutions of the form \\(\\{x(t)\\} = \\{X\\} e^{i \omega t}\\), equation of motion then becomes
+\\[ \left( [K] - \omega^2 [M] \right) \\{X\\}e^{i\omega t} = \\{F\\}e^{i\omega t} \\]
+That can be written in the following form:
+\\[ \\{X\\} = \left( [K] - \omega^2 [M] \right)^{-1} \\{F\\} \\]
+
+
+
+We define the \\(N \times N\\) **receptance FRF matrix** as
+\\[ [\alpha(\omega)] = \left( [K] - \omega^2 [M] \right)^{-1} \\]
+
+It constitutes the **Response Model** of the system.
+
+The general element in the receptance FRF matrix \\(\alpha\_{jk}(\omega)\\) is defined as follows
+\\[ \alpha\_{jk}(\omega) = \frac{X\_j}{F\_k}, \quad F\_m = 0, m = 1 \dots N \neq k \\]
+
+
+
+It is possible to determine values for the elements of \\([\alpha(\omega)]\\) at any frequency of interest by computing the inverse system matrix \\([K] - \omega^2[M]\\) at each frequency.
+This has several disadvantages:
+
+- it becomes costly for large-order systems
+- it is inefficient if only a few of the individual FRF are required
+- it provides no insight into the form of the various FRF properties
+
+An alternative means of deriving the FRF parameters is used which makes use of the **modal properties instead of the spatial properties**.
+\\[ [K] - \omega^2 [M] = [\alpha(\omega)]^{-1} \\]
+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] \\]
+which leads to \ref{eq:receptance\_modal}.
+
+
+
+Receptance FRF matrix - Modal Properties;
+
+\begin{equation}
+ [\alpha(\omega)] = [\Phi] \left[ \bar{\omega}\_r^2 - \omega^2 \right]^{-1} [\Phi]^T \label{eq:receptance\_modal}
+\end{equation}
+
+Equation \ref{eq:receptance\_modal} permits us to compute any individual FRF parameters \\(\alpha\_{jk}(\omega)\\) using the following formula
+
+\begin{align}
+ \alpha\_{jk}(\omega) &= \sum\_{r=1}^N \frac{\phi\_{jr} \phi\_{kr}}{\bar{\omega}\_r^2 - \omega^2}\\\\
+ &= \sum\_{r=1}^N \frac{\psi\_{jr} \psi\_{kr}}{m\_r (\bar{\omega}\_r^2 - \omega^2)}\\\\
+ &= \sum\_{r=1}^N \frac{{}\_rA\_{jk}}{\bar{\omega}\_r^2 - \omega^2}
+\end{align}
+
+where \\({}\_rA\_{jk}\\) is called the **modal constant**.
+
+
+
+
+
+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**.
+
+This principle of reciprocity applies to many structural characteristics.
+
+Its implications in this situation are that
+
+\begin{equation}
+ \alpha\_{jk} = X\_j/F\_k = \alpha\_{kj} = X\_k/F\_j \label{eq:principle\_reciprocity}
+\end{equation}
+
+
+
+
+### MDOF Systems with Proportional Damping {#mdof-systems-with-proportional-damping}
+
+
+#### General Concept and Features of Proportional Damping {#general-concept-and-features-of-proportional-damping}
+
+The modes of a structure with proportional damping are almost identical to those of the undamped version of the model.
+Specifically, the **mode shapes are identical** and the **natural frequencies are very similar**.
+
+The equations of motion for an MDOF system with viscous damping is
+
+\begin{equation}
+ [M]\\{\ddot{x}\\} + [C]\\{\dot{x}\\} + [K]\\{x\\} = \\{f\\}
+\end{equation}
+
+Let's first study the special case where the damping matrix is directly **proportional to the stiffness matrix**:
+\\[ [C] = \beta [K] \\]
+In this case, we have that
+\\[ [\Psi]^T [C] [\Psi] = \beta [k\_r] = [c\_r] \\]
+where the diagonal elements \\(c\_{jj}\\) represent the **modal damping** of the various modes of the system.
+The fact that this matrix is also diagonal means that the **undamped system mode shapes are also those of the damped system**, and this is a particular feature of this type of damping.
+
+For the forced response analysis, we obtain
+\\[ [\alpha(\omega)] = [ K + i \omega C - \omega^2 M ]^{-1} \\]
+or
+
+\begin{equation}
+ \alpha\_{jk}(\omega) = \sum\_{r=1}^N \frac{\psi\_{jr}\psi\_{kr}}{(k\_r - \omega^2 m\_r) + i \omega c\_r}
+\end{equation}
+
+
+#### General Forms of Proportional Damping {#general-forms-of-proportional-damping}
+
+If the damping matrix is proportional to the mass matrix, exactly the same type of result is obtained.
+A usual definition of proportional damping is that the damping matrix \\([C]\\) should be of the form
+
+\begin{equation} \label{eq:rayleigh\_damping}
+ \tcmbox{[C] = \beta [K] + \gamma [M]}
+\end{equation}
+
+In this case, the damped system will have eigenvalues and eigenvectors as follows
+
+\begin{align\*}
+ &\omega\_r^\prime = \bar{\omega}\_r \sqrt{1 - \xi\_r^2} ; \quad \xi\_r = \frac{\beta \bar{\omega}\_r}{2} + \frac{\gamma}{2 \bar{\omega}\_r}\\\\
+ &[\Psi\_\text{damped}] = [\Psi\_\text{undamped}]
+\end{align\*}
+
+Distributions of damping of this type are sometimes, tough not always, found to be plausible from a practical standpoint.
+The actual damping mechanisms are usually to be found in parallel with stiffness elements (for **internal material of hysteresis damping**) or with mass elements (for **friction damping**).
+
+Identical treatment can be made of an MDOF system with proportional **hysteretic damping**.
+If the general system equations of motion are expressed as
+\\[ [M]\\{\ddot{x}\\} + [K + iD]\\{x\\} = \\{f\\} \\]
+and the hysteretic damping matrix \\([D]\\) has the form
+
+\begin{equation}
+ [D] = \beta [K] + \gamma [M]
+\end{equation}
+
+then, we find that the mode shapes for the damped system are again identical to those of the undamped system and that the eigenvalues take the complex form:
+\\[ \lambda\_r^2 = \bar{\omega}\_r^2 (1 + i \eta\_r); \quad \bar{\omega}\_r^2 = \frac{k\_r}{m\_r}; \quad \eta\_r = \beta + \frac{\gamma}{\bar{\omega}\_r^2} \\]
+and the general FRF is written as
+
+\begin{equation}
+ \alpha\_{jk}(\omega) = \sum\_{r=1}^N \frac{\psi\_{jr}\psi\_{kr}}{(k\_r - \omega^2 m\_r) + i \eta\_r k\_r}
+\end{equation}
+
+
+### MDOF Systems with Structural (Hysteretic) Damping {#mdof-systems-with-structural--hysteretic--damping}
+
+
+#### Free Vibration Solution - Complex Modal Properties {#free-vibration-solution-complex-modal-properties}
+
+We start by writing the general equation of motion for an MDOF system with hysteretic damping and harmonic excitation:
+\\[ [M] \\{\ddot{x}\\} + [K]\\{x\\} +i[D]\\{x\\} = \\{F\\}e^{i\omega t} \\]
+
+We consider first the case where there is no excitation and assume a solution of the form
+\\[ \\{x\\} = \\{X\\} e^{i \lambda t} \\]
+where \\(\lambda\\) is complex.
+
+We then obtain **complex** eigenvalues and eigenvectors.
+
+We choose to write the \\(r^\text{th}\\) eigenvalue as
+\\[ \lambda\_r^2 = \omega\_r^2(1 + i \eta\_r) \\]
+where \\(\omega\_r\\) is the **natural frequency** and \\(\eta\_r\\) is the **damping loss factor** for that mode.
+The natural frequency \\(\omega\_r\\) is not necessarily equal to the natural frequency of the undamped system \\(\bar{\omega}\_r\\) although they are very close in practice.
+
+The eigensolution can be seen to possess the same type of **orthogonality properties** as those demonstrated earlier for the undamped system:
+\\[ [\Psi]^T[M][\Psi] = [m\_r] ; \quad [\Psi]^T[K + iD][\Psi] = [k\_r] \\]
+
+The modal mass and stiffness parameters are now complex but still obey the relationship
+\\[ \lambda\_r^2 = \frac{k\_r}{m\_r} \\]
+and we define the mass-normalized eigenvectors
+\\[ \\{\phi\\}\_r = \frac{1}{\sqrt{m\_r}} \\{\psi\\}\_r \\]
+
+
+#### Forced Response Solution - FRF Characteristics {#forced-response-solution-frf-characteristics}
+
+For the forced vibration analysis in the case of harmonic excitation and response, we obtain
+
+\begin{equation} \label{eq:force\_response\_eom}
+ \\{X\\} = \left( [K] + i[D] - \omega^2[M] \right)^{-1} \\{F\\}
+\end{equation}
+
+By multiplying both sides of the equation by the eigenvectors, we can write
+
+\begin{equation} \label{eq:force\_response\_eom\_solution}
+ [\alpha(\omega)] = [\Phi] [\lambda\_r^2 - \omega^2]^{-1} [\Phi]^T
+\end{equation}
+
+From this full matrix equation, we have:
+
+\begin{align\*}
+ \alpha\_{jk}(\omega) &= \sum\_{r=1}^N \frac{\phi\_{jr} \phi\_{kr}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2}\\\\
+ &= \sum\_{r=1}^N \frac{\psi\_{jr} \psi\_{kr}}{m\_r\left(\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2\right)}\\\\
+ &= \sum\_{r=1}^N \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2}\\\\
+\end{align\*}
+
+
+#### Excitation by a general Force Vector {#excitation-by-a-general-force-vector}
+
+
+##### Operating deflection shape (ODS) {#operating-deflection-shape--ods}
+
+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}.
+However, a more explicit form of the solution is
+
+\begin{equation} \label{eq:ods}
+ \\{X\\} = \sum\_{r=1}^N \frac{\\{\phi\\}\_r^T \\{F\\} \\{\phi\\}\_r}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2}
+\end{equation}
+
+This equation permits the calculation of one or more individual **responses to an excitation of several simultaneous harmonic forces** (all of which must have the same frequency but may vary in magnitude and phase).
+The resulting vector of responses is sometimes referred to as **force vibration mode**, or more commonly, as an **Operating Deflection Shape** (**ODS**).
+
+
+##### Pure mode excitation 1 - Damped system normal modes {#pure-mode-excitation-1-damped-system-normal-modes}
+
+It is possible to choose the vector of individual forces such that the response of the structure is entirely controlled by a **single normal mode** of the structure.
+
+
+
+The **normal modes** are the characteristic modes of the structure in its actual (damped) state.
+While it is possible to talk of the modes "that the structure would have if the damping could be removed", these are not the "normal" modes of the structures.
+The properties of the normal modes of the undamped system are of interest because in most cases of test-analysis comparison, the analytical model will be undamped and so there is a desired to be able to extract the test structures "undamped" modes from the test data in order to do a direct comparison between prediction and measurement.
+
+
+
+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.
+This can be attained if \\(\\{F\\}\\) is chosen such that
+\\[ \\{\phi\_r\\}^T \\{F\\}\_s = 0, \ r \neq s \\]
+
+
+##### Pure mode excitation 2 - Associated undamped system normal modes {#pure-mode-excitation-2-associated-undamped-system-normal-modes}
+
+We here consider an excitation vector of **mono-phased forces**.
+We basically impose that all forces have the same frequency and phase.
+What is of interest in this case it to see that there exist conditions under which it is possible to obtain a **similarly mono-phase response**.
+
+Let the force and response vectors be represented by
+
+\begin{align\*}
+ \\{f\\} &= \\{\hat{F}\\} e^{i\omega t} \\\\
+ \\{x\\} &= \\{\hat{X}\\} e^{i(\omega t - \theta)}
+\end{align\*}
+
+where both \\(\\{\hat{F}\\}\\) and \\(\\{\hat{X}\\}\\) are vectors of real quantities.
+Substituting these into the equation of motion leads to a complex equation which can be split into real and imaginary parts to give
+
+\begin{align\*}
+ \left( (-\omega^2 [M] + [K]) \cos \theta + [D] \sin \theta \right) \\{\hat{X}\\} &= \\{\hat{F}\\} \\\\
+ \left( (-\omega^2 [M] + [K]) \sin \theta - [D] \cos \theta \right) \\{\hat{X}\\} &= \\{0\\}
+\end{align\*}
+
+We can show that if we consider that the phase lag between all the forces and all the responses is exactly \\(\SI{90}{\degree}\\), the equation reduces to
+\\[ (-\omega^2 [M] + [K])\\{\hat{X}\\} = 0 \\]
+which is clearly the equation to be solved to find the undamped system natural frequencies and the mode shapes.
+
+Thus we have the important results that it is always possible to find a set of mono-phased forces which will cause a mono-phased set of responses and, moreover, if these two sets are separated by exactly \\(\SI{90}{\degree}\\), then the frequency at which the system is vibrating is identical to one of its **undamped natural frequencies** and the displacement shape is the corresponding **undamped mode shape**.
+
+This most important result is the basic for many of the multi-shaker test procedures used to isolate the undamped modes of the structures for comparison with theoretical predictions.
+The physics of the technique are quite simple: the force vector is chosen so that it exactly balances all the damping forces.
+
+
+##### Postscript {#postscript}
+
+It is often observed that the analysis for hysteretic damping is less than rigorous when applied to the free vibration situation, as we have done above.
+However, it is an admissible model of damping for describing harmonic forced vibration and this is the objective of most of our studies.
+Moreover, it is always possible to express each of the receptance expression either as a ratio of two polynomials or as a series of simple terms.
+Each of the terms in the series may be identified with one of the modes we have defined in the earlier free vibration analysis for the system.
+Thus, whether or not the solution is strictly valid for a free vibration analysis, we can usefully and confidently consider each of the uncoupled terms or modes as being a genuine characteristic of the system.
+As will be seen in the next section, the analysis required for the general case of viscous damping, which is more rigorous, is considerably more complicated than that used here which is, in effect, a very simple extension of the undamped case.
+
+
+### MDOF systems with Viscous Damping {#mdof-systems-with-viscous-damping}
+
+
+#### Free vibration solution - Complex modal properties {#free-vibration-solution-complex-modal-properties}
+
+The general equation of motion for an MDOF system with viscous damping is
+
+\begin{equation}
+ [M] \\{\ddot{x}\\} + [C]\\{\dot{x}\\} + [K]\\{x\\} = \\{f\\}
+\end{equation}
+
+We first consider the case with no excitation, and consider solutions of the form
+\\[ \\{x\\} = \\{X\\} e^{st} \\]
+
+Substituting this into the equation of motion gives
+\\[ \left( s^2 [M] + s[C] + [K] \right) \\{X\\} = \\{0\\} \\]
+
+There are now \\(2N\\) eigenvalues \\(s\_r\\) (as opposed to \\(N\\) values of \\(\lambda\_r^2\\) before) but these now occur in **complex conjugate pairs**.
+The eigenvectors also occur as **complex conjugates**.
+The eigensolution can thus be described as
+\\[ s\_r, s\_r^\*, \quad \\{\psi\\}\_r, \\{\psi\\}\_r^\*;\quad r = 1, N \\]
+
+Each eigenvalue \\(s\_r\\) is expressed in the form
+\\[ s\_r = \omega\_r \left( -\xi\_r + i\sqrt{1 - \xi\_r^2} \right) \\]
+where \\(\omega\_r\\) is the **natural frequency** and \\(\xi\_r\\) is the **critical damping ratio** for that mode.
+
+**Orthogonality equations** can also be derived:
+
+\begin{align} \label{eq:viscous\_damping\_orthogonality}
+ (s\_r + s\_q) \\{\psi\\}\_q^T [M] \\{\psi\\}\_r + \\{\psi\\}\_q^T [C] \\{\psi\\}\_r &= 0 \\\\
+ s\_r s\_q \\{\psi\\}\_q^T [M] \\{\psi\\}\_r - \\{\psi\\}\_q^T [K] \\{\psi\\}\_r &= 0
+\end{align}
+
+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^\* \\]
+
+From equations \ref{eq:viscous\_damping\_orthogonality}, we can obtain
+
+\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} \\\\
+ \omega\_r^2 &= \frac{\\{\psi\\}\_r^H [K] \\{\psi\\}\_r}{\\{\psi\\}\_r^H [M] \\{\psi\\}\_r} = \frac{k\_r}{m\_r}
+\end{align}
+
+
+#### Forced response solution {#forced-response-solution}
+
+Assuming a harmonic response \\(\\{x(t)\\} = \\{X\\} e^{i\omega t}\\), we can write the forced response solution directly as
+\\[ \\{X\\} = \big( [K] - \omega^2 [M] + i\omega [C] \big)^{-1} \\{F\\} \\]
+but this expression is not particularly convenient for numerical applications.
+
+We then seek a similar series expansion that was found for the undamped, proportionally-damped and hysteretically damped systems.
+
+The obtain result is
+\\[ \alpha\_{jk}(\omega) = \sum\_{r=1}^N \frac{({}\_rR\_{jk}) + i (\omega/\omega\_r)({}\_rS\_{jk})}{\omega\_r^2 - \omega^2 + 2 i \omega \omega\_r \xi\_r} \\]
+where the coefficients \\(R\\) and \\(S\\) are obtained from:
+
+\begin{align\*}
+ \\{{}\_rR\_k\\} &= 2 \left( \xi\_r \text{Re}\\{{}\_rG\_k\\} - \text{Im}\\{{}\_rG\_k\\} \sqrt{1 - \xi\_r^2} \right)\\\\
+ \\{{}\_rS\_k\\} &= 2 \text{Re}\\{{}\_rG\_k\\}\\\\
+ \\{{}\_rG\_k\\} &= (\theta\_{kr}/a\_r) \\{\theta\\}\_r
+\end{align\*}
+
+The main difference with the result obtained with the proportional damping is in the **frequency dependence of the numerator** in case of viscous damping.
+
+
+### Complex Modes {#complex-modes}
+
+
+#### Real and Complex modes, stationary and traveling waves {#real-and-complex-modes-stationary-and-traveling-waves}
+
+We saw that we can obtain complex eigenvalues whose real part represents the decay and imaginary part the oscillatory component.
+We can also obtain **complex eigenvectors** which means that the **mode shapes are complex**.
+
+
+
+A **complex mode** is one in which each part of the structure has not only its own magnitude of vibration but also its **own phase**.
+As a result, each part of a structure which is vibrating in a complex mode will **reach its own maximum deflection at a different instant in the vibration cycle** to that of its neighbors.
+
+
+
+
+
+A **real mode** is one in which the phase angles are all identically \\(\SI{0}{\degree}\\) or \\(\SI{180}{\degree}\\) and which there has the property that all parts in the structure do reach their own maxima at the same time.
+Equally, in a real mode, all parts of the structure pass through their **zero deflection position at the same instant** so that there are two moments in each vibration cycle when the structure is completely un-deformed.
+
+
+
+While the real mode has the appearance of a **standing wave**, the complex mode is better described as exhibiting **traveling waves** (illustrated on [Figure 6](#figure--fig:real-complex-modes)).
+
+
+
+{{< figure src="/ox-hugo/ewins00_real_complex_modes.png" caption="Figure 6: Real and complex mode shapes displays" >}}
+
+Another method of displaying **modal complexity** is by plotting the elements of the eigenvector on an **Argand diagram**, such as the ones shown in [Table 7](#table--fig:argand-diagram).
+Note that the almost-real mode shape does not necessarily have vector elements with near \\(\SI{0}{\degree}\\) or near \\(\SI{180}{\degree}\\) phase, what matters are the **relative phases** between the different elements.
+
+
+
+
+|  |  |  |
+|-----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
+| Almost-real mode | Complex Mode | Measure of complexity |
+| width=\linewidth | width=\linewidth | width=\linewidth |
+
+
+#### Measurement of modal complexity {#measurement-of-modal-complexity}
+
+There exist few indicators of the modal complexity.
+The first one, a simple and crude one, called **MCF1** consists of summing all the phase differences between every combination of two eigenvector elements:
+\\[ \text{MCF1} = \sum\_{j=1}^N \sum\_{k=1 \neq j}^N (\theta\_{rj} - \theta\_{rk}) \\]
+
+The second measure is shown on [ 7](#org-target--fig-argand-diagram-c) where a polygon is drawn around the extremities of the individual vectors.
+The obtained area of this polygon is then compared with the area of the circle which is based on the length of the largest vector element. The resulting ratio is used as an indication of the complexity of the mode, and is defined as **MCF2**.
+
+
+#### Origins of complex modes {#origins-of-complex-modes}
+
+Complex modes occur in practice for variety of **physical reasons** as well as **poor measurement or analysis**:
+
+- The types of modes which are referred to as **operating deflection shapes** will frequently exhibit the relative phases differences between responses of adjacent parts of the structure which indicate a complex mode.
+- Complex normal modes can exist even in simple structures which contain rotating components that are prone to gyroscopic forces.
+- However, normal modes of non-rotating linear structures can be complex only if the **damping is distributed in a non-proportional way**.
+ This situation can arise quite readily in practice because while the internal (hysteresis) damping of most structural elements is distributed in a way which is essentially proportional to the stiffness distribution, the **majority of the damping** in real structures is generally found to be **concentrated at the joints** between components of a structural assembly and this does not usually result in a proportional distribution.
+- Another ingredient is found to be necessary to generate significant complexity in a structure's mode and that is the requirement that **two or mode of its modes are close**.
+ Close modes are those whose natural frequencies are separated by an amount which is less than the prevailing damping in either or both modes.
+
+
+### Characteristics of MDOF FRF data {#characteristics-of-mdof-frf-data}
+
+
+#### A note about natural frequencies {#a-note-about-natural-frequencies}
+
+The basic definition derives from the **undamped system's eigenvalues** which yield the frequencies at which **free vibration of the system can take place**.
+These undamped system natural frequencies are given by the square roots of the eigenvalues and are identified by the symbol \\(\bar{\omega}\_r\\).
+This occurs in expressions for both free and forced vibration response:
+\\[ x(t) = \sum\_{r=1}^N x\_r e^{i\bar{\omega}\_r t}; \quad \alpha(\omega) = \sum\_{r=1}^N \frac{A\_r}{\bar{\omega}\_r^2 - \omega^2} \\]
+
+For **damped systems**, two alternative characteristics frequency are defined:
+
+- \\(\omega\_r^\prime\\) for **free vibration**
+- \\(\omega\_r\\) for **forced vibration**
+
+The former constitutes the oscillatory part of the free vibration characteristic which, being **complex**, contains an exponential decay term as well:
+\\[ x(t) = \sum\_{r=1}^N x\_r e^{-a\_r t} e^{i \omega\_r^\prime t} \\]
+where \\(\omega\_r^\prime\\) may not be identical to \\(\bar{\omega}\_r\\) depending on the type and distribution of the damping.
+
+The second definition comes from the general form of the FRF expression:
+\\[ \alpha(\omega) = \sum\_{r=1}^N \frac{C\_r}{\omega\_r^2 - \omega^2 + i D\_r} \\]
+Here \\(C\_r\\) may be complex whereas \\(D\_r\\) is real.
+\\(\omega\_r\\) is in general different to both \\(\bar{\omega}\_r\\) and \\(\omega\_r^\prime\\).
+
+[Table 8](#table--tab:frf-natural-frequencies) summarizes all the different cases.
+
+
+
+ Table 8:
+ FRF Formulae and Natural Frequencies
+
+
+| **Case** | **C** | **D** | **Free** \\(\omega\_r^\prime\\) | **Forced** \\(\omega\_r\\) |
+|-------------|---------------------------------|---------------------------------|----------------------------------|----------------------------|
+| Undamped | \\(\mathbb{R}\\) | 0 | \\(\bar{\omega}\_r\\) | \\(\bar{\omega}\_r\\) |
+| Prop. Hyst. | \\(\mathbb{R}\\) | \\(\mathbb{R}\\) | \\(\bar{\omega}\_r\\) | \\(\bar{\omega}\_r\\) |
+| Prop. Visc. | \\(\mathbb{R}\\) | \\(\mathbb{R}\\) (\\(\omega\\)) | \\(\omega\_r\sqrt{1-\xi\_r^2}\\) | \\(\bar{\omega}\_r\\) |
+| Gen. Hyst. | \\(\mathbb{C}\\) | \\(\mathbb{R}\\) | \\(\omega\_r\\) | \\(\omega\_r\\) |
+| Gen. Visc. | \\(\mathbb{C}\\) (\\(\omega\\)) | \\(\mathbb{R}\\) (\\(\omega\\)) | \\(\omega\_r\sqrt{1-\xi\_r^2}\\) | \\(\omega\_r\\) |
+
+
+#### Mobility and Impedance FRF Parameters {#mobility-and-impedance-frf-parameters}
+
+As well as for SDOF systems, there are three main forms of FRF: using displacement (**receptance**), velocity (**mobility**) or acceleration (**inertance**) response.
+There exist a further three formats for FRF data, these being the **inverses** of the standard receptance, mobility and inertance: the **dynamic stiffness**, **mechanical impedance** and **apparent mass**, respectively.
+
+However, for MDOF systems it is usually **not feasible to measure the inverse properties**.
+In general, we can determine the response of a structure to an excitation using the equation
+\\[ {\dot{X}} = [Y(\omega)] \\{F\\} \\]
+Equally, we can write the inverse equation using impedance instead of mobilities:
+\\[ \\{F\\} = [Z(\omega)] \\{V\\} \\]
+
+The problem arises because the general element in the mobility matrix \\(Y\_{ik}(\omega)\\) is not simply related to its counterpart in the impedance matrix \\(Z\_{ik}(\omega)\\) as was the case for SDOF systems (\\(Y\_{ik}(\omega) = Z\_{jk}^{-1}(\omega)\\)).
+
+The reason for this is that
+\\[ Y\_{kj}(\omega) = \left( \frac{V\_k}{F\_j} \right)\_{F\_l = 0}; \quad Z\_{jk}(\omega) = \left( \frac{F\_j}{V\_k} \right)\_{V\_l = 0}; \ l \neq k \\]
+
+Thus, the measure of impedance property demands that **all DOFs expect one are grounded** which is almost impossible in practice.
+The only types of FRF which we can expect to measure directly are the mobilities.
+
+
+#### Display for Undamped System FRF data {#display-for-undamped-system-frf-data}
+
+
+##### Construction of FRF plots for 2DOF system {#construction-of-frf-plots-for-2dof-system}
+
+We can envisage the form which the total FRF curve will take as it is simply the summation of all the individual terms.
+However, the exact shape of the curve also depends on the **phase** of each term.
+Then the addition of various components is made to determine the complete receptance expression, the signs of the various terms are obviously of considerable importance.
+
+Let's consider an example with two modes.
+We write \\(\alpha\_{11}\\) the point FRF and \\(\alpha\_{21}\\) the transfer FRF:
+
+\begin{align\*}
+ \alpha\_{11}(\omega) &= \frac{0.5}{\omega\_1^2 - \omega^2} + \frac{0.5}{\omega\_2^2 - \omega^2} \\\\
+ \alpha\_{21}(\omega) &= \frac{0.5}{\omega\_1^2 - \omega^2} - \frac{0.5}{\omega\_2^2 - \omega^2}
+\end{align\*}
+
+It can be seen that the only difference between the point and transfer receptance is in the sign of the modal constant of the second mode.
+
+Consider the first point mobility ([ 9](#org-target--fig-mobility-frf-mdof-point)), between the two resonances, the two components have opposite signs so that they are substractive rather than additive, and indeed, at the point where they cross, their sum is zero.
+On a logarithmic plot, this produces the antiresonance characteristic which reflects that of the resonance.
+
+
+
+ Table 9:
+ Mobility FRF plot for undamped 2DOF system
+
+
+|  |  |
+|-----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
+| Point FRF | Transfer FRF |
+| width=\linewidth | width=\linewidth |
+
+For the plot in [ 9](#org-target--fig-mobility-frf-mdof-transfer), between the two resonances, the two components have the same sign and they add up, no antiresonance is present.
+
+
+##### FRF modulus plots for MDOF systems {#frf-modulus-plots-for-mdof-systems}
+
+The same principle may be extended to any number of DOF.
+The fundamental rule is that **if two consecutive modes have the same sign for the modal constants**, then there will be an **antiresonance** at some frequency between the natural frequency of the two modes.
+If they have apposite signs, there will not be an antiresonance.
+
+
+#### Display of FRF Data for Damped systems {#display-of-frf-data-for-damped-systems}
+
+
+##### Bode plots {#bode-plots}
+
+The resonances and antiresonances are blunted by the inclusion of damping, and the phase angles are no longer exactly \\(\SI{0}{\degree}\\) or \\(\SI{180}{\degree}\\), but the general appearance of the plot is a natural extension of that for the system without damping.
+[Figure 7](#figure--fig:frf-damped-system) shows a plot for the same mobility as appears in [ 9](#org-target--fig-mobility-frf-mdof-point) but here for a system with added damping.
+
+Most mobility plots have this general form as long as the modes are relatively well-separated.
+
+This condition is satisfied unless the separation between adjacent natural frequencies is of the same order as, or less than, the modal damping factors, in which case it becomes difficult to distinguish the individual modes.
+
+
+
+{{< figure src="/ox-hugo/ewins00_frf_damped_system.png" caption="Figure 7: Mobility plot of a damped system" >}}
+
+
+##### Nyquist diagrams {#nyquist-diagrams}
+
+Each of the frequency response of a MDOF system in the Nyquist plot is composed of a number of SDOF components.
+
+[ 10](#org-target--fig-nyquist-point) shows the result of plotting the point receptance \\(\alpha\_{11}\\) for the 2DOF system described above.
+
+The plot for the transfer receptance \\(\alpha\_{21}\\) is presented in [ 10](#org-target--fig-nyquist-transfer) where it may be seen that the opposing signs of the modal constants of the two modes have caused one of the modal circle to be in the upper half of the complex plane.
+
+
+
+ Table 10:
+ Nyquist FRF plot for proportionally-damped system
+
+
+|  |  |
+|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
+| Point receptance | Transfer receptance |
+| width=\linewidth | width=\linewidth |
+
+In the two [ 11](#org-target--fig-nyquist-nonpropdamp-point) and [ 11](#org-target--fig-nyquist-nonpropdamp-transfer), we show corresponding data for **non-proportional** damping.
+In this case, a relative phase has been introduced between the first and second elements of the eigenvectors: of \\(\SI{30}{\degree}\\) in mode 1 and of \\(\SI{150}{\degree}\\) in mode 2.
+Now we find that the individual modal circles are no longer "upright" but are **rotated by an amount dictated by the complexity of the modal constants**.
+
+
+
+ Table 11:
+ Nyquist FRF plot for non-proportionally-damped system
+
+
+|  |  |
+|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
+| Point receptance | Transfer receptance |
+| width=\linewidth | width=\linewidth |
+
+
+### Non-Sinusoidal vibration and FRF properties {#non-sinusoidal-vibration-and-frf-properties}
+
+With receptance and other FRF data, we have a means of computing the response of a MDOF system to an excitation which consists of a set of harmonic forces of different amplitudes and phases but all of the same frequency.
+In the general case we can simply write
+\\[ \\{X\\} e^{i\omega t} = [\alpha(\omega)] \\{F\\} e^{i\omega t} \\]
+
+
+#### Periodic vibration {#periodic-vibration}
+
+
+##### Periodic signals as Fourier series {#periodic-signals-as-fourier-series}
+
+Let's first consider the case of periodic vibration, in which the excitation (and thus the response) is not simply sinusoidal although it has a property of periodicity.
+
+The easiest way of computing the responses in such a case is by mean of the **Fourier Series**.
+
+The basic principle of Fourier analysis is that any periodic function can be represented by a series of sinudoids of suitable frequencies, amplitudes and phases based on the fundamental period \\(T\\):
+
+\begin{equation}
+ \tcmbox{f\_0(t) = \sum\_{n=1}^\infty {}\_0F\_n e^{i\omega\_n t}; \quad \omega\_n = \frac{2 \pi n}{T}}
+\end{equation}
+
+Once a frequency decomposition of the forcing function has been obtained, we may use the corresponding FRF data, computed at the specific frequencies present in the forcing spectrum, in order to compute the corresponding frequency components of the responses of interest:
+
+\begin{equation}
+ \tcmbox{x\_j(t) = \sum\_{n=1}^\infty \alpha\_{j0}(\omega\_n) {}\_0F\_ne^{i\omega\_n t}; \quad \omega\_n = \frac{2 \pi n}{T}}
+\end{equation}
+
+
+##### To derive FRF from periodic vibration signals {#to-derive-frf-from-periodic-vibration-signals}
+
+It is possible to determine a system's FRF properties from excitation and response measurements when the vibration is periodic.
+To do this, it is necessary to determine the **Fourier Series** components of **both the input force** signal and of the relevant **output response** signal.
+Both these series will contain components at the same set of discrete frequencies; these being integer multiples of \\(2\pi/T\\).
+
+One these two series are available, the FRF can be defined at the same set of frequency points by computing the **ratio of the response component to the input component**.
+
+
+#### Transient vibration {#transient-vibration}
+
+
+##### 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}.
+
+\begin{equation} \label{eq:fourier\_transform}
+ F(\omega) = \frac{1}{2 \pi} \int\_{-\infty}^\infty f(t) e^{i\omega t} dt
+\end{equation}
+
+Now, at any frequency \\(\omega\\), the corresponding Fourier Transform of the response \\(X(\omega)\\) can be determined from
+
+\begin{equation}
+ \tcmbox{X(\omega) = H(\omega) F(\omega)}
+\end{equation}
+
+where \\(H(\omega)\\) represents the appropriate version of the FRF for the particular input and output parameters considered.
+
+We may then derive an expression for the response itself \\(x(t)\\) from the **Inverse Fourier Transform** of \\(X(\omega)\\)
+
+\begin{equation}
+ \tcmbox{x(t) = \int\_{-\infty}^\infty \left(H(\omega) F(\omega)\right)e^{i\omega t}d\omega}
+\end{equation}
+
+
+##### Response via time domain {#response-via-time-domain}
+
+This alternative analysis is referred to as **convolution** and is based on the ability to compute the response of a system to a simple unit impulse.
+
+Let consider a unit impulse excitation applied at \\(t = t^\prime\\) with infinite magnitude and that lasts for an infinitesimal period of time although the **area underneath it is equal to unity**.
+The response of a system to such an excitation at \\(t>t^\prime\\) is defined as the system's unit **Impulse Response Function** (**IRF**) and has a direct relationship to the Frequency Response Function.
+
+The IRF is written has
+\\[ h(t - t^\prime) \\]
+
+If we now consider a more general transient excitation, we see that it is possible to represent this as the **superposition of several impulses**, each of magnitude \\(f(t^\prime)dt^\prime\\) and occurring at different instants in time.
+The response of a system at time \\(t\\) to just one of these incremental impulses at time \\(t^\prime\\) is
+\\[ \delta x (t) = h(t - t^\prime) f(t^\prime) dt^\prime \\]
+and the total response of the system will be given by superimposing or integrating all the incremental responses as follows
+\\[ x(t) = \int\_{-\infty}^\infty h(t-t^\prime) f(t^\prime) dt^\prime; \quad h(t-t^\prime) = 0, \ t \leq t^\prime \\]
+
+There is a very close relationship between \\(H(\omega)\\) and \\(h(t - t^\prime)\\).
+Let's use the Fourier Transform approach to compute the response of a system to a unit impulse.
+Thus, let \\(f(t) = \delta(0)\\) and determine its Fourier Transform \\(F(\omega)\\):
+\\[ F(\omega) = \frac{1}{2 \pi} \int\_{-\infty}^\infty \delta(0) e^{i\omega t} dt = \frac{1}{2\pi} \\]
+Then
+\\[ x(t) = \frac{1}{2\pi} \int\_{-\infty}^{\infty} H(\omega) e^{i\omega t} d\omega \triangleq h(t) \\]
+
+Thus, we find that the **Impulse and Frequency Response Functions constitute a Fourier Transform pair**.
+
+
+##### To derive FRF from transient vibration signals {#to-derive-frf-from-transient-vibration-signals}
+
+In order to obtain the structure's FRF properties using a transient vibration test, the calculation of the Fourier transforms of both the excitation and the response signals is required.
+Then, the ratio of these two function can be computed
+
+\begin{equation}
+ H(\omega) = \frac{X(\omega)}{F(\omega)}
+\end{equation}
+
+This can be done provided that the time period of the measurement both excitation and response signals are effectively zero at the start and the end of the sample.
+
+
+#### Random vibration {#random-vibration}
+
+
+##### Random signals in time and frequency domains {#random-signals-in-time-and-frequency-domains}
+
+We here consider both excitation and response described by random processes.
+Neither excitation nor response signals can be subjected to a valid Fourier Transform calculation as they violate the Dirichlet condition.
+
+It is necessary to introduce the **Correlation Function** and the **Spectral Densities**.
+
+
+
+The **Autocorrelation Function** \\(R\_{ff}(\tau)\\) of a random vibration parameter \\(f(t)\\), is defined as the expected value of the product \\(f(t) f(t + \tau)\\) computed along the time axis.
+This will always be a **real and even function of time**, and is written
+
+\begin{equation}
+ R\_{ff}(\tau) = E[f(t) f(t + \tau)] \label{eq:autocorrelation}
+\end{equation}
+
+
+
+This correlation function, unlike the original quantity \\(f(t)\\) does satisfy the requirements for Fourier transformation and thus we can obtain its Fourier Transform by the usual equation.
+
+The resulting parameter we shall call a **Spectral Density**, in this case the **Auto** or **Power Spectral Density** (PSD) \\(S\_{ff}(\omega)\\).
+
+
+
+The Spectral Density is a real and even function of frequency, and does in fact provides a description of the frequency composition of the original function \\(f(t)\\).
+It has units of \\(f^2/\omega\\).
+
+Examples of random signals, autocorrelation function and power spectral density are shown on [Table 12](#table--fig:random-signals).
+
+
+
+
+|  |  |  |
+|--------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
+| Time history | Autocorrelation Function | Power Spectral Density |
+| width=\linewidth | width=\linewidth | width=\linewidth |
+
+A similar concept can be applied to a pair of functions such as \\(f(t)\\) and \\(x(t)\\) to produce **cross correlation** and **cross spectral density** functions.
+
+
+
+The **cross correlation function** \\(R\_{xf}(\tau)\\) between functions \\(f(t)\\) and \\(x(t)\\) is defined as
+
+\begin{equation}
+ R\_{xf}(\tau) = E[x(t) f(t + \tau)] \label{eq:crosscorelation}
+\end{equation}
+
+
+
+
+
+The **Cross Spectral Density** (CSD) is defined as the Fourier Transform of the Cross Correlation function:
+
+\begin{equation}
+ S\_{xf}(\omega) = \frac{1}{2\pi} \int\_{-\infty}^\infty R\_{xf}(\tau) e^{-i \omega \tau} d\tau \label{eq:cross\_spectral\_density}
+\end{equation}
+
+
+
+Cross correlation functions are real, but not always even, functions of time, and cross spectral densities, unlike auto spectral densities, are generally complex functions of frequency with the particular **conjugate property** that
+\\[ S\_{xf}(\omega) = S\_{fx}^\*(\omega) \\]
+
+The analysis to obtain the input/output relationships for systems undergoing random vibrations is based on the general excitation/response relationship in the time domain:
+\\[ x(t) = \int\_{-\infty}^\infty h(t - t^\prime) f(t^\prime) dt^\prime \\]
+
+Using this property, it is possible to derive an expression for $x(t) and for \\(x(t - \tau)\\) and thus to calculate the response autocorrelation \\(R\_{xx}(\tau)\\)
+\\[ R\_{xx}(\tau) = E[x(t) x(t + \tau)] \\]
+
+This equation can be manipulated to describe the response autocorrelation in terms of the corresponding property of the excitation \\(R\_{ff}\\), but the result is complicated.
+However, the same equation can be transform to the frequency domain
+
+\begin{equation} \label{eq:psd\_input\_output}
+ \tcmbox{ S\_{xx}(\omega) = \left| H(\omega) \right|^2 S\_{ff}(\omega) }
+\end{equation}
+
+Although very convenient, equation \ref{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.
+
+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}.
+
+
+
+
+##### 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.
+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}.
+
+
+
+The existence of two equations presents an opportunity to **check the quality** of calculations made using measured data.
+
+
+##### Instrumental variable model for FRF {#instrumental-variable-model-for-frf}
+
+There are difficulties to implement some of the above formulae in practice because of noise and other limitations concerned with the data acquisition and processing.
+
+One technique involves **three quantities**, rather than two, in the definition of the output/input ratio.
+The system considered can best be described with reference to [Table 13](#table--fig:frf-determination) which shows first in [ 13](#org-target--fig-frf-siso-model) the traditional single-input single-output model upon which the previous formulae are based.
+Then in [ 13](#org-target--fig-frf-feedback-model) is given a more detailed and representative model of the system which is used in a modal test.
+
+
+
+
+|  |  |
+|---------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
+| Basic SISO model | SISO model with feedback |
+| width=\linewidth | width=\linewidth |
+
+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}.
+
+
+
+\begin{equation} \label{eq:H3}
+ H(\omega) = \frac{S\_{x^\prime v}(\omega)}{S\_{f^\prime v(\omega)}} = H\_3(\omega)
+\end{equation}
+
+where \\(v\\) is a third signal in the system.
+
+
+
+
+##### Derivation of FRF from MIMO data {#derivation-of-frf-from-mimo-data}
+
+A diagram for the general n-input case is shown in [Figure 8](#figure--fig:frf-mimo).
+
+We obtain two alternative formulas:
+
+\begin{align}
+ \left[ H\_{xf}(\omega) \right]\_{n \times n} &= \left[ S\_{x^\prime v}(\omega) \right]\_{n \times n} \left[ S\_{f^\prime v}(\omega) \right]\_{n \times n}^{-1} \\\\
+ \left[ H\_{xf}(\omega) \right]\_{n \times n} &= \left[ S\_{f^\prime f^\prime}(\omega) \right]\_{n \times n}^{-1} \left[ S\_{x^\prime f^\prime}(\omega) \right]\_{n \times n}
+\end{align}
+
+In practical application of both of these formulae, care must be taken to ensure the non-singularity of the spectral density matrix which is to be inverted, and it is in this respect that the former version may be found to be more reliable.
+
+
+
+{{< figure src="/ox-hugo/ewins00_frf_mimo.png" caption="Figure 8: System for FRF determination via MIMO model" >}}
+
+
+### Complete and Incomplete models {#complete-and-incomplete-models}
+
+
+#### Some definitions {#some-definitions}
+
+Most of the preceding theory has been concerned with complete models; that is, the analysis has been presented for an \\(N\\) degree-of-freedom system with the implicit assumption that all the mass, stiffness and damping properties are known and that all the elements in the eigenmatrices and the FRF matrix are available.
+While this is a valid approach for a theoretical study, it is less generally applicable for experimentally-based investigations where it is **not usually possible to measure all the DOFs**, or to examine all the modes possessed by a structure.
+Because of this limitation, it is necessary to extend our analysis to examine the **implications of having access to something less than a complete set of data**, or model, and this leads us to the concept of a **reduced** or **incomplete** type of model.
+
+
+
+There are **different types of incomplete models**:
+
+1. There is the model which is reduced in size (from \\(N\\) to \\(n\\)) by simply **deleting information about certain degrees-of-freedom**.
+ This process leads to a reduced model which retains **full accuracy for the DOFs which are retained**, but which **looses access to those which have been deleted**.
+ The process can be **applied only to the modal and response models** and results in a modal model described by an \\(N\times N\\) eigenvalue matrix but by an eigenvector matrix which is only \\(n\times N\\).
+ The corresponding response model is an incomplete FRF matrix of size \\(n \times n\\), although all the elements of that reduced matrix are themselves fully accurate.
+2. Another type of reduced model is one in which the **number of modes is reduced as well** (from \\(N\\) to \\(m\\)), so that the eigenvalue matrix is only \\(m \times m\\) in size.
+ A consequence of this is that the elements in the reduced \\(n \times n\\) FRF matrix in this case are only **approximate**.
+3. Another type of model reduction can be achieved by **condensation** from \\(N\\) to \\(n\\) DOFs.
+ This is a process in which a number of DOFs are again eliminated from the complete description but an attempt is made to include the effects of the masses and stiffnesses which are thereby eliminated in the retained DOFs.
+ This is the **condensation process** which is applied in the **Guyan** and other **reduction techniques** used to contain the size of otherwise very large finite element models.
+ In such a condensed model, the spatial, modal and response models are all reduced to \\(n \times n\\) matrices, and it must be noted that the properties of each are approximate in every respect.
+
+
+
+
+#### Incomplete Response models {#incomplete-response-models}
+
+There are two ways in which a model can be incomplete: by the **omission of some modes**, and/or by the **omission of some degrees-of-freedom**.
+
+
+##### Omission of some DOFs {#omission-of-some-dofs}
+
+Consider first the complete FRF matrix which is \\(N \times N\\):
+\\[ \left[ H(\omega) \right]\_{N \times N} \\]
+and then suppose that we decide to limit our description of the system to **include certain DOFs only**.
+Our reduced response model is now
+\\[ \left[ H^R(\omega) \right]\_{n \times n} \\]
+
+Now it is clear that we have not altered the basic system, and it still has the same number of degrees-of-freedom even though we have **foregone our ability to describe the system's behavior at all of them**.
+In this case, the elements which remain in the reduced FRF matrix are **identical** to the corresponding elements in the full \\(N \times N\\) matrix.
+
+At this point, it is appropriate to mention the consequences of this type of reduction on the impedance type of FRF data.
+The impedance matrix which corresponds to the reduced model defined by \\([H^R]\\) will be denoted as \\([Z^R]\\) and it is clear that
+\\[ [Z^R(\omega)] = [H^R(\omega)]^{-1} \\]
+
+It is also clear that the elements in the reduced impedance matrix such as \\(Z\_{jk}^R\\) are **not** the same quantities as the corresponding elements in the full impedance matrix, and indeed, a completely different impedance matrix applied to each specific reduction:
+\\[ H\_{ij}^R(\omega) = H\_{ij}(\omega); \quad Z\_{ij}(\omega) \neq Z\_{ij}(\omega) \\]
+
+We can also consider the implications of this form of reduction on the other types of model, namely the modal model and the spatial model.
+For the **modal model**, elimination of the data pertaining to some of the DOFs results in a smaller eigenvector matrix, which then becomes rectangular of order \\(n \times N\\).
+The corresponding eigenvalue matrix is still \\(N \times N\\) because we still have all \\(N\\) modes included.
+
+For the **spatial model**, it is more difficult to effect a reduction of this type.
+It is clearly not realistic simply to remove the rows and columns corresponding to eliminated DOFs from the mass and stiffness matrices as this would represent a drastic change to the system.
+It is possible, however, to reduce these spatial matrices by a number of methods which have the effect of redistributing the mass and stiffness properties which relate to the redundant DOFs among those which are retained.
+In this way, the total mass of the structure, and its correct-stiffness properties can be largely retained.
+The **Guyan reduction procedure** is perhaps the best known of this type.
+Such reduced spatial properties will be denoted as
+\\[ \left[M^R\right], \ \left[K^R\right] \\]
+
+
+##### Omission of some modes {#omission-of-some-modes}
+
+Let's consider the other form of reduction in which only \\(m\\) of the \\(N\\) modes of the system are included.
+Frequently, this is a necessary approach in that **many of the high-frequency modes will be of little interest** and almost certainly very difficult to measure.
+Consider first the FRF matrix and include initially **all** the DOFs but suppose that each element in the matrix is computed using only \\(m\\) of the \\(N\\) terms in the summation
+\\[ \tilde{H}\_{jk}(\omega) = \sum\_{r=1}^{m\leq N} \frac{{{}\_rA\_{jk}}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} \\]
+In full, we can write the FRF matrix as
+\\[ \left[\tilde{H}(\omega)\right]\_{N\times N} = \left[\Phi\right]\_{N \times m} \left[\lambda\_r^2 - \omega^2\right]\_{m \times m}^{-1} \left[\Phi\right]\_{m \times N}^T \\]
+
+
+##### Combination of both reduction {#combination-of-both-reduction}
+
+Of course, both types of reduction can be combined, the resulting matrix obtained would be
+\\[ \left[ \hat{H}^R(\omega) \right]\_{n \times n} \\]
+However, \\([\hat{H}^R(\omega)]\\) will in general be rank deficient, and thus is will not be possible to obtain the impedance matrix by numerical inversion.
+In order to overcome this problem, it is often convenient to add a constant or **residual term** to each FRF:
+\\[ [H(\omega)] = [\hat{H}(\omega)] + [R] \\]
+
+
+#### Incomplete modal and spatial models {#incomplete-modal-and-spatial-models}
+
+It has been shown that the **orthogonality properties** of the modal model provide a direct **link between the modal and the spatial model**:
+\\[ [\Phi]^T [M] [\Phi] = [I]; \quad [\Phi]^T [K] [\Phi] = [\omega\_r^2] \\]
+Which can be inverted to yield
+
+\begin{equation} \label{eq:spatial\_model\_from\_modal}
+ \begin{aligned}
+ [M] &= [\Phi]^{-T}[\Phi]^{-1}\\\\
+ [K] &= [\Phi]^{-T}[\omega\_r^2][\Phi]^{-1}
+ \end{aligned}
+\end{equation}
+
+If the modal model is incomplete, then we can note the implications for the orthogonality properties.
+
+First, if we have a **modal incompleteness** (\\(m
+
+The **sensitivity** of a model describe the rates of change of some of the key properties, such as the natural frequencies and mode shapes, with small changes in some of the modal parameters, such as individual masses of stiffnesses.
+
+
+
+The model sensitivities are required for various purposes:
+
+- they help to locate errors in models
+- the are useful in guiding design optimization procedures
+- they are used in the course of curve-fitting for the purposes of testing the **reliability** of the modal analysis processes
+
+
+#### Modal sensitivities {#modal-sensitivities}
+
+The most commonly used sensitivities are those which describe the **rates of change of the modal parameters with the individual mass and stiffness elements in the spatial model**.
+These quantities are defined as follows:
+\\[ \frac{\partial \omega\_r}{\partial p} \text{ and } \frac{\partial \\{\phi\\}\_r}{\partial p} \\]
+where \\(p\\) represents any variable of interest
+
+
+##### SDOF system {#sdof-system}
+
+It is useful to approach the general expressions for these parameters via a simple example based on an undamped SDOF system.
+We can introduce the concept of sensitivity through the basic SDOF system comprising mass \\(m\\) and spring \\(k\\).
+We can define the basic sensitivities of the system's natural frequency \\(\omega\_0\\):
+\\[ \frac{\partial \omega\_0}{\partial m} \text{ and } \frac{\partial \omega\_0}{\partial k} \\]
+
+We can show that:
+\\[ \frac{\partial \omega\_0^2}{\partial m} = \frac{-\sqrt{k}}{m^2} ; \quad \frac{\partial \omega\_0}{\partial k} = \frac{1}{2 \sqrt{km}} \\]
+
+
+##### MDOF systems - eigenvalue sensitivity {#mdof-systems-eigenvalue-sensitivity}
+
+We can differentiate the following equation of motion of a MDOF system with respect to an arbitrary variable \\(p\\) that might be an individual mass \\(m\_i\\) of stiffness \\(k\_j\\).
+\\[ \left( [K] - \omega\_r^2 [M] \right) \\{\phi\\}\_r = \\{0\\} \\]
+
+We then obtain
+\\[ \frac{\partial \omega\_r^2}{\partial p} = \\{\phi\\}\_r^T \left( \frac{\partial [K]}{\partial p} - \omega\_r^2 \frac{\partial [M]}{\partial p} \right) \\{\phi\\}\_r \\]
+
+
+##### MDOF systems - eigenvector sensitivity {#mdof-systems-eigenvector-sensitivity}
+
+A similar analysis can be made for the eigenvector sensitivity terms.
+
+
+#### FRF sensitivities {#frf-sensitivities}
+
+It may be seen it is also possible to derive **FRF sensitivities**.
+
+If we consider first the simple SDOF system with a receptance FRF \\(\alpha(\omega)\\)
+\\[ \alpha(\omega) = \frac{1}{k + i \omega c - \omega^2 m} \\]
+We can differentiate this with respect to \\(m\\) and \\(k\\).
+
+The same can be done with the more general case for \\(MDOF\\) system as follows:
+\\[ \frac{\partial [\alpha(\omega)]}{\partial p} = [\alpha(\omega)] \left( \frac{\partial [K]}{\partial p} + i \omega \frac{\partial [C]}{\partial p} - \omega^2\frac{\partial [M]}{\partial p} \right) [\alpha(\omega)] \\]
+
+
+#### Modal sensitivities from FRF data {#modal-sensitivities-from-frf-data}
+
+There exists the possibility of deriving certain sensitivity parameters directly from FRF data such as can be measured in a modal test.
+Essentially, it is possible to derive expressions for the **eigenvalue sensitivities to selected individual mass and stiffness parameters** by analyzing the point FRF properties at the selected DOFs.
+
+
+## FRF Measurement Techniques {#frf-measurement-techniques}
+
+
+### Introduction and Test Planning {#introduction-and-test-planning}
+
+
+#### Introduction {#introduction}
+
+There are **two types of vibration measurement**:
+
+- those in which just the response level is measured
+- those in which both input and response output parameters are measured
+
+Recalling the basic relationship:
+\\[ \tcmbox{ \text{response} = \text{properties} \times \text{input} } \\]
+
+We can see that **only** when two of the three terms in this equation have been measured, we can defined completely what is going on in the vibration of the test object.
+If we measure only the response, then we are unable to say whether a particularly large response level is due to a strong excitation or to a resonance of the structure.
+
+For the second type of vibration measurement, both the excitation and the response are measured **simultaneously** so that basic equation can be used to deduce the system properties.
+
+Our interest will first be on the **mobility measurements** or **FRF measurements** where the **excitation is applied at a single point**.
+In that case, FRF data are directly obtained by "dividing" the measured responses by the measured excitation force.
+
+Responses obtained using **several simultaneous excitations** yield **Operation Deflection Shapes** (ODSs) from which it is necessary to extract the required FRF data by sometimes complicated analysis procedures.
+These are referred to as **MIMO tests**.
+
+
+#### Test Planning {#test-planning}
+
+It is clear that there will need to be an extensive test planning phase before full-scale measurements are made an decisions taken concerning the methods of excitation, signal processing and data analysis, as well as the proper selection of which data to measure, where to excite the structure and how to prepare and support it for those measurements.
+
+
+#### Checking the quality of the measured data {#checking-the-quality-of-the-measured-data}
+
+
+##### Signal Quality {#signal-quality}
+
+It is sometimes found that the dynamic range of the measured quantities is extreme, especially when the frequency range being covered is wide.
+What often happens is that there is a very large component of signal in one frequency range that dictates the gain settings on amplifiers and analysers such that lower-level components are difficult to measure accurately.
+
+
+##### Signal fidelity {#signal-fidelity}
+
+This arise when the signals obtained do not truly represent the quantity which is to be measured.
+For example, large motion perpendicular to the measurement axis can contaminate the measurement and gives misleading indications.
+
+One should verify that the labeling and the connection of transducers are correct.
+This can be check by looking at the pattern of resonances visible on the FRF curves:
+
+- for excitation and response at the same DOF, resonances and anti-resonances must alternate
+- excitation and response points which are well separated on the test structure will tend to possess fewer anti-resonances
+
+
+##### Measurement repeatability {#measurement-repeatability}
+
+One essential check for any modal test is the repeatability of the measurements.
+Certain FRF should be re-measured from time to time, just to check that neither the structure nor the measurement system have experienced any significant changes.
+
+
+##### Measurement reliability {#measurement-reliability}
+
+We here seek to establish that the measured data are independent of the measuring system.
+One should measure the same quantity (usually an FRF) with a slightly different setup, or procedure such as a different excitation signal.
+These checks are very important to demonstrate the underlying validity of the measurement method being used.
+
+
+##### Measured data consistency, including reciprocity {#measured-data-consistency-including-reciprocity}
+
+The various FRF data measured on a given structure should exhibit consistency, by which is meant that the underlying natural frequencies, damping factors and mode shapes visible in the FRF data must all derive from a common modal model.
+
+The reciprocity expected to exist between FRFs such as \\(H\_{jk}\\) and \\(H\_{kj}\\) should be checked and found to be at an acceptable level.
+
+
+### Basic Measurement System {#basic-measurement-system}
+
+The experimental setup used for mobility measurement contains three major items:
+
+1. **An excitation mechanism**. This contains a source for the excitation signal (sinusoidal, periodic, random, transient), a power amplifier and a exciter (usually a shaker or an hammer)
+2. **A transduction system**. For the most part, piezoelectric transducer are used, although lasers and strain gauges are convenient because of their minimal interference with the test object. Conditioning amplifiers are used depending of the transducer used
+3. **An analyzer**
+
+A typical layout for the measurement system is shown on [Figure 9](#figure--fig:general-frf-measurement-setup).
+
+
+
+{{< figure src="/ox-hugo/ewins00_general_frf_measurement_setup.png" caption="Figure 9: General layout of FRF measurement system" >}}
+
+
+### Structure preparation {#structure-preparation}
+
+
+##### Free supports {#free-supports}
+
+By "free" is meant that the test object is not attached to ground at any of its coordinates and is, in effect, freely suspended in space.
+In this condition, the structure will exhibit rigid body modes which are determined solely by its mass and inertia properties and in which there is no bending or flexing at all.
+Six rigid body modes are then obtained with a natural frequency of \\(\SI{0}{Hz}\\).
+Mass and inertial properties can then be measured with such a support.
+
+However, in practice it is not feasible to provide a truly free support.
+Approximate to the free condition can be achieved by supporting the testpiece on very soft springs such that the frequency of the rigid body mode are less than \\(\SI{10}{\\%}\\) of that of the lowest resonance frequency.
+
+
+##### Grounded supports {#grounded-supports}
+
+The other type of support is referred to as "grounded" because it attempts to fix selected points on the structure to ground.
+In practice, it is very difficult to attach the test structure to a base structure which is sufficiently rigid to provide the necessary grounding.
+
+The safest procedure is to measure the mobility FRF of the base structure itself over the frequency range for the test and to establish that this is a much lower mobility than the corresponding levels for the test structure at the point of attachment.
+If this condition is satisfied for all the coordinates to be grounded, then the base structure can reasonably be assumed to be grounded.
+
+
+##### Loaded boundaries {#loaded-boundaries}
+
+A compromise procedure can be applied in which the test object is connected at certain coordinates to another simple component of known mobility, such as a specific mass.
+The effects of the added component is then removed analytically.
+
+
+### Excitation of the structure {#excitation-of-the-structure}
+
+Devices for exciting the structure can be divided into two type:
+
+- **Contacting**: these involves the connection of an exciter of some form which remains attached to the structure throughout the test.
+- **Non-contacting**: devices which are either out of contact throughout the vibration (such as provided by a voice coil) or which are only in contact for a short period (such as a hammer)
+
+Exciters are often limited at very low frequencies by the stroke rather than by the force generated.
+
+
+#### Electromagnetic Exciters {#electromagnetic-exciters}
+
+The most common type of exciter is the electromagnetic shaker in which a magnetic force is applied is applied on the structure without any physical contact.
+
+The frequency and amplitude of the excitation are controlled independently of each other, which gives flexibility.
+
+However, we need a direct measurement of the force applied to the structure (we cannot rely on the current going through the coil).
+
+The shakers are usually stiff in the orthogonal directions to the excitation.
+This can modify the response of the system in those directions.
+In order to avoid that, a drive rod which is stiff in one direction and flexible in the other five directions is attached between the shaker and the structure as shown on [Figure 10](#figure--fig:shaker-rod).
+Typical size for the rod are \\(5\\) to \\(\SI{10}{mm}\\) long and \\(\SI{1}{mm}\\) in diameter, if the rod is longer, it may introduce the effect of its own resonances.
+
+
+
+{{< figure src="/ox-hugo/ewins00_shaker_rod.png" caption="Figure 10: Exciter attachment and drive rod assembly" >}}
+
+The support of shaker is also of primary importance.
+
+The setup shown on [ 14](#org-target--fig-shaker-mount-1) presents the most satisfactory arrangement in which the shaker is fixed to ground while the test structure is supported by a soft spring.
+
+[ 14](#org-target--fig-shaker-mount-2) shows an alternative configuration in which the shaker itself is supported.
+It may be necessary to add an additional inertia mass to the shaker in order to generate sufficient excitation forces at low frequencies.
+
+[ 14](#org-target--fig-shaker-mount-3) shows an unsatisfactory setup. Indeed, the response measured at \\(A\\) would not be due solely to force applied at \\(B\\), but would also be caused by the forces applied at \\(C\\).
+
+
+
+ Table 14:
+ Various mounting arrangement of exciter
+
+
+|  |  |  |
+|------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
+| Ideal Configuration | Suspended Configuration | Unsatisfactory |
+| width=\linewidth | width=\linewidth | width=\linewidth |
+
+
+#### Hammer or Impactor Excitation {#hammer-or-impactor-excitation}
+
+Although this type of test places greater demands on the analysis phase of the measurement process, it is a relatively simple means of exciting the structure.
+
+A set of different **tips** and **heads** are used to extend the frequency and force level ranges for testing a variety of different structure.
+A **load cell** (or force transducer) which detects the magnitude of the force felt by the impactor is included.
+
+The magnitude of the impact is determined by the mass of the hammer head and its velocity when it hits the structure.
+
+The frequency range which is effectively excited is controlled by the stiffness of the contacting surface and the mass of the impactor head: there is a resonance at a frequency given by \\(\sqrt{\frac{\text{contact stiffness}}{\text{impactor mass}}}\\) above which it is difficult to deliver energy into the test structure.
+
+When the hammer tip impacts the test structure, this will experience a force pulse as shown on [Figure 11](#figure--fig:hammer-impulse).
+A pulse of this type (half-sine shape) has a frequency content of the form illustrated on [Figure 11](#figure--fig:hammer-impulse).
+
+
+
+{{< figure src="/ox-hugo/ewins00_hammer_impulse.png" caption="Figure 11: Typical impact force pulse and spectrum" >}}
+
+The stiffer the materials, the shorter will be the duration of the pulse and the higher will be the frequency range covered by the impact.
+Similarly, the lighter the impactor mass, the higher the effective frequency range.
+
+Generally, as soft a tip as possible will be used in order to inject all the input energy into the frequency range of interest: using a stiffer tip than necessary will result in energy being input to vibrations outside the range of interest at the expense of those inside of that range.
+
+One of the difficulties of applying excitation using a hammer is ensuring that **each impact is essentially the same** as the previous ones, not much in magnitude as in **position** and **orientation** relative to the normal of the surface.
+
+
+### Transducers and Amplifiers {#transducers-and-amplifiers}
+
+The piezoelectric type of transducer is by far the most popular and widely used transducer in modal tests.
+
+Three types of piezoelectric transducers are available for mobility measurements:
+
+- **Force gauges**
+- **Accelerometers**
+- **Impedance heads**: simply a combination of force and acceleration sensitive elements in a single unit
+
+The basic principle of operation makes use of the fact that an element of piezoelectric material generates an electric charge across its end faces when subjected to a mechanical stress.
+By suitable design, such a material may be incorporated into a device which **induces** in it a **stress proportional to the physical quantity to be measured**.
+
+
+#### Force Transducers {#force-transducers}
+
+The force transducer is the simplest type of piezoelectric transducer.
+The transmitter force \\(F\\) is applied directly across the crystal, which thus generates a corresponding charge \\(q\\), proportional to \\(F\\) ([Figure 12](#figure--fig:piezo-force-transducer)).
+
+
+
+{{< figure src="/ox-hugo/ewins00_piezo_force_transducer.png" caption="Figure 12: Force transducer" >}}
+
+There exists an undesirable possibility of a cross sensitivity, i.e. an electrical output when there is zero force \\(F\\) but, say, a transverse or shear loading.
+
+
+#### Accelerometers {#accelerometers}
+
+In an accelerometer, transduction is indirect and is achieved using a seismic mass ([Figure 13](#figure--fig:piezo-accelerometer)).
+In this configuration, the force exerted on the crystals is the inertia force of the seismic mass (\\(m\ddot{z}\\)).
+Thus, so long as the body and the seismic mass move together, the output of the transducer will be proportional to the acceleration of its body \\(x\\).
+
+
+
+{{< figure src="/ox-hugo/ewins00_piezo_accelerometer.png" caption="Figure 13: Compression-type of piezoelectric accelerometer" >}}
+
+Analysis of a simple dynamical model for this device shows that the ratio \\(\ddot{x}/\ddot{z}\\) is effectively unity over a wide range of frequency from zero upwards until the first resonant frequency of the transducer.
+
+There is also a problem of cross or transverse sensitivity of accelerometers which can result from imperfections in the crystal geometry and from interaction through the casing.
+
+
+#### Selection of accelerometers {#selection-of-accelerometers}
+
+Accelerometer sensitivities vary between \\(1\\) and \\(\SI{10000}{pC/g}\\).
+In general, we require as high a sensitivity as possible, however, the heavier the transducer, the lower is the transducer's resonant frequency and thus the maximum working frequency.
+For accurate measurements, especially on complex structures which are liable to vibrate simultaneously in several directions, transducers with low transverse sensitivity (less than \\(\SI{1}{\\%}\\)) should be selected.
+
+
+#### Conditioning Amplifiers {#conditioning-amplifiers}
+
+One of the advantages of the piezoelectric transducer is that it is an active device and does not require a power supply in order to function.
+However, this means that it cannot measure truly static quantities and so there is a **low frequency limit** below which measurements are not practical.
+This limit is usually determined not simply by the properties of the transducer itself, but also by those of the amplifiers used to boost the small electric charge that is generated by the crystals.
+
+Two types of amplifier are available for this role that both have very high input impedance:
+
+- **Voltage amplifiers**
+- **Charge amplifiers**
+
+Voltage amplifiers tend to be simpler and to have a better signal/noise characteristic than charge amplifiers.
+However, they cannot be used at such low frequencies as the charge amplifiers and the overall gain is affected by the length and properties of the transducer cable whereas that for a charge amplifier it is effectively independent of the cable.
+
+
+#### Attachment of transducers {#attachment-of-transducers}
+
+The correct installation of transducers, especially accelerometers is important.
+
+There are various means of fixing the transducers to the surface of the test structure, some more convenient than others.
+Some of these methods are illustrated in [ 15](#org-target--fig-transducer-mounting-types).
+
+Shown on [ 15](#org-target--fig-transducer-mounting-response) are typical high frequency limits for each type of attachment.
+
+
+
+
+|  |  |
+|----------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|
+| Attachment methods | Frequency response characteristics |
+| width=\linewidth | width=\linewidth |
+
+
+#### Location of transducers {#location-of-transducers}
+
+Another problem which may require the removal of the transducer to another location is the possibility that it is **positioned at or very close to a node** of one or more of the structure's modes.
+In that case, it will be very difficult to make an effective measurement of that particular mode.
+
+Most modal test require a **point mobility measurement** as one of the measured FRF.
+This is hard to achieve as both force and response transducer should be at the same point on the structure.
+Three possibilities exist:
+
+1. Use an **impedance head**
+2. Place the force and acceleration transducers **in line** but on opposite sides of the structure
+3. Place the accelerometer **alongside**, as close as possible as the force gauge
+
+The third option is the most practical but is the one that presents the problem.
+Particular care is required to ensure that the measurement is really representative of a point mobility: the accelerometer should be as close as possible as the force gauge.
+
+
+### Digital Signal Processing {#digital-signal-processing}
+
+
+#### Objective {#objective}
+
+The task of the spectrum analyser is to **estimate the Fourier transform** or **Spectral densities** of signals.
+
+We here relate the two most relevant versions of the fundamental Fourier transformation between the time and frequency domains.
+
+In its simplest form, this states that a function \\(x(t)\\), periodic in time \\(T\\), can be written as an infinite series:
+
+\begin{equation}
+ x(t) = \frac{a\_0}{2} + \sum\_{n=1}^\infty \left( a\_n \cos\frac{2 \pi n t}{T} + b\_n \sin\frac{2 \pi n t}{T} \right)
+\end{equation}
+
+where \\(a\_i\\) and \\(b\_i\\) can be computed from knowledge of \\(x(t)\\) via the relationships:
+
+\begin{equation}
+ \begin{aligned}
+ a\_n &= \frac{2}{T} \int\_0^T x(t) \cos \left(\frac{2 \pi n t }{T} \right) \\\\
+ b\_n &= \frac{2}{T} \int\_0^T x(t) \sin \left(\frac{2 \pi n t }{T} \right)
+ \end{aligned}
+\end{equation}
+
+In the situation where \\(x(t)\\) is discretised and of finite duration, so that it is defined only at a set of \\(N\\) particular values of time (\\(t\_k; k = 1, \dots, N\\)), we can write a finite Fourier series for \\(k = 1, \dots, N\\):
+
+\begin{align\*}
+ x\_k &= x(t\_k) \\\\
+ &= \frac{a\_0}{2} + \sum\_{n=1}^{N/2} \left( a\_n \cos\left(\frac{2 \pi n t\_k}{T}\right) + b\_n \sin\left(\frac{2 \pi n t\_k}{T}\right) \right)
+\end{align\*}
+
+The coefficients \\(a\_i\\) and \\(b\_i\\) are the Fourier or Spectral coefficients for the function \\(x(t)\\) and they are often displayed in **modulus and phase form**:
+
+\begin{equation}
+ \begin{aligned}
+ x\_n &= \sqrt{a\_n^2 + b\_n^2} \\\\
+ \phi\_n &= t g^{-1} \left( \frac{-b\_n}{a\_n} \right)
+ \end{aligned}
+\end{equation}
+
+
+#### Basics of the DFT {#basics-of-the-dft}
+
+In each case, the input signal is digitized and recorded as a set of \\(N\\) discrete values, evenly spaced in the period \\(T\\) during which the measurement is made.
+
+There is a basic relationship between the sample length \\(T\\), the number of discrete values \\(N\\), the sampling rate \\(\omega\_s\\) and the range and resolution of the frequency spectrum.
+
+The range of the spectrum is \\([0, \omega\_\text{max}]\\) (\\(\omega\_\text{max}\\) is called the Nyquist frequency), and the resolution of lines in the spectrum is \\(\Delta\_\omega\\):
+
+\begin{equation}
+ \begin{aligned}
+ \omega\_{\text{max}} &= \frac{\omega\_s}{2} = \frac{1}{2} \left( \frac{2\pi N}{T} \right) \\\\
+ \Delta\_\omega &= \frac{\omega\_s}{N} = \frac{2\pi}{T}
+ \end{aligned}
+\end{equation}
+
+Various algorithms can be used to determine the spectral composition of the sampled signal, however, the most widely used is the **Fast Fourier Transform**.
+That however requires \\(N\\) to be an integral power of \\(2\\).
+
+
+#### Aliasing {#aliasing}
+
+Aliasing originates from the discretisation of the originally continuous time history.
+With this discretisation process, the **existence of very high frequencies in the original signal may well be misinterpreted if the sampling rate is too slow**.
+These high frequencies will be **indistinguishable** from genuine low frequency components as shown on [Figure 14](#figure--fig:aliasing).
+
+
+
+{{< figure src="/ox-hugo/ewins00_aliasing.png" caption="Figure 14: The phenomenon of aliasing. On top: Low-frequency signal, On the bottom: High frequency signal" >}}
+
+A signal of frequency \\(\omega\\) and one of frequency \\(\omega\_s-\omega\\) are indistinguishable and this causes a **distortion of the spectrum** measured via the DFT.
+
+As a result, the part of the signal which has frequency components above \\(\omega\_s/2\\) will appear reflected or **aliased** in the range \\([0, \omega\_s/2]\\).
+This is illustrated on [Table 16](#table--fig:effect-aliasing).
+
+
+
+ Table 16:
+ Alias distortion of spectrum by DFT
+
+
+|  |  |
+|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
+| True spectrum of signal | Indicated spectrum from DFT |
+| width=\linewidth | width=\linewidth |
+
+The solution of the problem is to use an **anti-aliasing filter** which subjects the original time signal to a low-pass, sharp cut-off filter.
+Because the filters used are inevitably less than perfect, and have a finite cut-off rate, it remains necessary to reject the spectral measurement in a frequency range approaching the Nyquist frequency \\(\omega\_s/2\\).
+Typically, the cut-off rate is set to \\(0.5 \times \omega\_s/2\\) for simple filters and \\(0.8 \times \omega\_s/2\\) for more advance filters.
+As a results, frequencies near \\(\omega\_s/2\\) may still be contaminated by the imperfected anti-aliasing.
+
+
+#### Leakage {#leakage}
+
+Leakage is a problem which is a direct **consequence of the need to take only a finite length of time history coupled with the assumption of periodicity**.
+
+
+
+ Table 17:
+ Sample length and leakage of spectrum
+
+
+|  |  |
+|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
+| Ideal signal | Awkward signal |
+| width=\linewidth | width=\linewidth |
+
+The problem is illustrated on [Table 17](#table--fig:leakage).
+In the first case ([ 17](#org-target--fig-leakage-ok)), the signal is perfectly periodic and the resulting spectrum is just a single line at the frequency of the sine wave.
+In the second case ([ 17](#org-target--fig-leakage-nok)), the periodicity assumption is not strictly valid as there is a discontinuity at each end of the sample.
+As a result, the spectrum produced for this case does not indicate the single frequency which the original time signal possessed.
+Energy has "leaked" into a number of the spectral lines close to the true frequency and the spectrum is spread over several lines.
+
+Leakage is a serious problem in many applications, **ways of avoiding its effects** are:
+
+- Changing the duration of the measurement sample length to **match the periodicity of the signal**.
+ This can only work if the signal is periodic and if the period can be determined
+- **Increasing the duration of the measurement** period \\(T\\) so that the separation between the spectral lines (the frequency resolution) is finer.
+ Although this will not totally remove the leakage effect
+- **Adding zeroes to the end of the measured sample** ("zero padding"), thereby partially achieving the preceding result but without requiring more data
+- Modifying the sampled signal obtained in such a way as to reduce the severity of the leakage effect. This effect is referred to as **windowing**
+
+
+#### Windowing {#windowing}
+
+Windowing involves the imposition of a prescribed profile on the time signal prior to performing the Fourier transform.
+
+The profiles, or "windows" are generally depicted as a time function \\(w(t)\\) as shown in [Figure 15](#figure--fig:windowing-examples).
+
+
+
+{{< figure src="/ox-hugo/ewins00_windowing_examples.png" caption="Figure 15: Different types of window. (a) Boxcar, (b) Hanning, (c) Cosine-taper, (d) Exponential" >}}
+
+The analyzed signal is then \\(x^\prime(t) = x(t) w(t)\\).
+The result of using a window is seen in the third column of [Figure 15](#figure--fig:windowing-examples).
+
+The **Hanning and Cosine Taper windows are typically used for continuous signals**, such as are produced by steady periodic or random vibration, while the **Exponential window is used for transient vibration** applications where much of the important information is concentrated in the initial part of the time record.
+
+In all cases, a **re-scaling** is required to compensated for the attenuation of the signals by the application of the window.
+However, **if both response and excitation signals are subjected to the same window**, and the results are used only to compute an FRF ratio, then the **re-scaling is not necessary**.
+
+
+#### Filtering {#filtering}
+
+The process of filtering has a direct parallel with windowing.
+Common filters are: low-pass, high-pass, band-limited, narrow-band, notch.
+
+
+#### Improving Resolution {#improving-resolution}
+
+
+
+
+##### Increasing transform size {#increasing-transform-size}
+
+An immediate solution to this problem would be to use a larger transform.
+However, this may not be possible in practice.
+
+
+##### Zero padding {#zero-padding}
+
+It may be possible to achieve the same resolution increase by adding a series of zeros to the short sample of the actual signal.
+Care must be taken in such a procedure are it will smooth the resulting spectrum but no additional information is included.
+This can be misleading in some cases.
+For instance where two peaks are close and result in only one peak in the smooth data.
+
+
+##### Zoom {#zoom}
+
+The common solution to the need for finer frequency resolution is to zoom on the frequency range of interest and to concentrate all the spectral lines into a narrow band between \\(\omega\_\text{min}\\) and \\(\omega\_\text{max}\\).
+
+There are various ways of achieving this result.
+The easiest way is to use a frequency shifting process coupled with a controlled aliasing device.
+
+Suppose the signal to be analyzed \\(x(t)\\) has a spectrum \\(X(\omega)\\) has shown on [ 18](#org-target--fig-zoom-range), and that we are interested in a detailed analysis between \\(\omega\_1\\) and \\(\omega\_2\\).
+
+If we apply a band-pass filter to the signal, as shown on [ 18](#org-target--fig-zoom-bandpass), and perform a DFT between \\(0\\) and \\((\omega\_2 - \omega\_1)\\), then because of the aliasing phenomenon described earlier, the frequency components between \\(\omega\_1\\) and \\(\omega\_2\\) will appear between \\(0\\) and \\((\omega\_2 - \omega\_1)\\) with the advantage of a finer resolution (see [Figure 16](#figure--fig:zoom-result)).
+
+
+
+ Table 18:
+ Controlled aliasing for frequency zoom
+
+
+|  |  |
+|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
+| Spectrum of the signal | Band-pass filter |
+| width=\linewidth | width=\linewidth |
+
+
+
+{{< figure src="/ox-hugo/ewins00_zoom_result.png" caption="Figure 16: Effective frequency translation for zoom" >}}
+
+When using zoom the measure FRF in a narrow frequency range, it is important to ensure that there is as little vibration energy as possible outside the frequency range of interest.
+
+
+#### Averaging {#averaging}
+
+When analyzing **random** vibrations signals, it is not sufficient to compute Fourier transforms (strictly, they do not exist for a random process) and we must instead obtain estimates for the **spectral densities and correlation functions** which are used to characterize this type of signal.
+
+Although these properties are computed from the Fourier transforms, there are additional considerations concerning their accuracy and statistical reliability which must be given due attention.
+
+Generally, it is necessary to perform an averaging process, involving several individual time records, or samples, before a result is obtained which can be used with confidence.
+The two major considerations which determine the **number of average required** are:
+
+- the statistical reliability
+- the removal of spurious random noise from the signals
+
+An indication of the requirements from a statistical standpoint may be provided by the "**statistical degrees of freedom**" \\(\kappa\\) which is provided by
+
+\begin{equation}
+ \kappa = 2 B T\_t
+\end{equation}
+
+where \\(B\\) is the frequency bandwidth and \\(T\_t\\) is the total time encompassing all data.
+\\(T\_t = mT\\) for \\(m\\) samples each of \\(T\\) duration.
+
+As a guide, this quantity \\(\kappa\\) should be a minimum of \\(10\\) and should approach \\(100\\) for reasonably reliable estimates.
+
+An other way to average is to apply the DFT on overlapping data.
+This is called **overlap averaging**.
+It is clear that \\(100\\) averages performed in this way cannot have the same statistical properties as would \\(100\\) completely independent samples.
+Nevertheless, the procedure is more effective than if all the data points are only used once.
+This manifests by producing smoother spectra.
+
+
+### Use of different excitation signals {#use-of-different-excitation-signals}
+
+There are three different classes of signals used for the excitation signals:
+
+- **Periodic**: stepped sine, slow sine sweep, periodic, pseudo random, periodic random
+- **Transient**: burst sine, burst random, chirp, impulse
+- **Random**: true random, white noise, narrow-band random
+
+All of these are in widespread use, each having its own particular merits and drawbacks.
+
+
+#### Stepped-Sine testing {#stepped-sine-testing}
+
+Stepped-sine testing comes from the classical method of measuring the FRF where a discrete sinusoidal with a fixed amplitude and frequency is used.
+
+In order to encompass a frequency range of interest, the command signal frequency is stepped from one discrete value to another in such a way as to provide the necessary density of points in the FRF plot.
+In this technique, it is necessary to ensure that **steady-state** conditions have been attained before the measurements are made and this means delaying the start of the measurement process for a short while after a new frequency has been selected as there will be a transient response.
+The extent of the unwanted transient response will depend on:
+
+- the proximity of the excitation frequency to the natural frequency of the structure
+- the abruptness of the changeover from the previous command signal to the new one
+- the lightness of the damping of the nearby structural modes
+
+In practice, this is only in the vicinity of a lightly damped resonance that the necessary delay becomes significant and extra attention is needed.
+
+One of the advantages is the facility of taking measurements where it is required.
+For instance, the typical FRF curve has large region of relatively slow changes of level with frequency (away from resonances and anti-resonances) and in these regions it is sufficient to take measurements at relatively widely spaced frequency points.
+
+
+#### Slow Sine Sweep testing {#slow-sine-sweep-testing}
+
+This is the traditional method of FRF measurement and involves the use of a sweep oscillator to provide a sinusoidal command signal with a frequency that varies slowly in the range of interest.
+It is necessary to check that progress through the frequency range is sufficiently slow to check that steady-state response conditions are attained.
+If excessive sweep rate is used, then distortions of the FRF plot are introduced as shown on [Figure 17](#figure--fig:sweep-distortions).
+
+
+
+{{< figure src="/ox-hugo/ewins00_sweep_distortions.png" caption="Figure 17: FRF measurements by sine sweep test" >}}
+
+One way of checking the suitability of a sweep rate is to make the measurement twice, once sweeping up and the second time sweeping down through the frequency range.
+If both curves obtained are the same, the sweep rate is not excessive.
+
+
+#### Periodic Excitation {#periodic-excitation}
+
+This is very similar to a sine wave test methods, however the input signal contains not one but many frequencies of interest.
+
+The method of computing the FRF is quite simple: the discrete Fourier transform is computed for both the force and response signals and the **ratio of these transforms gives the FRF**.
+
+Two types of periodic signals are used:
+
+- **Deterministic**: all the components are mixed with ordered amplitude and phase relationships (e.g. a square wave)
+- **Pseudo-random**: generation of a random mixture of amplitudes and phases for the various frequency components
+
+The sequence is generated for a duration which equals the period of one sample in the analysis process, and is output repeatedly for several successive cycles.
+A particular advantage of this type of excitation is its **exact periodicity** in the analyser bandwidth, resulting in **zero leakage errors** and therefore **requiring no windows** to be applied before its spectral analysis.
+
+One should not that when there is no need to use a window of any form, as it is the case for periodic signals, then it is very important not to use one.
+
+
+#### Random Excitation {#random-excitation}
+
+
+##### FRF estimates using random excitation {#frf-estimates-using-random-excitation}
+
+True random excitation are generally applied to the structure using a shaker.
+
+For a such a random excitation, a different approach is required in order to determine the FRF.
+
+The principle upon which the FRF is determined using random excitation relies on the following equations
+
+\begin{equation}
+ \begin{aligned}
+ S\_{xx}(\omega) &= |H(\omega)|^2 S\_{ff}(\omega)\\\\
+ S\_{fx}(\omega) &= H(\omega) S\_{ff}(\omega)\\\\
+ S\_{xx}(\omega) &= H(\omega) S\_{xf}(\omega)
+ \end{aligned}
+\end{equation}
+
+where
+
+- \\(S\_{xx}(\omega)\\) and \\(S\_{ff}(\omega)\\) are the **autospectra** of the response and excitation signals
+- \\(S\_{xf}(\omega)\\) is the **cross spectrum** between these two signals
+- \\(H(\omega)\\) is the FRF linking the quantities \\(x\\) and \\(f\\)
+
+Such parameters can never be measured exactly with only a finite length of data.
+However, we have the possibility of providing a **cross check** on the results by using the fact that the **FRF can be estimated using two sets of data**:
+
+\begin{equation}
+ \begin{aligned}
+ H\_1(\omega) &= \frac{S\_{fx}(\omega)}{S\_{ff}(\omega)} \\\\
+ H\_2(\omega) &= \frac{S\_{xx}(\omega)}{S\_{xf}(\omega)}
+ \end{aligned}
+\end{equation}
+
+We now introduce a quantity \\(\gamma^2\\) which is called the **coherence** and which is defined as
+\\[ \gamma^2 = \frac{H\_1(\omega)}{H\_2(\omega)}; \quad 0 \le \gamma^2 \le 1 \\]
+
+Clearly, if all is well with the measurement, the coherence should be unity and we shall be looking for this condition in our test to reassure us that the measurements have been well made.
+Small values of the coherence means that the FRF estimate obtained is unreliable and one should determine its cause.
+
+
+##### Noisy Data {#noisy-data}
+
+There are several situations in which an imperfect measurement might be made, and a low coherence recorded.
+There may well be noise on one or other of the two signals which could degrade the measured spectra:
+
+- **Near resonance**: this is likely to influence the **force signal** so that \\(S\_{ff}(\omega)\\) becomes vulnerable and \\(H\_1(\omega)\\) will suffer the most, \\(H\_2(\omega)\\) might be a better indicator in that case
+- **Near anti-resonance**: it is the **response signal** which will suffer, making \\(S\_{xx}(\omega)\\) liable to errors and this is the opposite for \\(H\_1(\omega)\\) and \\(H\_2(\omega)\\)
+
+This is shown by the following equations:
+
+\begin{equation}
+ \begin{aligned}
+ H\_1(\omega) &= \frac{S\_{fx}(\omega)}{S\_{ff}(\omega) + S\_{nn}(\omega)} \\\\
+ H\_2(\omega) &= \frac{S\_{xx}(\omega) + S\_{mm}(\omega)}{S\_{xf}(\omega)}
+ \end{aligned}
+\end{equation}
+
+where \\(S\_{mm}(\omega)\\) and \\(S\_{nn}(\omega)\\) are the autospectra of the noise on the output and input, \\(m(t)\\) and \\(n(t)\\) respectively.
+
+One suggestion which has been made is to define the FRF as the geometric mean of the two standard estimates:
+
+\begin{equation}
+ H\_v(\omega) = \sqrt{H\_1(\omega) H\_2(\omega)}
+\end{equation}
+
+Low coherence can arise when **more than one excitation is applied** to the structure.
+Another possibility is that the structure is **not completely linear**.
+Here again, the measured response cannot be completely attributed to the measured excitation.
+
+
+##### Noise-free FRF estimates {#noise-free-frf-estimates}
+
+A third estimator for the FRF can be defined in cases of random excitation, which is called the **instrumental variable estimate**, or \\(H\_3(\omega)\\).
+
+This formula for the FRF is only possible if more than the usual two channels are being measured simultaneously.
+The formula is of interest because it does provide an estimate for the FRF which is unbiased by noise on either the force or the response transducer signals.
+The formula is:
+
+\begin{equation}
+ H\_3(\omega) = \frac{S\_{xv}(\omega)}{S\_{fv}(\omega)}
+\end{equation}
+
+where \\(v(t)\\) is a third signal in the system, such as the voltage supplied to the exciter, and it exploits the fact that noise on either input (force) or output (response) channels does not contaminate cross-spectral density estimates in the way that auto spectra are affected.
+
+
+##### Leakage {#leakage}
+
+It is known that a low coherence can arise in a measurement where the frequency resolution of the analyzer is not fine enough to describe adequately the very rapidly changing functions such as are encountered near resonance and anti-resonance on lightly-damped structures.
+
+This is known as a **bias** error and leakage is often the most likely source of low coherence on lightly-damped structures as shown on [Figure 18](#figure--fig:coherence-resonance).
+
+
+
+{{< figure src="/ox-hugo/ewins00_coherence_resonance.png" caption="Figure 18: Coherence \\(\gamma^2\\) and FRF estimate \\(H\_1(\omega)\\) for a lightly damped structure" >}}
+
+It can be shown that near resonance, \\(H\_2(\omega)\\) is a much more accurate representation of the true FRF than \\(H\_1(\omega)\\).
+When this situation is encountered, the best solution is usually to make a zoom measurement as explained previously.
+
+
+##### Postscript {#postscript}
+
+It is sometimes though that a poor coherence can be eliminated by taking many averages, but this is only possible if the reason for the low coherence is **random noise** which can be averaged out over a period of time.
+If the reason if more systematic than that, the averaging will not help.
+
+Lastly, mention should be made here of a type of excitation referred to as "periodic random" which is, in fact, a combination of pseudo-random and "true" random.
+In this process, a pseudo-random (or periodic) excitation is generated and after a few cycles, a measurement of the input and the now steady-state response is made.
+Then, a different pseudo-random sequence is generated, the procedure repeated and the result treated as the second sample in what will develop to be an ensemble of random samples.
+The advantage over the simple random excitation is that due to the essential periodic nature of each of the pseudo-random samples, there are no leakage or bias errors in any of the measurements.
+However, the cost is an increase in the measurement time as one has to wait for the steady response condition.
+
+
+#### Transient excitation {#transient-excitation}
+
+There are three types of excitation to be included in this section because they all share the same principle for their signals processing.
+They are:
+
+1. **Burst** excitation: a short section of signal
+2. **Rapid sine sweep** (chirp) excitation
+3. **Impact** excitation from a hammer blow
+
+The first and second of these generally require an attached shaker, but the last one can be implemented with a hammer.
+
+The principle which all these signals share is that the excitation and the consequent response are completely contained within the single sample of measurement which is made.
+In practice, it is common to repeat the transient even more than once and to **average** the results to get the final result.
+How they differ is in the exact form of the transient excitation signal and in the nature of the repeated application.
+
+In the burst type of signal, we have an excitation which is applied and analyzed as if it were a continuous signal, taking the successive samples for averaging one immediately after the other.
+For the chirp and impulse excitations, each individual sample is collected and processed before making the next one, and averaged.
+
+
+##### Burst excitation signals {#burst-excitation-signals}
+
+Burst excitation signals consist of short sections of an underlying continuous signal (which may be a sine wave, a sine sweep or a random signal), followed by a period of zero output, resulting in a response which shows a transient build-up followed by a decay (see [Figure 19](#figure--fig:burst-excitation)).
+
+
+
+{{< figure src="/ox-hugo/ewins00_burst_excitation.png" caption="Figure 19: Example of burst excitation and response signals" >}}
+
+The duration of the burst is under the control of the operator and it is selected so as to provide the ideal signal processing conditions, which are essentially that the **response signal has just died away by the end of the measurement period**.
+If this condition has not been attained (burst too long), then leakage error will result.
+If it has been reached well before the end of the period (burst too short), then the signal quality will be poor.
+
+The final measurement will be the result of averaging several samples.
+In the case of the burst sine excitation, each sample would be expected to be identical so that the averaging serves only to remove noise on the signals.
+In the case of burst random, however, each individual burst will be different to the other and so in this case there is an element of averaging randomly varying behavior, a feature which is believed in some cases to enhance the measurement in the presence of weak non-linearities in the test structure.
+
+
+##### Chirp excitation {#chirp-excitation}
+
+The chirp consist of a short duration signal which has the form shown in [Figure 20](#figure--fig:chirp-excitation).
+
+The frequency content of the chirp can be precisely chosen by the starting and finishing frequencies of the sweep.
+
+
+
+{{< figure src="/ox-hugo/ewins00_chirp_excitation.png" caption="Figure 20: Example of chirp excitation and response signals" >}}
+
+
+##### Impulsive excitation {#impulsive-excitation}
+
+The hammer blow produces an input and response as shown in the [Figure 21](#figure--fig:impulsive-excitation).
+
+This and the chirp excitation are very similar in the analysis point of view, the main difference is that the chirp offers the possibility of greater control of both amplitude and frequency content of the input and also permits the input of a greater amount of vibration energy.
+
+
+
+{{< figure src="/ox-hugo/ewins00_impulsive_excitation.png" caption="Figure 21: Example of impulsive excitation and response signals" >}}
+
+The frequency content of the hammer blow is dictated by the **materials** involved and is rather more difficult to control.
+However, it should be recorded that in the region below the first cut-off frequency induced by the elasticity of the hammer tip structure contact, the spectrum of the force signal tends to be **very flat**.
+
+On some structures, the movement of the structure in response to the hammer blow can be such that it returns and **rebounds** on the hammer tip before the user has had time to move that out of the way.
+In such cases, the spectrum of the excitation is seen to have "holes" in it at certain frequencies ([Figure 22](#figure--fig:double-hits)).
+
+
+
+{{< figure src="/ox-hugo/ewins00_double_hits.png" caption="Figure 22: Double hits time domain and frequency content" >}}
+
+In order to perform the required Fourier analysis of all these cases of transient signals, an assumption is made that the data obtained from a single event can be regarded as representing one period of a **quasi-periodic process**.
+This means that if exactly the same input was applied \\(T\\) seconds after the first one, then exactly the same response would be observed.
+
+This can be difficult to obtain especially for lightly damped structures as the signal will take long time to die away.
+In that case, one solution is to lengthen the period \\(T\\), but often this is not easily changeable.
+A **window** applied to the raw data provides a more practical solution.
+It is recommended to apply an **exponential window** to both signals.
+By choosing an appropriate exponential decay rate, the modified signal can be made to have effectively died away by the end of the prescribed measurement period, thereby satisfying the signal processing needs.
+
+However, one should be cautious when using such windowing as complex modes can be extracted from data treated this way.
+
+An alternative to this problem is to use the **zoom** facility.
+One of the consequences of using a zoom is that the frequency band is reduced by a proportionate amount.
+However, by making a number (equal to the zoom factor) of separate measurements, each one for a different zoom band, it is possible to construct and FRF over the entire frequency range of interest with both the advantage of it being a window-free measurement and having a much finer frequency resolution.
+
+One the pseudo-periodicity is established, a discrete Fourier series description can be obtained of both the input and response signals.
+The FRF can be computed from
+\\[ H(\omega\_k) = \frac{X(\omega\_k)}{F(\omega\_k)} \\]
+
+Alternately, the force signals can be treated in the same way as for random excitation, and the formulae for \\(H\_1(\omega)\\) and \\(H\_2(\omega)\\) are used.
+However, care must be exercise when interpreting the results since the **coherence function has different significance here**.
+
+One of the parameters indicated by the coherence is the statistical reliability of an estimate based on a number of averages of a **random** process.
+In the case of an FRF estimate obtained by treating the signals from a succession of nominally identical impacts as a random process, we must note that, strictly, each such sample is a **deterministic**, and not probabilistic, calculation and should contain no statistical uncertainty.
+
+Thus, the **main source for low coherence** in this instance can only be **leakage errors**, **non-linearity** or **high noise levels**, not the same situation as for random excitation.
+
+Another feature usually employed in transient testing is that of making a whole series of repeat measurements under nominally identical conditions and then averaging FRF estimates.
+The idea behind this is that any one measurement is likely to be contaminated by noise, especially in the frequency regions away from resonance where the response levels are likely to be quite low.
+While this averaging technique does indeed enhance the resulting plots, it may well be that several tens of samples need to be acquired before a smooth FRF plot is obtained and this will diminish somewhat any advantage of speed which is a potential attraction to the method.
+
+
+### Calibration {#calibration}
+
+For all measurement processes, it is necessary to **calibrate** the equipment which is used.
+In the case of FRF measurements, there are **two levels of calibration** which should be made:
+
+- The first of these is a periodic **absolute calibration of individual transducers** (of force and response) to check that their sensitivities are sensibly the same as those specified by the manufacturer.
+ Any marked deviation could indicate internal damage
+- The second type of calibration is one which can and should be carried out during each test, preferably twice, once at the outset and again at the end.
+ This type of calibration is one which provides the **overall sensitivity of the complete instrumentation system** without examining the performance of the individual elements.
+
+The first type of calibration is quite difficult to make accurately as it requires independent measurement of the quantity of interest.
+The use of another transducer of the same type is not satisfactory as it is not strictly an independent measure.
+Optical devices can be used for the calibration of displacement sensors.
+
+One of the reasons why the absolute type of calibration has not been further developed for this particular application is the availability of a different type of calibration which is particularly attractive and convenient.
+The parameters measured in a modal analysis are usually ratios between response and force levels, and so what is required is the ability to calibrate the whole measurement system.
+The voltage measured are related to the physical quantities (force and acceleration) by the sensitivities of the respective transducers:
+
+\begin{equation}
+ \begin{aligned}
+ v\_f &= E\_f f \\\\
+ v\_{\ddot{x}} &= E\_{\ddot{x}} \ddot{x}
+ \end{aligned}
+\end{equation}
+
+As mentioned, the difficulty is to determine the individual values for \\(E\_f\\) and \\(E\_{\ddot{x}}\\).
+In practice, we only ever use the measured voltages as a **ratio** to obtain the FRF
+\\[ \frac{\ddot{x}}{f} = \frac{v\_{\ddot{x}}}{v\_f} \frac{E\_f}{E\_{\ddot{x}}} = E \frac{v\_{\ddot{x}}}{v\_f} \\]
+and so **what is required is the ratio of the two sensitivities**:
+
+\begin{equation}
+ E = \frac{E\_f}{E\_{\ddot{x}}}
+\end{equation}
+
+The overall sensitivity can be more readily obtained by a calibration process because we can easily make an independent measurement of the quantity now being measured: the ratio of response to force.
+Suppose the response parameter is acceleration, then the FRF obtained is inertance which has the units of \\(1/\text{mass}\\), a quantity which can readily be independently measured by other means.
+
+[Figure 23](#figure--fig:calibration-setup) shows a typical calibration setup.
+
+
+
+{{< figure src="/ox-hugo/ewins00_calibration_setup.png" caption="Figure 23: Mass calibration procedure, measurement setup" >}}
+
+A calibration procedure of this type has the distinct advantage that it is very easy to perform and can be carried out with all the measurement equipment.
+Thus, frequent checks on the overall calibration factors are strongly recommended, ideally as the beginning and end of each test.
+
+
+### Mass Cancellation {#mass-cancellation}
+
+It is very important the ensure that the force is measured directly at the point at which it is applied to the structure, rather than deducing its magnitude from the current flowing in the shaker coil or other similar **indirect** processes.
+This is because near resonance, the actual applied force becomes very small and is thus very prone to inaccuracy.
+
+This same argument applies on a lesser scale as we examine the detail around the attachment to the structure, as shown in [Figure 24](#figure--fig:mass-cancellation).
+
+
+
+{{< figure src="/ox-hugo/ewins00_mass_cancellation.png" caption="Figure 24: Added mass to be cancelled (crossed area)" >}}
+
+Here, we see part of the structure, an accelerometer and a force transducer.
+The dashed line shows the plane at which the force is actually measured.
+Now, assuming that the extra material (shown by the cross hatching) behaves as a rigid mass \\(m^\*\\), we can state that the force actually applied to the structure \\(f\_t\\) is different from that measured by the transducer \\(f\_m\\) by an amount dependent on the acceleration level at the drive point \\(\ddot{m}\\) according to
+
+\begin{equation}
+ f\_t = f\_m - m^\* \ddot{x}
+\end{equation}
+
+Physically, what is happening is that some of the measured force is being "used" to move the additional mass so that the force actually applied to the structure is the measured force minus the inertia force of the extra mass.
+
+Now, the frequency response quantity we actually require is \\(A\_t(\omega)\\) although we have measurements of \\(\ddot{X}\\) and \\(F\_m\\) only, yielding to \\(A\_m(\omega)\\).
+If we express it in its real and imaginary parts, we obtain:
+
+\begin{align\*}
+ \text{Re}(F\_t) &= \text{Re}(F\_m) - m^\* \text{Re}(\ddot{X}) \\\\
+ \text{Im}(F\_t) &= \text{Im}(F\_m) - m^\* \text{Im}(\ddot{X})
+\end{align\*}
+
+And
+
+\begin{align\*}
+ \text{Re}(1/A\_t) &= \text{Re}(1/A\_m) - m^\* \\\\
+ \text{Im}(1/A\_t) &= \text{Im}(1/A\_m)
+\end{align\*}
+
+Mass cancellation is important when the mass to be cancelled (\\(m^\*\\)) is of the same order as the apparent mass of the modes of the structure under test, and this latter is a quantity which varies from point to point on the structure.
+If we are near an anti-node of a particular mode, then the apparent mass (and stiffness) will tend to be relatively small and here mass cancellation may be important.
+
+One important feature of mass cancellation is that it can only be applied to point measurements (where the excitation and response are both considered at the same point).
+This arises because the procedure described above corrects the measured force for the influence of the additional mass at the drive point.
+
+It should be noted that the transducer's inertia is also effective not only in the direction of the excitation but also laterally and in rotation even though they cannot easily be compensated for.
+
+
+### Rotational FRF measurement {#rotational-frf-measurement}
+
+
+#### Significance of rotational FRF data {#significance-of-rotational-frf-data}
+
+\\(\SI{50}{\\%}\\) of all DOFs are rotations (as opposed to translations) and \\(\SI{75}{\\%}\\) of all frequency response functions involve rotation DOFs.
+However, it is relatively rare the find reference to methods for measurements of rotational DOFs.
+This situation arises from a considerable difficulty which is encountered when trying to measure either rotational responses or excitations and also when trying to apply rotational excitation.
+
+
+#### Measurement of Rotational FRFs using two or more transducers {#measurement-of-rotational-frfs-using-two-or-more-transducers}
+
+There are two problems to be tackled:
+
+1. measurement of rotational responses
+2. generation of measurement of rotation excitation
+
+The first of these is less difficult and techniques usually use a pair a matched conventional accelerometers placed at a short distance apart on the structure to be measured as shown on [Figure 25](#figure--fig:rotational-measurement).
+
+
+
+{{< figure src="/ox-hugo/ewins00_rotational_measurement.png" caption="Figure 25: Measurement of rotational response" >}}
+
+The principle of operation is that by measuring both accelerometer signals, the responses \\(x\_0\\) and \\(\theta\_0\\) can be deduced by taking the mean and difference of \\(x\_A\\) and \\(x\_B\\):
+
+\begin{equation} \label{eq:rotational\_diff}
+ \begin{aligned}
+ x\_0 &= 0.5(x\_A + x\_B) \\\\
+ \theta\_0 &= (x\_A - x\_B)/l
+ \end{aligned}
+\end{equation}
+
+This approach permits us to measure half of the possible FRFs: all those which are of the \\(X/F\\) and \\(\Theta/F\\) type.
+The others can only be measured directly by applying a moment excitation.
+
+[Figure 26](#figure--fig:rotational-excitation) shows a device to simulate a moment excitation.
+First, a single applied excitation force \\(F\_1\\) corresponds to a simultaneous force \\(F\_0 = F\_1\\) and a moment \\(M\_0 = -F\_1 l\_1\\).
+Then, the same excitation force is applied at the second position that gives a force \\(F\_0 = F\_2\\) and moment \\(M\_0 = F\_2 l\_2\\).
+By adding and subtracting the responses produced by these two separate excitations conditions, we can deduce the translational and rotational responses to the translational force and the rotational moment separately, thus enabling the measurement of all four types of FRF: \\(X/F\\), \\(\Theta/F\\), \\(X/M\\) and \\(\Theta/M\\).
+
+
+
+{{< figure src="/ox-hugo/ewins00_rotational_excitation.png" caption="Figure 26: Application of moment excitation" >}}
+
+Then, the full \\(6 \times 6\\) mobility matrix can be measured, however this procedure is quite demanding.
+
+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.
+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.
+
+
+### Multi-point excitation methods {#multi-point-excitation-methods}
+
+
+#### Multi-point excitation in general {#multi-point-excitation-in-general}
+
+Multi-excitation methods for modal testing, called **MIMO test methods**, have been developed for FRF data which possesses a **high degree of consistency**.
+There are other benefits:
+
+- the excitation of large structure with multiple points does more closely simulates their vibration environment in service than the single point excitation test
+- the facility of detecting and identifying double or repeated modes
+- the need to complete some tests in a very minimum of on-structure time
+
+Although the majority of modal tests are still performed using single-point excitation procedure, multi-point excitation is today well developed and is largely used for aerospace structures.
+
+The practical implementation of the different methods currently used are briefly discussed.
+
+
+#### Appropriation or Normal mode testing {#appropriation-or-normal-mode-testing}
+
+We here seek **establish vibration in a pure mode of vibration by careful selection of the locations and magnitudes of a set of sinusoidal excitation forces**.
+
+This works for undamped system's natural frequencies, and in that case the force and response vectors are exactly in quadrature:
+\\[ i\\{X\\} = [H\_\text{Re}(\omega) + i H\_\text{Im}(\omega)] \\{F\\} \\]
+
+It follows that this equation is valid only if \\(\det |H\_{\text{Re}}(\omega)| = 0\\) and this condition provides the basis of a **method to locate the undamped system natural frequencies** from measured FRF data.
+
+
+#### Multi-phase stepped-sine (MPSS) testing {#multi-phase-stepped-sine--mpss--testing}
+
+We here excite a MDOF system at a single sinusoidal frequency \\(a\\) by a set of \\(p\\) excitation forces \\(\\{F\\}e^{i\omega t}\\) such that there is a set of steady-state responses \\(\\{X\\}e^{i\omega t}\\).
+The two vectors are related by the system's FRF properties as:
+
+\begin{equation} \label{eq:mpss\_equation}
+ \\{X\\}\_{n\times 1} = [H(\omega)]\_{n\times p} \\{F\\}\_{p\times 1}
+\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.
+
+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:
+
+- there are at least as many vectors as there are forces: \\(p^\prime > p\\)
+- the individual force vectors are linearly independent of each other
+
+A second matrix is also constructed containing the response vectors \\([X]\_{n\times p^\prime} = [\\{X\\}\_1, \dots, \\{X\\}\_{p^\prime}]\\).
+Now, these two collections of measured data can be used to determine the required FRF matrix:
+
+\begin{equation}
+ [H(\omega)]\_{n\times p} = [X]\_{n\times p^\prime} [F]\_{p^\prime \times p}^+
+\end{equation}
+
+where \\(+\\) denotes the generalized inverse of the forcing matrix.
+
+
+#### Multi-point random (MPR) testing {#multi-point-random--mpr--testing}
+
+
+##### Concept {#concept}
+
+In this method, advantage is taken of the incoherence of several uncorrelated random excitations which are applied simultaneously at several points.
+Then, the need to repeat the test several times, as was necessary for the MPSS method, is avoided.
+
+The purpose of this methods is to obtain the FRF data in an optimal way and to reduce the probability of introducing systematic errors to the FRF measurements.
+
+Let's consider the simplest form of a multi excitation as that of a system excited by two simultaneous forces \\(f\_1(t)\\) and \\(f\_2(t)\\) where the response \\(x\_i(t)\\) is of particular interest.
+We can derive expressions for the required FRF parameters functions of the auto and cross spectral densities between of three parameters of interest:
+
+\begin{equation}
+ \begin{aligned}
+ H\_{i1}(\omega) &= \frac{S\_{1i}S\_{22} - S\_{2i}S\_{12}}{S\_{11}S\_{22} - S\_{12}S\_{21}}\\\\
+ H\_{i1}(\omega) &= \frac{S\_{2i}S\_{11} - S\_{1i}S\_{21}}{S\_{11}S\_{22} - S\_{12}S\_{21}}
+ \end{aligned}
+\end{equation}
+
+These expressions can be used provided that \\(S\_{11}S\_{22}\neq |S\_{12}|^2\\) which is equivalent of that the two excitation forces must not be fully correlated.
+
+
+##### General formulation {#general-formulation}
+
+In practice, the method is applied using different numbers of exciters, and several response points simultaneously.
+We have that
+
+\begin{equation}
+ [H\_{xf}(\omega)]\_{n\times p} = [S\_{xf}(\omega)]\_{n\times p} [S\_{ff}(\omega)]\_{p\times p}^{-1}
+\end{equation}
+
+where it can be seen that the matrix of spectral densities for the forces \\([S\_{ff}(\omega)]\_{p\times p}\\) must be non singular.
+Thus, care must be taken in practice to ensure this condition, noting that it is the applied forces and not the signal sources which must meet the requirement.
+
+In practice, this is difficult to obtain as even if the input signals to the exciters' amplifiers are uncorrelated, the forces applied to the structure will certainly not be. This is particularly true near the resonances as the dynamic response is dominated by the one mode which is independent of the actual force pattern.
+
+
+##### Coherence in MPR measurements {#coherence-in-mpr-measurements}
+
+In a similar way in which we defined coherence for the SISO system, we can make use of the same concepts for a MIMO system.
+During a MIMO test, we basically measure three matrices:
+\\[ [S\_{ff}(\omega)]; \ [S\_{xx}(\omega)]; \ [S\_{fx}(\omega)] \\]
+Then, we can derive an estimate for the FRF matrix:
+\\[ H\_1(\omega)^T = [S\_{ff}(\omega)]^{-1} [S\_{fx}(\omega)] \\]
+and then compute an estimate for the autospectrum of the response from:
+
+\begin{align\*}
+ [\tilde{S}\_{xx}(\omega)] &= [H\_1^\*(\omega)] [S\_{fx}(\omega)] \\\\
+ &= [S\_{xf}(\omega)] [S\_{ff}(\omega)]^{-1} [S\_{fx}(\omega)]
+\end{align\*}
+
+Now, by comparing the estimated response spectrum \\([\tilde{S}\_{xx}(\omega)]\\) with the actual measurement \\([S\_{xx}(\omega)]\\), we obtain a formula for the multiple coherence between the two parameters \\(\\{f(t)\\}\\) and \\(\\{x(t)\\}\\):
+
+\begin{equation\*}
+ \tcmbox{[\gamma^2(\omega)] = [S\_{xx}(\omega)]^{-1} [S\_{xf}(\omega)] [S\_{ff}(\omega)]^{-1} [S\_{fx}(\omega)]}
+\end{equation\*}
+
+
+#### Multiple-reference impact tests {#multiple-reference-impact-tests}
+
+This class of hammer excitation is referred to as **Multi-reference Impact Tests** (**MRIT**).
+Typically, three response references are measured (often, the \\(x\\), \\(y\\) and \\(z\\) components at the response measurement location) every time a hammer blow is applied to the structure.
+
+FRF data collected by performing a test in this way will be the equivalent of exciting the structure at three points simultaneously while measuring the response at each of the \\(n\\) points of interest.
+Thus, in the same sense that a multiple-input test is a multi-reference measurement (measuring several columns of the FRF matrix), so too is the MRIT since it provides a multi-reference measurement including several rows of the same FRF matrix.
+
+
+## Modal Parameter Extraction Methods {#modal-parameter-extraction-methods}
+
+
+### Introduction {#introduction}
+
+
+#### Introduction to the concept of modal analysis {#introduction-to-the-concept-of-modal-analysis}
+
+This section describes some of the many procedures that are used for **Modal Analysis** and attempts to explain their various advantages and limitations.
+These methods generally consists of **curve-fitting a theoretical expression for an individual FRF to the actual measured data**.
+
+
+
+Degree of complexity of curve-fitting:
+
+1. **part of single FRF curve**
+2. **complete curve** encompassing several resonances
+3. **a set of many FRF plots** all on the same structure
+
+
+
+In every case, the task is basically to **find the coefficients in a theoretical expression** for the FRF which then most closely **matches the measured data**.
+
+This phase of the modal test procedure is often referred to as **modal parameter extraction** or **modal analysis**.
+
+
+#### Types of modal analysis {#types-of-modal-analysis}
+
+A majority of current curve-fitting methods operate on the response characteristics in the frequency domain, but there are other procedures which perform a curve-fit in the time domain. These latter methods are based on the fact that the Impulse Response Function is another characteristic function of the system.
+
+Modal analysis methods can be classified into a series of different groups.
+
+
+
+**Classification - Analysis Domain**:
+
+It depends on the **domain in which the analysis is performed**:
+
+- Frequency domain of FRFs
+- Time domain of IRFs
+
+
+
+
+
+**Classification - Frequency range**:
+
+Next, it is appropriate to consider the **frequency range** over which each individual analysis will be performed.
+Either a single mode is to be extracted at a time, or several:
+
+- **SDOF methods**
+- **MDOF methods**
+
+
+
+
+
+**Classification - Number of FRFs**:
+
+A further classification relates to the **number of FRFs** which are to be included in a single analysis:
+
+- **SISO**: the FRF are measured individually
+- **SIMO**: a set of FRF are measured simultaneously at several response points but under the same single-point excitation.
+ This describes the FRFs in a column or row of the FRF matrix
+- **MIMO**: the responses at several points are measured simultaneously while the structure is excited at several points, also simultaneously
+
+
+
+
+#### Difficulties due to damping {#difficulties-due-to-damping}
+
+Many of the problems encounter in practice are related to the difficulties associated with the **reliable modeling of damping effects**.
+In practice, we are obliged to make certain assumptions about what model is to be used for the damping effects.
+Sometimes, significant errors can be obtained in the modal parameter estimates (and not only in the damping parameters), as a result of a conflict between the assumed damping behavior and that which actually occurs in reality.
+
+Another difficulty is that of **real modes and complex modes**.
+In practice, all modes of practical structures are expected to be complex, although in the majority of cases, such complexity will be very small, and often quite negligible.
+
+
+#### Difficulties of model order {#difficulties-of-model-order}
+
+One problem is determining **how many modes are there in the measured FRF**.
+
+This question is one of the most difficult to resolve in many practical situations where a combination of finite resolution and noise in the measured data combined to make the issue very unclear.
+
+Many modern modal analysis curve-fitters are capable of fitting any FRF of almost any order, however, it might fit **fictitious modes** introduced in the analysis process.
+Correct **differentiation between genuine and fictitious modes** remains a critical task in many modal tests.
+
+
+### Preliminary checks of FRF data {#preliminary-checks-of-frf-data}
+
+
+#### Visual Checks {#visual-checks}
+
+Before starting the modal analysis of any measured FRF data, it is always important to do a few **simple checks** in order to ensure that no obvious error is present in the data.
+Most of the checks are made using a **log log plot of the modulus of the measured FRF**.
+
+
+##### Low-frequency asymptotes {#low-frequency-asymptotes}
+
+If the structure is **grounded**, then we should clearly see a **stiffness-like** characteristic, appearing as asymptotic to a stiffness line at the lowest frequencies (below the first resonance) and the magnitude of this should correspond to that of the static stiffness of the structure at the point in question.
+
+If the structure has been tested in a free condition, then we should expect to see a **mass-line** asymptote where its magnitude may be deduced from purely rigid-body considerations.
+
+Deviations from this expected behavior may be caused by the frequency range of measurement not extending low enough to see the asymptotic trend, or they may indicate that the required support conditions have not in fact been achieved.
+
+
+##### High-frequency asymptotes {#high-frequency-asymptotes}
+
+In the upper end of the frequency range, is it sometimes found (especially on point mobility measurements), that the curve becomes asymptotic to a **mass line** or, more usually to a **stiffness line**.
+Such situation can result in considerable difficulties for the modal analysis process and reflects a situation where the excitation is being applied at a point of very high mass of flexibility.
+Then, modal parameters are difficult to extracts as they are overwhelmed by the dominant local effects.
+
+
+##### Incidence of anti-resonances {#incidence-of-anti-resonances}
+
+For a **point FRF**, there must be **antiresonance after each resonances**, while for transfer FRFs between two points well-separated on the structure, we should expect **more minima than antiresonances**.
+
+A second check to be made is that the resonance peaks and the antiresonances exhibit the **same sharpness on a log-log plot**:
+
+- Frequency resolution limitation will cause blunt resonances
+- Inadequate vibration levels results in poor definition of the antiresonance regions
+
+
+##### Overall shape of FRF skeleton {#overall-shape-of-frf-skeleton}
+
+The relative position of the resonance, antiresonances and ambient levels of the FRF curve can give information on the validity of the data.
+This will be further explained.
+
+
+##### Nyquist plot inspection {#nyquist-plot-inspection}
+
+When plotting the FRF data in a Nyquist format, we expect that each resonance traces out at least **part of a circular arc**, the extent of which depends largely on the interaction between adjacent modes.
+For a system with well-separated modes, it is to be expected that each resonance will generate the major part of a circle, but when modal interference increases, only small segments will be identifiable.
+However, within these bounds, the Nyquist plot should ideally exhibit a smooth curve, and failure to do so may be an indication of a poor measurement technique.
+
+
+#### Assessment of multiple-FRF data set using SVD {#assessment-of-multiple-frf-data-set-using-svd}
+
+When several FRFs are acquired (either from SIMO or MIMO data), the **Singular Value Decomposition** has proved to be a very useful tool to check the **quality**, **reliability** and **order** of the data.
+
+The set of FRF which are to be assessed is stored in a series of vectors \\(\\{H\_{jk}(\omega)\\}\\) each of which contains the values for one FRF at all measured frequencies \\(\omega = \omega\_1, \dots, \omega\_L\\).
+These vectors are assembled into a matrix
+\\[ [A]\_{L\times np} = [\\{H\_{11}(\omega)\\}\_{L\times 1} \\{H\_{21}(\omega)\\}\_{L\times 1} \dots \\{H\_{np}(\omega)\\}\_{L\times 1} ] \\]
+where \\(n\\) and \\(p\\) represent the number of measured DOFs and the number of excitation points.
+\\(L\\) represents the number of frequencies at which the FRF data are defined.
+
+
+
+Interpretation of SVD:
+
+- The **singular values** \\(\sigma\_1, \dots, \sigma\_w\\) describes the **amplitude** information
+- Number of **non-zero singular values** represents the **order of the system** (i.e. the number of independent modes of vibration which effectively contribute to the measured FRFs)
+- The columns of \\([U]\\) represent the **frequency distribution** of these amplitudes
+- The columns of \\([V]\\) represent their **spatial distribution**
+
+
+
+
+
+From the SVD, we can compute a new matrix \\([P]\_{L\times np}\\) which is referred to as the **Principal Response Function** (**PRF**) matrix.
+Each column of the PRF contains a response function corresponding to one of the original FRFs:
+
+\begin{equation}
+ [U]\_{L\times L} [\Sigma]\_{L\times np} = [P]\_{L\times np}
+\end{equation}
+
+Then, each PRF is, simply, a particular combination of the original FRFs, and thus each FRF contains all the essential information included in those FRFs (eigenvalues for instance).
+
+
+
+On example of this form of pre-processing is shown on [Table 19](#table--fig:PRF-numerical) for a numerically-simulation test data, and another in [Table 20](#table--fig:PRF-measured) for the case of real measured test data.
+
+The second plot [ 19](#org-target--fig-PRF-numerical-svd) helps to determine the true order of the system because the number of non-zero singular values is equal to this parameter.
+The third plot [ 19](#org-target--fig-PRF-numerical-PRF) shows the genuine modes distinct from the computational modes.
+
+
+
+It can be seen that the PRFs tend to fall into **two groups**:
+
+- The most prominent are a set of response function, each of which has a small number of dominant peaks.
+ It represents the **physical modes** of the system.
+- The lower group shows less distinct and clear-cut behavior.
+ It represents the **noise or computational modes** present in the data.
+
+The two groups are usually separated by a clear gap (depending of the noise present in the data):
+
+- If such gap is present, then is will be possible to extract the properties of the \\(m\\) modes which are active in the measured responses over the frequency range covered.
+- If not, then it may be impossible to perform a successful modal parameter extraction.
+
+
+
+
+
+ Table 19:
+ FRF and PRF characteristics for numerical model
+
+ Table 20:
+ FRF and PRF characteristics for measured model
+
+
+|  |  |  |
+|----------------------------------------------------------------------------|----------------------------------------------------------------------------------------|----------------------------------------------------------------------------|
+| FRF | Singular Values | PRF |
+| width=\linewidth | width=\linewidth | width=\linewidth |
+
+
+#### Mode Indicator Functions (MIFs) {#mode-indicator-functions--mifs}
+
+
+##### General {#general}
+
+The Mode Indicator Functions are usually used on \\(n\times p\\) FRF matrix where \\(n\\) is a relatively large number of measurement DOFs and \\(p\\) is the number of excitation DOFs, typically 3 or 4.
+
+In these methods, the frequency dependent FRF matrix is subjected to an eigenvalue or singular value decomposition analysis which thus yields a small number (3 or 4) of eigen or singular values, these also being frequency dependent.
+
+These methods are used to **determine the number of modes** present in a given frequency range, to **identify repeated natural frequencies** and to pre process the FRF data prior to modal analysis.
+
+
+##### Complex mode indicator function (CMIF) {#complex-mode-indicator-function--cmif}
+
+The Complex Mode Indicator Function is defined simply by the SVD of the FRF (sub) matrix.
+
+
+
+The actual mode indicator values are provided by the squares of the singular values and are usually plotted as a function of frequency in logarithmic form as shown in [Figure 27](#figure--fig:mifs):
+
+- **Natural frequencies are indicated by large values of the first CMIF** (the highest of the singular values)
+- **double or multiple modes by simultaneously large values of two or more CMIF**.
+
+Associated with the CMIF values at each natural frequency \\(\omega\_r\\) are two vectors:
+
+- the left singular vector \\(\\{U(\omega\_r)\\}\_1\\) which approximates the **mode shape** of that mode
+- the right singular vector \\(\\{V(\omega\_r)\\}\_1\\) which represents the approximate **force pattern necessary to generate a response on that mode only**
+
+
+
+{{< figure src="/ox-hugo/ewins00_mifs.png" caption="Figure 27: Complex Mode Indicator Function (CMIF)" >}}
+
+
+
+In addition to identifying all the significant natural frequencies, the CMIF can also be used to **generate a set of enhanced FRFs** from the formula:
+
+\begin{equation} \label{eq:efrf}
+ [EFRF(\omega)]\_{n\times p} = [H(\omega)]\_{n\times p} [V(\omega)]\_{p\times p}
+\end{equation}
+
+There is one non-trivial EFRF for each mode, the result of which is an almost **SDOF characteristic** response function which is then readily amenable to modal analysis by the simplest of methods.
+
+As in the previous case, these modified FRFs are simply linear combinations of the original measured data and, as such, contain no more and no less information than in their original form.
+
+However, such an approach lends itself to a very reliable extraction of the global properties (eigenvalues) for the measured FRF data set which can then be re-visited in a second stage to determine the local properties (mode shapes) for all the measured DOFs.
+
+
+
+
+##### Other MIFs {#other-mifs}
+
+There are multiple variants on the mode indicator function concepts. Some use the eigenvalue decomposition instead of the singular value decomposition.
+Two are worth mentioning: the Multivariable Mode Indicator Function (MMIF) and the Real Mode Indicator Function (RMIF).
+
+
+### SDOF Modal Analysis Methods {#sdof-modal-analysis-methods}
+
+
+#### Review of SDOF modal analysis methods {#review-of-sdof-modal-analysis-methods}
+
+The "SDOF" approach does not imply that the system being modeled is reduced to a single degree of freedom, that that just **one resonance is considered at a time**.
+
+There are limitations to such simple approach, the principal one being that **very close modes cannot easily be separated**.
+
+There are several implementations of the basic concept of SDOF analysis, ranging from the simple **peak-picking method**, through the classic **circle-fit approach** to more automatic algorithms such as the **inverse FRF "he-fit" method** and the general **least-squares methods**.
+
+As the name implies, the method exploits the fact that in the vicinity of a resonance, the behavior of the system is dominated by a single mode (the magnitude is dominated by one of the terms in the series).
+
+The general expression of the receptance FRF
+
+\begin{equation}
+ \alpha\_{jk}(\omega) = \sum\_{s=1}^N \frac{{}\_sA\_{jk}}{\omega\_s^2 - \omega^2 + i \eta\_s \omega\_s^2}
+\end{equation}
+
+can be rewritten as:
+
+\begin{equation}
+ \alpha\_{jk}(\omega) = \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} + \sum\_{\substack{s=1\\\s \neq r}}^N \frac{{}\_sA\_{jk}}{\omega\_s^2 - \omega^2 + i \eta\_s \omega\_s^2}
+\end{equation}
+
+
+
+Now, the SDOF assumption is that for a small range of frequency in the vicinity of the natural frequency of mode \\(r\\), \\(\alpha\_{jk}(\omega)\\) can be approximated as
+
+\begin{equation}
+ \alpha\_{jk}(\omega)\_{\omega\approx\omega\_r} = \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} + {}\_rB\_{jk}
+\end{equation}
+
+
+
+This does not mean that the other modes are unimportant or negligible (their influence can be considerable), but rather that their combined effect can be represented as a **constant term** around this resonance.
+
+
+#### SDOF Modal Analysis I - Peak-Amplitude method {#sdof-modal-analysis-i-peak-amplitude-method}
+
+In this method, it is assumed that close to one local mode, any effects due to the other modes can be ignored.
+This is a method which works adequately for structures whose FRF exhibit **well separated modes**.
+This method is useful in obtaining initial estimates to the parameters.
+
+The peak-picking method is applied as follows (illustrated on [Figure 28](#figure--fig:peak-amplitude)):
+
+1. First, **individual resonance peaks** are detected on the FRF plot and the maximum responses frequency \\(\omega\_r\\) is taken as the **natural frequency** of that mode
+2. Second, the **local maximum value of the FRF** \\(|\hat{H}|\\) is noted and the **frequency bandwidth** of the function for a response level of \\(|\hat{H}|/\sqrt{2}\\) is determined.
+ The two points thus identified as \\(\omega\_b\\) and \\(\omega\_a\\) are the "half power points"
+3. The **damping** of the mode in question can now be estimated from of the following formulae:
+
+ \begin{equation}
+ \begin{aligned}
+ \eta\_r &= \frac{\omega\_a^2 - \omega\_b^2}{2 \omega\_r^2} \approx \frac{\Delta\omega}{\omega\_r} \\\\
+ 2\xi\_r &= \eta\_r
+ \end{aligned}
+ \end{equation}
+4. We now obtain an estimate for the **modal constant** of the mode being analyzed by assuming that the total response in this resonant region is attributed to a single term in the general FRF series:
+
+ \begin{equation}
+ |\hat{H}| = \frac{A\_r}{\omega\_r^2 \eta\_r} \Leftrightarrow A\_r = |\hat{H}| \omega\_r^2 \eta\_r
+ \end{equation}
+
+It must be noted that the estimates of both damping and modal constant depend heavily on the accuracy of the maximum FRF level \\(|\hat{H}|\\) which is difficult to measure with great accuracy, especially for lightly damped systems.
+Only real modal constants and thus real modes can be deduced by this method.
+
+
+
+{{< figure src="/ox-hugo/ewins00_peak_amplitude.png" caption="Figure 28: Peak Amplitude method of modal analysis" >}}
+
+Alternatives of this method can be applied using the real part of the receptance FRF instead of the modulus plot.
+
+
+#### SDOF Modal Analysis II - Circle Fit Method {#sdof-modal-analysis-ii-circle-fit-method}
+
+
+##### Properties of the modal circle {#properties-of-the-modal-circle}
+
+MDOF systems produce Nyquist plots of FRF data which include **sections of near circular arcs** corresponding to the regions near the natural frequencies.
+This characteristic provides the basic of the "**SDOF circle-fit method**".
+
+We here use **structural damping** and we use the **receptance** form of FRF data as this will produces an exact circle in a Nyquist plot.
+However, if it is required to use a model incorporating viscous damping, then the mobility version of the FRF data should be used.
+
+In the case of a system assumed to have structural damping, the basic function with which we are dealing is
+
+\begin{equation}
+ \alpha(\omega) = \frac{1}{\omega\_r^2\left( 1 - \left(\omega/\omega\_r\right)^2 + i\eta\_r \right)}
+\end{equation}
+
+since the only effect of including the modal constant \\({}\_rA\_{jk}\\) is to scale the size of the circle by \\(|{}\_rA\_{jk}|\\) and to rotate it by \\(\angle {}\_rA\_{jk}\\).
+A plot of the quantity \\(\alpha(\omega)\\) is given in [ 21](#org-target--fig-modal-circle).
+
+
+
+
+|  |  |
+|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
+| Properties | \\(\omega\_b\\) and \\(\omega\_a\\) points |
+| width=\linewidth | width=\linewidth |
+
+For any frequency \\(\omega\\), we have the following relationship:
+
+\begin{equation} \label{eq:modal\_circle\_tan}
+ \begin{aligned}
+ \tan \gamma &= \frac{\eta\_r}{1 - (\omega/\omega\_r)^2}\\\\
+ \tan(\SI{90}{\degree}-\gamma) &= \tan\left(\frac{\theta}{2}\right) = \frac{1 - (\omega/\omega\_r)^2}{\eta\_r}
+ \end{aligned}
+\end{equation}
+
+From \ref{eq:modal\_circle\_tan}, we obtain:
+
+\begin{equation} \label{eq:modal\_circle\_omega}
+ \omega^2 = \omega\_r^2 \left(1 - \eta\_r \tan\left(\frac{\theta}{2}\right) \right)
+\end{equation}
+
+If we differentiate \ref{eq:modal\_circle\_omega} with respect to \\(\theta\\), we obtain:
+
+\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}
+\end{equation}
+
+The reciprocal of this quantity is a **measure of the rate at which the locus sweeps around the circular arc**.
+It may be seen to reach a maximum value when \\(\omega=\omega\_r\\):
+
+\begin{equation}
+ \tcmbox{\frac{d}{d\omega} \left(\frac{d\omega^2}{d\theta}\right) = 0 \text{ when } \omega\_r^2 - \omega^2 = 0}
+\end{equation}
+
+It may also be seen that an **estimate of the damping** is provided by the sweep rate:
+
+\begin{equation} \label{eq:estimate\_damping\_sweep\_rate}
+ \tcmbox{\left(\frac{d\theta}{d\omega^2}\right)\_{\omega=\omega\_r} = -\frac{2}{\omega\_r^2 \eta\_r}}
+\end{equation}
+
+Suppose now we have two specific points on the circle, one corresponding to a frequency \\(\omega\_b\\) below the natural frequency and the other one \\(\omega\_a\\) above the natural frequency.
+Referring to [ 21](#org-target--fig-modal-circle-bis), we can write:
+
+\begin{equation}
+ \begin{aligned}
+ \tan\left(\frac{\theta\_b}{2}\right) &= \frac{1 - (\omega\_b/\omega\_r)^2}{\eta\_r}\\\\
+ \tan\left(\frac{\theta\_a}{2}\right) &= \frac{(\omega\_a/\omega\_r)^2 - 1}{\eta\_r}
+ \end{aligned}
+\end{equation}
+
+From these two equations, we can obtain an expression for the **damping of the mode**:
+
+\begin{equation} \label{eq:estimate\_damping}
+ \tcmbox{\eta\_r = \frac{\omega\_a^2 - \omega\_b^2}{\omega\_r^2 \left(\tan(\theta\_a/2) + \tan(\theta\_b/2)\right)}}
+\end{equation}
+
+which is an exact expression and applies for all levels of damping.
+
+If we take two points for which \\(\theta\_a = \theta\_b = \SI{90}{\degree}\\), we obtain:
+
+\begin{equation}
+ \begin{aligned}
+ \eta\_r &= \frac{\omega\_2^2 - \omega\_1^2}{2 \omega\_r^2}\\\\
+ \eta\_r &= \frac{\omega\_2 - \omega\_1}{\omega\_r} \text{ for light damping}
+ \end{aligned}
+\end{equation}
+
+When scaled by a modal constant \\({}\_rA\_{jk}\\) added in the numerator, the diameter of the circle will be
+\\[ {}\_rD\_{jk} = \frac{\left|{}\_rA\_{jk}\right|}{\omega\_r^2 \eta\_r} \\]
+and the whole circle will be rotated so that the principal diameter (the one passing through the natural frequency point) is oriented at an angle \\(\arg({}\_rA\_{jk})\\) to the negative Imaginary axis.
+
+For SDOF system with **viscous** damping, rather than structural damping, the **mobility** is
+\\[ Y(\omega) = \frac{i\omega}{(k - \omega^2 m) + i \omega c} \\]
+
+And we have
+
+\begin{equation}
+ \tan\left(\frac{\theta}{2}\right) = \frac{1 - (\omega/\omega\_r)^2}{2 \xi \omega/\omega\_r}
+\end{equation}
+
+From points at \\(\omega\_a\\) and \\(\omega\_b\\), we obtain
+
+\begin{equation}
+ \begin{aligned}
+ \xi &= \frac{\omega\_a^2 - \omega\_b^2}{2 \omega\_r \left( \omega\_a \tan(\theta\_a/2) + \omega\_b \tan(\theta\_b/2) \right)}\\\\
+ &= \frac{\omega\_a - \omega\_b}{\omega\_r \left( \tan(\theta\_a/2) + \tan(\theta\_b/2) \right)} \text{ for light damping}
+ \end{aligned}
+\end{equation}
+
+Finally, selecting two points for which \\(\theta\_a = \theta\_b = \SI{90}{\degree}\\):
+
+\begin{equation}
+ \xi = \frac{\omega\_2 - \omega\_1}{2 \omega\_r}
+\end{equation}
+
+
+##### Circle-fit analysis procedure {#circle-fit-analysis-procedure}
+
+The sequence is:
+
+1. **Select points to be used**.
+2. **Fit circle, calculate quality of fit**.
+ It is generally done by a least-square algorithm.
+ 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**.
+ 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}.
+ A typical example is shown on [Figure 29](#figure--fig:circle-fit-natural-frequency).
+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}.
+ 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:
+ - 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.
+ - However, any systematic distortion of the plot is almost certainly caused by some form of error in the data, in the analysis or in the assumed behavior of the system.
+5. **Determine modal constant modulus and argument**.
+ The magnitude and argument of the modal constant is determined from the diameter of the circle and from its orientation relative to the Real and Imaginary axis.
+
+
+
+{{< figure src="/ox-hugo/ewins00_circle_fit_natural_frequency.png" caption="Figure 29: Location of natural frequency for a Circle-fit modal analysis" >}}
+
+Then, the theoretically regenerated FRF can be plotted against the original measured data for comparison.
+In order to determines the contribution of other modes on the resonance of mode \\(r\\), the distance from the top of the principal diameter to the origin has to be measured and is equal to \\({}\_rB\_{jk}\\).
+
+
+#### SDOF Modal Analysis III - Inverse or Line-fit method {#sdof-modal-analysis-iii-inverse-or-line-fit-method}
+
+
+##### Properties of inverse FRF plots {#properties-of-inverse-frf-plots}
+
+The original version of this method uses the fact that a function which generates a circle when plotted in the complex plane will, when plotted as a reciprocal, trace out a **straight line**.
+Thus, if we were to plot the reciprocal of receptance of a SDOF system with structural damping, we would find that in the Argand diagram it produces a straight line:
+
+\begin{equation}
+ \begin{aligned}
+ \alpha(\omega) &= \frac{(k - \omega^2 m) - i d}{(k - \omega^2 m)^2 + d^2}\\\\
+ \frac{1}{\alpha(\omega)} &= (k - \omega^2 m) + i d
+ \end{aligned}
+\end{equation}
+
+First, a least squares best-fit straight line is constructed through the data points and an **estimate for the damping parameters** is immediately available from the **intercept of the line with the Imaginary axis**.
+Furthermore, an indication of the reliability of that estimate may be gained from the nature of the deviations of the data points from the line itself.
+We can here determine whether the damping is structural (imaginary part constant with frequency) or viscous (imaginary part linear with frequency).
+
+Then, a second least squares operation is performed, this time on the deviation between the real part of the measured data points and that of the theoretical model.
+Resulting from this, we obtain **estimates for the mass and stiffness parameters**.
+
+It should be noted that this approach is best suited to systems with real modes and to relatively well-separated modes.
+
+
+##### General inverse analysis method {#general-inverse-analysis-method}
+
+It has been shown that if a purely SDOF system FRF is plotted in this way, then both plots demonstrate straight lines, and separately reveal useful information about the mass, stiffness and damping properties of the measured system.
+
+The inverse FRF of a MDOF system is not as convenient as SDOF system as:
+
+\begin{align\*}
+ H\_{jk}^{-1} (\omega) &= \frac{1}{\sum (k - \omega^2 m) + i \omega c}\\\\
+ &\neq \sum \frac{1}{(k - \omega^2 m) + i \omega c}
+\end{align\*}
+
+Thus, in order to determine the modal parameters of a MDOF system using inverse method, some modifications to the basic formulation must be found.
+
+We start with the basic formula for SDOF analysis:
+\\[ \alpha\_{jk}(\omega)\_{\omega\simeq\omega\_r} \simeq \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} + {}\_rB\_{jk} \\]
+We can note that the presence of the \\({}\_rB\_{jk}\\) term is problematic for the inverse plot.
+
+The trick is to define a **new FRF term** \\(\alpha^\prime\_{ik}(\omega)\\) which is the difference between the actual FRF and the value of the FRF at one fixed frequency \\(\Omega\\) in the range of interest called "**fixing frequency**":
+\\[ \alpha^\prime\_{jk}(\omega) = \alpha\_{jk}(\omega) - \alpha\_{jk}(\Omega) \\]
+from which the inverse FRF parameter that we shall use for the modal analysis \\(\Delta(\omega)\\), can be defined as:
+
+\begin{align\*}
+ \Delta(\omega) &= (\omega^2 - \Omega^2)/\alpha^\prime\_{jk}(\omega)\\\\
+ &= \text{Re}(\Delta) + i \text{Im}(\Delta)
+\end{align\*}
+
+It can be seen that
+\\[ \text{Re}(\Delta) = m\_R \omega^2 + c\_R; \quad \text{Im}(\Delta) = m\_I \omega^2 + c\_I \\]
+and that
+
+\begin{align\*}
+ m\_R &= a\_R(\Omega^2 - \omega\_r^2) - b\_r (\omega\_r^2 \eta\_r) \\\\
+ m\_I &= -b\_R(\Omega^2 - \omega\_r^2) - a\_r (\omega\_r^2 \eta\_r) \\\\
+ {}\_rA\_{jk} &= a\_R + i b\_r
+\end{align\*}
+
+The first step of our **analysis procedure** can be made, as follows:
+
+1. Using the FRF data measured in the vicinity of the resonance \\(\omega\_r\\), choose the fixing frequency \\(\Omega\_j\\) and then calculate \\(\Delta(\omega)\\)
+2. Plot these values on \\(\text{Re vs } \omega^2\\) and \\(\text{Im vs }\omega^2\\) plots and compute the best fit straight line in order to determine \\(m\_R(\Omega\_j)\\) and \\(m\_I(\Omega\_j)\\)
+
+Now it can be shown that both these straight line slopes \\(m\_R\\) and \\(m\_I\\) are simple functions of \\(\Omega\\), and we can write:
+\\[ m\_R = n\_R \Omega^2 + d\_R \text{ and } m\_I = n\_I \Omega^2 + d\_I \\]
+where
+
+\begin{equation} \label{eq:four\_parameters}
+ \begin{aligned}
+ n\_R &= a\_r; \quad n\_I = -b\_r \\\\
+ d\_R &= -b\_r(\omega\_r^2 \eta\_r) - a\_r \omega\_r^2; \quad d\_I = b\_r \omega\_r^2 - a\_r\omega\_r^2\eta\_r
+ \end{aligned}
+\end{equation}
+
+Now let \\(p = n\_I/n\_R \text{ and } q = d\_I/d\_R\\), and noting that
+
+\begin{equation} \label{eq:modal\_parameters\_formula}
+ \begin{aligned}
+ \eta\_r &= \frac{q - p}{1 + pq}; \quad \omega\_r^2 = \frac{d\_R}{(p\eta\_r - 1)n\_R} \\\\
+ a\_r &= \frac{\omega\_r^2(p\eta\_r - 1)}{(1 + p^2)d\_R}; \quad b\_r = -a\_r p
+ \end{aligned}
+\end{equation}
+
+we now have sufficient information to extract estimates for the four parameters for the resonance which has been analyzed: \\(\omega\_r, \eta\_r, \text{ and } {}\_rA\_{jk} = a\_r + i b\_r\\).
+
+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\\)
+5. Use these four quantities, and equation \ref{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.
+
+
+#### Residuals {#residuals}
+
+
+##### Concept of residual terms {#concept-of-residual-terms}
+
+We need to introduce the concept of **residual terms**, necessary in the modal analysis process to take account of those modes which we do not analyze directly but which nevertheless exist and have an influence on the FRF data we use.
+
+The first occasion on which the residual problem is encountered is generally at the end of the analysis of a single FRF curve, such as by the repeated application of an SDOF curve-fit to each of the resonances in turn until all modes visible on the plot have been identified.
+At this point, it is often desired to construct a theoretical curve (called "**regenerated**"), based on the modal parameters extracted from the measured data, and to overlay this on the original measured data to assess the success of the curve-fit process.
+Then the regenerated curve is compared with the original measurements, the result is often disappointing, as illustrated in [ 22](#org-target--fig-residual-without).
+However, by the inclusion of two simple extra terms (the "**residuals**"), the modified regenerated curve is seen to correlate very well with the original experimental data as shown on [ 22](#org-target--fig-residual-with).
+
+
+
+ Table 22:
+ Effects of residual terms on FRF regeneration
+
+
+|  |  |
+|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
+| without residual | with residuals |
+| width=\linewidth | width=\linewidth |
+
+If we regenerate an FRF curve from the modal parameters we have extracted from the measured data, we shall use a formula of the type
+
+\begin{equation}
+ H\_{jk}(\omega) = \sum\_{r = m\_1}^{m\_2} \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2}
+\end{equation}
+
+in which \\(m\_1\\) and \\(m\_2\\) reflects that we do not always start at the first mode (\\(r = 1\\)) and continue to the highest mode (\\(r = N\\)).
+
+However, the equation which most closely represents the measured data is:
+
+\begin{equation}
+ H\_{jk}(\omega) = \sum\_{r = 1}^{N} \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2}
+\end{equation}
+
+which may be rewritten as
+
+\begin{equation} \label{eq:sum\_modes}
+ H\_{jk}(\omega) = \left( \sum\_{r=1}^{m\_1-1} + \sum\_{r=m\_1}^{m\_2} + \sum\_{r = m\_2+1}^{N} \right) \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2}
+\end{equation}
+
+The three terms corresponds to:
+
+1. the **low frequency modes** not identified
+2. the **high frequency modes** not identified
+3. the **modes actually identified**
+
+These three terms are illustrated on [Figure 30](#figure--fig:low-medium-high-modes).
+
+
+
+{{< figure src="/ox-hugo/ewins00_low_medium_high_modes.png" caption="Figure 30: Numerical simulation of contribution of low, medium and high frequency modes" >}}
+
+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 third term approximates to a **stiffness effect**
+
+Thus, we have a basis for the residual terms and shall rewrite equation \ref{eq:sum\_modes:}
+
+\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}
+\end{equation}
+
+where the quantities \\(M\_{jk}^R\\) and \\(K\_{jk}^R\\) are the **residual mass and stiffness** for that **particular FRF** and **chosen frequency range**.
+
+
+##### Calculation of residual mass and stiffness terms {#calculation-of-residual-mass-and-stiffness-terms}
+
+First, we compute a few values of the regenerated FRF curve at the lower frequencies covered by the tests, using only the identified modal parameters.
+Then, by comparing these values with those from actual measurements, we estimate a mass residual constant which, when added to the regenerated curve, brings this closely into line with the measured data.
+
+Then, the process is repeated at the top end of the frequency range, this time seeking a residual stiffness.
+Often, the process is more effective if there is an antiresonance near either end of the frequency range which this is then used as the point of adjustment.
+
+The procedure outlined here may need to be repeated **iteratively** in case the addition of the stiffness residual term then upsets the effectiveness of the mass term.
+
+It should be noted that often there is a **physical significance to the residual terms**.
+If the test structure is freely-supported and its rigid body modes are well below the minimum frequency of measurement, then the mass residual term will be a direct reflection of the rigid body mass and inertia properties of the structure.
+The high frequency residual can represent the local flexibility at the drive point.
+
+
+##### Residual and pseudo modes {#residual-and-pseudo-modes}
+
+Sometimes it is convenient to **treat the residual terms as if they were modes**.
+Instead of representing each residual effect by a constant, each can be represented by a pseudo mode.
+For the low frequency residual effects, this pseudo mode has a natural frequency below the lowest frequency on the measured FRF, and for the high frequency residual effects, that pseudo mode has a natural frequency which is above the highest frequency of the measured FRF.
+These pseudo modes can be conveniently included in the list of modes which have been extracted by modal analysis of that FRF.
+
+Using pseudo modes instead of simple residual mass and stiffness terms is a more accurate way of representing the out-of-range modes.
+There is one warning, however, and that is to point out that these pseudo modes are **not** genuine modes and that they cannot be used to deduce the corresponding contributions of these same modes for any other FRF curve.
+
+
+#### Refinement of SDOF modal analysis methods {#refinement-of-sdof-modal-analysis-methods}
+
+In the modal analysis methods discussed above, an assumption is made that near the resonance under analysis, the effect of **all** the other modes could be represented by a constant.
+When there are neighboring modes close to the one being analyzed, this assumption may not be valid.
+
+
+
+**"Close" modes** is loosely defined as a situation where the separation between the natural frequencies of two adjacent modes is less than the typical damping level, both measured as percentage.
+
+
+
+However, we can usually remove that restriction and thereby make a more precise analysis of the data.
+
+We can write the receptance in the frequency range of interest as:
+
+\begin{equation} \label{eq:second\_term\_refinement}
+ \begin{aligned}
+ H\_{jk}(\omega) &= \sum\_{s=m\_1}^{m\_2} \left( \frac{{}\_sA\_{jk}}{\omega\_s^2 - \omega^2 + i \eta\_s \omega\_s^2} \right) + \frac{1}{K\_{jk}^R}-\frac{1}{\omega^2 M\_{jk}^R} \\\\
+ &= \left( \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i\eta\_r \omega\_r^2} \right) \\\\
+ &+ \left(\sum\_{\substack{s=m\_1 \cr s \neq r}}^{m\_2} \frac{{}\_sA\_{jk}}{\omega\_s^2 - \omega^2 + i\eta\_s \omega\_s^2} + \frac{1}{K\_{jk}^R} - \frac{1}{\omega^2 M\_{jk}^R} \right)
+ \end{aligned}
+\end{equation}
+
+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.
+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\\).
+
+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**.
+
+
+### MDOF Modal analysis in the frequency domain (SISO) {#mdof-modal-analysis-in-the-frequency-domain--siso}
+
+
+#### General Approach {#general-approach}
+
+There are a number of situations in which the SDOF approach to modal analysis is inadequate and for these there exist several alternative methods which may generally be classified as MDOF modal analysis methods.
+These situations are generally those with closely coupled modes where the single mode approximation is inappropriate and those with extremely light damping for which measurements at resonance are inaccurate.
+
+
+
+Three approach to curve-fit the entire FRF in one step are considered here:
+
+1. a general approach to multi-mode curve-fitting
+2. a method based on the rational fraction FRF formulation
+3. a method particularly suited to very lightly-damped structures
+
+
+
+
+#### Method I - General Curve Fit approach - Non-linear Least Squares (NLLS) {#method-i-general-curve-fit-approach-non-linear-least-squares--nlls}
+
+We shall denote the individual FRF measured data as:
+\\[ H\_{jk}^m(\Omega\_l) = H\_l^m \\]
+while the corresponding "theoretical" values are:
+
+\begin{equation}
+ \begin{aligned}
+ H\_l &=H\_{jk}(\Omega\_l) \\\\
+ &= \sum\_{s=m\_1}^{m\_2}\frac{{}\_sA\_{jk}}{\omega\_s^2 - \Omega\_l^2 + i \eta\_s \omega\_s^2} + \frac{1}{K\_{jk}^R} - \frac{1}{\Omega\_l^2 M\_{jk}^R}
+ \end{aligned}
+\end{equation}
+
+where the coefficients \\({}\_1A\_{jk}, {}\_2A\_{jk}, \dots, \omega\_1, \omega\_2, \dots, \eta\_1, \eta\_2, \dots, K\_{jk}^R \text{ and }M\_{jk}^R\\) are all to be **determined**.
+
+We can define an **individual error** as:
+
+\begin{equation}
+ \epsilon\_l = H\_l^m - H\_l
+\end{equation}
+
+and express this as a scalar quantity:
+
+\begin{equation}
+ E\_l = \left| \epsilon\_l^2 \right|
+\end{equation}
+
+If we further increase the generality by attaching a **weighting factor** \\(w\_l\\) to each frequency point of interest, then the curve fit process has to determine the values of the unknown coefficients such that the total error:
+
+\begin{equation} \label{eq:error\_weighted}
+ E = \sum\_{l = 1}^p w\_l E\_l
+\end{equation}
+
+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:
+
+\begin{equation}
+ \frac{d E}{d q} = 0; \quad q = {}\_1A\_{jk}, {}\_2A\_{jk}, \dots
+\end{equation}
+
+Unfortunately, this set of equations are **not linear** in many of the coefficients and thus cannot be solved directly.
+It is from this point that the differing algorithms choose their individual procedures: making various simplifications, assumptions or linearizing the expressions.
+
+
+#### Method II - Rational Fraction Polynomial Method (RFP) {#method-ii-rational-fraction-polynomial-method--rfp}
+
+The method which has emerged as one the **standard** frequency domain modal analysis methods is that known as the **Rational Fraction Polynomial** (**RFP**) method.
+This method is a special version of the general curve fitting approach but is based on a different formulation for the theoretical expression used for the FRF.
+
+
+
+The unknown coefficients \\(a\_0, \dots, a\_{2N}, b\_0, \dots, b\_{2N-1}\\) are not the modal properties but are related to them and are computed in a further stage of processing.
+
+The particular advantage of this approach is the possibility of formulating the curve fitting problem as a **linear set of equations**, thereby making the solution amenable to a direct matrix solution.
+
+We shall denote each of our measured FRF data point by \\(\hat{H}\_k\\), where \\(\hat{H}\_k = \hat{H}(\omega\_k)\\), and define the error between that measured value and the corresponding value derived from the curve-fit expression as
+
+\begin{equation}
+ e\_k = \frac{b\_0 + b\_1(i\omega\_k) + \dots + b\_{2m-1}(i\omega\_k)^{2m-1}}{a\_0 + a\_1(i\omega\_k) + \dots + a\_{2m}(i\omega\_k)^{2m}} - \hat{H}\_k
+\end{equation}
+
+leading to the modified, but more convenient version actually used in the analysis
+
+\begin{equation} \label{eq:rpf\_error}
+ \begin{aligned}
+ e\_k^\prime &= \left( b\_0 + b\_1(i\omega\_k) + \dots + b\_{2m-1}(i\omega\_k)^{2m-1} \right)\\\\
+ &- \hat{H}\_k\left( a\_0 + a\_1(i\omega\_k) + \dots + a\_{2m}(i\omega\_k)^{2m} \right)
+ \end{aligned}
+\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.
+Equation \ref{eq:rpf\_error} can be rewritten as follows:
+
+\begin{equation}
+ \begin{aligned}
+ e\_k^\prime &= \begin{Bmatrix} 1 & i \omega\_k & \dots & (i\omega\_k)^{2m-1} \end{Bmatrix}
+ \begin{Bmatrix} b\_0 \\\ \vdots \\\ b\_{2m-1} \end{Bmatrix}\\\\
+ &- \hat{H}\_k \begin{Bmatrix} 1 & i\omega\_k & \dots & (i\omega\_k)^{2m-1} \end{Bmatrix}
+ \begin{Bmatrix} a\_0 \\\ \vdots \\\ a\_{2m-1} \end{Bmatrix}\\\\
+ &- \hat{H}\_k (i\omega\_k)^{2m} a\_{2m}
+ \end{aligned}
+\end{equation}
+
+and the \\(L\\) linear equations corresponding to \\(L\\) individual frequency points can be combined in matrix form:
+
+\begin{equation}
+\begin{aligned}
+ \\{E^\prime\\}\_{L \times 1} &= [P]\_{L\times 2m} \\{b\\}\_{2m\times 1}\\\\
+ &- [T]\_{L\times(2m+1)} \\{a\\}\_{(2m+1)\times 1}\\\\
+ &- \\{W\\}\_{L\times 1}
+\end{aligned}
+\end{equation}
+
+Solution for the unknown coefficients \\(a\_j, \dots, b\_k, \dots\\) is achieved by minimizing the error function
+
+\begin{equation}
+ J = \\{E^\*\\}^T\\{E\\}
+\end{equation}
+
+and this leads to
+
+\begin{equation}
+ \begin{bmatrix}
+ [Y] & [X] \\\\
+ [X]^T & [Z]
+ \end{bmatrix}\_{L \times (4m+1)}
+ \begin{Bmatrix}
+ \\{b\\} \\\ \\{a\\}
+ \end{Bmatrix}\_{(4m+1) \times 1}
+ = \begin{Bmatrix}
+ \\{B\\} \\\ \\{F\\}
+ \end{Bmatrix}\_{L \times 1}
+\end{equation}
+
+where \\([X], [Y], [Z], \\{G\\}\\) and \\(\\{F\\}\\) are known measured quantities:
+
+\begin{equation}
+ \begin{aligned}
+ [Y] &= \text{Re}\left( [P^\*]^T[P] \right);\quad [X] = \text{Re}\left( [P^\*]^T[T] \right); \\\\
+ [Z] &= \text{Re}\left( [T^\*]^T[T] \right); \\\\
+ \\{G\\} &= \text{Re}\left( [P^\*]\\{W\\} \right);\quad \\{F\\} = \text{Re}\left( [T^\*]\\{W\\} \right);
+ \end{aligned}
+\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**.
+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:}
+
+- 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\\)
+
+In order to determine the order, the analysis is repeated using different assumed values for the order \\(m\\) and are compared.
+For each analysis, there will be properties found for as many modes as prescribed by the chosen model order.
+Some of these will be genuine modes while others will be fictitious modes.
+Various strategies may be adopted to separate the fictitious and real modes:
+
+- measuring the difference between the original FRF curve and that regenerated using the modal properties derived
+- measuring the consistency of the various modal parameters for different model order choices and eliminating those which vary widely from run to run
+
+In all these checks, interest is concentrated on the **repeatability** of the various modal properties: modes which reappear for all choices of data and model condition are believed to be genuine, while those which vary from run to run are more likely to have computational features due to the curve-fitting requirements as their origins, rather than physical ones.
+
+
+#### Method III - Lightly Damped Structures {#method-iii-lightly-damped-structures}
+
+It is found that some structures do not provide FRF data which respond very well to the above modal analysis procedures mainly because of the difficulties encountered in acquiring good measurements near resonance.
+
+For such structures, it is often the case that interest is confined to an **undamped model** of the test structure since the damping in a complete structural assembly is provided mostly from the joints and not from the components themselves.
+Thus, there is scope for an alternative method of modal analysis which is capable of providing the required modal properties, in this case **natural frequencies** and **real modal constants**, using data measured **away from the resonance regions**.
+
+The requirements for the analysis are as follows:
+
+1. measure the FRF over the frequency range of interest
+2. locate the resonances and note the corresponding natural frequencies
+3. select individual FRF measurement data points from as many frequencies as there are modes, plus two, confining the selection to points away from resonance
+4. using the data thus gathered, compute the modal constants
+5. construct a regenerated curve and compare this with the full set of measured data points
+
+
+### Global modal analysis methods in the frequency domain {#global-modal-analysis-methods-in-the-frequency-domain}
+
+
+#### General Approach {#general-approach}
+
+More recent curve fitting procedures are capable of performing a multi curve fit instead of just working with individual FRF curves.
+They **fit several FRF curves simultaneously**, taking due account of the fact that the **properties of all the individual curves are related** by being from the **same structure**:
+all FRF plots on a given testpiece should indicate the same values for natural frequencies and damping factor of each mode.
+
+Such methods have the advantage of producing a **unique and consistent model** as direct output.
+
+
+
+A way in which a set of measured FRF curves may be used collectively, rather than singly, is by the construction of a single **Composite Response Function**:
+
+\begin{equation}
+ \sum\_j\sum\_k H\_{jk}(\omega) = \sum\_j\sum\_k\sum\_{r=1}^N (\dots) = HH(\omega)
+\end{equation}
+
+with
+\\[ H\_{jk} = \sum\_{r=1}^n \frac{{}\_rA\_{jk}}{\omega\_r^2 - \omega^2 + i \eta\_r \omega\_r^2} \\]
+
+
+
+The composite function \\(HH(\omega)\\) can provide a useful means of determining a single (average) value for the natural frequency and damping factor for each mode where the individual functions would each indicate slightly different values.
+As an example, a set of mobilities measured are shown individually in [ 23](#org-target--fig-composite-raw) and their summation shown as a single composite curve in [ 23](#org-target--fig-composite-sum).
+
+
+
+
+|  |  |
+|---------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
+| Individual curves | Composite curve |
+| width=\linewidth | width=\linewidth |
+
+The global analysis methods have the disadvantages first, that the computation power required is high and second that there may be valid reasons why the various FRF curves exhibit slight differences in their characteristics and it may not always be appropriate to average them.
+
+
+#### Global Rational Fraction Polynomial Method (GRFP) {#global-rational-fraction-polynomial-method--grfp}
+
+The basic Rational Fraction Polynomial (RFP) method that was described in the context of single FRF curve can be generalized to multi-FRF data.
+Indeed, all the FRFs from the same structure will have identical numerator polynomials.
+The number of unknown coefficients in a problem where there are \\(n\\) measured FRFs and \\(m\\) modes of vibration is of the order \\((n+1)(2m + 1)\\).
+
+
+#### Global SVD method {#global-svd-method}
+
+A set of FRFs with a signal reference (such as are contained within a column from the complete FRF matrix) can be referred to the underlying modal model of the structure (assumed to have viscous damping) by the equation:
+
+\begin{align\*}
+ \\{H(\omega)\\}\_k &= \begin{Bmatrix} H\_{1k}(\omega) \\\ \vdots \\\ H\_{nk}(\omega) \\\ \end{Bmatrix}\_{n\times 1} \\\\
+ &= [\Phi]\_{n\times N} \\{g\_k(\omega)\\}\_{N\times 1} + \\{R\_k(\omega)\\}\_{n\times 1}
+\end{align\*}
+
+where \\(\\{R\_k(\omega)\\}\\) is a vector containing the relevant residual terms and \\(\\{g\_k(\omega)\\}\\) is defined as:
+\\[ \\{g\_k(\omega)\\}\_{N\times 1} = [i \omega - s\_r]\_{N\times N}^{-1} \\{\phi\_k\\}\_{N\times 1} \\]
+
+Also
+\\[ \\{\dot{H}(\omega)\\}\_k = [\Phi] [s\_r] \\{g\_k(\omega)\\} + \\{\dot{R}\_k(\omega)\\} \\]
+
+Next, we can write the following expressions
+
+\begin{equation}
+\begin{aligned}
+ \\{\Delta H(\omega\_i)\\}\_k &= \\{H(\omega\_i)\\}\_k - \\{H(\omega\_{i+c})\\}\_k \\\\
+ &\approx [\Phi] \\{\Delta g\_k(\omega\_i)\\}\_{N\times 1} \\\\
+ \\{\Delta \dot{H}(\omega\_i)\\}\_k &\approx [\Phi] [s\_r] \\{\Delta g\_k(\omega\_i)\\}\_{N\times 1}
+\end{aligned}
+\end{equation}
+
+If we now consider data at several different frequencies \\(i = 1, 2, \dots, L\\), we can write
+
+\begin{equation}
+ \begin{aligned}
+ [\Delta H\_k]\_{n\times L} &= [\Phi] [\Delta g\_k]\_{N\times L} \\\\
+ [\Delta \dot{H}\_k]\_{n\times L} &= [\Phi] [s\_r] [\Delta g\_k]\_{N\times L}
+ \end{aligned}
+\end{equation}
+
+We can construct an eigenvalue problem:
+\\[ \left( [\Delta \dot{H}\_k]^T - s\_r [\Delta H\_k]^T \right) \\{z\\}\_r = \\{0\\} \\]
+where
+\\[ [z] = [\Phi]^{+T} \\]
+
+If we solve \\([z] = [\Phi]^{+T}\\) using the SVD, we can determine the rank of the FRF matrices and thus the correct number of modes \\(m\\) to be identified, leading to the appropriate eigenvalues \\(s\_r;\ r=1, \dots, m\\).
+
+Then, in order to determine the mode shapes, the modal constants can be recovered from:
+
+\begin{equation}
+\begin{aligned}
+ \begin{Bmatrix} H\_{jk}(\omega\_1) \\\ \vdots \\\ H\_{jk}(\omega\_L) \\\ \end{Bmatrix}\_{L\times 1} = &\begin{bmatrix}
+ (i\omega\_1 - s\_1)^{-1} & (i\omega\_1 - s\_2)^{-1} & \dots \\\\
+ (i\omega\_2 - s\_1)^{-1} & (i\omega\_2 - s\_2)^{-1} & \dots \\\\
+ \vdots & \dots & \dots \\\\
+ \vdots & \dots & (i\omega\_L - s\_m)^{-1} \\\\
+\end{bmatrix}\\\\
+ &\begin{Bmatrix}
+ {}\_1A\_{jk}\\\ \vdots \\\ {}\_mA\_{jk}
+\end{Bmatrix}\_{m\times 1}
+\end{aligned}
+\end{equation}
+
+Using this approach, it is possible to extract a consistent set of modal parameters for the model whose FRFs have been supplied.
+
+
+### Concluding comments {#concluding-comments}
+
+In the task of extracting modal model parameters from measured test data, the analyst must rely on the skill of others who have coded the various analysis algorithms since these are generally complex.
+Because of this, the analyst must develop the various skills which enable him to **select the most appropriate analysis procedure** for each case and to make the best interpretation of the output of these analysis methods.
+
+In this chapter, we have first highlighted the **need for accuracy and reliability in the measured data** that is the source of a modal analysis.
+If these data are not of high quality, the resulting modal model cannot be expected to be any better.
+Thus, attention must be paid at the initial phases to ascertain and to assure the necessary quality of the raw data.
+Question as to the **correct order for the model** and the **most appropriate model for damping** are often foremost among these early interpretations.
+
+A hierarchy of different types of modal analysis procedure have been cataloged, from the simple SDOF one-mode-at-a-time for a single response function, through MDOF methods which reveal several modes at a time, to global analysis methods where several modes are extracted simultaneously from several FRFs.
+
+
+## Derivation of Mathematical Models {#derivation-of-mathematical-models}
+
+
+### Introduction {#introduction}
+
+We consider now the derivation of a mathematical model to describe the dynamic behavior of the test structure.
+Various types of model exists and are suitable in different cases.
+The most important aspect of the modeling process is to **decide exactly which type of model we should seek** before setting out on the acquisition and processing of experimental data.
+
+Three main categories of model are identified:
+
+- **Spatial model**: mass, stiffness and damping
+- **Modal model**: natural frequencies, mode shapes
+- **Response model**: frequency response functions
+
+There exist **complete models** of each type and the more realistic **incomplete models** we are obliged to consider in practical cases.
+
+The three types of model are usually derived as \\(\text{Spatial}\Rightarrow\text{Modal}\Rightarrow\text{Response}\\) for theoretical analysis, and conversely, as \\(\text{Response}\Rightarrow\text{Modal}\Rightarrow\text{Spatial}\\) for an experimental study.
+We may now view them in a different order, according to the facility with which each may be derived from the test data: Modal, Response and then Spatial.
+This reflects the quantity of the completeness of data required in each case.
+
+
+
+A **modal model** can be constructed using just one single mode, and including only a handful of degrees of freedom, even though the structure has many modes and many DOFs.
+Such a model can be built up by adding data from more modes, but it is not a requirement that **all** the modes should be included nor even that all the modes in the frequency range of interest be taken into account.
+Thus such a model may be derived with relatively few, or equally, with many data.
+
+
+
+
+
+The **response type of model** in the form of a FRF matrix, such as the mobility matrix, also needs only to include information concerning a limited number of point of interest: not all the DOFs need be considered.
+However, in this case, it is generally required that the model be valid over a specified frequency range, and here it is necessary that all the modes in that range be included.
+Also, some account should be taken of the modes whose natural frequencies lie outside of the range of interest to allow for the residual effects.
+Thus, the response type of model demands more data to be collected from the tests.
+
+
+
+
+
+A representative **spatial model** can only be obtained if we have measured most of the modes of the structure and if we have made measurements at a great many of the DOFs it possesses.
+This is generally a very demanding requirement to meet, and as result, the derivation of a spatial model from test data is very difficult to achieve.
+
+
+
+This chapter is organized with the following structure:
+
+1. We shall describe what data must be measured in order to construct a suitable model and what checks can be made to access the reliability of the model.
+2. We shall discuss a number of techniques for "**refining**" the model which is obtained from the test so that it matches a number of features of the analytical model.
+ For instance, it is common to extract complex mode shapes from the test data on real structures but the analytical models are usually undamped so that their modes are real.
+3. We may wish to expand our experimental model, or, alternatively, reduce the theoretical ones so that the two models which are to be compared are at least of the same order.
+4. We shall explore some of the properties of the models which can be derived by the means described here.
+
+
+### Modal models {#modal-models}
+
+
+#### Requirements to construct modal model {#requirements-to-construct-modal-model}
+
+A **modal model** of a structure consists of **two matrices**:
+
+- one containing the **natural frequencies** and **damping factors**: the eigenvalues
+- one which describes the **shapes of the corresponding modes**: the eigenvectors
+
+Thus, we can construct such a model with just a single mode, and a more complete model is assembled simply by **adding together a set of these single-mode descriptions**.
+
+The basic method of deriving a modal model is as follows.
+First, we note that from a single FRF curve, \\(H\_{jk}(\omega)\\), it is possible to extract certain modal properties for the \\(r^\text{th}\\) mode by modal analysis:
+
+\begin{equation} \label{eq:modal\_model\_from\_frf}
+ H\_{jk}(\omega) \longrightarrow \omega\_r, \eta\_r, {}\_rA\_{jk}; \quad r=1, m
+\end{equation}
+
+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.
+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:
+
+\begin{equation}
+ H\_{kk}(\omega) \longrightarrow \omega\_r, \eta\_r, {}\_rA\_{jk} \longrightarrow \phi\_{kr}; \quad r=1, m
+\end{equation}
+
+If we then measure an associated transfer FRF using the same excitation position, such as \\(H\_{jk}\\), we are able to deduce the mode shape element corresponding to the new response point \\(\phi\_{jr}\\) using the fact that the relevant modal constants may be combined with those from the point measurement:
+
+\begin{equation}
+ \tcmbox{\phi\_{jr} = \frac{{}\_rA\_{jk}}{\phi\_{kr}}}
+\end{equation}
+
+Hence, we find that in order to derive a modal model referred to a particular set of \\(n\\) coordinates, we need to measure and analysis a set of \\(n\\) FRF curves, **all sharing the same excitation point** and thus constituting one point FRF and \\((n-1)\\) transfer FRFs.
+In terms of the complete FRF matrix, this corresponds to measure the individual FRF of **one entire column**.
+It is also possible to measure one row of the FRF matrix. This corresponds of a set of \\(n\\) FRF curves sharing the same measurement point and varied excitation point.
+
+Often, several additional elements from the FRF matrix would be measured to provide a check, or to replace poor data, and sometimes measurement of a complete **second column** or row might be advised in order to ensure that one or more modes have not been missed by an unfortunate choice of exciter location.
+Indeed, if the exciter is placed at a nodal point of one of the modes, then there would be no indications at all of the existence of that mode because every modal constant would be zero for that mode.
+It may then require more than one measurement to confirm that we are not exciting the structure at a nodal point.
+
+Once all the selected FRF curves have been measured and individually analyzed, we obtain a set of modal properties containing **more data than needed**:
+
+- we may have determined many separate estimates for the natural frequencies and damping factors as these parameters are extracted from each FRF curve
+- in the even we have measured more than one row or one column for the FRF matrix, we also obtain separate estimates for the mode shapes
+
+The simplest procedure is to average all the individual estimates that results in means values \\(\tilde{\omega}\_r\\) and \\(\tilde{\eta}\_r\\).
+In practice, not all the estimates should carry equal weight because some would probably be derived from much more satisfactory curve fits than others.
+A refined procedure would be to calculate a **weighted mean** of all the estimate using the quality factor obtained from the curve-fit procedure.
+
+If we choose to accept a revised value for \\(\omega\_r\\) and \\(\eta\_r\\) of a particular mode, then the value for the modal constant should also be revised:
+
+\begin{equation}
+ {}\_r\tilde{A}\_{jk} = {}\_rA\_{jk}\frac{\tilde{\omega}\_r^2 \tilde{\eta}\_r}{\omega\_r^2 \eta\_r}
+\end{equation}
+
+The final reduced model obtained consist of the two matrices which constitute a modal model, namely:
+\\[ \left[ \omega\_r^2(1 + i\eta\_r) \right]\_{m\times m};\quad \left[ \Phi \right]\_{n\times m} \\]
+
+
+#### Double modes or repeated roots {#double-modes-or-repeated-roots}
+
+When a structure has two modes that are very close in frequency, it may be impossible to derive a true model for the structure.
+All we can define in these circumstances is a single equivalent mode which is, in fact, a combination of the two actual modes that are difficult to identify individually.
+
+However, single equivalent modes can lead to erroneous models and it is very important that we can detect the presence of double modes and that we can identify all the modes which are present.
+
+The only way repeated modes can be detected and identified in a modal test is by using data from more than on reference.
+This means that we must measure FRF data from **more than a single row or column** (as many rows/columns as there are repeated roots).
+
+
+#### Constructing models of NSA structures {#constructing-models-of-nsa-structures}
+
+Structures which are classified as Non-Self-Adjoint (NSA) have **non-symmetric mass**, **stiffness** or **damping matrices**.
+This often occurs in structures with rotating components.
+As a result, we cannot take advantage of the symmetry of the system matrices and just measuring a single row or column of the FRF matrix.
+
+In the case of NSA structures, we are required to measure and analyze the elements in **both a row and a column of the FRF matrix**.
+A mathematical explanation is that this class of system have two types of eigenvectors (left-hand and right-hand) and thus there are twice as many eigenvectors elements to identify.
+
+
+#### Quality checks for modal models {#quality-checks-for-modal-models}
+
+It is important to check the **reliability** of the obtain results.
+There are two such checks that can be recommended for this phase of the process.
+
+First, it is possible to **regenerate FRFs** from the modal model.
+These FRFs can be compared with measured data that as been used for the modal analysis.
+Furthermore, it is also possible to synthesize FRFs that have not yet been measured (and thus not used for the model), and then to measure the corresponding FRF on the structure and to compare.
+This test provides a powerful demonstration of the validity of the modal model.
+
+A second, more demanding but also more convincing, demonstration of the validity of the modal model is to use the model to predict how the dynamic properties of the test structure will change if it is subjected to a small structural modification, such as can be occasioned by adding a small mass at a selected point.
+Then such modification can be made and the real structure, measurements done and compare with the modified model.
+
+
+### Refinement of modal models {#refinement-of-modal-models}
+
+
+#### Need for model refinement {#need-for-model-refinement}
+
+Several differences exist between most test-derived models and analytical models that make their comparison difficult.
+
+The first difference are on the **mode shapes**:
+
+- **test-derived**: generally complex
+- **analytical**: usually real if we use an undamped model
+
+Objective comparison between complex mode shapes and real mode shapes is then not possible and some refinement of one of the two sets are required.
+
+A second incompatibility lies in the difference in the **order of the models**:
+
+- **test-derived**: relatively small order given by the number of measured DOFs \\(n\\)
+- **analytical**: generally an order of magnitude greater than \\(n\\)
+
+There is then a desire to **refine** one or other model to **bring them both to the same size** for meaningful comparison.
+
+However, all the refinements involve **approximations** which means that a compromise has been made in order to achieve the greater degree of compatibility which is desired.
+
+
+#### Complex-to-real conversion {#complex-to-real-conversion}
+
+As we usually don't know the nature, extend and distribution of damping present in the system, the analytical model is chosen to be **undamped**.
+We wish here to be able to determine what would be the mode shapes of the tested structure if, by some means, we could remove the damping but leave everything else the same.
+Then we should be able to compare the modes.
+
+
+##### Simple method {#simple-method}
+
+This simple method is to convert the mode shape vectors from complex to real by taking the modulus of each element and by assigning a phase to each of \\(\SI{0}{\degree}\\) or \\(\SI{180}{\degree}\\).
+
+Any phase angle of a complex mode shape element which is between \\(\SI{-90}{\degree}\\) and \\(\SI{90}{\degree}\\) is set to \\(\SI{0}{\degree}\\), while those between \\(\SI{90}{\degree}\\) and \\(\SI{270}{\degree}\\) are set to \\(\SI{180}{\degree}\\).
+This procedure can become difficult to apply in borderline cases when the phase is poorly defined.
+
+
+##### Multi point excitation - Asher's method {#multi-point-excitation-asher-s-method}
+
+In this method, the test-derived model based on complex modes is used to synthesize the response that would be produced by the application of several simultaneous harmonic forces in order to establish what those forces would need to be in order to produce a mono-modal response vector.
+
+If the optimum set of excitation forces for a given mode can be found, then they represent the forces that are actually being generated by the damping in the system at resonance of that mode.
+We can then deduce the dynamic properties of the structure with these effects removed.
+
+The sequence of steps required to determine this solution is as follows:
+
+1. Compute \\([\alpha(\omega)]\\) from the complex modal model
+2. Determine the undamped system natural frequencies \\(\omega\_r\\) by solving the equation \\(\det|\text{Re}[\alpha(\omega)]|=0\\)
+3. Calculate the mono-phase vector for each mode of interest using \\(\text{Re}[\alpha(\omega)]\\{\hat{F}\\} = \\{0\\}\\)
+4. Calculate the undamped system mode shapes \\(\\{\psi\_u\\}\\) using the just-derived force vector: \\(\\{\psi\_u\\} = \text{Im}[\alpha(\omega)]\\{\hat{F}\\}\\)
+
+
+##### Matrix transformation {#matrix-transformation}
+
+We here seek a numerical solution to the expression linking the known damped modes and the unknown undamped modes.
+The steps are:
+
+1. Assume that \\(\text{Re}[T\_1]\\) is unity and calculate \\(\text{Im}[T\_1]\\) from
+ \\[ \text{Im}[T\_1] = -[\text{Re}[\phi\_d]]^T [\text{Re}[\phi\_d]]^{-1} [\text{Re}[\phi\_d]]^T \text{Im}[\phi\_d] \\]
+2. calculate \\([M\_1]\\) and \\([K\_1]\\) from
+ \\[ [M\_1] = [T\_1]^T[T\_1]; \quad [K\_1] = [T\_1]^T[\lambda^2][T\_1] \\]
+3. Solve the eigen-problem formed by \\([M\_1]\\) and \\([K\_1]\\) leading to
+ \\[ [\omega\_r^2]; \quad [T\_2] \\]
+4. Calculate the real modes using
+ \\[ [\phi\_u] = [\phi\_d][T\_1][T\_2] \\]
+
+
+#### Expansion of models {#expansion-of-models}
+
+
+
+An important model refinement is called **expansion** and consist of the addition to the actually measured modal data of estimates for selected DOFs which were not measured for one reason or another.
+
+
+
+Prior to conducting each modal test, decisions have to be made as to **which of the many DOFs** that exist on the structure **will be measured**.
+These decisions are made for various practical reasons:
+
+- Limited test time
+- Inaccessibility of some DOFs
+- Anticipated low importance of motion in certain DOFs
+
+**Three approaches** to the expansion of measured modes will be mentioned here:
+
+1. **Geometric interpolation** using spline functions
+2. Expansion using the analytical model's **spatial properties**
+3. Expansion using the analytical model's **modal properties**
+
+
+
+In all three approached, we are in effect seeking a transformation matrix \\([T]\\) that allows us to construct a long eigenvector \\(\\{\phi\\}\_{N\times 1}\\) from knowledge of a short (incomplete) one \\(\\{\phi\\}\_{n\times 1}\\):
+\\[ \\{\phi\\}\_{N\times 1} = [T]\_{N\times n} \\{\phi\\}\_{n\times 1} \\]
+
+
+
+
+##### Interpolation {#interpolation}
+
+Simple interpolation has a limited range of application and can only be used on structures which have **large regions of relatively homogeneous structure**: those with joints of abrupt changes are must less likely to respond to this form of expansion.
+
+The method is simply geometric interpolation between the measured points themselves, such as by fitting a polynomial function through the measured points.
+
+
+##### Expansion using theoretical spatial model - Kidder's method {#expansion-using-theoretical-spatial-model-kidder-s-method}
+
+This interpolation uses a **theoretical model's mass and stiffness matrices** in a form of an inverse Guyan reduction procedure.
+
+If we **partition** the eigenvector of interest, \\(\\{\phi\_A\\}\_r\\), into:
+
+- the DOFs to be included: \\(\\{{}\_A\phi\_1\\}\_r\\)
+- the DOFs which are not available from the measurements: \\(\\{{}\_A\phi\_2\\}\_r\\)
+
+then we may write:
+
+\begin{equation\*}
+ \left( \begin{bmatrix}
+ {}\_AK\_{11} & {}\_AK\_{12} \\\\
+ {}\_AK\_{21} & {}\_AK\_{22}
+ \end{bmatrix} - \omega\_r^2 \begin{bmatrix}
+ {}\_AM\_{11} & {}\_AM\_{12} \\\\
+ {}\_AM\_{21} & {}\_AM\_{22}
+ \end{bmatrix} \right) \begin{bmatrix}
+ {}\_A\phi\_1 \\\\
+ {}\_A\phi\_2
+ \end{bmatrix} = \\{0\\}
+\end{equation\*}
+
+We can use this relationship between the measured and unmeasured DOFs as the basic for an expansion of the incomplete measured mode shapes:
+\\[ \\{{}\_A\phi\_2\\}\_r = [T\_{21}]\\{{}\_A\phi\_1\\}\_r \\]
+with
+\\[ [T\_{12}] = - \left( [{}\_AK\_{22}] - \omega\_r^2[{}\_AM\_{22}] \right)^{-1} \left( [{}\_AK\_{21}] - \omega\_r^2[{}\_AM\_{21}] \right) \\]
+
+The relation between the incomplete measured vector to the complete expanded vector is then
+
+\begin{equation}
+ \tcmbox{ \\{\tilde{\phi}\_X\\}\_r = \begin{Bmatrix}
+ {}\_X\phi\_1 \\\ {}\_X\tilde{\phi}\_2
+\end{Bmatrix} = \begin{bmatrix}
+ [I] \\\ [T\_{21}]
+\end{bmatrix} \\{{}\_X\phi\_1\\}\_r }
+\end{equation}
+
+
+##### Expansion using analytical model mode shapes {#expansion-using-analytical-model-mode-shapes}
+
+This method uses the analytical model for the interpolation, but is based on the **mode shapes derived from the analytical modal spatial matrices**, rather than on these matrices themselves.
+
+We may write the following expression which relates the experimental model mode shapes to those of the analytical model:
+
+\begin{equation\*}
+ \begin{bmatrix}
+ {}\_X\phi\_1 \\\\
+ {}\_X\phi\_2
+\end{bmatrix} = \begin{bmatrix}
+ [{}\_A\Phi\_{11}] & [{}\_A\Phi\_{12}] \\\\
+ [{}\_A\Phi\_{21}] & [{}\_A\Phi\_{22}]
+\end{bmatrix} \begin{bmatrix}
+ \gamma\_1 \\\\
+ \gamma\_2
+\end{bmatrix}\_r
+\end{equation\*}
+
+The basic of this method is to assume that the measured mode shape submatrix can be represented exactly by the simple relationship (which assumes that \\(\\{\gamma\_2\\}\_r\\) can be taken to be zero):
+
+\begin{equation}
+ \\{{}\_X\phi\_1\\}\_r = [{}\_A\Phi\_{11}] \\{\gamma\_1\\}\_r
+\end{equation}
+
+so that an estimate can be provided for the unmeasured part of the eigenvector from
+
+\begin{equation}
+ \begin{aligned}
+ \\{{}\_X\tilde{\phi}\_2\\} &= [T\_{21}] \\{{}\_X\phi\_1\\}\_r \\\\
+ &= [{}\_A\Phi\_{21}][{}\_A\Phi\_{11}]^{-1} \\{{}\_X\phi\_1\\}\_r
+ \end{aligned}
+\end{equation}
+
+Thus, we can write the full transformation as:
+
+\begin{equation\*}
+ \tcmbox{ \\{\tilde{\phi}\_X\\}\_r = \begin{Bmatrix}
+ {}\_X\phi\_1 \\\ {}\_X\tilde{\phi}\_2
+\end{Bmatrix} = \begin{bmatrix}
+ [{}\_A\Phi\_{11}] \\\ [{}\_A\Phi\_{21}]
+\end{bmatrix} [{}\_A\Phi\_{11}]^{-1} \\{{}\_X\phi\_1\\}\_r }
+\end{equation\*}
+
+This formula can be generalized to a single expression which covers several measured modes:
+
+\begin{equation\*}
+ \tcmbox{[\tilde{\Phi}\_X]\_{N\times m\_X} = \underbrace{[\Phi\_A]\_{N\times m\_A} [{}\_A\Phi\_{11}]\_{m\_A \times n}^+}\_{[T]\_{N\times n}} [{}\_A\Phi\_1]\_{n\times m\_X}}
+\end{equation\*}
+
+where \\(m\_X\\) and \\(m\_A\\) are the number of experimental and analytical modes used, respectively.
+
+Other formulations for \\([T]\\) are possible, they involve various combinations of the available experimental mode shape data and those from the analytical model:
+
+\begin{equation}
+ \begin{aligned}
+ [T\_{(1)}] &= [\Phi\_A][{}\_A\Phi\_1]^+ & \text{A model - based} \\\\
+ [T\_{(2)}] &= [\Phi\_A][{}\_X\Phi\_1]^+ & \text{X model - based} \\\\
+ [T\_{(3)}] &= \begin{bmatrix}
+ {}\_X\Phi\_1 \\\\
+ {}\_A\Phi\_2
+ \end{bmatrix}[{}\_A\Phi\_1]^+ & \text{Mixed/A - based} \\\\
+ [T\_{(4)}] &= \begin{bmatrix}
+ {}\_X\Phi\_1 \\\\
+ {}\_A\Phi\_2
+ \end{bmatrix}[{}\_X\Phi\_1]^+ & \text{Mixed/X - based}
+ \end{aligned}
+\end{equation}
+
+It must be pointed out that all the above formula are approximate because of the initial assumption that the higher modes are not required to be included in the process (that \\(\\{\gamma\_2\\}\\) is zero).
+
+
+#### Reduction of models {#reduction-of-models}
+
+The model reduction, which is the inverse of the expansion process, is used when it is decided to obtain compatibility between two otherwise disparate models by reducing the size of the larger of the two models (almost always, the analytical model).
+
+Model reduction has less importance nowadays as computing power is widely available and because such reduction introduces approximations.
+
+There are basically **two different types of model reduction**, both of which are applied to the spatial model (as opposed to the modal model as is the case in model expansion), and both achieve the same end result of yielding a smaller order model, with system matrices which are \\(n\times n\\) instead of \\(N\times N\\):
+
+1. a **condensed model** which seeks to represent the entire structure completely at a smaller number of DOFs. This type of model introduces approximation.
+2. a **reduced model** which has removed information related to the DOFs that are eliminated from the model, and which is thus an incomplete model. However, for the retained DOFs, no information is lost.
+
+Let's summarize the basic feature of model reduction by **condensation**.
+The basic equation of motion for the original model can be expressed as:
+\\[ [M] \ddot{x} + [K]\\{x\\} = \\{f\\} \\]
+and this can be partitioned into the **kept DOFs** \\(\\{x\_1\\}\\) and the **eliminated DOFs** \\(\\{x\_2\\}\\) (which by definition cannot have any excitation forces applied to them):
+
+\begin{equation\*}
+\begin{bmatrix}
+ M\_{11} & M\_{12} \\\\
+ M\_{21} & M\_{22}
+\end{bmatrix} \begin{Bmatrix}
+ \ddot{x}\_1 \\\ \ddot{x}\_2
+\end{Bmatrix} + \begin{bmatrix}
+ K\_{11} & K\_{12} \\\\
+ K\_{21} & K\_{22}
+\end{bmatrix} \begin{Bmatrix}
+ x\_1 \\\ x\_2
+\end{Bmatrix} = \begin{Bmatrix}
+ f\_1 \\\ 0
+\end{Bmatrix}
+\end{equation\*}
+
+A relationship between the kept and eliminated DOFs can be written in the form:
+
+\begin{equation}
+ \begin{Bmatrix}
+ x\_1 \\\ x\_2
+\end{Bmatrix}\_{N\times 1} = \begin{bmatrix}
+ [I] \\\ [T]
+\end{bmatrix}\_{N\times n} \\{x\_1\\}\_{n\times 1}
+\end{equation}
+
+where the transformation matrix \\([T]\\) can be defined by
+
+\begin{equation\*}
+ [T] = (1 - \beta)\left(-[K\_{22}]^{-1}[K\_{21}]\right) + \beta\left(-[M\_{22}]^{-1}[M\_{21}]\right)
+\end{equation\*}
+
+in which \\(\beta\\) is a reduction coefficient whose limiting values are \\(\beta = 0\\) for **static reduction** and \\(\beta = 1\\) for **dynamic reduction**.
+
+The **reduced mass and stiffness matrices** which are produced by this process are:
+
+\begin{align\*}
+ \left[M^R\right]\_{n\times n} &= \begin{bmatrix}[I] & [T]^T\end{bmatrix}\_{n\times N} \begin{bmatrix}
+ M\_{22} & M\_{21} \\\ M\_{12} & M\_{22}
+\end{bmatrix}\_{N\times N} \begin{bmatrix}
+ [I] \\\ [T]
+\end{bmatrix}\_{N\times n}\\\\
+ \left[K^R\right]\_{n\times n} &= \begin{bmatrix}[I] & [T]^T\end{bmatrix}\_{n\times N} \begin{bmatrix}
+ K\_{22} & K\_{21} \\\ K\_{12} & K\_{22}
+\end{bmatrix}\_{N\times N} \begin{bmatrix}
+ [I] \\\ [T]
+\end{bmatrix}\_{N\times n}
+\end{align\*}
+
+The two limiting cases of static and dynamic reduction are of particular interest.
+In each case, one of the two system matrices is unchanged and the other one is:
+
+\begin{align\*}
+ \beta = 1:\ &[M^{R\text{static}}] = [M\_{12}] \left(-[M\_{22}]^{-1}[M\_{21}]\right)^{-1} + [M\_{11}]\\\\
+ &[K^{R\text{static}}] = [K]\\\\
+ \beta = 0:\ &[M^{R\text{dynamic}}] = [M]\\\\
+ &[K^{R\text{dynamic}}] = [K\_{12}] \left(-[K\_{22}]^{-1}[K\_{21}]\right)^{-1} + [K\_{11}]
+\end{align\*}
+
+These reduction procedure can provide useful approximate models of the structure if an optimum choice of which DOFs to retain and which can be eliminated is made.
+However, a reduced theoretical model of this type does not correspond to a similarly low-order model which is obtained from experiments since that is formed simply by ignoring the eliminated DOFs.
+The measured data for the included DOFs are the same no matter how many DOFs are eliminated.
+Thus, there are inherent difficulties involved in using this mixture of condensed (but complete) theoretical models and reduced (but incomplete) experimental models.
+
+
+### Display of modal models {#display-of-modal-models}
+
+One of the attraction of the modal model is possibility of obtaining a **graphic display** of its form by plotting the mode shapes.
+
+There are basically two choices for the graphical display of a modal model:
+
+- a **static plot**
+- a **dynamic** (animated) **display**
+
+
+#### Static Displays {#static-displays}
+
+
+##### Deflected shapes {#deflected-shapes}
+
+A static display is often adequate for depicting relatively simple mode shapes.
+Measured coordinates of the test structure are first linked as shown on [Figure 31](#figure--fig:static-display) (a).
+Then, the grid of measured coordinate points is redrawn on the same plot but this time displaced by an amount proportional to the corresponding element in the mode shape vector as shown on [Figure 31](#figure--fig:static-display) (b).
+The elements in the vector are scaled according the normalization process used (usually mass-normalized), and their absolute magnitudes have no particular significance.
+
+
+
+{{< figure src="/ox-hugo/ewins00_static_display.png" caption="Figure 31: Static display of modes shapes. (a) basic grid (b) single-frame deflection pattern (c) multiple-frame deflection pattern (d) complex mode (e) Argand diagram - quasi-real mode (f) Argand diagram - complex mode" >}}
+
+It is customary to select the largest eigenvector element and to scale the whole vector by an amount that makes that displacement on the plot a viable amount.
+
+
+##### Multiple frames {#multiple-frames}
+
+If a series of deflection patterns that has been computed for a different instant of time are superimposed, we obtain a result as shown on [Figure 31](#figure--fig:static-display) (c).
+Some indication of the motion of the structure can be obtained, and the points of zero motion (nodes) can be clearly identified.
+
+It is also possible, in this format, to give some indication of the essence of complex modes, as shown in [Figure 31](#figure--fig:static-display) (d).
+Complex modes do not, in general, exhibit fixed nodal points.
+
+
+##### Argand diagram plots {#argand-diagram-plots}
+
+Another form of representation which is useful for complex modes is the representation of the individual complex elements of the eigenvectors on a polar plot, as shown in the examples of [Figure 31](#figure--fig:static-display) (e) and (f).
+Although there is no attempt to show the physical deformation of the actual structure in this format, the complexity of the mode shape is graphically displayed.
+
+
+#### Dynamic Display {#dynamic-display}
+
+The coordinates for the basic picture are computed and stored for multiple fractions of a cycle.
+Then, 10 to 20 frames are stored and displayed with an update rate which is suitable to give a clear picture of the distortion of the structure during vibration.
+
+The dynamic character of animation is the only really effective way to view modal complexity and is very useful to display complex modes.
+
+
+#### Interpretation of mode shape displays {#interpretation-of-mode-shape-displays}
+
+There are a number of features associated with mode shape displays that warrant a mention in the context of ensuring that the **correct interpretation** is made from viewing these displays.
+
+The first concerns the consequences of viewing an **incomplete model**.
+In that case, there are no mode shape data from some of the points which comprise the grid which outlines the structure, and the indicated result is zero motion of those DOFs and this can be very **misleading**.
+For instance, if we measure the displacement of grid points in only one direction, \\(x\\) for instance, then the shape display will show significant x-direction motion of those points with no motion in the other transverse directions.
+We then tend to interpret this as a motion which is purely in the x-direction which may be clearly not true.
+
+The second problem arises when the **grid of measurement points** that is chosen to display the mode shapes is **too coarse in relation to the complexity of the deformation patterns** that are to be displayed.
+This can be illustrated using a very simple example: suppose that our test structure is a straight beam, and that we decide to use just three response measurements points.
+If we consider the first six modes of the beam, whose mode shapes are sketched in [Figure 32](#figure--fig:beam-modes), then we see that with this few measurement points, modes 1 and 5 look the same as do modes 2, 4 and 6.
+All the higher modes will be indistinguishable from these first few.
+This is a well known problem of **spatial aliasing**.
+
+
+
+{{< figure src="/ox-hugo/ewins00_beam_modes.png" caption="Figure 32: Misinterpretation of mode shapes by spatial aliasing" >}}
+
+
+### Response models {#response-models}
+
+
+
+There are two main requirements demanded for a response model:
+
+- the capability of regeneration "theoretical" curves for the FRFs actually measured and analyzed
+- synthesizing the other response functions which were not measured
+
+
+
+In general, the form of response model with which we are concerned is an **FRF matrix** whose order is dictated by the number of coordinates \\(n\\) included in the test.
+Also, as explained, it is normal in practice to measured and to analyze just a **subset of the FRF matrix** but rather to measure the full FRF matrix.
+Usually **one column** or **one row** with a few additional elements are measured.
+Thus, if we are to construct an acceptable response model, it will be necessary to synthesize those elements which have not been directly measured.
+However, in principle, this need present no major problem as it is possible to compute the full FRF matrix from a modal model using:
+
+\begin{equation} \label{eq:regenerate\_full\_frf\_matrix}
+ \tcmbox{[H]\_{n\times n} = [\Phi]\_{n\times m} [\lambda\_r^2 - \omega^2]\_{m\times m}^{-1} [\Phi]\_{m\times n}^T}
+\end{equation}
+
+
+#### Regenerated FRF curves {#regenerated-frf-curves}
+
+It is usual practice to regenerate an FRF curve using the results from the modal analysis as a mean of **checking the success of that analysis**.
+
+It should be noted that in order to construct an acceptable response model, it is essential that all the modes in the frequency range of interest be included, and that suitable residual terms are added to take account of out-of-range modes.
+In this respect, the demands of the response model are more stringent that those of the modal model.
+
+
+#### 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**.
+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.
+
+
+
+As an example, suppose that FRF data \\(H\_{11}\\) and \\(H\_{21}\\) are measured and analyzed in order to synthesize the FRF \\(H\_{22}\\) initially unmeasured.
+The predict curve is compared with the measurements on [ 24](#org-target--fig-H22-without-residual).
+Clearly, the agreement is poor and would tend to indicate that the measurement/analysis process had not been successful.
+However, the synthesized curve contained only those terms relating to the modes which had actually been studied from \\(H\_{11}\\) and \\(H\_{21}\\) and this set of modes did not include **all** the modes of the structure.
+Thus, \\(H\_{22}\\) **omitted the influence of out-of-range modes**.
+The inclusion of these two additional terms (obtained here only after measuring and analyzing \\(H\_{22}\\) itself) resulted in the greatly improved predicted vs measured comparison shown in [ 24](#org-target--fig-H22-with-residual).
+
+
+
+|  |  |
+|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
+| Using measured modal data only | After inclusion of residual terms |
+| width=\linewidth | width=\linewidth |
+
+The appropriate expression for a "correct" response model, derived via a set of modal properties is thus
+
+\begin{equation}
+ [H] = [\Phi] [\lambda\_r^2 - \omega^2]^{-1} [\Phi]^T + [\text{Res}]
+\end{equation}
+
+In order to obtain all the data necessary to form such a model, we must first derive the modal model on which it is based and then find some means of **determining the elements in the residual matrix** \\([\text{Res}]\\).
+This latter task may be done in several ways:
+
+- It may be most accurately achieved by **measuring all** (or at least over half) **of the elements in the FRF matrix**, but this would increase a lot the quantity of data to be measured.
+- **Extend the frequency range of the modal test** beyond that over which the model is eventually required.
+ In this way, much of the content of the residual terms is included in separate modes and their actual magnitudes can be reduced to relatively unimportant dimensions.
+- Try to access **which of the many FRF elements are liable to need large residual terms** and to make sure that these are included in the list of those which are measured and analyzed.
+ We noted earlier that it is the point mobilities which are expected to have the highest-valued residuals and the remote transfers which will have the smallest.
+ Thus, the significant terms in the \\([\text{Res}]\\) matrix will generally be grouped close to the leading diagonal, and this suggests **making measurements of most of the point mobility parameters**.
+
+
+#### Direct measurement {#direct-measurement}
+
+It should be noted that it is quite possible to develop a response model by measuring and analyzing all the elements in one half of the FRF matrix (this being symmetric) and by storing the results of this process without constructing a modal model.
+This procedure clearly solves the residual problem discussed above, but it will introduce **inconsistencies** into to model which renders it unsatisfactory.
+
+
+#### Transmissibilities {#transmissibilities}
+
+One vibration parameter which has not been mentioned so far is that of **transmissibility**.
+This is a quantity which is quite widely used in vibration engineering practice to indicate the relative vibration levels between two points.
+
+In general, transmissibility is considered to be a frequency dependent response function \\(T\_{jk}(\omega)\\) which defines the ratio between the response levels at two DOFs \\(j\\) and \\(k\\).
+Simply defined, we can write:
+
+\begin{equation}
+ T\_{jk} (\omega) = \frac{X\_j e^{i\omega t}}{X\_k e^{i\omega t}}
+\end{equation}
+
+but, in fact, we need also to **specify the excitation conditions that give rise to the two responses** in question and these are missing from the above definition which is thus not rigorous.
+It does not give us enough information to be able to reproduce the conditions which have been used to measured \\(T\_{jk}(\omega)\\).
+
+
+
+If the **transmissibility** is measured during a modal test which has a single excitation, say at DOF \\(i\\), then we can define the transmissibility thus obtained more precisely:
+
+\begin{equation}
+ {}\_iT\_{jk}(\omega) = \frac{H\_{ji}(\omega)}{H\_{ki}(\omega)}
+\end{equation}
+
+
+
+In general, the transmissibility **depends significantly on the excitation point** (\\({}\_iT\_{jk}(\omega) \neq {}\_qT\_{jk}(\omega)\\) where \\(q\\) is a different DOF than \\(i\\)) and it is shown on [Figure 33](#figure--fig:transmissibility-plots).
+This may explain why transmissibilities are not widely used in modal analysis.
+
+
+
+{{< figure src="/ox-hugo/ewins00_transmissibility_plots.png" caption="Figure 33: Transmissibility plots" >}}
+
+
+#### Base excitation {#base-excitation}
+
+The one application area where transmissibilities can be used as part of modal testing is in the case of **base excitation**.
+Base excitation is a type of test where the input is measured as a response at the drive point \\(x\_0(t)\\), instead of as a force \\(f\_1(t)\\), as illustrated in [Table 25](#table--fig:base-excitation-configuration).
+
+We can show that it is possible to determine, from measurements of \\(x\_i\\) and \\(x\_0\\), modal properties of natural frequency, damping factor and **unscaled** mode shape for each of the modes that are visible in the frequency range of measurement.
+The fact that the excitation force is not measured is responsible for the lack of formal scaling of the mode shapes.
+
+
+
+
+|  |  |
+|-------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
+| Conventional modal test setup | Base excitation setup |
+| height=4cm | height=4cm |
+
+
+### Spatial models {#spatial-models}
+
+It would appear from the basic orthogonality properties of the modal model that there exists a simple means of constructing a spatial model from the modal model, thus this is not so.
+We have that:
+
+\begin{equation}
+ \begin{aligned}
+ [\Phi]^T[M][\Phi] &= [I]\\\\
+ [\Phi]^T[K][\Phi] &= [\lambda\_r^2]
+ \end{aligned}
+\end{equation}
+
+from which is would appear that we can write
+
+\begin{equation} \label{eq:m\_k\_from\_modes}
+ \begin{aligned}
+ [M] &= [\Phi]^{-T} [I] [\Phi]^{-1}\\\\
+ [K] &= [\Phi]^{-T} [\lambda\_r^2] [\Phi]^{-1}
+ \end{aligned}
+\end{equation}
+
+However, equation \ref{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.
+One step which can be made using the incomplete data is the construction of "pseudo" flexibility and inverse-mass matrices.
+This is accomplished using the above equation in the form:
+
+\begin{equation}
+ \begin{aligned}
+ [K]\_{n\times n}^{-1} &= [\Phi]\_{n\times m} [\lambda\_r^2]\_{m\times m}^{-1} [\Phi]\_{m\times n}^T\\\\
+ [M]\_{n\times n}^{-1} &= [\Phi]\_{n\times m} [\Phi]\_{m\times n}^T
+ \end{aligned}
+\end{equation}
+
+Because the rank of each pseudo matrix is less than its order, it cannot be inverted and so we are unable to construct stiffness or mass matrix from this approach.
+
+
+## Bibliography {#bibliography}
+
+
+
Ewins, D. J. 2000. Modal Testing: Theory, Practice and Application, Second Edition. Research Studies Press. Baldock, Hertfordshire, England Philadelphia, PA: Wiley-Blackwell.
+
diff --git a/content/book/fleming14_desig_model_contr_nanop_system.md b/content/book/fleming14_desig_model_contr_nanop_system.md
new file mode 100644
index 0000000..30d64ae
--- /dev/null
+++ b/content/book/fleming14_desig_model_contr_nanop_system.md
@@ -0,0 +1,858 @@
++++
+title = "Design, modeling and control of nanopositioning systems"
+author = ["Dehaeze Thomas"]
+description = "Talks about various topics related to nano-positioning systems."
+keywords = ["Control", "Metrology", "Flexible Joints"]
+draft = false
++++
+
+Tags
+: [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}})
+
+Reference
+: (Fleming and Leang 2014)
+
+Author(s)
+: Fleming, A. J., & Leang, K. K.
+
+Year
+: 2014
+
+
+## Introduction to Nanotechnology {#introduction-to-nanotechnology}
+
+
+## Introduction to Nanopositioning {#introduction-to-nanopositioning}
+
+
+## Scanning Probe Microscopy {#scanning-probe-microscopy}
+
+
+## Challenges with Nanopositioning Systems {#challenges-with-nanopositioning-systems}
+
+
+### Hysteresis {#hysteresis}
+
+
+### Creep {#creep}
+
+
+### Thermal Drift {#thermal-drift}
+
+
+### Mechanical Resonance {#mechanical-resonance}
+
+
+## Control of Nanopositioning Systems {#control-of-nanopositioning-systems}
+
+
+### Feedback Control {#feedback-control}
+
+
+### Feedforward Control {#feedforward-control}
+
+
+## Book Summary {#book-summary}
+
+
+### Assumed Knowledge {#assumed-knowledge}
+
+
+### Content Summary {#content-summary}
+
+
+## References {#references}
+
+
+## The Piezoelectric Effect {#the-piezoelectric-effect}
+
+
+## Piezoelectric Compositions {#piezoelectric-compositions}
+
+
+## Manufacturing Piezoelectric Ceramics {#manufacturing-piezoelectric-ceramics}
+
+
+## Piezoelectric Transducers {#piezoelectric-transducers}
+
+
+## Application Considerations {#application-considerations}
+
+
+## Response of Piezoelectric Actuators {#response-of-piezoelectric-actuators}
+
+
+## Modeling Creep and Vibration in Piezoelectric Actuators {#modeling-creep-and-vibration-in-piezoelectric-actuators}
+
+
+## Chapter Summary {#chapter-summary}
+
+
+## References {#references}
+
+
+## Piezoelectric Tube Nanopositioners {#piezoelectric-tube-nanopositioners}
+
+
+### 63mm Piezoelectric Tube {#63mm-piezoelectric-tube}
+
+
+### 40mm Piezoelectric Tube Nanopositioner {#40mm-piezoelectric-tube-nanopositioner}
+
+
+## Piezoelectric Stack Nanopositioners {#piezoelectric-stack-nanopositioners}
+
+
+### Phyisk Instrumente P-734 Nanopositioner {#phyisk-instrumente-p-734-nanopositioner}
+
+
+### Phyisk Instrumente P-733.3DD Nanopositioner {#phyisk-instrumente-p-733-dot-3dd-nanopositioner}
+
+
+### Vertical Nanopositioners {#vertical-nanopositioners}
+
+
+### Rotational Nanopositioners {#rotational-nanopositioners}
+
+
+### Low Temperature and UHV Nanopositioners {#low-temperature-and-uhv-nanopositioners}
+
+
+### Tilting Nanopositioners {#tilting-nanopositioners}
+
+
+### Optical Objective Nanopositioners {#optical-objective-nanopositioners}
+
+
+## References {#references}
+
+
+## Introduction {#introduction}
+
+
+## Operating Environment {#operating-environment}
+
+
+## Methods for Actuation {#methods-for-actuation}
+
+
+## Flexure Hinges {#flexure-hinges}
+
+
+### Introduction {#introduction}
+
+
+### Types of Flexures {#types-of-flexures}
+
+
+### Flexure Hinge Compliance Equations {#flexure-hinge-compliance-equations}
+
+
+### Stiff Out-of-Plane Flexure Designs {#stiff-out-of-plane-flexure-designs}
+
+
+### Failure Considerations {#failure-considerations}
+
+
+### Finite Element Approach for Flexure Design {#finite-element-approach-for-flexure-design}
+
+
+## Material Considerations {#material-considerations}
+
+
+### Materials for Flexure and Platform Design {#materials-for-flexure-and-platform-design}
+
+
+### Thermal Stability of Materials {#thermal-stability-of-materials}
+
+
+## Manufacturing Techniques {#manufacturing-techniques}
+
+
+## Design Example: A High-Speed Serial-Kinematic Nanopositioner {#design-example-a-high-speed-serial-kinematic-nanopositioner}
+
+
+### State-of-the-Art Designs {#state-of-the-art-designs}
+
+
+### Tradeoffs and Limitations in Speed {#tradeoffs-and-limitations-in-speed}
+
+
+### Serial- Versus Parallel-Kinematic Configurations {#serial-versus-parallel-kinematic-configurations}
+
+
+### Piezoactuator Considerations {#piezoactuator-considerations}
+
+
+### Preloading Piezo-Stack Actuators {#preloading-piezo-stack-actuators}
+
+
+### Flexure Design for Lateral Positioning {#flexure-design-for-lateral-positioning}
+
+
+### Design of Vertical Stage {#design-of-vertical-stage}
+
+
+### Fabrication and Assembly {#fabrication-and-assembly}
+
+
+### Drive Electronics {#drive-electronics}
+
+\*\*\*\*0 Experimental Results
+
+
+## Chapter Summary {#chapter-summary}
+
+
+## References {#references}
+
+
+## Introduction {#introduction}
+
+
+## Sensor Characteristics {#sensor-characteristics}
+
+
+### Calibration and Nonlinearity {#calibration-and-nonlinearity}
+
+
+### Drift and Stability {#drift-and-stability}
+
+
+### Bandwidth {#bandwidth}
+
+
+### Noise {#noise}
+
+
+### Resolution {#resolution}
+
+
+### Combining Errors {#combining-errors}
+
+
+### Metrological Traceability {#metrological-traceability}
+
+
+## Nanometer Position Sensors {#nanometer-position-sensors}
+
+
+### Resistive Strain Sensors {#resistive-strain-sensors}
+
+
+### Piezoresistive Strain Sensors {#piezoresistive-strain-sensors}
+
+
+### Piezoelectric Strain Sensors {#piezoelectric-strain-sensors}
+
+
+### Capacitive Sensors {#capacitive-sensors}
+
+
+### MEMs Capacitive and Thermal Sensors {#mems-capacitive-and-thermal-sensors}
+
+
+### Eddy-Current Sensors {#eddy-current-sensors}
+
+
+### Linear Variable Displacement Transformers {#linear-variable-displacement-transformers}
+
+
+### Laser Interferometers {#laser-interferometers}
+
+
+### Linear Encoders {#linear-encoders}
+
+
+## Comparison and Summary {#comparison-and-summary}
+
+
+## Outlook and Future Requirements {#outlook-and-future-requirements}
+
+
+## References {#references}
+
+
+## Introduction {#introduction}
+
+
+## Shunt Circuit Modeling {#shunt-circuit-modeling}
+
+
+### Open-Loop {#open-loop}
+
+
+### Shunt Damping {#shunt-damping}
+
+
+## Implementation {#implementation}
+
+
+## Experimental Results {#experimental-results}
+
+
+### Tube Dynamics {#tube-dynamics}
+
+
+### Amplifier Performance {#amplifier-performance}
+
+
+### Shunt Damping Performance {#shunt-damping-performance}
+
+
+## Chapter Summary {#chapter-summary}
+
+
+## References {#references}
+
+
+## Introduction {#introduction}
+
+
+## Experimental Setup {#experimental-setup}
+
+
+## PI Control {#pi-control}
+
+
+## PI Control with Notch Filters {#pi-control-with-notch-filters}
+
+
+## PI Control with IRC Damping {#pi-control-with-irc-damping}
+
+
+## Performance Comparison {#performance-comparison}
+
+
+## Noise and Resolution {#noise-and-resolution}
+
+
+## Analog Implementation {#analog-implementation}
+
+
+## Application to AFM Imaging {#application-to-afm-imaging}
+
+
+## References {#references}
+
+
+## Introduction {#introduction}
+
+
+## Modeling {#modeling}
+
+
+### Actuator Dynamics {#actuator-dynamics}
+
+
+### Sensor Dynamics {#sensor-dynamics}
+
+
+### Sensor Noise {#sensor-noise}
+
+
+### Mechanical Dynamics {#mechanical-dynamics}
+
+
+### System Properties {#system-properties}
+
+
+### Example System {#example-system}
+
+
+## Damping Control {#damping-control}
+
+
+## Tracking Control {#tracking-control}
+
+
+### Relationship Between Force and Displacement {#relationship-between-force-and-displacement}
+
+
+### Integral Displacement Feedback {#integral-displacement-feedback}
+
+
+### Direct Tracking Control {#direct-tracking-control}
+
+
+### Dual Sensor Feedback {#dual-sensor-feedback}
+
+
+### Low Frequency Bypass {#low-frequency-bypass}
+
+
+### Feedforward Inputs {#feedforward-inputs}
+
+
+### Higher-Order Modes {#higher-order-modes}
+
+
+## Experimental Results {#experimental-results}
+
+
+### Experimental Nanopositioner {#experimental-nanopositioner}
+
+
+### Actuators and Force Sensors {#actuators-and-force-sensors}
+
+
+### Control Design {#control-design}
+
+
+### Noise Performance {#noise-performance}
+
+
+## Chapter Summary {#chapter-summary}
+
+
+## References {#references}
+
+
+## Why Feedforward? {#why-feedforward}
+
+
+## Modeling for Feedforward Control {#modeling-for-feedforward-control}
+
+
+## Feedforward Control of Dynamics and Hysteresis {#feedforward-control-of-dynamics-and-hysteresis}
+
+
+### Simple DC-Gain Feedforward Control {#simple-dc-gain-feedforward-control}
+
+
+### An Inversion-Based Feedforward Approach for Linear Dynamics {#an-inversion-based-feedforward-approach-for-linear-dynamics}
+
+
+### Frequency-Weighted Inversion: The Optimal Inverse {#frequency-weighted-inversion-the-optimal-inverse}
+
+
+### Application to AFM Imaging {#application-to-afm-imaging}
+
+
+## Feedforward and Feedback Control {#feedforward-and-feedback-control}
+
+
+### Application to AFM Imaging {#application-to-afm-imaging}
+
+
+## Iterative Feedforward Control {#iterative-feedforward-control}
+
+
+### The ILC Problem {#the-ilc-problem}
+
+
+### Model-Based ILC {#model-based-ilc}
+
+
+### Nonlinear ILC {#nonlinear-ilc}
+
+
+### Conclusions {#conclusions}
+
+
+## References {#references}
+
+
+## 10.1 Introduction {#10-dot-1-introduction}
+
+
+### 10.1.1 Background {#10-dot-1-dot-1-background}
+
+
+### 10.1.2 The Optimal Periodic Input {#10-dot-1-dot-2-the-optimal-periodic-input}
+
+
+## 10.2 Signal Optimization {#10-dot-2-signal-optimization}
+
+
+## 10.3 Frequency Domain Cost Functions {#10-dot-3-frequency-domain-cost-functions}
+
+
+### 10.3.1 Background: Discrete Fourier Series {#10-dot-3-dot-1-background-discrete-fourier-series}
+
+
+### 10.3.2 Minimizing Signal Power {#10-dot-3-dot-2-minimizing-signal-power}
+
+
+### 10.3.3 Minimizing Frequency Weighted Power {#10-dot-3-dot-3-minimizing-frequency-weighted-power}
+
+
+### 10.3.4 Minimizing Velocity and Acceleration {#10-dot-3-dot-4-minimizing-velocity-and-acceleration}
+
+
+### 10.3.5 Single-Sided Frequency Domain Calculations {#10-dot-3-dot-5-single-sided-frequency-domain-calculations}
+
+
+## 10.4 Time Domain Cost Function {#10-dot-4-time-domain-cost-function}
+
+
+### 10.4.1 Minimum Velocity {#10-dot-4-dot-1-minimum-velocity}
+
+
+### 10.4.2 Minimum Acceleration {#10-dot-4-dot-2-minimum-acceleration}
+
+
+### 10.4.3 Frequency Weighted Objectives {#10-dot-4-dot-3-frequency-weighted-objectives}
+
+
+## 10.5 Application to Scan Generation {#10-dot-5-application-to-scan-generation}
+
+
+### 10.5.1 Choosing β and K {#10-dot-5-dot-1-choosing-β-and-k}
+
+
+### 10.5.2 Improving Feedback and Feedforward Controllers {#10-dot-5-dot-2-improving-feedback-and-feedforward-controllers}
+
+
+## 10.6 Comparison to Other Techniques {#10-dot-6-comparison-to-other-techniques}
+
+
+## 10.7 Experimental Application {#10-dot-7-experimental-application}
+
+
+## 10.8 Chapter Summary {#10-dot-8-chapter-summary}
+
+
+## References {#references}
+
+
+## 11.1 Introduction {#11-dot-1-introduction}
+
+
+## 11.2 Modeling Hysteresis {#11-dot-2-modeling-hysteresis}
+
+
+### 11.2.1 Simple Polynomial Model {#11-dot-2-dot-1-simple-polynomial-model}
+
+
+### 11.2.2 Maxwell Slip Model {#11-dot-2-dot-2-maxwell-slip-model}
+
+
+### 11.2.3 Duhem Model {#11-dot-2-dot-3-duhem-model}
+
+
+### 11.2.4 Preisach Model {#11-dot-2-dot-4-preisach-model}
+
+
+### 11.2.5 Classical Prandlt-Ishlinksii Model {#11-dot-2-dot-5-classical-prandlt-ishlinksii-model}
+
+
+## 11.3 Feedforward Hysteresis Compensation {#11-dot-3-feedforward-hysteresis-compensation}
+
+
+### 11.3.1 Feedforward Control Using the Presiach Model {#11-dot-3-dot-1-feedforward-control-using-the-presiach-model}
+
+
+### 11.3.2 Feedforward Control Using the Prandlt-Ishlinksii Model {#11-dot-3-dot-2-feedforward-control-using-the-prandlt-ishlinksii-model}
+
+
+## 11.4 Chapter Summary {#11-dot-4-chapter-summary}
+
+
+## References {#references}
+
+
+## 12.1 Introduction {#12-dot-1-introduction}
+
+
+## 12.2 Charge Drives {#12-dot-2-charge-drives}
+
+
+## 12.3 Application to Piezoelectric Stack Nanopositioners {#12-dot-3-application-to-piezoelectric-stack-nanopositioners}
+
+
+## 12.4 Application to Piezoelectric Tube Nanopositioners {#12-dot-4-application-to-piezoelectric-tube-nanopositioners}
+
+
+## 12.5 Alternative Electrode Configurations {#12-dot-5-alternative-electrode-configurations}
+
+
+### 12.5.1 Grounded Internal Electrode {#12-dot-5-dot-1-grounded-internal-electrode}
+
+
+### 12.5.2 Quartered Internal Electrode {#12-dot-5-dot-2-quartered-internal-electrode}
+
+
+## 12.6 Charge Versus Voltage {#12-dot-6-charge-versus-voltage}
+
+
+### 12.6.1 Advantages {#12-dot-6-dot-1-advantages}
+
+
+### 12.6.2 Disadvantages {#12-dot-6-dot-2-disadvantages}
+
+
+## 12.7 Impact on Closed-Loop Control {#12-dot-7-impact-on-closed-loop-control}
+
+
+## 12.8 Chapter Summary {#12-dot-8-chapter-summary}
+
+
+## References {#references}
+
+
+## 13.1 Introduction {#13-dot-1-introduction}
+
+
+## 13.2 Review of Random Processes {#13-dot-2-review-of-random-processes}
+
+
+### 13.2.1 Probability Distributions {#13-dot-2-dot-1-probability-distributions}
+
+
+### 13.2.2 Expected Value, Moments, Variance, and RMS {#13-dot-2-dot-2-expected-value-moments-variance-and-rms}
+
+
+### 13.2.3 Gaussian Random Variables {#13-dot-2-dot-3-gaussian-random-variables}
+
+
+### 13.2.4 Continuous Random Processes {#13-dot-2-dot-4-continuous-random-processes}
+
+
+### 13.2.5 Joint Density Functions and Stationarity {#13-dot-2-dot-5-joint-density-functions-and-stationarity}
+
+
+### 13.2.6 Correlation Functions {#13-dot-2-dot-6-correlation-functions}
+
+
+### 13.2.7 Gaussian Random Processes {#13-dot-2-dot-7-gaussian-random-processes}
+
+
+### 13.2.8 Power Spectral Density {#13-dot-2-dot-8-power-spectral-density}
+
+
+### 13.2.9 Filtered Random Processes {#13-dot-2-dot-9-filtered-random-processes}
+
+
+### 13.2.10 White Noise {#13-dot-2-dot-10-white-noise}
+
+
+### 13.2.11 Spectral Density in V/sqrtHz {#13-dot-2-dot-11-spectral-density-in-v-sqrthz}
+
+
+### 13.2.12 Single- and Double-Sided Spectra {#13-dot-2-dot-12-single-and-double-sided-spectra}
+
+
+## 13.3 Resolution and Noise {#13-dot-3-resolution-and-noise}
+
+
+## 13.4 Sources of Nanopositioning Noise {#13-dot-4-sources-of-nanopositioning-noise}
+
+
+### 13.4.1 Sensor Noise {#13-dot-4-dot-1-sensor-noise}
+
+
+### 13.4.2 External Noise {#13-dot-4-dot-2-external-noise}
+
+
+### 13.4.3 Amplifier Noise {#13-dot-4-dot-3-amplifier-noise}
+
+
+## 13.5 Closed-Loop Position Noise {#13-dot-5-closed-loop-position-noise}
+
+
+### 13.5.1 Noise Sensitivity Functions {#13-dot-5-dot-1-noise-sensitivity-functions}
+
+
+### 13.5.2 Closed-Loop Position Noise Spectral Density {#13-dot-5-dot-2-closed-loop-position-noise-spectral-density}
+
+
+### 13.5.3 Closed-Loop Noise Approximations with Integral Control {#13-dot-5-dot-3-closed-loop-noise-approximations-with-integral-control}
+
+
+### 13.5.4 Closed-Loop Position Noise Variance {#13-dot-5-dot-4-closed-loop-position-noise-variance}
+
+
+### 13.5.5 A Note on Units {#13-dot-5-dot-5-a-note-on-units}
+
+
+## 13.6 Simulation Examples {#13-dot-6-simulation-examples}
+
+
+### 13.6.1 Integral Controller Noise Simulation {#13-dot-6-dot-1-integral-controller-noise-simulation}
+
+
+### 13.6.2 Noise Simulation with Inverse Model Controller {#13-dot-6-dot-2-noise-simulation-with-inverse-model-controller}
+
+
+### 13.6.3 Feedback Versus Feedforward Control {#13-dot-6-dot-3-feedback-versus-feedforward-control}
+
+
+## 13.7 Practical Frequency Domain Noise Measurements {#13-dot-7-practical-frequency-domain-noise-measurements}
+
+
+### 13.7.1 Preamplification {#13-dot-7-dot-1-preamplification}
+
+
+### 13.7.2 Spectrum Estimation {#13-dot-7-dot-2-spectrum-estimation}
+
+
+### 13.7.3 Direct Measurement of Position Noise {#13-dot-7-dot-3-direct-measurement-of-position-noise}
+
+
+### 13.7.4 Measurement of the External Disturbance {#13-dot-7-dot-4-measurement-of-the-external-disturbance}
+
+
+## 13.8 Experimental Demonstration {#13-dot-8-experimental-demonstration}
+
+
+## 13.9 Time-Domain Noise Measurements {#13-dot-9-time-domain-noise-measurements}
+
+
+### 13.9.1 Total Integrated Noise {#13-dot-9-dot-1-total-integrated-noise}
+
+
+### 13.9.2 Estimating the Position Noise {#13-dot-9-dot-2-estimating-the-position-noise}
+
+
+### 13.9.3 Practical Considerations {#13-dot-9-dot-3-practical-considerations}
+
+
+### 13.9.4 Experimental Demonstration {#13-dot-9-dot-4-experimental-demonstration}
+
+
+## 13.10 A Simple Method for Measuring the Resolution of Nanopositioning Systems {#13-dot-10-a-simple-method-for-measuring-the-resolution-of-nanopositioning-systems}
+
+
+## 13.11 Techniques for Improving Resolution {#13-dot-11-techniques-for-improving-resolution}
+
+
+## 13.12 Chapter Summary {#13-dot-12-chapter-summary}
+
+
+## References {#references}
+
+
+## Electrical Considerations {#electrical-considerations}
+
+
+### Amplifier and Piezo electrical models {#amplifier-and-piezo-electrical-models}
+
+
+
+{{< figure src="/ox-hugo/fleming14_amplifier_model.png" caption="Figure 1: A voltage source \\(V\_s\\) driving a piezoelectric load. The actuator is modeled by a capacitance \\(C\_p\\) and strain-dependent voltage source \\(V\_p\\). The resistance \\(R\_s\\) is the output impedance and \\(L\\) the cable inductance." >}}
+
+Consider the electrical circuit shown in [Figure 1](#figure--fig:fleming14-amplifier-model) where a voltage source is connected to a piezoelectric actuator.
+The actuator is modeled as a capacitance \\(C\_p\\) in series with a strain-dependent voltage source \\(V\_p\\).
+The resistance \\(R\_s\\) and inductance \\(L\\) are the source impedance and the cable inductance respectively.
+
+
+
+Typical inductance of standard RG-58 coaxial cable is \\(250 nH/m\\).
+Typical value of \\(R\_s\\) is between \\(10\\) and \\(100 \Omega\\).
+
+
+
+When considering the effects of both output impedance and cable inductance, the transfer function from source voltage \\(V\_s\\) to load voltage \\(V\_L\\) is second-order low pass filter:
+
+\begin{equation}
+ \frac{V\_L(s)}{V\_s(s)} = \frac{1}{\frac{s^2}{\omega\_r^2} + 2 \xi \frac{s}{\omega\_r} + 1}
+\end{equation}
+
+with:
+
+- \\(\omega\_r = \frac{1}{\sqrt{L C\_p}}\\)
+- \\(\xi = \frac{R\_s \sqrt{L C\_p}}{2 L}\\)
+
+
+### Amplifier small-signal Bandwidth {#amplifier-small-signal-bandwidth}
+
+The most obvious bandwidth limitation is the small-signal bandwidth of the amplifier.
+
+If the inductance \\(L\\) is neglected, the transfer function from source voltage \\(V\_s\\) to load voltage \\(V\_L\\) forms a first order filter with a cut-off frequency
+
+\begin{equation}
+ \omega\_c = \frac{1}{R\_s C\_p}
+\end{equation}
+
+This is thus highly dependent of the load.
+
+The high capacitive impedance nature of piezoelectric loads introduces phase-lag into the feedback path.
+A rule of thumb is that closed-loop bandwidth cannot exceed one-tenth the cut-off frequency of the pole formed by the amplifier output impedance \\(R\_s\\) and load capacitance \\(C\_p\\) (see [Table 1](#table--tab:piezo-limitation-Rs) for values).
+
+
+
+ Table 1:
+ Bandwidth limitation due to \(R_s\)
+
+
+| | Cp = 100 nF | Cp = 1 uF | Cp = 10 uF |
+|--------------|-------------|-----------|------------|
+| Rs = 1 Ohm | 1.6 MHz | 160 kHz | 16 kHz |
+| Rs = 10 Ohm | 160 kHz | 16 kHz | 1.6 kHz |
+| Rs = 100 Ohm | 16 kHz | 1.6 kHz | 160 Hz |
+
+The inductance \\(L\\) does also play a role in the amplifier bandwidth as it changes the resonance frequency.
+Ideally, low inductance cables should be used.
+It is however usually quite high compare to \\(\omega\_c\\) as shown in [Table 2](#table--tab:piezo-limitation-L).
+
+
+
+ Table 2:
+ Bandwidth limitation due to \(R_s\)
+
+
+| | Cp = 100 nF | Cp = 1 uF | Cp = 10 uF |
+|-------------|-------------|-----------|------------|
+| L = 25 nH | 3.2 MHz | 1 MHz | 320 kHz |
+| L = 250 nH | 1 MHz | 320 kHz | 100 kHz |
+| L = 2500 nH | 320 kHz | 100 kHz | 32 kHz |
+
+
+### Amplifier maximum slew rate {#amplifier-maximum-slew-rate}
+
+Further bandwidth restrictions are imposed by the maximum **slew rate** of the amplifier.
+This is the maximum rate at which the output voltage can change and is usually expressed in \\(V/\mu s\\).
+
+For sinusoidal signals, the amplifiers slew rate must exceed:
+\\[ SR\_{\text{sin}} > V\_{p-p} \pi f \\]
+where \\(V\_{p-p}\\) is the peak to peak voltage and \\(f\\) is the frequency.
+
+
+
+If a 300kHz sine wave is to be reproduced with an amplitude of 10V, the required slew rate is \\(\approx 20 V/\mu s\\).
+
+
+
+When dealing with capacitive loads, **the current limit is usually exceed well before the slew rate limit**.
+
+
+### Current and Power Limitations {#current-and-power-limitations}
+
+When driving the actuator off-resonance, the current delivered to a piezoelectric actuator is approximately:
+\\[ I\_L(s) = V\_L(s) C\_p s \\]
+
+For sinusoidal signals, the maximum positive and negative current is equal to:
+\\[ I\_L^\text{max} = V\_{p-p} \pi f C\_p \\]
+
+
+
+ Table 3:
+ Minimum current requirements for a 10V sinusoid
+
+
+| | Cp = 100 nF | Cp = 1 uF | Cp = 10 uF |
+|-------------|-------------|-----------|------------|
+| f = 30 Hz | 0.19 mA | 1.9 mA | 19 mA |
+| f = 3 kHz | 19 mA | 190 mA | 1.9 A |
+| f = 300 kHz | 1.9 A | 19 A | 190 A |
+
+
+### Chapter Summary {#chapter-summary}
+
+The bandwidth limitations of standard piezoelectric drives were identified as:
+
+- High output impedance
+- The presence of a ple in the voltage-feedback loop due to output impedance and load capacitance
+- Insufficient current capacity due to power dissipation
+- High cable and connector inductance
+
+
+### References {#references}
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, A. J., and K. K. Leang. 2014. Design, Modeling and Control of Nanopositioning Systems. Advances in Industrial Control. Springer International Publishing. doi:10.1007/978-3-319-06617-2.
+
diff --git a/content/book/hatch00_vibrat_matlab_ansys.md b/content/book/hatch00_vibrat_matlab_ansys.md
new file mode 100644
index 0000000..5fc9809
--- /dev/null
+++ b/content/book/hatch00_vibrat_matlab_ansys.md
@@ -0,0 +1,2128 @@
++++
+title = "Vibration Simulation using Matlab and ANSYS"
+author = ["Dehaeze Thomas"]
+description = "Nice techniques to analyze resonant systems with Ansys and Matlab."
+keywords = ["Modal Analysis", "FEM"]
+draft = false
++++
+
+Tags
+: [Finite Element Model]({{< relref "finite_element_model.md" >}})
+
+Reference
+: (Hatch 2000)
+
+Author(s)
+: Hatch, M. R.
+
+Year
+: 2000
+
+Matlab Code form the book is available [here](https://in.mathworks.com/matlabcentral/fileexchange/2186-vibration-simulation-using-matlab-and-ansys).
+
+
+## Introduction {#introduction}
+
+
+
+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.
+
+
+### Modal Analysis {#modal-analysis}
+
+The diagram in [Figure 1](#figure--fig:hatch00-modal-analysis-flowchart) shows the methodology for analyzing a lightly damped structure using normal modes.
+
+
+
+The steps are:
+
+1. deriving the undamped equations of motion in physical coordinates
+2. solving the eigenvalue problem, yielding eigenvalues (natural frequencies) and eigenvectors (mode shapes).
+ These first 2 steps are usually performed using a Finite Element software
+3. transform the model from physical coordinate system to modal or principal coordinate system using the eigenvector matrix.
+ In the modal coordinate system, the original undamped **coupled** equations of motion are transform to the same number of undamped **uncoupled** equations representing the motion of a particular mode of vibration of the system.
+4. proportional damping is applied
+5. the uncoupled equations are easily solved (as each equation corresponds to a sdof system).
+ The desired responses are then back-transformed into the physical coordinate system using the eigenvector matrix.
+
+
+
+
+
+{{< figure src="/ox-hugo/hatch00_modal_analysis_flowchart.png" caption="Figure 1: Modal analysis method flowchart" >}}
+
+
+### Model Size Reduction {#model-size-reduction}
+
+Because finite element models usually have a very large number of states, an important step is the reduction of the number of states while still providing correct responses for the forcing function input and desired output points.
+
+
+
+[Figure 2](#figure--fig:hatch00-model-reduction-chart) shows such process, the steps are:
+
+- start with the finite element model
+- compute the eigenvalues and eigenvectors (as many as dof in the model)
+- the goal is then the reduce the size of the model while still maintaining the desired input/output relationships.
+ This is done in two steps:
+ 1. reduce the number of dof of the model from the original set to a new set which includes only those dof where forces are applied and where responses are desired
+ 2. reduce the number of modes of vibration used for the solution.
+ For SISO system, the modes are ranked based on the relative importance to the overall response.
+ For MIMO system, controllability and observability gramians of the modes are estimated.
+
+
+
+
+
+{{< figure src="/ox-hugo/hatch00_model_reduction_chart.png" caption="Figure 2: Model size reduction flowchart" >}}
+
+
+### Notations {#notations}
+
+[Figure 3](#figure--fig:hatch00-n-dof-zeros), [Table 2](#table--tab:notations-eigen-vectors-values) and [Table 3](#table--tab:notations-stiffness-mass) summarize the notations of this document.
+
+
+
+
+| | Notation |
+|-----------------------------------|------------|
+| Number of Nodes | \\(n\\) |
+| Number of Considered node inputs | \\(n\_i\\) |
+| Number of Considered node outputs | \\(n\_o\\) |
+| Reduced number of nodes | \\(n\_r\\) |
+| Number of Modes | \\(m\\) |
+| Reduced number of modes | \\(m\_r\\) |
+
+
+
+ Table 2:
+ Notation for the dofs, eigenvectors and eigenvalues
+
+ Table 3:
+ Notation for the mass and stiffness matrices
+
+
+| | Notation | Size |
+|---------------------------------------------|---------------------------------------------------|------------------|
+| Physical Mass, Stiffness, Damping Matrices | \\(\bm{m}\\), \\(\bm{c}\\), \\(\bm{k}\\) | \\(n \times n\\) |
+| Normalized Mass and Stiffness Matrices | \\(\bm{m}\_n\\), \\(\bm{k}\_n\\) | \\(m \times m\\) |
+| Principal Mass, Stiffness, Damping Matrices | \\(\bm{m}\_p\\), \\(\bm{c}\_p\\), \\(\bm{k}\_p\\) | \\(m \times m\\) |
+| Physical Force Vector | \\(\bm{F}\\) | \\(n \times 1\\) |
+| Principal Force Vector | \\(\bm{F}\_p\\) | \\(m \times 1\\) |
+
+
+## Zeros in SISO Mechanical Systems {#zeros-in-siso-mechanical-systems}
+
+
+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**.
+
+[Figure 3](#figure--fig:hatch00-n-dof-zeros) shows a series arrangement of masses and springs, with a total of \\(n\\) masses and \\(n+1\\) springs.
+The degrees of freedom are numbered from left to right, \\(z\_1\\) through \\(z\_n\\).
+
+
+
+{{< figure src="/ox-hugo/hatch00_n_dof_zeros.png" caption="Figure 3: n dof system showing various SISO input/output configurations" >}}
+
+
+
+(Miu 1993) shows that the zeros of any particular transfer function are the poles of the constrained system to the left and/or right of the system defined by constraining the one or two dof's defining the transfer function.
+
+The resonances of the "overhanging appendages" of the constrained system create the zeros.
+
+
+
+
+## State Space Analysis {#state-space-analysis}
+
+
+
+
+## Modal Analysis {#modal-analysis}
+
+
+
+Lightly damped structures are typically analyzed with the "normal mode" method described in this section.
+
+
+
+The modal method allows one to replace the n-coupled differential equations with n-uncoupled equations, where each uncoupled equation represents the motion of the system for that mode of vibration.
+
+The overall response of the system is then reconstructed as a superposition of the responses of the different modes of the system.
+
+
+
+Heavily damped structures or structures which explicit damping elements, such as dashpots, result in complex modes and require state space solution techniques using the original coupled equations of motion.
+Thus, the present methods only works for lightly damped structures.
+
+
+
+Summarizing the modal analysis method of analyzing linear mechanical systems and the benefits derived:
+
+1. **Solve the undamped eigenvalue problem**, which identifies the resonant frequencies and mode shapes (eigenvalues and eigenvectors), useful in themselves for understanding basic motions of the system
+2. **Use the eigenvectors to uncoupled or diagonalize the original set of coupled equations**, allowing the solution of n-uncoupled sdof problems instead of solving a set of n-coupled equations
+3. **Calculate the contribution of each mode to the overall response**.
+ This also allows one to reduce the size of the problem by eliminating modes that cannot be excited and/or modes that have not output at the desired dof.
+ Also, high frequency modes that have little contribution to the system at lower frequencies can be eliminated or approximately accounted for, further reducing the size of the system to be analyzed
+4. **Write the system matrix** \\(\bm{A}\\), by inspection.
+ **Assemble the input and output matrices**, \\(\bm{B}\\) and \\(\bm{C}\\), using appropriate eigenvector terms.
+ Frequency domain and forced transient response problems can be solved at this point.
+ If complete eigenvectors are available, initial condition transient problems can also be solved.
+ For lightly damped systems, proportional damping can be added, while still allowing the equations to be uncoupled.
+
+
+
+
+### Eigenvalue Problem {#eigenvalue-problem}
+
+
+#### Equation of Motion {#equation-of-motion}
+
+Let's consider the model shown in [Figure 4](#figure--fig:hatch00-undamped-tdof-model) with \\(k\_1 = k\_2 = k\\), \\(m\_1 = m\_2 = m\_3 = m\\) and \\(c\_1 = c\_2 = 0\\).
+
+
+
+{{< figure src="/ox-hugo/hatch00_undamped_tdof_model.png" caption="Figure 4: Undamped tdof model" >}}
+
+The equations of motions are:
+
+\begin{equation}
+\begin{bmatrix}
+ m & 0 & 0 \\\\
+ 0 & m & 0 \\\\
+ 0 & 0 & m
+\end{bmatrix} \begin{bmatrix}
+ \ddot{z}\_1 \\\\
+ \ddot{z}\_2 \\\\
+ \ddot{z}\_3
+\end{bmatrix} + \begin{bmatrix}
+ k & -k & 0 \\\\
+ -k & 2k & -k \\\\
+ 0 & -k & k
+\end{bmatrix} \begin{bmatrix}
+ z\_1 \\\\
+ z\_2 \\\\
+ z\_3
+\end{bmatrix} = \begin{bmatrix}
+ 0 \\\\
+ 0 \\\\
+ 0
+\end{bmatrix} \label{eq:tdof\_eom}
+\end{equation}
+
+
+#### Principal Mode Definition {#principal-mode-definition}
+
+Since the system is conservative (it has no damping), normal modes of vibration will exist.
+
+
+
+Having normal modes means that at certain frequencies all points in the system will vibrate at the same frequency and in phase, i.e., **all points in the system will reach their minimum and maximum displacements at the same point in time**.
+
+
+
+Having normal modes can be expressed as:
+
+\begin{equation}
+ \bm{z}\_i = \bm{z}\_{mi} \sin(\omega\_i t + \phi\_i) = \bm{z}\_{mi} \text{Im}(e^{j\omega\_i t + \phi\_i}) \label{eq:principal\_mode}
+\end{equation}
+
+where:
+
+- \\(\bm{z}\_i\\): vector of displacement for all dof's at the i'th frequency
+- \\(\bm{z}\_{mi}\\): i'th eigenvector
+- \\(\omega\_i\\): i'th eigenvalue
+- \\(\phi\_i\\): an arbitrary initial phase angle
+
+
+#### 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:
+
+\begin{equation}
+ (\bm{k} - \omega\_i^2 \bm{m}) \bm{z}\_{mi} = 0
+\end{equation}
+
+Solving this set of equation gives the eigenvalues:
+
+\begin{equation}
+ \omega\_1 = 0, \quad \omega\_2 = \pm\sqrt{\frac{3k}{m}}, \quad \omega\_3 = \pm\sqrt{\frac{k}{m}}
+\end{equation}
+
+
+#### Eigenvectors {#eigenvectors}
+
+To obtain the eigenvectors of the systems (corresponding to the eigenvalues), any one of the dof, say \\(z\_1\\), is selected as a reference.
+This means that **the eigenvectors are only known as ratios of displacements, not as absolute magnitudes**.
+Then, all but one of the equations of motion is written with that value on the right-hand side:
+
+\begin{equation}
+ (\bm{k} - \omega\_i^2 \bm{m}) \bm{z}\_{mi} = 0
+\end{equation}
+
+One then find:
+
+\begin{equation}
+ \bm{z}\_1 = \begin{bmatrix}
+ 1 \\\\
+ 1 \\\\
+ 1
+ \end{bmatrix}, \quad \bm{z}\_2 = \begin{bmatrix}
+ 1 \\\\
+ 0 \\\\
+ -1
+ \end{bmatrix}, \quad \bm{z}\_3 = \begin{bmatrix}
+ 1 \\\\
+ -2 \\\\
+ 1
+ \end{bmatrix}
+\end{equation}
+
+Virtual interpretation of the eigenvectors are shown in [Figure 5](#figure--fig:hatch00-tdof-mode-1), [Figure 6](#figure--fig:hatch00-tdof-mode-2) and [Figure 7](#figure--fig:hatch00-tdof-mode-3).
+
+
+
+{{< figure src="/ox-hugo/hatch00_tdof_mode_1.png" caption="Figure 5: Rigid-Body Mode, 0rad/s" >}}
+
+
+
+{{< figure src="/ox-hugo/hatch00_tdof_mode_2.png" caption="Figure 6: Second Model, Middle Mass Stationary, 1rad/s" >}}
+
+
+
+{{< figure src="/ox-hugo/hatch00_tdof_mode_3.png" caption="Figure 7: Third Mode, 1.7rad/s" >}}
+
+
+#### 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}
+
+\begin{equation}
+ \bm{z}\_m = \begin{bmatrix}
+ \bm{z}\_1 & \bm{z}\_2 & \bm{z}\_3
+\end{bmatrix} = \begin{bmatrix}
+ z\_{m11} & z\_{m12} & z\_{m13} \\\\
+ z\_{m21} & z\_{m22} & z\_{m23} \\\\
+ z\_{m31} & z\_{m32} & z\_{m33}
+\end{bmatrix} \label{eq:modal\_matrix}
+\end{equation}
+
+
+### Uncoupling the Equations of Motion {#uncoupling-the-equations-of-motion}
+
+At this point, the system is well defined in terms of natural frequencies and modes of vibration.
+If any further information such as transient or frequency response is desired, solving for it would be laborious because the system equations are still coupled.
+
+It is thus useful to **transform the n-coupled second order differential equations to n-uncoupled second order differential equations by transforming from the physical coordinate system to a principal coordinate system**.
+
+In linear algebra terms, the transformation from physical to principal coordinates is known as a **change of basis**.
+
+
+
+There are many options for change of basis, but we will show that **when eigenvectors are used for the transformation, the principal coordinate system has a physical meaning: each of the uncoupled sdof systems represents the motion of a specific mode of vibration**.
+
+
+
+The n-uncoupled equations in the principal coordinate system can then be solved for the responses in the principal coordinate system using the well known solutions for the single dof systems.
+The n-responses in the principal coordinate system can then be **transformed back** to the physical coordinate system to provide the actual response in physical coordinate.
+
+This procedure is schematically shown in [Figure 8](#figure--fig:hatch00-schematic-modal-solution).
+
+
+
+{{< figure src="/ox-hugo/hatch00_schematic_modal_solution.png" caption="Figure 8: Roadmap for Modal Solution" >}}
+
+The condition to guarantee diagonalization is the existence of n-linearly independent eigenvectors, which is always the case if either:
+
+- the mass and stiffness matrices are both symmetric
+- there are m-different eigenvalues (no repeating eigenvalues)
+
+We start with the Homogeneous equation of motion:
+
+\begin{equation}
+ \bm{m} \bm{\ddot{z}} + \bm{k} \bm{z} = 0
+\end{equation}
+
+Consider normal modes: \\(\bm{z}\_i = \bm{z}\_{mi} \sin(\omega\_i t + \phi\_i)\\):
+
+\begin{equation}
+ \bm{k} \bm{z}\_{mi} = \omega\_i^2 \bm{m} \bm{z}\_{mi}
+\end{equation}
+
+Since \\(\bm{m}\\) and \\(\bm{k}\\) are symmetrical (\\(\bm{m}^T = \bm{m}\\), \\(\bm{k}^T = \bm{k}\\)), we find:
+
+\begin{equation}
+ (\omega\_i^2 - \omega\_j^2) \bm{z}\_{mj}^T \bm{m} \bm{z}\_{mi} = 0
+\end{equation}
+
+When \\(i \neq j\\), the term \\((\omega\_i^2 - \omega\_j^2)\\) cannot be equal to zero, meaning that:
+
+\begin{equation}
+ \bm{z}\_{mj}^T \bm{m} \bm{z}\_{mi} = m\_{ij} = 0
+\end{equation}
+
+where \\(m\_{ij}\\) is an off-diagonal term in the mass matrix of the principal coordinate system.
+The two eigenvectors \\(\bm{z}\_{mi}\\) and \\(\bm{z}\_{mj}\\) are said to be orthogonal with respect to \\(\bm{m}\\).
+
+For \\(i = j\\), \\((\omega\_i^2 - \omega\_j^2) = 0\\), and thus the product \\(\bm{z}\_{mj}^T \bm{m} \bm{z}\_{mi}\\) can be set equal to any arbitrary constant \\(m\_{ii}\\):
+
+\begin{equation}
+ \bm{z}\_{mi}^T \bm{m} \bm{z}\_{mi} = m\_{ii}
+\end{equation}
+
+This is where various **normalization** techniques for eigenvectors come into play.
+The stiffness matrix \\(\bm{k}\\), is normalize the same manner.
+
+
+### Normalizing Eigenvectors {#normalizing-eigenvectors}
+
+Because eigenvectors are only known as **ratios** of displacements, not as absolute magnitudes, we can choose how to normalize them.
+
+
+#### Normalizing with Respect to Unity {#normalizing-with-respect-to-unity}
+
+One method is to normalize with respect to unity, making the **largest** element in each eigenvector equal to unity by dividing each column by its largest value.
+
+\begin{equation}
+ \bm{z}\_m = \begin{bmatrix}
+ 1 & 1 & 1 \\\\
+ 1 & 0 & -2 \\\\
+ 1 & -1 & 1
+\end{bmatrix} \Longrightarrow \bm{z}\_n \begin{bmatrix}
+ 1 & 1 & -0.5 \\\\
+ 1 & 0 & 1 \\\\
+ 1 & -1 & -0.5
+\end{bmatrix}
+\end{equation}
+
+where the \\(n\\) in \\(\bm{z}\_n\\) refers to a "**normalized**" modal matrix.
+
+Transforming the mass and stiffness matrices give:
+
+\begin{equation}
+ \bm{m}\_n = \bm{z}\_n^T \bm{m} \bm{z}\_n = \begin{bmatrix}
+ 3m & 0 & 0 \\\\
+ 0 & 2m & 0 \\\\
+ 0 & 0 & 1.5m
+\end{bmatrix}; \quad \bm{k}\_n = \bm{z}\_n^T \bm{k} \bm{z}\_n = \begin{bmatrix}
+ 0 & 0 & 0 \\\\
+ 0 & 2k & 0 \\\\
+ 0 & 0 & 4.5k
+\end{bmatrix}
+\end{equation}
+
+
+#### Normalizing with Respect to Mass {#normalizing-with-respect-to-mass}
+
+Another method is to normalize with respect to mass using:
+
+\begin{equation}
+ \bm{z}\_{ni}^T \bm{m} \bm{z}\_{ni} = 1
+\end{equation}
+
+making **each diagonal mass term equal to 1**.
+This is the method used by default in ANSYS.
+
+Each normalized eigenvector is defined as follows:
+
+\begin{equation}
+ \bm{z}\_{ni} = \frac{\bm{z}\_{mi}}{\sqrt{\bm{z}\_{mi}^T \bm{m} \bm{z}\_{mi}}} = \frac{\bm{z}\_{mi}}{q\_i}
+\end{equation}
+
+And the normalized mass and stiffness matrices are:
+
+\begin{equation}
+ \bm{m}\_n = \begin{bmatrix}
+ 1 & 0 & 0 \\\\
+ 0 & 1 & 0 \\\\
+ 0 & 0 & 1
+\end{bmatrix}; \quad \bm{k}\_n = \begin{bmatrix}
+ 0 & 0 & 0 \\\\
+ 0 & 1 & 0 \\\\
+ 0 & 0 & 3
+\end{bmatrix} \frac{k}{m}
+\end{equation}
+
+Note that the diagonal terms of the stiffness matrix are the squares of the corresponding three eigenvalues.
+The normalized stiffness matrix is known as the **spectral matrix**.
+
+Normalizing with respect to mass results in an identify principal mass matrix and squares of the eigenvalues on the diagonal in the principal stiffness matrix, this normalization technique is thus very useful for the following reason.
+
+
+
+Since we know the form of the principal matrices when normalizing with respect to mass, no multiplying of modal matrices is actually required: **the homogeneous principal equations of motion can be written by inspection knowing only the eigenvalues**.
+
+
+
+
+### Transforming Initial Conditions and Forces {#transforming-initial-conditions-and-forces}
+
+Let's determine how to transform initial conditions and forces to the principal coordinate system.
+Then, we can solve for transient and forced responses in the principal coordinate system using the uncoupled equations.
+
+We start with the equation of motion in the physical coordinates:
+
+\begin{equation}
+ \bm{m} \ddot{\bm{z}} + \bm{k} \bm{z} = \bm{F}
+\end{equation}
+
+Pre-multiplying by \\(\bm{z}\_n^T\\) and inserting \\(I = \bm{z}\_n \bm{z}\_n^{-1}\\) gives:
+
+\begin{equation}
+ \bm{z}\_n^T \bm{m} \bm{z}\_n \bm{z}\_n^{-1} \ddot{\bm{z}} + \bm{z}\_n^T \bm{k} \bm{z}\_n \bm{z}\_n^{-1} \bm{z} = \bm{z}\_n^T \bm{F}
+\end{equation}
+
+Which is re-written in the following form:
+
+
+
+\begin{equation}
+ \bm{m}\_p \ddot{\bm{z}}\_p + \bm{k}\_p \bm{z}\_p = \bm{F}\_p
+\end{equation}
+
+where:
+
+- \\(\bm{m}\_p = \bm{z}\_n^T \bm{m} \bm{z}\_n\\) the diagonal principal mass matrix
+- \\(\bm{k}\_p = \bm{z}\_n^T \bm{k} \bm{z}\_n\\) the diagonal principal stiffness matrix
+- \\(\ddot{\bm{z}}\_p = \bm{z}\_n^{-1} \ddot{\bm{z}}\\) acceleration vector in principal coordinates
+- \\(\bm{z}\_p = \bm{z}\_n^{-1} \bm{z}\\) displacement vector in principal coordinates
+- \\(\bm{F}\_p = \bm{z}\_n^T \bm{F}\\) force vector in principal coordinates
+
+
+
+The vectors of initial displacements \\(\bm{z}\_{op}\\) and velocities \\(\dot{\bm{z}}\_{op}\\) in the principal coordinate system can be expressed as:
+
+\begin{align}
+ \bm{z}\_{op} &= \bm{z}\_n^{-1} \bm{z}\_0 \\\\
+ \dot{\bm{z}}\_{op} &= \bm{z}\_n^{-1} \dot{\bm{z}}\_0
+\end{align}
+
+where \\(\bm{z}\_0\\) and \\(\dot{\bm{z}}\_0\\) are the vectors of initial displacements and velocities in the physical coordinate system.
+
+
+### Back-Transforming from Principal to Physical Coordinates {#back-transforming-from-principal-to-physical-coordinates}
+
+We have now everything required to solve the equations in the principal coordinate system.
+
+
+
+The variables in physical coordinates are the positions and velocities of the masses.
+The variables in principal coordinates are the displacements and velocities of each mode of vibration.
+
+
+
+The equations in the principal coordinate system can easily be solved, since the equations are uncoupled.
+We now need to **back transform** the results in the principal coordinate system to the physical coordinate system to get the final answer.
+
+We showed previously that the relationship between physical and principal coordinates is:
+
+\begin{equation}
+ \bm{z}\_n^{-1} \bm{z} = \bm{z}\_p
+\end{equation}
+
+where:
+
+- \\(\bm{z}\_n\\) is the matrix containing the eigenvectors (\\(n \times m\\))
+- \\(\bm{z}\\) is the vector of physical coordinates (\\(n \times 1\\))
+- \\(\bm{z}\_p\\) is the vector of the principal coordinates (\\(m \times 1\\))
+
+And thus, the displacement vector in physical coordinates is obtained by pre-multiplying the vector of displacement in principal coordinates by the normalized modal matrix \\(\bm{z}\_n\\):
+
+\begin{equation}
+ \bm{z} = \bm{z}\_n \bm{z}\_p
+\end{equation}
+
+
+### Reducing the model size when only selection degrees of freedom are required {#reducing-the-model-size-when-only-selection-degrees-of-freedom-are-required}
+
+The reduction of the number of degrees of freedom is one of the key steps in order to reduce the size of models derived from large finite element simulations.
+
+This can be done as only portions of the eigenvector matrix are needed when only defined dof's have forces applied and other dof's are needed for output.
+
+Let's first examine the force transformation from physical to principal coordinates:
+
+\begin{equation}
+ \bm{F}\_p = \bm{z}\_n^T \bm{F} = \begin{bmatrix}
+ z\_{n11} & z\_{n12} & z\_{n13} \\\\
+ z\_{n21} & z\_{n22} & z\_{n23} \\\\
+ z\_{n31} & z\_{n32} & z\_{n33}
+\end{bmatrix}^T \begin{bmatrix}
+ F\_1 \\\\
+ F\_2 \\\\
+ F\_3
+\end{bmatrix}
+\end{equation}
+
+If force is only to be applied on mass 1 (\\(F\_2 = F\_3 = 0\\)), then only the first row of the modal matrix is required to transform the force in physical coordinates to the force in principal coordinates.
+
+Let's now examine the displacement transformation from principal to physical coordinates:
+
+\begin{equation}
+ \bm{z} = \bm{z}\_n \bm{z}\_p = \begin{bmatrix}
+ z\_{n11} & z\_{n12} & z\_{n13} \\\\
+ z\_{n21} & z\_{n22} & z\_{n23} \\\\
+ z\_{n31} & z\_{n32} & z\_{n33}
+\end{bmatrix} \begin{bmatrix}
+ z\_{p1} \\\\
+ z\_{p2} \\\\
+ z\_{p3}
+\end{bmatrix}
+\end{equation}
+
+And thus, if we are only interested in the physical displacement of the mass 2 (\\(z\_2 = z\_{n21} z\_{p1} + z\_{n22} z\_{p2} + z\_{n23} z\_{p3}\\)), only the second row of the modal matrix is required to transform the three displacements \\(z\_{p1}\\), \\(z\_{p2}\\), \\(z\_{p3}\\) in principal coordinates to \\(z\_2\\).
+
+
+
+**Only the rows of the modal matrix that correspond to degrees of freedom to which forces are applied and/or for which displacements are desired are required to complete the model.**
+
+
+
+
+### Damping in Systems with Principal Modes {#damping-in-systems-with-principal-modes}
+
+If a mechanical system is designed with a specific viscous damping element, for example a dashpot, then that element can be added to the system as a viscous damper.
+The resulting system is linear, but probably does not exhibit normal modes.
+This leads to the inability to diagonalize and uncouple the equations of motion.
+
+Damping in typical structures arises from hysteresis losses in the materials as they are strained, in some cases from viscous losses due to structure/fluid interaction but more importantly form relative motion at the interfaces and boundaries where different parts are attached or grounded.
+Unless a specific damping element is used in a structural design, most structures have damping which varies from mode to mode and will be in the range of 0.05% to 2% of critical damping.
+
+
+#### Conditions Necessary for Existence of Principal Modes in Damped System {#conditions-necessary-for-existence-of-principal-modes-in-damped-system}
+
+With a conservative (undamped) system, normal modes of vibration will exist.
+In order to have normal modes in a damped system, the modes shapes must be the same as for the undamped case, and the various parts of the system must pass through their minimum and maximum positions at the same instant in time.
+
+A sufficient condition for the existence of damped normal modes is that the **damping matrix be a linear combination of the mass of stiffness matrices**:
+
+\begin{equation}
+ \bm{c} = a \bm{m} + b \bm{k}
+\end{equation}
+
+The damped equations of motion are:
+
+\begin{equation}
+ \bm{m} \ddot{\bm{z}} + \bm{c} \dot{z} + \bm{k} \bm{z} = \bm{F}
+\end{equation}
+
+And the damping matrix expressed in the principal coordinates is:
+
+\begin{equation}
+ \bm{c}\_p = \bm{z}\_n^T \bm{c} \bm{z}\_n = a \bm{z}\_n^T \bm{m} \bm{z}\_n + b \bm{z}\_n^T \bm{k} \bm{z}\_n = a \bm{I} + b \bm{k}\_p
+\end{equation}
+
+We note:
+
+\begin{equation}
+ c\_{pi} = a + b \omega\_i^2 = 2 \xi\_i \omega\_i
+\end{equation}
+
+where \\(\xi\_i\\) is the percentage of critical damping for the i'th mode:
+
+\begin{equation}
+ \xi\_i = \frac{c\_i}{2 \sqrt{k\_{pi} m\_{pi}}} = \frac{c\_i}{2 m\_{pi} \sqrt{\omega\_i^2}} = \frac{a + b \omega\_i^2}{2 \omega\_i}
+\end{equation}
+
+And the equation in principal coordinates becomes:
+
+\begin{equation}
+ \ddot{z}\_{pi} + 2 \xi\_i \omega\_i \dot{z}\_{pi} + \omega\_i^2 z\_{pi} = F\_{pi}
+\end{equation}
+
+This type of damping is known as **proportional damping**, where the damping for each mode is proportional to the critical damping for that mode.
+
+
+#### Simple Proportional Damping {#simple-proportional-damping}
+
+Viscous damping in each mode is taken to be an arbitrary percentage \\(\xi\\) of the critical damping \\(c\_{cr}\\):
+
+\begin{equation}
+ c = \frac{\xi}{2 \sqrt{k m}} = \xi \cdot c\_{cr}
+\end{equation}
+
+
+#### Proportional to Stiffness Matrix: "Relative" Damping {#proportional-to-stiffness-matrix-relative-damping}
+
+Recognizing that the higher modes of vibration damp out quickly, "relative" damping yields damping in proportion to frequencies in normal modes:
+
+\begin{equation}
+ \xi\_i = \frac{a + b\omega\_i^2}{2 \omega\_i}
+\end{equation}
+
+If a value of \\(\xi\_1\\) for the first mode, is assumed:
+
+\begin{equation}
+ b = \frac{2 \xi\_1}{\omega\_1}
+\end{equation}
+
+The value of the damping for any other mode is:
+
+\begin{equation}
+ \xi\_i = \xi\_1 \frac{\omega\_i}{\omega\_1}
+\end{equation}
+
+
+#### Proportional to Mass Matrix: "Absolute" Damping {#proportional-to-mass-matrix-absolute-damping}
+
+Absolute damping is based on making \\(b = 0\\), in which case the percentage of critical damping is inversely proportional to the natural frequency of each mode.
+
+
+## Modal Analysis: State Space Form {#modal-analysis-state-space-form}
+
+
+## Frequency Response: Modal Form {#frequency-response-modal-form}
+
+
+
+The procedure to obtain the frequency response from a modal form is as follow:
+
+- use the eigenvalues and eigenvectors to define the equations of motion in principal coordinates and to transform forces to principal coordinates
+- use Laplace transform to obtain the transfer functions in principal coordinates
+- back-transform the transfer functions to physical coordinates where the individual mode contributions will be evident
+
+This will be applied to the model shown in [Figure 9](#figure--fig:hatch00-tdof-model).
+
+
+
+{{< figure src="/ox-hugo/hatch00_tdof_model.png" caption="Figure 9: tdof undamped model for modal analysis" >}}
+
+
+### Review from Previous Results {#review-from-previous-results}
+
+Since the problem we are solving is frequency response, or finding the steady state motion of each mass as a function of frequency and of applied forces, initial conditions are not required.
+
+From previous analysis, we know the eigenvalues and eigenvectors normalized with respect to mass:
+
+\begin{equation}
+ \omega\_1 = 0, \quad \omega\_2 = \pm\sqrt{\frac{3k}{m}}, \quad \omega\_3 = \pm\sqrt{\frac{k}{m}}
+\end{equation}
+
+\begin{equation}
+ \bm{z}\_n = \frac{1}{\sqrt{m}} \begin{bmatrix}
+ \frac{1}{\sqrt{3}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{6}} \\\\
+ \frac{1}{\sqrt{3}} & 0 & \frac{-2}{\sqrt{6}} \\\\
+ \frac{1}{\sqrt{3}} & \frac{-1}{\sqrt{2}} & \frac{1}{\sqrt{6}}
+\end{bmatrix}
+\end{equation}
+
+Knowing that in principal coordinates the mass matrix is the identify matrix and the stiffness matrix is a diagonal matrix with the squares of the respect eigenvalues as terms, we can write the matrices by **inspection**:
+
+\begin{equation}
+ \bm{m}\_n = \begin{bmatrix}
+ 1 & 0 & 0 \\\\
+ 0 & 1 & 0 \\\\
+ 0 & 0 & 1
+\end{bmatrix}, \quad
+ \bm{k}\_n = \begin{bmatrix}
+ 0 & 0 & 0 \\\\
+ 0 & 1 & 0 \\\\
+ 0 & 0 & 3
+\end{bmatrix} \frac{k}{m}
+\end{equation}
+
+The force vector in principal coordinates is:
+
+\begin{equation}
+ \bm{F}\_p = \bm{z}\_n^T \bm{F}
+\end{equation}
+
+The equations of motion in principal coordinates are then:
+
+\begin{equation}
+ \bm{m}\_n \ddot{\bm{z}}\_p + \bm{k}\_n \bm{z}\_p = \bm{z}\_n^T \bm{F}
+\end{equation}
+
+which give:
+
+\begin{align}
+ \ddot{z}\_{p1} &= (F\_1 + F\_2 + F\_3) \frac{1}{\sqrt{3m}} \\\\
+ \ddot{z}\_{p2} + \frac{k}{m} z\_{p2} &= (F\_1 - F\_3) \frac{1}{\sqrt{2m}} \\\\
+ \ddot{z}\_{p3} + \frac{3k}{m} z\_{p3} &= (F\_1 - 2 F\_2 + F\_3) \frac{1}{\sqrt{6m}}
+\end{align}
+
+
+### Transfer Functions - Laplace Transforms in Principal Coordinates {#transfer-functions-laplace-transforms-in-principal-coordinates}
+
+Taking the Laplace transform of each equation gives:
+
+\begin{equation}
+ \begin{bmatrix}
+ \frac{z\_{p1}}{F\_{1}} \\\\
+ \frac{z\_{p2}}{F\_{1}} \\\\
+ \frac{z\_{p3}}{F\_{1}}
+ \end{bmatrix} = \begin{bmatrix}
+ \frac{1}{s^{2}\sqrt{3m}} \\\\
+ \frac{1}{(s^{2} + \omega\_{2}^{2})\sqrt{2m}} \\\\
+ \frac{1}{(s^{2} + \omega\_{3}^{2})\sqrt{6m}}
+ \end{bmatrix} = \begin{bmatrix}
+ z\_{p11} \\\\
+ z\_{p21} \\\\
+ z\_{p31}
+\end{bmatrix}
+\end{equation}
+
+\begin{equation}
+ \begin{bmatrix}
+ \frac{z\_{p1}}{F\_{2}} \\\\
+ \frac{z\_{p2}}{F\_{2}} \\\\
+ \frac{z\_{p3}}{F\_{2}}
+ \end{bmatrix} = \begin{bmatrix}
+ \frac{1}{s^{2}\sqrt{3m}} \\\\
+ 0 \\\\
+ \frac{-2}{(s^{2} + \omega\_{3}^{2})\sqrt{6m}}
+ \end{bmatrix} = \begin{bmatrix}
+ z\_{p12} \\\\
+ z\_{p22} \\\\
+ z\_{p32}
+\end{bmatrix}
+\end{equation}
+
+\begin{equation}
+ \begin{bmatrix}
+ \frac{z\_{p1}}{F\_{3}} \\\\
+ \frac{z\_{p2}}{F\_{3}} \\\\
+ \frac{z\_{p3}}{F\_{3}}
+ \end{bmatrix} = \begin{bmatrix}
+ \frac{1}{s^{2}\sqrt{3m}} \\\\
+ \frac{-1}{(s^{2} + \omega\_{2}^{2})\sqrt{2m}} \\\\
+ \frac{1}{(s^{2} + \omega\_{3}^{2})\sqrt{6m}}
+ \end{bmatrix} = \begin{bmatrix}
+ z\_{p13} \\\\
+ z\_{p23} \\\\
+ z\_{p33}
+\end{bmatrix}
+\end{equation}
+
+
+### Back-Transforming Mode Contributions to Transfer Functions in Physical Coordinates {#back-transforming-mode-contributions-to-transfer-functions-in-physical-coordinates}
+
+The transfer functions in principal coordinates can be back-transformed to physical coordinates.
+This allows one to see the contributions of each mode, where \\(z\_{ij}\\) is the physical displacement at dof i due to a force at dof j:
+
+\begin{equation}
+ \bm{z} = \bm{z}\_n \bm{z}\_p
+\end{equation}
+
+with:
+
+- \\(\bm{z}\\) physical displacements (\\(n \times 1\\))
+- \\(\bm{z}\_n\\) matrix of normalized eigenvectors (\\(n \times m\\))
+- \\(\bm{z}\_p\\) principal displacements (\\(m \times 1\\))
+
+And the transfer functions \\(\frac{z\_i}{F\_j}\\) can be computed.
+For instance, the contributions to the transfer function \\(\frac{z\_1}{F\_1}\\) are:
+
+\begin{align}
+ \frac{z\_1}{F\_1} &= \underbrace{z\_{n11} z\_{p11}}\_{\text{1st mode}} + \underbrace{z\_{n12} z\_{p21}}\_{\text{2nd mode}} + \underbrace{z\_{n13} z\_{p31}}\_{\text{3rd mode}} \\\\
+ & = \frac{\frac{1}{3m}}{s^2} + \frac{\frac{1}{2m}}{s^2 + \omega\_2^2} + \frac{\frac{1}{6m}}{s^2 + \omega\_3^2}
+\end{align}
+
+
+### Forcing Function Combinations to Excite Single Mode {#forcing-function-combinations-to-excite-single-mode}
+
+It is instructive to see what types of forcing function combinations will excite each of the three modes separately.
+From the definition of normal modes, we known that if the system is started from initial displacement conditions that match one of the normal modes, the system will respond at that only mode.
+
+An analogous situation exists for combinations of forcing functions.
+
+The forces transform in the principal coordinates using:
+
+\begin{equation}
+ \bm{F}\_p = \bm{z}\_n^T \bm{F}
+\end{equation}
+
+
+
+Thus, if \\(\bm{F}\\) is aligned with \\(\bm{z}\_{ni}\\) (the i'th normalized eigenvector), then \\(\bm{F}\_p\\) will be null except for its i'th term and only the i'th mode will be excited.
+
+
+
+
+### How Modes Combine to Create Transfer Functions {#how-modes-combine-to-create-transfer-functions}
+
+Any transfer function derived from the modal analysis is an additive combination of sdof systems.
+
+
+
+Each single degree of freedom system has a gain determined by the appropriate eigenvector entries and a resonant frequency given by the appropriate eigenvalue.
+
+It can be shown that for a general system with \\(m\\) undamped modes:
+
+\begin{equation}
+ \frac{z\_j}{F\_k} = \sum\_{i = 1}^m \frac{z\_{nji} z\_{nki}}{s^2 + \omega\_i^2} \label{eq:general\_add\_tf}
+\end{equation}
+
+If modes have some damping:
+
+\begin{equation}
+ \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}
+
+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\\).
+
+
+
+[Figure 10](#figure--fig:hatch00-z11-tf-example) shows the separate contributions of each mode to the total response \\(z\_1/F\_1\\).
+
+
+
+{{< figure src="/ox-hugo/hatch00_z11_tf.png" caption="Figure 10: Mode contributions to the transfer function from \\(F\_1\\) to \\(z\_1\\)" >}}
+
+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}
+
+
+
+
+### Introduction {#introduction}
+
+In this section is developed a SISO state space Matlab model from an ANSYS cantilever beam model as shown in [Figure 11](#figure--fig:hatch00-cantilever-beam).
+A z direction force is applied at the midpoint of the beam and z displacement at the tip is the output.
+The objective is to provide the smallest Matlab state space model that accurately represents the pertinent dynamics.
+
+
+
+{{< figure src="/ox-hugo/hatch00_cantilever_beam.png" caption="Figure 11: Cantilever beam with forcing function at midpoint" >}}
+
+The steps to define the smallest model are:
+
+1. define the eigenvector elements for all modes for only the input and output degrees of freedom
+2. analyze the modal contributions of all the modes and sort them to define which ones have the greatest contribution
+
+One method for reducing the size of a modal model is to simple truncate the higher frequency modes.
+However, if truncation is performed without understanding the contributions of each of the modes to the response, several problems could arise.
+One problem is that deleting a high frequency mode with a significant DC gain could adversely affect the model.
+
+
+### ANSYS Eigenvalue Extraction Methods {#ansys-eigenvalue-extraction-methods}
+
+ANSYS has a number of different eigenvalue extraction techniques, but for most problems only two methods are commonly used:
+
+- The first method, **Block Lanczos**, is the fastest and calculates all the eigenvalues or eigenvectors in a specific frequency range.
+ This method is usually preferred as most practical models require knowledge of the modes from DC through a specified higher frequency.
+- The second method, Reduced, performs a **Guyan reduction** on the model to reduce its size, then calculates all the eigenvalues for the reduced model.
+ Obtaining eigenvector components for the reduced degrees of freedom requires an additional calculation step in ANSYS.
+ This method is still useful to obtain a "super-element".
+
+We can choose to use ANSYS to output only the eigenvectors for nodes of interest or we can output the complete modal matrix and choose the appropriate rows of data within Matlab.
+
+
+### Matlab State Space Model from ANSYS Eigenvalue Run {#matlab-state-space-model-from-ansys-eigenvalue-run}
+
+In order to obtain a State Space model of reasonable order, we need to rank the relative importance of the contributions of each of the individual modes.
+To do so, we can use a **ranking of DC gains**.
+
+Once the modes are ranked, the most important can be selected for use, and modes with small DC gains are eliminated from the model.
+The DC gain contributions of the eliminated modes are not included in the overall DC gain, so there is error in the low frequency gain.
+In order to eliminate this error, the Matlab function `modred` is introduced.
+Using `modred` is analogous to using Guyan reduction to reduce some less important degrees of freedom.
+
+We will discuss in this section two methods of sorting, one which is applicable for models with the same value of damping for all modes \\(\xi\_i = \xi\\) ("uniform" damping), and another which is applicable for models with different damping values for each mode ("non-uniform" damping).
+
+The general equation for the overall transfer function of undamped and damped systems are:
+
+\begin{align}
+ \frac{z\_j}{F\_k} &= \sum\_{i = 1}^m \frac{z\_{nji} z\_{nki}}{s^2 + \omega\_i^2} \\\\
+ \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}
+\end{align}
+
+The **DC gain** of the i'th mode can be obtained by substituting \\(s = j\omega = 0\\):
+
+\begin{equation}
+ \text{DC gain}\_i = \frac{z\_{ji}}{F\_{ki}} = \frac{z\_{nji} z\_{nki}}{\omega\_i^2}
+\end{equation}
+
+where \\(z\_{nji} z\_{nki}\\) is the product of the j'th (output) row and k'th (force applied) row terms of the i'th eigenvector.
+
+At resonance, the **peak gain** amplitude of each mode is given by substituting \\(s = j \omega\_i\\):
+
+\begin{equation}
+ \text{Peak gain}\_i = \frac{z\_{ji}}{F\_{ki}} = \frac{-j}{2 \xi\_i} \frac{z\_{nji} z\_{nki}}{\omega\_i^2}
+\end{equation}
+
+And we see that the peak gain for a mode is the DC gain of the same mode divided by \\(2 \xi\_i\\).
+
+If the same value of \\(\xi\\) is used for all modes, then all the DC gain terms are divided by the same \\(2 \xi\\) terms and the relative amplitude of the DC gains and peak gains are the same, so there is no difference between sorting a uniform damping model using DC gain or peak gain.
+
+However, if the modes have different damping the relationship between the DC gain and peak gain for all the modes is not a constant value and peak gain must be used to rank modes for importance.
+
+The Matlab command `modred` can be used for reducing models while retaining the overall system DC gain.
+The `matchdc` gain option for the function `modred` reduces defined states by setting the derivatives of the states to be eliminated to zero, then solving for the remaining states.
+The method essentially sets up the eliminated states to be "infinitely fast" and is analogous to Guyan reduction in that the low frequency effects of the eliminated states are included in the remaining states.
+In thus case, `modred` produces a new state space model with a non-null \\(D\\) matrix meaning that the reduced system will have a flat response at high frequency which may not be desirable.
+
+The `truncate` method does not account for the DC gains of the unused modes, which can result in error in the low frequency portion of the frequency response.
+However, the `truncate` method has the advantage that it does not exhibit the unusual high frequency direct transmission matrix related behavior of the `matchdc` method.
+
+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}
+
+
+
+
+### Model Description {#model-description}
+
+
+### Initial ANSYS Model Comparison {#initial-ansys-model-comparison}
+
+
+### Matlab State Space Model from Eigenvalue Run {#matlab-state-space-model-from-eigenvalue-run}
+
+
+## SISO Disk Drive Actuator Model {#siso-disk-drive-actuator-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)).
+
+
+### Actuator Description {#actuator-description}
+
+
+
+{{< figure src="/ox-hugo/hatch00_disk_drive_siso_model.png" caption="Figure 12: Drawing of Actuator/Suspension system" >}}
+
+The primary motion of the actuator is rotation about the pivot bearing, therefore the final model has the coordinate system transformed from a Cartesian x,y,z coordinate system to a Cylindrical \\(r\\), \\(\theta\\) and \\(z\\) system, with the two origins coincident ([Figure 13](#figure--fig:hatch00-disk-drive-nodes-reduced-model)).
+
+
+
+{{< figure src="/ox-hugo/hatch00_disk_drive_nodes_reduced_model.png" caption="Figure 13: Nodes used for reduced Matlab model. Shown with partial finite element mesh at coil" >}}
+
+For reduced models, we only require eigenvector information for dof where forces are applied and where displacements are required.
+[Figure 13](#figure--fig:hatch00-disk-drive-nodes-reduced-model) shows the nodes used for the reduced Matlab model.
+The four nodes 24061, 24066, 24082 and 24087 are located in the center of the coil in the z direction and are used for simulating the VCM force.
+The arrows at the nodes indicate the direction of forces.
+
+Nodes 22 and 10022 are the nodes for the top and bottom heads and are used for measurement.
+
+
+### Ansys Actuator/Suspension Model Results {#ansys-actuator-suspension-model-results}
+
+A recommended sequence for analyzing dynamic finite element models is:
+
+1. Plot resonant frequencies versus mode numbers to get a feel for the frequency range.
+ See if there are any significant jumps in frequency between modes which can indicate the system transitioning from one type of characteristic motion to another.
+2. Plot frequency responses to define which modes couple into the response.
+3. Plot and animate the mode shapes that contribute to the response, identifying modes that couple into motions in directions of interest and those that do not.
+ Visually get a sense of how the geometry of the structure affects the modes.
+4. Run parameter studies to understand the sensitivity of critical modes to design variables: dimensions, tolerances, material properties, etc.
+
+
+### Ansys Output Example Listing {#ansys-output-example-listing}
+
+A small section of the exported `.eig` file from ANSYS is shown bellow..
+
+
+
+
+
+LOAD STEP= 1 SUBSTEP= 1
+ FREQ= 8.1532 LOAD CASE= 0
+
+THE FOLLOWING DEGREE OF FREEDOM RESULTS ARE IN THE GLOBAL COORDINATE SYSTEM
+
+NODE UX UY UZ ROTX ROTY ROTZ
+ 1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
+ 2 0.0000 1.1981 0.0000 -0.99396E-015-0.14742E-014 0.23368E-001
+ 3 0.31447E-014 0.13758 0.31164E-014 0.33825E-014-0.24915E-015 0.81730E-002
+ 4 -0.51842E-014 0.54120 -0.36031E-014 0.13267E-014 0.30620E-014 0.15962E-001
+ 5 0.0000 4.5604 0.0000 0.50842E-015 0.21315E-015 0.43289E-001
+
+
+
+
+
+Important information are:
+
+- `SUBSTEP`: mode number
+- `FREQ`: eigenvalue in Hz
+- The eigenvector for the mode in all dofs for all nodes
+
+
+### Inputs and Outputs definition {#inputs-and-outputs-definition}
+
+A unity force is applied at the coil, and evenly distributed among the four nodes.
+This model is still considered as a **Single Input** model because the same force is applied to all four coil nodes, requiring only a single column vector for the input matrix \\(\bm{B}\\).
+
+To compute the DC gain and peak gain in that case, we define a **composite** forcing function which consists of the force applied to each node times the eigenvector value for that node, \\(\bm{F}\_p^T \bm{x}\_n\\).
+The dimensions of this operation are \\((1 \times n) \times (n \times m) = (1 \times m)\\), so we have a composite force vector for each mode.
+
+
+### Building Full State Space Matrices {#building-full-state-space-matrices}
+
+From Ansys, we have the eigenvalues \\(\omega\_i\\) and eigenvectors \\(\bm{z}\\).
+
+
+## Balanced Reduction {#balanced-reduction}
+
+
+
+In this chapter another method of reducing models, “balanced reduction”, will be introduced and compared with the DC and peak gain ranking methods.
+
+This method uses the concepts of controllability and observability, commonly referenced in the control community.
+
+One issue with balanced reduction is that we lose the ability to directly identify individual modes in the reduced system model.
+After balanced reduction one needs to examine the system matrix to identify which modes are included, while the dc and peak gain ranking techniques retain the identities of the individual modes.
+
+Unlike SISO models, which can be easily ranked using simple DC and peak gain techniques, **MIMO models will require the balanced reduction method because it easily handles the problem of ranking multiple inputs and outputs**.
+
+
+### Reviewing DC gain raking {#reviewing-dc-gain-raking}
+
+So far we have used DC or peak gains of the individual modes to rank the importance of including each mode in the reduced system.
+
+For any mode, if the degree of freedom associated with the applied force has a zero value, then the force applied at the degree of freedom cannot excite that mode, so the DC and peak gains will also be zero and the mode be eliminated.
+
+Similarly, if the degree of freedom associated with the output has a zero value, then no matter how much force is applied to that mode, there will be no output, and the mode can be eliminated.
+
+A mode which cannot be excited by the applied force is said to be **uncontrollable**, and a mode which has no output in the desired direction is said to be **unobservable**.
+
+
+### Controllability, Observability {#controllability-observability}
+
+For a state space system described by:
+
+\begin{align\*}
+ \dot{\bm{x}} &= \bm{A} \bm{x} + \bm{B} u \\\\
+ \bm{y} &= \bm{C} \bm{x}
+\end{align\*}
+
+the following definitions of controllability hold:
+
+1. If there is an input \\(u\\) that can move the system from some arbitrary state \\(\bm{x}\_1\\) to another arbitrary state \\(\bm{x}\_2\\) in a finite time, then the system is controllable
+2. A controllability matrix \\(\bm{\mathcal{C}}\\) can be formed as:
+
+ \begin{equation}
+ \bm{\mathcal{C}} = \begin{bmatrix}
+ \bm{B} & \bm{A} \bm{B} & \bm{A}^{2} \bm{B} & \dots & \bm{A}^{n-1} \bm{B}
+ \end{bmatrix}
+ \end{equation}
+
+ If \\(\bm{\mathcal{C}}\\) has full (row) rank, the system is controllable.
+3. Another definition of controllability involves the controllability gramian, \\(\bm{W}\_c\\), the solution of the Lyapunov equation:
+
+ \begin{equation}
+ \bm{A} \bm{W}\_{c} + \bm{W}\_{c} \bm{A}^{T} + \bm{B} \bm{B}^{T} = 0
+ \end{equation}
+
+ defined as:
+
+ \begin{equation}
+ \bm{W}\_{c} = \int\_{0}^{\infty} e^{\bm{A}\tau} \bm{B} \bm{B}^{T} e^{{\bm{A}^{T} \tau} d \tau}
+ \end{equation}
+
+ If the solution \\(\bm{W}\_c\\) is non-singular, then the system is controllable.
+
+ Diagonal elements of the controllability gramian give information about the **relative controllability of the different modes** and can be used in a manner similar to our use of DC gains to rank the relative controllability of individual modes.
+
+ Gramians exists only for system that have all their poles with negative real parts.
+ Thus, if a system has rigid body modes, it should first be partitioned into rigid body dynamics and oscillatory dynamics and then the controllability gramian can be computed on the oscillatory partition.
+
+A similar set of definitions can be made for observability:
+
+1. If the initial state \\(\bm{x}\_0\\) of a system can be inferred from knowledge of the input \\(u\\) and output \\(\bm{y}\\) over a finite period of time \\((0, t)\\), then the system is said to be observable.
+2. A observability matrix \\(\bm{\mathcal{O}}\\) can be formed as:
+
+ \begin{equation}
+ \bm{\mathcal{O}} = \begin{bmatrix}
+ \bm{C} \\\ \bm{C} \bm{A} \\\ \bm{C} \bm{A}^{2} \\\ \vdots \\\ \bm{C} \bm{A}^{n-1}
+ \end{bmatrix}
+ \end{equation}
+
+ If \\(\bm{\mathcal{O}}\\) has full (column) rank, the system is observable.
+3. Another definition of observability involves the observability gramian, \\(\bm{W}\_o\\), the solution of the Lyapunov equation:
+
+ \begin{equation}
+ \bm{A}^T \bm{W}\_{o} + \bm{W}\_{o} \bm{A} + \bm{C}^T \bm{C} = 0
+ \end{equation}
+
+ defined as:
+
+ \begin{equation}
+ \bm{W}\_{o} = \int\_{0}^{\infty} e^{\bm{A}^T \tau} \bm{C}^T \bm{C} e^{{\bm{A} \tau} d \tau}
+ \end{equation}
+
+ If the solution \\(\bm{W}\_o\\) is non-singular, then the system is observable.
+
+ Diagonal elements of the observability gramian give information about the **relative observability of the different modes** and can be used in a manner similar to our use of DC gains to rank the relative observability of individual modes.
+
+
+### Ranking Using Controllability/Observability {#ranking-using-controllability-observability}
+
+We could use the controllability curve to rank the states for controllability and eliminate those states with low controllability.
+Alternately, we could use the observability curve to rank the states for observability and then eliminate states with low observability.
+The problem with this approach is that the joint controllability/observability is not taken in account.
+
+To take into account both the observability and the controllability, we use the **Balance Reduction**.
+
+
+### Balanced Reduction {#balanced-reduction}
+
+The balanced reduction is used to create a system with **identical diagonal controllability and observability Gramians**.
+Since the two gramians are equal, either the diagonal of the controllability gramian or the diagonal of the observability gramian can be used to rank states for elimination.
+
+The diagonal terms of the joint gramian are squares of the Hankel singular values of the system.
+The Hankel matrix is the product of the controllability and observability gramians.
+
+Because the controllability and observability gramians are identical, there is no ambiguity in deciding whether the most controllable or the most observable states should be chosen.
+The **states to be kept are the states with the largest diagonal terms**.
+
+
+## MIMO Two Stage Actuator Model {#mimo-two-stage-actuator-model}
+
+
+
+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)).
+
+
+### Actuator Description {#actuator-description}
+
+
+
+{{< figure src="/ox-hugo/hatch00_disk_drive_mimo_schematic.png" caption="Figure 14: Drawing of actuator/suspension system" >}}
+
+A piezo-actuator is now bounded into one side of each of the arms.
+The piezo actuator consists of a ceramic element that changes size when a voltage is applied.
+
+Then the fine positioning motion of the piezo is used in conjunction with VCM's coarse positioning motion, higher servo bandwidth is possible.
+
+
+
+Instead of applying voltage as the input into the piezo elements, we will assume that we have calculated an equivalent set of forces which can be applied at the ends of the element that will replicate the voltage force function.
+In this model, we will be applying forces to multiple nodes at the ends of both piezo elements.
+
+
+
+Since the same forces are being applied to both piezo elements, they represent the second input to the MIMO system, the first input being the coil force.
+
+
+### Ansys Model Description {#ansys-model-description}
+
+In [Figure 15](#figure--fig:hatch00-disk-drive-mimo-ansys) are shown the principal nodes used for the model.
+
+
+
+{{< figure src="/ox-hugo/hatch00_disk_drive_mimo_ansys.png" caption="Figure 15: Nodes used for reduced Matlab model, shown with partial mesh at coil and piezo element" >}}
+
+
+### Matlab Model {#matlab-model}
+
+For a SISO system, we can rank the relative importance of modes using two methods, by using DC or peak gains and by using balancing.
+However, **for a MIMO system, balancing is the only practical solution**.
+
+If we were using DC gains to rank the modes, we would have to compute DC gains for the four combinations possible of the two inputs and two inputs.
+
+We would then see that the DC gains of the modes are not ranked to same way for different sets of input/output.
+Especially, the modes important for the VCM are not the same than for the piezo.
+If one were to choose a single ranking for the model which would take into account both inputs and both outputs, it is difficult to see how to do it given the DC gain rankings.
+Thus the necessity of balanced reduction for MIMO models.
+
+
+#### Balancing Reduction {#balancing-reduction}
+
+Balancing the system involves calculating gramians, which are only defined for negative definite systems.
+This requires separating the rigid body mode from the oscillatory modes and balancing the oscillatory modes.
+The system matrices are partitioned and a model of only oscillatory modes is created and balanced.
+Plotting the diagonal gramian terms reveals the relative important of the states.
+
+The complete system is rebuilt by augmenting the rigid body mode with the reduced oscillatory modes.
+
+
+## Matlab Simple Example {#matlab-simple-example}
+
+
+### Problem Description {#problem-description}
+
+We define the system parameters.
+
+```matlab
+ m = 1;
+ k = 1;
+```
+
+We write the mass and stiffness matrices:
+
+```matlab
+ M = diag([m, m, m]);
+ K = [k, -k, 0;
+ -k, 2*k, -k;
+ 0, -k, k];
+```
+
+Compute the eigenvalues and eigenvectors:
+
+```matlab
+ [z, w] = eig(M\K);
+```
+
+| | rad/s |
+|----|-------|
+| w1 | 0.0 |
+| w2 | 1.0 |
+| w3 | 3.0 |
+
+Normalization of the eigenvectors:
+
+```matlab
+ zn = z./sqrt(diag(z' * M * z));
+```
+
+| zn1 | zn2 | zn3 |
+|------|------|------|
+| -0.6 | -0.7 | 0.4 |
+| -0.6 | 0.0 | -0.8 |
+| -0.6 | 0.7 | 0.4 |
+
+Non-necessary step:
+
+```matlab
+ Mn = zn' * M * zn;
+ Kn = zn' * K * zn;
+```
+
+By inspection:
+
+```matlab
+ Mn = eye(3);
+ Kn = w; % Shouldn't this be equal to w.^2 ?
+```
+
+We add some simple proportional damping:
+
+```matlab
+ xi = 0.03;
+ Cn = xi/2*sqrt(k*m) * eye(3);
+```
+
+The equations in the principal coordinates are:
+\\[ \bm{m}\_n \ddot{\bm{z}}\_p + \bm{c}\_n \dot{\bm{z}}\_p + \bm{k}\_n \bm{z}\_p = \bm{F}\_p = \bm{z}\_n^T \bm{F} \\]
+
+Let's note
+\\[ \bm{G}\_p(s) = \frac{\bm{z}\_p}{\bm{F}} \\]
+
+```matlab
+ Gp = (tf(Mn)*s^2 + tf(Cn)*s + tf(Kn))\tf(eye(3))*zn';
+```
+
+```matlab
+ bodeFig({Gp(1,1), Gp(2,2), Gp(3,3)})
+```
+
+And we have the Laplace transform in the principal coordinates.
+
+And to convert the modal displacement to the physical displacement, we use:
+\\[ \bm{z} = \bm{z}\_n \bm{z}\_p \\]
+And we note:
+\\[ \bm{G}(s) = \bm{z}\_n\ bm{G}\_p(s) = \frac{\bm{z}}{\bm{F}} \\]
+
+```matlab
+ G = zn * Gp;
+```
+
+
+
+{{< figure src="/ox-hugo/hatch00_z13_tf.png" caption="Figure 16: Mode contributions to the transfer function from \\(F\_1\\) to \\(z\_3\\)" >}}
+
+
+
+{{< figure src="/ox-hugo/hatch00_z11_tf.png" caption="Figure 17: Mode contributions to the transfer function from \\(F\_1\\) to \\(z\_1\\)" >}}
+
+
+## Matlab with ANSYS {#matlab-with-ansys}
+
+
+### Extract values {#extract-values}
+
+```matlab
+ filename = 'files/cantbeam30bl.eig';
+
+ dir = 3; % UY
+ [xn, f0] = readEigFile(filename, dir);
+
+ n_nodes = size(xn, 1);
+ n_modes = size(xn, 2);
+```
+
+
+### Define Physical Inputs and Outputs {#define-physical-inputs-and-outputs}
+
+First, define the node numbers corresponding to the inputs and outputs
+
+```matlab
+ i_input = 14;
+ i_output = 29;
+```
+
+
+### Define Damping {#define-damping}
+
+We here use uniform damping.
+
+```matlab
+ xi = 0.01;
+```
+
+
+### Alternative Definition of the matrix A {#alternative-definition-of-the-matrix-a}
+
+I could define 2x2 sub-matrices each corresponding to a particular mode and then combine them using `blkdiag` command.
+
+
+### All Modes Included in the Model {#all-modes-included-in-the-model}
+
+System Matrix - A
+
+```matlab
+ Adiag = zeros(2*n_modes,1);
+ Adiag(2:2:end) = -2*xi.*(2*pi*f0);
+
+ Adiagsup = zeros(2*n_modes-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*n_modes-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*n_modes, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*n_modes);
+ C(:, 1:2:end) = xn(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_f = ss(A, B, C, D);
+```
+
+
+### Simple mode truncation {#simple-mode-truncation}
+
+Let's plot the frequency of the modes ([Figure 18](#figure--fig:hatch00-cant-beam-modes-freq)).
+
+
+
+{{< figure src="/ox-hugo/hatch00_cant_beam_modes_freq.png" caption="Figure 18: Frequency of the modes" >}}
+
+
+
+{{< figure src="/ox-hugo/hatch00_cant_beam_unsorted_dc_gains.png" caption="Figure 19: Unsorted DC Gains" >}}
+
+Let's keep only the first 10 modes.
+
+```matlab
+ m_max = 10;
+ xn_t = xn(:, 1:m_max);
+ f0_t = f0(1:m_max);
+```
+
+```matlab
+ Adiag = zeros(2*m_max,1);
+ Adiag(2:2:end) = -2*xi.*(2*pi*f0_t);
+
+ Adiagsup = zeros(2*m_max-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*m_max-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0_t).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*m_max, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn_t'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*m_max);
+ C(:, 1:2:end) = xn_t(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_t = ss(A, B, C, D);
+```
+
+
+### Modes sorted by their DC gain {#modes-sorted-by-their-dc-gain}
+
+Let's sort the modes by their DC gains and plot their sorted DC gains.
+
+```matlab
+ dc_gain = abs(xn(i_input, :).*xn(i_output, :))./(2*pi*f0).^2;
+
+ [dc_gain_sort, index_sort] = sort(dc_gain, 'descend');
+```
+
+
+
+{{< figure src="/ox-hugo/hatch00_cant_beam_sorted_dc_gains.png" caption="Figure 20: Sorted DC Gains" >}}
+
+Let's keep only the first 10 **sorted** modes.
+
+```matlab
+ m_max = 10;
+
+ xn_s = xn(:, index_sort(1:m_max));
+ f0_s = f0(index_sort(1:m_max));
+```
+
+```matlab
+ Adiag = zeros(2*m_max,1);
+ Adiag(2:2:end) = -2*xi.*(2*pi*f0_s);
+
+ Adiagsup = zeros(2*m_max-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*m_max-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0_s).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*m_max, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn_s'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*m_max);
+ C(:, 1:2:end) = xn_s(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_s = ss(A, B, C, D);
+```
+
+
+### Comparison {#comparison}
+
+```matlab
+ freqs = logspace(0, 5, 1000);
+
+ figure;
+ hold on;
+ plot(freqs, abs(squeeze(freqresp(G_f, freqs, 'Hz'))), 'DisplayName', 'Full');
+ plot(freqs, abs(squeeze(freqresp(G_t, freqs, 'Hz'))), 'DisplayName', 'Trun');
+ plot(freqs, abs(squeeze(freqresp(G_s, freqs, 'Hz'))), 'DisplayName', 'Sort');
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude'); xlabel('Frequency [Hz]');
+ legend();
+```
+
+
+### Effect of the Individual Modes {#effect-of-the-individual-modes}
+
+```matlab
+ freqs = logspace(0, 4, 1000);
+
+ figure;
+ hold on;
+ for mode_i = 1:6
+ A = zeros(2);
+ A(2,2) = -2*xi.*(2*pi*f0(mode_i));
+ A(1,2) = 1;
+ A(2,1) = -(2*pi*f0(mode_i)).^2;
+
+ B = [0; xn(i_input, mode_i)'];
+
+ C = [xn(i_output, mode_i), 0];
+
+ D = zeros(length(i_output), length(i_input));
+
+ plot(freqs, abs(squeeze(freqresp(ss(A,B,C,D), freqs, 'Hz'))), ...
+ 'DisplayName', sprintf('Mode %i', mode_i));
+ end
+ plot(freqs, abs(squeeze(freqresp(G_f, freqs, 'Hz'))), 'k--', ...
+ 'DisplayName', 'Full');
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude'); xlabel('Frequency [Hz]');
+ legend();
+```
+
+
+### Non-Uniform Damping {#non-uniform-damping}
+
+
+#### Definition of the Damping {#definition-of-the-damping}
+
+If we want to use Rayleigh damping:
+
+```matlab
+ a = 1e-2;
+ b = 1e-6;
+ xi = (a + b * (2*pi*f0).^2)./(2*pi*f0);
+```
+
+
+#### System Creation {#system-creation}
+
+System Matrix - A
+
+```matlab
+ Adiag = zeros(2*n_modes,1);
+ Adiag(2:2:end) = -2*xi.*(2*pi*f0);
+
+ Adiagsup = zeros(2*n_modes-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*n_modes-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*n_modes, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*n_modes);
+ C(:, 1:2:end) = xn(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_d = ss(A, B, C, D);
+```
+
+
+#### Comparison with Uniform Damping {#comparison-with-uniform-damping}
+
+```matlab
+ freqs = logspace(0, 5, 1000);
+
+ figure;
+ hold on;
+ plot(freqs, abs(squeeze(freqresp(G_f, freqs, 'Hz'))), 'DisplayName', 'Uniform Damping');
+ plot(freqs, abs(squeeze(freqresp(G_d, freqs, 'Hz'))), 'DisplayName', 'Non-Uniform Damping');
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude'); xlabel('Frequency [Hz]');
+ legend();
+```
+
+
+#### Modes sorted by their peak gain {#modes-sorted-by-their-peak-gain}
+
+Let's sort the modes by their peak gains and plot their sorted peak gains.
+
+```matlab
+ dc_gain = abs(xn(i_input, :).*xn(i_output, :))./(2*pi*f0).^2;
+ peak_gain = dc_gain./xi;
+
+ [peak_gain_sort, index_sort] = sort(peak_gain, 'descend');
+```
+
+Let's keep only the first 10 **sorted** modes.
+
+```matlab
+ m_max = 10;
+
+ xn_s = xn(:, index_sort(1:m_max));
+ f0_s = f0(index_sort(1:m_max));
+ xi_x = xi(index_sort(1:m_max));
+```
+
+```matlab
+ Adiag = zeros(2*m_max,1);
+ Adiag(2:2:end) = -2*xi_s.*(2*pi*f0_s);
+
+ Adiagsup = zeros(2*m_max-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*m_max-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0_s).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*m_max, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn_s'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*m_max);
+ C(:, 1:2:end) = xn_s(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_p = ss(A, B, C, D);
+```
+
+```matlab
+ freqs = logspace(0, 5, 1000);
+
+ figure;
+ hold on;
+ plot(freqs, abs(squeeze(freqresp(G_f, freqs, 'Hz'))), 'DisplayName', 'Uniform Damping');
+ plot(freqs, abs(squeeze(freqresp(G_d, freqs, 'Hz'))), 'DisplayName', 'Non-Uniform Damping');
+ plot(freqs, abs(squeeze(freqresp(G_p, freqs, 'Hz'))), 'DisplayName', 'Peak sort');
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude'); xlabel('Frequency [Hz]');
+ legend();
+```
+
+
+### MIMO System {#mimo-system}
+
+
+#### Inputs and Outputs {#inputs-and-outputs}
+
+Let's choose two inputs and two outputs.
+
+```matlab
+ i_input = [14, 31];
+ i_output = [14, 31];
+```
+
+
+#### System Matrices {#system-matrices}
+
+System Matrix - A
+
+```matlab
+ Adiag = zeros(2*n_modes,1);
+ Adiag(2:2:end) = -2*xi.*(2*pi*f0);
+
+ Adiagsup = zeros(2*n_modes-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*n_modes-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*n_modes, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*n_modes);
+ C(:, 1:2:end) = xn(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_m = ss(A, B, C, D);
+```
+
+
+#### Balancing Reduction {#balancing-reduction}
+
+First, we have to make sure that the rigid body mode is not included in the system (here it is not).
+
+Then, we compute the controllability and observability gramians.
+
+```matlab
+ wc = gram(G_m, 'c');
+ wo = gram(G_m, 'o');
+```
+
+And we plot the diagonal terms
+
+
+
+{{< figure src="/ox-hugo/hatch00_gramians.png" caption="Figure 21: Observability and Controllability Gramians" >}}
+
+We use `balreal` to rank oscillatory states.
+
+> [SYSB,G] = BALREAL(SYS) computes a balanced state-space realization for
+> the stable portion of the linear system SYS. For stable systems, SYSB
+> is an equivalent realization for which the controllability and
+> observability Gramians are equal and diagonal, their diagonal entries
+> forming the vector G of Hankel singular values. Small entries in G
+> indicate states that can be removed to simplify the model (use MODRED
+> to reduce the model order).
+
+```matlab
+ [G_b, G, T, Ti] = balreal(G_m);
+```
+
+
+
+{{< figure src="/ox-hugo/hatch00_cant_beam_gramian_balanced.png" caption="Figure 22: Sorted values of the Gramian of the balanced realization" >}}
+
+Now we can choose the number of states to keep.
+
+```matlab
+ n_states_b = 20;
+```
+
+We now use `modred` to define reduced order oscillatory system using `mathdc` or `truncate` option.
+
+> MODRED Model simplification by state elimination.
+>
+> RSYS = MODRED(SYS,ELIM) simplifies the state-space model SYS by
+> discarding the states specified in the vector ELIM. The full state
+> vector X is partitioned as X = [X1;X2] where Xr=X1 is the reduced
+> state vector and X2 is discarded.
+
+```matlab
+ G_br = modred(G_b, n_states_b+1:size(A,1), 'truncate');
+```
+
+If needed, the rigid body mode should be added to the reduced system.
+
+And other option is to specify the minimum value of the gramians diagonal elements for the modes to keep.
+
+```matlab
+ G_min = 1e-4;
+ G_br = modred(G_b, G\d+),(?
\d+)\]:(?[^\[]+)', 'names');
+
+ row = cellfun(@str2double, {parts.row}, 'UniformOutput', true);
+ col = cellfun(@str2double, {parts.col}, 'UniformOutput', true);
+ val = cellfun(@str2double, {parts.val}, 'UniformOutput', true);
+
+ sz = [max(row), max(col)]; % size of output matrix
+ MatK = zeros(sz); % preallocate size
+ ix = sub2ind(sz, row, col); % get matrix positions
+ MatK(ix)= val; % assign data
+```
+
+```matlab
+ str = fileread('files/Mdense.txt');
+ % Remove spaces
+ str = regexprep(str,'\s+','');
+ % Regex to get the data
+ parts = regexp(str, '\[(?\d+),(?
\d+)\]:(?[^\[]+)', 'names');
+
+ row = cellfun(@str2double, {parts.row}, 'UniformOutput', true);
+ col = cellfun(@str2double, {parts.col}, 'UniformOutput', true);
+ val = cellfun(@str2double, {parts.val}, 'UniformOutput', true);
+
+ sz = [max(row), max(col)]; % size of output matrix
+ MatM = zeros(sz); % preallocate size
+ ix = sub2ind(sz, row, col); % get matrix positions
+ MatM(ix)= val; % assign data
+```
+
+Find inputs/outputs:
+
+```matlab
+ i_input = 14;
+ i_output = 29;
+
+
+```
+
+Correspondence with DOF:
+
+```matlab
+ a = readtable('files/Mass_HB.mapping', 'FileType', 'text');
+ KM_i = strcmpi(a{:, 3},{'UZ'});
+
+ MatM = MatM(KM_i, KM_i);
+ MatK = MatK(KM_i, KM_i);
+```
+
+
+### Read Position of Nodes {#read-position-of-nodes}
+
+```matlab
+ a = readmatrix('files/FEA-poutre-noeuds.txt');
+ pos = a(:, 4:6);
+ node_i = a(:, 7);
+```
+
+```matlab
+ figure;
+ hold on;
+ plot3(pos(:,1),pos(:,3),pos(:,3), 'ko')
+ text(pos(:,1),pos(:,3),pos(:,3), num2cell(node_i))
+```
+
+
+### Reduced order model {#reduced-order-model}
+
+Define Physical Inputs and Outputs
+
+```matlab
+ i_input = 14;
+ i_output = 29;
+```
+
+Damping
+
+```matlab
+ xi = 0.01;
+```
+
+```matlab
+ dc_gain = abs(xn(i_input, :).*xn(i_output, :))./(2*pi*f0).^2;
+
+ [dc_gain_sort, index_sort] = sort(dc_gain, 'descend');
+```
+
+```matlab
+ m_max = 13;
+
+ xn_s = xn(:, index_sort(1:m_max));
+ f0_s = f0(index_sort(1:m_max));
+```
+
+```matlab
+ Adiag = zeros(2*m_max,1);
+ Adiag(2:2:end) = -2*xi.*(2*pi*f0_s);
+
+ Adiagsup = zeros(2*m_max-1,1);
+ Adiagsup(1:2:end) = 1;
+
+ Adiaginf = zeros(2*m_max-1,1);
+ Adiaginf(1:2:end) = -(2*pi*f0_s).^2;
+
+ A = diag(Adiag) + diag(Adiagsup, 1) + diag(Adiaginf, -1);
+```
+
+System Matrix - B
+
+```matlab
+ B = zeros(2*m_max, length(i_input));
+
+ for i = 1:length(i_input)
+ % Physical Coordinates
+ Fp = zeros(n_nodes, 1);
+ Fp(i_input(i)) = 1;
+
+ B(2:2:end, i) = xn_s'*Fp;
+ end
+```
+
+System Matrix - C
+
+```matlab
+ C = zeros(length(i_output), 2*m_max);
+ C(:, 1:2:end) = xn_s(i_output, :);
+```
+
+System Matrix - D
+
+```matlab
+ D = zeros(length(i_output), length(i_input));
+```
+
+State Space Model
+
+```matlab
+ G_s = ss(A, B, C, D);
+```
+
+
+### Generate Mass and Stiffness matrices {#generate-mass-and-stiffness-matrices}
+
+Full Mass and Stiffness matrices in the principal coordinates:
+
+```matlab
+ Mp = eye(length(f0));
+ Kp = xn'*diag((2*pi*f0).^2)/xn;
+```
+
+Reduced Mass and Stiffness matrices in the principal coordinates:
+
+```matlab
+ Mr = Mp()
+ Kr = xn'*diag((2*pi*f0).^2)/xn;
+```
+
+Reduced Mass and Stiffness matrices in the physical coordinates:
+
+```matlab
+
+```
+
+```matlab
+ M = xn_s*eye(m_max)/xn_s;
+ K = xn_s*diag((2*pi*f0_s).^2)/xn_s;
+```
+
+```matlab
+ % M = xn*eye(length(f0))/xn;
+ % K = xn*diag((2*pi*f0).^2)/xn;
+
+ M = eye(length(f0));
+ K = xn*diag((2*pi*f0).^2)/xn;
+```
+
+
+### Frames for Simscape {#frames-for-simscape}
+
+```matlab
+ pos_frames = pos([1, i_input, i_output], :);
+```
+
+
+## Bibliography {#bibliography}
+
+
+
Hatch, M. R. 2000. Vibration Simulation Using MATLAB and ANSYS. CRC Press.
+
Miu, Denny K. 1993. Mechatronics: Electromechanics and Contromechanics. 1st ed. Mechanical Engineering Series. Springer-Verlag New York.
+
diff --git a/content/book/horowitz15_art_of_elect_third_edition.md b/content/book/horowitz15_art_of_elect_third_edition.md
new file mode 100644
index 0000000..8305a12
--- /dev/null
+++ b/content/book/horowitz15_art_of_elect_third_edition.md
@@ -0,0 +1,26 @@
++++
+title = "The Art of Electronics - Third Edition"
+author = ["Dehaeze Thomas"]
+description = "One of the best book in electronics. Cover most topics (both analog and digital)."
+keywords = ["electronics"]
+draft = false
++++
+
+Tags
+: [Reference Books]({{< relref "reference_books.md" >}}), [Electronics]({{< relref "electronics.md" >}})
+
+Reference
+: (Horowitz 2015)
+
+Author(s)
+: Horowitz, P.
+
+Year
+: 2015
+
+
+## Bibliography {#bibliography}
+
+
+
Horowitz, Paul. 2015. The Art of Electronics - Third Edition. New York, NY, USA: Cambridge University Press.
+
diff --git a/content/book/hughes13_elect_motor_drives.md b/content/book/hughes13_elect_motor_drives.md
new file mode 100644
index 0000000..9521c64
--- /dev/null
+++ b/content/book/hughes13_elect_motor_drives.md
@@ -0,0 +1,1182 @@
++++
+title = "Electric motors and drives: fundamentals, types and applications"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Hughes and Drury 2013)
+
+Author(s)
+: Hughes, A., & Drury, B.
+
+Year
+: 2013
+
+
+## One - Electric Motors ? The Basics {#one-electric-motors-the-basics}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Producing Rotation {#2-dot-producing-rotation}
+
+Nearly all motors exploit the force which is exerted on a current-carrying conductor placed in a magnetic field ([Figure 1](#figure--fig:hughes13-current-conductor-force)).
+
+In order to make the most of the mechanism, we need to arrange for there to be a very **strong magnetic field**, and for it to **interact with many conductors**, each carrying **as much current as possible**.
+
+
+
+{{< figure src="/ox-hugo/hughes13_current_conductor_force.png" caption="Figure 1: Mechanical force produced on a current-carrying wire in a magnetic field" >}}
+
+
+#### 2.1 Magnetic field and magnetic flux {#2-dot-1-magnetic-field-and-magnetic-flux}
+
+When a current carrying conductor is placed in a magnetic field, it experiences a force.
+Experiment shows that the magnitude of the force depends directly on the current in the wire and the strength of the magnetic field, and that the force is greatest when the magnetic field is perpendicular to the conductor.
+
+
+#### 2.2 Magnetic flux density {#2-dot-2-magnetic-flux-density}
+
+
+#### 2.3 Force on a conductor {#2-dot-3-force-on-a-conductor}
+
+
+### 3. Magnetic Circuits {#3-dot-magnetic-circuits}
+
+
+#### 3.1 Magnetomotive force {#3-dot-1-magnetomotive-force}
+
+
+#### 3.2 Electric circuit analogy {#3-dot-2-electric-circuit-analogy}
+
+
+#### 3.3 The air-gap {#3-dot-3-the-air-gap}
+
+
+#### 3.4 Reluctance and air-gap flux densities {#3-dot-4-reluctance-and-air-gap-flux-densities}
+
+
+#### 3.5 Saturation {#3-dot-5-saturation}
+
+
+#### 3.6 Magnetic circuits in motors {#3-dot-6-magnetic-circuits-in-motors}
+
+
+### 4. Torque Production {#4-dot-torque-production}
+
+
+#### 4.1 Magnitude of torque {#4-dot-1-magnitude-of-torque}
+
+
+#### 4.2 The beauty of slotting {#4-dot-2-the-beauty-of-slotting}
+
+
+### 5. Torque and Motor Volume {#5-dot-torque-and-motor-volume}
+
+
+#### 5.1 Specific loadings {#5-dot-1-specific-loadings}
+
+
+#### 5.2 Torque and rotor volume {#5-dot-2-torque-and-rotor-volume}
+
+
+#### 5.3 Output power – importance of speed {#5-dot-3-output-power-importance-of-speed}
+
+
+#### 5.4 Power density {#5-dot-4-power-density}
+
+
+### 6. Energy Conversion ? Motional E.M.F. {#6-dot-energy-conversion-motional-e-dot-m-dot-f-dot}
+
+
+#### 6.1 Elementary motor – stationary conditions {#6-dot-1-elementary-motor-stationary-conditions}
+
+
+#### 6.2 Power relationships – conductor moving at constant speed {#6-dot-2-power-relationships-conductor-moving-at-constant-speed}
+
+
+### 7. Equivalent Circuit {#7-dot-equivalent-circuit}
+
+
+#### 7.1 Motoring and generating {#7-dot-1-motoring-and-generating}
+
+
+### 8. Constant Voltage Operation {#8-dot-constant-voltage-operation}
+
+
+#### 8.1 Behavior with no mechanical load {#8-dot-1-behavior-with-no-mechanical-load}
+
+
+#### 8.2 Behavior with a mechanical load {#8-dot-2-behavior-with-a-mechanical-load}
+
+
+#### 8.3 Relative magnitudes of V and E, and efficiency {#8-dot-3-relative-magnitudes-of-v-and-e-and-efficiency}
+
+
+#### 8.4 Analysis of primitive machine – conclusions {#8-dot-4-analysis-of-primitive-machine-conclusions}
+
+
+### 9. General Properties of Electric Motors {#9-dot-general-properties-of-electric-motors}
+
+
+#### 9.1 Operating temperature and cooling {#9-dot-1-operating-temperature-and-cooling}
+
+
+#### 9.2 Torque per unit volume {#9-dot-2-torque-per-unit-volume}
+
+
+#### 9.3 Power per unit volume and efficiency – importance of speed {#9-dot-3-power-per-unit-volume-and-efficiency-importance-of-speed}
+
+
+#### 9.4 Size effects – specific torque and efficiency {#9-dot-4-size-effects-specific-torque-and-efficiency}
+
+
+#### 9.5 Rated voltage {#9-dot-5-rated-voltage}
+
+
+#### 9.6 Short-term overload {#9-dot-6-short-term-overload}
+
+
+## Two - Introduction to Power Electronic Converters for Motor Drives {#two-introduction-to-power-electronic-converters-for-motor-drives}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+#### 1.1 General arrangement of drive {#1-dot-1-general-arrangement-of-drive}
+
+
+### 2. Voltage Control ? D.C. Output from D.C. Supply {#2-dot-voltage-control-d-dot-c-dot-output-from-d-dot-c-dot-supply}
+
+
+#### 2.1 Switching control {#2-dot-1-switching-control}
+
+
+#### 2.2 Transistor chopper {#2-dot-2-transistor-chopper}
+
+
+#### 2.3 Chopper with inductive load – overvoltage protection {#2-dot-3-chopper-with-inductive-load-overvoltage-protection}
+
+
+#### 2.4 Boost converter {#2-dot-4-boost-converter}
+
+
+### 3. D.C. from A.C. ? Controlled Rectification {#3-dot-d-dot-c-dot-from-a-dot-c-dot-controlled-rectification}
+
+
+#### 3.1 The thyristor {#3-dot-1-the-thyristor}
+
+
+#### 3.2 Single pulse rectifier {#3-dot-2-single-pulse-rectifier}
+
+
+#### 3.3 Single-phase fully controlled converter – output voltage and control {#3-dot-3-single-phase-fully-controlled-converter-output-voltage-and-control}
+
+
+##### 3.3.1 Resistive load {#3-dot-3-dot-1-resistive-load}
+
+
+##### 3.3.2 Inductive {#3-dot-3-dot-2-inductive}
+
+
+#### 3.4 Three-phase fully controlled converter {#3-dot-4-three-phase-fully-controlled-converter}
+
+
+#### 3.5 Output voltage range {#3-dot-5-output-voltage-range}
+
+
+#### 3.6 Firing circuits {#3-dot-6-firing-circuits}
+
+
+### 4. A.C. from D.C. ? Inversion {#4-dot-a-dot-c-dot-from-d-dot-c-dot-inversion}
+
+
+#### 4.1 Single-phase inverter {#4-dot-1-single-phase-inverter}
+
+
+#### 4.2 Output voltage control {#4-dot-2-output-voltage-control}
+
+
+#### 4.3 Three-phase inverter {#4-dot-3-three-phase-inverter}
+
+
+### 5. A.C. from A.C. {#5-dot-a-dot-c-dot-from-a-dot-c-dot}
+
+
+#### 5.1 Cycloconverter {#5-dot-1-cycloconverter}
+
+
+### 6. Inverter Switching Devices {#6-dot-inverter-switching-devices}
+
+
+#### 6.1 Bipolar junction transistor {#6-dot-1-bipolar-junction-transistor}
+
+
+#### 6.2 Metal oxide semiconductor field effect transistor {#6-dot-2-metal-oxide-semiconductor-field-effect-transistor}
+
+
+#### 6.3 Insulated gate bipolar transistor {#6-dot-3-insulated-gate-bipolar-transistor}
+
+
+### 7. Converter Waveforms, Acoustic Noise, and Cooling {#7-dot-converter-waveforms-acoustic-noise-and-cooling}
+
+
+#### 7.1 Cooling of switching devices – thermal resistance {#7-dot-1-cooling-of-switching-devices-thermal-resistance}
+
+
+#### 7.2 Arrangement of heatsinks and forced-air cooling {#7-dot-2-arrangement-of-heatsinks-and-forced-air-cooling}
+
+
+## Three - Conventional D.C. Motors {#three-conventional-d-dot-c-dot-motors}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Torque Production {#2-dot-torque-production}
+
+
+#### 2.1 Function of the commutator {#2-dot-1-function-of-the-commutator}
+
+
+#### 2.2 Operation of the commutator – interpoles {#2-dot-2-operation-of-the-commutator-interpoles}
+
+
+### 3. Motional E.M.F. {#3-dot-motional-e-dot-m-dot-f-dot}
+
+
+#### 3.1 Equivalent circuit {#3-dot-1-equivalent-circuit}
+
+
+### 4. D.C. Motor ? Steady-State Characteristics {#4-dot-d-dot-c-dot-motor-steady-state-characteristics}
+
+
+#### 4.1 No-load speed {#4-dot-1-no-load-speed}
+
+
+#### 4.2 Performance calculation – example {#4-dot-2-performance-calculation-example}
+
+
+#### 4.3 Behavior when loaded {#4-dot-3-behavior-when-loaded}
+
+
+#### 4.4 Base speed and field weakening {#4-dot-4-base-speed-and-field-weakening}
+
+
+#### 4.5 Armature reaction {#4-dot-5-armature-reaction}
+
+
+#### 4.6 Maximum output power {#4-dot-6-maximum-output-power}
+
+
+### 5. Transient Behavior ? Current Surges {#5-dot-transient-behavior-current-surges}
+
+
+#### 5.1 Dynamic behavior and time-constants {#5-dot-1-dynamic-behavior-and-time-constants}
+
+
+### 6. Four Quadrant Operation and Regenerative Braking {#6-dot-four-quadrant-operation-and-regenerative-braking}
+
+
+#### 6.1 Full-speed regenerative reversal {#6-dot-1-full-speed-regenerative-reversal}
+
+
+#### 6.2 Dynamic braking {#6-dot-2-dynamic-braking}
+
+
+### 7. Shunt and Series Motors {#7-dot-shunt-and-series-motors}
+
+
+#### 7.1 Shunt motor – steady-state operating characteristics {#7-dot-1-shunt-motor-steady-state-operating-characteristics}
+
+
+#### 7.2 Series motor – steady-state operating characteristics {#7-dot-2-series-motor-steady-state-operating-characteristics}
+
+
+#### 7.3 Universal motors {#7-dot-3-universal-motors}
+
+
+### 8. Self-Excited D.C. Machine {#8-dot-self-excited-d-dot-c-dot-machine}
+
+
+### 9. Toy Motors {#9-dot-toy-motors}
+
+
+## Four - D.C. Motor Drives {#four-d-dot-c-dot-motor-drives}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Thyristor D.C. Drives ? General {#2-dot-thyristor-d-dot-c-dot-drives-general}
+
+
+#### 2.1 Motor operation with converter supply {#2-dot-1-motor-operation-with-converter-supply}
+
+
+#### 2.2 Motor current waveforms {#2-dot-2-motor-current-waveforms}
+
+
+#### 2.3 Discontinuous current {#2-dot-3-discontinuous-current}
+
+
+#### 2.4 Converter output impedance: overlap {#2-dot-4-converter-output-impedance-overlap}
+
+
+#### 2.5 Four-quadrant operation and inversion {#2-dot-5-four-quadrant-operation-and-inversion}
+
+
+#### 2.6 Single-converter reversing drives {#2-dot-6-single-converter-reversing-drives}
+
+
+#### 2.7 Double converter reversing drives {#2-dot-7-double-converter-reversing-drives}
+
+
+#### 2.8 Power factor and supply effects {#2-dot-8-power-factor-and-supply-effects}
+
+
+### 3. Control Arrangements for D.C. Drives {#3-dot-control-arrangements-for-d-dot-c-dot-drives}
+
+
+#### 3.1 Current limits and protection {#3-dot-1-current-limits-and-protection}
+
+
+#### 3.2 Torque control {#3-dot-2-torque-control}
+
+
+#### 3.3 Speed control {#3-dot-3-speed-control}
+
+
+#### 3.4 Overall operating region {#3-dot-4-overall-operating-region}
+
+
+#### 3.5 Armature voltage feedback and IR compensation {#3-dot-5-armature-voltage-feedback-and-ir-compensation}
+
+
+#### 3.6 Drives without current control {#3-dot-6-drives-without-current-control}
+
+
+### 4. Chopper-Fed D.C. Motor Drives {#4-dot-chopper-fed-d-dot-c-dot-motor-drives}
+
+
+#### 4.1 Performance of chopper-fed d.c. motor drives {#4-dot-1-performance-of-chopper-fed-d-dot-c-dot-motor-drives}
+
+
+#### 4.2 Torque–speed characteristics and control arrangements {#4-dot-2-torque-speed-characteristics-and-control-arrangements}
+
+
+### 5. D.C. Servo Drives {#5-dot-d-dot-c-dot-servo-drives}
+
+
+#### 5.1 Servo motors {#5-dot-1-servo-motors}
+
+
+#### 5.2 Position control {#5-dot-2-position-control}
+
+
+### 6. Digitally Controlled Drives {#6-dot-digitally-controlled-drives}
+
+
+## Five - Induction Motors ? Rotating Field, Slip and Torque {#five-induction-motors-rotating-field-slip-and-torque}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+#### 1.1 Outline of approach {#1-dot-1-outline-of-approach}
+
+
+### 2. The Rotating Magnetic Field {#2-dot-the-rotating-magnetic-field}
+
+
+#### 2.1 Production of rotating magnetic field {#2-dot-1-production-of-rotating-magnetic-field}
+
+
+#### 2.2 Field produced by each phase-winding {#2-dot-2-field-produced-by-each-phase-winding}
+
+
+#### 2.3 Resultant 3-phase field {#2-dot-3-resultant-3-phase-field}
+
+
+#### 2.4 Direction of rotation {#2-dot-4-direction-of-rotation}
+
+
+#### 2.5 Main {#2-dot-5-main}
+
+
+#### 2.6 Magnitude of rotating flux wave {#2-dot-6-magnitude-of-rotating-flux-wave}
+
+
+#### 2.7 Excitation power and volt-amps {#2-dot-7-excitation-power-and-volt-amps}
+
+
+#### 2.8 Summary {#2-dot-8-summary}
+
+
+### 3. Torque Production {#3-dot-torque-production}
+
+
+#### 3.1 Rotor construction {#3-dot-1-rotor-construction}
+
+
+#### 3.2 Slip {#3-dot-2-slip}
+
+
+#### 3.3 Rotor-induced e.m.f. and current {#3-dot-3-rotor-induced-e-dot-m-dot-f-dot-and-current}
+
+
+#### 3.4 Torque {#3-dot-4-torque}
+
+
+#### 3.5 Rotor currents and torque – small slip {#3-dot-5-rotor-currents-and-torque-small-slip}
+
+
+#### 3.6 Rotor currents and torque – large slip {#3-dot-6-rotor-currents-and-torque-large-slip}
+
+
+#### 3.7 Generating – negative slip {#3-dot-7-generating-negative-slip}
+
+
+### 4. Influence of Rotor Current on Flux {#4-dot-influence-of-rotor-current-on-flux}
+
+
+#### 4.1 Reduction of flux by rotor current {#4-dot-1-reduction-of-flux-by-rotor-current}
+
+
+### 5. Stator Current?Speed Characteristics {#5-dot-stator-current-speed-characteristics}
+
+
+## Six - Induction Motors ? Operation from 50/60Hz Supply {#six-induction-motors-operation-from-50-60hz-supply}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Methods of Starting Cage Motors {#2-dot-methods-of-starting-cage-motors}
+
+
+#### 2.1 Direct starting – problems {#2-dot-1-direct-starting-problems}
+
+
+#### 2.2 Star/delta {#2-dot-2-star-delta}
+
+
+#### 2.3 Autotransformer starter {#2-dot-3-autotransformer-starter}
+
+
+#### 2.4 Resistance or reactance starter {#2-dot-4-resistance-or-reactance-starter}
+
+
+#### 2.5 Solid-state soft starting {#2-dot-5-solid-state-soft-starting}
+
+
+#### 2.6 Starting using a variable-frequency inverter {#2-dot-6-starting-using-a-variable-frequency-inverter}
+
+
+### 3. Run-Up and Stable Operating Regions {#3-dot-run-up-and-stable-operating-regions}
+
+
+#### 3.1 Harmonic effects – skewing {#3-dot-1-harmonic-effects-skewing}
+
+
+#### 3.2 High inertia loads – overheating {#3-dot-2-high-inertia-loads-overheating}
+
+
+#### 3.3 Steady-state rotor losses and efficiency {#3-dot-3-steady-state-rotor-losses-and-efficiency}
+
+
+#### 3.4 Steady-state stability – pull-out torque and stalling {#3-dot-4-steady-state-stability-pull-out-torque-and-stalling}
+
+
+### 4. Torque?Speed Curves ? Influence of Rotor Parameters {#4-dot-torque-speed-curves-influence-of-rotor-parameters}
+
+
+#### 4.1 Cage rotor {#4-dot-1-cage-rotor}
+
+
+#### 4.2 Double cage and deep bar rotors {#4-dot-2-double-cage-and-deep-bar-rotors}
+
+
+#### 4.3 Starting and run-up of slipring motors {#4-dot-3-starting-and-run-up-of-slipring-motors}
+
+
+### 5. Influence of Supply Voltage on Torque?Speed Curve {#5-dot-influence-of-supply-voltage-on-torque-speed-curve}
+
+
+### 6. Generating {#6-dot-generating}
+
+
+#### 6.1 Generating region {#6-dot-1-generating-region}
+
+
+#### 6.2 Self-excited induction generator {#6-dot-2-self-excited-induction-generator}
+
+
+#### 6.3 Doubly-fed induction machine for wind-power generation {#6-dot-3-doubly-fed-induction-machine-for-wind-power-generation}
+
+
+### 7. Braking {#7-dot-braking}
+
+
+#### 7.1 Plug reversal and plug braking {#7-dot-1-plug-reversal-and-plug-braking}
+
+
+#### 7.2 Injection braking {#7-dot-2-injection-braking}
+
+
+### 8. Speed Control {#8-dot-speed-control}
+
+
+#### 8.1 Pole-changing motors {#8-dot-1-pole-changing-motors}
+
+
+#### 8.2 Voltage control of high-resistance cage motors {#8-dot-2-voltage-control-of-high-resistance-cage-motors}
+
+
+#### 8.3 Speed control of wound-rotor motors {#8-dot-3-speed-control-of-wound-rotor-motors}
+
+
+#### 8.4 Slip energy recovery {#8-dot-4-slip-energy-recovery}
+
+
+### 9. Power-Factor Control and Energy Optimization {#9-dot-power-factor-control-and-energy-optimization}
+
+
+### 10. Single-Phase Induction Motors {#10-dot-single-phase-induction-motors}
+
+
+#### 10.1 Principle of operation {#10-dot-1-principle-of-operation}
+
+
+#### 10.2 Capacitor run motors {#10-dot-2-capacitor-run-motors}
+
+
+#### 10.3 Split-phase motors {#10-dot-3-split-phase-motors}
+
+
+#### 10.4 Shaded pole motors {#10-dot-4-shaded-pole-motors}
+
+
+### 11. Power Range {#11-dot-power-range}
+
+
+#### 11.1 Scaling down – the excitation problem {#11-dot-1-scaling-down-the-excitation-problem}
+
+
+## Seven - Variable Frequency Operation of Induction Motors {#seven-variable-frequency-operation-of-induction-motors}
+
+
+### 1 Introduction {#1-introduction}
+
+
+### 2. Inverter-Fed Induction Motor Drives {#2-dot-inverter-fed-induction-motor-drives}
+
+
+#### 2.1 Steady-state operation – importance of achieving full flux {#2-dot-1-steady-state-operation-importance-of-achieving-full-flux}
+
+
+### 3. Torque?Speed Characteristics {#3-dot-torque-speed-characteristics}
+
+
+#### 3.1 Limitations imposed by the inverter – constant power and constant torque regions {#3-dot-1-limitations-imposed-by-the-inverter-constant-power-and-constant-torque-regions}
+
+
+#### 3.2 Limitations imposed by the motor {#3-dot-2-limitations-imposed-by-the-motor}
+
+
+#### 3.3 Four-quadrant capability {#3-dot-3-four-quadrant-capability}
+
+
+### 4. Introduction to Field-Oriented Control {#4-dot-introduction-to-field-oriented-control}
+
+
+#### 4.1 Outline of remainder of this chapter {#4-dot-1-outline-of-remainder-of-this-chapter}
+
+
+#### 4.2 Transient and steady states in electric circuits {#4-dot-2-transient-and-steady-states-in-electric-circuits}
+
+
+#### 4.3 Space phasor representation of m.m.f. waves {#4-dot-3-space-phasor-representation-of-m-dot-m-dot-f-dot-waves}
+
+
+#### 4.4 Transformation of reference frames {#4-dot-4-transformation-of-reference-frames}
+
+
+#### 4.5 Circuit modeling of the induction motor {#4-dot-5-circuit-modeling-of-the-induction-motor}
+
+
+#### 4.6 Coupled circuits, induced e.m.f. and flux linkage {#4-dot-6-coupled-circuits-induced-e-dot-m-dot-f-dot-and-flux-linkage}
+
+
+#### 4.7 Self and mutual inductance {#4-dot-7-self-and-mutual-inductance}
+
+
+#### 4.8 Obtaining torque from a circuit model {#4-dot-8-obtaining-torque-from-a-circuit-model}
+
+
+#### 4.9 Finding the rotor currents {#4-dot-9-finding-the-rotor-currents}
+
+
+### 5. Steady-State Torque Under Current-Fed Conditions {#5-dot-steady-state-torque-under-current-fed-conditions}
+
+
+#### 5.1 Torque vs slip frequency – constant stator current {#5-dot-1-torque-vs-slip-frequency-constant-stator-current}
+
+
+### 6. Torque vs Slip Frequency ? Constant Rotor Flux Linkage {#6-dot-torque-vs-slip-frequency-constant-rotor-flux-linkage}
+
+
+#### 6.1 Flux and torque components of stator current {#6-dot-1-flux-and-torque-components-of-stator-current}
+
+
+#### 6.2 Establishing the flux {#6-dot-2-establishing-the-flux}
+
+
+### 7. Dynamic Torque Control {#7-dot-dynamic-torque-control}
+
+
+#### 7.1 Summary {#7-dot-1-summary}
+
+
+### 8. Implementation of Field-Oriented Control {#8-dot-implementation-of-field-oriented-control}
+
+
+#### 8.1 PWM controller/vector modulator {#8-dot-1-pwm-controller-vector-modulator}
+
+
+#### 8.2 Torque control scheme {#8-dot-2-torque-control-scheme}
+
+
+#### 8.3 Transient operation {#8-dot-3-transient-operation}
+
+
+#### 8.4 Acceleration from rest {#8-dot-4-acceleration-from-rest}
+
+
+#### 8.5 Deriving the rotor flux angle {#8-dot-5-deriving-the-rotor-flux-angle}
+
+
+### 9 Direct Torque Control {#9-direct-torque-control}
+
+
+#### 9.1 Outline of operation {#9-dot-1-outline-of-operation}
+
+
+#### 9.2 Control of stator flux and torque {#9-dot-2-control-of-stator-flux-and-torque}
+
+
+## Eight - Inverter-fed Induction Motor Drives {#eight-inverter-fed-induction-motor-drives}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Pulse-Width Modulated PWM Voltage Source Inverter VSI {#2-dot-pulse-width-modulated-pwm-voltage-source-inverter-vsi}
+
+
+### 3. Performance of Inverter-Fed Induction Motor Drives {#3-dot-performance-of-inverter-fed-induction-motor-drives}
+
+
+#### 3.1 Open-loop {#3-dot-1-open-loop}
+
+
+#### 3.2 Closed-loop {#3-dot-2-closed-loop}
+
+
+#### 3.3 When field orientation and direct torque control cannot be used {#3-dot-3-when-field-orientation-and-direct-torque-control-cannot-be-used}
+
+
+### 4. Effect of Inverter Waveform and Variable Speed on the Induction Motor {#4-dot-effect-of-inverter-waveform-and-variable-speed-on-the-induction-motor}
+
+
+#### 4.1 Acoustic noise {#4-dot-1-acoustic-noise}
+
+
+#### 4.2 Motor insulation and the impact of long inverter-motor cables {#4-dot-2-motor-insulation-and-the-impact-of-long-inverter-motor-cables}
+
+
+#### 4.3 Losses and impact on motor rating {#4-dot-3-losses-and-impact-on-motor-rating}
+
+
+#### 4.4 Bearing currents {#4-dot-4-bearing-currents}
+
+
+#### 4.5 ‘Inverter grade’ induction motors {#4-dot-5-inverter-grade-induction-motors}
+
+
+### 5. Effect of the Inverter-Fed Induction Motor on the Utility Supply {#5-dot-effect-of-the-inverter-fed-induction-motor-on-the-utility-supply}
+
+
+#### 5.1 Harmonic currents {#5-dot-1-harmonic-currents}
+
+
+#### 5.2 Power-factor {#5-dot-2-power-factor}
+
+
+### 6. Inverter and Motor Protection {#6-dot-inverter-and-motor-protection}
+
+
+### 7. Alternative Converter Topologies {#7-dot-alternative-converter-topologies}
+
+
+#### 7.1 Braking {#7-dot-1-braking}
+
+
+#### 7.2 Active front end {#7-dot-2-active-front-end}
+
+
+#### 7.3 Multi-level inverter {#7-dot-3-multi-level-inverter}
+
+
+#### 7.4 Cycloconverter {#7-dot-4-cycloconverter}
+
+
+#### 7.5 Matrix converter {#7-dot-5-matrix-converter}
+
+
+#### 7.6 PWM voltage source inverter with small d.c. smoothing capacitance {#7-dot-6-pwm-voltage-source-inverter-with-small-d-dot-c-dot-smoothing-capacitance}
+
+
+#### 7.7 Current source induction motor drives {#7-dot-7-current-source-induction-motor-drives}
+
+
+## Nine - Synchronous and Brushless Permanent Magnet Machines and Drives {#nine-synchronous-and-brushless-permanent-magnet-machines-and-drives}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Synchronous Motors {#2-dot-synchronous-motors}
+
+
+#### 2.1 Excited-rotor motors {#2-dot-1-excited-rotor-motors}
+
+
+#### 2.2 Permanent magnet motors {#2-dot-2-permanent-magnet-motors}
+
+
+### 3. Equivalent Circuits of Synchronous Motors {#3-dot-equivalent-circuits-of-synchronous-motors}
+
+
+### 4. Operation From Constant-Voltage, Constant-Frequency Utility Supply {#4-dot-operation-from-constant-voltage-constant-frequency-utility-supply}
+
+
+#### 4.1 Excited-rotor motor {#4-dot-1-excited-rotor-motor}
+
+
+#### 4.2 Phasor diagram and power-factor control {#4-dot-2-phasor-diagram-and-power-factor-control}
+
+
+#### 4.3 Permanent magnet motor {#4-dot-3-permanent-magnet-motor}
+
+
+#### 4.4 Starting {#4-dot-4-starting}
+
+
+### 5. Variable-Frequency Operation {#5-dot-variable-frequency-operation}
+
+
+#### 5.1 Phasor diagram – nomenclature and basic relationships {#5-dot-1-phasor-diagram-nomenclature-and-basic-relationships}
+
+
+#### 5.2 Field-oriented control {#5-dot-2-field-oriented-control}
+
+
+#### 5.3 Full-load {#5-dot-3-full-load}
+
+
+#### 5.4 Full torque at half base speed {#5-dot-4-full-torque-at-half-base-speed}
+
+
+#### 5.5 Field weakening – operation at half torque, twice base speed {#5-dot-5-field-weakening-operation-at-half-torque-twice-base-speed}
+
+
+### 6. Synchronous Motor Drives {#6-dot-synchronous-motor-drives}
+
+
+#### 6.1 Permanent magnet motor drives {#6-dot-1-permanent-magnet-motor-drives}
+
+
+#### 6.2 Converter-fed synchronous machine {#6-dot-2-converter-fed-synchronous-machine}
+
+
+### 7. Performance of Brushless Motors {#7-dot-performance-of-brushless-motors}
+
+
+#### 7.1 Advantages of permanent magnet motors {#7-dot-1-advantages-of-permanent-magnet-motors}
+
+
+#### 7.2 Industrial permanent magnet motors {#7-dot-2-industrial-permanent-magnet-motors}
+
+
+#### 7.3 Summary of performance characteristics {#7-dot-3-summary-of-performance-characteristics}
+
+
+#### 7.4 Limits of operation of a brushless permanent magnet motor {#7-dot-4-limits-of-operation-of-a-brushless-permanent-magnet-motor}
+
+
+#### 7.5 Brushless permanent magnet generators {#7-dot-5-brushless-permanent-magnet-generators}
+
+
+### 8. Reluctance and Hysteresis Motors {#8-dot-reluctance-and-hysteresis-motors}
+
+
+#### 8.1 Reluctance motors {#8-dot-1-reluctance-motors}
+
+
+#### 8.2 Hysteresis motors {#8-dot-2-hysteresis-motors}
+
+
+## Ten - Stepping and Switched-reluctance Motors {#ten-stepping-and-switched-reluctance-motors}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Stepping Motors {#2-dot-stepping-motors}
+
+
+#### 2.1 Open-loop position control {#2-dot-1-open-loop-position-control}
+
+
+#### 2.2 Generation of step pulses and motor response {#2-dot-2-generation-of-step-pulses-and-motor-response}
+
+
+#### 2.3 High-speed running and ramping {#2-dot-3-high-speed-running-and-ramping}
+
+
+### 3. Principle of Motor Operation {#3-dot-principle-of-motor-operation}
+
+
+#### 3.1 Variable-reluctance motor {#3-dot-1-variable-reluctance-motor}
+
+
+#### 3.2 Hybrid motor {#3-dot-2-hybrid-motor}
+
+
+#### 3.3 Summary {#3-dot-3-summary}
+
+
+### 4. Motor Characteristics {#4-dot-motor-characteristics}
+
+
+#### 4.1 Static torque–displacement curves {#4-dot-1-static-torque-displacement-curves}
+
+
+#### 4.2 Single-stepping {#4-dot-2-single-stepping}
+
+
+#### 4.3 Step position error and holding torque {#4-dot-3-step-position-error-and-holding-torque}
+
+
+#### 4.4 Half-stepping {#4-dot-4-half-stepping}
+
+
+#### 4.5 Step division – mini-stepping {#4-dot-5-step-division-mini-stepping}
+
+
+### 5. Steady-State Characteristics ? Ideal Constant-Current Drive {#5-dot-steady-state-characteristics-ideal-constant-current-drive}
+
+
+#### 5.1 Requirements of drive {#5-dot-1-requirements-of-drive}
+
+
+#### 5.2 Pull-out torque under constant-current conditions {#5-dot-2-pull-out-torque-under-constant-current-conditions}
+
+
+### 6. Drive Circuits and Pull-Out Torque?Speed Curves {#6-dot-drive-circuits-and-pull-out-torque-speed-curves}
+
+
+#### 6.1 Constant-voltage drive {#6-dot-1-constant-voltage-drive}
+
+
+#### 6.2 Current-forced drive {#6-dot-2-current-forced-drive}
+
+
+#### 6.3 Constant-current {#6-dot-3-constant-current}
+
+
+#### 6.4 Resonances and instability {#6-dot-4-resonances-and-instability}
+
+
+### 7. Transient Performance {#7-dot-transient-performance}
+
+
+#### 7.1 Step response {#7-dot-1-step-response}
+
+
+#### 7.2 Starting from rest {#7-dot-2-starting-from-rest}
+
+
+#### 7.3 Optimum acceleration and closed-loop control {#7-dot-3-optimum-acceleration-and-closed-loop-control}
+
+
+### 8. Switched-Reluctance Motor Drives {#8-dot-switched-reluctance-motor-drives}
+
+
+#### 8.1 Principle of operation {#8-dot-1-principle-of-operation}
+
+
+#### 8.2 Torque prediction and control {#8-dot-2-torque-prediction-and-control}
+
+
+#### 8.3 Power converter and overall drive characteristics {#8-dot-3-power-converter-and-overall-drive-characteristics}
+
+
+## Eleven - Motor/Drive Selection {#eleven-motor-drive-selection}
+
+
+### 1. Introduction {#1-dot-introduction}
+
+
+### 2. Power Ratings and Capabilities {#2-dot-power-ratings-and-capabilities}
+
+
+### 3. Drive Characteristics {#3-dot-drive-characteristics}
+
+
+#### 3.1 Maximum speed and speed range {#3-dot-1-maximum-speed-and-speed-range}
+
+
+### 4. Load Requirements ? Torque?Speed Characteristics {#4-dot-load-requirements-torque-speed-characteristics}
+
+
+#### 4.1 Constant-torque load {#4-dot-1-constant-torque-load}
+
+
+#### 4.2 Inertia matching {#4-dot-2-inertia-matching}
+
+
+#### 4.3 Fan and pump loads {#4-dot-3-fan-and-pump-loads}
+
+
+### 5. General Application Considerations {#5-dot-general-application-considerations}
+
+
+#### 5.1 Regenerative operation and braking {#5-dot-1-regenerative-operation-and-braking}
+
+
+#### 5.2 Duty cycle and rating {#5-dot-2-duty-cycle-and-rating}
+
+
+#### 5.3 Enclosures and cooling {#5-dot-3-enclosures-and-cooling}
+
+
+#### 5.4 Dimensional standards {#5-dot-4-dimensional-standards}
+
+
+#### 5.5 Supply interaction and harmonics {#5-dot-5-supply-interaction-and-harmonics}
+
+
+## one - Introduction to Closed-loop Control {#one-introduction-to-closed-loop-control}
+
+
+### A1.1. Outline of Approach {#a1-dot-1-dot-outline-of-approach}
+
+
+### A1.2. Closed-Loop Feedback Systems {#a1-dot-2-dot-closed-loop-feedback-systems}
+
+
+#### A1.2.1 Error-activated feedback systems {#a1-dot-2-dot-1-error-activated-feedback-systems}
+
+
+#### A1.2.2 Closed-loop systems {#a1-dot-2-dot-2-closed-loop-systems}
+
+
+### A1.3. Steady-State Analysis of Closed-Loop Systems {#a1-dot-3-dot-steady-state-analysis-of-closed-loop-systems}
+
+
+#### A1.3.1 Importance of loop gain – example {#a1-dot-3-dot-1-importance-of-loop-gain-example}
+
+
+#### A1.3.2 Steady-state error – integral control {#a1-dot-3-dot-2-steady-state-error-integral-control}
+
+
+#### A1.3.3 PID controller {#a1-dot-3-dot-3-pid-controller}
+
+
+#### A1.3.4 Stability {#a1-dot-3-dot-4-stability}
+
+
+#### A1.3.5 Disturbance rejection – example using d.c. machine {#a1-dot-3-dot-5-disturbance-rejection-example-using-d-dot-c-dot-machine}
+
+
+## Two - Induction Motor Equivalent Circuit {#two-induction-motor-equivalent-circuit}
+
+
+### A2.1. Introduction {#a2-dot-1-dot-introduction}
+
+
+#### A2.1.1 Outline of approach {#a2-dot-1-dot-1-outline-of-approach}
+
+
+#### A2.1.2 Similarity between induction motor and transformer {#a2-dot-1-dot-2-similarity-between-induction-motor-and-transformer}
+
+
+### A2.2. The Ideal Transformer {#a2-dot-2-dot-the-ideal-transformer}
+
+
+#### A2.2.1 Ideal transformer – no-load condition – flux and magnetizing current {#a2-dot-2-dot-1-ideal-transformer-no-load-condition-flux-and-magnetizing-current}
+
+
+#### A2.2.2 Ideal transformer – no-load condition – voltage ratio {#a2-dot-2-dot-2-ideal-transformer-no-load-condition-voltage-ratio}
+
+
+#### A2.2.3 Ideal transformer on load {#a2-dot-2-dot-3-ideal-transformer-on-load}
+
+
+### A2.3. The Real Transformer {#a2-dot-3-dot-the-real-transformer}
+
+
+#### A2.3.1 Real transformer – no-load condition – flux and magnetizing current {#a2-dot-3-dot-1-real-transformer-no-load-condition-flux-and-magnetizing-current}
+
+
+#### A2.3.2 Real transformer – leakage reactance {#a2-dot-3-dot-2-real-transformer-leakage-reactance}
+
+
+#### A2.3.3 Real transformer on load – exact equivalent circuit {#a2-dot-3-dot-3-real-transformer-on-load-exact-equivalent-circuit}
+
+
+#### A2.3.4 Real transformer – approximate equivalent circuit {#a2-dot-3-dot-4-real-transformer-approximate-equivalent-circuit}
+
+
+#### A2.3.5 Measurement of parameters {#a2-dot-3-dot-5-measurement-of-parameters}
+
+
+#### A2.3.6 Significance of equivalent circuit parameters {#a2-dot-3-dot-6-significance-of-equivalent-circuit-parameters}
+
+
+### A2.4. Development of the Induction Motor Equivalent Circuit {#a2-dot-4-dot-development-of-the-induction-motor-equivalent-circuit}
+
+
+#### A2.4.1 Stationary conditions {#a2-dot-4-dot-1-stationary-conditions}
+
+
+#### A2.4.2 Modeling the electromechanical energy conversion process {#a2-dot-4-dot-2-modeling-the-electromechanical-energy-conversion-process}
+
+
+### A2.5. Properties of Induction Motors {#a2-dot-5-dot-properties-of-induction-motors}
+
+
+#### A2.5.1 Power balance {#a2-dot-5-dot-1-power-balance}
+
+
+#### A2.5.2 Torque {#a2-dot-5-dot-2-torque}
+
+
+### A2.6. Performance Prediction ? Example {#a2-dot-6-dot-performance-prediction-example}
+
+
+#### A2.6.1 Line current {#a2-dot-6-dot-1-line-current}
+
+
+#### A2.6.2 Output power {#a2-dot-6-dot-2-output-power}
+
+
+#### A2.6.3 Efficiency {#a2-dot-6-dot-3-efficiency}
+
+
+#### A2.6.4 Phasor diagram {#a2-dot-6-dot-4-phasor-diagram}
+
+
+### A2.7. Approximate Equivalent Circuits {#a2-dot-7-dot-approximate-equivalent-circuits}
+
+
+#### A2.7.1 Starting and full-load relationships {#a2-dot-7-dot-1-starting-and-full-load-relationships}
+
+
+#### A2.7.2 Torque vs slip and pull-out torque {#a2-dot-7-dot-2-torque-vs-slip-and-pull-out-torque}
+
+
+### A2.8. Measurement of Induction Motor Parameters {#a2-dot-8-dot-measurement-of-induction-motor-parameters}
+
+
+### A2.9. Equivalent Circuit Under Variable-Frequency Conditions {#a2-dot-9-dot-equivalent-circuit-under-variable-frequency-conditions}
+
+
+## Further Reading {#further-reading}
+
+
+## Index {#index}
+
+
+### A {#a}
+
+
+### B {#b}
+
+
+### C {#c}
+
+
+### D {#d}
+
+
+### E {#e}
+
+
+### F {#f}
+
+
+### G {#g}
+
+
+### H {#h}
+
+
+### I {#i}
+
+
+### J {#j}
+
+
+### K {#k}
+
+
+### L {#l}
+
+
+### M {#m}
+
+
+### N {#n}
+
+
+### O {#o}
+
+
+### P {#p}
+
+
+### Q {#q}
+
+
+### R {#r}
+
+
+### S {#s}
+
+
+### T {#t}
+
+
+### U {#u}
+
+
+### V {#v}
+
+
+### W {#w}
+
+
+## Color Plates {#color-plates}
+
+
+
Hughes, Austin, and Bill Drury. 2013. Electric Motors and Drives: Fundamentals, Types and Applications. Newnes.
+
diff --git a/content/book/leach14_fundam_princ_engin_nanom.md b/content/book/leach14_fundam_princ_engin_nanom.md
new file mode 100644
index 0000000..47a20d9
--- /dev/null
+++ b/content/book/leach14_fundam_princ_engin_nanom.md
@@ -0,0 +1,95 @@
++++
+title = "Fundamental principles of engineering nanometrology"
+author = ["Dehaeze Thomas"]
+keywords = ["Metrology"]
+draft = false
++++
+
+Tags
+: [Metrology]({{< relref "metrology.md" >}})
+
+Reference
+: (Leach 2014)
+
+Author(s)
+: Leach, R.
+
+Year
+: 2014
+
+
+## Measurement of angles {#measurement-of-angles}
+
+Unit:
+
+- radian for plane angle
+- steradian for solid angle
+
+\\(1 rad \approx 55.3deg\\)
+
+Instrument principles:
+
+- subdivision: index tacle, angular gratings, polygons, ...
+- ratio of two lengths: angular interferometers, sin cars, small angle generators, ...
+- autocollimators with a flat mirror
+
+
+## Sources of error in displacement interferometry {#sources-of-error-in-displacement-interferometry}
+
+Two error sources:
+
+- error sources that are proportional to the displacement being measured \\(L\\): cumulative errors
+- error sources that are independent of the displacement being measured: non-cumulative errors
+
+
+### Thermal expansion of the metrology frame {#thermal-expansion-of-the-metrology-frame}
+
+
+### Deadpath length {#deadpath-length}
+
+Deadpath length, \\(d\\), is defined as the difference in distance in air between the reference and measurement reflectors and the beam splitter when the interferometer measurement is initiated.
+Deadpath error occurs when there is a non-zero deadpath and environmental conditions change during a measurement.
+
+
+### Cosine error {#cosine-error}
+
+\\(\Delta l = l(1-\cos(\theta))\\)
+
+For small angles: \\(\Delta l = \frac{l \theta^2}{2}\\)
+
+The cosine error is then a second-order effect, contrary to the Abbe error which is a first order effect.
+The second order nature means that cosine error quickly diminish as the alignment is improved.
+
+
+## Latest advances in displacement interferometry {#latest-advances-in-displacement-interferometry}
+
+Commercial interferometers
+=> fused silica optics housed in Invar mounts
+=> all the optical components are mounted to one central optic to reduce the susceptibility to thermal variations
+
+One advantage that homodyme systems have over heterodyne systems is their ability to readily have the source fibre delivered to the interferometer.
+
+
+### Spatially separated interferometers {#spatially-separated-interferometers}
+
+It uses heterodyne interferometer and one quadrant photodiode.
+By knowing the beam size and detector geometry, the measurement target's angle change can be determined by differencing matched pairs of measured phase from the quadrant photodiode while the displacement is determined from the average phase over the four quadrants.
+
+
+## Angular interferometers {#angular-interferometers}
+
+Determination of an angle by the ratio of two lengths.
+The angular optics is used to create two parallel beam paths between the angular interferometer and the angular reflector.
+
+The beam that illuminates the angular optics contains two frequencies, \\(f1\\) and \\(f2\\). A polarising beam splitter in the angular interferometer splits the frequencies that travel along separate paths.
+
+The measurement of angles is then relative.
+
+This type of angular interferometer is used to measure small angles (less than \\(10deg\\)).
+
+
+## Bibliography {#bibliography}
+
+
+
Leach, Richard. 2014. Fundamental Principles of Engineering Nanometrology. Elsevier. doi:10.1016/c2012-0-06010-3.
+
diff --git a/content/book/leach18_basic_precis_engin_edition.md b/content/book/leach18_basic_precis_engin_edition.md
new file mode 100644
index 0000000..c298024
--- /dev/null
+++ b/content/book/leach18_basic_precis_engin_edition.md
@@ -0,0 +1,25 @@
++++
+title = "Basics of precision engineering - 1st edition"
+author = ["Dehaeze Thomas"]
+keywords = ["Metrology", "Mechatronics"]
+draft = true
++++
+
+Tags
+: [Precision Engineering]({{< relref "precision_engineering.md" >}})
+
+Reference
+: (Leach and Smith 2018)
+
+Author(s)
+: Leach, R., & Smith, S. T.
+
+Year
+: 2018
+
+
+## Bibliography {#bibliography}
+
+
+
Leach, Richard, and Stuart T. Smith. 2018. Basics of Precision Engineering - 1st Edition. CRC Press.
+
diff --git a/content/book/lyons11_under_digit_signal_proces.md b/content/book/lyons11_under_digit_signal_proces.md
new file mode 100644
index 0000000..f1ee9a6
--- /dev/null
+++ b/content/book/lyons11_under_digit_signal_proces.md
@@ -0,0 +1,538 @@
++++
+title = "Understanding Digital Signal Processing"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [IRR and FIR Filters]({{< relref "irr_and_fir_filters.md" >}}), [Digital Filters]({{< relref "digital_filters.md" >}})
+
+Reference
+: (Lyons 2011)
+
+Author(s)
+: Lyons, R.
+
+Year
+: 2011
+
+
+## Discrete Sequences And Systems {#discrete-sequences-and-systems}
+
+
+### Discrete Sequences And Their Notation {#discrete-sequences-and-their-notation}
+
+
+### Signal Amplitude, Magnitude, Power {#signal-amplitude-magnitude-power}
+
+
+### Signal Processing Operational Symbols {#signal-processing-operational-symbols}
+
+
+### Introduction To Discrete Linear Time-Invariant Systems {#introduction-to-discrete-linear-time-invariant-systems}
+
+
+### Discrete Linear Systems {#discrete-linear-systems}
+
+
+### Time-Invariant Systems {#time-invariant-systems}
+
+
+### The Commutative Property Of Linear Time-Invariant Systems {#the-commutative-property-of-linear-time-invariant-systems}
+
+
+### Analyzing Linear Time-Invariant Systems {#analyzing-linear-time-invariant-systems}
+
+
+
+{{< figure src="/ox-hugo/lyons11_lti_impulse_response.png" caption="Figure 1: LTI system unit impulse response sequences. (a) system block diagram. (b) impulse input sequence \\(x(n)\\) and impulse reponse output sequence \\(y(n)\\)." >}}
+
+
+
+{{< figure src="/ox-hugo/lyons11_moving_average.png" caption="Figure 2: Analyzing a moving average filter. (a) averager block diagram; (b) impulse input and impulse response; (c) averager frequency magnitude reponse." >}}
+
+
+## Periodic Sampling {#periodic-sampling}
+
+
+### Aliasing: Signal Ambiguity In The Frequency Domain {#aliasing-signal-ambiguity-in-the-frequency-domain}
+
+
+
+{{< figure src="/ox-hugo/lyons11_frequency_ambiguity.png" caption="Figure 3: Frequency ambiguity; (a) discrete time sequence of values; (b) two different sinewaves that pass through the points of discete sequence" >}}
+
+
+### Sampling Lowpass Signals {#sampling-lowpass-signals}
+
+
+
+{{< figure src="/ox-hugo/lyons11_noise_spectral_replication.png" caption="Figure 4: Spectral replications; (a) original continuous signal plus noise spectrum; (b) discrete spectrum with noise contaminating the signal of interest" >}}
+
+
+
+{{< figure src="/ox-hugo/lyons11_lowpass_sampling.png" caption="Figure 5: Low pass analog filtering prior to sampling at a rate of \\(f\_s\\) Hz." >}}
+
+
+## The Discrete Fourier Transform {#the-discrete-fourier-transform}
+
+\begin{equation}
+X(f) = \int\_{-\infty}^{\infty} x(t) e^{-j2\pi f t} dt
+\end{equation}
+
+\begin{equation}
+X(m) = \sum\_{n = 0}^{N-1} x(n) e^{-j2 \pi n m /N}
+\end{equation}
+
+
+### Understanding The Dft Equation {#understanding-the-dft-equation}
+
+
+### Dft Symmetry {#dft-symmetry}
+
+
+### Dft Linearity {#dft-linearity}
+
+
+### Dft Magnitudes {#dft-magnitudes}
+
+
+### Dft Frequency Axis {#dft-frequency-axis}
+
+
+### Dft Shifting Theorem {#dft-shifting-theorem}
+
+
+### Inverse Dft {#inverse-dft}
+
+
+### Dft Leakage {#dft-leakage}
+
+
+### Windows {#windows}
+
+
+### Dft Scalloping Loss {#dft-scalloping-loss}
+
+
+### Dft Resolution, Zero Padding, And Frequency-Domain Sampling {#dft-resolution-zero-padding-and-frequency-domain-sampling}
+
+
+### Dft Processing Gain {#dft-processing-gain}
+
+
+### The Dft Of Rectangular Functions {#the-dft-of-rectangular-functions}
+
+
+### Interpreting The Dft Using The Discrete-Time Fourier Transform {#interpreting-the-dft-using-the-discrete-time-fourier-transform}
+
+
+## The Fast Fourier Transform {#the-fast-fourier-transform}
+
+
+### Relationship Of The Fft To The Dft {#relationship-of-the-fft-to-the-dft}
+
+
+### Hints On Using Ffts In Practice {#hints-on-using-ffts-in-practice}
+
+
+### Derivation Of The Radix-2 Fft Algorithm {#derivation-of-the-radix-2-fft-algorithm}
+
+
+### Fft Input/Output Data Index Bit Reversal {#fft-input-output-data-index-bit-reversal}
+
+
+### Radix-2 Fft Butterfly Structures {#radix-2-fft-butterfly-structures}
+
+
+### Alternate Single-Butterfly Structures {#alternate-single-butterfly-structures}
+
+
+## Finite Impulse Response Filters {#finite-impulse-response-filters}
+
+
+### An Introduction To Finite Impulse Response (Fir) Filters {#an-introduction-to-finite-impulse-response--fir--filters}
+
+
+### Convolution In Fir Filters {#convolution-in-fir-filters}
+
+
+### Lowpass Fir Filter Design {#lowpass-fir-filter-design}
+
+
+### Bandpass Fir Filter Design {#bandpass-fir-filter-design}
+
+
+### Highpass Fir Filter Design {#highpass-fir-filter-design}
+
+
+### Parks-Mcclellan Exchange Fir Filter Design Method {#parks-mcclellan-exchange-fir-filter-design-method}
+
+
+### Half-Band Fir Filters {#half-band-fir-filters}
+
+
+### Phase Response Of Fir Filters {#phase-response-of-fir-filters}
+
+
+### A Generic Description Of Discrete Convolution {#a-generic-description-of-discrete-convolution}
+
+
+### Analyzing Fir Filters {#analyzing-fir-filters}
+
+
+## Infinite Impulse Response Filters {#infinite-impulse-response-filters}
+
+
+### An Introduction To Infinite Impulse Response Filters {#an-introduction-to-infinite-impulse-response-filters}
+
+
+### The Laplace Transform {#the-laplace-transform}
+
+
+### The Z-Transform {#the-z-transform}
+
+
+### Using The Z-Transform To Analyze Iir Filters {#using-the-z-transform-to-analyze-iir-filters}
+
+
+### Using Poles And Zeros To Analyze Iir Filters {#using-poles-and-zeros-to-analyze-iir-filters}
+
+
+### Alternate Iir Filter Structures {#alternate-iir-filter-structures}
+
+
+### Pitfalls In Building Iir Filters {#pitfalls-in-building-iir-filters}
+
+
+### Improving Iir Filters With Cascaded Structures {#improving-iir-filters-with-cascaded-structures}
+
+
+### Scaling The Gain Of Iir Filters {#scaling-the-gain-of-iir-filters}
+
+
+### Impulse Invariance Iir Filter Design Method {#impulse-invariance-iir-filter-design-method}
+
+
+### Bilinear Transform Iir Filter Design Method {#bilinear-transform-iir-filter-design-method}
+
+
+### Optimized Iir Filter Design Method {#optimized-iir-filter-design-method}
+
+
+### A Brief Comparison Of Iir And Fir Filters {#a-brief-comparison-of-iir-and-fir-filters}
+
+
+## Specialized Digital Networks And Filters {#specialized-digital-networks-and-filters}
+
+
+### Differentiators {#differentiators}
+
+
+### Integrators {#integrators}
+
+
+### Matched Filters {#matched-filters}
+
+
+### Interpolated Lowpass Fir Filters {#interpolated-lowpass-fir-filters}
+
+
+### Frequency Sampling Filters: The Lost Art {#frequency-sampling-filters-the-lost-art}
+
+
+## Quadrature Signals {#quadrature-signals}
+
+
+### Why Care About Quadrature Signals? {#why-care-about-quadrature-signals}
+
+
+### The Notation Of Complex Numbers {#the-notation-of-complex-numbers}
+
+
+### Representing Real Signals Using Complex Phasors {#representing-real-signals-using-complex-phasors}
+
+
+### A Few Thoughts On Negative Frequency {#a-few-thoughts-on-negative-frequency}
+
+
+### Quadrature Signals In The Frequency Domain {#quadrature-signals-in-the-frequency-domain}
+
+
+### Bandpass Quadrature Signals In The Frequency Domain {#bandpass-quadrature-signals-in-the-frequency-domain}
+
+
+### Complex Down-Conversion {#complex-down-conversion}
+
+
+### A Complex Down-Conversion Example {#a-complex-down-conversion-example}
+
+
+### An Alternate Down-Conversion Method {#an-alternate-down-conversion-method}
+
+
+## The Discrete Hilbert Transform {#the-discrete-hilbert-transform}
+
+
+### Hilbert Transform Definition {#hilbert-transform-definition}
+
+
+### Why Care About The Hilbert Transform? {#why-care-about-the-hilbert-transform}
+
+
+### Impulse Response Of A Hilbert Transformer {#impulse-response-of-a-hilbert-transformer}
+
+
+### Designing A Discrete Hilbert Transformer {#designing-a-discrete-hilbert-transformer}
+
+
+### Time-Domain Analytic Signal Generation {#time-domain-analytic-signal-generation}
+
+
+### Comparing Analytical Signal Generation Methods {#comparing-analytical-signal-generation-methods}
+
+
+## 10 Sample Rate Conversion {#10-sample-rate-conversion}
+
+
+### 10.1 Decimation {#10-dot-1-decimation}
+
+
+### 10.2 Two-Stage Decimation {#10-dot-2-two-stage-decimation}
+
+
+### 10.3 Properties Of Downsampling {#10-dot-3-properties-of-downsampling}
+
+
+### 10.4 Interpolation {#10-dot-4-interpolation}
+
+
+### 10.5 Properties Of Interpolation {#10-dot-5-properties-of-interpolation}
+
+
+### 10.6 Combining Decimation And Interpolation {#10-dot-6-combining-decimation-and-interpolation}
+
+
+### 10.7 Polyphase Filters {#10-dot-7-polyphase-filters}
+
+
+### 10.8 Two-Stage Interpolation {#10-dot-8-two-stage-interpolation}
+
+
+### 10.9 Z-Transform Analysis Of Multirate Systems {#10-dot-9-z-transform-analysis-of-multirate-systems}
+
+
+### 10.10 Polyphase Filter Implementations {#10-dot-10-polyphase-filter-implementations}
+
+
+### 10.11 Sample Rate Conversion By Rational Factors {#10-dot-11-sample-rate-conversion-by-rational-factors}
+
+
+### 10.12 Sample Rate Conversion With Half-Band Filters {#10-dot-12-sample-rate-conversion-with-half-band-filters}
+
+
+### 10.13 Sample Rate Conversion With Ifir Filters {#10-dot-13-sample-rate-conversion-with-ifir-filters}
+
+
+### 10.14 Cascaded Integrator-Comb Filters {#10-dot-14-cascaded-integrator-comb-filters}
+
+
+## 11 Signal Averaging {#11-signal-averaging}
+
+
+### 11.1 Coherent Averaging {#11-dot-1-coherent-averaging}
+
+
+### 11.2 Incoherent Averaging {#11-dot-2-incoherent-averaging}
+
+
+### 11.3 Averaging Multiple Fast Fourier Transforms {#11-dot-3-averaging-multiple-fast-fourier-transforms}
+
+
+### 11.4 Averaging Phase Angles {#11-dot-4-averaging-phase-angles}
+
+
+### 11.5 Filtering Aspects Of Time-Domain Averaging {#11-dot-5-filtering-aspects-of-time-domain-averaging}
+
+
+### 11.6 Exponential Averaging {#11-dot-6-exponential-averaging}
+
+
+## 12 Digital Data Formats And Their Effects {#12-digital-data-formats-and-their-effects}
+
+
+### 12.1 Fixed-Point Binary Formats {#12-dot-1-fixed-point-binary-formats}
+
+
+### 12.2 Binary Number Precision And Dynamic Range {#12-dot-2-binary-number-precision-and-dynamic-range}
+
+
+### 12.3 Effects Of Finite Fixed-Point Binary Word Length {#12-dot-3-effects-of-finite-fixed-point-binary-word-length}
+
+
+### 12.4 Floating-Point Binary Formats {#12-dot-4-floating-point-binary-formats}
+
+
+### 12.5 Block Floating-Point Binary Format {#12-dot-5-block-floating-point-binary-format}
+
+
+## 13 Digital Signal Processing Tricks {#13-digital-signal-processing-tricks}
+
+
+### 13.1 Frequency Translation Without Multiplication {#13-dot-1-frequency-translation-without-multiplication}
+
+
+### 13.2 High-Speed Vector Magnitude Approximation {#13-dot-2-high-speed-vector-magnitude-approximation}
+
+
+### 13.3 Frequency-Domain Windowing {#13-dot-3-frequency-domain-windowing}
+
+
+### 13.4 Fast Multiplication Of Complex Numbers {#13-dot-4-fast-multiplication-of-complex-numbers}
+
+
+### 13.5 Efficiently Performing The Fft Of Real Sequences {#13-dot-5-efficiently-performing-the-fft-of-real-sequences}
+
+
+### 13.6 Computing The Inverse Fft Using The Forward Fft {#13-dot-6-computing-the-inverse-fft-using-the-forward-fft}
+
+
+### 13.7 Simplified Fir Filter Structure {#13-dot-7-simplified-fir-filter-structure}
+
+
+### 13.8 Reducing A/D Converter Quantization Noise {#13-dot-8-reducing-a-d-converter-quantization-noise}
+
+
+### 13.9 A/D Converter Testing Techniques {#13-dot-9-a-d-converter-testing-techniques}
+
+
+### 13.10 Fast Fir Filtering Using The Fft {#13-dot-10-fast-fir-filtering-using-the-fft}
+
+
+### 13.11 Generating Normally Distributed Random Data {#13-dot-11-generating-normally-distributed-random-data}
+
+
+### 13.12 Zero-Phase Filtering {#13-dot-12-zero-phase-filtering}
+
+
+### 13.13 Sharpened Fir Filters {#13-dot-13-sharpened-fir-filters}
+
+
+### 13.14 Interpolating A Bandpass Signal {#13-dot-14-interpolating-a-bandpass-signal}
+
+
+### 13.15 Spectral Peak Location Algorithm {#13-dot-15-spectral-peak-location-algorithm}
+
+
+### 13.16 Computing Fft Twiddle Factors {#13-dot-16-computing-fft-twiddle-factors}
+
+
+### 13.17 Single Tone Detection {#13-dot-17-single-tone-detection}
+
+
+### 13.18 The Sliding Dft {#13-dot-18-the-sliding-dft}
+
+
+### 13.19 The Zoom Fft {#13-dot-19-the-zoom-fft}
+
+
+### 13.20 A Practical Spectrum Analyzer {#13-dot-20-a-practical-spectrum-analyzer}
+
+
+### 13.21 An Efficient Arctangent Approximation {#13-dot-21-an-efficient-arctangent-approximation}
+
+
+### 13.22 Frequency Demodulation Algorithms {#13-dot-22-frequency-demodulation-algorithms}
+
+
+### 13.23 Dc Removal {#13-dot-23-dc-removal}
+
+
+### 13.24 Improving Traditional Cic Filters {#13-dot-24-improving-traditional-cic-filters}
+
+
+### 13.25 Smoothing Impulsive Noise {#13-dot-25-smoothing-impulsive-noise}
+
+
+### 13.26 Efficient Polynomial Evaluation {#13-dot-26-efficient-polynomial-evaluation}
+
+
+### 13.27 Designing Very High-Order Fir Filters {#13-dot-27-designing-very-high-order-fir-filters}
+
+
+### 13.28 Time-Domain Interpolation Using The Fft {#13-dot-28-time-domain-interpolation-using-the-fft}
+
+
+### 13.29 Frequency Translation Using Decimation {#13-dot-29-frequency-translation-using-decimation}
+
+
+### 13.30 Automatic Gain Control (Agc) {#13-dot-30-automatic-gain-control--agc}
+
+
+### 13.31 Approximate Envelope Detection {#13-dot-31-approximate-envelope-detection}
+
+
+### 13.32 A Quadrature Oscillator {#13-dot-32-a-quadrature-oscillator}
+
+
+### 13.33 Specialized Exponential Averaging {#13-dot-33-specialized-exponential-averaging}
+
+
+### 13.34 Filtering Narrowband Noise Using Filter Nulls {#13-dot-34-filtering-narrowband-noise-using-filter-nulls}
+
+
+### 13.35 Efficient Computation Of Signal Variance {#13-dot-35-efficient-computation-of-signal-variance}
+
+
+### 13.36 Real-Time Computation Of Signal Averages And Variances {#13-dot-36-real-time-computation-of-signal-averages-and-variances}
+
+
+### 13.37 Building Hilbert Transformers From Half-Band Filters {#13-dot-37-building-hilbert-transformers-from-half-band-filters}
+
+
+### 13.38 Complex Vector Rotation With Arctangents {#13-dot-38-complex-vector-rotation-with-arctangents}
+
+
+### 13.39 An Efficient Differentiating Network {#13-dot-39-an-efficient-differentiating-network}
+
+
+### 13.40 Linear-Phase Dc-Removal Filter {#13-dot-40-linear-phase-dc-removal-filter}
+
+
+### 13.41 Avoiding Overflow In Magnitude Computations {#13-dot-41-avoiding-overflow-in-magnitude-computations}
+
+
+### 13.42 Efficient Linear Interpolation {#13-dot-42-efficient-linear-interpolation}
+
+
+### 13.43 Alternate Complex Down-Conversion Schemes {#13-dot-43-alternate-complex-down-conversion-schemes}
+
+
+### 13.44 Signal Transition Detection {#13-dot-44-signal-transition-detection}
+
+
+### 13.45 Spectral Flipping Around Signal Center Frequency {#13-dot-45-spectral-flipping-around-signal-center-frequency}
+
+
+### 13.46 Computing Missing Signal Samples {#13-dot-46-computing-missing-signal-samples}
+
+
+### 13.47 Computing Large Dfts Using Small Ffts {#13-dot-47-computing-large-dfts-using-small-ffts}
+
+
+### 13.48 Computing Filter Group Delay Without Arctangents {#13-dot-48-computing-filter-group-delay-without-arctangents}
+
+
+### 13.49 Computing A Forward And Inverse Fft Using A Single Fft {#13-dot-49-computing-a-forward-and-inverse-fft-using-a-single-fft}
+
+
+### 13.50 Improved Narrowband Lowpass Iir Filters {#13-dot-50-improved-narrowband-lowpass-iir-filters}
+
+
+### 13.51 A Stable Goertzel Algorithm {#13-dot-51-a-stable-goertzel-algorithm}
+
+
+## Bibliography {#bibliography}
+
+
+
Lyons, Richard. 2011. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall.
+
diff --git a/content/book/morrison16_groun_shiel.md b/content/book/morrison16_groun_shiel.md
new file mode 100644
index 0000000..6800cc7
--- /dev/null
+++ b/content/book/morrison16_groun_shiel.md
@@ -0,0 +1,1024 @@
++++
+title = "Grounding and Shielding: Circuits and Interference"
+author = ["Dehaeze Thomas"]
+description = "Explains in a clear manner what is grounding and shielding and what are the fundamental physics behind these terms."
+keywords = ["Electronics"]
+draft = false
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}})
+
+Reference
+: (Morrison 2016)
+
+Author(s)
+: Morrison, R.
+
+Year
+: 2016
+
+
+## Voltage and Capacitors {#voltage-and-capacitors}
+
+
+
+This first chapter described the electric field that is basic to all electrical activity.
+The electric or \\(E\\) field represents forces between charges.
+The basic charge is the electron.
+When charges are placed on conductive surfaces, these forces move the charges to positions that store the least potential energy.
+This energy is stored in an electric field.
+The work required to move a unit of charge between two points in this field is the voltage between those two points.
+
+Capacitors are conductor geometries used to store electric field energy.
+The ability to store energy is enhanced by using dielectrics.
+It is convenient to use two measures of the electric field.
+The field that is created by charges is called the \\(D\\) field and the field that results in forces is the \\(E\\) field.
+A changing \\(D\\) field represents a displacement current in space.
+This changing current has an associated magnetic field.
+This displacement current flows when charges are added or removed from the plates of a capacitor.
+
+
+
+
+### Introduction {#introduction}
+
+
+### Charges and Electrons {#charges-and-electrons}
+
+
+### The electric force field {#the-electric-force-field}
+
+
+### Field representation {#field-representation}
+
+
+
+{{< figure src="/ox-hugo/morrison16_E_field_charge.svg" caption="Figure 1: The force field lines around a positively chaged conducting sphere" >}}
+
+
+### The definition of voltage {#the-definition-of-voltage}
+
+
+### Equipotential surfaces {#equipotential-surfaces}
+
+
+### The force field or \\(E\\) field between two conducting plates {#the-force-field-or-e-field-between-two-conducting-plates}
+
+
+
+{{< figure src="/ox-hugo/morrison16_force_field_plates.svg" caption="Figure 2: The force field between two conducting plates with equal and opposite charges and spacing distance \\(h\\)" >}}
+
+
+### Electric field patterns {#electric-field-patterns}
+
+
+
+{{< figure src="/ox-hugo/morrison16_electric_field_ground_plane.svg" caption="Figure 3: The electric field pattern of one circuit trace and two circuit traces over a ground plane" >}}
+
+
+
+{{< figure src="/ox-hugo/morrison16_electric_field_shielded_conductor.svg" caption="Figure 4: Field configuration around a shielded conductor" >}}
+
+
+### The energy stored in an electric field {#the-energy-stored-in-an-electric-field}
+
+
+### Dielectrics {#dielectrics}
+
+
+### The \\(D\\) field {#the-d-field}
+
+
+
+{{< figure src="/ox-hugo/morrison16_E_D_fields.svg" caption="Figure 5: The electric field pattern in the presence of a dielectric" >}}
+
+
+### Capacitance {#capacitance}
+
+
+### Mutual capacitance {#mutual-capacitance}
+
+
+### Displacement current {#displacement-current}
+
+
+### Energy stored in a capacitor {#energy-stored-in-a-capacitor}
+
+
+### Forces in the electric field {#forces-in-the-electric-field}
+
+
+### Capacitors {#capacitors}
+
+
+### Dielectric absorption {#dielectric-absorption}
+
+
+### Resistance of plane conductors {#resistance-of-plane-conductors}
+
+
+## Magnetics {#magnetics}
+
+
+
+This chapter discusses magnetic fields.
+As in the electric field, there are two measures of the same magnetic field.
+The \\(H\\) field is the direct result of current flow.
+The \\(B\\) field is the force of induction field that operates motors and transformers.
+As in the electric field, the magnetic field is represented by field lines.
+The \\(B\\) field lines are continuous and form closed curves.
+The \\(H\\) field flux lines follow the \\(B\\) field lines but change intensity depending on the permeability of the material in the magnetic path.
+
+In this chapter, the movement of electrical energy into inductors or across transformers is discussed.
+This extends the ideas that both fields are need to move energy.
+Both electric and magnetic fields are need in transformers action or to place energy into an inductor.
+It will be shown that iron cores in transformers reduce the magnetizing current so that transformer action is practical at power frequencies.
+The idea that a changing electric field creates both a displacement current and a magnetic field discussed in Chapter 1.
+In this chapter, it is shown that a changing magnetic field produces both an electric field and voltages.
+Both fields must be in transition before an electrical energy can be moved.
+
+
+
+
+### Magnetic Fields {#magnetic-fields}
+
+In a few elements, the atomic structure is such that atoms align to generate a net magnetic field (neodymium, iron, cobalt, ...).
+
+The flow of electrons is another way to generate a magnetic field.
+
+The letter \\(H\\) is reserved for the magnetic field generated by a current.
+[Figure 6](#figure--fig:morrison16-H-field) shows the shape of the \\(H\\) field around a long, straight conductor carrying a direct current \\(I\\).
+
+
+
+{{< figure src="/ox-hugo/morrison16_H_field.svg" caption="Figure 6: The \\(H\\) field around a current-carrying conductor" >}}
+
+The magnetic field is a force field.
+This force can only be exerted on another magnetic field.
+The direction of the force, the direction of the current flow and the direction of the field lines are all perpendicular to each other.
+
+
+### Ampere's law {#ampere-s-law}
+
+Ampere's law states that the integral of the \\(H\\) field intensity in a closed-loop path is equal to the current threading that loop
+
+\begin{equation} \label{eq:ampere\_law}
+\boxed{\oint H dl = I}
+\end{equation}
+
+The simplest path to use for this integration is the one of the concentric circles in [Figure 6](#figure--fig:morrison16-H-field), where \\(H\\) is constant and \\(r\\) is the distance from the conductor.
+Solving for \\(H\\), we obtain
+
+\begin{equation}
+H = \frac{I}{2 \pi r}
+\end{equation}
+
+And we see that \\(H\\) has units of amperes per meter.
+
+
+### The solenoid {#the-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.
+
+Using Ampere's law \ref{eq:ampere\_law:}
+
+\begin{equation}
+\oint H dl \approx n I l
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/morrison16_solenoid.svg" caption="Figure 7: The \\(H\\) field around a solenoid" >}}
+
+
+### Faraday's law and the induction field {#faraday-s-law-and-the-induction-field}
+
+When a conducting coil is moved through a magnetic field, a voltage appears at the open ends of the coil.
+This is illustrated in [Figure 8](#figure--fig:morrison16-voltage-moving-coil).
+The voltage depends on the number of turns in the coil and the rate at which the flux is changing.
+
+
+
+{{< figure src="/ox-hugo/morrison16_voltage_moving_coil.svg" caption="Figure 8: A voltage induced into a moving coil" >}}
+
+The magnetic field has two measured.
+The \\(H\\) or magnetic field that is proportional to current flow.
+The force field representation that induces voltage is called the \\(B\\) or induction field.
+The relation between \\(B\\) and \\(H\\) fields is given by:
+
+\begin{equation} \label{eq:relation\_B\_H}
+\boxed{B = \mu\_R \mu\_0 H}
+\end{equation}
+
+where the factor \\(\mu\_0\\) is the permeability of free space and \\(\mu\_R\\) is the relative permeability of the medium.
+
+For an area of constant field intensity, the magnetic flux \\(\phi\\) is simply the product \\(BA\\) where \\(B\\) is in tesla, \\(A\\) is the area in square meters, and \\(\phi\\) is the flux in webers.
+
+The voltage induced in a conducting coil is given by the **Faraday's law**:
+
+\begin{equation} \label{eq:faraday\_law}
+\boxed{V = n \frac{d\phi}{dt} = n A \frac{dB}{dt}}
+\end{equation}
+
+where \\(n\\) is the number of turns in the coil.
+If the induction flux \\(B\\) increases linearly, a steady voltage \\(B\\) must exist at the coil ends.
+The inverse is also true.
+
+
+### The definition of inductance {#the-definition-of-inductance}
+
+
+
+Inductance is defined as the ratio of magnetic flux generated per unit current.
+The unit of inductance if the henry.
+
+
+
+For the coil in [Figure 7](#figure--fig:morrison16-solenoid):
+
+\begin{equation} \label{eq:inductance\_coil}
+V = n^2 A k \mu\_0 \frac{dI}{dt} = L \frac{dI}{dt}
+\end{equation}
+
+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.
+
+
+### 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}.
+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\\).
+Power is the rate of change of energy or \\(P = d\bm{E}/dt\\) where \\(\bm{E}\\) is the stored energy in the inductance.
+We then have the stored energy in an inductance:
+
+\begin{equation} \label{eq:energy\_inductance}
+\boxed{\bm{E} = L \int\_0^I I dI = \frac{1}{2} L I^2}
+\end{equation}
+
+
+
+An inductor stores field energy.
+It does not dissipate energy.
+
+
+
+The presence of a voltage \\(V\\) on the terminals of an inductor implies an electric field.
+The movement of energy into the inductor thus requires both an electric and a magnetic field.
+This is due to the Faraday's law that requires a voltage when changing magnetic flux couples to a coil.
+
+
+
+Consider a 1mH inductor carrying a current of 0.1A.
+The stored energy is \\(5 \times 10^{-4} J\\).
+Assume the shunt capacitance equals 100pF.
+When this energy is fully transferred to the capacitance, the voltage must be 3116 V.
+This would probably destroy the component.
+
+In order to absorb the stored magnetic field energy and avoid a high voltage, a reverse diode accross the coil can be used to provide a path for interrupted current flow.
+
+
+
+
+### Magnetic field energy in space {#magnetic-field-energy-in-space}
+
+The energy \\(\bm{E}\\) stored is
+
+\begin{equation}
+\bm{E} = \frac{1}{2} \frac{B^2 \bm{V}}{\mu\_0}
+\end{equation}
+
+where is volume \\(\bm{V} = Ad\\) and \\(\mu\_0\\) is the permeability of free space.
+
+
+### Electron drift {#electron-drift}
+
+Current flow in conductors is the movement of charge.
+The velocity of energy flow is the speed of light, but the average velocity of electrons in a typical circuit is extremely low.
+In a typical circuit, conductor carrying current, the average electron velocity is less than 0.025mm/s.
+
+
+## Digital Electronics {#digital-electronics}
+
+
+
+This chapter shows that both electric and magnetic field are needed to move energy over pairs of conductors.
+The idea of transporting electrical energy in field is extended to traces and conducting planes on printed circuit boards.
+Logic signals are waves that carry field energy between points on the board.
+These waves are reflected and transmitted when different transmission lines are interfaces.
+There are several sources of first energy that play a role in circuit performance.
+These sources are connected logic, the ground/power plane structure, and decoupling capacitors.
+Decoupling capacitors are actually short stub transmission lines that supply energy.
+
+The use of vias in the transmission paths is discussed in detail.
+The fact that energy cannot pass through a conducting plane is stressed.
+Limiting interference coupling in an A/D converter is a problem in keeping analog and logic fields separated.
+Terminating balanced transmission lines is also discussed.
+
+The concept of displacement current and its associated magnetic field is important.
+These ideas show how field energy flows into a transmission line and is placed into capacitance at the leading edge of the wave.
+Radiation occurs at the leading edge of a wave as it moves down the transmission line.
+
+
+
+
+### Introduction {#introduction}
+
+
+### The Transport of Electrical Energy {#the-transport-of-electrical-energy}
+
+
+### Transmission Lines–Introduction {#transmission-lines-introduction}
+
+
+### Transmission Line Operations {#transmission-line-operations}
+
+
+### Transmission line field patterns {#transmission-line-field-patterns}
+
+
+### A terminated transmission line {#a-terminated-transmission-line}
+
+
+### The unterminated transmission line {#the-unterminated-transmission-line}
+
+
+### A short circuit termination {#a-short-circuit-termination}
+
+
+### The real world {#the-real-world}
+
+
+### Sine waves versus step voltages {#sine-waves-versus-step-voltages}
+
+
+### A bit of history {#a-bit-of-history}
+
+
+### Ideal conditions {#ideal-conditions}
+
+
+### Reflection and tramission coefficients {#reflection-and-tramission-coefficients}
+
+
+### Taking energy from an ideal energy source {#taking-energy-from-an-ideal-energy-source}
+
+
+### A capacitor as a transmission line {#a-capacitor-as-a-transmission-line}
+
+
+### Decoupling capacitors and natural frequencies {#decoupling-capacitors-and-natural-frequencies}
+
+
+### Printed circuit boards {#printed-circuit-boards}
+
+
+### Two-layer logic boards {#two-layer-logic-boards}
+
+
+### Vars {#vars}
+
+
+### The termination of transmission lines {#the-termination-of-transmission-lines}
+
+
+### Energy in the ground/power plane capacitance {#energy-in-the-ground-power-plane-capacitance}
+
+
+### Poynting's vector {#poynting-s-vector}
+
+
+### Skin effect {#skin-effect}
+
+
+### Measurement problems: ground bounce {#measurement-problems-ground-bounce}
+
+
+### Balance transmission {#balance-transmission}
+
+
+### Ribbon cable and connectors {#ribbon-cable-and-connectors}
+
+
+### Interfacing analog and digital circuits {#interfacing-analog-and-digital-circuits}
+
+
+## Analog Circuits {#analog-circuits}
+
+
+
+This chapter treats the general problem of analog instrumentation.
+The signals of interest are often generated while testing functioning hardware.
+Tests can take place over time, in a harsh environment, during an explosion, during a flight, or in a collision.
+The signals of interest usually have dc content and can be generating from floating, grounded, balanced or unbalanced transducers.
+These transducers may require external balancing, calibration, or excitation.
+Accuracy is an important consideration.
+Where data must be sampled, the signals may require filtering to avoid aliasing errors.
+The general two-ground system is examined.
+Protecting signals using guard shields, transformer shields, and cable shields is described.
+The use of feedback and tests for stability in circuit design is considered.
+Strain-gauge configuration, thermocouple grounding, and charge amplifiers are discussed.
+
+
+
+
+### Introduction {#introduction}
+
+This chapter is devoted to analog circuits that operate below 100kHz.
+The techniques that are described can be applied to audio amplifiers, power supplies as well as instrumentation.
+
+The availability of integrated circuits has simplified many aspects of analog circuit design.
+Instrumentation must often handle long signal lines, reject ground potential differences, and maintain circuit stability.
+
+The general problem of analog design is called signal conditioning, which includes gain, filtering, offsets, bridge balancing, common-mode rejection, transducer excitation and calibration.
+Once a signal has sufficient resolution and the bandwidth has been controlled, the signal can be digitized and transmitted over a digital link to a computer.
+This chapter treats the problems of conditioning signals before they are sampled and recorded.
+
+
+### Instrumentation {#instrumentation}
+
+There are many transducers that can measure temperature, strain, stress, position and vibration.
+The signals generated are usually in the milli-volt range and must be amplified, conditioned, and then recorded for later analysis.
+
+
+
+It can be very difficult to verify that the measurement is valid.
+For example, signals that overload an input stage can produce noise that may look like signal.
+
+
+
+
+
+1. **Reference Conductor**.
+ Any conductor used as the zero of voltage.
+ If a signal is measured with respect to a conductor called ground, it becomes the reference signal conductor.
+ In an analog circuit, there may be several reference conductors.
+2. **Signal common / Signal ground**
+ A signal reference conductor.
+3. **Balance signal(s)**.
+ Two signals measured with respect to a reference conductor whose sum is always zero.
+4. **An unbalanced signal / A single-ended signal**.
+ A single voltage measured with respect to a reference conductor.
+5. **Common-mode voltage**.
+ The average interfering voltage on a group of signal conductors measured with respect to a reference conductor.
+6. **Normal-mode signal**.
+ The signal of interest.
+7. **Differential signal / Difference signal**.
+ The voltage difference of interest.
+8. **Instrumentation amplifier**.
+ A general-purpose differential amplifier with bandwidth from DC to perhaps 100kHz and variable gains from 1 to 5000.
+
+
+
+
+### The basic shield enclosure {#the-basic-shield-enclosure}
+
+Consider the simple amplifier circuit shown in [Figure 9](#figure--fig:morrison16-parasitic-capacitance-amp) with:
+
+- \\(V\_1\\) the input lead
+- \\(V\_2\\) the output lead
+- \\(V\_3\\) the conducting enclosure which is floating and taken as the reference conductor
+- \\(V\_4\\) a signal common or reference conductor
+
+Every conductor pair has a mutual capacitance, which are shown in [Figure 9](#figure--fig:morrison16-parasitic-capacitance-amp) (b).
+The equivalent circuit is shown in [Figure 9](#figure--fig:morrison16-parasitic-capacitance-amp) (c) and it is apparent that there is some feedback from the output to the input or the amplifier.
+
+
+
+{{< figure src="/ox-hugo/morrison16_parasitic_capacitance_amp.svg" caption="Figure 9: Parasitic capacitances in a simple circuit. (a) Field lines in a circuit. (b) Mutual capacitance diagram. (b) Circuit representation" >}}
+
+It is common practice in analog design to connect the enclosure to circuit common ([Figure 10](#figure--fig:morrison16-grounding-shield-amp)).
+When this connection is made, the feedback is removed and the enclosure no longer couples signals into the feedback structure.
+The conductive enclosure is called a **shield**.
+Connecting the signal common to the conductive enclosure is called "**grounding the shield**".
+This "grounding" usually removed "hum" from the circuit.
+
+
+
+{{< figure src="/ox-hugo/morrison16_grounding_shield_amp.svg" caption="Figure 10: Grounding the shield to limit feedback" >}}
+
+Most practical circuits provide connections to external points.
+To see the effect of making a _single_ external connection, open the conductive enclosure and connect the input circuit common to an external ground.
+[Figure 11](#figure--fig:morrison16-enclosure-shield-1-2-leads) (a) shows this grounded connection surrounded by an extension of the enclosure called the _cable shield_.
+A problem can be caused by an incorrect location of the connection between the cable shield and the enclosure.
+In [Figure 11](#figure--fig:morrison16-enclosure-shield-1-2-leads) (a), the electromagnetic field in the area induces a voltage in the loop and a resulting current to flow in conductor (1)-(2).
+This conductor being the common ground that might have a resistance \\(R\\) or \\(1\\,\Omega\\), this current induced voltage that it added to the transmitted signal.
+Our goal in this chapter is to find ways of keeping interference currents from flowing in any input signal conductor.
+To remove this coupling, the shield connection to circuit common must be made at the point, where the circuit common connects to the external ground.
+This connection is shown in [Figure 11](#figure--fig:morrison16-enclosure-shield-1-2-leads) (b).
+This connection keeps the circulation of interference current on the outside of the shield.
+
+There is only one point of zero signal potential external to the enclosure and that is where the signal common connects to an external hardware ground.
+The input shield should not be connected to any other ground point.
+The reason is simple.
+If there is an external electromagnetic field, there will be current flow in the shield and a resulting voltage gradient.
+A voltage gradient will couple interference capacitively to the signal conductors.
+
+
+
+An input circuit shield should connect to the circuit common, where the signal common makes its connection to the source of signal.
+Any other shield connection will introduce interference.
+
+
+
+
+
+Shielding is not an issue of finding a "really good ground".
+It is an issue of using the _right_ ground.
+
+
+
+
+
+{{< figure src="/ox-hugo/morrison16_enclosure_shield_1_2_leads.png" caption="Figure 11: (a) The problem of bringing one lead out of a shielded region. Unwanted current circulates in the signal lead 2. (b) The \\(E\\) field circulate current in the shield, not in the signal conductor." >}}
+
+
+### The enclosure and utility power {#the-enclosure-and-utility-power}
+
+When utility power is introduced into an enclosure, a new set of problems results.
+The power transformer couples fields from the external environment into the enclosure.
+The obvious coupling results from capacitance between the primary coil and the secondary coil.
+Note that the secondary coil is connected to the circuit common conductor.
+
+
+
+{{< figure src="/ox-hugo/morrison16_power_transformer_enclosure.png" caption="Figure 12: A power transformer added to the circuit enclosure" >}}
+
+
+### The two-ground problem {#the-two-ground-problem}
+
+
+### Instrumentation and the two-ground problem {#instrumentation-and-the-two-ground-problem}
+
+The basic analog problem is to condition a signal associated with one ground reference potential and transport this signal to a second ground reference potential without adding interference.
+
+
+
+{{< figure src="/ox-hugo/morrison16_two_ground_problem.svg" caption="Figure 13: The two-circuit enclosures used to transport signals between grounds" >}}
+
+
+### Strain-gauge instrumentation {#strain-gauge-instrumentation}
+
+
+### The floating strain-gauge {#the-floating-strain-gauge}
+
+
+### The thermocouple {#the-thermocouple}
+
+
+### The basic low-gain differential amplifier (forward referencing amplifier) {#the-basic-low-gain-differential-amplifier--forward-referencing-amplifier}
+
+
+
+{{< figure src="/ox-hugo/morrison16_low_gain_diff_amp.svg" caption="Figure 14: The low-gain differential amplifier applied to the two-ground problem" >}}
+
+
+### Shielding in power transformers {#shielding-in-power-transformers}
+
+
+### Calibration and interference {#calibration-and-interference}
+
+
+### The guard shield above 100kHz {#the-guard-shield-above-100khz}
+
+
+### Signal flow paths in analog circuits {#signal-flow-paths-in-analog-circuits}
+
+
+
+Here are a few rule that will help in analog board layout:
+
+1. Maintain a flow of signal and signal common from input to output.
+ The area between the signal path and the signal reference conductor should be kept small.
+2. Components associated with the input should not be near output circuit components.
+3. Power supply connections (DC voltages) should enter at the output and thread back toward the input.
+ This avoids common-impedance coupling (parasitic feedback).
+4. The greatest attention should be paid to the input circuit geometry.
+ Lead length for components connecting to the input path should be kept short.
+ Another way of describing this requirements is to interconnect the components to minimize the amount of bare copper connected to the input signal path.
+5. Feedback summing points are critical.
+ Keep lead lengths short at these nodes.
+
+
+
+
+### Parallel active components {#parallel-active-components}
+
+
+### Feedback stability - Introduction {#feedback-stability-introduction}
+
+
+### Feedback theory {#feedback-theory}
+
+
+
+{{< figure src="/ox-hugo/morrison16_basic_feedback_circuit.svg" caption="Figure 15: The basic feedback circuit" >}}
+
+
+
+{{< figure src="/ox-hugo/morrison16_LR_stabilizing_network.svg" caption="Figure 16: An LR-stabilizing network" >}}
+
+
+### Output loads and circuit stability {#output-loads-and-circuit-stability}
+
+
+### Feedback around a power stage {#feedback-around-a-power-stage}
+
+
+### Constant current loops {#constant-current-loops}
+
+
+### Filters and aliasing errors {#filters-and-aliasing-errors}
+
+
+### Isolation and DC-to-DC converters {#isolation-and-dc-to-dc-converters}
+
+
+### Charge converter basics {#charge-converter-basics}
+
+In vibration analysis, piezoelectric sensors are used which are electrically equivalent to a capacitor.
+When a force is exerted to the piezoelectric material, charges or voltage are generated.
+The relationship between charge and voltage is \\(V = Q/C\\) where \\(C\\) is the transducer capacitance.
+
+The voltage on the transducer can be amplifier by a high-impedance amplifier.
+The input cable capacitance attenuates the input signal and this makes calibration a function of cable length.
+The preferred method of amplifying signals from piezoelectric transducers is to measure charge generation and not voltage generation.
+The charge is first converted to a voltage and the voltage is then amplified.
+This type of instrument is called a **charge amplifier**.
+
+The basic feedback around an operational amplifier usually involves two resistors.
+The voltage gain is simply the ratio of the two resistors.
+If the resistors are replaced by capacitors, the gain is the ratio of reactances.
+This feedback circuit is called a **charge converter**.
+The charge on the input capacitor is transferred to the feedback capacitor.
+If the feedback capacitor is smaller than the transducer capacitance by a factor of 100, then the voltage across the feedback capacitor will be 100 times greater than the open-circuit transducer voltage.
+This feedback arrangement is shown in [Figure 17](#figure--fig:morrison16-charge-amplifier).
+The open-circuit input signal voltage is \\(Q/C\_T\\).
+The output voltage is \\(Q/C\_{FB}\\).
+The voltage gain is therefore \\(C\_T/C\_{FB}\\).
+Note that there is essentially no voltage at the summing node \\(s\_p\\).
+
+
+
+A charge converter does not amplifier charge.
+It converts a charge signal to a voltage.
+
+
+
+
+
+{{< figure src="/ox-hugo/morrison16_charge_amplifier.svg" caption="Figure 17: A basic charge amplifier" >}}
+
+
+
+{{< figure src="/ox-hugo/morrison16_charge_amplifier_feedback_resistor.svg" caption="Figure 18: The resistor feedback arrangement to control the low-frequency response" >}}
+
+
+### DC power supplies {#dc-power-supplies}
+
+
+### Guard rings {#guard-rings}
+
+
+### Thermocouple effects {#thermocouple-effects}
+
+
+### Some thoughts on instrumentation {#some-thoughts-on-instrumentation}
+
+
+## Utility Power and Facility Grounding {#utility-power-and-facility-grounding}
+
+
+
+This chapter discusses the relationship between utility power and the performance of electrical circuits.
+Utility installations in facilities are controller by the NEC (National Electrical Code).
+Safety and lighting protection requires that facilities connect their systems to earth.
+Designers of electric hardware use utility power and also make electrical connections to earthed conductors.
+This sharing of the earth connection creates many problems that are considered in this chapter.
+
+Ground planes and isolation transformers can be used to limit interference.
+The role of line filters, equipment grounds, and ground planes in facilities is explained.
+The problems associated with using isolated ground conductors are discussed.
+Lighting protection in facilities and for watercraft is a big safety issue.
+The fact that current cannot enter the water below the water line is considered.
+The battery action that causes the metal on boats to corrode is discussed.
+The grounding methods in the Pacific Intertie are unique.
+Solar winds can disrupt power distribution and damage oil pipelines.
+
+
+
+
+### Introduction {#introduction}
+
+
+### Semantics {#semantics}
+
+Here are the key words used by a power engineer as defined by the NEC:
+
+Ground
+:
+
+
+Equipment ground
+:
+
+
+The grounded conductor
+:
+
+
+The ungrounded conductor
+:
+
+
+Neutral
+:
+
+
+Isolated ground
+:
+
+
+Service entrance
+:
+
+
+Grounding electrode system
+:
+
+
+Feeder circuit
+:
+
+
+Branch circuit
+:
+
+
+Separately derived power
+:
+
+
+Listed equipment
+:
+
+
+### Utility power {#utility-power}
+
+
+### The earth as a conductor {#the-earth-as-a-conductor}
+
+
+### The neutral conneciton to earth {#the-neutral-conneciton-to-earth}
+
+
+### Group potential differences {#group-potential-differences}
+
+
+### Field coupling to power conductors {#field-coupling-to-power-conductors}
+
+
+### Neutral conductors {#neutral-conductors}
+
+
+### \\(k\\) factor in transformers {#k-factor-in-transformers}
+
+
+### Power factor correction {#power-factor-correction}
+
+
+### Ungrounded power {#ungrounded-power}
+
+
+### A request for power {#a-request-for-power}
+
+
+### Earth power currents {#earth-power-currents}
+
+
+### Line filters {#line-filters}
+
+
+### Isolated grounds {#isolated-grounds}
+
+
+### Facility ground - Some history {#facility-ground-some-history}
+
+
+### Ground planes in facilities {#ground-planes-in-facilities}
+
+
+### Other ground planes {#other-ground-planes}
+
+
+### Ground planes at remote sites {#ground-planes-at-remote-sites}
+
+
+### Extending ground planes {#extending-ground-planes}
+
+
+### Lightning {#lightning}
+
+
+### Lightning and facilities {#lightning-and-facilities}
+
+
+### Lightning protection for boats and ships {#lightning-protection-for-boats-and-ships}
+
+
+### Grounding of boats and ships at dock {#grounding-of-boats-and-ships-at-dock}
+
+
+### Aircraft grounding (fueling) {#aircraft-grounding--fueling}
+
+
+### Ground Fault Interruption (GFI) {#ground-fault-interruption--gfi}
+
+
+### Isolation transformers {#isolation-transformers}
+
+
+## Radiation {#radiation}
+
+
+
+This chapter discusses radiation from circuit boards, transmission lines, conductor loops, and antennas.
+The frequency spectrum of square waves and pulses is presented.
+Matching of impedances is required to move energy from a transmission line to an antenna so that it can radiate this energy into free space.
+Common-mode and normal-mode coupling of fields to conductors is considered.
+The concept of wave impedance and its relation to shielding is considered.
+Interference can be analyzed by using a rise-time frequency to represent pulses or step functions.
+
+Effective radiated power from various transmitters is presented.
+The field intensities for lightning and electrostatic discharge are given.
+Loops generate low-impedance fields that are often difficult to shield.
+Simple tools for locating sources of radiation are suggested.
+
+
+
+
+### Handling radiation and susceptibility {#handling-radiation-and-susceptibility}
+
+
+### Radiation {#radiation}
+
+
+### Sine waves and transmission lines {#sine-waves-and-transmission-lines}
+
+
+### Approximations for pulses and square waves {#approximations-for-pulses-and-square-waves}
+
+
+### Radiation from components {#radiation-from-components}
+
+
+### The dipole antenna {#the-dipole-antenna}
+
+
+### Wave impedance {#wave-impedance}
+
+
+### Field strength and antenna gain {#field-strength-and-antenna-gain}
+
+
+### Radiation from loops {#radiation-from-loops}
+
+
+### E-field coupling to a loop {#e-field-coupling-to-a-loop}
+
+
+### Radiation from printed circuit boards {#radiation-from-printed-circuit-boards}
+
+
+### The sniffer and the antenna {#the-sniffer-and-the-antenna}
+
+
+### Microwave ovens {#microwave-ovens}
+
+
+## Shielding from Radiation {#shielding-from-radiation}
+
+
+
+Cable shields are often made of aluminum foil or tinned copper braid.
+Drain wires make it practical to connect to the foil.
+Coaxial cables have a smooth inner surface that allows for the circulation of current and provide control of characteristic impedance.
+Transfer impedance is a measure of shielding effectivity.
+Multiple shields, low-noise cable, and conduit each have merits that are discussed.
+
+The penetration of fields into enclosures is considered.
+This includes independent and dependent apertures, the wave penetration of conducting surfaces, and waveguides.
+The use of gaskets, honeycombs, and backshell connectors are described.
+Handling utility power, line filters, and signal lines at a hardware interface are discussed.
+Methods for limiting field penetration into and out of a screen are offered.
+
+
+
+
+### Cables with shields {#cables-with-shields}
+
+In analog work, an aluminum foil is often used as a shield around a cable.
+The inside of the aluminum foil is anodized to provide protection against corrosion.
+Because it is difficult to terminate the foil at the cable ends, a drain wire is provided on the outside of the cable foil.
+This drain wire is made of multistranded tinned copper wires that make contact with the foil along the length of the cable.
+If the foil should break, the drain wire connects the segments together.
+
+In audio work, where a cable carries a microphone signal, the cable can be a shielded single conductor.
+In instrumentation, best practice requires that the signal common and the shield be separate conductors.
+
+An aluminum foil over a group of conductors provides an **excellent electrostatic shield at low frequencies**.
+In analog work, the shield should be connected at one end to the reference conductor preferable where it connects to a ground.
+If the drain wire is connected to grounded hardware at both ends, then interference can result.
+Electromagnetic fields in the area will cause current flow in the resulting loop.
+
+A foil seam does not allow current to flow freely around the cable.
+Also the foil doesn't form a very stable geometry.
+For these reasons, foil shields should not be used where the characteristic impedance of the cable needs to be controlled.
+The termination of shields at a hardware interface can be critical.
+A cable terminated by a drain wire allows field energy to penetrate the hardware at the hardware at the connector.
+A woven braid can provide 360 degree termination.
+
+The term coax is generally applied to cable where the characteristic impedance is controller.
+A typical coax is a single conductor surrounded by a shield with a controlled geometry.
+For applications from DC to about 1MHz, the characteristic impedance may not be important.
+Above this frequency, coaxial cables is preferred.
+The manufacturer supplies specifications relating to signal loss at high frequencies.
+
+The characteristic impedance of a transmission line is a function of the conductor geometry and of the dielectric constant.
+To transport RF power without reflections, the source impedance and the terminating impedance must match the line impedance.
+
+
+### Low-noise cables {#low-noise-cables}
+
+
+### Transfer impedance {#transfer-impedance}
+
+
+### Waveguides {#waveguides}
+
+
+### Electromagnetic fields over a ground plane {#electromagnetic-fields-over-a-ground-plane}
+
+
+### Fields and conductors {#fields-and-conductors}
+
+
+### Conductive enclosures - Introduction {#conductive-enclosures-introduction}
+
+
+### Coupling through enclosure walls by an induction fields {#coupling-through-enclosure-walls-by-an-induction-fields}
+
+
+### Reflection and absorption of field energy at a conducting surface {#reflection-and-absorption-of-field-energy-at-a-conducting-surface}
+
+
+### Independent apertures {#independent-apertures}
+
+
+### Dependent apertures {#dependent-apertures}
+
+
+### Honeycombs {#honeycombs}
+
+
+### Summing field penetrations {#summing-field-penetrations}
+
+
+### Power line filters {#power-line-filters}
+
+
+### Backshell connectors {#backshell-connectors}
+
+
+### H-field coupling {#h-field-coupling}
+
+
+### Gaskets {#gaskets}
+
+
+### Finger stock {#finger-stock}
+
+
+### Glass apertures {#glass-apertures}
+
+
+### Guarding large transistors {#guarding-large-transistors}
+
+
+### Mounting components on surfaces {#mounting-components-on-surfaces}
+
+
+### Zappers {#zappers}
+
+
+### Shielded and screen rooms {#shielded-and-screen-rooms}
+
+
+## Bibliography {#bibliography}
+
+
+
Morrison, Ralph. 2016. Grounding and Shielding: Circuits and Interference. John Wiley & Sons.
+
diff --git a/content/book/pintelon12_system_ident.md b/content/book/pintelon12_system_ident.md
new file mode 100644
index 0000000..7655b1e
--- /dev/null
+++ b/content/book/pintelon12_system_ident.md
@@ -0,0 +1,24 @@
++++
+title = "System identification : a frequency domain approach"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [System Identification]({{< relref "system_identification.md" >}})
+
+Reference
+: (Pintelon and Schoukens 2012)
+
+Author(s)
+: Pintelon, R., & Schoukens, J.
+
+Year
+: 2012
+
+
+## Bibliography {#bibliography}
+
+
+
Pintelon, R., and J. Schoukens. 2012. System Identification : a Frequency Domain Approach. Hoboken, N.J. Piscataway, NJ: Wiley IEEE Press. doi:10.1002/9781118287422.
+
diff --git a/content/book/preumont18_vibrat_contr_activ_struc_fourt_edition.md b/content/book/preumont18_vibrat_contr_activ_struc_fourt_edition.md
new file mode 100644
index 0000000..cc1255c
--- /dev/null
+++ b/content/book/preumont18_vibrat_contr_activ_struc_fourt_edition.md
@@ -0,0 +1,1809 @@
++++
+title = "Vibration Control of Active Structures - Fourth Edition"
+author = ["Dehaeze Thomas"]
+description = "Gives a broad overview of vibration control."
+keywords = ["Control", "Vibration"]
+draft = false
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Reference Books]({{< relref "reference_books.md" >}}), [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [HAC-HAC]({{< relref "hac_hac.md" >}})
+
+Reference
+: (Preumont 2018)
+
+Author(s)
+: Preumont, A.
+
+Year
+: 2018
+
+
+## Introduction {#introduction}
+
+
+### Active Versus Passive {#active-versus-passive}
+
+Active structure may be cheaper or lighter than passive structures of comparable performances; or they may offer performances that no passive structure could offer.
+
+Active is not always better, and a **control systems cannot compensate for a bad design**. Active solution should be considered only after all other passive means have been exhausted.
+
+Feedback control can compensate for external disturbances only in a limited frequency range (the bandwidth), the disturbances are actually amplified by the control system outside this frequency band.
+
+
+### Vibration Suppression {#vibration-suppression}
+
+Vibration reduction can be achieved in many different ways:
+
+- **stiffening**: consists of shifting the resonance frequency of the structure beyond the frequency band of excitation
+- **damping**: consists of reducing the resonance peaks by dissipating the vibration energy
+- **isolation**: consists of preventing the propagation of disturbances to sensitive parts of the system
+
+The design of an active control system involves many issues such as how to configurate the sensors and actuators, how to secure stability and robustness. The power requirements will often determine the size of the actuators and the cost of the project.
+
+
+### Smart Materials and Structures {#smart-materials-and-structures}
+
+An active structure consists of a structure provided with a set of actuators and sensors coupled by a controller. If the bandwidth of the controller includes some vibration modes of the structure, its dynamic response must be considered.
+
+If the set of actuators and sensors are located at discrete points of the structure, they can be treated separately. However, for smart structures, the actuators and sensors are often distributed and have a high degree of integration inside the structure, which makes a separate modelling impossible.
+
+Some smart materials are:
+
+- **Shape Memory Alloys** (SMA): recoverable strain of \\(\SI{5}{\percent}\\) induced by temperature. They can be used at low frequency and for low precision applications
+- **Piezoelectric materials**: recoverable strain of \\(\SI{0.1}{\percent}\\) under electric field. They can be used as actuators as well as sensors. Two main classes: ceramics and polymers. Piezopolymers are used mostly as sensors as they require high voltage. The best-known piezoceramic is the Lead-Zirconate-Titanate (PZT).
+- **Magnetostrictive materials**: recoverable strain of \\(\SI{0.15}{\percent}\\) under magnetic field
+- **Magneto-Rheological fluids** (MR): consists of viscous fluids containing micronsized particules of magnetic material. When the fluid is subjected to a magnetic field, the particules create colunmar structures requiring a minimum shear stress to initiate the flow.
+
+
+### Control Strategies {#control-strategies}
+
+There are two radically different approached to disturbance rejection: feedback and feedforward.
+
+
+#### Feedback {#feedback}
+
+
+
+{{< figure src="/ox-hugo/preumont18_classical_feedback_small.png" caption="Figure 1: Principle of feedback control" >}}
+
+The principle of feedback is represented on [Figure 1](#figure--fig:classical-feedback-small). The output \\(y\\) of the system is compared to the reference signal \\(r\\), and the error signal \\(\epsilon = r-y\\) is passed into a compensator \\(K(s)\\) and applied to the system \\(G(s)\\), \\(d\\) is the disturbance.
+The design problem consists of finding the appropriate compensator \\(K(s)\\) such that the closed-loop system is stable and behaves in the appropriate manner.
+
+In the control of lightly damped structures, feedback control is used for two distinct and complementary purposes: **active damping** and **model-based feedback**.
+
+**Active Damping**:
+
+- The objective of active damping is to reduce the effect of resonant peaks on the response of the structure.
+- From \\(\frac{y}{d} = \frac{1}{1 + GK}\\), this requires \\(GK \gg 1\\) near the resonances
+- It can be generally be achieved without a model of the structure, with guaranteed stability, provided that the actuator and sensor are **collocated** and have perfect dynamics.
+
+**Model based feedback**:
+The objective is to control a variable \\(y\\) to a desired value \\(r\\) in spite of the external disturbances \\(d\\).
+
+- From \\(\frac{y}{r} = \frac{GK}{1 + GK}\\) we see that this requires large values of \\(GK\\) in the frequency range where \\(y\approx r\\) (bandwidth)
+- The bandwidth \\(\omega\_c\\) is limited by the accuracy of the model
+- The disturbance rejection within the bandwidth of the control system is always compensated by an amplification of the disturbances outside the bandwidth
+- When implemented digitally, the sampling frequency \\(\omega\_s\\) must always be two orders of magnitude larger than \\(\omega\_c\\) to preseve reasonably the behavior of the continuous system
+
+
+#### Feedforward {#feedforward}
+
+
+
+{{< figure src="/ox-hugo/preumont18_feedforward_adaptative.png" caption="Figure 2: Principle of feedforward control" >}}
+
+The method relies on the availability of a **reference signal correlated to the primary disturbance**.
+The idea is to produce a second disturbance such that is cancels the effect of the primary disturbance at the location of the sensor error. Its principle is explained in [Figure 2](#figure--fig:feedforward-adaptative).
+
+The filter coefficients are adapted in such a way that the error signal at one or several critical points is minimized.
+
+There is no guarantee that the global response is reduced at other locations. This method is therefor considered as a local one.
+Because it is less sensitive to phase lag than feedback, it can be used at higher frequencies (\\(\omega\_c \approx \omega\_s/10\\)).
+
+The [Table 1](#table--tab:adv-dis-type-control) summarizes the main features of the two approaches.
+
+
+
+ Table 1:
+ Advantages and Disadvantages of some types of control
+
+
+| | **Advantages** | **Disadvantages** |
+|------------------------------------|-----------------------------------------------|---------------------------------------------------|
+| **Active Damping** | - Simple to implement | - Effective only near resonance |
+| | - Does not required accurate model | |
+| | - Guaranteed stability (collocated) | |
+| **Model Based** | - Global method | - Requires accurate model |
+| | - Attenuate all disturbance within bandwidth | - Limited bandwidth |
+| | | - Spillover |
+| | | - Amplification of disturbances outside bandwidth |
+| **Feedforward Adaptive filtering** | - No model is necessary | - Error signal required |
+| | - Robust to change in plant transfer function | - Local method: may amplify vibration elsewhere |
+| | - More effective for narrowband disturbance | - Large amount of real-time computation |
+
+
+### The Various Steps of the Design {#the-various-steps-of-the-design}
+
+
+
+{{< figure src="/ox-hugo/preumont18_design_steps.png" caption="Figure 3: The various steps of the design" >}}
+
+The various steps of the design of a controlled structure are shown in [Figure 3](#figure--fig:design-steps).
+
+The **starting point** is:
+
+- Mechanical system
+- Performance objectives
+- Specification of the disturbances
+
+Then the **open loop performances** can be evaluated:
+
+- The need for active control can be assessed
+- The needed bandwidth can be roughly specified
+
+The next step consist of selecting the proper **type and location of sensors and actuators**:
+
+- The controllability and Observability are important concepts
+
+A **model of the structure** is developped:
+
+- FEM or identification
+- Model reduction to limit the DoF
+
+If the dynamics of the sensors and actuators may significantly affect the behavior of the system, they must be included in the model before the controller design.
+
+
+### Plant Description, Error and Control Budget {#plant-description-error-and-control-budget}
+
+From the block diagram of the control system ([Figure 4](#figure--fig:general-plant)):
+
+\begin{align\*}
+y &= (I - G\_{yu}H)^{-1} G\_{yw} w\\\\
+z &= T\_{zw} w = [G\_{zw} + G\_{zu}H(I - G\_{yu}H)^{-1} G\_{yw}] w
+\end{align\*}
+
+
+
+{{< figure src="/ox-hugo/preumont18_general_plant.png" caption="Figure 4: Block diagram of the control System" >}}
+
+The frequency content of the disturbance \\(w\\) is usually described by its **power spectral density** \\(\Phi\_w (\omega)\\) which describes the frequency distribution of the meas-square value.
+
+
+
+Even more interesting for the design is the **Cumulative Mean Square** response defined by the integral of the PSD in the frequency range \\([\omega, \infty[\\).
+
+
+
+It is a monotonously decreasing function of frequency and describes the contribution of all frequencies above \\(\omega\\) to the mean-square value of \\(z\\).
+\\(\sigma\_z(0)\\) is then the global RMS response.
+
+A typical plot of \\(\sigma\_z(\omega)\\) is shown [Figure 5](#figure--fig:cas-plot).
+It is useful to **identify the critical modes** in a design, at which the effort should be targeted.
+
+The diagram can also be used to **assess the control laws** and compare different actuator and sensor configuration.
+
+
+
+{{< figure src="/ox-hugo/preumont18_cas_plot.png" caption="Figure 5: Error budget distribution in OL and CL for increasing gains" >}}
+
+
+### Pseudo-inverse {#pseudo-inverse}
+
+
+#### Under-actuated System {#under-actuated-system}
+
+Consider the linear system of equation:
+\\[w = J v\\]
+With:
+
+- \\(w\\) a vector with \\(m\\) components (measurements)
+- \\(v\\) a vector with \\(n\\) components (inputs)
+- We assume \\(m>n\\) (under-actuated)
+
+We seek the pseudo-inverse of \\(J\\) such that \\(v = J^+ w\\)
+
+The columns of \\(J\\) are the influence function of the actuators.
+If the columns of \\(J\\) are independant, the Jacobian is full rang (\\(r=n\\)) and the **Moore-Penrose pseudo inverse** is:
+\\[J^+ = (J^T J)^{-1} J^T\\]
+
+
+#### Over-actuated System {#over-actuated-system}
+
+If there are more actuator than sensor (\\(mn\\) and \\(n>m\\).
+
+
+#### Singular Value Decomposition {#singular-value-decomposition}
+
+The **Singular Value Decomposition** (SVD) is a generalization of the eigenvalue decomposition of a rectangular matrix:
+\\[ J = U \Sigma V^T = \sum\_{i=1}^r \sigma\_i u\_i v\_i^T \\]
+With:
+
+- \\(U\\) and \\(V\\) orthogonal matrices. The columns \\(u\_i\\) and \\(v\_i\\) of \\(U\\) and \\(V\\) are the eigenvectors of the square matrices \\(JJ^T\\) and \\(J^TJ\\) respectively
+- \\(\Sigma\\) a rectangular diagonal matrix of dimension \\(m \times n\\) containing the square root of the common non-zero eigenvalues of \\(JJ^T\\) and \\(J^TJ\\)
+- \\(r\\) is the number of non-zero singular values of \\(J\\)
+
+The pseudo-inverse of \\(J\\) is:
+\\[ J^+ = V\Sigma^+U^T = \sum\_{i=1}^r \frac{1}{\sigma\_i} v\_i u\_i^T \\]
+
+The conditioning of the Jacobian is measured by the **condition number**:
+\\[ c(J) = \frac{\sigma\_{max}}{\sigma\_{min}} \\]
+
+When \\(c(J)\\) becomes large, the most straightforward way to handle the ill-conditioning is to truncate the smallest singular value out of the sum.
+This will have usually little impact of the fitting error while reducing considerably the actuator inputs \\(v\\).
+
+
+## Some Concepts in Structural Dynamics {#some-concepts-in-structural-dynamics}
+
+
+### Equation of Motion of a Discrete System {#equation-of-motion-of-a-discrete-system}
+
+The general form of the equation of motion governing the dynamic equilibrium between the external, elastic, inertia and damping forces acting on a discrete, flexible structure with a finite number \\(n\\) of degrees of freedom is
+
+
+
+\begin{equation}
+ M \ddot{x} + C \dot{x} + K x = f
+\end{equation}
+
+With:
+
+- \\(x\\) is the vector of generalized displacements (translations and rotations)
+- \\(f\\) is the vector of generalized forces (point forces and torques)
+- \\(M\\), \\(C\\) and \\(K\\) are respectively the mass, damping and stiffness matrices; they are symmetric and semi-positive definite
+
+
+
+The damping matrix \\(C\\) represents the various dissipation mechanisms in the structure, which are usually poorly known. One of the popular hypotheses is the Rayleigh damping.
+
+
+
+\begin{equation}
+ C = \alpha M + \beta K
+\end{equation}
+
+
+
+\\(\alpha\\) and \\(\beta\\) are selected to fit the structure under consideration.
+
+
+### Vibration Modes {#vibration-modes}
+
+Consider the free response of an undamped system of order \\(n\\):
+\\[ M\ddot{x} + K x = 0 \\]
+
+If one tries a solution of the form \\(x = \phi\_i e^{j\omega\_i t}\\), \\(\phi\_i\\) and \\(\omega\_i\\) must statisfy the eigenvalue problem
+\\[ (K - \omega\_i^2 M)\phi\_i = 0 \\]
+with:
+
+- \\(\omega\_i\\): the **natural frequency**
+- \\(\phi\_i\\): the corresponding **mode shape**
+
+The number of mode shapes is equal to the number of degrees of freedom \\(n\\).
+
+The mode shapes are orthogonal with respect to the stiffness and mass matrices:
+
+\begin{align}
+ \phi\_i^T M \phi\_j &= \mu\_i \delta\_{ij} \\\\
+ \phi\_i^T K \phi\_j &= \mu\_i \omega\_i^2 \delta\_{ij}
+\end{align}
+
+With \\(\mu\_i\\) the **modal mass** (also called the generalized mass) of mode \\(i\\).
+
+
+### [Modal Decomposition]({{< relref "modal_decomposition.md" >}}) {#modal-decomposition--modal-decomposition-dot-md}
+
+
+#### Structure Without Rigid Body Modes {#structure-without-rigid-body-modes}
+
+Let perform a change of variable from physical coordinates \\(x\\) to modal coordinates \\(z\\).
+
+
+
+\begin{equation}
+ x = \Phi z
+\end{equation}
+
+With:
+
+- \\(\Phi = [\phi\_1, \phi\_2, ..., \phi\_n]\\) the matrix of the mode shapes
+- \\(z\\) the vector of modal amplitudes
+
+
+
+The dynamic equation of the system becomes:
+\\[ M \Phi \ddot{z} + C \Phi \dot{z} + K \Phi z = f \\]
+
+If we left multiply the equation by \\(\Phi^T\\) and we use the orthogonalily relationships:
+\\[ diag(\mu\_i) \ddot{z} + \Phi^T C \Phi + diag(\mu\_i \omega\_i^2) z = \Phi^T f \\]
+
+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) \\]
+
+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 )\\).
+
+And we obtain decoupled modal equations \ref{eq:modal\_eom}.
+
+
+
+| **Damping Ratio** | **Application** |
+|--------------------------------|-------------------------|
+| \\(\xi \simeq 0.001 - 0.005\\) | Space structures |
+| \\(\xi \simeq 0.01 - 0.02\\) | Mechanical engineering |
+| \\(\xi \simeq 0.05\\) | Civil engineering |
+| \\(\xi \simeq 0.2\\) | When ground is involved |
+
+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.
+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.
+Therefore, the number of degrees of freedom contribution effectively to the response is **reduced drastically** in modal coordinates.
+
+
+#### 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:
+\\[ X = G(\omega) F \\]
+
+Where \\(G(\omega)\\) is called the **Dynamic flexibility Matrix**:
+\\[ G(\omega) = (-\omega^2 M + j\omega C + K)^{-1} F \\]
+
+From the modal expansion of the dynamic flexibility matrix can be obtained by coordinate transformation \\(x = \phi z\\) and we obtain:
+
+\begin{equation}
+ G(\omega) = \sum\_{i=1}^n \frac{\phi\_i \phi\_i^T}{\mu\_i \omega\_i^2} D\_i(\omega)
+\end{equation}
+
+With:
+
+- \\(D\_i(\omega)\\) is the dynamic amplification factor of mode \\(i\\) given by
+
+\begin{equation}
+ D\_i(\omega) = \frac{1}{1 - \omega^2/\omega\_i^2 + 2 j \xi\_i \omega/\omega\_i}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/preumont18_neglected_modes.png" caption="Figure 6: Fourier spectrum of the excitation \\(F\\) and dynamic amplitification \\(D\_i\\) of mode \\(i\\) and \\(k\\) such that \\(\omega\_i < \omega\_b\\) and \\(\omega\_k \gg \omega\_b\\)" >}}
+
+If the excitation has a limited bandwidth \\(\omega\_b\\), the contribution of the high frequency modes \\(\omega\_k \gg \omega\_b\\) can be evaluated by assuming \\(D\_k(\omega) \approx 1\\) (as shown on [Figure 6](#figure--fig:neglected-modes)).
+
+And \\(G(\omega)\\) can be rewritten on terms of the **low frequency modes only**:
+\\[ G(\omega) \approx \sum\_{i=1}^m \frac{\phi\_i \phi\_i^T}{\mu\_i \omega\_i^2} D\_i(\omega) + R \\]
+
+The quasi-static correction of the high frequency modes \\(R\\) is called the **residual mode**. This introduces a **feedthrough** component in the transfer matrix.
+
+
+#### Structure with Rigid Body Modes {#structure-with-rigid-body-modes}
+
+
+### Collocated Control System {#collocated-control-system}
+
+
+
+A **collocated control system** is a control system where:
+
+- the actuator and the sensor are **attached to the same degree of freedom**
+- they are **dual**: the product of the actuator signal and the sensor signal represents the energy exchange between the structure and the control system
+
+
+
+
+
+ Table 3:
+ Examples of dual actuators and sensors
+
+
+| **Actuator** | **Sensor** |
+|--------------|-------------|
+| Force | Translation |
+| Torque | Rotation |
+
+The open-loop FRF of a collocated system corresponds to a diagonal component of the dynamic flexibility matrix.
+
+If we assumes that the collocated system is undamped and is attached to the DoF \\(k\\), the open-loop FRF is purely real:
+\\[ G\_{kk}(\omega) = \sum\_{i=1}^m \frac{\phi\_i^2(k)}{\mu\_i (\omega\_i^2 - \omega^2)} + R\_{kk} \\]
+
+\\(G\_{kk}\\) is a monotonously increasing function of \\(\omega\\) ([Figure 7](#figure--fig:collocated-control-frf)).
+
+
+
+{{< figure src="/ox-hugo/preumont18_collocated_control_frf.png" caption="Figure 7: Open-Loop FRF of an undamped structure with collocated actuator/sensor pair" >}}
+
+The amplitude of the FRF goes from \\(-\infty\\) at the resonance frequencies \\(\omega\_i\\) to \\(+\infty\\) at the next resonance frequency \\(\omega\_{i+1}\\). Therefore, in every interval, there is a frequency \\(z\_i\\) such that \\(\omega\_i < z\_i < \omega\_{i+1}\\) where the amplitude of the FRF vanishes. The frequencies \\(z\_i\\) are called **anti-resonances**.
+
+
+
+Undamped **collocated control systems** have **alternating poles and zeros** on the imaginary axis.
+For lightly damped structure, the poles and zeros are just moved a little bit in the left-half plane, but they are still interlacing.
+
+
+
+If the undamped structure is excited harmonically by the actuator at the frequency of the transmission zero \\(z\_i\\), the amplitude of the response of the collocated sensor vanishes. That means that the structure oscillates at the frequency \\(z\_i\\) according to the mode shape shown in dotted line [Figure 8](#figure--fig:collocated-zero).
+
+
+
+{{< figure src="/ox-hugo/preumont18_collocated_zero.png" caption="Figure 8: Structure with collocated actuator and sensor" >}}
+
+
+
+The frequency of the transmission zero \\(z\_i\\) and the mode shape associated are the **natural frequency** and the **mode shape** of the system obtained by **constraining the d.o.f. on which the control systems acts**.
+
+The open-loop zeros are asymptotic values of the closed-loop poles when the feedback gain goes to infinity.
+
+The open-loop poles are independant of the actuator and sensor configuration while the open-loop zeros do depend on it.
+
+
+
+By looking at [Figure 7](#figure--fig:collocated-control-frf), we see that neglecting the residual mode in the modelling amounts to translating the FRF diagram vertically. That produces a shift in the location of the transmission zeros to the right.
+
+
+
+{{< figure src="/ox-hugo/preumont18_alternating_p_z.png" caption="Figure 9: Bode plot of a lighly damped structure with collocated actuator and sensor" >}}
+
+The open-loop transfer function of a lighly damped structure with a collocated actuator/sensor pair can be written:
+
+\begin{equation}
+ G(s) = G\_0 \frac{\Pi\_i(s^2/z\_i^2 + 2 \xi\_i s/z\_i + 1)}{\Pi\_j(s^2/\omega\_j^2 + 2 \xi\_j s /\omega\_j + 1)}
+\end{equation}
+
+The corresponding Bode plot is represented in [Figure 9](#figure--fig:alternating-p-z). Every imaginary pole at \\(\pm j\omega\_i\\) introduces a \\(\SI{180}{\degree}\\) phase lag and every imaginary zero at \\(\pm jz\_i\\) introduces a phase lead of \\(\SI{180}{\degree}\\).
+In this way, the phase diagram is always contained between \\(\SI{0}{\degree}\\) and \\(\SI{-180}{\degree}\\) as a consequence of the interlacing property.
+
+
+## Electromagnetic and Piezoelectric Transducers {#electromagnetic-and-piezoelectric-transducers}
+
+
+### Introduction {#introduction}
+
+Transducers are critical in active structures technology.
+In many applications, the actuators are the most critical part of the system; however, the sensors become very important in precision engineering where submicron amplitudes must be detected.
+
+Two broad categories of actuators can be distinguish:
+
+- **grounded actuator**: react on a fixed support. They include torque motors, force motors (shakers), tendons
+- **structure borne actuator**: includes jets, reaction wheels, proof-mass actuators, piezo strips, ...
+
+
+### Voice Coil Transducer {#voice-coil-transducer}
+
+A voice coil transducer is an energy transformer which converts electrical power into mechanical power and vice versa.
+
+The system consists of (see [Figure 10](#figure--fig:voice-coil-schematic)):
+
+- A permanent magnet which produces a uniform flux density \\(B\\) normal to the gap
+- A coil which is free to move axially
+
+
+
+{{< figure src="/ox-hugo/preumont18_voice_coil_schematic.png" caption="Figure 10: Physical principle of a voice coil transducer" >}}
+
+We note:
+
+- \\(v\\) the velocity of the coil
+- \\(f\\) the external force acting to maintain the coil in equilibrium againt the electromagnetic forces
+- \\(e\\) the voltage difference across the coil
+- \\(i\\) the current into the coil
+
+
+
+**Faraday's law**:
+
+\begin{equation}
+ e = 2\pi n r B v = T v
+\end{equation}
+
+With \\(T = 2\pi n r B\\) is the **transducer constant**.
+
+**Lorentz force law**:
+
+\begin{equation}
+ f = -i 2\pi n r B = - T i
+\end{equation}
+
+
+
+The total power delivered to the moving coil transducer is equal to the sum of the electric power and the mechanical power:
+\\[ ei + fv = 0 \\]
+
+Thus, at any time, there is an equilibrium between the electrical power absorbed by the device and the mechanical power delivered.
+
+
+#### Proof-Mass Actuator {#proof-mass-actuator}
+
+A reaction mass \\(m\\) is conected to the support structure by a spring \\(k\\) , and damper \\(c\\) and a force actuator \\(f = T i\\) ([Figure 11](#figure--fig:proof-mass-actuator)).
+
+
+
+{{< figure src="/ox-hugo/preumont18_proof_mass_actuator.png" caption="Figure 11: Proof-mass actuator" >}}
+
+If we apply the second law of Newton on the mass:
+\\[ m\ddot{x} + c\dot{x} + kx = f = Ti \\]
+
+In the Laplace domain:
+\\[ x = \frac{Ti}{ms^2 + cs + k} \\]
+
+The total force applied on the support is:
+\\[ F = -f + cs + k = -m s^2 x = \frac{-ms^2Ti}{ms^2 + cs + k} \\]
+
+The transfer function between the total force and the current \\(i\\) applied to the coil is :
+
+
+
+\begin{equation}
+ \frac{F}{i} = \frac{-s^2 T}{s^2 + 2\xi\_p \omega\_p s + \omega\_p^2}
+\end{equation}
+
+with:
+
+- \\(T\\) is the transducer constant
+- \\(\omega\_p = \frac{k}{m}\\) is the natural frequency of the spring-mass system
+- \\(\xi\_p\\) is the damping ratio
+
+
+
+Above some critical frequency \\(\omega\_c \approx 2\omega\_p\\), **the proof-mass actuator can be regarded as an ideal force generator** ([Figure 12](#figure--fig:proof-mass-tf)).
+
+
+
+{{< figure src="/ox-hugo/preumont18_proof_mass_tf.png" caption="Figure 12: Bode plot \\(F/i\\) of the proof-mass actuator" >}}
+
+
+#### Geophone {#geophone}
+
+The geophone is a transducer which behaves like an **absolute velocity sensor** above some cutoff frequency.
+The voltage \\(e\\) of the coil is used as the sensor output.
+
+If \\(x\_0\\) is the displacement of the support and if the voice coil is open (\\(i=0\\)), the governing equations are:
+
+\begin{align\*}
+ m\ddot{x} + c(\dot{x}-\dot{x\_0}) + k(x-x\_0) &= 0\\\\
+ T(\dot{x}-\dot{x\_0}) &= e
+\end{align\*}
+
+By using the two equations, we obtain:
+
+\begin{equation}
+ \frac{e}{\dot{x\_0}} = \frac{-s^2 T}{s^2 + 2\xi\_p\omega\_p s + \omega\_p^2}
+\end{equation}
+
+Above the corner frequency, the gain of the geophone is equal to the transducer constant \\(T\\).
+
+
+
+{{< figure src="/ox-hugo/preumont18_geophone.png" caption="Figure 13: Model of a geophone based on a voice coil transducer" >}}
+
+Designing geophones with very low corner frequency is in general difficult. Active geophones where the frequency is lowered electronically may constitute a good alternative option.
+
+
+### General Electromechanical Transducer {#general-electromechanical-transducer}
+
+The consitutive behavior of a wide class of electromechanical transducers can be modelled as in [Figure 14](#figure--fig:electro-mechanical-transducer).
+
+
+
+{{< figure src="/ox-hugo/preumont18_electro_mechanical_transducer.png" caption="Figure 14: Electrical analog representation of an electromechanical transducer" >}}
+
+In Laplace form the constitutive equations read:
+
+\begin{align}
+ e & = Z\_e i + T\_{em} v \label{eq:gen\_trans\_e} \\\\
+ f & = T\_{em} i + Z\_m v \label{eq:gen\_trans\_f}
+\end{align}
+
+With:
+
+- \\(e\\) is the Laplace transform of the input voltage across the electrical terminals
+- \\(i\\) is the input current
+- \\(f\\) is the force applied to the mechanical terminals
+- \\(v\\) is the velocity of the mechanical part
+- \\(Z\_e\\) is the blocked electrical impedance (for \\(v=0\\))
+- \\(T\_{em}\\) is the transduction coefficient representing the electromotive force (in \\(\si{\volt\second\per\meter}\\))
+- \\(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 \\(\si{\newton\per\ampere}\\))
+- \\(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.
+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.
+
+We can show that
+
+\begin{equation}
+ V\_4 - V\_2 = \frac{-Z\_b T\_{em}}{Z\_e + Z\_b} v
+\end{equation}
+
+which is indeed a linear function of the velocity \\(v\\) at the mechanical terminals.
+
+
+
+{{< figure src="/ox-hugo/preumont18_bridge_circuit.png" caption="Figure 15: Bridge circuit for self-sensing actuation" >}}
+
+
+### Smart Materials {#smart-materials}
+
+Smart materials have the ability to respond significantly to stimuli of different physical nature.
+[Figure 16](#figure--fig:smart-materials) lists various effects that are observed in materials in response to various inputs.
+
+
+
+{{< figure src="/ox-hugo/preumont18_smart_materials.png" caption="Figure 16: Stimulus response relations indicating various effects in materials. The smart materials corresponds to the non-diagonal cells" >}}
+
+
+### Piezoelectric Transducer {#piezoelectric-transducer}
+
+Piezoelectric materials exhibits two effects described below.
+
+
+
+Ability to generate an electrical charge in proportion to an external applied force.
+
+
+
+
+
+An electric filed parallel to the direction of polarization induces an expansion of the material.
+
+
+
+The most popular piezoelectric materials are Lead-Zirconate-Titanate (PZT) which is a ceramic, and Polyvinylidene fluoride (PVDF) which is a polymer.
+
+We here consider a transducer made of one-dimensional piezoelectric material.
+
+
+
+\begin{subequations}
+ \begin{align}
+ D & = \epsilon^T E + d\_{33} T\\\\
+ S & = d\_{33} E + s^E T
+ \end{align}
+\end{subequations}
+
+With:
+
+- \\(D\\) is the electric displacement \\([C/m^2]\\)
+- \\(E\\) is the electric field \\([V/m]\\)
+- \\(T\\) is the stress \\([N/m^2]\\)
+- \\(S\\) is the strain
+- \\(\epsilon^T\\) is the dielectric constant under constant stress
+- \\(s^E\\) is the compliance when the eletric field is constant (inverse of Young modulus)
+- \\(d\_{33}\\) is the piezoelectric constant \\([m/V]\\) or \\([C/N]\\) in the poling direction of the material (convention)
+
+
+
+
+#### 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:
+
+\begin{equation}
+\begin{bmatrix}D\\\S\end{bmatrix}
+=
+\begin{bmatrix}
+\epsilon^T & d\_{33}\\\\
+d\_{33} & s^E
+\end{bmatrix}
+\begin{bmatrix}E\\\T\end{bmatrix}
+\end{equation}
+
+Where \\((E, T)\\) are the independent variables and \\((D, S)\\) are the dependent variable.
+
+If \\((E, S)\\) are taken as independant variables:
+
+\begin{equation}
+\begin{bmatrix}D\\\T\end{bmatrix}
+=
+\begin{bmatrix}
+\epsilon^T(1-k^2) & e\_{33}\\\\
+-e\_{33} & c^E
+\end{bmatrix}
+\begin{bmatrix}E\\\S\end{bmatrix}
+\end{equation}
+
+With:
+
+- \\(c^E = \frac{1}{s^E}\\) is the Young modulus under short circuited electrodes (\\(E = 0\\)) in \\([N/m^2]\\)
+- \\(e\_{33} = \frac{d\_{33}}{s^E}\\) is the constant relating the electric displacement to the strain for short-circuited electrodes \\([C/m^2]\\)
+
+
+
+\begin{equation}
+ k^2 = \frac{{d\_{33}}^2}{s^E \epsilon^T} = \frac{{e\_{33}}^2}{c^E \epsilon^T}
+\end{equation}
+
+\\(k\\) is called the **electromechanical coupling factor** of the material.
+It measures the efficiency of the conversion of the mechanical energy into electrical energy, and vice versa.
+
+
+
+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:
+
+\begin{equation}
+\begin{bmatrix}Q\\\\Delta\end{bmatrix}
+=
+\begin{bmatrix}
+C & nd\_{33}\\\\
+nd\_{33} & 1/K\_a
+\end{bmatrix}
+\begin{bmatrix}V\\\f\end{bmatrix}
+\end{equation}
+
+where
+
+- \\(Q = n A D\\) is the total electric charge on the electrodes of the transducer
+- \\(\Delta = S l\\) is the total extension (\\(l = nt\\) is the length of the transducer)
+- \\(f = AT\\) is the total force
+- \\(V\\) is the voltage applied between the electrodes of the transducer
+- \\(C = \epsilon^T A n^2/l\\) is the capacitance of the transducer with no external load (\\(f = 0\\))
+- \\(K\_a = A/s^El\\) is the stiffness with short-circuited electrodes (\\(V = 0\\))
+
+
+
+{{< figure src="/ox-hugo/preumont18_piezo_stack.png" caption="Figure 17: Piezoelectric linear transducer" >}}
+
+Equation \ref{eq:piezo\_stack\_eq} can be inverted to obtain
+
+\begin{equation}
+\begin{bmatrix}V\\\f\end{bmatrix}
+=
+\frac{K\_a}{C(1-k^2)}
+\begin{bmatrix}
+1/K\_a & -nd\_{33}\\\\
+-nd\_{33} & C
+\end{bmatrix}
+\begin{bmatrix}Q\\\\Delta\end{bmatrix}
+\end{equation}
+
+
+#### Energy Stored in the Piezoelectric Transducer {#energy-stored-in-the-piezoelectric-transducer}
+
+Let us write the total stored electromechanical energy of a discrete piezoelectric transducer as shown on [Figure 18](#figure--fig:piezo-discrete).
+
+The total power delivered to the transducer is the sum of electric power \\(V i\\) and the mechanical power \\(f \dot{\Delta}\\). The net work of the transducer is
+
+\begin{equation}
+ dW = V i dt + f \dot{\Delta} dt = V dQ + f d\Delta
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/preumont18_piezo_discrete.png" caption="Figure 18: 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:
+
+\begin{equation}
+ 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}
+\end{equation}
+
+- The first term is the electrical energy stored in the capacitance \\(C(1-k^2)\\) (corresponding to fixed geometry \\(\Delta = 0\\))
+- The second term is the piezoelectric energy
+- The third term is the elastic strain energy stored in a spring stiffness \\(K\_a/(1-k^2)\\) (corresponding to open electrodes \\(Q=0\\))
+
+The constitutive equations can be recovered by differentiate the stored energy:
+\\[ f = \frac{\partial W\_e}{\partial \Delta}, \quad V = \frac{\partial W\_e}{\partial Q} \\]
+
+
+#### Interpretation of \\(k^2\\) {#interpretation-of-k-2}
+
+Consider a piezoelectric transducer subjected to the following mechanical cycle: first, it is loaded with a force \\(F\\) with short-circuited electrodes; the resulting extension is \\(\Delta\_1 = F/K\_a\\) where \\(K\_a = A/(s^El)\\) is the stiffness with short-circuited electrodes.
+The energy stored in the system is:
+\\[ W\_1 = \int\_0^{\Delta\_1} f dx = \int\_0^{\Delta\_1} K\_a x dx = \frac{F^2}{2 K\_a} \\]
+
+At this point, the electrodes are open and the transducer is unloaded according to a path of slope \\(K\_a/(1-k^2)\\), the resulting extension is \\(\Delta\_2 = \frac{F(1-k^2)}{K\_a}\\).
+The energy recovered is
+\\[ W\_1 = \int\_0^{\Delta\_2} f dx = \frac{F \Delta\_2}{2} = \frac{F^2(1-k^2)}{2 K\_a} \\]
+
+The ratio between the remaining stored energy and the initial stored energy is
+\\[ \frac{W\_1 - W\_2}{W\_1} = k^2 \\]
+
+
+#### Admittance of the Piezoelectric Transducer {#admittance-of-the-piezoelectric-transducer}
+
+Consider the system of [Figure 19](#figure--fig:piezo-stack-admittance), where the piezoelectric transducer is assumed massless and is connected to a mass \\(M\\).
+The force acting on the mass is negative of that acting on the transducer, \\(f = -M \ddot{x}\\).
+
+
+
+{{< figure src="/ox-hugo/preumont18_piezo_stack_admittance.png" caption="Figure 19: Elementary dynamical model of the piezoelectric transducer" >}}
+
+From the constitutive equations, one finds
+
+\begin{equation}
+ \frac{I}{V} = s C (1-k^2) \frac{s^2 + z^2}{s^2 + p^2}
+\end{equation}
+
+where the poles and zeros are respectively
+\\[ p^2 = \frac{K\_a}{M},\quad z^2 = \frac{K\_a/(1-k^2)}{M} \\]
+
+And one can see that
+
+\begin{equation}
+ \frac{z^2 - p^2}{z^2} = k^2
+\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)).
+
+
+
+{{< figure src="/ox-hugo/preumont18_piezo_admittance_curve.png" caption="Figure 20: Typical admittance FRF of the transducer" >}}
+
+
+## Piezoelectric Beam, Plate and Truss {#piezoelectric-beam-plate-and-truss}
+
+
+### Piezoelectric Material {#piezoelectric-material}
+
+
+#### Constitutive Relations {#constitutive-relations}
+
+
+#### Coenergy Density Function {#coenergy-density-function}
+
+
+### Hamilton's Principle {#hamilton-s-principle}
+
+
+### Piezoelectric Beam Actuator {#piezoelectric-beam-actuator}
+
+
+#### Hamilton's Principle {#hamilton-s-principle}
+
+
+#### Piezoelectric Loads {#piezoelectric-loads}
+
+
+### Laminar Sensor {#laminar-sensor}
+
+
+#### Current and Charge Amplifiers {#current-and-charge-amplifiers}
+
+
+#### Distributed Sensor Output {#distributed-sensor-output}
+
+
+#### Charge Amplifier Dynamics {#charge-amplifier-dynamics}
+
+
+### Spatial Modal Filters {#spatial-modal-filters}
+
+
+#### Modal Actuator {#modal-actuator}
+
+
+#### Modal Sensor {#modal-sensor}
+
+
+### Active Beam with Collocated Actuator/Sensor {#active-beam-with-collocated-actuator-sensor}
+
+
+#### Frequency Response Function {#frequency-response-function}
+
+
+#### Pole-Zero Pattern {#pole-zero-pattern}
+
+
+#### Modal Truncation {#modal-truncation}
+
+
+### Admittance of a Beam with a Piezoelectric Patch {#admittance-of-a-beam-with-a-piezoelectric-patch}
+
+
+### Piezoelectric Laminate {#piezoelectric-laminate}
+
+
+#### Two-Dimensional Constitutive Equations {#two-dimensional-constitutive-equations}
+
+
+#### Kirchhoff Theory {#kirchhoff-theory}
+
+
+#### Stiffness Matrix of a Multilayer Elastic Laminate {#stiffness-matrix-of-a-multilayer-elastic-laminate}
+
+
+#### Multilayer Laminate with a Piezoelectric Layer {#multilayer-laminate-with-a-piezoelectric-layer}
+
+
+#### Equivalent Piezoelectric Loads {#equivalent-piezoelectric-loads}
+
+
+#### Sensor Output {#sensor-output}
+
+
+#### Beam Model Versus Plate Model {#beam-model-versus-plate-model}
+
+
+#### Additional Remarks {#additional-remarks}
+
+
+### Active Truss {#active-truss}
+
+
+#### Open-Loop Transfer Function {#open-loop-transfer-function}
+
+
+#### Admittance Function {#admittance-function}
+
+
+### Finite Element Formulation {#finite-element-formulation}
+
+
+### Problems {#problems}
+
+
+### References {#references}
+
+
+## Passive Damping with Piezoelectric Transducers {#passive-damping-with-piezoelectric-transducers}
+
+
+### Introduction {#introduction}
+
+
+### Resistive Shunting {#resistive-shunting}
+
+
+### Inductive Shunting {#inductive-shunting}
+
+
+#### Equal Peak Design {#equal-peak-design}
+
+
+#### Robustness of the Equal Peak Design {#robustness-of-the-equal-peak-design}
+
+
+### Switched Shunt {#switched-shunt}
+
+
+#### Equivalent Damping Ratio {#equivalent-damping-ratio}
+
+
+## BKMK Collocated Versus Non-collocated Control {#bkmk-collocated-versus-non-collocated-control}
+
+
+### Pole-Zero Flipping {#pole-zero-flipping}
+
+
+
+The Root Locus shows, in a graphical form, the evolution of the poles of the closed-loop system as a function of the scalar gain \\(g\\) applied to the compensator.
+The Root Locus is the locus of the solution \\(s\\) of the closed loop characteristic equation \\(1 + gG(s)H(s) = 0\\) when \\(g\\) goes from zero to infinity.
+
+
+
+If the open-loop transfer function is written
+\\[ G(s)H(s) = k \frac{\Pi\_{i=1}^{m} (s - z\_i)}{\Pi\_{i=1}^{n} (s - p\_i)} \\]
+The locus goes from the poles \\(p\_i\\) (for \\(g=0\\)) to the zeros \\(z\_i\\) (as \\(g \rightarrow \infty\\)).
+
+
+### The Two-Mass Problem {#the-two-mass-problem}
+
+
+#### Collocated Control {#collocated-control}
+
+
+#### Non-collocated Control {#non-collocated-control}
+
+
+### Notch Filter {#notch-filter}
+
+
+### Effect of Pole-Zero Flipping on the Bode Plots {#effect-of-pole-zero-flipping-on-the-bode-plots}
+
+
+### Nearly Collocated Control System {#nearly-collocated-control-system}
+
+
+### Non-collocated Control Systems {#non-collocated-control-systems}
+
+
+### The Role of Damping {#the-role-of-damping}
+
+
+## Active Damping with Collocated System {#active-damping-with-collocated-system}
+
+
+### Introduction {#introduction}
+
+The role of active damping is to increase the negative real parts of system poles wile maintaining the natural frequencies essentially unchanged.
+
+Active damping requires relatively little control effort; this is why it is also called Low Authority Control (LAC).
+Other control strategies which fully relocate the closed loop poles are called High Autority Control (HAC).
+
+
+### Lead Control {#lead-control}
+
+\\[H(s) = g \frac{s+z}{z+p} \quad p \gg z \\]
+
+It produces a phase lead in the frequency band between \\(z\\) and \\(p\\), bringing active damping to all the modes belonging to \\(z < \omega\_i < p\\).
+
+The closed-loop poles start at the open-llop poles for \\(g=0\\) and go to the open-loop zeros for \\(g\rightarrow\infty\\).
+
+The controller does not have any roll-off, but the roll-off of the structure is enough to guarantee gain stability at high frequency.
+
+
+### Direct Velocity Feedback (DVF) {#direct-velocity-feedback--dvf}
+
+This is a particular case of the Lead controller as \\(z\rightarrow 0\\) and \\(p\rightarrow\infty\\).
+
+Structure:
+\\[M \ddot{x} + K x = b u\\]
+
+Output is a velocity sensor:
+\\[y = b^T \dot{x}\\]
+
+Control:
+\\[u = -g y\\]
+
+
+### Positive Position Feedback (PPF) {#positive-position-feedback--ppf}
+
+Sometimes the plant does not have a roll-off of \\(-40dB/\text{decade}\\), then we can use a second-order PPF:
+\\[H(s) = \frac{-g}{s^2 + 2 \xi\_f \omega\_f s + {\omega\_f}^2}\\]
+
+
+### Integral Force Feedback (IFF) {#integral-force-feedback--iff}
+
+
+### Duality Between the Lead and the IFF Controllers {#duality-between-the-lead-and-the-iff-controllers}
+
+
+#### Root Locus of a Single Mode {#root-locus-of-a-single-mode}
+
+
+#### Open-Loop Poles and Zeros {#open-loop-poles-and-zeros}
+
+
+### Actuator and Sensor Dynamics {#actuator-and-sensor-dynamics}
+
+
+### Decentralized Control with Collocated Pairs {#decentralized-control-with-collocated-pairs}
+
+
+#### Cross talk {#cross-talk}
+
+
+#### Force Actuator and Displacement Sensor {#force-actuator-and-displacement-sensor}
+
+
+#### Displacement Actuator and Force Sensor {#displacement-actuator-and-force-sensor}
+
+
+### Proof of Equation (7.18)–(7.32) {#proof-of-equation--7-dot-18----7-dot-32}
+
+
+## Vibration Isolation {#vibration-isolation}
+
+
+### Introduction {#introduction}
+
+
+### Relaxation Isolator {#relaxation-isolator}
+
+
+#### Electromagnetic Realization {#electromagnetic-realization}
+
+
+### Active Isolation {#active-isolation}
+
+
+#### Sky-Hook Damper {#sky-hook-damper}
+
+
+#### Integral Force Feedback {#integral-force-feedback}
+
+
+### Flexible Body {#flexible-body}
+
+
+#### Free-Free Beam with Isolator {#free-free-beam-with-isolator}
+
+
+### Payload Isolation in Spacecraft {#payload-isolation-in-spacecraft}
+
+
+#### Interaction Isolator/Attitude Control {#interaction-isolator-attitude-control}
+
+
+#### Gough–Stewart Platform {#gough-stewart-platform}
+
+
+### Six-Axis Isolator {#six-axis-isolator}
+
+
+#### Relaxation Isolator {#relaxation-isolator}
+
+
+#### Integral Force Feedback {#integral-force-feedback}
+
+
+#### Spherical Joints, Modal Spread {#spherical-joints-modal-spread}
+
+
+### Active Versus Passive {#active-versus-passive}
+
+
+### Car Suspension {#car-suspension}
+
+
+## State Space Approach {#state-space-approach}
+
+
+### Introduction {#introduction}
+
+
+### State Space Description {#state-space-description}
+
+
+#### Single Degree of Freedom Oscillator {#single-degree-of-freedom-oscillator}
+
+
+#### Flexible Structure {#flexible-structure}
+
+
+#### Inverted Pendulum {#inverted-pendulum}
+
+
+### System Transfer Function {#system-transfer-function}
+
+
+#### Poles and Zeros {#poles-and-zeros}
+
+
+### Pole Placement by State Feedback {#pole-placement-by-state-feedback}
+
+
+#### Example: Oscillator {#example-oscillator}
+
+
+### Linear Quadratic Regulator {#linear-quadratic-regulator}
+
+
+#### Symmetric Root Locus {#symmetric-root-locus}
+
+
+#### Inverted Pendulum {#inverted-pendulum}
+
+
+### Observer Design {#observer-design}
+
+
+### Kalman Filter {#kalman-filter}
+
+
+#### Inverted Pendulum {#inverted-pendulum}
+
+
+### Reduced-Order Observer {#reduced-order-observer}
+
+
+#### Oscillator {#oscillator}
+
+
+#### Inverted Pendulum {#inverted-pendulum}
+
+
+### Separation Principle {#separation-principle}
+
+
+### Transfer Function of the Compensator {#transfer-function-of-the-compensator}
+
+
+#### The Two-Mass Problem {#the-two-mass-problem}
+
+
+## Analysis and Synthesis in the Frequency Domain {#analysis-and-synthesis-in-the-frequency-domain}
+
+
+### Gain and Phase Margins {#gain-and-phase-margins}
+
+
+### Nyquist Criterion {#nyquist-criterion}
+
+
+#### Cauchy's Principle {#cauchy-s-principle}
+
+
+#### Nyquist Stability Criterion {#nyquist-stability-criterion}
+
+
+### Nichols Chart {#nichols-chart}
+
+
+### Feedback Specification for SISO Systems {#feedback-specification-for-siso-systems}
+
+
+#### Sensitivity {#sensitivity}
+
+
+#### Tracking Error {#tracking-error}
+
+
+#### Performance Specification {#performance-specification}
+
+
+#### Unstructured Uncertainty {#unstructured-uncertainty}
+
+
+#### Robust Performance and Robust Stability {#robust-performance-and-robust-stability}
+
+
+### Bode Gain–Phase Relationships {#bode-gain-phase-relationships}
+
+
+### The Bode Ideal Cutoff {#the-bode-ideal-cutoff}
+
+
+### Non-minimum Phase Systems {#non-minimum-phase-systems}
+
+
+### Usual Compensators {#usual-compensators}
+
+
+#### System Type {#system-type}
+
+
+#### Lead Compensator {#lead-compensator}
+
+
+#### PI Compensator {#pi-compensator}
+
+
+#### Lag Compensator {#lag-compensator}
+
+
+#### PID Compensator {#pid-compensator}
+
+
+### Multivariable Systems {#multivariable-systems}
+
+
+#### Performance Specification {#performance-specification}
+
+
+#### Small Gain Theorem {#small-gain-theorem}
+
+
+#### Stability Robustness Tests {#stability-robustness-tests}
+
+
+#### Residual Dynamics {#residual-dynamics}
+
+
+## Optimal Control {#optimal-control}
+
+
+### Introduction {#introduction}
+
+
+### Quadratic Integral {#quadratic-integral}
+
+
+### Deterministic LQR {#deterministic-lqr}
+
+
+### Stochastic Response to a White Noise {#stochastic-response-to-a-white-noise}
+
+
+#### Remark {#remark}
+
+
+### Stochastic LQR {#stochastic-lqr}
+
+
+### Asymptotic Behavior of the Closed Loop {#asymptotic-behavior-of-the-closed-loop}
+
+
+### Prescribed Degree of Stability {#prescribed-degree-of-stability}
+
+
+### Gain and Phase Margins of the LQR {#gain-and-phase-margins-of-the-lqr}
+
+
+### Full State Observer {#full-state-observer}
+
+
+#### Covariance of the Reconstruction Error {#covariance-of-the-reconstruction-error}
+
+
+### Kalman Filter (KF) {#kalman-filter--kf}
+
+
+### Linear Quadratic Gaussian (LQG) {#linear-quadratic-gaussian--lqg}
+
+
+### Duality {#duality}
+
+
+### Spillover {#spillover}
+
+
+#### Spillover Reduction {#spillover-reduction}
+
+
+### Loop Transfer Recovery (LTR) {#loop-transfer-recovery--ltr}
+
+
+### Integral Control with State Feedback {#integral-control-with-state-feedback}
+
+
+### Frequency Shaping {#frequency-shaping}
+
+Weakness of LQG:
+
+- use frequency independant cost function
+- use noise statistics with uniform distribution
+
+To overcome the weakness => frequency shaping either by:
+
+- considering a frequency dependant cost function
+- using colored noise statistics
+
+
+#### Frequency-Shaped Cost Functionals {#frequency-shaped-cost-functionals}
+
+
+#### Noise Model {#noise-model}
+
+
+## Controllability and Observability {#controllability-and-observability}
+
+
+### Introduction {#introduction}
+
+
+#### Definitions {#definitions}
+
+
+### Controllability and Observability Matrices {#controllability-and-observability-matrices}
+
+
+### Examples {#examples}
+
+
+#### Cart with Two Inverted Pendulums {#cart-with-two-inverted-pendulums}
+
+
+#### Double Inverted Pendulum {#double-inverted-pendulum}
+
+
+#### Two d.o.f. Oscillator {#two-d-dot-o-dot-f-dot-oscillator}
+
+
+### State Transformation {#state-transformation}
+
+
+#### Control Canonical Form {#control-canonical-form}
+
+
+#### Left and Right Eigenvectors {#left-and-right-eigenvectors}
+
+
+#### Diagonal Form {#diagonal-form}
+
+
+### PBH Test {#pbh-test}
+
+
+### Residues {#residues}
+
+
+### Example {#example}
+
+
+### Sensitivity {#sensitivity}
+
+
+### Controllability and Observability Gramians {#controllability-and-observability-gramians}
+
+
+### Internally Balanced Coordinates {#internally-balanced-coordinates}
+
+
+### Model Reduction {#model-reduction}
+
+
+#### Transfer Equivalent Realization {#transfer-equivalent-realization}
+
+
+#### Internally Balanced Realization {#internally-balanced-realization}
+
+
+#### Example {#example}
+
+
+## Stability {#stability}
+
+
+### Introduction {#introduction}
+
+
+#### Phase Portrait {#phase-portrait}
+
+
+### Linear Systems {#linear-systems}
+
+
+#### Routh--Hurwitz Criterion {#routh-hurwitz-criterion}
+
+
+### Lyapunov's Direct Method {#lyapunov-s-direct-method}
+
+
+#### Introductory Example {#introductory-example}
+
+
+#### Stability Theorem {#stability-theorem}
+
+
+#### Asymptotic Stability Theorem {#asymptotic-stability-theorem}
+
+
+#### Lasalle's Theorem {#lasalle-s-theorem}
+
+
+#### Geometric Interpretation {#geometric-interpretation}
+
+
+#### Instability Theorem {#instability-theorem}
+
+
+### Lyapunov Functions for Linear Systems {#lyapunov-functions-for-linear-systems}
+
+
+### Lyapunov's Indirect Method {#lyapunov-s-indirect-method}
+
+
+### An Application to Controller Design {#an-application-to-controller-design}
+
+
+### Energy Absorbing Controls {#energy-absorbing-controls}
+
+
+## Applications {#applications}
+
+
+### Digital Implementation {#digital-implementation}
+
+
+#### Sampling, Aliasing, and Prefiltering {#sampling-aliasing-and-prefiltering}
+
+
+#### Zero-Order Hold, Computational Delay {#zero-order-hold-computational-delay}
+
+
+#### Quantization {#quantization}
+
+
+#### Discretization of a Continuous Controller {#discretization-of-a-continuous-controller}
+
+
+### Active Damping of a Truss Structure {#active-damping-of-a-truss-structure}
+
+
+#### Actuator Placement {#actuator-placement}
+
+
+#### Implementation, Experimental Results {#implementation-experimental-results}
+
+
+### Active Damping Generic Interface {#active-damping-generic-interface}
+
+
+#### Active Damping {#active-damping}
+
+
+#### Experiment {#experiment}
+
+
+#### Pointing and Position Control {#pointing-and-position-control}
+
+
+### Active Damping of a Plate {#active-damping-of-a-plate}
+
+
+#### Control Design {#control-design}
+
+
+### Active Damping of a Stiff Beam {#active-damping-of-a-stiff-beam}
+
+
+#### System Design {#system-design}
+
+
+### The HAC/LAC Strategy {#the-hac-lac-strategy}
+
+In active structures for precision engineering applications, the control system is used to reduce the effect of transient and steady-state disturbances on the controlled variables.
+Active damping is very effective in reducing the settling time of transient disturbances and the effect of steady state disturbances near the resonance frequencies of the system; however, away from the resonances, the active damping is completely ineffective and leaves the closed-loop response essentially unchanged.
+Such low-gain controllers are often called Low Authority Controllers (LAC), because they modify the poles of the system only slightly.
+
+To attenuate wide-band disturbances, the controller needs larger gains, in order to cause more substantial modifications to the poles of the open-loop system; this is the reason why they are often called High Authority Controllers (HAC).
+Their design requires a model of the structure, and there is usually a trade-off between the conflicting requirements of performance-bandwidth and stability in the face of parametric uncertainty and unmodelled dynamics.
+
+When collocated actuator/sensor pairs can be used, stability can be achieved using positivity concepts, but in many situations, collocated pairs are not feasible for HAC.
+
+The HAC/LAC approach consist of combining the two approached in a dual-loop control as shown in [Figure 21](#figure--fig:hac-lac-control).
+The inner loop uses a set of collocated actuator/sensor pairs for decentralized active damping with guaranteed stability ; the outer loop consists of a non-collocated HAC based on a model of the actively damped structure.
+This approach has the following advantages:
+
+- The active damping extends outside the bandwidth of the HAC and reduces the settling time of the modes which are outsite the bandwidth
+- The active damping makes it easier to gain-stabilize the modes outside the bandwidth of the output loop (improved gain margin)
+- The larger damping of the modes within the controller bandwidth makes them more robust to the parmetric uncertainty (improved phase margin)
+
+
+
+{{< figure src="/ox-hugo/preumont18_hac_lac_control.png" caption="Figure 21: Principle of the dual-loop HAC/LAC control" >}}
+
+
+#### Wide-Band Position Control {#wide-band-position-control}
+
+
+#### Compensator Design {#compensator-design}
+
+
+#### Results {#results}
+
+
+### Vibroacoustics: Volume Displacement Sensors {#vibroacoustics-volume-displacement-sensors}
+
+
+#### QWSIS Sensor {#qwsis-sensor}
+
+
+#### Discrete Array Sensor {#discrete-array-sensor}
+
+
+#### Spatial Aliasing {#spatial-aliasing}
+
+
+#### Distributed Sensor {#distributed-sensor}
+
+
+## Tendon Control of Cable Structures {#tendon-control-of-cable-structures}
+
+
+### Introduction {#introduction}
+
+
+### Tendon Control of Strings and Cables {#tendon-control-of-strings-and-cables}
+
+
+### Active Damping Strategy {#active-damping-strategy}
+
+
+### Basic Experiment {#basic-experiment}
+
+
+### Linear Theory of Decentralized Active Damping {#linear-theory-of-decentralized-active-damping}
+
+
+### Guyed Truss Experiment {#guyed-truss-experiment}
+
+
+### Microprecision Interferometer Testbed {#microprecision-interferometer-testbed}
+
+
+### Free-Floating Truss Experiment {#free-floating-truss-experiment}
+
+
+### Application to Cable-Stayed Bridges {#application-to-cable-stayed-bridges}
+
+
+#### Laboratory Experiment {#laboratory-experiment}
+
+
+#### Control of Parametric Resonance {#control-of-parametric-resonance}
+
+
+#### Large Scale Experiment {#large-scale-experiment}
+
+
+### Application to Suspension Bridges {#application-to-suspension-bridges}
+
+
+#### Footbridge {#footbridge}
+
+
+#### Laboratory Experiment {#laboratory-experiment}
+
+
+## Active Control of Large Telescopes: Adaptive Optics {#active-control-of-large-telescopes-adaptive-optics}
+
+
+### Introduction {#introduction}
+
+
+#### Wavefront Sensor {#wavefront-sensor}
+
+
+#### Zernike Modes {#zernike-modes}
+
+
+#### Fried Length, Seeing {#fried-length-seeing}
+
+
+#### Kolmogorov Turbulence Model {#kolmogorov-turbulence-model}
+
+
+#### Strehl Ratio {#strehl-ratio}
+
+
+#### Power Spectral Density of the Zernike Modes {#power-spectral-density-of-the-zernike-modes}
+
+
+### Deformable Mirror for Adaptive Optics {#deformable-mirror-for-adaptive-optics}
+
+
+#### Stoney Formula {#stoney-formula}
+
+
+#### Stroke Versus Natural Frequency {#stroke-versus-natural-frequency}
+
+
+### Feedback Control of an AO Mirror {#feedback-control-of-an-ao-mirror}
+
+
+#### Quasi-static Control {#quasi-static-control}
+
+
+#### Control of the Mirror Based on the Jacobian {#control-of-the-mirror-based-on-the-jacobian}
+
+
+#### Control of Zernike Modes {#control-of-zernike-modes}
+
+
+### Dynamic Response of the AO Mirror {#dynamic-response-of-the-ao-mirror}
+
+
+#### Dynamic Model of the Mirror {#dynamic-model-of-the-mirror}
+
+
+#### Control-Structure Interaction {#control-structure-interaction}
+
+
+#### Passive Damping {#passive-damping}
+
+
+#### Active Damping {#active-damping}
+
+
+### Miscellaneous {#miscellaneous}
+
+
+#### Segmented AO Mirror {#segmented-ao-mirror}
+
+
+#### Initial Curvature of the AO Mirror {#initial-curvature-of-the-ao-mirror}
+
+
+## Active Control of Large Telescopes: Active Optics {#active-control-of-large-telescopes-active-optics}
+
+
+### Introduction {#introduction}
+
+
+### Monolithic Primary Mirror {#monolithic-primary-mirror}
+
+
+### Segmented Primary Mirror {#segmented-primary-mirror}
+
+
+### SVD Controller {#svd-controller}
+
+
+#### Loop Shaping of the SVD Controller {#loop-shaping-of-the-svd-controller}
+
+
+### Dynamics of a Segmented Mirror {#dynamics-of-a-segmented-mirror}
+
+
+### Control-Structure Interaction {#control-structure-interaction}
+
+
+#### SISO System {#siso-system}
+
+
+#### MIMO System {#mimo-system}
+
+
+#### Spillover Alleviation {#spillover-alleviation}
+
+
+### Scaling Rules {#scaling-rules}
+
+
+#### Static Deflection Under Gravity {#static-deflection-under-gravity}
+
+
+#### First Resonance Frequency {#first-resonance-frequency}
+
+
+#### Control Bandwidth {#control-bandwidth}
+
+
+## Adaptive Thin Shell Space Reflectors {#adaptive-thin-shell-space-reflectors}
+
+
+### Introduction {#introduction}
+
+
+### Adaptive Plates Versus Adaptive Shells {#adaptive-plates-versus-adaptive-shells}
+
+
+### Adaptive Spherical Shell {#adaptive-spherical-shell}
+
+
+### Quasi-static Control: Hierarchical Approach {#quasi-static-control-hierarchical-approach}
+
+
+### Petal Configuration {#petal-configuration}
+
+
+### MATS Demonstrator {#mats-demonstrator}
+
+
+#### Manufacturing of the Demonstrator {#manufacturing-of-the-demonstrator}
+
+
+## Semi-active Control {#semi-active-control}
+
+
+### Introduction {#introduction}
+
+
+### Magneto-Rheological Fluids {#magneto-rheological-fluids}
+
+
+### MR Devices {#mr-devices}
+
+
+### Semi-active Suspension {#semi-active-suspension}
+
+
+#### Semi-active Devices {#semi-active-devices}
+
+
+### Narrow-Band Disturbance {#narrow-band-disturbance}
+
+
+#### Quarter-Car Semi-active Suspension {#quarter-car-semi-active-suspension}
+
+
+### Problems {#problems}
+
+
+## Bibliography {#bibliography}
+
+
+
Preumont, A. 2018. Vibration Control of Active Structures - Fourth Edition. Solid Mechanics and Its Applications. Springer International Publishing. doi:10.1007/978-3-319-72296-2.
+
diff --git a/content/book/schmidt20_desig_high_perfor_mechat_third_revis_edition.md b/content/book/schmidt20_desig_high_perfor_mechat_third_revis_edition.md
new file mode 100644
index 0000000..8dd8bed
--- /dev/null
+++ b/content/book/schmidt20_desig_high_perfor_mechat_third_revis_edition.md
@@ -0,0 +1,2238 @@
++++
+title = "The design of high performance mechatronics - third revised edition"
+author = ["Dehaeze Thomas"]
+description = "Awesome book that gives great overview of high performance mechatronic systems"
+keywords = ["Metrology", "Mechatronics", "Control"]
+draft = false
++++
+
+Tags
+: [Reference Books]({{< relref "reference_books.md" >}}), [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting.md" >}})
+
+Reference
+: (Schmidt, Schitter, and Rankers 2020)
+
+Author(s)
+: Schmidt, R. M., Schitter, G., & Rankers, A.
+
+Year
+: 2020
+
+
+## Applied Physics in Mechatronic Systems {#applied-physics-in-mechatronic-systems}
+
+
+### Introduction {#introduction}
+
+
+### Mechanics {#mechanics}
+
+> The core of a mechatronic system is its mechanical construction and in spite of many decade of excellent designs, optimizing the mechanical structure in strength, mass and endurance, the mechanical behavior will always remain the limiting factor of the performance of any mechatronic system.
+
+
+#### Coordinate Systems {#coordinate-systems}
+
+
+##### Cartesian Coordinate System {#cartesian-coordinate-system}
+
+
+##### Generalised Coordinate System {#generalised-coordinate-system}
+
+
+##### Modal Coordinate System {#modal-coordinate-system}
+
+
+#### Force and Motion {#force-and-motion}
+
+> _Statics_ deals with the stress levels that are present in the mechanical system when (quasi-)static forces are exerted on it.
+> It analyses the linear and non-linear strain effects that are caused by elastic and plastic deformation under these stress levels.
+>
+> _Dynamics_ deals with the behaviour of the mechanical system under changing forces, while often the effects are linearised and limited to strain levels well below any irreversible plastic deformation.
+> One should however be aware that another non-destructive source of non-linearity is found in a tried important field of mechanics, called _kinematics_.
+> The relation between angles and positions is often non-linear in such a mechanism, because of the changing angles, and controlling these often requires special precautions to overcome the inherent non-linearities by linearisation around actual position and adapting the optimal settings of the controller to each position.
+
+
+##### Galilei and Newton's Laws of Motion {#galilei-and-newton-s-laws-of-motion}
+
+
+##### Hooke's Law of Elasticity {#hooke-s-law-of-elasticity}
+
+
+##### Lagrange Equations of Motion {#lagrange-equations-of-motion}
+
+
+### Electricity and Magnetism {#electricity-and-magnetism}
+
+
+#### Electric Field {#electric-field}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_electrical_field.svg" caption="Figure 1: Charges have an electric field" >}}
+
+
+##### Potential Difference and Capacitance {#potential-difference-and-capacitance}
+
+
+##### Electric Current in Conductive Material {#electric-current-in-conductive-material}
+
+
+#### Magnetism and the Maxwell Equations {#magnetism-and-the-maxwell-equations}
+
+
+#### Electric Sources and Elements {#electric-sources-and-elements}
+
+
+##### Voltage Source {#voltage-source}
+
+
+##### Summary on Voltage and Current {#summary-on-voltage-and-current}
+
+
+##### Electric Power {#electric-power}
+
+
+##### Ohm's Law {#ohm-s-law}
+
+
+##### Practical Values and Summary {#practical-values-and-summary}
+
+
+### Signal Theory and Wave Propagation {#signal-theory-and-wave-propagation}
+
+
+#### The Concept of Frequency {#the-concept-of-frequency}
+
+The variation of an electric signal over time can be seen as a combination of three types of behavior:
+
+- constant, called **DC**
+- periodically alternative, called **AC**
+- Random, called **noise**
+
+Let's consider position with an harmonic oscillation with constant angular speed \\(\omega\\) and amplitude \\(x\_p\\):
+
+\begin{equation}
+x(t) = x\_p \sin(\omega t)
+\end{equation}
+
+The angular speed \\(\omega\\) is rad/s related to the frequency \\(f\\) in hertz by:
+
+\begin{equation}
+\omega = 2\pi f \quad \text{[rad/s]}
+\end{equation}
+
+The time period of one cycle \\(T\\) in seconds is inversely proportional to \\(f\\):
+
+\begin{equation}
+T = \frac{1}{f} \quad \text{[s]}
+\end{equation}
+
+The velocity \\(v(t)\\) equals the derivative of the position over time:
+
+\begin{equation}
+v(t) = \frac{dx(t)}{dt} = \dot{x}(t) = v\_p \cos(\omega t) = x\_p \omega \cos(\omega t)
+\end{equation}
+
+Meaning that the amplitude of the velocity is:
+
+\begin{equation}
+v\_p = x\_p \omega \quad \text{[m/s]}
+\end{equation}
+
+And the acceleration \\(a(t)\\) equals the derivative of velocity over time:
+
+\begin{equation}
+a(t) = \frac{dv(t)}{dt} = \ddot{x}(t) = -x\_p \omega^2 \sin(\omega t)
+\end{equation}
+
+It could be concluded that velocity either advances on position with a phase of 90 degrees or lags with a phase of 270 degrees.
+The second option is however not logical as the position of an object is the result of **and thus comes after** the velocity.
+The same phase relation exists between the velocity and the acceleration.
+
+Noise is a real random non-deterministic signal,which means that the signal value at any time of observation can have any value within a certain range.
+The range is described by means of a statistical distribution, which indicates the probability that the value is within that range.
+The distribution of frequencies contained in the noise, called the _frequency spectrum_, can only be described in statistical terms.
+
+Sometimes electronic signals are represented by their power value, being the squared momentary value.
+In case of a voltage signal, this power value would be equal to the power dissipated in a \\(1 \Omega\\) resistor.
+In an alternating signal, the power also varies over time.
+When examining the power of a signal, as defined by the squared momentary value, often the average power over time \\(\bar{P\_s}\\) is taken as a representative number:
+
+\begin{equation}
+\bar{P\_s} = \frac{1}{T}\int\_0^T \left^2 dt \quad [W]
+\end{equation}
+
+In the example of a voltage signal over a \\(1\Omega\\) resistor this average power level would be equal to the power dissipated in the resistor by a DC voltage with a value of:
+
+\begin{equation}
+V\_{\text{rms}} = \sqrt{\frac{1}{T}\int\_0^T \left^2 dt}
+\end{equation}
+
+The term "rms" refers to Root Mean Square, named from the action of taking the root of the mean value of the squared function.
+The RMS value is a well known term used to characterize the "useful" value of the energy supply with a signal by comparing it with an equivalent DC voltage that would cause the same power in a resistive load.
+
+
+
+For a sinusoidal signal \\(V(t) = V\_p \sin(\omega t)\\), the equivalent DC voltage becomes:
+
+\begin{equation}
+\begin{aligned}
+V\_{\text{rms}} &= \sqrt{\frac{1}{T} \int\_0^T \left< V\_p\sin(\omega t) \right>^2 dt} \\\\
+ &= \dots \\\\
+ &= \frac{V\_p}{\sqrt{2}} \quad [V]
+\end{aligned}
+\end{equation}
+
+
+
+
+#### Use of Complex Numbers {#use-of-complex-numbers}
+
+
+##### Dynamic Impedance and Ohm's Law {#dynamic-impedance-and-ohm-s-law}
+
+
+##### Power in Dynamic Impedance {#power-in-dynamic-impedance}
+
+
+##### Capacitive Impedance {#capacitive-impedance}
+
+
+##### Inductive Impedance {#inductive-impedance}
+
+
+#### Energy Propagation in Waves {#energy-propagation-in-waves}
+
+The energy in a traveling wave is transferred to another place by a consecutive process called _propagation_ at a velocity, which is called propagation velocity or _phase velocity_ \\(v\_p\\) [m/s], a spatial vector with a magnitude, called propagation speed \\(c\_p\\) [m/s].
+When observing a continuous sinusoidal wave motion on a stationary position, the observed value, like displacement or pressure, will appear to vary with a certain **temporal** frequency \\(f\\) [Hz] with period \\(T\\) [s], which is determined by the source of the wave.
+With a certain propagation speed \\(c\_p\\), the temporal frequency \\(f\\) will also correspond to a **spatial** variation of the observed value along the propagation direction at a stationary moment in time.
+This spatial frequency is called the _wavenumber_ \\(\nu\\) [1/m], and equals the number of periods of the wave per meter.
+Its inverse, the spatial period length called _wavelength_ \\(\lambda\\) [m] is more common.
+
+The relation between the above defined terms is:
+
+\begin{align}
+ \lambda &= \frac{1}{\nu} = c\_p T = \frac{c\_p}{f} \quad [m] \\\\
+ v\_p &= \frac{f}{\nu} \quad [m/s]
+\end{align}
+
+
+##### Mechanical Waves {#mechanical-waves}
+
+The propagation speed value of a mechanical wave is mostly determined by the density and elasticity of the medium.
+The wave propagation through an elastic material can be qualitatively explained with the help of a simplified lumped element model, consisting of a chain of springs and bodies as shown in [Figure 2](#figure--fig:schmidt20-mechanical-wave).
+
+
+
+{{< figure src="/ox-hugo/schmidt20_mechanical_wave.svg" caption="Figure 2: Lumped element model of one wavelength of a mechanical wave." >}}
+
+To explain the principle of energy transfer, the longitudinal wave is taken as example.
+When a movement of mass \\(m\_1\\) is introduced in the propagation direction of the chain, this will first cause a compression of the elastic coupling \\(k\_1\\).
+The resulting compression force is transferred to mass \\(m\_2\\), which accelerates resulting in its own movement and causing in its turn a compression of \\(k\_2\\).
+This process is repeated over the total chain until the original movement reaches \\(m\_n\\).
+With this mechanism the kinetic energy from mass \\(m\_1\\) is converted into potential energy in \\(k\_1\\), which in turn is transferred into kinetic energy of \\(m\_2\\), and so on.
+
+
+
+This phenomenon of transfer of energy in an elastic body is important in mechatronic systems because driving forces are also transported through the body as a wave and as a consequence will experience a delay between the actuator and the sensor when they are located separately.
+
+
+
+The propagation speed \\(c\_p\\) is determined by the density \\(\rho\_m\\) and the elasticity of the medium, expressed by the Young's modulus \\(Y\\) for a wave running in one direction in a solid rod and bulk modulus \\(B\\) for a wave running in a volume and equals:
+
+\begin{equation}
+\text{1-D: } c\_p = \sqrt{\frac{Y}{\rho\_m}}, \quad \text{3-D: } c\_p = \sqrt{\frac{B}{\rho\_m}} \quad [m/s]
+\end{equation}
+
+
+
+The propagation speed in stainless steel varies between 3500 m/s for transversal waves and 5500 m/s for longitudinal waves.
+With for instance half a meter of steel this gives a delay of about 0.1ms, resulting in a phase delay of 36 degrees at 1kHz, which can be significant from a control point of view.
+
+
+
+
+##### Wave Equation {#wave-equation}
+
+
+##### Electromagnetic Waves {#electromagnetic-waves}
+
+
+##### Reflection of Waves {#reflection-of-waves}
+
+
+##### Standing Waves {#standing-waves}
+
+
+#### Fourier Decomposition of Alternating Signals {#fourier-decomposition-of-alternating-signals}
+
+
+##### Fourier in the frequency-domain {#fourier-in-the-frequency-domain}
+
+
+##### Triangle Waveform {#triangle-waveform}
+
+{{< figure src="/ox-hugo/schmidt20_fourier_triangle.svg" >}}
+
+
+##### Sawtooth Waveform {#sawtooth-waveform}
+
+{{< figure src="/ox-hugo/schmidt20_fourier_sawtooth.svg" >}}
+
+
+##### Square Waveform {#square-waveform}
+
+{{< figure src="/ox-hugo/schmidt20_fourier_square.svg" >}}
+
+
+##### Non-Continuous Alternating Signals {#non-continuous-alternating-signals}
+
+{{< figure src="/ox-hugo/schmidt20_window_functions.svg" >}}
+
+
+### Dynamic System Analysis and Modelling {#dynamic-system-analysis-and-modelling}
+
+
+#### Laplace-Transform {#laplace-transform}
+
+The Laplace transform can be used to solve differential equations of motion, which could describe the position of an object in the time-domain, by solutions in the frequency domain in the form of a _transfer-function_ with the Laplace operator \\(s = \sigma + j\omega\\).
+
+The Laplace operator \\(s = \sigma + j\omega\\) is a complex number that can graphically be represented in a two dimensional plot called the _Laplace-plane_ with the value of \\(\sigma\\) on the horizontal real axis and \\(j\omega\\) on the vertical imaginary axis.
+
+In case \\(f(t)\\) is a function of the time variable \\(t\\), then the Laplace-transformed function \\(F(s) = \mathcal{L}\\{f(t)\\}\\) is described as a function of the Laplace operator \\(s\\) in the following way:
+
+\begin{equation}
+\boxed{ F(s) = \mathcal{L}\\{f(t)\\} = \int\_0^\infty e^{-st}f(t)dt }
+\end{equation}
+
+The Laplace transform converts a differential of a variable \\(x(t)\\) over time into the following function:
+
+\begin{equation}
+\mathcal{L}\left\\{ \frac{dx(t)}{dt} \right\\} = s x(s) - x(0)
+\end{equation}
+
+In practice, the initial value \\(x(0)\\) of \\(x(t)\\) at \\(t=0\\) is neglected for the dynamic analysis of mechatronic systems as the frequency response functions are based on the continuous presence of the input signal of the system.
+
+The Laplace transform applied to an integration action gives the following function:
+
+\begin{equation}
+\mathcal{L}\left\\{ \int\_0^{t^\prime} x(t) dt \right\\} = \frac{x(s)}{s}
+\end{equation}
+
+The Laplace plane is used when examining the stability of a dynamic system, determined by the location of the poles and zeros of the dynamic transfer function of the system after transforming its equations of motion.
+A transfer function is generally a function with polynomial terms of \\(s\\) in the numerator and the denominator.
+A zero is defined as the value of \\(s\\) in the transfer function at which the numerator equals zeros.
+A pole is defined as the value of \\(s\\) in the transfer function at which the denominator equals zeros, in that case the total transfer function becomes infinite.
+
+Any real physical systems always have more poles than zeros, because of the fact that no real physical system can respond to an infinite frequency.
+
+The order of a dynamic system can be defined as:
+
+- the number of energy containers like mass, spring
+- the number of state variables
+- the number of poles
+
+
+#### Dynamic Responses in the time-domain {#dynamic-responses-in-the-time-domain}
+
+
+##### Step Response {#step-response}
+
+
+##### Impulse Response {#impulse-response}
+
+
+##### Impulse Response and Pole Location {#impulse-response-and-pole-location}
+
+{{< figure src="/ox-hugo/schmidt20_impulse_response_location.svg" >}}
+
+
+#### Dynamic Responses in the frequency-domain {#dynamic-responses-in-the-frequency-domain}
+
+
+##### Frequency or Fourier-Domain Responses {#frequency-or-fourier-domain-responses}
+
+
+##### Domain Notation of Dynamic Functions {#domain-notation-of-dynamic-functions}
+
+
+##### Frequency Response Plots {#frequency-response-plots}
+
+
+##### Bode Plot {#bode-plot}
+
+{{< figure src="/ox-hugo/schmidt20_bode_plot.svg" >}}
+
+Instead of using absolute numbers with the magnitude scale, often the scale is divided in decibels.
+The unit "Bel" corresponds to the log of the ratio of powers, and therefore the term "deci-bel" corresponds to:
+
+\begin{equation}
+10 \log\frac{P\_1}{P\_2} \quad [dB]
+\end{equation}
+
+As the signals are proportional to the square root of power, we obtain that:
+
+\begin{equation}
+20 \log\frac{V\_1}{V\_2} \quad [dB]
+\end{equation}
+
+In terms of decibel, the slope in the Bode plot becomes equal to a certain number of dB per frequency ratio.
+The values are given in [Table 1](#table--tab:relation-slope-decade) for a decade (representing a factor ten between the frequencies), and in [Table 2](#table--tab:relation-slope-octave) for an octave (factor two between the frequencies).
+
+
+
+ Table 1:
+ Relation between the order of the slope of a bode plot and the magnitude ration in dB, amplitude ratio and power ration, per decade (\(f_1 = 10 f_2\))
+
+ Table 2:
+ Relation between the order of the slope of a bode plot and the magnitude ration in dB, amplitude ratio and power ration, per octave (\(f_1 = 2 f_2\))
+
+
+| Slope | dB | Amplitude | Power |
+|-------|-----|-----------|--------|
+| -2 | -12 | 0.25 | 0.0625 |
+| -1 | -6 | 0.5 | 0.25 |
+| 0 | 0 | 1 | 1 |
+| 1 | 6 | 2 | 4 |
+| 2 | 12 | 4 | 16 |
+
+
+##### Nyquist Plot {#nyquist-plot}
+
+{{< figure src="/ox-hugo/schmidt20_nyquist_plot.svg" >}}
+
+
+##### Limitation to LTI Systems {#limitation-to-lti-systems}
+
+
+## Dynamics of Motion Systems {#dynamics-of-motion-systems}
+
+
+### Introduction {#introduction}
+
+
+### Stiffness {#stiffness}
+
+
+#### Importance of Stiffness for Precision {#importance-of-stiffness-for-precision}
+
+
+#### Active Stiffness {#active-stiffness}
+
+
+### Mass-Spring Systems with Damping {#mass-spring-systems-with-damping}
+
+
+#### Dynamic Compliance {#dynamic-compliance}
+
+
+##### Compliance of a Spring {#compliance-of-a-spring}
+
+
+##### Compliance of a Damper {#compliance-of-a-damper}
+
+
+##### Compliance of a Body {#compliance-of-a-body}
+
+
+##### Dynamic Stiffness {#dynamic-stiffness}
+
+
+##### Lumping the Dynamic Elements {#lumping-the-dynamic-elements}
+
+
+#### Transfer Function of Compliance {#transfer-function-of-compliance}
+
+
+##### Damped Mass-Spring System. {#damped-mass-spring-system-dot}
+
+
+##### Magnitude {#magnitude}
+
+
+##### Phase {#phase}
+
+
+##### Bode Plot {#bode-plot}
+
+
+#### Effects of Damping {#effects-of-damping}
+
+
+##### Damped Resonance and Aperiodic Damping {#damped-resonance-and-aperiodic-damping}
+
+
+##### Poles and Critical Damping {#poles-and-critical-damping}
+
+
+##### Quality-Factor Q and Energy in Resonance {#quality-factor-q-and-energy-in-resonance}
+
+
+#### Transmissibility {#transmissibility}
+
+
+#### Fourth-Order Dynamic System {#fourth-order-dynamic-system}
+
+
+##### Analytical Description {#analytical-description}
+
+
+##### Multiplicative Expression {#multiplicative-expression}
+
+
+##### Effect of Different Mass Ratios {#effect-of-different-mass-ratios}
+
+
+### Modal Decomposition {#modal-decomposition}
+
+
+#### Eigenmodes of Two-Body Mass-Spring System {#eigenmodes-of-two-body-mass-spring-system}
+
+
+#### Theory of Modal Decomposition {#theory-of-modal-decomposition}
+
+
+##### Multi Degree of Freedom Equation of Motion {#multi-degree-of-freedom-equation-of-motion}
+
+
+##### Eigenvalues and Eigenvectors {#eigenvalues-and-eigenvectors}
+
+
+##### Modal Coordinates {#modal-coordinates}
+
+
+##### Resulting Transfer Function {#resulting-transfer-function}
+
+
+#### Graphical Representation of Mode-Shapes {#graphical-representation-of-mode-shapes}
+
+
+##### Traditional Representation {#traditional-representation}
+
+
+##### Lever Representation {#lever-representation}
+
+
+##### General System {#general-system}
+
+
+##### User-Defined Physical DOF {#user-defined-physical-dof}
+
+
+#### Physical Meaning of Modal Parameters {#physical-meaning-of-modal-parameters}
+
+
+##### Two-Body Mass-Spring System {#two-body-mass-spring-system}
+
+
+##### Planar Flexibly Guided System {#planar-flexibly-guided-system}
+
+
+#### A Pragmatic View on Sensitivity Analysis {#a-pragmatic-view-on-sensitivity-analysis}
+
+
+##### Example of Two Body Mass-Spring System {#example-of-two-body-mass-spring-system}
+
+
+##### Example of Slightly Damped Resonance {#example-of-slightly-damped-resonance}
+
+
+#### Suspension and Rigid-Body Modes {#suspension-and-rigid-body-modes}
+
+
+##### Quasi Rigid-Body Suspension mode {#quasi-rigid-body-suspension-mode}
+
+
+### Mechanical Frequency Response {#mechanical-frequency-response}
+
+
+#### Multiple eigenmodes {#multiple-eigenmodes}
+
+
+#### Characteristic Frequency Responses {#characteristic-frequency-responses}
+
+
+##### Frequency Response Type I {#frequency-response-type-i}
+
+
+##### Frequency Response Type II {#frequency-response-type-ii}
+
+
+##### Frequency Response Type III {#frequency-response-type-iii}
+
+
+##### Frequency Response Type IV {#frequency-response-type-iv}
+
+
+#### Example Systems with Type I/II/IV Response {#example-systems-with-type-i-ii-iv-response}
+
+
+##### Planar Moving Body on Compliant Spring {#planar-moving-body-on-compliant-spring}
+
+
+##### H-drive Waferstage {#h-drive-waferstage}
+
+
+### Summary on Dynamics {#summary-on-dynamics}
+
+
+
+In this chapter some important lessons have been learned, which are summarised as follows:
+
+- Stiffness, whether it is created mechanically or by means of a control system, is determinative for precision
+- Every mechanical structure can be modelled as a combination of bodies, springs and dampers, either as separate bodies or as finite elements within a body
+- Phase is prominent factor regarding the possibility to control the motion of a mechanical system
+- The quality factor \\(Q\\) and damping ratio \\(\xi\\) are inverse proportional. Each have their practical value.
+- A damping placed in parallel with a lumped mass-spring system limits the magnitude of the resonance at the natural frequency.
+ However, it also increases the transmissibility at frequencies above the native frequency.
+- The dynamic behavior of a complex system and its response to a stimulus can be derived and understood by viewing it as a superposition of contributions of its eigenmodes, each with its own mode-shape, eigenfrequency, modal parameters and damping.
+- The position of the actuator and the sensors determine the observability and controllability of the different eigenmodes, which is characterised by four typical frequency response.
+- A precision design requires a careful lay-out of all elements, considering the eigenmodes.
+- Modal analysis is a powerful and widely applied tool to investigate the dynamics of a mechanical structure.
+
+Finally it can be concluded, that these insights help in designing actively controlled dynamic motion systems with optimally located actuators and sensors, which reduce the sensitivity for modal dynamic problems.
+
+
+
+
+## Motion Control {#motion-control}
+
+
+### A Walk around the Control Loop {#a-walk-around-the-control-loop}
+
+[Figure 3](#figure--fig:schmidt20-walk-control-loop) shows a basic control loop of a positioning system.
+First, the A/D and D/A converters are used to translate analog signals into time-discrete digital signals and vice versa.
+Secondly, the impact locations of several disturbances are shown, which play a large role in determining what reqwuirements the controller needs to fulfil.
+The core of the control system is the _plant_, which is the physical system that needs to be controlled.
+
+
+
+
+| Symbol | Meaning | Unit |
+|------------|--------------------------------------|------|
+| \\(r\\) | Reference signal | [m] |
+| \\(r\_f\\) | Filtered reference signal | [m] |
+| \\(e\\) | Error signal | [m] |
+| \\(u\\) | Control force that should be applied | [N] |
+| \\(v\\) | Real force that is applied | [N] |
+| \\(x\\) | Plant output motion | [m] |
+| \\(y\\) | Measured output motion | [m] |
+| \\(y\_m\\) | Measurement value | [m] |
+
+
+
+{{< figure src="/ox-hugo/schmidt20_walk_control_loop.svg" caption="Figure 3: Block diagram of a motion control system, including feedforward and feedback control." >}}
+
+The plant combines the mechanical structure, amplifiers and actuators, as they all deal with energy conversion in close interaction ([Figure 4](#figure--fig:schmidt20-energy-actuator-system)).
+They interact in both directions in such a way that each element not only determines the input of the next element, but also influences the previous element by its dynamic load.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_energy_actuator_system.svg" caption="Figure 4: The energy converting part of a mechatronic system consists of a the amplifier, the actuator and the mechanical structure." >}}
+
+
+#### Poles and Zeros in Motion Control {#poles-and-zeros-in-motion-control}
+
+Any transfer function derived from a system can be represented with poles \\(p\_n\\) and zeros \\(z\_m\\):
+
+\begin{equation}
+G(s) = \frac{(s-z\_1)(s-z\_2)\dots(s-z\_m)}{(s-p\_1)(s-p\_2)\dots(s-p\_n)}
+\end{equation}
+
+with \\(m < n\\).
+
+The number of poles is an indicator of the order of the dynamic system, corresponding to the number of states (position and velocity) and the number of energy containers (mass, spring).
+All real system are _strictly proper_ with more poles and zeros.
+Even though zeros can not create instability, the term _unstable zeros_ is given to zeros in the right half of the Laplace-plane (positive real term) for two reasons:
+
+- inverting an unstable zero will result in an unstable pole
+- it indicates non-minimum phase behavior, meaning a larger negative phase shift than would be expected from the slope of the amplitude Bode plot.
+
+It also shows a counter intuitive step response, because the initial motion is directed opposite to the direction of the force.
+
+It is usually caused by the non-collocated sensor in respect to the actuator.
+In reality all mechatronic feedback systems have not perfectly collocated sensors and as a consequence they may show some level of non-minimum phase behaviour.
+Fortunately the effect is mostly so small that it can be neglected.
+
+
+#### Overview Feedforward Control {#overview-feedforward-control}
+
+[Figure 5](#figure--fig:schmidt20-feedforward-control-diagram) shows the typical basic configuration for feedforward control, which is also called _open-loop control_ as it is equal to a situation where the measured output is not connected to the input for feedback.
+
+The reference signal \\(r\\) [m] is applied to the controller, which as a reference transfer function \\(C\_{ff}(s)\\) in [N/m].
+The output \\(u\\) in [N] of the controller is connected to the input of the motion system, which has a transfer function \\(G(s)\\) in [m/N] giving the output \\(x\\) in [m].
+In this configuration the feedforward controller acts as a filter, which modifies the reference signal in such a way, that the motion of the controlled mechatronic system follows the reference signal.
+
+If one would like to achieve perfect control, which means that there is no difference between the reference position and the actual position of the system, the combined transfer function \\(G\_{t,ff}(s)\\) from \\(r\\) to \\(x\\) has to be equal to one:
+
+\begin{equation}
+G\_{t,ff}(s) = \frac{x}{r} = C\_{ff}(s)G(s) = 1 \quad \Longrightarrow \quad C\_{ff}(s) = G^{-1}(s)
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_feedforward_control_diagram.svg" caption="Figure 5: Block diagram of a feedforward controller motion system with one input and output (SISO)." >}}
+
+
+
+Feedforward control is a very useful and preferred first step in the control of a complex dynamic motion system as it provides the following advantages:
+
+- **Less feedback required**: the better the feedforward part is performing the smaller the feedback error will need to be corrected further errors. This is the most important reason that feedforward control is always applied to the maximum accuracy possible in fast high precision motion systems.
+- **No sensor required**: no sensor information is fed back to the system, which means that a sensor can be left out, thus reducing the cost of pure feedforward controlled systems.
+- **Predictable movement**: if the reference signal (trajectory) is known in advance, the phase-lag and time delay in the system can be predicted and therefore compensated.
+- **No introduction of instability**: the poles of the controlled system are not changed by feedforward control. Therefore no instability can be introduced.
+- **No feeding back of sensor noise**: in precision motion systems, positioning noise is a critical point that always has to be considered in the control design. The lack of a sensor avoid insertion of the measurement noise in the system.
+
+
+
+
+
+The drawbacks and limitations of feedforward control are:
+
+- **Limitation to inverted low-pass minimum-phase characteristic**: it is not possible nor wise to create a controller with a very high gain at very high frequencies. Inverting unstable zeros for a non-minimum phase system would create an unstable controller.
+- **The plant has to be stable**: Unstable systems cannot be controlled with pure feedforward control.
+- **No compensation of model uncertainties**: Variations in the system dynamics, such as shifting of the resonance frequency or variation of the damping, are not monitored and therefore not accounted for in feedforward control.
+- **Can only compensate for known disturbances**: Disturbances of the motion system can only be compensated if they can be measured.
+
+
+
+
+#### Overview Feedback Control {#overview-feedback-control}
+
+In feedback control the actuator status of the motion system is monitored by a sensor and the controller generates a control action based on the difference between the desired motion (reference signal) and the actuator system status (sensor signal).
+
+The block diagram of [Figure 6](#figure--fig:schmidt20-feedback-control-diagram) shows a SISO feedback loop for a motion system without the A/D and D/A converters.
+The output \\(x\\) in [m] is the total motion of the plant on all its parts and details, while \\(y\\) is the measured motion with a measured value \\(y\_m\\) measured on a selected location in the plant.
+This measured is compared with \\(r\_f\\), which is the reference \\(r\\) after filtering.
+The result of this comparison is used as input for the feedback controller.
+
+
+
+The transfer function of any input to any output in a closed-loop feedback controlled dynamic system is equal to the forward path from the input to the output divided by one plus the transfer function of the total feedback path.
+
+
+
+
+
+{{< figure src="/ox-hugo/schmidt20_feedback_control_diagram.svg" caption="Figure 6: Block diagram of a SISO feedback controlled motion system." >}}
+
+In control design, one has the freedom to choose \\(F(s)\\) and particularly \\(C\_{fb}(s)\\) such that the total transfer function fulfills the desired specifications.
+Feedback control allows to directly place the system poles at values that are more useful for the operation of the motion system that their natural locations.
+This enables a faster response of the system with adequate damping and also enable unstable plants to be stabilized.
+
+The input filter does not contribute to this important aspect of feedback.
+It is mainly used to present unwanted signals from entering the system.
+This can be signals that drive the system into its "incapability" region where the system can no longer perform as required due to limitations in the hardware.
+
+
+
+Feedback is an addition to feedforward control with the following benefits:
+
+- **Stabilization of unstable systems**: As feedback control enables to determine the place of the closed-loop poles of the controlled system, unstable poles can be stabilised.
+- **Reduction of the effect of disturbances**: Disturbances of the controlled motion system are observed in the sensor signal, and therefore the feedback controller can compensate for them.
+- **Handling of uncertainties**: Feedback controlled systems can also be designed for _robustness_, which means that the stability and performance requirements are guaranteed even for parameter variations of the controlled mechatronic system.
+
+
+
+
+
+Also, some pitfalls have to be dealt with:
+
+- **A sensor is required**: The feedback loop is closed, based on the information from a sensor. Therefore, feedback control can be only as good as the quality of the sensor signal allows. In precision positioning systems accurate sensors are required with high resolution and fast response, which are very costly. The measurement and sensing system often takes a substantial part of the total systems budget.
+- **Limited reaction speed**: A feedback controller only reacts on difference between the reference signal and the measured system status, which means that the error has to occur first before the controller can correct for it.
+- **Feedback of noise**: By closing the loop, the positioning noise of the motion system as well as sensor noise are also fed back, which has to be considered at the system and control design.
+- **Can introduce instability**: Just as feedback control can stabilize an unstable system, it can also destabilize a stable plant.
+- **Can increase errors**: With higher order systems feedback will reduce errors in the frequency band where the loop-gain is larger than one and increase errors just outside that band.
+
+
+
+
+#### Summary {#summary}
+
+
+
+ Table 4:
+ Summary of Feedback and Feedforward control
+
+
+| | **Advantages** | **Limitations** |
+|-----------------|-----------------------------------------|--------------------------------------------------------------|
+| **Feedback** | Stabilization of unstable systems | A sensor is required |
+| | Reduction of the effect of disturbances | Limited reaction speed |
+| | Handling of uncertainties | Feedback of noise |
+| | | Can introduce instability |
+| | | Can increase errors |
+| **Feedforward** | Less feedback required | Limitation to inverted low-pass minimum-phase characteristic |
+| | No sensor required | The plant has to be stable |
+| | Predictable movement | No compensation of model uncertainties |
+| | No introduction of instability | Can only compensate for known disturbances |
+| | No feeding back of sensor noise | |
+
+
+### Feedforward Control {#feedforward-control}
+
+
+#### Model-Based Feedforward Control {#model-based-feedforward-control}
+
+In the following an example of a model-based feedforward controller is introduced.
+The measured frequency-response of the scanning unit taken as as an example is shown in [Figure 7](#figure--fig:schmidt20-bode-plot-scanning).
+
+
+
+{{< figure src="/ox-hugo/schmidt20_bode_plot_scanning.svg" caption="Figure 7: Bode plot of a piezoelectric-actuator based scanning unit for nanometer resolution positioning. It shows the measured response (solid line) and the second order model, which is fitted for the low-frewquency system behaviour (dashed line)." >}}
+
+A mathematical model of a seconder-order mass-spring system with a force input is fitted to this measured response:
+
+\begin{equation}
+G(s) = \frac{C\_f \omega\_0^2}{s^2 + 2\xi\_f \omega\_0 s + \omega\_0^2}
+\end{equation}
+
+When positioning at high scanning frequency, the resonance at the first mode-shape of this scanning unit causes oscillations, which adversely affect the tracking accuracy.
+In order to solve this problem, a feedforward controller is designed that compensate the dynamics of the scanner by first inverting the transfer function of the plan, without changing the static gain of the positioning system.
+This means that the transfer function of the feedforward controller is:
+
+\begin{equation}
+C\_{ff}(s) = \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{\omega\_0^2}
+\end{equation}
+
+However, such controller needs to be modified in such a way that it becomes _realizable_.
+In this case, it is decided to create a resulting overall transfer function of the controller and the plant that acts like a well damped mass-spring system with the same natural frequency as the plant and an additional reduction of the excitation of high frequency eigen-modes.
+In order to realize this controller, first two poles have to be added:
+
+\begin{equation}
+C\_{ff}(s) = \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{s^2 + 2\cdot 1 \cdot \omega\_0 s + \omega\_0^2}
+\end{equation}
+
+There the damping ratio of the resulting dynamics is chosen to be \\(\xi = 1\\).
+
+This feedforward controller is basically a _notch filter_.
+In order to create an additional attenuation of higher frequency resonances due to flexible-body mode-shapes, another first-order pole is added at the first eigenfrequency:
+
+\begin{equation}
+C\_{ff}(s) = \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{(s + \omega\_0)(s^2 + 2\omega\_0 s + \omega\_0^2)}
+\end{equation}
+
+Then this controller is connected in series with the scanning unit, the anti-resonance of the controller and the resonance of the piezo-scanner cancel each other out:
+
+\begin{align}
+G\_{t,ff}(s) &= G(s)G\_{ff}(s) \\\\
+ &= \frac{C\_f}{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2} \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{(s + \omega\_0){s^2 + 2 \omega\_0 s + \omega\_0^2}} \\\\
+ &= \frac{C\_f}{(s + \omega\_0){s^2 + 2 \omega\_0 s + \omega\_0^2}}
+\end{align}
+
+The bode plot of the resulting dynamics is shown in [Figure 8](#figure--fig:schmidt20-bode-plot-feedfoward-example).
+The controlled system has low-pass characteristics, rolling of at the scanner's natural frequency.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg" caption="Figure 8: Bode plot of the feedforward-controlled scanning unit" >}}
+
+
+#### Input-Shaping {#input-shaping}
+
+Another often applied control method is _input-shaping_.
+Instead of applying a filter in the frequency domain, with this method the reference signal is modified in the time-domain.
+As an example, the piezoelectric actuator driven scanning unit is used.
+When applying a step signal to the scanning unit, it would start of oscillate at its natural frequency.
+In a first approximation, the scanner can be assumed to behave like a linear system, which means that a reduction of the input step stimulus by a factor of two would result in a reduction of the amplitude of the response by the same factor two.
+
+The idea is that instead of applying one step, two steps with half amplitude are applied with the second step delayed by half the period of the scanner's resonance frequency.
+The oscillation caused by each individual step are 180 degrees out of phase and cancel each other out.
+This method is clearly very different form pole-zero cancellation.
+In the frequency domain, these sampled adaptations to the input create a frequency spectrum with a multiple of notch filters at the harmonic of the frequency where these adaptations are applied.
+
+Applying input-shaping to the triangular scanning signal results in the introduction of a plateau instead of the sharp peak, where the width of the plateau corresponds to half the period of the scanner's resonance as can be seen in [Figure 9](#figure--fig:schmidt20-input-shaping-example).
+
+
+
+{{< figure src="/ox-hugo/schmidt20_input_shaping_example.svg" caption="Figure 9: Input-shaping control of the triangular scanning signal in a scanning probe microscope." >}}
+
+
+#### Adaptive Feedforward Control {#adaptive-feedforward-control}
+
+Both examples of feedforward control, the model-based pole-zero cancellation and the input-shaping, only work reliably as long as the dynamic properties of the total plant are known and _remain constant_.
+There is always some deviation between the parameters in the model and the reality.
+This deviation can be partly solved by _adaptive feedforward control_, adapting the feedforward signal by measuring the real behavior of the system.
+This method requires a sensor to obtain information about the response of the system and for that reason it is often applied in combination with feedback.
+
+For repetitive processed, the required feedforward signal can be derived from the previous cycles.
+This version of adaptive feedforward control is called _Iterative Learning Control_ (ILC).
+
+
+#### Trajectory Profile Generation {#trajectory-profile-generation}
+
+The limitations of the actuators and electronics in a controlled motion system are usually related to limitations in the derivatives over time of the position:
+
+- \\(dx/dt\\) = Velocity
+- \\(d^2x/dt^2\\) = Acceleration
+- \\(d^3x/dt^3\\) = Jerk
+- \\(d^4x/dt^4\\) = Snap
+
+Of at least the levels of Jerk and preferable also Snap should be limited.
+The standard method to cope with these limitations involves shaping the input of a mechatronic motion system by means of _trajectory profile generation_ or _path-planning_.
+
+[Figure 10](#figure--fig:schmidt20-trajectory-profile) shows a fourth order trajectory profile of a displacement, which means that all derivatives including the fourth derivative are defined in the path planning.
+A third order trajectory would show a square profile for the jerk indicating an infinite Snap and the round of the acceleration would be gone.
+A second order trajectory would show a square acceleration profile with infinite Jerk and sharp edges on the velocity.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_trajectory_profile.svg" caption="Figure 10: Figure caption" >}}
+
+
+### Feedback Control {#feedback-control}
+
+Feedforward control can improve the performance of an open-loop stable system with known properties and circumstances.
+However, there is always some remaining errors than need to be corrected by feedback control.
+
+Feedback control is more complex and critical to design than feedforward control due the inherent risk of instability.
+
+> On might say that a high value of the unity-gain crossover frequency and corresponding high-frequency bandwidth limit is rather an unwanted side-effect of the required high loop-gain at lower frequencies, than a target for the design of a control system as such.
+
+
+#### Sensitivity to Input Signals {#sensitivity-to-input-signals}
+
+In general, a feedback controlled motion system is to perform a certain predetermined motion task defined by the reference input \\(r\\), while reducing the effects of other inputs like external vibrations and noise from the electronics.
+All these input signals, whether desired of undesired, are treated by the feedback loop as disturbances and it is the sensitivity of the desired output signal to all input signals that determine the performance of the feedback controller.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_feedback_full_simplified.svg" caption="Figure 11: Full and simplified representation of a feedback loop in order to determine the influence of the reference signal and most important disturbance sources on real motion output of the plant \\(x\\), the feedback controller output \\(u\\) and the measured motion output \\(y\\). \\(y\_m = y\\) when the measurement system is set at unity gain and the sensor disturbance is included in the output disturbance." >}}
+
+Several standard sensitivity functions have been defined to quantify the performance of feedback controlled dynamic systems.
+There are derived from a simplified version of the generic feedback loop as shown in [Figure 11](#figure--fig:schmidt20-feedback-full-simplified).
+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.
+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}.
+
+\begin{equation} \label{eq:gang\_of\_six}
+\begin{aligned}
+ \frac{x}{r} &= \frac{y}{r} = \frac{GCF}{1 + GC} \\\\
+-\frac{x}{n} &= -\frac{u}{d} = \frac{GC}{1 + GC} \\\\
+ \frac{x}{d} &= \frac{y}{d} = \frac{G}{1 + GC} \\\\
+ \frac{u}{r} &= \frac{CF}{1 + GC} \\\\
+ \frac{u}{n} &= \frac{C}{1 + GC} \\\\
+ \frac{y}{n} &= \frac{1}{1 + GC}
+\end{aligned}
+\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}.
+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):
+
+\begin{equation}
+S(s) = \frac{1}{1 + GC}
+\end{equation}
+
+It represents the sensitivity of the output to a disturbance on the output.
+
+Then, the _Process Sensitivity Function_ (in [m/N]):
+
+\begin{equation}
+GS(s) = \frac{G}{1 + GC}
+\end{equation}
+
+which represents the sensitivity of the output to disturbances inside and before the plant.
+
+Finally, the _Complementary Sensitivity Function_ (no unit):
+
+\begin{equation}
+T(s) = \frac{GC}{1 + GC}
+\end{equation}
+
+represents the ability of the system to follow a given reference position signal.
+For motion systems, the complementary sensitivity function is less important, because using model-based feedforward control for handling known inputs, feedback should only be applied for correction of unknown factors caused by disturbing inputs.
+For that reason the most relevant motion system performance criteria are the Sensitivity \\(S(s)\\) and the Process Sensitivity \\(GS(s)\\).
+
+\begin{equation} \label{eq:gang\_of\_four}
+\boxed{\begin{aligned}
+\frac{x}{r} &= \frac{y}{r} = -\frac{x}{n} = -\frac{u}{d} = \frac{GC}{1 + GC} \\\\
+\frac{x}{d} &= \frac{y}{d} = \frac{G}{1 + GC} \\\\
+\frac{u}{r} &= \frac{u}{n} = \frac{C}{1 + GC} \\\\
+\frac{y}{n} &= \frac{1}{1 + GC}
+\end{aligned}}
+\end{equation}
+
+A common factor in all the sensitivity functions is the _Feedback-loop Transfer Function_:
+
+\begin{equation}
+L(s) = G(s) C\_{fb}(s)
+\end{equation}
+
+The magnitude of the _Feedback-loop response_ \\(L(j\omega)\\) is called the _loop-gain_.
+
+The sensitivity functions were defined as the impact of any of the inputs to the measured output \\(y\\).
+In reality, we would be more interested in errors at the real position \\(x\\).
+We can compute the error \\(e\_{\text{real}} = r - x\\) and find:
+
+\begin{equation}
+e\_{\text{real}} = r - x = \sqrt{(S(s)r)^ 2 + (GS(s)d)^2 + (T(s)n)^2} \quad \text{[m]}
+\end{equation}
+
+This clearly points out that a high control gain \\(C(s)\\) only reduces errors related to the reference and the process disturbance but not the errors included in \\(n\\) that originate in the measurement system, because \\(T(s)\\) will approach unity with a high control gain.
+The quality of the sensor therefore determines the _minimal_ achievable error.
+
+
+#### Stability and Robustness in Feedback Control {#stability-and-robustness-in-feedback-control}
+
+To achieve sufficient robustness against instability in closed-loop feedback control of a motion system, several margins are defined that are applied in the analysis of the transfer function of the feedback loop.
+
+The condition for robustness of closed-loop stability is that the total phase-lag of the **total feedback-loop**, consisting of the feedback controller in series with the mechatronic system, must be less than 180 degrees in the frequency region of the _unity-gain cross-over frequency_.
+
+The Nyquist plot of the feedback loop, like the example shown in [Figure 12](#figure--fig:schmidt20-nyquist-plot-stable), is most appropriate to analyze the robustness on stability of a feedback system.
+It is an analysis tool that shows the frequency response of the **feedback-loop** combining magnitude and phase in one plot.
+In this figure, two graphs are shown, designed for a different purpose.
+The first graph from the left shows margin circles related to the capability of the closed-loop feedback controlled system to follow a reference according to the complementary sensitivity.
+The second graph shows a margin circle related to the capability of the closed-loop feedback controlled system to suppress disturbances according to the sensitivity function.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_nyquist_plot_stable.svg" caption="Figure 12: Nyquist plot of the feedback-loop response of a stable feedback controlled motion system. Stability is guaranteed as the \\(-1\\) point is kept at the left hand side of the feedback loop repsonse line upon passing with increased frequency, even though the phase-lag is more than 180 degrees at low frequencies." >}}
+
+Three values are shown in [Figure 12](#figure--fig:schmidt20-nyquist-plot-stable) related to the robustness of the closed-loop feedback system:
+
+- **The gain margin** determines by which factor the feedback loop gain additionally can increase before the closed-loop goes unstable.
+- **The phase margin** determines how much additional phase-lab at the unity-gain cross-over frequency is acceptable before the closed-loop system becomes unstable.
+- **The modulus margin** is defined by the closest distance in a Nyquist plot between the graph and the \\(-1\\) point. It determines the highest level of the Sensitivity \\(S(s)\\) in the frequency range where the error is increased by feedback.
+
+The robustness margins determine how much the properties of the system are allowed to change before the system becomes unstable.
+With smaller margins, the system will behave more nervous, less damped.
+Higher margins corresponds to a higher level of damping.
+
+The Nyquist plot has one significant disadvantage as it does not show directly the frequency along the plot.
+For that reason many designers prefer to use the Bode plot.
+
+Fortunately it is also possible to indicate the phase and gain margin in the Bode plot as is shown in [Figure 13](#figure--fig:schmidt20-phase-gain-margin-bode).
+
+In many not too complicated cases, these two margins are sufficient to tune a feedback motion controller.
+In more complicated control systems, it remains useful to also use the Nyquist plot as it also gives the Modulus margin.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_phase_gain_margin_bode.svg" caption="Figure 13: The gain and phase margin in the Bode plot" >}}
+
+
+### PID Feedback Control {#pid-feedback-control}
+
+
+#### PID-Control of a Compact-Disc Player {#pid-control-of-a-compact-disc-player}
+
+
+##### Relevant Sensitivity Functions {#relevant-sensitivity-functions}
+
+
+##### Proportional Feedback {#proportional-feedback}
+
+
+##### Proportional-Differential Feedback {#proportional-differential-feedback}
+
+
+##### Limiting the Differentiating Action {#limiting-the-differentiating-action}
+
+
+##### Adding I-Control {#adding-i-control}
+
+
+#### PID-Control of a Spring Supported Mass {#pid-control-of-a-spring-supported-mass}
+
+
+##### P-Control {#p-control}
+
+
+##### D-Control {#d-control}
+
+
+##### I-Control {#i-control}
+
+
+##### Sensitivity Function Graphs {#sensitivity-function-graphs}
+
+
+#### Limitations and Side Effects of PID-Feedback Control {#limitations-and-side-effects-of-pid-feedback-control}
+
+
+##### Increased Sensitivity, the Waterbed Effect {#increased-sensitivity-the-waterbed-effect}
+
+
+##### Integrator Wind-Up and Delays {#integrator-wind-up-and-delays}
+
+
+#### PID-Control of a Fourth-Order Dynamic System {#pid-control-of-a-fourth-order-dynamic-system}
+
+
+##### Controlling a Type III Dynamic System {#controlling-a-type-iii-dynamic-system}
+
+
+##### Passive Damping {#passive-damping}
+
+
+##### Shifting the Phase {#shifting-the-phase}
+
+
+#### PID-Control of a Piezoelectric Actuator {#pid-control-of-a-piezoelectric-actuator}
+
+
+##### Creating a Fourth-Order System {#creating-a-fourth-order-system}
+
+
+#### PID-Control of a Magnetic Bearing {#pid-control-of-a-magnetic-bearing}
+
+
+##### Frequency Response {#frequency-response}
+
+
+##### Positive Stiffness by P-Control {#positive-stiffness-by-p-control}
+
+
+##### D-Control and Pole Placement {#d-control-and-pole-placement}
+
+
+##### I-control for Reduced Sensitivity {#i-control-for-reduced-sensitivity}
+
+
+#### Optimisation by Loop-Shaping Design {#optimisation-by-loop-shaping-design}
+
+
+##### Optimal Value of Alpha {#optimal-value-of-alpha}
+
+
+##### Additional Low-Pass Filtering {#additional-low-pass-filtering}
+
+
+##### Notching Filters {#notching-filters}
+
+
+##### Peaking and Shelving Filters {#peaking-and-shelving-filters}
+
+
+#### Design Steps for PID-control {#design-steps-for-pid-control}
+
+
+### Digital Signal Processing - The Z-Domain {#digital-signal-processing-the-z-domain}
+
+Most modern controllers operate with digital processors in the discrete time domain, also called the _Z-domain_, which allows to create filters by combining scaled sampled data at fixed intervals.
+In many situations it is sufficient to design the system by creating the control filters in continuous-time frequency responses and use a corresponding transformation that translates the filters into their discrete-time counterparts.
+In the transition to a digital and discrete time implementation the phase lag introduced by delay and latency of the sampling, calculation and communication process needs to be considered.
+This is mostly fine when the sample frequency is very high (\\(\gg 10\\) times) in respect to the bandwidth of the controlled system.
+
+
+#### Continuous Time versus Discrete Time {#continuous-time-versus-discrete-time}
+
+In the frequency-domain a position controller acts as a filter, which attenuates or amplifies the system response and shapes the phase response of the system in certain frequency areas.
+In principle these filters, all representing a differential equation or a transfer function with poles and zeros, can be implemented in analogue electronics or as a digital filter that runs on a digital real-time hardware computing platform.
+
+The implementation of a filter in analogue electronics, allows the realization of very high bandwidth frequencies at low cost.
+However, analogue controllers have three important disadvantages:
+
+- its properties can be less consistent over time and also sensitive to changing environmental conditions such as temperature
+- each filter parameter has to be adjusted in hardware by selecting discrete passive components, which cannot be adapted easily during operation
+- the noise of the filter and its propagation has to be considered in the design process
+
+The digital implementation of filters overcome these problems as well as allows more complex algorithm such as adaptive control, real-time optimization, nonlinear control and learning control methods.
+
+In [Figure 14](#figure--fig:schmidt20-digital-implementation) two elements were introduced, the _analogue-to-digital converter_ (ADC) and the _digital-to-analogue converter_ (DAC), which together transfer the signals between the analogue and the digital domain.
+
+
+
+{{< figure src="/ox-hugo/schmidt20_digital_implementation.svg" caption="Figure 14: Overview of a digital implementation of a feedback controller, emphasising the analog-to-digital and digital-to-analog converters with their required analogue filters" >}}
+
+Anti-aliasing filter is needed at the input of the ADC to limit the frequency range at the input to less than half the sampling frequency, according to the Nyquist-Shannon sampling theorem.
+
+A DAC needs a filter (called a reconstruction of _anti-imaging_ filter) at its analogue output, because the digital data are provided at fixed intervals after which they are kept constant between each sampling moments by means of a zero-order hold element.
+
+The selection of the resolution of ADCs and DACs determines the resolution and achievable precision of the controlled motion system, while the choice of the sampling time determines the maximum frequency that the filter can correctly handles.
+
+
+#### Sampling of Continuous Signals {#sampling-of-continuous-signals}
+
+
+#### Digital Number Representation {#digital-number-representation}
+
+For the implementation of digital algorithms on digital computing platforms, two representation forms of digital number exist, floating point or fixed point.
+
+Fixed point arithmetic has been favored in the past, because of the less complex DSP processor structure.
+A main drawback is, that the developer must pay attention to truncation, overflow, underflow and round-off errors that occur during mathematical operations.
+Fixed points numbers are equally spaced over the whole range, separated by the gap which is denoted by the least significant bit.
+The two's complement is the most used format for representing positive and negative numbers.
+For representing a fixed point fractional number of two's complement notation, the so called \\(Q\_{m,n}\\) format is often used (see [Figure 15](#figure--fig:schmidt20-digital-number-representation)).
+\\(m\\) denotes the number of integer bits and \\(n\\) denotes the number of fractional bits.
+\\(m+n+1=N\\) bits are necessary to store a signed \\(Q\_{m,n}\\) number.
+If the binary representation is given, the decimal value can be calculated to:
+
+\begin{equation}
+x = \frac{1}{2^n} \left( -2^{N-1 }b\_{N-1} + \sum\_{i=0}^{N-2} 2^i b\_i \right)
+\end{equation}
+
+where \\(b\\) indicate the bit position, starting with \\(b\_0\\) from the right in [Figure 15](#figure--fig:schmidt20-digital-number-representation).
+
+
+
+{{< figure src="/ox-hugo/schmidt20_digital_number_representation.svg" caption="Figure 15: Example of a \\(Q\_{m.n}\\) fixed point number representation and a single precision floating point number" >}}
+
+Floating point arithmetic has a higher dynamic range than fixed point arithmetic, given by the largest and smallest number that can be represented, has a higher precision due to the smaller gaps between adjacent numbers, less quantization noise, and it is easier to handle in terms of programming.
+A floating point number is represented by a multiplication of a _mantissa_ \\(M\\) with a _base_ \\(b\\) to the power of the _exponent_ \\(q\\):
+
+\begin{equation}
+x = -1^i M b^q
+\end{equation}
+
+A common used standard for representing floating point numbers defines basic formats, single precision (32 bit wide format) and double precision (64 bit wide format).
+The single precision format with a base of 2 is chosen as an example.
+The decimal value can be calculated by:
+
+\begin{equation}
+x = -1^i M 2^{E-127}
+\end{equation}
+
+The term \\(E\\) in the exponent is stored as a positive number ranging from \\(0 \le E < 256\\) with 8 bits.
+An offset of \\(-127\\) is added in order to allow very small to very large numbers.
+The decimal value is normalized, meaning that only one nonzero digit is noted at the left of the decimal point.
+The storage register is divided into three groups, as shown in [Figure 15](#figure--fig:schmidt20-digital-number-representation).
+1 bit represents the sign, the exponent term \\(E\\) is represented by 8 bits, and the mantissa is stored in 23 bits.
+
+
+#### Digital Filter Theory {#digital-filter-theory}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_s_z_planes.svg" caption="Figure 16: Corresponding points and area in s and z planes" >}}
+
+
+#### Finite Impulse Response (FIR) Filter {#finite-impulse-response--fir--filter}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_transversal_filter_structure.svg" caption="Figure 17: Transversal filter structure of a FIR filter. The term \\(z^{-1}\\) each represent a sampling period which means that \\(b\_0\\) is the gain of the last sample, \\(b\_1\\) is the gain of the precious sample etcetera." >}}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_optimized_fir_filter_structure.svg" caption="Figure 18: Optimized FIR filter structure with symmetric filter coefficients" >}}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_dir_filter_cascaded_sos.svg" caption="Figure 19: Higher-order FIR filter realization with cascade SOS filter structures" >}}
+
+
+#### Infinite Impulse Response (IIR) Filter {#infinite-impulse-response--iir--filter}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_irr_structure.svg" caption="Figure 20: (a:) IIR structure in DF-1 realization and (b:) IIR structure in DF-2 realization" >}}
+
+
+
+{{< figure src="/ox-hugo/schmidt20_irr_sos_structure.svg" caption="Figure 21: IIR SOS structure in DF-2 realization" >}}
+
+
+#### Converting Continuous to Discrete-Time Filters {#converting-continuous-to-discrete-time-filters}
+
+
+### State-Space Feedback Control {#state-space-feedback-control}
+
+
+#### State-Space in Relation to Motion Control {#state-space-in-relation-to-motion-control}
+
+
+##### Mechanical Dynamic System in State-Space {#mechanical-dynamic-system-in-state-space}
+
+
+##### PID-Control Feedback in State-Space {#pid-control-feedback-in-state-space}
+
+
+#### State Feedback {#state-feedback}
+
+
+##### System Identification {#system-identification}
+
+
+##### State Estimation {#state-estimation}
+
+
+##### Additional Remarks on State-Space Control {#additional-remarks-on-state-space-control}
+
+
+### Conclusion on Motion Control {#conclusion-on-motion-control}
+
+
+
+Motion control is essential for Precision Mechatronic Systems and consists of two complementary elements:
+
+- **Extremely accurate Feedforward Control** is required when the motion system must execute a user defined motion to within maximum user defined position error limits.
+ The forces required for this task are known upfront and can generally not be generated by feedback control only given the limited allowable position error and physical limitations on achievable loop-gain of feedback control.
+- **High Performance Feedback Control** is required when the motion system must be able to follow an unknown motion of a target, stabilize an otherwise unstable system and reduce the impact of disturbing forces and vibrations, such that the position error remains below a maximum user defined level.
+ Due to the fact that a feedback controller can become unstable, sufficient robustness must be guaranteed.
+ These is a conflicting relation between stability and performance.
+
+
+
+
+## Electromechanic Actuators {#electromechanic-actuators}
+
+
+### Introduction {#introduction}
+
+
+### Electromagnetics {#electromagnetics}
+
+
+#### Hopkinson's Law {#hopkinson-s-law}
+
+
+##### Practical Aspects of Hopkinson's Law {#practical-aspects-of-hopkinson-s-law}
+
+
+##### Magnetic Energy {#magnetic-energy}
+
+
+#### Ferromagnetic Materials {#ferromagnetic-materials}
+
+
+##### Coil with Ferromagnetic Yoke {#coil-with-ferromagnetic-yoke}
+
+
+##### Magnetisation Curve {#magnetisation-curve}
+
+
+##### Permanent Magnets {#permanent-magnets}
+
+
+#### Creating a Magnetic Field in an Air-Gap {#creating-a-magnetic-field-in-an-air-gap}
+
+
+##### Optimal Use of Permanent Magnet Material {#optimal-use-of-permanent-magnet-material}
+
+
+##### Flat Magnets Reduce Fringing Flux {#flat-magnets-reduce-fringing-flux}
+
+
+##### Low Cost Loudspeaker Magnet {#low-cost-loudspeaker-magnet}
+
+
+### Lorentz Actuator {#lorentz-actuator}
+
+
+#### Lorentz Force {#lorentz-force}
+
+
+##### Force from Flux-Linkage {#force-from-flux-linkage}
+
+
+#### The Lorentz actuator as a Generator {#the-lorentz-actuator-as-a-generator}
+
+
+#### Improving the Force of a Lorentz Actuator {#improving-the-force-of-a-lorentz-actuator}
+
+
+##### The Moving-Coil Loudspeaker Actuator {#the-moving-coil-loudspeaker-actuator}
+
+
+#### Position Dependency of the Lorentz Force {#position-dependency-of-the-lorentz-force}
+
+
+##### Over-Hung and Under-Hung Coil {#over-hung-and-under-hung-coil}
+
+
+#### Electronic Commutation {#electronic-commutation}
+
+
+##### Three-Phase Electronic Control {#three-phase-electronic-control}
+
+
+#### Figures of Merit of a Lorentz Actuator {#figures-of-merit-of-a-lorentz-actuator}
+
+
+### Variable Reluctance Actuation {#variable-reluctance-actuation}
+
+
+#### Reluctance Force in Lorentz Actuator {#reluctance-force-in-lorentz-actuator}
+
+
+##### Eddy-Current Ring {#eddy-current-ring}
+
+
+##### Ironless Stator {#ironless-stator}
+
+
+#### Analytical Derivation of Reluctance Force {#analytical-derivation-of-reluctance-force}
+
+
+#### Variable Reluctance Actuator. {#variable-reluctance-actuator-dot}
+
+
+##### Electromagnetic Relay {#electromagnetic-relay}
+
+
+##### Magnetic Attraction Force {#magnetic-attraction-force}
+
+
+#### Permanent Magnet Biased Reluctance Actuator {#permanent-magnet-biased-reluctance-actuator}
+
+
+##### Double Variable Reluctance Actuator {#double-variable-reluctance-actuator}
+
+
+##### Constant Common Flux {#constant-common-flux}
+
+
+##### Combining two Sources of Magnetic Flux {#combining-two-sources-of-magnetic-flux}
+
+
+##### Hybrid Force Calculation {#hybrid-force-calculation}
+
+
+##### Magnetic Bearings {#magnetic-bearings}
+
+
+#### Active Linearisation of the Reluctance Force {#active-linearisation-of-the-reluctance-force}
+
+
+### Application of Electromagnetic Actuators {#application-of-electromagnetic-actuators}
+
+
+#### Electrical Interface Properties {#electrical-interface-properties}
+
+
+##### Dynamic Effects of Self-Inductance {#dynamic-effects-of-self-inductance}
+
+
+##### Limitation of the \`\`Jerk'' {#limitation-of-the-jerk}
+
+
+##### Electromagnetic Damping {#electromagnetic-damping}
+
+
+#### Comparison of three Electromagnetic Actuators {#comparison-of-three-electromagnetic-actuators}
+
+
+##### Force-Constants {#force-constants}
+
+
+##### Figures of Merit Including Mass {#figures-of-merit-including-mass}
+
+
+##### Stiffness {#stiffness}
+
+
+##### Repeatability and Predictability {#repeatability-and-predictability}
+
+
+##### Dynamic Effects on the Control Loop {#dynamic-effects-on-the-control-loop}
+
+
+### Piezoelectric Actuators {#piezoelectric-actuators}
+
+
+#### Piezoelectricity {#piezoelectricity}
+
+
+##### Poling {#poling}
+
+
+##### Tapping the Bound Charge by Electrodes {#tapping-the-bound-charge-by-electrodes}
+
+
+#### Transducer Models {#transducer-models}
+
+
+#### Nonlinearity of Piezoelectric Actuators {#nonlinearity-of-piezoelectric-actuators}
+
+
+##### Creep {#creep}
+
+
+##### Hysteresis {#hysteresis}
+
+
+##### Aging {#aging}
+
+
+#### Mechanical Considerations {#mechanical-considerations}
+
+
+##### Piezoelectric Actuator Stiffness {#piezoelectric-actuator-stiffness}
+
+
+##### Actuator Types {#actuator-types}
+
+
+##### Long Range Actuation by Friction {#long-range-actuation-by-friction}
+
+
+##### Actuator Integration {#actuator-integration}
+
+
+##### Mechanical Amplification {#mechanical-amplification}
+
+
+##### Multiple Motion Directions by Stacking {#multiple-motion-directions-by-stacking}
+
+
+#### Electrical Considerations {#electrical-considerations}
+
+
+##### Charge vs. Voltage Control {#charge-vs-dot-voltage-control}
+
+
+##### Self-Sensing Actuation {#self-sensing-actuation}
+
+
+### Choosing the right Actuator Type {#choosing-the-right-actuator-type}
+
+
+## Analogue Electronics in Mechatronic Systems {#analogue-electronics-in-mechatronic-systems}
+
+
+### Introduction {#introduction}
+
+
+### Passive Linear Electronics {#passive-linear-electronics}
+
+
+#### Network Theory and Laws {#network-theory-and-laws}
+
+
+##### Voltage Source {#voltage-source}
+
+
+##### Current Source {#current-source}
+
+
+##### Theorem of Norton and Thevenin {#theorem-of-norton-and-thevenin}
+
+
+##### Kirchhoff's Laws {#kirchhoff-s-laws}
+
+
+##### Impedances in Series or Parallel {#impedances-in-series-or-parallel}
+
+
+##### Voltage Divider {#voltage-divider}
+
+
+##### Maximum Power of a Real Voltage Source {#maximum-power-of-a-real-voltage-source}
+
+
+#### Impedances in Electronic Circuits {#impedances-in-electronic-circuits}
+
+
+##### Resistors {#resistors}
+
+
+##### Capacitors {#capacitors}
+
+
+##### Inductors {#inductors}
+
+
+#### Passive Filters {#passive-filters}
+
+
+##### Passive First-Order RC-Filters {#passive-first-order-rc-filters}
+
+
+##### Passive Higher-Order RC-Filters {#passive-higher-order-rc-filters}
+
+
+##### Passive LCR-Filters {#passive-lcr-filters}
+
+
+#### Mechanical-Electrical Dynamic Analogy {#mechanical-electrical-dynamic-analogy}
+
+
+### Semiconductors and Active Electronics {#semiconductors-and-active-electronics}
+
+
+#### Basic Discrete Semiconductors {#basic-discrete-semiconductors}
+
+
+##### Semiconductor Diode {#semiconductor-diode}
+
+
+##### Bipolar Transistors {#bipolar-transistors}
+
+
+##### MOSFET {#mosfet}
+
+
+##### Other Discrete Semiconductors {#other-discrete-semiconductors}
+
+
+#### Single Transistor Linear Amplifiers {#single-transistor-linear-amplifiers}
+
+
+##### Emitter Follower {#emitter-follower}
+
+
+##### Voltage Amplifier {#voltage-amplifier}
+
+
+##### Differential Amplifier {#differential-amplifier}
+
+
+#### Operational Amplifier {#operational-amplifier}
+
+
+##### Basic Operational Amplifier Design {#basic-operational-amplifier-design}
+
+
+##### Operational Amplifier with Feedback {#operational-amplifier-with-feedback}
+
+
+#### Linear Amplifiers with Operational Amplifiers {#linear-amplifiers-with-operational-amplifiers}
+
+
+##### Design Rules {#design-rules}
+
+
+##### Non-Inverting Amplifier {#non-inverting-amplifier}
+
+
+##### Inverting Amplifier {#inverting-amplifier}
+
+
+##### Adding and Subtracting Signals {#adding-and-subtracting-signals}
+
+
+##### Transimpedance Amplifier {#transimpedance-amplifier}
+
+
+##### Transconductance Amplifier {#transconductance-amplifier}
+
+
+#### Active Electronic Filters {#active-electronic-filters}
+
+
+##### Integrator and First-Order Low-Pass {#integrator-and-first-order-low-pass}
+
+
+##### Differentiator and First-Order High-Pass {#differentiator-and-first-order-high-pass}
+
+
+#### Analogue PID-Controller {#analogue-pid-controller}
+
+
+##### PID Transfer Function {#pid-transfer-function}
+
+
+##### PID Control Gains {#pid-control-gains}
+
+
+##### High-Speed PID-Control {#high-speed-pid-control}
+
+
+#### Higher-order Electronic Filters {#higher-order-electronic-filters}
+
+
+##### Second-Order Low-Pass Filter {#second-order-low-pass-filter}
+
+
+##### Different Types of Active Filters {#different-types-of-active-filters}
+
+
+#### Ideal and Real Operational Amplifiers {#ideal-and-real-operational-amplifiers}
+
+
+##### Open-Loop Voltage Gain {#open-loop-voltage-gain}
+
+
+##### Dynamic Limitations {#dynamic-limitations}
+
+
+##### Input Related Limitations {#input-related-limitations}
+
+
+##### Power Supply and Output Limitations {#power-supply-and-output-limitations}
+
+
+#### Closing Remarks on Low-Power Electronics {#closing-remarks-on-low-power-electronics}
+
+
+### Power Amplifiers for Motion Control {#power-amplifiers-for-motion-control}
+
+
+#### Required Properties for Actuator Drive {#required-properties-for-actuator-drive}
+
+
+##### Power Delivery Capability {#power-delivery-capability}
+
+
+##### Dynamic Properties {#dynamic-properties}
+
+
+##### Linearity, Freedom of Distortion {#linearity-freedom-of-distortion}
+
+
+##### Voltage or Current Drive {#voltage-or-current-drive}
+
+
+##### Efficiency {#efficiency}
+
+
+##### Four-Quadrant Operation {#four-quadrant-operation}
+
+
+##### Preferred Power Amplifier Principle {#preferred-power-amplifier-principle}
+
+
+#### Switched-Mode Power Amplifiers {#switched-mode-power-amplifiers}
+
+
+##### Power MOSFET, a Fast High-Power Switch {#power-mosfet-a-fast-high-power-switch}
+
+
+##### Switching Sequence Generation {#switching-sequence-generation}
+
+
+##### Voltage Drive Amplifier {#voltage-drive-amplifier}
+
+
+##### Energy Flow in the Power Output Stage {#energy-flow-in-the-power-output-stage}
+
+
+##### Intermediate Conclusions and Other Issues {#intermediate-conclusions-and-other-issues}
+
+
+##### Driving the Power MOSFETs {#driving-the-power-mosfets}
+
+
+##### Charge Pumping {#charge-pumping}
+
+
+##### H-Bridge Configuration {#h-bridge-configuration}
+
+
+##### Output Filter {#output-filter}
+
+
+#### Resonant-Mode Power Amplifiers {#resonant-mode-power-amplifiers}
+
+
+##### Switching Sequence of the Output Stage {#switching-sequence-of-the-output-stage}
+
+
+##### Lossless Current Sensing {#lossless-current-sensing}
+
+
+#### Three-Phase Amplifiers {#three-phase-amplifiers}
+
+
+##### Concept of Three-Phase Amplifier {#concept-of-three-phase-amplifier}
+
+
+##### Three-Phase Switching Power Stages {#three-phase-switching-power-stages}
+
+
+#### Some Last Remarks on Power Electronics {#some-last-remarks-on-power-electronics}
+
+
+## Optics in Mechatronic Systems {#optics-in-mechatronic-systems}
+
+
+### Introduction {#introduction}
+
+
+### Properties of Light and Light Sources {#properties-of-light-and-light-sources}
+
+
+#### Light Generation by Thermal Radiation {#light-generation-by-thermal-radiation}
+
+
+#### Photons by Electron Energy State Variation {#photons-by-electron-energy-state-variation}
+
+
+##### Light Emitting Diodes {#light-emitting-diodes}
+
+
+##### Laser as an Ideal Light Source {#laser-as-an-ideal-light-source}
+
+
+#### Useful Power from a Light Source {#useful-power-from-a-light-source}
+
+
+##### Radiant Emittance and Irradiance {#radiant-emittance-and-irradiance}
+
+
+##### Radiance {#radiance}
+
+
+##### Etendue {#etendue}
+
+
+### Reflection and Refraction {#reflection-and-refraction}
+
+
+#### Reflection and Refraction according to the Least Time {#reflection-and-refraction-according-to-the-least-time}
+
+
+##### Partial Reflection and Refraction {#partial-reflection-and-refraction}
+
+
+#### Concept of Wavefront {#concept-of-wavefront}
+
+
+##### A Wavefront is Not Real {#a-wavefront-is-not-real}
+
+
+### Geometric Optics {#geometric-optics}
+
+
+#### Imaging with Refractive Lens Elements {#imaging-with-refractive-lens-elements}
+
+
+##### Sign Conventions {#sign-conventions}
+
+
+##### Real Lens Elements {#real-lens-elements}
+
+
+##### Magnification {#magnification}
+
+
+#### Aberrations {#aberrations}
+
+
+##### Spherical Aberration {#spherical-aberration}
+
+
+##### Astigmatism {#astigmatism}
+
+
+##### Coma {#coma}
+
+
+##### Geometric and Chromatic Aberrations {#geometric-and-chromatic-aberrations}
+
+
+#### Combining Multiple Optical Elements {#combining-multiple-optical-elements}
+
+
+##### Combining Two Positive Lenses {#combining-two-positive-lenses}
+
+
+#### Aperture Stop and Pupil {#aperture-stop-and-pupil}
+
+
+#### Telecentricity {#telecentricity}
+
+
+##### Pupil, Aperture and Lens Dimensions {#pupil-aperture-and-lens-dimensions}
+
+
+##### Practical Applications and Constraints {#practical-applications-and-constraints}
+
+
+### Physical Optics {#physical-optics}
+
+
+#### Polarisation {#polarisation}
+
+
+##### Birefringence {#birefringence}
+
+
+#### Interference {#interference}
+
+
+##### Fabry-Perot Interferometer {#fabry-perot-interferometer}
+
+
+#### Diffraction {#diffraction}
+
+
+##### Amplitude gratings {#amplitude-gratings}
+
+
+##### Phase Gratings {#phase-gratings}
+
+
+##### Direction of the Incoming Light {#direction-of-the-incoming-light}
+
+
+#### Imaging Quality based on Diffraction {#imaging-quality-based-on-diffraction}
+
+
+##### Numerical Aperture and f-Number {#numerical-aperture-and-f-number}
+
+
+##### Depth of Focus {#depth-of-focus}
+
+
+### Adaptive Optics {#adaptive-optics}
+
+
+#### Thermal Effects in Optical Imaging Systems {#thermal-effects-in-optical-imaging-systems}
+
+
+#### Correcting the Wavefront {#correcting-the-wavefront}
+
+
+##### Zernike Polynomials {#zernike-polynomials}
+
+
+##### Correcting Zernikes by Adaptive Optics {#correcting-zernikes-by-adaptive-optics}
+
+
+#### Adaptive Optics Principle of Operation {#adaptive-optics-principle-of-operation}
+
+
+##### Active Mirrors {#active-mirrors}
+
+
+## Measurement in Mechatronic Systems {#measurement-in-mechatronic-systems}
+
+
+### Introduction {#introduction}
+
+
+#### Measurement Systems {#measurement-systems}
+
+
+#### Errors in Measurement Systems, Uncertainty {#errors-in-measurement-systems-uncertainty}
+
+
+##### Uncertainty in Traceable Measurements {#uncertainty-in-traceable-measurements}
+
+
+#### Functional Model of a Measurement System Element {#functional-model-of-a-measurement-system-element}
+
+
+### Dynamic Error Budgeting {#dynamic-error-budgeting}
+
+
+#### Error Statistics in Repeated Measurements {#error-statistics-in-repeated-measurements}
+
+
+#### The Normal Distribution {#the-normal-distribution}
+
+
+#### Combining Different Error Sources {#combining-different-error-sources}
+
+
+#### Power Spectral Density and Cumulative Power {#power-spectral-density-and-cumulative-power}
+
+{{< figure src="/ox-hugo/schmidt20_psd_cps.svg" >}}
+
+
+#### Do not use the Cumulative Amplitude Spectrum! {#do-not-use-the-cumulative-amplitude-spectrum}
+
+
+#### Variations in Dynamic Error Budgeting {#variations-in-dynamic-error-budgeting}
+
+
+#### Sources of Noise and Disturbances {#sources-of-noise-and-disturbances}
+
+
+##### Mechanical Noise {#mechanical-noise}
+
+
+##### Electronic Noise {#electronic-noise}
+
+
+### Sensor Signal Sensitivity {#sensor-signal-sensitivity}
+
+
+#### Sensing Element {#sensing-element}
+
+
+#### Converting an Impedance into an Electric Signal {#converting-an-impedance-into-an-electric-signal}
+
+
+##### Wheatstone Bridge {#wheatstone-bridge}
+
+
+#### Electronic Interconnection of Sensitive Signals {#electronic-interconnection-of-sensitive-signals}
+
+{{< figure src="/ox-hugo/schmidt20_signal_interference.svg" >}}
+
+{{< figure src="/ox-hugo/schmidt20_cable_topology.svg" >}}
+
+{{< figure src="/ox-hugo/schmidt20_electrostatic_shielding.svg" >}}
+
+
+##### Magnetic Disturbances {#magnetic-disturbances}
+
+
+##### Capacitive Disturbances {#capacitive-disturbances}
+
+
+##### Ground Loops {#ground-loops}
+
+{{< figure src="/ox-hugo/schmidt20_ground_loops.svg" >}}
+
+
+### Signal Conditioning {#signal-conditioning}
+
+
+#### Instrumentation Amplifier {#instrumentation-amplifier}
+
+
+#### Filtering and Modulation {#filtering-and-modulation}
+
+
+##### AM with Square Wave Carrier {#am-with-square-wave-carrier}
+
+
+##### AM with Sinusoidal Carrier {#am-with-sinusoidal-carrier}
+
+
+### Signal Processing {#signal-processing}
+
+
+#### Schmitt Trigger {#schmitt-trigger}
+
+{{< figure src="/ox-hugo/schmidt20_schmitt_trigger.svg" >}}
+
+
+#### Digital Representation of Measurement Data {#digital-representation-of-measurement-data}
+
+
+##### Gray Code {#gray-code}
+
+{{< figure src="/ox-hugo/schmidt20_gray_code.svg" >}}
+
+
+##### Sampling of Analogue Values {#sampling-of-analogue-values}
+
+
+##### Nyquist-Shannon Theorem {#nyquist-shannon-theorem}
+
+
+##### Filtering to Prevent Aliasing {#filtering-to-prevent-aliasing}
+
+
+#### Analogue-to-Digital Converters {#analogue-to-digital-converters}
+
+
+##### Dual-Slope ADC {#dual-slope-adc}
+
+
+##### Successive-Approximation ADC {#successive-approximation-adc}
+
+
+##### Sigma-Delta ADC {#sigma-delta-adc}
+
+
+##### ADC Latency in a Feedback Loop {#adc-latency-in-a-feedback-loop}
+
+
+#### Connecting the Less Sensitive Elements {#connecting-the-less-sensitive-elements}
+
+
+##### Characteristic Impedance {#characteristic-impedance}
+
+
+##### Non-Galvanic Connection {#non-galvanic-connection}
+
+
+### Short-Range Motion Sensors {#short-range-motion-sensors}
+
+
+#### Optical Sensors {#optical-sensors}
+
+
+##### Position Sensitive Detectors {#position-sensitive-detectors}
+
+
+##### Optical Deflectometer {#optical-deflectometer}
+
+
+#### Capacitive Position Sensors {#capacitive-position-sensors}
+
+
+##### Linearising by Differential Measurement {#linearising-by-differential-measurement}
+
+
+##### Accuracy Limits and Improvements {#accuracy-limits-and-improvements}
+
+
+##### Sensing to Conductive Moving Plate {#sensing-to-conductive-moving-plate}
+
+
+#### Inductive Position Sensors {#inductive-position-sensors}
+
+
+##### Linear Variable Differential Transformer {#linear-variable-differential-transformer}
+
+
+##### Eddy-Current Sensors {#eddy-current-sensors}
+
+
+#### Pneumatic Proximity Sensor or Air-Gage {#pneumatic-proximity-sensor-or-air-gage}
+
+
+### Measurement of Mechanical Dynamics {#measurement-of-mechanical-dynamics}
+
+
+#### Measurement of Force and Strain {#measurement-of-force-and-strain}
+
+
+##### Strain Gages {#strain-gages}
+
+
+##### Fibre Bragg Grating Strain Measurement {#fibre-bragg-grating-strain-measurement}
+
+
+#### Velocity Measurement {#velocity-measurement}
+
+
+##### Geophone {#geophone}
+
+
+#### Accelerometers {#accelerometers}
+
+
+##### Closed-Loop Feedback Accelerometer {#closed-loop-feedback-accelerometer}
+
+
+##### Piezoelectric Accelerometer {#piezoelectric-accelerometer}
+
+
+##### MEMS Accelerometer {#mems-accelerometer}
+
+
+### Optical Long-Range Incremental Position Sensors {#optical-long-range-incremental-position-sensors}
+
+
+#### Linear Optical Encoders {#linear-optical-encoders}
+
+
+##### Interpolation {#interpolation}
+
+
+##### Vernier Resolution Enhancement {#vernier-resolution-enhancement}
+
+
+##### Interferometric Optical Encoder {#interferometric-optical-encoder}
+
+
+##### Concluding Remarks on Linear Encoders {#concluding-remarks-on-linear-encoders}
+
+
+#### Laser Interferometer Measurement Systems {#laser-interferometer-measurement-systems}
+
+
+##### Homodyne Distance Interferometry {#homodyne-distance-interferometry}
+
+
+##### Heterodyne Distance Interferometry {#heterodyne-distance-interferometry}
+
+
+##### Measurement Uncertainty {#measurement-uncertainty}
+
+
+##### Configurations {#configurations}
+
+
+##### Multi-Axis Laser Interferometers {#multi-axis-laser-interferometers}
+
+
+#### Mechanical Aspects {#mechanical-aspects}
+
+
+##### Abbe Error {#abbe-error}
+
+
+## Precision Positioning in Wafer Scanners {#precision-positioning-in-wafer-scanners}
+
+
+### Introduction {#introduction}
+
+
+### The Waferscanner {#the-waferscanner}
+
+
+#### Requirements on Precision {#requirements-on-precision}
+
+
+### Dynamic Architecture {#dynamic-architecture}
+
+
+#### Balance Masses {#balance-masses}
+
+
+#### Vibration Isolation {#vibration-isolation}
+
+
+##### Eigendynamics of the Sensitive Parts {#eigendynamics-of-the-sensitive-parts}
+
+
+### Zero-Stiffness Stage Actuation {#zero-stiffness-stage-actuation}
+
+
+#### Waferstage Actuation Concept {#waferstage-actuation-concept}
+
+
+##### Waferstepper Long-Range Lorentz Actuator {#waferstepper-long-range-lorentz-actuator}
+
+
+##### Multi-Axis Positioning {#multi-axis-positioning}
+
+
+##### Long- and Short-Stroke Actuation {#long-and-short-stroke-actuation}
+
+
+#### Full Magnetic Levitation {#full-magnetic-levitation}
+
+
+#### Acceleration Limits of Reticle Stage {#acceleration-limits-of-reticle-stage}
+
+
+### Position Measurement {#position-measurement}
+
+
+#### Alignment Sensor {#alignment-sensor}
+
+
+#### Keeping the Wafer in Focus {#keeping-the-wafer-in-focus}
+
+
+#### Dual-Stage Measurement and Exposure {#dual-stage-measurement-and-exposure}
+
+
+#### Long-Range Incremental Measurement System {#long-range-incremental-measurement-system}
+
+
+##### Real-Time Metrology Loop {#real-time-metrology-loop}
+
+
+### Motion Control {#motion-control}
+
+
+#### Feedforward and Feedback Control {#feedforward-and-feedback-control}
+
+
+##### Thermal, The Final Frontier {#thermal-the-final-frontier}
+
+
+#### The Mass Dilemma {#the-mass-dilemma}
+
+> A reduced mass requires improved system dynamics that enable a higher control bandwidth to compensate for the increase sensitivity for external vibrations.
+
+
+### Future Developments in IC Lithography {#future-developments-in-ic-lithography}
+
+
+### Main Design Rules for Precision {#main-design-rules-for-precision}
+
+
+## Bibliography {#bibliography}
+
+
+
Schmidt, R. M., G. Schitter, and A. Rankers. 2020. The Design of High Performance Mechatronics - Third Revised Edition. Ios Press.
+
diff --git a/content/book/schoukens12_master.md b/content/book/schoukens12_master.md
new file mode 100644
index 0000000..1082c2f
--- /dev/null
+++ b/content/book/schoukens12_master.md
@@ -0,0 +1,25 @@
++++
+title = "Mastering system identification in 100 exercises"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Schoukens, Pintelon, and Rolain 2012)
+
+Author(s)
+: Schoukens, J., Pintelon, R., & Rolain, Y.
+
+Year
+: 2012
+
+
+## Bibliography {#bibliography}
+
+
+
Schoukens, Johan, Rik Pintelon, and Yves Rolain. 2012. Mastering System Identification in 100 Exercises. John Wiley & Sons.
+
diff --git a/content/book/skogestad07_multiv_feedb_contr.md b/content/book/skogestad07_multiv_feedb_contr.md
new file mode 100644
index 0000000..2a9899b
--- /dev/null
+++ b/content/book/skogestad07_multiv_feedb_contr.md
@@ -0,0 +1,7154 @@
++++
+title = "Multivariable Feedback Control: Analysis and Design - Second Edition"
+author = ["Dehaeze Thomas"]
+description = "Practical aspects of robust and multivariable control techniques. Reference book!"
+keywords = ["Multivariable Control", "Robust Control"]
+draft = false
++++
+
+- Tags :: [[id:d63e4d2d-f212-4d7e-b929-aa5133b5a694][Reference Books]], [[id:8d545c04-d04b-46da-8cd2-dafa020a94b3][Multivariable Control]]
+- Reference :: cite:skogestad05_multiv_feedb_contr
+- Author(s) :: Skogestad, S., & Postlethwaite, I.
+- Year :: 2005
+- PDF version :: [[file:pdfs/skogestad05_multiv_feedb_contr.pdf][link]]
+
+
+\(
+% H Infini
+\newcommand{\hinf}{\mathcal{H}_\infty}
+% H 2
+\newcommand{\htwo}{\mathcal{H}_2}
+% Omega
+\newcommand{\w}{\omega}
+% H-Infinity Norm
+\newcommand{\hnorm}[1]{\left\|#1\right\|_{\infty}}
+% H-2 Norm
+\newcommand{\normtwo}[1]{\left\|#1\right\|_{2}}
+% Norm
+\newcommand{\norm}[1]{\left\|#1\right\|}
+% Absolute value
+\newcommand{\abs}[1]{\left\lvert#1\right\lvert}
+% Maximum for all omega
+\newcommand{\maxw}{\text{max}_{\omega}}
+% Maximum singular value
+\newcommand{\maxsv}{\overline{\sigma}}
+% Minimum singular value
+\newcommand{\minsv}{\underline{\sigma}}
+% Diag keyword
+\newcommand{\diag}[1]{\text{diag}\{{#1}\}}
+% Vector
+\newcommand{\colvec}[1]{\begin{bmatrix} #1 \end{bmatrix}}
+\newcommand{\tcmbox}[1]{\boxed{#1}}
+% Simulate SIunitx
+\newcommand{\SI}[2]{#1\,#2}
+\newcommand{\ang}[1]{#1^{\circ}}
+\newcommand{\degree}{^{\circ}}
+\newcommand{\radian}{\text{rad}}
+\newcommand{\percent}{\%}
+\newcommand{\decibel}{\text{dB}}
+\newcommand{\per}{/}
+% Bug with subequations
+\newcommand{\eatLabel}[2]{}
+\newenvironment{subequations}{\eatLabel}{}
+\)
+
+
+
+## Introduction {#introduction}
+
+
+
+
+### The Process of Control System Design {#the-process-of-control-system-design}
+
+The process of designing a control system is a step by step design procedure as follows:
+
+1. Study the system (plant) to be controlled and obtain initial information about the **control objectives**
+2. **model the system** and simplify the model, if necessary
+3. **scale the variables** and analyze the resulting model; determine its properties
+4. Decide which variables are to be controlled (controlled outputs)
+5. Decide on the measurements and manipulated variables: what sensors and actuators will be used and where will they be placed?
+6. Select the **control configuration**
+7. Decide on the type of controller to be used
+8. Decide on performance specifications, based on the overall control objectives
+9. Design a controller
+10. Analyze the resulting controlled system to see if the specifications are satisfied; and if they are not satisfied modify the specifications or the type of controller
+11. Simulate the resulting controlled system
+12. Repeat from step 2 if necessary
+13. Choose hardware and software and implement the controller
+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.
+The steps 4, 5, 6 and 7 are corresponding to the **control structure design**. This is treated in section .
+The design of the controller is described in section .
+The analysis of performance and robustness of a controlled system is studied in sections and .
+
+
+### The Control Problem {#the-control-problem}
+
+The objective of a control system is to make the output \\(y\\) behave in a desired way by manipulating the plant input \\(u\\).
+The **regulator problem** is to manipulate \\(u\\) to counteract the effect of a disturbance \\(d\\).
+The **servo problem** is to manipulate \\(u\\) to keep the output close to a given reference input \\(r\\).
+
+In both cases, we want the control error \\(e = y - r\\) to be small.
+The algorithm for adjusting \\(u\\) based on \\(y\\) is the **controller** \\(K\\).
+To arrive at a good design for \\(K\\) we need information about the expected disturbances, the reference inputs, the plant model \\(G\\) and disturbance model \\(G\_d\\).
+
+A major source of difficulty is that models may be inaccurate or may change with time.
+The inaccuracy in \\(G\\) may cause instability problems as it is part of the feedback loop.
+To deal with such a problem, the concept of **model uncertainty** will be used.
+
+
+
+**Nominal Stability (NS)**
+: The system is stable with no model uncertainty
+
+**Nominal Performance (NP)**
+: The system satisfies the performance specifications with no model uncertainty
+
+**Robust Stability (RS)**
+: The system is stable for all perturbed plants about the nominal model up to the worst case uncertainty
+
+**Robust Performance (RP)**
+: The system satisfies the performance specifications for all perturbed plants about the nominal model up to the worst-case model uncertainty
+
+
+
+
+### Transfer Functions {#transfer-functions}
+
+Properties of transfer functions:
+
+- A system \\(G(s)\\) is **strictly proper** if \\(G(s) \rightarrow 0\\) as \\(\w \rightarrow \infty\\)
+- A system \\(G(s)\\) is **semi-proper** if \\(G(s) \rightarrow D \ne 0\\) as \\(\w \rightarrow \infty\\)
+- A system \\(G(s)\\) is **proper** if \\(G(s)\\) is strictly proper or semi-proper
+- The order of the system noted \\(n\\) and is the order of the denominator (or pole polynomial) of its matrix transfer function
+
+
+### Scaling {#scaling}
+
+Scaling is very important in applications, both for model analysis (input-output controllability) and for controller design.
+
+The scaling is done by **dividing each variable by its maximum expected or allowed change**.
+That way, the scaled variable should be less than one in magnitude.
+
+We denote variables in their unscaled units by a hat.
+
+- \\(d = \hat{d}/D\_d\\) with \\(D\_d = \hat{d}\_{\max}\\) is the largest expected change in disturbance
+- \\(u = \hat{u}/D\_u\\) with \\(D\_u = \hat{u}\_{\max}\\) is the largest allowed input change
+
+The variables \\(\hat{y}\\), \\(\hat{r}\\) and \\(\hat{e}\\) are in the same unit, so we choose to scale them with respect to the maximum allowed control error:
+
+- \\(e = \hat{e}/D\_e\\) with \\(D\_e = \hat{e}\_{\max}\\) is the largest allowed control error
+- \\(r = \hat{r}/D\_e\\)
+- \\(y = \hat{y}/D\_e\\)
+
+For MIMO systems, each variables in the vectors \\(\hat{d}\\), \\(\hat{r}\\), \\(\hat{u}\\) and \\(\hat{e}\\) may have a different maximum value, in which case \\(D\_e\\), \\(D\_u\\), \\(D\_s\\) and \\(D\_r\\), become diagonal scaling matrices.
+
+
+
+We then obtain the following model in terms of scaled variables:
+
+\begin{equation\*}
+ y = G u + G\_d d
+\end{equation\*}
+
+where \\(u\\) and \\(d\\) should be less than 1 in magnitude.
+
+It is sometimes useful to introduce a **scaled reference** \\(\tilde{r}\\) which is less than 1 in magnitude: \\(\tilde{r} = \hat{r}/\hat{r}\_{\max} = D\_r^{-1}\hat{r}\\)
+Then we have \\(r = R \tilde{r}\\) with \\(R \triangleq D\_e^{-1}D\_r = \hat{r}\_{\max}/\hat{e}\_{\max}\\) is the largest expected change in reference relative to the allowed control error.
+
+With scaling you make initial decision regarding performance. This makes **weight selection simple later** (may often select identity weights if initial scaling is reasonable!).
+
+
+### Deriving Linear Models {#deriving-linear-models}
+
+Linear models may be obtained from physical "first-principle" models or from analyzing input-output data (**identification**).
+
+In order to obtain a linear model from the "first-principle", the following approach is used:
+
+1. Formulate a nonlinear state-space model based on physical knowledge
+2. Determine the steady-state operating point about which to linearize
+3. Introduce deviation variables and linearize the model
+
+
+### Notation {#notation}
+
+Notations used throughout this note are summarized in [Table 1](#table--tab:notation-conventional), [Table 2](#table--tab:notation-general) and [Table 3](#table--tab:notation-tf).
+
+
+
+ Table 1:
+ Notations for the conventional control configuration
+
+
+| Notation | Meaning |
+|----------|---------------------------------------------------------------------|
+| \\(L\\) | Loop gain: \\(L = GK\\) |
+| \\(S\\) | Sensitivity function: \\(S = (I + L)^{-1}\\) |
+| \\(T\\) | Complementary sensitivity function: \\(T = (I + L)\*(I + L)^{-1}\\) |
+
+
+## Classical Feedback Control {#classical-feedback-control}
+
+
+
+
+### Frequency Response {#frequency-response}
+
+By replacing \\(s\\) by \\(j\omega\\) in a transfer function \\(G(s)\\), we get the **frequency response** description. It can be used to describe:
+
+- A system's response to sinusoids of varying frequency
+- The frequency content of a **deterministic signal** via the **Fourier transform**
+- The frequency distribution of a **stochastic** signal via the **power spectral density**
+
+After sending a sinusoidal signal through a system \\(G(s)\\), the signal's magnitude is amplified by a factor \\(\abs{G(j\omega)}\\) and its phase is shifted by \\(\angle{G(j\omega)}\\).
+
+
+
+**Minimum phase systems** are systems with no time delays or RHP-zeros.
+
+The name minimum phase refers to the fact that such a system has the minimum possible phase lag for the given magnitude response \\(|G(j\omega)|\\).
+
+**RHP-zeros** and **time delays** contribute additional phase lag to a system when compare to that of a minimum phase system with the same gain (hence the term **non-minimum phase system**).
+
+
+
+For minimum phase systems, there is a unique relationship between the gain and phase of the frequency response: the **Bode gain-phase relationship**:
+
+\begin{equation} \label{eq:bode\_phase\_gain}
+ \angle{G(j\w\_0)} = \frac{1}{\pi} \int\_{-\infty}^{\infty} \frac{d\ln{\abs{G(j\w)}}}{d\ln{\w}} \ln{\abs{\frac{\w+\w\_0}{\w-\w\_0}}} \frac{d\w}{\w}
+\end{equation}
+
+We note \\(N(\w\_0) = \left( \frac{d\ln{|G(j\w)|}}{d\ln{\w}} \right)\_{\w=\w\_0}\\) that corresponds to the **slope of the magnitude** of \\(G(s)\\) in log-variables. We then have the following approximation of the **Bode gain-phase relationship**:
+
+\begin{equation} \label{eq:bode\_phase\_gain\_approx}
+ \tcmbox{\angle{G(j\w\_0)} \approx \frac{\pi}{2} N(\w\_0)
+\end{equation}
+
+
+### Feedback Control {#feedback-control}
+
+
+#### One Degree-of-Freedom Controller {#one-degree-of-freedom-controller}
+
+The simple one degree-of-freedom controller negative feedback structure is represented in [Figure 1](#figure--fig:classical-feedback-alt).
+
+The input to the controller \\(K(s)\\) is \\(r-y\_m\\) where \\(y\_m = y+n\\) is the measured output and \\(n\\) is the measurement noise.
+Thus, the input to the plant is \\(u = K(s) (r-y-n)\\).
+The objective of control is to manipulate \\(u\\) (design \\(K\\)) such that the control error \\(e\\) remains small in spite of disturbances \\(d\\).
+The control error is defined as \\(e = y-r\\).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_alt.png" caption="Figure 1: Configuration for one degree-of-freedom control" >}}
+
+
+#### Closed-loop Transfer Functions {#closed-loop-transfer-functions}
+
+
+
+**Closed-Loop Transfer Functions**:
+
+\begin{equation} \label{eq:closed\_loop\_tf\_1dof\_feedback}
+\begin{aligned}
+y &= T r + S G\_d d + T n\\\\
+e &= -S r + S G\_d d - T n\\\\
+y &= KS r - KS G\_d d - KS n
+\end{aligned}
+\end{equation}
+
+
+
+
+#### Why Feedback? {#why-feedback}
+
+We could think that we can use a "perfect" feedforward controller \\(K\_r(s) = G^{-1}(s)\\) with \\(r-G\_d d\\) as the controller input:
+
+\begin{equation\*}
+ y = G u + G\_d d = G K\_r (r - G\_d d) + G\_d d = r
+\end{equation\*}
+
+Unfortunately, \\(G\\) is never an exact model and the disturbances are never known exactly.
+
+
+
+**Reasons for Feedback Control**:
+
+- Signal uncertainty
+- Unknown disturbance
+- Model uncertainty
+- An unstable plant
+
+
+
+
+### Closed Loop Stability {#closed-loop-stability}
+
+Two methods are commonly used to **determine closed-loop stability**:
+
+1. The system is stable if and only if **all the closed-loop poles** (roots of \\(1 + L(s) = 0\\)) **are in the open LHP**. The poles are also equal to the **eigenvalues of the state-space \\(A\\) matrix** (this is how the poles are computed).
+2. The frequency response of \\(L(j\w)\\) is plotted in the complex plane and the number of encirclement it makes around the critical point \\(-1\\) is counted.
+ - **Nyquist's stability criterion**: Closed-loop stability is inferred by equating the number of encirclement to the number of open-loop RHP-poles
+ - **Bode's stability condition**: The closed loop system is stable if and only if \\(\vert L(j \w\_{180})\vert < 1\\) where \\(\w\_{180}\\) is the phase crossover frequency defined by \\(\angle L(j \w\_{180})=\ang{-180}\\). This is only valid for open-loop stable systems where \\(\angle L(j\w)\\) falls with frequency and such that \\(\angle L(j\w)\\) crosses \\(\ang{-180}\\) only once.
+
+Method 1 is best suited for numerical calculation while method 2 has a nice graphical interpretation and may also be used for systems with time delays.
+Moreover, method 2 provides useful measure of relative stability and will be used for robustness test.
+
+
+### Evaluating Closed-Loop Performance {#evaluating-closed-loop-performance}
+
+
+#### Gain Margin {#gain-margin}
+
+The **Gain Margin** is defined as:
+
+\begin{equation} \label{eq:gain\_margin}
+ \tcmbox{\text{GM} = \frac{1}{|L(j\w\_{180})|}}
+\end{equation}
+
+with \\(\w\_{180}\\) is the **phase crossover frequency** defined by \\(\angle L(j \w\_{180}) = \ang{-180}\\).
+If there is more than one crossing (\\(\angle L(j \w\_{180}) = \ang{-180}\\)), the largest value of \\(\vert L(j\w\_{180})\vert\\) is taken.
+
+The GM is the factor by which the loop gain \\(\vert L(s)\vert\\) may be increased before the closed-loop system becomes unstable.
+
+
+#### Phase Margin {#phase-margin}
+
+The **Phase Margin** is defined as:
+
+\begin{equation} \label{eq:phase\_margin}
+ \tcmbox{\text{PM} = \angle L(j \w\_c) + \ang{180}}
+\end{equation}
+
+with \\(\w\_c\\) the **gain crossover frequency** defined by \\(\vert L(j \w\_c)\vert = 1\\).
+
+The PM tells how much negative phase (phase lag) we can add to \\(L(s)\\) at frequency \\(\omega\_c\\) before closed-loop instability appears.
+
+Typically, we required the PM to be larger than \\(\SI{30}{\degree}\\). This is a **safeguard against time delay uncertainty**, the system becomes unstable is we add a delay of \\(\theta\_{max} = PM / \w\_c\\).
+
+Note that by decreasing the value of \\(\omega\_c\\) (lowering the closed-loop bandwidth) the system can tolerate larger time delays.
+
+
+#### Maximum Peak Criteria {#maximum-peak-criteria}
+
+
+
+Typically, we require \\(M\_S < 2\ (6dB)\\) and \\(M\_T < 1.25\ (2dB)\\).
+
+**Why do we want \\(M\_S\\) small?**
+
+- Without feedback, with have \\(e = r - G\_d d\\) but with feedback \\(e = S(r - G\_d d)\\). Thus feedback improves performance in terms of reducing \\(|e|\\) where \\(|S|<1\\). However, we cannot avoid having \\(|S|>1\\) at some intermediate frequency where feedback control degrades performance. The value of \\(M\_S\\) is then a **measure of the worst-case performance degradation**
+- \\(M\_S\\) is also a **measure of the robustness** because the smallest distance between \\(L(\w)\\) and the critical point \\(-1\\) is \\({M\_S}^{-1}\\)
+
+There is a close **relationship between these maximum peaks and the gain and phase margins**.
+For a given value of \\(M\_S\\), we have:
+
+\begin{equation} \label{eq:link\_pm\_gm\_mm}
+ \tcmbox{\text{GM} \geq \frac{M\_S}{M\_S-1}; \quad \text{PM} \geq \frac{1}{M\_S}}
+\end{equation}
+
+Example of guaranteed stability margins:
+
+- \\(M\_S < 2 \Rightarrow GM > 2\\) and \\(PM > \SI{29}{\degree}\\)
+- \\(M\_T < 2 \Rightarrow GM > 1.5\\) and \\(PM > \SI{29}{\degree}\\)
+
+
+#### Bandwidth and Crossover Frequency {#bandwidth-and-crossover-frequency}
+
+In general, a large bandwidth corresponds to a faster rise time, however, this also indicates an higher sensitivity to noise and to parameter variations.
+
+
+
+The **bandwidth**, is the frequency range \\([\w\_1, \w\_2]\\) over which control is **effective**. In most case we simple call \\(\w\_2 = \w\_B\\) the bandwidth.
+
+
+
+As the word "effective" may be interpreted in different ways, there are **multiple definitions of bandwidth**:
+
+- The **closed-loop bandwidth** \\(\w\_B\\) is the frequency where \\(\vert S(j\w)\vert\\) first crosses \\(1/\sqrt{2}\approx -3dB\\) from below.
+- The **gain crossover frequency** \\(\w\_c\\) is defined as the frequency where \\(\vert L(j \w\_c)\vert\\) first crosses 1 from above
+- The bandwidth in terms of \\(T\\), \\(\w\_{BT}\\), is the highest frequency at which \\(\vert T(j \w\_c)\vert\\) crosses \\(1/\sqrt{2}\approx -3dB\\) from above.
+
+For systems with \\(PM < \ang{90}\\), we have: \\(\w\_{B} <\w\_{c} < \w\_{BT}\\)
+Then we have the following regions:
+
+- \\(\w < \w\_B\\): \\(|S|<0.7\\) and control is effective
+- \\(\w\_B < \w < \w\_{BT}\\): we may have \\(|S| > 1\\) and control degrades performance
+- \\(\w\_{BT} < \w\\): \\(|S| \approx 1\\) and control has no significant effect on the response
+
+The closed-loop time constant \\(\tau\_{\text{cl}}\\) can be related to the bandwidth:
+
+\begin{equation} \label{eq:bandwidth\_response\_time}
+ \tcmbox{\tau\_{\text{cl}} \approx \frac{1}{\w\_b}}
+\end{equation}
+
+
+### Controller Design {#controller-design}
+
+There is 3 mains approaches to controller design:
+
+1. **Shaping of transfer functions**. The designer specifies the magnitude of some transfer functions as a function of frequency and then finds a controller which gives the desired shape(s)
+ 1. Loop shaping of the open-loop transfer function \\(L(j\w)\\)
+ 2. Shaping of closed-loop transfer functions such as \\(S\\), \\(T\\) and \\(KS\\)
+2. **The signal based approach**. This involves time domain problem formulations resulting in the minimization of a norm of a transfer function. Linear Quadratic Gaussian (LQG) is an example of a signal based approach. A signal based \\(\hinf\\) optimal control methodology can be derived.
+3. **Numerical optimization**. This often involves multi-objective optimization where one attempts to optimize directly the true objectives such as rise times, stability margins, ... This problems may be difficult to solve, especially if one does not have convexity in the control parameters. This optimization may also be performed online.
+
+
+### Loop Shaping {#loop-shaping}
+
+
+#### Trade-offs in Terms of \\(L\\) {#trade-offs-in-terms-of-l}
+
+Let's consider a feedback control system with error \\(e = -S r + S G\_d d - T n\\).
+If we want perfect control:
+
+- For **disturbance rejection** and **command tracking**, we obtain \\(S \approx 0\\), this implies that the loop transfer function \\(L\\) must be large in magnitude
+- For zero **noise transmission**, we want \\(T \approx 0\\) or equivalently \\(S \approx I\\) which is obtained with \\(L \approx 0\\).
+
+This illustrate the **fundamental nature of feedback** design which always involves a **trade-off** between conflicting objectives.
+
+The most important design objectives are:
+
+Performance
+: \\(L\\) large
+
+Good dist. rejection
+: \\(L\\) large
+
+Limitation of meas. noise on plant output
+: \\(L\\) small
+
+Small magnitude of input signal
+: \\(K\\) and \\(L\\) small
+
+Strictly proper controller
+: \\(K\rightarrow 0\\) at high frequencies
+
+Nominal stability
+: \\(L\\) small (RHP zeros and time delays)
+
+Robust stability
+: \\(L\\) small (neglected dynamics)
+
+Fortunately, the conflicting design objectives are generally in different frequency ranges, and we can meet most of the objectives by using large loop gain at low frequencies and a small gain at high frequencies above crossover.
+
+
+#### Fundamentals of Loop-Shaping Design {#fundamentals-of-loop-shaping-design}
+
+
+
+**Loop Shaping**:
+Design procedure that involves explicitly shaping the magnitude of the loop transfer function \\(\abs{L(j\w)}\\).
+
+
+
+To get the benefits of feedback control, we want the loop gain \\(\abs{L(j\w)}\\) to be as large as possible within the bandwidth region.
+However, due to time delays, RHP-zeros, unmodelled high-frequency dynamics and limitations on the allowed manipulated inputs, the loop gain has to drop below one at and above the crossover frequency \\(\w\_c\\).
+
+
+
+To measure how \\(\abs{L(j\w)}\\) falls with frequency, we consider the **logarithmic slope**:
+
+\begin{equation} \label{eq:logarithmic\_slope}
+ N = \frac{d \ln{\abs{L}}}{d \ln{\w}}
+\end{equation}
+
+The value of \\(-N\\) at high frequencies is called the **roll-off rate**.
+
+
+
+To get a high bandwidth (fast response) we want \\(\w\_c\\) large (thus \\(\w\_{180}\\) large), that is we want the phase lag in \\(L\\) to be small. Unfortunately, that is not consistent with the desire that \\(\abs{L(j\w)}\\) should fall sharply (because of the approximation \\(\angle{L} \approx -N \* \SI{90}{\degree}\\)).
+
+The situation becomes even worse for cases with delays or RHP-zeros in \\(L(s)\\) which add undesirable phase lag without contributing to a desirable negative slope.
+
+We can define the **desired loop transfer function in terms of the following specifications**:
+
+1. The gain crossover frequency \\(\w\_c\\), where \\(\abs{L(j\w\_c)} = 1\\)
+2. The shape of \\(\abs{L(j\w)}\\):
+ - Slope of \\(N=-1\\) around crossover
+ - Large roll-off at higher frequencies (\\(N>2\\))
+ - Slope at low frequencies depending on the nature of the disturbance or reference signal.
+ We required a slope of \\(-1\\) for step changes and \\(-2\\) for ramp changes
+3. The system type, defined as the number of pure integrators in \\(L(s)\\)
+
+
+#### Limitations Imposed by RHP-zeros and Time Delays {#limitations-imposed-by-rhp-zeros-and-time-delays}
+
+We usually want the loop shape to have a slope of \\(-1\\) around crossover \\(\w\_c\\), then the phase lag of \\(L\\) at \\(\w\_c\\) will be at least \\(\SI{-90}{\degree}\\).
+If we require a phase margin of \\(\SI{-35}{\degree}\\), then the additional phase contribution from delays and RHP zeros at \\(\w\_c\\) cannot exceed \\(\SI{-55}{\degree}\\).
+
+First consider a **time delay** \\(\theta\\) which adds a phase of \\(-\theta \omega\\).
+Thus, we want \\(\theta \omega\_c < \SI{55}{\degree} \approx \SI{1}{\radian}\\).
+The attainable bandwidth is limited by the time delay:
+
+\begin{equation} \label{eq:time\_delay\_bw\_limit}
+ \tcmbox{\omega\_c < 1/\theta}
+\end{equation}
+
+Next consider a **RHP-zero** at \\(s = z\\).
+To avoid an increase in slope cause by the zero, we add a pole at \\(s = -z\\), then \\(L\\) contains \\(\frac{-s+z}{s+z}\\) which corresponds to an all-pass filter.
+The phase contribution is \\(\approx \SI{-55}{\degree}\\) at \\(\w = z/2\\).
+Thus, this limits the attainable bandwidth:
+
+\begin{equation} \label{eq:rhp\_zero\_bw\_limit}
+ \tcmbox{\w\_c < z/2}
+\end{equation}
+
+
+#### Inverse-Based Controller Design {#inverse-based-controller-design}
+
+The idea is to have \\(L(s) = \frac{\w\_c}{s}\\) with \\(\w\_c\\) the desired gain crossover frequency.
+The controller associated is then \\(K(s) = \frac{\w\_c}{s}G^{-1}(s)\\) (the plant is inverted and an integrator is added).
+This idea is the essential part of the **internal model control** (IMC).
+This loop shape yields a phase margin of \\(\SI{90}{\degree}\\) and an infinite gain margin.
+
+They are many reasons why the inverse-based controller may **not** be a good choice:
+
+- The controller will not be realizable if \\(G(s)\\) has a pole excess of two or larger
+- The loop shape is not generally desirable, unless the references and disturbances are steps
+
+
+#### Loop Shaping for Disturbance Rejection {#loop-shaping-for-disturbance-rejection}
+
+We have \\(e = S G\_d d\\) with \\(\abs{d(j\w)} < 1\\) at each frequency (thanks to scaling).
+The main control objective is to achieve \\(\abs{e(j\w)} < 1\\).
+Then, we require: \\(\abs{S(j\w) G\_d(j\w)} < 1, \forall \w\\) or equivalently \\(\abs{1 + L(j\w)} > \abs{G\_d}, \forall \w\\).
+
+Note that we don't want to have larger loop gain than necessary to not increase input signals and sensitivity to noise.
+A reasonable loop shape is then \\(\abs{L} = \abs{G\_d}\\).
+
+The corresponding controller satisfies
+
+\begin{equation} \label{eq:K\_loop\_shaping\_dist\_reject}
+ \abs{K} = \abs{G^{-1}G\_d}
+\end{equation}
+
+This means that:
+
+- For disturbances entering at the plant output (\\(G\_d = 1\\)), we get \\(\abs{K} = \abs{G^{-1}}\\)
+- For disturbances entering at the plant input (\\(G\_d = G\\)), we get \\(\abs{K} = 1\\)
+- Note that reference change may be viewed as a disturbance directly affecting the output
+
+The loop-shape \\(L(s)\\) may be modify as follows:
+
+- Around crossover, make the slope of \\(|L|\\) to be about -1. This is to achieve good transient behavior with acceptable gain and phase margins
+- Improve the low frequency performance by adding integral action \\(\abs{K} = \abs{\frac{s+\w\_I}{s}}\abs{G^{-1}G\_d}\\)
+- Let \\(L(s)\\) roll of faster at high frequencies in order to reduce the effect of noise and the input magnitude
+
+
+#### Two Degrees-of-freedom Design {#two-degrees-of-freedom-design}
+
+For reference tracking, we typically want the controller to look like \\(\frac{1}{s} G^{-1}\\), whereas for disturbance rejection we want the controller to look like \\(\frac{1}{s} G^{-1}G\_d\\).
+
+We cannot achieve both of these simultaneously with a single feedback controller.
+
+The solution is to use a **two degrees of freedom controller** where the reference signal \\(r\\) and output measurement \\(y\_m\\) are independently treated by the controller ([Figure 2](#figure--fig:classical-feedback-2dof-alt)), rather than operating on their difference \\(r - y\_m\\).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_2dof_alt.png" caption="Figure 2: 2 degrees-of-freedom control architecture" >}}
+
+The controller can be slit into two separate blocks ([Figure 3](#figure--fig:classical-feedback-sep)):
+
+- the **feedback controller** \\(K\_y\\) that is used to **reduce the effect of uncertainty** (disturbances and model errors)
+- the **prefilter** \\(K\_r\\) that **shapes the commands** \\(r\\) to improve tracking performance
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_sep.png" caption="Figure 3: 2 degrees-of-freedom control architecture with two separate blocs" >}}
+
+It is optimal to design the combined two degrees of freedom controller \\(K\\) in one step, however, in practice \\(K\_y\\) is often designed first for disturbance rejection, and then \\(K\_r\\) is designed to improve reference tracking.
+
+
+### Shaping Closed-Loop Transfer Functions {#shaping-closed-loop-transfer-functions}
+
+Specifications on the open-loop transfer function \\(L = GK\\) does not consider directly the closed-loop transfer functions, such as \\(S\\) and \\(T\\) which determine the final response.
+An alternative design strategy is to directly shape the magnitude of the closed loop transfer functions. This strategy can be formulated as an \\(\hinf\\) optimal control problem.
+
+
+#### The Terms \\(\hinf\\) and \\(\htwo\\) {#the-terms-hinf-and-htwo}
+
+The \\(\hinf\\) norm of a stable scalar transfer function \\(f(s)\\) is simply the peak value of \\(\abs{f(j\w)}\\) as a function of frequency:
+
+\begin{equation} \label{eq:hinf\_norm}
+ \tcmbox{\hnorm{f(s)} \triangleq \max\_{\w} \abs{f(j\w)}}
+\end{equation}
+
+Similarly, the symbol \\(\htwo\\) stands for the Hardy space of transfer function with bounded 2-norm:
+
+\begin{equation} \label{eq:h2\_norm}
+ \tcmbox{\normtwo{f(s)} \triangleq \left( \frac{1}{2\pi} \int\_{-\infty}^{\infty} \abs{f(j\w)}^2 d\w \right)^{1/2}}
+\end{equation}
+
+
+#### Weighted Sensitivity {#weighted-sensitivity}
+
+The sensitivity function \\(S\\) is a very good indicator of closed-loop performance. The main advantage of considering \\(S\\) is that we want \\(S\\) small and **it is sufficient to consider just its magnitude** \\(\abs{S}\\).
+
+
+
+**Typical specifications in terms of** \\(S\\):
+
+- Minimum bandwidth frequency \\(\w\_B^\*\\)
+- Maximum tracking error at selected freq.
+- The maximum steady state tracking error \\(A\\)
+- Shape of \\(S\\) over selected frequency ranges
+- Maximum magnitude of \\(S\\): \\(\hnorm{S(j\w)} \leq M\\)
+
+
+
+The maximum peak specification prevents amplification of noise at high frequencies, and also introduces a margin of robustness. Typically, we select \\(M = 2\\).
+
+Mathematically, these specifications may be captured by an **upper bound** \\(1/\abs{W\_P(s)}\\) on the magnitude of \\(S\\) where \\(W\_P(s)\\) is a **weight** selected by the designer.
+The subscript \\(P\\) stands for **performance** since \\(S\\) is mainly used as a performance indicator.
+
+The performance requirement becomes
+
+\begin{equation\*}
+ S(j\w) < 1/\abs{W\_P(j\w)}, \forall \w
+\end{equation\*}
+
+Which can be expressed as an \\(\mathcal{H}\_\infty\\):
+
+\begin{equation} \label{eq:perf\_requirements\_hinf}
+ \tcmbox{\hnorm{W\_P S} < 1}
+\end{equation}
+
+
+
+**Typical performance weight**:
+
+\begin{equation\*}
+ W\_P(s) = \frac{s/M + \w\_B^\*}{s + \w\_B^\* A}
+\end{equation\*}
+
+With (see [Figure 4](#figure--fig:performance-weigth)):
+
+- \\(M\\): maximum magnitude of \\(\abs{S}\\)
+- \\(\w\_B\\): crossover frequency
+- \\(A\\): steady-state offset
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_weight_first_order.png" caption="Figure 4: Inverse of performance weight" >}}
+
+If we want a steeper slope for \\(L\\) below the bandwidth, an higher order weight may be selected. A weight which ask for a slope of \\(-2\\) for \\(L\\) below crossover is:
+
+\begin{equation\*}
+ W\_P(s) = \frac{(s/M^{1/2} + \w\_B^\*)^2}{(s + \w\_B^\* A^{1/2})^2}
+\end{equation\*}
+
+
+#### Stacked Requirements: Mixed Sensitivity {#stacked-requirements-mixed-sensitivity}
+
+The specification \\(\hnorm{W\_P S} < 1\\) puts a lower bound on the bandwidth, but not an upper one and nor does it allow us to specify the roll-off of \\(L(s)\\) above the bandwidth.
+
+To do this, we can make demands on another closed-loop transfer function \\(T\\) by specifying an upper bound \\(1/\abs{W\_T}\\) on the magnitude \\(\abs{T}\\) to **make sure that \\(L\\) rolls off sufficiently fast at high frequencies**.
+
+Also, to achieve robustness or to restrict the magnitude of the input signal \\(u\\), one may place an upper bound \\(1/\abs{W\_U}\\) on the magnitude \\(KS\\).
+
+To combined these **mixed sensitivity specifications**, a **stacking approach** is usually used, resulting in the following overall specification:
+
+\begin{equation\*}
+ \maxw \maxsv(N(j\w)) < 1; \quad N = \begin{bmatrix}
+ W\_P S \\\\
+ W\_T T \\\\
+ W\_U KS
+ \end{bmatrix}
+\end{equation\*}
+
+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 {#introduction}
+
+The main difference between a SISO system and a MIMO system is the presence of **directions** in the latter.
+
+However, most of the ideas and techniques used for SISO systems may be extended to MIMO systems.
+This is done by considering the **maximum singular value** instead of the absolute value.
+
+The **singular value decomposition** (SVD) provides a useful way of quantifying multivariable directionality.
+
+For MIMO systems the gain \\(\frac{\abs{Gd}}{\abs{d}}\\) (where \\(\abs{\cdot}\\) is some norm) is independent of the magnitude \\(\abs{d}\\) (like for SISO systems), but it does **depend on its direction**.
+
+A plant is said to be **ill-conditioned** if the gain depends strongly on the input direction. It is quantified by the **condition number** \\(\Gamma\\) (which is much larger than 1 for an ill-conditioned plant).
+
+For MIMO systems the order of the transfer functions matter, so in general:
+
+\begin{equation} \label{eq:mimo\_gk\_neq\_kg}
+ \tcmbox{GK \neq KG}
+\end{equation}
+
+even when \\(G\\) and \\(K\\) are square matrices.
+
+
+### Transfer Functions {#transfer-functions}
+
+
+
+The main rule for evaluating transfer functions is the **MIMO Rule**: Start from the output and write down the transfer functions as you meet them going to the input. If you exit a feedback loop then we get a term \\((I-L)^{-1}\\) where \\(L = GK\\) is the transfer function around the loop (gain going backwards).
+
+
+
+
+#### Negative Feedback Control Systems {#negative-feedback-control-systems}
+
+For negative feedback system ([Figure 5](#figure--fig:classical-feedback-bis)), we define \\(L\\) to be the loop transfer function as seen when breaking the loop at the **output** of the plant:
+
+- \\(L = G K\\)
+- \\(S \triangleq (I + L)^{-1}\\) is the transfer function from \\(d\_1\\) to \\(y\\)
+- \\(T \triangleq L(I + L)^{-1}\\) is the transfer function from \\(r\\) to \\(y\\)
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_bis.png" caption="Figure 5: Conventional negative feedback control system" >}}
+
+We define \\(L\_1\\) to be the loop transfer function as seen when breaking the loop at the **input** to the plant:
+
+- \\(L\_1 = K G\\)
+- \\(S\_1 \triangleq (I + L\_1)^{-1}\\)
+- \\(T\_1 \triangleq L\_1(I + L\_1)^{-1}\\) is the transfer function from \\(d\_2\\) to \\(-u\\)
+
+
+### Multivariable Frequency Response Analysis {#multivariable-frequency-response-analysis}
+
+
+#### Obtaining the Frequency Response from \\(G(s)\\) {#obtaining-the-frequency-response-from-g--s}
+
+Consider the system \\(G(s)\\) with input \\(d(s)\\) and output \\(y(s)\\).
+The element \\(g\_{ij}(j\w)\\) of the matrix \\(G\\) represents the sinusoidal response from the input \\(j\\) to output \\(i\\).
+
+
+#### Directions in Multivariable Systems {#directions-in-multivariable-systems}
+
+For a SISO system, the gain at \\(\omega\\) is simply:
+
+\begin{equation} \label{eq:gain\_siso}
+ \frac{|y(\w)|}{|d(\w)|} = \frac{|G(j\w)d(\w)|}{|d(\w)|} = |G(j\w)|
+\end{equation}
+
+The gain depends on the frequency \\(\w\\) but it is independent of the input magnitude \\(|d(\w)|\\).
+
+For MIMO systems, we have to use norms to measure the amplitude of the inputs/outputs.
+If we select vector 2-norm, the magnitude of the vector input signal is:
+
+\begin{equation\*}
+ \normtwo{d(\w)} = \sqrt{\sum\_j |d\_j(\w)|^2}
+\end{equation\*}
+
+The gain of the system is then:
+
+\begin{equation} \label{eq:gain\_mimo}
+ \frac{\normtwo{y(\w)}}{\normtwo{d(\w)}} = \frac{\normtwo{G(j\w)d(\w)}}{\normtwo{d(\w)}} = \frac{\sqrt{\sum\_j |y\_j(\w)|^2}}{\sqrt{\sum\_j |d\_j(\w)|^2}}
+\end{equation}
+
+Again the gain depends on the frequency \\(\w\\) and again it is independent of the input magnitude \\(\normtwo{d(\w)}\\). However, the gain depends also on the **direction** of the input \\(d\\).
+
+
+#### Eigenvalues as a Poor Measure of Gain {#eigenvalues-as-a-poor-measure-of-gain}
+
+The magnitudes of the eigenvalues of a transfer function matrix \\(\abs{\lambda\_i(G(j\w))}\\) do not provide a useful means of generalizing the SISO gain.
+The main problem is that the eigenvalues measure the gain for the special case when the **inputs and the outputs are in the same direction**, namely in the direction of the eigenvectors.
+
+
+#### Singular Value Decomposition {#singular-value-decomposition}
+
+We are interested by the physical interpretation of the SVD when applied to the frequency response of a MIMO system \\(G(s)\\) with \\(m\\) inputs and \\(l\\) outputs.
+
+
+
+**Singular Value Decomposition**:
+
+\begin{equation} \label{eq:svd}
+G = U \Sigma V^H
+\end{equation}
+
+\\(\Sigma\\)
+: is an \\(l \times m\\) matrix with \\(k = \min\\{l, m\\}\\) non-negative **singular values** \\(\sigma\_i\\), arranged in descending order along its main diagonal, the other entries are zero.
+
+\\(U\\)
+: is an \\(l \times l\\) unitary matrix. The columns of \\(U\\), denoted \\(u\_i\\), represent the **output directions** of the plant. They are orthonormal.
+
+\\(V\\)
+: is an \\(m \times m\\) unitary matrix. The columns of \\(V\\), denoted \\(v\_i\\), represent the **input directions** of the plant. They are orthonormal.
+
+
+
+The input and output directions are related through the singular values:
+
+\begin{equation} \label{eq:svd\_directions}
+ \tcmbox{G v\_i = \sigma\_i u\_i}
+\end{equation}
+
+So, if we consider an input in the direction \\(v\_i\\), then the output is in the direction \\(u\_i\\). Furthermore, since \\(\normtwo{v\_i}=1\\) and \\(\normtwo{u\_i}=1\\), we see that **the singular value \\(\sigma\_i\\) directly gives the gain of the matrix \\(G\\) in this direction**.
+
+The **largest gain** for any input is equal to the **maximum singular value**:
+
+\begin{equation\*}
+ \maxsv(G) \triangleq \sigma\_1(G) = \max\_{d\neq 0}\frac{\normtwo{Gd}}{\normtwo{d}} = \frac{\normtwo{Gv\_1}}{\normtwo{v\_1}}
+\end{equation\*}
+
+The **smallest gain** for any input direction is equal to the **minimum singular value**:
+
+\begin{equation\*}
+ \minsv(G) \triangleq \sigma\_k(G) = \min\_{d\neq 0}\frac{\normtwo{Gd}}{\normtwo{d}} = \frac{\normtwo{Gv\_k}}{\normtwo{v\_k}}
+\end{equation\*}
+
+We define \\(u\_1 = \overline{u}\\), \\(v\_1 = \overline{v}\\), \\(u\_k = \underline{u}\\) and \\(v\_k = \underline{v}\\). Then is follows that:
+
+\begin{equation\*}
+ G\overline{v} = \maxsv \overline{u} ; \quad G\underline{v} = \minsv \underline{u}
+\end{equation\*}
+
+
+#### Non Square Plants {#non-square-plants}
+
+If the plant has more output than inputs, the outputs singular vectors \\(u\_i\\) with \\(i > k\\) correspond to the outputs directions that cannot be controlled.
+
+Similarly, for a plant with more inputs and outputs, the additional input singular vectors tells us in which directions the input will have no effect.
+
+
+#### Singular Values for Performance {#singular-values-for-performance}
+
+The gain of the MIMO system from the vector of reference inputs \\(r\\) and the vector of control error \\(e\\) is bounded by the minimum and maximum singular values of \\(S\\):
+
+\begin{equation\*}
+ \minsv(S(j\w)) < \frac{\normtwo{e(\w)}}{\normtwo{r(\w)}} < \maxsv(S(j\w))
+\end{equation\*}
+
+In terms of performance, we require that the gain remains small for any direction of \\(r(\w)\\) including the "worst-case" direction corresponding to the gain \\(\maxsv(S(j\w))\\). Let \\(1/\abs{W\_P(j\w)}\\) represent the maximum allowed magnitude of \\(\frac{\normtwo{e(\w)}}{\normtwo{r(\w)}}\\) at each frequency:
+
+\begin{equation\*}
+ \maxsv(S(j\w)) < \frac{1}{\abs{W\_P}}, \forall \w \Leftrightarrow \hnorm{W\_P S} < 1
+\end{equation\*}
+
+
+
+The \\(\hinf\\) norm is defined as the peak of the maximum singular value of the frequency response:
+
+\begin{equation} \label{eq:hinf\_norm\_mimo}
+ \hnorm{M(s)} \triangleq \max\_{\w} \maxsv(M(j\w))
+\end{equation}
+
+
+
+For MIMO systems **the bandwidth depends on direction**.
+If we want to associate a single bandwidth frequency for a multivariable system, then we consider the worst-case direction, and define the bandwidth \\(\w\_B\\) as the frequency where \\(\maxsv(S)\\) crosses \\(\frac{1}{\sqrt{2}} = 0.7\\) from below.
+
+
+### Control of Multivariable Plants {#control-of-multivariable-plants}
+
+A conceptually simple approach to multivariable control is given by a two-step procedure:
+
+1. **Design a pre-compensator** \\(W\_1\\), which counteracts the interactions in the plant and results in a new **shaped plant** \\(G\_S(s) = G(s) W\_1(s)\\) which is **more diagonal and easier to control** than the original plant \\(G(s)\\).
+2. **Design a diagonal controller** \\(K\_S(s)\\) for the shaped plant using methods similar to those for SISO systems.
+
+The overall controller is then:
+
+\begin{equation\*}
+ K(s) = W\_1(s)K\_s(s)
+\end{equation\*}
+
+
+#### Decoupling {#decoupling}
+
+There are mainly three different cases:
+
+1. **Dynamic decoupling**: \\(G\_S(s)\\) is diagonal at all frequencies. For that we can choose \\(W\_1(s) = G^{-1}(s)\\) and this is an inverse-based controller.
+2. **Steady-state decoupling**: \\(G\_S(0)\\) is diagonal. This can be obtained by selecting \\(W\_1(s) = G^{-1}(0)\\).
+3. **Approximate decoupling at frequency \\(\w\_0\\)**: \\(G\_S(j\w\_0)\\) is as diagonal as possible. Decoupling the system at \\(\w\_0\\) is a good choice because the effect on performance of reducing interaction is normally greatest at this frequency.
+
+The idea of decoupling control is appealing, but there are **several difficulties**:
+
+1. It is very sensitive to modelling errors
+2. It may not be required for disturbance rejection
+3. If the plant has RHP-zero, the decoupling generally introduces extra RHP-zero in the closed-loop system
+
+
+#### SVD-Controller {#svd-controller}
+
+We can also introduce a **post compensator** \\(W\_2(s)\\).
+The shaped plant is then:
+
+\begin{equation\*}
+ G\_S(s) = W\_2(s)G(s)W\_1(s)
+\end{equation\*}
+
+A diagonal controller \\(K\_S\\) can then be designed for the shaped plant. The overall controller is then:
+
+\begin{equation\*}
+ K(s) = W\_1(s)K\_S(s)W\_2(s)
+\end{equation\*}
+
+The **SVD-controller** is a special case of a pre and post compensator design: \\(W\_1 = V\_0\\) and \\(W\_2 = U\_0^T\\).
+\\(V\_0\\) and \\(U\_0\\) are obtained from a SVD of \\(G\_0 = U\_0 \Sigma\_0 V\_0^T\\) where \\(G\_0\\) is a real approximation of \\(G(j\w\_0)\\).
+
+
+#### Decentralized Control {#decentralized-control}
+
+Another approach is to use a diagonal or block-diagonal controller \\(K(s)\\). This works well if \\(G(s)\\) is close to diagonal, because then the plant to be controlled is essentially a collection of independent sub-plants, and each element in \\(K(s)\\) may be designed independently.
+However, if off-diagonal elements in \\(G(s)\\) are large, the performance with decentralized diagonal control may be poor because no attempt is made to counteract the interactions.
+
+
+#### What is the Shape of the "best" Feedback Controller? {#what-is-the-shape-of-the-best-feedback-controller}
+
+Consider the problem of disturbance rejection: \\(y = S G\_d d\\) where \\(\normtwo{d}<1\\) and our performance requirement is that \\(\normtwo{y}<1\\) which is equivalent to requiring \\(\maxsv(SG\_d) < 1\\).
+
+However there is generally a trade-off between input usage and performance. The controller that minimize the input magnitude while meeting the performance requirement is the one that yields all singular values of \\(SG\_d\\) equal to 1, i.e. \\(\sigma\_i(SG\_d) = 1, \forall \w\\). This corresponds to:
+
+\begin{equation\*}
+ S\_{\text{min}} G\_d = U\_1
+\end{equation\*}
+
+Where \\(U\_1\\) is some all-pass transfer function (which at each frequency has all its singular values equal to 1).
+
+At frequencies where feedback is effective, we have \\(S\approx L^{-1}\\) and then \\(L\_{\text{min}} = GK\_{\text{min}} \approx G\_d U\_1^{-1}\\).
+In conclusion, the controller and loop shape with the minimum gain will often look like:
+
+\begin{equation\*}
+ K\_{\text{min}} \approx G^{-1} G\_d U\_2
+\end{equation\*}
+
+where \\(U\_2 = U\_1^{-1}\\) is some all-pass transfer function matrix.
+
+We see that for disturbances entering at the plant inputs, \\(G\_d = G\\), we get \\(G\_{\text{min}} = U\_2\\), so a simple constant unit gain controller yields a good trade-off between output performance and input usage.
+
+
+#### Summary of Mixed-Sensitivity \\(\hinf\\) Synthesis {#summary-of-mixed-sensitivity-hinf-synthesis}
+
+In the mixed-sensitivity \\(S/KS\\) problem, the objective is to minimize the \\(\hinf\\) norm of:
+
+\begin{equation} \label{eq:s\_ks\_mixed\_sensitivity}
+ N = \begin{bmatrix}
+ W\_P S \\\\
+ W\_U K S
+ \end{bmatrix}
+\end{equation}
+
+Here are some guidelines for the choice of the weights \\(W\_P\\) and \\(W\_U\\):
+
+- \\(KS\\) is the transfer function from \\(r\\) to \\(u\\), so for a system which has been scaled, a reasonable initial choice for the input weight is \\(W\_U = I\\)
+- \\(S\\) is the transfer function from \\(r\\) to \\(-e = r-y\\). A common choice for the performance weight is \\(W\_P = \text{diag}\\{w\_{p\_i}\\}\\) with:
+
+ \begin{equation\*}
+ w\_{p\_i} = \frac{s/M\_i + \w\_{B\_i}^\*}{s + \w\_{B\_i}^\*A\_i}, \quad A\_i \ll 1
+ \end{equation\*}
+
+ Selecting \\(A\_i \ll 1\\) ensures approximate integral action.
+ Often we select \\(M\_i\\) about 2 for all outputs, whereas \\(\w\_{B\_i}^\*\\) may be different for each output.
+
+For disturbance rejection, we may in some cases want a steeper slope for \\(w\_{P\_i}(s)\\) at low frequencies.
+However it may be better to **consider the disturbances explicitly** by considering the \\(\hinf\\) norm of:
+
+\begin{equation} \label{eq:mixed\_sensitivity\_4}
+ N = \begin{bmatrix}
+ W\_P S & W\_P S G\_d \\\\
+ W\_U K S & W\_U K S G\_d
+ \end{bmatrix}
+\end{equation}
+
+We can also considerate \\(T\\) which is the transfer function from \\(-n\\) to \\(y\\). To reduce the sensitivity to noise and uncertainty, we want \\(T\\) small at high frequencies, and so we may want **additional roll-off** in \\(L\\).
+This can be achieved in several ways:
+
+- One approach is to add \\(W\_T T\\) to the stack for \\(N\\) where \\(W\_T = \text{diag}\\{w\_{T\_i}\\}\\) and \\(\abs{w\_{T\_i}}\\) is smaller than 1 at low frequencies and large at high frequencies
+- A more direct approach is to **add high-frequency dynamics** \\(W\_1(s)\\) **to the plant model** to ensure that the resulting shaped plant, \\(G\_S=GW\_1\\) rolls off with the desired slope. We then obtain an \\(\hinf\\) optimal controller \\(K\_S\\) for this shaped plant, and finally include \\(W\_1(s)\\) in the controller \\(K=W\_1 K\_S\\)
+
+
+### Introduction to MIMO RHP-Zeros {#introduction-to-mimo-rhp-zeros}
+
+Whereas the poles \\(p\\) of MIMO system \\(G\\) are essentially poles of elements of \\(G\\), the zeros are generally not the zeros of elements of \\(G\\).
+However, for square MIMO plants, the poles and zeros are in most cases the poles and zeros of \\(\det G(s)\\).
+
+
+
+The zeros \\(z\\) of a MIMO system \\(G\\) are defined as the values \\(s=z\\) where \\(G(s)\\) loses rank.
+
+
+
+As for SISO systems, we find that **RHP-zeros impose fundamental limitations on control**.
+Poles and zeros of MIMO systems have **directions**:
+
+- We can find the **direction of a zero** by looking at the direction in which the matrix \\(G(z)\\) has zero gain
+- Pole direction is direction where \\(G(p)\\) is infinite
+
+It is generally possible to move the effect of RHP-zero to particular outputs.
+If it is not, the zero is called a "**pinned zero**".
+
+
+### Condition Number and RGA {#condition-number-and-rga}
+
+
+#### Condition Number {#condition-number}
+
+
+
+We define the **condition number** of a matrix as the ratio between its maximum and minimum singular values:
+
+\begin{equation} \label{eq:condition\_number}
+ \gamma(G) \triangleq \maxsv(G)/\minsv(G)
+\end{equation}
+
+
+
+A matrix with large condition number is said to be **ill-conditioned**.
+
+For a non-singular square matrix \\(\minsv(G)=1/\maxsv(G^{-1})\\), so \\(\gamma(G) = \maxsv(G) \maxsv(G^{-1})\\).
+It then follows that the condition number is large if the product of the largest element in \\(G\\) and \\(G^{-1}\\) is large.
+
+Note that the condition number depends strongly on scaling. One might consider minimizing the condition number over all possible scalings.
+This results in the **minimized or optimal condition number** which is defined by:
+
+\begin{equation} \label{eq:condition\_number\_optimal}
+ \gamma^\*(G) = \min\_{D\_1,D\_2} \gamma(D\_1 G D\_2)
+\end{equation}
+
+If the condition number is small, then the multivariable effects of uncertainty are not likely to be serious.
+However if the condition number is large (say, larger than 10), then this may indicate control problems.
+
+
+#### Relative Gain Array (RGA) {#relative-gain-array--rga}
+
+
+
+The **relative gain array** (RGA) for a non-singular square matrix \\(G\\) is a square matrix defined as:
+
+\begin{equation} \label{eq:relative\_gain\_array}
+ \text{RGA}(G) = \Lambda(G) \triangleq G \times G^{-T}
+\end{equation}
+
+where \\(\times\\) is element-by-element multiplication
+
+
+
+In most case, it is the value of the RGA at frequencies close to crossover which is most important.
+
+The RGA has interesting algebraic properties:
+
+- It is independent of input and output scaling
+- Its rows and columns sum to one
+- The sum-norm of the RGA \\(\\|\Lambda\\|\_\text{sum}\\) is close to the minimized condition number \\(\gamma^\*\\).
+ Plants with large RGA-elements are thus always ill-conditioned
+- The RGA is the identity matrix if \\(G\\) is upper of lower triangular. This follows that \\(\Gamma - I\\) provides a **measure of two-way interactions**
+
+It has also a number of useful **control properties**:
+
+- Plants with large RGA-elements around the crossover frequency are fundamentally difficult to control because of sensitivity to input uncertainty
+- If the sign of a RGA-element changes from \\(s=0\\) to \\(s=\infty\\), then there is a RHP-zero in \\(G\\)
+- The definition of the RGA may be generalized to non-square matrices by using the pseudo inverse
+- The **RGA-number** can be used as a measure of diagonal dominance: \\(\\|\Lambda(G)-I\\|\_{\text{sum}}\\)
+- For decentralized control, we prefer pairing input and outputs for which the RGA-number at crossover frequencies is close to \\(0\\)
+
+
+### Introduction to Robustness for MIMO Plants {#introduction-to-robustness-for-mimo-plants}
+
+Multivariable plants can show a sensitivity to uncertainty which is fundamentally different from what is possible in SISO systems.
+It is possible to have excellent stability margins (GM and PM) when considering one loop at a time, but small simultaneous input gain errors can give instability.
+
+For SISO systems, we generally have that nominal performance and robust stability imply robust performance, but this is not the case for MIMO systems.
+
+Although we have **useful indicators of robustness problems** (RGA-number, Sensitivity Peaks, etc), they provide no exact answer to whether a given source of uncertainty will yield instability or poor performance.
+The **structured singular value** \\(\mu\\) is a tool for analyzing the effects of model uncertainty.
+
+
+### General Control Problem Formulation {#general-control-problem-formulation}
+
+The general control problem formulation is represented in [Figure 6](#figure--fig:general-control-names) (introduced in (Doyle 1983)).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control_names.png" caption="Figure 6: General control configuration" >}}
+
+
+
+**Control Design Problem**:
+Find a controller \\(K\\) which based on the information in \\(v\\), generates a control signal \\(u\\) which counteracts the influence of \\(w\\) on \\(z\\), thereby minimizing the closed-loop norm from \\(w\\) to \\(z\\).
+
+
+
+
+#### Obtaining the Generalized Plant \\(P\\) {#obtaining-the-generalized-plant-p}
+
+We must first find a block diagram representation of the system and identify the signals \\(w\\), \\(z\\), \\(u\\) and \\(v\\).
+Then we have to break all the "loops" entering and exiting the controller \\(K\\) to obtain \\(P\\) such that:
+
+\begin{equation} \label{eq:generalized\_plant\_inputs\_outputs}
+ \begin{bmatrix}
+ z \\\\
+ v
+ \end{bmatrix} = P \begin{bmatrix}
+ w \\\\
+ u
+ \end{bmatrix}
+\end{equation}
+
+
+#### Controller Design: Including Weights in \\(P\\) {#controller-design-including-weights-in-p}
+
+In order to get a meaningful controller synthesis problem, for example in terms of the \\(\hinf\\) norms, we generally have to include the weights \\(W\_z\\) and \\(W\_w\\) in the generalized plant \\(P\\) ([Figure 7](#figure--fig:general-plant-weights)).
+We consider:
+
+- The weighted or normalized exogenous inputs \\(w\\) (where \\(\tilde{w} = W\_w w\\) consists of the "physical" signals entering the system)
+- The weighted or normalized controlled outputs \\(z = W\_z \tilde{z}\\) (where \\(\tilde{z}\\) often consists of the control error \\(y-r\\) and the manipulated input \\(u\\))
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_plant_weights.png" caption="Figure 7: General Weighted Plant" >}}
+
+The weighted matrices are usually frequency dependent and typically selected such that weighted signals \\(w\\) and \\(z\\) are of magnitude 1.
+
+
+#### Partitioning the Generalized Plant \\(P\\) {#partitioning-the-generalized-plant-p}
+
+We often partition \\(P\\) as:
+
+\begin{equation} \label{eq:general\_plant\_partitioning}
+ \begin{bmatrix}
+ z \\\\
+ v
+ \end{bmatrix} = \begin{bmatrix}
+ P\_{11} & P\_{12} \\\\
+ P\_{21} & P\_{22}
+ \end{bmatrix} \begin{bmatrix}
+ w \\\\
+ u
+ \end{bmatrix}
+\end{equation}
+
+\\(P\_{22}\\) has dimensions compatible with the controller.
+
+
+#### Analysis: Closing the Loop the get \\(N\\) {#analysis-closing-the-loop-the-get-n}
+
+In the previous representations, the controller \\(K\\) has a separate block. This is useful when **synthesizing** the controller. However, for **analysis** of closed-loop performance the controller is given, and we may absorb \\(K\\) into the interconnection structure and obtain the system \\(N\\).
+
+
+
+**Closed-loop transfer function** \\(N\\):
+
+\begin{equation} \label{eq:N\_formula}
+ z = N w
+\end{equation}
+
+\\(N\\) is given by:
+
+\begin{equation\*}
+ N = P\_{11} + P\_{12}K(I-P\_{22}K)^{-1}P\_{12} \triangleq F\_l(P, K)
+\end{equation\*}
+
+where \\(F\_l(P, K)\\) denotes a **lower linear fractional transformation** (LFT).
+
+
+
+
+#### A General Control Configuration Including Model Uncertainty {#a-general-control-configuration-including-model-uncertainty}
+
+The general control configuration may be extended to include model uncertainty as shown in [Figure 8](#figure--fig:general-config-model-uncertainty).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control_Mdelta.png" caption="Figure 8: General control configuration for the case with model uncertainty" >}}
+
+The matrix \\(\Delta\\) is a block-diagonal matrix that includes all possible perturbations (representing uncertainty).
+It is usually normalized in such a way that \\(\hnorm{\Delta} \leq 1\\).
+
+
+### Conclusion {#conclusion}
+
+
+
+The **Singular Value Decomposition** (SVD) of the plant transfer function matrix provides insight into **multivariable directionality**.
+
+Other useful tools for analyzing directionality and interactions are the **condition number** and the **Relative Gain Array** (RGA).
+
+**Closed loop performance** may be analyzed in the frequency domain by evaluating the **maximum singular value of the sensitivity function** as the function of frequency.
+
+**Multivariable RHP-zeros** impose fundamental limitations on performance, but for MIMO systems we can often direct the undesired effect of a RHP-zero to a subset of the outputs.
+
+MIMO systems are often **more sensitive to uncertainty** than SISO systems.
+
+
+
+
+## Elements of Linear System Theory {#elements-of-linear-system-theory}
+
+
+
+
+### System Descriptions {#system-descriptions}
+
+For linear systems there are several alternative system representations:
+
+- **state-space representation** often follows directly from a physical model, and is used in most **numerical calculations**.
+- **transfer function representation** is a nice compact representation which yields invaluable insights; it allows for series connections to be represented by multiplication of transfer functions. It also leads directly to the frequency response by setting \\(s = j\w\\).
+- **coprime factorization** is a factorization into two stable systems, and that it is useful for representing the class of all stabilizing controllers. It forms the basis for the very useful coprime uncertainty description.
+
+
+#### State-Space Representation {#state-space-representation}
+
+A natural way to represent many physical systems is by nonlinear state-space models of the form
+
+\begin{equation\*}
+ \dot{x} \triangleq \frac{dx}{dt} = f(x, u);\quad y = g(x, u)
+\end{equation\*}
+
+Linear state-space models may then be derived from the linearization of such models.
+
+\begin{align\*}
+\dot{x}(t) & = A x(t) + B u(t)\\\\
+y(t) & = C x(t) + D u(t)
+\end{align\*}
+
+where \\(A\\), \\(B\\), \\(C\\) and \\(D\\) are real matrices.
+
+These equations may be rewritten as
+
+\begin{equation\*}
+ \begin{bmatrix}
+ \dot{x} \\\\
+ y
+ \end{bmatrix} = \begin{bmatrix}
+ A & B \\\\
+ C & D
+ \end{bmatrix}
+ \begin{bmatrix}
+ x \\\\
+ u
+ \end{bmatrix}
+\end{equation\*}
+
+which gives rise to the short-hand notation
+
+\begin{equation}
+ G = \left[ \begin{array}{c|c}
+ A & B \cr \hline
+ C & D
+ \end{array} \right]
+\end{equation}
+
+The state-space representation of a system is not unique, there exist realizations with the same input-output behavior, but with additional unobservable and/or uncontrollable state.
+
+
+
+A minimal realization is a realization with the **fewest number of states** and consequently **no unobservable or uncontrollable modes**.
+
+
+
+The state-space representation yields an internal description of the system which may be useful if the model is derived from physical principles. It is also more suitable for numerical calculations.
+
+
+#### Impulse Response Representation {#impulse-response-representation}
+
+The impulse response matrix is
+
+\begin{equation\*}
+ g(t) = \begin{cases}
+0 & t < 0 \\\\
+C e^{At} B + D \delta(t) & t \geq 0
+\end{cases}
+\end{equation\*}
+
+The \\(ij\\)'th element of the impulse response matrix, \\(g\_{ij}(t)\\), represents the response \\(y\_i(t)\\) to an impulse \\(u\_j(t)=\delta(t)\\) for a systems with a zero initial state.
+
+With initial state \\(x(0) = 0\\), the dynamic response to an arbitrary input \\(u(t)\\) is
+
+\begin{equation\*}
+ y(t) = g(t)\*u(t) = \int\_0^t g(t-\tau)u(\tau)d\tau
+\end{equation\*}
+
+
+#### Transfer Function Representation - Laplace Transforms {#transfer-function-representation-laplace-transforms}
+
+The transfer function representation is unique and is defined as the Laplace transform of the impulse response.
+
+
+
+We can also obtain the transfer function representation from the state-space representation by taking the Laplace transform of the state-space equations
+
+\begin{equation\*}
+ s x(s) = A x(s) + B u(s) \ \Rightarrow \ x(s) = (sI-A)^{-1} B u(s)
+\end{equation\*}
+
+\begin{equation\*}
+ y(s) = C x(s) + D u(s) \ \Rightarrow \ y(s) = \underbrace{\left(C(sI-A)^{-1}B+D\right)}\_{G(s)}u(s)
+\end{equation\*}
+
+Time delays and improper systems can be represented by Laplace transforms, but do not have a state-space representation.
+
+
+#### Coprime Factorization {#coprime-factorization}
+
+
+
+**Right coprime factorization of \\(G\\)**:
+
+\begin{equation\*}
+ G(s) = N\_r(s) M\_r^{-1}(s)
+\end{equation\*}
+
+where \\(N\_r(s)\\) and \\(M\_r(s)\\) are stable coprime transfer functions.
+
+
+
+The stability implies that \\(N\_r(s)\\) should contains all the RHP-zeros of \\(G(s)\\), and \\(M\_r(s)\\) should contain as RHP-zeros all the RHP-poles of \\(G(s)\\).
+Mathematically, coprimeness means that there exist stable \\(U\_r(s)\\) and \\(V\_r(s)\\) such that the Bezout identity is satisfied: \\(U\_r N\_r + V\_r M\_r = I\\)
+
+
+### State Controllability and State Observability {#state-controllability-and-state-observability}
+
+There are **many ways to check for state controllability and observability**, e.g. with Gramians, input/output pole vectors, controllability/observability matrix, etc.
+
+
+##### Input and output pole vectors {#input-and-output-pole-vectors}
+
+The method which yields the most insight is probably to compute the input and output directions associated with each pole (mode).
+
+For the case when \\(A\\) has distinct eigenvalues, we have the following dyadic expansion of the transfer function matrix from inputs to outputs
+
+\begin{equation\*}
+ G(s) = \sum\_{i=1}^{n} \frac{C t\_i q\_i^H B}{s - \lambda\_i} + D = \sum\_{i=1}^{n} \frac{y\_{p\_i} u\_{p\_i}}{s - \lambda\_i} + D
+\end{equation\*}
+
+- The \\(i\\)'th **input pole vector** \\(u\_{p\_i} \triangleq q\_i^H B\\) is an indication of how much the \\(i\\)'th mode is excited (and thus may be "controlled") by the inputs.
+- The \\(i\\)'th **output pole vector** \\(y\_{p\_i} \triangleq C t\_i\\) indicates how much the \\(i\\)'th mode is observed in the outputs.
+
+
+##### State Controllability {#state-controllability}
+
+Let \\(\lambda\_i\\) be the \\(i^{\text{th}}\\) eigenvalue of \\(A\\), \\(q\_i\\) the corresponding left eigenvector (\\(q\_i^H A = \lambda\_i q\_i^H\\)), and \\(u\_{p\_i} = B^H q\_i\\) the \\(i^{\text{th}}\\) input pole vector. Then the system \\((A, B)\\) is state controllable if and only if
+
+\begin{equation\*}
+ u\_{p\_i} \neq 0, \forall i
+\end{equation\*}
+
+That is if and only if all its input pole vectors are nonzero.
+
+
+##### State Observability {#state-observability}
+
+Let \\(\lambda\_i\\) be the \\(i^{\text{th}}\\) eigenvalue of \\(A\\), \\(t\_i\\) the corresponding right eigenvector (\\(A t\_i = \lambda\_i t\_i\\)), and \\(y\_{p\_i} = C t\_i\\) the \\(i^{\text{th}}\\) output pole vector. Then the system \\((A, C)\\) is state observable if and only if
+
+\begin{equation\*}
+ y\_{p\_i} \neq 0, \forall i
+\end{equation\*}
+
+That is if and only if all its output pole vectors are nonzero.
+
+
+##### Minimal realization {#minimal-realization}
+
+A state space realization \\((A, B, C, D)\\) of \\(G(s)\\) is said to be a minimal realization of \\(G(s)\\) if \\(A\\) has the smallest possible dimension. The smallest dimension is called the **McMillan degree** of \\(G(s)\\). A mode is hidden if it is not state controllable or observable and thus does not appear in the minimal realization.
+It follows that a state-space realization is minimal if and only if \\((A, B)\\) is state controllable and \\((A, C)\\) is state observable.
+
+
+### Stability {#stability}
+
+
+
+**Internal Stability**:
+A system is (internally) stable is none of its components contain hidden unstable modes and the injection of bounded external signals at any place in the system result in bounded output signals measured anywhere in the system.
+
+
+
+
+
+A system is (state) **stabilizable** if all unstable modes are state controllable.
+A system is (state) **detectable** if all unstable modes are state observable.
+
+A system with unstabilizable or undetectable modes is said to contain hidden unstable modes.
+
+
+
+
+### Poles {#poles}
+
+
+
+**Multivariable Pole**:
+The poles \\(p\_i\\) of a system with state-space description are the **eigenvalues** \\(\lambda\_i(A), i=1, \dotsc, n\\) of the matrix \\(A\\).
+The **pole or characteristic polynomial** \\(\phi(s)\\) is defined as \\(\phi(s) \triangleq \det(sI-A) = \Pi\_{i=1}^n (s-p\_i)\\).
+Thus the poles are the roots or the characteristic equation
+
+\begin{equation\*}
+ \phi(s) \triangleq \det(sI-A) = 0
+\end{equation\*}
+
+
+
+
+#### Poles and Stability {#poles-and-stability}
+
+A linear dynamic system is **stable if and only if all the poles are in the LHP**, that is, \\(\text{Re}\\{\lambda\_i(A)\\} < 0, \forall i\\)
+
+
+#### Poles from Transfer Functions {#poles-from-transfer-functions}
+
+The pole polynomial \\(\phi(s)\\) corresponding to a minimal realization of a system with transfer function \\(G(s)\\) is the **least common denominator** of all non-identically-zero minors of all orders of \\(G(s)\\).
+
+The poles are essentially the sum of the poles in the elements of the transfer function, but to get the correct multiplicity a more careful analysis is needed.
+
+
+#### Pole Vectors and Directions {#pole-vectors-and-directions}
+
+In multivariable system poles have **directions** associated with them. To quantify this, we use the **input and output pole vectors**.
+
+
+
+**Input pole vector**:
+
+\begin{equation\*}
+ u\_{p\_i} = B^H q\_i
+\end{equation\*}
+
+With \\(q\_i\\) the left eigenvector of \\(A\\) (\\({q\_i}^T A = \lambda\_i {q\_i}^T\\)).
+The input pole direction is \\(\frac{1}{\normtwo{u\_{p\_i}}} u\_{p\_i}\\)
+
+
+
+
+
+**Output pole vector**:
+
+\begin{equation\*}
+ y\_{p\_i} = C t\_i
+\end{equation\*}
+
+With \\(t\_i\\) the right eigenvector of \\(A\\) (\\(A t\_i = \lambda\_i t\_i\\)).
+The output pole direction is \\(\frac{1}{\normtwo{y\_{p\_i}}} y\_{p\_i}\\)
+
+
+
+The pole directions may be defined in terms of the transfer function matrix by evaluating \\(G(s)\\) at the pole \\(p\_i\\) and considering the directions of the resulting complex matrix \\(G(p\_i)\\). The matrix is infinite in the direction of the pole, and we may write
+
+\begin{equation\*}
+ G(p\_i) u\_{p\_i} = \infty \cdot y\_{p\_i}
+\end{equation\*}
+
+where \\(u\_{p\_i}\\) is the input pole direction and \\(y\_{p\_i}\\) is the output pole direction.
+
+The pole directions may in principle be obtained from an SVD of \\(G(p\_i) = U\Sigma V^H\\).
+Then \\(u\_{p\_i}\\) is the first column in \\(V\\) (corresponding to the maximum singular value) and \\(y\_{p\_i}\\) the first column in \\(U\\).
+
+The pole direction is usually very interesting because it gives information about which output (or combination of outputs) may be difficult to control.
+
+
+### Zeros {#zeros}
+
+Zeros of a system arise when competing effects, internal to the system, are such that the output is zero even when the inputs (and the states) are not themselves identically zero.
+
+
+
+**Multivariable Zero**:
+\\(z\_i\\) is a zero of \\(G(s)\\) if the rank of \\(G(z\_i)\\) is less than the normal rank of \\(G(s)\\).
+The zero polynomial is defined as \\(z(s) = \Pi\_{i=1}^{n\_z}(s-z\_i)\\) where \\(n\_z\\) is the number of finite zeros of \\(G(s)\\)
+
+
+
+
+#### Zeros from State-Space Realizations {#zeros-from-state-space-realizations}
+
+The state-space equations of a system may be written as
+
+\begin{equation\*}
+ P(s) \begin{bmatrix}
+ x \\\\
+ u
+ \end{bmatrix} = \begin{bmatrix}
+ 0 \\\\
+ y
+ \end{bmatrix}, \quad P(s) = \begin{bmatrix}
+ sI-A & -B \\\\
+ C & D
+ \end{bmatrix}
+\end{equation\*}
+
+The zeros are then the values \\(s=z\\) for which the polynomial system matrix, \\(P(s)\\), loses rank, resulting in zero output for some non-zero input.
+
+
+#### Zeros from Transfer Functions {#zeros-from-transfer-functions}
+
+The zero polynomial \\(z(s)\\), corresponding to a minimal realization of the system, is the greatest divisor of all the numerator of all order-\\(r\\) minors of \\(G(s)\\), where \\(r\\) is the normal rank of \\(G(s)\\), provided that these minors have been adjusted in such a way as to have the pole polynomial \\(\phi(s)\\) as their denominator.
+
+The zeros are values of \\(s\\) for which \\(G(s)\\) looses rank. In general, there is no relationship between the elements of the transfer function and its (multivariable) zeros.
+
+
+#### Zero Directions {#zero-directions}
+
+Let \\(G(s)\\) have a zero at \\(s=z\\). Then \\(G(s)\\) loses rank at \\(s=z\\), and there will exist non-zero vectors \\(u\_z\\) and \\(y\_z\\) such that
+
+\begin{equation\*}
+ G(z) u\_z = 0 \cdot y\_z
+\end{equation\*}
+
+Here \\(u\_z\\) is defined as the **input zero direction** and \\(y\_z\\) is defined as the **output zero direction**.
+
+From a practical point of view, \\(y\_z\\) is usually of more interest than \\(u\_z\\) because it give information about **which combination of outputs may be difficult to control**.
+
+Again, we may obtain input and output zero directions from an SVD of \\(G(s)\\): \\(u\_z\\) is the last column of \\(U\\) and \\(y\_z\\) is the last column of \\(V\\) (corresponding to the zero singular value of \\(G(z)\\)).
+
+
+### Some Remarks on Poles and Zeros {#some-remarks-on-poles-and-zeros}
+
+- We should always find a **minimal realization** of the system **before computing the zeros**.
+- For a square system \\(G(s)\\), the poles and zeros are _essentially_ the poles and zeros of \\(\det G(s)\\).
+- Poles and zeros can occurs at the same location, but their directions may be different so they do not cancel or otherwise interact with each other.
+- If \\(G^{-1}(s)\\) exists, then the poles of \\(G(s)\\) are the zeros of \\(G^{-1}(s)\\) and vice versa (as for SISO systems).
+- Zeros usually appear when there are fewer inputs or outputs than states or when \\(D \neq 0\\)
+- **Moving poles and zeros**:
+ - **Feedback**: \\(G(I+GK)^{-1}\\). Poles (of \\(G\\)) are moved and zeros (of \\(G\\)) are unchanged (in addition we get as zeros the poles of \\(K\\))
+ - **Series**: \\(GK\\). Poles and zeros are unchanged (with the exception of possible cancellations between poles and zeros in \\(G\\) and \\(K\\))
+ - **Parallel**: \\(G+K\\). Poles are unchanged, zeros are moved (but note that physically a parallel interconnection requires an additional manipulated input)
+- **Pinned zeros**. A zero is pinned to a subset of the outputs if \\(y\_z\\) has one or more elements equal to zero. Their effect cannot be moved freely to any output. Similarly, a zero is pinned to certain input if \\(u\_z\\) has one or more elements equal to zero.
+
+
+
+**Effect of feedback on poles and zeros**:
+Consider a SISO negative feedback system with plant \\(G(s)=\frac{z(s)}{\phi(s)}\\) and a constant gain controller, \\(K(s)=k\\). The closed-loop response from reference \\(r\\) to output \\(y\\) is
+
+\begin{equation\*}
+ T(s) = \frac{kG(s)}{1+kG(s)} = \frac{kz(s)}{\phi(s)+kz(s)} = k\frac{z\_{\text{cl}}(s)}{\phi\_{\text{cl}}(s)}
+\end{equation\*}
+
+We note that:
+
+- The zero locations are unchanged by feedback
+- The pole locations are changed by feedback
+
+\begin{align\*}
+\phi\_{\text{cl}(s)} &\underset{k \rightarrow 0}{\longrightarrow} \phi(s) \\\\
+\phi\_{\text{cl}(s)} &\underset{k \rightarrow \infty}{\longrightarrow} k z(s)
+\end{align\*}
+
+That is, as we increase the feedback gain, **the closed loop poles moves from open-loop poles to the open-loop zeros**.
+RHP-zeros therefore imply high gain instability.
+
+
+
+
+### Internal Stability of Feedback Systems {#internal-stability-of-feedback-systems}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_stability.png" caption="Figure 9: Block diagram used to check internal stability" >}}
+
+Assume that the components \\(G\\) and \\(K\\) contain no unstable hidden modes. Then the feedback system in [Figure 9](#figure--fig:block-diagram-for-stability) is **internally stable** if and only if all four closed-loop transfer matrices are stable.
+
+\begin{align\*}
+ &(I+KG)^{-1} & -K&(I+GK)^{-1} \\\\
+G&(I+KG)^{-1} & &(I+GK)^{-1}
+\end{align\*}
+
+Assume there are no RHP pole-zero cancellations between \\(G(s)\\) and \\(K(s)\\), the feedback system in [Figure 9](#figure--fig:block-diagram-for-stability) is internally stable if and only if **one** of the four closed-loop transfer function matrices is stable.
+
+
+### Stabilizing Controllers {#stabilizing-controllers}
+
+The **Q-parameterization** is a parameterization that generates all controllers that yield internal stability of the closed loop transfer function.
+
+
+
+**Q-parameterization for stable plant**:
+For stable plants, a parameterization of all stabilizing negative feedback controllers for the stable plant \\(G(s)\\) is given by
+
+\begin{equation\*}
+ K = (I-QG)^{-1} Q = Q(I-GQ)^{-1}
+\end{equation\*}
+
+where the parameter \\(Q\\) is any stable transfer function matrix.
+
+
+
+This may have significant advantages in controller synthesis where the objective is to a find a \\(K\\) which minimizes some norm of \\(N(K)\\).
+The search over stabilizing \\(K\\) (which involves checking the stability of closed-loop transfer functions) is replaced by a search over stable \\(Q\\).
+The closed-loop transfer functions turn out to be affine in \\(Q\\), e.g. \\(S\\) or \\(T\\) can be written \\(H1 + H2 Q H3\\), which may significantly simplify the optimization (e.g. compared to \\(GK(I+GK)^{-1}\\) which is fractional in \\(K\\)).
+
+
+### Stability Analysis in the Frequency Domain {#stability-analysis-in-the-frequency-domain}
+
+
+
+**Generalized (MIMO) Nyquist theorem**:
+Let \\(P\_{ol}\\) denote the number of unstable poles in \\(L(s) = G(s)K(s)\\). The closed-loop system with loop transfer \\(L(s)\\) and negative feedback is stable if and only if the Nyquist plot of \\(\det(I+L(s))\\):
+
+1. makes \\(P\_{ol}\\) anti-clockwise encirclements of the origin
+2. does not pass through the origin
+
+
+
+
+
+The **spectral radius** \\(\rho(L(j\w))\\) is defined as the maximum eigenvalue magnitude:
+
+\begin{equation\*}
+ \rho(L(j\w)) \triangleq \max\_{i} \abs{\lambda\_i (L(j\w))}
+\end{equation\*}
+
+
+
+
+
+**Spectral radius stability condition**:
+Consider a system with a stable loop transfer function \\(L(s)\\). Then the closed-loop system is stable if
+
+\begin{equation\*}
+ \rho(L(j\w)) < 1 \quad \forall \w
+\end{equation\*}
+
+
+
+
+
+**Small Gain Theorem**:
+Consider a system with a stable loop transfer function \\(L(s)\\). Then the closed-loop system is stable if
+
+\begin{equation\*}
+ \norm{L(j\w)} < 1 \quad \forall \w
+\end{equation\*}
+
+Where \\(\norm{L}\\) denotes any matrix norm that satisfies the multiplicative property \\(\norm{AB} \leq \norm{A}\cdot\norm{B}\\)
+
+
+
+The Small gain theorem for SISO system says that the system is stable if \\(\abs{L(j\w)} < 1\\) at all frequencies \\(\w\\). This is clearly a **very conservative condition** as no phase information is taken into account.
+
+This may be understood as follows: the signals which "return" in the same direction after "one turn around the loop" are magnified by the eigenvalues \\(\lambda\_i\\) (and the directions are the eigenvectors \\(x\_i\\)):
+
+\begin{equation\*}
+ L x\_i = \lambda\_i x\_i
+\end{equation\*}
+
+So if all the eigenvalues \\(\lambda\_i\\) are less than 1 in magnitude, all signals become smaller after each round, and the closed-loop system is stable.
+
+
+### System Norms {#system-norms}
+
+
+#### \\(\htwo\\) norm {#htwo-norm}
+
+
+
+Consider a strictly proper system \\(G(s)\\). The \\(\htwo\\) norm is:
+
+\begin{align\*}
+\normtwo{G(s)} &\triangleq \sqrt{\frac{1}{2\pi} \int\_{-\infty}^{\infty} \text{tr}\left(G(j\w)^HG(j\w)\right) d\w} \\\\
+ & = \sqrt{\frac{1}{2\pi} \int\_{-\infty}^{\infty} \sum\_i {\sigma\_i}^2(G(j\w)) d\w}
+\end{align\*}
+
+
+
+The \\(\htwo\\) norm can have a stochastic interpretation where we measure the **expected root mean square value of the output in response to white noise excitation**.
+
+
+#### \\(\hinf\\) norm {#hinf-norm}
+
+
+
+Consider a proper linear stable system \\(G(s)\\). The \\(\hinf\\) norm is the peak value of its maximum singular value:
+
+\begin{equation\*}
+ \hnorm{G(s)} \triangleq \max\_{\w} \maxsv(G(j\w))
+\end{equation\*}
+
+
+
+The \\(\hinf\\) norm has several interpretations in the time and frequency domains:
+
+- it is the peak of the transfer function magnitude
+- by introducing weights, it can be interpreted as the **magnitude of the some closed-loop transfer function relative to an upper bound**
+- it is the worst case steady-state gain for sinusoidal inputs at any frequency
+- it is equal to the 2-norm in the time domain:
+
+\begin{equation\*}
+ \hnorm{G(s)} = \max\_{w(t) \neq 0} \frac{\normtwo{z(t)}}{\normtwo{w(t)}} = \max\_{\normtwo{w(t)} = 1} \normtwo{z(t)}
+\end{equation\*}
+
+- is has an interpretation as an induced norm in terms of the expected values of stochastic signals
+
+
+#### Difference Between the \\(\htwo\\) and \\(\hinf\\) norms {#difference-between-the-htwo-and-hinf-norms}
+
+Minimizing the \\(\hinf\\) norm corresponds to minimizing the peak of the largest singular value, whereas minimizing the \\(\htwo\\) norm corresponds to minimizing the sum of the square of all the singular values over all frequencies.
+
+
+
+**Why is the \\(\hinf\\) norm is so popular?**
+
+The \\(\hinf\\) norm is **convenient for representing unstructured model uncertainty** and because if satisfies the multiplicative property \\(\hnorm{A(s)B(s)} \leq \hnorm{A(s)} \cdot \hnorm{B(s)}\\)
+It follows that the \\(\hinf\\) norm is an **induced norm**.
+
+
+
+The \\(\htwo\\) norm on the other hand is not and induced norm and does not satisfies the multiplicative property.
+This implies that we cannot, by evaluating the \\(\htwo\\) norm of the individual components say anything about how their series interconnection will behave.
+
+
+#### Hankel norm {#hankel-norm}
+
+The Hankel norm of a stable system \\(G(s)\\) is obtained when one applies an input \\(w(t)\\) up to \\(t=0\\) and measures the output \\(z(t)\\) for \\(t>0\\), and selects \\(w(t)\\) to maximize the ratio of the 2-norms:
+
+\begin{equation\*}
+ \left\\|G(s)\right\\|\_H \triangleq \max\_{w(t)} \frac{\sqrt{\int\_{0}^{\infty} \normtwo{z(\tau)}^2 d\tau }}{\sqrt{\int\_{-\infty}^0 \normtwo{w(\tau)}^2 d\tau}}
+\end{equation\*}
+
+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.
+
+
+## Limitations on Performance in SISO Systems {#limitations-on-performance-in-siso-systems}
+
+
+
+
+### Input-Output Controllability {#input-output-controllability}
+
+
+
+The **input-output controllability** is the **ability to achieve acceptable control performance**; that is, to keep the outputs (\\(y\\)) within specified bounds from their references (\\(r\\)), in spite of unknown but bounded variations, such as disturbances (\\(d\\)) and plant changes, using available inputs (\\(u\\)) and available measurements (\\(y\_m\\)).
+
+
+
+A plant is controllable if there **exists** a controller that yields acceptable performance for all expected plant variation. Thus, **controllability is independent of the controller and is a property of the plant alone**.
+It may be affected by changing the plant itself:
+
+- changing the mechanical design
+- relocating sensors and actuators
+- adding new equipment to dampen disturbances
+- adding extra sensor or actuators
+- changing the configuration of the lower layers of control already in place
+
+
+
+Input-output controllability analysis is applied to a plant to find out **what control performance can be expected**.
+
+It is also called **performance targeting**.
+
+
+
+If the system has been **scaled**, the requirement for acceptable performance is:
+For any disturbance \\(\abs{d} \leq 1\\) and any reference \\(\abs{r} \leq R\\), the **performance requirement** is to keep the control error \\(\abs{e} \leq 1\\) using an input \\(\abs{u} \leq 1\\).
+
+
+### Perfect Control and Plant Inversion {#perfect-control-and-plant-inversion}
+
+To obtain insight into the inherent limitations on performance, let's consider the **input needed to achieve perfect control**.
+Let the plant model be: \\(y = G u + G\_d d\\)
+Since we want perfect control, \\(y = r\\) and we have \\(u = G^{-1} r - G^{-1} G\_d d\\) that represents a perfect feedforward controller.
+
+For a feedback control, \\(u = K(r - y)\\), and we have \\(u = KS r - KSG\_d d\\) that we can rewrite \\(u = G^{-1}Tr - G^{-1}TG\_d d\\).
+
+We see that at frequency where feedback is effective (\\(T \approx I\\)), the input generated by feedback is the same as the perfect control input. That is, **high gain feedback generates an inverse of \\(G\\)**.
+
+Perfect control requires the controller to somehow generate an inverse of \\(G\\). Perfect control cannot be achieved if:
+
+- \\(G\\) contains RHP-zeros (since then \\(G^{-1}\\) is unstable)
+- \\(G\\) contains time delay (since then \\(G^{-1}\\) contains non-causal prediction)
+- \\(G\\) has more pole than zero (since then \\(G^{-1}\\) is unrealizable)
+
+The required input must not exceed maximum physically allowed value (\\(\abs{u} \leq 1\\)), therefore perfect control cannot be achieve if:
+
+- \\(\abs{G^{-1} G\_d}\\) is large (\\(\geq 1\\))
+- \\(\abs{G^{-1} R}\\) is large (\\(\geq 1\\))
+
+
+### Constrain of \\(S\\) and \\(T\\) {#constrain-of-s-and-t}
+
+
+#### \\(S\\) Plus \\(T\\) is One {#s-plus-t-is-one}
+
+
+
+From the definitions \\(S = (I + L)^{-1}\\) and \\(T = L(I+L)^{-1}\\) we derive
+
+\begin{equation} \label{eq:S\_T\_identity}
+ S + T = I
+\end{equation}
+
+
+
+Ideally, we want \\(S\\) small to obtain small control error for commands and disturbances, and \\(T\\) small to avoid sensitivity to noise. There requirements are not simultaneously possible at any frequency.
+
+
+#### The Waterbed Effects {#the-waterbed-effects}
+
+In general, a trade-off between sensitivity reduction and sensitivity increase must be performed whenever:
+
+1. \\(L(s)\\) has at least two more poles than zeros (first waterbed formula)
+2. \\(L(s)\\) has a RHP-zero (second waterbed formula)
+
+
+
+**First Waterbed Formula**:
+
+Suppose that the open-loop transfer function \\(L(s)\\) is rational and has at least two more poles than zeros.
+Suppose also that \\(L(s)\\) has \\(N\_p\\) RHP-poles at locations \\(p\_i\\).
+Then for closed-loop stability, the sensitivity function must satisfy the following **Bode Sensitivity Integral**:
+
+\begin{equation} \label{eq:bode\_sensitivity\_integral}
+ \int\_0^\infty \ln\abs{S(j\w)} d\w = \pi \sum\_{i=1}^{N\_p} \text{Re}(p\_i)
+\end{equation}
+
+
+
+For a **stable plant**, we must have:
+
+\begin{equation} \label{eq:bode\_sensitivity\_integral\_stable}
+ \int\_0^\infty \ln\abs{S(j\w)} d\w = 0
+\end{equation}
+
+The area of sensitivity reduction (\\(\ln\abs{S}\\) negative) must equal the area of sensitivity increase (\\(\ln\abs{S}\\) positive): **the benefits and costs of feedback are balanced**.
+
+For **unstable plant**, the presence of unstable poles usually increase the peak of \\(\abs{S}\\) as seen from the contribution \\(\pi \sum\_{i=1}^{N\_p} \text{Re}(p\_i)\\). This is the price to pay for stabilizing the system.
+
+From the first waterbed formula, we expect that an increase in the bandwidth must come at the expense of a large peak in \\(\abs{S}\\).
+Although this is true in most practical cases, however this is not strictly implied by the formula.
+This is because the increase in area may happen over an infinite frequency range.
+
+
+
+**Second Waterbed Formula**:
+
+Suppose that \\(L(s)\\) has a single real **RHP-zero** \\(z\\) or a complex conjugate pair of zero \\(z=x\pm jy\\), and has \\(N\_p\\) RHP-poles \\(p\_i\\).
+For closed-loop stability, the sensitivity function must satisfy
+
+\begin{equation\*}
+ \int\_0^\infty \ln\abs{S(j\w)} w(z, \w) d\w = \pi \ln \sum\_{i=1}^{N\_p} \abs{\frac{p\_i + z}{\overline{p\_i}-z}}
+\end{equation\*}
+
+where if the zero is real
+
+\begin{equation\*}
+ w(z, \w) = \frac{2z}{z^2 + \w^2}
+\end{equation\*}
+
+and if the zero pair is complex
+
+\begin{equation\*}
+ w(z, \w) = \frac{x}{x^2 + (y-\w)^2} + \frac{x}{x^2 + (y+\w)^2}
+\end{equation\*}
+
+
+
+The second waterbed formula implies that the peak of \\(\abs{S}\\) is even higher for plants with RHP-zeros.
+
+The weight \\(w(z, \w)\\) effectively "cuts off" the contribution from \\(\ln\abs{S}\\) to the integral at frequencies \\(\w > z\\).
+So we have approximately:
+
+\begin{equation\*}
+ \int\_0^z \ln \abs{S(j\w)} d\w \approx 0
+\end{equation\*}
+
+This is similar to the Bode sensitivity integral, except that the trade-off is done over a limited frequency range.
+Thus, a large peak for \\(\abs{S}\\) is unavoidable if we try to push down \\(\abs{S}\\) at low frequencies.
+
+
+#### Interpolation Constraints {#interpolation-constraints}
+
+
+
+**Interpolation contraints**:
+
+If \\(p\\) is a **RHP-pole** of the loop transfer function \\(L(s)\\) then
+
+\begin{equation} \label{eq:interpolation\_constaints\_p}
+ T(p) = 1, \quad S(p) = 0
+\end{equation}
+
+If \\(z\\) is a **RHP-zero** of the loop transfer function \\(L(s)\\) then
+
+\begin{equation} \label{eq:interpolation\_constaints\_z}
+ T(z) = 0, \quad S(z) = 1
+\end{equation}
+
+
+
+
+#### Sensitivity Peaks {#sensitivity-peaks}
+
+
+
+**Maximum modulus principle**:
+
+Suppose \\(f(s)\\) is stable, then the maximum value of \\(\abs{f(s)}\\) for \\(s\\) in the RHP is attained on the region's boundary (somewhere along the \\(j\w\\)-axis):
+
+\begin{equation\*}
+ \hnorm{f(j\w)} = \max\_{\omega} \abs{f(j\w)} \geq \abs{f(s\_0)} \quad \forall s\_0 \in \text{RHP}
+\end{equation\*}
+
+
+
+We can derive the following bounds on the peaks of \\(S\\) and \\(T\\) from the maximum modulus principle:
+
+\begin{equation\*}
+ \hnorm{S} \geq \max\_{j} \prod\_{i=1}^{N\_p} \frac{\abs{z\_j + \overline{p\_i}}}{\abs{z\_j - p\_i}} \quad \hnorm{T} \geq \max\_{i} \prod\_{j=1}^{N\_z} \frac{\abs{\overline{z\_j} + p\_i}}{\abs{z\_j - p\_i}}
+\end{equation\*}
+
+This shows that **large peaks** for \\(\abs{S}\\) and \\(\abs{T}\\) are unavoidable if we have a **RHP-zero and RHP-pole located close to each other**.
+
+
+### Limitation Imposed by Time Delays {#limitation-imposed-by-time-delays}
+
+Consider a plant \\(G(s)\\) that contains a time delay \\(e^{-\theta s}\\). Even the "ideal" controller cannot remove this delay and the "ideal" sensitivity function is \\(S = 1 - T = 1 - e^{-\theta s}\\).
+
+
+
+**Upper bound on \\(\w\_c\\) for a time delay \\(\theta\\)**:
+
+\\(S\\) crosses 1 at a frequency of about \\(1/\theta\\), so we expect to have an upper bound on \\(\w\_c\\):
+
+\begin{equation\*}
+ \w\_c < 1/\theta
+\end{equation\*}
+
+
+
+
+### Limitation Imposed by RHP-Zeros {#limitation-imposed-by-rhp-zeros}
+
+RHP-zeros typically appear when we have **competing effects of slow and fast dynamics**. Their presence induces many limitations.
+
+
+#### Inverse Response {#inverse-response}
+
+We can show that the output of a step change in the input of a stable plant with \\(n\_z\\) real RHP-zeros will cross zero \\(n\_z\\) times, that is, we have **inverse response**.
+
+
+#### High Gain Instability {#high-gain-instability}
+
+It is well known that the closed-loop poles migrate from the open-loop poles to the open-loop zeros as the feedback gain increases. Thus **the presence of RHP-zeros implies high-gain instability**.
+
+
+#### Bandwidth Limitation {#bandwidth-limitation}
+
+To derive bounds for the bandwidth, we select performance weight \\(w\_P(s)\\) and we then use the interpolation constraint \\(S(z) = 1\\).
+
+We require \\(\abs{S(j\w)} < 1/\abs{w\_P(j\w)} \quad \forall \w\\), so we must at least require that the weight satisfies \\(\abs{w\_P(z)} < 1\\).
+
+
+##### Performance at low frequencies {#performance-at-low-frequencies}
+
+If we specify performance at low frequencies, we may use the following weight:
+
+\begin{equation\*}
+ w\_P = \frac{s/M + \w\_B^\*}{s + \w\_B^\* A}
+\end{equation\*}
+
+Where \\(\w\_B^\*\\) is the minimum wanted bandwidth, \\(M\\) the maximum peak of \\(\abs{S}\\) and \\(A\\) the steady-state offset.
+
+If we consider a **real RHP-zero**:
+
+\begin{equation\*}
+ \w\_B^\* < z \frac{1 - 1/M}{1 - A}
+\end{equation\*}
+
+For example, with \\(A=0\\) and \\(M=2\\), we must at least require \\(\w\_B^\* < 0.5z\\).
+
+If we consider an **imaginary RHP-zero**:
+
+\begin{equation\*}
+ \w\_B^\* < \abs{z} \sqrt{1 - \frac{1}{M^2}}
+\end{equation\*}
+
+For example, with \\(M=2\\), we must at least require \\(\w\_B^\* < 0.86\abs{z}\\).
+
+
+
+The presence of RHP-zero imposes an **upper bound on the achievable bandwidth** when we want tight control at low frequencies
+
+
+
+
+##### Performance at high frequencies {#performance-at-high-frequencies}
+
+We consider the case where we want **tight control at high frequencies**, by use of the performance weight:
+
+\begin{equation\*}
+ w\_P = \frac{1}{M} + \frac{s}{\w\_B^\*}
+\end{equation\*}
+
+If we consider a **real RHP-zero**:
+
+\begin{equation\*}
+ \w\_B^\* > z \frac{1}{1-1/M}
+\end{equation\*}
+
+For example, with \\(M=2\\) the requirement is \\(\w\_B^\* > 2z\\), so we can only achieve tight control at frequencies beyond the frequency of the RHP-zero.
+
+
+
+The presence of RHP-zero imposes and **lower bound on the achievable bandwidth** when we want tight control at high frequencies
+
+
+
+
+### Limitation Imposed by RHP-Poles {#limitation-imposed-by-rhp-poles}
+
+For unstable plants with a RHP-pole at \\(s = p\\), we **need** feedback for stabilization.
+
+
+
+**RHP-pole Limitation - Input Usage**:
+
+In presence of a RHP-pole at \\(s=p\\):
+
+\begin{equation\*}
+ \hnorm{KS} \geq \abs{G\_s(p)^{-1}}
+\end{equation\*}
+
+where \\(G\_s\\) is the "stable version" of \\(G\\) with its RHP-poles mirrored into the LHP.
+
+Since \\(u = -KS(G\_d d + n)\\) and because of the previous inequality, the presence of disturbances \\(d\\) and measurement noise \\(n\\) may require the input \\(u\\) to saturate.
+When the inputs saturate, the system is practically open-loop and the **stabilization is not possible**.
+
+
+
+
+
+**RHP-pole Limitation - Bandwidth**:
+
+We need to react sufficiently fast.
+For a real RHP-pole \\(p\\) we must require that the closed-loop bandwidth is larger than \\(2p\\).
+The presence of **RHP-poles generally imposes a lower bound on the bandwidth**.
+
+
+
+
+### Combined Unstable (RHP) Poles and Zeros {#combined-unstable--rhp--poles-and-zeros}
+
+A strictly proper plant with a single real RHP-zero \\(z\\) and a single real RHP-pole \\(p\\) can be stabilized by a stable proper controller if and only if \\(z>p\\). In words "the system may go unstable before we have time to react".
+
+In order to achieve acceptable performance and robustness, we must approximately require \\(z>4p\\). That is, we want to RHP-pole to be much lower than the RHP-zero.
+
+The presence of RHP-zeros (or time delays) make stabilization more difficult.
+
+
+### Performance Requirements Imposed by Disturbances and Commands {#performance-requirements-imposed-by-disturbances-and-commands}
+
+
+##### Disturbance rejection {#disturbance-rejection}
+
+Consider a single disturbance \\(d\\) and a constant reference \\(r=0\\). Without control, we have \\(e = G\_d d\\).
+We conclude that no control is needed if \\(\abs{G\_d(j\w)} < 1\\) at all frequencies. In that case, the plant is said to be "**self-regulated**".
+
+If \\(\abs{G\_d(j\w)} > 1\\) at some frequency, then **we need control**. In case of feedback control, we have
+
+\begin{equation\*}
+ e(s) = S(s)G\_d(s)d(s)
+\end{equation\*}
+
+The performance requirement \\(\abs{e(\w)} < 1\\) for any \\(\abs{d(\w)}\\) at any frequency is satisfied if and only if
+
+\begin{equation\*}
+ \abs{S G\_d(j\w)} < 1 \quad \forall\w \quad \Leftrightarrow \quad \abs{S(j\w)} < 1/\abs{G\_d(j\w)} \quad \forall\w
+\end{equation\*}
+
+
+
+If the plant has a RHP-zero at \\(s=z\\), then \\(S(z) = 1\\) and we have the following condition:
+
+\begin{equation\*}
+ \abs{G\_d(z)} < 1
+\end{equation\*}
+
+
+
+
+
+We also have that
+
+\begin{equation\*}
+ \w\_B > \w\_d
+\end{equation\*}
+
+where \\(\w\_d\\) is defined by \\(\abs{G\_d(j\w\_d)} = 1\\).
+
+
+
+The actual bandwidth requirement imposed by disturbances may be higher than \\(\w\_d\\) if \\(\abs{G\_d(j\w)}\\) drops with a slope steeper than \\(-1\\) just before the frequency \\(\w\_d\\). This is because we cannot let the slope of \\(\abs{L(j\w)}\\) around the crossover be much larger than \\(-1\\) due to stability margins. It is however possible to overcome this issue using local feedback loops in series.
+
+
+##### Command tracking {#command-tracking}
+
+Assume than \\(d=0\\) and \\(r(t) = R\sin(\w t)\\). For acceptable control (\\(\abs{e} < 1\\)) we must have
+
+\begin{equation\*}
+ \abs{S(j\w)R}<1 \quad \forall\w\leq\w\_r
+\end{equation\*}
+
+where \\(\w\_r\\) is the frequency up to which performance tracking is required.
+
+
+### Limitation Imposed by Input Constraints {#limitation-imposed-by-input-constraints}
+
+
+
+To achieve acceptable control (\\(\abs{e}<1\\)) and avoid input saturation (\\(\abs{u}<1\\)), we must require:
+
+For **disturbance rejection**:
+
+\begin{equation\*}
+ \abs{G} > \abs{G\_d} - 1 \text{ at frequencies where } \abs{G\_d} > 1
+\end{equation\*}
+
+For **command tracking**:
+
+\begin{equation\*}
+ \abs{G} > \abs{R} - 1 \quad \forall \w \leq \w\_r
+\end{equation\*}
+
+
+
+
+### Limitation Imposed by Phase Lag {#limitation-imposed-by-phase-lag}
+
+Phase lag in the plant present no fundamental limitations, however is usually does on practical designs.
+
+
+
+Let define \\(\w\_u\\) as the frequency where the phase lag of the plant \\(G\\) is \\(\SI{-180}{\degree}\\)
+
+\begin{equation} \label{eq:w\_u\_definition}
+ \angle G(j\w\_u) \triangleq \SI{-180}{\degree}
+\end{equation}
+
+
+
+With simple controllers such as a proportional controller or a PI-controller, the phase lag does pose a fundamental limitation on the achievable bandwidth because of stability bounds:
+
+\begin{equation\*}
+ \w\_c < \w\_u
+\end{equation\*}
+
+However, if the model is exactly known and there are no RHP-zeros or time delays, one may extend \\(\w\_c\\) to infinite frequency by placing zeros in the controller at the plant poles.
+
+
+### Limitation Imposed by Uncertainty {#limitation-imposed-by-uncertainty}
+
+
+##### Uncertainty with feedforward control {#uncertainty-with-feedforward-control}
+
+Perfect control is obtained using a controller which generates the control input
+
+\begin{equation\*}
+ u = G^{-1} r - G^{-1} G\_d d
+\end{equation\*}
+
+When we apply this perfect controller to the actual plant \\(y' = G' u + G\_d' d\\), we find
+
+\begin{equation\*}
+ e' = y' - r = \underbrace{\left( \frac{G'}{G} - 1 \right)}\_{\text{rel. error in }G} r - \underbrace{\left( \frac{G'/G\_d'}{G/G\_d} - 1 \right)}\_{\text{rel. error in } G/G\_d} G\_d' d
+\end{equation\*}
+
+For feedforward control, **the model error propagates directly to the control error**.
+
+If we want acceptable control (\\(\abs{e'}<1\\)), we must require that the model error in \\(G/G\_d\\) is less than \\(1/\abs{G\_d'}\\). This is very difficult to satisfy at frequencies where \\(\abs{G\_d'}\\) is much larger than 1.
+
+The presence of uncertainty then requires us to use feedback control rather than just feedforward control.
+
+
+##### Uncertainty with feedback control {#uncertainty-with-feedback-control}
+
+With feedback control, the closed-loop response is \\(e = y - r = S G\_d d - S r\\).
+With model error, we get \\(y' - r = S'(G\_d'd - r)\\) where \\(S' = (I + G'K)^{-1}\\).
+\\(S'\\) can be rewritten as \\(S' = S \frac{1}{1+ET}\\) with \\(E = \frac{G'-G}{G}\\) the relative error for \\(G\\).
+
+We see that the **control error in only weakly affected by model error at frequencies where feedback is effective** (\\(T \approx 1\\)).
+
+
+
+Uncertainty in the crossover frequency region can result in poor performance and even instability:
+
+- Uncertainty which keeps \\(\abs{G(j\w\_u)}\\) approximately constant will not change the gain margin.
+- Uncertainty which increases \\(\abs{G(j\w\_u)}\\) may yield instability.
+
+
+
+
+### Summary: Controllability Analysis with Feedback Control {#summary-controllability-analysis-with-feedback-control}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_meas.png" caption="Figure 10: Feedback control system" >}}
+
+Consider the control system in [Figure 10](#figure--fig:classical-feedback-meas).
+Here \\(G\_m(s)\\) denotes the measurement transfer function and we assume \\(G\_m(0) = 1\\) (perfect steady-state measurement).
+
+
+
+**Controllability analysis rules**:
+
+1. **Speed of response to reject disturbances**. We approximately require \\(\w\_c > \w\_d\\). With feedback control we require \\(\abs{S(j\w)} \leq \abs{1/G\_d(j\w)} \quad \forall\w\\).
+2. **Speed of response to track reference changes**. We require \\(\abs{S(j\w)} \leq 1/R\\) up to the frequency \\(\w\_r\\) where tracking is required.
+3. **Input constraints arising from disturbances**. For acceptable control we require \\(\abs{G(j\w)} > \abs{G\_d(j\w)} - 1\\) at frequencies where \\(\abs{G\_d(j\w)} > 1\\).
+4. **Input constraints arising from setpoints**. We require \\(\abs{G(j\w)} > R - 1\\) up to the frequency \\(\w\_r\\) where tracking is required.
+5. **Time delay \\(\theta\\) in \\(G(s)G\_m(s)\\)**. We approximately require \\(\w\_c < 1/\theta\\).
+6. **Tight control at low frequencies with a RHP-zero \\(z\\) in \\(G(s)G\_m(s)\\)**. For a real RHP-zero we require \\(\w\_c < z/2\\) and for an imaginary RHP-zero we approximately require \\(\w\_c < \abs{z}\\).
+7. **Phase lag constraint**. We require in most practical cases \\(\w\_c < \w\_u\\). Here the ultimate frequency \\(\w\_u\\) is where \\(\angle GG\_m(j\w\_u) = \SI{-180}{\degree}\\). Since time delays and RHP-zeros also contribute to the phase lag, it is possible to combine the corresponding rules in the single rule \\(\w\_c < \w\_u\\).
+8. **Real open-loop unstable pole in \\(G(s)\\) at \\(s=p\\)**. We need high feedback gains to stabilize the system and we approximately require \\(\w\_c > 2p\\).
+
+
+
+In summary:
+
+- rules 1, 2 and 8 tell us that we need high feedback gain in order to reject disturbances, to track setpoints and to stabilize the plant.
+- rules 5, 6 and 7 tell us we must use low feedback gains in the frequency range where there are RHP-zeros or delays or where the plant has a lot of phase lag.
+
+Sometimes, the disturbances are so large that we hit input saturation or the required bandwidth is not achievable. To avoid the latter problem, we must at least require that the effect of the disturbance is less than \\(1\\) at frequencies beyond the bandwidth:
+
+\begin{equation\*}
+ \abs{G\_d(j\w)} < 1 \quad \forall \w \geq \w\_c
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_margin_requirements.png" caption="Figure 11: Illustration of controllability requirements" >}}
+
+
+##### Controllability analysis with feedforward control {#controllability-analysis-with-feedforward-control}
+
+We find that essentially the same conclusions apply to feedforward control when relevant.
+
+A major difference is that a delay in \\(G\_d(s)\\) is an advantage for feedforward control ("it gives the feedforward controller more time to make the right action").
+
+
+### Conclusion {#conclusion}
+
+The controllability analysis is summarized in terms of **eight controllability rules**.
+These rules are **necessary conditions to achieve acceptable control performance**.
+They are not sufficient since among other things they only consider one effect at a time.
+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}
+
+
+
+
+### Introduction {#introduction}
+
+In a MIMO system, disturbances, the plant, RHP zeros, RHP poles, delays and disturbances have each **directions** associated with them.
+
+We quantify the directionality of the various effects in \\(G\\) and \\(G\_d\\) by their output directions:
+
+- \\(y\_z\\): output dir. of RHP-zero, \\(G(z) u\_z = 0 \cdot y\_z\\)
+- \\(y\_p\\): output dir. of RHP-pole, \\(G(p\_i) u\_p = \infty \cdot y\_p\\)
+- \\(y\_d\\): output dir. of disturbance, \\(y\_d(s) = \frac{1}{\normtwo{g\_d(s)}} g\_d(s)\\)
+- \\(u\_i\\): i'th output dir. (singular vector) of the plant, \\(G(s) v\_i(s) = \sigma\_i(s) u\_i(s)\\)
+
+We may also consider input directions, however we are primarily concerned with the performance at the output of the plant.
+
+The **angle between various output directions** is quantified using their inner products.
+
+For example, the output angle between a pole and a zero is \\(\phi = \cos^{-1} \abs{y\_z^H y\_p}\\), and:
+
+- if \\(\phi = \SI{90}{\degree}\\), then the pole and zero are in completely different directions and there is no interaction (they may be considered separately)
+- if \\(\phi = \SI{0}{\degree}\\), then they interact as in a SISO system
+
+
+### Constraints on \\(S\\) and \\(T\\) {#constraints-on-s-and-t}
+
+
+#### \\(S\\) plus \\(T\\) is the Identity Matrix {#s-plus-t-is-the-identity-matrix}
+
+From the identity \\(S + T = I\\), we get:
+
+\begin{align}
+ |1 - \maxsv(S)| \leq \maxsv(T) \leq 1 + \maxsv(S)\\\\
+ |1 - \maxsv(T)| \leq \maxsv(S) \leq 1 + \maxsv(T)
+\end{align}
+
+This shows that we cannot have \\(S\\) and \\(T\\) small simultaneously and that \\(\maxsv(S)\\) is large if and only if \\(\maxsv(T)\\) is large.
+
+
+#### Sensitivity Intregrals {#sensitivity-intregrals}
+
+The waterbed effect can be generalized for MIMO systems:
+
+\begin{align\*}
+\int\_0^{\infty} \ln{|\det{S(j\w)}|} d\w &= \sum\_j \int\_0^\infty \ln{\sigma\_j(S(j\w))} d\w \\\\
+ &= \pi \cdot \sum\_{i=1}^{N\_p} \text{Re}(p\_i)
+\end{align\*}
+
+
+#### Interpolation Constraints {#interpolation-constraints}
+
+The basis of many of the results in this chapter are the "**interpolation constraints**".
+
+
+
+**Interpolation Constraints - RHP-zero** \\(z\\):
+
+If \\(G(s)\\) has a RHP-zero at \\(z\\) with output direction \\(y\_z\\), \\(T(s)\\) must have a RHP-zero at \\(z\\), i.e., \\(T(z)\\) has a zero gain in the direction of output direction \\(y\_z\\) of the zero, and we get
+
+\begin{equation\*}
+ y\_z^H T(z) = 0 ; \quad y\_z^H S(z) = y\_z^H
+\end{equation\*}
+
+
+
+
+
+**Interpolation Constraints - RHP-pole \\(p\\)**:
+
+If \\(G(s)\\) has a RHP-pole at \\(p\\) with output direction \\(y\_p\\), \\(S(s)\\) must have a RHP-zero at \\(p\\), i.e. \\(S(p)\\) has a zero gain in the input direction of the output direction \\(y\_p\\) of the RHP-pole, and we get
+
+\begin{equation\*}
+ S(p) y\_p = 0 ; \quad T(p) y\_p = y\_p
+\end{equation\*}
+
+
+
+
+#### Sensitivity Peaks {#sensitivity-peaks}
+
+Consider a plant \\(G(s)\\) with RHP-poles \\(p\_i\\) and RHP-zeros \\(z\_j\\).
+The factorization of \\(G(s)\\) in terms of **Blaschke products** is:
+
+\begin{equation\*}
+ \tcmbox{G(s) = B\_p^{-1} G\_s(s), \quad G(s) = B\_z(s) G\_m(s)}
+\end{equation\*}
+
+where \\(G\_s\\) is the stable and \\(G\_m\\) the minimum-phase version of \\(G\\).
+\\(B\_p\\) and \\(B\_z\\) are stable all-pass transfer matrices (all singular values are 1 for \\(s=j\w\\)) containing the RHP-poles and RHP-zeros respectively.
+
+
+##### MIMO sensitivity peaks {#mimo-sensitivity-peaks}
+
+Suppose that \\(G(s)\\) has \\(N\_z\\) RHP-zeros \\(z\_j\\) with output directions \\(y\_{zj}\\), and \\(N\_p\\) RHP-poles \\(p\_i\\) with output direction \\(y\_{pi}\\).
+We define the all-pass transfer matrices from the Blaschke factorization and compute the real constants:
+
+\begin{equation\*}
+ c\_{1j} = \normtwo{y\_{zj}^H B\_p(z\_j)} \geq 1; \quad c\_{2i} = \normtwo{B\_z^{-1}(p\_i) y\_{pi}} \geq 1
+\end{equation\*}
+
+Let \\(w\_P(s)\\) be a stable weight. Then, for closed-loop stability the weighted sensitivity function must satisfy for each RPH-zero \\(z\_j\\)
+
+\begin{equation\*}
+ \hnorm{w\_p S} \ge c\_{1j} \abs{w\_p(z\_j)}
+\end{equation\*}
+
+Let \\(w\_T(s)\\) be a stable weight. Then, for closed-loop stability the weighted complementary sensitivity function must satisfy for each RPH-pole \\(p\_i\\)
+
+\begin{equation\*}
+ \hnorm{w\_T T} \ge c\_{2j} \abs{w\_T(p\_i)}
+\end{equation\*}
+
+
+
+**Lower bound on \\(\hnorm{S}\\) and \\(\hnorm{T}\\)**:
+
+By selecting \\(w\_P(s) = 1\\) and \\(w\_T(s) = 1\\), we get
+
+\begin{equation\*}
+ \hnorm{S} \ge \max\_{\text{zeros } z\_j} c\_{1j}; \quad \hnorm{T} \ge \max\_{\text{poles } p\_i} c\_{2j}
+\end{equation\*}
+
+
+
+An m-input l-output system \\(G(s)\\) is **functionally controllable** is the normal rank of \\(G(s)\\), denoted \\(r\\), is equal to the number of outputs (\\(r = l\\)), that is, if \\(G(s)\\) has full row rank.
+A system is functionally uncontrollable if \\(r
+
+A square MIMO system is uncontrollable if and only if \\(\det{G(s)} = 0,\ \forall s\\).
+
+A plant is functionally uncontrollable if and only if \\(\sigma\_l(G(j\omega)) = 0,\ \forall\w\\).
+\\(\sigma\_l(G(j\w))\\) is then a **measure of how close a plant is to being functionally uncontrollable**.
+
+
+
+If the plant is not functionally controllable (\\(r
+
+By analyzing the uncontrollable output directions, an engineer can decide on whether it is acceptable to keep certain output combinations uncontrolled, or if additional actuators are needed.
+
+
+### Limitation Imposed by Time Delays {#limitation-imposed-by-time-delays}
+
+Time delays pose limitation also in MIMO systems. Let \\(\theta\_{ij}\\) denote the time delay in the \\(ij\\)'th element of \\(G(s)\\). Then a **lower bound on the time delay for output** \\(i\\) is given by the smallest delay in row \\(i\\) of \\(G(s)\\), that is
+
+\begin{equation\*}
+ \theta\_i^{\min} = \min\_j \theta\_{ij}
+\end{equation\*}
+
+For MIMO systems, we have the surprising result that an increase time delay may sometimes improve the achievable performance. The time delay may indeed increase the decoupling between the outputs.
+
+
+### Limitations Imposed by RHP-Zeros {#limitations-imposed-by-rhp-zeros}
+
+The limitations imposed by RHP-zeros on MIMO systems are similar to those for SISO system, although they only apply in particular directions.
+
+The limitations of a RHP-zero located at \\(z\\) may be derived from the bound:
+
+\begin{equation\*}
+ \hnorm{w\_P S(s)} = \max\_{\w} \abs{w\_P(j\w)} \maxsv(S(j\w)) \ge \abs{w\_P(z)}
+\end{equation\*}
+
+All the results derived for SISO systems generalize if we consider the "worst" direction corresponding to the maximum singular value \\(\maxsv(S)\\).
+For instance, if we choose \\(w\_P(s)\\) to require tight control at low frequencies, the bandwidth must satisfy \\(w\_B^\* < z/2\\).
+
+In MIMO systems, one can often **move the deteriorating effect of a RHP-zero to a given output** which may be less important to control well.
+This is possible because, although the interpolation constraint \\(y\_z^H T(z) = 0\\) imposes a certain relationship between the elements within each column of \\(T(s)\\), the columns of \\(T(s)\\) may still be selected independently.
+
+Requiring a decoupled response from \\(r\\) to \\(y\\) generally leads to the introduction of additional RHP-zero in \\(T(s)\\) which are not present in \\(G(s)\\).
+Moving the effect of the RHP-zero to a particular output generally add some interaction. Also, moving to RHP-zero in a direction where \\(y\_z\\) is small usually introduces more interaction than in a direction where \\(y\_z\\) is large.
+
+For example, if we have a RHP-zero with \\(y\_z = [0.03,\ -0.04,\ 0.9,\ 0.43]^T\\), then one may in theory move the bad effect of the RHP-zero to any of the outputs. However, in practice, it will be difficult to avoid the effect of the RHP-zero on output 3, because the zero direction is mainly in that output. Trying to move it somewhere else will give large interactions and poor performance.
+
+
+### Limitation Imposed by Unstable (RHP) Poles {#limitation-imposed-by-unstable--rhp--poles}
+
+For unstable plants, feedback is needed for stabilization. More precisely, the presence of an unstable pole \\(p\\) requires for internal stability \\(T(p) y\_p = y\_p\\) where \\(y\_p\\) is the output pole direction.
+
+
+
+**Input Usage Limitation**:
+
+The transfer function \\(KS\\) from plant output to plant inputs must satisfy for any RHP-pole \\(p\\)
+
+\begin{equation\*}
+ \hnorm{KS} \ge \normtwo{u\_p^H G\_s(p)^{-1}}
+\end{equation\*}
+
+where \\(u\_p\\) is the input pole direction, and \\(G\_s\\) is the "stable version" of \\(G\\) with its RHP-poles mirrored in the LHP.
+
+
+
+
+
+**Bandwidth Limitation**:
+
+From the bound \\(\hnorm{w\_T(s) T(s)} \ge \abs{w\_T(p)}\\), we find that a RHP-pole \\(p\\) imposes restrictions on \\(\maxsv(T)\\) which are identical to those derived on \\(\abs{T}\\) for SISO systems.
+Thus, we need to react sufficiently fast and we must require that \\(\maxsv(T(j\w))\\) is about 1 or larger up to the frequency \\(2 \abs{p}\\).
+
+
+
+
+### RHP-poles Combined with RHP-Zeros {#rhp-poles-combined-with-rhp-zeros}
+
+For a MIMO plant with single RHP-zero \\(z\\) and single RHP-pole \\(p\\), we derive
+
+\begin{equation\*}
+ \hnorm{S} \ge c \quad \hnorm{T} \ge c
+\end{equation\*}
+
+\begin{equation\*}
+ \text{with } c = \sqrt{\sin^2 \phi + \frac{\abs{z + p}^2}{\abs{z-p}^2} \cos^2 \phi}
+\end{equation\*}
+
+where \\(\phi = cos^{-1} \abs{y\_z^H y\_p}\\) is the angle between the RHP-zero and the RHP-pole.
+
+Thus the angle between the RHP-zero and the RHP-pole is of great importance, we usually want \\(\abs{y\_z^H y\_p}\\) close to zero so that they don't interact with each other.
+
+
+### Limitations Imposed by Disturbances {#limitations-imposed-by-disturbances}
+
+For SISO systems, we found that large and "fast" disturbances require tight control and a large bandwidth.
+The same results apply for MIMO systems, but again the issue of **directions** is important.
+
+
+
+Consider a scalar disturbance \\(d\\) and let the vector \\(g\_d\\) represents its effect on the outputs (\\(y = g\_d d\\)).
+The **disturbance direction** is defined as
+
+\begin{equation} \label{eq:dist\_direction}
+ y\_d = \frac{1}{\normtwo{g\_d}} g\_d
+\end{equation}
+
+For a plant with multiple disturbances, \\(g\_d\\) is a column of the matrix \\(G\_d\\).
+
+
+
+
+
+**Disturbance Condition Number**:
+
+\begin{equation} \label{eq:dist\_condition\_number}
+ \gamma\_d (G) = \maxsv(G) \maxsv(G^\dagger y\_d)
+\end{equation}
+
+where \\(G^\dagger\\) is the pseudo inverse of \\(G\\)
+
+
+
+The disturbance condition number provides a **measure of how a disturbance is aligned with the plant**. It may vary between 1 (for \\(y\_d = \overline{u}\\)) if the disturbance is in the "good" direction, and the condition number \\(\gamma(G) = \maxsv(G) \maxsv(G^\dagger)\\) (for \\(y\_d = \underline{u}\\)) if it is in the "bad" direction.
+
+Let assume \\(r=0\\) and that the system has been scaled. With feedback control \\(e = S g\_d d\\) and the performance objective is
+
+\begin{equation\*}
+ \normtwo{S g\_d} = \maxsv(S g\_d) < 1 \ \forall\w \quad \Leftrightarrow \quad \hnorm{S g\_d} < 1
+\end{equation\*}
+
+We derive bounds in terms of the singular values of \\(S\\):
+
+\begin{equation\*}
+ \minsv(S) \normtwo{g\_d} \le \normtwo{S g\_d} \le \maxsv(S) \normtwo{g\_d}
+\end{equation\*}
+
+
+
+For acceptable performance **we must at least require that**
+
+\begin{equation\*}
+ \maxsv(I+L) > \normtwo{g\_d}
+\end{equation\*}
+
+And **we may require that**
+
+\begin{equation\*}
+ \minsv(I+L) > \normtwo{g\_d}
+\end{equation\*}
+
+
+
+If \\(G(s)\\) has a **RHP-zero** at \\(s = z\\), then the **performance may be poor if the disturbance is aligned with the output direction of this zero**.
+To satisfy \\(\hnorm{S g\_d} < 1\\), we must require
+
+\begin{equation\*}
+ \abs{y\_z^H g\_d(z)} < 1
+\end{equation\*}
+
+where \\(y\_z\\) is the direction of the RHP-zero.
+
+
+### Limitations Imposed by Input Constraints {#limitations-imposed-by-input-constraints}
+
+
+#### Inputs for Perfect Control {#inputs-for-perfect-control}
+
+We here consider the question: can the disturbances be rejected perfectly while maintaining \\(\\|u\\|<1\\)?
+
+For a square plant, the input needed for perfect disturbance rejection is \\(u = -G^{-1} G\_d d\\).
+
+For a single disturbance, as the worst-cast disturbance is \\(\abs{d(\w)} = 1\\), we get that input saturation is avoided (\\(\\|u\\|\_{\text{max}} \le 1\\)) if all elements in the vector \\(G^{-1} g\_d\\) are less than 1 in magnitude:
+
+\begin{equation\*}
+ \\|G^{-1} g\_d\\|\_{\text{max}} < 1, \ \forall\w
+\end{equation\*}
+
+It is first recommended to **consider one disturbance at a time** by plotting as a function of frequency the individual elements of \\(G^{-1} G\_d\\). This will yields more information about which particular input is most likely to saturate and which disturbance is the most problematic.
+
+
+#### Inputs for Acceptable Control {#inputs-for-acceptable-control}
+
+We here consider the question: is it possible to achieve \\(\\|e\\|<1\\) while using inputs with \\(\\|u\\| \le 1\\)?
+
+For SISO systems, we have to required \\(\abs{G} > \abs{g\_d} - 1\\) at frequencies where \\(\abs{g\_d} > 1\\).
+We would like to generalize this result to MIMO systems.
+
+
+
+Each singular value \\(\sigma\_i\\) of \\(G\\) must approximately satisfy:
+
+\begin{equation} \label{eq:input\_acceptable\_control\_mimo}
+ \sigma\_i(G) \ge \abs{u\_i^H g\_d} - 1 \text{ where } \abs{u\_i^H g\_d} > 1
+\end{equation}
+
+with \\(u\_i\\) the \\(i\\)'th output singular vector of \\(G\\).
+
+\\(u\_i^H g\_d\\) may be interpreted as the projection of \\(g\_d\\) onto the \\(i\\)'th output singular vector of the plant.
+
+
+
+Using the previous approximation, we can find out:
+
+- For which disturbances and at which frequencies input constraints may cause problems. This may give ideas on **which disturbances should be reduced**.
+- In which direction \\(i\\) the plant gain is too small. By looking at the corresponding input singular vector \\(v\_i\\), one can determine **which actuators should be redesigned**. By looking at the corresponding output singular vector \\(u\_i\\), one can determine on which outputs we may have to reduce our performance requirements.
+
+For combined disturbances, one requires the \\(i\\)'th row sum of \\(U^H G\_d\\) to be less than \\(\sigma\_i(G)\\). However, we usually derive more insight by considering one disturbance at a time.
+
+
+#### Unstable Plant and Input Constraints {#unstable-plant-and-input-constraints}
+
+Active use of inputs are needed to stabilize an unstable plant.
+We must require \\(\hnorm{KS} \ge \normtwo{u\_p^H G\_s(p)^{-1}}\\).
+If the required inputs exceed the constraints, then stabilization is most likely not possible.
+
+
+### Limitation Imposed by Uncertainty {#limitation-imposed-by-uncertainty}
+
+The presence of **uncertainty requires the use of feedback** rather than simply feedforward control to get acceptable performance.
+Sensitivity reduction with respect to uncertainty is achieved with high-gain feedback, but for any real system, we have a crossover frequency range where the loop gain has to drop below 1. The presence of uncertainty in this frequency range may result in poor performance or even instability.
+
+The issues are the same for SISO and MIMO systems, however, with MIMO systems there is an additional problem in that there is also **uncertainty associated with the plant directionality**.
+
+
+#### Input and Output Uncertainty {#input-and-output-uncertainty}
+
+In practice, the difference between the true perturbed plant \\(G^\prime\\) and the plant model \\(G\\) is caused by a number of different sources.
+We here focus on input and output uncertainty.
+In multiplicative form, the input and output uncertainties are given by (see [Figure 12](#figure--fig:input-output-uncertainty)):
+
+\begin{equation\*}
+ G^\prime = (I + E\_O) G (I + E\_I)
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_input_output_uncertainty.png" caption="Figure 12: Plant with multiplicative input and output uncertainty" >}}
+
+Input and output uncertainty may seem similar, but their **implications for control may be very different**.
+
+If all the elements of \\(E\_O\\) and \\(E\_I\\) are non-zero, then we have **full block (unstructured) uncertainty**.
+
+In many cases, the source of uncertainty is in the individual input or output channels, and we have that \\(E\_I\\) and \\(E\_O\\) are **diagonal matrices**. For example \\(E\_I = \text{diag}\\{\epsilon\_1, \epsilon\_2, \dots\\}\\) where \\(\epsilon\_i\\) is the **relative uncertainty in input channel** \\(i\\).
+
+Diagonal input uncertainty is **always** present in real systems and the magnitude of \\(\epsilon\_i\\) is typically \\(0.1\\) or larger.
+
+
+#### Effect of Uncertainty on Feedforward Control {#effect-of-uncertainty-on-feedforward-control}
+
+Consider a feedforward controller \\(u = K\_r r\\) for the case with no disturbance (\\(d = 0\\)). We assume that \\(G\\) is inversible and we select \\(K\_r = G^{-1}\\) to achieve perfect control (\\(e = 0\\)).
+However, for the actual plant \\(G^\prime\\) (with uncertainty), the actual control error \\(e^\prime = y^\prime - r = G^\prime G^{-1} r - r\\) is not null and we get:
+
+- For output uncertainty: \\(e^\prime = E\_O r\\)
+- For input uncertainty: \\(e^\prime = G E\_I G^{-1} r\\)
+
+For output uncertainty, we have an identical result as for SISO systems: the worst case relative control error \\(\normtwo{e^\prime}/\normtwo{r}\\) is equal to the magnitude of the relative output uncertainty \\(\maxsv(E\_O)\\).
+However, for input uncertainty, the sensitivity may be much larger because the elements in the matrix \\(G E\_I G^{-1}\\) can be much larger than the elements in \\(E\_I\\).
+
+
+
+For **diagonal input uncertainty**, the elements of \\(G E\_I G^{-1}\\) are directly related to the RGA:
+
+\begin{equation\*}
+ \left[ G E\_I G^{-1} \right]\_{ii} = \sum\_{j=1}^n \lambda\_{ij}(G) \epsilon\_j
+\end{equation\*}
+
+
+
+Since diagonal input uncertainty is always present, we can conclude that **if the plant has large RGA elements within in the frequency range where effect control is desired, then it is not possible to achieve good reference tracking with feedforward control** because of strong sensitivity to diagonal input uncertainty. The reverse statement is not true.
+
+
+#### Uncertainty and the Benefits of Feedback {#uncertainty-and-the-benefits-of-feedback}
+
+To illustrate the benefits of feedback control in reducing the sensitivity to uncertainty, we consider the effect of output uncertainty on reference tracking both for feedforward and feedback.
+
+**Feedforward** Let the nominal transfer function with feedforward control be \\(y = T\_r r\\) where \\(T\_r = G K\_r\\) and \\(K\_r = G^{-1}\\).
+With model error \\(T\_r^\prime = G^\prime K\_r\\) and the change in response is \\(y^\prime - y = (T\_r^\prime - T\_r) r = (G^\prime - G)G^{-1} T\_r r = E\_O T\_r r\\).
+Thus, the control error caused by the uncertainty is equal to the relative output uncertainty.
+
+**Feedback control** The output is \\(y = T r\\).
+The change in response is \\(y^\prime - y = (T^\prime - T)r = S^\prime E\_O T r = S^\prime E\_O y\\).
+With feedback control, **the effect of the uncertainty is reduced** by a factor \\(S^\prime\\) compared to that with feedforward control.
+
+
+#### Uncertainty and the Sensitivity Peak {#uncertainty-and-the-sensitivity-peak}
+
+Consider a controller \\(K(s) = l(s)G^{-1}(s)\\) which results in a nominally decoupled response with sensitivity \\(S = s \cdot I\\) and complementary sensitivity \\(T = t \cdot I\\) where \\(t(s) = 1 - s(s)\\).
+Suppose the plant has diagonal input uncertainty of relative magnitude \\(\abs{w\_I(j\w)}\\) in each input channel.
+Then there exists a combination of input uncertainties such that at each frequency:
+
+\begin{equation\*}
+ \maxsv(S^\prime) \ge \maxsv(S) \left( 1 + \frac{\abs{w\_I t}}{1+\abs{w\_I t}} \\|\Lambda(G)\\|\_{i\infty} \right)
+\end{equation\*}
+
+where \\(\\| \Lambda(G) \\|\_{i\infty}\\) is the maximum row sum of the RGA and \\(\maxsv(S) = \abs{s}\\).
+
+We can see that with an inverse based controller, the worst case sensitivity will be much larger than the nominal sensitivity at frequencies where the plant has large RGA elements.
+
+
+
+**Input uncertainty and feedback control**:
+These statements apply to the frequency range around crossover.
+By "small", we mean smaller than 2 and by "large" we mean larger than 10.
+
+- Condition number \\(\gamma(G)\\) or \\(\gamma(K)\\) small: robust performance to both diagonal and full-block input uncertainty
+- Minimized condition number \\(\gamma\_I^\* (G)\\) or \\(\gamma\_O^\*(K)\\) small: robust performance to diagonal input uncertainty
+- \\(\text{RGA}(G)\\) has large elements: inverse based controller is not robust to diagonal input uncertainty.
+ Since diagonal input uncertainty is unavoidable in practice, the rule is never to use a decoupling controller for a plant with large RGA-elements.
+ **Plant with large RGA elements are fundamentally difficult to control**.
+
+
+
+
+#### Element-by-element Uncertainty {#element-by-element-uncertainty}
+
+Consider any complex matrix \\(G\\) and let \\(\lambda\_{ij}\\) denote the \\(ij\\)'th element in the RGA-matrix of \\(G\\).
+
+
+
+The matrix \\(G\\) becomes singular if we make a relative change \\(-1/\lambda\_{ij}\\) in its \\(ij\\)'th elements, that is, if a single element in \\(G\\) is perturbed from \\(g\_{ij}\\) to \\(g\_{pij} = g\_{ij}(1-\frac{1}{\lambda\_{ij}})\\)
+
+
+
+Thus, the RGA-matrix is a **direct measure of sensitivity to element-by-element uncertainty** and matrices with large RGA-values become singular for small relative errors in the elements.
+
+The above result has important implications:
+
+- **Identification**. Models of multivariable plants \\(G(s)\\) are often obtained by identifying one element at a time, for example using step responses. This simple analysis will most likely give meaningless results if there are large RGA-elements within the bandwidth where the model is intended to be used.
+- **RHP-zeros**. Consider a plant with transfer function matrix \\(G(s)\\). If the relative uncertainty in an element at a given frequency is larger than \\(\abs{1/\lambda\_{ij}(j\w)}\\) then the plant may be singular at this frequency, implying that the uncertainty allows for a RHP-zero on the \\(j\w\text{-axis}\\).
+
+
+### MIMO Input-Output Controllability {#mimo-input-output-controllability}
+
+The following procedure assumes that we have made a decision on the plant inputs and plant outputs, and we want to analyze the model \\(G\\) to find out **what control performance can be expected**.
+It can also be used to assist in control structure design.
+
+A typical **MIMO controllability analysis** may proceed as follows:
+
+1. **Scale all variables** (inputs \\(u\\), outputs \\(y\\), disturbances \\(d\\), references \\(r\\)) to obtain a scaled model \\(y = G(s) u + G\_d(s) d\\), \\(r = R \tilde{r}\\)
+2. **Obtain a minimal realization**
+3. **Check functional controllability**. To be able to control the outputs independently, we first need at least as many inputs \\(u\\) as outputs \\(y\\). Second, we need the rank of \\(G(s)\\) to be equal to the number of outputs \\(l\\), i.e. the minimum singular value \\(G(j\w)\\), \\(\minsv(G) = \sigma\_l(G)\\), should be non-zero (except at possible \\(j\w\text{-axis}\\) zeros). If the plant is not functionally controllable, then compute the output direction where the plant has no gain to have insight into the source of the problem
+4. **Compute the poles**. For RHP poles, obtain their locations and associated directions. "Fast" RHP-poles far from the origin are bad
+5. **Compute the zeros**. For RHP zeros, obtain their locations and associated directions. Look for zeros pinned into certain outputs. "Small" RHP-zeros (close to the origin) are bad if tight performance is needed at low frequencies
+6. **Obtain the frequency response** \\(G(j\w)\\) and **compute the RGA matrix** \\(\Gamma = G \times (G^\dagger)^{-1}\\). Plants with large RGA-elements at crossover frequencies are difficult to control and should be avoided
+7. **Compute the singular values** of \\(G(j\w)\\) and **plot them as a function of frequency**. Also consider the associated input and output singular vectors
+8. The **minimum singular value** \\(\minsv(G(j\w))\\) is a particularly useful **controllability measure**. It should generally be as large as possible at frequencies where control is needed. If \\(\minsv(G(j\w)) < 1\\) then we cannot at frequency \\(\w\\) make independent output changes of unit magnitude by using inputs of unit magnitude
+9. For **disturbances**, consider the elements of the matrix \\(G\_d\\). At frequencies where one or more elements is larger than 1, we need control. We get more information by considering one disturbance at a time (the columns \\(g\_d\\) of \\(G\_d\\)). We must require for each disturbance that \\(S\\) is less than \\(1/\normtwo{g\_d}\\) in the disturbance direction \\(y\_d\\), i.e. \\(\normtwo{S y\_d} \le 1/\normtwo{g\_d}\\). Thus, we must at least require \\(\minsv(S) \le 1/\normtwo{g\_d}\\) and we may have to require \\(\maxsv(S) \le 1/\normtwo{g\_d}\\)
+10. **Disturbances and input saturation**:
+ - **First step**. Consider the input magnitudes needed for perfect control by computing the elements in the matrix \\(G^\dagger G\_d\\). If all elements are less than 1 at all frequencies, then input saturation is not expected to be a problem. If some elements of \\(G^\dagger G\_d\\) are larger than 1, then perfect control cannot be achieve at this frequency, but "acceptable" control may be possible
+ - **Second step**. Consider the elements of \\(U^H G\_d\\) and make sure that the elements in the \\(i\\)'th row are smaller than \\(\sigma\_i(G) + 1\\) at all frequencies
+11. **Are the requirements compatible?** Look at disturbances, RHP-poles, RHP-zeros and their associated locations and directions. For example, we must required for each disturbance and each RHP-zero that \\(\abs{y\_z^H g\_d(z)} \le 1\\). Similar relations exist for combined RHP-zero and RHP-pole.
+12. **Uncertainty**. If the condition number \\(\gamma(G)\\) is small then we expect no particular problems with uncertainty. If the RGA-elements are large, we expect strong sensitivity to uncertainty.
+
+
+##### Plant design changes {#plant-design-changes}
+
+If the plant is not input-output controllable, then it must be modified.
+Some possible modifications are:
+
+- **Controlled outputs**. Identify the outputs which cannot be controlled satisfactory. Can the specifications for these be relaxed?
+- **Manipulated inputs**. If input constraints are encountered, then consider replacing or moving actuators. If there are RHP-zeros which cause control problems, then the zeros may often be eliminated by adding another input. This may not be possible if the zero is pinned to a particular output
+- **Extra measurements**. If the effect of disturbances or uncertainty is large, and the dynamics of the plant are such that acceptable control cannot be achieved, then consider adding "fast local loops" based on extra measurements which are located close to the inputs and disturbances
+- **Disturbances**. If the effect of disturbances is too large, then see whether the disturbance itself may be reduced. This may involve adding extra equipment to dampen the disturbances. In other cases, this may involve improving or changing the control of another part of the system: we may have a disturbance which is actually the manipulated input for another part of the system
+- **Plant dynamics and time delays**. In most cases, controllability is improved by making the plant dynamics faster and by reducing time delays. An exception to this is a strongly interactive plant, where an increased dynamic lag or time delay may be helpful if it somehow "delays" the effect of the interactions
+
+
+### Conclusion {#conclusion}
+
+We have found that most of the insights into the performance limitation of SISO systems carry over to MIMO systems.
+For RHP-zeros, RHP-poles and disturbances, the issue of directions usually makes the limitation **less severe** for MIMO than for SISO systems.
+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}
+
+
+
+
+### Introduction to Robustness {#introduction-to-robustness}
+
+A control system is robust if it is insensitive to differences between the actual system and the model of the system which was used to design the controller.
+The key idea in the \\(\hinf\\) robust control paradigm is to check whether the design specifications are satisfied even for the **"worst-case" uncertainty**.
+
+Our approach is then as follows:
+
+1. **Determine the uncertainty set**. Find a mathematical representation of the model uncertainty
+2. **Check Robust Stability (RS)**. Determine whether the system remains stable for all plants in the uncertainty set
+3. **Check Robust Performance (RP)**. If RS is satisfied, determine whether the performance specifications are met for all plants in the uncertainty set
+
+This approach may not always achieve optimal performance. In particular, if the worst case plant rarely occurs, other approaches, such as optimizing some average performance or using adaptive control may yield better performance.
+
+To account for model uncertainty, we will assume that the dynamic behavior of a plant is described not by a single linear time invariant model but by a **set \\(\Pi\\) of possible linear time invariant models**, sometimes denoted the "**uncertainty set**".
+
+We adopt the following notation:
+
+- \\(\Pi\\) - a set of possible perturbed plant models
+- \\(G(s) \in \Pi\\) - nominal plant model
+- \\(G\_p(s) \in \Pi\\) - particular perturbed plant models
+
+We will use a "**norm-bounded uncertainty description**" where the set \\(\Pi\\) is generated by allowing \\(\hinf\\) norm-bounded stable perturbations to the nominal plant \\(G(s)\\).
+We let \\(E\\) denote a perturbation which is not normalized, and let \\(\Delta\\) denote a normalized perturbation with its \\(\hinf\\) norm less than 1.
+
+
+### Representing Uncertainty {#representing-uncertainty}
+
+Uncertainty in the plant model may have **several origins**:
+
+1. There are always parameters in the linear model which are only known approximatively
+2. Parameters in the model may vary due to **non-linearities** or changes in the operating conditions
+3. Measurement devices have imperfections
+4. At high frequencies, even the structure and the model order is unknown, and the uncertainty will always exceed \\(\SI{100}{\percent}\\) at some frequency
+5. Even when a very detailed model is available, we may choose to work with a simpler nominal model and **represent the neglected dynamics as "uncertainty"**
+6. The controller implemented may differ from the one obtained by solving the synthesis problem.
+ One may include uncertainty to allow for controller order reduction and implementation inaccuracies
+
+The various sources of model uncertainty may be grouped into two main classes:
+
+1. **Parametric uncertainty**. The structure of the model is known, but some parameters are uncertain
+2. **Neglected and unmodelled dynamics uncertainty**. The model is in error because of missing dynamics, usually at high frequencies
+
+
+
+Parametric uncertainty will be quantified by assuming that **each uncertain parameters is bounded within some region** \\([\alpha\_{\min}, \alpha\_{\text{max}}]\\). That is, we have parameter sets of the form
+
+\begin{equation} \label{eq:parametric\_uncertainty}
+ \alpha\_p = \overline{\alpha}(1 + r\_\alpha \Delta); \quad r\_\alpha = \frac{\alpha\_{\text{max}} - \alpha\_{\min}}{\alpha\_{\text{max}} + \alpha\_{\min}}
+\end{equation}
+
+where \\(\overline{\alpha}\\) is the mean parameter value, \\(r\_\alpha\\) is the relative uncertainty in the parameter, and \\(\Delta\\) is any real scalar satisfying \\(\abs{\Delta} \le 1\\).
+
+
+
+Neglected and unmodelled dynamics uncertainty is somewhat less precise and thus more difficult to quantify, but it appears that frequency domain is particularly well suited for this class.
+This leads to **complex perturbations** which we normalize such that \\(\hnorm{\Delta} \le 1\\).
+
+There is also a third class of uncertainty (which is a combination of the other two) called **Lumped uncertainty**.
+Here the uncertainty description represents one or several sources of parametric and/or unmodelled dynamics uncertainty combined into a single lumped perturbation of a chosen structure.
+The frequency domain is also well suited for describing lumped uncertainty.
+
+
+
+In most cases, we prefer to lump the uncertainty into a **multiplicative uncertainty** of the form
+
+\begin{equation\*}
+ G\_p(s) = G(s)(1 + w\_I(s)\Delta\_I(s)); \quad \abs{\Delta\_I(j\w)} \le 1 \\, \forall\w
+\end{equation\*}
+
+which may be represented by the diagram in [Figure 13](#figure--fig:input-uncertainty-set).
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_input_uncertainty_set.png" caption="Figure 13: Plant with multiplicative uncertainty" >}}
+
+
+### Parametric Uncertainty {#parametric-uncertainty}
+
+Parametric uncertainty may also be represented in the \\(\hinf\\) framework if we restrict \\(\Delta\\) to be real.
+
+
+
+Gain uncertainty:
+
+\begin{equation\*}
+ G\_p(s) = k\_p G\_0(s); \quad k\_{\min} \le k\_p \le k\_{\text{max}}
+\end{equation\*}
+
+where \\(k\_p\\) is an uncertain gain and \\(G\_0(s)\\) is a transfer function with no uncertainty.
+By writing \\(k\_p = \overline{k}(1 + r\_k \Delta)\\) where \\(r\_k\\) is the relative magnitude of the gain uncertainty and \\(\overline{k}\\) is the average gain, be may write
+
+\begin{equation\*}
+ G\_p = \underbrace{\overline{k}G\_0(s)}\_{G(s)} (1 + r\_k \Delta), \quad \abs{\Delta} \le 1
+\end{equation\*}
+
+where \\(\Delta\\) is a real scalar and \\(G(s)\\) is the nominal plant.
+
+
+
+
+
+Time constant uncertainty:
+
+\begin{equation\*}
+ G\_p(s) = \frac{1}{\tau\_p s + 1}G\_0(s); \quad \tau\_{\min} \le \tau\_p \le \tau\_{\text{max}}
+\end{equation\*}
+
+By writing \\(\tau\_p = \overline{\tau}(1 + r\_\tau \Delta)\\), with \\(\abs{\Delta} \le 1\\), the model set can be rewritten as
+
+\begin{equation\*}
+ G\_p(s) = \frac{G\_0}{1+\overline{\tau} s + r\_\tau \overline{\tau} s \Delta} = \underbrace{\frac{G\_0}{1+\overline{\tau}s}}\_{G(s)} \frac{1}{1 + w\_{iI}(s) \Delta}
+\end{equation\*}
+
+with \\(\displaystyle w\_{iI}(s) = \frac{r\_\tau \overline{\tau} s}{1 + \overline{\tau} s}\\).
+
+
+
+As shown in the two examples, one can represent parametric uncertainty in the \\(\hinf\\) framework.
+However, **parametric uncertainty is often avoided** for the following reasons:
+
+1. It usually requires a **large effort** to model parametric uncertainty
+2. A parametric uncertainty model is somewhat deceiving in the sense that it provides a very detailed and accurate description, even though the underlying assumptions about the model and the parameters may be much less exact
+3. The **exact model structure is required** and so unmodelled dynamics cannot be dealt with
+4. Real perturbations are required, which are more difficult to deal with mathematically and numerically, especially when it comes to controller synthesis
+
+Therefore, parametric uncertainty is often represented by **complex perturbations**. For example, we may simply replace the real perturbation, \\(-1 \le \Delta \le 1\\) by a complex perturbation with \\(\abs{\Delta(j\w)} \le 1\\).
+This is of course conservative as it introduces possible plants that are not present in the original set. However, if there are several real perturbations, then the conservatism if often reduced by lumping these perturbations into a single complex perturbation.
+
+
+### Representing Uncertainty in the Frequency Domain {#representing-uncertainty-in-the-frequency-domain}
+
+
+#### Uncertain Regions {#uncertain-regions}
+
+To illustrate how parametric uncertainty translate into frequency domain uncertainty, consider in [Figure 14](#figure--fig:uncertainty-region) the Nyquist plots generated by the following set of plants
+
+\begin{equation\*}
+ G\_p(s) = \frac{k}{\tau s + 1} e^{-\theta s}, \quad 2 \le k, \theta, \tau \le 3
+\end{equation\*}
+
+- **Step 1**. At each frequency, a region of complex numbers \\(G\_p(j\w)\\) is generated by varying the parameters.
+ In general, these uncertain regions have complicated shapes and complex mathematical descriptions
+- **Step 2**. We therefore approximate such complex regions as discs, resulting in a **complex additive uncertainty description**
+
+
+
+{{< figure src="/ox-hugo/skogestad07_uncertainty_region.png" caption="Figure 14: Uncertainty regions of the Nyquist plot at given frequencies" >}}
+
+
+#### Representing Uncertainty Regions by Complex Perturbations {#representing-uncertainty-regions-by-complex-perturbations}
+
+
+
+The disc-shaped regions may be generated by **additive** complex norm-bounded perturbations around a nominal plant \\(G\\)
+
+\begin{equation} \label{eq:additive\_uncertainty}
+ \begin{aligned}
+ \Pi\_A: \ G\_p(s) &= G(s) + w\_A(s) \Delta\_A(s) \\\\
+ & \text{with }\abs{\Delta\_A(j\w)} \le 1 \\, \forall\w
+ \end{aligned}
+\end{equation}
+
+At each frequency, all possible \\(\Delta(j\w)\\) "generates" a disc-shaped region with radius 1 centered at 0, so \\(G(j\w) + w\_A(j\w)\Delta\_A(j\w)\\) generates at each frequency a disc-shapes region of radius \\(\abs{w\_A(j\w)}\\) centered at \\(G(j\w)\\) as shown in [Figure 15](#figure--fig:uncertainty-disc-generated).
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_uncertainty_disc_generated.png" caption="Figure 15: Disc-shaped uncertainty regions generated by complex additive uncertainty" >}}
+
+
+
+The disc-shaped region may alternatively be represented by a **multiplicative uncertainty**
+
+\begin{equation} \label{eq:multiplicative\_uncertainty}
+ \begin{aligned}
+ \Pi\_I: \ G\_p(s) &= G(s)(1 + w\_I(s)\Delta\_I(s)); \\\\
+ & \text{with }\abs{\Delta\_I(j\w)} \le 1 \\, \forall\w
+ \end{aligned}
+\end{equation}
+
+
+
+And we see that for SISO systems, additive and multiplicative uncertainty are equivalent if at each frequency:
+
+\begin{equation\*}
+ \abs{w\_I(j\w)} = \abs{w\_A(j\w)}/\abs{G(j\w)}
+\end{equation\*}
+
+However, **multiplicative weights are often preferred because their numerical value is more informative**. At frequencies where \\(\abs{w\_I(j\w)} > 1\\) the uncertainty exceeds \\(\SI{100}{\percent}\\) and the Nyquist curve may pass through the origin.
+Then, at these frequencies, we do not know the phase of the plant, and we allow for zeros crossing from the left to the right-half plane. **Tight control is then not possible** at frequencies where \\(\abs{w\_I(j\w)} \ge 1\\).
+
+
+#### Obtaining the Weight for Complex Uncertainty {#obtaining-the-weight-for-complex-uncertainty}
+
+Consider a set \\(\Pi\\) of possible plants resulting, for example, from parametric uncertainty. We now want to describe this set of plants by a single complex perturbation \\(\Delta\_A\\) or \\(\Delta\_I\\).
+
+This complex disc-shaped uncertainty description may be generated as follows:
+
+1. Select a nominal \\(G(s)\\)
+2. **Additive uncertainty**.
+ At each frequency, find the smallest radius \\(l\_A(\w)\\) which includes all the possible plants \\(\Pi\\)
+
+ \begin{equation\*}
+ l\_A(\w) = \max\_{G\_p\in\Pi} \abs{G\_p(j\w) - G(j\w)}
+ \end{equation\*}
+
+ If we want a rational transfer function weight, \\(w\_A(s)\\), then it must be chosen to cover the set, so
+
+ \begin{equation\*}
+ \abs{w\_A(j\w)} \ge l\_A(\w) \quad \forall\w
+ \end{equation\*}
+
+ Usually \\(w\_A(s)\\) is of low order to simplify the controller design.
+3. **Multiplicative uncertainty**.
+ This is often the preferred uncertainty form, and we have
+
+ \begin{equation\*}
+ l\_I(\w) = \max\_{G\_p\in\Pi} \abs{\frac{G\_p(j\w) - G(j\w)}{G(j\w)}}
+ \end{equation\*}
+
+ and with a rational weight \\(\abs{w\_I(j\w)} \ge l\_I(\w), \\, \forall\w\\)
+
+
+
+We want to represent the following set using multiplicative uncertainty with a rational weight \\(w\_I(s)\\)
+
+\begin{equation\*}
+ \Pi: \quad G\_p(s) = \frac{k}{\tau s + 1} e^{-\theta s}, \quad 2 \le k, \theta, \tau \le 3
+\end{equation\*}
+
+To simplify subsequent controller design, we select a delay-free nominal model
+
+\begin{equation\*}
+ G(s) = \frac{\overline{k}}{\overline{\tau} s + 1} = \frac{2.5}{2.5 s + 1}
+\end{equation\*}
+
+To obtain \\(l\_I(\w)\\), we consider three values (2, 2.5 and 3) for each of the three parameters (\\(k, \theta, \tau\\)).
+The corresponding relative errors \\(\abs{\frac{G\_p-G}{G}}\\) are shown as functions of frequency for the \\(3^3 = 27\\) resulting \\(G\_p\\) ([Figure 16](#figure--fig:uncertainty-weight)).
+To derive \\(w\_I(s)\\), we then try to find a simple weight so that \\(\abs{w\_I(j\w)}\\) lies above all the dotted lines.
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_uncertainty_weight.png" caption="Figure 16: Relative error for 27 combinations of \\(k,\ \tau\\) and \\(\theta\\). Solid and dashed lines: two weights \\(\abs{w\_I}\\)" >}}
+
+
+#### Choice of Nominal Model {#choice-of-nominal-model}
+
+With parametric uncertainty represented as complex perturbations, there are three main options for the choice of nominal model:
+
+1. **A simplified model**, for instance a low order, delay free model.
+ It usually yields the largest uncertainty region, but the model is simple and this facilitates controller design in later stages.
+2. **A model of mean parameter values**, \\(G(s) = \overline{G}(s)\\).
+ It is probably the most straightforward choice.
+3. **The central plant obtained from a Nyquist plot**.
+ It yields the smallest region, but in this case a significant effort may be required to obtain the nominal model which is usually not a rational transfer function.
+
+For SISO systems, we find that for plants with an uncertain time delay, it is simplest and sometimes best to use a delay-free nominal model, and to represent the nominal delay as additional uncertainty.
+
+If we use a parametric uncertainty description, based on multiple real perturbations, then we should always use the mean parameter values in the nominal model.
+
+
+#### Neglected Dynamics Represented as Uncertainty {#neglected-dynamics-represented-as-uncertainty}
+
+We saw that one advantage of frequency domain uncertainty description is that one can choose to work with a simple nominal model, and **represent neglected dynamics as uncertainty**.
+
+Consider a set of plants
+
+\begin{equation\*}
+ G\_p(s) = G\_0(s) f(s)
+\end{equation\*}
+
+where \\(G\_0(s)\\) is fixed.
+We want to neglect the term \\(f(s) \in \Pi\_f\\), and represent \\(G\_p\\) by multiplicative uncertainty with a nominal model \\(G = G\_0\\).
+
+The magnitude of the relative uncertainty caused by neglecting the dynamics in \\(f(s)\\) is
+
+\begin{equation\*}
+ l\_I(\w) = \max\_{G\_p} \abs{\frac{G\_p - G}{G}} = \max\_{f(s) \in \Pi\_f} \abs{f(j\w) - 1}
+\end{equation\*}
+
+
+##### Neglected delay {#neglected-delay}
+
+Let \\(f(s) = e^{-\theta\_p s}\\), where \\(0 \le \theta\_p \le \theta\_{\text{max}}\\). We want to represent \\(G\_p(s) = G\_0(s)e^{-\theta\_p s}\\) by a delay-free plant \\(G\_0(s)\\) and multiplicative uncertainty. Let first consider the maximum delay, for which the relative error \\(\abs{1 - e^{-j \w \theta\_{\text{max}}}}\\) is shown as a function of frequency ([Figure 17](#figure--fig:neglected-time-delay)). If we consider all \\(\theta \in [0, \theta\_{\text{max}}]\\) then:
+
+\begin{equation\*}
+ l\_I(\w) = \begin{cases} \abs{1 - e^{-j\w\theta\_{\text{max}}}} & \w < \pi/\theta\_{\text{max}} \\\ 2 & \w \ge \pi/\theta\_{\text{max}} \end{cases}
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_neglected_time_delay.png" caption="Figure 17: Neglected time delay" >}}
+
+
+##### Neglected lag {#neglected-lag}
+
+Let \\(f(s) = 1/(\tau\_p s + 1)\\), where \\(0 \le \tau\_p \le \tau\_{\text{max}}\\). In this case the resulting \\(l\_I(\w)\\) ([Figure 18](#figure--fig:neglected-first-order-lag)) can be represented by a rational transfer function with \\(\abs{w\_I(j\w)} = l\_I(\w)\\) where
+
+\begin{equation\*}
+ w\_I(s) = \frac{\tau\_{\text{max}} s}{\tau\_{\text{max}} s + 1}
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_neglected_first_order_lag.png" caption="Figure 18: Neglected first-order lag uncertainty" >}}
+
+
+##### Multiplicative weight for gain and delay uncertainty {#multiplicative-weight-for-gain-and-delay-uncertainty}
+
+Consider the following set of plants
+
+\begin{equation\*}
+ G\_p = k\_p e^{-\theta\_p s} G\_0(s); \quad k\_p \in [k\_{\min}, k\_{\text{max}}], \ \theta\_p \in [\theta\_{\min}, \theta\_{\text{max}}]
+\end{equation\*}
+
+which we want to represent by multiplicative uncertainty and a delay-free nominal model \\(G(s) = \overline{k} G\_0(s)\\).
+There is an exact expression, its first order approximation is
+
+\begin{equation\*}
+ w\_I(s) = \frac{(1+\frac{r\_k}{2})\theta\_{\text{max}} s + r\_k}{\frac{\theta\_{\text{max}}}{2} s + 1}
+\end{equation\*}
+
+However, as shown in [Figure 19](#figure--fig:lag-delay-uncertainty), the weight \\(w\_I\\) is optimistic, especially around frequencies \\(1/\theta\_{\text{max}}\\). To make sure that \\(\abs{w\_I(j\w)} \le l\_I(\w)\\), we can apply a correction factor:
+
+\begin{equation\*}
+ w\_I^\prime(s) = w\_I \cdot \frac{(\frac{\theta\_{\text{max}}}{2.363})^2 s^2 + 2\cdot 0.838 \cdot \frac{\theta\_{\text{max}}}{2.363} s + 1}{(\frac{\theta\_{\text{max}}}{2.363})^2 s^2 + 2\cdot 0.685 \cdot \frac{\theta\_{\text{max}}}{2.363} s + 1}
+\end{equation\*}
+
+It is suggested to start with the simple weight and then if needed, to try the higher order weight.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_lag_delay_uncertainty.png" caption="Figure 19: Multiplicative weight for gain and delay uncertainty" >}}
+
+
+#### Unmodelled Dynamics Uncertainty {#unmodelled-dynamics-uncertainty}
+
+The most important reason for using frequency domain (\\(\hinf\\)) uncertainty description and complex perturbations, is the **incorporation of unmodelled dynamics**.
+Unmodelled dynamics, while being close to neglected dynamics, also include unknown dynamics of unknown or even infinite order.
+
+
+
+To represent unmodelled dynamics, we usually use a simple **multiplicative weight** of the form
+
+\begin{equation} \label{eq:multiplicative\_simple\_weight}
+ w\_I(s) = \frac{\tau s + r\_0}{(\tau/r\_\infty) s + 1}
+\end{equation}
+
+where \\(r\_0\\) is the relative uncertainty at steady-state, \\(1/\tau\\) is the frequency at which the relative uncertainty reaches \\(\SI{100}{\percent}\\), and \\(r\_\infty\\) is the magnitude of the weight at high frequency.
+
+
+
+
+### SISO Robust Stability {#siso-robust-stability}
+
+
+#### RS with Multiplicative Uncertainty {#rs-with-multiplicative-uncertainty}
+
+We want to determine the stability of the uncertain feedback system in [Figure 20](#figure--fig:feedback-multiplicative-uncertainty) where there is multiplicative uncertainty of magnitude \\(\abs{w\_I(j\w)}\\).
+The loop transfer function becomes
+
+\begin{equation\*}
+ L\_P = G\_p K = G K (1 + w\_I \Delta\_I) = L + w\_I L \Delta\_I
+\end{equation\*}
+
+We assume (by design) the stability of the nominal closed-loop system (with \\(\Delta\_I = 0\\)).
+We use the Nyquist stability condition to test for robust stability of the closed loop system:
+
+\begin{align\*}
+ \text{RS} \quad &\stackrel{\text{def}}{\Longleftrightarrow} \quad \text{System stable} \ \forall L\_p \\\\
+ &\Longleftrightarrow \quad L\_p \ \text{should not encircle -1}, \ \forall L\_p
+\end{align\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_input_uncertainty_set_feedback.png" caption="Figure 20: Feedback system with multiplicative uncertainty" >}}
+
+
+##### Graphical derivation of RS-condition {#graphical-derivation-of-rs-condition}
+
+Consider the Nyquist plot of \\(L\_p\\) as shown in [Figure 21](#figure--fig:nyquist-uncertainty). \\(\abs{1+L}\\) is the distance from the point \\(-1\\) to the center of the disc representing \\(L\_p\\) and \\(\abs{w\_I L}\\) is the radius of the disc.
+Encirclements are avoided if none of the discs cover \\(-1\\), and we get:
+
+\begin{align\*}
+ \text{RS} \quad &\Leftrightarrow \quad \abs{w\_I L} < \abs{1 + L}, \ \forall\w \\\\
+ &\Leftrightarrow \quad \abs{\frac{w\_I L}{1 + L}} < 1, \ \forall\w \\\\
+ &\Leftrightarrow \quad \abs{w\_I T} < 1, \ \forall\w \\\\
+\end{align\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_nyquist_uncertainty.png" caption="Figure 21: Nyquist plot of \\(L\_p\\) for robust stability" >}}
+
+
+
+The requirement of robust stability for the case with multiplicative uncertainty gives an **upper bound on the complementary sensitivity**
+
+\begin{equation} \label{eq:robust\_stability\_siso}
+ \text{RS} \quad \Leftrightarrow \quad \abs{T} < 1/\abs{w\_I}, \ \forall\w
+\end{equation}
+
+
+
+We see that we have to make \\(T\\) small at frequencies where the relative uncertainty \\(\abs{w\_I}\\) exceeds 1 in magnitude.
+
+
+##### Algebraic derivation of RS-condition {#algebraic-derivation-of-rs-condition}
+
+Since \\(L\_p\\) is assumed stable, and the nominal closed-loop is stable, the nominal loop transfer function \\(L(j\w)\\) does not encircle -1. Therefore, since the set of plants is norm-bounded, it then follows that if some \\(L\_{p1}\\) in the uncertainty set encircles -1, then there must be another \\(L\_{p2}\\) in the uncertainty set which goes exactly through -1 at some frequency. Thus
+
+\begin{align\*}
+ \text{RS} \quad & \Leftrightarrow \abs{1 + L\_p} \ne 0,\ \forall L\_p,\\,\forall \w\\\\
+ & \Leftrightarrow \abs{1 + L\_p} > 0,\ \forall L\_p,\\,\forall \w\\\\
+ & \Leftrightarrow \abs{1 + L + w\_I L \Delta\_I} > 0,\ \forall \abs{\Delta\_I} \le 1,\\,\forall \w\\\\
+\end{align\*}
+
+At each frequency, the last condition is most easily violated when the complex number \\(\Delta\_I(j\w)\\) is selected with \\(\abs{\Delta(j\w)} = 1\\) and with phase such that \\(1+L\\) and \\(w\_I L \Delta\_I\\) point in the opposite direction. Thus
+
+\begin{equation\*}
+ \text{RS} \ \Leftrightarrow \ \abs{1 + L} - \abs{w\_I L} > 0, \ \forall\w \ \Leftrightarrow \ \abs{w\_I T} < 1, \ \forall\w
+\end{equation\*}
+
+And we obtain the same condition as before.
+
+
+#### RS with Inverse Multiplicative Uncertainty {#rs-with-inverse-multiplicative-uncertainty}
+
+We will derive a corresponding RS-condition for feedback system with inverse multiplicative uncertainty ([Figure 22](#figure--fig:inverse-uncertainty-set)) in which
+
+\begin{equation\*}
+ G\_p = G(1 + w\_{iI}(s) \Delta\_{iI})^{-1}
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_inverse_uncertainty_set.png" caption="Figure 22: Feedback system with inverse multiplicative uncertainty" >}}
+
+We assume that \\(L\_p\\) and the nominal closed-loop systems are stable. Robust stability is guaranteed if \\(L\_p(j\w)\\) does not encircles the point -1:
+
+\begin{align\*}
+ \text{RS} \quad &\Leftrightarrow \quad \abs{1 + L\_p} > 0, \ \forall L\_p, \\, \forall\w\\\\
+ &\Leftrightarrow \quad \abs{1 + L (1 + w\_{iI} \Delta\_{iI})^{-1}} > 0, \ \forall \abs{\Delta\_{iI}} < 1, \\, \forall\w\\\\
+ &\Leftrightarrow \quad \abs{1 + w\_{iI} \Delta\_{iI} + L} > 0, \ \forall \abs{\Delta\_{iI}} < 1, \\, \forall\w\\\\
+ &\Leftrightarrow \quad \abs{1 + L} - \abs{w\_{iI} \Delta\_{iI}} > 0, \ \forall\w\\\\
+ &\Leftrightarrow \quad \abs{w\_{iI} S} < 1, \ \forall\w\\\\
+\end{align\*}
+
+
+
+The requirement for robust stability for the case with inverse multiplicative uncertainty gives an **upper bound on the sensitivity**
+
+\begin{equation} \label{eq:robust\_stability\_inverse\_uncertainty\_siso}
+ \text{RS} \quad \Leftrightarrow \quad \abs{S} < 1/\abs{w\_{iI}}, \ \forall\w
+\end{equation}
+
+We see that we need tight control and have to make \\(S\\) small at frequencies where the uncertainty is large and \\(w\_{iI}\\) exceeds 1 in magnitude.
+
+
+
+The reason is that the uncertainty represents pole uncertainty, and at frequencies where \\(\abs{w\_{iI}}\\) exceeds 1, we allow for poles crossing from the left to the right-half plant, and we then need feedback (\\(\abs{S} < 1\\)) in order to stabilize the system.
+
+
+### SISO Robust Performance {#siso-robust-performance}
+
+
+#### SISO Nominal Performance {#siso-nominal-performance}
+
+
+
+The condition for **nominal performance** when considering performance in terms of the **weighted sensitivity** function is
+
+\begin{equation} \label{eq:siso\_nominal\_performance}
+ \begin{aligned}
+ \text{NP} &\Leftrightarrow \abs{w\_P S} < 1 \ \forall\omega \\\\
+ &\Leftrightarrow \abs{w\_P} < \abs{1 + L} \ \forall\omega
+ \end{aligned}
+\end{equation}
+
+
+
+Now \\(\abs{1 + L}\\) represents at each frequency the distance of \\(L(j\omega)\\) from the point \\(-1\\) in the Nyquist plot, so \\(L(j\omega)\\) must be at least a distance of \\(\abs{w\_P(j\omega)}\\) from \\(-1\\).
+This is illustrated graphically in [Figure 23](#figure--fig:nyquist-performance-condition).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_nyquist_performance_condition.png" caption="Figure 23: Nyquist plot illustration of the nominal performance condition \\(\abs{w\_P} < \abs{1 + L}\\)" >}}
+
+
+#### Robust Performance {#robust-performance}
+
+
+
+For robust performance, we require the performance condition to be satisfied for **all** possible plants:
+
+\begin{equation} \label{eq:robust\_performance\_definition\_siso}
+ \begin{aligned}
+ \text{RP}\ &\overset{\text{def}}{\Leftrightarrow}\ \abs{w\_P S} < 1 \quad \forall S\_p, \forall \omega\\\\
+ \ &\Leftrightarrow\ \abs{w\_P} < \abs{1 + L\_p} \quad \forall L\_p, \forall \omega
+ \end{aligned}
+\end{equation}
+
+
+
+Let's consider the case of multiplicative uncertainty as shown on [Figure 24](#figure--fig:input-uncertainty-set-feedback-weight-bis).
+The robust performance corresponds to requiring \\(\abs{\hat{y}/d}<1\ \forall \Delta\_I\\) and the set of possible loop transfer functions is
+
+\begin{equation\*}
+ L\_p = G\_p K = L (1 + w\_I \Delta\_I) = L + w\_I L \Delta\_I
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight_bis.png" caption="Figure 24: Diagram for robust performance with multiplicative uncertainty" >}}
+
+
+##### Graphical derivation of RP-condition {#graphical-derivation-of-rp-condition}
+
+As illustrated on [Figure 23](#figure--fig:nyquist-performance-condition), we must required that all possible \\(L\_p(j\omega)\\) stay outside a disk of radius \\(\abs{w\_P(j\omega)}\\) centered on \\(-1\\).
+Since \\(L\_p\\) at each frequency stays within a disk of radius \\(|w\_I(j\omega) L(j\omega)|\\) centered on \\(L(j\omega)\\), the condition for RP becomes:
+
+\begin{align\*}
+ \text{RP}\ &\Leftrightarrow\ \abs{w\_P} + \abs{w\_I L} < \abs{1+L} \quad \forall\omega\\\\
+ &\Leftrightarrow\ \abs{w\_P(1 + L)^{-1}} + \abs{w\_I L(1 + L)^{-1}} < 1 \quad \forall\omega\\\\
+\end{align\*}
+
+
+
+Finally, we obtain the following condition for **Robust Performance**:
+
+\begin{equation} \label{eq:robust\_performance\_condition\_siso}
+ \text{RP} \ \Leftrightarrow\ \max\_{\omega} \left(\abs{w\_P S} + \abs{w\_I T} \right) < 1
+\end{equation}
+
+
+
+
+##### Algebraic derivation of RP-condition {#algebraic-derivation-of-rp-condition}
+
+RP is satisfied if the worst-case weighted sensitivity at each frequency is less than \\(1\\):
+
+\begin{equation\*}
+ \text{RP} \ \Leftrightarrow\ \max\_{S\_p} \abs{w\_P S\_p} < 1, \quad \forall\omega
+\end{equation\*}
+
+The perturbed sensitivity \\(S\_p\\) is
+
+\begin{equation\*}
+ S\_p = \frac{1}{1 + L\_p} = \frac{1}{1 + L + w\_I L \Delta\_I}
+\end{equation\*}
+
+Thus:
+
+\begin{equation\*}
+ \max\_{S\_p} \abs{w\_P S\_p} = \frac{\abs{w\_P}}{\abs{1 + L} - \abs{w\_I L}} = \frac{\abs{w\_P S}}{1 - \abs{w\_I T}}
+\end{equation\*}
+
+And we obtain the same RP-condition as the graphically derived one.
+
+
+##### Remarks on RP-condition {#remarks-on-rp-condition}
+
+1. The RP-condition for this problem is closely approximated by the mixed sensitivity \\(\hinf\\) condition:
+
+ \begin{equation\*}
+ \tcmbox{\hnorm{\begin{matrix}w\_P S \\\ w\_I T\end{matrix}} = \max\_{\omega} \sqrt{\abs{w\_P S}^2 + \abs{w\_I T}^2} <1}
+ \end{equation\*}
+
+ This condition is within a factor at most \\(\sqrt{2}\\) of the true RP-condition.
+ This means that **for SISO systems, we can closely approximate the RP-condition in terms of an \\(\hinf\\) problem**, so there is no need to make use of the structured singular value.
+ However, we will see that the situation can be very different for MIMO systems.
+2. The RP-condition can be used to derive bounds on the loop shape \\(\abs{L}\\):
+
+ \begin{align\*}
+ \abs{L} &> \frac{1 + \abs{w\_P}}{1 - \abs{w\_I}}, \text{ at frequencies where } \abs{w\_I} < 1\\\\
+ \abs{L} &< \frac{1 - \abs{w\_P}}{1 + \abs{w\_I}}, \text{ at frequencies where } \abs{w\_P} < 1\\\\
+ \end{align\*}
+
+
+#### The Relationship Between NP, RS and RP {#the-relationship-between-np-rs-and-rp}
+
+Consider a SISO system with multiplicative input uncertainty, and assume that the closed-loop is nominally stable (NS).
+The conditions for nominal performance (NP), robust stability (RS) and robust performance (RP) as summarized as follows:
+
+
+
+From this we see that **a prerequisite for RP is that we satisfy both NP and RS**.
+This applies in general, both for SISO and MIMO systems and for any uncertainty.
+
+In addition, for SISO systems, if we satisfy both RS and NP, then we have at each frequency:
+
+\begin{equation\*}
+ |w\_P S| + |w\_I T| < 2 \cdot \max \\{|w\_P S|, |w\_I T|\\} < 2
+\end{equation\*}
+
+It then follows that, within a factor at most 2, we will automatically get RP when NP and RS are satisfied.
+This, RP is not a "big issue" for SISO systems.
+
+To satisfy RS we generally want \\(T\\) small, whereas to satisfy \\(NP\\) we generally want \\(S\\) small.
+However, we cannot make both \\(S\\) and \\(T\\) small at the same frequency because of the identity \\(S + T = 1\\).
+This has implications for RP:
+
+\begin{align\*}
+ |w\_P S| + |w\_I T| &\ge \text{min}\\{|w\_P|, |w\_I|\\}(|S| + |T|) \\\\
+ &\ge \text{min}\\{|w\_P|, |w\_I|\\}(|S + T|) \\\\
+ &\ge \text{min}\\{|w\_P|, |w\_I|\\}
+\end{align\*}
+
+This means that we cannot have both \\(|w\_P|>1\\) (i.e. good performance) and \\(|w\_I|>1\\) (i.e. more than 100% uncertainty) at the same frequency.
+
+
+### Examples of Parametric Uncertainty {#examples-of-parametric-uncertainty}
+
+
+#### Parametric Pole Uncertainty {#parametric-pole-uncertainty}
+
+Consider the following set of plants:
+
+\begin{equation\*}
+ G\_p(s) = \frac{1}{s - a\_p} G\_0(s); \quad a\_\text{min} \le a\_p \le a\_{\text{max}}
+\end{equation\*}
+
+If \\(a\_\text{min}\\) and \\(a\_\text{max}\\) have different signs, then this means that the plant can change from stable to unstable with the pole crossing through the origin.
+
+This set of plants can be written as
+
+\begin{equation\*}
+ G\_p(s) = \frac{G\_0(s)}{s - \overline{a}(1 + r\_a \Delta)}; \quad -1 \le \Delta \le 1
+\end{equation\*}
+
+which can be exactly described by inverse multiplicative uncertainty:
+
+\begin{equation\*}
+ G(s) = \frac{G\_0(s)}{(s - \overline{a})}; \quad w\_{iI}(s) = \frac{r\_a \overline{a}}{s - \overline{a}}
+\end{equation\*}
+
+The magnitude of \\(w\_{iI}(s)\\) is equal to \\(r\_a\\) at low frequency and goes to \\(0\\) at high frequencies.
+
+
+##### Time constant form {#time-constant-form}
+
+It is also interesting to consider another form of pole uncertainty, namely that associated with the time constant:
+
+\begin{equation\*}
+ G\_p(s) = \frac{1}{\tau\_p s + 1} G\_0(s); \quad \tau\_\text{min} \le \tau\_p \le \tau\_\text{max}
+\end{equation\*}
+
+The corresponding uncertainty weight is
+
+\begin{equation\*}
+ w\_{iI}(s) = \frac{r\_\tau \overline{\tau} s}{1 + \overline{\tau} s}
+\end{equation\*}
+
+This results in uncertainty in the pole location, but here the uncertainty affects the model at high frequency.
+
+
+#### Parametric Zero Uncertainty {#parametric-zero-uncertainty}
+
+Consider zero uncertainty in the "time constant" form as in:
+
+\begin{equation\*}
+ G\_p(s) = (1 + \tau\_p s)G\_0(s); \quad \tau\_\text{min} \le \tau\_p \le \tau\_\text{max}
+\end{equation\*}
+
+This set of plants may be written as multiplicative uncertainty with:
+
+\begin{equation\*}
+ w\_I(s) = \frac{r\_\tau \overline{\tau} s}{1 + \overline{\tau} s}
+\end{equation\*}
+
+The magnitude \\(|w\_I(j\omega)|\\) is small at low frequencies and approaches \\(r\_\tau\\) at high frequencies.
+For cases with \\(r\_\tau > 1\\) we allow the zero to cross from the LHP to the RHP.
+
+
+#### Parametric State-Space Uncertainty {#parametric-state-space-uncertainty}
+
+A general procedure for handling parametric uncertainty which is more suited for numerical calculations, is parametric state-space uncertainty.
+Consider an uncertain state-space model:
+
+\begin{align\*}
+ \dot{x} &= A\_p x + B\_p u \\\\
+ y &= C\_p x + D\_p u
+\end{align\*}
+
+Assume that the underlying cause for the uncertainty is uncertainty in some real parameters \\(\delta\_1, \delta\_2, \dots\\) and assume that the state space matrices depends linearly on these parameters:
+
+\begin{align\*}
+ A\_p = A + \sum \delta\_i A\_i; \quad & B\_p = B + \sum \delta\_i B\_i \\\\
+ C\_p = C + \sum \delta\_i C\_i; \quad & D\_p = D + \sum \delta\_i D\_i
+\end{align\*}
+
+where \\(A\\), \\(B\\), \\(C\\) and \\(D\\) model the nominal system.
+
+We can collect the perturbations \\(\delta\_i\\) in a large diagonal matrix \\(\Delta\\) with the real \\(\delta\_i\\)'s along its diagonal:
+
+\begin{equation\*}
+ A\_p = A + \sum \delta\_i A\_i = A + W\_2 \Delta W\_1
+\end{equation\*}
+
+In the transfer function form:
+
+\begin{align\*}
+ (s I - A\_p)^{-1} &= (sI - A - W\_2 \Delta W\_1)^{-1} \\\\
+ &= (I - \Phi(s) W\_2 \Delta W\_1)^{-1} \Phi(s)
+\end{align\*}
+
+with \\(\Phi(s) \triangleq (sI - A)^{-1}\\).
+
+This is illustrated in the block diagram of [Figure 25](#figure--fig:uncertainty-state-a-matrix), which is in the form of an inverse additive perturbation.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_uncertainty_state_a_matrix.png" caption="Figure 25: Uncertainty in state space A-matrix" >}}
+
+
+### Conclusion {#conclusion}
+
+Model uncertainty for SISO systems can be represented in the frequency domain using complex norm-bounded perturbations \\(\hnorm{\Delta} \le 1\\).
+
+Requirements of robust stability for the case of multiplicative complex uncertainty imposes an upper bound on the allowed complementary sensitivity, \\(\abs{w\_I T} < 1, \ \forall\w\\).
+
+Similarly, the inverse multiplicative uncertainty imposes an upper bound on the sensitivity, \\(\abs{w\_{iI} S} < 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}
+
+
+
+
+### General Control Configuration with Uncertainty {#general-control-configuration-with-uncertainty}
+
+The starting point for our robustness analysis is a system representation in which the uncertain perturbations are "pulled out" into a **block diagonal matrix**
+
+\begin{equation\*}
+ \Delta = \text{diag} \\{\Delta\_i\\} = \begin{bmatrix}
+ \Delta\_1 & & & \\\\
+ & \ddots & & \\\\
+ & & \Delta\_i & \\\\
+ & & & \ddots
+ \end{bmatrix}
+\end{equation\*}
+
+where each \\(\Delta\_i\\) represents a **specific source of uncertainty**, e.g. input uncertainty \\(\Delta\_I\\) or parametric uncertainty \\(\delta\_i\\).
+
+If we also pull out the controller \\(K\\), we get the generalized plant \\(P\\) as shown in [Figure 26](#figure--fig:general-control-delta). This form is useful for controller synthesis.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control_delta.png" caption="Figure 26: General control configuration used for controller synthesis" >}}
+
+If the controller is given and we want to analyze the uncertain system, we use the \\(N\Delta\text{-structure}\\) in [Figure 27](#figure--fig:general-control-Ndelta).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control_Ndelta.png" caption="Figure 27: \\(N\Delta\text{-structure}\\) for robust performance analysis" >}}
+
+\\(N\\) is related to \\(P\\) and \\(K\\) by a **lower LFT**
+
+\begin{align\*}
+ N &= F\_l(P, K) \\\\
+ &\triangleq P\_{11} + P\_{12} K (I - P\_{22}K)^{-1} P\_{21}
+\end{align\*}
+
+Similarly, the uncertain closed-loop transfer function from \\(w\\) to \\(z\\), is related to \\(N\\) and \\(\Delta\\) by an **upper LFT**
+
+\begin{align\*}
+ F &= F\_u(N, \Delta) \\\\
+ &\triangleq N\_{22} + N\_{21} \Delta (I - N\_{11} \Delta)^{-1} N\_{12}
+\end{align\*}
+
+To analyze robust stability of \\(F\\), we can rearrange the system into the \\(M\Delta\text{-structure}\\) shown in [Figure 28](#figure--fig:general-control-Mdelta-bis) where \\(M = N\_{11}\\) is the transfer function from the output to the input of the perturbations.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control_Mdelta_bis.png" caption="Figure 28: \\(M\Delta\text{-structure}\\) for robust stability analysis" >}}
+
+
+### Representing Uncertainty {#representing-uncertainty}
+
+Each individual perturbation is assumed to be **stable and normalized**:
+
+\begin{equation\*}
+ \maxsv(\Delta\_i(j\w)) \le 1 \quad \forall\w
+\end{equation\*}
+
+As the maximum singular value of a block diagonal matrix is equal to the largest of the maximum singular values of the individual blocks, it then follows for \\(\Delta = \text{diag}\\{\Delta\_i\\}\\) that
+
+\begin{equation\*}
+ \maxsv(\Delta\_i(j\w)) \le 1 \quad \forall\w, \forall i \quad \Leftrightarrow \quad \tcmbox{\hnorm{\Delta} \le 1}
+\end{equation\*}
+
+
+#### Differences Between SISO and MIMO Systems {#differences-between-siso-and-mimo-systems}
+
+The main difference between SISO and MIMO systems is the concept of directions which is only relevant in the latter.
+As a consequence, MIMO systems may experience **much larger sensitivity to uncertainty** than SISO systems.
+
+
+#### Parametric Uncertainty {#parametric-uncertainty}
+
+The representation of parametric uncertainty for MIMO systems is the same as for SISO systems.
+However, the inclusion of parametric uncertainty may be more significant for MIMO plants because it offers a simple method of representing uncertain transfer function elements.
+
+
+#### Unstructured Uncertainty {#unstructured-uncertainty}
+
+Unstructured perturbations are often used to get a simple uncertainty model.
+We here define unstructured uncertainty as the use of a "full" complex perturbation matrix \\(\Delta\\), usually with dimensions compatible with those of the plant, where at each frequency any \\(\Delta(j\w)\\) satisfying \\(\maxsv(\Delta(j\w)) < 1\\) is allowed.
+
+Three common forms of **feedforward unstructured uncertainty** are shown [Table 4](#table--fig:feedforward-uncertainty): additive uncertainty, multiplicative input uncertainty and multiplicative output uncertainty.
+
+
+ Table 5:
+ Common feedback unstructured uncertainty
+
+
+|  |  |  |
+|-------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
+| Inverse additive uncertainty | Inverse multiplicative input uncertainty | Inverse multiplicative output uncertainty |
+
+
+##### Lumping uncertainty into a single perturbation {#lumping-uncertainty-into-a-single-perturbation}
+
+For SISO systems, we usually lump multiple sources of uncertainty into a single complex perturbation; often in the multiplicative form.
+This may be also done for MIMO systems, but then it makes a difference whether the perturbation is at the input or the output.
+
+Since **output uncertainty is frequently less restrictive than input uncertainty in terms of control performance**, we first attempt to lump the uncertainty at the output. For example, a set of plant \\(\Pi\\) may be represented by multiplicative output uncertainty with a scalar weight \\(w\_O(s)\\) using
+
+\begin{equation\*}
+ G\_p = (I + w\_O \Delta\_O) G, \quad \hnorm{\Delta\_O} \le 1
+\end{equation\*}
+
+where
+
+\begin{equation\*}
+ l\_O(\w) = \max\_{G\_p \in \Pi} \maxsv\left( (G\_p - G)G^{-1} \right); \ \abs{w\_O(j\w)} \ge l\_O(\w), \\, \forall\w
+\end{equation\*}
+
+If the resulting uncertainty weight is reasonable and the analysis shows that robust stability and performance may be achieve, then this lumping of uncertainty at the output is fine.
+If this is not the case, then one may try to lump the uncertainty at the input instead, using multiplicative input uncertainty with a scalar weight,
+
+\begin{equation\*}
+ G\_p = G(I + w\_I \Delta\_I), \quad \hnorm{\Delta\_I} \le 1
+\end{equation\*}
+
+where
+
+\begin{equation\*}
+ l\_I(\w) = \max\_{G\_p \in \Pi} \maxsv\left( G^{-1}(G\_p - G) \right); \ \abs{w\_I(j\w)} \ge l\_I(\w), \\, \forall\w
+\end{equation\*}
+
+However, in many cases, this approach of lumping uncertainty either at the output or the input does **not** work well because **it usually introduces additional plants** that were not present in the original set.
+
+
+##### Conclusion {#conclusion}
+
+Ideally, we would like to lump several sources of uncertainty into a single perturbation to get a simple uncertainty description.
+Often an unstructured multiplicative output perturbation is used.
+However, we should be careful about doing this, at least for plants with a large condition number.
+In such cases we may have to represent the uncertainty as it occurs physically (at the input, in the elements, etc.) thereby generating several perturbations.
+
+
+#### Diagonal Uncertainty {#diagonal-uncertainty}
+
+By "diagonal uncertainty" we mean that the perturbation is a complex diagonal matrix
+
+\begin{equation\*}
+ \Delta(s) = \text{diag}\\{\delta\_i(s)\\}; \quad \abs{\delta\_i(j\w)} \le 1, \ \forall\w, \\, \forall i
+\end{equation\*}
+
+Diagonal uncertainty usually arises from a consideration of uncertainty or neglected dynamics in the **individual input or output channels**.
+This type of diagonal uncertainty is **always present**.
+
+
+
+Let us consider uncertainty in the input channels. With each input \\(u\_i\\), there is a physical system (amplifier, actuator, etc.) which based on the controller output signal \\(u\_i\\), generates a physical plant input \\(m\_i\\)
+
+\begin{equation\*}
+ m\_i = h\_i(s) u\_i
+\end{equation\*}
+
+The scalar transfer function \\(h\_i(s)\\) is often absorbed into the plant model \\(G(s)\\).
+We can represent its uncertainty as multiplicative uncertainty
+
+\begin{equation\*}
+ h\_{pi}(s) = h\_i(s)(1 + w\_{Ii}(s)\delta\_i(s)); \quad \abs{\delta\_i(j\w)} \le 1, \\, \forall\w
+\end{equation\*}
+
+which after combining all input channels results in diagonal input uncertainty for the plant
+
+\begin{align\*}
+ G\_p(s) = G(I + W\_I \Delta\_I) \text{ with } &\Delta\_I = \diag{\delta\_i} \\\\
+ &W\_I = \diag{w\_{Ii}}
+\end{align\*}
+
+
+
+Normally, we would represent the uncertainty in each input or output channel using a simple weight in the form
+
+\begin{equation\*}
+ w(s) = \frac{\tau s + r\_0}{(\tau/r\_\infty)s + 1}
+\end{equation\*}
+
+where \\(r\_0\\) is the relative uncertainty at steady-state, \\(1/\tau\\) is the frequency where the relative uncertainty reaches \\(\SI{100}{\percent}\\), and \\(r\_\infty\\) is the magnitude of the weight at high frequencies.
+
+**Diagonal input uncertainty should always be considered because**:
+
+- it is **always** present and a system which is sensitive to this uncertainty will not work in practice
+- it often **restrict achievable performance** with multivariable control
+
+
+### Obtaining \\(P\\), \\(N\\) and \\(M\\) {#obtaining-p-n-and-m}
+
+Let's consider the feedback system with multiplicative input uncertainty \\(\Delta\_I\\) shown [Figure 29](#figure--fig:input-uncertainty-set-feedback-weight).
+\\(W\_I\\) is a normalization weight for the uncertainty and \\(W\_P\\) is a performance weight.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight.png" caption="Figure 29: System with multiplicative input uncertainty and performance measured at the output" >}}
+
+We want to derive the generalized plant \\(P\\) which has inputs \\([u\_\Delta,\ w,\ u]^T\\) and outputs \\([y\_\Delta,\ z,\ v]^T\\).
+
+By breaking the loop before and after \\(K\\) and \\(\Delta\_I\\), we get
+
+\begin{equation\*}
+ P = \begin{bmatrix}
+ 0 & 0 & W\_I \\\\
+ W\_P G & W\_P & W\_P G \\\\
+ -G & -I & -G
+ \end{bmatrix}
+\end{equation\*}
+
+Next, we want to derive the matrix \\(N\\). We fist partition \\(P\\) to be compatible with \\(K\\):
+
+\begin{align\*}
+ P\_{11} = \begin{bmatrix}
+ 0 & 0 \\\\
+ GW\_P & W\_P
+ \end{bmatrix}, \quad & P\_{12} = \begin{bmatrix}
+ W\_I \\\\
+ GW\_P
+ \end{bmatrix} \\\\
+ P\_{21} = \begin{bmatrix} G & -1 \end{bmatrix}, \quad & P\_{22} = -G \\\\
+\end{align\*}
+
+and then we find \\(N\\) using \\(N = F\_l(P, K)\\).
+
+
+### Definitions of Robust Stability and Robust Performance {#definitions-of-robust-stability-and-robust-performance}
+
+The next step is to check whether we have stability and acceptable performance for all plant in the set:
+
+1. **Robust stability analysis**: with a given controller \\(K\\) we determine whether the system remains stable for all plants in the uncertainty set
+2. **Robust performance analysis**: is RS is satisfied, we determine how "large" the transfer function from exogenous inputs \\(w\\) to outputs \\(z\\) may be for all plants in the uncertainty set
+
+We have \\(z = F(\Delta) \cdot w\\) with
+
+\begin{align\*}
+ F &= F\_u(N, \Delta) \\\\
+ &\triangleq N\_{22} + N\_{21}\Delta(I - N\_{11}\Delta)^{-1} N\_{12}
+\end{align\*}
+
+We here use \\(\hinf\\) norm to define performance and require for RP that \\(\hnorm{F(\Delta)} \le 1\\) for all allowed \\(\Delta\\).
+A typical choice is \\(F = w\_P S\_P\\) where \\(w\_P\\) is the performance weight and \\(S\_P\\) represents the set of perturbed sensitivity functions.
+
+
+
+In terms of the \\(N\Delta\text{-structure}\\), our requirements for stability and performance can be summarized as follows:
+
+\begin{align\*}
+\text{NS} &\ \stackrel{\text{def}}{\Longleftrightarrow} \ N \text{ is internally stable} \\\\
+\text{NP} &\ \stackrel{\text{def}}{\Longleftrightarrow} \ \text{NS and } \hnorm{N\_{22}} < 1 \\\\
+\text{RS} &\ \stackrel{\text{def}}{\Longleftrightarrow} \ \text{NS and } F = F\_u(N, \Delta) \text{ is stable } \forall\Delta \\\\
+\text{RP} &\ \stackrel{\text{def}}{\Longleftrightarrow} \ \text{NS and } \hnorm{F} < 1, \quad \forall \Delta, \\,\hnorm{\Delta} \le 1 \\\\
+\end{align\*}
+
+
+
+
+### Robust Stability for the \\(M\Delta\text{-structure}\\) {#robust-stability-for-the-m-delta-text-structure}
+
+Consider the uncertain \\(N\Delta\text{-system}\\) for which the transfer function from \\(w\\) to \\(z\\) is
+
+\begin{equation\*}
+ F\_u(N, \Delta) = N\_{22} + N\_{21}\Delta(I - N\_{11}\Delta)^{-1} N\_{12}
+\end{equation\*}
+
+Suppose that the system is nominally stable (with \\(\Delta = 0\\)) that is \\(N\\) is stable. We also assume that \\(\Delta\\) is stable.
+We then see from the above equation that the **only possible source of instability** is the feedback term \\((I - N\_{11}\Delta)^{-1}\\).
+Thus, when we have nominal stability, the stability of the \\(N\Delta\text{-structure}\\) is equivalent to the stability of the \\(M\Delta\text{-structure}\\) where \\(M = N\_{11}\\).
+
+We thus need to derive conditions for checking the stability of the \\(M\Delta\text{-structure}\\).
+
+
+
+**Determinant Stability Condition**:
+
+Assume that the nominal system \\(M(s)\\) and the perturbations \\(\Delta(s)\\) are stable.
+Consider the convex set of perturbations \\(\Delta\\), such that if \\(\Delta^\prime\\) is an allowed perturbation then so is \\(c\Delta^\prime\\) where c is any **real** scalar such that \\(\abs{c} \le 1\\).
+Then the \\(M\Delta\text{-structure}\\) is stable for all allowed perturbations **if and only if** the Nyquist plot of \\(\det\left( I - M\Delta(s) \right)\\) does not encircle the origin, \\(\forall\Delta\\):
+
+\begin{equation}
+ \det( I - M\Delta(j\w)) \ne 0, \quad \forall\w, \\, \forall\Delta
+\end{equation}
+
+
+
+
+
+**Spectral Radius Condition**:
+
+Assume that the nominal system \\(M(s)\\) and the perturbations \\(\Delta(s)\\) are stable.
+Consider the class of perturbations, \\(\Delta\\), such that if \\(\Delta^\prime\\) is an allowed perturbation, then so is \\(c\Delta^\prime\\) where c is any **complex** scalar such that \\(\abs{c} \le 1\\).
+Then the \\(M\Delta\text{-structure}\\) is stable for all allowed perturbations **if and only if**:
+
+\begin{equation} \label{eq:spectral\_radio\_condition\_complex\_pert}
+\begin{aligned}
+ &\rho(M\Delta(j\w)) < 1, \quad \forall\w, \\, \forall\Delta\\\\
+ \Leftrightarrow \quad &\max\_{\Delta} \rho(M\Delta(j\w)) < 1, \quad \forall\w
+\end{aligned}
+\end{equation}
+
+
+
+
+### RS for Complex Unstructured Uncertainty {#rs-for-complex-unstructured-uncertainty}
+
+Let \\(\Delta\\) be the set of all complex matrices such that \\(\maxsv(\Delta) \le 1\\) (\\(\\|\Delta\\|\_\infty \le 1\\)).
+This is often referred to as **unstructured uncertainty** or as full-block complex perturbation uncertainty.
+Then we have
+
+\begin{align\*}
+ \max\_\Delta \rho(M\Delta) &= \max\_\Delta \maxsv(M\Delta) \\\\
+ &= \max\_\Delta \maxsv(\Delta) \maxsv(M) \\\\
+ &= \maxsv(M)
+\end{align\*}
+
+
+
+Assume that the nominal system \\(M(s)\\) is stable and that the perturbations \\(\Delta(s)\\) are stable.
+Then the \\(M\Delta\text{-system}\\) is stable for all perturbations \\(\Delta\\) satisfying \\(\hnorm{\Delta} \le 1\\) if and only if
+
+\begin{equation}
+ \maxsv(M(j\w)) < 1 \ \forall\w \quad \Leftrightarrow \quad \hnorm{M} < 1
+\end{equation}
+
+
+
+
+#### Application of the Unstructured RS-condition {#application-of-the-unstructured-rs-condition}
+
+We will now present necessary and sufficient conditions for robust stability for each of the six single unstructured perturbations in [Table 4](#table--fig:feedforward-uncertainty) and [Table 5](#table--fig:feedback-uncertainty) with
+
+\begin{equation\*}
+ E = W\_2 \Delta W\_1, \quad \hnorm{\Delta} \le 1
+\end{equation\*}
+
+To derive the matrix \\(M\\) we simply "isolate" the perturbation, and determine the transfer function matrix
+
+\begin{equation\*}
+ M = W\_1 M\_0 W\_2
+\end{equation\*}
+
+from the output to the input of the perturbation, where \\(M\_0\\) for each of the six cases is given by
+
+\begin{alignat\*}{2}
+ G\_p &= G + E\_A: \quad && M\_0 = K (I + GK)^{-1} = KS\\\\
+ G\_p &= G(I + E\_I): \quad && M\_0 = K (I + GK)^{-1}G = T\_I\\\\
+ G\_p &= (I + E\_O)G: \quad && M\_0 = G K (I + GK)^{-1} = T\\\\
+ G\_p &= G(I - E\_{iA}G)^{-1}: \quad && M\_0 = (I + GK)^{-1} G = SG\\\\
+ G\_p &= G(I - E\_{iI})^{-1}: \quad && M\_0 = (I + KG)^{-1} = S\_I\\\\
+ G\_p &= (I - E\_{iO})^{-1} G: \quad && M\_0 = (I + GK)^{-1} = S
+\end{alignat\*}
+
+Using the theorem to check RS for unstructured perturbations
+
+\begin{equation\*}
+ \text{RS} \quad \Leftrightarrow \quad \hnorm{W\_1 M\_0 W\_2(j\w)} < 1, \ \forall\w
+\end{equation\*}
+
+For instance, for feedforward input uncertainty, we get
+
+\begin{equation\*}
+ \text{RS}\ \forall G\_p = G(I + w\_I \Delta\_I), \hnorm{\Delta\_I} \le 1 \Leftrightarrow \hnorm{w\_I T\_I} < 1
+\end{equation\*}
+
+In general, **the unstructured uncertainty descriptions in terms of a single perturbation are not "tight"** (in the sense that at each frequency all complex perturbations satisfying \\(\maxsv(\Delta(j\w)) \le 1\\) may not be possible in practice).
+Thus, the above RS-conditions are often **conservative**.
+In order to get tighter condition we must use a tighter uncertainty description in terms of a block-diagonal \\(\Delta\\).
+
+
+#### RS for Coprime Factor Uncertainty {#rs-for-coprime-factor-uncertainty}
+
+Robust stability bound in terms of the \\(\hinf\\) norm (\\(\text{RS}\Leftrightarrow\hnorm{M}<1\\)) are in general only tight when there is a single full perturbation block.
+An "exception" to this is when the uncertainty blocks enter or exit from the same location in the block diagram, because they can then be stacked on top of each other or side-by-side, in an overall \\(\Delta\\) which is then full matrix.
+
+One important uncertainty description that falls into this category is the **coprime uncertainty description** shown in [Figure 30](#figure--fig:coprime-uncertainty), for which the set of plants is
+
+\begin{equation\*}
+ G\_p = (M\_l + \Delta\_M)^{-1}(Nl + \Delta\_N), \quad \hnorm{[\Delta\_N, \ \Delta\_N]} \le \epsilon
+\end{equation\*}
+
+Where \\(G = M\_l^{-1} N\_l\\) is a left coprime factorization of the nominal plant.
+
+This uncertainty description is surprisingly **general**, it allows both zeros and poles to cross into the right-half plane, and has proven to be very useful in applications.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_coprime_uncertainty.png" caption="Figure 30: Coprime Uncertainty" >}}
+
+Since we have no weights on the perturbations, it is reasonable to use a normalized coprime factorization of the nominal plant.
+In any case, to test for RS we can rearrange the block diagram to match the \\(M\Delta\text{-structure}\\) with
+
+\begin{equation\*}
+ \Delta = [\Delta\_N, \ \Delta\_M]; \quad M = -\begin{bmatrix}
+ K \\\\
+ I
+ \end{bmatrix} (I + GK)^{-1} M\_l^{-1}
+\end{equation\*}
+
+And we get
+
+\begin{equation\*}
+ \text{RS}\ \forall\ \hnorm{\Delta\_N, \ \Delta\_M} \le \epsilon \quad \Leftrightarrow \quad \hnorm{M} < 1/\epsilon
+\end{equation\*}
+
+The coprime uncertainty description provides a good **generic uncertainty description** for cases where we do not use any specific a priori uncertainty information.
+Note that the uncertainty magnitude is \\(\epsilon\\), so it is not normalized to be less than 1 in this case.
+This is because this uncertainty description is most often used in a controller design procedure where the objective is to maximize the magnitude of the uncertainty \\(\epsilon\\) such that RS is maintained.
+
+
+### RS with Structured Uncertainty: Motivation {#rs-with-structured-uncertainty-motivation}
+
+Consider now the presence of structured uncertainty, where \\(\Delta = \text{diag}\\{\Delta\_i\\}\\) is block-diagonal.
+To test for robust stability, we rearrange the system into the \\(M\Delta\text{-structure}\\) and we have
+
+\begin{equation\*}
+ \text{RS if } \maxsv(M(j\w)) < 1, \ \forall\w
+\end{equation\*}
+
+We have here written "if" rather than "if and only if" since this condition is only sufficient for RS when \\(\Delta\\) has "no structure".
+The question is whether we can take advantage of the fact that \\(\Delta = \text{diag}\\{\Delta\_i\\}\\) is structured to obtain an RS-condition which is tighter.
+On idea is to make use of the fact that stability must be independent of scaling.
+
+To this effect, introduce the block-diagonal scaling matrix
+
+\begin{equation\*}
+ D = \diag{d\_i I\_i}
+\end{equation\*}
+
+where \\(d\_i\\) is a scalar and \\(I\_i\\) is an identity matrix of the same dimension as the \\(i\\)'th perturbation block \\(\Delta\_i\\).
+
+Now rescale the inputs and outputs of \\(M\\) and \\(\Delta\\) by inserting the matrices \\(D\\) and \\(D^{-1}\\) on both sides as shown in [Figure 31](#figure--fig:block-diagonal-scalings).
+This clearly has no effect on stability.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_block_diagonal_scalings.png" caption="Figure 31: Use of block-diagonal scalings, \\(\Delta D = D \Delta\\)" >}}
+
+Note that with the chosen form for the scalings we have for each perturbation block \\(\Delta\_i = d\_i \Delta\_i d\_i^{-1}\\), that is we have \\(\Delta = D \Delta D^{-1}\\).
+
+This means that we have
+
+\begin{equation\*}
+ \text{RS if } \maxsv(DM(j\w)D^{-1}) < 1, \ \forall\w
+\end{equation\*}
+
+
+
+This applies for any \\(D\\), and therefore the "most improved" (least conservative) RS-condition is obtained by minimizing at each frequency the scaled singular value and we have
+
+\begin{equation\*}
+ \text{RS if } \min\_{D(\w) \in \mathcal{D}} \maxsv(D(\w)M(j\w)D(\w)^{-1}) < 1, \ \forall\w
+\end{equation\*}
+
+where \\(\mathcal{D}\\) is the set of block-diagonal matrices whose structure is compatible to that of \\(\Delta\\), i.e, \\(\Delta D = D \Delta\\).
+
+
+
+When \\(\Delta\\) is a full matrix, we must select \\(D = dI\\) and we have \\(\maxsv(D M D^{-1}) = \maxsv(M)\\), and we cannot improve the RS-condition.
+However, when \\(\Delta\\) has structure, we get more degrees of freedom in \\(D\\) and \\(\maxsv(D M D^{-1})\\) may be significantly smaller than \\(\maxsv(M)\\).
+
+
+### The Structured Singular Value {#the-structured-singular-value}
+
+
+#### Definition {#definition}
+
+The structured singular value \\(\mu\\) is a function which provides a **generalization of the singular value** \\(\maxsv\\) and the **spectral radius** \\(\rho\\).
+We will use \\(\mu\\) to get necessary and sufficient conditions for robust stability and also for robust performance.
+
+\\(\mu\\) can be explained as follow:
+
+> Find the smallest structured \\(\Delta\\) (measured in terms of \\(\maxsv(\Delta)\\)) which makes the matrix \\(I - M \Delta\\) singular; then \\(\mu(M) = 1/\maxsv(\Delta)\\).
+
+Mathematically
+
+\begin{equation\*}
+ \mu(M)^{-1} \triangleq \min\_{\Delta}\\{\maxsv(\Delta) | \det(I-M\Delta) = 0 \text{ for struct. }\Delta\\}
+\end{equation\*}
+
+Clearly, \\(\mu(M)\\) depends not only on \\(M\\) but also on the **allowed structure** for \\(\Delta\\). This is sometimes shown explicitly by using the notation \\(\mu\_\Delta (M)\\).
+
+The above definition of \\(\mu\\) involves varying \\(\maxsv(\Delta)\\). However, we prefer to normalize \\(\Delta\\) such that \\(\maxsv(\Delta)\le1\\). We can do that by scaling \\(\Delta\\) by a factor \\(k\_m\\), and looking for the smallest \\(k\_m\\) which makes the matrix \\(I - k\_m M \Delta\\) singular. \\(\mu\\) is then the reciprocal of this small \\(k\_m\\): \\(\mu = 1/k\_m\\). This results in the following alternative definition of \\(\mu\\).
+
+
+
+Let \\(M\\) be a given complex matrix and let \\(\Delta = \diag{\Delta\_i}\\) denote a set of complex matrices with \\(\maxsv(\Delta) \le 1\\) and with a given block-diagonal structure.
+The real non-negative function \\(\mu(M)\\), called the **structured singular value**, is defined by
+
+\begin{align\*}
+ \mu(M) \triangleq &(\min\\{ k\_m | \det(I - k\_m M \Delta) = 0\\\\
+ &\text{for structured } \Delta, \maxsv(\Delta) \le 1 \\} )^{-1}
+\end{align\*}
+
+If no such structured \\(\Delta\\) exists then \\(\mu(M) = 0\\)
+
+
+
+A value of \\(\mu = 1\\) means that there exists a perturbation with \\(\maxsv(\Delta) = 1\\) which is just large enough to make \\(I - M\Delta\\) singular.
+
+A larger value of \\(\mu\\) is "bad" as it means that a smaller perturbation makes \\(I - M\Delta\\) singular, whereas a smaller value of \\(\mu\\) is "good".
+
+
+#### Remarks on the Definition of \\(\mu\\) {#remarks-on-the-definition-of-mu}
+
+1. The structured singular value was introduced by Doyle while at the same time, Safonov introduced the **Multivariable Stability Margin** \\(k\_m\\) for a diagonally perturbed system as the inverse of \\(\mu\\), that is \\(k\_m(M) = \mu(M)^{-1}\\).
+2. Note that with \\(k\_m = 0\\) we obtain \\(I - k\_m M \Delta = I\\) which is clearly non-singular.
+ Thus, one possible way to obtain \\(\mu\\) numerically, is to start with \\(k\_m = 0\\), and gradually increase \\(k\_m\\) until we first find an allowed \\(\Delta\\) with \\(\maxsv(\Delta) = 1\\) such that \\(I-k\_mM\Delta\\) is singular.
+
+
+#### Properties of \\(\mu\\) for Real and Complex \\(\Delta\\) {#properties-of-mu-for-real-and-complex-delta}
+
+1. \\(\mu(\alpha M) = \abs{\alpha} \mu(M)\\) for any real scalar \\(\alpha\\)
+2. Let \\(\Delta = \diag{\Delta\_1, \Delta\_2}\\) be a block-diagonal perturbation and let \\(M\\) be partitioned accordingly.
+ Then
+
+ \begin{equation\*}
+ \mu\_\Delta \ge \text{max} \\{\mu\_{\Delta\_1} (M\_{11}), \mu\_{\Delta\_2}(M\_{22}) \\}
+ \end{equation\*}
+
+
+#### Properties of \\(\mu\\) for Complex Perturbations \\(\Delta\\) {#properties-of-mu-for-complex-perturbations-delta}
+
+1. For complex perturbations \\(\Delta\\) with \\(\maxsv(\Delta) \le 1\\)
+
+ \begin{equation}
+ \tcmbox{\mu(M) = \max\_{\Delta, \maxsv(\Delta) \le 1} \rho(M\Delta)}
+ \end{equation}
+2. \\(\mu(\alpha M) = \abs{\alpha} \mu(M)\\) for any (complex) scalar \\(\alpha\\)
+3. For a full block complex perturbation \\(\Delta\\)
+
+ \begin{equation\*}
+ \mu(M) = \maxsv(M)
+ \end{equation\*}
+4. \\(\mu\\) for complex perturbations is bounded by the spectral radius and the singular value
+
+ \begin{equation}
+ \tcmbox{\rho(M) \le \mu(M) \le \maxsv(M)}
+ \end{equation}
+5. **Improved lower bound**.
+ Defined \\(\mathcal{U}\\) as the set of all unitary matrices \\(U\\) with the same block diagonal structure as \\(\Delta\\).
+ Then for complex \\(\Delta\\)
+
+ \begin{equation}
+ \tcmbox{\mu(M) = \max\_{U\in\mathcal{U}} \rho(MU)}
+ \end{equation}
+6. **Improved upper bound**.
+ Defined \\(\mathcal{D}\\) as the set of all unitary matrices \\(D\\) that commute with \\(\Delta\\).
+ Then
+
+ \begin{equation}
+ \tcmbox{\mu(M) = \min\_{D\in\mathcal{D}} \maxsv(DMD^{-1})}
+ \end{equation}
+
+
+### Robust Stability with Structured Uncertainty {#robust-stability-with-structured-uncertainty}
+
+Consider stability of the \\(M\Delta\text{-structure}\\) for the case where \\(\Delta\\) is a set of norm-bounded block-diagonal perturbations.
+From the determinant stability condition which applies to both complex and real perturbations, we get
+
+\begin{equation\*}
+ \text{RS} \ \Leftrightarrow \ \det(I-M\Delta(j\w)) \ne 0, \ \forall\w,\\, \forall\Delta, \\, \\|\Delta\\|\_\infty \le 1
+\end{equation\*}
+
+The problem is that this is only a "yes/no" condition. To find the factor \\(k\_m\\) by which the system is robustly stable, we scale the uncertainty \\(\Delta\\) by \\(k\_m\\), and look for the smallest \\(k\_m\\) which yields "borderline instability", namely
+
+\begin{equation\*}
+ \det(I - k\_m M \Delta) = 0
+\end{equation\*}
+
+From the definition of \\(\mu\\), this value is \\(k\_m = 1/\mu(M)\\), and we obtain the following necessary and sufficient condition for robust stability.
+
+
+
+Assume that the nominal system \\(M\\) and the perturbations \\(\Delta\\) are stable.
+Then the \\(M\Delta\text{-system}\\) is stable for all allowed perturbations with \\(\maxsv(\Delta)\le 1, \ \forall\w\\) if on only if
+
+\begin{equation} \label{eq:RS\_block\_diagonal\_pert}
+ \mu(M(j\w)) < 1, \ \forall \omega
+\end{equation}
+
+
+
+
+##### What do \\(\mu \ne 1\\) and skewed-\\(\mu\\) mean? {#what-do-mu-ne-1-and-skewed-mu-mean}
+
+A value of \\(\mu = 1.1\\) for robust stability means that **all** the uncertainty blocks must be decreased in magnitude by a factor 1.1 in order to guarantee stability.
+
+But if we want to keep some of the uncertainty blocks fixed, how large can one particular source of uncertainty be before we get instability?
+We define this value as \\(1/\mu^s\\), where \\(\mu^s\\) is called skewed-\\(\mu\\). We may view \\(\mu^s(M)\\) as a generalization of \\(\mu(M)\\).
+
+
+
+Let \\(\Delta = \diag{\Delta\_1, \Delta\_2}\\) and assume we have fixed \\(\norm{\Delta\_1} \le 1\\) and we want to find how large \\(\Delta\_2\\) can be before we get instability.
+The solution is to select
+
+\begin{equation\*}
+ K\_m = \begin{bmatrix}
+ I & 0 \\\\
+ 0 & k\_m I
+ \end{bmatrix}
+\end{equation\*}
+
+and look at each frequency for the smallest value of \\(k\_m\\) which makes \\(\det(I - K\_m M \Delta) = 0\\) and we have that skewed-\\(\mu\\) is
+
+\begin{equation\*}
+ \mu^s(M) \triangleq 1/k\_m
+\end{equation\*}
+
+
+
+Note that to compute skewed-\\(\mu\\) we must first define which part of the perturbations is to be constant.
+
+
+### Robust Performance {#robust-performance}
+
+
+#### Testing RP using \\(\mu\\) {#testing-rp-using-mu}
+
+To test for RP, we first "pull out" the uncertain perturbations and rearrange the uncertain system into the \\(N\Delta\text{-form}\\).
+Our RP-requirement, is that the \\(\hinf\\) norm of the transfer function \\(F = F\_u(N, \Delta)\\) remains less than \\(1\\) for all allowed perturbations.
+This may be tested exactly by computing \\(\mu(N)\\).
+
+
+
+Rearrange the uncertain system into the \\(N\Delta\text{-structure}\\).
+Assume nominal stability such that \\(N\\) is stable.
+Then
+
+\begin{align\*}
+\text{RP} \ &\stackrel{\text{def}}{\Longleftrightarrow} \ \hnorm{F} = \hnorm{F\_u(N, \Delta)} < 1, \ \forall \hnorm{\Delta} < 1 \\\\
+ &\Longleftrightarrow \ \mu\_{\hat{\Delta}}(N(j\w)) < 1, \ \forall\w
+\end{align\*}
+
+where \\(\mu\\) is computed with respect to the structure
+
+\begin{equation\*}
+ \hat{\Delta} = \begin{bmatrix}
+ \Delta & 0 \\\\
+ 0 & \Delta\_P
+ \end{bmatrix}
+\end{equation\*}
+
+and \\(\Delta\_P\\) is a full complex perturbation with the same dimensions as \\(F^T\\).
+
+
+
+Some remarks on the theorem:
+
+1. Condition \\(\mu\_{\hat{\Delta}}(N(j\w)) < 1, \ \forall\w\\) allows us to test if \\(\hnorm{F} < 1\\) for all possible \\(\Delta\\) without having to test each \\(\Delta\\) individually. Essential, \\(\mu\\) is defined such that it directly addresses the worst case
+2. The \\(\mu\text{-condition}\\) for RP involves the enlarged perturbation \\(\hat{\Delta} = \diag{\Delta, \Delta\_P}\\).
+ Here \\(\Delta\\), which itself may be a block diagonal matrix, represents the true uncertainty, whereas \\(\Delta\_P\\) is a full complex matrix stemming from the \\(\hinf\\) norm performance specification
+3. Since \\(\hat{\Delta}\\) always has structure, the use of \\(\hinf\\) norm, \\(\hnorm{N} < 1\\), is generally conservative for robust performance
+
+
+#### Summary of \\(\mu\text{-conditions}\\) for NP, RS and RP {#summary-of-mu-text-conditions-for-np-rs-and-rp}
+
+
+
+Rearrange the uncertain system into the \\(N\Delta\text{-structure}\\) where the block-diagonal perturbation satisfy \\(\hnorm{\Delta} \le 1\\).
+Introduce
+
+\begin{equation\*}
+ F = F\_u(N, \Delta) = N\_{22} + N\_{21}\Delta(I - N\_{11} \Delta)^{-1} N\_{12}
+\end{equation\*}
+
+Let the performance requirement be \\(\hnorm{F} \le 1\\).
+
+\begin{align\*}
+ \text{NS} \ &\Leftrightarrow \ N \text{ (internally) stable} \\\\
+ \text{NP} \ &\Leftrightarrow \ \text{NS and } \maxsv(N\_{22}) = \mu\_{\Delta\_P} < 1, \ \forall\w \\\\
+ \text{RS} \ &\Leftrightarrow \ \text{NS and } \mu\_\Delta(N\_{11}) < 1, \ \forall\w \\\\
+ \text{RP} \ &\Leftrightarrow \ \text{NS and } \mu\_{\tilde{\Delta}}(N) < 1, \ \forall\w, \ \tilde{\Delta} = \begin{bmatrix}
+ \Delta & 0 \\\\
+ 0 & \Delta\_P
+ \end{bmatrix}
+\end{align\*}
+
+
+
+Here \\(\Delta\\) is a block-diagonal matrix, whereas \\(\Delta\_P\\) is always a full complex matrix.
+
+Although the structured singular value is not a norm, it is sometimes convenient to refer to the peak \\(\mu\text{-value}\\) as the "\\(\Delta\text{-norm}\\)".
+For a stable rational transfer matrix \\(H(s)\\), with an associated block structure \\(\Delta\\), we therefore define
+
+\begin{equation}
+ \tcmbox{\left\\|H(s)\right\\|\_\Delta \triangleq \max\_{\w} \mu\_\Delta (H(j\w))}
+\end{equation}
+
+For a nominal stable system, we then have
+
+\begin{align\*}
+ \text{NP} \ &\Leftrightarrow \ \hnorm{N\_{22}} < 1 \\\\
+ \text{RS} \ &\Leftrightarrow \ \left\\|N\_{11}\right\\|\_\Delta < 1 \\\\
+ \text{RP} \ &\Leftrightarrow \ \left\\|N\right\\|\_{\tilde{\Delta}} < 1
+\end{align\*}
+
+
+#### Worst-case Performance and Skewed-\\(\mu\\) {#worst-case-performance-and-skewed-mu}
+
+Assume we have a system for which the peak \\(\mu\text{-value}\\) for RP is \\(1.1\\). What does this mean?
+The definition of \\(\mu\\) tells us that our RP-requirement would be satisfied exactly if we reduced **both** the performance requirement and the uncertainty by a factor of \\(1.1\\).
+So \\(\mu\\) does not directly give us the worst-case performance \\(\max\_{\Delta} \maxsv(F(\Delta))\\).
+
+To find the worst-case weighted performance for a given uncertainty, one needs to keep the magnitude of the perturbation fixed (\\(\maxsv(\Delta) \le 1\\)), that is, **we must compute the skewed-\\(\mu\\)** of \\(N\\).
+We have, in this case
+
+\begin{equation\*}
+ \max\_{\maxsv(\Delta) \le 1} \maxsv(F\_l(N, \Delta)(j\w)) = \mu^s (N(j\w))
+\end{equation\*}
+
+To find \\(\mu^s\\) numerically, we scale the performance part of \\(N\\) by a factor \\(k\_m = 1/\mu^s\\) and iterate on \\(k\_m\\) until \\(\mu = 1\\).
+That is, at each frequency skewed-\\(\mu\\) is the value \\(\mu^s(N)\\) which solves
+
+\begin{equation\*}
+ \mu(K\_mN) = 1, \quad K\_m = \begin{bmatrix}
+ I & 0 \\\\
+ 0 & 1/\mu^s
+ \end{bmatrix}
+\end{equation\*}
+
+Note that \\(\mu\\) underestimate how bad or good the actual worst case performance is. This follows because \\(\mu^s(N)\\) is always further from 1 than \\(\mu(N)\\).
+
+
+### Application: RP with Input Uncertainty {#application-rp-with-input-uncertainty}
+
+We will now consider in some detail the case of multiplicative input uncertainty with performance defined in terms of weighted sensitivity ([Figure 29](#figure--fig:input-uncertainty-set-feedback-weight)).
+
+The performance requirement is then
+
+\begin{equation\*}
+ \text{RP} \quad \stackrel{\text{def}}{\Longleftrightarrow} \quad \hnorm{w\_P (I + G\_p K)^{-1}} < 1, \quad \forall G\_p
+\end{equation\*}
+
+where the set of plant is given by
+
+\begin{equation\*}
+ G\_p = G (I + w\_I \Delta\_I), \quad \hnorm{\Delta\_I} \le 1
+\end{equation\*}
+
+Here \\(w\_p(s)\\) and \\(w\_I(s)\\) are scalar weights, so the performance objective is the same for all the outputs, and the uncertainty is the same for all the inputs.
+
+In this section, we will:
+
+1. Find the interconnection matrix \\(N\\) for this problem
+2. Consider the SISO case, so that useful connections can be made with results for SISO systems
+3. Consider a multivariable distillation process
+4. Find some simple bounds on \\(\mu\\) and discuss the role of the condition number
+5. Make comparisons with the case where the uncertainty is located at the output
+
+
+#### Interconnection Matrix {#interconnection-matrix}
+
+On rearranging the system into the \\(N\Delta\text{-structure}\\), we get
+
+\begin{equation} \label{eq:n\_delta\_structure\_clasic}
+ N = \begin{bmatrix}
+ - w\_I T\_I & - w\_I K S \\\\
+ w\_p S G & w\_p S
+ \end{bmatrix}
+\end{equation}
+
+where \\(T\_I = KG(I + KG)^{-1}\\), \\(S = (I + GK)^{-1}\\).
+For simplicity, we can omit the negative signs.
+
+For a given controller \\(K\\) we can now test for NS, NP, RS and RP.
+
+
+#### RP with Input Uncertainty for SISO System {#rp-with-input-uncertainty-for-siso-system}
+
+For a SISO system with \\(N\\) as described above:
+
+\begin{align\*}
+ \text{NS} &\Leftrightarrow S,\ SG,\ KS, \text{ and } T\_I \text{ are stable} \\\\
+ \text{NP} &\Leftrightarrow |w\_P S| < 1, \quad \forall \omega \\\\
+ \text{RS} &\Leftrightarrow |w\_I T\_I| < 1, \quad \forall \omega \\\\
+ \text{RP} &\Leftrightarrow |w\_P S| + |w\_I T\_I| < 1, \quad \forall \omega
+\end{align\*}
+
+Robust performance optimization, in terms of weighted sensitivity with multiplicative uncertainty for a SISO system, thus involves minimizing the peak value of \\(\mu(N) = |w\_I T| + |w\_P S|\\).
+This may be solved using DK-iteration.
+A closely related problem, which is easier to solve is to minimize the peak value (\\(\mathcal{H}\_\infty\\) norm) of the mixed sensitivity matrix:
+
+\begin{equation\*}
+ N\_\text{mix} = \begin{bmatrix}
+ w\_P S \\\\
+ w\_I T
+ \end{bmatrix}
+\end{equation\*}
+
+At each frequency, \\(\mu(N)\\) differs from and \\(\overline{\sigma}(N\_\text{mix})\\) by at most a factor \\(\sqrt{2}\\).
+Thus, minimizing \\(\\| N\_\text{mix} \\|\_\infty\\) is close to optimizing robust performance in terms of \\(\mu(N)\\).
+
+
+#### Robust Performance for \\(2 \times 2\\) Distillation Process {#robust-performance-for-2-times-2-distillation-process}
+
+Consider a distillation process and a corresponding inverse-based controller:
+
+\begin{equation\*}
+ G(s) = \frac{1}{75s + 1} \begin{bmatrix}
+ 87.8 & -86.4 \\\\
+ 108.2 & -109.6
+ \end{bmatrix} ;
+ \quad K(s) = \frac{0.7}{s} G(s)^{-1}
+\end{equation\*}
+
+The controller provides a nominally decoupled system:
+
+\begin{equation\*}
+ L = l I,\ S = \epsilon I \text{ and } T = t I
+\end{equation\*}
+
+where
+
+\begin{equation\*}
+ l = \frac{0.7}{s}, \ \epsilon = \frac{s}{s + 0.7}, \ t = \frac{0.7}{s + 0.7}
+\end{equation\*}
+
+The following weights for uncertainty and performance are used:
+
+\begin{equation\*}
+ w\_I(s) = \frac{s + 0.2}{0.5s + 1}; \quad w\_P(s) = \frac{s/2 + 0.05}{s}
+\end{equation\*}
+
+We now test for NS, NP, RS and RP.
+
+
+##### NS {#ns}
+
+with \\(G\\) and \\(K\\) as defined, we find that \\(S\\), \\(SG\\), \\(KS\\) and \\(T\_I\\) are stable, so the system is nominally stable.
+
+
+##### NP {#np}
+
+with the decoupling controller we have:
+
+\begin{equation\*}
+ \overline{\sigma}(N\_{22}) = \overline{\sigma}(w\_P S) = \left|\frac{s/2 + 0.05}{s + 0.7}\right|
+\end{equation\*}
+
+and we see from [Figure 32](#figure--fig:mu-plots-distillation) that the NP-condition is satisfied.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_mu_plots_distillation.png" caption="Figure 32: \\(\mu\text{-plots}\\) for distillation process with decoupling controller" >}}
+
+
+##### RS {#rs}
+
+In this case \\(w\_I T\_I = w\_I T\\) is a scalar times the identity matrix:
+
+\begin{equation\*}
+ \mu\_{\Delta\_I}(w\_I T\_I) = |w\_I t| = \left|0.2 \frac{5s + 1}{(0.5s + 1)(1.43s + 1)}\right|
+\end{equation\*}
+
+and we see from [Figure 32](#figure--fig:mu-plots-distillation) that RS is satisfied.
+
+The peak value of \\(\mu\_{\Delta\_I}(M)\\) is \\(0.53\\) meaning that we may increase the uncertainty by a factor of \\(1/0.53 = 1.89\\) before the worst case uncertainty yields instability.
+
+
+##### RP {#rp}
+
+Although the system has good robustness margins and excellent nominal performance, the robust performance is poor.
+This is shown in [Figure 32](#figure--fig:mu-plots-distillation) where the \\(\mu\text{-curve}\\) for RP was computed numerically using \\(\mu\_{\hat{\Delta}}(N)\\), with \\(\hat{\Delta} = \text{diag}\\{\Delta\_I, \Delta\_P\\}\\) and \\(\Delta\_I = \text{diag}\\{\delta\_1, \delta\_2\\}\\).
+The peak value is close to 6, meaning that even with 6 times less uncertainty, the weighted sensitivity will be about 6 times larger than what we require.
+
+
+#### Robust Performance and the Condition Number {#robust-performance-and-the-condition-number}
+
+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.
+With \\(N\\) given by \ref{eq:n\_delta\_structure\_clasic}, we have:
+
+\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})
+\end{equation\*}
+
+where \\(k\\) is taken as the smallest value between the condition number of the plant and of the controller:
+
+\begin{equation\*}
+ k = \text{min}(\gamma(G), \gamma(K))
+\end{equation\*}
+
+We see that with a "round" controller (i.e. one with \\(\gamma(K) = 1\\)), there is less sensitivity to uncertainty.
+On the other hand, we would expect \\(\mu\\) for RP to be large if we used an inverse-based controller for a plant with large condition number, since then \\(\gamma(K) = \gamma(G)\\) is large.
+
+
+#### Comparison with Output Uncertainty {#comparison-with-output-uncertainty}
+
+Consider output multiplicative uncertainty of magnitude \\(w\_O(j\omega)\\).
+In this case, we get the interconnection matrix
+
+\begin{equation\*}
+ N = \begin{bmatrix}
+ w\_O T & w\_O T \\\\
+ w\_P S & w\_P S
+ \end{bmatrix}
+\end{equation\*}
+
+and for any structure of the uncertainty, \\(\mu(N)\\) is bounded as follows:
+
+\begin{equation\*}
+ \overline{\sigma}\begin{bmatrix}
+ w\_O T \\\\
+ w\_P S
+ \end{bmatrix} \le \overbrace{\mu(N)}^{\text{RP}} \le \sqrt{2}\ \overline{\sigma} \overbrace{\underbrace{\begin{bmatrix}
+ w\_O T \\\\
+ w\_P S
+ \end{bmatrix}}\_{\text{NP}}}^{\text{RS}}
+\end{equation\*}
+
+This follows since the uncertainty and performance blocks both enter at the output and that the difference between bounding the combined perturbations \\(\overline{\sigma}[\Delta\_O \ \Delta\_P]\\) and the individual perturbations \\(\overline{\sigma}(\Delta\_O)\\) and \\(\overline{\sigma}(\Delta\_P)\\) is at most a factor \\(\sqrt{2}\\).
+Thus, we "automatically" achieve RP if we satisfy separately NP and RS.
+Multiplicative output uncertainty then poses no particular problem for performance.
+
+
+### \\(\mu\text{-synthesis}\\) and DK-iteration {#mu-text-synthesis-and-dk-iteration}
+
+The structured singular value \\(\mu\\) is a very powerful tool for the analysis of robust performance with a given controller. However, one may also seek to **find the controller that minimizes** a given \\(\mu\text{-condition}\\): this is the \\(\mu\text{-synthesis}\\) problem.
+
+
+#### DK-iteration {#dk-iteration}
+
+At present, there is no direct method to synthesize a \\(\mu\text{-optimal}\\) controller.
+However, for complex perturbations, a method known as **DK-iteration** is available.
+It combines \\(\hinf\\) synthesis and \\(\mu\text{-analysis}\\) and often yields good results.
+
+The starting point is the upper bound on \\(\mu\\) in terms of the scaled singular value
+
+\begin{equation} \label{eq:upper\_bound\_mu}
+ \mu(N) \le \min\_{D \in \mathcal{D}} \maxsv(D N D^{-1})
+\end{equation}
+
+The idea is to find the controller that minimizes the peak value over frequency of this upper bound, namely
+
+\begin{equation} \label{eq:min\_peak\_value\_scale\_sv}
+ \min\_{K} \left( \min\_{D \in \mathcal{D}} \hnorm{D N(K) D^{-1} } \right)
+\end{equation}
+
+by alternating between minimizing \\(\hnorm{DN(K)D^{-1}}\\) with respect to either \\(K\\) or \\(D\\) (while holding the other fixed).
+
+To start the iterations, one selects an initial stable rational transfer matrix \\(D(s)\\) with appropriate structure.
+The identity matrix is often a good initial choice for \\(D\\) provided the system has been reasonably scaled for performance.
+
+
+
+**DK-Procedure**:
+
+1. **K-step**. Synthesize an \\(\hinf\\) controller for the scaled problem, \\(\min\_{K} \hnorm{DN(K)D^{-1}}\\) with fixed \\(D(s)\\)
+2. **D-step**. Find \\(D(j\w)\\) to minimize at each frequency \\(\maxsv(DND^{-1}(j\w))\\) with fixed \\(N\\)
+3. Fit the magnitude of each element of \\(D(j\w)\\) to a stable and minimum phase transfer function \\(D(s)\\) and go to step 1
+
+
+
+The iteration may continue until satisfactory performance is achieve, \\(\hnorm{DND^{-1}} < 1\\) or until the \\(\hinf\\) norm no longer decreases.
+One fundamental problem with this approach is that although each of the minimization steps are convex, **joint convexity is not guaranteed**.
+Therefore, the iterations may converge to a **local minimum**.
+
+The order of the controller resulting from each iteration is equal to the number of the states in the plant \\(G(s)\\) plus the number of states in the weights plus twice the number of state in \\(D(s)\\).
+The obtain \\(\mu\text{-optimal}\\) controller will usually be of **high order** and will have a flat \\(\mu\text{-curve}\\) until some high frequency.
+
+The DK-iteration depends heavily on optimal solutions for steps 1 and 2, and also on good fits in step 3.
+We usually **prefers to have a low-order fit** in step 3 as it will reduces the order of the \\(\hinf\\) problem which usually improves the numerical properties of the optimization.
+In some cases, the iterations converge slowly, the \\(\mu\text{-value}\\) can even increase. This may be caused by numerical problems and one may consider going back to the initial problem and **rescaling the inputs and outputs**.
+
+
+#### Adjusting the Performance Weight {#adjusting-the-performance-weight}
+
+If \\(\mu\\) at a given frequency is different from 1, then the interpretation is that at this frequency we can tolerate \\(1/\mu\\) times more uncertainty and still satisfy our performance objective with a margin of \\(1/\mu\\).
+In \\(\mu\text{-synthesis}\\), the designer will usually adjust some parameter in the performance or uncertainty weights until the weight of the peak \\(\mu\text{-value}\\) is close to 1.
+
+Sometimes, uncertainty is fixed and we effectively optimize worst-cast performance by adjusting a parameter in the performance weight.
+Consider the performance weight
+
+\begin{equation\*}
+ w\_p(s) = \frac{s/M + \w\_B^\*}{s + \w\_B^\* A}
+\end{equation\*}
+
+where we want to keep \\(M\\) constant and find the high achievable bandwidth frequency \\(\w\_B^\*\\).
+The optimization problem becomes
+
+\begin{equation\*}
+ \text{max} \abs{\w\_B^\*} \quad \text{such that} \quad \mu(N) < 1, \ \forall\w
+\end{equation\*}
+
+where \\(N\\), the interconnection matrix for the RP-problem, depends on \\(\w\_B^\*\\). This may be implemented as an **outer loop around the DK-iteration**.
+
+
+#### Fixed Structure Controller {#fixed-structure-controller}
+
+Sometimes it is desirable to find a low-order controller with a given structure.
+This may be achievable by numerical optimization where \\(\mu\\) is minimized with respect to the controller parameters.
+This problem here is that the optimization is not generally convex in the parameters.
+Sometimes it helps to switch the optimization between minimizing the peak of \\(\mu\\) and minimizing the integral square deviation of \\(\mu\\) away from \\(k\\) (i.e. \\(\normtwo{\mu(j\w) - k}\\)) where \\(k\\) is usually close to 1.
+The latter is an attempt to "flatten out" \\(\mu\\).
+
+
+#### Example: \\(\mu\text{-synthesis}\\) with DK-iteration {#example-mu-text-synthesis-with-dk-iteration}
+
+For simplicity, we will consider again the case of multiplicative uncertainty and performance defined in terms of weighted sensitivity.
+The uncertainty weight \\(w\_I I\\) and performance weight \\(w\_P I\\) are shown graphically in [Figure 33](#figure--fig:weights-distillation).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_weights_distillation.png" caption="Figure 33: Uncertainty and performance weights" >}}
+
+The objective is to minimize the peak value of \\(\mu\_{\tilde{\Delta}}(N)\\), \\(\tilde{\Delta} = \text{diag}\\{\Delta\_I, \Delta\_P\\}\\).
+\\(\Delta\_I\\) is a diagonal \\(2 \times 2\\) matrix representing the diagonal input uncertainty and \\(\Delta\_P\\) is a full \\(2 \times 2\\) matrix representing the performance specifications.
+
+First, the generalized plant \\(P\\) is constructed which includes the plant model, the uncertainty weight and the performance weight.
+Then the block structure is defined, it consists of two \\(1 \times 1\\) blocks to represent \\(\Delta\_I\\) and a \\(2 \times 2\\) block to represent \\(\Delta\_P\\).
+The scaling matrix \\(D\\) for \\(DND^{-1}\\) then has the structure \\(D = \text{diag}\\{d\_1, d\_2, d\_3I\_2\\}\\). We select \\(d\_3 = 1\\) and as initial scalings we select \\(d\_1^0 = d\_2^0 = 1\\).
+\\(P\\) is then scaled with the matrix \\(\text{diag}\\{D, I\_2\\}\\) where \\(I\_2\\) is associated with the inputs and outputs from the controller (we do not want to scale the controller).
+
+- Iteration No. 1.
+ Step 1: with the initial scalings, the \\(\mathcal{H}\_\infty\\) synthesis produced a 6 state controller (2 states from the plant model and 2 from each of the weights).
+ Step 2: the upper \\(\mu\text{-bound}\\) is shown in [Figure 34](#figure--fig:dk-iter-mu).
+ Step 3: the frequency dependent \\(d\_1(\omega)\\) and \\(d\_2(\omega)\\) from step 2 are fitted using a 4th order transfer function shown in [Figure 35](#figure--fig:dk-iter-d-scale)
+- Iteration No. 2.
+ Step 1: with the 8 state scalings \\(D^1(s)\\), the \\(\mathcal{H}\_\infty\\) synthesis gives a 22 state controller.
+ Step 2: This controller gives a peak value of \\(\mu\\) of \\(1.02\\).
+ Step 3: the scalings are only slightly changed
+- Iteration No. 3.
+ Step 1: The \\(\mathcal{H}\_\infty\\) norm is only slightly reduced. We thus decide the stop the iterations.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_dk_iter_mu.png" caption="Figure 34: Change in \\(\mu\\) during DK-iteration" >}}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_dk_iter_d_scale.png" caption="Figure 35: Change in D-scale \\(d\_1\\) during DK-iteration" >}}
+
+The final \\(\mu\text{-curves}\\) for NP, RS and RP with the controller \\(K\_3\\) are shown in [Figure 36](#figure--fig:mu-plot-optimal-k3).
+The objectives of RS and NP are easily satisfied.
+The peak value of \\(\mu\\) is just slightly over 1, so the performance specification \\(\overline{\sigma}(w\_P S\_p) < 1\\) is almost satisfied for all possible plants.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_mu_plot_optimal_k3.png" caption="Figure 36: \\(mu\text{-plots}\\) with \\(\mu\\) "optimal" controller \\(K\_3\\)" >}}
+
+To confirm that, 6 perturbed plants are used to compute the perturbed sensitivity functions shown in [Figure 37](#figure--fig:perturb-s-k3).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_perturb_s_k3.png" caption="Figure 37: Perturbed sensitivity functions \\(\overline{\sigma}(S^\prime)\\) using \\(\mu\\) "optimal" controller \\(K\_3\\). Lower solid line: nominal plant. Upper solid line: worst-case plant" >}}
+
+
+### Further Remarks on \\(\mu\\) {#further-remarks-on-mu}
+
+For complex perturbations, the scaled singular value \\(\maxsv(DND^{-1})\\) is a tight upper bound on \\(\mu(N)\\) in most cases, and minimizing the upper bound \\(\hnorm{DND^{-1}}\\) form the basis for the DK-iteration.
+
+The use of constant D-scales (\\(D\\) is not allowed to vary with frequency), provides a necessary and sufficient condition for robustness to arbitrary fast time varying linear uncertainty. While such perturbations are unlikely in a practical situation, we know that this controller will work very well even for rapid changes in the plant. Moreover, the use of constant D-scales make the computation of \\(\mu\\) straightforward and solvable using LMIs.
+
+
+### Conclusion {#conclusion}
+
+We have discussed how to represent uncertainty and how to analyze its effect on stability (RS) and performance (RP) using the **structured singular value** \\(\mu\\).
+
+To analyze robust stability of an uncertain system, we make use of the \\(M\Delta\text{-structure}\\) where \\(M\\) represents the transfer function for the "new" feedback part generated by the uncertainty.
+From the small gain theorem
+
+\begin{equation\*}
+ \tcmbox{RS \quad \Leftarrow \quad \maxsv(M) < 1, \ \forall\w}
+\end{equation\*}
+
+which is tight (necessary and sufficient) for the special case where at each frequency any complex \\(\Delta\\) satisfying \\(\maxsv(\Delta) \le 1\\) is allowed.
+More generally, the **tight condition is**
+
+\begin{equation\*}
+ \tcmbox{RP \quad \Leftrightarrow \quad \mu(M) < 1, \ \forall\w}
+\end{equation\*}
+
+where \\(\mu(M)\\) is the **structured singular value**. The calculation of \\(\mu\\) makes use of the fact that \\(\Delta\\) has a given block-diagonal structure, where certain blocks may also be real (e.g. to handle parametric uncertainty).
+
+We defined robust performance as \\(\hnorm{F\_l(N, \Delta)} < 1\\) for all allowed \\(\Delta\\).
+Since we used the \\(\hinf\\) norm in both the representation of uncertainty and the definition of performance, we found that RP could be viewed as a special case of RS, and we derived
+
+\begin{equation\*}
+ \tcmbox{RS \quad \Leftrightarrow \quad \mu(N) < 1, \ \forall\w}
+\end{equation\*}
+
+where \\(\mu\\) is computed with respect to the **block-diagonal structure** \\(\diag{\Delta, \Delta\_P}\\).
+Here \\(\Delta\\) represents the uncertainty and \\(\Delta\_P\\) is a fictitious full uncertainty block representing the \\(\hinf\\) performance bound.
+
+There are **two main approaches to getting a robust design**:
+
+1. We aim to make the system robust to some **"general" class of uncertainty** which we do not explicitly model.
+ For SISO systems, the classical gain and phase margins and the peaks of \\(S\\) and \\(T\\) provide useful robustness measures.
+ For MIMO systems, normalized coprime factor uncertainty provides a good general class of uncertainty, and the associated Glover-McFlarlane \\(\hinf\\) loop-shaping design procedure has proved itself very useful in applications
+2. We **explicitly model and quantify the uncertainty** in the plant and aim to make the system robust to this specific uncertainty.
+ Potentially, it yields better designs, but it may require a much larger effort in terms of uncertainty modelling, especially if parametric uncertainty is consider.
+ Analysis and in particular, synthesis using \\(\mu\\) can be very involved
+
+In applications, it is therefore recommended to **start with the first approach**, at least for design.
+The robust stability and performance is then analyzed in simulations and using the structured singular value, for example, by considering first simple sources of uncertainty such as multiplicative input uncertainty.
+One then iterates between design and analysis until a satisfactory solution is obtained.
+If resulting control performance is not satisfactory, one may switch to the second approach.
+
+
+##### Practical \\(\mu\text{-synthesis}\\) in practice: {#practical-mu-text-synthesis-in-practice}
+
+1. Because of the effort involved in deriving detailed uncertainty descriptions, and the subsequent complexity in synthesizing controllers, the rule is to **start simple** with a crude uncertainty description, and then to see whether the performance specifications can be met. Only if they can't, one should consider more detailed uncertainty descriptions such as parametric uncertainty
+2. The use of \\(\mu\\) implies a worst-case analysis, so one should be **careful about including too many sources of uncertainty**, noise and disturbances - otherwise it becomes very unlikely for the worst case to occur, and the resulting analysis and design may be **unnecessarily conservative**
+3. There is always uncertainty with respect to the inputs and outputs, so **it is generally sage to include diagonal input and output uncertainty**. The relative multiplicative form is very convenient in this case
+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}
+
+
+
+
+### Trade-offs in MIMO Feedback Design {#trade-offs-in-mimo-feedback-design}
+
+The shaping of multivariable transfer functions is based on the idea that a satisfactory definition of gain for a matrix transfer function is given by the **singular values**.
+By multivariable transfer function shaping, therefore, we mean the shaping of the singular values of appropriate specified transfer functions such as the loop transfer function of one or more closed-loop transfer functions.
+
+The classical loop-shaping ideas can be further generalized to MIMO systems by considering the singular values.
+
+Consider the one degree-of-freedom system as shown in [Figure 38](#figure--fig:classical-feedback-small).
+We have the following important relationships:
+
+\begin{align}
+ y(s) &= T(s) r(s) + S(s) d(s) - T(s) n(s) \\\\
+ u(s) &= K(s) S(s) \big(r(s) - n(s) - d(s) \big)
+\end{align}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_small.png" caption="Figure 38: One degree-of-freedom feedback configuration" >}}
+
+
+
+**Typical Closed-Loop Objectives**:
+
+1. For disturbance rejection make \\(\maxsv(S)\\) small
+2. For noise attenuation make \\(\maxsv(T)\\) small
+3. For reference tracking make \\(\maxsv(T) \approx \minsv(T) \approx 1\\)
+4. For control energy reduction make \\(\maxsv(KS)\\) small
+5. For robust stability in presence of an additive perturbation (\\(G\_p = G + \Delta\\)) make \\(\maxsv(KS)\\) small
+6. For robust stability in presence of a multiplicative output perturbation (\\(G\_p = (I + \Delta) G\\)) make \\(\maxsv(T)\\) small
+
+
+
+The closed-loop requirements cannot all be satisfied simultaneously.
+Feedback design is therefore a **trade-off over frequency of conflicting objectives**.
+This is not always as difficult as it sounds because the frequency range over which the objectives are important can be quite different.
+
+In classical loop shaping, it is the magnitude of the open-loop transfer function \\(L = GK\\) which is shaped, whereas the above requirements are all in terms of closed-loop transfer functions.
+However, we have that
+
+\begin{equation\*}
+ \minsv(L) - 1 \le \frac{1}{\maxsv(S)} \le \minsv(L) + 1
+\end{equation\*}
+
+from which we see that \\(\maxsv(S) \approx 1/\minsv(L)\\) at frequencies where \\(\minsv(L)\\) is much larger than \\(1\\).
+Furthermore, from \\(T = L(I+L)^{-1}\\) it follows that \\(\maxsv(T) \approx \maxsv(L)\\) at frequencies where \\(\maxsv(L)\\) is much smaller than \\(1\\).
+
+Thus, over specified frequency ranges, it is relatively easy to approximate the closed-loop requirements by open-loop objectives.
+
+
+
+**Typical Open-Loop Objectives**:
+
+1. For disturbance rejection make \\(\minsv(GK)\\) large
+2. For noise attenuation make \\(\maxsv(GK)\\) small
+3. For reference tracking make \\(\minsv(GK)\\) large
+4. For control energy reduction make \\(\maxsv(K)\\) small
+5. For robust stability in presence of an additive perturbation make \\(\maxsv(K)\\) small
+6. For robust stability in presence of an multiplicative output perturbation make \\(\maxsv(GK)\\) small
+
+
+
+Typically, the open-loop requirements 1 and 3 are valid and important at low frequencies \\(0 \le \omega \le \omega\_l \le \omega\_B\\), while conditions 2, 4, 5 and 6 are conditions which are valid and important at high frequencies \\(\omega\_B \le \omega\_h \le \omega \le \infty\\), as illustrated in [Figure 39](#figure--fig:design-trade-off-mimo-gk).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_design_trade_off_mimo_gk.png" caption="Figure 39: Design trade-offs for the multivariable loop transfer function \\(GK\\)" >}}
+
+The control engineer must design \\(K\\) such that \\(\minsv(GK)\\) lies above a performance boundary for all \\(\omega\\) up to \\(\omega\_l\\), and such that \\(\maxsv(GK)\\) lies below a robustness boundary for all \\(\omega\\) above \\(\omega\_h\\).
+
+Shaping the singular values of \\(GK\\) by selecting \\(K\\) is relatively easy task, but to do this in a way which also guarantees closed-loop stability is in general difficult as **closed-loop stability cannot be determined from open-loop singular values**.
+
+For SISO systems, closed-loop stability is closely related to the open-loop roll-off rate from high to low gain at the crossover (which is in practice less than \\(\SI{40}{\decibel\per dec}\\)).
+An immediate consequence of this is that there is a lower limit to the difference between \\(\omega\_h\\) and \\(\omega\_l\\).
+
+For MIMO systems, a similar gain/phase relationship holds in the crossover frequency region, but this is in terms of roll-off rate of the magnitude of the eigenvalues of \\(GK\\) and not the singular values.
+The stability constraint is therefore more difficult to handle.
+
+
+### LQG Control {#lqg-control}
+
+LQG control was developed and successfully applied for aerospace problems where accurate plants are available.
+For other control problems, it was not easy, and the **assumption of white noise disturbance** is not always relevant.
+As a result, LQG designs were sometimes not robust enough to be used in practice.
+
+It is assumed that the plant dynamics are linear and known, and that the measurement noise and disturbance signals are stochastic with known statistical properties:
+
+\begin{align\*}
+ \dot{x} &= A x + B u + w\_d \\\\
+ y &= C x + D u + w\_n
+\end{align\*}
+
+with \\(w\_d\\) and \\(w\_n\\) are the disturbance and measurement noise which are assumed to be uncorrelated zero-mean Gaussian stochastic processes with constant power spectral density matrices \\(W\\) and \\(V\\) respectively.
+
+
+
+The **LQG control problem** is to find the optimal control \\(u(t)\\) that minimize:
+
+\begin{equation\*}
+ J = E \bigg\\{ \lim\_{T\rightarrow \infty} \frac{1}{T} \int\_0^T \big[ x^T Q x + u^T R u \big] dt \bigg\\}
+\end{equation\*}
+
+Where \\(Q\\) and \\(R\\) are appropriately chosen constant **weighting matrices** (design parameters) such that \\(Q = Q^T \ge 0\\) and \\(R = R^T > 0\\).
+
+
+
+The solution to the LQG problem, known as the **Separation Theorem**, is separated into **two problems**.
+
+It consists of first determining the **optimal control** to a deterministic **LQR problem** (LQG without \\(w\_d\\) and \\(w\_n\\)).
+The solution to this problem is a state feedback law
+
+\begin{equation} \label{eq:lqr\_state\_feedback}
+ \tcmbox{u(t) = -K\_r x(t)}
+\end{equation}
+
+where \\(K\_r\\) is a **constant matrix** that can be easily computed.
+
+The next step is to find an **optimal estimate** \\(\hat{x}\\) of the state \\(x\\) so that \\(E \big\\{ [x-\hat{x}]^T [x-\hat{x}] \big\\}\\) is minimized.
+The optimal state estimate is given by a **Kalman filter**.
+
+The solution to the LQG problem is then found by replacing \\(x\\) by \\(\hat{x}\\) to give \\(u(t) = -K\_r \hat{x}\\).
+
+We therefore see that the LQG problem and its solution can be separated into two distinct parts as illustrated in [Figure 40](#figure--fig:lqg-separation): the optimal state feedback and the optimal state estimator (the Kalman filter).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_lqg_separation.png" caption="Figure 40: The separation theorem" >}}
+
+
+
+**Optimal State Feedback**:
+
+The LQR problem, where all the states are known is to find the input signal \\(u(t)\\) that takes the system \\(\dot{x} = Ax+Bu\\) to the zero state (\\(x=0\\)) by minimizing the deterministic cost
+
+\begin{equation} \label{eq:lqr\_cost}
+ J\_r = \int\_0^\infty \big( x(t)^T Q x(t) + u(t)^T R u(t) \big) dt
+\end{equation}
+
+The optimal solution is \\(u=-K\_r x(t)\\) with
+
+\begin{equation} \label{eq:lqr\_optimal\_sol}
+ K\_r = R^{-1} B^T X
+\end{equation}
+
+and \\(X\\) is the unique positive-semi definite solution of the algebraic Riccati equation:
+
+\begin{equation} \label{eq:lqr\_riccati}
+ A^T X + X A - XBR^{-1}B^TX + Q = 0
+\end{equation}
+
+
+
+
+
+The **Kalman filter** has the structure of an ordinary state-estimator, as shown on [Figure 41](#figure--fig:lqg-kalman-filter), with:
+
+\begin{equation} \label{eq:kalman\_filter\_structure}
+ \dot{\hat{x}} = A\hat{x} + Bu + K\_f(y-C\hat{x})
+\end{equation}
+
+The optimal choice of \\(K\_f\\), which minimize \\(E \big\\{ [x-\hat{x}]^T [x-\hat{x}] \big\\}\\) is given by
+
+\begin{equation} \label{eq:kalman\_filter\_optimal}
+ K\_f = Y C^T V^{-1}
+\end{equation}
+
+Where \\(Y\\) is the unique positive-semi definite solution of the algebraic Riccati equation
+
+\begin{equation} \label{eq:kalman\_filter\_riccati}
+ YA^T + AY - YC^TV^{-1}CY + W = 0
+\end{equation}
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_lqg_kalman_filter.png" caption="Figure 41: The LQG controller and noisy plant" >}}
+
+The structure of the LQG controller is illustrated in [Figure 41](#figure--fig:lqg-kalman-filter), its transfer function from \\(y\\) to \\(u\\) is given by
+
+\begin{align\*}
+ L\_{\text{LQG}}(s) &= \left[ \begin{array}{c|c}
+ A - B K\_r - K\_f C & K\_f \cr \hline
+ -K\_r & 0
+ \end{array} \right] \\\\
+ &= \left[ \begin{array}{c|c}
+ A - B R^{-1} B^T X - Y C^T V^{-1} C & Y C^T V^{-1} \cr \hline
+ -R^{-1} B^T X & 0
+ \end{array} \right]
+\end{align\*}
+
+It has the same degree (number of poles) as the plant.
+
+For the LQG-controller, as shown on [Figure 41](#figure--fig:lqg-kalman-filter), it is not easy to see where to position the reference input \\(r\\) and how integral action may be included, if desired. Indeed, the standard LQG design procedure does not give a controller with integral action. One strategy is illustrated in [Figure 42](#figure--fig:lqg-integral). Here, the control error \\(r-y\\) is integrated and the regulator \\(K\_r\\) is designed for the plant augmented with these integral states.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_lqg_integral.png" caption="Figure 42: LQG controller with integral action and reference input" >}}
+
+For an LQG-controller system with a combined Kalman filter and LQR control law, there are **no guaranteed stability margins**, and there exist LQG combinations with arbitrary small gain margins.
+However, there are procedures for improving robustness properties of LQG control such as **Loop Transfer Recovery** (LTR).
+
+These procedure are somehow difficult to use in practice.
+Their main limitation is that they can only be applied to minimum phase plants.
+
+
+### \\(\htwo\\) and \\(\hinf\\) Control {#htwo-and-hinf-control}
+
+
+
+
+#### General Control Problem Formulation {#general-control-problem-formulation}
+
+
+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.
+
+Such a general formulation is afforded by the general configuration shown in [Figure 43](#figure--fig:general-control).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control.png" caption="Figure 43: General control configuration" >}}
+
+The system is described by
+
+\begin{align}
+ \begin{bmatrix}
+ z \\\\
+ v
+ \end{bmatrix} &= P(s) \begin{bmatrix}
+ w \\\\
+ u
+ \end{bmatrix} = \begin{bmatrix}
+ P\_{11}(s) & P\_{12}(s) \\\\
+ P\_{21}(s) & P\_{22}(s)
+ \end{bmatrix} \begin{bmatrix}
+ w \\\\
+ u
+ \end{bmatrix}\\\\
+ u &= K(s) v
+\end{align}
+
+With a state space realization of the generalized plant \\(P\\) given by
+
+\begin{equation}
+ P = \left[
+ \begin{array}{c|cc}
+ A & B\_1 & B\_2 \cr
+ \hline
+ C\_1 & D\_{11} & D\_{12} \\\\
+ C\_2 & D\_{21} & D\_{22}
+ \end{array}
+ \right]
+\end{equation}
+
+The closed loop transfer function from \\(w\\) to \\(z\\) is given by the linear fractional transformation:
+
+\begin{align\*}
+ z &= F\_l(P, K) w \\\\
+ &= [P\_{11} + P\_{12}K(I-P\_{22}K)^{-1} P\_{21}] w
+\end{align\*}
+
+\\(\htwo\\) and \\(\hinf\\) control involve the minimization of the \\(\htwo\\) and \\(\hinf\\) norms of \\(F\_l(P, K)\\).
+
+The most general and widely used algorithms for \\(\htwo\\) and \\(\hinf\\) control problems are based on the state space formulation and requires the solution of two Riccati equations.
+
+The following **assumptions** are typically made in \\(\htwo\\) and \\(\hinf\\) problems:
+
+1. \\((A, B\_2, C\_2)\\) is stabilizable and detectable.
+ This is required for the existence of stabilizing controllers
+2. \\(D\_{12}\\) and \\(D\_{21}\\) have full rank.
+ This is sufficient to ensure that the controllers are proper
+3. \\(\begin{bmatrix} A-j\w I & B\_2 \cr C\_1 & D\_{12} \end{bmatrix}\\) and \\(\begin{bmatrix} A-j\w I & B\_1 \cr C\_2 & D\_{21} \end{bmatrix}\\) have respectively full column and full row rank for all \\(\w\\).
+ This ensures that the controller does not cancel poles or zeros in the imaginary axis which would result in closed-loop instability
+4. \\(D\_{11} = 0\\) and \\(D\_{22} = 0\\) is a conventional requirement for \\(\htwo\\) control.
+ This is not required for \\(\hinf\\) control but this significantly simplify algorithm formulas
+5. \\(D\_{12}^T C\_1 = 0\\) and \\(B\_1 D\_{12}^T = 0\\) is common in \\(\htwo\\) control.
+ \\(D\_{12}^T C\_1 = 0\\) means that there is no cross terms in the cost function and \\(B\_1 D\_{12}^T = 0\\) that the process noise and measurement noise are uncorrelated
+6. \\((A, B\_1)\\) is stabilizable and \\((A, C\_1)\\) is detectable
+
+If the Matlab Robust Control Toolbox complains, then it probably means that the control problem is not well formulated and that some assumptions are not met.
+
+\\(\hinf\\) algorithms, in general, find a **sub-optimal controller**. That is, for a specified \\(\gamma\\) a stabilizing controller is found for which \\(\hnorm{F\_l(P,K)}<\gamma\\).
+This contrasts with \\(\htwo\\) theory, in which the optimal controller is **unique** and can be found from the solution of two Riccati equations.
+
+
+#### \\(\htwo\\) Optimal Control {#htwo-optimal-control}
+
+
+
+The standard \\(\htwo\\) optimal control problem is to find a stabilizing controller \\(K\\) which minimizes
+
+\begin{equation\*}
+ \normtwo{F(s)} = \sqrt{\frac{1}{2\pi}\int\_{-\infty}^{\infty} tr[F(j\w)F(j\w)^H]d\w }
+\end{equation\*}
+
+With \\(F = F\_l(P, K)\\).
+
+
+
+For a particular problem, the generalized plant \\(P\\) will include the plant model, the interconnection structure, and the designer specified weighting functions.
+
+The \\(\htwo\\) norm can be given different **deterministic interpretations**.
+It also has the following **stochastic interpretation**.
+
+Suppose in the general control configuration that the exogenous input \\(w\\) is white noise of unit density. That is
+
+\begin{equation\*}
+ E\\{w(t)w(\tau)^T\\} = I \delta(t-\tau)
+\end{equation\*}
+
+Expected power in the error signal \\(z\\) is then given by
+
+\begin{align\*}
+ P\_z &= E\bigg\\{ \lim\_{T\rightarrow\infty} \frac{1}{2T} \int\_{-T}^{T} z(t)^T z(t) dt \bigg\\} \\\\
+ &= \text{tr}\ E\\{z(t)z(t)^H\\}\\\\
+ &= \frac{1}{2\pi} \int\_{-\infty}^{\infty}\text{tr}\left[F(j\omega)F(j\omega)^H\right]d\omega\\\\
+ &= \normtwo{F}^2 = \normtwo{F\_l(P,K)}^2
+\end{align\*}
+
+
+
+Thus, by minimizing the \\(\htwo\\) norm, the error power of the generalized system, due to a unit intensity white noise input, is minimized.
+We are **minimizing the Root Mean Square value** of \\(z\\).
+
+
+
+
+#### LQG: a Special \\(\htwo\\) Optimal Controller {#lqg-a-special-htwo-optimal-controller}
+
+An important special case of \\(\htwo\\) optimal control is the LQG problem.
+For the stochastic system
+
+\begin{align\*}
+ \dot{x} &= A x + B u + w\_d \\\\
+ y &= Cx + w\_n
+\end{align\*}
+
+where
+
+\begin{equation\*}
+ E \left\\{ \begin{bmatrix}
+ w\_d(t) \\\\
+ w\_n(t)
+ \end{bmatrix} \begin{bmatrix}
+ w\_d(\tau)^T & w\_n(\tau)^T \end{bmatrix} \right\\} = \begin{bmatrix}
+ W & 0 \\\\
+ 0 & V
+ \end{bmatrix}
+ \delta (t - \tau)
+\end{equation\*}
+
+The LQG problem is to find \\(u = K(s) y\\) such that
+
+\begin{equation\*}
+ J = E \left\\{ \lim\_{T\to \infty} \frac{1}{T} \int\_0^T [x^T Q x + u^T R u] dt \right\\}
+\end{equation\*}
+
+is minimized with \\(Q = Q^T \ge 0\\) and \\(R = R^T > 0\\).
+
+This problem can be cast as an \\(\htwo\\) optimization in the general framework in the following manner.
+
+Define the error signal \\(z\\) as
+
+\begin{equation\*}
+ z = \begin{bmatrix}
+ Q^{\frac{1}{2}} & 0 \\\\
+ 0 & R^{\frac{1}{2}}
+\end{bmatrix} \begin{bmatrix}
+ x \\\\
+ u
+\end{bmatrix}
+\end{equation\*}
+
+Represent the stochastic inputs as
+
+\begin{equation\*}
+\begin{bmatrix}
+ w\_d \\\\
+ w\_n
+\end{bmatrix} = \begin{bmatrix}
+ W^{\frac{1}{2}} & 0 \\\\
+ 0 & V^{\frac{1}{2}}
+\end{bmatrix} w
+\end{equation\*}
+
+where \\(w\\) is a white noise process of unit density.
+
+Then the LQG cost function is
+
+\begin{equation\*}
+ K = E \left\\{ \lim\_{T\to \infty} \frac{1}{T} \int\_0^T z(t)^T z(t) dt \right\\} = \normtwo{F\_l(P,K)}^2
+\end{equation\*}
+
+
+#### \\(\hinf\\) Optimal Control {#hinf-optimal-control}
+
+With reference to the general control configuration on [Figure 43](#figure--fig:general-control), the standard \\(\hinf\\) optimal control problem is to find all stabilizing controllers \\(K\\) which minimize
+
+\begin{equation\*}
+ \hnorm{F\_l(P, K)} = \max\_{\omega} \maxsv\big(F\_l(P, K)(j\omega)\big)
+\end{equation\*}
+
+The \\(\hinf\\) norm has **several interpretations** in terms of performance.
+One is that it minimizes the peak of the maximum singular value of \\(F\_l(P(j\omega), K(j\omega))\\).
+
+It also has a time domain interpretation as the worst-cast 2-norm:
+
+\begin{equation} \label{eq:hinf\_time\_domain\_worst\_2norm}
+ \hnorm{F\_l(P,K)} = \max\_{w(t)\ne0} \frac{\normtwo{z(t)}}{\normtwo{w(t)}}
+\end{equation}
+
+where \\(\normtwo{z(t)} = \sqrt{\int\_0^\infty \sum\_i \abs{z\_i}^2 dt}\\) is the 2-norm of the vector signal.
+
+In practice, it is usually not necessary to obtain an optimal controller for the \\(\hinf\\) problem, and it is simpler to design a **sub-optimal** one.
+
+Let \\(\gamma\_\text{min}\\) be the minimum value of \\(\hnorm{F\_l(P,K)}\\) over all stabilizing controllers \\(K\\).
+Then the \\(\hinf\\) **sub-optimal control problem** is: given a \\(\gamma > \gamma\_\text{min}\\), find all stabilizing controllers \\(K\\) such that
+
+\begin{equation} \label{eq:hinf\_suboptimal\_problem}
+ \hnorm{F\_l(P, K)} < \gamma
+\end{equation}
+
+By reducing \\(\gamma\\) in an iterative way, an optimal solution is approached.
+
+**General \\(\hinf\\) algorithm**.
+For the general control configuration and with assumptions described above, there exists a stabilizing controller \\(K(s)\\) such that \\(\hnorm{F\_l(P,K)}<\gamma\\) if and only if
+
+1. \\(X\_\infty \ge 0\\) is a solution to the algebraic Riccati equation \\(A^T X\_\infty + X\_\infty A + C\_1^T C\_1 + X\_\infty (\gamma^{-2} B\_1 B\_1^T - B\_2 B\_2^T)X\_\infty = 0\\) such that \\(\text{Re } \lambda\_i \left[ A + (\gamma^{-2}B\_1B\_1^T - B\_2B\_2^T)X\_\infty \right] < 0, \ \forall i\\)
+2. \\(Y\_\infty \ge 0\\) is a solution to the algebraic Riccati equation \\(A Y\_\infty + Y\_\infty A^T + B\_1 B\_1^T + Y\_\infty (\gamma^{-2} C\_1^T C\_1 - C\_2^T C\_2)Y\_\infty = 0\\) such that \\(\text{Re } \lambda\_i \left[ A + Y\_\infty(\gamma^{-2}C\_1^TC\_1 - C\_2^TC\_2)Y\_\infty \right] < 0, \ \forall i\\)
+3. \\(\rho(X\_\infty Y\_\infty) < \gamma^2\\)
+
+All such controllers are then given by \\(K = F\_l(K\_c, Q)\\) where
+
+\begin{align\*}
+ K\_c(s) &= \left[ \begin{array}{c|cc}
+ A\_\infty & -Z\_\infty L\_\infty & Z\_\infty B\_2 \cr \hline
+ F\_\infty & 0 & I \\\\
+ -C\_2 & I & 0
+ \end{array} \right], \ L\_\infty = -Y\_\infty C\_2^T \\\\
+ F\_\infty &= -B\_2^T X\_\infty, \ Z\_\infty = (I - \gamma^2 Y\_\infty X\_\infty)^{-1} \\\\
+ A\_\infty &= A + \gamma^{-2} B\_1 B\_1^T X\_\infty + B\_2F\_\infty + Z\_\infty L\_\infty C\_2
+\end{align\*}
+
+and \\(Q(s)\\) is any stable proper transfer function such that \\(\hnorm{Q} < \gamma\\).
+
+For \\(Q(s) = 0\\), we get
+
+\begin{equation} \label{eq:hinf\_central\_controller}
+ K(s) = K\_{c11}(s) = -Z\_\infty L\_\infty (s I - A\_\infty)^{-1} F\_\infty
+\end{equation}
+
+This is called the **central controller** and has the same number of states as the generalized plant \\(P(s)\\).
+
+The central controller can be separated into a state estimator (observer) of the form
+
+\begin{equation\*}
+ \dot{\hat{x}} = A\hat{x} + B\_1 \gamma^{-2} B\_1^T X\_\infty \hat{x} + B\_2 u + Z\_\infty L\_\infty (C\_2 \hat{x} - y)
+\end{equation\*}
+
+and a state feedback \\(u = F\_\infty \hat{x}\\).
+
+
+
+\\(\gamma\text{-iteration}\\):
+If we desire a controller that achieves \\(\gamma\_\text{min}\\), to within specified tolerance, then we can perform a **bisection** on \\(\gamma\\) until its value is sufficiently accurate.
+The above conditions provide a test for each value of \\(\gamma\\) to determine if \\(\gamma<\gamma\_\text{min}\\) or \\(\gamma>\gamma\_\text{min}\\).
+
+
+
+There are mainly two methodologies for \\(\hinf\\) controller design: the **transfer function shaping approach** and the **signal-based approach**.
+
+In the **shaping approach**, \\(\hinf\\) optimization is used to shape the singular values of specified transfer functions over frequency.
+The maximum singular values are relatively easy to shape by forcing them to lie below user defined bounds, thereby ensuring desirable bandwidth and roll-off rates.
+
+In the **signal-based approach**, we seek to minimize the energy in certain error signal given a set of exogenous input signals.
+
+A difficulty that sometimes arises with \\(\hinf\\) control is the **selection of weights** such that the \\(\hinf\\) optimal controller provides a good trade-off between conflicting objectives in various frequency ranges.
+Thus, for practical designs it is sometimes recommended to perform only a few iterations of the \\(\hinf\\) algorithm.
+The justification for this is that the initial design, after one iteration, is similar to an \\(\htwo\\) design which does trade-off over various frequency ranges.
+Therefore stopping the iterations before the optimal value is achieved gives the design an \\(\htwo\\) flavor which may be desirable.
+
+
+#### Mixed-Sensitivity \\(\hinf\\) Control {#mixed-sensitivity-hinf-control}
+
+Mixed-sensitivity is the name given to transfer function shaping problems in which the sensitivity function \\(S = (I + GK)^{-1}\\) is shaped along with one or more other closed-loop transfer functions such as \\(KS\\) or \\(T = I - S\\).
+
+Suppose that we have a regulation problem in which we want to reject a disturbance \\(d\\) entering at the plant output and it is assumed that the measurement noise is relatively insignificant.
+It makes sense to shape the closed-loop transfer functions \\(S\\) and \\(KS\\).
+Recall that \\(S\\) is the transfer function between \\(d\\) and the output, and \\(KS\\) the transfer function from \\(d\\) and the control signal.
+It is important to include \\(KS\\) as a mechanism for **limiting the size and bandwidth of the controller**, and hence the energy used.
+The size of \\(KS\\) is also important for robust stability with respect to uncertainty modeled as additive plant perturbations.
+
+The disturbance \\(d\\) is typically a low frequency signal, and therefore it will be successfully rejected if the maximum singular value of \\(S\\) is made small over the same low frequency range.
+To do this, we could select a scalar low pass filter \\(w\_1(s)\\) with a bandwidth equal to that of the disturbance, and then find a stabilizing controller that minimizes \\(\hnorm{w\_1 S}\\).
+This cost function alone is not very practical, it focuses on just one closed-loop transfer function and the controller may have infinite gain.
+It is far more useful in practice to minimize
+
+\begin{equation} \label{eq:s\_ks\_hinf}
+ \hnorm{\begin{matrix} w\_1 S \\\ w\_2 KS \end{matrix}}
+\end{equation}
+
+where \\(w\_2(s)\\) is a scalar high pass filter with a crossover frequency approximately equal to that of the desired closed-loop bandwidth.
+
+In general, the scalar weighting functions \\(w\_1(s)\\) and \\(w\_2(s)\\) can be replaced by matrices \\(W\_1(s)\\) and \\(W\_2(s)\\).
+This can be useful for **systems with channels of quite different bandwidths**.
+In that case, **diagonal weights are recommended** as anything more complicated is usually not worth the effort.
+
+To see how this mixed sensitivity problem can be formulated in the general setting, we can imagine the disturbance \\(d\\) as a single exogenous input and define and error signal \\(z = [z\_1^T\ z\_2^T]^T\\), where \\(z\_1 = W\_1 y\\) and \\(z\_2 = -W\_2 u\\) as illustrated in [Figure 44](#figure--fig:mixed-sensitivity-dist-rejection).
+We can then see that \\(z\_1 = W\_1 S w\\) and \\(z\_2 = W\_2 KS w\\) as required.
+The elements of the generalized plant are
+
+\begin{equation\*}
+ \begin{array}{ll}
+ P\_{11} = \begin{bmatrix}
+ W\_1 \\\\
+ 0
+ \end{bmatrix} & P\_{12} = \begin{bmatrix}
+ W\_1G \\\\
+ -W\_2
+ \end{bmatrix} \\\\
+ P\_{21} = -I & P\_{22} = -G
+ \end{array}
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_mixed_sensitivity_dist_rejection.png" caption="Figure 44: \\(S/KS\\) mixed-sensitivity optimization in standard form (regulation)" >}}
+
+Another interpretation can be put on the \\(S/KS\\) mixed-sensitivity optimization as shown in the standard control configuration of [Figure 45](#figure--fig:mixed-sensitivity-ref-tracking).
+Here we consider a tracking problem.
+The exogenous input is a reference command \\(r\\), and the error signals are \\(z\_1 = -W\_1 e = W\_1 (r-y)\\) and \\(z\_2 = W\_2 u\\).
+As the regulation problem of [Figure 44](#figure--fig:mixed-sensitivity-dist-rejection), we have that \\(z\_1 = W\_1 S w\\) and \\(z\_2 = W\_2 KS w\\).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_mixed_sensitivity_ref_tracking.png" caption="Figure 45: \\(S/KS\\) mixed-sensitivity optimization in standard form (tracking)" >}}
+
+Another useful mixed sensitivity optimization problem, is to find a stabilizing controller which minimizes
+
+\begin{equation} \label{eq:s\_t\_hinf}
+ \hnorm{\begin{matrix} W\_1 S \\\ W\_2 T \end{matrix}}
+\end{equation}
+
+The ability to shape \\(T\\) is desirable for tracking problems and noise attenuation.
+It is also important for robust stability with respect to multiplicative perturbations at the plant output.
+
+The \\(S/T\\) mixed-sensitivity minimization problem can be put into the standard control configuration as shown in [Figure 46](#figure--fig:mixed-sensitivity-s-t).
+
+The elements of the generalized plant are
+
+\begin{equation\*}
+ \begin{array}{ll}
+ P\_{11} = \begin{bmatrix}
+ W\_1 \\\\
+ 0
+ \end{bmatrix} & P\_{12} = \begin{bmatrix}
+ -W\_1G \\\\
+ W\_2G
+ \end{bmatrix} \\\\
+ P\_{21} = -I & P\_{22} = -G
+ \end{array}
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_mixed_sensitivity_s_t.png" caption="Figure 46: \\(S/T\\) mixed-sensitivity optimization in standard form" >}}
+
+The shaping of closed-loop transfer functions as described above with the stacked cost functions becomes difficult with more than two functions whereas with two, the process is relatively easy.
+The bandwidth requirements on each are usually complementary and simple, stable low-pass and high-pass filters are sufficient to carry out the required shaping and trade-offs.
+
+The weights \\(W\_i\\) in mixed-sensitivity \\(\hinf\\) optimal control must all be stable.
+Therefore, if we wish, for example, to emphasize the minimization of \\(S\\) at low frequency by weighting with a term including integral action, we would have to approximate \\(\frac{1}{s}\\) by \\(\frac{1}{s + \epsilon}\\) where \\(\epsilon \ll 1\\).
+Similarly, one might be interested in weighting \\(KS\\) with a non-proper weight to ensure that \\(K\\) is small outside of the system bandwidth.
+The trick is to replace a non proper term such as \\((1 + \tau\_1 s)\\) by \\(\frac{1 + \tau\_1 s}{1 + \tau\_2 s}\\) where \\(\tau\_2 \ll \tau\_1\\).
+
+
+#### Signal-Based \\(\hinf\\) Control {#signal-based-hinf-control}
+
+The signal-based approach to controller design is very general and is appropriate for multivariable problems in which several objectives must be taken into account simultaneously.
+In this approach, we define the plant, possibly the model uncertainty, the **class of external signals affecting the system** and the **norm of the error signals we want to keep small**.
+
+
+
+The focus of attention has moved to the size of signals and away from the size and bandwidth of selected closed-loop transfer functions.
+
+
+
+Weights are used to describe the expected or known frequency content of exogenous signals and the desired frequency content of error signals.
+Weights are also used if a perturbation is used to model uncertainty, as in [Figure 47](#figure--fig:input-uncertainty-hinf), where \\(G\\) represents the nominal model, \\(W\\) is a weighting function that captures the relative model fidelity over frequency, and \\(\Delta\\) represents unmodelled dynamics usually normalized such that \\(\hnorm{\Delta} < 1\\).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_input_uncertainty_hinf.png" caption="Figure 47: Multiplicative dynamic uncertainty model" >}}
+
+LQG control is a simple example of the signal based approach, in which the exogenous signals are assumed to be stochastic and the error signals are measured in terms of the 2-norm.
+As we have seen, the weights \\(Q\\) and \\(R\\) are constant, but LQG can be generalized to include frequency dependent weights on the signals leading to what is called Wiener-Hopf design or \\(\htwo\\) control.
+
+When we consider a system's response to persistent sinusoidal signals of varying frequency, or when we consider the induced 2-norm between the exogenous input signals and the error signals, we are required to minimize the \\(\hinf\\) norm.
+In the absence of model uncertainty, there does not appear to be an overwhelming case for using the \\(\hinf\\) norm rather than the more traditional \\(\htwo\\) norm.
+However, when uncertainty is addressed, as it always should be, \\(\hinf\\) is clearly the more **natural approach** using component uncertainty models as in [Figure 47](#figure--fig:input-uncertainty-hinf).
+
+A typical problem using the signal-based approach to \\(\hinf\\) control is illustrated in the interconnection diagram of [Figure 48](#figure--fig:hinf-signal-based).
+\\(G\\) and \\(G\_d\\) are nominal models of the plant and disturbance dynamics, and \\(K\\) is the controller to be designed.
+The weights \\(W\_d\\), \\(W\_r\\), and \\(W\_n\\) may be constant or dynamic and describe the relative importance and/or the frequency content of the disturbance, set points and noise signals.
+The weight \\(W\_\text{ref}\\) is a desired closed-loop transfer function between the weighted set point \\(r\_s\\) and the actual output \\(y\\).
+The weights \\(W\_e\\) and \\(W\_u\\) reflect the desired frequency content of the error \\((y-y\_\text{ref})\\) and the control signals \\(u\\), respectively.
+The problem can be cast as a standard \\(\hinf\\) optimization in the general control configuration by defining
+
+\begin{equation\*}
+ w = \begin{bmatrix}
+ d \\\\
+ r \\\\
+ n
+ \end{bmatrix},\ z = \begin{bmatrix}
+ z\_1 \\\\
+ z\_2
+ \end{bmatrix}, \ v = \begin{bmatrix}
+ r\_s \\\\
+ y\_m
+ \end{bmatrix},\ u = u
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_hinf_signal_based.png" caption="Figure 48: A signal-based \\(\hinf\\) control problem" >}}
+
+Suppose we now introduce a multiplicative dynamic uncertainty model at the input to the plant as shown in [Figure 49](#figure--fig:hinf-signal-based-uncertainty).
+The problem we now want to solve is: find a stabilizing controller \\(K\\) such that the \\(\hinf\\) norm of the transfer function between \\(w\\) and \\(z\\) is less that 1 for all \\(\Delta\\) where \\(\hnorm{\Delta} < 1\\).
+We have assumed in this statement that the **signal weights have normalized the 2-norm of the exogenous input signals to unity**.
+This problem is a non-standard \\(\hinf\\) optimization.
+It is a robust performance problem for which the \\(\mu\text{-synthesis}\\) procedure can be applied where we require the structured singular value:
+
+\begin{equation\*}
+ \mu(M(j\omega)) < 1, \quad \forall\omega
+\end{equation\*}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_hinf_signal_based_uncertainty.png" caption="Figure 49: A signal-based \\(\hinf\\) control problem with input multiplicative uncertainty" >}}
+
+However, whilst the structured singular value is a useful analysis tool for assessing designs, \\(\mu\text{-synthesis}\\) is sometimes difficult to use and often too complex for the practical problems.
+
+
+### \\(\hinf\\) Loop-Shaping Design {#hinf-loop-shaping-design}
+
+The loop-shaping design procedure described in this section is based on \\(\hinf\\) robust stabilization combined with classical loop shaping.
+It is essentially a **two stage design process**:
+
+- First the open-loop plant is augmented by pre and post compensators to give a desired shape to the singular values of the open-loop frequency response
+- Then the resulting shaped plant is robustly stabilized with respect to coprime factor uncertainty using \\(\hinf\\) optimization
+
+An important advantage is that no problem-dependent uncertainty modelling, or weight selection, is required in this second step.
+
+
+#### Robust Stabilization {#robust-stabilization}
+
+For multivariable systems, **classical gain and phase margins are unreliable indicators of robust stability** when defined for each channel (or loop), taken one at a time, because simultaneous perturbations in more than one loop are not then catered for.
+
+It is now common practice to model uncertainty by stable **norm-bounded** dynamic (complex) **matrix perturbations**.
+With a single perturbation, the associated robustness tests is in terms of the maximum singular values of various closed-loop transfer functions.
+Use of a single stable perturbation restricts the plant and perturbed plant models to either have the same number of unstable poles or the same number of RHP zeros.
+
+To overcome this, **two stable perturbations** can be used, one on each of the factors in a **coprime factorization** of the plant.
+Although this uncertainty description seems unrealistic and less intuitive than the others, it is in fact quite general, and for our purposes it leads to a very useful \\(\hinf\\) robust stabilization problem.
+
+Let's consider the stabilization of a plant \\(G\\) which has a normalized left coprime factorization
+
+\begin{equation}
+ G = M^{-1} N
+\end{equation}
+
+where we have dropped the subscripts from \\(M\\) and \\(N\\) for simplicity.
+
+A perturbed plant model \\(G\_p\\) can then we written has
+
+\begin{equation}
+ G\_p = (M + \Delta\_M)^{-1} (N + \Delta\_N)
+\end{equation}
+
+where \\(\Delta\_M\\), \\(\Delta\_N\\) are stable unknown transfer functions which represent the uncertainty in the nominal plant \\(G\\).
+
+The objective of robust stabilization is to stabilize not only the nominal model \\(G\\), but a family of perturbed plants defined by
+
+\begin{equation}
+ G\_p = \\{ (M + \Delta\_M)^{-1} (N + \Delta\_N) \ :\ \hnorm{\Delta\_N\ \Delta\_M} < \epsilon \\}
+\end{equation}
+
+where \\(\epsilon > 0\\) is then the **stability margin**.
+
+For the perturbed feedback system of [Figure 50](#figure--fig:coprime-uncertainty-bis), the stability property is robust if and only if the nominal feedback system is stable and
+
+\begin{equation\*}
+ \gamma \triangleq \hnorm{\begin{bmatrix}
+ K \\\\
+ I
+ \end{bmatrix} (I - GK)^{-1} M^{-1}} \le \frac{1}{\epsilon}
+\end{equation\*}
+
+Notice that \\(\gamma\\) is the \\(\hinf\\) norm from \\(\phi\\) to \\(\begin{bmatrix}u \cr y\end{bmatrix}\\) and \\((I-GK)^{-1}\\) is the sensitivity function for this positive feedback arrangement.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_coprime_uncertainty_bis.png" caption="Figure 50: \\(\hinf\\) robust stabilization problem" >}}
+
+The lowest achievable value of \\(\gamma\\) and the corresponding maximum stability margin \\(\epsilon\\) are given as
+
+\begin{equation} \label{eq:gamma\_min\_coprime}
+ \gamma\_\text{min} = \epsilon\_{\text{max}}^{-1} = \left\\{ 1 - \\|N \ M\\|\_H^2 \right\\}^{-\frac{1}{2}} = (1 + \rho(XZ))^{\frac{1}{2}}
+\end{equation}
+
+where \\(\\|\ \cdot\ \\|\_H\\) denotes Hankel norm, \\(\rho\\) denotes the spectral radius (maximum eigenvalue), and for a minimal state space realization of G, Z is the unique positive definite solution of the algebraic Riccati equation
+
+\begin{align\*}
+ (A - BS^{-1} D^TC)Z &+ Z(A - BS^{-1}D^TC)^T \\\\
+ &- ZC^TR^{-1}CZ + BS^{-1}B^T = 0
+\end{align\*}
+
+where
+
+\begin{equation\*}
+ R = I + D D^T, \quad S = I + D^T D
+\end{equation\*}
+
+\\(X\\) is the unique positive definite solution of the following algebraic Riccati equation
+
+\begin{align\*}
+ (A - BS^{-1} D^T C)X &+ X(A - BS^{-1}D^TC)^T \\\\
+ &- XBS^{-1} B^T X + C^TR^{-1}C = 0
+\end{align\*}
+
+A controller which guarantees that
+
+\begin{equation\*}
+ \hnorm{ \begin{bmatrix}
+ K \\\\
+ I
+ \end{bmatrix} (I-GK)^{-1} M^{-1} } \le \gamma
+\end{equation\*}
+
+for a specified \\(\gamma > \gamma\_\text{min}\\), is given by
+
+\begin{align}
+ K &\triangleq \left[ \begin{array}{c|c}
+ {\scriptstyle A + BF + \gamma^2L^{-T} Z C^T(C + DF)} & {\scriptstyle \gamma^2L^{-T} Z C^T} \cr \hline
+ {\scriptstyle B^T X} & {\scriptstyle -D^T}
+\end{array} \right] \label{eq:control\_coprime\_factor} \\\\
+ F &= -S^{-1}(D^T C + B^T X)\\\\
+ L &= (1-\gamma^2) I + XZ
+\end{align}
+
+The Matlab function `coprimeunc` can be used to generate the controller in \ref{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.
+
+
+#### A Systematic \\(\hinf\\) Loop-Shaping Design Procedure {#a-systematic-hinf-loop-shaping-design-procedure}
+
+
+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.
+
+If \\(W\_1\\) and \\(W\_2\\) are the pre and post compensators respectively, then the shaped plant \\(G\_s\\) is given by
+
+\begin{equation}
+ G\_s = W\_2 G W\_1
+\end{equation}
+
+as shown in [Figure 51](#figure--fig:shaped-plant).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_shaped_plant.png" caption="Figure 51: The shaped plant and controller" >}}
+
+The controller \\(K\_s\\) is synthesized by solving the robust stabilization problem for the shaped plant \\(G\_s\\) with a normalized left coprime factorization \\(G\_s = M\_s^{-1}N\_s\\).
+The feedback controller for the plant \\(G\\) is then \\(K = W\_1 K\_s W\_2\\).
+
+Systematic procedure for \\(\hinf\\) loop-shaping design:
+
+1. **Scale the plant outputs and inputs**.
+ This is very important for most design procedures.
+ In general, scaling improves the conditioning of the design problem, it enables meaningful analysis to be made of the robustness properties of the feedback system in the frequency domain, and for loop shaping it can simplify the selection of weights:
+ - The outputs are scaled such that equal magnitudes of cross-coupling into each of the outputs is equally undesirable
+ - Each input is scaled by a given percentage (say \\(\SI{10}{\\%}\\)) of its expected range of operation.
+ That is, the inputs are scaled to reflect the relative actuator capabilities.
+2. **Order the inputs and outputs** so that the plant is as diagonal as possible.
+ The relative gain array can be useful here.
+ The purpose of this pseudo-diagonalization is to ease the design of the pre and post compensators which, for simplicity, will be chosen to be diagonal.
+ Next, we discuss the selection of weights to obtain the shaped plant \\(G\_s = W\_2 G W\_1\\) where \\(W\_1 = W\_p W\_a W\_g\\)
+3. **Select the elements of diagonal pre and post compensators** \\(W\_p\\) and \\(W\_2\\) so that the singular values of \\(W\_2 G W\_p\\) are desirable.
+ This would normally mean high gain at low frequencies, a slope of about \\(-1\\) at the desired bandwidth(s), with higher rates at high frequencies.
+ The weights should be chosen so that no unstable hidden modes are created in \\(G\_s\\)
+ - \\(W\_2\\) is usually chosen as a constant, reflecting the relative importance of the outputs to be controlled and the other measurements being fed back to the controller
+ - \\(W\_p\\) contains the dynamic shaping. Integral action, for low frequency performance; phase-advance for reducing the roll-off rates at crossover; and phase-lag to increase the roll-off rates at high frequencies should all be places in \\(W\_p\\) is desired
+4. _Optional_: Align the singular values at a desired bandwidth using a further constant weight \\(W\_a\\) cascaded with \\(W\_p\\)
+5. _Optional_: Introduce an additional gain matrix \\(W\_g\\) cascaded with \\(W\_a\\) to provide control over actuator range. \\(W\_g\\) is diagonal and is adjusted so that actuator rate limits are not exceeded for reference demands and typical disturbances on the scaled plant outputs
+6. **Robustly stabilize the shaped plant** \\(G\_s = W\_2 G W\_1\\) where \\(W\_1 = W\_p W\_a W\_g\\)
+ - First, calculate the maximum stability margin \\(\epsilon\_{\text{max}} = 1/\gamma\_\text{min}\\)
+ - If the margin is too small, \\(\epsilon\_{\text{max}} < 0.25\\), then go back to step 4 and modify the weights. Otherwise, select \\(\gamma > \gamma\_\text{min}\\), by about \\(\SI{10}{\\%}\\), and synthesize a sub-optimal controller. There is usually no advantage to be gained by using the optimal controller
+ - When \\(\epsilon\_{\text{max}} > 0.25\\) (respectively \\(\gamma\_\text{min} < 4\\)) the design is usually successful. In this case, at least \\(\SI{25}{\\%}\\) coprime factor uncertainty is allowed, and we also find that the shape of the open-loop singular values will not have changed much after robust stabilization
+ - A small value of \\(\epsilon\_{\text{max}}\\) indicates that the chosen singular value loop-shapes are incompatible with robust stability requirements
+7. **Analyze the design** and if not all the specification are met, make further modifications to the weights
+8. **Implement the controller**.
+ The configuration shown in [Figure 52](#figure--fig:shapping-practical-implementation) has been found useful when compared with the conventional setup in [Figure 38](#figure--fig:classical-feedback-small).
+ This is because the references do not directly excite the dynamics of \\(K\_s\\), which can result in large amounts of overshoot.
+ The constant prefilter ensure a steady-state gain of \\(1\\) between \\(r\\) and \\(y\\), assuming integral action in \\(W\_1\\) or \\(G\\)
+
+
+
+{{< figure src="/ox-hugo/skogestad07_shapping_practical_implementation.png" caption="Figure 52: A practical implementation of the loop-shaping controller" >}}
+
+We will conclude this section with a summary of the **advantages** offered by the above \\(\hinf\\) loop-shaping design procedure:
+
+- It is relatively easy to use, being based on classical loop-shaping ideas
+- There exists a closed formula for the \\(\hinf\\) optimal cost \\(\gamma\_\text{min}\\), which in turn corresponds to a maximum stability margin \\(\epsilon\_{\text{max}} = 1/\gamma\_\text{min}\\)
+- No \\(\gamma\text{-iteration}\\) is required in the solution
+- Except for special systems, ones with all-pass factors, there are no pole-zero cancellations between the plant and controller.
+ Pole-zeros cancellations are common in many \\(\hinf\\) control problems and are a problem when the plant has lightly damped modes
+
+
+#### Two Degrees-of-freedom Controllers {#two-degrees-of-freedom-controllers}
+
+Many control design problems possess two degrees-of-freedom:
+
+- on one hand, **measurement of feedback signals**
+- and on the other hand, **commands and reference**
+
+Sometimes, one degree-of-freedom is left out of the design, and the controller is driven by an error signal i.e. the difference between a command and the output.
+But in cases where stringent time-domain specifications are set on the output response, a one degree-of-freedom structure may not be sufficient.
+
+A general two degrees-of-freedom feedback control scheme is depicted in [Figure 53](#figure--fig:classical-feedback-2dof-simple).
+The commands and feedbacks enter the controller separately and are independently processed.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_classical_feedback_2dof_simple.png" caption="Figure 53: 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.
+However, this may not be sufficient and a dynamic two degrees-of-freedom design is required.
+
+The design problem is illustrated in [Figure 54](#figure--fig:coprime-uncertainty-hinf).
+The feedback part of the controller \\(K\_2\\) is designed to meet robust stability and disturbance rejection requirements.
+A prefilter is introduced to force the response of the closed-loop system to follow that of a specified model \\(T\_{\text{ref}}\\), often called the **reference model**.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_coprime_uncertainty_hinf.png" caption="Figure 54: Two degrees-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping design problem" >}}
+
+The design problem is to find the stabilizing controller \\(K = [K\_1,\ K\_2]\\) for the shaped plant \\(G\_s = G W\_1\\), with a normalized coprime factorization \\(G\_s = M\_s^{-1} N\_s\\), which minimizes the \\(\mathcal{H}\_\infty\\) norm of the transfer function between the signals \\([r^T\ \phi^T]^T\\) and \\([u\_s^T\ y^T\ e^T]^T\\) as defined in [Figure 54](#figure--fig:coprime-uncertainty-hinf).
+This problem is easily cast into the general configuration.
+
+The control signal to the shaped plant \\(u\_s\\) is given by:
+
+\begin{equation\*}
+ u\_s = \begin{bmatrix} K\_1 & K\_2 \end{bmatrix} \begin{bmatrix}
+ \beta \\\\
+ y
+ \end{bmatrix}
+\end{equation\*}
+
+where \\(K\_1\\) is the prefilter, \\(K\_2\\) is the feedback controller, \\(\beta\\) is the scaled reference and \\(y\\) is the measured output.
+The purpose of the prefilter is to ensure that:
+
+\begin{equation\*}
+ \left\\| (I - G\_s K\_2)^{-1} G\_s K\_1 - T\_{\text{ref}} \right\\|\_\infty < \gamma \rho^2
+\end{equation\*}
+
+\\(T\_{\text{ref}}\\) is the desired closed-loop transfer function and \\(\rho\\) is a scalar parameter that the designer can increase to place more emphasis on model matching in the optimization at the expense of robustness.
+
+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\\)
+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
+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]\\)
+5. Replace the prefilter \\(K\_1\\) by \\(K\_1 W\_i\\) to give exact model-matching at steady-state.
+6. Analyze and, if required, redesign making adjustments to \\(\rho\\) and possibly \\(W\_1\\) and \\(T\_{\text{ref}}\\)
+
+The final two degrees-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller is illustrated in [Figure 55](#figure--fig:hinf-synthesis-2dof).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_hinf_synthesis_2dof.png" caption="Figure 55: Two degrees-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller" >}}
+
+
+#### Observer-Based Structure for \\(\hinf\\) Loop-Shaping Controllers {#observer-based-structure-for-hinf-loop-shaping-controllers}
+
+\\(\mathcal{H}\_\infty\\) designs exhibit an observer/state feedback structure in the controller.
+The clear structure of the \\(\mathcal{H}\_\infty\\) loop-shaping controllers has several advantages:
+
+- It is helpful in describing a controller's function
+- It lends itself to implementation in a gain-schedule scheme
+- If offers computational savings in digital implementations
+
+Let's assume that the shaped plant is strictly proper, with a stabilizable and detectable state space realization
+
+\begin{equation\*}
+ G\_s \triangleq \left[ \begin{array}{c|c}
+ A\_s & B\_s \cr \hline
+ C\_s & 0
+\end{array} \right]
+\end{equation\*}
+
+The single degree-of-freedom \\(\mathcal{H}\_\infty\\) loop-shaping controller can be realized as an observer for the shaped plant plus a state feedback control law:
+
+\begin{align\*}
+ \dot{\hat{x}}\_s &= A\_s \hat{x}\_s + H\_s(C\_s \hat{x}\_s - y\_s) + B\_s u\_s \\\\
+ u\_s &= K\_s \hat{x}\_s
+\end{align\*}
+
+where \\(\hat{x}\_s\\) is the observer state, \\(u\_s\\) and \\(y\_s\\) are respectively the input and output of the shaped plant, and
+
+\begin{align\*}
+ H\_s &= -Z\_s C\_s^T \\\\
+ K\_s &= -B\_s^T [I - \gamma^{-2}I - \gamma^{-2} X\_s Z\_s]^{-1} X\_s
+\end{align\*}
+
+where \\(Z\_s\\) and \\(X\_s\\) are the appropriate solutions to the generalized algebraic Riccati equations for \\(G\_s\\).
+
+The same can be done for two degrees-of-freedom controllers.
+
+
+#### Implementation Issues {#implementation-issues}
+
+
+##### Discrete-time controllers {#discrete-time-controllers}
+
+For implementation purposes, discrete-time controllers are usually required.
+These can be obtained from a continuous-time design using a **bilinear transformation** from the \\(s\text{-domain}\\) to the \\(z\text{-domain}\\), but there can be advantages in being able to design directly in discrete time.
+
+
+##### Anti-windup {#anti-windup}
+
+In \\(\hinf\\) loop-shaping the pre compensator weight \\(W\_1\\) would normally include integral action in order to reject low frequency disturbances acting on the system.
+However, in the case of actuator saturation, the integrators continue to integrate their input and hence cause **windup** problems.
+An anti-windup scheme is therefore required on the weighting function \\(W\_1\\).
+The approach we recommend is to implement the weight \\(W\_1\\) in its self-conditioned or Hanus form.
+Let the weight \\(W\_1\\) have a realization
+
+\begin{equation\*}
+ W\_1 \triangleq \left[ \begin{array}{c|c}
+ A\_w & B\_w \cr \hline
+ C\_w & D\_w
+\end{array} \right]
+\end{equation\*}
+
+and let \\(u\\) be the input to the plant actuators and \\(u\_s\\) the input to the shaped plant.
+Then \\(u = W\_1 u\_s\\).
+When implemented in Hanus form, the expression for \\(u\\) becomes
+
+\begin{equation\*}
+ u = \left[ \begin{array}{c|cc}
+ A\_w - B\_wD\_w^{-1}C\_w & 0 & B\_wD\_w^{-1} \cr \hline
+ C\_w & D\_w & 0
+\end{array} \right] \begin{bmatrix}
+ u\_s \\\\
+ u\_a
+\end{bmatrix}
+\end{equation\*}
+
+where \\(u\_a\\) is the **actual plant input**, that is the measurement at the **output of the actuators** which therefore contains information about possible actuator saturation.
+
+The situation is illustrated in [Figure 56](#figure--fig:weight-anti-windup), where the actuators are each modeled by a unit gain and a saturation.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_weight_anti_windup.png" caption="Figure 56: Self-conditioned weight \\(W\_1\\)" >}}
+
+The Hanus form prevents windup by keeping the states of \\(W\_1\\) consistent with the actual plant input at all times.
+When there is no saturation, \\(u\_a=u\\), the dynamics of \\(W\_1\\) remains unaffected.
+But when \\(u\_a\neq u\\), the dynamics are inverted and driven by \\(u\_a\\) so that the states remain consistent with the actual plant input \\(u\_a\\).
+Notice that such an implementation requires \\(W\_1\\) to be invertible and minimum phase.
+
+
+##### Bumpless transfer {#bumpless-transfer}
+
+When multi-mode switched controller is designed, one should ensure **smooth transition from one controller to the other** (bumpless transfer).
+It was found useful to condition the reference models and the observers in each of the controllers.
+When on-line, the observer state evolves according to
+
+\begin{equation\*}
+ \dot{\hat{x}}\_s = A\_s \hat{x}\_s + H\_s (C\_s \hat{x}\_s - y\_s) + B\_s u\_s
+\end{equation\*}
+
+but when off-line, the state equation becomes
+
+\begin{equation\*}
+ \dot{\hat{x}}\_s = A\_s \hat{x}\_s + H\_s (C\_s \hat{x}\_s - y\_s) + B\_s u\_{as}
+\end{equation\*}
+
+where \\(u\_{as}\\) is the actual input to the shaped plant governed by the on-line controller.
+
+Doing so ensure that the inputs to the shaped plant for the off-line controller follows the actual shaped plant input \\(u\_{as}\\) given by the on-line controller.
+The observer based structure of the \\(\mathcal{H}\_\infty\\) loop-shaping controller is then helpful for such technique.
+
+
+### Conclusion {#conclusion}
+
+Several methods and techniques for controller design have been described.
+The emphasis has been on \\(\hinf\\) loop shaping which is easy to apply and works well in practice.
+It combines classical loop-shaping ideas with an effective method for robustly stabilizing the feedback loop.
+
+For complex problems, such as unstable plants with multiple gain crossover frequencies, it may not be easy to decide on a desired loop shape.
+In which case, we would suggest doing an initial LQG design (with simple weights) and using the resulting loop shape as the desired one for the \\(\hinf\\) loop shaping.
+
+And alternative to \\(\hinf\\) loop shaping is a standard \\(\hinf\\) design with a stacked cost function such as in \\(S/KS\\) mixed-sensitivity optimization.
+In this approach, \\(\hinf\\) optimization is used to shape two or sometimes three closed-loop transfer functions.
+However, with more functions, the shaping becomes increasingly difficult for the designer.
+
+In other design situations where there are several performance objectives, it may be more appropriate to follow a signal-based \\(\htwo\\) or \\(\hinf\\) approach.
+But again, the problem formulations become so complex that the designer has little direct influence on the design.
+
+After a design, the resulting controller should be analyzed with respect to robustness and tested using nonlinear simulations.
+For the study of robustness, we recommend \\(\mu\text{-analysis}\\). If the design is not robust, then the weights should be modified.
+Sometimes, one might consider synthesizing a \\(\mu\text{-optimal}\\) controller, but this complexity is rarely necessary in practice.
+Moreover, one should be careful about combining controller synthesis and analysis into a single step.
+
+
+## Controller Structure Design {#controller-structure-design}
+
+
+
+
+### Introduction {#introduction}
+
+In previous sections, we considered the general problem formulation in [Figure 57](#figure--fig:general-control-names-bis) and stated that the controller design problem is to find a controller \\(K\\) which based on the information in \\(v\\), generates a control signal \\(u\\) which counteracts the influence of \\(w\\) on \\(z\\), thereby minimizing the closed loop norm from \\(w\\) to \\(z\\).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_general_control_names_bis.png" caption="Figure 57: General Control Configuration" >}}
+
+In this chapter we are concerned with the **structural decisions** associated with the following selection tasks of control structure design:
+
+- **Controlled outputs**: What are the variables \\(z\\)?
+- **Manipulations and measurements**: What are the variable set \\(u\\) and \\(v\\)?
+- **Control configuration**: What is the structure of \\(K\\)?
+- **Controller type**: What algorithm is used for \\(K\\)?
+
+The distinction between the words under control _structure_ and control _configuration_ are significant.
+The _control structure_ refers to all structural decisions included in the design of a control system.
+On the other hand, the _control configuration_ refers only to the structuring of the controller \\(K\\) itself.
+
+Ideally, the tasks involved in designing a complete control system are performed sequentially; first a "top down" selection of controller outputs, measurements and inputs, and then a "bottom up" design of the control system in which the selection of the control configuration is the most important decision.
+However, in practice the tasks are closely related so the procedure may involve iteration.
+
+One important reason for decomposing the control system into a specific _control configuration_ is that it may **allow for simple tuning** of the sub-controllers **without the need for a detailed plant model** describing the dynamics and interactions in the process.
+Multivariable centralized controllers may always outperform decomposed (decentralized) controllers, bus this performance gain must be traded off against the cost of obtaining and maintaining a sufficiently detailed plant model.
+
+The number of possible control structure is usually very large.
+Fortunately, we can often from physical insight obtain a reasonable choice of controlled outputs, measurements and manipulated inputs.
+
+
+### Optimization and Control {#optimization-and-control}
+
+The selection of controlled outputs involves selecting the variables \\(y\\) to be controlled at given reference values \\(y \approx r\\).
+The reference value \\(r\\) is usually set at some higher layer in the control hierarchy which is often divided into two layers:
+
+- **Optimization layer**: computes the desired reference commands \\(r\\)
+- **Control layer**: implements these commands to achieve \\(y \approx r\\)
+
+Additional layers are possible, as is illustrated in [Figure 58](#figure--fig:control-system-hierarchy) which shows a typical control hierarchy for a chemical plant.
+
+
+
+{{< figure src="/ox-hugo/skogestad07_system_hierarchy.png" caption="Figure 58: Typical control system hierarchy in a chemical plant" >}}
+
+In general, the information flow in such a control hierarchy is based on the higher layer sending reference values (setpoints) to the layer below reporting back any problems achieving this (see [ 6](#org-target--fig-optimize-control-b)).
+There is usually a time scale separation between the layers which means that the **setpoints**, as viewed from a given layer, are **updated only periodically**.
+
+The optimization tends to be performed open-loop with limited use of feedback. On the other hand, the control layer is mainly based on feedback information.
+The **optimization is often based on nonlinear steady-state models**, whereas we often use **linear dynamic models in the control layer**.
+
+From a theoretical point of view, the optimal performance is obtained with a **centralized optimizing controller**, which combines the two layers of optimizing and control (see [ 6](#org-target--fig-optimize-control-c)).
+All control actions in such an ideal control system would be perfectly coordinated and the control system would use on-line dynamic optimization based on nonlinear dynamic model of the complete plant.
+However, this solution is normally not used for a number a reasons, included the cost of modeling, the difficulty of controller design, maintenance, robustness problems and the lack of computing power.
+
+
+
+ Table 6:
+ Alternative structures for optimization and control
+
+
+|  |  |  |
+|-------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
+| Open loop optimization | Closed-loop implementation with separate control layer | Integrated optimization and control |
+
+
+### Selection of Controlled Outputs {#selection-of-controlled-outputs}
+
+A **controlled output** is an output variable (usually measured) with an associated control objective (usually a reference value).
+In many cases, it is clear from a physical understanding of the process what the controlled outputs should be.
+In other cases, it is less obvious because each control objective may not be associated with a measured output variable.
+
+In the following, we let \\(y\\) denote the selected controller outputs in the control layer.
+Two distinct questions arise:
+
+1. What variables \\(y\\) should be selected?
+2. What is the optimal reference value \\(y\_\text{opt}\\)?
+
+For the first problem, we make the following assumptions:
+
+1. The overall goal can be quantified in terms of a **scalar cost function** \\(J\\) which we want to minimize
+2. For a given disturbance \\(d\\), there exists an optimal value \\(u\_\text{opt}(d)\\) and corresponding value \\(y\_\text{opt}(d)\\) which minimizes the cost function \\(J\\)
+3. The reference values \\(r\\) for the controlled outputs \\(y\\) should be constant, i.e. \\(r\\) should be independent of the disturbances \\(d\\)
+
+The system behavior is a function of the independent variables \\(u\\) and \\(d\\): \\(J = J(u, d)\\).
+For a given disturbance \\(d\\) the optimal value of the cost function is
+
+\begin{equation}
+ J\_\text{opt}(d) \triangleq J(u\_\text{opt}, d) = \min\_u J(u, d)
+\end{equation}
+
+In practice \\(u \neq u\_\text{opt}\\), and we have a loss which can be quantified by \\(L = J - J\_\text{opt}\\).
+A reasonable objective for selecting controlled outputs \\(y\\) is to minimize some norm of the loss, for instance the worst-case loss:
+
+\begin{equation}
+ \Phi \triangleq \max\_{d \in \mathcal{D}} |\underbrace{J(u, d) - J(u\_\text{opt}, d)}\_{L}|
+\end{equation}
+
+where \\(\mathcal{D}\\) is the set of possible disturbances.
+
+
+#### Direct Evaluation of Cost {#direct-evaluation-of-cost}
+
+The "brute force" approach for selecting controlled variables is to evaluate the loss for alternative sets of controlled variable.
+By solving the non linear equations, we evaluate directly the cost function \\(J\\) for various disturbances \\(d\\).
+The set of controlled outputs with smallest worst case or average value of \\(J\\) is then preferred.
+This approach may be time consuming because the solution of the nonlinear equations must be repeated for each candidate set of controlled outputs.
+
+
+#### Linear Analysis {#linear-analysis}
+
+Consider the loss \\(L = J(u,d) - J\_\text{opt}(d)\\) where \\(d\\) is a fixed disturbance.
+We make the following additional assumptions:
+
+4. The cost function \\(J\\) is smooth (twice differentiable)
+5. The optimization problem is unconstrained.
+ If it is optimal to keep some variable at a constant, then we assume that this is implemented and consider the remaining unconstrained problem
+6. The dynamics of the problem can be neglected, that is, **we consider the steady-state control and optimization**
+
+For a fixed \\(d\\) we may express \\(J(u, d)\\) in terms of a Taylor series expansion in \\(u\\) around the optimal point.
+By neglecting terms of third order and higher, we obtain:
+
+\begin{equation\*}
+ J(u, d) = J\_\text{opt}(d) + \frac{1}{2} (u - u\_\text{opt}(d))^T \left(\frac{\partial^2 J}{\partial u^2}\right)\_\text{opt} (u - u\_\text{opt}(d))
+\end{equation\*}
+
+This quantifies how \\(u-u\_\text{opt}\\) affects the cost function.
+For a fixed \\(d\\), we have: \\(y - y\_\text{opt} = G (u - u\_\text{opt})\\) where \\(G\\) is the steady state gain matrix.
+Thus, we get:
+
+\begin{equation\*}
+ J - J\_\text{opt} \approx \frac{1}{2} \big(G^{-1}(y-y\_\text{opt})\big)^T \left(\frac{\partial^2 J}{\partial u^2}\right)\_\text{opt} G^{-1} (y - y\_\text{opt})
+\end{equation\*}
+
+We conclude that we should select \\(y\\) such that:
+
+1. \\(G^{-1}\\) is small: the inputs have a large effect on \\(y\\)
+2. \\(e\_\text{opt} = r - y\_\text{opt}(d)\\) is small: its optimal value \\(y\_\text{opt}(d)\\) depends only weakly on the disturbances and other changes
+3. \\(e = y - r\\) is small: it is easy to keep the control error \\(e\\) small
+
+Note that \\(\overline{\sigma}(G^{-1}) = 1/\underline{\sigma}(G)\\) and so **we want the smallest singular value of the steady state gain matrix to be large**.
+
+As this depends of scaling, we should first **scale the outputs** such that the expected magnitude of \\(y\_i - y\_{i\_\text{opt}}\\) is similar in magnitude for each output, and **scale the inputs** such that the effect of a given deviation \\(u\_j - u\_{j\_\text{opt}}\\) on the cost function \\(J\\) is similar for each input.
+
+
+
+The use of the minimum singular value to select controlled outputs may be summarized in the following procedure:
+
+1. From a (nonlinear) model compute the optimal parameters (inputs and outputs) for various conditions (disturbances, operating points).
+ This yields a "look-up" table for optimal parameter values as a function of the operating conditions
+2. From this data, obtain for each candidate output the variation in its optimal value
+
+ \begin{equation\*}
+ v\_i = \frac{(y\_{i\_{\text{opt,max}}} - y\_{i\_{\text{opt,min}}})}{2}
+ \end{equation\*}
+3. Scale the candidate outputs such that for each output the sum of the magnitudes of \\(v\_i\\) and the control error (\\(e\_i\\), including measurement noise \\(n\_i\\)) is similar (e.g. \\(|v\_i| + |e\_i| = 1\\))
+4. Scale the inputs such that a unit deviation in each input from its optimal value has the same effect on the cost function \\(J\\)
+5. Select as candidates those sets of controlled outputs which corresponds to a large value of \\(\underline{\sigma}(G)\\).
+ \\(G\\) is the transfer function for the effect of the scaled inputs on the scaled outputs
+
+
+
+
+#### Summary {#summary}
+
+Generally, the optimal values of all variables will change with time during operation.
+If the loss imposed by keeping constant setpoints is acceptable, then we have self-optimizing control.
+The objective of the control layer is then to keep the controlled outputs at their reference values (which are computed by the optimization layer).
+
+The controlled outputs are often measured, but we may also estimated their values based on other measured variables.
+We may also use other measurements to improve the control of the controlled outputs, for example, by use of cascade control.
+Thus, the selection of controlled and measured outputs are two separate issues.
+
+
+### Selection of Manipulations and Measurements {#selection-of-manipulations-and-measurements}
+
+We are here concerned with the variable sets \\(u\\) and \\(v\\) in [Figure 57](#figure--fig:general-control-names-bis).
+Note that **the measurements** \\(v\\) used by the controller **are in general different from the controlled variables** \\(z\\) because we may not be able to measure all the controlled variables and we may want to measure and control additional variables in order to:
+
+- Stabilize the plant, or more generally change its dynamics
+- Improve local disturbance rejection
+
+
+##### Stabilization {#stabilization}
+
+We usually start of controller design by designing a lower-layer controller to stabilize the plant.
+The issue is then: which outputs and inputs should be used for stabilization?
+A reasonable objective is to minimize the required input usage of the stabilizing control system.
+
+
+##### Local disturbance rejection {#local-disturbance-rejection}
+
+For measurements, the rule is generally to select those which have a **strong relationship with the controlled outputs**, or which may **quickly detect a major disturbance**.
+
+The selected manipulations should have a **large effect on the controlled outputs** and should be located "close" (in terms of dynamic response) to the outputs and measurements.
+
+To evaluate the combinations of manipulations and measurements, one may perform an **input-output controllability analysis** for each combination (e.g. consider the minimum singular values, RHP-zeros, interactions, etc).
+A more involved approach would be to perform a achievable robust performance analysis.
+An even more involved (and exact) approach would be to synthesize controllers for optimal robust performance for each candidate combination.
+However, the number of combination has a combinatorial growth and the analysis may become very time-consuming.
+
+
+### RGA for Non-Square Plant {#rga-for-non-square-plant}
+
+A simple but effective tool for selecting inputs and outputs, which avoids to combinatorial problem is the **Relative Gain Array** (RGA) of the "big" transfer matrix \\(G\_\text{all}\\) with all candidates inputs and outputs included:
+
+\begin{equation}
+ \tcmbox{\Lambda = G\_{\text{all}} \times G\_{\text{all}}^{\dagger^T}}
+\end{equation}
+
+Essentially, one may consider not using those manipulations \\(u\\) corresponding to columns in the RGA where the sum of the elements is much smaller than 1.
+
+Similarly, one may consider not using those outputs \\(v\\) corresponding to rows in the RGA where the sum of the elements is much small than 1.
+
+
+### Control Configuration Elements {#control-configuration-elements}
+
+We now assume that the measurements, manipulations and controlled outputs are fixed.
+The available synthesis theories presented in this book result in a _multivariable controller_ \\(K\\) which connects all available measurements \\(v\\) with all available manipulations \\(u\\):
+
+\begin{equation\*}
+ u = K v
+\end{equation\*}
+
+However, such a "big" controller may not be desirable.
+
+
+
+We define the **control configuration** to be the restrictions imposed on the overall controller \\(K\\) by decomposing it into a set of **local controllers** with predetermined links and with a possibly predetermined design sequence where subcontrollers are designed locally.
+
+
+
+Some elements used to build up a specific control configuration are:
+
+- **Cascade controllers**. The output from one controller is the input to another
+- **Decentralized controllers**. The control system consists of independent feedback controllers which interconnect a subset of the output measurements with a subset of the manipulated inputs.
+ These subsets should not be used by any other controller
+- **Feedforward elements**. Link measured disturbances and manipulated inputs
+- **Decoupling elements**. Link one set of manipulated inputs with another set of manipulated inputs.
+ They are used to improve the performance of decentralized control systems.
+- **Selectors**: used to select for control, depending on the conditions of the system, a subset of the manipulated inputs or a subset of the outputs
+
+In addition to restrictions on the structure of \\(K\\), we may impose restrictions on **in which sequence the subcontrollers are designed**.
+For most decomposed control systems, we design the controllers sequentially, starting with the "fast" or "inner" or "lower-layer" control loops.
+
+The choice of control configuration leads to two different ways of partitioning the control system:
+
+- **Vertical decomposition**. This usually results from a sequential design of the control system
+- **Horizontal decomposition**. This usually involves a set of independent decentralized controllers
+
+Of course, a **performance loss** is inevitable if we decompose the control system.
+For example, if we select a poor configuration at the lower control layer, then this may pose fundamental limitations on the achievable performance (RHP zeros, strong interactions, etc).
+
+
+#### Cascade Control Systems {#cascade-control-systems}
+
+We here use SISO controllers of the form
+
+\begin{equation}
+ u\_i = K\_i(s) (r\_i - y\_i)
+\end{equation}
+
+where \\(K\_i(s)\\) is a scalar.
+Then when a SISO control loop is closed, we lose the input \\(u\_i\\) as a degree-of-freedom but the reference \\(r\_i\\) becomes a new degree-of-freedom.
+
+A cascade control structure results when either of the following two situations arise:
+
+- The reference \\(r\_i\\) is an output from another controller.
+ This is the **conventional cascade control** ([ 7](#org-target--fig-cascade-extra-meas))
+- The "measurement" \\(y\_i\\) is an output from another controller.
+ This is referred to as **input resetting** ([ 7](#org-target--fig-cascade-extra-input))
+
+
+
+
+|  |  |
+|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
+| Extra measurements \\(y\_2\\) | Extra inputs \\(u\_2\\) |
+
+
+#### Cascade Control: Extra Measurements {#cascade-control-extra-measurements}
+
+Let \\(u\\) be the manipulated input, \\(y\_1\\) the controlled outputs and \\(y\_2\\) the extra measurement.
+In many cases, we may use \\(y\_2\\) to provide **local disturbance rejection**, **linearization**, or to **reduce the effect of measurement noise**.
+For example, velocity feedback is frequently used in mechanical systems.
+
+
+##### Centralized (parallel) implementation {#centralized--parallel--implementation}
+
+A centralized implementation where \\(K\\) is a 2-inputs-1-output controller may be written
+
+\begin{align\*}
+ u &= K(s)(r - y) \\\\
+ u &= K\_{11}(s)(r\_1 - y\_1) + K\_{12}(s)(r\_2 - y\_2)
+\end{align\*}
+
+where in most cases \\(r\_2 = 0\\) since we do not have a degree-of-freedom to control \\(y\_2\\).
+
+
+##### Cascade implementation {#cascade-implementation}
+
+To obtain an implementation with two SISO controllers, we may cascade the controllers as illustrated in [ 7](#org-target--fig-cascade-extra-meas):
+
+\begin{align\*}
+ r\_2 &= K\_1(s)(r\_1 - y\_1) \\\\
+ u\_2 &= K\_2(s)(r\_2 - y\_2),\ r\_2 = \hat{u}\_1
+\end{align\*}
+
+Note that the output \\(r\_2\\) from the slower primary controller \\(K\_1\\) is not a manipulated plant input, but rather the reference input to the faster secondary controller \\(K\_2\\).
+Cascades based on measuring the actual manipulated variable (\\(y\_2 = u\_m\\)) are commonly used to **reduce uncertainty and non-linearity at the plant input**.
+
+In the general case ([ 7](#org-target--fig-cascade-extra-meas)) \\(y\_1\\) and \\(y\_2\\) are not directly related to each other, and this is sometimes referred to as _parallel cascade control_.
+However, it is common to encounter the situation in [Figure 59](#figure--fig:cascade-control) where the primary output \\(y\_1\\) depends directly on \\(y\_2\\) which is a special case of [ 7](#org-target--fig-cascade-extra-meas).
+
+
+
+With reference to the special (but common) case of cascade control shown in [Figure 59](#figure--fig:cascade-control), the use of **extra measurements** is useful under the following circumstances:
+
+- The disturbance \\(d\_2\\) is significant and \\(G\_1\\) is non-minimum phase.
+ If \\(G\_1\\) is minimum phase, the input-output controllability of \\(G\_2\\) and \\(G\_1 G\_2\\) are the same and there is no fundamental advantage in measuring \\(y\_2\\)
+- The plant \\(G\_2\\) has considerable uncertainty associated with it and the inner loop serves to remove the uncertainty.
+ The inner loop \\(L\_2 = G\_2 K\_2\\) removes the uncertainty if it is sufficiently fast and yields a transfer function \\((I + L\_2)^{-1} L\_2\\) close to \\(I\\) at frequencies where \\(K\_1\\) is active.
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_cascade_control.png" caption="Figure 59: Common case of cascade control where the primary output \\(y\_1\\) depends directly on the extra measurement \\(y\_2\\)" >}}
+
+In terms of design, it is recommended to first design \\(K\_2\\) to minimize the effect of \\(d\_2\\) on \\(y\_1\\) and then to design \\(K\_1\\) to minimize the effect of \\(d\_1\\) on \\(y\_1\\).
+
+
+#### Cascade Control: Extra Inputs {#cascade-control-extra-inputs}
+
+In some cases we have more manipulated inputs than controlled outputs.
+These may be used to improve control performance.
+
+
+##### Centralized implementation {#centralized-implementation}
+
+A centralized implementation where \\(K\\) is a 1-input-2-outputs controller may be written
+
+\begin{equation\*}
+ u\_1 = K\_{11}(s)(r-y); \quad u\_2 = K\_{21}(s)(r-y)
+\end{equation\*}
+
+Here two inputs are used to control one output.
+We usually let \\(K\_{11}\\) have integral control whereas \\(K\_{21}\\) does not.
+Then \\(u\_2(t)\\) will only be used for **transient control** and will return to \\(0\\) as \\(t \to \infty\\).
+
+
+##### Cascade implementation {#cascade-implementation}
+
+To obtain an implementation with two SISO controllers we may cascade the controllers as shown in [ 7](#org-target--fig-cascade-extra-input).
+We again let input \\(u\_2\\) take care of the **fast control** and \\(u\_1\\) of the **long-term control**.
+The fast control loop is then
+
+\begin{equation\*}
+ u\_2 = K\_2(s)(r - y)
+\end{equation\*}
+
+The objective of the other slower controller is then to use input \\(u\_1\\) to reset input \\(u\_2\\) to its desired value \\(r\_{u\_2}\\):
+
+\begin{equation\*}
+ u\_1 = K\_1(s)(r\_{u\_2} - y\_1), \ y\_1 = u\_2
+\end{equation\*}
+
+and we see that the output from the fast controller \\(K\_2\\) is the "measurement" for the slow controller \\(K\_1\\).
+
+The cascade implementation again has the **advantage of decoupling the design of the two controllers**.
+It also shows more clearly that \\(r\_{u\_2}\\), the reference for \\(u\_2\\), may be used as a degree-of-freedom at higher layers in the control system.
+
+
+
+Consider the system in [Figure 60](#figure--fig:cascade-control-two-layers) with two manipulated inputs (\\(u\_2\\) and \\(u\_3\\)), one controlled output (\\(y\_1\\) which should be close to \\(r\_1\\)) and two measured variables (\\(y\_1\\) and \\(y\_2\\)).
+Input \\(u\_2\\) has a more direct effect on \\(y\_1\\) than does input \\(u\_3\\) (there is a large delay in \\(G\_3(s)\\)).
+Input \\(u\_2\\) should only be used for transient control as it is desirable that it remains close to \\(r\_3 = r\_{u\_2}\\).
+The extra measurement \\(y\_2\\) is closer than \\(y\_1\\) to the input \\(u\_2\\) and may be useful for detecting disturbances affecting \\(G\_1\\).
+
+Controller \\(K\_1\\) controls the primary output \\(y\_1\\) at its reference \\(r\_1\\) by adjusting the "input" \\(\hat{u}\_1\\), which is the reference value for \\(y\_2\\).
+Controller \\(K\_2\\) controls the secondary output \\(y\_2\\) using input \\(u\_2\\).
+Finally, controller \\(K\_3\\) manipulates \\(u\_3\\) slowly in order to reset input \\(u\_2\\) to its desired value \\(r\_3\\).
+We would probably tune the three controllers in the order \\(K\_2\\), \\(K\_3\\), and \\(K\_1\\).
+
+
+
+
+
+{{< figure src="/ox-hugo/skogestad07_cascade_control_two_layers.png" caption="Figure 60: Control configuration with two layers of cascade control" >}}
+
+
+#### Selectors {#selectors}
+
+
+##### Slip-range control for extra input {#slip-range-control-for-extra-input}
+
+Sometimes the input constraints make it necessary to add a manipulated input.
+In this case the control range is often split such that, for example, \\(u\_1\\) is used for control when \\(y \in [y\_\text{min}, y\_1]\\) and \\(u\_2\\) is used when \\(y \in [y\_1, y\_\text{max}]\\).
+
+
+##### Selector for too few inputs {#selector-for-too-few-inputs}
+
+A completely different situation occurs if there are fewer inputs than outputs.
+In such case, we cannot control all the outputs independently, so we either need to control all the outputs in some average manner, or we need to make a choice about which outputs are the most important to control.
+Selectors are often used for the latter option.
+
+
+#### Why use Cascade and Decentralized Control? {#why-use-cascade-and-decentralized-control}
+
+Decomposed control configuration can easily become quite complex and difficult to maintain and understand.
+It may therefore be both simpler and better in terms of control performance to set up the controller design problem as an optimization problem and let the computer do the job, resulting in a **centralized multivariable controller**.
+
+However, there are a **number of reason why cascade and decentralized control are used in practice**.
+The most important one is the **cost associated with obtaining good plant models**, which are a prerequisite for applying multivariable control.
+Since cascade and decentralized control systems depend more strongly on feedback rather than models as their source of information, it is usually more important (relative to centralized multivariable control) that the fast control loops be tuned to respond quickly.
+
+The cascade and decentralized control are often easier to understand, their tuning parameters have a direct and "localized" effect, and they tend to be **less sensitive to uncertainty**.
+
+The **main challenge** is then to find a control configuration which allows the controllers to be tuned independently based on a minimum of model information.
+To be able to tune the controllers independently, we must require that the loops interact only to a limited extent.
+For example, one desirable property is that the steady-state gain from \\(u\_i\\) to \\(y\_i\\) in an "inner" loop does not change too much as outer loops are closed.
+
+
+### Hierarchical and Partial Control {#hierarchical-and-partial-control}
+
+
+#### Partial Control {#partial-control}
+
+
+
+Partial control involves controlling only a subset of the outputs for which there is a control objective.
+
+
+
+We divide the outputs \\(y\\) into two classes:
+
+- \\(y\_1\\) - (temporarily) uncontrolled output
+- \\(y\_2\\) - (locally) measured and controlled output
+
+We also subdivide the available manipulated inputs \\(u\\):
+
+- \\(u\_2\\) - inputs used for controlling \\(y\_2\\)
+- \\(u\_1\\) - remaining inputs
+
+Four applications of partial control are:
+
+1. **Sequential design on decentralized controllers.**
+ Both \\(y\_1\\) and \\(y\_2\\) have an associated control objective.
+ First, a controller \\(K\_2\\) is designed to control \\(y\_2\\).
+ Then, a controlled \\(K\_1\\) may be designed for the remaining outputs.
+2. **Sequential design of conventional cascade control.**
+ The outputs \\(y\_2\\) are additional measured variables which are not important variables in themselves.
+ The reason for controlling \\(y\_2\\) is to improve the control of \\(y\_1\\).
+ The references \\(r\_2\\) are used as degrees-of-freedom for controlling \\(y\_1\\).
+3. **"true" partial control.**
+ Both \\(y\_1\\) and \\(y\_2\\) have an associated control objective.
+ We consider whether by controlling only the subset \\(y\_2\\) we can indirectly achieve acceptable control of \\(y\_1\\).
+4. **Indirect control.**
+ 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\\).
+
+The table [Table 8](#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:
+
+- The effect of disturbances on \\(y\_1\\) to be small (when \\(y\_2\\) is controlled)
+- The control of \\(y\_2\\) using \\(u\_2\\) to be (dynamically) easy
+
+
+
+
+| Control | Meas. and control of \\(y\_1\\)? | Control objective for \\(y\_2\\)? |
+|---------------------|----------------------------------|-----------------------------------|
+| Sequ. decentralized | Yes | Yes |
+| Sequ. cascade | Yes | No |
+| "True" partial | No | Yes |
+| Indirect | No | No |
+
+By partitioning the inputs and outputs, the overall model \\(y = G u\\) can be written
+
+\begin{equation} \label{eq:partial\_control\_partitioning}
+ \begin{aligned}
+ y\_1 &= G\_{11} u\_1 + G\_{12} u\_2 + G\_{d1} d\\\\
+ y\_2 &= G\_{21} u\_1 + G\_{22} u\_2 + G\_{d2} d
+ \end{aligned}
+\end{equation}
+
+Assume now that feedback control \\(u\_2 = K\_2(r\_2 - y\_2 - n\_2)\\) is used for the "secondary" subsystem involving \\(u\_2\\) and \\(y\_2\\) ([Figure 61](#figure--fig:partial-control)).
+We get:
+
+\begin{equation} \label{eq:partial\_control}
+ \begin{aligned}
+ y\_1 = &(G\_{11} - G\_{12}K\_2(I + G\_{22}K\_2)^{-1}G\_{21})u\_1 \\\\
+ & + (G\_{d1} - G\_{12}K\_2(I + G\_{22}K\_2)^{-1}G\_{d2})d \\\\
+ & + G\_{12} K\_2 (I + G\_{22}K\_2)^{-1}(r\_2 - n\_2)
+ \end{aligned}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/skogestad07_partial_control.png" caption="Figure 61: Partial Control" >}}
+
+
+##### Tight control of \\(y\_2\\) {#tight-control-of-y-2}
+
+In some cases, we can assume that the control of \\(y\_2\\) is fast compared to the control of \\(y\_1\\) so we may let \\(K\_2 \to \infty\\) to get:
+
+\begin{equation\*}
+ u\_2 = -G\_{22}^{-1} G\_{d2} d - G\_{22}^{-1} G\_{21} u\_1 + G\_{22}^{-1} y\_2
+\end{equation\*}
+
+The dynamics of the system becomes:
+
+\begin{equation} \label{eq:tight\_control\_y2}
+ \begin{aligned}
+ y\_1 = &\underbrace{(G\_{11} - G\_{12} G\_{22}^{-1} G\_{21})}\_{\triangleq P\_u} u\_1 \\\\
+ & + \underbrace{(G\_{d1} - G\_{12} G\_{22}^{-1} G\_{d2})}\_{\triangleq P\_d} d + \underbrace{G\_{12} G\_{22}^{-1}}\_{\triangleq P\_r} \underbrace{(r\_2 - e\_2)}\_{y\_2}
+ \end{aligned}
+\end{equation}
+
+where
+
+- \\(P\_d\\) is called the **partial disturbance gain**, which is the disturbance gain for a system under perfect partial control
+- \\(P\_u\\) is the effect of \\(u\_1\\) on \\(y\_1\\) with \\(y\_2\\) perfectly controlled
+
+The obtained dynamics is independent of \\(K\_2\\), but this only applies at frequencies where \\(y\_2\\) is tightly controlled.
+
+
+#### Hierarchical Control and Sequential Design {#hierarchical-control-and-sequential-design}
+
+A **hierarchical control system** results when we design the subcontrollers in a **sequential manner**, usually **starting with the fast loops**.
+This means that the controller at some higher layer in the hierarchy is designed based on a partially controlled plant.
+
+The idea is to first implement a local lower-layer control system for controlling the outputs \\(y\_2\\).
+Next, with this lower-layer in place, we design a controller \\(K\_1\\) to control \\(y\_1\\).
+
+The objectives for this hierarchical decomposition are:
+
+- to allow for simple or even on-line tuning of \\(K\_2\\)
+- to allow the use of longer sampling intervals for \\(K\_1\\)
+- to allow simple models when designing \\(K\_1\\)
+- to "stabilize" the plant using \\(K\_2\\) such that it is amenable to manual control
+
+
+
+The selection of \\(u\_2\\) and \\(y\_2\\) for use in the lower-layer control system can be done with the following criteria:
+
+- The lower-layer must quickly implement the setpoints computed by the higher layers, that is, the input-output controllability of the subsystem involving the use of \\(u\_2\\) to control \\(y\_2\\) should be good (consider \\(G\_{22}\\) and \\(G\_{d2}\\))
+- The control of \\(y\_2\\) using \\(u\_2\\) should provide local disturbance rejection, that is, it should minimize the effect of disturbances on \\(y\_1\\)
+- The control of \\(y\_2\\) using \\(u\_2\\) should not impose unnecessary control limitations (RHP-zero, ill-conditioning, etc.) on the remaining control problem which involves using \\(u\_1\\) to control \\(y\_1\\)
+
+
+
+
+##### Sequential design of cascade control systems {#sequential-design-of-cascade-control-systems}
+
+Consider the conventional cascade control system in [ 7](#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\\).
+
+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}\\|\\).
+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}\\).
+
+
+#### "True" Partial Control {#true-partial-control}
+
+We here consider the case where we attempt to leave a set of primary outputs \\(y\_1\\) uncontrolled.
+This may be possible in cases where the outputs are correlated such that controlling the outputs \\(y\_2\\) indirectly gives acceptable control of \\(y\_1\\).
+
+
+
+A set of outputs \\(y\_1\\) may be left uncontrolled only if the effects of all disturbances (including \\(r\_2\\)) on \\(y\_1\\), as expressed by the elements in the corresponding partial disturbance gain matrix \\(P\_d\\) are less than \\(1\\) in magnitude at all frequencies.
+
+
+
+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}.
+
+
+#### Measurement Selection for Indirect Control {#measurement-selection-for-indirect-control}
+
+Assume the overall goal is to keep some variable \\(y\_1\\) at a given value \\(r\_1\\), e.g. our objective is to minimize \\(J = \\|y\_1 - r\_1\\|\\).
+We assume that we cannot measure \\(y\_1\\), and instead we attempt to achieve our goal by controlling \\(y\_2\\) at a constant value \\(r\_2\\).
+For small changes, we may assume linearity and write:
+
+\begin{align\*}
+ y\_1 &= G\_1 u + G\_{d1} d\\\\
+ y\_2 &= G\_2 u + G\_{d2} d
+\end{align\*}
+
+With feedback control of \\(y\_2\\) we get \\(y\_2 = r\_2 + e\_2\\) where \\(e\_2\\) is the control error.
+From the above two equations, we obtain
+
+\begin{equation\*}
+ y\_1 = (G\_{d1} - G\_1 G\_2^{-1} G\_{d2})d + G\_1 G\_2^{-1} (r\_2 + e\_2)
+\end{equation\*}
+
+With \\(e\_2 = 0\\) and \\(d = 0\\) this gives \\(y\_1 = G\_1 G\_2^{-1} r\_2\\), so \\(r\_2\\) must be chosen such that
+
+\begin{equation\*}
+ r\_1 = G\_1 G\_2^{-1} r\_2
+\end{equation\*}
+
+The control error in the primary output is then
+
+\begin{equation}
+ y\_1 - r\_1 = \underbrace{(G\_{d1} - G\_1 G\_2^{-1} G\_{d2})}\_{P\_d} d + \underbrace{G\_1 G\_2^{-1}}\_{P\_r} e\_2
+\end{equation}
+
+To minimize \\(J\\), we should therefore select controlled outputs such that \\(\\|P\_d d\\|\\) and \\(\\|P\_r e\_2\\|\\) are small.
+Note that \\(P\_d\\) depends on the scaling of \\(d\\) and \\(y\_1\\).
+Also the magnitude of \\(e\_2\\) depends on the choice of outputs \\(y\_2\\).
+
+
+
+**Selecting Controlled Outputs \\(y\_2\\)**:
+
+Scale the disturbances \\(d\\) to be of magnitude 1, and scale the outputs \\(y\_2\\) so that the expected control error \\(e\_2\\) (measurement noise) is of magnitude 1 for each outputs.
+Then to minimize the control error for the primary output, \\(J = \\|y\_1 - r\_1\\|\\), we should select sets of controlled outputs which minimizes \\(\\|[ P\_d \ P\_r]\\|\\).
+
+
+
+
+### Decentralized Feedback Control {#decentralized-feedback-control}
+
+In this section, \\(G(s)\\) is a square plant which is to be controlled using a diagonal controller ([Figure 62](#figure--fig:decentralized-diagonal-control)).
+
+
+
+{{< figure src="/ox-hugo/skogestad07_decentralized_diagonal_control.png" caption="Figure 62: Decentralized diagonal control of a \\(2 \times 2\\) plant" >}}
+
+The design of **decentralized diagonal control systems** involves two steps:
+
+1. The choice of pairing (control configuration selection)
+2. The design of each controller \\(k\_i(s)\\)
+
+\begin{equation\*}
+ K(s) = \text{diag}\\{k\_i(s)\\} = \begin{bmatrix}
+ k\_1(s) & & & \\\\
+ & k\_2(s) & & \\\\
+ & & \ddots & \\\\
+ & & & k\_m(s)
+\end{bmatrix}
+\end{equation\*}
+
+
+#### Notations for decentralized diagonal control {#notations-for-decentralized-diagonal-control}
+
+\\(G(s)\\) denotes a square \\(m \times m\\) plant with elements \\(g\_{ij}\\).
+\\(G^{ij}(s)\\) denotes the remaining \\((m-1) \times (m-1)\\) plant obtained by removing row \\(i\\) and column \\(j\\) in \\(G(s)\\).
+We introduce:
+
+\begin{equation\*}
+ \tilde{G} \triangleq \text{diag}\\{g\_{ii}\\} = \begin{bmatrix}
+ g\_{11} & & & \\\\
+ & g\_{22} & & \\\\
+ & & \ddots & \\\\
+ & & & g\_{mm}
+\end{bmatrix}
+\end{equation\*}
+
+The loop transfer function in loop \\(i\\) is denoted \\(L\_i = g\_{ii} k\_i\\).
+
+
+#### RGA as a Measure of the Interaction for Decentralized Control {#rga-as-a-measure-of-the-interaction-for-decentralized-control}
+
+Let \\(u\_j\\) and \\(y\_i\\) denote a particular input and output for the multivariable plant \\(G(s)\\) and assume that our task is to use \\(u\_j\\) to control \\(y\_i\\).
+There are two extreme cases:
+
+- **Other loops open**: \\(u\_k = 0, \forall k \neq j\\)
+- **Other loops closed**: \\(y\_k = 0, \forall k \neq i\\).
+ It is assumed that the other loop are closed with perfect control which is a good approximation at frequencies within the bandwidth of each loop
+
+We now evaluate the effect \\(\partial y\_i / \partial u\_j\\) for the two cases:
+
+\begin{align}
+ & \left( \frac{\partial y\_i}{\partial u\_j} \right)\_{u\_k = 0, k \neq j} = g\_{ij} = [G]\_{ij}\\\\
+ & \left( \frac{\partial y\_i}{\partial u\_j} \right)\_{y\_k = 0, k \neq i} \triangleq \hat{g}\_{ij} = 1/[G^{-1}]\_{ji}
+\end{align}
+
+The ratio between the gains corresponding the two extreme cases is a useful **measure of interactions** and is defined as the \\(ij\text{'th}\\) **relative gain**:
+
+\begin{equation}
+ \tcmbox{\lambda\_{ij} \triangleq \frac{g\_{ij}}{\hat{g}\_{ij}} = [G]\_{ij}[G^{-1}]\_{ji}}
+\end{equation}
+
+The **Relative Gain Array** (RGA) is the corresponding matrix of relative gains:
+
+\begin{equation}
+ \tcmbox{\Lambda(G) = G \times (G^{-1})^T}
+\end{equation}
+
+where \\(\times\\) denotes element-by-element multiplication.
+
+
+
+Intuitively, we would like to pair variables \\(u\_j\\) and \\(y\_i\\) so that \\(\lambda\_{ij}\\) is close to \\(1\\), because this means that the gain from \\(u\_j\\) to \\(y\_i\\) is unaffected by closing the other loops.
+More precisely, we would like to pair such that the rearranged system, with the pairings along the diagonal, has a RGA matrix close to identity.
+
+
+
+
+#### Factorization of Sensitivity Function {#factorization-of-sensitivity-function}
+
+The magnitude of the off-diagonal elements in \\(G\\) (the interactions) relative to its diagonal elements are given by the matrix
+
+\begin{equation}
+ E \triangleq (G - \tilde{G})\tilde{G}^{-1}
+\end{equation}
+
+An important relationship for decentralized control is:
+
+\begin{equation}
+ \tcmbox{\underbrace{(I + G K)}\_{\text{overall}} = \underbrace{(I + E \tilde{T})}\_{\text{interactions}} \quad \underbrace{(I + \tilde{G} K)}\_{\text{individual loops}}}
+\end{equation}
+
+or equivalently in terms of the sensitivity function:
+
+\begin{equation} \label{eq:S\_factorization}
+ \tcmbox{S = \tilde{S} (I + E \tilde{T})^{-1}}
+\end{equation}
+
+with
+
+\begin{align\*}
+ \tilde{S} &\triangleq (I + \tilde{G}K)^{-1} = \text{diag}\left\\{\frac{1}{1 + g\_{ii} k\_i}\right\\} \\\\
+ \tilde{T} &= I - \tilde{S}
+\end{align\*}
+
+which contain the sensitivity and complementary sensitivity functions for the individual loops.
+Note that \\(\tilde{S}\\) is not equal to the matrix of diagonal elements of \\(S\\).
+
+
+#### Stability of Decentralized Control Systems {#stability-of-decentralized-control-systems}
+
+Consider a \\(m \times m\\) plant with single-loop controllers.
+There are \\(m!\\) alternative pairings possible.
+Thus tools are needed for quickly evaluating alternative pairings.
+In this section, we first derive **sufficient conditions for stability** which may be used to select promising pairings.
+We then derive **necessary conditions for stability** which may be used to eliminate undesirable pairings.
+
+
+##### Sufficient conditions for stability {#sufficient-conditions-for-stability}
+
+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).
+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
+
+\begin{equation}
+ \rho(E\tilde{T}(j\omega)) < 1, \forall\omega
+\end{equation}
+
+**Sufficient conditions in terms of \\(E\\)**.
+Assume \\(G\\) is stable and that the individual loops are stable (\\(\tilde{T}\\) is stable).
+The least conservative approach is to use \\(\rho(E\tilde{T}) \leq \mu(E) \maxsv(\tilde{T})\\).
+Then the entire system is closed-loop stable (\\(T\\) is stable) if
+
+\begin{equation} \label{eq:decent\_contr\_cond\_stability}
+ \tcmbox{\maxsv(\tilde{T}) = \max\_i |\tilde{t}\_i| < 1 / \mu(E) \quad \forall\omega}
+\end{equation}
+
+\\(\mu(E)\\) is called the **structured singular value interaction measure**, and is computed with respect to the diagonal structure of \\(\tilde{T}\\) where we may view \\(\tilde{T}\\) as the "design uncertainty".
+
+We usually would like to use integral action in the loops, that is we want \\(\tilde{T} \approx I\\) at low frequencies, i.e. \\(\maxsv(\tilde{T}) \approx 1\\).
+Thus, we prefer pairings for which we have \\(\mu(E) < 1\\) at low frequencies where we have tight control.
+This ensures a "generalized diagonal dominance".
+
+**Sufficient conditions in terms of RGA**.
+Suppose the plant \\(G(s)\\) is stable. If the RGA-matrix \\(\Lambda(G) = I\ \forall\omega\\) (which can only arise for a triangular plant \\(G(s)\\)), then stability of each of the individual loops implies stability of the entire system.
+
+In most cases, it is sufficient for overall stability to require that \\(G(j\omega)\\) is close to triangular (or \\(\Lambda(G) \approx I\\)) at crossover frequencies.
+This gives the "first pairing rule".
+
+
+
+**Pairing Rule 1**:
+
+To achieve stability with decentralized control, prefer pairings such that at frequencies \\(\omega\\) around crossover, the rearranged matrix \\(G(j\omega)\\) (with the paired elements along the diagonal) is close to triangular.
+This is equivalent to requiring \\(\Lambda(G(j\omega)) \approx I\\), i.e. the RGA-number \\(\\|\Lambda(G(j\omega)) - I\\|\_\text{sum}\\) should be small.
+
+
+
+
+##### Necessary steady-state conditions for stability {#necessary-steady-state-conditions-for-stability}
+
+A desirable property of a decentralized control system is that it has **integrity**, i.e. the closed loop system should remain stable as subsystem controllers are brought in and out of service.
+Mathematically, the system possesses integrity if it remains stable when the controller \\(K\\) is replace by \\(\mathbb{E}K\\) where \\(\mathbb{E} = \text{diag}\\{\epsilon\_i\\}, \ \epsilon\_i=0,1\\).
+
+An even stronger requirement is that the system remains stable as the gain in various loops are reduced: \\(0 \le \epsilon\_i \le 1\\).
+
+
+
+The plant \\(G(s)\\) (corresponding to a given pairing with the paired elements along its diagonal) is **Decentralized Integral Controllability** (DIC) if there exists a stabilizing decentralized controller with **integral action in each loop** such that each individual loop may be detuned independently by a factor \\(\epsilon\_1\\) (\\(0 \le \epsilon\_i \le 1\\)) without introducing instability.
+
+
+
+**Steady-State RGA and DIC**.
+Consider a stable square plant \\(G\\) and a diagonal controller \\(K\\) with integral action in all elements, and assume that the loop transfer function \\(GK\\) is strictly proper.
+If a pairing of outputs and manipulated inputs corresponds to a **negative steady-state relative gain**, then the closed-loop system has at least one of the following properties:
+
+- The overall closed-loop system is unstable
+- The loop with the negative relative gain is unstable by itself
+- The closed-loop system is unstable if the loop with the negative relative gain is opened
+
+This can be summarized as follows:
+
+
+
+\begin{equation} \label{eq:decent\_contr\_necessary\_cond\_stability}
+\begin{aligned}
+ &\text{A stable (reordered) plant } G(s)\\\\
+ &\text{is DIC only if } \lambda\_{ii}(0) \ge 0 \text{ for all } i
+\end{aligned}
+\end{equation}
+
+
+
+
+#### The RGA and RHP-zeros: Further reasons for not pairing on negative RGA elements {#the-rga-and-rhp-zeros-further-reasons-for-not-pairing-on-negative-rga-elements}
+
+With decentralized control, we usually design and implement the controller by tuning and closing one loop at a time in a sequential manner.
+Assume that we pair on a negative steady-state RGA-element, \\(\lambda\_{ij}(0) < 0\\), assume that \\(\lambda\_{ij}(\infty)\\) is positive, and assume that the element \\(g\_{ij}\\) has no RHP-zero.
+We have the following implications:
+
+- If we start by closing the loop involving input \\(u\_i\\) and \\(y\_j\\), then we will get a RHP-zero in \\(G^{ij}(s)\\) which will limit the performance in the other outputs
+- If we end by closing this loop, then we will get a RHP-zero in \\(\hat{g}\_{ij}(s)\\) which will limit the performance in output \\(y\_i\\)
+
+
+
+**Pairing Rule 2**:
+
+For a stable plant, avoid pairings that corresponds to negative steady-state RGA-elements \\(\lambda\_{ij}(0) < 0\\)
+
+
+
+
+
+\\(3 \times 3\\) plant:
+
+\begin{align\*}
+G(0) &= \begin{bmatrix}
+ 10.2 & 5.6 & 1.4 \\\\
+ 15.5 & -8.4 & -0.7 \\\\
+ 18.1 & 0.4 & 1.8
+\end{bmatrix} \\\\
+\Lambda(0) &= \begin{bmatrix}
+ 0.96 & 1.45 & -1.41 \\\\
+ 0.94 & -0.37 & 0.43 \\\\
+ -0.90 & -0.07 & 1.98
+\end{bmatrix}
+\end{align\*}
+
+For a \\(3 \times 3\\) plant there are 6 alternative pairings.
+From the steady state RGA, we see that there is only one positive element in columns 2, and only positive element in row 3, and therefore there is only on possible pairing if we require DIC:
+
+\begin{equation\*}
+ u\_1 \leftrightarrow y\_2,\ u\_2 \leftrightarrow y\_1,\ u\_3 \leftrightarrow y\_3
+\end{equation\*}
+
+
+
+
+
+\begin{align\*}
+G(s) &= \frac{-s + 1}{(5 s + 1)^2} \begin{bmatrix}
+ 1 & 4 & -26 \\\\
+ 6.2 & 1 & -26 \\\\
+ 1 & 1 & 1
+\end{bmatrix}\\\\
+\Lambda(G) &= \begin{bmatrix}
+ 1 & 5 & -5 \\\\
+ -5 & 1 & 5 \\\\
+ 5 & -5 & 1
+\end{bmatrix}
+\end{align\*}
+
+Only two of the six possible pairings gives positive steady-state RGA-elements: the diagonal pairing on all \\(\lambda\_{ii} = 1\\) or the pairing on all \\(\lambda\_{ii} = 5\\).
+Intuitively, one may expect pairing with \\(\lambda\_{ii} = 1\\) since it corresponds to pairing on RGA-elements equal to \\(1\\).
+However, the RGA matrix is far from identify, and the RGA-number \\(\\| \Lambda - I \\|\_\text{sum} = 30\\) for both alternative.
+Thus none of the two alternatives satisfy _Pairing Rule 1_, and decentralized control should not be used for this plant.
+
+
+
+
+#### Performance of Decentralized Control Systems {#performance-of-decentralized-control-systems}
+
+To study performance, we use the following factorization
+
+\begin{equation}
+ S = (I + \tilde{S}(\Gamma - I)^{-1}) \tilde{S} \Gamma
+\end{equation}
+
+where \\(\Gamma\\) is the **Performance Relative Gain Array** (PRGA)
+
+\begin{equation}
+ \tcmbox{\Gamma(s) \triangleq \tilde{G}(s) G^{-1}(s)}
+\end{equation}
+
+which is a scaled inverse of the plant.
+
+At frequencies where feedback is effective (\\(\tilde{S} \approx 0\\)), \\(S \approx \tilde{S} \Gamma\\) which shows that \\(\Gamma\\) is important when evaluating performance with decentralized control.
+
+Note that the diagonal elements of the PRGA-matrix are equal to the diagonal elements of the RGA and that the off-diagonal elements of the PRGA depend on the relative scaling on the outputs which is not the case for the RGA.
+
+We will also use the related **Closed-Loop Disturbance Gain** (CLDG) matrix:
+
+\begin{equation}
+ \tcmbox{\tilde{G}\_d(s) \triangleq \Gamma(s)G\_d(s) = \tilde{G}(s) G^{-1}(s) G\_d(s)}
+\end{equation}
+
+which depends on both output and disturbance scaling.
+
+Suppose the system has been scaled such that:
+
+- Each disturbance magnitude is less than \\(1\\), \\(|d\_k| < 1\\)
+- Each reference change is less than the corresponding diagonal element in \\(R\\), \\(|r\_j| < R\_j\\)
+- For each output the acceptable control error is less than \\(1\\), \\(|e\_i| < 1\\)
+
+
+##### Single disturbance {#single-disturbance}
+
+Consider a single disturbance, in which case \\(G\_d\\) is a vector, and let \\(g\_{di}\\) denote the \\(i\text{'th}\\) element of \\(G\_d\\).
+Let \\(L\_i = g\_{ii} k\_i\\) denote the loop transfer function in loop \\(i\\).
+Consider frequencies where feedback is effective so \\(\tilde{S}\Gamma\\) is small.
+Then for **acceptable disturbance rejection** (\\(|e\_i| < 1\\)) we must with decentralized control required for each loop \\(i\\)
+
+\begin{equation} \label{eq:decent\_contr\_cond\_perf\_dist}
+ \tcmbox{|1 + L\_i| > |\tilde{g}\_{di}| \quad \forall i}
+\end{equation}
+
+which is the same as the SISO-condition except that \\(G\_d\\) is replaced by the CLDG.
+In words, \\(\tilde{g}\_{di}\\) gives the "apparent" disturbance gain as seen from the loop \\(i\\) when the system is controlled using decentralized control.
+
+
+##### Single reference change {#single-reference-change}
+
+Consider a change in reference for output \\(j\\) of magnitude \\(R\_j\\).
+Consider frequencies where feedback is effective.
+Then for **acceptable reference tracking** (\\(|e\_i|<1\\)) we must require for each loop \\(i\\)
+
+\begin{equation} \label{eq:decent\_contr\_cond\_perf\_ref}
+ \tcmbox{|1 + L\_i| > |\gamma\_{ij}| \cdot |R\_j| \quad \forall i}
+\end{equation}
+
+which is the same as the SISO-condition except for the PRGA-factor \\(|\gamma\_{ij}|\\).
+
+Consequently, for performance it is desirable to have small elements in \\(\Gamma\\), at least at frequencies where feedback is effective.
+However, at frequencies close to crossover, stability is the main issue and since the diagonal elements of the PRGA and RGA are equal, we usually prefer to have \\(\gamma\_{ii}\\) close to \\(1\\).
+
+
+#### Summary: Controllability Analysis for Decentralized Control {#summary-controllability-analysis-for-decentralized-control}
+
+When considering decentralized diagonal control of a plant, one should first check that the plant is controllable with any controller.
+The next step is to compute the RGA matrix as a function of frequency, and to determine if one can find a good set of input-output pairs bearing in mind the following:
+
+1. Prefer pairings which have the **RGA-matrix close to identity at frequencies around crossover**, i.e. the RGA-number \\(\\|\Lambda(j\omega)-I\\|\\) should be small
+2. Avoid a pairing \\(ij\\) with negative steady-state RGA elements \\(\lambda\_{ij}(G(0)\\)
+3. Prefer a pairing \\(ij\\) where \\(g\_{ij}(s)\\) puts minimal restrictions on the achievable bandwidth.
+ Specifically, the frequency \\(\omega\_{uij}\\) where \\(\angle g\_{ij}(j\omega\_{uij}) = \SI{-180}{\degree}\\) should be as large as possible
+ This rule favors parings on variables "close to each other"
+
+When a reasonable choice of pairings have been made, one should rearrange \\(G\\) to have the **paired elements along the diagonal** and perform a **controllability analysis**:
+
+4. Compute the CLDG and PRGA, and plot these as a function of frequency
+5. For systems with many loops, it is best to perform the analysis one loop at the time, that is, for each loop \\(i\\), plot \\(|\tilde{g}\_{dik}|\\) for each disturbance \\(k\\) and plot \\(|\gamma\_{ij}|\\) for each reference \\(j\\).
+ For performance, we need \\(|1 + L\_i|\\) to be larger than each of these:
+
+ \begin{equation} \label{eq:decent\_contr\_one\_loop}
+ |1 + L\_i| > \max\_{k,j}\\{|\tilde{g}\_{dik}|, |\gamma\_{ij}|\\}
+ \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.
+ 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}\\)
+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.
+ Equivalently, one may for each loop \\(i\\), plot \\(|g\_{ii}|\\) and the requirement is then that
+
+ \begin{equation} \label{eq:decent\_contr\_dist\_rejec\_cond}
+ |g\_{ii}| > |\tilde{g}\_{dik}| \quad \forall k
+ \end{equation}
+
+ at frequencies where \\(|\tilde{g}\_{dik}|\\) is larger than \\(1\\).
+ This provides a direct generalization of the requirement \\(|G| > |G\_d|\\) for SISO systems.
+
+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.
+
+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.
+ This can be used as a basis for designing the controller \\(k\_i(s)\\) for loop \\(i\\)
+
+
+#### Sequential Design of Decentralized Controllers {#sequential-design-of-decentralized-controllers}
+
+Usually the local controllers \\(k\_i(s)\\) are designed locally and then all the loops are closed.
+One problem with this is that the **interactions** may cause the overall system \\(T\\) so be unstable, even though the local loops \\(\tilde{T}\\) are stable.
+This will not happen if the plant is **diagonally dominant**, such that we satisfy, for example \\(\maxsv(\tilde{T}) < 1/\mu(E)\\).
+
+The stability problem is avoided if the controllers are **designed sequentially** when, for example, the bandwidths of the loops are quite different.
+In this case, the outer loops are tuned with the inner loops in place, and each step may be considered as a SISO control problem.
+In particular, overall stability is determined by \\(m\\) SISO stability conditions.
+However, the issue of performance is more complicated because the closing of a loop may cause "disturbances" (interactions) into a previously designed loop.
+The engineer must then go back and redesign a loop that has been designed earlier.
+Thus sequential design may involve many iterations.
+
+
+#### 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.
+
+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.
+
+
+## Model Reduction {#model-reduction}
+
+
+
+
+### Introduction {#introduction}
+
+Modern controller design methods such as \\(\mathcal{H}\_\infty\\) and LQG, produce controllers of order at least equal to that of the plant, and usually higher because of the inclusion of weights.
+These control laws may be **too complex** with regards to **practical implementation** and simpler designs are then sought.
+For this purpose, one can **either reduce the order of the plant model prior to controller design, or reduce the controller in the final stage**.
+
+
+
+**Model Reduction Problem**:
+
+Given a high-order linear time-invariant stable model \\(G\\), find a low-order approximation \\(G\_a\\) such that the infinity (\\(\mathcal{H}\_\infty\\) or \\(\mathcal{L}\_\infty\\)) norm of the difference \\(\\|G - G\_a\\|\_\infty\\) is small.
+
+
+
+By model order, we mean the dimension of the state vector in a minimal realization.
+This is sometimes called the **McMillan degree**.
+
+So far we have only been interested in the infinity (\\(\mathcal{H}\_\infty\\)) norm of stable systems.
+But the error \\(G-G\_a\\) may be unstable and **the definition of the infinity norm needs to be extended to unstable systems**.
+
+
+
+\\(\mathcal{L}\_\infty\\) defines the set of rational functions which have no poles on the imaginary axis, it includes \\(\mathcal{H}\_\infty\\), and its norm (like \\(\mathcal{H}\_\infty\\)) is given by
+
+\begin{equation}
+ \\|G\\|\_\infty = \sup\_\omega \maxsv(G(j\omega))
+\end{equation}
+
+
+
+We will describe three main methods for this problem:
+
+- **Balanced truncation**
+- **Balanced residualization**
+- **Optimal Hankel norm approximation**
+
+Each method gives a **stable approximation** and a **guaranteed bound on the error in the approximation**.
+We will further show how the methods can be employed to reduce the order of an **unstable** model \\(G\\).
+
+All these methods start from a special state-space realization of \\(G\\) referred to as **balanced**.
+We will describe this realization, but first we will show how the techniques of truncation and residualization can be used to remove the high frequency or fast modes of a state-space realization.
+
+
+### Truncation and Residualization {#truncation-and-residualization}
+
+Let \\((A,B,C,D)\\) be a minimal realization of a stable system \\(G(s)\\), and partition the state vector \\(x\\), of dimension \\(n\\), into \\(\begin{bmatrix}x\_1 \cr x\_2\end{bmatrix}\\) where \\(x\_2\\) is the vector of \\(n-k\\) states we wish to remove.
+With approximate partitioning of \\(A\\), \\(B\\) and \\(C\\), the state space equations become
+
+\begin{equation}
+ \begin{aligned}
+ \dot{x}\_1 &= A\_{11} x\_1 + A\_{12} x\_2 + B\_1 u \\\\
+ \dot{x}\_2 &= A\_{21} x\_1 + A\_{22} x\_2 + B\_2 u \\\\
+ y &= C\_1 x\_1 + C\_2 x\_2 + D u
+ \end{aligned}
+\end{equation}
+
+
+#### Truncation {#truncation}
+
+A k-th order truncation of the realization \\(G \triangleq (A, B, C, D)\\) is given by \\(G\_a \triangleq (A\_{11}, B\_1, C\_1, D)\\).
+The truncated model \\(G\_a\\) is equal to \\(G\\) at infinite frequency \\(G(\infty) = G\_a(\infty) = D\\), but apart from this, we cannot say anything for the general case about the relationship between \\(G\\) and \\(G\_a\\).
+
+If however, \\(A\\) is in **Jordan form**, then it is easy to **order the states** so that \\(x\_2\\) corresponds to **high frequency or fast modes**.
+
+
+##### Modal Truncation {#modal-truncation}
+
+For simplicity, assume that \\(A\\) has been diagonalized so that
+
+\begin{align\*}
+ A &= \begin{bmatrix}
+ \lambda\_1 & 0 & \dots & 0 \\\\
+ 0 & \lambda\_2 & \dots & 0 \\\\
+ \vdots & \vdots & \ddots & \vdots \\\\
+ 0 & 0 & \dots & \lambda\_n
+ \end{bmatrix},\quad B = \begin{bmatrix}
+ b\_1^T \\\\
+ b\_2^T \\\\
+ \vdots \\\\
+ b\_n^T
+ \end{bmatrix} \\\\
+ C &= \begin{bmatrix}
+ c\_1, c\_2, \dots, c\_n
+ \end{bmatrix}
+\end{align\*}
+
+Then, if the \\(\lambda\_i\\) are ordered so that \\(|\lambda\_1| < |\lambda\_2| < \dots\\), the fastest modes are removed from the model after truncation.
+The difference between \\(G\\) and \\(G\_a\\) following a k-th order model truncation is given by
+
+\begin{equation\*}
+ G - G\_a = \sum\_{i = k+1}^n \frac{c\_i b\_i^T}{s - \lambda\_i}
+\end{equation\*}
+
+and therefore
+
+\begin{equation}
+ \\| G - G\_a \\|\_\infty \le \sum\_{i = k+1}^n \frac{\maxsv(c\_i b\_i^t)}{|\text{Re}(\lambda\_i)|}
+\end{equation}
+
+It is interesting to note that the error depends on the residues \\(c\_i b\_i^T\\) as well as the \\(\lambda\_i\\).
+The distance of \\(\lambda\_i\\) from the imaginary axis is therefore not a reliable indicator of whether the associated mode should be included in the reduced order model or not.
+
+An advantage of modal truncation is that the poles of the truncated model are a subset of the poles of the original model and therefore **retain any physical interpretation** they might have.
+
+
+#### Residualization {#residualization}
+
+In truncation, we discard all the states and dynamics associated with \\(x\_2\\).
+Suppose that instead of this, we simply set \\(\dot{x}\_2 = 0\\), i.e. we residualize \\(x\_2\\), in the state-space equations.
+One can then solve for \\(x\_2\\) in terms of \\(x\_1\\) and \\(u\\), and back substitution of \\(x\_2\\), then gives
+
+\begin{align\*}
+ \dot{x}\_1 &= (A\_{11} - A\_{12} A\_{22}^{-1} A\_{21}) x\_1 + (B\_1 - A\_{12} A\_{22}^{-1} B\_2) u \\\\
+ y &= (C\_1 - C\_2 A\_{22}^{-1} A\_{21}) x\_1 + (D - C\_2 A\_{22}^{-1} B\_2) u
+\end{align\*}
+
+And let assume \\(A\_{22}\\) is invertible and define
+
+\begin{alignat\*}{3}
+ &A\_r \triangleq A\_{11} - A\_{12}A\_{22}^{-1}A\_{21} & & \quad B\_r \triangleq B\_1 - A\_{12}A\_{22}^{-1}B\_2\\\\
+ &C\_r \triangleq C\_1 - C\_2A\_{22}^{-1}A\_{21} & & \quad D\_r \triangleq D - C\_2A\_{22}^{-1}B\_2
+\end{alignat\*}
+
+The reduced order model \\(G\_a(s) = (A\_r, B\_r, C\_r, D\_r)\\) is called a **residualization** of \\(G(s) = (A, B, C, D)\\).
+Usually \\((A, B, C, D)\\) will have been put into **Jordan form**, with the eigenvalues ordered so that \\(x\_2\\) contains the fast modes.
+
+Model reduction by residualization is then equivalent to singular perturbation approximation, where **the derivatives of the fastest states are allowed to approach zero** with some parameter \\(\epsilon\\).
+
+An important property of residualization is that **it preserves the steady-state gain of the system**:
+
+\begin{equation}
+ \tcmbox{G\_a(0) = G(0)}
+\end{equation}
+
+This should be no surprise since the residualization process sets derivatives to zero, which are zero anyway at steady-state.
+But it is in stark contrast to truncation which retains the system behavior at infinite frequency.
+This contrast between truncation and residualization follows from the simple bilinear relationship \\(s \to \frac{1}{s}\\) which relates the two.
+
+It is clear that **truncation is to be preferred when accuracy is required at high frequencies**, whereas **residualization is better for low frequency modelling**.
+
+Both methods depend to a large extent on the original realization and we have suggested to use of the Jordan form.
+A better realization, with many useful properties, is the **balanced realization**.
+
+
+### Balanced Realization {#balanced-realization}
+
+A balanced realization is an asymptotically stable minimal realization in which the **controllability and observability Gramiams are equal and diagonal**.
+
+Let \\((A,B,C,D)\\) be a minimal realization of a stable, rational transfer function \\(G(s)\\), then \\((A,B,C,D)\\) is called **balanced** if the solutions to be following Lyapunov equations
+
+\begin{align}
+ AP + PA^T + BB^T &= 0 \\\\
+ A^TQ + QA + C^TC &= 0
+\end{align}
+
+are \\(P = Q = \text{diag}(\sigma\_1, \sigma\_2, \dots, \sigma\_n) \triangleq \Sigma\\), where \\(\sigma\_1 \ge \sigma\_2 \ge \dots \ge \sigma\_n > 0\\).
+\\(P\\) and \\(Q\\) are the **controllability and observability Gramiams**, also defined by
+
+\begin{align}
+ P &\triangleq \int\_0^\infty e^{At} B B^T e^{A^Tt} dt \\\\
+ Q &\triangleq \int\_0^\infty e^{A^Tt} C^T C e^{At} dt
+\end{align}
+
+\\(\Sigma\\) is therefore simply referred to as the Gramiam of \\(G(s)\\).
+The \\(\sigma\_i\\) are the **ordered Hankel singular values** of \\(G(s)\\), more generally defined as \\(\sigma\_i \triangleq \lambda\_i^{\frac{1}{2}}(PQ)\\), \\(i = 1, \dots, n\\).
+Notice that \\(\sigma\_1 = \\|G\\|\_H\\) is the Hankel norm of \\(G(s)\\).
+
+In balanced realization the value of each \\(\sigma\_i\\) is associated with a state \\(x\_i\\) of the balanced system.
+
+
+
+The size of \\(\sigma\_i\\) is a relative measure of the contribution that \\(x\_i\\) makes to the input-output behavior of the system.
+
+
+
+Therefore if \\(\sigma\_1 \gg \sigma\_2\\), then the state \\(x\_1\\) affects the input-output behavior much more than \\(x\_2\\), or indeed any other state because of the ordering of the \\(\sigma\_i\\).
+
+After balancing a system, each state is just as controllable as it is observable, and a measure of a state's joint observability and controllability is given by its associated Hankel singular value.
+This property is fundamental to the model reduction methods in the remainder of this chapter which work by removing states having little effect on the system's input-output behavior.
+
+
+### Balanced Truncation and Balanced Residualization {#balanced-truncation-and-balanced-residualization}
+
+Let the balanced realization \\((A,B,C,D)\\) of \\(G(s)\\) and the corresponding \\(\Sigma\\) be partitioned compatibly as
+
+\begin{equation}
+ \begin{aligned}
+ A &= \begin{bmatrix}
+ A\_{11} & A\_{12} \\\\
+ A\_{21} & A\_{22}
+ \end{bmatrix}, \quad B = \begin{bmatrix}
+ B\_1 \\\ B\_2
+ \end{bmatrix} \\\\
+ C &= \begin{bmatrix}
+ C\_1 & C\_2
+ \end{bmatrix}, \quad \Sigma = \begin{bmatrix}
+ \Sigma\_1 & 0 \\\\
+ 0 & \Sigma\_2
+ \end{bmatrix}
+ \end{aligned}
+\end{equation}
+
+where
+
+\begin{align\*}
+ \Sigma\_1 &= \text{diag}(\sigma\_1, \sigma\_2, \dots, \sigma\_k)\\\\
+ \Sigma\_2 &= \text{diag}(\sigma\_{k+1}, \sigma\_{k+2}, \dots, \sigma\_n),\ \sigma\_k > \sigma\_{k+1}
+\end{align\*}
+
+
+##### Balanced Truncation {#balanced-truncation}
+
+The reduced order model given by \\((A\_{11},B\_1,C\_1,D)\\) is called a **balanced truncation** of the full order system \\(G(s)\\).
+The idea of balancing truncation is thus to first make a balanced realization of the system and then to discard the states corresponding to small Hankel singular values.
+
+A balanced truncation is also a balanced realization, and the infinity norm of the error between \\(G(s)\\) and the reduced order system \\(G\_a(s)\\) is bounded by twice the sum of the last \\(n-k\\) Hankel singular values, i.e. twice the trace of \\(\Sigma\_2\\):
+
+\begin{equation}
+ \\|G(s) - G\_a(s)\\|\_\infty \le 2 \cdot \text{Tr}\big( \Sigma\_2 \big)
+\end{equation}
+
+For the case of repeated Hankel singular values, each repeated Hankel singular value is to be counted only once in calculating the sum.
+
+Useful algorithms that compute balanced truncations without first computing a balanced realization still require the computation of the observability and controllability Gramiam, which can be a problem if the system to be reduced is of very high order.
+
+
+##### Balanced Residualization {#balanced-residualization}
+
+In balanced truncation above, we discarded the least controllable and observable states corresponding to \\(\Sigma\_2\\).
+In balanced residualization, we simply set to zero the derivatives of all these states.
+
+
+##### Theorem {#theorem}
+
+Let \\(G(s)\\) be a stable rational transfer function with Hankel singular values \\(\sigma\_1 > \sigma\_2 > \dots > \sigma\_N\\) where each \\(\sigma\_i\\) has multiplicity \\(r\_i\\) and let \\(G\_a^k(s)\\) be obtained by truncating or residualizing the balanced realization of \\(G(s)\\) to the first \\((r\_1 + r\_2 + \dots + r\_k)\\) states.
+Then
+
+\begin{equation}
+ \\|G(s) - G\_a^k(s)\\|\_\infty \le 2(\sigma\_{k+1} + \sigma\_{k+2} + \dots + \sigma\_N)
+\end{equation}
+
+
+### Optimal Hankel Norm Approximation {#optimal-hankel-norm-approximation}
+
+In this approach to model reduction, the problem that is directly addressed is the following: given a stable model \\(G(s)\\) of order \\(n\\), find a reduced order model \\(G\_h^k(s)\\) of degree \\(k\\) such that the Hankel norm of the approximation error, \\(\\| G(s) - G\_h^k(s) \\|\_H\\), is minimized.
+
+
+
+The **Hankel norm** of any stable transfer function \\(E(s)\\) is defined as
+
+\begin{equation}
+ \\| E(s) \\|\_H \triangleq \rho^{\frac{1}{2}} (PQ)
+\end{equation}
+
+where \\(P\\) and \\(Q\\) are the controllability and observability Gramiams of \\(E(s)\\).
+
+
+
+So in the optimization we seek an error which is in some sense closest to being completely unobservable and completely uncontrollable.
+
+The infinity norm bound on the approximate error for the optimal Hankel norm approximation is better than for balanced truncation and residualization. This is shown with the following theorem.
+
+
+##### Theorem {#theorem}
+
+Let \\(G(s)\\) be a stable, square, transfer function \\(G(s)\\) with Hankel singular values \\(\sigma\_1 \ge \sigma\_2 \ge \dots \ge \sigma\_k \ge \sigma\_{k+1} = \sigma\_{k+2} = \dots = \sigma\_{k+l} > \sigma\_{k+l+1} \ge \dots \ge \sigma\_n > 0\\).
+An optimal Hankel norm approximation of order \\(k\\), \\(G\_h^k(s)\\), can be constructed as follows.
+
+Let \\((A,B,C,D)\\) be a balanced realization of \\(G(s)\\) with the Hankel singular values reordered so that the Gramiam matrix is
+
+\begin{align\*}
+ \Sigma &= \text{diag}(\sigma\_1,\dots,\sigma\_k,\sigma\_{k+l+1},\dots,\sigma\_n,\sigma\_{k+1},\dots,\sigma\_{k+l})\\\\
+ &\triangleq \text{diag}(\Sigma\_l, \sigma\_{k+1}I)
+\end{align\*}
+
+Partition \\((A,B,C,D)\\) to conform with \\(\Sigma\\)
+
+\begin{equation\*}
+ A = \begin{bmatrix}
+ A\_{11} & A\_{12} \\\\
+ A\_{21} & A\_{22}
+ \end{bmatrix},\ B = \begin{bmatrix}
+ B\_1 \\\\
+ B\_2
+ \end{bmatrix},\ C = \begin{bmatrix}
+ C\_1 & C\_2
+ \end{bmatrix}
+\end{equation\*}
+
+Define \\((\hat{A},\hat{B},\hat{C},\hat{D})\\) by
+
+\begin{align}
+ \hat{A} &\triangleq \Gamma^{-1} \left( \sigma\_{k+1}^2 A\_{11}^T + \sigma\_1 A\_{11} \Sigma\_1 - \sigma\_{k+1} C\_{1}^T U B\_{1}^T \right) \\\\
+ \hat{B} &\triangleq \Gamma^{-1} \left( \sigma\_1 B\_1 + \sigma\_{k+1} C\_1^T U \right) \\\\
+ \hat{C} &\triangleq C\_1 \Sigma\_1 + \sigma\_{k+1} U B\_1^T \\\\
+ \hat{D} &\triangleq D - \sigma\_{k+1} U
+\end{align}
+
+where \\(U\\) is a unitary matrix satisfying
+
+\begin{equation\*}
+ B\_2 = - C\_2^T U \ \text{ and } \ \Gamma \triangleq \Sigma\_1^2 - \sigma\_{k+1}^2 I
+\end{equation\*}
+
+The matrix \\(\hat{A}\\) has \\(k\\) "stable" eigenvalues; the remaining ones are in the open right-half plane.
+Then
+
+\begin{equation\*}
+ G\_h^k(s) + F(s) = \left[ \begin{array}{c|cc}
+ \hat{A} & \hat{B} \cr \hline
+ \hat{C} & \hat{D}
+\end{array} \right]
+\end{equation\*}
+
+where \\(G\_h^k(s)\\) is a stable optimal Hankel norm approximation of order \\(k\\), and \\(F(s)\\) is an anti-stable (all poles in the open right-half plane) transfer function of order \\(n-k-l\\).
+The Hankel norm of the error between \\(G\\) and the optimal approximation \\(G\_h^k\\) is equal to the \\((k+1)\text{'th}\\) Hankel singular value of \\(G\\):
+
+\begin{equation}
+ \tcmbox{\\| G - G\_h^k \\|\_H = \sigma\_{k+1}(G)}
+\end{equation}
+
+
+### Model Reduction - Practical Summary {#model-reduction-practical-summary}
+
+
+#### Reduction of model {#reduction-of-model}
+
+Three reduction techniques have been discussed here: balanced residualization, balance truncation and optimal Hankel norm approximation.
+
+It is sometimes desirable to have the steady-state gain of the reduced plant model the same as the full order model.
+For instance, this is the case if we want to use feedforward control.
+The truncated and optimal Hankel norm approximated systems do not preserve the steady-state gain and they have to be **scaled**, i.e. the model approximation \\(G\_a\\) is replaced by \\(G\_a W\_s\\) where \\(W\_a = G\_a(0)^{-1} G(0)\\), \\(G(s)\\) being the full order model.
+
+However, this scaling generally introduced **large model errors at other frequencies**.
+
+
+
+Hence **residualization** is to be preferred whenever low frequency matching is desired.
+
+
+
+
+#### Reduction of a 2 degrees-of-freedom controller {#reduction-of-a-2-degrees-of-freedom-controller}
+
+Let's consider a 2 degrees-of-freedom controller \\(K = [K\_1\ K\_2]\\).
+In order ensure perfect steady-state tracking, i.e. to match \\(T\_{\text{ref}}\\) at steady-state, a prefilter \\(W\_i\\) is added to scale the controller: \\(K = [K\_1 W\_i\ K\_2]\\).
+
+There are two approaches for order reduction:
+
+1. the scaled controller \\([K\_1 W\_i\ K\_2]\\) is reduced.
+ A balanced residualization of the controller preserves the controller's steady state gain and would not need to be scaled again.
+ Reductions via truncation and optimal Hankel norm approximation techniques, however, lose the steady-state gain and reduced controllers would need to be re-scaled to match \\(T\_{\text{ref}}(0)\\)
+2. the full order controller \\([K\_1\ K\_2]\\) is reduced without first scaling the prefilter.
+ In which case, scaling is done after reduction.
+ A larger scaling is generally required for the truncated and optimal Hankel norm approximated controllers and this gives poorer model matching at other frequencies.
+
+In both cases, the balanced residualization is preferred.
+
+
+### Reduction of Unstable Models {#reduction-of-unstable-models}
+
+Balanced truncation, balanced residualization and optimal Hankel norm approximation only apply to stable models.
+In this section we briefly present two approaches for reducing the order of an unstable model.
+
+
+#### Stable Part Model Reduction {#stable-part-model-reduction}
+
+The unstable model can be first decomposed into its stable and anti-stable parts:
+
+\begin{equation}
+ G(s) = G\_u(s) + G\_s(s)
+\end{equation}
+
+where \\(G\_u(s)\\) has all its poles in the closed right-half plane and \\(G\_s(s)\\) has all its poles in the open left-half plane.
+Balanced truncation, balanced residualization or optimal Hankel norm approximation can then be applied to the stable part \\(G\_s(s)\\) to find a reduced order approximation \\(G\_{sa}(s)\\).
+This is then added to the anti-stable part to give
+
+\begin{equation}
+ G\_a(s) = G\_u(s) + G\_{sa}(s)
+\end{equation}
+
+as an approximation to the full order model \\(G(s)\\).
+
+
+#### Coprime Factor Model Reduction {#coprime-factor-model-reduction}
+
+The coprime factors of a transfer function \\(G(s)\\) are stable, and therefore we could reduce the order of these factors using balanced truncation, balanced residualization or optimal Hankel norm approximation:
+
+- Let \\(G(s) = M^{-1}(s) N(s)\\), where \\(M(s)\\) and \\(N(s)\\) are stable left-coprime factors of \\(G(s)\\)
+- Approximate \\([N\ M]\\) of degree \\(n\\) by \\([N\_a \ M\_a]\\) of degree \\(k 0\\).
+Then \\((N\_a, M\_a)\\) is a normalized left-coprime factorization of \\(G\_a = M\_a^{-1} N\_a\\), and \\([N\_a,\ M\_a]\\) has Hankel singular values \\(\sigma\_1, \sigma\_2, \dots, \sigma\_k\\).
+
+
+### Conclusion {#conclusion}
+
+We have presented and compared three main methods for model reduction based on balanced realizations: **balanced truncation**, **balanced residualization** and **optimal Hankel norm approximation**.
+
+Residualization, unlike truncation and optimal Hankel norm approximation, preserves the steady-state gain of the system, and like truncation, it is simple and computationally inexpensive.
+It is observed that truncation and optimal Hankel norm approximation perform better at high frequencies, where residualization performs better at low and medium frequencies, i.e. up to the critical frequencies.
+
+Thus **for plant model reduction**, where models are not accurate at high frequencies to start with, **residualization would seem to be a better option**.
+Further, if the steady state gains are to be kept unchanged, truncated and optimal Hankel norm approximated systems require scaling, which may result in large errors.
+In such a case, too, residualization would be preferred choice.
+
+For **controller reduction**, we have shown in a two degrees-of-freedom example, the importance of scaling and steady-state gain matching.
+
+In general, steady-state gain matching may not be crucial, but the matching should usually be good near the desired closed-loop bandwidth.
+Balanced residualization has been seen to perform close to the full order system in this frequency range.
+Good approximation at high frequencies may also sometimes be desired.
+In such a case, using truncation or optimal Hankel norm approximation with appropriate frequency weightings may yield better results.
+
+
+## Bibliography {#bibliography}
diff --git a/content/book/slocum92_precis_machin_desig.md b/content/book/slocum92_precis_machin_desig.md
new file mode 100644
index 0000000..3ec5655
--- /dev/null
+++ b/content/book/slocum92_precis_machin_desig.md
@@ -0,0 +1,25 @@
++++
+title = "Precision Machine Design"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Slocum 1992)
+
+Author(s)
+: Slocum, A. H.
+
+Year
+: 1992
+
+
+## Bibliography {#bibliography}
+
+
+
Slocum, Alexander H. 1992. Precision Machine Design. Society of Manufacturing Engineers.
+
diff --git a/content/book/smith99_scien_engin_guide_digit_signal.md b/content/book/smith99_scien_engin_guide_digit_signal.md
new file mode 100644
index 0000000..8d13fa5
--- /dev/null
+++ b/content/book/smith99_scien_engin_guide_digit_signal.md
@@ -0,0 +1,25 @@
++++
+title = "The scientist and engineer's guide to digital signal processing - second edition"
+author = ["Dehaeze Thomas"]
+keywords = ["Signal Processing"]
+draft = true
++++
+
+Tags
+: [Digital Signal Processing]({{< relref "digital_signal_processing.md" >}})
+
+Reference
+: (Smith 1999)
+
+Author(s)
+: Smith, S. W.
+
+Year
+: 1999
+
+
+## Bibliography {#bibliography}
+
+
+
Smith, Steven W. 1999. The Scientist and Engineer’s Guide to Digital Signal Processing - Second Edition. California Technical Publishing.
+
diff --git a/content/book/taghirad13_paral.md b/content/book/taghirad13_paral.md
new file mode 100644
index 0000000..85b83ed
--- /dev/null
+++ b/content/book/taghirad13_paral.md
@@ -0,0 +1,2895 @@
++++
+title = "Parallel Robots : Mechanics and Control"
+author = ["Dehaeze Thomas"]
+description = "Explains clearly fundamentals of parallel robotics such as how to represent motion, kinematics, jacobian and dynamics."
+keywords = ["Stewart Platforms", "Mechatronics"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Reference Books]({{< relref "reference_books.md" >}})
+
+Reference
+: (Taghirad 2013)
+
+Author(s)
+: Taghirad, H.
+
+Year
+: 2013
+
+PDF version
+: [link](/ox-hugo/taghirad13_paral.pdf)
+
+
+## Introduction {#introduction}
+
+
+
+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.
+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.
+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.
+
+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.
+
+In Chapter , 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.
+A systematic means to perform Jacobian analysis of parallel manipulators is given in this chapter.
+
+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.
+In Chapter , 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.
+
+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}
+
+
+
+
+### Spatial Motion Representation {#spatial-motion-representation}
+
+Six independent parameters are sufficient to fully describe the spatial location of a rigid body.
+
+Consider a rigid body in a spatial motion as represented in [Figure 1](#figure--fig:rigid-body-motion).
+Let us define:
+
+- A **fixed reference coordinate system** \\((x, y, z)\\) denoted by frame \\(\\{\bm{A}\\}\\) whose origin is located at point \\(O\_A\\)
+- A **moving coordinate system** \\((u, v, z)\\) denoted by frame \\(\\{\bm{B}\\}\\) attached to the rigid body at point \\(O\_B\\)
+
+The absolute position of point \\(P\\) of the rigid body can be constructed from the relative position of that point with respect to the moving frame \\(\\{\bm{B}\\}\\), and the **position and orientation** of the moving frame \\(\\{\bm{B}\\}\\) with respect to the fixed frame \\(\\{\bm{A}\\}\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_rigid_body_motion.png" caption="Figure 1: Representation of a rigid body spatial motion" >}}
+
+
+#### Position of a point {#position-of-a-point}
+
+The position of a point \\(P\\) with respect to a frame \\(\\{\bm{A}\\}\\) can be described by a \\(3 \times 1\\) position vector.
+The name of the frame is usually added as a leading superscript: \\({}^A\bm{P}\\) which reads as vector \\(\bm{P}\\) in frame \\(\\{\bm{A}\\}\\).
+
+\begin{equation}
+ \boxed{{}^A\bm{P} = \begin{bmatrix} P\_x\\\ P\_y\\\ P\_z \end{bmatrix}}
+\end{equation}
+
+
+#### Orientation of a Rigid Body {#orientation-of-a-rigid-body}
+
+The orientation of the whole rigid body is the same for all its points (by definition).
+Hence, representation of the orientation of a rigid body can be viewed as that for the orientation of a moving frame attached to the rigid body.
+It can be **represented in several different ways**: the rotation matrix, the screw axis representation and Euler angles are common descriptions.
+
+
+##### Rotation Matrix {#rotation-matrix}
+
+We consider a rigid body that has been exposed to a pure rotation.
+Its orientation has changed from a state represented by frame \\(\\{\bm{A}\\}\\) to its current orientation represented by frame \\(\\{\bm{B}\\}\\) ([Figure 2](#figure--fig:rotation-matrix)).
+
+A \\(3 \times 3\\) rotation matrix \\({}^A\bm{R}\_B\\) is defined by
+
+\begin{equation}
+ \boxed{{}^A\bm{R}\_B = \left[ {}^A\hat{\bm{x}}\_B | {}^A\hat{\bm{y}}\_B | {}^A\hat{\bm{z}}\_B \right] = \begin{bmatrix}
+ u\_{x} & v\_{x} & z\_{x} \\\\
+ u\_{y} & v\_{y} & z\_{y} \\\\
+ u\_{z} & v\_{z} & z\_{z}
+ \end{bmatrix}}
+\end{equation}
+
+in which \\({}^A\hat{\bm{x}}\_B, {}^A\hat{\bm{y}}\_B\\) and \\({}^A\hat{\bm{z}}\_B\\) are the Cartesian unit vectors of frame \\(\\{\bm{B}\\}\\) represented in frame \\(\\{\bm{A}\\}\\).
+
+\begin{align\*}
+ {}^A\hat{\bm{x}}\_B &= {}^A\hat{u} = u\_x \hat{i} + u\_y \hat{j} + u\_z \hat{k} \\\\
+ {}^A\hat{\bm{y}}\_B &= {}^A\hat{v} = v\_x \hat{i} + v\_y \hat{j} + v\_z \hat{k} \\\\
+ {}^A\hat{\bm{z}}\_B &= {}^A\hat{w} = w\_x \hat{i} + w\_y \hat{j} + w\_z \hat{k}
+\end{align\*}
+
+The nine elements of the rotation matrix can be simply represented as the projections of the Cartesian unit vectors of frame \\(\\{\bm{B}\\}\\) on the unit vectors of frame \\(\\{\bm{A}\\}\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_rotation_matrix.png" caption="Figure 2: Pure rotation of a rigid body" >}}
+
+The rotation matrix has a number of properties linking each of its nine elements:
+
+- **Orthonormality**: the rotation matrix is an orthonormal matrix
+- **Transposition**: \\({}^B\bm{R}\_A = {}^A\bm{R}\_B^{T}\\)
+- **Inverse**: \\({}^B\bm{R}\_A = {}^A\bm{R}\_B^{-1} = {}^A\bm{R}\_B^{T}\\)
+- **Pure Rotation Mapping**: Suppose that the point of a rigid body with respect to the moving frame \\(\\{\bm{B}\\}\\) is given and denoted by \\({}^B\bm{P}\\) and we wish to express the position of this point with respect to the fixed frame \\(\\{\bm{A}\\}\\). Consider that the rigid body has been exposed to a pure rotation (\\(\\{\bm{A}\\}\\) and \\(\\{\bm{B}\\}\\) are coincident at their origins). Then
+ \\[ \boxed{{}^A\bm{P} = {}^A\bm{R}\_B {}^B\bm{P}} \\]
+- **Determinant**: \\(\det({}^A\bm{R}\_B) = 1\\)
+- **Eigenvalues**: The eigenvalues of a rotation matrix \\({}^A\bm{R}\_B\\) are equal to \\(1\\), \\(e^{i\theta}\\) and \\(e^{-i\theta}\\) where \\(\theta\\) is calculated from \\(\theta = \cos^{-1}\frac{\text{tr}({}^A\bm{R}\_B) - 1}{2}\\).
+
+
+##### Screw Axis Representation {#screw-axis-representation}
+
+As seen previously, there exist an **invariant angle** \\(\theta\\) corresponding to the rotation matrix. This angle is an equivalent angle of rotation.
+The rotation is a spatial change of orientation about an axis which is called the **screw axis**.
+It can be shown that this screw axis is also an invariant of the rotation matrix, it is the eigenvector corresponding to the eigenvalue \\(\lambda = 1\\).
+
+The term screw axis for this axis of rotation has the benefit that a general motion of a rigid body, which is composed as a pure translation and a pure rotation, can be further represented by the same axis of rotation.
+
+The screw axis representation has the benefit of **using only four parameters** to describe a pure rotation.
+These parameters are the angle of rotation \\(\theta\\) and the axis of rotation which is a unit vector \\({}^A\hat{\bm{s}} = [s\_x, s\_y, s\_z]^T\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_screw_axis_representation.png" caption="Figure 3: Pure rotation about a screw axis" >}}
+
+The Rodrigue's rotation formula for spatial rotation of a rigid body gives us the new position \\(\bm{P}\_2\\) of point \\(\bm{P}\_1\\) after a rotation represented by the screw axis \\(\hat{\bm{s}}\\) and the angle \\(\theta\\):
+
+\begin{equation}
+ \boxed{\bm{P}\_2 = \bm{P}\_1 \cos \theta + (\hat{\bm{s}} \times \bm{P}\_1)\sin\theta + (\bm{P}\_1 \cdot \hat{\bm{s}})\hat{\bm{s}}}
+\end{equation}
+
+
+##### Euler Angles {#euler-angles}
+
+Since rotation in space is a motion with three-degrees-of-freedom, a set of three independent parameters is sufficient to represent the orientation.
+
+In an Euler angle representation, three **successive** rotations about the coordinate system of either **fixed** or **moving** frame are used to describe the orientation of the rigid body.
+
+One type of Euler angle corresponds to rotations considered with respect to the fixed frame. The representation is called pitch-roll-yaw, or fixed X-Y-Z Euler angles.
+
+Three other types of Euler angles are consider with respect to a moving frame: they are denoted \\(w-v-u\\), \\(w-v-w\\) and \\(w-u-w\\) Euler angles.
+
+
+#### Pitch-Roll-Yaw Euler Angles {#pitch-roll-yaw-euler-angles}
+
+The pitch, roll and yaw angles are defined for a moving object in space as the rotations along the lateral, longitudinal and vertical axes attached to the moving object.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_pitch-roll-yaw.png" caption="Figure 4: Definition of pitch, roll and yaw angles on an air plain" >}}
+
+Since all three rotations take place about the axes of a **fixed coordinate frame**, the resulting rotation matrix is obtained by multiplying the three basic rotation matrices as follows:
+\\[ \boxed{\bm{R}\_{PRY}(\alpha, \beta, \gamma) = \bm{R}\_z(\gamma) \bm{R}\_y(\beta) \bm{R}\_x(\alpha)} \\]
+
+To go from rotation matrix to Pitch-Roll-Yaw angles, the following set of equations can be used:
+
+\begin{align\*}
+ \alpha &= \text{atan}\left( \frac{r\_{32}}{\cos \beta}, \frac{r\_{33}}{\cos \beta} \right) \\\\
+ \beta &= \text{atan}\left( -r\_{31}, \pm \sqrt{r\_{11}^2 + r\_{21}^2} \right) \\\\
+ \gamma &= \text{atan}\left( \frac{r\_{21}}{\cos \beta}, \frac{r\_{11}}{\cos \beta} \right)
+\end{align\*}
+
+
+#### u-v-w Euler Angles {#u-v-w-euler-angles}
+
+Another way to describe the orientation of a moving object is to consider three successive rotations about the **coordinate axes of the moving frame**.
+Since the rotations do not occur about fixed axes, pre-multiplications of the individual rotation matrices fails to give the correct solution. It can be shown that the resulting matrix can be derived by post-multiplication of the individual rotation matrices as follows:
+\\[ {}^A\bm{R}\_B(\alpha, \beta, \gamma) = \bm{R}\_u(\alpha) \bm{R}\_v(\beta) \bm{R}\_w(\gamma) \\]
+
+The inverse solution for the u-v-w Euler angles is the following (for \\(\cos \beta \ne 0\\)):
+
+\begin{align\*}
+ \alpha &= \text{atan}\left( -\frac{r\_{23}}{\cos \beta}, \frac{r\_{33}}{\cos \beta} \right) \\\\
+ \beta &= \text{atan}\left( r\_{13}, \pm \sqrt{r\_{11}^2 + r\_{12}^2} \right) \\\\
+ \gamma &= \text{atan}\left( -\frac{r\_{12}}{\cos \beta}, \frac{r\_{11}}{\cos \beta} \right)
+\end{align\*}
+
+
+#### w-v-w Euler Angles {#w-v-w-euler-angles}
+
+Similarly:
+\\[ \bm{R}\_{wvw}(\alpha, \beta, \gamma) = \bm{R}\_w(\alpha) \bm{R}\_v(\beta) \bm{R}\_w(\gamma) \\]
+
+And for \\(\sin\beta\ne0\\):
+
+\begin{align\*}
+ \alpha &= \text{atan}\left( \frac{r\_{23}}{\sin\beta}, \frac{r\_{13}}{\sin\beta} \right) \\\\
+ \beta &= \text{atan}\left( \pm \sqrt{r\_{31}^2 + r\_{32}^2}, r\_{33} \right) \\\\
+ \gamma &= \text{atan}\left( \frac{r\_{32}}{\sin\beta}, -\frac{r\_{31}}{\sin\beta} \right)
+\end{align\*}
+
+
+#### w-u-w Euler Angles {#w-u-w-euler-angles}
+
+Here, the second rotation is about the \\(u\\) axis:
+\\[ \bm{R}\_{wuw}(\alpha, \beta, \gamma) = \bm{R}\_w(\alpha) \bm{R}\_u(\beta) \bm{R}\_w(\gamma) \\]
+
+And for \\(\sin\beta\ne0\\):
+
+\begin{align\*}
+ \alpha &= \text{atan}\left( \frac{r\_{13}}{\sin\beta}, -\frac{r\_{23}}{\sin\beta} \right) \\\\
+ \beta &= \text{atan}\left( \pm \sqrt{r\_{31}^2 + r\_{32}^2}, r\_{33} \right) \\\\
+ \gamma &= \text{atan}\left( \frac{r\_{31}}{\sin\beta}, \frac{r\_{32}}{\sin\beta} \right)
+\end{align\*}
+
+
+#### Notes about Euler Angles {#notes-about-euler-angles}
+
+If the Euler angle is given, a **unique rotation matrix** is determined for the orientation of the rigid body.
+However, the inverse map is not one-to-one, and at least two Euler angle sets can be found for each orientation.
+
+If the Euler angle is chosen for the representation of the orientation, extra care should be taken. From the continuity of the motion, a suitable solution may be chosen, such that no abrupt changes are seen in the variation of the Euler angles in a typical maneuver.
+
+The use of rotation matrix to represent the orientation of a rigid body is then generally preferred although there are nine parameters for that description.
+
+
+### Motion of a Rigid Body {#motion-of-a-rigid-body}
+
+Since the relative positions of a rigid body with respect to a moving frame \\(\\{\bm{B}\\}\\) attached to it is fixed for all time, it is sufficient to know the **position of the origin of the frame** \\(O\_B\\) and the **orientation of the frame** \\(\\{\bm{B}\\}\\) with respect to the fixed frame \\(\\{\bm{A}\\}\\), to represent the position of any point \\(P\\) in the space.
+
+Representation of the position of \\(O\_B\\) is uniquely given by the position vector, while orientation of the rigid body is represented in different forms.
+However, for all possible orientation representation, a rotation matrix \\({}^A\bm{R}\_B\\) can be derived.
+
+
+
+Therefore, the location or **pose** of a rigid body, can be **fully determined** by:
+
+1. The **position vector** of point \\(O\_B\\) with respect to frame \\(\\{\bm{A}\\}\\) which is denoted \\({}^A\bm{P}\_{O\_B}\\)
+2. The **orientation of the rigid body**, or the moving frame \\(\\{\bm{B}\\}\\) attached to it with respect to the fixed frame \\(\\{\bm{A}\\}\\), that is represented by \\({}^A\bm{R}\_B\\).
+
+
+
+The position of any point \\(P\\) of the rigid body with respect to the fixed frame \\(\\{\bm{A}\\}\\), which is denoted \\({}^A\bm{P}\\) may be determined thanks to the Chasles' theorem.
+
+
+
+**Chasles' theorem**:
+If the pose of a rigid body \\(\\{{}^A\bm{R}\_B, {}^A\bm{P}\_{O\_B}\\}\\) is given, then the position of any point \\(P\\) of this rigid body with respect to \\(\\{\bm{A}\\}\\) is given by:
+
+\begin{equation} \label{eq:chasles\_therorem}
+ {}^A\bm{P} = {}^A\bm{R}\_B {}^B\bm{P} + {}^A\bm{P}\_{O\_B}
+\end{equation}
+
+
+
+
+### Homogeneous Transformations {#homogeneous-transformations}
+
+To describe general transformations, we introduce the \\(4\times1\\) **homogeneous coordinates**, and Eq. \ref{eq:chasles\_therorem} is generalized to
+
+\begin{equation} \label{eq:homogeneous\_transformation}
+ \boxed{{}^A\bm{P} = {}^A\bm{T}\_B {}^B\bm{P}}
+\end{equation}
+
+in which \\({}^A\bm{T}\_B\\) is a \\(4\times4\\) **homogeneous transformation matrix**.
+
+
+#### Homogeneous Coordinates {#homogeneous-coordinates}
+
+There are two basic classes of vector quantities, the generalization to homogeneous coordinates of which are different.
+
+The first type is called **line vector**. Line vectors refer to a vector of which its value depends on the line of action, or the position of where it is applied. Examples are the position vector, linear velocity, force vector.
+
+On the contrary, there exist quantities likes orientation that **hold for the whole rigid body** and do not correspond to a point. They can be positioned freely throughout the whole rigid body, without any change in their quantity. These types of vectors are called **free vectors**.
+
+For line vectors, both orientation and translation of the moving frame contribute to their value.
+Homogeneous coordinate of such vectors is generated by appending \\(1\\) to the three components of that vector:
+
+\begin{equation} \label{eq:homogeneous\_coord\_line\_vector}
+ \boxed{\bm{V} = \begin{bmatrix} v\_x \\\ v\_y \\\ v\_z \\\ 1 \end{bmatrix}}
+\end{equation}
+
+For free vectors, only the orientation of the moving frame contributes to their value.
+The homogeneous coordinate is then
+
+\begin{equation} \label{eq:homogeneous\_coord\_free\_vector}
+ \boxed{\bm{\omega} = \begin{bmatrix} \omega\_x \\\ \omega\_y \\\ \omega\_z \\\ 0 \end{bmatrix}}
+\end{equation}
+
+
+#### Homogeneous Transformation Matrix {#homogeneous-transformation-matrix}
+
+
+
+The **homogeneous transformation matrix** is a \\(4\times4\\) matrix, defined for the purpose of transformation mapping of a vector in a homogeneous coordinate from one frame to another in a compact form.
+The matrix is composed of the rotation matrix \\({}^A\bm{R}\_B\\) representing the orientation and the position vector \\({}^A\bm{P}\_{O\_B}\\) representing the translation.
+It is partitioned as follows:
+
+\begin{equation}
+ {}^A\bm{T}\_B =
+ \left[ \begin{array}{ccc|c}
+ & & & \\\\
+ & {}^A\bm{R}\_B & & {}^A\bm{P}\_{O\_B} \\\\
+ & & & \cr
+ \hline
+ 0 & 0 & 0 & 1
+ \end{array} \right]
+\end{equation}
+
+
+
+The homogeneous transformation matrix \\({}^A\bm{T}\_B\\) is a \\(4\times4\\) matrix operator mapping **vector valued** quantities represented by \\(4\times1\\) homogeneous coordinates.:
+
+\begin{align\*}
+ \left[ \begin{array}{c} \\\ {}^A\bm{P} \\\ \cr \hline 1 \end{array} \right]
+ & =
+ \left[ \begin{array}{ccc|c}
+ & & & \\\\
+ & {}^A\bm{R}\_B & & {}^A\bm{P}\_{O\_B} \\\\
+ & & & \cr
+ \hline
+ 0 & 0 & 0 & 1
+ \end{array} \right]
+ \left[ \begin{array}{c} \\\ {}^B\bm{P} \\\ \cr \hline 1 \end{array} \right] \\\\
+ {}^A\bm{P} &= {}^A\bm{R}\_B {}^B\bm{P} + {}^A\bm{P}\_{O\_B}
+\end{align\*}
+
+Using homogeneous coordinate for a **free vector** like angular velocity of a rigid body:
+
+\begin{align\*}
+ \left[ \begin{array}{c} \\\ {}^A\bm{\omega} \\\ \cr \hline 0 \end{array} \right]
+ & =
+ \left[ \begin{array}{ccc|c}
+ & & & \\\\
+ & {}^A\bm{R}\_B & & {}^A\bm{P}\_{O\_B} \\\\
+ & & & \cr
+ \hline
+ 0 & 0 & 0 & 1
+ \end{array} \right]
+ \left[ \begin{array}{c} \\\ {}^B\bm{\omega} \\\ \cr \hline 0 \end{array} \right] \\\\
+ {}^A\bm{P} &= {}^A\bm{R}\_B {}^B\bm{P}
+\end{align\*}
+
+
+#### Screw Displacement {#screw-displacement}
+
+The most general rigid body displacement can be produced by a **translation along a line followed by a rotation about the same line**.
+The line is called the **screw axis**.
+
+There exist transformations to from screw displacement notation to the transformation matrix.
+
+
+#### Transformation Arithmetics {#transformation-arithmetics}
+
+
+##### Consecutive transformations {#consecutive-transformations}
+
+Let us consider the motion of a rigid body described at three locations ([Figure 5](#figure--fig:consecutive-transformations)).
+Frame \\(\\{\bm{A}\\}\\) represents the initial location, frame \\(\\{\bm{B}\\}\\) is an intermediate location, and frame \\(\\{\bm{C}\\}\\) represents the rigid body at its final location.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_consecutive_transformations.png" caption="Figure 5: Motion of a rigid body represented at three locations by frame \\(\\{\bm{A}\\}\\), \\(\\{\bm{B}\\}\\) and \\(\\{\bm{C}\\}\\)" >}}
+
+Furthermore, suppose the position vector of a point \\(P\\) of the rigid body is given in the final location, that is \\({}^C\bm{P}\\) is given, and the position of this point is to be found in the fixed frame \\(\\{\bm{A}\\}\\), that is \\({}^A\bm{P}\\).
+Since the locations of the rigid body is known relative to each other, \\({}^C\bm{P}\\) can be transformed to \\({}^B\bm{P}\\) using \\({}^B\bm{T}\_C\\):
+\\[{}^B\bm{P} = {}^B\bm{T}\_C {}^C\bm{P}\\]
+
+Now, \\({}^B\bm{P}\\) can be transformed into \\({}^A\bm{P}\\):
+\\[ {}^A\bm{P} = {}^A\bm{T}\_B {}^B\bm{P} \\]
+
+And we have:
+\\[ {}^A\bm{P} = {}^A\bm{T}\_B {}^B\bm{T}\_C {}^C\bm{P} \\]
+
+From which, the consecutive transformation can be defined as follows:
+
+\begin{equation} \label{eq:consecutive\_transformation}
+ \boxed{{}^A\bm{T}\_C = {}^A\bm{T}\_B {}^B\bm{T}\_C}
+\end{equation}
+
+
+##### Inverse transformation {#inverse-transformation}
+
+Direct inversion of the \\(4\times4\\) homogeneous transfer matrix \\({}^A\bm{T}\_B\\) to obtain \\({}^B\bm{T}\_A\\) might be computationally intensive.
+It is much easier to use the specific structure of the transfer matrix for inversion.
+
+To obtain \\({}^B\bm{T}\_A\\), it is necessary to compute \\({}^B\bm{R}\_A\\) and \\({}^B\bm{P}\_{O\_A}\\) from the known \\({}^A\bm{R}\_B\\) and \\({}^A\bm{P}\_{O\_B}\\), then
+
+\begin{equation\*}
+ {}^B\bm{T}\_A =
+ \left[ \begin{array}{ccc|c}
+ & & & \\\\
+ & {}^B\bm{R}\_A & & {}^B\bm{P}\_{O\_A} \\\\
+ & & & \cr
+ \hline
+ 0 & 0 & 0 & 1 \\\\
+ \end{array} \right]
+\end{equation\*}
+
+Moreover
+
+\begin{align\*}
+ {}^B\bm{R}\_A &= {}^A\bm{R}\_B^T \\\\
+ {}^B\bm{P}\_{O\_A} &= {}^B\bm{R}\_A {}^A\bm{P}\_{O\_A} = - {}^B\bm{R}\_A {}^A\bm{P}\_{O\_B} \\\\
+ &= -{}^A\bm{R}\_B^T {}^A\bm{P}\_{O\_B}
+\end{align\*}
+
+Hence, the **inverse of the transformation matrix** can be obtain by
+
+\begin{equation}
+ {}^B\bm{T}\_A = {}^A\bm{T}\_B^{-1} =
+ \left[ \begin{array}{ccc|c}
+ & & & \\\\
+ & {}^A\bm{R}\_B^T & & -{}^A \bm{R}\_B^T {}^A\bm{P}\_{O\_B} \\\\
+ & & & \cr
+ \hline
+ 0 & 0 & 0 & 1 \\\\
+ \end{array} \right]
+\end{equation}
+
+
+## Kinematics {#kinematics}
+
+
+
+
+### Introduction {#introduction}
+
+
+
+**Kinematic analysis** refers to the study of the geometry of motion of a robot, without considering the forces an torques that cause the motion.
+In this analysis, the relation between the geometrical parameters of the manipulator with the final motion of the moving platform is derived and analyzed.
+
+
+
+A **parallel robot** is a mechanism with a number of **closed kinematic chains**, and its moving platform is linked to the base by several independent kinematic chains.
+Parallel robots for which the number of kinematic chains is equal to the number of degrees-of-freedom of the moving platform are called **fully parallel robots**.
+
+If in addition to this condition, if the type and number of joints at each limb, and the number and location of the actuated joints are identical in all the limbs, such a parallel robot is called **symmetric**.
+
+There are three main cases for fully parallel manipulators.
+Planar robots with two translation and one rotational degree-of-freedom in the plane.
+Spatial orientation manipulators with three rotational degrees-of-freedom in space.
+And a general spatial robot with three translational and three rotational degrees-of-freedom in space.
+
+It is known that unlike serial manipulators, **inverse kinematic analysis of parallel robots is usually simple and straightforward**.
+In most cases, limb variable may be computed independently using the given pose of the moving platform, and the solution in most cases even for redundant manipulators is uniquely determined.
+However, **forward kinematics of parallel manipulators is generally very complicated**, and its solution usually involves systems of nonlinear equations, which are highly coupled and in general have no closed form and unique solution.
+
+
+### Loop Closure Method {#loop-closure-method}
+
+A typical parallel manipulator consists of two main bodies.
+Body \\(A\\) is arbitrary designated as fixed and is called the **base**, while body \\(B\\) is designated to be movable and is called the **moving platform**.
+These two bodies are coupled via \\(n\\) **limbs**, each attached to points \\(A\_i\\) and \\(B\_i\\) and called fixed and moving attachment points of the limb \\(i\\).
+
+At the **displacement** level, the **forward kinematic** problem permits the determination of the actual location or pose of the moving platform relative to the base from a set of joint-position readouts.
+
+At the **velocity** level, the **forward kinematic** problem refers to the determination of the translational and angular velocities of the moving platform relative to the base, from a set of joint-velocity readouts and for a known configuration.
+
+To describe the motion of the moving platform relative to the base, frame \\(\\{\bm{A}\\}\\) is attached to body \\(A\\) and frame \\(\\{\bm{B}\\}\\) to body \\(B\\).
+The pose of the moving platform relative to the base is thus defined by:
+
+- A position vector \\(\bm{p}\\) which denotes the position vector of the origin of \\(\\{\bm{B}\\}\\) with respect to frame \\(\\{\bm{A}\\}\\)
+- A \\(3\times3\\) rotation matrix \\(R\\) which denotes the rotation of \\(\\{\bm{B}\\}\\) with respect to \\(\\{\bm{A}\\}\\)
+
+Each limb of a parallel manipulator defines a kinematic loop passing through the origins of frames \\(\\{\bm{A}\\}\\) and \\(\\{\bm{B}\\}\\), and through the two limb attachment points \\(A\_i\\) and \\(B\_i\\).
+
+At the displacement level, the **closure of each kinematic loop** can be express in the vector form as
+\\[ \vec{AB} = \vec{AA\_i} + \vec{A\_iB\_i} - \vec{BB\_i} \quad \text{for } i = 1,2,\dots,n \\]
+in which \\(\vec{AA\_i}\\) and \\(\vec{BB\_i}\\) can be easily obtained from the geometry of the attachment points in the base and in the moving platform.
+
+Let us defined \\(\bm{a}\_i = \vec{AA\_i}\\) in the fixed frame \\(\\{\bm{A}\\}\\), and \\(\bm{b}\_i = \vec{BB\_i}\\) in the moving frame \\(\\{\bm{B}\\}\\).
+Furthermore, \\(\bm{q}\_i = \vec{A\_iB\_i}\\) is defined as the **limb variable**, which indicated the geometry of the limb.
+
+
+
+The **loop closure** can be written as the unknown pose variables \\(\bm{p}\\) and \\(\bm{R}\\), the position vectors describing the known geometry of the base and of the moving platform, \\(\bm{a}\_i\\) and \\(\bm{b}\_i\\), and the limb vector \\(\bm{q}\_i\\)
+
+\begin{equation} \label{eq:loop\_closure}
+ \bm{p} = \bm{a}\_i + \bm{q}\_i - \bm{R} \bm{b}\_i \quad \text{for } i=1,2,\dots,n
+\end{equation}
+
+
+
+For an **inverse kinematic problem**, it is assumed that the moving platform position \\(\bm{p}\\) and orientation \\(\bm{R}\\) are given and the problem is to solve the active limb variables.
+This analysis is usually straightforward and results in unique solution for the limb variables.
+
+However, the inverse solution is not straightforward, and usually numerical methods are used for forward kinematic solution.
+
+
+### Kinematic Analysis of a Stewart-Gough Platform {#kinematic-analysis-of-a-stewart-gough-platform}
+
+
+#### Mechanism Description {#mechanism-description}
+
+One frame \\(\\{\bm{A}\\}\\) is attached to the fixed base and frame \\(\\{\bm{B}\\}\\) is attached to the moving platform at points \\(O\_A\\) and \\(O\_B\\) respectively.
+
+The number of actuators is equal to the degrees-of-freedom of the manipulator and hence the manipulator is **fully parallel**.
+
+
+
+Since all the limbs are connected to the moving platform and to the base by spherical joints, **no twisting torque** can be transmitted and the force acting on each limb is directed along the longitudinal axis of the limb.
+
+
+
+
+#### Geometry of the Manipulator {#geometry-of-the-manipulator}
+
+
+
+The position of the attachment points on the fixed base are denoted by the vectors \\(\bm{a}\_i\\) and the position of moving attachment points are denoted by the vectors \\(\bm{b}\_i\\).
+The geometry of each limb is described by its length \\(l\_i\\) and its direction is denoted by a unit vector \\(\hat{\bm{s}}\_i\\).
+
+
+
+The position of the point \\(O\_B\\) of the moving platform is described by the **position vector** \\({}^A\bm{P} = [p\_x\ p\_y\ p\_z]^T\\) and orientation of the moving platform is described by the **rotation matrix** \\({}^A\bm{R}\_B\\) which can by represented by the components of the unit vectors \\(\hat{\bm{u}}\\), \\(\hat{\bm{v}}\\), \\(\hat{\bm{z}}\\) as follows:
+
+\begin{equation} \label{eq:rotation\_matrix}
+ ^A\bm{R}\_B = \begin{bmatrix}
+ u\_x & v\_x & w\_x \\\\
+ u\_y & v\_y & w\_y \\\\
+ u\_z & v\_z & w\_z \\\\
+ \end{bmatrix}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/taghirad13_stewart_schematic.png" caption="Figure 6: Geometry of a Stewart-Gough platform" >}}
+
+The geometry of the manipulator is shown [Figure 6](#figure--fig:stewart-schematic).
+
+
+#### Inverse Kinematics {#inverse-kinematics}
+
+
+
+For **inverse kinematic analysis**, it is assumed that the position \\({}^A\bm{P}\\) and orientation of the moving platform \\({}^A\bm{R}\_B\\) are given and the problem is to obtain the joint variables \\(\bm{L} = \left[ l\_1, l\_2, l\_3, l\_4, l\_5, l\_6 \right]^T\\).
+
+
+
+From the geometry of the manipulator, one can write:
+
+\begin{equation} \label{eq:inverse\_kinematics}
+ {}^A \bm{a}\_i + l\_i {}^A \hat{\bm{s}}\_i = {}^A\bm{P} + {}^A\bm{b}\_i
+\end{equation}
+
+Then, we can find \\(l\_i\\) given \\({}^A\bm{P}\\) and \\({}^A\bm{R}\_B\\):
+
+\begin{equation}
+ \begin{aligned}
+ l\_i = &\Big[ {}^A\bm{P}^T {}^A\bm{P} + {}^B\bm{b}\_i^T {}^B\bm{b}\_i + {}^A\bm{a}\_i^T {}^A\bm{a}\_i - 2 {}^A\bm{P}^T {}^A\bm{a}\_i + \dots\\\\
+ &2 {}^A\bm{P}^T \left[{}^A\bm{R}\_B {}^B\bm{b}\_i\right] - 2 \left[{}^A\bm{R}\_B {}^B\bm{b}\_i\right]^T {}^A\bm{a}\_i \Big]^{1/2}
+ \end{aligned}
+\end{equation}
+
+If the position and orientation of the platform lie in the feasible workspace, the solution is unique.
+Otherwise, the solution gives complex numbers.
+
+
+#### Forward Kinematics {#forward-kinematics}
+
+
+
+In **forward kinematic analysis**, it is assumed that the vector of limb lengths \\(\bm{L}\\) is given and the problem is to find the position \\({}^A\bm{P}\\) and the orientation \\({}^A\bm{R}\_B\\).
+
+
+
+The size of the problem depends of the representation used for orientation (rotation matrix, Euler angles, ...).
+
+The forward kinematic problem is then to solve many **highly nonlinear equations** that are extremely difficult to solve.
+
+The complexity of the problem depends widely on the manipulator architecture and geometry.
+
+
+## Jacobian: Velocities and Static Forces {#jacobian-velocities-and-static-forces}
+
+
+
+
+### Introduction {#introduction}
+
+
+
+The Jacobian matrix not only reveals the **relation between the joint variable velocities of a parallel manipulator to the moving platform linear and angular velocities**, it also constructs the transformation needed to find the **actuator forces from the forces and moments acting on the moving platform**.
+
+
+
+For specific configurations, **local degeneracy** can occur and leads to:
+
+1. An instantaneous change in the degrees-of-freedom of the system and hence a **loss of controllability**
+2. An important **degradation of the natural stiffness** that may lead to very high joint forces or torques
+
+Therefore, it is very important to **identify singular configurations** at the design stage to improve the performance.
+
+
+### Angular and Linear Velocities {#angular-and-linear-velocities}
+
+To determine the absolute linear velocity of a point, the derivative must be calculated relative to a **fixed** frame.
+Differentiation of a position vector with respect to a moving frame results in a relative velocity.
+Therefore, it is necessary to define the arithmetics to transform the relative velocities to the absolute ones.
+
+
+#### Angular Velocity of a Rigid Body {#angular-velocity-of-a-rigid-body}
+
+Angular velocity is an attribute of a rigid body that describes the rotational motion of the frame \\(\\{\bm{B}\\}\\) that is attached to the rigid body.
+
+
+
+The **angular velocity vector** \\(\bm{\Omega}\\) describes the instantaneous rotation of frame \\(\\{\bm{B}\\}\\) with respect to the fixed frame \\(\\{\bm{A}\\}\\).
+The direction of \\(\bm{\Omega}\\) indicates the instantaneous axis of rotation and its magnitude indicates the speed of rotation.
+
+
+
+The angular velocity vector is related to the screw formalism by equation \ref{eq:angular\_velocity\_vector}.
+
+\begin{equation} \label{eq:angular\_velocity\_vector}
+ \boxed{\bm{\Omega} \triangleq \dot{\theta} \hat{\bm{s}}}
+\end{equation}
+
+The angular velocity can be expressed in any frame. For example \\({}^A\bm{\Omega}\\) denotes the angular velocity of the rigid body expressed in the frame \\(\\{\bm{A}\\}\\) and we have:
+
+\begin{equation} \label{eq:angular\_velocity\_frame\_A}
+ \begin{aligned}
+ ^A \bm{\Omega} &= \Omega\_x \hat{\bm{x}} + \Omega\_y \hat{\bm{y}} + \Omega\_z \hat{\bm{z}} \\\\
+ &= \dot{\theta}\left( s\_x \hat{\bm{x}} + s\_y \hat{\bm{y}} + s\_z \hat{\bm{z}} \right)
+ \end{aligned}
+\end{equation}
+
+in which \\(\Omega\_x\\), \\(\Omega\_y\\) and \\(\Omega\_z\\) are the three components of angular velocity of a rigid body expressed in frame \\(\\{\bm{A}\\}\\).
+
+
+#### Linear Velocity of a Point {#linear-velocity-of-a-point}
+
+Linear velocity of a point P can be easily determined by the time derivative of the position vector \\(p\\) of that point with respect to a fixed frame:
+
+\begin{equation}
+ v\_p = \dot{p} = \left( \frac{dp}{dt} \right)\_{\text{fix}}
+\end{equation}
+
+If the variation of the position vector is determined with respect to a moving frame, we obtain the relative velocity:
+
+\begin{equation}
+ v\_{\text{rel}} = \left( \frac{\partial p}{\partial t} \right)\_{\text{mov}}
+\end{equation}
+
+In classical mechanics, it is shown that the relation between absolute derivative of any vector to its relative derivative is given by:
+
+\begin{equation} \label{eq:rel\_fix\_derivative}
+ \left( \frac{d(\cdot)}{dt} \right)\_{\text{fix}} = \left( \frac{\partial (\cdot)}{\partial t} \right)\_{\text{mov}} + \bm{\Omega} \times (\cdot)
+\end{equation}
+
+in which \\(\bm{\Omega}\\) denotes the angular velocity of the moving frame with respect to the fixed frame.
+
+The term \\(\bm{\Omega}\times(\cdot)\\) can be written in matrix form:
+
+\begin{equation} \label{eq:rel\_fix\_derivative\_matrix\_form}
+ \boxed{\left( \frac{d(\cdot)}{dt} \right)\_{\text{fix}} = \left( \frac{\partial (\cdot)}{\partial t} \right)\_{\text{mov}} + \bm{\Omega}^\times(\cdot)}
+\end{equation}
+
+The matrix \\(\bm{\Omega}^\times\\) denotes a **skew-symmetric matrix** defined by:
+
+\begin{equation} \label{eq:skew\_symmetric\_matrix}
+ \boxed{\bm{\Omega}^\times = \begin{bmatrix}
+ 0 & -\Omega\_z & \Omega\_y \\\\
+ \Omega\_z & 0 & -\Omega\_x \\\\
+ -\Omega\_y & \Omega\_x & 0
+ \end{bmatrix}}
+\end{equation}
+
+Now consider the general motion of a rigid body shown in [Figure 7](#figure--fig:general-motion), in which a moving frame \\(\\{\bm{B}\\}\\) is attached to the rigid body and **the problem is to find the absolute velocity** of point \\(P\\) with respect to a fixed frame \\(\\{\bm{A}\\}\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_general_motion.png" caption="Figure 7: Instantaneous velocity of a point \\(P\\) with respect to a moving frame \\(\\{\bm{B}\\}\\)" >}}
+
+The rigid body perform a general motion which is a combination of a translation, denoted by the vector \\({}^A\bm{P}\_{O\_B}\\), and an instantaneous rotation.
+To determine the velocity of point \\(P\\), we start with the relation between absolute and relative position vectors:
+\\[ ^A\bm{P} = {}^A\bm{P}\_{O\_B} + {}^A\bm{R}\_B {}^B\bm{P} \\]
+
+To derive the velocity of point \\(P\\), we differentiate with respect to time:
+\\[ {}^A\bm{v}\_P = {}^A\bm{v}\_{O\_B} + {}^A\dot{\bm{R}}\_B{}^B\bm{P} + {}^A\bm{R}\_B\underbrace{{}^B\bm{v}\_P}\_{=0} \\]
+
+The time derivative of the rotation matrix \\({}^A\dot{\bm{R}}\_B\\) is:
+
+\begin{equation} \label{eq:rotation\_matrix\_deriv}
+ \boxed{{}^A\dot{\bm{R}}\_B = {}^A\bm{\Omega}^\times \ {}^A\bm{R}\_B}
+\end{equation}
+
+And we finally obtain equation \ref{eq:absolute\_velocity\_formula}.
+
+
+
+
+#### Screw Coordinates {#screw-coordinates}
+
+Finite rotation of a rigid body can be expressed as a rotation \\(\theta\\) about a screw axis \\(\hat{\bm{s}}\\).
+Furthermore, it is shown that the angular velocity of a rigid body is also defined as the rate of instantaneous rotation angle \\(\dot{\theta}\\) about the same screw axis \\(\hat{\bm{s}}\\).
+
+
+
+**Chasles' theorem**:
+The most general rigid-body displacement can be produced by a translation along a line followed by a rotation about the same line. Since this displacement is reminiscent of the displacement of a screw, it is called a **screw displacement**, and the line of axis is called the **screw axis**.
+
+
+
+
+### Jacobian Matrices of a Parallel Manipulator {#jacobian-matrices-of-a-parallel-manipulator}
+
+Let \\(\bm{q} = \left[ q\_1, q\_2, \ldots, q\_m \right]^T\\) denote 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\\) denote the vector of moving platform motion variables (position or orientation).
+
+\\(m\\) denotes the number of actuated joints in the manipulator, \\(n\\) denotes the number of degrees-of-freedom of the manipulator.
+
+Generally \\(m \geq n\\), in which for a fully parallel manipulator \\(m=n\\) and for redundant manipulator \\(m>n\\).
+
+\\(\bm{q}\\) and \\(\bm{\mathcal{X}}\\) are related through a system of **nonlinear algebraic equations** representing the **kinematic constraints imposed by the limbs**, which can be generally written as
+
+\begin{equation}
+ f(\bm{q}, \bm{\mathcal{X}}) = 0
+\end{equation}
+
+We can differentiate this equation with respect to time and obtain:
+
+\begin{equation}
+ \boxed{\bm{J}\_x \dot{\bm{\mathcal{X}}} = \bm{J}\_q \dot{\bm{q}}}
+\end{equation}
+
+where
+
+\begin{equation} \label{eq:jacobians}
+ \bm{J}\_x = \frac{\partial f}{\partial \bm{\mathcal{X}}} \quad \text{and} \quad \bm{J}\_q = -\frac{\partial f}{\partial \bm{q}}
+\end{equation}
+
+
+
+
+### Velocity Loop Closure {#velocity-loop-closure}
+
+The **velocity loop closures** are used for **obtaining the Jacobian matrices** in a straightforward manner.
+Velocity loop closures are derived by direct differentiation of kinematic loop closures.
+
+Kinematic loop closures are:
+\\[ \bm{p} = \bm{a}\_i + \bm{d}\_i - \bm{R} \bm{b}\_i \quad \text{for}\ i = 1, \ldots, m \\]
+
+with
+
+- \\(\bm{p}\\) the position vector of the moving platform w.r.t. frame \\(\\{\bm{A}\\}\\)
+- \\(\bm{R}\\) the rotation matrix of the moving platform
+- \\(\bm{a}\_i\\) the position vector of the \\(i\\)'th limb of the fixed platform w.r.t. frame \\(\\{\bm{A}\\}\\)
+- \\(\bm{b}\_i\\) the position vector of the \\(i\\)'th limb of the moving platform w.r.t. frame \\(\\{\bm{B}\\}\\)
+- \\(\bm{d}\_i\\) the limb vector
+
+By taking the time derivative, we obtain the following **Velocity Loop Closure**:
+
+\begin{equation} \label{eq:velocity\_loop\_closure}
+ \boxed{\dot{\bm{p}} = \dot{\bm{d}\_i} - \bm{\omega} \times \bm{R} \bm{b}\_i \quad \text{for}\ i = 1, \ldots, m}
+\end{equation}
+
+
+### Singularity Analysis of Parallel Manipulators {#singularity-analysis-of-parallel-manipulators}
+
+The singularities occur when:
+
+- \\(\bm{J}\_q\\) is rank deficient (Inverse kinematic singularity)
+- \\(\bm{J}\_x\\) is rank deficient (Forward kinematic singularity)
+
+
+#### Inverse Kinematic Singularity {#inverse-kinematic-singularity}
+
+Inverse kinematic singularity happens when \\(\bm{J}\_q\\) (\\(m \times m\\) matrix) is rank deficient (\\(\det \bm{J}\_q = 0\\)).
+
+The corresponding configurations are located at the boundary of the manipulator workspace or on the internal boundaries between sub-regions of the workspace.
+
+In such cases, there exist nonzero vectors \\(\dot{\bm{q}}\\) which correspond to a null Cartesian twist vector \\(\dot{\bm{\mathcal{X}}}\\). In other words, infinitesimal motion of the moving platform along certain directions cannot be accomplished.
+**The manipulator looses one or more degrees-of-freedom**.
+
+
+#### Forward Kinematic Singularity {#forward-kinematic-singularity}
+
+Forward kinematic singularity happens when \\(\bm{J}\_x\\) (\\(m \times n\\) matrix) is rank deficient (\\(\det({\bm{J}\_x}^T \bm{J}\_x) = 0\\)).
+If the manipulator is not redundantly actuated (\\(m=n\\)), then the Jacobian matrix \\(\bm{J}\_x\\) is square and the forward kinematic singularity happens when \\(\det \bm{J}\_x = 0\\).
+
+The degeneracy occur inside the manipulator's Cartesian workspace and corresponds to the set of configurations for which two different branches of forward kinematic problem meet.
+
+There exist nonzero cartesian twist vectors \\(\dot{\bm{\mathcal{X}}}\\) that are mapped into a vanishing actuator velocity vector \\(\dot{\bm{\mathcal{q}}}\\).
+
+The corresponding configuration will be one in which an infinitesimal motion of the platform is possible even if the actuator are locked. **The manipulator gains one or several degrees-of-freedom and its stiffness vanishes in the corresponding direction(s)**.
+
+
+### Jacobian Analysis of the Stewart-Gough Platform {#jacobian-analysis-of-the-stewart-gough-platform}
+
+
+#### Velocity Loop Closure {#velocity-loop-closure}
+
+The input joint rate is denoted by \\(\dot{\bm{\mathcal{L}}} = [ \dot{l}\_1, \dot{l}\_2, \dot{l}\_3, \dot{l}\_4, \dot{l}\_5, \dot{l}\_6 ]^T\\), and the output twist vector is denoted by \\(\dot{\bm{\mathcal{X}}} = [{}^A\bm{v}\_p, {}^A\bm{\omega}]^T\\).
+
+The jacobian matrix can be derived by formulating a velocity loop closure equation of each limb.
+The loop closure equations for each limb are:
+
+\begin{equation} \label{eq:loop\_closure\_limb}
+ {}^A\bm{P} + {}^A\bm{R}\_B {}^B\bm{b}\_i = l\_i {}^A\hat{\bm{s}}\_i + {}^A\bm{a}\_i
+\end{equation}
+
+By differentiate this with respect to time:
+
+\begin{equation} \label{eq:loop\_closure\_limb\_diff}
+ {}^A\bm{v}\_p + {}^A \dot{\bm{R}}\_B {}^B\bm{b}\_i = \dot{l}\_i {}^A\hat{\bm{s}}\_i + l\_i {}^A\dot{\hat{\bm{s}}}\_i
+\end{equation}
+
+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}\\}\\).
+- \\(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
+\\[ {}^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\\):
+\\[ \hat{\bm{s}}\_i {}^A\bm{v}\_p + ({}^A\bm{b}\_i \times \hat{\bm{s}}\_i) {}^A\bm{\omega} = \dot{l}\_i \\]
+
+We then omit the superscript \\(A\\) and we can rearrange the 6 equations into a matrix form
+
+\begin{equation}
+ \boxed{\dot{\bm{\mathcal{L}}} = \bm{J} \dot{\bm{\mathcal{X}}}}
+\end{equation}
+
+
+
+**Jacobian Matrix of a Stewart Platform**:
+
+\begin{equation} \label{eq:jacobian\_formula\_stewart}
+ \bm{J} = \begin{bmatrix}
+ {\hat{\bm{s}}\_1}^T & (\bm{b}\_1 \times \hat{\bm{s}}\_1)^T \\\\
+ {\hat{\bm{s}}\_2}^T & (\bm{b}\_2 \times \hat{\bm{s}}\_2)^T \\\\
+ {\hat{\bm{s}}\_3}^T & (\bm{b}\_3 \times \hat{\bm{s}}\_3)^T \\\\
+ {\hat{\bm{s}}\_4}^T & (\bm{b}\_4 \times \hat{\bm{s}}\_4)^T \\\\
+ {\hat{\bm{s}}\_5}^T & (\bm{b}\_5 \times \hat{\bm{s}}\_5)^T \\\\
+ {\hat{\bm{s}}\_6}^T & (\bm{b}\_6 \times \hat{\bm{s}}\_6)^T
+ \end{bmatrix}
+\end{equation}
+
+\\(\bm{J}\\) then **depends only** on:
+
+- \\(\hat{\bm{s}}\_i\\) the orientation of the limbs
+- \\(\bm{b}\_i\\) the position of the joints with respect to \\(O\_B\\) and express in \\(\\{\bm{A}\\}\\).
+
+
+
+
+#### Singularity Analysis {#singularity-analysis}
+
+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}.
+
+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}\\).
+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 \\]
+
+
+### Static Forces in Parallel Manipulators {#static-forces-in-parallel-manipulators}
+
+The relation between the forces/moments applied to the environment at the point of contact and the actuator forces/torques is determined and analyzed in the study of static force analysis.
+
+It is assumed that the manipulator is at a static equilibrium, and that the actuator forces required to produce the desired contact forces are determined.
+
+Two methods are usually applied: the **free-body diagram** and the **principle of virtual work**.
+
+In the **free-body diagram approach**, the actuator forces are determined to produce desired contact forces/moments as well as the internal and interacting forces/torques applied at the limbs. The analysis of such forces is essential in the design of a manipulator to determine the stresses and deflection of each link and joint.
+
+However, if only the actuator forces are desired to be determined, the **principle of virtual work** is more efficient and computationally less expensive.
+
+
+#### Virtual Work Approach {#virtual-work-approach}
+
+A virtual displacement for a parallel manipulator refers to an infinitesimal change in the general displacement of the moving platform as a result of any arbitrary infinitesimal changes in the joint variables at a given instant of time.
+
+The virtual displacement of the joints can be written as \\(\delta \bm{q} = [\delta q\_1, \delta q\_2, \cdots, \delta q\_m]^T\\) and \\(\delta \bm{\mathcal{X}} = [\delta x, \delta y, \delta z, \delta \theta\_x, \delta \theta\_y, \delta \theta\_z ]^T\\) denotes the virtual displacement of a contacting point of the moving platform.
+\\([\delta \theta\_x, \delta \theta\_y, \delta \theta\_z ]^T = \delta \theta \hat{\bm{s}}\\) are the orientation variables represented by screw coordinates.
+
+Let the vector of actuator forces be denoted by \\(\bm{\tau} = [\tau\_1, \tau\_2, \cdots, \tau\_m]^T\\), and the external forces/torque acting on the contact point of the moving platform denoted by a wrench in a screw coordinate as \\(\bm{\mathcal{F}} = [\bm{f}, \bm{n}]^T\\) in which \\(\bm{f} = [f\_x, f\_y, f\_z]^T\\) denotes the external forces, and \\(\bm{n} = [n\_x, n\_y, n\_z]^T\\) denotes the external torque action on the moving platform at the point of contact to the environment.
+
+We assume that the frictional forces acting on the joints are negligible, and also that the gravitational forces of the limb links are much smaller than the interacting force of the moving platform to the environment.
+The principle of virtual work states that the total virtual work, \\(\delta W\\), done by all actuators and external forces is equal to zero:
+
+\begin{equation} \label{eq:virtual\_work\_principle}
+ \boxed{\delta W = \bm{\tau}^T \delta \bm{q} - \bm{\mathcal{F}}^T \delta \bm{\mathcal{X}} = 0}
+\end{equation}
+
+Furthermore, from the definition of the Jacobian, the virtual displacements \\(\delta \bm{q}\\) and \\(\delta \bm{\mathcal{X}}\\) are related by the Jacobian:
+\\[ \delta \bm{q} = \bm{J} \cdot \delta \bm{\mathcal{X}} \\]
+
+We then have \\(\left( \bm{\tau}^T \bm{J} - \bm{\mathcal{F}}^T \right) \delta \bm{\mathcal{X}} = 0\\) that holds for any arbitrary virtual displacement \\(\delta \bm{\mathcal{X}}\\), hence
+\\[ \bm{\tau}^T \bm{J} - \bm{\mathcal{F}}^T = 0 \\]
+
+
+
+We obtain that the **Jacobian matrix** constructs the **transformation needed to find the actuator forces** \\(\bm{\tau}\\) **from the wrench acting on the moving platform** \\(\bm{\mathcal{F}}\\):
+
+\begin{equation} \label{eq:jacobian\_forces}
+ \bm{\mathcal{F}} = \bm{J}^T \bm{\tau}
+\end{equation}
+
+
+
+
+#### Static Forces of the Stewart-Gough Platform {#static-forces-of-the-stewart-gough-platform}
+
+As shown in [Figure 8](#figure--fig:stewart-static-forces), the twist of moving platform is described by a 6D vector \\(\dot{\bm{\mathcal{X}}} = \left[ {}^A\bm{v}\_P \ {}^A\bm{\omega} \right]^T\\), in which \\({}^A\bm{v}\_P\\) is the velocity of point \\(O\_B\\), and \\({}^A\bm{\omega}\\) is the angular velocity of moving platform.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_stewart_static_forces.png" caption="Figure 8: Free-body diagram of forces and moments action on the moving platform and each limb of the Stewart-Gough platform" >}}
+
+Consider an external wrench generated by the manipulator and applied to the environment at the point \\(O\_B\\) denoted by \\(\bm{\mathcal{F}} = [\bm{f} \ \bm{n}]^T\\).
+
+It is assumed that no external forces are applied to the limbs except the actuator forces.
+Therefore, the static force can be assumed to be **along the limb axis** \\(\hat{\bm{s}}\_i\\), and the limb is subject to a tension/compression force \\(f\_i\\).
+
+At static equilibrium, the summation of all acting forces on the moving platform shall be zero, therefore
+
+\begin{equation}
+ -\bm{f} + \sum\_{i=1}^6 f\_i \hat{\bm{s}}\_i = 0
+\end{equation}
+
+in which \\(-\bm{f}\\) if the **external force** applied to the moving platform from the environment.
+
+The summation of moments contributed by all forces acting on the moving platform about \\(O\_B\\) is as follows:
+
+\begin{equation}
+ -\bm{n} + \sum\_{i=1}^6 b\_i \times f\_i \hat{\bm{s}}\_i = 0
+\end{equation}
+
+in which \\(-n\\) is the **external moment** applied to the moving platform by the environment, and \\(b\_i\\) is the position vector from the point \\(O\_B\\) to the attached point \\(B\_i\\) on the moving platform.
+
+Writing the two equations together in a matrix form results in
+
+\begin{equation}
+ \begin{bmatrix}
+ \hat{\bm{s}}\_1 & \hat{\bm{s}}\_2 & \cdots & \hat{\bm{s}}\_6 \\\\
+ \bm{b}\_1 \times \hat{\bm{s}}\_1 & \bm{b}\_2 \times \hat{\bm{s}}\_2 & \cdots & \bm{b}\_6 \times \hat{\bm{s}}\_6
+ \end{bmatrix} \cdot \begin{bmatrix}
+ f\_1 \\\ f\_2 \\\ \vdots \\\ f\_6
+ \end{bmatrix} = \begin{bmatrix}
+ \bm{f} \\\ \bm{n}
+ \end{bmatrix}
+\end{equation}
+
+There we can recognize the transpose of the Jacobian matrix:
+
+\begin{equation}
+ \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{\tau}}
+\end{equation}
+
+in which \\(\bm{\tau} = [f\_1, f\_2, \cdots, f\_6]^T\\) is the vector of actuator forces, and \\(\bm{\mathcal{F}} = [\bm{f}, \bm{n}]^T\\) is the 6D wrench applied by the manipulator to the environment.
+
+
+### Stiffness Analysis of Parallel Manipulators {#stiffness-analysis-of-parallel-manipulators}
+
+Here, we focus on the deflections of the manipulator moving platform that are the result of the applied wrench to the environment.
+The amount of these deflections are a function of the applied wrench as well as the manipulator **structural stiffness**.
+Thus, the stiffness of a manipulator has a direct impact on its overall positioning accuracy if the manipulator is in contact with a stiff environment.
+
+
+#### Stiffness and Compliance Matrices {#stiffness-and-compliance-matrices}
+
+The relation between the applied actuator force \\(\tau\_i\\) and the corresponding small deflection \\(\Delta q\_i\\) along the applied force axis can be approximated as a **linear function**:
+
+\begin{equation} \label{eq:stiffness\_actuator}
+ \boxed{\tau\_i = k\_i \cdot \Delta q\_i}
+\end{equation}
+
+in which \\(k\_i\\) denotes the **stiffness constant of the actuator**.
+
+Re-writing the equation \ref{eq:stiffness\_actuator} for all limbs in a matrix form result in
+
+\begin{equation} \label{eq:stiffness\_matrix\_relation}
+ \boxed{\bm{\tau} = \mathcal{K} \cdot \Delta \bm{q}}
+\end{equation}
+
+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.
+
+Writing the Jacobian relation given in equation \ref{eq:jacobian\_disp} for infinitesimal deflection read
+
+\begin{equation} \label{eq:jacobian\_disp\_inf}
+ \Delta \bm{q} = \bm{J} \cdot \Delta \bm{\mathcal{X}}
+\end{equation}
+
+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
+
+\begin{equation} \label{eq:jacobian\_force\_inf}
+ \bm{\mathcal{F}} = \bm{J}^T \bm{\tau}
+\end{equation}
+
+Hence, by substituting \ref{eq:stiffness\_matrix\_relation} and \ref{eq:jacobian\_disp\_inf} in \ref{eq:jacobian\_force\_inf}, we obtain:
+
+\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}}}
+\end{equation}
+
+Equation \ref{eq:stiffness\_jacobian} implies that the moving platform output wrench is related to its deflection by the **stiffness matrix** \\(K\\).
+
+
+
+The stiffness matrix has desirable characteristics for analysis:
+
+- It is a **symmetric positive definite matrix**, however, it is configuration dependent
+- If the manipulator actuators have all the same stiffness constants \\(k\\), the stiffness matrix is reduced to the form \\(\bm{K} = k \bm{J}^T \bm{J}\\)
+
+If the stiffness matrix is inversible (\\(\det( \bm{J}^T \bm{J}) \ne 0\\)), the **compliance matrix** of the manipulator is defined as
+
+\begin{equation} \label{eq:compliance\_def}
+ \boxed{\bm{C} = \bm{K}^{-1} = (\bm{J}^T \mathcal{K} \bm{J})^{-1}}
+\end{equation}
+
+The compliance matrix of a manipulator shows the mapping of the moving platform wrench to its deflection by
+
+\begin{equation}
+ \Delta \bm{\mathcal{X}} = \bm{C} \cdot \bm{\mathcal{F}}
+\end{equation}
+
+
+#### Transformation Ellipsoid {#transformation-ellipsoid}
+
+As seen previously, the Jacobian matrix \\(\bm{J}\\) transforms n-dimensional moving platform velocity vector \\(\dot{\bm{\mathcal{X}}}\\) into m-dimensional actuated joint velocity \\(\dot{\bm{q}}\\).
+Also, the Jacobian transpose \\(\bm{J}^T\\) maps m-dimensional actuated joint forces \\(\bm{\tau}\\) into n-dimensional applied wrench \\(\bm{\mathcal{F}}\\).
+
+One way to **characterize these transformation** is to compare the amplitude and direction of the moving platform velocity generated by a **unit** actuator joint velocity.
+To achieve this goal, we confine the actuator joint velocity vector on a m-dimensional unit sphere
+\\[ \dot{\bm{q}}^T \dot{\bm{q}} = 1 \\]
+and compare the resulting moving platform velocity in n-dimensional space:
+\\[ \dot{\bm{\mathcal{X}}}^T \bm{J}^T \bm{J} \dot{\bm{\mathcal{X}}} = 1 \\]
+
+Similarly, we can confine the exerted moving platform wrench \\(\bm{\mathcal{F}}^T \bm{\mathcal{F}} = 1\\) and compare the required actuator forces: \\(\bm{\tau}^T \bm{J} \bm{J}^T \bm{\tau} = 1\\).
+
+Consider the case of fully parallel manipulators.
+Then \\(\bm{J}\bm{J}^T\\) and \\(\bm{J}^T\bm{J}\\) transformations are represented by \\(n \times n\\) matrices.
+Geometrically, these transformations represent a **hyper-ellipsoid** in n-dimensional space, whose principal axes are the **eigenvectors** of \\(\bm{J}^T\bm{J}\\) and \\(\bm{J}\bm{J}^T\\) respectively.
+Furthermore, the lengths of the principal axes are equal to the reciprocals of the square roots of the eigenvalues of \\(\bm{J}\bm{J}^T\\) and \\(\bm{J}^T\bm{J}\\), which are also equal to the reciprocals of the **singular values** of \\(\bm{J}\\).
+
+The shape of this hyper-ellipsoid in space indicates the characteristics of the transformation.
+As this hyper-ellipsoid is closer to a hyper-sphere, the transformation becomes more uniform in different directions.
+Since Jacobian matrix is **configuration dependent**, the shape of the hyper-ellipsoid is also configuration dependent, and as the moving platform moves from one pose to the other, the shape of the hyper-ellipsoid changes accordingly.
+
+A measure of the dexterity of the manipulator is the reciprocal of the Jacobian matrix condition number defined as:
+
+\begin{equation}
+ \frac{1}{\kappa} = \frac{\sigma\_{\text{min}}}{\sigma\_{\text{max}}}
+\end{equation}
+
+in which \\(\sigma\_{\text{min}}\\) and \\(\sigma\_{\text{max}}\\) are the smallest and the largest singular values of the Jacobian matrix.
+
+
+#### Stiffness Analysis of the Stewart-Gough Platform {#stiffness-analysis-of-the-stewart-gough-platform}
+
+In this section, we restrict our analysis to a 3-6 structure ([Figure 9](#figure--fig:stewart36)) in which there exist six distinct attachment points \\(A\_i\\) on the fixed base and three moving attachment point \\(B\_i\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_stewart36.png" caption="Figure 9: Schematic of a 3-6 Stewart-Gough platform" >}}
+
+Denote the vector of actuated joint forces by \\(\bm{\tau} = [f\_1 \ f\_2 \ f\_3 \ f\_4 \ f\_5 \ f\_6 ]\\), and the corresponding vector of infinitesimal displacements of actuated limbs denoted by \\(\Delta \bm{L} = [\Delta l\_1 \ \Delta l\_2 \ \Delta l\_3 \ \Delta l\_4 \ \Delta l\_5 \ \Delta l\_6 ]\\).
+The relation between \\(\Delta \bm{L}\\) and \\(\bm{\tau}\\) is described by a diagonal \\(6 \times 6\\) matrix \\(\mathcal{K}\\):
+\\[ \bm{\tau} = \mathcal{K} \cdot \Delta \bm{L} \\]
+
+Also, from the definition of the Jacobian, we have:
+\\[ \Delta \bm{L} = \bm{J} \cdot \Delta \bm{\mathcal{X}} \\]
+in which \\(\Delta \bm{\mathcal{X}} = [\Delta\_x \ \Delta\_y \ \Delta\_z \ \Delta \theta\_x \ \Delta \theta\_y \ \Delta \theta\_z ]\\) is the vector of infinitesimal linear and angular motions of the moving platform.
+
+Also, the vector of the moving platform output wrench denoted by \\(\bm{F} = [f\_x \ f\_y \ f\_z \ n\_x \ n\_y \ n\_z ]\\) is related to the vector of actuated joint forces \\(\bm{\tau}\\) by:
+\\[ \bm{F} = \bm{J}^T \cdot \bm{\tau} \\]
+
+By substitution, we obtain:
+\\[ \bm{\mathcal{F}} = \bm{K} \cdot \Delta \bm{\mathcal{X}} \\]
+in which
+\\[ \bm{K} = \bm{J}^T \mathcal{K} \bm{J} \\]
+where \\(K\\) is called the **stiffness matrix** of the Stewart-Gough manipulator.
+
+For a given configuration of the moving platform, the eigenvalue of the stiffness matrix represents the stiffness of the manipulator in the corresponding eigenvector direction.
+Furthermore, the reciprocal of the stiffness matrix condition number may be used to represent the dexterity of the manipulator.
+
+The maximum stiffness of the manipulator can be analyzed by the maximum singular value of the Jacobian matrix.
+The largest axis of the stiffness transformation hyper-ellipsoid is given by this value at each configuration.
+
+
+## Dynamics {#dynamics}
+
+
+
+
+### Introduction {#introduction}
+
+The dynamic analysis of parallel manipulators presents an inherent complexity due to their closed-loop structure.
+Several approaches have been proposed.
+
+Traditional **Newton-Euler** formulation is used for dynamic analysis of general parallel manipulators.
+In this formulation, the equation of motion of each limb and the moving platform must be derived, which inevitably leads to a large number of equations and less computational efficiency.
+On the other hand, all the reaction forces can be computed, which is very useful in the design of a parallel manipulator.
+
+The **Lagrangian** formulation eliminates all the unwanted reaction forces at the outset, and therefore, is quite efficient.
+However, because of the constraints imposed by the closed-loop structure, deriving explicit equations of motions in terms of a set of generalized coordinates becomes a prohibitive task.
+
+A third approach is to use the **principle of virtual work**, in which the computation of the constraint forces are bypassed.
+In this method, inertial forces and moments are computed using linear and angular accelerations of the bodies.
+Then, the whole manipulator is considered to be in static equilibrium by using the d'Alembert's principle, and the principle of virtual work is applied to derive the input forces and torques.
+
+Different objectives require different forms of formulations, there are three key issues pursued to derive dynamic formulation of parallel manipulators:
+
+1. **Calculation of internal forces** either active or passive for the design process of the manipulator
+2. **Study on dynamical properties** of the manipulator for controller design
+3. Utilization of dynamic specifications in an inverse dynamics controller or any **model-based control topology**
+
+The first item is the main advantage of the Newton-Euler formulation, the second and third items are the benefits of using the Lagrange or virtual work approaches.
+
+The dynamic equations in an **explicit form** can be written as:
+
+\begin{equation}
+ \boxed{\bm{M}(\bm{\mathcal{X}}) \ddot{\bm{\mathcal{X}}} + \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) \dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) = \bm{\mathcal{F}}}
+\end{equation}
+
+in which:
+
+- \\(\bm{\mathcal{X}}\\) is a vector of the generalized coordinates
+- \\(\bm{M}(\bm{\mathcal{X}})\\) denotes the system **mass matrix**
+- \\(\bm{C}(\bm{X},\dot{\bm{X}})\\) denotes the **Coriolis and centrifugal matrix**
+- \\(\bm{G}(\bm{X})\\) denotes the **gravity vector**
+- \\(\bm{\mathcal{F}}\\) denotes the generalized force
+
+Deriving explicit dynamic equations for parallel manipulators is a very prohibitive task because of the closed-loop nature of the manipulator.
+
+
+### Dynamics of the Rigid Bodies {#dynamics-of-the-rigid-bodies}
+
+
+#### Acceleration of Rigid Bodies {#acceleration-of-rigid-bodies}
+
+
+
+**Acceleration Analysis**:
+The acceleration analysis consists of studying the variations of linear velocity of a point and angular velocity of a rigid body with respect to time.
+
+
+
+Direct differentiation of these vectors with respect to time in a **fixed** frame leads to linear velocity of a point and angular velocity of a rigid body, respectively.
+Note that, to determine the absolute linear velocity of a point, the derivative must be calculated relative to a fixed frame.
+In the study of robotic manipulators, usually **multiple moving frames** are defined to carefully determine the motion of the moving platform.
+Therefore, it is necessary to define the required arithmetics to transform the relative accelerations into absolute ones.
+
+
+##### Angular Acceleration of a Rigid Body {#angular-acceleration-of-a-rigid-body}
+
+To define angular acceleration of a rigid body, consider a moving frame \\(\\{\bm{B}\\}\\) attached to the rigid body, and the motion analyzed with respect to a fixed frame.
+Angular acceleration is an attribute of a rigid body and describes the variation of angular velocity of frame \\(\\{\bm{B}\\}\\) with respect to time.
+
+
+
+**Angular acceleration vector**, denoted by the symbol \\(\dot{\bm{\Omega}}\\), describes the instantaneous change of the angular velocity of frame \\(\\{\bm{B}\\}\\), denoted by \\(\bm{\Omega}\\), with respect to the fixed frame \\(\\{\bm{A}\\}\\):
+
+\begin{equation} \label{eq:angular\_acceleration}
+ \begin{aligned}
+ \dot{\bm{\Omega}} = \frac{d \bm{\Omega}}{dt} &= \ddot{\theta} \hat{\bm{s}} + \dot{\theta} \dot{\hat{\bm{s}}} \\\\
+ &= \ddot{\theta} \hat{\bm{s}} + \dot{\theta} (\bm{\Omega} \times \hat{\bm{s}}) \\\\
+ &= \ddot{\theta} \hat{\bm{s}}
+ \end{aligned}
+\end{equation}
+
+where \\(\\{\theta, \hat{\bm{s}}\\}\\) are the screw parameters representing the rotation of the rigid body.
+
+
+
+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}\\).
+
+
+##### Linear Acceleration of a Point {#linear-acceleration-of-a-point}
+
+Linear acceleration of a point \\(P\\) can be easily determined by time derivative of the velocity vector \\(\bm{v}\_P\\) of that point with respect to a fixed frame:
+
+\begin{equation} \label{eq:linear\_acceleration}
+ \bm{a}\_p = \dot{\bm{v}}\_p = \left( \frac{d\bm{v}\_p}{dt} \right)\_\text{fix}
+\end{equation}
+
+Note that this is correct only if the derivative is taken with respect to a **fixed** frame.
+
+Now consider the general motion of a rigid body, in which a moving frame \\(\\{\bm{B}\\}\\) is attached to the rigid body and the problem is to find the absolute acceleration of point \\(P\\) with respect to the fixed frame \\(\\{\bm{A}\\}\\).
+The rigid body performs a general motion, which is a combination of a translation, denoted by the velocity vector \\({}^A\bm{v}\_{O\_B}\\), and an instantaneous angular rotation denoted by \\(\bm{\Omega}\\) (see [Figure 7](#figure--fig:general-motion)).
+To determine acceleration of point \\(P\\), we start with the relation between absolute and relative velocities of point \\(P\\):
+
+\begin{equation}
+ {}^A\bm{v}\_P = {}^A\bm{v}\_{O\_B} + {}^A\bm{R}\_B{}^B\bm{v}\_P + {}^A\bm{\Omega}^\times {}^A\bm{R}\_B {}^B\bm{P}
+\end{equation}
+
+In order to derive acceleration of point \\(P\\), we differentiate both sides with respect to time and we obtain
+
+\begin{equation}
+ \begin{split}
+ {}^A\bm{a}\_p\ &= {}^A\bm{a}\_{O\_B} \quad \text{(linear acc. of } \\{\bm{B}\\} \text{)} \\\\
+ &+ {}^A\bm{R}\_B{}^B\bm{a}\_p \quad \text{(relative acc. of } P \text{ w.r.t. } \\{\bm{B}\\} \text{)} \\\\
+ &+ {}^A\dot{\bm{\Omega}}^\times {}^A\bm{R}\_B {}^B\bm{P} \quad \text{(angular acceleration of } \\{\bm{B}\\} \text{)} \\\\
+ &+ {}^A\bm{\Omega}^\times ({}^A\bm{\Omega}^\times {}^A\bm{R}\_B {}^B\bm{P}) \quad \text{(centrifugal)} \\\\
+ &+ 2{}^A\bm{\Omega}^\times {}^A\bm{R}\_B {}^B\bm{v}\_P \quad \text{(Coriolis)}
+ \end{split}
+\end{equation}
+
+For the case where \\(P\\) is a point embedded in the rigid body, \\({}^B\bm{v}\_P = 0\\) and \\({}^B\bm{a}\_P = 0\\) and we obtain:
+
+\begin{equation}
+ \begin{split}
+ {}^A\bm{a}\_P = {}^A\bm{a}\_{O\_B} &+ {}^A\dot{\bm{\Omega}}^\times {}^A\bm{R}\_B {}^B\bm{P} \\\\
+ &+ {}^A\bm{\Omega}^\times ({}^A\bm{\Omega}^\times {}^A\bm{R}\_B {}^B\bm{P})
+ \end{split}
+\end{equation}
+
+
+#### Mass Properties {#mass-properties}
+
+In this section, the properties of mass, namely **center of mass**, **moments of inertia** and its characteristics and the required transformations are described.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_mass_property_rigid_body.png" caption="Figure 10: Mass properties of a rigid body" >}}
+
+
+##### Center of Mass {#center-of-mass}
+
+Consider a reference frame \\(\\{\bm{A}\\}\\) in which the mass distribution of a material body is measured, and let \\(\bm{p}\\) denote the position vector of a differential mass \\(\rho dV\\) with respect to a reference frame.
+
+The **center of mass** of a rigid body is defined as the point \\(C\\) which satisfied the following condition
+
+\begin{equation}
+ \bm{p}\_c = \frac{1}{m} \int\_V \bm{p} \rho dV
+\end{equation}
+
+in which the mass of the material body \\(\\{\bm{B}\\}\\) with density \\(\rho\\) and volume \\(V\\) is defined as
+
+\begin{equation}
+ m = \int\_V \rho dV
+\end{equation}
+
+
+##### Moments of Inertia {#moments-of-inertia}
+
+As opposed to the mass, which introduces inertia to linear accelerations, moment of inertia is the property of mass which introduces **inertia to angular accelerations**.
+Basically, for rotational motion, **the distribution of mass with respect to the axis of rotation introduces resistance to the angular acceleration**.
+
+Moments of inertia \\(\bm{I}\\) about \\(\bm{A}\\) is defined by the second moment of the mass with respect to a reference frame of rotation as:
+
+\begin{equation} \label{eq:moment\_inertia}
+ {}^A\bm{I} = \begin{bmatrix}
+ I\_{XX} & I\_{XY} & I\_{XZ} \\\\
+ I\_{YX} & I\_{YY} & I\_{YZ} \\\\
+ I\_{ZX} & I\_{ZY} & I\_{ZZ}
+ \end{bmatrix}
+\end{equation}
+
+in which
+
+\begin{equation\*}
+ \begin{aligned}
+ I\_{XX} &= \int\_V (y^2 + z^2) \rho dV, \quad I\_{XY} = I\_{YX} = -\int\_V xy \rho dV \\\\
+ I\_{YY} &= \int\_V (x^2 + z^2) \rho dV, \quad I\_{YZ} = I\_{ZY} = -\int\_V yz \rho dV \\\\
+ I\_{ZZ} &= \int\_V (x^2 + y^2) \rho dV, \quad I\_{XZ} = I\_{ZX} = -\int\_V xz \rho dV
+ \end{aligned}
+\end{equation\*}
+
+
+##### 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}\\}\\).
+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}
+ {}^A\bm{I} = \begin{bmatrix}
+ I\_{XX} & 0 & 0 \\\\
+ 0 & I\_{YY} & 0 \\\\
+ 0 & 0 & I\_{ZZ}
+ \end{bmatrix}
+\end{equation}
+
+Such axes are called the **principal axes of inertia**, and diagonal terms are called the **principal moments of inertia**, which represent the maximum, minimum and intermediate values of the moments of inertia for a particular chosen origin \\(\\{\bm{A}\\}\\).
+
+It can be shown that the principal moments of inertial and principal axes are invariant parameters and can be determined from an eigen value decomposition of the inertia matrix in any configuration of the reference frame \\(\\{\bm{A}\\}\\).
+
+
+##### Inertia Matrix Transformations {#inertia-matrix-transformations}
+
+The moment of inertia is usually given for **frames passing through the center of mass of the rigid body**.
+**The inertia matrix changes under change of the reference frame**.
+
+Consider frame \\(\\{\bm{C}\\}\\) **parallel** to \\(\\{\bm{A}\\}\\) and attached to the center of mass of a rigid body and let \\(\bm{p}\_c = [x\_c, y\_c, z\_c]^T\\) denote the vector of the position of the center of mass with respect to frame \\(\\{\bm{A}\\}\\).
+The relation between the inertia matrix about \\(A\\) and that about \\(C\\) is given by the following relation:
+
+\begin{equation}
+ \boxed{{}^A\bm{I} = {}^C\bm{I} + m(\bm{p}\_c^T \bm{p}\_c \bm{I}\_{3 \times 3} - \bm{p}\_c \bm{p}\_c^T)}
+\end{equation}
+
+in which \\(m\\) denotes the mass of the rigid body and \\(\bm{I}\_{3 \times 3}\\) denotes the identity matrix.
+
+On the other hand, if the reference frame \\(\\{B\\}\\) has **pure rotation** with respect to the frame attached to the center of mass \\(\\{A\\}\\):
+
+\begin{equation}
+ {}^A\bm{I} = {}^A\bm{R}\_C {}^C\bm{I} {}^A\bm{R}\_C^T
+\end{equation}
+
+
+#### Momentum and Kinetic Energy {#momentum-and-kinetic-energy}
+
+
+##### Linear Momentum {#linear-momentum}
+
+Linear momentum of a material body, shown in [Figure 11](#figure--fig:angular-momentum-rigid-body), with respect to a reference frame \\(\\{\bm{A}\\}\\) is defined as
+
+\begin{equation}
+ {}^A\bm{G} = \int\_V \frac{d\bm{p}}{dt} \rho dV
+\end{equation}
+
+For any mass element \\(\rho dV\\), the position vector \\(\bm{p}\\) can be written as
+\\[ p = p\_c + r \\]
+
+And because \\(\int\_V r \rho dV = 0\\), we have by substitution
+\\[ {}^A\bm{G} = \frac{d\bm{p}\_c}{dt} \int\_V \rho dV \\]
+and thus
+
+\begin{equation} \label{eq:linear\_momentum}
+ \boxed{{}^A\bm{G} = m \cdot {}^A\bm{v}\_C}
+\end{equation}
+
+in which \\({}^A\bm{v}\_C\\) denotes the velocity of the center of mass with respect to the frame \\(\\{\bm{A}\\}\\).
+
+This result implies that the **total linear momentum** of differential masses is equal to the linear momentum of a **point mass** \\(m\\) located at the **center of mass**.
+This highlights the important of the center of mass in dynamic formulation of rigid bodies.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_angular_momentum_rigid_body.png" caption="Figure 11: The components of the angular momentum of a rigid body about \\(A\\)" >}}
+
+
+##### Angular Momentum {#angular-momentum}
+
+Consider the solid body represented in [Figure 11](#figure--fig:angular-momentum-rigid-body).
+Angular momentum of the differential masses \\(\rho dV\\) about a reference point \\(A\\), expressed in the reference frame \\(\\{\bm{A}\\}\\) is defined as
+\\[ {}^A\bm{H} = \int\_V \left(\bm{p} \times \frac{d\bm{p}}{dt} \right) \rho dV \\]
+in which \\(d\bm{p}/dt\\) denotes the velocity of differential mass with respect to the reference frame \\(\\{\bm{A}\\}\\).
+
+By substituting \\(\bm{p} = \bm{p}\_c + \bm{r}\\) in the previous equations, be obtain:
+\\[ {}^A\bm{H} = \bm{p}\_c \times m \bm{v}\_c + \int\_V \bm{r} \times (\bm{\Omega} \times \bm{r}) \rho dV \\]
+
+Therefore, angular momentum of the rigid body about point \\(A\\) is reduced to
+
+\begin{equation} \label{eq:angular\_momentum}
+ \boxed{{}^A\bm{H} = \bm{p}\_c \times \bm{G}\_c + {}^C\bm{H}}
+\end{equation}
+
+in which
+\\[ {}^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.
+
+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}.
+
+
+##### Kinetic Energy {#kinetic-energy}
+
+The Kinetic energy of a rigid body is defined as
+
+\begin{equation}
+ \boxed{\bm{K} = \frac{1}{2} \int\_V \bm{v} \cdot \bm{v} \rho dV}
+\end{equation}
+
+The velocity of a differential mass \\(\rho dV\\) can be represented by linear velocity of the center of mass and angular velocity of the rigid body as
+\\[ \bm{v} = \bm{v}\_p + \bm{\Omega} \times \bm{r} \\]
+
+By substitution, the kinetic energy of the rigid body may be obtained by:
+
+\begin{equation}
+ \boxed{\bm{K} = \frac{1}{2} \bm{v}\_c \times \bm{G}\_c + \frac{1}{2} \bm{\Omega} \cdot {}^C\bm{H}}
+\end{equation}
+
+in which \\(\bm{G}\_C\\) is the linear momentum of the rigid body and \\({}^C\bm{H}\\) is the angular momentum of the rigid body about the center of mass.
+
+This equation reveals that kinetic energy of a moving body can be represented as the **kinetic energy of a point mass located as the center of mass**, in addition to the **kinetic energy of a body rotating about the center of mass**.
+
+
+#### Newton-Euler Laws {#newton-euler-laws}
+
+The Newton and Euler laws can be written for three different cases where the angular motion:
+
+1. is about a fixed point in space
+2. is represented about the center of mass
+3. is represented about an arbitrary moving point in space
+
+We only examine the case in which all rotations are represented about the center of mass.
+
+Consider a rigid body under general motion, that is, a combination of translation and rotation.
+
+
+
+The **Newton's law** relates the change of linear momentum of the rigid body to the resulting external forces applied to it
+\\[ \sum \bm{f}\_\text{ext} = \frac{d\bm{G}\_c}{dt} \\]
+
+
+
+For the case of a constant mass rigid body, this law is reduced to
+\\[ \sum \bm{f}\_\text{ext} = m \frac{d\bm{v}\_c}{dt} = m \bm{a}\_c \\]
+in which \\(\bm{a}\_c\\) is the linear acceleration of the center of mass.
+
+
+
+The **Euler's law** relates the change of angular momentum of a rigid body about the center of mass, to the summation of all external moments applied to the rigid body about center of mass
+\\[ \sum {}^c\bm{n}\_\text{ext} = \frac{d}{dt}({}^c\bm{H}) \\]
+
+
+
+For the case of a constant mass rigid body, this law is reduced to
+\\[ \sum {}^c\bm{n}\_\text{ext} = \frac{d}{dt}({}^c\bm{I} \bm{\Omega}) = {}^c\bm{I} \dot{\bm{\Omega}} + \bm{\Omega} \times ({}^c\bm{I} \bm{\Omega}) \\]
+in which \\(\sum {}^c\bm{n}\_\text{ext}\\) is the summation of all external moments applied to the rigid body about the center of mass, \\({}^c\bm{I}\\) is the moment of inertia about the center of mass, and \\(\bm{\Omega}\\) is the angular velocity of the rigid body.
+
+
+### Newton-Euler Formulation {#newton-euler-formulation}
+
+The most popular approach used in robotics to derive the dynamic equation of motion of a parallel manipulator is the **Newton-Euler formulation**.
+
+In the Newton-Euler formulation, the **free-body diagrams** of all the limbs and moving platform are considered and the **Newton Euler laws are applied to each isolated body**.
+To apply the laws to each body, it is necessary to derive linear acceleration of links, center of mass, as well as angular acceleration of the links.
+Hence, **acceleration analysis** would be performed on all the links of the manipulator and the moving platform.
+
+Furthermore, all the external forces and moments applied to the links and to the moving platform must be carefully determined.
+Gravitational forces acting on the center of masses, frictional forces and moments acting on the joints, and any possible disturbance force or moment applied to the links and to the moving platform would be identified.
+The most important external forces or moments applied on the manipulator are the one applied by the actuators, denoted by \\(\bm{\tau} = [\tau\_{1}, \tau\_{2}, \dots, \tau\_{m}]^{T}\\).
+The forces and moments shall be derived from the set of Newton-Euler laws, which are written separately for each link and the moving platform.
+
+Finally, by elimination of these constraints forces and moments on the Newton-Euler equations written for the moving platform, the dynamic equations **relating the actuator forces and moments** \\(\bm{\tau}\\) to the **motion variables of the moving platform** \\(\bm{\mathcal{X}}\\), \\(\dot{\bm{\mathcal{X}}}\\) and \\(\ddot{\bm{\mathcal{X}}}\\) are derived.
+
+
+#### Dynamic Formulation of the Stewart-Gough Platform {#dynamic-formulation-of-the-stewart-gough-platform}
+
+
+##### Acceleration Analysis {#acceleration-analysis}
+
+In acceleration analysis, it is intended to **derive expressions for linear and angular acceleration of the limbs**, namely \\(\ddot{l}\_{i}\\) and \\(\dot{\bm{\omega}}\_{i}\\) as a function of the moving platform acceleration \\(\ddot{\bm{\mathcal{X}}} = [\dot{\bm{v}}\_{p}, \dot{\bm{\omega}}]^{T}\\).
+To obtain such a relation, let us rewrite the **velocity loop closure**:
+
+\begin{equation}
+ \bm{v}\_{p} + \bm{\omega} \times \bm{b}\_{i} = \dot{l}\_{i} \hat{\bm{s}}\_{i} + l\_{i}(\bm{\omega}\_{i} \times \hat{\bm{s}}\_{i})
+\end{equation}
+
+Since there is no actuation torque about \\(\hat{\bm{s}}\_{i}\\), the limb angular velocity and acceleration vectors (\\(\bm{\omega}\_i\\) and \\(\dot{\bm{\omega}}\_i\\)) are normal to \\(\hat{\bm{s}}\_{i}\\) provided that the following assumption are considered for the platform:
+
+- both end joints of the limb are spherical
+- the limbs are symmetric with respect to their axes
+- the effects of friction in spherical joints are neglected
+
+Considering these assumptions, it can be concluded that the limbs cannot spin about their axes: \\(\bm{\omega}\_{i} \cdot \hat{\bm{s}}\_{i} = 0\\) and \\((\hat{\bm{s}}\_i \times (\bm{\omega}\_i \times \hat{\bm{s}}\_i)) = \bm{\omega}\_i\\).
+
+To obtain the angular velocity of the limbs \\(\bm{\omega}\_{i}\\), we cross multiply \\(\hat{\bm{s}}\_{i}\\) to both sides of the previous equation:
+
+\begin{equation}
+ \bm{\omega}\_{i} = \frac{1}{l\_i} ( \hat{\bm{s}}\_i \times \bm{v}\_{b\_i} )
+\end{equation}
+
+With \\(\bm{v}\_{b\_{i}}\\) an **intermediate variable** corresponding to the velocity of point \\(\bm{b}\_{i}\\):
+
+\begin{equation}
+ \bm{v}\_{b\_{i}} = \bm{v}\_{p} + \bm{\omega} \times \bm{b}\_{i}
+\end{equation}
+
+As illustrated in [Figure 12](#figure--fig:free-body-diagram-stewart), the piston-cylinder structure of the limbs is decomposed into two separate parts, the masses of which are denoted by \\(m\_{i\_1}\\) and \\(m\_{i\_2}\\).
+The position vector of these two center of masses can be determined by the following equations:
+
+\begin{align}
+ \bm{p}\_{i\_1} &= \bm{a}\_{i} + c\_{i\_1} \hat{\bm{s}}\_{i} \\\\
+ \bm{p}\_{i\_2} &= \bm{a}\_{i} + ( l\_i - c\_{i\_2}) \hat{\bm{s}}\_{i}
+\end{align}
+
+
+
+{{< figure src="/ox-hugo/taghirad13_free_body_diagram_stewart.png" caption="Figure 12: Free-body diagram of the limbs and the moving platform of a general Stewart-Gough manipulator" >}}
+
+By differentiating the previous equations and doing some manipulations, we obtain:
+
+\begin{align}
+ \ddot{l}\_i &= \bm{a}\_{b\_i} \times \hat{\bm{s}}\_i + l\_i (\bm{\omega\_i} \cdot \bm{\omega\_i}) \\\\
+ \dot{\bm{\omega}}\_i &= \frac{1}{l\_i} (\hat{\bm{s}}\_i \times \bm{a}\_{b\_i} - 2 \dot{l}\_i \bm{\omega}\_i) \\\\
+ \bm{a}\_{i\_1} &= c\_{i\_1} ( \dot{\bm{\omega}}\_i \times \hat{\bm{s}}\_{i} + \bm{\omega}\_i \times (\bm{\omega}\_i \times \hat{\bm{s}}\_i)) \\\\
+ \bm{a}\_{i\_2} &= ( l\_i - c\_{i\_2}) (\dot{\bm{\omega}}\_i \times \hat{\bm{s}}\_{i} - (\bm{\omega}\_i \cdot \bm{\omega}\_i) \hat{\bm{s}}\_i) + 2 \dot{l}\_i (\bm{\omega}\_i \times \hat{\bm{s}}\_i) + \ddot{l}\_i \hat{\bm{s}}\_i
+\end{align}
+
+with
+
+\begin{equation}
+ \bm{a}\_{b\_i} = \bm{a}\_p + \dot{\bm{\omega}} \times \bm{b}\_i + \bm{\omega} \times (\bm{\omega} \times \bm{b}\_i)
+\end{equation}
+
+
+##### Dynamic Formulation of the Limbs {#dynamic-formulation-of-the-limbs}
+
+To derive the dynamic formulation of the Stewart-Gough platform, the manipulator is decomposed into a moving platform and six identical limbs.
+We assume that each limb consists of two parts, the cylinder and the piston, where the velocities and the accelerations of their centers of masses are determined.
+We also assume that the centers of masses of the cylinder and the piston are located at a distance of \\(c\_{i\_1}\\) and \\(c\_{i\_2}\\) above their foot points, and their masses are denoted by \\(m\_{i\_1}\\) and \\(m\_{i\_2}\\).
+Moreover, consider that the pistons are symmetric about their axes, and their centers of masses lie at their midlengths.
+
+The free-body diagrams of the limbs and the moving platforms is given in [Figure 12](#figure--fig:free-body-diagram-stewart).
+The reaction forces at fixed points \\(A\_i\\) are denoted by \\(\bm{f}\_{a\_i}\\), the internal force at moving points \\(B\_i\\) are dentoed by \\(\bm{f}\_{b\_i}\\), and the internal forces and moments between cylinders and pistons are denoted by \\(\bm{f}\_{c\_i}\\) and \\(\bm{M\_{c\_i}}\\) respectively.
+
+Assume that the only existing external disturbance wrench is applied on the moving platform and is denoted by \\(\bm{\mathcal{F}}\_d = [\bm{F}\_d, \bm{n}\_d]^T\\).
+
+
+
+
+##### Dynamic Formulation of the Moving Platform {#dynamic-formulation-of-the-moving-platform}
+
+Assume that the **moving platform center of mass is located at the center point** \\(P\\) and it has a mass \\(m\\) and moment of inertia \\({}^A\bm{I}\_{P}\\).
+Furthermore, consider that gravitational force and external disturbance wrench are applied on the moving platform, \\(\bm{\mathcal{F}}\_d = [\bm{F}\_d, \bm{n}\_d]^T\\) as depicted in [Figure 12](#figure--fig:free-body-diagram-stewart).
+
+The Newton-Euler formulation of the moving platform is as follows:
+
+\begin{align}
+ \sum \bm{F}\_{\text{ext}} &= \sum\_{i=1}^6 \bm{f}\_{b\_i} + m \bm{g} + \bm{F}\_{d} = m \bm{a}\_p \\\\
+ \sum {}^p\bm{n}\_{\text{ext}} &= \bm{n}\_d + \sum\_{i=1}^6 \bm{b}\_i \times \bm{f}\_{b\_i} \nonumber \\\\
+ & = {}^{A}\bm{I}\_{P} \dot{\bm{\omega}} + \bm{\omega} \times {}^{A}\bm{I}\_{P} \bm{\omega}
+\end{align}
+
+in which \\({}^A\bm{I}\_P\\) is considered in the fixed frame \\(\\{\bm{A}\\}\\) and can be calculated by:
+
+\begin{equation}
+ {}^A\bm{I}\_P = {}^A\bm{R}\_B {}^B\bm{I}\_P {}^A\bm{R}\_B^T
+\end{equation}
+
+These equations can be rewritten in an implicit form as
+
+
+
+These two equations are the governing dynamic formulation of the Stewart-Gough platform, in which \\(\bm{\mathcal{F}}\_d = [\bm{F}\_{d}, \bm{n}\_{d}]^T\\) denotes the disturbance wrench exerted on the moving plateform.
+
+They can be viewed in an implicit vector form of
+
+\begin{equation} \label{eq:dynamic\_formulation\_implicit}
+ \bm{f}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}, \ddot{\bm{\mathcal{X}}}, \bm{\mathcal{F}}\_d, \bm{\tau}) = \bm{0}
+\end{equation}
+
+in which \\(\bm{\mathcal{X}} = [\bm{x}\_P, \bm{\theta}]^T\\) is the motion variable of the moving platform consisting of the linear position of point \\(P\\) and the moving platform orientation represented by screw coordinates.
+
+
+#### 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.
+
+
+##### Closed-Form Dynamics of the Limbs {#closed-form-dynamics-of-the-limbs}
+
+To derive a closed-form dynamic formulation for the Stewart-Gough platform as
+
+\begin{equation} \label{eq:closed\_form\_dynamic\_stewart\_wanted}
+ \bm{M}(\bm{\mathcal{X}})\ddot{\bm{\mathcal{X}}} + \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) = \bm{\mathcal{F}}
+\end{equation}
+
+first consider an intermediate generalized coordinate \\(x\_i\\), which is in fact the position of point \\(b\_i\\).
+This generalized coordinate is used to harmonize the limb and the moving platform dynamic formulation and to **derive an closed-form structure for the whole manipulator**.
+
+Now, manipulate each limb dynamic equations to convert them into the closed form.
+Let us first introduce some relations to substitute kinematic parameters like \\(\dot{\bm{\omega}}\_i\\), \\(\ddot{\bm{\omega}}\_i\\), \\(\ddot{l}\_i\\) with the intermediate generalized coordinate \\(x\_i\\) and its time derivatives.
+
+After some manipulations, we obtain the following closed form equation:
+
+\begin{equation}
+ \bm{M}\_i \ddot{\bm{x}}\_i + \bm{C}\_i \dot{\bm{x}}\_i + \bm{G}\_i = \bm{F}\_i
+\end{equation}
+
+the corresponding mass matrix \\(\bm{M}\_i\\), the Coriolis matrix \\(\bm{C}\_i\\), and the gravity vector \\(\bm{G}\_i\\) can be simplified into the following form:
+
+\begin{align} \label{eq:closed\_form\_intermediate\_parameters}
+ \bm{M}\_i &= m\_{i\_2}\hat{\bm{s}}\_i \hat{\bm{s}}\_i^T - \frac{1}{l\_i^2} I\_{xx\_i} \hat{\bm{s}}\_{i \times}^2 \\\\
+ \bm{C}\_i &= -\frac{2}{l\_i} m\_{c\_o}\dot{l}\_i \hat{\bm{s}}\_{i\times}^2 - \frac{1}{l\_i^2} m\_{i\_2} c\_{i\_2} \hat{\bm{s}}\_i \dot{\bm{x}}\_i^T \hat{\bm{s}}\_{i \times}^2 \\\\
+ \bm{G}\_i &= \big( m\_{g\_e} \hat{\bm{s}}\_{i\times}^2 - m\_{i\_2} \hat{\bm{s}}\_i \hat{\bm{s}}\_i^T \big) \bm{g} \\\\
+ \bm{F}\_i &= -\bm{f}\_{b\_i} + \tau\_i \hat{\bm{s}}\_i
+\end{align}
+
+in which
+
+\begin{align}
+ m\_{c\_e} &= \frac{1}{l\_i^2} (m\_{i\_1} c\_{i\_1}^2 + m\_{i\_2} c\_{i\_2}^2) \\\\
+ m\_{c\_o} &= \frac{1}{l\_i} m\_{i\_2} c\_{i\_2} - \frac{1}{l\_i^2} (I\_{xx\_i} + l\_i^2 m\_{c\_e}) \\\\
+ m\_{g\_e} &= \frac{1}{l\_i} (m\_{i\_1} c\_{i\_1} + m\_{i\_2}(l\_i - c\_{i\_2}))
+\end{align}
+
+
+##### Closed-Form Dynamics of the Moving Platform {#closed-form-dynamics-of-the-moving-platform}
+
+In this section, the dynamic equations of the moving platform are transformed in the following closed-form formulation
+
+\begin{equation} \label{eq:close\_form\_dynamics\_platform}
+ \bm{M}\_{p}\ddot{\bm{\mathcal{X}}} + \bm{C}\_{p}\dot{\bm{\mathcal{X}}} + \bm{G}\_{p} = \bm{\mathcal{F}}\_{p}
+\end{equation}
+
+in which \\(\bm{\mathcal{X}}\\) consists of six coordinates: the first three \\(\bm{x}\_p\\) represent linear motion of the moving platform, and the last three \\(\bm{\theta}\\) its angular motion.
+It is preferable to use the **screw coordinates** for representing the angular motion **as its derivative is also a vector representing angular velocity**:
+
+\begin{equation}
+ \boxed{\bm{\mathcal{X}} = \begin{bmatrix}\bm{x}\_p \\\ \bm{\theta}\end{bmatrix}; \quad
+ \dot{\bm{\mathcal{X}}} = \begin{bmatrix}\bm{v}\_p \\\ \bm{\omega}\end{bmatrix}; \quad
+ \ddot{\bm{\mathcal{X}}} = \begin{bmatrix}\bm{a}\_p \\\ \dot{\bm{\omega}}\end{bmatrix}}
+\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:
+
+\begin{equation} \label{eq:close\_form\_dynamics\_stewart\_terms}
+ \begin{aligned}
+ &\bm{M}\_p = \begin{bmatrix} m\bm{I}\_{3 \times 3} & \bm{O}\_{3\times 3} \\\ \bm{O}\_{3\times 3} & {}^A \bm{I}\_p \end{bmatrix}\_{6\times 6}; \bm{C}\_p = \begin{bmatrix} \bm{O}\_{3\times 3} & \bm{O}\_{3\times 3} \\\ \bm{O}\_{3\times 3} & \omega\_{\times} {}^A\bm{I}\_p \end{bmatrix}\_{6 \times 6} \\\\
+ &\bm{G}\_p = \begin{bmatrix}-m\bm{g} \\\ \bm{O}\_{3\times 1}\end{bmatrix}\_{6 \times 1}; \bm{\mathcal{F}}\_p = \begin{bmatrix} \bm{F}\_d + \sum \bm{f}\_{b\_i} \\\ \bm{n}\_d + \sum \bm{b}\_{i \times} \bm{f}\_{b\_i} \end{bmatrix}\_{6\times 1}
+ \end{aligned}
+\end{equation}
+
+
+##### Closed-Form Dynamics of the Stewart-Gough Manipulator {#closed-form-dynamics-of-the-stewart-gough-manipulator}
+
+To derive the closed-form dynamic formulation for the whole manipulator, a transformation is required to map the intermediate generalized coordinates \\(x\_i\\) into the principal generalized coordinates \\(\bm{\mathcal{X}}\\).
+
+Using such a transformation, and by adding the resulting equations of the limbs and the moving platform, the internal forces \\(\bm{f}\_{b\_i}\\) can be eliminated, and closed-form dynamic formulation for the whole manipulator can be derived.
+
+To generate such a transformation define a Jacobian matrix \\(\bm{J}\_i\\) relating the intermediate coordinates to that of the principal generalized coordinate:
+
+\begin{equation}
+ \dot{\bm{x}}\_i = \bm{J}\_i \dot{\bm{\mathcal{X}}}
+\end{equation}
+
+in which
+
+\begin{equation} \label{eq:jacobian\_intermediate}
+ \bm{J}\_i = \begin{bmatrix} \bm{I}\_{3 \times 3} & -\bm{b}\_{i \times} \end{bmatrix}
+\end{equation}
+
+\begin{equation}
+ \bm{M}\_{li} \ddot{\bm{x}}\_i + \bm{C}\_{li} + \dot{\bm{x}}\_i + \bm{G}\_{li} = \bm{\mathcal{F}}\_{li}
+\end{equation}
+
+in which
+
+\begin{equation} \label{eq:closed\_form\_stewart\_manipulator}
+ \begin{aligned}
+ \bm{M}\_{li} = \bm{J}\_i^T \bm{M}\_i \bm{J}\_i; \quad & \bm{C}\_{li} = J\_i^T \bm{M}\_i \dot{\bm{J}}\_i + \bm{J}\_i^T \bm{C}\_i \bm{J}\_i \\\\
+ \bm{G}\_{li} = \bm{J}\_i^T G\_i; \quad & \bm{\mathcal{F}}\_{li} = \bm{J}\_i^T \bm{F}\_i
+ \end{aligned}
+\end{equation}
+
+
+
+
+##### Forward Dynamics Simulations {#forward-dynamics-simulations}
+
+As shown in [Figure 13](#figure--fig:stewart-forward-dynamics), it is **assumed that actuator forces and external disturbance wrench applied to the manipulator are given and the resulting trajectory of the moving platform is to be determined**.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_stewart_forward_dynamics.png" caption="Figure 13: 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}.
+
+
+##### Inverse Dynamics Simulation {#inverse-dynamics-simulation}
+
+In inverse dynamics simulations, it is assumed that the **trajectory of the manipulator is given**, and the **actuator forces required to generate such trajectories are to be determined**.
+
+As illustrated in [Figure 14](#figure--fig:stewart-inverse-dynamics), inverse dynamic formulation is implemented in the following sequence.
+The first step is trajectory generation for the manipulator moving platform.
+Many different algorithms are developed for a smooth trajectory generation.
+For such a trajectory, \\(\bm{\mathcal{X}}\_{d}(t)\\) and the time derivatives \\(\dot{\bm{\mathcal{X}}}\_{d}(t)\\), \\(\ddot{\bm{\mathcal{X}}}\_{d}(t)\\) are known.
+
+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.
+
+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.
+
+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}.
+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}.
+
+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.
+Therefore, actuator forces \\(\bm{\tau}\\) are computed in the simulation from
+
+\begin{equation}
+ \bm{\tau} = \bm{J}^{-T} \left( \bm{M}(\bm{\mathcal{X}})\ddot{\bm{\mathcal{X}}} + \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) - \bm{\mathcal{F}}\_d \right)
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/taghirad13_stewart_inverse_dynamics.png" caption="Figure 14: Flowchart of inverse dynamics implementation sequence" >}}
+
+
+### Virtual Work Formulation {#virtual-work-formulation}
+
+
+### Lagrange Formulation {#lagrange-formulation}
+
+\begin{equation} \label{eq:kinetic\_energy}
+ K(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) = \frac{1}{2} \dot{\bm{\mathcal{X}}}^T \bm{M}(\bm{\mathcal{X}}) \dot{\bm{\mathcal{X}}}
+\end{equation}
+
+\begin{equation} \label{eq:gravity\_vectory}
+ \bm{G}(\bm{\mathcal{X}}) = \frac{\partial P(\bm{\mathcal{X}})}{\partial \bm{\mathcal{X}}}
+\end{equation}
+
+\begin{equation} \label{eq:coriolis\_matrix}
+ \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) = \frac{1}{2} (\dot{\bm{M}} + \bm{U}^T - \bm{U})
+\end{equation}
+
+
+## Motion Control {#motion-control}
+
+
+
+
+### Introduction {#introduction}
+
+Parallel robots are designed for two different types of applications.
+
+In the first type, the moving platform of the robot accurately follows a **desired position and orientation** path in a specific time frame, while **no interacting forces** need to be applied to the environment.
+
+The second type of application include situations where the robot moving platform is in **contact with a stiff environment** (e.g. precision machining).
+In such application, the contact force describe the state of interaction more effectively than the position and orientation of the moving platform.
+The problem of **force control** can be described as to derive the actuator forces for such a manipulator required to generate a prescribed desired wrench (force and torque) at the manipulator moving platform, while the manipulator is performing its motion.
+
+Although a multiple degrees-of-freedom robotic manipulator can usually be represented by a MIMO and nonlinear model, many industrial controllers for such robots consist of a number of linear controller designed to **control individual joint motions**.
+One of the reasons why such decentralization can perform well in practice is the use of large gear reductions in robot actuators, which significantly reduces the coupling and non linear behavior of robot dynamics.
+
+However, using advanced techniques in nonlinear and MIMO control permits to overcome limitations of the SISO approach.
+
+
+### Controller Topology {#controller-topology}
+
+
+
+
+
+In motion control of parallel manipulator, it is assumed that the controller computes the **required actuator forces** or torques to cause the robot motion to follow a desired position and orientation trajectory.
+
+
+
+Let us use the motion variables as the generalized coordinate of the moving platform defined by \\(\bm{\mathcal{X}} = [\bm{x}\_P, \bm{\theta}]^T\\), in which the linear motion is represented by \\(\bm{x}\_p = [x\_p, y\_p, z\_p]^T\\), while the moving platform orientation is represented by **screw coordinates** \\(\bm{\theta} = \theta[s\_x, s\_y, s\_z]^T = [\theta\_x, \theta\_y, \theta\_z]^T\\).
+
+Consider the general closed-form dynamics formulation of a parallel robot
+
+\begin{equation} \label{eq:closed\_form\_dynamic\_formulation}
+ \boxed{\bm{M}(\bm{\mathcal{X}})\ddot{\bm{\mathcal{X}}} + \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) = \bm{\mathcal{F}}}
+\end{equation}
+
+where
+
+- \\(\bm{M}(\bm{\mathcal{X}})\\) denotes the mass matrix
+- \\(\bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\\) denotes the Coriolis and centrifugal matrix
+- \\(\bm{G}(\bm{\mathcal{X}})\\) denotes the gravity vector
+- \\(\bm{\mathcal{F}}\\) denotes the generalized forces applied to the moving platform center of mass
+
+The generalized forces can be decomposed as follow
+\\[ \bm{\mathcal{F}} = \bm{J}^T \bm{\tau} + \bm{\mathcal{F}}\_d \\]
+with
+
+- \\(\bm{J}\\) is the Jacobian
+- \\(\bm{\tau}\\) are the actuator forces
+- \\(\bm{\mathcal{F}}\_d\\) are any external wrenches
+
+
+
+**Control topology** is referred to the **structure of the control system** used to compute the actuator forces/torques from the measurements, and the required pre and post processing.
+
+
+
+For motion control of a manipulator, the controller has to compute the actuator force/torques required to cause the motion of the moving platform according to the desired trajectory.
+In general, the desired motion of the moving platform may be represented by the desired generalized coordinate of the manipulator, denoted by \\(\bm{\mathcal{X}}\_d\\).
+
+To perform such motion in closed loop, it is necessary to **measure the output motion** \\(\bm{\mathcal{X}}\\) of the manipulator by an instrumentation system.
+Such instrumentation usually consists of two subsystems: the first subsystem may use accurate accelerometers, or global positioning systems to calculate the position of a point on the moving platform; and a second subsystem may use inertial or laser gyros to determine orientation of the moving platform.
+
+[Figure 15](#figure--fig:general-topology-motion-feedback) shows the general topology of a motion controller using direct measurement of the motion variable \\(\bm{\mathcal{X}}\\), as feedback in the closed-loop system.
+In such a structure, the measured position and orientation of the manipulator is compared to its desired value to generate the **motion error vector** \\(\bm{e}\_\mathcal{X}\\).
+The controller uses this error information to generate suitable commands for the actuators to minimize the tracking error.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_general_topology_motion_feedback.png" caption="Figure 15: The general topology of motion feedback control: motion variable \\(\bm{\mathcal{X}}\\) is measured" >}}
+
+However, it is usually much **easier to measure the active joint variable** rather than measuring the final position and orientation of the moving platform.
+The relation between the **joint variable** \\(\bm{q}\\) and **motion variable** of the moving platform \\(\bm{\mathcal{X}}\\) is dealt with the **forward and inverse kinematics**.
+The relation between the **differential motion variables** \\(\dot{\bm{q}}\\) and \\(\dot{\bm{\mathcal{X}}}\\) is studied through the **Jacobian analysis**.
+
+It is then possible to use the forward kinematic analysis to calculate \\(\bm{\mathcal{X}}\\) from the measured joint variables \\(\bm{q}\\), and one may use the control topology depicted in [Figure 16](#figure--fig:general-topology-motion-feedback-bis) to implement such a controller.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_general_topology_motion_feedback_bis.png" caption="Figure 16: The general topology of motion feedback control: the active joint variable \\(\bm{q}\\) is measured" >}}
+
+In this topology, the forward kinematic analysis of the manipulator has to be performed to implement the feedback loop.
+As described earlier, this is a **complex task** for parallel manipulators.
+It is even more complex when a solution has to be found in real time.
+
+However, as shown herein before, the inverse kinematic analysis of parallel manipulators is much easier to carry out.
+To overcome the implementation problem of the control topology in [Figure 16](#figure--fig:general-topology-motion-feedback-bis), another control topology is usually implemented for parallel manipulators.
+
+In this topology, depicted in [Figure 17](#figure--fig:general-topology-motion-feedback-ter), the desired motion trajectory of the robot \\(\bm{\mathcal{X}}\_d\\) is used in an **inverse kinematic analysis** to find the corresponding desired values for joint variable \\(\bm{q}\_d\\).
+Hence, the controller is designed based on the **joint space error** \\(\bm{e}\_q\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_general_topology_motion_feedback_ter.png" caption="Figure 17: The general topology of motion feedback control: the active joint variable \\(\bm{q}\\) is measured, and the inverse kinematic analysis is used" >}}
+
+Therefore, the **structure and characteristics** of the controller in this topology is totally **different** from that given in the first two topologies.
+
+The **input and output** of the controller depicted in [Figure 17](#figure--fig:general-topology-motion-feedback-ter) are **both in the joint space**.
+However, this is not the case in the previous topologies where the input to the controller is the motion error in task space, while its output is in the joint space.
+
+For the topology in [Figure 17](#figure--fig:general-topology-motion-feedback-ter), **independent controllers** for each joint may be suitable.
+
+To generate a **direct input to output relation in the task space**, consider the topology depicted in [Figure 18](#figure--fig:general-topology-motion-feedback-quater).
+A force distribution block is added which maps the generated wrench in the task space \\(\bm{\mathcal{F}}\\), to its corresponding actuator forces/torque \\(\bm{\tau}\\).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_general_topology_motion_feedback_quater.png" caption="Figure 18: The general topology of motion feedback control in task space: the motion variable \\(\bm{\mathcal{X}}\\) is measured, and the controller output generates wrench in task space" >}}
+
+For a fully parallel manipulator such as the Stewart-Gough platform, this mapping can be constructed from the **Jacobian** transpose of the manipulator:
+\\[ \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}
+
+
+
+
+#### Decentralized PD Control {#decentralized-pd-control}
+
+In the control structure in [Figure 19](#figure--fig:decentralized-pd-control-task-space), a number of linear PD controllers are used in a feedback structure on each error component.
+The decentralized controller consists of **six disjoint linear controllers** acting on each error component \\(\bm{e}\_x = [e\_x,\ e\_y,\ e\_z,\ e\_{\theta\_x},\ e\_{\theta\_y},\ e\_{\theta\_z}]\\).
+The PD controller is denoted by \\(\bm{K}\_d s + \bm{K}\_p\\), in which \\(\bm{K}\_d\\) and \\(\bm{K}\_p\\) are \\(6 \times 6\\) **diagonal matrices** denoting the derivative and proportional controller gains for each error term.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_decentralized_pd_control_task_space.png" caption="Figure 19: Decentralized PD controller implemented in task space" >}}
+
+Hence, by this structure, each tracking error component is **treated separately**.
+The output of the controller is denoted by \\(\bm{\mathcal{F}} = [F\_x\ F\_y\ F\_z\ \tau\_x\ \tau\_y\ \tau\_z]\\).
+
+In practice, the calculated output wrench is transformed into actuator forces through the force distribution block.
+This mapping is implemented through inverse of the manipulator **Jacobian** transpose by \\(\bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}}\\).
+
+Different alternatives of linear controllers can be used instead of the PD controller used in this structure, however PD controller is the simplest form which can preserve the manipulator stability while providing suitable tracking performance.
+
+The proposed decentralized PD controller is very simple in structure and therefore easily implementable.
+The design of such a controller needs no detailed information on the manipulator dynamics.
+The controller gains are generally tuned experimentally based on physical realization of the controller by trial and error.
+
+
+#### Feed Forward Control {#feed-forward-control}
+
+A feedforward wrench denoted by \\(\bm{\mathcal{F}}\_{ff}\\) may be added to the decentralized PD controller structure as depicted in [Figure 20](#figure--fig:feedforward-control-task-space).
+This term is generated from the dynamic model of the manipulator in the task space, represented in a closed form by the following equation:
+\\[ \bm{\mathcal{F}}\_{ff} = \bm{\hat{M}}(\bm{\mathcal{X}}\_d)\ddot{\bm{\mathcal{X}}}\_d + \bm{\hat{C}}(\bm{\mathcal{X}}\_d, \dot{\bm{\mathcal{X}}}\_d)\dot{\bm{\mathcal{X}}}\_d + \bm{\hat{G}}(\bm{\mathcal{X}}\_d) \\]
+
+
+
+{{< figure src="/ox-hugo/taghirad13_feedforward_control_task_space.png" caption="Figure 20: Feed forward wrench added to the decentralized PD controller in task space" >}}
+
+The desired trajectory in task space \\(\bm{\mathcal{X}}\_d\\), and its derivatives \\(\dot{\bm{\mathcal{X}}}\_d\\), \\(\ddot{\bm{\mathcal{X}}}\_d\\) are the required inputs for the feedforward block.
+This term is called feedforward since no online information of the output motion trajectory \\(\bm{\mathcal{X}}\\) is needed for its computation.
+
+In order to generate this term, dynamic formulation of the robots and its kinematic and dynamic parameters are needed.
+In practice, exact knowledge of dynamic matrices are not available, and therefore, **estimate** of these matrices are used in practice, denoted by \\(\hat{\bm{M}}\\), \\(\hat{\bm{C}}\\) and \\(\hat{\bm{G}}\\).
+
+The information required to generate the feedforward wrench \\(\bm{\mathcal{F}}\_{ff}\\) is usually available beforehand and can be derived offline.
+The closed-loop dynamic formulation for the manipulator becomes:
+
+\begin{equation}
+ \begin{aligned}
+ \bm{M}(\bm{\mathcal{X}})\ddot{\bm{\mathcal{X}}} &+ \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) \\\\
+ &= \bm{\mathcal{F}} + \bm{\mathcal{F}}\_d \\\\
+ &= \bm{\mathcal{F}}\_{pd} + \bm{\mathcal{F}}\_{ff} + \bm{\mathcal{F}}\_d \\\\
+ &= \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \bm{\mathcal{F}}\_{ff} + \bm{\hat{M}}\ddot{\bm{\mathcal{X}}}\_d + \bm{\hat{C}}\dot{\bm{\mathcal{X}}}\_d + \bm{\hat{G}}
+ \end{aligned}
+\end{equation}
+
+If the knowledge of the dynamic matrices is complete, we may assume that \\(\hat{\bm{M}} = \bm{M}\\), \\(\hat{\bm{C}} = \bm{C}\\) and \\(\hat{\bm{G}} = \bm{G}\\).
+Furthermore, if we consider that the controller performs well such that \\(\bm{\mathcal{X}}(t) \simeq \bm{\mathcal{X}}\_d(t)\\) and \\(\dot{\bm{\mathcal{X}}}(t) \simeq \dot{\bm{\mathcal{X}}}\_d(t)\\), the simplified closed-loop dynamics become:
+
+\begin{equation}
+ \begin{aligned}
+ \bm{M} (\ddot{\bm{\mathcal{X}}}\_d - \ddot{\bm{\mathcal{X}}}) + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \bm{\mathcal{F}}\_d &= 0 \\\\
+ \bm{M} \ddot{\bm{e}}\_x + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \bm{\mathcal{F}}\_d &= 0
+ \end{aligned}
+\end{equation}
+
+This equation implies that, if the mentioned assumptions hold, the **error dynamics** satisfies a set of **second-order system** in the presence of disturbance.
+By choosing appropriate gains for PD controller, the transient and steady-state performance of tracking error can be designed so as to satisfy the application requirements.
+
+Note that except the mass matrix, the error dynamic terms are all **configuration independent**, and therefore, it is much **easier to tune the PD controller gains** to work well within the whole workspace of the robot.
+
+However, this method faces a number of **limitations** in practice.
+The most important limitation of this control technique is the **stringent assumption of a complete knowledge requirement of the dynamic matrices**.
+In practice, derivation of these matrices is a prohibitive task.
+
+Finally, because of the dependency of the mass matrix to the configuration of the robot, the error dynamics are not completely decoupled.
+This means that correction in one error component may be considered as a disturbance effect to the other components.
+To overcome these limitations, inverse dynamic approach is given in the following section.
+
+
+#### Inverse Dynamics Control {#inverse-dynamics-control}
+
+
+
+In **inverse dynamics control** (IDC), nonlinear dynamics of the model is used to add a **corrective term** to the decentralized PD controller.
+By this means, **nonlinear and coupling behavior of the robotic manipulator is significantly attenuated**, and therefore, the performance of linear controller is greatly improved.
+
+
+
+General structure of IDC applied to a parallel manipulator is depicted in [Figure 21](#figure--fig:inverse-dynamics-control-task-space).
+A corrective wrench \\(\bm{\mathcal{F}}\_{fl}\\) is added in a **feedback structure** to the closed-loop system, which is calculated from the Coriolis and centrifugal matrix and gravity vector of the manipulator dynamic formulation.
+
+Furthermore, mass matrix is added in the forward path in addition to the desired trajectory acceleration \\(\ddot{\bm{\mathcal{X}}}\_d\\).
+
+As for the feedforward control, the **dynamics and kinematic parameters of the robot are needed**, and in practice estimates of these matrices are used.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_inverse_dynamics_control_task_space.png" caption="Figure 21: General configuration of inverse dynamics control implemented in task space" >}}
+
+The controller output wrench applied to the manipulator may be derived as follows:
+
+\begin{align}
+ \bm{\mathcal{F}} &= \hat{\bm{M}}(\bm{\mathcal{X}}) \bm{a} + \bm{\mathcal{F}}\_{fl} \\\\
+ &= \hat{\bm{M}}(\bm{\mathcal{X}}) \bm{a} + \hat{\bm{C}}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) \dot{\bm{\mathcal{X}}} + \hat{\bm{G}}(\bm{\mathcal{X}}) \\\\
+ \bm{a} &= \ddot{\bm{\mathcal{X}}}\_d + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x
+\end{align}
+
+The closed-loop dynamic formulation for the manipulator becomes:
+
+\begin{equation}
+ \begin{aligned}
+ \bm{M}(\bm{\mathcal{X}})\ddot{\bm{\mathcal{X}}} &+ \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) \\\\
+ &= \bm{\mathcal{F}} + \bm{\mathcal{F}}\_d \\\\
+ &= \hat{\bm{M}}(\bm{\mathcal{X}}) \left(\ddot{\bm{\mathcal{X}}}\_d + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x \right) \\\\
+ &\quad + \hat{\bm{C}}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \hat{\bm{G}}(\bm{\mathcal{X}}) + \bm{\mathcal{F}}\_d \\\\
+ \end{aligned}
+\end{equation}
+
+If the knowledge of the dynamic matrices is complete, the closed-loop dynamic formulation simplifies to:
+
+\begin{equation}
+ \hat{\bm{M}}(\bm{\mathcal{X}}) \left(\ddot{\bm{e}}\_d + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x \right) + \bm{\mathcal{F}}\_d = 0
+\end{equation}
+
+This control technique is very popular in practice because of the fact that this technique can significantly **linearize and decouple dynamic formulation of the closed-loop error dynamics**.
+Furthermore, the error dynamic terms are all **configuration independent**, and therefore, it is much easier to tune the PD controller gains for suitable performance in the whole workspace of the robot.
+
+However, note that for a good performance, and **accurate model of the system is required**, and the overall procedure is **not robust to modeling uncertainty**.
+Furthermore, this technique is computationally intensive in terms of the online computations needed to carry out the closed-loop control structure.
+
+
+#### Partial Linearization IDC {#partial-linearization-idc}
+
+Inverse dynamics control has several features making it very attractive in practice.
+However, to apply this method, complete knowledge of the dynamic formulation matrices is required.
+This requirement has the main drawbacks that the dynamic formulation of the parallel manipulator is a complicated step to be carried out.
+
+To implement all the terms in IDC structure, not only the structure and components of such matrices must be carefully determined, but also the kinematics and inertial parameters of the robot are needed to be identified and calibrated.
+This step requires the use of high-precision calibration equipment which are not usually accessible.
+Finally, if all the terms and parameters are well known, implementation of full inverse dynamic linearization is computationally intensive.
+
+These are the reasons why, in practice, IDC control is extended to different forms where the above-mentioned stringent requirements are reduced.
+
+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 gravity vector \\(\bm{G}(\bm{\mathcal{X}})\\) is derived from potential energy (Eq. \ref{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 computation of the Coriolis and centrifugal matrix is more intensive than that of the mass matrix.
+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.
+One of the most important properties of dynamic matrices is the skew-symmetric property of the matrix \\(\dot{\bm{M}} - 2 \bm{C}\\) .
+
+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.
+The simplest form of IDC control effort \\(\bm{\mathcal{F}}\\) consists of:
+\\[ \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:
+\\[ \bm{\mathcal{F}}\_{pd} = \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p + \bm{e}\_x \\]
+
+The second term \\(\bm{\mathcal{F}}\_{fl}\\) is considered to be only the gravity vector of the manipulator \\(\bm{G}(\bm{\mathcal{X}})\\), at any configuration, and the computationally intensive Coriolis and centrifugal term is not used:
+\\[ \bm{\mathcal{F}}\_{fl} = \bm{G}(\bm{\mathcal{X}}) \\]
+
+Note that for an appreciable tracking performance with no static error at steady state, it is required to have complete knowledge of **only** the gravity term.
+By this means, computations required in this control technique are significantly less than that of the general IDC.
+
+Despite the simple structure of such a controller, the resulting control technique is very well performed, especially at steady state.
+We can show that this control topology achieves asymptotic tracking for a constant desired trajectory motion, that is, \\(\dot{\bm{\mathcal{X}}}\_d = 0\\).
+
+This reveals the fact that even if the mass matrix and Coriolis and centrifugal matrix are not used in the feedback, and the closed-loop dynamics is not completely linearized, the PD control structure with gravity compensation can still lead to asymptotic tracking.
+However, to suitable transient performance, more information of the system dynamics must be used in the linearization technique given in IDC.
+
+
+### Robust and Adaptative Control {#robust-and-adaptative-control}
+
+Inverse dynamics control faces the stringent requirement that for a good performance, an **accurate model** of the system is required, and the overall procedure is **not robust** to modeling uncertainty.
+Furthermore, this technique is computationally intensive in terms of online computation needed to carry out the closed-loop control structure.
+The proposed modified inverse dynamics control, while being beneficial in terms of computational cost, is not suitable in terms of a closed-loop transient performance.
+
+Another approach to modify IDC is to consider a complete linearization, but **assume that complete knowledge of dynamic formulation matrices is not available**.
+To **compensate for the lack of knowledge**, two advanced control methods, namely **robust** and **adaptive control** are proposed:
+
+- In the **robust approach**, a **fixed controller** is designed to satisfy the control objectives for the **worst possible case of modeling uncertainty** and disturbance wrenches.
+- In the **adaptive approach**, the estimates of dynamic formulation matrices are **updated** such that the difference between the true values of these matrices to their estimates converges to zero.
+
+A global understanding of the trade-offs involved in each method is needed to employ either of them in practice.
+
+
+#### Robust Inverse Dynamics Control {#robust-inverse-dynamics-control}
+
+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
+
+\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{a}\_r &= \ddot{\bm{\mathcal{X}}}\_d + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \bm{\delta}\_a
+\end{align\*}
+
+in which \\(\bm{a}\_r\\) is the robustified control input.
+
+Comparing this equation to the usual IDC, a robustifying term \\(\bm{\delta}\_a\\) is added to compensate for modeling uncertainties.
+
+Note that, as defined earlier, the notation \\(\hat{(.)}\\) represents the estimated value of \\((.)\\) and \\(\tilde{(.)}\\) is defined as the error mismatch between the estimated value and the true value as \\(\tilde{(.)} = \hat{(.)}- (.)\\).
+
+In a similar manner \\(\tilde{(.)}\\) notation may be applied to the motion variables as
+\\[ \tilde{\bm{\mathcal{X}}} = \bm{\mathcal{X}} - \bm{\mathcal{X}}\_d = - \bm{e}\_x \\]
+
+The closed-loop dynamic formulation of the manipulator can be written as:
+\\[ \ddot{\bm{\mathcal{X}}} = \bm{a}\_r + \bm{\eta}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}, \bm{a}\_r) \\]
+in which
+\\[ \bm{\eta} = \bm{M}^{-1} \left( \tilde{\bm{M}} \bm{a}\_r + \tilde{\bm{C}} \dot{\bm{\mathcal{X}}} + \tilde{\bm{G}} \right) \\]
+is a measure of modeling uncertainty.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_robust_inverse_dynamics_task_space.png" caption="Figure 22: General configuration of robust inverse dynamics control implemented in the task space" >}}
+
+
+#### Adaptive Inverse Dynamics Control {#adaptive-inverse-dynamics-control}
+
+
+
+{{< figure src="/ox-hugo/taghirad13_adaptative_inverse_control_task_space.png" caption="Figure 23: General configuration of adaptative inverse dynamics control implemented in task 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.
+
+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.
+In such cases, the controllers developed in the joint space may be recommended for practical implementation.
+
+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).
+In this topology, the controller input is the joint variable error vector \\(\bm{e}\_q = \bm{q}\_d - \bm{q}\\), and the controller output is directly the actuator force vector \\(\bm{\tau}\\), and hence there exists a **one-to-one correspondence between the controller input to its output**.
+
+The general form of dynamic formulation of parallel robot is usually given in the task space.
+For motion control in joint space, we need to transform the dynamic formulation in the joint space, by which the actuator forces \\(\bm{\tau}\\) are directly related to the active joint variables \\(\bm{q}\\).
+
+
+#### Dynamic Formation in the Joint Space {#dynamic-formation-in-the-joint-space}
+
+The relation between the task space variables to their counterparts in the joint space can be derived by forward and inverse kinematics relations.
+Although both analyses involve solution to a set of non-linear equations, for parallel manipulators, inverse kinematic solution proves to be much easier to obtain than that of forward kinematic solution.
+
+This relation in **differential kinematics** is much simpler and can be completely determined by the Jacobian matrix:
+\\[ \boxed{\dot{\bm{q}} = \bm{J} \dot{\bm{\mathcal{X}}} \Longrightarrow \dot{\bm{\mathcal{X}}} = \bm{J}^{-1} \dot{\bm{q}}} \\]
+
+The acceleration variables are then:
+\\[ \ddot{\bm{q}} = \dot{\bm{J}} \dot{\bm{\mathcal{X}}} + \bm{J} \ddot{\mathcal{X}} \Longrightarrow \ddot{X} = \bm{J}^{-1} \ddot{\bm{q}} - \bm{J}^{-1} \dot{\bm{J}} \dot{\bm{\mathcal{X}}} \\]
+
+Furthermore, the relation between the actuator force vector \\(\bm{\tau}\\) to the corresponding task space wrench is given by:
+\\[ \boxed{\bm{\mathcal{F}} = \bm{J}^T \bm{\tau} \Longrightarrow \bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}}} \\]
+
+Substituting \\(\dot{\bm{\mathcal{X}}}\\) and \\(\ddot{\bm{\mathcal{X}}}\\) from the above equations into the dynamic formulation of the parallel robot gives:
+
+\begin{equation\*}
+ \begin{aligned}
+ & \left( \bm{J}^{-T} \bm{M} \bm{J}^{-1} \right) \ddot{\bm{q}} \\\\
+ & \quad + \bm{J}^{-T} \left( \bm{C} - \bm{M} \bm{J}^{-1} \dot{\bm{J}} \right) \bm{J}^{-1} \dot{\bm{q}} \\\\
+ & \quad + \bm{J}^{-T} \bm{G} + \bm{J}^{-T} \bm{\mathcal{F}}\_d = \bm{\tau}
+ \end{aligned}
+\end{equation\*}
+
+
+
+Equation \ref{eq:dynamics\_joint\_space} represents the closed form dynamic formulation of a general parallel robot in the joint space.
+
+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}}\\).
+Furthermore, the main dynamic matrices are all functions of the motion variable \\(\bm{\mathcal{X}}\\).
+Hence, in practice, to find the dynamic matrices represented in the joint space, **forward kinematics** should be solved to find the motion variable \\(\bm{\mathcal{X}}\\) for any given joint motion vector \\(\bm{q}\\).
+
+Since in parallel robots the forward kinematic analysis is computationally intensive, there exist inherent difficulties in finding the dynamic matrices in the joint space as an explicit function of \\(\bm{q}\\).
+In this case it is possible to solve forward kinematics in an online manner, it is recommended to use the control topology depicted in [Figure 16](#figure--fig:general-topology-motion-feedback-bis), and implement control law design in the task space.
+
+However, one implementable alternative to calculate the dynamic matrices represented in the joint space is to use the **desired motion trajectory** \\(\bm{\mathcal{X}}\_d\\) instead of the true value of motion vector \\(\bm{\mathcal{X}}\\) in the calculations.
+This approximation significantly reduces the computational cost, with the penalty of having mismatch between the estimated values of these matrices to their true values.
+
+
+#### Decentralized PD Control {#decentralized-pd-control}
+
+The first control strategy introduced in the joint space consists of the simplest form of feedback control in such manipulators.
+In this control structure, depicted in [Figure 24](#figure--fig:decentralized-pd-control-joint-space), a number of PD controllers are used in a feedback structure on each error component.
+
+The PD controller is denoted by \\(\bm{K}\_d s + \bm{K}\_p\\), where \\(\bm{K}\_d\\) and \\(\bm{K}\_p\\) are \\(n \times n\\) **diagonal** matrices denoting the derivative and proportional controller gains, respectively.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_decentralized_pd_control_joint_space.png" caption="Figure 24: Decentralized PD controller implemented in joint space" >}}
+
+By this structure, each tracking error component is **treated separately** by its disjoint PD controller.
+The proposed decentralized PD controller is very simple in structure, and therefore very easy to be implemented on the manipulator.
+The design of such a controller **needs no detailed information on the manipulator dynamic formulation and parameters**.
+However, the tracking performance of such a controller is relatively poor, and **static tracking errors** might be unavoidable.
+Also, the performance of the closed-loop system is configuration dependent.
+
+In practice, the gains are tuned experimentally and obtained as a trade-off between transient behavior and steady-state errors at different configurations.
+As the dynamics of the system in the joint space is configuration dependent, finding suitable controller gains to result in required performance in all configurations is a difficult task.
+
+The performance of the controller to attenuate measurement noise and external disturbance wrenches are also poor in practice.
+To remedy these shortcomings, some modifications have been proposed to this structure and further described.
+
+
+#### Feedforward Control {#feedforward-control}
+
+The tracking performance of the simple PD controller implemented in the joint space is usually not sufficient at different configurations.
+To improve the tracking performance, a feedforward actuator force denoted by \\(\bm{\tau}\_{ff}\\) may be added to the structure of the controller as depicted in [Figure 25](#figure--fig:feedforward-pd-control-joint-space).
+
+
+
+{{< figure src="/ox-hugo/taghirad13_feedforward_pd_control_joint_space.png" caption="Figure 25: Feed forward actuator force added to the decentralized PD controller in joint space" >}}
+
+The feedforward term is generated from the dynamic formulation of the manipulator.
+The desired trajectory in the task space \\(\bm{\mathcal{X}}\_d\\) and its derivatives \\(\dot{\bm{\mathcal{X}}}\_d\\), \\(\ddot{\bm{\mathcal{X}}}\_d\\) are thus required.
+
+In practice, exact knowledge of dynamic matrices are not available, and therefore, estimates of these matrices are used in this derivation denoted by \\(\hat{\bm{M}}\\), \\(\hat{\bm{C}}\\) and \\(\hat{\bm{G}}\\).
+
+The information required to generate the feedforward actuator force \\(\bm{\tau}\_{ff}\\) is usually available beforehand, and in such a case, the feedforward term corresponding to a given trajectory can be **determined off-line**, while the computation of the decentralized feedback term would be executed online.
+
+If complete information of the dynamic matrices is available, and if we assume that the system is performing well, meaning that \\(\bm{\mathcal{X}}(t) \simeq \bm{\mathcal{X}}\_d(t)\\) and \\(\dot{\bm{\mathcal{X}}}(t) \simeq \dot{\bm{\mathcal{X}}}\_d(t)\\), we can write the closed loop dynamics as follow:
+\\[ \bm{M}\_q \ddot{\bm{e}}\_q + \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q = \bm{\tau}\_d \\]
+
+The error dynamics satisfy a set of second-order differential equations in the presence of disturbance.
+Therefore, by choosing appropriate gains of the PD controller, the transient and steady-state performance of the tracking error can be suitably designed.
+
+Note that except for the mass matrix, the error dynamics terms are all **configuration independent**, and therefore, it is much easier to tune the PD controller gains to work well in the whole workspace of the robot in such a structure.
+
+However, this method suffers from a number of **limitations** in practice.
+The most important limitation is the **stringent assumption of the complete information requirement of dynamics matrices**.
+Furthermore, even is all the assumption hold, because of the configuration dependence of the mass matrix, the error dynamics is still not completely decoupled.
+This means that correction in one component may be considered as a disturbance effect to the other components.
+To overcome these limitations, the inverse dynamic approach has been developed and is given in the following section.
+
+
+#### Inverse Dynamics Control {#inverse-dynamics-control}
+
+As seen in the previous section, the tracking performance of a decentralized PD controller implemented in the joint space is not uniform at different configurations.
+To compensate for such effects, a feedforward torque is added to the structure of the controller, by which the shortcomings of the decentralized controller is partially remedied.
+However, the closed-loop performance still faces a number of limitations, which cannot be completely remedied because of the inherent conditions on feedforward structure of that proposed controller.
+To overcome these limitations, in this section, a control technique based on **inverse dynamic feedback** of the manipulator in the joint space is presented.
+
+
+
+In the **inverse dynamics control** (IDC) strategy, the **nonlinear dynamics of the model is used to add a corrective term to the decentralized PD controller**.
+By this means, the **nonlinear and coupling characteristics** of robotic manipulator is significantly **attenuated**, and therefore, the performance of linear controller is significantly improved.
+
+
+
+The general structure of inverse dynamics control applied to a parallel manipulator in the joint space is depicted in [Figure 26](#figure--fig:inverse-dynamics-control-joint-space).
+
+A corrective torque \\(\bm{\tau}\_{fl}\\) is added in a **feedback** structure to the closed-loop system, which is calculated from the Coriolis and Centrifugal matrix, and the gravity vector of the manipulator dynamic formulation in the joint space.
+Furthermore, the mass matrix is acting in the **forward path**, in addition to the desired trajectory acceleration \\(\ddot{\bm{q}}\_q\\).
+Note that to generate this term, the **dynamic formulation** of the robot, and its **kinematic and dynamic parameters are needed**.
+In practice, exact knowledge of dynamic matrices are not available, and there estimates are used.
+
+
+
+{{< figure src="/ox-hugo/taghirad13_inverse_dynamics_control_joint_space.png" caption="Figure 26: General configuration of inverse dynamics control implemented in joint space" >}}
+
+The controller output torque applied to the manipulator may be calculated by:
+
+\begin{align}
+ \bm{\tau} &= \hat{\bm{M}}\_q \bm{a}\_q + \bm{\tau}\_{fl} \\\\
+ \bm{\tau}\_{fl} &= \hat{\bm{C}}\_q \dot{\bm{q}} + \hat{\bm{G}}\_q \\\\
+ \bm{a}\_q &= \ddot{\bm{q}}\_d + \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q
+\end{align}
+
+If the knowledge of dynamic matrices is complete, the closed-loop dynamic formulation is simplified to:
+\\[ \hat{\bm{M}}\_q \left( \ddot{\bm{e}}\_q + \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q \right) + \bm{\tau}\_d = 0 \\]
+
+This equation implies that if there exist complete knowledge of the dynamic matrices, the tracking error dynamic equation satisfies a set of second-order systems in the presence of disturbance.
+Consider the case where no disturbance wrench is applied to the manipulator, as the mass matrix \\(\bm{M}\_q\\) is positive definite at all non-singular configurations, it can be inverted, and the error dynamics simplifies to:
+\\[ \ddot{\bm{e}}\_q + \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q = 0 \\]
+
+This control technique is very popular in practice because of the fact that it can significantly **linearize** and **decouple** the dynamic formulation of the closed-loop system for error dynamics components.
+Furthermore, the error dynamic terms are all **configuration independent**, and therefore, it is **much easier to tune the PD controller gains** to perform well in the whole workspace of the robot.
+
+However, note that for a good performance, an **accurate model of the system is required**, and the overall procedure is **not robust** to model uncertainties.
+
+
+### Summary of Motion Control Techniques {#summary-of-motion-control-techniques}
+
+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.
+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.
+
+
+##### Dynamic Formulations {#dynamic-formulations}
+
+The dynamic formulation of a parallel robot may be directly represented as a function of motion variable \\(\bm{\mathcal{X}}\\) in the task space as follows:
+
+\begin{equation\*}
+ \bm{M}(\bm{\mathcal{X}})\ddot{\bm{\mathcal{X}}} + \bm{C}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \bm{G}(\bm{\mathcal{X}}) = \bm{\mathcal{F}} + \bm{\mathcal{F}}\_d
+\end{equation\*}
+
+The dynamic formulation may be represented as a function of actuator motion variable \\(\bm{q}\\) as
+
+\begin{equation\*}
+ \bm{M}\_q \ddot{\bm{q}} + \bm{C}\_q \dot{\bm{q}} + \bm{G}\_q = \bm{\tau} + \bm{\tau}\_d
+\end{equation\*}
+
+in which these two formulations are closely related to each other by the following relations:
+
+\begin{equation\*}
+ \begin{aligned}
+ \bm{M}\_q &= \bm{J}^{-T} \bm{M} \bm{J}^{-1} \\\\
+ \bm{C}\_q &= \bm{J}^{-T} \left( \bm{C} - \bm{M}\bm{J}^{-1}\dot{\bm{J}} \right) \bm{J}^{-1} \\\\
+ \bm{D}\_q &= \bm{J}^{-T} \bm{G} \\\\
+ \bm{\tau}\_q &= \bm{J}^{-T} \bm{\mathcal{F}}
+ \end{aligned}
+\end{equation\*}
+
+
+##### Decentralized PD Control {#decentralized-pd-control}
+
+The simplest controller for a parallel robot can be considered as a decentralized PD controller being implemented individually on each error component.
+If such a structure is implemented in the task space, the control effort is calculated by
+
+\begin{equation\*}
+ \bm{\mathcal{F}} = \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x
+\end{equation\*}
+
+and the actuator effort can be generally determined through a force distribution scheme.
+
+For a completely parallel manipulator, the actuator forces can be generated by \\(\bm{\tau} = \bm{J}^{-T} \bm{\mathcal{F}}\\) at non-singular configurations.
+
+Decentralized PD control can be directly implemented in the joint space by the following equation:
+
+\begin{equation\*}
+ \bm{\tau} = \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q
+\end{equation\*}
+
+
+##### Feed Forward Control {#feed-forward-control}
+
+The reduce the performance limitations of simple PD control, the control effort may be enforced with a feed forward wrench given by
+
+\begin{equation\*}
+ \bm{\mathcal{F}} = \bm{\mathcal{F}}\_{pd} + \bm{\mathcal{F}}\_{ff}
+\end{equation\*}
+
+in which
+
+\begin{equation\*}
+ \begin{aligned}
+ \bm{\mathcal{F}}\_{ff} &= \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x \\\\
+ &+ \hat{\bm{M}}(\bm{\mathcal{X}}\_d)\ddot{\bm{\mathcal{X}}}\_d + \hat{\bm{C}}(\bm{\mathcal{X}}\_d, \dot{\bm{\mathcal{X}}}\_d)\dot{\bm{\mathcal{X}}}\_d + \hat{\bm{G}}(\bm{\mathcal{X}}\_d)
+ \end{aligned}
+\end{equation\*}
+
+where \\(\hat{\bm{M}}\\), \\(\hat{\bm{C}}\\) and \\(\hat{\bm{G}}\\) are estimation of the dynamic matrices.
+
+This controller can be implemented in joint space as follows
+
+\begin{equation\*}
+ \begin{aligned}
+ \bm{\tau} &= \bm{\tau}\_{pd} + \bm{\tau}\_{ff} \\\\
+ &= \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q + \bm{J}^{-T} \bm{\mathcal{F}}\_{ff}
+ \end{aligned}
+\end{equation\*}
+
+
+##### Inverse Dynamics Control {#inverse-dynamics-control}
+
+In the inverse dynamics control, the nonlinear dynamics of the model is used to add a corrective term to the decentralized PD controller.
+If such a structure is implemented in the task space, the control effort is calculated by
+
+\begin{equation\*}
+ \begin{aligned}
+ \bm{\mathcal{F}} &= \hat{\bm{M}}(\bm{\mathcal{X}})\bm{a} + \hat{\bm{C}}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}})\dot{\bm{\mathcal{X}}} + \hat{\bm{G}}(\bm{\mathcal{X}}) \\\\
+ \bm{a} &= \ddot{\bm{\mathcal{X}}}\_d + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x
+ \end{aligned}
+\end{equation\*}
+
+In general, the tracking error dynamics can be represented by
+
+\begin{equation\*}
+ \ddot{\bm{e}}\_x + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \hat{\bm{M}}^{-1} \left[ \tilde{\bm{M}} \ddot{\bm{\mathcal{X}}} + \tilde{\bm{C}} \dot{\bm{\mathcal{X}}} + \tilde{\bm{G}} + \bm{\mathcal{F}}\_d \right] = 0
+\end{equation\*}
+
+This controller can be implemented in the joint space as follows:
+
+\begin{equation\*}
+ \begin{aligned}
+ \bm{\tau} &= \hat{\bm{M}}\_q \bm{a}\_q + \hat{\bm{C}}\_q \dot{\bm{q}} + \hat{\bm{G}}\_q \\\\
+ \bm{a}\_q &= \ddot{\bm{q}}\_d + \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q
+ \end{aligned}
+\end{equation\*}
+
+by which the tracking error dynamics is summarized as
+
+\begin{equation\*}
+ \ddot{\bm{e}}\_q + \bm{K}\_d \dot{\bm{e}}\_q + \bm{K}\_p \bm{e}\_q + \hat{\bm{M}}\_{q}^{-1} \left[ \tilde{\bm{M}}\_q \ddot{\bm{q}} + \tilde{\bm{C}}\_q \dot{\bm{q}} + \tilde{\bm{G}}\_q + \bm{\mathcal{\tau}}\_d \right] = 0
+\end{equation\*}
+
+
+##### Partial Linearization IDC {#partial-linearization-idc}
+
+To reduce the computational cost of the inverse dynamic control, it is possible to use partial linearization of dynamic formulation, just by gravity compensation, while keeping asymptotic tracking stability of the closed-loop system.
+In which a case, the control input wrench in the task space is simplified to
+
+\begin{equation\*}
+ \bm{\mathcal{F}} = \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \hat{\bm{G}}(\bm{\mathcal{X}})
+\end{equation\*}
+
+The following Lyapunov function may be used to analyze the stability of tracking dynamics of the closed-loop system:
+
+\begin{equation\*}
+ \dot{V} = \dot{\bm{\mathcal{X}}}^T \bm{M} \ddot{\bm{\mathcal{X}}} + \frac{1}{2} \dot{\bm{\mathcal{X}}}^T \dot{\bm{M}} \dot{\bm{\mathcal{X}}} + \bm{e}\_x^T \bm{K}\_p \bm{e}\_x
+\end{equation\*}
+
+Stability analysis of the closed-loop system in this case reveals the fact that this simplified version of inverse dynamics control can lead to asymptotic tracking for constant desired trajectories.
+
+
+##### Robust Inverse Dynamics Control {#robust-inverse-dynamics-control}
+
+To accommodate modeling uncertainties in inverse dynamic control, the following robust control scheme in the task space is developed:
+
+\begin{equation\*}
+ \begin{aligned}
+ \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{a}\_r &= \ddot{\bm{\mathcal{X}}}\_d + \bm{K}\_d \dot{\bm{e}}\_x + \bm{K}\_p \bm{e}\_x + \bm{\delta}\_a
+ \end{aligned}
+\end{equation\*}
+
+in which the robustifying corrective term \\(\bm{\delta}\_a\\) is found through a Lyapunov stability analysis of tracking error dynamics.
+The tracking error dynamics can be represented by the following linear and nonlinear components:
+
+\begin{equation\*}
+ \bm{A} = \begin{bmatrix}
+ \bm{0} & \bm{I} \\\\
+ -\bm{K}\_p & -\bm{K}\_d
+ \end{bmatrix}, \quad \bm{B} = \begin{bmatrix}
+ \bm{0} \\\ \bm{I}
+ \end{bmatrix}
+\end{equation\*}
+
+The corrective term \\(\bm{\delta}\_a\\) can be found as
+
+\begin{equation\*}
+ \bm{\delta}\_a = \left\\{ \begin{matrix}
+ - \rho \frac{v}{\\|v\\|} & \text{if} \\|v\\| > \epsilon \\\\
+ - \rho \frac{v}{\epsilon} & \text{if} \\|v\\| \le \epsilon
+ \end{matrix} \right.
+\end{equation\*}
+
+in which \\(v\\) is defined by \\(v = \bm{B}^T \bm{P} \bm{\epsilon}\\), where \\(\bm{P}\\) is the solution to the matrix Lyapunov equation and \\(\epsilon\\) is a smoothing threshold.
+It is shown that by adding this corrective term to the regular inverse dynamics control, the closed-loop system achieves uniform ultimate bounded tracking errors.
+
+
+##### Adaptive Inverse Dynamics Control {#adaptive-inverse-dynamics-control}
+
+In the adaptive version of the inverse dynamics control, full feedback linearization is considered through adaptive update of dynamic formulation matrices.
+The error dynamics in this case is
+
+\begin{equation\*}
+ \dot{\bm{\epsilon}} = \bm{A} \bm{\epsilon} + \bm{B} \bm{\Phi} \tilde{\bm{\theta}}
+\end{equation\*}
+
+in which
+
+\begin{equation\*}
+ \begin{aligned}
+ \bm{A} &= \begin{bmatrix}
+ \bm{0} & \bm{I} \\\ -bm{K}\_p & -\bm{K}\_d
+ \end{bmatrix}, \quad \bm{B} = \begin{bmatrix}
+ \bm{0} \\\ \bm{I}
+ \end{bmatrix} \\\\
+ \bm{\Phi} &= \hat{\bm{M}}^{-1} \bm{\Upsilon}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}, \ddot{\bm{\mathcal{X}}})
+ \end{aligned}
+\end{equation\*}
+
+Based on the Lyapunov stability analysis, by using the following Lyapunov function
+
+\begin{equation\*}
+ V = \bm{\epsilon}^T \bm{P} \bm{\epsilon} + \tilde{\bm{\theta}}^T \bm{\Gamma} \bm{\theta}
+\end{equation\*}
+
+the following parameter adaptation law is derived for updates
+
+\begin{equation\*}
+ \dot{\hat{\bm{\theta}}} = - \bm{\Gamma}^{-1} \bm{\Phi}^T \bm{B}^T \bm{P} \bm{\epsilon}
+\end{equation\*}
+
+By this means, the closed-loop system achieves asymptotic tracking performance, while the parameter estimation errors remain bounded.
+
+
+### Motion Control of the Stewart-Gough Platform {#motion-control-of-the-stewart-gough-platform}
+
+
+#### Control in the Task space {#control-in-the-task-space}
+
+For the Stewart-Gough platform, the motion variable in the task space is a six-dimensional vector
+\\[ \bm{\mathcal{X}} = \begin{bmatrix} \bm{x}\_p \\\ \bm{\theta} \end{bmatrix} \\]
+with:
+
+- \\(\bm{x}\_p = [x\_p\ y\_p\ z\_p]^T\\) is the position vector of the motion platform center of mass
+- \\(\bm{\theta} = \theta [s\_x\ s\_y\ s\_z]^T = [\theta\_x\ \theta\_y\ \theta\_z]^T\\) is the moving platform orientation expressed by screw coordinates
+
+Therefore, the tracking error is defined as \\(\bm{e} = [e\_x\ e\_y\ e\_z\ e\_{\theta\_x}\ e\_{\theta\_y}\ e\_{\theta\_z}]^T\\).
+
+The decentralized controller consists of six disjoint proportional derivative controllers acting on each error component and is denoted by \\(\bm{K}\_d s + \bm{K}\_p\\).
+
+The output of the controller is denoted by \\(\bm{\mathcal{F}} = [F\_x\ F\_y\ F\_z\ \tau\_x\ \tau\_y\ \tau\_z]^T\\).
+Note that since the output of the controller is defined in the task space, each wrench component directly manipulates the corresponding tracking error component, and therefore, the overall tracking performance of the manipulator is suitable is high controller gains are used.
+
+In practice, the calculated output wrench is transformed into actuator forces through the force distribution block corresponding to the inverse of Jacobian transpose.
+
+
+#### Control in the Joint space {#control-in-the-joint-space}
+
+The joint variable \\(\bm{q}(t)\\) is a six-dimensional vector consisting of the limb lengths denoted by \\(\bm{q} = [l\_1\ l\_2\ l\_3\ l\_4\ l\_5\ l\_6]^T\\).
+Therefore, the tracking error is defined as \\(\bm{e}\_q = \bm{q}\_d - \bm{q}\\), in which is the desired motion variable in the joint space \\(\bm{q}\_d\\) is determined by the solution of inverse kinematics, and \\(\bm{q}\\) is given by direct measurement of the limb lengths.
+
+The decentralized controller, therefore, consists of six disjoint PD controllers acting on each error component.
+The output of the controller directly generates the actuator torques denoted by \\(\tau\\).
+
+In simulation, it is observe that the orientation error significantly increase in the joint space control scheme.
+The main reason is that the controller gains directly penalize the position error of the limb lengths, and not the orientation errors, and therefore, there is no direct controller action to be suitably tuned to reduce the orientation error.
+
+Comparing the closed-loop performance of the PD controllers designed in the joint space to those designed in the task space, it can be concluded that **tuning of the PD gains for a suitable performance is much easier in task space designs**.
+Furthermore, a very small error signature in the joint space may be accumulated to produce relatively larger tracking errors in the task space.
+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}
+
+
+
+
+### Introduction {#introduction}
+
+In many applications, it may occur that the robot moving platform is in contact with a **stiff** environment and **specific interacting wrench is required**.
+In such applications, the contact wrench describes the state of interaction more effectively than the position and orientation of the moving platform.
+
+
+
+The problem of **force control** can be described as to derive the actuator forces required to generate a prescribed desired wrench at the manipulator moving platform, when the manipulator is carrying out its desired motion.
+
+
+
+This problem and its extents are treated in the **force control** algorithms described in this chapter.
+A force control strategy is one that modifies position trajectories based on the sensed wrench, or force-motion relations.
+
+If a pure **motion control** scheme is used for manipulator, in case it contacts an environment, the robot does not sense the presence of the environment, and its driving forces become harshly high to reduce the tracking errors.
+In such a case, the robot may break the object it is in contact or will break its internal structure.
+Additional sensors should be included in the manipulator in order for it to be able to feel the interaction and to control the interacting forces.
+Different wrench sensors are developed for such applications, and it is possible to use joint torque or link force measurement units to determine the projection of the interacting forces in the joint space.
+
+The use of wrench sensors either in the task space or in the joint space open horizons to use different force control topologies for the manipulators.
+Using such sensors does not imply that regular motion sensors used in motion control schemes are not necessary.
+The use of motion sensors and the usual corresponding control topologies are usually necessary, since the motion of the manipulator is one of the outputs to be controlled.
+Depending on the type and configuration of the wrench sensors, different force control topologies are developed.
+
+
+### Controller Topology {#controller-topology}
+
+For a force control scheme, the desired interacting wrench of the moving platform and the environment may be of interest.
+This quantity may be denoted by \\(\bm{\mathcal{F}}\_d\\), which has the same dimension and structure of the manipulator wrench \\(\bm{\mathcal{F}}\\).
+To carry out such a control task in a closed-loop structure, it is necessary to **measure the output wrench** of the manipulator through an instrumentation system.
+
+Although there are many commercial six-degrees-of-freedom wrench sensors available in the market, they are usually more expensive than single joint force measurement units.
+Another alternative for force measurement is **direct measurement of the actuator forces**.
+Many commercial linear actuators are available in the market in which **embedded force measurement** is considered in their design.
+Therefore, it might be preferable in some applications to use direct actuator force measurements to carry out the feedback control.
+
+
+#### Cascade Control {#cascade-control}
+
+In a general force control scheme, the **prime objective** is tracking of the interacting wrench between the moving platform and the environment.
+However, note that the motion control of the robot when the robot is in interaction with the environment is also another **less-important objective** and when the contact of the robot moving platform is released, motion control becomes the prime objective.
+
+
+
+To follow **two objectives** with different properties in one control system, usually a **hierarchy** of two feedback loops is used in practice.
+This kind of control topology is called **cascade control**, which is used when there are **several measurements and one prime control variable**.
+Cascade control is implemented by **nesting** the control loops, as shown in [Figure 27](#figure--fig:cascade-control).
+The output control loop is called the **primary loop**, while the inner loop is called the secondary loop and is used to fulfill a secondary objective in the closed-loop system.
+
+
+
+
+
+{{< figure src="/ox-hugo/taghirad13_cascade_control.png" caption="Figure 27: Block diagram of a closed-loop system with cascade control" >}}
+
+The measured variables are here the motion and interacting wrench that may be measured in the task space or in the joint space, and therefore, different control topologies may be advised for each set of measurement variables.
+
+To improve the performance of the control system for a particular objective, it is important to **choose the right variables for internal and external feedback loops**, and to **design suitable controllers for each feedback system**.
+Although these differ in different topologies described in the following sections, some **general rules** are applied to design a well performing cascade control system.
+
+A general idea in cascade control design is the **ideal case**, in which the inner loop is designed so tight that the secondary (inner) loop behaves as a **perfect servo**, and responds very quickly to the internal control command.
+This idea is effectively used in many applications, wherein a nearly-perfect actuator to respond to the requested commands is designed by using an inner control feedback.
+
+
+
+The **design criteria** for the inner loop is to have a high control gain such that the time response of the secondary variable is at least 5 times more than that of the primary variable, and such that it can overcome the effect of **disturbances** and **unmodelled dynamics** in the **internal feedback structure**.
+
+
+
+It is also necessary to have a well-defined relation between the primary and secondary variables, to have harmony in the objectives followed in the primary and secondary loops.
+
+
+#### Force Feedback in Outer Loop {#force-feedback-in-outer-loop}
+
+Consider the force control schemes, in which **force tracking is the prime objective**.
+In such a case, it is advised that the outer loop of cascade control structure is constructed by wrench feedback, while the inner loop is based on position feedback.
+Since different types of measurement units may be used in parallel robots, different control topologies may be constructed to implement such a cascade structure.
+
+Consider first the cascade control topology shown in [Figure 28](#figure--fig:taghira13-cascade-force-outer-loop) in which the measured variables are both in the **task space**.
+The inner loop is constructed by position feedback while the outer loop is based on force feedback.
+As seen in [Figure 28](#figure--fig:taghira13-cascade-force-outer-loop), the force controller block is fed to the motion controller, and this might be seen as the **generated desired motion trajectory for the inner loop**.
+
+The output of motion controller is also designed in the task space, and to convert it to implementable actuator force \\(\bm{\tau}\\), the force distribution block is considered in this topology.
+
+
+
+{{< figure src="/ox-hugo/taghira13_cascade_force_outer_loop.png" caption="Figure 28: Cascade topology of force feedback control: position in inner loop and force in outer loop. Moving platform wrench \\(\bm{\mathcal{F}}\\) and motion variable \\(\bm{\mathcal{X}}\\) are measured in the task space" >}}
+
+Other alternatives for force control topology may be suggested based on the variations of position and force measurements.
+If the force is measured in the joint space, the topology suggested in [Figure 29](#figure--fig:taghira13-cascade-force-outer-loop-tau) can be used.
+In this topology, the measured actuator force vector \\(\bm{\tau}\\) is mapped into its corresponding wrench in the task space by the Jacobian transpose mapping \\(\bm{\mathcal{F}} = \bm{J}^T \bm{\tau}\\).
+
+
+
+{{< figure src="/ox-hugo/taghira13_cascade_force_outer_loop_tau.png" caption="Figure 29: Cascade topology of force feedback control: position in inner loop and force in outer loop. Actuator forces \\(\bm{\tau}\\) and motion variable \\(\bm{\mathcal{X}}\\) are measured" >}}
+
+Consider the case where the force and motion variables are both measured in the **joint space**.
+[Figure 30](#figure--fig:taghira13-cascade-force-outer-loop-tau-q) suggests the force control topology in the joint space, in which the inner loop is based on measured motion variable in the joint space, and the outer loop uses the measured actuator force vector.
+In this topology, it is advised that the force controller is designed in the **task** space, and the Jacobian transpose mapping is used to project the measured actuator force vector into its corresponding wrench in the task space.
+However, as the inner loop is constructed in the joint space, the desired motion variable \\(\bm{\mathcal{X}}\_d\\) is mapped into joint space using **inverse kinematic** solution.
+
+Therefore, the structure and characteristics of the position controller in this topology is totally different from that given in the first two topologies.
+
+
+
+{{< figure src="/ox-hugo/taghira13_cascade_force_outer_loop_tau_q.png" caption="Figure 30: Cascade topology of force feedback control: position in inner loop and force in outer loop. Actuator forces \\(\bm{\tau}\\) and joint motion variable \\(\bm{q}\\) are measured in the joint space" >}}
+
+
+#### Force Feedback in Inner Loop {#force-feedback-in-inner-loop}
+
+Consider the force control scheme in which the **motion-force relation is the prime objective**.
+In such a case, force tracking is not the primary objective, and it is advised that the outer loop of cascade control structure consists of a motion control feedback.
+
+Since different type of measurement units may be used in parallel robots, different control topologies may be constructed to implement such cascade controllers.
+
+[Figure 31](#figure--fig:taghira13-cascade-force-inner-loop-F) illustrates the cascade control topology for the system in which the measured variables are both in the task space (\\(\bm{\mathcal{F}}\\) and \\(\bm{\mathcal{X}}\\)).
+The inner loop is loop is constructed by force feedback while the outer loop is based on position feedback.
+By this means, when the manipulator is not in contact with a stiff environment, position tracking is guaranteed through the primary controller.
+However, when there is interacting wrench \\(\bm{\mathcal{F}}\_e\\) applied to the moving platform, this structure controls the force-motion relation.
+This configuration may be seen as if the **outer loop generates a desired force trajectory for the inner loop**.
+
+
+
+{{< figure src="/ox-hugo/taghira13_cascade_force_inner_loop_F.png" caption="Figure 31: Cascade topology of force feedback control: force in inner loop and position in outer loop. Moving platform wrench \\(\bm{\mathcal{F}}\\) and motion variable \\(\bm{\mathcal{X}}\\) are measured in the task space" >}}
+
+Other alternatives for control topology may be suggested based on the variations of position and force measurements.
+If the force is measured in the joint space, control topology shown in [Figure 32](#figure--fig:taghira13-cascade-force-inner-loop-tau) can be used.
+In such case, the Jacobian transpose is used to map the actuator force to its corresponding wrench in the task space.
+
+
+
+{{< figure src="/ox-hugo/taghira13_cascade_force_inner_loop_tau.png" caption="Figure 32: Cascade topology of force feedback control: force in inner loop and position in outer loop. Actuator forces \\(\bm{\tau}\\) and motion variable \\(\bm{\mathcal{X}}\\) are measured" >}}
+
+If the force and motion variables are both measured in the **joint** space, the control topology shown in [Figure 33](#figure--fig:taghira13-cascade-force-inner-loop-tau-q) is suggested.
+The inner loop is based on the measured actuator force vector in the joint space \\(\bm{\tau}\\), and the outer loop is based on the measured actuated joint position vector \\(\bm{q}\\).
+In this topology, the desired motion in the task space is mapped into the joint space using **inverse kinematic** solution, and **both the position and force feedback controllers are designed in the joint space**.
+Thus, independent controllers for each joint may be suitable for this topology.
+
+
+
+{{< figure src="/ox-hugo/taghira13_cascade_force_inner_loop_tau_q.png" caption="Figure 33: Cascade topology of force feedback control: force in inner loop and position in outer loop. Actuator forces \\(\bm{\tau}\\) and joint motion variable \\(\bm{q}\\) are measured in the joint space" >}}
+
+
+### Stiffness Control {#stiffness-control}
+
+
+#### Single-Degree-of-Freedom Stiffness Control {#single-degree-of-freedom-stiffness-control}
+
+
+#### General Stiffness Control {#general-stiffness-control}
+
+
+#### Stiffness Contorl of the Stewart-Gough Platform {#stiffness-contorl-of-the-stewart-gough-platform}
+
+
+### Direct Force Control {#direct-force-control}
+
+
+
+{{< figure src="/ox-hugo/taghira13_direct_force_control.png" caption="Figure 34: Direct force control scheme, force feedback in the outer loop and motion feedback in the inner loop" >}}
+
+
+### Impedance Control {#impedance-control}
+
+For the stiffness control and direct force control schemes, it is observed that when the manipulator-moving platform is in contact with a stiff environment, the motion variable \\(\bm{\mathcal{X}}\\) and the interacting force variable \\(\bm{\mathcal{F}}\\) are two dynamically **dependent** quantities.
+
+In stiffness control, it is aimed to adjust the **static** relation between these two quantities.
+In this scheme, no force measurement is required, however, careful design on the desired motion trajectory and PD controller gains is needed to tune the stiffness property of the interaction at steady stage.
+
+In force control schemes, on the other hand, the force tracking is the prime objective, and force measurement is a stringent requirement to implement such schemes.
+
+The main reason that the motion and force variables are not being gable to be controlled independently is that for an n-degrees-of-freedom manipulator, only n-independent control inputs are available, and therefore, only n-independent variables can be controlled, while the force and motion quantities count to \\(2n\\) independent variables.
+
+
+
+The key idea behind **impedance control** schemes, is to **tune the dynamic relation between the force and the motion variables**, and not a hierarchy of tracking objectives in force and in position variables.
+In this scheme, contrary to stiffness control schemes, **both force and position variables are measured** and used in the control structure.
+
+
+
+The definition of mechanical **impedance** is given in an analogy of the well-known electrical impedance definition as the **relationship between the effort and flow variables**.
+Since this relation can be well determined in the frequency domain, the dynamical relation of force and motion variable may be represented by mechanical impedance.
+Impedance control schemes provide control topology to tune the mechanical impedance of a system to a desired value.
+By this means, the force and the motion variables are not controlled independently, or in a hierarchy, but their dynamic relation represented by mechanical impedance is suitably controlled.
+
+
+#### Impedance {#impedance}
+
+Impedance was first defined in electrical networks as the measure of the opposition that an electrical circuit presents to the passage of a current when a voltage is applied.
+To **generalize** the impedance definition to other disciplines, voltage is generalized to the **effort** and current is generalized to the **flow**.
+
+Impedance is a **complex** function defined as the ratio of the Laplace transform of the effort to the Laplace transform of the flow.
+
+Impedance is usually denoted by \\(\bm{Z}(s)\\) and it may be represented by writing its magnitude and phase in the form of \\(|\bm{Z}(s)|\\) and \\(\angle{\bm{Z}(s)}\\).
+The magnitude of the complex impedance \\(|\bm{Z}|\\) is the ratio of the effort amplitude to that of the flow, while the phase \\(\angle{\bm{Z}}\\) is the phase shift by which the flow is ahead of the effort.
+
+
+
+**Mechanical Impedance** is defined as the ratio of the Laplace transform of the mechanical effort to the Laplace transform of the mechanical flow:
+
+\begin{equation}
+ \bm{Z}(s) = \frac{\bm{F}(s)}{\bm{v}(s)}
+\end{equation}
+
+in which effort in mechanical systems is represented by force \\(\bm{F}\\) and flow is represented by velocity \\(\bm{v}\\).
+
+
+
+Note that this definition is given for a single-degree-of-freedom motion system.
+The motion can be generalized to angular motion, in which the effort is represented by torque, while the flow is represented by angular velocity.
+Furthermore, the impedance may be generalized to multiple-degrees-of-freedom system, in which for a general spatial motion effort is represented by a wrench \\(\bm{\mathcal{F}}\\), while flow is represented by motion twist \\(\dot{\bm{\mathcal{X}}}\\).
+
+Nevertheless, note that Laplace transform is only applicable for **linear time invariant** systems, and for a parallel manipulator the dynamic formulation of which is nonlinear, the concept of mechanical impedance may be extended to the differential equation relating the mechanical wrench \\(\bm{\mathcal{F}}\\) to motion twist \\(\dot{\bm{\mathcal{X}}}\\).
+
+
+
+Consider an RLC circuit depicted in [Figure 35](#figure--fig:taghirad13-impedance-control-rlc).
+The differential equation relating voltage \\(v\\) to the current \\(i\\) is given by
+\\[ v = L\frac{di}{dt} + Ri + \int\_0^t \frac{1}{C} i(\tau)d\tau \\]
+in which \\(L\\) denote the inductance, \\(R\\) the resistance and \\(C\\) the capacitance.
+
+The impedance of the system may be found from the Laplace transform of the above equation:
+
+\begin{equation}
+ Z(s) = \frac{v(s)}{i(s)} = Ls + R + \frac{1}{Cs} \label{eq:rlc\_impedance}
+\end{equation}
+
+
+
+
+
+Consider the mass-spring-damper system depicted in [Figure 35](#figure--fig:taghirad13-impedance-control-rlc).
+The governing dynamic formulation for this system is given by
+\\[ m \ddot{x} + c \dot{x} + k x = f \\]
+in which \\(m\\) denote the body mass, \\(c\\) the damper viscous coefficient and \\(k\\) the spring stiffness.
+
+The impedance of the system may be found from the Laplace transform of the above equation:
+
+\begin{equation}
+ Z(s) = \frac{f(s)}{v(s)} = ms + c + \frac{k}{s} \label{eq:mass\_spring\_damper\_impedance}
+\end{equation}
+
+
+
+
+
+{{< figure src="/ox-hugo/taghirad13_impedance_control_rlc.png" caption="Figure 35: Analogy of electrical impedance in (a) an electrical RLC circuit to (b) a mechanical mass-spring-damper system" >}}
+
+As inferred from the above two examples, although the physical nature of the system may differ from each other, they may be represented by similar impedances.
+From this analogy, a terminology for impedance is introduced.
+
+
+
+An impedance \\(\bm{Z}(s)\\) is called
+
+- **Inductive** if \\(|\bm{Z}(0)| = 0\\)
+- **Resistive** if \\(|\bm{Z}(0)| = R\\)
+- **Capacitive** if \\(\lim\_{s\to 0} |\bm{K}(s)| = \infty\\)
+
+
+
+Hence, for the mechanical system represented in [Figure 35](#figure--fig:taghirad13-impedance-control-rlc):
+
+- mass represents inductive impedance
+- viscous friction represents resistive impedance
+- spring stiffness represents capacitive impedance
+
+The environments that a robot interacts with may be represented by these classified impedance components.
+A very stiff environment may be represented by high-capacitive impedance models, whereas an environment with high structural damping may be represented by high-resitive impedance.
+
+
+#### Impedance Control Concept {#impedance-control-concept}
+
+The key idea behind impedance control schemes is to tune the dynamic relation between force and motion variables.
+Impedance control schemes provide control topology to tune the mechanical impedance of a system toward a desired impedance.
+
+A desired impedance could be adjusted by desired inductive, resistive and capacitive impedances, which forms a desired linear impedance for the closed-loop system as follows:
+\\[ \bm{Z}\_d(s) = \bm{M}\_d s + \bm{C}\_d + \frac{1}{s} \bm{K}\_d \\]
+where \\(\bm{Z}\_d\\) denotes the desired impedance of the closed-loop system, which is composed of the desired inductive impedance \\(\bm{M}\_d\\), desired resistive impedance \\(\bm{C}\_d\\) and desired capacitive impedance \\(\bm{K}\_d\\).
+Impedance control structures may be used to tune the closed-loop impedance of the system suitably to follow such a desired impedance.
+
+
+#### Impedance Control Structure {#impedance-control-structure}
+
+Consider a parallel robot with multiple-degrees-of-freedom interacting with a stiff environment.
+In such a case, the motion of the robot end effector is represented by the motion vector \\(\bm{\mathcal{X}}\\), and the interacting wrench applied to the robot end effector is denoted by \\(\bm{\mathcal{F}}\_e\\).
+It is considered that the interacting wrench is measured in the task space and is used in the inner force feedback loop.
+Furthermore, it is considered that the motion variable \\(\bm{\mathcal{X}}\\) is measured and is used in the outer feedback loop.
+
+In the impedance control scheme, **regulation of the motion-force dynamic relation is the prime objective**, and since force tracking is not the primary objective, it is advised to used a cascade control structure with motion control feedback in the outer loop and force feedback in the inner loop.
+
+Therefore, when the manipulator is not in contact with a stiff environment, position tracking is guaranteed by a primary controller.
+However, when there is an interacting wrench \\(\bm{\mathcal{F}}\_e\\) applied to the moving platform, this structure may be designed to control the force-motion dynamic relation.
+
+As a possible impedance control scheme, consider the closed-loop system depicted in [Figure 36](#figure--fig:taghira13-impedance-control), in which the position feedback is considered in the outer loop, while force feedback is used in the inner loop.
+This structure is advised when a desired impedance relation between the force and motion variables is required that consists of desired inductive, resistive, and capacitive impedances.
+As shown in [Figure 36](#figure--fig:taghira13-impedance-control), the motion-tracking error is directly determined from motion measurement by \\(\bm{e}\_x = \bm{\mathcal{X}}\_d - \bm{\mathcal{X}}\\) in the outer loop and the motion controller is designed to satisfy the required impedance.
+
+Moreover, direct force-tracking objective is not assigned in this control scheme, and therefore the desired force trajectory \\(\bm{\mathcal{F}}\_d\\) is absent in this scheme.
+However, an auxiliary force trajectory \\(\bm{\mathcal{F}}\_a\\) is generated from the motion control law and is used as the reference for the force tracking.
+By this means, no prescribed force trajectory is tracked, while the **motion control scheme would advise a force trajectory for the robot to ensure the desired impedance regulation**.
+
+
+
+{{< figure src="/ox-hugo/taghira13_impedance_control.png" caption="Figure 36: Impedance control scheme; motion feedback in the outer loop and force feedback in the inner loop" >}}
+
+The required wrench \\(\bm{\mathcal{F}}\\) in the impedance control scheme, is based on inverse dynamics control and consists of three main parts.
+In the inner loop, the force control scheme is based on a feedback linearization part in addition to a mass matrix adjustment, while in the outer loop usually a linear motion controller is considered based on the desired impedance requirements.
+
+Although many different impedance structures may be considered as the basis of the control law, in [Figure 36](#figure--fig:taghira13-impedance-control), a linear impedance relation between the force and motion variables is generated that consists of desired inductive \\(\bm{M}\_d\\), resistive \\(\bm{C}\_d\\) and capacitive impedances \\(\bm{K}\_d\\).
+
+According to [Figure 36](#figure--fig:taghira13-impedance-control), the controller output wrench \\(\bm{\mathcal{F}}\\), applied to the manipulator may be formulated as
+\\[ \bm{\mathcal{F}} = \hat{\bm{M}} \bm{M}\_d^{-1} \bm{e}\_F + \bm{\mathcal{F}}\_{fl} \\]
+with:
+
+\begin{align\*}
+ \bm{e}\_F &= \bm{\mathcal{F}}\_a - \bm{\mathcal{F}}\_m \\\\
+ \bm{\mathcal{F}}\_a &= \bm{M}\_d \ddot{\bm{\mathcal{X}}}\_{d} + \bm{C}\_{d} \dot{\bm{e}}\_{x} + \bm{K}\_{d} \bm{e}\_{x}
+\end{align\*}
+
+\\(\bm{M}\_d\\) denotes the desired inductive impedance, \\(\bm{C}\_d\\) the desired resistive impedance and \\(\bm{K}\_d\\) is desired capacitive impedance matrices.
+
+The feedback linearizing term is given by:
+\\[ \bm{\mathcal{F}}\_{fl} = \hat{\bm{C}}(\bm{\mathcal{X}}, \dot{\bm{\mathcal{X}}}) \dot{\bm{\mathcal{X}}} + \hat{\bm{G}}(\bm{\mathcal{X}}) + \bm{\mathcal{F}}\_m \\]
+
+If the information on the dynamic matrices is complete, and if the force measurements are noise free (\\(\bm{\mathcal{F}}\_m = \bm{\mathcal{F}}\_e\\)), the closed-loop dynamic formulation simplifies to:
+\\[ \bm{M}\_d \ddot{\bm{e}}\_x + \bm{C}\_d \dot{\bm{e}}\_x + \bm{K}\_d \bm{e}\_x = \bm{\mathcal{F}}\_e \\]
+
+And thus the closed-loop error dynamic equation satisfies a set of second-order systems with the desired impedance coefficients in relation to the interacting force.
+In other words, **the control structure guarantees that the force and motion relation follows a desired impedance**.
+Therefore, by choosing appropriate impedance matrices, the transient performance of the force-motion relation can be shaped so as to have a fast but stable interaction.
+By this means, what is controlled is the dynamic relation between the force and motion variables, and not directly the position.
+However, if the robot is moving freely in space and has no interaction with the environment, \\(\bm{\mathcal{F}}\_e = 0\\), the closed-loop system will provide a suitable motion tracking thanks to the motion controller in the outer loop.
+
+The impedance control scheme is very popular in practice, wherein tuning the force and motion relation in a robot manipulator interacting with a stiff environment is the prime objective.
+However, note that for a good performance, an accurate model of the system is required, and the obtained force and motion dynamics are not robust to modeling uncertainty.
+
+
+## Bibliography {#bibliography}
+
+
+
Taghirad, H. 2013. Parallel Robots : Mechanics and Control. Boca Raton, FL: CRC Press.
+
diff --git a/content/book/wardle15_ultra_precis_bearin.md b/content/book/wardle15_ultra_precis_bearin.md
new file mode 100644
index 0000000..d5959e8
--- /dev/null
+++ b/content/book/wardle15_ultra_precis_bearin.md
@@ -0,0 +1,146 @@
++++
+title = "Ultra Precision Bearings"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Wardle 2015)
+
+Author(s)
+: Wardle, F.
+
+Year
+: 2015
+
+
+## Bearing motion error {#bearing-motion-error}
+
+Causes:
+
+- Manufacturing Quality
+- Bearing design
+- External influences
+
+**Types of error motion**
+
+A distinction is made between (see Figure ):
+
+- motion errors that are harmonic of the basic rotor speed: _synchronous_ motion error
+- those that are node: _asynchronous_ motion errors
+
+
+
+{{< figure src="/ox-hugo/wardle15_synchronous_asynchronous_schematic.png" caption="Figure 1: Effect of (a) synchronous, and (b) asynchronous motion error on surface form" >}}
+
+
+### Measurement of motion error {#measurement-of-motion-error}
+
+A capacitive sensor is typically used, and the measurement is performed over a time period corresponding to several (typically five) revolutions of the bearing.
+
+It is displayed as a polar plot of motion error amplitude versus angle of rotation (Figure ).
+
+
+
+{{< figure src="/ox-hugo/wardle15_typical_error_plot.png" caption="Figure 2: Total error motion" >}}
+
+The Synchronous error motion (i.e. error that are harmonics of the rotational speed) can be extracted (Figure ).
+
+
+
+{{< figure src="/ox-hugo/wardle15_synchronous_error_example.png" caption="Figure 3: Synchronous motion error" >}}
+
+It can then be separated into a "_fundamental error motion_" and a "_residual error motion_" (Figure ).
+The fundamental error motion contains only one frequency corresponding to the speed of the rotation of the bearing.
+For radial measurements, it corresponds to the eccentricity, and is not always significant.
+
+
+
+{{< figure src="/ox-hugo/wardle15_fundamental_and_residual_errors.png" caption="Figure 4: (a) Fundamental error motion; and (b) residual synchronous error motion" >}}
+
+The Asynchronous error motion (Figure ) contains all other motion error frequencies.
+
+
+
+{{< figure src="/ox-hugo/wardle15_asynchronous_error_motion_example.png" caption="Figure 5: Asynchronous motion error" >}}
+
+The measurements shown in previous figures may be quantified by a number of different parameters but it is commonplace to find the "Least Squares" best fit centre and then to place Maximum Inscribed and Minimum Circumscribed circles on the measurement.
+
+The radial separation of the centres of the circles then represents a "Peak to Peak" value of the error motion.
+
+In many cases, the displacement sensor is mounted over a rotating target surface attached to the shaft supported by the bearings.
+However, the displacement sensor now measures not only the motion error of the shaft but also any **geometrical errors present in the target surface**.
+For a radial error motion measurement, out of roundness of the target surface is recorded along with the shaft’s motion error.
+As the motion error of ultra precision bearings may be comparable in magnitude to the geometrical errors in the most accurately manufactured target surfaces then a correction must be made.
+A measurement procedure was proposed that involved two measurements, one with the target surface fixed at some angular position relative to the shaft and the second with it moved through 180 degrees.
+By adding or subtracting the two measurements, geometrical errors on the target surface can be separated from shaft motion errors.
+
+
+### Frequency Analysis {#frequency-analysis}
+
+In general, rotating systems will exhibit motion errors containing several series of harmonics, each of which relate to different aspects or components of the system.
+The main benefit of frequency analysis is therefore to obtain diagnostic information with which to identify the likely sources of motion error and to help reduce their amplitude should they be unacceptable.
+
+
+## Ball Bearings {#ball-bearings}
+
+Criterion used in this book to define ultra precision bearings: motion error of less than 100 nm peak to peak.
+
+Generally only the precision grades or low noise grades of ball bearing are
+likely to produce low motion errors. These types of ball bearing are widely
+used in high precision machine tools, quiet running electric motors,
+computer disc drives and instrumentation, where they provide good but
+not exceptional running accuracy at a competitive price.
+
+Single-row radial ball bearings are favoured in precision engineering
+applications such as computer disc drives and precision electric motors,
+where low motion errors or low noise are a primary requirement. Angular
+contact bearings, on the other hand, are widely used in precision applica-
+tions such as machine tool spindles and rotary tables where static stiffness
+is also important.
+
+
+### Motion Error {#motion-error}
+
+During the 1980s and 1990s, the computer disc drive industry emerged
+as a major application for ball bearings and motion error was recognised as
+a critical bearing performance parameter directly influencing disc capacity.
+Unlike the electric motor application, where bearings may operate under a
+diverse range of conditions, this application was focused on low cost,
+miniature bearings operating under specific conditions of light axial load
+and medium speed at near ambient temperatures. Early research work,
+performed mainly in Japan, developed an understanding of the factors that
+determine the radial motion error of disc drive ball bearings [34–38] and
+later focused specifically on reducing the ‘Non-Repeatable Run Out’
+(NRRO) [39–43]. Because in this application bearing speeds are moderate,
+the NRRO was found to be largely influenced by ball size variation.
+
+In terms of peak–peak motion error amplitudes, ball bearings can achieve
+a creditable performance. Amplitudes as low as 48 nm have been reported
+in scientific papers [41], for ball bearings used in computer hard disc drives.
+This is comparable to the motion error of some types of fluid film, but the
+**disadvantage of ball bearings is that the motion error is predominantly
+asynchronous whereas for fluid film bearings it is mostly synchronous**.
+
+The main reason is that for ball bearings, motion error frequencies relate to
+the orbital and spinning speeds of the balls and these can never be harmonic
+of shaft speed in a practical bearing design.
+
+Ball bearing motion error is
+influenced by a large number of parameters, some a function of the bearing
+design and manufacturing processes, others being dependent on application
+conditions. However, there are relatively few basic mechanisms by which
+motion error can be generated and by understanding these, the influence of
+different parameters can be more clearly defined and in many cases, even
+quantified.
+
+
+#### Dynamics model for estimating call bearing motion error {#dynamics-model-for-estimating-call-bearing-motion-error}
+
+
diff --git a/content/inbook/albertos04_decen_decoup_contr.md b/content/inbook/albertos04_decen_decoup_contr.md
new file mode 100644
index 0000000..6ce6e83
--- /dev/null
+++ b/content/inbook/albertos04_decen_decoup_contr.md
@@ -0,0 +1,192 @@
++++
+title = "Decentralized and decoupled control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Multivariable Control]({{< relref "multivariable_control.md" >}}), [Decoupled Control]({{< relref "decoupled_control.md" >}})
+
+Reference
+: (Albertos and Antonio 2004)
+
+Author(s)
+: Albertos, P., & Antonio, S.
+
+Year
+: 2004
+
+
+## Introduction {#introduction}
+
+Decentralized control is decomposed into two steps:
+
+1. decoupled the plant into several subsystems
+2. control the subsystems
+
+The initial effort of decoupling the system results in subsequent easier design, implementation and tuning.
+
+Decentralized control tries to control multivariable plants by a suitable decomposition into SISO control loops.
+If the process has strong coupling or conditioning problems, centralized control may be required.
+It however requires the availability of a precise model.
+
+Two approaches can be used to control a coupled system with SISO techniques:
+
+- **decentralized control** tries to divide the plant and design _independent_ controllers for each subsystems.
+ Two alternative arise:
+ - neglect the coupling
+ - carry out a _decoupling_ operation by "canceling" coupling by transforming the system into a diagonal or triangular structure bia a transformation matrix
+- **cascade control**
+
+
+## Mutli-Loop Control, Pairing Selection {#mutli-loop-control-pairing-selection}
+
+The strategy called _multi-loop control_ consists of first proper input/output pairing, and then design of several SISO controllers.
+In this way, a complex control problem is divided into several simpler ones.
+
+The multi-loop control may not work in strongly coupled systems.
+Therefore, a methodology the access the degree of interaction between the loops is needed.
+
+
+### [Relative Gain Array]({{< relref "relative_gain_array.md" >}}) {#relative-gain-array--relative-gain-array-dot-md}
+
+The Relative Gain Array (RGA) \\(\Lambda(s)\\) is defined as:
+
+\begin{equation}
+\Lambda(s) = G(s) \times (G(s)^T)^{-1}
+\end{equation}
+
+The RGA is scaling-independent and controller-independent.
+These coefficients can be interpreted as the ratio between the open-loop SISO static gain and the gain with "perfect" control on the rest of the loops.
+
+For demanding control specifications, the values of \\(\Lambda\\) car be drawn as a function of frequency.
+In this case, at frequencies important for control stability robustness (around the peak of the sensitivity transfer function), if \\(\Lambda(j\omega)\\) approaches the identity matrix, stability problems are avoided in multi-loop control.
+
+
+## Decoupling {#decoupling}
+
+In cases when multi-loop control is not effective in reaching the desired specifications, a possible strategy for tackling the MIMO control could be to transform the transfer function matrix into a diagonal dominant one.
+This strategy is called **decoupling**.
+
+[Decoupled Control]({{< relref "decoupled_control.md" >}}) can be achieved in two ways:
+
+- feedforward cancellation of the cross-coupling terms
+- based on state measurements, via a feedback law
+
+
+### Feedforward Decoupling {#feedforward-decoupling}
+
+A pre-compensator ([Figure 1](#figure--fig:albertos04-pre-compensator-decoupling)) can be added to transform the open-loop characteristics into a new one as chosen by the designer.
+This decoupler can be taken as the inverse of the plant provided it does not include RHP-zeros.
+
+
+
+{{< figure src="/ox-hugo/albertos04_pre_compensator_decoupling.png" caption="Figure 1: Decoupler pre-compensator" >}}
+
+**Approximate decoupling**:
+To design low-bandwidth loops, insertion of the inverse DC-gain before the loop ensures decoupling at least at steady-state.
+If further bandwidth extension is desired, an approximation of \\(G^{-1}\\) valid in low frequencies can be used.
+
+Although at first glance, decoupling seems an appealing idea, there are some drawbacks:
+
+- as decoupling is achieved via the coordination of sensors and actuators to achieve an "apparent" diagonal behavior, the failure of one the actuators may heavily affects all loops.
+- a decoupling design (inverse-based controller) may not be desirable for all disturbance-rejection tasks.
+- many MIMO non-minimum phase systems, when feedforward decoupled, increase the RHP-zero multiplicity so performance limitations due to its presence are exacerbated.
+- decoupling may be very sensitive to modeling errors, specially for ill-conditionned plants
+- feedback decoupling needs full state measurements
+
+
+### SVD Decoupling {#svd-decoupling}
+
+A matrix \\(M\\) can be expressed, using the [Singular Value Decomposition]({{< relref "singular_value_decomposition.md" >}}) as:
+
+\begin{equation}
+M = U \Sigma V^T
+\end{equation}
+
+where \\(U\\) and \\(V\\) are orthogonal matrices and \\(\Sigma\\) is diagonal.
+
+The SVD can be used to obtain decoupled equations between linear combinations of sensors and linear combinations of actuators.
+In this way, although losing part of its intuitive sense, a decoupled design can be carried out even for non-square plants.
+
+If sensors are multiplied by \\(U^T\\) and control actions multiplied by \\(V\\), as in [Figure 2](#figure--fig:albertos04-svd-decoupling), then the loop, in the transformed variables, is decoupled, so a diagonal controller \\(K\_D\\) can be used.
+Usually, the sensor and actuator transformations are obtained using the DC gain, or a real approximation of \\(G(j\omega)\\), where \\(\omega\\) is around the desired closed-loop bandwidth.
+
+
+
+{{< figure src="/ox-hugo/albertos04_svd_decoupling.png" caption="Figure 2: SVD decoupling: \\(K\_D\\) is a diagonal controller designed for \\(\Sigma\\)" >}}
+
+The transformed sensor-actuator pair corresponding to the maximum singular value is the direction with biggest "gain" on the plant, that is, the combination of variables being "easiest to control".
+
+In ill-conditioned plants, the ratio between the biggest and lower singular value is large (for reference, greater than 20).
+They are very sensitive to input uncertainty as some "input directions" have much bigger gain than other ones.
+
+SVD decoupling produces the most suitable combinations for independent "multi-loop" control in the transformed variables, so its performance may be better than RGA-based design (at the expense of losing physical interpretability).
+If some of the vectors in \\(V\\) (input directions) have a significant component on a particular input, and the corresponding output direction is also significantly pointing to a particular output, that combination is a good candidate for an independent multi-loop control.
+
+
+## Conclusions {#conclusions}
+
+In this chapter, the control of systems with multiple inputs and outputs is discussed using SISO-based tools, either directly or after some multivariable decoupling transformations.
+
+Multi-loop strategies, if suitable, may present th advantages of fault tolerance, as well as simplicity.
+However, in some cases, tuning may be difficult and coupling may severely limit their performance.
+
+Decoupling is based on mathematical transformations of the system models into diagonal form.
+Feedforward decoupling can be used in many cases.
+Feedback decoupling achieves its objective if state is measurable and system is minimum-phase.
+However, decoupling may be very sensitive to modelling errors and it is not the optimal strategy for disturbance rejection.
+
+Cascade control is widely used in industry to improve the behaviour of basic SISO loops via the addition of extra sensors and actuators.
+However, ease of tuning requires that different time constants are involved in different subsystems.
+In general, addition of extra sensors and actuators in a SISO or MIMO loop, will improve achievable performance and/or tolerance to modelling errors.
+The level of improvement must be traded off against the cost of additional instrumentation.
+
+
+## Implementation and Other Issues {#implementation-and-other-issues}
+
+There are two main categories for the implementation of MIMO control:
+
+- Decentralized, Decoupled, Cascade
+- Centralized, optimization based
+
+A fundamental reason to use cascade and decentralized control in most practical applications is because they require less modelling effort.
+Other advantages of cascade and decentralized control are:
+
+- its behaviour can be easily understood
+- standard equipment can be used (PID controllers, etc.)
+- their decoupled behavior enables easier tuning with model-free strategies
+- decentralized implementation tends to be more fault-tolerant, as individual loops will try to keep their set-points even in the case some other components have failed.
+
+
+### [Anti-Windup Control]({{< relref "anti_windup_control.md" >}}) {#anti-windup-control--anti-windup-control-dot-md}
+
+In practice, it is possible that an actuator saturate.
+In such case, the feedback path is broken, and this has several implications:
+
+- unstable processes: the process output might go out of control
+- multi-loop and centralized control: even with stable plants, opening a feedback path may cause the overall loop to become unstable
+
+The wind-up problem can appear with integral action regulators: during significative step changes in the set point, the integral of the error keeps accumulation and when reaching the desired set-point the accumulated integral action produces a significant overshoot increment.
+In SISO PID regulators, anti-windup schemes are implemented by either stopping integration if the actuator is saturated or by implementing the following control law:
+
+\begin{equation}
+u = K(r - y) - K T\_D \frac{dy}{dt} + \int K T\_i^{-1} (r - y) + T\_t^{-1} (u\_m - u) dt \label{eq:antiwindup\_pid}
+\end{equation}
+
+where \\(u\\) is the calculated control action and \\(u\_m\\) is the actual control action applied to the plant.
+In non-saturated behaviour, \\(u=u\_m\\) and the equation is the ordinary PID.
+In saturation, \\(u\_m\\) is a constant and the resulting equations drive \\(u\\) down towards \\(u\_m\\) dynamically, with time constant \\(T\_T\\).
+
+
+### [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.
+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}.
+
+
+## Bibliography {#bibliography}
+
+
+
Albertos, P., and S. Antonio. 2004. “Decentralized and Decoupled Control.” In Multivariable Control Systems: An Engineering Approach, 125–62. Advanced Textbooks in Control and Signal Processing. Springer-Verlag. doi:10.1007/b97506.
+
diff --git a/content/inbook/steinbuch11_advan_motion_contr_desig.md b/content/inbook/steinbuch11_advan_motion_contr_desig.md
new file mode 100644
index 0000000..b226fad
--- /dev/null
+++ b/content/inbook/steinbuch11_advan_motion_contr_desig.md
@@ -0,0 +1,233 @@
++++
+title = "Advanced Motion Control Design"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+Reference
+: (Steinbuch et al. 2011)
+
+Author(s)
+: Steinbuch, M., Merry, R., Boerlage, M., Ronde, M., & Molengraft, M.
+
+Year
+: 2011
+
+
+## Introduction {#introduction}
+
+The industrial state of the art control of motion systems can be summarized as follows.
+Most systems, by design, are either decoupled, or can be decoupled using static input-output transformations.
+Hence, most motion systems and their motion software architecture use SISO control design methods and solutions.
+
+Feedback design is mostly done in the frequency domain, using [Loop-Shaping]({{< relref "loop_shaping.md" >}}) techniques.
+A typical motion controller has a PID structure, with a low pass at high frequencies and one or two notch filters to compensate flexible dynamics.
+In addition to the feedback controller, a feedforward controller is applied with acceleration, velocity from the reference signal.
+
+The setpoint itself is a result of a setpoint generator with jerk limitation profiles (see [Trajectory Generation]({{< relref "trajectory_generation.md" >}})).
+If the requirements increase, the dynamic coupling between the various DOFs can no longer be neglected and more advanced MIMO control is required.
+
+
+
+[Centralized control]({{< relref "decoupled_control.md" >}})
+: the transfer function matrix of the controller is allowed to have any structure
+
+Decentralized control
+: diagonal controller transfer function, but constant decoupling manipulations of inputs and outputs are allowed
+
+Independent decentralized control
+: a single loop is designed without taking into account the effect of earlier or later designed loops
+
+Sequential decentralized control
+: a single loop is designed with taking into account the effect of all earlier closed loops
+
+
+
+
+## Motion Systems {#motion-systems}
+
+Here, we focus on the control of linear time invariant electromechanical motion systems that have the same number of actuators and sensors as Rigid Body modes.
+The dynamics of such systems are often dominated by the mechanics, such that:
+
+\begin{equation}
+G\_p(s) = \sum\_{i=1}^{N\_{rb}} \frac{c\_i b\_i^T}{s^2} + \sum\_{i=N\_{rb} + 1}^{N} \frac{c\_ib\_i^T}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2}
+\end{equation}
+
+with \\(N\_{rb}\\) is the number of rigid body modes.
+The vectors \\(c\_i,b\_i\\) span the directions of the ith mode shapes.
+
+If the resonance frequencies \\(\omega\_i\\) are high enough, the plant can be approximately decoupled using static input/output transformations \\(T\_u,T\_y\\) so that:
+
+\begin{equation}
+G\_{yu} = T\_y G\_p(s) T\_u = \frac{1}{s^2} \begin{bmatrix}
+m & 0 & & \dots & & 0 \\\\
+0 & m & & & & \\\\
+ & & m & \ddots & & \vdots \\\\
+\vdots & & \ddots & I\_x & & \\\\
+ & & & & I\_y & 0 \\\\
+0 & & \dots & & 0 & I\_z
+\end{bmatrix} + G\_{\text{flex}}(s)
+\end{equation}
+
+
+## Feedback Control Design {#feedback-control-design}
+
+
+### [Loop-Shaping]({{< relref "loop_shaping.md" >}}) - The SISO case {#loop-shaping--loop-shaping-dot-md--the-siso-case}
+
+The key idea of loopshaping is the modification of the controller such that the open-loop is made according to specifications.
+The reason this works well is that the controller enters linearly into the open-loop transfer function \\(L(s) = G(s)K(s)\\).
+However, in practice all specifications are of course given in terms of the final system performance, that is, as _closed-loop_ specifications.
+So we should convert the closed-loop specifications into specifications on the open-loop.
+
+Take as an example the simple case of a disturbance being a sinusoid of known amplitude and frequency.
+If we know the specifications on the error amplitude, we can derive the requirement on the process sensitivity at that frequency.
+Since at low frequency the sensitivity can be approximated as the inverse of the open-loop, we can translate this into a specification of the open-loop at that frequency.
+Because we know that the slope of the open-loop of a well tuned motion system will be between -2 and -1, we can estimate the required crossover frequency.
+
+
+### Loop-Shaping - The MIMO case {#loop-shaping-the-mimo-case}
+
+In MIMO systems, it is much less trivial to apply loopshaping.
+The stability is determined by the closed-loop polynomial, \\(\det(I + L(s))\\), and the characteristic loci (eigenvalues of the FRF \\(L(j\omega)\\) in the complex plane) can be used for this graphically.
+A system with N inputs and N outputs has N characteristic loci.
+
+If each eigen value locus does not encircle the point (-1,0), the MIMO system is closed-loop stable.
+The shaping of these eigenvalue loci is not straightforward if the plant has large off-diagonal elements.
+In that case, a single element of the controller will affect more eigenvalue loci.
+
+The strong non-intuitive aspect of MIMO loopshaping and the fact that SISO loopshaping is used often, are major obstacles in application of modern design tools in industrial motion systems.
+
+
+
+For that reason, the step-by-step approach is proposed:
+
+1. [Interaction Analysis]({{< relref "interaction_analysis.md" >}})
+2. Decoupling Transformations
+3. Independent SISO design
+4. Sequential SISO design
+5. Norm-based MIMO design
+
+
+
+
+#### Interaction Analysis {#interaction-analysis}
+
+The goal of the interaction analysis is to identify two-sided interactions in the plant dynamics.
+Two measured for plant interactions can be used:
+
+- [Relative Gain Array]({{< relref "relative_gain_array.md" >}}) (RGA) per frequency
+
+
+
+ The frequency dependent relative gain array is calculated as:
+
+ \begin{equation}
+ \text{RGA}(G(j\omega)) = G(j\omega) \times (G(j\omega)^{-1})^{T}
+ \end{equation}
+
+ where \\(\times\\) denotes element wise multiplication.
+
+
+- [Structure Singular Value]({{< relref "structured_singular_value.md" >}}) (SSV) of interaction as multiplicative output uncertainty
+
+
+
+ The structured singular value interaction measure is the following condition:
+
+ \begin{equation}
+ \mu\_D(E\_T(j\omega)) < \frac{1}{2}, \forall \omega
+ \end{equation}
+
+ with \\(E\_T(j\omega) = G\_{nd}(j\omega) G\_d^{-1}(j\omega)\\), \\(\mu\_D\\) is the structured singular value, with respect to the diagonal structure of the feedback controller.
+ \\(G\_d(s)\\) are the diagonal terms of the transfer function matrix, and \\(G\_{nd}(s) = G(s) - G\_d(s)\\).
+
+ If a diagonal transfer function matrix is used, controllers gains must be small at frequencies where this condition is not met.
+
+
+
+
+#### Decoupling Transformations {#decoupling-transformations}
+
+A common method to reduce plant interaction is to redefine the input and output of the plant.
+One can combine several inputs or outputs to control the system in more decoupled coordinates.
+For motion systems most of these transformations are found on the basis of _kinematic models_.
+Herein, combinations of the actuators are defined so that actuator variables act in independent (orthogonal) directions at the center of gravity.
+Likewise, combinations of the sensors are defined so that each translation and rotation of the center of gravity can be measured independently.
+This is basically the inversion of a kinematic model of the plant.
+
+As motion systems are often designed to be light and stiff, kinematic decoupling is often sufficient to achieve acceptable decoupling at the crossover frequency.
+
+
+#### Independent SISO design {#independent-siso-design}
+
+For systems where interaction is low, or the decoupling is almost successful, one can design a _diagonal_ controller by closing each control loop independently.
+The residual interaction can be accounted for in the analysis.
+
+For this, we make use of the following decomposition:
+
+\begin{equation}
+\det(I + GK) = \det(I + E\_T T\_d) \det(I + G\_d K)
+\end{equation}
+
+with \\(T\_d = G\_d K (I + G\_d K)^{-1}\\).
+\\(G\_d(s)\\) is defined to be only the diagonal terms of the plant transfer function matrix.
+The effect of the non-diagonal terms of the plant \\(G\_{nd}(s) = G(s) - G\_d(s)\\) is accounted for in \\(E\_T(s)\\).
+
+
+
+Then the MIMO closed-loop stability assessment can be slit up in two assessments:
+
+- the first for stability of N non-interacting loops, namely \\(\det(I + G\_d(s)K(s))\\)
+- the second for stability of \\(\det(I + E\_T(s)T\_d(s))\\)
+
+
+
+If \\(G(s)\\) and \\(T\_d(s)\\) are stable, one can use the _small gain theorem_ to find a sufficient condition of stability of \\(\det(I + E\_TT\_d)\\) as
+
+\begin{equation}
+\rho(E\_T(j\omega) T\_d(j\omega)) < 1, \forall \omega
+\end{equation}
+
+where \\(\rho\\) is the spectral radius.
+
+Due to the fact that a sufficient condition is used, independent loop closing usually leads to conservative designs.
+
+
+#### Sequential SISO design {#sequential-siso-design}
+
+If the interaction is larger, the sequential loop closing method is appropriate.
+The controller is still a diagonal transfer function matrix, but each control designs are now dependent.
+In principle, one starts with the open-loop FRF of the MIMO Plant.
+Then one loop is closed using SISO loopshaping.
+The controller is taken into the plant description, and a new FRF is obtained with one input and output less.
+Then, the next loop is designed and so on.
+
+The multivariable system is nominally closed-loop stable if in each design step the system is closed-loop stable.
+However, the robustness margins in each design step do not guarantee robust stability of the final multivariable system.
+
+Drawbacks of sequential design are:
+
+- the ordering of the design steps may have great impact on the achievable performance.
+ There is no general approach to determine the best sequence.
+- there are no guarantees that robustness margins in earlier loops are preserved.
+- as each design step usually considers only a single output, the responses in earlier designed loops may degrade.
+
+
+#### Norm-based MIMO design {#norm-based-mimo-design}
+
+If sequential SISO design is not successful, the next step is to start norm-based control design.
+This method requires a parametric model and weighting filters to express the control problem in terms of an operator norm like \\(H\_2\\) or \\(H\_\infty\\).
+
+Parametric models are usually build up step-by-step, first considering the unmodeled dynamics as (unstructured) uncertainty.
+
+
+## Bibliography {#bibliography}
+
+
+
Steinbuch, Maarten, Roel Merry, Matthijs Boerlage, Michael Ronde, and Marinus Molengraft. 2011. “Advanced Motion Control Design.” In Control System Applications, 651–76. CRC Press.
+
diff --git a/content/inproceedings/abramovitch23_tutor_real_time_comput_issues_contr_system.md b/content/inproceedings/abramovitch23_tutor_real_time_comput_issues_contr_system.md
new file mode 100644
index 0000000..b47c646
--- /dev/null
+++ b/content/inproceedings/abramovitch23_tutor_real_time_comput_issues_contr_system.md
@@ -0,0 +1,22 @@
++++
+title = "A tutorial on real-time computing issues for control systems"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Abramovitch et al. 2023)
+
+Author(s)
+: Abramovitch, D. Y., Andersson, S., Leang, K. K., Nagel, W., & Ruben, S.
+
+Year
+: 2023
+
+
+
Abramovitch, D. Y., S. Andersson, K. K. Leang, W. Nagel, and S. Ruben. 2023. “A Tutorial on Real-Time Computing Issues for Control Systems.” In 2023 American Control Conference (ACC), 3751–68. doi:10.23919/acc55779.2023.10156102.
Henein, Simon. 2010. “Flexures: Simply Subtle.” In Diamond Light Source Proceedings, MEDSI 2010. Cambridge University Press.
+
diff --git a/content/inproceedings/mcinroy03_proper_stewar.md b/content/inproceedings/mcinroy03_proper_stewar.md
new file mode 100644
index 0000000..6febdcd
--- /dev/null
+++ b/content/inproceedings/mcinroy03_proper_stewar.md
@@ -0,0 +1,25 @@
++++
+title = "Properties of orthogonal stewart platform"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (McInroy 2003)
+
+Author(s)
+: McInroy, J. E.
+
+Year
+: 2003
+
+
+## Bibliography {#bibliography}
+
+
+
McInroy, John E. 2003. “Properties of Orthogonal Stewart Platform.” In Smart Structures and Materials 2003: Smart Structures and Integrated Systems. doi:10.1117/12.483460.
+
diff --git a/content/phdthesis/afzali-far16_vibrat_dynam_isotr_hexap_analy_studies.md b/content/phdthesis/afzali-far16_vibrat_dynam_isotr_hexap_analy_studies.md
new file mode 100644
index 0000000..86c4fce
--- /dev/null
+++ b/content/phdthesis/afzali-far16_vibrat_dynam_isotr_hexap_analy_studies.md
@@ -0,0 +1,143 @@
++++
+title = "Vibrations and dynamic isotropy in hexapods-analytical studies"
+author = ["Dehaeze Thomas"]
+draft = false
+ref_author = "Afzali-Far, B."
+ref_year = 2016
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Isotropy of Parallel Manipulator]({{< relref "isotropy_of_parallel_manipulator.md" >}})
+
+Reference
+: (Afzali-Far 2016)
+
+Author(s)
+: Afzali-Far, B.
+
+Year
+: 2016
+
+
+## Abstract {#abstract}
+
+> The present work was initiated based on an industrial demand for designing a **high-bandwidth** hexapod of an advanced large optical telescope.
+> In this dissertation, we have generalized this industrial problem to fully-parametric models of the hexapod vibrations as well as analytical studies on dynamic isotropy in parallel robots, which can be directly used in any hexapod applications.
+>
+> This work firstly establishes a comprehensive and fully parametric model for the vibrations in hexapods at symmetric configurations.
+> We have developed three models:
+>
+> - Cartesian-space formulation
+> - joint-space formulation
+> - refined model taking into account the inertia of the struts
+>
+> Kinematics of the hexapod are derived parametrically based on the Jacobian.
+> Inertia, stiffness and damping matrices are also parametrically formulated.
+> The eigenvectors and eigenfrequencies are then established in both the cartesian and joint spaces.
+> By introducing the inertia of the struts, despite the apparent symmetric geometry, the equivalent inertia matrix in the cartesian space turns out to be non-diagonal matrix.
+> In addition, the decoupled vibrations are analytically investigated where it is shown that the consideration of the strut inertia may lead to significant changes of the decoupling conditions.
+>
+> The problem of dynamic isotropy, as an optimal design solution for hexapods, is also addressed in this dissertation.
+> Dynamic isotropy is a condition in which all eigenfrequencies of a robot are equal.
+> This is a powerful tool in order to obtain dynamically optimized architectures for parallel robots.
+> We analytically present the conditions of dynamic isotropy in hexapods with and without the consideration of the strut inertia.
+
+
+## Introduction {#introduction}
+
+The design variables of a hexapod (i.e. geometry, stiffness, damping and inertia properties) can be optimized based upon the requirements on the modal behavior (i.e. eigenfrequencies and eigenvectors of the system).
+To do so, the following is performed parametrically:
+
+- parametric model
+- kinematics
+- linearized equations of motion
+- modal analysis
+
+The linearized equations of motion are identified by stiffness, damping and inertia matrices.
+These matrices can be expressed in terms of the **cartesian-space** or the **joint-space** coordinates.
+In the cartesian space, the stiffness matrix is a function of the flexibility of the struts as well as the geometrical variables.
+However, in the joint space, the stiffness matrix is not a function of geometrical variables.
+The inertia matrix is a function of inertia properties as well as the geometrical variables.
+
+Dynamic isotropy is an effective tool to avoid scattered eigenfrequencies in a system.
+In a dynamic isotropy condition, all the eigenfrequencies of a system are equal.
+Is is practically almost impossible to obtain dynamic isotropy based on the standard hexapod architecture.
+
+> Hence, due to the fact that the control bandwidth of a hexapod is mechanically restricted by its natural frequencies, the optimization of the natural frequencies is of great importance.
+
+
+## Parametric Modeling of Vibrations {#parametric-modeling-of-vibrations}
+
+
+## Analytical Studies on Dynamics Isotropy {#analytical-studies-on-dynamics-isotropy}
+
+
+
+(complete) Dynamic isotropy is defined by:
+
+\begin{equation}
+M^{-1} K = \sigma I
+\end{equation}
+
+where \\(\sigma I\\) is a scaled identity matrix.
+This implies that the eigenfrequencies of the matrix \\(M^{-1} K\\) are all equal:
+
+\begin{equation}
+\omega\_1 = \dots = \omega\_6 = \sqrt{\sigma}
+\end{equation}
+
+
+
+Dynamic isotropy for the Stewart platform leads to a series of restrictive conditions and a unique eigenfrequency:
+
+\begin{equation}
+\omega\_i = \sqrt{\frac{2k}{m\_p}}
+\end{equation}
+
+When considering inertia of the struts, conditions are becoming more complex.
+
+
+
+{{< figure src="/ox-hugo/afzali-far16_isotropic_hexapod_example.png" caption="Figure 1: Architecture of the obtained dynamically isotropic hexapod" >}}
+
+
+
+Static isotropy can be defined by:
+
+\begin{equation}
+K\_C = J^T K\_J J = \sigma I
+\end{equation}
+
+where \\(\sigma I\\) is a scaled identity matrix.
+
+
+
+The isotropic constrain of the standard hexapod imposes special inertia of the top platform which may not be wanted in practice (\\(I\_{zz} = 4 I\_{yy} = 4 I\_{xx}\\)).
+
+A class of generalized Gough-Stewart platforms are proposed to eliminate the above constrains.
+[Figure 2](#figure--fig:afzali-far16-proposed-generalized-hexapod) shows a schematic of proposed generalized hexapod.
+
+
+
+{{< figure src="/ox-hugo/afzali-far16_proposed_generalized_hexapod.png" caption="Figure 2: Parametrization of the proposed generalized hexapod" >}}
+
+
+## Conclusions {#conclusions}
+
+
+
+The main findings of this dissertation are:
+
+- Comprehensive and fully parametric model of the hexapod for symmetric configurations are established both in the Cartesian and joint space.
+- Inertia of the struts are taken into account to refine the model.
+- A novel approach in order to obtain dynamically isotropic hexapods is proposed.
+- A novel architecture of hexapod is introduced ([Figure 2](#figure--fig:afzali-far16-proposed-generalized-hexapod)) which is dynamically isotropic for a wide range of inertia properties.
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Afzali-Far, Behrouz. 2016. “Vibrations and Dynamic Isotropy in Hexapods-Analytical Studies.” Lund University.
Babakhani, Bayan. 2012. “Active Damping of Vibrations in High-Precision Motion Systems.” University of Twente. doi:10.3990/1.9789036534642.
+
diff --git a/content/phdthesis/bishop02_devel_precis_point_contr_vibrat.md b/content/phdthesis/bishop02_devel_precis_point_contr_vibrat.md
new file mode 100644
index 0000000..de46ba2
--- /dev/null
+++ b/content/phdthesis/bishop02_devel_precis_point_contr_vibrat.md
@@ -0,0 +1,27 @@
++++
+title = "Development of precision pointing controllers with and without vibration suppression for the NPS precision pointing hexapod"
+author = ["Dehaeze Thomas"]
+draft = true
+ref_author = "Bishop Jr, R. M."
+ref_year = 2002
++++
+
+Tags
+:
+
+
+Reference
+: (Bishop Jr 2002)
+
+Author(s)
+: Bishop Jr, R. M.
+
+Year
+: 2002
+
+
+## Bibliography {#bibliography}
+
+
+
Bishop Jr, Ronald M. 2002. “Development of Precision Pointing Controllers with and without Vibration Suppression for the NPS Precision Pointing Hexapod.” Naval Postgraduate School, Monterey, California.
+
diff --git a/content/phdthesis/hanieh03_activ_stewar.md b/content/phdthesis/hanieh03_activ_stewar.md
new file mode 100644
index 0000000..3c20e77
--- /dev/null
+++ b/content/phdthesis/hanieh03_activ_stewar.md
@@ -0,0 +1,26 @@
++++
+title = "Active isolation and damping of vibrations via stewart platform"
+author = ["Dehaeze Thomas"]
+draft = true
+ref_author = "Hanieh, A. A."
+ref_year = 2003
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Active Damping]({{< relref "active_damping.md" >}})
+
+Reference
+: (Abu Hanieh 2003)
+
+Author(s)
+: Hanieh, A. A.
+
+Year
+: 2003
+
+
+## Bibliography {#bibliography}
+
+
+
Abu Hanieh, A. 2003. “Active Isolation and Damping of Vibrations via Stewart Platform.” Université Libre de Bruxelles, Brussels, Belgium.
+
diff --git a/content/phdthesis/jabben07_mechat.md b/content/phdthesis/jabben07_mechat.md
new file mode 100644
index 0000000..56b6c08
--- /dev/null
+++ b/content/phdthesis/jabben07_mechat.md
@@ -0,0 +1,235 @@
++++
+title = "Mechatronic design of a magnetically suspended rotating platform"
+author = ["Dehaeze Thomas"]
+draft = false
+ref_author = "Jabben, L."
+ref_year = 2007
++++
+
+Tags
+: [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting.md" >}})
+
+Reference
+: (Jabben 2007)
+
+Author
+: Jabben, L.
+
+Year
+: 2007
+
+
+## Dynamic Error Budgeting {#dynamic-error-budgeting}
+
+
+### Introduction {#introduction}
+
+A large class of mechatronic machines have specifications based on their _standstill_ performance.
+The standstill performance is then limited by the (stochastic) disturbances action on the closed loop.
+
+The difficulty in calculation with stochastic signals and Bode plots, is that, instead of calculating with the complex response at one frequency, the **area** over a frequency range should be taken into account.
+
+The **error budgeting** is often used to estimate how much each component contributes to the total error
+
+Since many of the disturbances have a stochastic nature, they can be modelled with their **Power Spectral Densities**.
+
+The PSD of the performance measure in the closed loop system is the weigted sum of PSDs of the contributions of each disturbance to the performance channel.
+This approach allows frequency dependent error budgeting, which is why it is referred to as **Dynamic Error Budgeting**.
+
+
+### Common Mechatronics Disturbances {#common-mechatronics-disturbances}
+
+
+#### Ground vibrations {#ground-vibrations}
+
+
+#### [Electronic Noise]({{< relref "electronic_noise.md" >}}) {#electronic-noise--electronic-noise-dot-md}
+
+**Thermal Noise** (or Johnson noise).
+This noise can be modeled as a voltage source in series with the system impedance.
+The noise source has a PSD given by:
+\\[ S\_T(f) = 4 k T \text{Re}(Z(f)) \ [V^2/Hz] \\]
+with \\(k = 1.38 \cdot 10^{-23} \\,[J/K]\\) the Boltzmann's constant, \\(T\\) the temperature [K] and \\(Z(f)\\) the frequency dependent impedance of the system.
+
+
+
+A kilo Ohm resistor at 20 degree Celsius will show a thermal noise of \\(0.13 \mu V\\) from zero up to one kHz.
+
+
+
+**Shot Noise**.
+Seen with junctions in a transistor.
+It has a white spectral density:
+\\[ S\_S = 2 q\_e i\_{dc} \ [A^2/Hz] \\]
+with \\(q\_e\\) the electronic charge (\\(1.6 \cdot 10^{-19}\\, [C]\\)), \\(i\_{dc}\\) the average current [A].
+
+
+
+A current of 1 A will introduce noise with a STD of \\(10 \cdot 10^{-9}\\,[A]\\) from zero up to one kHz.
+
+
+
+**Excess Noise** (or \\(1/f\\) noise).
+It results from fluctuating conductivity due to imperfect contact between two materials.
+The PSD of excess noise increases when the frequency decreases:
+\\[ S\_E = \frac{K\_f}{f^\alpha}\ [V^2/Hz] \\]
+where \\(K\_f\\) is dependent on the average voltage drop over the resistor and the index \\(\alpha\\) is usually between 0.8 and 1.4, and often set to unity for approximate calculation.
+
+**Signal to Noise Ration**
+Electronic equipment does most often not come with detailed electric schemes, in which case the PSD should be determined from measurements.
+In the design phase however, one has to rely on information provided by specification sheets from the manufacturer.
+The noise performance of components like sensors, amplifiers, converters, etc., is often specified in terms of a **Signal to Noise Ratio** (SNR).
+**The SNR gives the ratio of the RMS value of a sine that covers the full range of the channel through which the signal is propagating over the RMS value of the electrical noise.**
+Usually, the SNR is specified up to a certain cut-off frequency.
+If no information on the colouring of the noise is available, then the corresponding **PSD can be assumed to be white up to the cut-off frequency** \\(f\_c\\):
+\\[ S\_{snr} = \frac{x\_{fr}^2}{8 f\_c C\_{snr}^2} \\]
+with \\(x\_{fr}\\) the full range of \\(x\\), and \\(C\_{snr}\\) the SNR.
+
+
+#### AD and DA converters {#ad-and-da-converters}
+
+ADC and DAC add quantization noise to the signal.
+The variance can be calculated to be:
+\\[ \sigma^2 = \frac{q^2}{12} \\]
+with \\(q\\) the quantization interval.
+
+The corresponding PSD is white up to the Nyquist frequency:
+\\[ S\_Q = \frac{q^2}{12 f\_N} \\]
+with \\(f\_N\\) the Nyquist frequency [Hz].
+
+
+
+Let's take the example of a 16 bit ADC which has an electronic noise with a SNR of 80dB.
+Let's suppose the ADC is used to measure a position over a range of 1 mm.
+
+- ADC quantization noise: it has 16 bits over the 1 mm range.
+ The standard deviation from the quantization is:
+ \\[ \sigma\_{ADq} = \frac{1 \cdot 10^6/2^{16}}{\sqrt{12}} = 4.4\\,[nm] \\]
+- ADC electronic noise: the RMS value of a sine that covers to full range is \\(\frac{0.5}{\sqrt{2}} = 0.354\\,[mm]\\).
+ With a SNR of 80dB, the electronic noise from the ADC becomes:
+ \\[ \sigma\_{ADn} = 35\\,[nm] \\]
+
+Let's suppose the ADC is used to measure a sensor with an electronic noise having a standard deviation of \\(\sigma\_{sn} = 17\\,[nm]\\).
+
+The PSD of this digitalized sensor noise is:
+\\[ \sigma\_s = \sqrt{\sigma\_{sn}^2 + \sigma\_{ADq}^2 + \sigma\_{ADn}^2} = 39\\,[nm]\\]
+from which the PSD of the total sensor noise \\(S\_s\\) is calculated:
+\\[ S\_s = \frac{\sigma\_s^2}{f\_N} = 1.55\\,[nm^2/Hz] \\]
+with \\(f\_N\\) is the Nyquist frequency of 1kHz.
+
+
+
+
+#### Acoustic Noise {#acoustic-noise}
+
+This can be a big error source in high precision machines, especially when the surface is big compare to the mass.
+
+The disturbance force acting on a body, is the **difference of pressure between the front and the back times the surface**.
+To have a pressure difference, the body must have a certain minimum dimension, depending on the wave length of the sound.
+For a body of typical dimensions of 100mm, only frequencies above 800 Hz have a significant disturbance contribution.
+
+
+
+Consider a cube with a rib size of 100 mm located in a room with a sound level of 80dB, distributed between one and ten kHz, then the force disturbance PSD equal \\(2.2 \cdot 10^{-2}\\,[N^2/Hz]\\)
+
+
+
+
+#### Brownian Noise {#brownian-noise}
+
+This is due to thermal effects and it notable where a small mass needs positioning.
+
+
+#### Turbulence {#turbulence}
+
+Rotation of the spindle introduces and air flow in which turbulence is cause by sharp angles on the rotor and stator.
+
+
+### Optimal Control {#optimal-control}
+
+
+#### The use of Optimal Control in DEB {#the-use-of-optimal-control-in-deb}
+
+Three factors influence the performance:
+
+- the disturbances: often a given value
+- the plant: can be costly to redesign
+- the controller
+
+The DEB helps identifying which disturbance is the limiting factor, and it should be investigated if the controller can deal with this disturbance before re-designing the plant.
+
+The modelling of disturbance as stochastic variables, is by excellence suitable for the optimal stochastic control framework.
+In [Figure 1](#figure--fig:jabben07-general-plant), the generalized plant maps the disturbances to the performance channels.
+By minimizing the \\(\mathcal{H}\_2\\) system norm of the generalized plant, the variance of the performance channels is minimized.
+
+
+
+{{< figure src="/ox-hugo/jabben07_general_plant.png" caption="Figure 1: Control system with the generalized plant \\(G\\). The performance channels are stacked in \\(z\\), while the controller input is denoted with \\(y\\)" >}}
+
+
+#### Using Weighting Filters for Disturbance Modelling {#using-weighting-filters-for-disturbance-modelling}
+
+Since disturbances are generally not white, the system of [Figure 1](#figure--fig:jabben07-general-plant) needs to be augmented with so called **disturbance weighting filters**.
+
+A disturbance weighting filter gives the disturbance PSD when white noise as input is applied.
+
+This is illustrated in [Figure 2](#figure--fig:jabben07-weighting-functions) where a vector of white noise time signals \\(\underbar{w}(t)\\) is filtered through a weighting filter to obtain the colored physical disturbances \\(w(t)\\) with the desired PSD \\(S\_w\\) .
+
+The generalized plant framework also allows to include **weighting filters for the performance channels**.
+This is useful for three reasons:
+
+- the performance channels might have different dimensions, which require scaling in order to compare
+- some performance channels may be of more importance than others
+- by using dynamic weighting filters, one can emphasize the performance in a certain frequency range
+
+
+
+{{< figure src="/ox-hugo/jabben07_weighting_functions.png" caption="Figure 2: Control system with the generalized plant \\(G\\) and weighting functions" >}}
+
+The weighting filters should be stable transfer functions.
+
+**Obtaining the weighting filters**:
+
+If the PSD is given as a function \\(S\_x(j\omega)\\), the disturbance filter can be using **spectral factorization**:
+
+> Given a positive even function \\(S\_x(f)\\) of finite area, find a minimum-phase stable function \\(L(s)\\), such that \\(|L(j2\pi f)|^2 = S(s)\\)
+
+**Harmonic signals** can be approximately modeled by filtering white noise with a badly damped second order system, having a \\(+1\\) slope below the resonance frequency and a \\(-1\\) slope above the resonance frequency:
+\\[ V\_h = \frac{s}{s^2 + 2 \xi \omega\_h + \omega\_h^2} \\]
+with \\(\xi\\) the relative damping and \\(\omega\_h\\) the resonance frequency [rad/s].
+By making the \\(\mathcal{H}\_2\\) norm of \\(V\_h\\) equal to the RMS-value of the harmonic signal, the propagation of the disturbance to the performance channel can be well approximated.
+
+
+#### Balancing Control Effort vs Performance {#balancing-control-effort-vs-performance}
+
+IF only the output \\(y\\) are considered in the performance channel \\(z\\), the resulting optimal controller might result in very large actuator signals.
+So, to obtain feasible controllers, the performance channel is a combination of controller output \\(u\\) and system output \\(y\\).
+By choosing suitable weighting filters for \\(y\\) and \\(u\\), the performance can be optimized while keeping the controller effort limited:
+\\[ \\|z\\|\_{rms}^2 = \left\\| \begin{bmatrix} y \\\ \alpha u \end{bmatrix} \right\\|\_{rms}^2 = \\|y\\|\_{rms}^2 + \alpha^2 \\|u\\|\_{rms}^2 \\]
+
+By calculation \\(\mathcal{H}\_2\\) optimal controllers for increasing \\(\alpha\\) and plotting the performance \\(\\|y\\|\\) vs the controller effort \\(\\|u\\|\\), the curve as depicted in [Figure 3](#figure--fig:jabben07-pareto-curve-H2) is obtained.
+
+
+
+{{< figure src="/ox-hugo/jabben07_pareto_curve_H2.png" caption="Figure 3: An illustration of a Pareto curve. Each point of the curve represents the performance obtained with an optimal controller. The curve is obtained by varying \\(\alpha\\) and calculating an \\(\mathcal{H}\_2\\) optimal controller for each \\(\alpha\\)." >}}
+
+
+## Conclusion {#conclusion}
+
+> Using the DEB analysis during the design helped to formulate the specifications of the several subcomponents, such as:
+>
+> - The target bandwidth of the decentralized closed loops, which is very important for the mechanical design, as mechanical resonances can severely limit the bandwidth.
+> This value was also used to specify the current loop bandwidth of the custom designed power amplifiers for the RTAs and other components such as sensors and filters.
+> - The target value of the stiffness of the actuators was derived at 1000 N/m.
+> It was shown that the stiffness of a motor with back-iron is too much for the separated frame concept.
+> - The analysis pinpointed the most limiting component in the final design to be the Analogue-to-Digital Converter (ADC).
+
+
+
+> In the DEB-framework there are three distinct factors which determine the performance.
+> These are the plant, the controller and the disturbances.
+> Synthesizing optimal controllers, such as H2-control, in the design helps to eliminate the controller out of the equation.
+> If the performance specifications are not met with an optimal controller, it is certain that a redesign of the system is required.
+> 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.
+> It is recommended to investigate which methods for spectral factorization are currently available and numerically robust.
diff --git a/content/phdthesis/li01_simul_fault_vibrat_isolat_point.md b/content/phdthesis/li01_simul_fault_vibrat_isolat_point.md
new file mode 100644
index 0000000..d64d06a
--- /dev/null
+++ b/content/phdthesis/li01_simul_fault_vibrat_isolat_point.md
@@ -0,0 +1,406 @@
++++
+title = "Simultaneous, fault-tolerant vibration isolation and pointing control of flexure jointed hexapods"
+author = ["Dehaeze Thomas"]
+draft = false
+ref_author = "Li, X."
+ref_year = 2001
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}}), [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Cubic Architecture]({{< relref "cubic_architecture.md" >}}), [Flexible Joints]({{< relref "flexible_joints.md" >}}), [Multivariable Control]({{< relref "multivariable_control.md" >}})
+
+Reference
+: (Li 2001)
+
+Author(s)
+: Li, X.
+
+Year
+: 2001
+
+
+## Introduction {#introduction}
+
+
+### Flexure Jointed Hexapods {#flexure-jointed-hexapods}
+
+A general flexible jointed hexapod is shown in [Figure 1](#figure--fig:li01-flexure-hexapod-model).
+
+
+
+{{< figure src="/ox-hugo/li01_flexure_hexapod_model.png" caption="Figure 1: A flexure jointed hexapod. {P} is a cartesian coordinate frame located at, and rigidly attached to the payload's center of mass. {B} is the frame attached to the base, and {U} is a universal inertial frame of reference" >}}
+
+Flexure jointed hexapods have been developed to meet two needs illustrated in [Figure 2](#figure--fig:li01-quet-dirty-box).
+
+
+
+{{< figure src="/ox-hugo/li01_quet_dirty_box.png" caption="Figure 2: (left) Vibration machinery must be isolated from a precision bus. (right) A precision paylaod must be manipulated in the presence of base vibrations and/or exogenous forces." >}}
+
+Since only small movements are considered in flexure jointed hexapod, the Jacobian matrix, which relates changes in the Cartesian pose to changes in the strut lengths, can be considered constant.
+Thus a static kinematic decoupling algorithm can be implemented for both vibration isolation and pointed controls on flexible jointed hexapods.
+
+On the other hand, the flexures add some complexity to the hexapod dynamics.
+Although the flexure joints do eliminate friction and backlash, they add spring dynamics and severely limit the workspace.
+Moreover, base and/or payload vibrations become significant contributors to the motion.
+
+The University of Wyoming hexapods (example in [Figure 3](#figure--fig:li01-stewart-platform)) are:
+
+- Cubic (mutually orthogonal)
+- Flexure Jointed
+
+
+
+{{< figure src="/ox-hugo/li01_stewart_platform.png" caption="Figure 3: Flexure jointed Stewart platform used for analysis and control" >}}
+
+The objectives of the hexapods are:
+
+- Precise pointing in two axes (sub micro-radians)
+- simultaneously, providing both passive and active vibration isolation in six axes
+
+
+### Jacobian matrix, Dynamic model, and decoupling algorithms {#jacobian-matrix-dynamic-model-and-decoupling-algorithms}
+
+
+#### Jacobian Matrix {#jacobian-matrix}
+
+The Jacobian matrix \\(J\\) relates changes in the cartesian pose \\(\mathcal{X}\\) to changes in the strut lengths \\(l\\):
+
+\begin{equation}
+\delta l = J \delta \mathcal{X}
+\end{equation}
+
+where \\(\mathcal{X}\\) is a 6x1 vector of payload plate translations and rotations
+
+\begin{equation}
+\mathcal{X} = \begin{bmatrix}
+p\_x & p\_y & p\_z & \theta\_x & \theta\_y & \theta\_z
+\end{bmatrix}
+\end{equation}
+
+\\(J\\) is given by:
+
+\begin{equation}
+J = \begin{bmatrix}
+{}^B\hat{u}\_1^T & [({}^B\_PR^P p\_1) \times {}^B\hat{u}\_1]^T \\\\
+\vdots & \vdots \\\\
+{}^B\hat{u}\_6^T & [({}^B\_PR^P p\_6) \times {}^B\hat{u}\_6]^T
+\end{bmatrix}
+\end{equation}
+
+where (see [Figure 1](#figure--fig:li01-flexure-hexapod-model)) \\(p\_i\\) denotes the payload attachment point of strut \\(i\\), the prescripts denote the frame of reference, and \\(\hat{u}\_i\\) denotes a unit vector along strut \\(i\\).
+To make the dynamic model as simple as possible, the origin of {P} is located at the payload's center of mass.
+Thus all \\({}^Pp\_i\\) are found with respect to the center of mass.
+
+
+#### Dynamic model of flexure jointed hexapods {#dynamic-model-of-flexure-jointed-hexapods}
+
+The dynamics of a flexure jointed hexapod can be written in joint space:
+
+\begin{equation} \label{eq:hexapod\_eq\_motion}
+\begin{split}
+& \left( J^{-T} \cdot {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR^T \cdot J^{-1} + M\_s \right) \ddot{l} + B \dot{l} + K (l - l\_r) = \\\\
+&\quad f\_m - \left( M\_s + J^{-T} \cdot {}^B\_PR \cdot {}^PM\_x \cdot {}^U\_PR^T \cdot J\_c \cdot J\_b^{-1} \right) \ddot{q}\_u + J^{-T} \cdot {}^U\_BR^T(\mathcal{F}\_e + \mathcal{G} + \mathcal{C})
+\end{split}
+\end{equation}
+
+where:
+
+- \\({}^PM\_x\\) is the 6x6 mass/inertia matrix of the payload, found with respect to the payload frame {P}, whose origin is at the hexapod payload's center of mass
+- \\({}^U\_BR\\) is the 6x6 rotation matrix from the base frame {B} to the inertial frame of reference {U} (it consists of two identical 3x3 rotation matrices forming a block diagonal 6x6 matrix).
+ Similarly, \\({}^B\_PR\\) is the rotation matrix from the payload frame to the base frame, and \\({}^U\_PR = {}^U\_BR {}^B\_PR\\)
+- \\(J\\) is the 6x6 Jacobian matrix relating payload cartesian movements to strut length changes
+- \\(M\_s\\) is a diagonal 6x6 matrix containing the moving mass of each strut
+- \\(l\\) is the 6x1 vector of strut lengths
+- \\(B\\) and \\(K\\) are 6x6 diagonal matrices containing the damping and stiffness, respectively, of each strut
+- \\(l\_r\\) is the constant vector of relaxed strut lengths
+- \\(f\_m\\) is the vector of strut motor force
+- \\(J\_c\\) and \\(J\_b\\) are 6x6 Jacobian matrices capturing base motion
+- \\(\ddot{q}\_u\\) is a 6x1 vector of base acceleration along each strut
+- \\(\mathcal{F}\_r\\) is a vector of payload exogenous generalized forces
+- \\(\mathcal{C}\\) is a vector containing all the Coriolis and centripetal terms
+- \\(\mathcal{G}\\) is a vector containing all gravity terms
+
+
+#### Decoupling {#decoupling}
+
+Two decoupling algorithms are proposed by combining static input-output transformations with hexapod geometric design.
+
+Define a new input and a new output:
+
+\begin{equation}
+u\_1 = J^T f\_m, \quad y = J^{-1} (l - l\_r)
+\end{equation}
+
+Equation \ref{eq:hexapod\_eq\_motion} can be rewritten as:
+
+\begin{equation} \label{eq:hexapod\_eq\_motion\_decoup\_1}
+\begin{split}
+& \left( {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR^T + J^T \cdot M\_s \cdot J \right) \cdot \ddot{y} + J^T \cdot B J \dot{y} + J^T \cdot K \cdot J y = \\\\
+&\quad u\_1 - \left( J^T \cdot M\_s + {}^B\_PR \cdot {}^PM\_x \cdot {}^U\_PR^T \cdot J\_c \cdot J\_b^{-1} \right) \ddot{q}\_u + {}^U\_BR^T\mathcal{F}\_e
+\end{split}
+\end{equation}
+
+If the hexapod is designed such that the payload mass/inertia matrix written in the base frame (\\(^BM\_x = {}^B\_PR \cdot {}^PM\_x \cdot {}^B\_PR\_T\\)) and \\(J^T J\\) are diagonal, the dynamics from \\(u\_1\\) to \\(y\\) are decoupled ([Figure 4](#figure--fig:li01-decoupling-conf)).
+
+
+
+{{< figure src="/ox-hugo/li01_decoupling_conf.png" caption="Figure 4: Decoupling the dynamics of the Stewart Platform using the Jacobians" >}}
+
+Alternatively, a new set of inputs and outputs can be defined:
+
+\begin{equation}
+u\_2 = J^{-1} f\_m, \quad y = J^{-1} (l - l\_r)
+\end{equation}
+
+And another decoupled plant is found ([Figure 5](#figure--fig:li01-decoupling-conf-bis)):
+
+\begin{equation} \label{eq:hexapod\_eq\_motion\_decoup\_2}
+\begin{split}
+& \left( J^{-1} \cdot J^{-T} \cdot {}^BM\_x + M\_s \right) \cdot \ddot{y} + B \dot{y} + K y = \\\\
+&\quad u\_2 - J^{-1} \cdot J^{-T} \left( J^T \cdot M\_s + {}^B\_PR \cdot {}^PM\_x \cdot {}^U\_PR^T \cdot J\_c \cdot J\_b^{-1} \right) \ddot{q}\_u + {}^U\_BR^T\mathcal{F}\_e
+\end{split}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/li01_decoupling_conf_bis.png" caption="Figure 5: Decoupling the dynamics of the Stewart Platform using the Jacobians" >}}
+
+
+
+These decoupling algorithms have two constraints:
+
+1. the payload mass/inertia matrix must be diagonal (the CoM is coincident with the origin of frame \\(\\{P\\}\\))
+2. the geometry of the hexapod and the attachment of the payload to the hexapod must be carefully chosen
+
+For instance, if the hexapod has a mutually orthogonal geometry (cubic configuration), the payload's center of mass must coincide with the center of the cube formed by the orthogonal struts.
+
+
+
+
+## Simultaneous Vibration Isolation and Pointing Control {#simultaneous-vibration-isolation-and-pointing-control}
+
+Many applications require simultaneous vibration isolation and precision pointing.
+
+The basic idea to achieve such objective is to use:
+
+- acceleration feedback to provide high-frequency vibration isolation
+- cartesian pointing feedback to provide low-frequency pointing
+
+The compensation is divided in frequency because:
+
+- pointing sensors often have low bandwidth
+- acceleration sensors often have a poor low frequency response
+
+The control bandwidth is divided as follows:
+
+- low-frequency disturbances are attenuated and tracking is accomplished by feedback from low bandwidth pointing sensors
+- mid-frequency disturbances are attenuated by feedback from band-pass sensors like accelerometer or load cells
+- high-frequency disturbances are attenuated by passive isolation techniques
+
+
+### Vibration Isolation {#vibration-isolation}
+
+The system is decoupled into six independent SISO subsystems using the architecture shown in [Figure 7](#figure--fig:li01-vibration-isolation-control).
+
+
+
+{{< figure src="/ox-hugo/li01_vibration_isolation_control.png" caption="Figure 6: Vibration isolation control strategy" >}}
+
+One of the subsystem plant transfer function is shown in [Figure 7](#figure--fig:li01-vibration-isolation-control)
+
+
+
+{{< figure src="/ox-hugo/li01_vibration_control_plant.png" caption="Figure 7: Plant transfer function of one of the SISO subsystem for Vibration Control" >}}
+
+Each compensator is designed using simple loop-shaping techniques.
+A typical compensator consists of the following elements:
+
+- first order lag-lead filter to provide adequate phase margin a the low frequency crossover
+- a second order lag-lead filter to increase the gain between crossovers and provide adequate phase margin at the high frequency crossover
+- a second order notch filter to cancel the mode at 150Hz
+- a second order low pass filter to provide steep roll-off and gain stabilize the plant at high frequency
+- a first order high pass filter to eliminate DC signals
+
+The unity control bandwidth of the isolation loop is designed to be from **5Hz to 50Hz**, so the vibration isolation loop works as a band-pass filter.
+
+
+
+Despite a reasonably good match between the modeled and the measured transfer functions, the model based decoupling algorithm does not produce the expected decoupling.
+Only about 20 dB separation is achieve between the diagonal and off-diagonal responses.
+
+
+
+
+
+Severe phase delay exists in the actual transfer function.
+This is due to the limited sample frequency and sensor bandwidth limitation.
+
+The zero at around 130Hz is non-minimum phase which limits the control bandwidth.
+The reason is not explained.
+
+
+
+
+### Pointing Control Techniques {#pointing-control-techniques}
+
+A block diagram of the pointing control system is shown in [Figure 8](#figure--fig:li01-pointing-control).
+
+
+
+{{< figure src="/ox-hugo/li01_pointing_control.png" caption="Figure 8: Figure caption" >}}
+
+The plant is decoupled into two independent SISO subsystems.
+The decoupling matrix consists of the columns of \\(J\\) corresponding to the pointing DoFs.
+
+[Figure 9](#figure--fig:li01-transfer-function-angle) shows the measured transfer function of the \\(\theta\_x\\) axis.
+
+
+
+{{< figure src="/ox-hugo/li01_transfer_function_angle.png" caption="Figure 9: Experimentally measured plant transfer function of \\(\theta\_x/\theta\_{x\_d}\\)" >}}
+
+A typical compensator consists of the following elements:
+
+- a first order low pass filter to increase the low frequency loop gain and provide a slope of -20dB/decade for the magnitude curve at the crossover
+- two complex zeros with high \\(Q\\) to provide adequate phase margin at the crossover
+- a pole after the zeros to decrease the excess gain caused by these zeros
+- a second order notch filter to cancel the mode at 150Hz
+- a second order low pass filter to provide steep roll off and gain stabilize the plant at high frequency
+
+The unity control bandwidth of the pointing loop is designed to be from **0Hz to 20Hz**.
+
+A feedforward control is added as shown in [Figure 10](#figure--fig:li01-feedforward-control).
+\\(C\_f\\) is the feedforward compensator which is a 2x2 diagonal matrix.
+Ideally, the feedforward compensator is an invert of the plant dynamics.
+
+
+
+{{< figure src="/ox-hugo/li01_feedforward_control.png" caption="Figure 10: Feedforward control" >}}
+
+
+### Simultaneous Control {#simultaneous-control}
+
+The simultaneous vibration isolation and pointing control is approached in two ways:
+
+1. **Closing the vibration isolation loop first**: Design and implement the vibration isolation control first, identify the pointing plant when the isolation loops are closed, then implement the pointing compensators.
+2. **Closing the pointing loop first**: Reverse order.
+
+[Figure 11](#figure--fig:li01-parallel-control) shows a parallel control structure where \\(G\_1(s)\\) is the dynamics from input force to output strut length.
+
+
+
+{{< figure src="/ox-hugo/li01_parallel_control.png" caption="Figure 11: A parallel scheme" >}}
+
+
+
+The transfer function matrix for the pointing loop after the vibration isolation is closed is still decoupled.
+The same happens when closing the pointing loop first and looking at the transfer function matrix of the vibration isolation.
+
+However, the interaction between loops may affect the transfer functions of the **first** closed loop, and thus affect its relative stability.
+
+
+
+The dynamic interaction effect:
+
+- Only happens in the unity bandwidth of the loop transmission of the first closed loop.
+- Affect the closed loop transmission of the loop first closed (see [Figure 12](#figure--fig:li01-closed-loop-pointing) and [Figure 13](#figure--fig:li01-closed-loop-vibration))
+
+As shown in [Figure 12](#figure--fig:li01-closed-loop-pointing), the peak resonance of the pointing loop increase after the isolation loop is closed.
+The resonances happen at both crossovers of the isolation loop (15Hz and 50Hz) and they may show of loss of robustness.
+
+
+
+{{< figure src="/ox-hugo/li01_closed_loop_pointing.png" caption="Figure 12: Closed-loop transfer functions \\(\theta\_y/\theta\_{y\_d}\\) of the pointing loop before and after the vibration isolation loop is closed" >}}
+
+The same happens when first closing the vibration isolation loop and after the pointing loop ([Figure 13](#figure--fig:li01-closed-loop-vibration)).
+The first peak resonance of the vibration isolation loop at 15Hz is increased when closing the pointing loop.
+
+
+
+{{< figure src="/ox-hugo/li01_closed_loop_vibration.png" caption="Figure 13: Closed-loop transfer functions of the vibration isolation loop before and after the pointing control loop is closed" >}}
+
+
+
+From the analysis above, it is hard to say which loop has more significant affect on the other loop, but the isolation loop adds a second resonance peak at its high frequency crossover in the pointing closed loop transfer function, which may cause instability.
+Thus, it is recommended to design and implement the isolation control system first, and then identify the pointing plant with the isolation loop closed.
+
+
+
+
+### Experimental results {#experimental-results}
+
+Two hexapods are stacked ([Figure 14](#figure--fig:li01-test-bench)):
+
+- the bottom hexapod is used to generate disturbances matching candidate applications
+- the top hexapod provide simultaneous vibration isolation and pointing control
+
+
+
+{{< figure src="/ox-hugo/li01_test_bench.png" caption="Figure 14: Stacked Hexapods" >}}
+
+First, the vibration isolation and pointing controls were implemented separately.
+Using the vibration isolation control alone, no attenuation is achieved below 1Hz as shown in [Figure 15](#figure--fig:li01-vibration-isolation-control-results).
+
+
+
+{{< figure src="/ox-hugo/li01_vibration_isolation_control_results.png" caption="Figure 15: Vibration isolation control: open-loop (solid) vs. closed-loop (dashed)" >}}
+
+The simultaneous control is of dual use:
+
+- it provide simultaneous pointing and isolation control
+- it can also be used to expand the bandwidth of the isolation control to low frequencies because the pointing loops suppress pointing errors due to both base vibrations and tracking
+
+The results of simultaneous control is shown in [Figure 16](#figure--fig:li01-simultaneous-control-results) where the bandwidth of the isolation control is expanded to very low frequency.
+
+
+
+{{< figure src="/ox-hugo/li01_simultaneous_control_results.png" caption="Figure 16: Simultaneous control: open-loop (solid) vs. closed-loop (dashed)" >}}
+
+
+### Summary and Conclusion {#summary-and-conclusion}
+
+
+
+A parallel control scheme is proposed in this chapters.
+This scheme is suitable for simultaneous vibration isolation and pointing control.
+Part of this scheme involves closing one loop first, then re-identifying and designing the new control before closed the other loop.
+
+An investigation into the interaction between loops shows that the order of closing loops is not important.
+However, only two channels need to be re-designed or adjusted for the pointing loop if the isolation loop is closed first.
+Experiments show that this scheme takes advantage of the bandwidths of both pointing and vibration sensors, and provides vibration isolation and pointing controls over a broad band.
+
+
+
+
+## Future research areas {#future-research-areas}
+
+
+
+Proposed future research areas include:
+
+- **Include base dynamics in the control**:
+ The base dynamics is here neglected since the movements of the base are very small.
+ The base dynamics could be measured by mounting accelerometers at the bottom of each strut or by using force sensors.
+ It then could be included in the feedforward path.
+- **Robust control and MIMO design**
+- **New decoupling method**:
+ The proposed decoupling algorithm do not produce the expected decoupling, despite a reasonably good match between the modeled and the measured transfer functions.
+ Incomplete decoupling increases the difficulty in designing the controller.
+ New decoupling methods are needed.
+ These methods must be static in order to be implemented practically on precision hexapods
+- **Identification**:
+ Many advanced control methods require a more accurate model or identified plant.
+ A closed-loop identification method is propose to solve some problems with the current identification methods used.
+- **Other possible sensors**:
+ Many sensors can be used to expand the utility of the Stewart platform:
+ - **3-axis load cells** to investigate the Coriolis and centripetal terms and new decoupling methods
+ - **LVDT** to provide differential position of the hexapod payload with respect to the base
+ - **Geophones** to provide payload and base velocity information
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Li, X. 2001. “Simultaneous, Fault-Tolerant Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” University of Wyoming.
+
diff --git a/content/phdthesis/monkhorst04_dynam_error_budget.md b/content/phdthesis/monkhorst04_dynam_error_budget.md
new file mode 100644
index 0000000..ff5e9c4
--- /dev/null
+++ b/content/phdthesis/monkhorst04_dynam_error_budget.md
@@ -0,0 +1,166 @@
++++
+title = "Dynamic error budgeting, a design approach"
+author = ["Dehaeze Thomas"]
+draft = false
+ref_author = "Monkhorst, W."
+ref_year = 2004
++++
+
+Tags
+: [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting.md" >}})
+
+Reference
+: (Monkhorst 2004)
+
+Author(s)
+: Monkhorst, W.
+
+Year
+: 2004
+
+
+## Introduction {#introduction}
+
+The performance of a mechatronic system is generally defined by the error made, which is caused by the disturbances \\(d\\) that act on the system.
+In order to study how the disturbances \\(d\\) propagates to the error, frequency dependent models of the disturbances and subsystems must be used.
+Disturbances (which are stochastic) are modeled with their power spectral densities.
+The new design approach will be referred to as _Dynamic Error Budgeting_, where "dynamic" refers to the use of the frequency dependent models.
+
+Challenge definition of this thesis:
+
+> Develop a tool which enables the designer to account for stochastic disturbances during the design of a mechatronics system.
+
+Develop tools should enable the designer to:
+
+- Predict the final performance level of a system which is subject to stochastic disturbances
+- Gain insight in performance limiting factors of the system.
+ This insight should enable the designer to point out critical system components/properties and to improve the performance of the system
+- Objectively compare the performance of different system designs
+
+
+## Dynamic Error Budgeting {#dynamic-error-budgeting}
+
+
+### Motivations {#motivations}
+
+Main motivations are:
+
+- **Cutting costs in the design phase**: if the error is not simulated during the design phase, the final performance level can only be found when a costly prototype is build and the performance can be measured physically. If the performance level is not met, the designer has to find out what component or disturbance causes the output to exceed the error budget and then redesign the system. If the error could be simulated beforehand however, changes can be made when the system is still in the design phase, cutting down the costs of the system.
+- **Speeding up the design process**: It can give a quick indication if a concept is feasible or not.
+ Several concepts can be analyzed in a short period of time and the most promising concept can be chosen, speeding up the design process.
+- **Enhancing design insight**: If the performance specifications is not met, the designer wants to know which component or what system property is limiting the performance most.
+
+
+### DEB design process {#deb-design-process}
+
+The DEB design process can be summarized as follows: choose a system concept and simulate the output error.
+If the total error is meets the performance specifications, the design is satisfying.
+If the error exceeds the specified budget, the designer has to change the system such that the specifications is met.
+
+Step by step, the process is as follows:
+
+- Design a concept system.
+- Model the concept system, such that the closed loop transfer functions can be determined.
+- Identify all significant disturbances.
+ Model them with their _Power Spectral Density_
+- Define the performance outputs of the system and simulate the output error.
+ Using the theory of _propagation_, the contribution of each disturbance to the output error can be analyzed and the critical disturbance can be pointed out.
+- Make changes to the system that are expected to improve the performance level, and simulate the output error again.
+ Iterate until the error budget is meet.
+
+
+### Assumptions {#assumptions}
+
+The assumptions when applying DEB are:
+
+- The system can be accurately described with a **linear time invariant model**.
+ This is usually the case as much effort is put in to make systems have a linear behavior and because feedback loops have a " linearizing" effect on the closed loop behavior.
+- The disturbances action on the system must be **stationary** (their statistical properties are not allowed to change over time).
+- The disturbances are **uncorrelated** with each other.
+ This is more difficult to satisfy for MIMO systems and the designer must make sure that the separate disturbances all originate from separate independent sources.
+- The disturbance signals are modeled by their **Power Spectral Density**.
+ This implies that only stochastic disturbances are allowed.
+ For the deterministic part, other techniques can be used to determine their influence to the error.
+- The calculation method makes no assumption on the distribution of the distribution functions of the disturbances.
+ In practice, many disturbances will have a normal like distribution.
+
+
+### \\(\mathcal{H}\_2\\) control, maximizing performance {#mathcal-h-2-control-maximizing-performance}
+
+
+#### The \\(\mathcal{H}\_2\\) norm and variance of the output {#the-mathcal-h-2-norm-and-variance-of-the-output}
+
+The \\(\mathcal{H}\_2\\) norm is a norm defined on a system:
+\\[ \\|H\\|\_2^2 = \int\_{-\infty}^\infty |H(j2\pi f)|^2 df \\]
+
+Stochastic interpretation of the \\(\mathcal{H}\_2\\) norm: the squared \\(\mathcal{H}\_2\\) norm can be interpreted as the output variance of a system with zero mean white noise input.
+
+
+#### The \\(\mathcal{H}\_2\\) control problem {#the-mathcal-h-2-control-problem}
+
+Find a controller \\(C\_{\mathcal{H}\_2}\\) which minimizes the \\(\mathcal{H}\_2\\) norm of the closed loop system \\(H\\):
+\\[ C\_{\mathcal{H}\_2} \in \arg \min\_C \\|H\\|\_2 \\]
+
+
+#### Using weighting filters to model disturbances {#using-weighting-filters-to-model-disturbances}
+
+In order to synthesize an \\(\mathcal{H}\_2\\) controller that will minimize the output error, the total system including disturbances needs to be modeled as a system with zero mean white noise inputs.
+
+This is done by using weighting filter \\(V\_w\\), of which the output signal has a PSD \\(S\_w(f)\\) when the input is zero mean white noise ([Figure 1](#figure--fig:monkhorst04-weighting-filter)).
+
+
+
+{{< figure src="/ox-hugo/monkhorst04_weighting_filter.png" caption="Figure 1: The use of a weighting filter \\(V\_w(f)\\,[SI]\\) to give the weighted signal \\(\bar{w}(t)\\) a certain PSD \\(S\_w(f)\\)." >}}
+
+The white noise input \\(w(t)\\) is dimensionless, and when the weighting filter has units [SI], the resulting weighted signal \\(\bar{w}(t)\\) has units [SI].
+The PSD \\(S\_w(f)\\) of the weighted signal is:
+\\[ |S\_w(f)| = V\_w(j 2 \pi f) V\_w^T(-j 2 \pi f) \\]
+
+Given \\(S\_w(f)\\), \\(V\_w(f)\\) can be obtained using a technique called _spectral factorization_.
+However, this can be avoided if the modeling of the disturbances is directly done in terms of weighting filters.
+
+Output weighting filters can also be used to scale different outputs relative to each other ([Figure 2](#figure--fig:monkhorst04-general-weighted-plant)).
+
+
+
+{{< figure src="/ox-hugo/monkhorst04_general_weighted_plant.png" caption="Figure 2: The open loop system \\(\bar{G}\\) in series with the diagonal input weightin filter \\(V\_w\\) and diagonal output scaling iflter \\(W\_z\\) defining the generalized plant \\(G\\)" >}}
+
+
+#### Output scaling and the Pareto curve {#output-scaling-and-the-pareto-curve}
+
+In this research, the outputs of the closed loop system ([Figure 3](#figure--fig:monkhorst04-closed-loop-H2)) are:
+
+- the performance (error) signal \\(e\\)
+- the controller output \\(u\\)
+
+In this way, the designer can analyze how much control effort is used to achieve the performance level at the performance output.
+
+
+
+{{< figure src="/ox-hugo/monkhorst04_closed_loop_H2.png" caption="Figure 3: The closed loop system with weighting filters included. The system has \\(n\\) disturbance inputs and two outputs: the error \\(e\\) and the control signal \\(u\\). The \\(\mathcal{H}\_2\\) minimized the \\(\mathcal{H}\_2\\) norm of this system." >}}
+
+The resulting problem is a multi-objective control problem: while constraining the variance of the controller output \\(u\\), the variance of the performance channel should be minimized.
+This problem can be solved by scaling the controller output \\(u\\) with a factor \\(\alpha\\) during the \\(\mathcal{H}\_2\\) synthesis.
+When varying \\(\alpha\\), one can plot the amount of control effort at one axis and the achieve performance on the other axis.
+The resulting points lie on the so-called **Pareto curve**.
+
+
+## Conclusions {#conclusions}
+
+\\(\mathcal{H}\_2\\) control strategy is an extension of the DEB approach.
+It offers the designer the opportunity to optimize over the degree of freedom given by the controller, enabling the designer to predict the maximum achievable performance level of a system concept.
+Using this technique, the designer is able to objectively compare the performance potential of different system concepts.
+
+The accuracy of the predicted performance by DEB with respect to the measured results can be improved by using higher order models of the disturbances.
+Increasing of order of the disturbance model might even allow modelling of harmonic disturbances by using inverse notches.
+To achieve the highest degree of prediction accuracy, it is recommended to use to actual measured disturbance spectra in the simulations.
+
+When an \\(\mathcal{H}\_2\\) controller is synthesized for a particular system, it can give the control designer useful hints about how to control the system best for optimal performance.
+Drawbacks however are, that no robustness guarantees can be given and that the order of the \\(\mathcal{H}\_2\\) controller will generally be too high for implementation.
+
+
+## Bibliography {#bibliography}
+
+
+
Monkhorst, W. 2004. “Dynamic Error Budgeting, a Design Approach.” Delft University.
+
diff --git a/content/phdthesis/poel10_explor_activ_hard_mount_vibrat.md b/content/phdthesis/poel10_explor_activ_hard_mount_vibrat.md
new file mode 100644
index 0000000..197cb0f
--- /dev/null
+++ b/content/phdthesis/poel10_explor_activ_hard_mount_vibrat.md
@@ -0,0 +1,26 @@
++++
+title = "An exploration of active hard mount vibration isolation for precision equipment"
+author = ["Dehaeze Thomas"]
+draft = true
+ref_author = "van der Poel, G. W."
+ref_year = 2010
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+Reference
+: (Van der Poel 2010)
+
+Author(s)
+: van der Poel, G. W.
+
+Year
+: 2010
+
+
+## Bibliography {#bibliography}
+
+
+
Poel, Gerrit Wijnand van der. 2010. “An Exploration of Active Hard Mount Vibration Isolation for Precision Equipment.” University of Twente. doi:10.3990/1.9789036530163.
+
diff --git a/content/phdthesis/rankers98_machin.md b/content/phdthesis/rankers98_machin.md
new file mode 100644
index 0000000..78d7050
--- /dev/null
+++ b/content/phdthesis/rankers98_machin.md
@@ -0,0 +1,1424 @@
++++
+title = "Machine dynamics in mechatronic systems: an engineering approach."
+author = ["Dehaeze Thomas"]
+draft = false
+ref_author = "Rankers, A. M."
+ref_year = 1998
++++
+
+Tags
+: [Finite Element Model]({{< relref "finite_element_model.md" >}})
+
+Reference
+: (Rankers 1998)
+
+Author(s)
+: Rankers, A. M.
+
+Year
+: 1998
+
+
+## Summary {#summary}
+
+
+
+Despite the fact, that mechanical vibrations in a servo device can be very complex and often involve the motion of many components of the system, there are three fundamental mechanisms that are often observed.
+These there basic dynamic phenomena can be indicated by:
+
+- **Actuator flexibility**: the mechanical system does not behave as one rigid body, due to flexibility between the location at which the servo force is applied and the actual point that needs to be positioned
+- **Guiding system flexibility**: the device usually rely on the guiding system to suppress motion in an undesired direction
+- **Limited mass and stiffness of the stationary machine part**: the reaction force that comes with the driving force will introduce a motion of the "stationary" part of the mechanical system
+
+Whereas the first two phenomena mainly affect the stability of the control loop, the last phenomena manifests itself more often as a dynamic positional error in the set-point response.
+
+A tool that can be very useful in understanding the nature of more complex resonance phenomena and the underlying motion of the mechanical system, is **Modal Analysis**.
+Translating the mathematics of one single decoupled "modal" equation into a graphical representation, which includes all relevant data such as (effective) modal mass and stiffness plus the motion of each physical DoF, facilitates a better understanding of the modal concept.
+It enables a very intuitive link between the modal and the physical domain, and thus leads to a more creative use of "modal analysis" without the complications of the mathematical formalism.
+
+Dynamic phenomena of the mechanics in a servo positioning device can lead to stability problems of the control loop.
+Therefore it is important to investigate the frequency response (\\(x/F\\)), which characterizes the dynamics of the mechanical system, and especially the influence of mechanical resonances on it.
+Once the behavior of one individual mode is fully understood it is not so difficult to construct this frequency response and the interaction between the rigid-body motion of the device, and the dynamics of one additional mode.
+This leads to **four interaction patterns**:
+
+- -2 slope / zero / pole / -2 slope
+- -2 slope / pole / zero / -2 slope
+- -2 slope / pole / -4 slope
+- -2 slope / pole / -2 slope (non-minimum phase and rarely occurring)
+
+It is not possible to judge the potential destabilizing effect of each of the typical characteristics without considering the frequency of the resonance in relation to the envisaged bandwidth of the control loop.
+The phase plot of a typical open loop frequency response of a PID controlled positioning device without mechanical resonances can be divided into three frequency ranges (supposing the plant model is just a mass line):
+
+- at low frequencies, the phase lies below -180 deg due to integrator action of the controller
+- at medium frequency (centered by the bandwidth frequency), the phase lies above -180 deg due to the differential action of the controller, which is necessary in order to achieve a stable position control-loop
+- at high frequencies, the phase eventually drops again below -180 deg due to additional low-pass filtering
+
+The potential **destabilizing effect** of each of the three typical characteristics can be judged in relation to the frequency range:
+
+- A -2 slope / zero / pole / -2 slope characteristics leads to a phase lead and is therefore potentially destabilizing in the low-frequency and high frequency regions.
+ In the medium frequency region it adds an extra phase leads to the already existing margin, which does not harm the stability.
+- A -2 slope / pole / zero / -2 slope combination has the reverse effect.
+ It is potentially destabilizing in the medium-frequency range and is harmless in the low and high frequency ranges.
+- The -2 slope / poles / -4 slope behavior always has a devastating effect on the stability of the loop if located in the low or medium frequency range.
+
+Whether instability occurs depends very strongly on the resonance amplitude and damping of the additional mode.
+On the basis of these considerations, it is possible to give **design guidelines** for servo positioning devices.
+
+The subject of machine dynamics and its interaction with the control system plays a dominant role in fast and accurate positioning devices, so it is vital to consider these issues during the entire design process.
+**Modeling and simulation** can be adequate tools for that purpose; however, two conditions are crucial to the success:
+
+- usefulness of results
+- speed
+
+The analysis process has usually a **top-down structure**.
+Starting with very elementary simulation models to support the selection of the proper concept, these models should become more refined, just like the product or machine under development.
+
+In various project throughout the past years, a **three-step modeling approach** has evolved, in which the following phases can be distinguished:
+
+- concept analysis
+- system analysis
+- component analysis
+
+In the **concept analysis** the viability of various concepts is evaluated on the basis of very simple models consisting of a limited number of lumped masses connected by springs.
+Once a concept has been chosen and the first rough 3D sketches become available, a **system analysis** can be done, based on a limited number of 3D rigid components connected by springs.
+In this phase a lot of important spatial information is added to the model (such as the location of the center of gravity and connecting stiffnesses, plus the location of the driving force and of the sensors).
+Finally, in the **component analysis** phase, critical components are no longer considered rigid, and their internal dynamics are evaluated via Finite Element (FE) modeling.
+In cases in which a separate analysis of a critical component is considered insufficient to judge its influence on the overall dynamics, a detailed FE-based description can be used to replace the former rigid description in the system model.
+
+In case many parts of the system need to be modeled in great detail, it is not very practical (error-prone, huge model size, time consuming) to build on, single, huge FE model of the entire system.
+A technique that overcomes these disadvantages is the so-called "**sub-structuring technique**".
+In this approach the system is divided into substructures or components, which are analyzed separately.
+Then, after application of a reduction technique which preserves the most dominant dynamic properties, the (reduced) models of the components are assemble to form the overall system.
+By doing so, the size of the final system model is reduced significantly.
+
+
+
+
+## Introduction {#introduction}
+
+
+### General {#general}
+
+In the development of servo-controlled positioning devices, it is essential to consider the effect of the dynamics of the mechanical system on the performance of the overall, because the following effects can be observed:
+
+- mechanical resonances can endanger the stability of the control loop
+- vibration of the mechanical system, which are cause by the servo forces during a prescribed motion, can lead to positional errors
+
+To obtain a well-balanced design with respect to the effort in the mechanical design and the control design, one has to adapt a **mechatronics approach** in which the **structural design and the control design are integrated**.
+Integrated modelling and simulation of structural and control aspects should be part of the product-creation process of any mechatronic positioning device from the very beginning.
+Such an approach is the only way the enhance the score of success and achieve "first-time-right".
+
+
+### State of the Art {#state-of-the-art}
+
+In general, the modelling of certain phenomena that take place in a machine can be divided into two major steps:
+
+1. From reality/design to a physical model
+2. From the physical model to a mathematical model
+
+In the first step, the real structure of design drawing of a structure needs to be translated into a physical model, which is a simplification of the reality that contains all relations considered to be important to describe the phenomenon.
+Once this physical model has been derived, the second step consists of translating this physical model into a mathematical model which is usually straightforward using adapted software.
+
+The following questions are only seldom addressed:
+
+- Which analysis must be carried out?
+- How should the results be interpreted?
+- What sort of physical model gives a reasonable balance between accuracy and required effort?
+
+There is a huge gap between available theory about modal analysis and engineering practice which is also true for the field of control theory.
+The integration of machine dynamics and control system design is also limited as the two topics are generally taught by different departments.
+Machine dynamics is an issue addressed by the mechanical engineer, whereas the control system is designed by the electrical engineer.
+
+
+
+The lack of integral knowledge of machine dynamics, control and the interaction between these two topics is a serious threshold in finding the optimal solution to a mechatronic design problem.
+
+
+
+
+### Scope and Purpose {#scope-and-purpose}
+
+This thesis aims at bridging the gap between existing theoretical knowledge in the field of machine dynamics and control, and the practical application of this knowledge during the design of a product or machine.
+
+
+
+The idea is to show that a basic understanding of machine dynamics suffices to interpret complex mechanical vibrations.
+Moreover, in combination with basic control theory it is possible to derive the typical patterns that can be observed in an open-loop frequency response of a mechanical servo-system including resonances, and to draw conclusions with respect to the effect of these resonances on the stability of the control loop.
+Based on the idea that the controlled system must satisfy certain disturbance rejection and bandwidth criteria, design guidelines can be given for the mechanical system such that the chance of realizing the required bandwidth without introduction stability problems is maximized.
+By using a step-wise modelling approach it is possible to investigate and **predict these phenomena during the design phase**, and to make design decisions which take the dynamics and control aspects into account.
+
+
+
+
+### Preview {#preview}
+
+
+
+The basic questions that are addressed in this thesis are:
+
+- What sort of dynamic effects are important in mechatronic devices?
+- How can the dynamics of a complex system be described and understood?
+- What is the influence of mechanical resonances on the stability of a control loop?
+- Which design rules can be given to minimize the destabilizing effect of machine dynamics?
+- How can one predict the machine dynamics in an industrial way, such that simulation and modelling is experienced as an effective design tool?
+
+
+
+
+## Mechanical Servo Systems {#mechanical-servo-systems}
+
+
+### Basic Control Aspects {#basic-control-aspects}
+
+A block diagram representation of a typical servo-system is shown in [Figure 1](#figure--fig:rankers98-basic-el-mech-servo).
+The main task of the system is to achieve a desired positional relation between two or more components of the system.
+Therefore, a sensor measures the position which is then compared to the desired value, and the resulting error is used to generate correcting forces.
+In most systems, the "actual output" (e.g. position of end-effector) cannot be measured directly, and the feedback will therefore be based on a "measured output" (e.g. encoder signal at the motor).
+It is important to realize that these two outputs can differ, first due to resilience in the mechanical system, and second because of geometrical imperfections in the mechanical transmission between motor and end-effector.
+
+
+
+{{< figure src="/ox-hugo/rankers98_basic_el_mech_servo.png" caption="Figure 1: Basic elements of mechanical servo system" >}}
+
+The basic ingredient of most feedback control-systems is a PID controller, which is a combination of a proportional gain \\(P\\), and integral control \\(I\\) to enhance steady state behavior, and a derivative action \\(D\\) to improve damping and stability.
+The correction force \\(F\\) is defined by:
+
+\begin{equation}
+F = k\_p \epsilon + k\_d \dot{\epsilon} + k\_i \int \epsilon dt
+\end{equation}
+
+It is illustrative to see that basically the proportional and derivative part of such a position control loop is very similar to a mechanical spring and damper that connect two points ([Figure 2](#figure--fig:rankers98-basic-elastic-struct)).
+If \\(c\\) and \\(d\\) represent the constant mechanical stiffness and damping between points \\(A\\) and \\(B\\), and a reference position profile \\(h(t)\\) is applied at \\(A\\), then an opposing force \\(F\\) is generated as soon as the position \\(x\\) and speed \\(\dot{x}\\) of point \\(B\\) does not correspond to \\(h(t)\\) and \\(\dot{h}(t)\\).
+
+
+
+{{< figure src="/ox-hugo/rankers98_basic_elastic_struct.png" caption="Figure 2: Basic Elastic Structure" >}}
+
+The resulting spring/damper force is equal to:
+
+\begin{equation}
+F = c (h(t) - x) + d(\dot{h}(t) - \dot{x})
+\end{equation}
+
+Thus, in this example a PD position-control loop can be treated in the same way as a mechanical system with a spring \\(c = k\_p\\) and damper \\(d = k\_d\\).
+The most important difference is the fact that a mechanical spring/damper is a _passive_ element, whereas firstly a control loop is an _active_ element, and secondly the servo forces that are applied between points \\(A\\) and \\(B\\) can be based on a measurement at a different location.
+These properties are very essential since they introduce the issue of **servo stability**, which can be seriously endangered by mechanical resonances.
+
+An important aspect of a feedback controller is the fact that control forces can only result from an error signal.
+Thus any desired set-point profile first leads to a position error before the corresponding driving forces are generated.
+Most modern servo-systems have not only a feedback section, but also a **feedforward** section, as indicated in [Figure 3](#figure--fig:rankers98-feedforward-example).
+
+
+
+{{< figure src="/ox-hugo/rankers98_feedforward_example.png" caption="Figure 3: Mechanical servo system with feedback and feedforward control" >}}
+
+In the feedforward section, control signals are derived from the desired output (position, speed and acceleration) using a model of the mechanical servo-system.
+In practice, a feedforward section gives a significant performance improvement in case of point-to-point and tacking applications, but a feedback section will always be necessary.
+First, because the model used in the calculation of the feedforward signal is not a perfect representation of the actual system and second because of the presence of unknown disturbances.
+
+Practicing engineers generally accomplish the feedback design and analysis on the basis of the **frequency response**.
+One of the major benefits of this approach is the close link to experimental information that can be obtained by exciting the system with sinusoidal inputs and varying frequency and measuring the amplitude and phase of the output.
+Such frequency response can either be plotted using a Bode diagram of a Nyquist diagram.
+
+An engineering approach to stability evaluation is the so-called "Left Hand Rule", which reads:
+
+> If a system contains only stable elements in the open loop, then the closed loop system is stable if the point \\((-1,0)\\) in the Nyquist diagram lies on the left hand side of the open loop response when it is run through in the direction of increasing frequency.
+
+In order to quantify the level of stability, two criteria have been introduced: gain and phase margin which measure how close the open loop response approaches the point \\((-1,0)\\) in the Nyquist diagram.
+
+
+### Specifications {#specifications}
+
+Specification of a feedback controller is very closely linked to **disturbance rejection**, especially in modern controllers that incorporate a feedforward section.
+The required performance of the feedback section, which is generally expressed in terms of **bandwidth**, depends very much on the disturbances that act on the system.
+
+These disturbances can be very different, and vary from application to application:
+
+- Random floor vibration
+- Imperfections of the guiding systems
+- Harmonic excitation forces due to the presence of pumps or ventilators
+- Acoustic excitation
+
+
+### Interaction Dynamics and Control {#interaction-dynamics-and-control}
+
+Basically, machine dynamics can have two deterioration effects in mechanical servo systems:
+
+- Mechanical resonances can endanger servo stability, and thus limit the bandwidth and the amount of disturbance rejection.
+- Vibrations can lead to positional errors at the end of a set-point motion, or during a tracking motion.
+
+
+### Three Important Dynamic Effects {#three-important-dynamic-effects}
+
+
+#### Actuator Flexibility {#actuator-flexibility}
+
+The basic characteristics of what is called "actuator flexibility" is the fact that in the frequency range of interest (usually \\(0-10\times \text{bandwidth}\\)) the driven system no longer behaves as one rigid body ([Figure 4](#figure--fig:rankers98-actuator-flexibility)) due to **compliance between the motor and the load**.
+
+
+
+{{< figure src="/ox-hugo/rankers98_actuator_flexibility.png" caption="Figure 4: Actuator Flexibility" >}}
+
+
+#### Guiding System Flexibility {#guiding-system-flexibility}
+
+The second category of dynamic phenomena results from the **limited stiffness of the guiding system** in combination with the fact the the device is driven in such a way that it has to rely on the guiding system to suppress motion in an undesired direction (in case of a linear direct drive system this occurs if the driving force is not applied at the center of gravity).
+
+In general, a rigid actuator possesses six degrees of freedom, five of which need to be suppressed by the guiding system in order to leave one mobile degree of freedom.
+In the present discussion, a planar actuator with three degrees of freedom will be considered ([Figure 5](#figure--fig:rankers98-guiding-flexibility-planar)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_guiding_flexibility_planar.png" caption="Figure 5: Planar actuator with guiding system flexibility" >}}
+
+The carriage is free to move in the guiding direction \\(x\\), whereas the perpendicular displacement \\(y\\) and the rotation \\(\phi\\) is prevented via two fixtures with limited stiffness \\(c\\).
+The limited support stiffness and the inertia properties of the actuator will result in two resonances, which can be characterized as perpendicular mode and rocking mode.
+
+Every actuator as some sort of guiding system in order to suppress certain DoF, and thus possesses guiding modes.
+However, whether this leads to dynamic problems depends very much on the location of the driving force and the sensor.
+By choosing the **proper location of the driving force one can avoid excitation of these modes**, whereas **the location of the sensor influences the effect of such a mode on the servo stability** where excitation of the mode could not be avoided.
+
+In general, it should be attempted to design the actuator (mass distribution and location of driving force) such that it will perform the desired motion even in the absence of the guiding system.
+
+
+#### Limited Mass and Stiffness of Stationary Machine Part {#limited-mass-and-stiffness-of-stationary-machine-part}
+
+The last category of dynamic phenomena results from the **limited mass and stiffness of the stationary part of a mechanical servo-system**.
+In contrast to many textbooks on mechanics and machine dynamics, it is good practice always to look at the combination of driving force on the moving part, and **reaction force** on the stationary part, of a positioning device.
+When doing so, one has to consider what the effect of the reaction force on the systems performance will be.
+In the discussion of the previous two dynamic phenomena, the stationary part of the machine was assumed to be infinitely stiff and heavy, and therefore the effect of the reaction force was negligible.
+However, in general the stationary part is neither infinitely heavy, nor is it connected to its environment with infinite stiffness, so the stationary part will exhibit a resonance that is excited by the reaction forces ([Figure 6](#figure--fig:rankers98-limited-m-k-stationary-machine-part)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_limited_m_k_stationary_machine_part.png" caption="Figure 6: Limited Mass and Stiffness of Stationary Machine Part" >}}
+
+Practice has taught that in a well-designed servo system the effect of such a resonance on the stability of the servo system is generally small; even then it can have a significant impact on the set-point response.
+
+The effect of frame vibrations is even worse where the quality of positioning of the servo system is not determined by the position of the actuator relative to the frame, but by the position of the actuator relative to the world (for example a robot that has to pick a component from a pallet that is placed on the floor).
+
+
+## [Modal Decomposition]({{< relref "modal_decomposition.md" >}}) {#modal-decomposition--modal-decomposition-dot-md}
+
+To understand and describe the behaviour of a mechanical system in a quantitative way, one usually sets up a model of the system.
+The mathematical description of such a model with a finite number of DoF consists of a set of ordinary differential equations.
+Although in the case of simple systems, such as illustrated in [Figure 7](#figure--fig:rankers98-1dof-system) these equations may be very understandable, in the case of complex systems, the set of differential equations itself gives only limited insight, and mainly serves as a basis for numerical simulations.
+
+
+
+{{< figure src="/ox-hugo/rankers98_1dof_system.png" caption="Figure 7: Elementary dynamic system" >}}
+
+A very powerful tool, both numerically and experimentally, in understanding the dynamic properties of a mechanical system, is the concept of "**modal analysis**".
+
+
+### Mathematics of Modal Decomposition {#mathematics-of-modal-decomposition}
+
+The general equation of motion of a linear mechanical system with a finite number of DoF, and without damping is:
+
+\begin{equation}
+M \ddot{x}(t) + K x(t) = f(t)
+\end{equation}
+
+in which \\(M\\) and \\(K\\) stand for the symmetric semi-positive definite mass and stiffness matrix, \\(x(t)\\) and \\(\ddot{x}(t)\\) represent the displacement and acceleration vectors, and \\(f(t)\\) denotes the vector of forces.
+
+Generally this system of equations is coupled but it can always be decoupled by using a transformation based on the non-trivial solutions (the eigenvectors) of the following eigenvalue problem:
+
+\begin{equation}
+(K + \omega\_i^2 M) \phi\_i = 0
+\end{equation}
+
+Solving the eigenvalue problem gives the eigenvalues \\(\omega\_1^2, \omega\_2^2, \dots, \omega\_n^2\\) and the corresponding eigenvectors or mode-shape vectors \\(\phi\_1, \phi\_2, \dots, \phi\_n\\).
+
+These eigenvectors have the following orthogonality properties, or can always be chosen such that:
+
+\begin{equation} \label{eq:eigenvector\_orthogonality\_mass}
+\phi\_i^T M \phi\_j = 0 \quad (i \neq j)
+\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\\):
+
+\begin{equation} \label{eq:modal\_mass}
+\phi\_i^T M \phi\_i = \mathit{m}\_i
+\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:}
+
+- \\(|\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}.
+- \\(\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}.
+- \\(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}.
+
+The orthogonality properties also apply to the stiffness matrix \\(K\\):
+
+\begin{align}
+\phi\_i^T K \phi\_j &= 0 \quad (i \neq j) \\\\
+\phi\_i^T K \phi\_i &= \omega\_i^2 \mathit{m}\_i = \mathit{k}\_i
+\end{align}
+
+Because the \\(n\\) eigenvectors \\(\phi\_i\\) form a **base** in the n-dimensional space, any displacement vector \\(x(t)\\) can be written as a **linear combination of the eigenvectors**.
+Let \\(q\_i(t)\\) be the response of the decoupled mode \\(i\\), then the resulting displacement vector \\(x(t)\\) will be:
+
+\begin{equation}
+x(t) = q\_1(t) \phi\_1 + q\_2(t) \phi\_2 + \dots + q\_n(t) \phi\_n
+\end{equation}
+
+For one individual physical DoF \\(x\_k\\):
+
+\begin{equation}
+x\_k(t) = q\_1(t) \phi\_{1k} + q\_2(t) \phi\_{2k} + \dots + q\_n(t) \phi\_{nk}
+\end{equation}
+
+with \\(\phi\_{ik}\\) being the element of the mode-shape vector \\(\phi\_i\\) that corresponds to the physical DoF \\(x\_k\\).
+
+
+
+The physical interpretation of the above two equations is that any motion of the system can be regarded as a combination of the contribution of the various modes.
+
+
+
+On can combine the eigenvectors in a matrix \\(\Phi\\) and the coefficients \\(q\_i\\) in a vector \\(q(t)\\) which leads to:
+
+\begin{equation}
+x(t) = \Phi q(t)
+\end{equation}
+
+With:
+
+\begin{align}
+ \Phi &= \begin{bmatrix} \phi\_1 & \phi\_2 & \dots & \phi\_n \end{bmatrix} \\\\
+ q(t) &= \begin{bmatrix}
+ q\_1(t) \\\\
+ q\_2(t) \\\\
+ \vdots \\\\
+ q\_n(t)
+\end{bmatrix}
+\end{align}
+
+Substitution of \\(x(t) = \Phi q(t)\\) into the original equation of motion and premultiplication with \\(\Phi^T\\) results in:
+
+\begin{equation}
+\Phi^T M \Phi \ddot{q}(t) + \Phi^T K \Phi q(t) = \Phi^T f(t)
+\end{equation}
+
+Which finally leads to a set of **uncoupled** equations of motion that describe the contribution of each mode:
+
+\begin{equation}
+\begin{bmatrix}
+m\_1 & & & \\\\
+& m\_2 & & \\\\
+& & \ddots & \\\\
+& & & m\_n
+\end{bmatrix} \begin{bmatrix}
+\ddot{q}\_1 \\\\
+\ddot{q}\_2 \\\\
+\vdots \\\\
+\ddot{q}\_n
+\end{bmatrix} + \begin{bmatrix}
+k\_1 & & & \\\\
+& k\_2 & & \\\\
+& & \ddots & \\\\
+& & & k\_n
+\end{bmatrix} \begin{bmatrix}
+q\_1 \\\\
+q\_2 \\\\
+\vdots \\\\
+q\_n
+\end{bmatrix} = \begin{bmatrix}
+\phi\_1^T f \\\\
+\phi\_2^T f \\\\
+\vdots \\\\
+\phi\_n^T f
+\end{bmatrix}
+\end{equation}
+
+For the i-th modal coordinate \\(q\_i\\) the equation of motion is:
+
+\begin{equation} \label{eq:eoq\_modal\_i}
+m\_i \ddot{q\_i}(t) + k\_i q\_i(t) = \phi\_i^T f(t)
+\end{equation}
+
+which is a **simple second order differential equation** similar to that of a single mass spring system.
+
+
+
+Using basic formulae that are derived for a simple mass spring system, one is now able to analyze the time and frequency response of all individual modes.
+Having done that, the total motion of the system can simply be obtained by summing the contributions of all modes.
+
+
+
+Characterisation of the dynamics of a mechanical system in terms of frequency response behavior plays a major role in the stability analysis of the control loop of a mechatronic device.
+In such an analysis one is typically interested in the transfer function between a measured displacement \\(x\_l\\) and a force \\(f\_k\\), which acts at the physical DoF \\(x\_k\\).
+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\\).
+In that case, equation \ref{eq:eoq\_modal\_i} is reduced to:
+
+\begin{equation}
+m\_i \ddot{q}\_i(t) + k\_i q\_i(t) = \phi\_{ik} f\_k(t)
+\end{equation}
+
+After a Laplace transformation and some rearrangement:
+
+\begin{equation}
+q\_i(s) = f\_k(s) \frac{\phi\_{ik}}{m\_i s^2 + k\_i}
+\end{equation}
+
+Once the modal response \\(q\_i\\) is known, the response of the physical DoF \\(x\_l\\) is found by a simple premultiplication with \\(\phi\_{il}\\), which finally leads to the following expression for the contribution of mode \\(i\\) to the transfer function:
+
+\begin{equation}
+\boxed{\left( \frac{x\_l}{f\_k} \right)\_i = \frac{\phi\_{ik}\phi\_{il}}{m\_i s^2 + k\_i}}
+\end{equation}
+
+
+
+The overall transfer function can be found by summation of the individual modal contributions, which all have the same structure:
+
+\begin{equation}
+\left( \frac{x\_l}{f\_k} \right) = \sum\_{i = 1}^n \left( \frac{x\_l}{f\_k} \right)\_i = \sum\_{i = 1}^n \frac{\phi\_{ik} \phi\_{il}}{m\_i s^2 + k\_i}
+\end{equation}
+
+
+
+
+### 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.
+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.
+In this representation, the physical DoF are located at fixed positions and the mode shapes displacement is indicated by the length of an arrow.
+
+
+
+{{< figure src="/ox-hugo/rankers98_mode_trad_representation.png" caption="Figure 8: System and traditional graphical representation of modes" >}}
+
+Alternatively, considering that for each mode the mode shape vector defined a constant relation between the various physical DoF, one could also **represent a mode shape by a lever** ([Figure 9](#figure--fig:rankers98-mode-new-representation)).
+
+
+
+For each individual mode \\(i\\), each physical DoF \\(x\_k\\) is indicated on the lever at a position with respect to the point of rotation that corresponds to the amplitude and sign of that DoF in the mode shape vector (\\(\phi\_{ik}\\)).
+
+
+
+System with no, very little, or proportional damping exhibit real mode shape vectors, and thus the various DoF each their maximum values at the same moment of the cycle.
+Consequently, the respective DoF can only be in phase or in opposite phase.
+All DoF on the same side of the rotation point have identical phases, whereas DoF on opposite sides have opposite phases.
+
+The modal DoF \\(q\_i\\) can be interpreted as the displacement at a distance "1" from the pivot point ([Figure 9](#figure--fig:rankers98-mode-new-representation)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_mode_new_representation.png" caption="Figure 9: System and new graphical representation of mode-shape" >}}
+
+In the case of a lumped mass model, as in the previous example, it is possible to indicate at each physical DoF on the modal lever the corresponding physical mass, as shown in [Figure 10](#figure--fig:rankers98-mode-2-lumped-masses) (a).
+The resulting moment of inertia \\(J\_i\\) of the i-th modal lever then is:
+
+\begin{equation}
+J\_i = \sum\_{k=1}^n m\_k \phi\_{ik}^2
+\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:
+
+\begin{equation}
+m\_i = \phi\_j^T M \phi\_j = \sum\_{k=1}^n m\_k \phi\_{ik}^2
+\end{equation}
+
+As a result of this, the **modal mass** \\(m\_i\\) could be interpreted as the resulting mass moment of inertia of the modal lever, or alternatively as a **mass located at a distance "1" from the pivot point**.
+
+The transition from physical masses to modal masses is illustrated in [Figure 10](#figure--fig:rankers98-mode-2-lumped-masses) for the mode 2 of the example system.
+The modal stiffness \\(k\_2\\) is simply calculated via the relation between natural frequency, mass and stiffness:
+
+\begin{equation}
+k\_i = \omega\_i^2 m\_i
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/rankers98_mode_2_lumped_masses.png" caption="Figure 10: Graphical representation of mode 2 with (a.) lumped masses and (b.) modal mass and stiffness" >}}
+
+Let's now consider the effect of excitation forces that act on the physical DoF.
+The scalar product \\(\phi\_{ik}f\_k\\) of each force component with the corresponding element of the mode shape vector can be seen as the moment that acts on the modal level, or as an equivalent force that acts at the location of \\(q\_i\\) on the lever.
+Based on the graphical representation in [Figure 11](#figure--fig:rankers98-lever-representation-with-force), it is not difficult to understand the contribution of mode i to the transfer function \\(x\_l/f\_k\\):
+
+\begin{equation}
+\boxed{\left( \frac{x\_l}{f\_k} \right)\_i = \frac{\phi\_{ik}\phi\_{il}}{m\_i s^2 + k\_i}}
+\end{equation}
+
+Hence, the force \\(f\_k\\) must be multiplied by the distance \\(\phi\_{ik}\\) in order to find the equivalent excitation force at the location of \\(q\_i\\) on the lever, whereas the resulting modal displacement \\(q\_i\\) must be multiplied by the distance \\(\phi\_{il}\\) in order to obtain the displacement of the physical DoF \\(x\_l\\).
+
+
+
+{{< figure src="/ox-hugo/rankers98_lever_representation_with_force.png" caption="Figure 11: Graphical representation of mode \\(i\\), including the proper location of a force component \\(f\_k\\) that acts on physical DoF \\(x\_k\\)" >}}
+
+Often, one is not directly interested in the response of one single physical DoF, but rather in some linear combination of DoF (for instance the relative position of two DoF).
+This linear combination of physical DoF, which will be called "User DoF" can be written as:
+
+\begin{equation}
+x\_u = b\_1 x\_1 + \dots + b\_n x\_n = b^T x
+\end{equation}
+
+User DoF can be indicated on the modal lever, as illustrated in [Figure 12](#figure--fig:rankers98-representation-user-dof) for a user DoF \\(x\_u = x\_3 - x\_2\\).
+The location of this user DoF \\(x\_u\\) with respect to the pivot point of modal lever \\(i\\) is defined by \\(\phi\_{iu}\\):
+
+\begin{equation}
+\phi\_{iu} = b^T \phi\_i
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/rankers98_representation_user_dof.png" caption="Figure 12: Graphical representation of mode including user DoF \\(x\_u = x\_3 - x\_2\\)" >}}
+
+Even though the dimension mode vector can be very large, only **three user DoF** are really important for servo-application which define:
+
+- Input: how much a mode is excited by the servo force
+- Measured output: displacement that is measured by the position sensor
+- Actual output: displacement that determines the accuracy of the machine
+
+
+
+To illustrate this, a servo controlled positioning device is shown in [Figure 13](#figure--fig:rankers98-servo-system).
+The task of the device is to position the payload with respect to a tool that is mounted to the machine frame.
+The actual accuracy of the machine is determined by the relative motion of these two components (actual output).
+However, direct measurement of the distance between the tool and the payload is not possible and therefore the control action is based on the measured distance between a sensor and the slide on which the payload is mounted (measured output).
+The slide is driven by a linear motor which transforms the output of the controller into a force on the slide and a reaction force on the stator (input).
+
+
+
+{{< figure src="/ox-hugo/rankers98_servo_system.png" caption="Figure 13: Schematic representation of a servo system" >}}
+
+
+
+
+### Physical Meaning of Modal Parameters {#physical-meaning-of-modal-parameters}
+
+Unfortunately, the mathematical approach of the scaling procedure of mode-shapes and modal parameters sometimes obscures the physical meaning of modal mass and modal stiffness.
+The link to the real world can be found via the **effective modal mass** and the **effective modal stiffness** of a mode as it is "felt" in a certain DoF.
+These quantities are unique, do not depend on the scaling procedure and have physical meaning and physical units.
+
+The effective modal parameters of mode \\(i\\) in physical DoF \\(k\\) can be derived from the modal parameters via the following equations:
+
+\begin{align}
+m\_{\text{eff},ik} &= m\_i/\phi\_{ik}^2 \label{eq:m\_modal\_eff} \\\\
+k\_{\text{eff},ik} &= k\_i/\phi\_{ik}^2 \label{eq:k\_modal\_eff}
+\end{align}
+
+These effective modal parameters can be used very effectively in understanding topics such as sensitivity analysis or constructing the frequency response of a complex system from knowledge of modal contributions.
+
+
+
+The eigenvalue analysis of the two mass spring system in [Figure 14](#figure--fig:rankers98-example-2dof) leads to the modal results summarized in [Table 1](#table--tab:2dof-example-modal-params) and which are graphically represented in [Figure 15](#figure--fig:rankers98-example-2dof-modal).
+
+
+
+{{< figure src="/ox-hugo/rankers98_example_2dof.png" caption="Figure 14: Two mass spring system" >}}
+
+The modal masses can be easily found from the mode shape vectors:
+
+\begin{align}
+m\_1 &= \phi\_1^T M \phi\_1 = 50.8 kg \\\\
+m\_2 &= \phi\_2^T M \phi\_2 = 11.1 kg
+\end{align}
+
+whereas the modal stiffnesses follow from \\(k\_i = \omega\_i^2 m\_i\\).
+
+
+
+ Table 1:
+ Modal results for the two mass spring system
+
+
+| | Mode 1 | Mode 2 |
+|-------------------|-------------------------------|---------------------------------|
+| Frequency [Hz] | \\(f\_1 = 47.8\\) | \\(f\_2 = 167.7\\) |
+| Eigenvector [-] | \\(\phi\_1^T = [0.67,0.74]\\) | \\(\phi\_2^T = [-0.11, 0.99]\\) |
+| Modal Mass [kg] | \\(m\_1 = 50.8\\) | \\(m\_2 = 11.1\\) |
+| Modal Stiff [N/m] | \\(k\_1 = 0.46\cdot 10^7\\) | \\(k\_2 = 1.23\cdot 10^7\\) |
+
+
+
+{{< figure src="/ox-hugo/rankers98_example_2dof_modal.png" caption="Figure 15: 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}.
+The results are summarized in [Table 2](#table--tab:2dof-example-modal-params-eff).
+
+
+
+ Table 2:
+ Effective modal parameters for the two mass spring system
+
+
+| | Mode 1 | Mode 2 |
+|-------------------------|------------------------------------------------|------------------------------------------------|
+| Effective mass - DoF 1 | \\(m\_{\text{eff},11} = 112.1 kg\\) | \\(m\_{\text{eff},21} = 927.9 kg\\) |
+| Effective mass - DoF 2 | \\(m\_{\text{eff},12} = 92.8 kg\\) | \\(m\_{\text{eff},22} = 11.2 kg\\) |
+| Effective stiff - DoF 1 | \\(k\_{\text{eff},11} = 1.02 \cdot 10^7 N/m\\) | \\(k\_{\text{eff},21} = 1.02 \cdot 10^9 N/m\\) |
+| Effective stiff - DoF 2 | \\(k\_{\text{eff},12} = 0.84 \cdot 10^7 N/m\\) | \\(k\_{\text{eff},22} = 1.25 \cdot 10^7 N/m\\) |
+
+The effective modal parameters can then be used in the graphical representation of [Figure 16](#figure--fig:rankers98-example-2dof-effective-modal).
+Based on this representation, it is now very easy to construct the individual modal contributions to the frequency response function \\(x\_1/F\_1\\) of the example system ([Figure 17](#figure--fig:rankers98-2dof-example-frf)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_example_2dof_effective_modal.png" caption="Figure 16: Alternative graphical representation of modes of two mass spring system based on the effective modal mass and stiffnesses in DoF \\(x\_1\\)" >}}
+
+One can observe that the low frequency part of each modal contribution corresponds to the inverse of the calculated effective modal mass stiffness at DoF \\(x\_1\\) whereas the high frequency contribution is defined by the effective modal mass.
+
+In the final Bode diagram ([Figure 17](#figure--fig:rankers98-2dof-example-frf), below) one can observe an interference of the two modal contributions in the frequency range of the second natural frequency, which in this example leads to a combination of an anti-resonance an a resonance.
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_example_frf.png" caption="Figure 17: Frequency Response Function \\(x\_1/f\_1\\)" >}}
+
+
+
+
+### A Pragmatic View on Sensitivity Analysis {#a-pragmatic-view-on-sensitivity-analysis}
+
+Sometimes it is required to change the dynamical properties of a system.
+In such situation it is useful to known how to modify the system so as to bring about the desired change.
+**Sensitivity analysis**, helps to determine the rate of change of each natural frequency with each of the system parameters.
+
+
+
+Sensitivity analysis typical provides answers to questions such as:
+
+- Where should one reduce mass in order to achieve the most significant gain in natural frequency?
+- Between which two points of a structure should one add extra stiffness to increase the natural frequency?
+
+
+
+The technique furthermore gives an indication of the amount of frequency shift that can be obtained.
+
+
+
+Assuming that one is asked to increase the natural frequency of the mode corresponding to [Figure 18](#figure--fig:rankers98-example-3dof-sensitivity) by attaching a linear spring \\(k\\) between two of the three represented DoF.
+As the relative motion between \\(x\_A\\) and \\(x\_B\\) is the largest of all possible combinations, this is the choice that will maximize the natural frequency of the mode.
+
+
+
+{{< figure src="/ox-hugo/rankers98_example_3dof_sensitivity.png" caption="Figure 18: Graphical representation of a mod with 3 DoF" >}}
+
+
+
+If one has to increase the frequency of a mode, one should focus on stiffening those components or connectors with the highest contribution to the modal **potential energy**.
+On the other hand, components that contribute significantly to the modal **kinetic energy** are serious candidates for mass reduction.
+
+A first-order approximation of the new natural frequency of mode i can easily be derived by considering the effective modal mass and stiffness of that mode in the relevant DoF.
+In the case of an extra mass \\(\Delta m\\) in DoF \\(x\_k\\), the effective modal mass \\(m\_{\text{eff},i}\\) in that DoF is required, whereas in the case of an additional spring \\(\Delta k\\) between two DoF \\(x\_k\\) and \\(x\_l\\) one has to compare the contribution of \\(\Delta k\\) to the effective modal stiffness \\(k\_{\text{eff},i}\\) in the user DoF (\\(x\_k-x\_l\\)).
+The new natural frequency of mode i will be approximately:
+
+\begin{align}
+f\_{\text{new},i}(\Delta m) &= \frac{1}{2\pi}\sqrt{\frac{k\_{\text{eff},i}}{m\_{\text{eff},i} + \Delta m}} = f\_{\text{old}} \sqrt{\frac{m\_{\text{eff},i}}{m\_{\text{eff},i} + \Delta m}} \label{eq:sensitivity\_add\_m} \\\\
+f\_{\text{new},i}(\Delta k) &= \frac{1}{2\pi}\sqrt{\frac{k\_{\text{eff},i} + \Delta k}{m\_{\text{eff},i}}} = f\_{\text{old}} \sqrt{\frac{k\_{\text{eff},i} + \Delta k}{k\_{\text{eff},i}}} \label{eq:sensitivity\_add\_k}
+\end{align}
+
+
+
+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)).
+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\\).
+
+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):
+
+\begin{align}
+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
+\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.
+
+The results are summarized in [Table 3](#table--tab:example-sensitivity-2dof-results).
+
+
+
+
+| | f1 [Hz] | f2 [Hz] |
+|--------------------------------------------------------------------|---------|---------|
+| Original | 47.8 | 167.7 |
+| \\(\Delta m = 1 kg\\) added to \\(m\_2\\) | 47.5 | 160.7 |
+| \\(\Delta k = 10^7 N/m\\) added between \\(x\_2\\) and \\(x\_1\\) | 48.1 | 237.2 |
+
+
+
+{{< figure src="/ox-hugo/rankers98_example_sensitivity_2dof.png" caption="Figure 19: Graphical representation of modes and modal parameters of two mass spring system" >}}
+
+
+
+
+### Modal Superposition {#modal-superposition}
+
+Previously, the lever representation was used only to represent the individual mode shapes.
+In the mechanism shown in [Figure 20](#figure--fig:rankers98-addition-of-motion), the motion of the output \\(y\\) is equals to the sum of the motion of the two inputs \\(x\_1\\) and \\(x\_2\\).
+
+
+
+{{< figure src="/ox-hugo/rankers98_addition_of_motion.png" caption="Figure 20: Addition of motion" >}}
+
+This approach can be applied to the concept of modal superposition, which expressed the motion of any physical DoF \\(x\_k(t)\\) as the summation of modal contribution:
+
+\begin{equation}
+x\_k(t) = \sum\_{i=1}^n \phi\_{ik} q\_i(t) = \sum\_{i=1}^n x\_{ki}(t)
+\end{equation}
+
+Combining the concept of summation of modal contribution with the lever representation of mode shapes leads to [Figure 21](#figure--fig:rankers98-conversion-modal-to-physical), which is a visualization of the transformation between the modal and the physical domains.
+
+
+
+{{< figure src="/ox-hugo/rankers98_conversion_modal_to_physical.png" caption="Figure 21: Conversion between modal DoF to physical DoF" >}}
+
+
+### Suspension Modes {#suspension-modes}
+
+The "rigid body modes" usually refer to the lower natural frequencies of a machine that are caused by the flexibility of the suspension system.
+This is misleading at it suggests that the structure exhibits no internal deformation.
+A better term for such a mode would be **suspension mode**.
+
+To illustrate the important of the internal deformation, a very simplified physical model of a precision machine is considered ([Figure 22](#figure--fig:rankers98-suspension-mode-machine)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_suspension_mode_machine.png" caption="Figure 22: Simplified physical model of a precision machine" >}}
+
+The machine basically consists of a very heavy granite machine frame to which an optical unit is rigidly connected.
+The optical unit takes images of a specimen that is mounted on a manipulator that has certain flexibility with respect to the granite machine frame.
+For a proper operation of the machine, the internal deformation \\(\epsilon = x\_2 - x\_1\\) needs to be minimal.
+Typically, such a machine is designed for high internal stiffness, and it is furthermore very softly supported in order to prevent external (floor) vibrations from entering the machine.
+
+Assuming that the natural frequency \\(\omega\_1\\) of the suspension mode \\(\phi\_1\\) is significantly lower than that of the internal mode, one can approximate the frequency of the suspension mode by considering the motion of the entire machine as one rigid body on the stiffness of the suspension system.
+However, one should keep in mind that **there is always a small amount of internal deformation** in case of a non-zero suspension stiffness \\(k\_{20}\\).
+
+
+
+It can be shown than the internal deformation associated with the suspension mode is:
+
+\begin{equation}
+\epsilon = \frac{\omega\_1^2}{\omega\_{\text{int}}^2 x\_2}
+\end{equation}
+
+with \\(\omega\_{\text{int}} = \sqrt{\frac{k\_{12}}{m\_1}}\\) representing the natural frequency of the manipulator where the base frame is clamped or infinitely heavy.
+
+
+
+This equation shows that the internal deformation associated with the suspension mode depends on the ratio of the natural frequencies of the internal mode compared to the suspension mode.
+
+
+
+As an example of a situation in which the internal deformation associated with the suspension mode is of significant importance, one could consider a high precision machine that is excited due to floor vibrations such that it vibrates on its suspension with an amplitude of \\(100 \mu m\\) and a frequency of 3 Hz.
+Assuming that the internal frequency of the manipulator is equal to 150 Hz, the internal deformation of the machine is:
+
+\begin{equation}
+\epsilon = \frac{3^2}{150^2} 100 \mu m = 40 nm
+\end{equation}
+
+which can be a lot for high precision machines.
+
+
+
+
+## Modes and Servo Stability {#modes-and-servo-stability}
+
+The effect of machine dynamics on the servo control loop stability is discussed in this chapter.
+
+The interaction between the desired (rigid body) motion and the dynamics of one additional mode and its effect on the frequency response function \\(x\_{\text{servo}}/F\_{\text{servo}}\\) is the basis of this chapter.
+
+
+### Basic Characteristics of Mechanical FRF {#basic-characteristics-of-mechanical-frf}
+
+Consider the position control loop of [Figure 23](#figure--fig:rankers98-mechanical-servo-system).
+
+
+
+{{< figure src="/ox-hugo/rankers98_mechanical_servo_system.png" caption="Figure 23: Mechanical position servo-system" >}}
+
+In the ideal situation the mechanical system behaves as one rigid body with mass \\(m\\), so the mechanical transfer function can be written as:
+
+\begin{equation}
+\frac{x\_{\text{servo}}}{F\_{\text{servo}}} = \frac{1}{m s^2}
+\end{equation}
+
+The corresponding Bode and Nyquist plots and shown in [Figure 24](#figure--fig:rankers98-ideal-bode-nyquist).
+
+
+
+{{< figure src="/ox-hugo/rankers98_ideal_bode_nyquist.png" caption="Figure 24: FRF of an ideal system with no resonances" >}}
+
+In the case of one extra modal contribution, the equation for the mechanical transfer function needs to be extended with one extra term:
+
+\begin{equation} \label{eq:effect\_one\_mode}
+\frac{x\_{\text{servo}}}{F\_{\text{servo}}} = \frac{1}{m s^2} + \frac{\phi\_{i,\text{servo}} \phi\_{i,\text{force}}}{m\_i s^2 + k\_i} = \frac{1}{m s^2} + \frac{\phi\_{i,\text{servo}} \phi\_{i,\text{force}}}{m\_i s^2 + m\_i \omega\_i^2}
+\end{equation}
+
+The final transfer function and the exact interaction between the two parts depends on the values of the various parameters.
+
+Let's introduce a variable \\(\alpha\\), which **relates the high-frequency contribution of the mode to that of the rigid-body motion**:
+
+\begin{equation} \label{eq:alpha}
+\alpha = \frac{\frac{\phi\_{i,\text{servo}} \phi\_{i,\text{force}}}{m\_i}}{\frac{1}{m}}
+\end{equation}
+
+which simplifies equation \ref{eq:effect\_one\_mode} to:
+
+\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}}
+\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.
+
+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:
+
+- \\(|\alpha| < 1\\): two intersections
+- \\(|\alpha| = 1\\): one intersection and asymptotic approach at high frequencies
+- \\(|\alpha| > 1\\): one intersection
+
+The interaction between the rigid body motion and the additional mode will not only depend on \\(|\alpha|\\) but also on the **sign** of \\(\alpha\\), which determined the **phase relation between the two contributions**.
+
+
+
+{{< figure src="/ox-hugo/rankers98_frf_effect_alpha.png" caption="Figure 25: Contribution of rigid-body motion and modal dynamics to the amplitude and phase of FRF for various values of \\(\alpha\\)" >}}
+
+The general shape of the overall FRF can be constructed for all cases ([Figure 26](#figure--fig:rankers98-final-frf-alpha)).
+Interesting points are the interaction of the two parts at the frequency that corresponds to an intersection in the amplitude plot.
+At this frequency the magnitudes are equal, so it depends on the phase of the two contributions whether they cancel each other, thus leading to a zero, or just add up.
+
+
+
+{{< figure src="/ox-hugo/rankers98_final_frf_alpha.png" caption="Figure 26: Bode diagram of final FRF (\\(x\_{\text{servo}}/F\_{\text{servo}}\\)) for six values of \\(\alpha\\)" >}}
+
+
+
+When analyzing the plots of [Figure 26](#figure--fig:rankers98-final-frf-alpha), four different types of FRF can be found:
+
+- -2 slope / zero / pole / -2 slope (\\(\alpha > 0\\))
+- -2 slope / pole / zero / -2 slope (\\(-1 < \alpha < 0\\))
+- -2 slope / pole / -4 slope (\\(\alpha = -1\\))
+- -2 slope / pole / -2 slope (\\(\alpha < -1\\))
+
+
+
+All cases are shown in [Figure 27](#figure--fig:rankers98-interaction-shapes).
+
+
+
+{{< figure src="/ox-hugo/rankers98_interaction_shapes.png" caption="Figure 27: Bode plot of the different types of FRF" >}}
+
+
+### Destabilising Effect of Modes {#destabilising-effect-of-modes}
+
+In this section the effect of each basic mechanical FRF on the stability of the control loop will be discussed.
+A PID controller with additional second order low pass filter will be the basis for the discussion of stability.
+
+Typical crossover frequencies for a PID controller with second order low pass filtering are:
+
+\begin{align\*}
+f\_i &= f\_b/10 \\\\
+f\_d &= f\_b/3 \\\\
+f\_{lp} &= 4 \cdot f\_b
+\end{align\*}
+
+with \\(f\_b\\) the bandwidth frequency.
+The asymptotic amplitude plot is shown in [Figure 28](#figure--fig:rankers98-pid-amplitude).
+
+
+
+{{< figure src="/ox-hugo/rankers98_pid_amplitude.png" caption="Figure 28: Typical crossover frequencies of a PID controller with 2nd order low pass filtering" >}}
+
+With these settings, the open loop response of the position loop (controller + mechanics) looks like [Figure 29](#figure--fig:rankers98-ideal-frf-pid).
+
+
+
+{{< figure src="/ox-hugo/rankers98_ideal_frf_pid.png" caption="Figure 29: Ideal open loop FRF of a position servo without mechanical resonances (\\(f\_b = 30\text{ Hz}\\))" >}}
+
+
+
+Conclusions are:
+
+- A "-2 slope / zero / pole / -2 slope" characteristic leads to a phase lead, and is therefore potentially destabilizing in the low frequency ([Figure 30](#figure--fig:rankers98-zero-pole-low-freq)) and high frequency ([Figure 32](#figure--fig:rankers98-zero-pole-high-freq)) regions.
+ In the medium frequency region ([Figure 31](#figure--fig:rankers98-zero-pole-medium-freq)), it adds an extra phase lead to the already existing margin, which does not harm the stability.
+- A "-2 slope / pole / zero / -2 slope" combination has the reverse effect.
+ It is potentially destabilizing in the medium frequency range ([Figure 34](#figure--fig:rankers98-pole-zero-medium-freq)) and is harmless in the low ([Figure 33](#figure--fig:rankers98-pole-zero-low-freq)) and high frequency ([Figure 35](#figure--fig:rankers98-pole-zero-high-freq)) ranges.
+- The "-2 slope / pole / -4 slope" behavior always has a devastating effect on the stability of the loop if located in the low of medium frequency ranges.
+
+These conclusions may differ for different mass ratio \\(\alpha\\).
+
+
+
+
+
+{{< figure src="/ox-hugo/rankers98_zero_pole_low_freq.png" caption="Figure 30: Open Loop FRF of type "-2 slope / zero / pole / -2 slope" with low frequency resonance" >}}
+
+
+
+{{< figure src="/ox-hugo/rankers98_zero_pole_medium_freq.png" caption="Figure 31: Open Loop FRF of type "-2 slope / zero / pole / -2 slope" with medium frequency resonance" >}}
+
+
+
+{{< figure src="/ox-hugo/rankers98_zero_pole_high_freq.png" caption="Figure 32: Open Loop FRF of type "-2 slope / zero / pole / -2 slope" with high frequency resonance" >}}
+
+
+
+{{< figure src="/ox-hugo/rankers98_pole_zero_low_freq.png" caption="Figure 33: Open Loop FRF of type "-2 slope / pole / zero / -2 slope" with low frequency resonance" >}}
+
+
+
+{{< figure src="/ox-hugo/rankers98_pole_zero_medium_freq.png" caption="Figure 34: Open Loop FRF of type "-2 slope / pole / zero / -2 slope" with medium frequency resonance" >}}
+
+
+
+{{< figure src="/ox-hugo/rankers98_pole_zero_high_freq.png" caption="Figure 35: Open Loop FRF of type "-2 slope / pole / zero / -2 slope" with high frequency resonance" >}}
+
+
+### Design for Stability {#design-for-stability}
+
+
+#### Actuator Flexibility {#actuator-flexibility}
+
+[Figure 36](#figure--fig:rankers98-2dof-actuator-flexibility) shows the schematic representation of a system with a certain compliance between the motor and the load.
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_actuator_flexibility.png" caption="Figure 36: Servo system with actuator flexibility - Schematic representation" >}}
+
+The corresponding modes are shown in [Figure 37](#figure--fig:rankers98-2dof-modes-act-flex).
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_modes_act_flex.png" caption="Figure 37: Servo System with Actuator Flexibility - Modes" >}}
+
+Assuming first that the **servo position is measured at the motor**.
+The following transfer function must be considered:
+
+\begin{align}
+\frac{x\_1}{F\_{\text{servo}}} &= \frac{1}{m\_{\text{eff},11} s^2} + \frac{1}{m\_{\text{eff,21}}s^2 + \omega\_2^2 m\_{\text{eff},21}} \\\\
+&= \frac{1}{m\_1 + m\_2} \left( \frac{1}{s^2} + \frac{\alpha}{s^2 + \omega\_2^2} \right)
+\end{align}
+
+with \\(\alpha = m\_2/m\_1\\) (mass ratio) relates the "mass" of the additional modal contribution to the mass of the rigid body motion.
+The resulting FRF exhibit a "-2 slope / zero / pole / -2 slope" ([Figure 38](#figure--fig:rankers98-2dof-act-flex-frf)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_act_flex_frf.png" caption="Figure 38: Mechanical FRF of a system with actuator flexibility and position measurement at motor" >}}
+
+The asymptotes at low and high frequencies are:
+
+\begin{align}
+\left( \frac{x\_1}{F\_{\text{servo}}} \right)\_{s \to 0} &= \frac{1}{(m\_1 + m\_2) s^2} \\\\
+\left( \frac{x\_1}{F\_{\text{servo}}} \right)\_{s \to \infty} &= \frac{1}{(m\_1 + m\_2) s^2} + \frac{1}{m\_1/m\_2(m\_1 + m\_2) s^2} = \frac{1}{m\_1 s^2}
+\end{align}
+
+which corresponds to the engineering feeling that at very low frequencies the two masses move as one single mass, whereas at very high frequencies the mass \\(m\_2\\) of the load is completely decoupled such that the servo system only "feels and sees" the motion of the motor mass \\(m\_1\\).
+
+
+
+Guideline in presence of actuator flexibility with measurement at the motor position:
+
+- The motor inertia should be one to three times to inertial of the load
+- The resonance frequency should either be near the bandwidth frequency or much above
+
+
+
+Now assume that the **servo position is measured at the load**.
+Now we are interested by the following transfer function:
+
+\begin{equation}
+\frac{x\_2}{F\_{\text{servo}}} = = \frac{1}{m\_1 + m\_2} \left( \frac{1}{s^2} - \frac{1}{s^2 + \omega\_2^2} \right)
+\end{equation}
+
+The mass ratio \\(\alpha\\) equal -1, and thus the FRF will be of type "-2 slope / pole / -4 slope" ([Figure 39](#figure--fig:rankers98-2dof-act-flex-meas-load-frf)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_act_flex_meas_load_frf.png" caption="Figure 39: FRF \\(k\_p \cdot (x\_{\text{servo}}/F\_{\text{servo}})\\) of a system with actuator flexibility and position measurement at the load" >}}
+
+
+
+Guideline in presence of actuator flexibility with measurement at the load position:
+
+- Resonance frequency larger than 5 to 10 times the wanted bandwidth
+
+
+
+
+#### Guiding System Flexibility {#guiding-system-flexibility}
+
+Here, the influence of a limited guiding stiffness ([Figure 40](#figure--fig:rankers98-2dof-guiding-flex)) on the FRF of such an actuator system will be analyzed.
+
+The servo force \\(F\_{\text{servo}}\\) acts at a certain distance \\(a\_F\\) with respect to the center of gravity, and the servo position is measured at a distance \\(a\_s\\) with respect to the center of gravity.
+Due to the symmetry of the system, the Y motion is decoupled from the X and \\(\phi\\) motions and can therefore be omitted in this analysis.
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_guiding_flex.png" caption="Figure 40: 2DoF rigid body model of actuator with flexibility of the guiding system" >}}
+
+Considering the two relevant modes ([Figure 41](#figure--fig:rankers98-2dof-guiding-flex-x-mode) and [Figure 42](#figure--fig:rankers98-2dof-guiding-flex-rock-mode)), the resulting transfer function \\(x\_{\text{servo}}/F\_{\text{servo}}\\) can be constructed from the contributions of the individual modes:
+
+\begin{equation}
+\frac{x\_{\text{servo}}}{F\_{\text{servo}}} = \frac{1}{ms^2} + \frac{a\_s a\_F}{Js^2 + 2cb^2}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_guiding_flex_x_mode.png" caption="Figure 41: Graphical representation of desired X-motion" >}}
+
+
+
+{{< figure src="/ox-hugo/rankers98_2dof_guiding_flex_rock_mode.png" caption="Figure 42: Graphical representation of parasitic rocking mode" >}}
+
+The two distances \\(a\_F\\) and \\(a\_s\\) have a significant influence on the contribution of the rocking mode on the open loop characteristics.
+Note that it is the product of these two distance and not the individual value that are important, so exchanging the position of the sensor and the force does not affect the response.
+
+By introducing the "gyration radius" \\(\rho\\) such that \\(J = m \cdot \rho^2\\), the following mass ratio is obtained:
+
+\begin{equation}
+\alpha = \frac{a\_s a\_F}{\rho^2}
+\end{equation}
+
+As the location of the sensor and the actuator can be chosen anywhere above or below the center of gravity, \\(a\_s\\) and \\(a\_F\\), and consequently \\(\alpha\\), can become any position or negative value, and the resulting FRF can have any of the discussed characteristics.
+
+As long as the actuating force and sensor are located on the same side of the center of gravity, \\(\alpha\\) will be positive and the overall FRF will display a "-2 slope / zero / pole / -2 slope" behaviour.
+When the force and sensor are located at opposite sides of the center of gravity, one of the other three characteristics shapes will be found, depending on the exact values of \\(a\_s\\) and \\(a\_F\\).
+
+
+
+Guidelines for system with guiding flexibility:
+
+1. Driving force at Center of Mass (Best practice)
+2. Locate sensor at Center of Mass (Second best)
+3. If none of the above can be achieved, one should aim at location sensors and driving force as close as possible to the Center of Mass.
+ Furthermore, it is generally better if the location of the sensor and that of the driving force are at the same side of the Center of Mass.
+
+
+
+The best way to avoid any dynamic problems is to drive the system at its center of mass.
+By doing so the rocking mode is not excited, which is not only favorable from a stability point of view, but also results in good set-point behaviour.
+
+When it is impossible to apply the forces at the correct location, one can eliminate the destabilizing effect of the rocking mode by locating the sensor at the height of the center of mass.
+As this point, the resonance will not be present in the FRF.
+
+
+#### Limited Mass and Stiffness of Stationary Machine Part {#limited-mass-and-stiffness-of-stationary-machine-part}
+
+[Figure 43](#figure--fig:rankers98-frame-dynamics-2dof) shows a simple model of a translational direct drive motion on a frame with limited mass and stiffness, and in which the control system operates on the measured position \\(x\_{\text{servo}} = x\_2 - x\_1\\).
+
+
+
+{{< figure src="/ox-hugo/rankers98_frame_dynamics_2dof.png" caption="Figure 43: Model of a servo system including frame dynamics" >}}
+
+The transfer function \\(x\_{\text{servo}}/F\_{\text{servo}}\\) is:
+
+\begin{equation}
+\frac{x\_2 - x\_1}{F\_{\text{servo}}} = \frac{1}{m\_2 s^2} + \frac{m\_2/m\_1}{m\_2s^2 + c(m\_2/m\_1)}
+\end{equation}
+
+The mass ratio \\(\alpha\\) equal \\(m\_2/m\_1\\) and is therefore always positive.
+Consequently, the resulting transfer function is of type "-2 slope / zero / pole / -2 slope".
+The asymptotes at low and high frequencies are:
+
+\begin{align}
+\left( \frac{x\_{\text{servo}}}{F\_{\text{servo}}} \right)\_{x \to 0} &= \frac{1}{m\_2 s^2} \\\\
+\left( \frac{x\_{\text{servo}}}{F\_{\text{servo}}} \right)\_{x \to \infty} &= \frac{m\_1 + m\_2}{m\_1 m\_2 s^2}
+\end{align}
+
+
+
+Guidelines regarding frame motion:
+
+- frame inertia larger than load inertia in order to limit the increase of high frequency gain.
+- frame inertia larger than fifty times the load inertia if additional flexible structures are attached to the frame.
+
+
+
+
+#### General Guidelines {#general-guidelines}
+
+
+
+The amount of contribution of a certain mode ([Figure 44](#figure--fig:rankers98-mode-representation-guideline)) to the open loop response and its interaction with the desired motion is determined by the modal mass and stiffness, but also by the location of the driving force and the location of the response DoF.
+
+
+
+{{< figure src="/ox-hugo/rankers98_mode_representation_guideline.png" caption="Figure 44: Graphical representation of mode i" >}}
+
+This observation leads to the idea that an undesired contribution of a mode to the response can be eliminated by one of the following two approaches:
+
+1. **Mode should not be excited**, which implies that the total moment acting on the modal lever should be equal to zero:
+ - Locate driving force at a node of the mode
+ - Modify mode shape such that the location of the driving force becomes a node of the mode
+ - Apply additional excitation forces such that the overall moment acting on the modal lever is equal to zero
+2. **Output of response DoF should be zero**:
+ - Shift response DoF (sensor) towards node of mode
+ - Modify structural system such that the sensor location becomes a node of the mode
+ - Add additional sensors and combine the outputs such that the contribution of the mode to the new response signal is equal to zero.
+
+It can be shown that these two approaches are closely related to the terms "(un)controllability" and "(un)observability" that are frequently used in modern control theory.
+From control theory, it is known that only those modes can be influenced of modified by the feedback loop which are observable and controllable.
+If such a modification is not required and the modes are not excited by some other mechanism, it can be very effective to use uncontrollability and unobservability in a positive way in order to eliminate unwanted resonances that could endanger stability.
+
+
+
+
+## Predictive Modelling {#predictive-modelling}
+
+
+### Steps in a Modelling Activity {#steps-in-a-modelling-activity}
+
+One can distinguish at least four steps in any modelling activity ([Figure 45](#figure--fig:rankers98-steps-modelling)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_steps_modelling.png" caption="Figure 45: Steps in a modelling activity" >}}
+
+1. The first step consists of a translation of the real structure or initial design drawing of a structure in a **physical model**.
+ Such a physical model is a simplification of the reality, but contains all relations that are considered to be important to describe the investigated phenomenon.
+ This step requires experience and engineering judgment in order to determine which simplifications are valid.
+ See for example [Figure 46](#figure--fig:rankers98-illustration-first-two-steps).
+2. Once a physical model has been derived, the second step consists of translating this physical model into a **mathematical model**.
+ The real world is now represented by a set of differential equations.
+ This step is fairly straightforward, because it is based and existing approaches and rules (Example in [Figure 46](#figure--fig:rankers98-illustration-first-two-steps)).
+3. The third step consists of actuator **simulation run**, the outcome of which is the value of some quantity (for instance stress of some part, resonance frequency, FRF, etc.).
+4. The final step is the **interpretation** of results.
+ Here, the calculated results and previously defined specifications are compared.
+ On the basis of this comparison, design decisions are taken.
+ It is important to realize that the design decisions taken in this step are the actual outcome of the modelling process.
+
+
+
+{{< figure src="/ox-hugo/rankers98_illustration_first_two_steps.png" caption="Figure 46: Illustration of the first two steps in the modelling process" >}}
+
+Modelling and simulation can only have an impact on the design process when the last step is properly done.
+Often, a lot of time and energy is wasted because extended modelling and simulations is done with great enthusiasm only to find out at the end that nobody is capable of interpreting the results and to take design decisions on the basis of the obtained results.
+**It is therefore recommended to start any modelling process by specifying the criteria that will be used in the interpretation and evaluation phase.**
+
+
+### Step-wise Refined Modelling {#step-wise-refined-modelling}
+
+Modelling and simulations can have three main applications:
+
+- **Decision support**
+- **Design optimization**
+- **Trouble shooting** (help to better understand unexpected problems and help to find solutions)
+
+Two aspects are crucial for the success of modelling and simulation as a tool in the product creation process, mainly the usefulness of results and the speed.
+
+The analysis program must be capable of providing **useful results**, that is to say the answers to the proper questions.
+Simply stating that the first resonance frequency of a machine lies at 150 Hz does not satisfy the needs of the control engineer who wants to know whether the machine dynamics could endanger the stability of the servo system.
+The results of the simulations could be presented as Bode or Nyquist diagrams.
+
+The second critical success factor is the **speed** with which is simulation results are obtained.
+The decision making process can only be affected if the analysis results are available on time.
+
+
+
+A **three step modelling approach** is proposed:
+
+1. **Concept evaluation**: one checks whether a concept would work in uni-axial on the basis of a limited number of lumped masses connected by springs.
+2. **System evaluation**: one checks whether it still works in 3D, again assuming rigid components connected by springs.
+3. **Component evaluation**: one checks the deformation of the individual components, and how this affects the overall behaviour.
+
+
+
+
+
+Opponents of computer simulation often doubt the predictive value of these simulations, especially is the models are very elementary, and therefore do not carry out these simulations.
+One must agree that successful simulations based on a 2DoF lumped mass model of a compact disc player are no guarantee that the final product will work according to specifications.
+However, if these simulations, based on an elementary model of the product, show that the specifications are not met, then chances are extremely small that the final product will perform according to specifications.
+Therefore, computer simulations should be regarded as a means to guide the design process by supporting the design choices and to detect unfit design concepts at a very early state in the design process.
+
+
+
+
+
+This three step modelling approach is now illustrated by the example of a fast and accurate pattern generator in which an optical unit has to move in X and Y directions with respect to a work piece ([Figure 47](#figure--fig:rankers98-pattern-generator)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_pattern_generator.png" caption="Figure 47: The basic elements of the pattern generator" >}}
+
+The basic elements of this machine are the work-piece and the optical unit.
+The relative motion of these two elements in X and Y direction enables the generation of any pattern on the work-piece.
+Based on the required throughput of the machine, an acceleration level of \\(1m/s^2\\) is required, whereas the positioning accuracy is \\(1\mu m\\) or better.
+
+
+
+
+#### Specifications {#specifications}
+
+
+
+One of the most crucial step in the modelling process is the **definition of proper criteria on the basis of which the simulation results can be judged**.
+In most cases, this implies that functional system-specifications in combination with **assumed imperfections and disturbances** need to be translated into **dynamics and control specifications** ([Figure 48](#figure--fig:rankers98-system-performance-spec)).
+
+
+
+
+
+{{< figure src="/ox-hugo/rankers98_system_performance_spec.png" caption="Figure 48: System performance specifications need to be translated into criteria on the basis of which simulation results can be judged" >}}
+
+In a first step one needs to make some initial **estimation about the required bandwidth** of the controlled system, because this is a prerequisite for evaluating the influence of the dynamics of the mechanical system on servo stability.
+
+
+
+Based on some analysis, disturbance (mainly friction) forces are foreseen to be in the order of 10N.
+With the wanted accuracy is \\(1 \mu m\\), the initial estimate of the required servo stiffness \\(k\_p\\) is:
+
+\begin{equation}
+k\_p = \frac{10 N}{10^{-6} m} = 10^7 N/m
+\end{equation}
+
+Neglecting the effect of the derivative action of the controller, one can obtain a first estimate of the required bandwidth \\(f\_b\\):
+
+\begin{equation}
+f\_b \approx \frac{1}{2\pi}\sqrt{\frac{k\_p}{m}} \approx 50Hz
+\end{equation}
+
+with \\(m = 100kg\\) is the total moving mass.
+
+
+
+Having derived this estimate of the required bandwidth on the basis of the necessary disturbance rejection, one has to consider whether this bandwidth can be achieved without introducing stability problems and what the consequences are for the mechanical design.
+Dynamic properties of the various designs can be now be evaluated.
+
+
+#### Concept evaluation {#concept-evaluation}
+
+In the initial stage of the development a number of different concepts will be considered.
+The designer will generally use his experience and engineering judgment to select one of these concepts.
+In this stage, the designer only has a rough idea about the outlines of the machine, and the feasibility of this idea can be judged on the basis of very elementary calculations.
+
+
+
+One of the potential concepts for this machine consists of a stationary work piece with an optical unit that moves in both the X and Y directions ([Figure 49](#figure--fig:rankers98-pattern-generator-concept)).
+In the X direction, two driving forces are applied to the slides, whereas the position is measured by two linear encoders mounted between the slide and the granite frame.
+
+
+
+{{< figure src="/ox-hugo/rankers98_pattern_generator_concept.png" caption="Figure 49: One of the possible concepts of the pattern generator" >}}
+
+In this stage of the design, a simple model of the dynamic effects in the X direction could consist of the base, the slides, the guiding rail, the optical housing and intermediate flexibility ([Figure 50](#figure--fig:rankers98-concept-1dof-evaluation)).
+
+
+
+{{< figure src="/ox-hugo/rankers98_concept_1dof_evaluation.png" caption="Figure 50: Simple 1D model for the analysis of the dynamic behaviour in the X direction" >}}
+
+By using this fast and simple method of analysis, potential risks associated with the different concepts can be evaluated.
+
+
+
+
+#### System Evaluation {#system-evaluation}
+
+Once the concept of the machine has been chosen, first rough three dimensional sketches become available and one can add extra spatial information to the simulations such as:
+
+- mass and mass moment of inertia of the different components
+- location of the center of mass
+- location of connecting stiffness
+- location of driving forces
+- location of sensors
+
+Typically, such a model contains 5-10 rigid bodies connected by suitable connectors that incorporate flexibility, whereas damping is in most cases added in the form of modal damping (1% relative damping is in most cases a good first estimate).
+
+
+
+[Figure 51](#figure--fig:rankers98-pattern-generator-rigid-body) shows such a 3D model of a different concept for the pattern generator.
+
+
+
+{{< figure src="/ox-hugo/rankers98_pattern_generator_rigid_body.png" caption="Figure 51: Rigid body model of a concept based on a movement of the work-piece in X direction, and a movement of the optical unit in Y direction" >}}
+
+
+
+
+#### Component Evaluation {#component-evaluation}
+
+On the basis of previous analyses, experimental evaluation of previous designs, or engineering judgment, it is generally possible to identify **critical components** in the design.
+These components will then need to be analyzed in more detail using FEM.
+
+Sometimes it is possible to judge the influence of the internal dynamics of such a component on the performance of the total system, based on a separate analysis of the component.
+However, this approach requires serious consideration of the boundary conditions and is not always feasible.
+
+When a separate analysis of a component is not feasible, the detailed FEM description of the component can be used to replace for former rigid body description that has been used in the "system evaluation".
+Such a step normally required the use of so-called "**sub-structuring**" techniques.
+
+
+
+In the patter generator it is very important that the connection between the linear motor module and the work piece is sufficiently stiff.
+The reason lies in the fact that due to accuracy specifications the position is measured at the work piece and not at the motor.
+Consequently, one has to ensure that the internal stiffness of the actuator is high enough to avoid stability problems.
+FE model of this part can be used for such purpose.
+
+
+
+
+#### Final remarks {#final-remarks}
+
+For the industrial application of "predictive modelling" it is essential that the amount of detail in a simulation model corresponds to the current phase in the design process.
+A design team profits from the application of simulation tools only if a proper balance is found between detail and accuracy on one hand, and the total throughput time of the analysis on the other hand.
+
+
+### Practical Modelling Issues {#practical-modelling-issues}
+
+In the "component evaluation" stage, detailed FE models of critical components need to be created and analyzed.
+Sometimes, components can be evaluated individually against component specifications, which are often defined in terms of lower internal natural frequencies.
+In other cases, such a separate analysis of a component is not sufficient to judge the impact of its dynamics on the overall system, and one is forced to combine these detailed component-models into a detailed model of the entire system.
+
+Due to the complexity of the structures it is normally not very practical to build one, single, huge, FE model of the entire device:
+
+- Building one huge model of a machine tends to be very error-prone
+- It is not feasible to work on one huge model with a group of people
+- The resulting mass and stiffness matrices can easily have many thousands degrees of freedom, which puts high demands on the required computing capacity.
+
+A technique which overcomes these disadvantages is the co-called **sub-structuring technique**.
+In this approach, illustrated in [Figure 52](#figure--fig:rankers98-substructuring-technique), the system is divided into substructures or components, which are analyzed separately.
+Then, the (reduced) models of the components are assembled to form the overall system.
+By doing so, the size of the final system model is significantly reduced.
+
+
+
+{{< figure src="/ox-hugo/rankers98_substructuring_technique.png" caption="Figure 52: Steps in the creation of an overall system model based on detailed FE models of the components" >}}
+
+The process involves the following steps:
+
+- In the first step, the entire system is sub-divided into components
+- In the second step, a detailed FE model of each component is generated, resulting in a component mass and stiffness matrix
+- In the step three, a reduced model of the component is generated by applying a "component reduction" technique to the original model.
+ The intention of this step is to reduce the size of the matrices that describe the behaviour of the component, yet retain its main dynamic characteristics.
+- Finally, the reduced models are assembled into one overall system
+
+
+## Conclusions {#conclusions}
+
+
+
+Machine dynamics, and the interaction with the control system, plays a dominant role in the performance of fast and accurate servo-controlled positioning devices such as compact disc, wafer-steppers, and component-mounters.
+
+**Modal analysis** is a numerical and experimental tool that can be very profitable in understanding the nature of complicated mechanical resonances.
+The mathematics of a single decoupled "modal" equation of motion can be translated into a graphical representation including all relevant data, which simplifies the understanding and creative use of the modal concept.
+The introduction of the terms "effective" modal mass and stiffness enables a unique link between the modal and the physical domain.
+
+From a servo stability point of view it is essential to investigate the mechanical FRF (\\(x/F\\)) which characterizes the dynamic properties of the mechanical system.
+Once the dynamics of the one individual mode is fully understood it is straightforward to construct this FRF and the interaction between the desired rigid body motion and the contribution of one additional mode.
+A closer investigation of this interaction reveals that only four interaction patterns exists.
+The destabilizing effect of a mechanical resonance depends not only on the resulting typical interaction pattern in the FRF, but also on its frequency in relation to the intended bandwidth frequency of the control loop.
+On the basis of these stability considerations, **design guidelines** for the mechanics of a servo positioning devices are derived, so as to minimize the effect of mechanical vibrations on the stability of the controlled system.
+
+In view of its importance to the overall performance, the effect of machine dynamics should be monitored during the entire design process through the use of **modelling and simulation** techniques.
+However, it is vital for the success of modelling and simulation as a tool to support design decisions, that analysis data are translated into useful information, and that this information is available on time.
+This requires a proper balance between accuracy and speed that can best be achieved by a top-down analysis process, which is closely linked to the phases in the design process, and in which the simulation models are step-wise refined.
+
+When many parts of the mechanical system need to be modelled in great detail it is not advisable to build one, single, huge FE model but rather to apply a so-called "**sub-structuring**" techniques.
+The Craig-Bampton approach, which is a component mode technique based on a combination of all boundary constraint modes plus a limited number of fixed interface normal modes, was found to be favorable.
+It has static solution capacity, and the frequency of the highest fixed-interface normal mode gives a good indication of the frequency range up to which the overall system results are valid.
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Rankers, A. M. 1998. “Machine Dynamics in Mechatronic Systems: An Engineering Approach.” University of Twente.
Treichel, Kai. 2017. “Modeling and Robust Adaptive Tracking Control of a Planar Precision Positioning System.” Fakultät für Informatik und Automatisierung der Technischen Universität Ilmenau.
+
diff --git a/content/phdthesis/verbaan15_robus.md b/content/phdthesis/verbaan15_robus.md
new file mode 100644
index 0000000..e1f95e4
--- /dev/null
+++ b/content/phdthesis/verbaan15_robus.md
@@ -0,0 +1,443 @@
++++
+title = "Robust mass damper design for bandwidth increase of motion stages"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+:
+
+
+Reference
+: (Verbaan 2015)
+
+Author(s)
+: Verbaan, C.
+
+Year
+: 2015
+
+> This thesis addresses the challenge to increase the modal damping of the bandwidth limiting resonances of motions stages.
+> This modal damping increase is realized by adding passive elements, called robust tuned mass dampers, at specific stage locations.
+>
+> [...]
+>
+> The damper parameters that have to be determined are mass, stiffness, and damping.
+> The optimal parameters are obtained by executing optimization algorithm.
+>
+> The first motion stage design is optimized based on an open-loop criterion for modal damping increase between 1 and 4kHz.
+> Experimental validation shows that a suppression factor of over 24dB is obtained.
+
+
+## Robust Mass Damper and broad banded damping {#robust-mass-damper-and-broad-banded-damping}
+
+> In high tech motion systems, the finite stiffness of mechanical components results in natural frequencies which limit the bandwidth of the control system.
+> This is usually counteracted by increasing the controller complexity by adding notch filters.
+> The height of the non-rigid body modes in the frequency response function and the amount of damping significantly affect the achievable bandwidth.
+> This chapter described a method to add damping to the flexible behavior of a motion stage, by using robust mass dampers which are mass-spring-damper systems with an **over-critical** damping value.
+> This high damping results in robust dynamic behavior with respect to stiffness and damping variations for both the motion stage and the damper mechanisms.
+> The main result is a significant increase in modal damping over a broad band of resonance frequencies.
+
+
+### Tuned mass damper {#tuned-mass-damper}
+
+The effectiveness of the TMD is related to the mass ratio between \\(m\\) and \\(M\\).
+To obtain a substantial suppression factor in combination with a relatively small increase in mass, the mass ratio is usually determined to be approximately 5 to 10% of the main structural mass.
+The undamped natural frequency of the TMD has to be tuned close to the targeted natural frequency of the main structure.
+
+A drawback of the TMD is the relatively **large sensitivity of the suppression factor for variations in stiffness and damping values**.
+This sensitivity also holds for natural frequency variations of the main structure.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_tmd_principle.png" caption="Figure 1: TMD principle" >}}
+
+
+### Damper design and validation {#damper-design-and-validation}
+
+This damper is designed and tested to prove that it is possible to create dampers with over-critical damping values and with natural frequencies that are high enough to be useful.
+The spring and damper are assumed to behave linearly.
+In addition, the vibration amplitudes of high-tech positioning tables are small, which allows for assuming linear system theory.
+These small vibration amplitudes lead to small damper strokes.
+Therefore **flexures** can be used to provide for the guidance of the moving mass.
+The dimensions of the flexures determine the spring stiffness and therefore the natural frequency of the TMD.
+An additional advantage of flexures is the lack of hysteresis, which **enables the damper to work even if the damper strokes are very small**.
+
+The dampers are intended to act purely in z-direction.
+The natural frequency in this direction is determined at 1250Hz and the natural frequency in the other directions should be as high as possible.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_tmd_modes.png" caption="Figure 2: Natural frequency of the TMD. First natural frequency at 1250Hz and the second at 8100Hz." >}}
+
+The second challenge is to create a damping mechanism with a high damping coefficient in a relatively small volume.
+The damper is designed to be **passive**.
+This guarantees stability of the damper system itself and preserves from increasing complexity.
+As damping concept, a **viscous fuild damper** is chosen due to the following properties:
+
+- the linear time independent behavior
+- the ability to create an extremely large damping constant in a small volume
+- separation of stiffness and damping
+- the supreme damping properties of fuilds with respect to other damping materials
+
+The guild applied is Rocol Kilopoise 0868 and is chosen based on the extremely high viscosity of 220 Pas.
+
+In order to measure the damping the measurement bench shown in [Figure 3](#figure--fig:verbaan15-tmd-mech-system) is used.
+The measured FRF are shown in [Figure 4](#figure--fig:verbaan15-obtained-damping-bench).
+The measurement clearly shows that the damper mechanism is over-critically damped.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_tmd_mech_system.png" caption="Figure 3: Damper test setup to measure the damping characteristics" >}}
+
+
+
+{{< figure src="/ox-hugo/verbaan15_obtained_damping_bench.png" caption="Figure 4: Obtained damping results" >}}
+
+
+## Linear viscoelastic characterisation of an ultra-high viscosity fluid {#linear-viscoelastic-characterisation-of-an-ultra-high-viscosity-fluid}
+
+> This chapter presents the use of a state of the art damper for high precision motion stages as a sliding plate rheometer for measuring linear viscoelastic properties in the frequency range of 10Hz to 10kHz.
+> This design is flexure based to minimize parasitic nonlinear forces.
+> Design and the damping mechanism are elaborated and a model is presented that describes the dynamic behavior.
+
+The damper shown in [Figure 5](#figure--fig:verbaan15-damper-parts) can be used as a sliding plate rheometer to measure the linear viscoelastic properties of ultra-high viscosity fluids in the frequency range 10Hz to 10kHz.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_damper_parts.png" caption="Figure 5: Damper parts" >}}
+
+The full damper assembly consists of a mass, mounted on two springs and a damper in parallel configuration.
+The mass can make small strokes in the x-direction and is fixed in all other directions.
+The spring is a double leaf spring guide.
+The space between the lead springs is used to accommodate for the damping mechanism.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_tmd_slot_fin_parts.png" caption="Figure 6: Exploded view of the damper parts" >}}
+
+A high-viscosity fluid is applied to create a velocity dependent force.
+For this purpose, the sliding plate principle is used which induces a **shear flow**: the fluid is placed between two slot plates and a fin is positioned between these two plates ([Figure 7](#figure--fig:verbaan15single-double-fin)).
+A **flexible encapsulation** is used to hold the fluid between find and slot part.
+
+To study different damping values with the same fluid, two damper designs with different geometries are used (see [Figure 7](#figure--fig:verbaan15single-double-fin)).
+
+
+
+{{< figure src="/ox-hugo/verbaan15single_double_fin.png" caption="Figure 7: Cross-sectional views of the two different damping mechanims. The single fin (left) and double fin (right)." >}}
+
+To excite the damper mass, a voice coil is mounted to the hardware.
+The damper position is measured with a laser vibrometer.
+
+A sliding plate damper for high frequencies introduces side effects:
+
+1. geometry related effects
+2. frequency dependent effects
+
+A first geometrical effect is due to the **finite length of the plates**.
+The ratio length/gap here is more than 100 which makes this effect negligible.
+A second geometrical effect is due to the difficulty to get the **plates parallel to each other**, especially with the normal forces acting on the moving fin, induced by the flow.
+This design counteracts this problem in two-ways: the damper part is **symmetric**, which means that the fin normal forces cancel each other.
+In addition, the double leaf spring mechanism has a **very high lateral stiffness**, which minimizes lateral displacements.
+A third geometrical effect is pumping of the fluid, which appears in the case of closed ends and introduces a flow opposite to the fin velocity, and therefore introduces a parasitic damping force.
+This problem is avoided by letting the gaps' ends open.
+The **fin is shorted than the slot** to maintain the same damping area over the damper stroke.
+
+These effects all arise at low frequencies, at which the flow can be assumed homogeneous.
+The ratio between inertial and viscous effects determines up to which frequency the flow can be assumed homogeneous:
+
+\begin{equation}
+t\_c = \frac{10 \rho h^2}{\eta}
+\end{equation}
+
+in which \\(\rho\\) describes the fluid density in \\(kg/m^3\\), \\(\eta\\) the dynamic viscosity in \\(Pa s\\) and \\(h\\) the gap width in \\(m\\).
+Dimensions are provided in [Table 1](#table--tab:single-fin-parameters).
+This estimate results in a frequency above 100kHz.
+It shows that high fluid viscosities and small gap widths enable high frequencies without losing homogeneous flow conditions.
+
+
+
+ Table 1:
+ Parameters for the single fin design
+
+
+| Dimension | Value [mm] |
+|----------------|------------|
+| Length \\(l\\) | 16 |
+| Width \\(w\\) | 8.5 |
+| Gap \\(h\\) | 0.12 |
+
+**Conclusion**:
+A design of a sliding plate damper that can be used to characterize fluid behavior of high viscosity fluids in the frequency range between 10Hz and 10kHz.
+The drawbacks of standard sliding plate devices are taken care off by the mechanical design.
+The flexure mechanism very precisely determines the position of the fin with respect to the slot part.
+A three mode Maxwell model can accurately describe the behavior.
+
+
+## Damping optimization of a complex motion stage {#damping-optimization-of-a-complex-motion-stage}
+
+
+### Stage and damper dynamic models {#stage-and-damper-dynamic-models}
+
+This chapter presents the results of a robust mass damper implementation on a complex motion stage with realistic natural frequencies to increase the modal damping of flexible modes.
+A design approach is presented which results in parameter values for the dampers to improve the modal damping over a specified frequency range.
+
+[Figure 8](#figure--fig:verbaan15-stage-undamped) shows a collocated FRF of the stage's corner.
+The goal is to increase the modal damping of modes 7, 9, 10/11 and 13.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_stage_undamped.png" caption="Figure 8: FRF at the stage corner in the z-direction, undamped" >}}
+
+The transfer function \\(T\_i(s)\\) is defined as the contribution of the a single mode \\(i\\) in an input/output transfer function:
+
+\begin{equation}
+T\_i(s) = \frac{\phi\_i^{\text{act}} \phi\_i^{\text{sen}}}{s^2 + 2 \xi \omega\_i s + \omega\_i^2} = \frac{1}{m\_i s^2 + c\_i s + k\_i}
+\end{equation}
+
+With \\(\phi\_i^{\text{act}}\\) and \\(\phi\_i^{\text{sen}}\\) the modal factors of the actuator and sensor.
+
+From this equation, it appears that the modal mass of a mode in a certain transfer function equals:
+
+\begin{equation}
+m\_i = \frac{1}{\phi\_i^{\text{act}} \phi\_i^{\text{sen}}}
+\end{equation}
+
+This equation shows that a certain mode's modal mass depends on the locations of the actuator and sensor.
+Since a TMD can be seen as a local control loop, the actuator and sensor location are equal.
+This results in the following equation for the apparent modal mass for mode \\(i\\) at the TMD location:
+
+\begin{equation}
+m\_i = \frac{}{(\phi\_i^{\text{TMD}})^2}
+\end{equation}
+
+It is known from literature that the efficiency of a TMD depends on the **mass ratio** of the TMD and the mode that has to be damped.
+It follows that the efficiency of a TMD to damp a certain resonance depends on the position of the damper on the stage in a quadratic sense.
+The TMD has to be located at the maximum displacement of the mode(s) to be damped.
+
+The damper configuration consists of an inertial mass \\(m\\), a transnational flexible guide designed as a double leaf spring mechanism with total stiffness \\(c\\) and a part that creates the damping force with damping constant \\(d\\) (model shown in [Figure 9](#figure--fig:verbaan15-maxwell-fluid-model)).
+The velocity dependent damper force is the result of two parameters:
+
+- the fluid's mechanical properties
+- the damper geometry
+
+The fluid model is presented in [Figure 10](#figure--fig:verbaan15-fluid-lve-model).
+This figure shows the viscous and elastic properties of the fluid as a function of the frequency.
+The damper principle is chosen to be a parallel plate damper based on the shear principle with the viscous fluid in between the two parallel plates.
+In case of a velocity difference between these plates, a velocity gradient is created in the fluid causing a specific force per unit of area, which, multiplied by the effective area submerged in the fluid, leads to a damping force.
+
+The damping can be expressed with a geometrical damping factor (GDF) in meters:
+
+\begin{equation}
+\text{GDF} = \frac{A}{h} = \frac{2 n l w}{h}
+\end{equation}
+
+with \\(A\\) the total area of the damper fins, \\(n\\) is the number of fins, \\(l\\) is the fin length, \\(w\\) is the fin width and \\(h\\) is the effective gap width in which the fluid is applied.
+
+This GDF, combined with the fluid properties in Pas and Pa, lead to a spring stiffness in N/m and a damping constant in N/(m/s).
+
+In general, larger suppression factors can be obtained with larger TMD masses.
+In the example, the modal mass is 3.5kg and the damper mass is 110g (useful inertial mass of 65g).
+
+
+
+{{< figure src="/ox-hugo/verbaan15_maxwell_fluid_model.png" caption="Figure 9: Damper model with multi-mode Maxwell fluid model included" >}}
+
+
+
+{{< figure src="/ox-hugo/verbaan15_fluid_lve_model.png" caption="Figure 10: Storage and loss modulus of the 3 Maxwell mode LVE fluid model" >}}
+
+
+### TMD and RMD optimisation {#tmd-and-rmd-optimisation}
+
+An algorithm is used to optimize the damping and is used in two cases:
+
+- a small banded optimisation which includes a single resonance.
+ This results in a **tuned mass damper** optimal design
+- a broad banded optimization which includes a range of resonances.
+ This results in a **robust mass damper** optimal design
+
+The algorithm is first used to calculate the optimal parameters to suppress a **single** resonance frequency.
+The result is shown in [Figure 11](#figure--fig:verbaan15-tmd-optimization) and shows **Tuned Mass Damper** behavior.
+
+For this single frequency, stiffness and damping values can be calculated by hand.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_tmd_optimization.png" caption="Figure 11: Result of the optimization procedure. The cost function is specified between 1kHz and 2kHz. This implies that the first mode is suppressed by the damper." >}}
+
+To obtain broad banded damping, the cost function is redefined between 1 and 4kHz.
+[Figure 12](#figure--fig:verbaan15-broadbanded-damping-results) presents the resulting bode diagram.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_broadbanded_damping_results.png" caption="Figure 12: Result of the optimization procedure with the cost function specified between 1 and 4kHz. The result is a range of resonances that are suppressed by the dampers." >}}
+
+Results of optimizations for increasing damper mass, in the range from 10 to 250g per damper are shown in [Figure 13](#figure--fig:verbaan15-results-fct-mass).
+
+
+
+{{< figure src="/ox-hugo/verbaan15_results_fct_mass.png" caption="Figure 13: Optimal damper parameters as a function of the damper mass. The upper graph shows the suppression factor in dB, the second graph shows the natural frequency of the damper in Hz and the lower graph shows the geometrical damping factor in m." >}}
+
+
+### Damper Design and Validation {#damper-design-and-validation}
+
+A damper mechanism is design which contains the following properties:
+
+- a moving mass \\(m\_d = 65\\,g\\)
+- a mounting mass \\(m\_m = 45\\,g\\)
+- a natural frequency \\(\omega\_0 = 1270\\,Hz\\)
+- other natural frequencies as high as possible
+- a geometrical damping factor of 14.3m
+- an encapsulation to contain the fluid
+
+[Figure 14](#figure--fig:verbaan15-RMD-mechanical-parts) shows an exploded view of the RMD design.
+The mechanism part is monolithically designed and consists of:
+
+1. a mounting side
+2. leaf spring pair
+3. the damper side
+
+The fluid is surrounded by a flexible encapsulation, which prevents it from running out.
+
+
+
+{{< figure src="/ox-hugo/verbaan15_RMD_mechanical_parts.png" caption="Figure 14: Exploded view of the robust mass damper design with different parts indicated" >}}
+
+
+
+{{< figure src="/ox-hugo/verbaan15_RMD_design_modes.png" caption="Figure 15: Four lowest natural frequencies and corresponding mode shapes of the RMD while mounted to a stage corner" >}}
+
+
+
+{{< figure src="/ox-hugo/verbaan15_tmd_side_front_views.png" caption="Figure 16: A side view and a front view of the fin and slot parts" >}}
+
+| Dimension | Value | Unit |
+|-------------|-------|------|
+| Length fin | 17 | mm |
+| Height fins | 4 | mm |
+| Gap width | 50 | um |
+| GDF | 14 | m |
+
+
+
+{{< figure src="/ox-hugo/verbaan15_damped_undamped_frf.png" caption="Figure 17: Measured undamped and damped FRF" >}}
+
+
+### Conclusion {#conclusion}
+
+This chapter shows an approach to add damping to a range of resonances of a motion stage by adding robust mass dampers.
+Analysis is performed to calculate the damping increase beforehand, and experiments are conducted to validate the behavior of both the damper and the stage with dampers added.
+
+The broadbanded solution shows a resonance suppression of at least 24.3dB between 1kHz and 4kHz.
+The overall mass increase is less than 2%.
+
+The robustness, as one of the most important properties of the RMD, is proven: the suppression factor is well predictable despite different errors and estimations:
+
+- stage model errors (the natural frequencies resulting from the FEM are an overestimation of the real frequencies)
+- fluid model errors
+- a simplified 1DoF model is applied as a damper model
+- production tolerances for the dampers
+
+Tuned mass dampers are well known in literature.
+The equations are proven to calculate the optimal suppression factor, natural frequency and damping ratio.
+In these equations, the damper behavior is assumed to be purely viscous.
+We shows that larger suppression factors are possible by using visco-elastic fluids as damping medium.
+Although this effect is relatively small for single resonance suppression, it is larger for broadbanded suppression.
+The damper benefits from the frequency dependent stiffness of the fluid.
+
+
+## Conclusion {#conclusion}
+
+In this thesis, the opportunities to increase the performance of high-tech motion systems are investigated by increasing the modal damping of non-rigid body resonances by introducing robust mass dampers (RMD), which provides damping over a broad frequency band.
+A combination of techniques is applied to improve the performance of motion stages in a systematical way, including mechanical design, dynamic modeling, material characterization and optimization procedures.
+Theoretical improvement factors are calculated and experimental validation is provided to support the theory.
+The main conclusions of the previous chapters are summarized and listed by subject.
+
+
+### Robust Mass Dampers {#robust-mass-dampers}
+
+Robust mass dampers have proven to be able to provide **broad banded damping**.
+In addition, **robust behavior** is proven in case of parameter variations of both the motion stage and/or the parameters of the RMDs.
+This property explicitly underlines the suitability of RMDs to improve the behavior of motion stages that are operated in closed-loop conditions: parameter sensitive designs will result in a performance decrease and might eventually lead to destabilization of the closed-loop system.
+
+The RMDs in this thesis are **passive and stand-alone devices**.
+Advantages of these types of devices are
+
+1. the stabilizing behavior due to the principle of energy dissipation.
+2. The stand-alone property implies that no connection between any structural part and the motion stage is created, and no signal or power cables are needed which prevents the introduction of disturbance forces.
+3. The damper design by application of LVE behavior enables larger suppression factors than purely viscous fluid behavior.
+
+At least in case of motion stages with a relatively large length-height ratio it appears that an overall mass contribution by the RMDs of 2 % of the stage mass is sufficient to improve the stage performance significantly.
+This is proven by experiments.
+
+
+### Influence on stage dynamics {#influence-on-stage-dynamics}
+
+The relatively high modal damping of the RMDs prevents for visible effects in the rigid body mass line of the frequency response functions.
+In other directions, the natural frequencies of the RMDs can be designed above 6 kHz for dampers of 65 g.
+This is usually high enough to prevent for detrimental properties in the direction of motion
+
+
+### RMD locations {#rmd-locations}
+
+The **location of an RMD on the mechanical stage is a significant factor in the performance increase factor**.
+The effectiveness of the RMD to improve the modal damping factor scales quadratically with the stage displacement at the damper location.
+Therefore, if the limiting natural frequencies are determined, **the locations with large displacements for the corresponding mode shapes have to be found**.
+In case of more than one resonance this might be a weighted criterion for the different modes.
+This approach is applicable for both open- loop and closed-loop performance criteria.
+
+
+### The fluid model {#the-fluid-model}
+
+A **linear visco-elastic fluid model** is derived from measurements and applied in the optimization formulations.
+The results show that the model quality is good enough to predict the system’s damped behavior quite accurately.
+
+
+### Open-loop modal damping improvement {#open-loop-modal-damping-improvement}
+
+The principle of **broad banded damping** is well applicable for practical cases: the intended damping range was 1-4 kHz.
+In addition, a damping increase is visible up to 6 kHz.
+This frequency range abundantly covers the range in which performance limiting flexibilities usually arise in motion stage designs.
+An optimization criterion in terms of resonance suppression is applied and works well: this criterion inherently only optimizes the visible resonances at the actuator and sensor location.
+The choice which resonances should be suppressed, therefore, is specified in the cost function by the frequency response function.
+Robustness of the solution and broad banded effect in practical cases is proven by the experimental validation.
+The calculated suppression factor compares well to the measured ones.
+The suppression factor amounts approximately 24 dB between 1 and 4 kHz, which indicates a modal damping increase factor of 16.
+
+
+### Closed-loop performance increase {#closed-loop-performance-increase}
+
+The principle of closed-loop performance increase is formulated in an optimization formulation which accurately estimates the bandwidth improvement factor.
+The optimization formulation is non-convex, however, a hybrid optimization procedure is able to solve this specific problem in a limited amount of time.
+In addition to the improvements in the intended control loops, other control loops often benefit from the damping increase.
+
+
+### Advantages in analysis {#advantages-in-analysis}
+
+A more general observation regarding the analyses method is presented.
+The approach with separate RMDs is an efficient approach which contains two large advantages: It enables to continue with the current applied mechanical design approach for high natural frequencies and increase the modal damping afterwards.
+This enables to still apply the materials with high specific stiffness and low damping.
+
+In the analysis phase the advantages are enormous:
+
+1. Undamped natural frequencies and mode shapes can be calculated and are valid for the low damped stage’s mechanical design.
+ These algorithms are very efficient and large models can be solved.
+2. State space models can be created which contain the complexity of the FEM model and can be validated by calculating the responses by means of superposition of the undamped modes in the FEM software.
+3. RMDs can be added at specific locations.
+ This results in non-proportional damping and complex mode shapes, which are correctly calculated by the state space model.
+4. This enables to apply optimization algorithms and compare different RMDs very quickly.
+
+The complete model including dampers can be solved in FEM, however, this approach contains serious drawbacks:
+
+1. The mode shapes change from real normal modes to complex modes due to the damping at specific locations.
+ This implies that complex solvers have to be applied.
+ These solvers are much more time consuming than the solvers for real natural modes.
+2. The frequency response functions can be calculated using fully harmonic solvers.
+ This results in the most accurate solution because the model is not truncated as in case of a state space model with a limited number of modes.
+ However, this algorithm solves the complete model for every frequency point in the frequency response function and, therefore, this approach is extremely time-consuming.
+3. Therefore, in this approach the ability to implement different RMD parameters and execute optimization algorithms practically vanishes due to the limitations listed above.
+
+
+
Verbaan, C.A.M. 2015. “Robust mass damper design for bandwidth increase of motion stages.” Mechanical Engineering; Technische Universiteit Eindhoven.
Wang, Xiaoyun. 2007. “Dynamic Modeling, Experimental Identification, and Active Vibration Control Design of a Smart Parallel Manipulator.” University of Toronto.
+
diff --git a/content/phdthesis/zuo04_elemen_system_desig_activ_passiv_vibrat_isolat.md b/content/phdthesis/zuo04_elemen_system_desig_activ_passiv_vibrat_isolat.md
new file mode 100644
index 0000000..f64d588
--- /dev/null
+++ b/content/phdthesis/zuo04_elemen_system_desig_activ_passiv_vibrat_isolat.md
@@ -0,0 +1,78 @@
++++
+title = "Element and system design for active and passive vibration isolation"
+author = ["Dehaeze Thomas"]
+draft = false
+ref_author = "Zuo, L."
+ref_year = 2004
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}}), [Eddy Current Damping]({{< relref "eddy_current_damping.md" >}})
+
+Reference
+: (Zuo 2004)
+
+Author(s)
+: Zuo, L.
+
+Year
+: 2004
+
+> Vibration isolation systems can have various system architectures.
+> When we configure an active isolation system, we can use compliant actuators (such as voice coils) or stiff actuators (such as PZT stacks).
+> We also need to consider how to **combine the active actuation with passive elements**: we can place the actuator in parallel or in series with the passive elements.
+> Most of the isolation systems fall into the category of soft active mounts, in which a compliant actuator is placed in parallel with a spring.
+> A second category is **hard active mounts**, in which the **payload mass is directly mounted to a stiff actuator**.
+> Soft active mounts generally have advantages for better passive performance; hard active mounts are favored for payload disturbance rejection, but combination with passive stages is required due to the lack of isolation performance out of the control bandwidth.
+> Beard, von Flotow and Schubert proposed another type of hard mount, wherein **a stiff PZT actuator is placed in series with a spring** stiffer than the top passive stage.
+> They found that coupling from flexible modes is much smaller than in soft active mounts in the load (force) feedback.
+> Note that reaction force actuators can also work with soft mounts or hard mounts.
+
+
+## Passive Vibration Isolation {#passive-vibration-isolation}
+
+
+### The Role of damping and its practical constructions {#the-role-of-damping-and-its-practical-constructions}
+
+
+#### Viscous damping {#viscous-damping}
+
+
+#### Eddy-current damper {#eddy-current-damper}
+
+
+
+{{< figure src="/ox-hugo/zuo04_eddy_current_magnets.png" caption="Figure 1: (left) Magnetic field and conductor plates assemblies, (right) magnet arrays" >}}
+
+
+
+{{< figure src="/ox-hugo/zuo04_eddy_current_setup.png" caption="Figure 2: Single DoF system damped by eddy current damper" >}}
+
+
+## Elements and configurations for active vibration systems {#elements-and-configurations-for-active-vibration-systems}
+
+
+### System architectures {#system-architectures}
+
+
+
+{{< figure src="/ox-hugo/zuo04_piezo_spring_series.png" caption="Figure 3: PZT actuator and spring in series" >}}
+
+
+
+{{< figure src="/ox-hugo/zuo04_voice_coil_spring_parallel.png" caption="Figure 4: Voice coil actuator and spring in parallel" >}}
+
+
+
+{{< figure src="/ox-hugo/zuo04_piezo_plant.png" caption="Figure 5: Transmission from PZT voltage to geophone output" >}}
+
+
+
+{{< figure src="/ox-hugo/zuo04_voice_coil_plant.png" caption="Figure 6: Transmission from voice coil voltage to geophone output" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Zuo, Lei. 2004. “Element and System Design for Active and Passive Vibration Isolation.” Massachusetts Institute of Technology.
+
diff --git a/content/posts/test.md b/content/posts/test.md
new file mode 100644
index 0000000..e5718aa
--- /dev/null
+++ b/content/posts/test.md
@@ -0,0 +1,152 @@
++++
+title = "First Blog Post"
+author = ["Dehaeze Thomas"]
+date = 2021-04-23T00:00:00+02:00
+tags = ["hugo", "org"]
+categories = ["emacs", "test"]
+draft = false
++++
+
+This is a test for a blog post.
+
+
+## Basics {#basics}
+
+
+### Normal Markup {#normal-markup}
+
+You can make words **bold**, _italic_, underlined, `verbatim` and `code`, and, if you must, ~~strike-through~~.
+
+Here is some inline code Matlab code: `[K,CL,gamma] = mixsyn(G,W1,[],W3);`.
+
+
+### Links to Footnotes {#links-to-footnotes}
+
+A link to a footnote[^fn:1] and to another footnote[^fn:2].
+
+
+### Lists {#lists}
+
+**Unordered List**:
+
+- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+- Nam aliquet euismod viverra.
+- Phasellus turpis nisi, faucibus a orci et, faucibus fermentum ligula.
+
+**List with Tasks**:
+
+- [ ] Task 1
+- [X] Task 2
+- [-] Sub-tasks:
+ - [ ] Sub-task 1
+ - [X] Sub-task 2
+
+**Ordered List**:
+
+1. In libero odio, imperdiet eget ex a, vulputate suscipit tellus.
+2. Etiam sed leo ex.
+3. Integer eu rutrum turpis.
+
+**Nested Lists**:
+
+- Nulla facilisi.
+- Donec vulputate risus ut lectus bibendum, vitae fringilla odio tempus.
+ 1. In libero odio, imperdiet eget ex a, vulputate suscipit tellus.
+ 2. Etiam sed leo ex.
+ - Nulla facilisi.
+ - Donec vulputate risus ut lectus bibendum, vitae fringilla odio tempus.
+ 3. Integer eu rutrum turpis.
+- Ut porta, quam id mattis feugiat, augue mauris bibendum sapien, a pulvinar mi lorem vitae nunc.
+ - Integer eu rutrum turpis.
+ - Sed pretium mattis nibh, vel lobortis augue semper vel.
+
+**Definition List**:
+
+Lorem ipsum
+: dolor sit amet, consectetur adipiscing elit. Mauris laoreet
+ sollicitudin venenatis. Duis sed consequat dolor.
+
+Etiam feugiat
+: pharetra sapien et semper. Nunc ornare lacus sit amet massa
+ auctor, vitae aliquam eros interdum. Mauris arcu ante, imperdiet vel purus
+ ac, bibendum faucibus diam. Ut blandit nec mi at ultricies. Donec eget
+ mattis nisl. In sed nibh felis. Cras quis convallis orci.
+
+Sed aliquam
+: odio sed faucibus aliquam, arcu augue elementum justo, ut
+ vulputate ligula sem in augue. Maecenas ante felis, pellentesque auctor
+ semper non, eleifend quis ante. Fusce enim orci, suscipit ac dapibus et,
+ fermentum eu tortor. Duis in facilisis ante, quis faucibus dolor. Etiam
+ maximus lorem quis accumsan vehicula.
+
+
+### Maths {#maths}
+
+Here is some inline mathematics: \\(z = 2\\).
+
+Unumbered equation:
+\\[ F(x) = \int\_0^x f(t) dt \\]
+
+Using the `equation` environment in Eq. \ref{eq:numbered}.
+
+\begin{equation} \label{eq:numbered}
+ F(s) = \int\_0^\infty f(t) e^{-st} dt
+\end{equation}
+
+Using the `align` environment Equations \ref{eq:align\_1} and \ref{eq:align\_2}.
+
+\begin{align}
+ \mathcal{F}(a) &= \frac{1}{2\pi i}\oint\_\gamma \frac{f(z)}{z - a}\\,dz \label{eq:align\_1} \\\\
+ \int\_D (\nabla\cdot \mathcal{F})\\,dV &=\int\_{\partial D}\mathcal{F}\cdot n\\, dS \label{eq:align\_2}
+\end{align}
+
+
+### Verse, Quote {#verse-quote}
+
+Below is a verse.
+
+
+
+Great clouds overhead
+Tiny black birds rise and fall
+Snow covers Emacs
+
+ ---AlexSchroeder
+
+
+
+Below is a quote.
+
+> Nobody ever figures out what life is all about, and it doesn't matter.
+> Explore the world.
+> Nearly everything is really interesting if you go into it deeply enough.
+>
+> ---Richard P. Feynman
+
+
+### Aside {#aside}
+
+An aside block can be used as shown below.
+
+
+
+Cras elementum ex vel orci congue porttitor. Vestibulum scelerisque gravida mattis. Suspendisse sit amet volutpat felis. Cras luctus porta lectus eget scelerisque. Cras blandit purus vel odio malesuada pellentesque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Morbi eget aliquet sapien. Nunc eu elit in ligula aliquam congue dapibus eu massa. Sed accumsan hendrerit viverra. Quisque purus enim, tristique vitae porttitor eu, feugiat non ligula. Duis vitae ipsum vel quam ultricies ornare quis vitae quam. Vivamus commodo mauris non ex rutrum, sagittis facilisis metus tincidunt. Etiam vel nibh sit amet lorem auctor volutpat vel quis nulla. Quisque nec pharetra justo.
+
+
+### Inline Task {#inline-task}
+
+Some text.
+
+
+This is an inline task
+
+
+Some text.
+
+[^fn:1]: A long foot note. Lorem ipsum dolor sit amet, consectetur adipiscing elit. With a reference to.
+[^fn:2]: An other footnote.
diff --git a/content/posts/test2.md b/content/posts/test2.md
new file mode 100644
index 0000000..780b896
--- /dev/null
+++ b/content/posts/test2.md
@@ -0,0 +1,17 @@
++++
+title = "Second Blog Post"
+author = ["Dehaeze Thomas"]
+date = 2021-05-01T00:00:00+02:00
+lastmod = 2026-09-27T20:47:14+02:00
+tags = ["hugo", "org"]
+categories = ["emacs"]
+draft = false
++++
+
+## Heading {#heading}
+
+
+
+this is an important block
+
+
diff --git a/content/search.md b/content/search.md
new file mode 100644
index 0000000..9f30562
--- /dev/null
+++ b/content/search.md
@@ -0,0 +1,51 @@
+---
+title: "Search Results"
+sitemap:
+ priority : 0.1
+layout: "search"
+---
+
+
+This file exists solely to respond to /search URL with the related `search` layout template.
+
+No content shown here is rendered, all content is based in the template layouts/page/search.html
+
+Setting a very low sitemap priority will tell search engines this is not important content.
+
+This implementation uses Fusejs, jquery and mark.js
+
+
+## Initial setup
+
+Search depends on additional output content type of JSON in config.toml
+\```
+[outputs]
+ home = ["HTML", "JSON"]
+\```
+
+## Searching additional fileds
+
+To search additional fields defined in front matter, you must add it in 2 places.
+
+### Edit layouts/_default/index.JSON
+This exposes the values in /index.json
+i.e. add `category`
+\```
+...
+ "contents":{{ .Content | plainify | jsonify }}
+ {{ if .Params.tags }},
+ "tags":{{ .Params.tags | jsonify }}{{end}},
+ "categories" : {{ .Params.categories | jsonify }},
+...
+\```
+
+### Edit fuse.js options to Search
+`static/js/search.js`
+\```
+keys: [
+ "title",
+ "contents",
+ "tags",
+ "categories"
+]
+\```
diff --git a/content/techreport/merlet87_paral_manip.md b/content/techreport/merlet87_paral_manip.md
new file mode 100644
index 0000000..fb2e000
--- /dev/null
+++ b/content/techreport/merlet87_paral_manip.md
@@ -0,0 +1,24 @@
++++
+title = "Parallel manipulators. part i: theory design, kinematics, dynamics and control"
+author = ["Dehaeze Thomas"]
+draft = true
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}})
+
+Reference
+: (Merlet 1987)
+
+Author(s)
+: Merlet, J.
+
+Year
+: 1987
+
+
+## Bibliography {#bibliography}
+
+
+
Merlet, Jean-Pierre. 1987. “Parallel Manipulators. Part I: Theory Design, Kinematics, Dynamics and Control.” INRIA.
+
diff --git a/content/websites/control_bootcamp.md b/content/websites/control_bootcamp.md
new file mode 100644
index 0000000..ef50842
--- /dev/null
+++ b/content/websites/control_bootcamp.md
@@ -0,0 +1,130 @@
++++
+title = "Control Bootcamp"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+
+
+## Overview {#overview}
+
+
+## Linear Systems {#linear-systems}
+
+
+## Stability and Eigenvalues {#stability-and-eigenvalues}
+
+
+## Linearizing Around a Fixed Point {#linearizing-around-a-fixed-point}
+
+
+## Controllability {#controllability}
+
+
+## Controllability, Reachability, and Eigenvalue Placement {#controllability-reachability-and-eigenvalue-placement}
+
+
+## Controllability and the Discrete-Time Impulse Response {#controllability-and-the-discrete-time-impulse-response}
+
+
+## Degrees of Controllability and Gramians {#degrees-of-controllability-and-gramians}
+
+
+## Controllability and the PBH Test {#controllability-and-the-pbh-test}
+
+
+## Cayley-Hamilton Theorem {#cayley-hamilton-theorem}
+
+
+## Reachability and Controllability with Cayley-Hamilton {#reachability-and-controllability-with-cayley-hamilton}
+
+
+## Inverted Pendulum on a Cart {#inverted-pendulum-on-a-cart}
+
+
+## Eigenvalue Placement for the Inverted Pendulum on a Cart {#eigenvalue-placement-for-the-inverted-pendulum-on-a-cart}
+
+
+## Linear Quadratic Regulator (LQR) Control for the Inverted Pendulum on a Cart {#linear-quadratic-regulator--lqr--control-for-the-inverted-pendulum-on-a-cart}
+
+
+## Motivation for Full-State Estimation {#motivation-for-full-state-estimation}
+
+
+## Observability {#observability}
+
+
+## Full-State Estimation {#full-state-estimation}
+
+
+## Kalman Filter {#kalman-filter}
+
+
+## Observability Example in Matlab {#observability-example-in-matlab}
+
+
+## Observability Example in Matlab (Part 2) {#observability-example-in-matlab--part-2}
+
+
+## Kalman Filter Example in Matlab {#kalman-filter-example-in-matlab}
+
+
+## Linear Quadratic Gaussian (LQG) {#linear-quadratic-gaussian--lqg}
+
+
+## LQG Example in Matlab {#lqg-example-in-matlab}
+
+
+## Introduction to Robust Control {#introduction-to-robust-control}
+
+
+## Three Equivalent Representations of Linear Systems {#three-equivalent-representations-of-linear-systems}
+
+
+## Example Frequency Response (Bode Plot) for Spring-Mass-Damper {#example-frequency-response--bode-plot--for-spring-mass-damper}
+
+
+## Laplace Transforms and the Transfer Function {#laplace-transforms-and-the-transfer-function}
+
+
+## Benefits of Feedback on Cruise Control Example {#benefits-of-feedback-on-cruise-control-example}
+
+
+## Benefits of Feedback on Cruise Control Example (Part 2) {#benefits-of-feedback-on-cruise-control-example--part-2}
+
+
+## Cruise Control Example with Proportional-Integral (PI) control {#cruise-control-example-with-proportional-integral--pi--control}
+
+
+## Sensitivity and Complementary Sensitivity {#sensitivity-and-complementary-sensitivity}
+
+
+## Sensitivity and Complementary Sensitivity (Part 2) {#sensitivity-and-complementary-sensitivity--part-2}
+
+
+## Loop shaping {#loop-shaping}
+
+
+## Loop Shaping Example for Cruise Control {#loop-shaping-example-for-cruise-control}
+
+
+## Sensitivity and Robustness {#sensitivity-and-robustness}
+
+
+## Limitations on Robustness {#limitations-on-robustness}
+
+
+## Cautionary Tale About Inverting the Plant Dynamics {#cautionary-tale-about-inverting-the-plant-dynamics}
+
+
+## Control systems with non-minimum phase dynamics {#control-systems-with-non-minimum-phase-dynamics}
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/websites/data_driven_dynamical_systems_with_machine_learning.md b/content/websites/data_driven_dynamical_systems_with_machine_learning.md
new file mode 100644
index 0000000..93dfa4f
--- /dev/null
+++ b/content/websites/data_driven_dynamical_systems_with_machine_learning.md
@@ -0,0 +1,187 @@
++++
+title = "Data-Driven Dynamical Systems with Machine Learning"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Data-Driven Control {#data-driven-control}
+
+
+### Overview {#overview}
+
+
+#### Challenges {#challenges}
+
+With modern control (LQR, LQG, H-Infinity), we work with linear system (or linearized systems) and we develop a control law that minimize some cost function.
+
+Challenging systems where modern control is not efficient:
+
+- Non-linear systems
+- System with unknown dynamics
+- High dimensional systems
+- Limited measurements or control inputs
+
+For these kinds of systems, data-driven control seems to be a good alternative.
+
+
+#### What is control? {#what-is-control}
+
+It's an optimization constrained by dynamics of the system.
+
+The optimization is easy when the system is linear and the cost function is quadratic.
+When the system is non-linear or when the cost function is non quadratic, the optimization becomes complicated (non closed form). Then the optimization should be rerun on the fly, which is what is done with MPC (model predictive control).
+
+
+#### What is Machine-Learning? {#what-is-machine-learning}
+
+Machine-learning is powerful non-linear optimization based on data.
+
+
+#### Outline of this lecture {#outline-of-this-lecture}
+
+
+##### Data Driven Models {#data-driven-models}
+
+For the problem of unknown dynamics, we can use data driven models.
+The goal is to collect data to generate of model of the system.
+
+
+##### Machine Learning Control {#machine-learning-control}
+
+When we use the control inputs, the system changes and the system model might be not valid anymore.
+The idea is to use data driven machine learning directly to learn a good controller.
+
+
+##### Sensor and actuator placement {#sensor-and-actuator-placement}
+
+Use powerful optimization techniques from machine learning to learn what are good sensors and actuators.
+
+
+### Linear System Identification {#linear-system-identification}
+
+
+### The Goal of Balanced Model Reduction {#the-goal-of-balanced-model-reduction}
+
+
+### Change of Variables in Control Systems {#change-of-variables-in-control-systems}
+
+
+### Change of Variables in Control Systems (Correction) {#change-of-variables-in-control-systems--correction}
+
+
+### Balancing Example {#balancing-example}
+
+
+### Balancing Transformation {#balancing-transformation}
+
+
+### Balanced Truncation {#balanced-truncation}
+
+
+### Balanced Truncation Example {#balanced-truncation-example}
+
+
+### Error Bounds for Balanced Truncation {#error-bounds-for-balanced-truncation}
+
+
+### Balanced Proper Orthogonal Decomposition {#balanced-proper-orthogonal-decomposition}
+
+
+### BPOD and Output Projection {#bpod-and-output-projection}
+
+
+### Balanced Truncation and BPOD Example {#balanced-truncation-and-bpod-example}
+
+
+### Eigensystem Realization Algorithm {#eigensystem-realization-algorithm}
+
+
+### ERA and the Discrete-Time Impulse Response {#era-and-the-discrete-time-impulse-response}
+
+
+### Eigensystem Realization Algorithm Procedure {#eigensystem-realization-algorithm-procedure}
+
+
+### Balanced Models with ERA {#balanced-models-with-era}
+
+
+### Observer Kalman Filter Identification {#observer-kalman-filter-identification}
+
+
+### ERA_OKID Example in Matlab {#era-okid-example-in-matlab}
+
+
+## System Identification {#system-identification}
+
+
+### Full-State Models with Control {#full-state-models-with-control}
+
+
+### Regression Models {#regression-models}
+
+
+### Dynamic Mode Decomposition with Control {#dynamic-mode-decomposition-with-control}
+
+
+### DMD Control Example {#dmd-control-example}
+
+
+### Koopman with Control {#koopman-with-control}
+
+
+### Sparse Nonlinear Models with Control {#sparse-nonlinear-models-with-control}
+
+
+### Model Predictive Control {#model-predictive-control}
+
+
+### Sparse Identification of Nonlinear Dynamics for Model Predictive Control {#sparse-identification-of-nonlinear-dynamics-for-model-predictive-control}
+
+
+## Machine Learning Control {#machine-learning-control}
+
+
+### Overview {#overview}
+
+
+### Genetic Algorithms {#genetic-algorithms}
+
+
+### Tuning a PID Controller with Genetic Algorithms {#tuning-a-pid-controller-with-genetic-algorithms}
+
+
+### Tuning a PID Controller with Genetic Algorithms (Part 2) {#tuning-a-pid-controller-with-genetic-algorithms--part-2}
+
+
+### Genetic Programming {#genetic-programming}
+
+
+### Genetic Programming Control {#genetic-programming-control}
+
+
+## Extremum Seeking Control {#extremum-seeking-control}
+
+
+### Introduction {#introduction}
+
+
+### Matlab {#matlab}
+
+
+### Simulink {#simulink}
+
+
+### Challenging Example {#challenging-example}
+
+
+### Applications {#applications}
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/_index.md b/content/zettels/_index.md
new file mode 100644
index 0000000..c2a149d
--- /dev/null
+++ b/content/zettels/_index.md
@@ -0,0 +1,8 @@
++++
+title = "Zettels"
+author = ["Thomas Dehaeze"]
+type = "zettels"
+draft = false
++++
+
+Here is the list of subjects I took note about.
diff --git a/content/zettels/acquisition_systems.md b/content/zettels/acquisition_systems.md
new file mode 100644
index 0000000..e4fbb77
--- /dev/null
+++ b/content/zettels/acquisition_systems.md
@@ -0,0 +1,27 @@
++++
+title = "Acquisition Systems"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Analog to Digital Converters]({{< relref "analog_to_digital_converters.md" >}}), [Simulink Real Time Target Machines]({{< relref "simulink_real_time_target_machines.md" >}})
+
+
+## Manufacturers {#manufacturers}
+
+
+
+| Manufacturers | Country |
+|----------------------------------------------------------------------------------------------------|----------|
+| [Dewesoft](https://dewesoft.com/) | Slovenia |
+| [Oros](https://www.oros.com/) | France |
+| [National Instruments](https://www.ni.com/fr-fr/shop/pc-based-measurement-and-control-system.html) | USA |
+| [Gantner](https://www.gantner-instruments.com/products/daq-systems/) | Austria |
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/active_damping.md b/content/zettels/active_damping.md
new file mode 100644
index 0000000..a80a908
--- /dev/null
+++ b/content/zettels/active_damping.md
@@ -0,0 +1,20 @@
++++
+title = "Active Damping"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+There are two main control architecture to actively damp structures:
+
+- [Integral Force Feedback]({{< relref "integral_force_feedback.md" >}})
+- [Direct Velocity Feedback]({{< relref "direct_velocity_feedback.md" >}})
+
+The idea is to apply a force proportional to the velocity (either relative or inertial) of the structure.
+
+These are usually applied in a collocated way, meaning that the actuator and sensors are collocated (fixed to the same DoF), in order to have guaranteed stability.
+
+
+## Bibliography {#bibliography}
diff --git a/content/zettels/active_isolation_platforms.md b/content/zettels/active_isolation_platforms.md
new file mode 100644
index 0000000..0276ac5
--- /dev/null
+++ b/content/zettels/active_isolation_platforms.md
@@ -0,0 +1,38 @@
++++
+title = "Active Isolation Platforms"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|-----------------------------------------------------------------------------------------------|-------------|
+| [TMC](https://www.techmfg.com/) | USA |
+| [Newport](https://www.newport.com/c/optical-tables-%26-isolation-systems) | USA |
+| [Thorlabs](https://www.thorlabs.com/navigation.cfm?guide_ID=42) | USA |
+| [IDE](https://www.ideworld.com/en/active_vibration_isolation.html) | Germany |
+| [Harvard Apparatus](https://www.warneronline.com/labmate-vibraplane-workstations-9100-series) | USA |
+| [Herzan](https://www.herzan.com/products/active-vibration-control/avi-series.html) | USA |
+| [Standa](http://www.standa.lt/products/catalog/optical_tables?item=335) | Lithuania |
+| [Table Stable](http://www.tablestable.com/en/products/list/2/) | Switzerland |
+| [Accurion](https://www.halcyonics.com/active-vibration-isolation-products) | Germany |
+| [Vibiso](https://vibiso.com/?page_id=3433) | USA |
+
+
+## Vibration Isolating Pads {#vibration-isolating-pads}
+
+| Manufacturer | links | Country |
+|--------------|----------------------------------|---------|
+| ACE | [link](https://www.ace-ace.com/) | Germany |
+
+
+## Bibliography {#bibliography}
+
+
Beijen, MA. 2018. “Disturbance Feedforward Control for Vibration Isolation Systems: Analysis, Design, and Implementation.” Technische Universiteit Eindhoven.
+
Beijen, Michiel A., Marcel F. Heertjes, Hans Butler, and Maarten Steinbuch. 2019. “Mixed Feedback and Feedforward Control Design for Multi-Axis Vibration Isolation Systems.” Mechatronics 61: 106–16. doi:10.1016/j.mechatronics.2019.06.005.
+
diff --git a/content/zettels/actuators.md b/content/zettels/actuators.md
new file mode 100644
index 0000000..d6f8dcc
--- /dev/null
+++ b/content/zettels/actuators.md
@@ -0,0 +1,45 @@
++++
+title = "Actuators"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+:
+
+
+## Short Stroke Actuators {#short-stroke-actuators}
+
+For short stroke and very high dynamic applications, mainly two types of actuators can be used:
+
+- [Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}})
+- [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}})
+
+
+## Long Stroke Actuators {#long-stroke-actuators}
+
+- Linear motors
+- Piezoelectric Walking Drive ([PI](https://www.physikinstrumente.com/en/expertise/technology/piezoelectric-drives/piezowalk-piezo-motors/))
+
+Rotational drives can be combined with ball-screw mechanisms for long (infinite) axial motion:
+
+- Brush-less DC Motor. See (Yedamale 2003) and this [working principle](https://www.electricaltechnology.org/2016/05/bldc-brushless-dc-motor-construction-working-principle.html).
+- [Stepper Motor]({{< relref "stepper_motor.md" >}})
+
+
+## How to choose the correct actuator for my application? {#how-to-choose-the-correct-actuator-for-my-application}
+
+For vibration isolation:
+
+- In (Ito and Schitter 2016), the effect of the actuator stiffness on the attainable vibration isolation is studied ([Notes]({{< relref "ito16_compar_class_high_precis_actuat.md" >}}))
+- (Murugesan 1981) On overview of electric motors for space applications
+
+
+## Bibliography {#bibliography}
+
+
+
Ito, Shingo, and Georg Schitter. 2016. “Comparison and Classification of High-Precision Actuators Based on Stiffness Influencing Vibration Isolation.” IEEE/ASME Transactions on Mechatronics 21 (2): 1169–78. doi:10.1109/tmech.2015.2478658.
+
Murugesan, S. 1981. “An Overview of Electric Motors for Space Applications.” IEEE Transactions on Industrial Electronics and Control Instrumentation IECI-28 (4): 260–65. doi:10.1109/TIECI.1981.351050.
+
Yedamale, Padmaraja. 2003. “Brushless Dc (BLDC) Motor Fundamentals.” Microchip Technology Inc 20: 3–15.
+
diff --git a/content/zettels/air_bearing.md b/content/zettels/air_bearing.md
new file mode 100644
index 0000000..9c86cfb
--- /dev/null
+++ b/content/zettels/air_bearing.md
@@ -0,0 +1,74 @@
++++
+title = "Air Bearing"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Advantages of air bearing {#advantages-of-air-bearing}
+
+Advantages of air bearings compared to roller bearings:
+
+- **low friction**: because air bearing have almost zero static friction, this enables infinite resolution of motion that is highly repeatable.
+ Friction in air bearing is a function of air shear, which is itself a function of velocity.
+- **zero wear**: non-contact motion means virtually zero wear owing to friction, resulting in consistent machine and minimal particulate generation
+- **straighter motion**: rolling element bearings are directly influence by surface finishing and irregularities on the guide surface. The air bearing's fluid film layer averages these errors resulting in straighter motion
+- **silent and smooth operation**: recirculating rollers or balls create noise and vibration as hard elements are loaded, unloaded and change directions in return tubes. Air bearings have no dynamic components resulting in virtually silent operation
+- **higher damping**: being fluid film bearings, air bearings have a squeeze film damping effect resulting in higher dynamic stiffness and stability
+- **no lubrication**:
+
+
+## Air bearing stiffness {#air-bearing-stiffness}
+
+Observing [Figure 1](#figure--fig:air-bearing-stiffness-gap), we see that air bearings do not have a linear stiffness curve but rather an exponential one, producing higher and higher stiffness values as the film becomes thinner and the loading becomes higher.
+
+
+
+{{< figure src="/ox-hugo/air_bearing_stiffness_gap.png" caption="Figure 1: Lift/load curve of a typical air bearing. The slope of the curve is representative of the bearing stiffness. A vertical line represent infinite stiffness and an horizontal line would represent zero stiffness" >}}
+
+Because air is a compressible fluid, it possesses its own spring rate, or stiffness.
+Higher pressures effectively act as a preload on the "air spring", and if we thing of the air column as a spring of arbitrary height, compressing or shortening the spring will increase its stiffness as the air attempts to "push back".
+Stiffness in an air bearing system is a product of pressure in the air gap, thickness of the air gap and the projected surface area of the bearing.
+
+
+## Orifice and porous technology {#orifice-and-porous-technology}
+
+Air bearings generally fall into one of two categories: orifice or porous media bearings.
+
+In orifice compensation bearings, the precisely sized orifices are strategically placed on the bearing, and are often combined with groove to distribute the pressurized air as evenly as possible across the bearing face.
+However, should the bearing face become scratched across a groove or near an orifice, the volume or air which escapes via the scratch in the surface may be more than the orifice can supply, causing a bearing crash.
+
+Porous media air bearings control the airflow across the entire bearing surface through millions of sub-micron holes in the porous material.
+Due to the porous nature, even if some of the holes become clogged or damaged, the air will continue to be supplied to the majority of the bearing face.
+
+
+## Air Bearing Components {#air-bearing-components}
+
+| Manufacturer | Country |
+|----------------------------------------------------------------------------------------------------------------------------------------------|---------|
+| [New way](https://www.newwayairbearings.com/catalog/components/) ([IBSPE](https://www.ibspe.com/air-bearings/flat-air-bearings) distributor) | USA |
+| [Positechnics](http://positechnics.fr/index.adml?r=176) | |
+| [Huber](https://www.xhuber.com/en/products/4-accessories/41-mechanics/airpads/) | |
+| [Specialty Components](https://www.specialtycomponents.com/) | USA |
+| [Fuild Film Devices](http://www.fluidfilmdevices.co.uk/index.html) | UK |
+| [AeroLas](https://aerolas.de/technologies/air-bearing-technology/?lang=en) | |
+
+
+## Linear Air Bearing Stages {#linear-air-bearing-stages}
+
+-
+-
+-
+-
+
+
+## Spindle Air Bearing {#spindle-air-bearing}
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/analog_to_digital_converters.md b/content/zettels/analog_to_digital_converters.md
new file mode 100644
index 0000000..3a2ace5
--- /dev/null
+++ b/content/zettels/analog_to_digital_converters.md
@@ -0,0 +1,166 @@
++++
+title = "Analog to Digital Converters"
+author = ["Dehaeze Thomas"]
+keywords = ["electronics"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}})
+
+
+## Types of Analog to Digital Converters {#types-of-analog-to-digital-converters}
+
+
+
+- Delta Sigma (Baker 2011)
+- Successive Approximation
+
+
+## Power Spectral Density of the Quantization Noise {#power-spectral-density-of-the-quantization-noise}
+
+This analysis is taken from [here](https://www.allaboutcircuits.com/technical-articles/quantization-nois-amplitude-quantization-error-analog-to-digital-converters/).
+
+Let's note:
+
+- \\(q = \frac{\Delta V}{2^n}\\) the quantization in [V], which is the corresponding value in [V] of the least significant bit
+- \\(\Delta V\\) is the full range of the ADC in [V]
+- \\(n\\) is the number of ADC's bits
+- \\(f\_s\\) is the sample frequency in [Hz]
+
+Let's suppose that the ADC is ideal and the only noise comes from the quantization error.
+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).
+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)).
+
+
+
+{{< figure src="/ox-hugo/probability_density_function_adc.png" caption="Figure 1: Probability density function \\(p(e)\\) of the ADC error \\(e\\)" >}}
+
+Now, we can calculate the time average power of the quantization noise as
+
+\begin{equation}
+ P\_q = \int\_{-q/2}^{q/2} e^2 p(e) de = \frac{q^2}{12}
+\end{equation}
+
+The other important parameter of a noise source is the power spectral density (PSD), which indicates how the noise power spreads in different frequency bands.
+To find the power spectral density, we need to calculate the Fourier transform of the autocorrelation function of the noise.
+
+Assuming that the noise samples are not correlated with one another, we can approximate the autocorrelation function with a delta function in the time domain.
+Since the Fourier transform of a delta function is equal to one, the **power spectral density will be frequency independent**.
+Therefore, the quantization noise is white noise with total power equal to \\(P\_q = \frac{q^2}{12}\\).
+
+Thus, the two-sided PSD (from \\(\frac{-f\_s}{2}\\) to \\(\frac{f\_s}{2}\\)), we should divide the noise power \\(P\_q\\) by \\(f\_s\\):
+
+\begin{equation}
+ \int\_{-f\_s/2}^{f\_s/2} \Gamma(f) d f = f\_s \Gamma = \frac{q^2}{12}
+\end{equation}
+
+
+
+Finally, the Power Spectral Density of the quantization noise of an ADC is equal to:
+
+\begin{equation}
+ \begin{aligned}
+ \Gamma &= \frac{q^2}{12 f\_s} \\\\
+ &= \frac{\left(\frac{\Delta V}{2^n}\right)^2}{12 f\_s} \text{ in } \left[ \frac{V^2}{Hz} \right]
+ \end{aligned}
+\end{equation}
+
+
+
+
+
+Let's take a 18bits ADC with a range of +/-10V and a sample frequency of 10kHz.
+
+The quantization is:
+\\[ q = \frac{20}{2^{18}} = 0.000076 \ [V] = 76 \ [\mu V] \\]
+
+\\[ \Gamma\_Q = \frac{q^2}{12 f\_N} = 4.85 \cdot 10^{-14} \quad [V^2/Hz] \\]
+
+
+
+{{< youtube b9lxtOJj3yU >}}
+
+Also see (Kester 2005).
+
+
+## Link between required dynamic range and effective number of bits {#link-between-required-dynamic-range-and-effective-number-of-bits}
+
+
+
+{{< figure src="/ox-hugo/dynamic_range_enob.png" caption="Figure 2: Relation between Dynamic range and required number of bits (effective)" >}}
+
+
+## Oversampling {#oversampling}
+
+(Lab 2013)
+
+To have additional \\(w\\) bits of resolution, the oversampling frequency \\(f\_{os}\\) should be:
+
+\begin{equation}
+f\_{os} = 4^w \cdot f\_s
+\end{equation}
+
+(NO_ITEM_DATA:hauser91_princ_overs_conver)
+
+
+### When Oversampling and Averaging Will Work {#when-oversampling-and-averaging-will-work}
+
+> Key points to consider are:
+>
+> - The noise must approximate **white noise** with uniform power spectral density over the frequency band of interest.
+> - The **noise amplitude must be sufficient** to cause the input signal to change randomly from sample to sample by amounts comparable to at least the distance between two adjacent codes (i.e., 1 LSB).
+> - The input signal can be represented as a random variable that has equal probability of existing at any value between two adjacent ADC codes.
+
+
+## Sigma Delta ADC {#sigma-delta-adc}
+
+(Pisani 2018)
+
+From (Schmidt, Schitter, and Rankers 2020):
+
+> The low cost and excellent linearity properties of the Sigma-Delta ADC have replaced other ADC types in many measurement and registration systems, especially where storage of data is more important than real-time measurement.
+> This has typically been the case in audio recording and reproduction.
+> The reason why this principle is less applied with real-time measurements is the time delay between the bitstream representing the actual value and the availability of the corresponding value after the decimation filter.
+> The resulting **latency** amounts with a low cost sigma-delta ADC approximately **twenty times the sampling period of the decimated digital output**.
+
+
+
+A 50kHz decimated sampling frequency has a sample period of 20us, resulting in a total latency of more than 400us.
+This would cause almost 180 degrees phase delay for a 1kHz signal frequency, which is not acceptable with high bandwidth motion control systems.
+This phenomenon clearly illustrates the necessity to distinguish sample frequency from speed.
+
+
+
+Therefore, even though there are sigma-delta ADC with high precision and sampling rate, they add large latency (i.e. time delay) that are very problematic for feedback systems.
+
+> The SAR-ADC (Successive approximation ADCs) is still the mostly applied type for data-acquisition and feedback systems because of its single sample latency.
+
+
+
+
+## Anti-Aliasing Filters {#anti-aliasing-filters}
+
+(Microchip 1999)
+
+
+## State of the art ADC {#state-of-the-art-adc}
+
+(Beev 2018)
+
+
+## Bibliography {#bibliography}
+
+
Beev, Nikolai. 2018. “Analog-to-Digital Conversion beyond 20 Bits.” In 2018 IEEE International Instrumentation and Measurement Technology Conference (I2MTC). doi:10.1109/i2mtc.2018.8409543.
+
Kester, Walt. 2005. “Taking the Mystery out of the Infamous Formula, $snr = 6.02 N + 1.76 Db$, and Why You Should Care.”
+
Lab, Silicon. 2013. “Improving the ADC Resolution by Oversampling and Averaging.” Silicon Laboratories.
+
Microchip. 1999. “Anti-Aliasing, Analog Filters for Data Acquisition Systems.”
+
Pisani, Brian. 2018. “Accounting for Delay from Multiple Sources in Delta-Sigma ADCs.”
+
Schmidt, R. M., G. Schitter, and A. Rankers. 2020. The Design of High Performance Mechatronics - Third Revised Edition. Ios Press.
+
NO_ITEM_DATA:hauser91_princ_overs_conver
+
diff --git a/content/zettels/angular_velocity.md b/content/zettels/angular_velocity.md
new file mode 100644
index 0000000..65d875b
--- /dev/null
+++ b/content/zettels/angular_velocity.md
@@ -0,0 +1,29 @@
++++
+title = "Angular Velocity"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Non-integrability of the angular velocity vector {#non-integrability-of-the-angular-velocity-vector}
+
+The non-integrability of the angular velocity vector is well described in (Legnani et al. 2012).
+
+> It is well known that the angular velocity vector is not the time derivative of any set of angular coordinates.
+> In other words, it is impossible to define a set of three coordinates representing the 3D angular position of a body whose time derivative is equal to the angular velocity vector.
+
+This is illustrated in [Figure 1](#figure--fig:angular-nonintegrability).
+
+
+
+{{< figure src="/ox-hugo/angular_nonintegrability.png" caption="Figure 1: Effect of different sequences of rotations of a rigid body. In both cases we get Rot(x)=0, Rot(y)=90deg and Rot(z)=90deg" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Legnani, G., I. Fassi, H. Giberti, S. Cinquemani, and D. Tosi. 2012. “A New Isotropic and Decoupled 6-Dof Parallel Manipulator.” Mechanism and Machine Theory 58: 64–81. doi:10.1016/j.mechmachtheory.2012.07.008.
diff --git a/content/zettels/charge_amplifiers.md b/content/zettels/charge_amplifiers.md
new file mode 100644
index 0000000..02d3fb4
--- /dev/null
+++ b/content/zettels/charge_amplifiers.md
@@ -0,0 +1,56 @@
++++
+title = "Charge Amplifiers"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}})
+
+
+## Description {#description}
+
+A charge amplifier outputs a voltage proportional to the charge generated by a sensor connected to its inputs.
+
+This can be typically used to interface with piezoelectric sensors.
+
+
+## Basic Circuit {#basic-circuit}
+
+Two basic circuits of charge amplifiers are shown in [Figure 1](#figure--fig:charge-amplifier-circuit) (taken from (Fleming 2010)) and [Figure 2](#figure--fig:charge-amplifier-circuit-bis) (taken from (Schmidt, Schitter, and Rankers 2014))
+
+
+
+{{< figure src="/ox-hugo/charge_amplifier_circuit.png" caption="Figure 1: Electrical model of a piezoelectric force sensor is shown in gray. The op-amp charge amplifier is shown on the right. The output voltage \\(V\_s\\) equal to \\(-q/C\_s\\)" >}}
+
+
+
+{{< figure src="/ox-hugo/charge_amplifier_circuit_bis.png" caption="Figure 2: A piezoelectric accelerometer with a charge amplifier as signal conditioning element" >}}
+
+The input impedance of the charge amplifier is very small (unlike when using a voltage amplifier).
+
+The gain of the charge amplified ([Figure 1](#figure--fig:charge-amplifier-circuit)) is equal to:
+\\[ \frac{V\_s}{q} = \frac{-1}{C\_s} \\]
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|----------------------------------------------------------------------------------------------------------------------------------------------|---------|
+| [PCB](https://www.pcb.com/sensors-for-test-measurement/electronics/line-powered-multi-channel-signal-conditioners) | USA |
+| [HBM](https://www.hbm.com/en/2660/paceline-cma-charge-amplifier-analogamplifier/) | Germany |
+| [Kistler](https://www.kistler.com/fr/produits/composants/conditionnement-de-signal/) | Swiss |
+| [MMF](https://www.mmf.de/signal_conditioners.htm) | Germany |
+| [DJB](https://www.djbinstruments.com/products/instrumentation/view/9-Channel-Charge-Voltage-Amplifier-IEPE-Signal-Conditioning-Rack-Mounted) | UK |
+| [MTI Instruments](https://www.mtiinstruments.com/products/turbine-balancing-vibration-analysis/charge-amplifiers/ca1800/) | USA |
+| [Sinocera](http://www.china-yec.net/instruments/signal-conditioner/multi-channels-charge-amplifier.html) | China |
+| [Physimetron](http://www.physimetron.de/produkte_en.html) | Germany |
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” IEEE/ASME Transactions on Mechatronics 15 (3): 433–47. doi:10.1109/tmech.2009.2028422.
+
Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2014. The Design of High Performance Mechatronics - 2nd Revised Edition. Ios Press.
+
diff --git a/content/zettels/collocated_control.md b/content/zettels/collocated_control.md
new file mode 100644
index 0000000..2d6c754
--- /dev/null
+++ b/content/zettels/collocated_control.md
@@ -0,0 +1,43 @@
++++
+title = "Collocated Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Actuators]({{< relref "actuators.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}}), [Position Sensors]({{< relref "position_sensors.md" >}}), [Inertial Sensors]({{< relref "inertial_sensors.md" >}})
+
+
+## Collocated/Dual actuator and sensor {#collocated-dual-actuator-and-sensor}
+
+According to (Preumont 2018):
+
+> A **collocated** control system is a control system where the actuator and the sensor are attached to the same degree of freedom.
+>
+> It is not sufficient to be attached to the same location, but they must also be **dual**, that is a force actuator must be associated with a translation sensor (measuring displacement, velocity, or acceleration), in such a way that the product of the actuator signal and the sensor signal represents the energy (power) exchange between the structure and the control system.
+
+
+## Nearly Collocated Actuator Sensor Pair {#nearly-collocated-actuator-sensor-pair}
+
+From [Figure 1](#figure--fig:preumont18-nearly-collocated-schematic), it is clear that at some frequency / for some mode, the actuator and the sensor will not be collocated anymore (here starting with mode 3).
+
+
+
+{{< figure src="/ox-hugo/preumont18_nearly_collocated_schematic.png" caption="Figure 1: Mode shapes for a uniform beam. \\(u\\) and \\(y\\) are not collocated actuator and sensor" >}}
+
+
+## Piezoelectric Stack as a sensor/actuator pair {#piezoelectric-stack-as-a-sensor-actuator-pair}
+
+One can use on part of a [Piezoelectric Stack]({{< relref "piezoelectric_actuators.md" >}}) as an actuator and the other part as a sensor.
+
+At some frequency, the sensor/actuator pair will not be collocated anymore.
+
+If we want to be collocated up to the highest possible frequency, the sensor part should be made small.
+Of course, this will reduce the sensibility.
+
+
+## Bibliography {#bibliography}
+
+
+
Preumont, A. 2018. Vibration Control of Active Structures - Fourth Edition. Solid Mechanics and Its Applications. Springer International Publishing. doi:10.1007/978-3-319-72296-2.
diff --git a/content/zettels/complementary_filters.md b/content/zettels/complementary_filters.md
new file mode 100644
index 0000000..f10670d
--- /dev/null
+++ b/content/zettels/complementary_filters.md
@@ -0,0 +1,26 @@
++++
+title = "Complementary Filters"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Complementary Filters Synthesis {#complementary-filters-synthesis}
+
+The shaping of complementary filters can be done using the \\(\mathcal{H}\_\infty\\) synthesis (Dehaeze, Verma, and Collette 2019).
+
+
+## First Order complementary filters {#first-order-complementary-filters}
+
+
+## Second Order complementary filters {#second-order-complementary-filters}
+
+
+## Bibliography {#bibliography}
+
+
+
Dehaeze, T., M. Verma, and C. Collette. 2019. “Complementary Filters Shaping Using $H_\Infty$ Synthesis.” In 7th International Conference on Control, Mechatronics and Automation (ICCMA), 459–64. doi:10.1109/ICCMA46720.2019.8988642.
+
diff --git a/content/zettels/connectors.md b/content/zettels/connectors.md
new file mode 100644
index 0000000..f7dbc0b
--- /dev/null
+++ b/content/zettels/connectors.md
@@ -0,0 +1,33 @@
++++
+title = "Connectors"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Cables]({{< relref "cables.md" >}})
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|----------------------------------------------------|-------------|
+| [LEMO](https://www.lemo.com/en) | Switzerland |
+| [Fischer](https://www.fischerconnectors.com/uk/en) | Switzerland |
+| [EDO](https://www.odu-connectors.com/) | Germany |
+
+
+## BNC {#bnc}
+
+BNC connectors can have an impedance of 50Ohms or 75Ohms as shown in [Figure 1](#figure--fig:bnc-50-75-ohms).
+
+
+
+{{< figure src="/ox-hugo/bnc_50_75_ohms.jpg" caption="Figure 1: 75Ohms and 50Ohms BNC connectors" >}}
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/cubic_architecture.md b/content/zettels/cubic_architecture.md
new file mode 100644
index 0000000..2f350ba
--- /dev/null
+++ b/content/zettels/cubic_architecture.md
@@ -0,0 +1,26 @@
++++
+title = "Cubic Architecture"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Description of the Cubic Architecture {#description-of-the-cubic-architecture}
+
+
+## Special Properties {#special-properties}
+
+Cubic Stewart Platforms can be decoupled provided that (from (Chen and McInroy 2000))
+
+> 1. The payload mass-inertia matrix is diagonal
+> 2. If a mutually orthogonal geometry has been selected, the payload's center of mass must coincide with the center of the cube formed by the orthogonal struts.
+
+
+## Bibliography {#bibliography}
+
+
+
Chen, Yixin, and J.E. McInroy. 2000. “Identification and Decoupling Control of Flexure Jointed Hexapods.” In Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065). doi:10.1109/robot.2000.844878.
+
+Decimation is the two-step process of low pass filtering followed by and operation known as downsampling.
+
+
+
+We can downsample a sequence of sampled signal values by a factor of \\(M\\) by retaining every Mth sample and discarding all the remaining samples.
+Relative to the original sample rate \\(f\_{s,\text{old}}\\), the sample rate of the downsampled sequence is:
+
+\begin{equation}
+f\_{s,\text{new}} = \frac{f\_{s,\text{old}}}{M}
+\end{equation}
+
+
+
+For example, assume that an analog sinewave has been sampled to produce \\(x\_{\text{old}}(n)\\).
+The downsampled sequence is:
+\\[ x\_{\text{new}}(m) = x\_{\text{old}}(Nm) \\]
+where \\(M=3\\), the result is shown in [Figure 1](#figure--fig:decimation-example).
+
+
+
+{{< figure src="/ox-hugo/decimation_example.png" caption="Figure 1: Sample rate conversion: (a) original sequence; (b) downsampled by \\(M=3\\) sequence" >}}
+
+
+
+The spectral implications of downsampling are what we should expect as shown in Figure
+
+
+
+{{< figure src="/ox-hugo/decimation_spectral_aliasing.png" caption="Figure 2: Decimation by a factor of three: (a) spectrum of original \\(x\_{\text{old}}(n)\\) signal; (b) spectrum after downsampling by three." >}}
+
+There is a limit to the amount of downsampling that can be performed relative to the bandwidth \\(B\\) of the original signal.
+We must ensure that \\(f\_{s,\text{new}} > 2B\\) to present overlapped spectral replications (aliasing errors) after downsampling.
+
+If a decimation application requires \\(f\_{s,\text{new}}\\) to be less than \\(2B\\), then \\(x\_{\text{old}}(n)\\) must be low pass filtered before the downsampling process if performed.
+
+
+### Two Stage Decimation {#two-stage-decimation}
+
+When the desired decimation factor \\(M\\) is larger, say \\(M > 20\\), there is an important feature of the filter / decimation process to keep in mind.
+Significant low pass filter computational savings may be obtained by implementing the two-stage decimation, shown in [Figure 3](#figure--fig:decimation-two-stages) (b).
+
+
+
+{{< figure src="/ox-hugo/decimation_two_stages.png" caption="Figure 3: Decimation: (a) single-stage; (b) two-stage" >}}
+
+The question is: "Given a desired total downsampling factor \\(M\\), what should be the values of \\(M\_1\\) and \\(M\_2\\) to minimize the number of taps in low-pass filters \\(\text{LPF}\_1\\) and \\(\text{LPF}\_2\\)"?
+
+For two stage decimation, the optimum value for \\(M\_1\\) is:
+
+\begin{equation} \label{eq:M1opt}
+M\_{1,\text{opt}} \approx 2 M \cdot \frac{1 - \sqrt{MF/(2-F)}}{2 - F(M+1)}
+\end{equation}
+
+where \\(F\\) is the ratio of single-stage low pass filter's transition region width to that filter's stop-band frequency:
+
+\begin{equation}
+F = \frac{f\_{\text{stop}} - B^\prime}{f\_{\text{stop}}}
+\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:
+
+\begin{equation} \label{eq:M2\_from\_M1}
+M\_2 = \frac{M}{M\_1}
+\end{equation}
+
+
+
+Let's assume we have an \\(x\_{\text{old}}(n)\\) input signal arriving at a sample rate of \\(400\\,kHz\\), and we must decimate that signal by a factor of \\(M=100\\) to obtain a final sample rate of \\(4\\,kHz\\).
+Also, let's assume the base-band frequency range of interest is from \\(0\\) to \\(B^\prime = 1.8\\,kHz\\), and we want \\(60\\,dB\\) of filter stop-band attenuation.
+A single stage decimation low-pass filter's frequency response is shown in [Figure 4](#figure--fig:decimation-two-stage-example) (a).
+The number of taps \\(N\\) required for a single-stage decimation would be:
+
+\begin{equation}
+N = \frac{\text{Atten}}{22 (f\_{\text{stop}} - f\_{\text{pass}})} = \frac{60}{22(2.2/400 - 1.8/400)} = 2727
+\end{equation}
+
+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.
+With \\(M = 100\\), \\(F = (2200-1800)/2200\\), Eq. \ref{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\\).
+Next, from Eq. \ref{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 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 total number of required taps is:
+
+\begin{equation}
+N\_{\text{total}} = N\_{\text{LPF}\_1} + N\_{\text{LPF}\_2} = \frac{60}{22(14.2/400-1.8/400)} + \frac{60}{22(2.2/16 - 1.8/16)} \approx 197
+\end{equation}
+
+Which is much more efficient that the single stage decimation.
+
+
+
+{{< figure src="/ox-hugo/decimation_two_stage_example.png" caption="Figure 4: Two stage decimation: (a) single-stage filter response; (b): decimation by 100; (c) spectrum of original signal; (d) output spectrum of the \\(M=25\\) down-sampler; (e) output spectrum of the \\(M=4\\) down-sampler." >}}
+
+
+
+There are two **practical issues** to consider for two-stage decimation:
+
+- First, if the dual-filter system is required to have a pass-band peak-peak ripple of \\(R\\) dB, then both filters must be designed to have a pass-band peak-peak ripple of no greater than \\(R/2\\) dB.
+- Second, the number of multiplications needed to compute each \\(x\_{\text{new}}(m)\\) output sample is much larger than \\(N\_\text{total}\\) because we must compute so many \\(\text{LPF}\_1\\) and \\(\text{LPF}\_2\\) output samples destined to be discarded.
+
+In order to cope with the second issue, an efficient decimation filter implementation scheme called _polyphase decomposition_ can be used.
+
+The advantages of two stage decimation, over single-stage decimation are:
+
+
+
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.
+
+
+### References: {#references}
+
+(Lyons 2011)
+
+
+## Bibliography {#bibliography}
+
+
+
Lyons, Richard. 2011. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall.
diff --git a/content/zettels/differential_pairs.md b/content/zettels/differential_pairs.md
new file mode 100644
index 0000000..06d1df3
--- /dev/null
+++ b/content/zettels/differential_pairs.md
@@ -0,0 +1,21 @@
++++
+title = "Differential Pairs"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Resources {#resources}
+
+
+
+> One of the main reasons that differential pairs are used whether is between systems, whether is between boards and a system, or whether is across a circuit board, is so that the circuit will ignore offset in ground.
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/digital_filters.md b/content/zettels/digital_filters.md
new file mode 100644
index 0000000..a48242f
--- /dev/null
+++ b/content/zettels/digital_filters.md
@@ -0,0 +1,90 @@
++++
+title = "Digital Filters"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+A nice open access book on digital filter is accessible here:
+
+
+## Analog to Digital Filter {#analog-to-digital-filter}
+
+In order to convert an analog filter (Laplace domain) to a digital filter (z-domain), the `c2d` command can be used ([doc](https://fr.mathworks.com/help/control/ref/lti.c2d.html)).
+
+
+
+Let's define a simple first order low pass filter in the Laplace domain:
+
+```matlab
+s = tf('s');
+G = 1/(1 + s/(2*pi*10));
+```
+
+To obtain the equivalent digital filter:
+
+```matlab
+Ts = 1e-3; % Sampling Time [s]
+Gz = c2d(G, Ts, 'tustin');
+```
+
+
+
+There are several methods to go from the analog to the digital domain, `Tustin` is the one I use the most as it ensures the stability of the digital filter provided that the analog filter is stable.
+
+
+## Bilinear transform {#bilinear-transform}
+
+The bilinear transform also known as the Tustin's method (see the [wikipedia page](https://en.wikipedia.org/wiki/Bilinear_transform)) is used to convert a continuous-time system representations to discrete-time.
+
+It uses the fact that \\(z = e^{sT} \approx \frac{1 + sT/2}{1-sT/2}\\).
+
+To go from the Laplace domain to the z-domain, we just have to use the following approximation:
+
+\begin{equation}
+\boxed{s \approx \frac{2}{T\_s} \frac{z - 1} {z + 1} = \frac{2}{T\_s}\frac{1 - z^{-1}}{1 + z^{-1}}}
+\end{equation}
+
+
+## Standard Digital Filters {#standard-digital-filters}
+
+
+### First order low pass filter {#first-order-low-pass-filter}
+
+\begin{equation}
+G(s) = \frac{1}{1 + s/\omega\_0}
+\end{equation}
+
+Using the bilinear transform, we obtain:
+
+\begin{equation}
+G(z) = \frac{a(1 + z^{-1})}{1 + b z^{-1}}
+\end{equation}
+
+with:
+
+\begin{align}
+a &= \frac{2}{T\_s\omega\_0} + 1\\\\
+b &= \frac{2}{T\_s\omega\_0} - 1
+\end{align}
+
+If we want to compute how the filter output \\(y[n]\\) depends on previous output \\(y[n-1]\\), previous input \\(x[n-1]\\) and current input \\(x[n]\\) we can write:
+
+\begin{equation}
+y[n] = G(z) x[n]
+\end{equation}
+
+By developing the relation and using the fact that \\(z^{-1} x[n] = x[n-1]\\), we obtain:
+
+\begin{align}
+y[n] &= a (x[n] + x[n-1]) + b y[n-1] \\\\
+ &= \left( \frac{2}{T\_s \omega\_0} + 1 \right) (x[n] + x[n-1]) + \left(\frac{2}{T\_s\omega\_0} - 1\right) y[n-1]
+\end{align}
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/discrete_transfer_functions.md b/content/zettels/discrete_transfer_functions.md
new file mode 100644
index 0000000..bd655c7
--- /dev/null
+++ b/content/zettels/discrete_transfer_functions.md
@@ -0,0 +1,316 @@
++++
+title = "Discrete Transfer Functions"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Digital Filters]({{< relref "digital_filters.md" >}})
+
+
+## Continuous to discrete transfer function {#continuous-to-discrete-transfer-function}
+
+In order to convert an analog filter (Laplace domain) to a digital filter (z-domain), the `c2d` command can be used ([doc](https://fr.mathworks.com/help/control/ref/lti.c2d.html)).
+
+
+
+Let's define a simple first order low pass filter in the Laplace domain:
+
+```matlab
+s = tf('s');
+G = 1/(1 + s/(2*pi*10));
+```
+
+To obtain the equivalent digital filter:
+
+```matlab
+Ts = 1e-3; % Sampling Time [s]
+Gz = c2d(G, Ts, 'tustin');
+```
+
+
+
+There are several methods to go from the analog to the digital domain, `Tustin` is the one I use the most as it ensures the stability of the digital filter provided that the analog filter is stable.
+
+
+## Obtaining analytical formula of filter {#obtaining-analytical-formula-of-filter}
+
+
+### Procedure {#procedure}
+
+The Matlab [Symbolic Toolbox](https://fr.mathworks.com/help/symbolic/) can be used to obtain analytical formula for discrete transfer functions.
+
+Let's consider a notch filter:
+
+\begin{equation}
+ G(s) = \frac{s^2 + 2 g\_c \xi \omega\_n s + \omega\_n^2}{s^2 + 2 \xi \omega\_n s + \omega\_n^2}
+\end{equation}
+
+with:
+
+- \\(\omega\_n\\): frequency of the notch
+- \\(g\_c\\): gain at the notch frequency
+- \\(\xi\\): damping ratio (notch width)
+
+First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
+
+```matlab
+%% Declaration of the symbolic variables
+syms gc wn xi Ts s z
+```
+
+Then the bi-linear transformation is performed to go from continuous to discrete:
+
+```matlab
+%% Bilinear Transform
+s = 2/Ts*(z - 1)/(z + 1);
+```
+
+The symbolic formula of the notch filter is defined:
+
+```matlab
+%% Notch Filter - Symbolic representation
+Ga = (s^2 + 2*xi*gc*s*wn + wn^2)/(s^2 + 2*xi*s*wn + wn^2);
+```
+
+Finally, the numerator and denominator coefficients can be extracted:
+
+```matlab
+%% Get numerator and denominator
+[N,D] = numden(Ga);
+
+%% Extract coefficients (from z^0 to z^n)
+num = coeffs(N, z);
+den = coeffs(D, z);
+```
+
+```text
+org_babel_eoe
+```
+
+```text
+den = (Ts^2*wn^2 - 4*Ts*wn*xi + 4) + (2*Ts^2*wn^2 - 8) * z + (Ts^2*wn^2 + 4*Ts*wn*xi + 4) * z^2
+```
+
+
+### Second Order Low Pass Filter {#second-order-low-pass-filter}
+
+Let's consider a second order low pass filter:
+
+\begin{equation}
+ G(s) = \frac{1}{1 + 2 \xi \frac{s}{\omega\_n} + \frac{s^2}{\omega\_n^2}}
+\end{equation}
+
+with:
+
+- \\(\omega\_n\\): Cut off frequency
+- \\(\xi\\): damping ratio
+
+First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
+
+```matlab
+%% Declaration of the symbolic variables
+syms wn xi Ts s z
+```
+
+Then the bi-linear transformation is performed to go from continuous to discrete:
+
+```matlab
+%% Bilinear Transform
+s = 2/Ts*(z - 1)/(z + 1);
+```
+
+The symbolic formula of the notch filter is defined:
+
+```matlab
+%% Second Order Low Pass Filter - Symbolic representation
+Ga = 1/(1 + 2*xi*s/wn + s^2/wn^2);
+```
+
+Finally, the numerator and denominator coefficients can be extracted:
+
+```matlab
+%% Get numerator and denominator
+[N,D] = numden(Ga);
+
+%% Extract coefficients (from z^0 to z^n)
+num = coeffs(N, z);
+den = coeffs(D, z);
+```
+
+```text
+gain = 1/(Ts^2*wn^2 + 4*Ts*wn*xi + 4)
+```
+
+```text
+num = (Ts^2*wn^2) + (2*Ts^2*wn^2) * z^-1 + (Ts^2*wn^2) * z^-2
+```
+
+```text
+den = 1 + (2*Ts^2*wn^2 - 8) * z^-1 + (Ts^2*wn^2 - 4*Ts*wn*xi + 4) * z^-2
+```
+
+And the transfer function is equal to `gain * num/den`.
+
+
+### Second Order Low Pass Filter {#second-order-low-pass-filter}
+
+Let's consider a second order low pass filter:
+
+\begin{equation}
+ G(s) = \frac{g}{ms^2 + cs + k}
+\end{equation}
+
+First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
+
+```matlab
+%% Declaration of the symbolic variables
+syms Ts g m c k s z
+```
+
+Then the bi-linear transformation is performed to go from continuous to discrete:
+
+```matlab
+%% Bilinear Transform
+s = 2/Ts*(z - 1)/(z + 1);
+```
+
+The symbolic formula of the notch filter is defined:
+
+```matlab
+%% Second Order Low Pass Filter - Symbolic representation
+Ga = g/(m*s^2 + c*s + k)
+```
+
+Finally, the numerator and denominator coefficients can be extracted:
+
+```matlab
+%% Get numerator and denominator
+[N,D] = numden(Ga);
+
+%% Extract coefficients (from z^0 to z^n)
+num = coeffs(N, z);
+den = coeffs(D, z);
+```
+
+```text
+gain = 1/(4*m + 2*Ts*c + Ts^2*k)
+```
+
+```text
+num = (Ts^2*g) + (2*Ts^2*g) * z^-1 + (Ts^2*g) * z^-2
+```
+
+```text
+den = 1 + (2*Ts^2*k - 8*m) * z^-1 + (4*m - 2*Ts*c + Ts^2*k) * z^-2
+```
+
+And the transfer function is equal to `gain * num/den`.
+
+
+### Second Order High Pass Filter {#second-order-high-pass-filter}
+
+Let's consider a second order low pass filter:
+
+\begin{equation}
+ G(s) = \frac{1}{1 + 2 \xi \frac{s}{\omega\_n} + \frac{s^2}{\omega\_n^2}}
+\end{equation}
+
+with:
+
+- \\(\omega\_n\\): Cut off frequency
+- \\(\xi\\): damping ratio
+
+First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
+
+```matlab
+%% Declaration of the symbolic variables
+syms wn xi Ts s z
+```
+
+Then the bi-linear transformation is performed to go from continuous to discrete:
+
+```matlab
+%% Bilinear Transform
+s = 2/Ts*(z - 1)/(z + 1);
+```
+
+The symbolic formula of the notch filter is defined:
+
+```matlab
+%% Second Order Low Pass Filter - Symbolic representation
+Ga = (s^2/wn^2)/(1 + 2*xi*s/wn + s^2/wn^2);
+```
+
+Finally, the numerator and denominator coefficients can be extracted:
+
+```matlab
+%% Get numerator and denominator
+[N,D] = numden(Ga);
+
+%% Extract coefficients (from z^0 to z^n)
+num = coeffs(N, z);
+den = coeffs(D, z);
+```
+
+```text
+gain = 1/(Ts^2*wn^2 + 4*Ts*wn*xi + 4)
+```
+
+```text
+num = (4) + (-8) * z^-1 + (4) * z^-2
+```
+
+```text
+den = 1 + (2*Ts^2*wn^2 - 8) * z^-1 + (Ts^2*wn^2 - 4*Ts*wn*xi + 4) * z^-2
+```
+
+And the transfer function is equal to `gain * num/den`.
+
+
+## Variable Discrete Filter {#variable-discrete-filter}
+
+Once the analytical formula of a discrete transfer function is obtained, it is possible to vary some parameters in real time.
+
+This is easily done in Simulink (see [Figure 1](#figure--fig:variable-controller-simulink)) where a `Discrete Varying Transfer Function` block is used.
+The coefficients are simply computed with a Matlab function.
+
+
+
+{{< figure src="/ox-hugo/variable_controller_simulink.png" caption="Figure 1: Variable Discrete Filter in Simulink" >}}
+
+
+## Typical Transfer functions {#typical-transfer-functions}
+
+
+### Delay {#delay}
+
+
+### First Order Low Pass {#first-order-low-pass}
+
+
+### First Order High Pass {#first-order-high-pass}
+
+
+### Integrator {#integrator}
+
+
+### Derivator {#derivator}
+
+
+### Second Order Low Pass {#second-order-low-pass}
+
+
+### PID {#pid}
+
+
+### Notch {#notch}
+
+
+### Moving Average {#moving-average}
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/dynamic_error_budgeting.md b/content/zettels/dynamic_error_budgeting.md
new file mode 100644
index 0000000..8cb2631
--- /dev/null
+++ b/content/zettels/dynamic_error_budgeting.md
@@ -0,0 +1,33 @@
++++
+title = "Dynamic Error Budgeting"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+A good introduction to Dynamic Error Budgeting is given in (Monkhorst 2004).
+
+
+## Step by Step process {#step-by-step-process}
+
+Taken from (Monkhorst 2004): ([Notes]({{< relref "monkhorst04_dynam_error_budget.md" >}}))
+
+> Step by step, the process is as follows:
+>
+> - design a concept system
+> - model the concept system, such that the closed loop transfer functions can be determined
+> - Identify all significant disturbances.
+> Model them with their _Power Spectral Density_
+> - Define the performance outputs of the system and simulate the output error.
+> Using the theory of _propagation_, the contribution of each disturbance to the output error can be analyzed and the critical disturbance can be pointed out
+> - Make changes to the system that are expected to improve the performance level, and simulate the output error again.
+> Iterate until the error budget is meet.
+
+
+## Bibliography {#bibliography}
+
+
+
Monkhorst, W. 2004. “Dynamic Error Budgeting, a Design Approach.” Delft University.
+
diff --git a/content/zettels/eddy_current_damping.md b/content/zettels/eddy_current_damping.md
new file mode 100644
index 0000000..01a5b35
--- /dev/null
+++ b/content/zettels/eddy_current_damping.md
@@ -0,0 +1,110 @@
++++
+title = "Eddy Current Damping"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Passive Damping]({{< relref "passive_damping.md" >}})
+
+
+
+
+## Vacuum compatible magnets {#vacuum-compatible-magnets}
+
+
+
+
+## Estimate the damping {#estimate-the-damping}
+
+
+### Formulas {#formulas}
+
+From (Zuo 2004):
+The empirical formula for damping coefficient (Ns/m) of an eddy current damper is:
+
+\begin{equation} \label{eq:damping\_formula}
+C = C\_0 B^2 t A \sigma
+\end{equation}
+
+with:
+
+- \\(B\\) is the magnetic flux density in [T] or in [Vs/m2]
+- \\(t\\) is the thickness of the conductor plate in [m]
+- \\(A\\) is the area of the conductor intersected by the magnetic field in [m2]
+- \\(\sigma\\) is the electrical conductivity of the conductor material [S/m]
+- \\(C\_0\\) is a dimensionless coefficient to account for the shapes and sizes of the conductor and magnetic 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.
+
+From \ref{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 thickness \\(t\\) of the conductor. However due to **skin depth effect**, the benefit of increasing the thickness is limited.
+ The apparent conductivity \\(\sigma\_e\\) is:
+
+ \begin{equation}
+ \sigma\_e = \frac{2\delta\_s}{t}(1 - e^{-\frac{t}{2\delta\_s}})\sigma
+ \end{equation}
+
+ where \\(\delta\_s\\) is the skin depth in [m] of the conductor with permeability \\(\mu\\) in [H/m] at frequency \\(f\\) in [Hz]:
+
+ \begin{equation}
+ \delta\_s = \sqrt{\frac{2}{2 \pi f \cdot \mu \cdot \sigma}}
+ \end{equation}
+
+An eddy current damper is developed in (Zuo 2004).
+The magnets have alternating poles to optimize the eddy current damping (stronger varying magnetic field).
+See [Figure 1](#figure--fig:zuo04-eddy-current-magnets) and [Figure 2](#figure--fig:zuo04-eddy-current-setup).
+
+
+
+{{< figure src="/ox-hugo/zuo04_eddy_current_magnets.png" caption="Figure 1: (left) Magnetic field and conductor plates assemblies, (right) magnet arrays" >}}
+
+
+
+{{< figure src="/ox-hugo/zuo04_eddy_current_setup.png" caption="Figure 2: Single DoF system damped by eddy current damper" >}}
+
+
+### Numerical Simulation {#numerical-simulation}
+
+It is possible to estimate that with FEM simulation:
+
+An approximation is done bellow.
+
+```matlab
+B = 1.0; % Magnetic Flux Density [T]
+t = 5e-3; % Thickness [m]
+A = 50e-3*50e-3; % Area [m2]
+sigma = 6e7; % Copper conductivity [S/m]
+C0 = 0.5; % [-]
+```
+
+```matlab
+C = C0*B^2*t*A*sigma; % Damping in [N/(m/s)]
+```
+
+```text
+C = 375 [N/(m/s)]
+```
+
+```matlab
+m = 10; % [kg]
+k = m*(2*pi*10)^2; % [N/m]
+```
+
+```matlab
+xi = 1/2*C/sqrt(k*m);
+```
+
+```text
+xi = 0.298
+```
+
+
+## Bibliography {#bibliography}
+
+
+
Zuo, Lei. 2004. “Element and System Design for Active and Passive Vibration Isolation.” Massachusetts Institute of Technology.
diff --git a/content/zettels/electromagnetism.md b/content/zettels/electromagnetism.md
new file mode 100644
index 0000000..6a2f576
--- /dev/null
+++ b/content/zettels/electromagnetism.md
@@ -0,0 +1,49 @@
++++
+title = "Electromagnetism"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Maxwell equations for magnetics {#maxwell-equations-for-magnetics}
+
+
+### Gauss law {#gauss-law}
+
+"Magnetic fieldlines are closed loop."
+
+\begin{equation}
+\oiint\_S (\bm{B} \cdot \hat{\bm{n}}) dS = 0
+\end{equation}
+
+
+### Faraday's law {#faraday-s-law}
+
+A changing magnetic field causes an electric field over a wire
+
+\begin{equation}
+\oint\_L \bm{E} \cdot d\bm{l} = -\frac{d}{dt} \iint\_S(\bm{B} \cdot \bm{n}) dS
+\end{equation}
+
+The line-integral of the electrical field over a closed loop L equals the change of the field through the open surface S bounded by the loop L.
+This is a voltage source (EMF), where the current is driven in the direction of the electric field.
+
+
+### Ampère's law {#ampère-s-law}
+
+"Current through a wire gives a magnetic field".
+
+\begin{equation}
+\oint\_L \bm{B} \cdot dl = \mu\_0 I
+\end{equation}
+
+The line integral of the magnetic field over a closed loop L is proportional to the current through the surface S enclosed by the loop L.
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/electronic_active_filters.md b/content/zettels/electronic_active_filters.md
new file mode 100644
index 0000000..bcfb0dc
--- /dev/null
+++ b/content/zettels/electronic_active_filters.md
@@ -0,0 +1,55 @@
++++
+title = "Electronic Active Filters"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Operational Amplifiers]({{< relref "operational_amplifiers.md" >}})
+
+
+## Second Order Low Pass Filter {#second-order-low-pass-filter}
+
+\begin{equation}
+ \frac{V\_o}{V\_i}(s) = \frac{1}{R^2 C\_1 C\_2 s^2 + 2 R C\_2 s + 1}
+\end{equation}
+
+\begin{equation}
+ \frac{V\_o}{V\_i}(s) = \frac{1}{\frac{s^2}{\omega\_0^2} + 2 \xi \frac{s}{\omega\_0} + 1}
+\end{equation}
+
+With:
+
+- \\(\omega\_0 = \frac{1}{R\sqrt{C\_1 C\_2}}\\)
+- \\(\xi = \frac{C\_2}{C\_1}\\)
+
+The input impedance is \\(V\_i/i\_i\\).
+
+
+
+{{< figure src="/ox-hugo/analog_act_filt_second_order_lpf.png" caption="Figure 1: Second Order Low Pass Filter" >}}
+
+
+## Second Order High Pass Filter {#second-order-high-pass-filter}
+
+Same as [Figure 1](#figure--fig:analog-act-filt-second-order-lpf) but by exchanging R1 with C1 and R2 with C2
+
+\begin{equation}
+ \frac{V\_o}{V\_i}(s) = \frac{R^2 C\_1 C\_2 s^2}{R^2 C\_1 C\_2 s^2 + 2 R C\_2 s + 1}
+\end{equation}
+
+With:
+
+- \\(\omega\_0 = \frac{1}{R\sqrt{C\_1 C\_2}}\\)
+- \\(\xi = \frac{C\_2}{C\_1}\\)
+
+
+## PID controller {#pid-controller}
+
+See [The design of high performance mechatronics - third revised edition]({{< relref "schmidt20_desig_high_perfor_mechat_third_revis_edition.md" >}}) (Chapter 6.2.6).
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/electronic_noise.md b/content/zettels/electronic_noise.md
new file mode 100644
index 0000000..3ed0d87
--- /dev/null
+++ b/content/zettels/electronic_noise.md
@@ -0,0 +1,77 @@
++++
+title = "Electronic Noise"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}}), [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
+
+
+## Thermal (Johnson) Noise {#thermal--johnson--noise}
+
+Thermal noise is generated by the thermal agitation of the electrons inside the electrical conductor.
+Its Power Spectral Density is equal to:
+
+\begin{equation}
+S\_T \approx 4 k T \text{Re}(Z(f)) \quad [V^2/Hz]
+\end{equation}
+
+with:
+with \\(k = 1.38 \cdot 10^{-23} \\,[J/K]\\) the Boltzmann's constant, \\(T\\) the temperature [K] and \\(Z(f)\\) the frequency dependent impedance of the system.
+
+This noise can be modeled as a voltage source in series with the system impedance.
+
+| Resistance | PSD \\([V^2 / Hz]\\) | ASD \\([V/\sqrt{Hz}]\\) | RMS (1kHz) | RMS (10kHz) |
+|-----------------|--------------------------|--------------------------|------------|-------------|
+| \\(1 \Omega\\) | \\(1.6 \cdot 10^{-20}\\) | \\(1.2 \cdot 10^{-10}\\) | 4nV | 130nV |
+| \\(1 k\Omega\\) | \\(1.6 \cdot 10^{-17}\\) | \\(4 \cdot 10^{-9}\\) | 130nV | 4uV |
+| \\(1 M\Omega\\) | \\(1.6 \cdot 10^{-14}\\) | \\(1.2 \cdot 10^{-7}\\) | 4uV | 130uV |
+
+
+## Shot Noise {#shot-noise}
+
+Seen with junctions in a transistor.
+It has a white spectral density:
+
+\begin{equation}
+S\_S = 2 q\_e i\_{dc} \ [A^2/Hz]
+\end{equation}
+
+with \\(q\_e\\) the electronic charge (\\(1.6 \cdot 10^{-19}\\, [C]\\)), \\(i\_{dc}\\) the average current [A].
+
+
+
+A current of 1 A will introduce noise with a STD of \\(10 \cdot 10^{-9}\\,[A]\\) from zero up to one kHz.
+
+
+
+
+## Excess Noise (or \\(1/f\\) noise) {#excess-noise--or-1-f-noise}
+
+It results from fluctuating conductivity due to imperfect contact between two materials.
+The PSD of excess noise increases when the frequency decreases:
+\\[ S\_E = \frac{K\_f}{f^\alpha}\ [V^2/Hz] \\]
+where \\(K\_f\\) is dependent on the average voltage drop over the resistor and the index \\(\alpha\\) is usually between 0.8 and 1.4, and often set to unity for approximate calculation.
+
+
+## Noise of Amplifiers {#noise-of-amplifiers}
+
+The noise of amplifiers can be modelled as shown in [Figure 1](#figure--fig:electronic-amplifier-noise).
+
+
+
+{{< figure src="/ox-hugo/electronic_amplifier_noise.png" caption="Figure 1: Amplifier noise model" >}}
+
+The identification of this noise is a two steps process:
+
+1. The amplifier input is short-circuited such that only \\(V^2(f)\\) has an impact on the output.
+ The output noise is measured and \\(V^2\\) in \\([V^2/Hz]\\) is identified
+2. The amplifier input is open-circuited such that only \\(I^2(f)\\) has an impact on the output.
+ The output noise is measured and \\(I^2(f)\\) in \\([A^2/Hz]\\) is identified.
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/electronic_passive_filters.md b/content/zettels/electronic_passive_filters.md
new file mode 100644
index 0000000..5acb36c
--- /dev/null
+++ b/content/zettels/electronic_passive_filters.md
@@ -0,0 +1,112 @@
++++
+title = "Electronic Passive Filters"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## First Order Low Pass Filter {#first-order-low-pass-filter}
+
+
+
+{{< figure src="/ox-hugo/analog_filt_first_order_lpf.png" caption="Figure 1: First Order Low Pass Filter using an RC circuit" >}}
+
+\begin{equation}
+\boxed{\frac{V\_o}{V\_i}(s) = \frac{1}{1 + \frac{s}{\omega\_0}}, \quad \omega\_0 = \frac{1}{RC}}
+\end{equation}
+
+\begin{equation}
+Z\_f(s) = \frac{V\_i}{i\_i}(s) = \frac{1 + RC \cdot s}{C \cdot s}
+\end{equation}
+
+```matlab
+%% First Order Low Pass Filter
+R = 1e3; % [Ohm]
+C = 1e-6; % [F]
+```
+
+```matlab
+G = 1/(1 + R*C*s); % Filter Transfer Function
+Z = (1 + R*C*s)/(C*s); % Filter Impedance
+```
+
+
+
+{{< figure src="/ox-hugo/analog_filt_first_order_lpf_characteristics.png" caption="Figure 2: First Order Low Pass Filter - Filter transfer function and filter impedance" >}}
+
+
+## First Order High Pass Filter {#first-order-high-pass-filter}
+
+
+
+{{< figure src="/ox-hugo/analog_filt_first_order_hpf.png" caption="Figure 3: First Order High Pass Filter using an RC circuit" >}}
+
+\begin{equation}
+\boxed{\frac{V\_o}{V\_i}(s) = \frac{\frac{s}{\omega\_0}}{1 + \frac{s}{\omega\_0}}, \quad \omega\_0 = \frac{1}{RC}}
+\end{equation}
+
+\begin{equation}
+Z\_f(s) = \frac{V\_i}{i\_i}(s) = \frac{1 + RC \cdot s}{C \cdot s}
+\end{equation}
+
+```matlab
+%% First Order High Pass Filter
+R = 1e3; % [Ohm]
+C = 1e-6; % [F]
+```
+
+```matlab
+G = R*C*s/(1 + R*C*s); % Filter Transfer Function
+Z = (1 + R*C*s)/(C*s); % Filter Impedance
+```
+
+
+
+{{< figure src="/ox-hugo/analog_filt_first_order_hpf_characteristics.png" caption="Figure 4: First Order High Pass Filter - Filter transfer function and filter impedance" >}}
+
+
+## Second Order Low Pass Filter {#second-order-low-pass-filter}
+
+
+
+{{< figure src="/ox-hugo/analog_filt_second_order_lpf.png" caption="Figure 5: Second Order Low Pass Filter using an RLC circuit" >}}
+
+\begin{equation}
+\boxed{\frac{V\_o}{V\_i}(s) = \frac{1}{1 + 2 \xi \frac{s}{\omega\_0} + \frac{s^2}{\omega\_0^2}}, \quad \omega\_0 = \frac{1}{\sqrt{LC}},\quad \xi = \frac{1}{2R\sqrt{LC}}}
+\end{equation}
+
+\begin{equation}
+Z\_f(s) = \frac{V\_i}{i\_i}(s) = L \cdot s + \frac{R}{1 + RC \cdot s}
+\end{equation}
+
+```matlab
+%% Second Order Low Pass Filter
+R = 1e2; % [Ohm]
+C = 1e-5; % [F]
+L = 1e-2; % [H]
+```
+
+```matlab
+G = 1/(1 + L/R*s + C*L*s^2); % Filter Transfer Function
+Z = L*s + (R)/(1 + R*C*s); % Filter Impedance
+```
+
+
+
+{{< figure src="/ox-hugo/analog_filt_second_order_lpf_characteristics.png" caption="Figure 6: Second Order Low Pass Filter - Filter transfer function and filter impedance" >}}
+
+
+## Second Order High Pass Filter {#second-order-high-pass-filter}
+
+
+
+{{< figure src="/ox-hugo/analog_filt_second_order_hpf.png" caption="Figure 7: Second Order High Pass Filter using an RLC circuit" >}}
+
+
+## Bibliography {#bibliography}
+
+
Robert, Jérémy, Jean-Philippe Georges, Eric Rondeau, and Thierry Divoux. 2012. “Minimum Cycle Time Analysis of Ethernet-Based Real-Time protocols.” International Journal of Computers, Communications and Control 7 (4). Agora University of Oradea: 743–57. https://hal.archives-ouvertes.fr/hal-00714560.
+
diff --git a/content/zettels/extremum_seeking_control.md b/content/zettels/extremum_seeking_control.md
new file mode 100644
index 0000000..f50ced9
--- /dev/null
+++ b/content/zettels/extremum_seeking_control.md
@@ -0,0 +1,194 @@
++++
+title = "Extremum Seeking Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Nonlinear Control]({{< relref "nonlinear_control.md" >}})
+
+The idea behind "Extremum Seeking Control" is to use a controlled signal \\(u\\) to explore the relation \\(y(u)\\), estimate its gradient and find its minimum or maximum.
+This relation should be convex or concave for the architecture to work properly.
+
+See (Tan et al. 2010) for a good overview.
+
+
+## Control Architecture {#control-architecture}
+
+There are many extremum seeking control architectures.
+One of the simplest one is shown in [Figure 1](#figure--fig:extremum-seeking-control-architecture).
+
+```latex
+\begin{tikzpicture}[
+ triangle/.style = {regular polygon, regular polygon sides=3},
+ right/.style = {shape border rotate=-90},
+ left/.style = {shape border rotate=90},
+ top/.style = {shape border rotate=0}
+ bottom/.style = {shape border rotate=180}
+ ]
+ % Extremum Seeking
+ \node[draw, minimum width=10cm,minimum height=4.2cm, dashed, label=Extremum Seeking Control] (extremum) at (0, 0) {};
+ \begin{scope}[shift={(-2.3, 0.7)}]
+ \node[draw, label=Adapt] (Adapt) at (0, 0) {$\displaystyle\frac{1}{A_p}\frac{K_I}{s}$};
+ \node[draw, label=LPF] (LPF) at (2, 0) {$\displaystyle\frac{1}{s/\omega_{L} + 1}$};
+ \node[addb={\times}{}{}{}{}] (multiply) at (4, 0) {};
+ \node[draw, label=HPF] (HPF) at (6, 0) {$\displaystyle\frac{s/\omega_{H}}{s/\omega_{H} + 1}$};
+ \node[addb={+}{}{}{}{}] (add) at (-2, 0) {};
+ \node[draw, triangle, left, inner sep=0pt] (gain_a) at (1, -2) {$A_p$};
+
+ \node[] (sinus) at (4, -2) {$\sin(\omega_p t)$};
+
+ \draw[<-] (add) -- node[above]{$\overline{u}$} (Adapt);
+ \draw[<-] (Adapt) -- node[above left]{} (LPF);
+ \draw[<-] (LPF) -- node[above left]{} (multiply);
+ \draw[<-] (multiply) -- node[above left]{} (HPF);
+ \draw[<-] (multiply) -- node[above right]{} (sinus);
+ \draw[<-] (gain_a) -- node[above left]{} (sinus);
+ \draw[<-] (add) -- node[above right]{$du$} (-2, -2) -- (gain_a);
+ \end{scope}
+
+ % Système
+ \node[draw, fill=black!20!white, minimum width=10cm,minimum height=3cm, label=System] (system) at (0, 4.5) {};
+ \begin{scope}[shift={(-2.5, 0.6)}]
+ % AC function of C_phi
+ \draw[domain=-1.5:1.5, shift={(2.5, 3)}] plot (2*\x, 0.8*\x*\x);
+ % Axes of plot
+ \draw[->] (-1, 2.8) -- (6, 2.8) node[above right]{$u$};
+ \draw[->] (-0.9, 2.7) -- (-0.9, 5) node[below left]{$y$};
+ \end{scope}
+
+ % Connections
+ \draw[<-] (system.west) node[above left](command){$u$} -- ++(-0.7, 0) |- (add);
+ \draw[->] (system.east) node[above right](measure){$y$} -- ++(0.7, 0) |- (HPF);
+\end{tikzpicture}
+```
+
+
+
+{{< figure src="/ox-hugo/extremum_seeking_control_architecture.png" caption="Figure 1: Extremum seeking control algorithm" >}}
+
+Its working principle is schematically shown in [Figure 2](#figure--fig:extremum-seeking-control-non-minimum) and [Figure 3](#figure--fig:extremum-seeking-control-minimum).
+
+```latex
+\begin{tikzpicture}
+ % AC function of phi0
+ \draw[domain=-2:2] plot (\x, \x*\x);
+ % Axes of plot
+ \draw[->, >=latex] (-2.5 ,-0.5) -- (2.5, -0.5) node[below]{$u$};
+ \draw[->, >=latex] (-2.4 ,-0.6) -- (-2.4, 4.5) node[left]{$y$};
+
+ % Perturbation Signal
+ \draw[domain=-pi/2:pi/2, shift={(1, -1.5)}, rotate=90, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
+ % Legend of perturbation Signal
+ \node[align=center] (pert_signal) at (-2, -1.8) {$\overline{u}$\\[-0.4em]+\\[-0.4em]$A_p\sin(\omega_p t)$};
+ \draw[<-, >=latex, dashed] ($(pert_signal.east)+(1.0, 0)$) -- ++(-1.5, 0);
+
+ % Dashed lines to show limits of the signals
+ \draw[dashed] (1.0, -3.2) -- ($(1.0, 1.0*1.0)$) -- ($(4.0, 1.0*1.0)$);
+ \draw[dashed] (0.5, -3.2) -- ($(0.5, 0.5*0.5)$) -- ($(8.0, 0.5*0.5)$);
+ \draw[dashed] (1.5, -3.2) -- ($(1.5, 1.5*1.5)$) -- ($(8.0, 1.5*1.5)$);
+
+ \begin{scope}[shift={(-0.5, 0)}]
+ % Image of the perturbation signal on AC
+ \draw[domain=-pi/2:pi/2, shift={(6, 0)}, samples=200] plot (\x,{(1+0.5*sin(4*deg(\x)))^2});
+ \draw[->, >=latex] (4, 1) -- (8, 1) node[below]{$t$};
+ \draw[->, >=latex] (4.1, 0.9) -- (4.1, 1.5*1.5+0.4) node[left]{$y$};
+
+ % Sinus omega_p
+ \draw[domain=-pi/2:pi/2, shift={(6, 4)}, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
+ \draw[->, >=latex] (4, 4) -- (8, 4) node[below]{$t$};
+ \draw[->, >=latex] (4.1, 3.75) -- (4.1, 4.5) node[left]{$\sin(\omega_p t)$};
+
+ % Product of the sinus and the AC Command
+ \draw[domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] plot (\x,{0.5*sin(4*deg(\x))*(1+0.5*sin(4*deg(\x)))^2});
+ \draw[->, >=latex] (4,-2.5) -- (8, -2.5) node[below]{$t$};
+ \filldraw[fill=gray!20] (4,-2.5) -- plot [domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] (\x,{0.5*sin(4*deg(\x))*(1+0.5*sin(4*deg(\x)))^2}) -- cycle;
+ \draw[->, >=latex] (4.1,-2.6) -- (4.1, -1.0) node[left]{$ $};
+
+ % Multiply and equal signs
+ \node[addb={\times}{}{}{}{}] at (6, 3) {};
+ \node[addb={=}{}{}{}{}] at (6, -0.6) {};
+ \end{scope}
+\end{tikzpicture}
+```
+
+
+
+{{< figure src="/ox-hugo/extremum_seeking_control_non_minimum.png" caption="Figure 2: \\(\bar{u}\\) is not at the minimum of the \\(y(u)\\) relation. In that case the integral of the product between the sinusoidal excitation and the measured \\(y\\) is the image of the local gradient of the \\(y(u)\\) relationship." >}}
+
+```latex
+\begin{tikzpicture}
+ % AC function of phi0
+ \draw[domain=-2:2] plot (\x, \x*\x);
+ % Axes of plot
+ \draw[->, >=latex] (-2.5 ,-0.5) -- (2.5, -0.5) node[below]{$u$};
+ \draw[->, >=latex] (-2.4 ,-0.6) -- (-2.4, 4.5) node[left]{$y$};
+
+ % Perturbation Signal
+ \draw[domain=-pi/2:pi/2, shift={(0, -1.5)}, rotate=90, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
+ % Legend of perturbation Signal
+ \node[] (pert_signal) at (-2, -1.0) {};
+
+ % Dashed lines to show limits of the signals
+ \draw[dashed] (0.0, -3.2) -- ($(0, 0)$) -- ($(4.0, 0)$);
+ \draw[dashed] (-0.5, -3.2) -- ($(-0.5, 0.5*0.5)$) -- ($(8.0, 0.5*0.5)$);
+ \draw[dashed] (0.5, -3.2) -- ($(0.5, 0.5*0.5)$);
+
+ \begin{scope}[shift={(-0.5, 0)}]
+ % Image of the perturbation signal on AC
+ \draw[domain=-pi/2:pi/2, shift={(6, 0)}, samples=200] plot (\x,{(0.5*sin(4*deg(\x)))^2});
+ \draw[->, >=latex] (4, 0) -- (8, 0) node[below]{$t$};
+ \draw[->, >=latex] (4.1, -0.1) -- (4.1, 1.0) node[left]{$y$};
+
+ % Sinus omega_p
+ \draw[domain=-pi/2:pi/2, shift={(6, 2.5)}, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
+ \draw[->, >=latex] (4, 2.5) -- (8, 2.5) node[below]{$t$};
+ \draw[->, >=latex] (4.1, 2.25) -- (4.1, 3.0) node[above]{$\sin(\omega_p t)$};
+
+ % Product of the sinus and the AC Command
+ \draw[domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] plot (\x,{0.7*(sin(4*deg(\x)))^3});
+ \draw[->, >=latex] (4,-2.5) -- (8, -2.5) node[below]{$t$};
+ \filldraw[fill=gray!20] (4,-2.5) -- plot [domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] (\x,{0.7*(sin(4*deg(\x))^3}) -- cycle;
+ \draw[->, >=latex] (4.1,-2.6) -- (4.1, -1.0) node[left]{$ $};
+
+ % Multiply and equal signs
+ \node[addb={\times}{}{}{}{}] at (6, 1.2) {};
+ \node[addb={=}{}{}{}{}] at (6, -1.0) {};
+ \end{scope}
+\end{tikzpicture}
+```
+
+
+
+{{< figure src="/ox-hugo/extremum_seeking_control_minimum.png" caption="Figure 3: \\(\bar{u}\\) is at the minimum of the \\(y(u)\\) relation. In that case the integral of the product between the sinusoidal excitation and the measured \\(y\\) is null." >}}
+
+
+## Tuning of the Extremum Seeking Control {#tuning-of-the-extremum-seeking-control}
+
+The \\(y(u)\\) relationship should be static compared to \\(\omega\_p\\) the frequency of the sinusoidal excitation.
+
+When this architecture is to be applied the following two signals have to be properly chosen:
+
+- what is the controlled signal \\(u\\)
+- what is the measured signal to be minimized \\(y\\)
+
+Then, the following parameters should be tuned:
+
+- \\(\omega\_p\\): the frequency of the perturbation, that should be small compared to the system dynamics
+- \\(A\_p\\): amplitude of the sinusoidal perturbation, that should be small compared to the allowed deviation from the minimum
+- \\(\omega\_H\\) and \\(\omega\_L\\): cut-off frequency of the high pass and low pass filters. As \\(\omega\_p\\) should be in the pass band of both filters, \\(\omega\_H\\) and \\(\omega\_L\\) should be chosen such that:
+ \\[ \omega\_H \ll \omega\_p \quad \text{and} \quad \omega\_L \gg \omega\_p \\]
+- \\(K\_I\\): gain for the integrator that should be tuned such that the control loop is stable and converges to the minimum as fast as wanted.
+
+There are three time scales present in this control algorithm:
+
+- Fast time scale that corresponds to the system variations (\\(y(u)\\) relationship)
+- Medium time scale that corresponds to the perturbations on \\(u\\) (frequency \\(\omega\_p\\))
+- Slow time scale that corresponds to the variations of \\(\bar{u}\\)
+
+
+## Bibliography {#bibliography}
+
+
+
Tan, Y, WH Moase, C Manzie, D Nešić, and IMY Mareels. 2010. “Extremum Seeking from 1922 to 2010.” In Control Conference (CCC), 2010 29th Chinese, 14–26. IEEE.
+
diff --git a/content/zettels/feedforward_control.md b/content/zettels/feedforward_control.md
new file mode 100644
index 0000000..3028f8a
--- /dev/null
+++ b/content/zettels/feedforward_control.md
@@ -0,0 +1,233 @@
++++
+title = "Feedforward Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+Depending on the physical system to be controlled, several feedforward controllers can be used:
+
+- [Rigid body feedforward](#org-target--sec-rigid-body-feedforward)
+- [Fourth order feedforward](#org-target--sec-fourth-order-feedforward)
+- [Model based feedforward](#org-target--sec-model-based-feedforward)
+
+
+## Rigid Body Feedforward {#rigid-body-feedforward}
+
+
+
+Second order trajectory planning: the acceleration and velocity can be bound to wanted values.
+
+Such trajectory is shown in [Figure 1](#figure--fig:feedforward-second-order-trajectory).
+
+
+
+{{< figure src="/ox-hugo/feedforward_second_order_trajectory.png" caption="Figure 1: Second order trajectory" >}}
+
+Here, it is supposed that the driven system is a simple mass \\(m\\) with a damper \\(c\\).
+In that case, the feedforward force should be:
+
+\begin{equation}
+F\_{ff} = m a + c v
+\end{equation}
+
+
+## Fourth Order Feedforward {#fourth-order-feedforward}
+
+
+
+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/).
+
+
+
+{{< figure src="/ox-hugo/feedforward_double_mass_system.png" caption="Figure 2: Double mass system" >}}
+
+The equations of motion are:
+
+\begin{align}
+m\_1 \ddot{x}\_1 &= -c\_1 \dot{x}\_1 - k(x\_1 - x\_2) - c (\dot{x}\_1 - \dot{x}\_2) + F \\\\
+m\_2 \ddot{x}\_2 &= k(x\_1 - x\_2) + c (\dot{x}\_1 - \dot{x}\_2)
+\end{align}
+
+From the equation of motion, two transfer functions are computed:
+
+\begin{align}
+\frac{x\_2}{F}(s) &= \frac{c s + k}{(m\_1 s^2 + c\_1 s)(m\_2 s^2 + c s + k) + m\_2 s^2 (cs + k)} \\\\
+\frac{x\_1}{F}(s) &= \frac{m\_2 s^2 + c s + k}{(m\_1 s^2 + c\_1 s)(m\_2 s^2 + c s + k) + m\_2 s^2 (cs + k)}
+\end{align}
+
+Depending on whether \\(x\_1\\) or \\(x\_2\\) is to be positioned, two feedforward controllers can be used.
+
+If \\(x\_2\\) is to be positioned, the ideal feedforward force \\(F\_{f2}\\) is:
+
+\begin{equation}
+F\_{f2} = \frac{q\_1 s^4 + q\_2 s^3 + q\_3 s^2 + q\_4 s}{k\_{12} s + c} \cdot x\_2
+\end{equation}
+
+with:
+
+\begin{align}
+q\_1 &= m\_1 m\_2 \\\\
+q\_2 &= (m\_1 + m\_2) k\_{12} + m\_1 k\_2 + m\_2 k\_1 \\\\
+q\_3 &= (m\_1 + m\_2)c + k\_1 k\_2 + (k\_1 + k\_2) k\_{12} \\\\
+q\_4 &= (k\_1 + k\_2) c
+\end{align}
+
+This means that if a fourth-order trajectory for \\(x\_2\\) is used, the feedforward architecture shown in [Figure 3](#figure--fig:feedforward-fourth-order-feedforward-architecture) can be used:
+
+\begin{equation}
+F\_{f2} = \frac{1}{k\_12 s + c} (q\_1 d + q\_2 j + q\_3 q + q\_4 v)
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/feedforward_fourth_order_feedforward_architecture.png" caption="Figure 3: Fourth order feedforward implementation" >}}
+
+Similarly, if \\(x\_1\\) is to be positioned, the perfect feedforward force \\(F\_{f1}\\) is:
+
+\begin{equation}
+F\_{f1} = \frac{1}{m\_2 s^2 + c s + k} \cdot (q\_1 s + q\_2 j + q\_3 a + q\_4 v)
+\end{equation}
+
+with:
+
+\begin{align}
+q\_1 &= m\_1 m\_2 \\\\
+q\_2 &= (m\_1 + m\_2) c + m\_2 c\_1 \\\\
+q\_3 &= (m\_1 + m\_2) k + c\_1 c \\\\
+q\_4 &= c\_1 k
+\end{align}
+
+and \\(s\\) the snap, \\(j\\) the jerk, \\(a\\) the acceleration and \\(v\\) the velocity.
+
+The same architecture shown in [Figure 3](#figure--fig:feedforward-fourth-order-feedforward-architecture) can be used.
+
+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 (Lambrechts, Boerlage, and Steinbuch 2004)).
+
+
+## Model Based Feedforward Control for Second Order resonance plant {#model-based-feedforward-control-for-second-order-resonance-plant}
+
+
+
+See (Schmidt, Schitter, and Rankers 2020) (Section 4.2.1).
+
+Suppose we have a second order plant (could typically be a piezoelectric stage):
+\\[ G(s) = \frac{C\_f \omega\_0^2}{s^2 + 2\xi \omega\_0 s + \omega\_0^2} \\]
+
+
+
+{{< figure src="/ox-hugo/feedforward_second_order_plant.png" caption="Figure 4: Bode plot of a second order system with fitted model" >}}
+
+The idea is to design a feedforward controller that corresponds to the plant inverse:
+\\[ C\_{ff}(s) = \frac{s^2 + 2\xi \omega\_0 s + \omega\_0^2}{C\_f \omega\_0^2} \\]
+
+This controller has a pair of zeros, corresponding to an anti-resonance at the eigenfrequency of the first eigenmode of the system, with equal damping.
+The controller needs to be modified in such a way that it becomes realisable.
+In this case it is decided to create a resulting overall transfer function of the controller and the plant that acts like a well damped mass-spring system with the same natural frequency as the plant and an additional reduction of the excitation of higher frequency eigenmodes.
+In order to realise this controller first two poles have to be added, placed at the same frequency as the resonance but with a higher damping ratio.
+Typically a damping ratio between aperiodic and critical (\\(0.7 < \xi < 1\\)) is applied to avoid oscillations.
+For \\(\xi = 1\\) this results in the following transfer function:
+\\[ C\_{ff}(s) = \frac{s^2 + 2\xi \omega\_0 s + \omega\_0^2}{s^2 + 2 \cdot 1 \cdot \omega\_0 s + \omega\_0^2}\\]
+
+
+
+{{< figure src="/ox-hugo/feedforward_compensated_system.png" caption="Figure 5: Bode plot of the feedforward controlled system" >}}
+
+
+## Advanced Feedforward (from MIMO training) {#advanced-feedforward--from-mimo-training}
+
+A typical control configuration for motion systems consists of:
+
+- A setpoint generator (SPG)
+- A feedback controller (\\(K\_{fb}\\))
+- A feedforward controller (\\(K\_{ff}\\))
+
+{{< figure src="/ox-hugo/feedforward_schematic.png" >}}
+
+The closed-loop error (no disturbances) is:
+\\[ e(s) = (1 + G(s)K\_{fb})^{-1} (1 - G(s)K\_{ff}(s)) r(s) \\]
+It therefore depends on:
+
+1. the setpoint \\(r\\)
+2. the feedforward controller
+3. the feedback controller
+
+**Setpoint generation**:
+
+- It can be 2nd order, 3rd order or 4th order
+- For 4th order, derivative of jerk is generated over time, and then integrated 4 times to give: jerk, acceleration, velocity and position.
+
+**2nd order setpoint generation**:
+If we compute the fourier transform of the generated acceleration, we get the following signal (-20db/dec).
+
+{{< figure src="/ox-hugo/feedforward_2nd_order_fourier.png" >}}
+
+Notches are at \\(f\_1\\), \\(2f\_1\\), \\(3f\_1\\), ... with \\(f\_1 = \frac{a\_{\text{max}}}{v\_{\text{max}}}\\).
+It is therefore possible to choose the velocity and acceleration such that \\(f\_1\\) (or one of its integral multiple) matches the resonance frequency of the system.
+Therefore, the acceleration time constant can be chosen at the inverse of the plant resonance.
+
+**3rd order setpoint generation**:
+There is a drawback of having an extra time of \\(\frac{a\_{max}}{J\_{max}}\\) seconds.
+However, we get an additional -20db/dec at high frequency, and additional notches at \\(f\_2 = \frac{j\_{max}}{a\_{max}}\\).
+This new notch has larger "damping" and can be used to be more robust against resonances of the plant.
+
+**Feedforward control**:
+Plant inversion: if \\(K\_{ff} = G^{-1}(s) \Longrightarrow e(s) = 0\\)
+Challenges:
+
+- Model required
+- High order
+- Delay/non-minimum phase?
+
+**Rigid body dynamics**:
+\\(G(s) = \frac{1}{ms^2}\\)
+In that case, \\(G^{-1}(s) = ms^2\\), and with 2nd order setpoint, a feedforward controller \\(K\_{ff}(s) = m\\) gives good performances.
+
+{{< figure src="/ox-hugo/feedforward_schematic_rigid_body.png" >}}
+
+**Discrete time implementation**.
+The DAC can usually be modelled by a "Zero Order Hold" (ZOH) and the ADC with a "sampler".
+This adds **1.5 samples of delay**: \\(0.5z^{-1} + 0.5z^{-2}\\).
+
+It seems the ZOH can be modelled by an "half-sample delay".
+There is an additional one sample delay.
+
+{{< figure src="/ox-hugo/feedforward_schematic_zoh_sampler.png" >}}
+
+Therefore, it is very important to match the delay of the plant:
+
+> In high-performance control system, it can be useful to consider propagation delay when designing the feedforward and feedback controllers.
+> Feedforward control directly uses the reference trajectory and does not depend on any measurement data.
+> However, the feedback controller uses (delayed) measured position data.
+> Due to propagation delay in the control system (caused by the controller, actuator or sensor), it can take multiple cycles for the effect of feedforward control to be observed in the measured position.
+> In the meantime, the feedback control is already seeing a tracking error and is compensating for it.
+> Essentially, the result of the feedforward action arrives too late, resulting in possible overcompensation by the feedback control.
+> When the propagation delay in the control system is known, it can be compensated for by applying this same delay to the demand position in the tracking error calculation.
+
+{{< figure src="/ox-hugo/feedforward_schematic_delay.png" >}}
+
+**Feedforward for flexible dynamics**:
+4th order dynamics:
+
+{{< figure src="/ox-hugo/feedforward_4th_order.png" >}}
+
+Dynamics from \\(F\\) to \\(x\_2\\) is:
+\\[ G(s) = \frac{x\_2}{F} = \frac{cs + k}{m\_1m\_2 s^2(s^2 + 2\xi\omega\_0 s + \omega\_0^2)} \\]
+We take the inverse for the feedforward controller:
+\\[ K\_{ff}(s) = G^{-1}(s) = \frac{m\_1m\_2 s^2(s^2 + 2\xi\omega\_0 s + \omega\_0^2)}{cs + k} \\]
+If we neglect damped: \\(\xi = 0\\), and we get:
+\\[ K\_{ff}(s) = \underbrace{\frac{m\_1m\_2}{k} s^4}\_{\text{snap FF}} + \underbrace{(m\_1 + m\_2) s^2}\_{\text{acc FF}} \\]
+This can be solved by using **snap feedforward**
+
+{{< figure src="/ox-hugo/feedforward_schematic_snap.png" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Lambrechts, P., M. Boerlage, and M. Steinbuch. 2004. “Trajectory Planning and Feedforward Design for High Performance Motion Systems.” In Proceedings of the 2004 American Control Conference. doi:10.23919/acc.2004.1384042.
+
Schmidt, R. M., G. Schitter, and A. Rankers. 2020. The Design of High Performance Mechatronics - Third Revised Edition. Ios Press.
+
diff --git a/content/zettels/finite_element_model.md b/content/zettels/finite_element_model.md
new file mode 100644
index 0000000..0fab669
--- /dev/null
+++ b/content/zettels/finite_element_model.md
@@ -0,0 +1,28 @@
++++
+title = "Finite Element Model"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Matlab State Space Model from FEM on Ansys {#matlab-state-space-model-from-fem-on-ansys}
+
+Some resources:
+
+- (Hatch 2000) ([Notes]({{< relref "hatch00_vibrat_matlab_ansys.md" >}}))
+- (Khot and Yelve 2011)
+- (NO_ITEM_DATA:kosarac15_creat_siso_ansys)
+
+The idea is to extract reduced state space model from Ansys into Matlab.
+
+
+## Bibliography {#bibliography}
+
+
+
Hatch, M. R. 2000. Vibration Simulation Using MATLAB and ANSYS. CRC Press.
+
Khot, SM, and Nitesh P Yelve. 2011. “Modeling and Response Analysis of Dynamic Systems by Using Ansys and Matlab.” Journal of Vibration and Control 17 (6). SAGE Publications Sage UK: London, England: 953–58.
+
NO_ITEM_DATA:kosarac15_creat_siso_ansys
+
diff --git a/content/zettels/flexible_joints.md b/content/zettels/flexible_joints.md
new file mode 100644
index 0000000..44071fd
--- /dev/null
+++ b/content/zettels/flexible_joints.md
@@ -0,0 +1,64 @@
++++
+title = "Flexible Joints"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Resources {#resources}
+
+Books:
+
+- (Smith 2000)
+- (Lobontiu 2002)
+- (Henein 2003)
+- (Smith 2005)
+- (Soemers 2011)
+- (Cosandier 2017)
+
+Presentations:
+
+- (Henein 2010)
+
+
+## Flexure Joints for Stewart Platforms {#flexure-joints-for-stewart-platforms}
+
+From (Chen and McInroy 2000):
+
+> To avoid the extremely non-linear micro-dynamics of joint friction and backlash, these hexapods employ flexure joints.
+> A flexure joint bends material to achieve motion, rather than sliding of rolling across two surfaces.
+> This does eliminate friction and backlash, but adds spring dynamics and limits the workspace.
+
+
+
+
+## Materials {#materials}
+
+Typical materials used for flexible joints are:
+
+- Steel
+- Aluminum
+- Titanium
+
+
+## Manufacturers {#manufacturers}
+
+
+Prototyping kits:
+
+
+## Bibliography {#bibliography}
+
+
+
Chen, Yixin, and J.E. McInroy. 2000. “Identification and Decoupling Control of Flexure Jointed Hexapods.” In Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065). doi:10.1109/robot.2000.844878.
Soemers, Herman. 2011. Design Principles for Precision Mechanisms. T-Pointprint.
+
diff --git a/content/zettels/force_sensors.md b/content/zettels/force_sensors.md
new file mode 100644
index 0000000..315c612
--- /dev/null
+++ b/content/zettels/force_sensors.md
@@ -0,0 +1,83 @@
++++
+title = "Force Sensors"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Signal Conditioner]({{< relref "signal_conditioner.md" >}}), [Modal Analysis]({{< relref "modal_analysis.md" >}})
+
+
+## Technologies {#technologies}
+
+There are two main technique for force sensors:
+
+- piezoelectric technology
+- strain gauge technology
+
+The choice between the two is usually based on whether the measurement is static (strain gauge) or dynamics (piezoelectric).
+
+Main differences between the two are shown in [Figure 1](#figure--fig:force-sensor-piezo-vs-strain-gauge).
+
+
+
+{{< figure src="/ox-hugo/force_sensor_piezo_vs_strain_gauge.png" caption="Figure 1: Piezoelectric Force sensor VS Strain Gauge Force sensor" >}}
+
+
+## Piezoelectric Force Sensors {#piezoelectric-force-sensors}
+
+
+### Dynamics and Noise of a piezoelectric force sensor {#dynamics-and-noise-of-a-piezoelectric-force-sensor}
+
+An analysis the dynamics and noise of a piezoelectric force sensor is done in (Fleming 2010) ([Notes]({{< relref "fleming10_nanop_system_with_force_feedb.md" >}})).
+
+
+### Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|-------------------------------------------------------------------------------------------------|---------|
+| [PCB](https://www.pcb.com/products/productfinder.aspx?tx=17) | USA |
+| [HBM](https://www.hbm.com/en/6107/force-sensors-with-flange-mounting/) | Germany |
+| [Kistler](https://www.kistler.com/fr/produits/composants/capteurs-de-force/?pfv_metrics=metric) | Swiss |
+| [MMF](https://www.mmf.de/force_transducers.htm) | Germany |
+| [Sinocera](http://www.china-yec.net/sensors/) | China |
+
+
+### Signal Conditioner {#signal-conditioner}
+
+The voltage generated by the piezoelectric material generally needs to be amplified using a [Signal Conditioner]({{< relref "signal_conditioner.md" >}}).
+
+Either **charge** amplifiers or **voltage** amplifiers can be used.
+
+
+### Effect of using multiple Stacks in series of parallels {#effect-of-using-multiple-stacks-in-series-of-parallels}
+
+If two stack are wired in series, the generated charge is kept constant and the capacitance is reduced by a factor 2.
+Thus, the measured voltage is double while the measured charge is kept constant.
+
+If two stacks are wired in parallel, the capacitance and the number of charge will be doubled.
+Thus, if a voltage amplifier is used, no change of voltage will be experienced.
+However, if a charge conditioner is used, the signal will be doubled.
+
+
+## Strain Gauge (Load Cells) {#strain-gauge--load-cells}
+
+
+### Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|--------------------------------------------------------------------------------|----------------|
+| [Sensel](https://www.sensel-measurement.fr/en/3-load-cell) | France |
+| [Omega](https://www.omega.com/en-us/resources/load-cells) | United Kingdom |
+| [Megatron](https://www.megatron.de/en/category/load-cells.html) | Germany |
+| [PCB](https://www.pcb.com/products/product-finder?tx=19) | USA |
+| [Interface](https://quickship.interfaceforce.com/product-category/load-cells/) | USA |
+| [Althen](https://www.althensensors.com/sensors/weighing-sensors-load-cells/) | Netherlands |
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” IEEE/ASME Transactions on Mechatronics 15 (3): 433–47. doi:10.1109/tmech.2009.2028422.
+
diff --git a/content/zettels/fractional_order_transfer_functions.md b/content/zettels/fractional_order_transfer_functions.md
new file mode 100644
index 0000000..0634048
--- /dev/null
+++ b/content/zettels/fractional_order_transfer_functions.md
@@ -0,0 +1,50 @@
++++
+title = "Fractional Order Transfer Functions"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Digital Filters]({{< relref "digital_filters.md" >}})
+
+
+## Example Using the FOMCON toolbox {#example-using-the-fomcon-toolbox}
+
+The documentation for the toolbox is accessible [here](https://fomcon.net/fomcon-toolbox/overview/).
+
+Here are the parameters that are used to define the wanted properties of the fractional model:
+
+```matlab
+ wb = 2*pi*0.1; % Lowest frequency bound
+ wh = 2*pi*1e3; % Highest frequency bound
+ n = 8; % Approximation order
+ r = 0.5; % Wanted slope, The corresponding phase will be pi*r
+```
+
+Then, to create an approximation of a fractional-order operator \\(s^r\\) of order \\(n\\) which is valid in the frequency range \\([\omega\_b\\, \omega\_h]\\), the `oustafod` function can be used:
+
+```matlab
+ G = oustafod(r,n,wb,wh);
+```
+
+```text
+G =
+
+ 79.27 s^17 + 7.93e05 s^16 + 2.918e09 s^15 + 5.143e12 s^14 + 4.782e15 s^13 + 2.453e18 s^12 + 7.103e20 s^11 + 1.175e23 s^10 + 1.119e25 s^9 + 6.138e26 s^8 + 1.942e28 s^7 + 3.534e29 s^6 + 3.675e30 s^5 + 2.157e31 s^4 + 6.984e31 s^3 + 1.193e32 s^2 + 9.764e31 s + 2.939e31
+ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ s^17 + 1.312e04 s^16 + 6.327e07 s^15 + 1.462e11 s^14 + 1.783e14 s^13 + 1.199e17 s^12 + 4.553e19 s^11 + 9.877e21 s^10 + 1.232e24 s^9 + 8.866e25 s^8 + 3.678e27 s^7 + 8.775e28 s^6 + 1.196e30 s^5 + 9.208e30 s^4 + 3.909e31 s^3 + 8.755e31 s^2 + 9.395e31 s + 3.707e31
+
+Continuous-time transfer function.
+```
+
+Few examples of different slopes are shown in [Figure 1](#figure--fig:approximate-deriv-int).
+
+
+
+{{< figure src="/ox-hugo/approximate_deriv_int.png" caption="Figure 1: Example of fractional approximations" >}}
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/gravity_compensation.md b/content/zettels/gravity_compensation.md
new file mode 100644
index 0000000..0d4fe99
--- /dev/null
+++ b/content/zettels/gravity_compensation.md
@@ -0,0 +1,54 @@
++++
+title = "Gravity Compensation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Reviews {#reviews}
+
+
+
+
+## Counterweight {#counterweight}
+
+(Yoshioka et al. 2017)
+
+
+## Magnetic {#magnetic}
+
+- (Hol, Lomonova, and Vandenput 2006)
+-
+- (Westhoff and Maas 2024)
+
+
+## Simple Spring {#simple-spring}
+
+
+## Constant force spring {#constant-force-spring}
+
+
+
+
+
+
+## Variable Gravity Compensation {#variable-gravity-compensation}
+
+As the mass / position of the load may change during operation, a variable gravity compensation mechanism is very useful.
+
+
+## Commercial products {#commercial-products}
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Hol, S.A.J., E. Lomonova, and A.J.A. Vandenput. 2006. “Design of a Magnetic Gravity Compensation System.” Precision Engineering 30 (3): 265–73. doi:10.1016/j.precisioneng.2005.09.005.
+
Westhoff, Bela Schulte, and Jürgen Maas. 2024. “Design of an Electromagnetic Linear Drive with Permanent Magnetic Weight Compensation.” Actuators 13 (3): 107. doi:10.3390/act13030107.
+
Yoshioka, Hayato, Hidenori Shinno, Jiang Zhu, and Manabu Uchiumi. 2017. “A Newly Developed Zero-Gravity Vertical Motion Mechanism for Precision Machining.” CIRP Annals 66 (1): 389–92. doi:10.1016/j.cirp.2017.04.057.
+
diff --git a/content/zettels/h_infinity_control.md b/content/zettels/h_infinity_control.md
new file mode 100644
index 0000000..8d7f277
--- /dev/null
+++ b/content/zettels/h_infinity_control.md
@@ -0,0 +1,23 @@
++++
+title = "H Infinity Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Nice Citations {#nice-citations}
+
+From _Rosenbrock, H. H. (1974). Computer-Aided Control System Design, Academic Press, New York_:
+
+> Solutions are constrained by so many requirements that it is virtually impossible to list them all.
+> The designer finds himself threading a maze of such requirements, attempting to reconcile conflicting demands of cost, performance, easy maintenance, and so on.
+> A good design usually has strong aesthetic appeal to those who are competent in the subject.
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/hac_hac.md b/content/zettels/hac_hac.md
new file mode 100644
index 0000000..e82aaa9
--- /dev/null
+++ b/content/zettels/hac_hac.md
@@ -0,0 +1,36 @@
++++
+title = "HAC-HAC"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+High-Authority Control/Low-Authority Control
+
+From (Preumont 2018):
+
+> The HAC/LAC approach consist of combining the two approached in a dual-loop control as shown in [Figure 1](#figure--fig:hac-lac-control-architecture). The inner loop uses a set of collocated actuator/sensor pairs for decentralized active damping with guaranteed stability ; the outer loop consists of a non-collocated HAC based on a model of the actively damped structure. This approach has the following advantages:
+>
+> - The active damping extends outside the bandwidth of the HAC and reduces the settling time of the modes which are outsite the bandwidth
+> - The active damping makes it easier to gain-stabilize the modes outside the bandwidth of the output loop (improved gain margin)
+> - The larger damping of the modes within the controller bandwidth makes them more robust to the parmetric uncertainty (improved phase margin)
+
+
+
+{{< figure src="/ox-hugo/hac_lac_control_architecture.png" caption="Figure 1: HAC-LAC Control Architecture" >}}
+
+Nice papers:
+
+- (Williams and Antsaklis 1989)
+- (Aubrun 1980)
+
+
+## Bibliography {#bibliography}
+
+
+
Aubrun, J.N. 1980. “Theory of the Control of Structures by Low-Authority Controllers.” Journal of Guidance and Control 3 (5): 444–51. doi:10.2514/3.56019.
+
Preumont, A. 2018. Vibration Control of Active Structures - Fourth Edition. Solid Mechanics and Its Applications. Springer International Publishing. doi:10.1007/978-3-319-72296-2.
+
Williams, T.W.C., and P.J. Antsaklis. 1989. “Limitations of Vibration Suppression in Flexible Space Structures.” In Proceedings of the 28th IEEE Conference on Decision and Control. doi:10.1109/cdc.1989.70563.
+
diff --git a/content/zettels/heat_transfer.md b/content/zettels/heat_transfer.md
new file mode 100644
index 0000000..71911e9
--- /dev/null
+++ b/content/zettels/heat_transfer.md
@@ -0,0 +1,215 @@
++++
+title = "Heat Transfer"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Electrical Analogy - Lumped Mass Modeling {#electrical-analogy-lumped-mass-modeling}
+
+The difference in temperature \\(\Delta T\\) is driving potential energy flow \\(Q\\) (in watts):
+
+\begin{equation}
+ \Delta T = R\_{th} \cdot Q
+\end{equation}
+
+\\(R\_{th}\\) is the analogy of a "thermal resistance", and is expressed in K/W.
+
+
+## Conduction (diffusion) {#conduction--diffusion}
+
+The _conduction_ corresponds to the heat transfer \\(Q\\) (in watt) through molecular agitation within a material.
+
+\begin{equation}
+R\_{th} = \frac{d}{\lambda A}
+\end{equation}
+
+with:
+
+- \\(\lambda\\) the thermal conductivity in \\([W/m \cdot K]\\)
+- \\(A\\) the surface area in \\([m^2]\\)
+- \\(d\\) the length of the barrier in \\([m]\\)
+
+
+## Convection {#convection}
+
+The convection corresponds to the heat transfer \\(Q\\) through flow of a fluid.
+It can be either _natural_ or _forced_.
+
+\begin{equation}
+R\_{th} = \frac{1}{h A}
+\end{equation}
+
+with:
+
+- \\(h\\) the convection heat transfer coefficient in \\([W/m^2 \cdot K]\\).
+ \\(h \approx 10.5 - v + 10\sqrt{v}\\) with \\(v\\) the velocity of the object through the fluid in \\([m/s]\\)
+ Typically:
+ - \\(h = 5 - 10\ W/m^2/K\\) for free convection with air
+ - \\(h = 500 - 5000\ W/m^2/K\\) for forced water cooling in a tube of 5mm diameter
+- \\(A\\) the surface area in \\([m^2]\\)
+
+Note that clean-room air flow should be considered as forced convection, and \\(h \approx 10 W/m^2/K\\).
+
+
+## Radiation {#radiation}
+
+_Radiation_ corresponds to the heat transfer \\(Q\\) (in watt) through the emission of electromagnetic waves from the emitter to its surroundings.
+
+In the general case, we have:
+\\[ Q = \epsilon \cdot \sigma \cdot A \cdot (T\_r^4 - T\_s^4) \\]
+with:
+
+- \\(\epsilon\\) the emissivity which corresponds to the ability of a surface to emit energy through radiation relative to a black body surface at equal temperature.
+ It is between 0 (no emissivity) and 1 (maximum emissivity)
+- \\(\sigma\\) the Stefan-Boltzmann constant: \\(\sigma = 5.67 \cdot 10^{-8} \\, \frac{W}{m^2 K^4}\\)
+- \\(T\_r\\) the temperature of the emitter in \\([K]\\)
+- \\(T\_s\\) the temperature of the surrounding in \\([K]\\)
+
+In order to use the lumped mass approximation, the equations can be linearized to obtain:
+
+\begin{equation}
+R\_{th} = \frac{1}{h\_{rad} A}
+\end{equation}
+
+with:
+
+- \\(h\_{rad}\\) the effective heat transfer coefficient for radiation in \\(W/m^2 \cdot K\\)
+- \\(A\\) the surface in \\([m^2]\\)
+
+
+### Practical Cases {#practical-cases}
+
+Two parallel plates:
+
+\begin{equation}
+h\_{rad} = \frac{\sigma}{1/\epsilon\_1 + 1/\epsilon\_2 - 1} (T\_1^2 + T\_2^2)(T\_1 + T\_2)
+\end{equation}
+
+Two concentric cylinders:
+
+\begin{equation}
+h\_{rad} = \frac{\sigma}{1/\epsilon\_1 + r\_1/r\_2 (1/\epsilon\_2 - 1)} (T\_1^2 + T\_2^2)(T\_1 + T\_2)
+\end{equation}
+
+A small object enclosed in a large volume:
+
+\begin{equation}
+h\_{rad} = \epsilon\_1 \sigma (T\_1^2 + T\_2^2)(T\_1 + T\_2)
+\end{equation}
+
+
+### Emissivity {#emissivity}
+
+The emissivity of materials highly depend on the surface finish (the more polished, the lower the emissivity).
+Some examples are given in .
+
+Gold coating gives also a very low emissivity and is typically used in cryogenic applications.
+
+
+
+ Table 1:
+ Some examples of emissivity (specified at 25 degrees)
+
+
+Let's take a polished aluminum plate (20 by 20 cm) at 125K (temperature of zero thermal expansion coefficient of silicon) surrounded by elements are 25 degrees (300 K):
+\\[ P = \epsilon \cdot \sigma \cdot A \cdot (T\_r^4 - T\_s^4) = 0.36\\, J \\]
+
+
+
+
+## Heat {#heat}
+
+The _heat_ \\(Q\\) (in Joules) corresponds to the energy necessary to change the temperature of the mass with a certain material specific heat capacity:
+\\[ Q = m \cdot c \cdot \Delta T \\]
+with:
+
+- \\(m\\) the mass in \\([kg]\\)
+- \\(c\\) the specific heat capacity in \\([J/kg \cdot K]\\)
+- \\(\Delta T\\) the temperature different \\([K]\\)
+
+
+
+Let's compute the heat (i.e. energy) necessary to increase a 1kg granite by 1 degree.
+The specific heat capacity of granite is \\(c = 790\\,[J/kg\cdot K]\\).
+The required heat is then:
+\\[ Q = m\cdot c \cdot \Delta T = 790 \\,J \\]
+
+
+
+
+
+ Table 2:
+ Some examples of specific heat capacity
+
+
+| Substance | Specific heat capacity [J/kg.K] |
+|---------------------|---------------------------------|
+| Air | 1012 |
+| Aluminium | 897 |
+| Copper | 385 |
+| Granite | 790 |
+| Steel | 466 |
+| Water at 25 degrees | 4182 |
+
+
+## Heat Transport (i.e. Water cooling) {#heat-transport--i-dot-e-dot-water-cooling}
+
+
+
+{{< figure src="/ox-hugo/heat_transfer_fluid.png" caption="Figure 1: Heat transfered to the fluid" >}}
+
+\begin{equation}
+Q\_{in} = h \cdot A \cdot (T\_{wall} - T\_{mean})
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/heat_transport.png" caption="Figure 2: Heat Transport in the fluid" >}}
+
+\begin{equation}
+Q\_{out} = \phi \rho c\_p (T\_{mean,in} - T\_{mean,out})
+\end{equation}
+
+with:
+
+- \\(Q\_{out}\\) the transported heat in W
+- \\(\phi\\) the flow in \\(m^3/s\\)
+- \\(\rho\\) the fluid density in \\(kg/m^3\\)
+- \\(c\_p\\) the specific heat capacity of the fluid in \\(J/(kg \cdot K)\\)
+- \\(T\_{mean}\\) the mean incoming and outgoing fluid temperature
+
+Because of energy balance, we have in the stationary condition: \\(Q\_{in} = Q\_{out}\\)
+
+
+## Heat flow {#heat-flow}
+
+The heat flow \\(P\\) (in watt) is the derivative of the heat:
+\\[ P = \cdot{Q} = \frac{dQ}{dt} = \frac{dT}{R\_T} = C\_T \cdot dT \\]
+with:
+
+- \\(Q\\) the heat in [W]
+- \\(R\_T\\) the thermal resistance in \\([K/W]\\)
+- \\(C\_T\\) the thermal conductance in \\([W/K]\\)
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/heaters.md b/content/zettels/heaters.md
new file mode 100644
index 0000000..1987d72
--- /dev/null
+++ b/content/zettels/heaters.md
@@ -0,0 +1,48 @@
++++
+title = "Heaters"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Commercial products {#commercial-products}
+
+-
+-
+
+
+### Cryogenic temperature (~120K, UHV compatible) {#cryogenic-temperature--120k-uhv-compatible}
+
+
+### 20degC temperature {#20degc-temperature}
+
+
+
+
+### 20degC temperature (UHV) {#20degc-temperature--uhv}
+
+From :
+
+-
+
+From (Neto et al. 2022)
+
+> UHV-compatible Kapton heaters from Taiwan KLC (part number TSC013D003GR36Z01), with nominal resistances of 36 Ω and 14.4 Ω for 4 W and 10 W power at 12 V, respectively
+> Although having an easy integration and proven vacuum compatibility, along with low cost, the flexible nature of the Kapton heaters made the clamping to the components a potential source of failure.
+
+
+
+> Therefore, a new heating element is under development for higher reliability.
+> As depicted in Fig. 2, it consists of an **SMD nickel thin film and alumina power resistor from Susumu**, soldered over a small aluminium metalcore PCB (Printed Circuit Board) using a lead free (SAC305) solder paste.
+> The board is then encapsulated inside a small aluminium case using the Stycast 2850FT epoxy resin along with CAT11 catalyser.
+> The aluminum PCB and housing serve as efficient heat condutors to the part of interest
+
+
+## Bibliography {#bibliography}
+
+
+
Neto, Joao Brito, Renan Geraldes, Francesco Lena, Marcelo Moraes, Antonio Piccino Neto, Marlon Saveri Silva, and Lucas Volpe. 2022. “Temperature Control for Beamline Precision Systems of Sirius/Lnls.” Proceedings of the 18th International Conference on Accelerator and Large Experimental Physics Control Systems ICALEPCS2021: China. doi:10.18429/JACOW-ICALEPCS2021-WEPV001.
+
diff --git a/content/zettels/icepap.md b/content/zettels/icepap.md
new file mode 100644
index 0000000..0480af2
--- /dev/null
+++ b/content/zettels/icepap.md
@@ -0,0 +1,25 @@
++++
+title = "IcePAP"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "esrf"
++++
+
+Tags
+: [Stepper Motor]({{< relref "stepper_motor.md" >}})
+
+
+## Icepap CMS {#icepap-cms}
+
+
+## Icepap Console {#icepap-console}
+
+To get the status of one axis: `5:?vstatus` (`5` is the axis index).
+
+Then, if there is some warning, to get more information, use `5:?warning`.
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/inertial_sensors.md b/content/zettels/inertial_sensors.md
new file mode 100644
index 0000000..ffbcafb
--- /dev/null
+++ b/content/zettels/inertial_sensors.md
@@ -0,0 +1,71 @@
++++
+title = "Inertial Sensors"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Position Sensors]({{< relref "position_sensors.md" >}})
+
+
+## Review of Absolute (inertial) Position Sensors {#review-of-absolute--inertial--position-sensors}
+
+- Collette, C. et al., Review: inertial sensors for low-frequency seismic vibration measurement (Collette, Janssens, Fernandez-Carmona, et al. 2012)
+- Collette, C. et al., Comparison of new absolute displacement sensors (Collette, Janssens, Mokrani, et al. 2012)
+
+
+
+{{< figure src="/ox-hugo/collette12_absolute_disp_sensors.png" caption="Figure 1: Dynamic range of several types of inertial sensors; Price versus resolution for several types of inertial sensors" >}}
+
+
+## Accelerometers {#accelerometers}
+
+| Manufacturers | Country |
+|----------------------------------------------------------------------------------------------|-------------|
+| [Micromega Dynamics](https://micromega-dynamics.com/products/) | Belgium |
+| [MMF](https://www.mmf.de/seismic_accelerometers.htm) | Germany |
+| [PCB](https://www.pcb.com/products/productfinder.aspx?tx=14) | USA |
+| [Guralp](https://www.guralp.com/products/surface) | UK |
+| [Nanometric](https://www.nanometrics.ca/products/accelerometers) | Canada |
+| [Kistler](https://www.kistler.com/fr/produits/composants/accelerometres/?pfv_metrics=metric) | Swiss |
+| [Beran](https://www.beraninstruments.com/Products/Vibration-Transducers-and-Cabling) | UK |
+| [Althen](https://www.althensensors.com/fr/capteurs/capteurs-d-acceleration/) | Netherlands |
+
+Wireless Accelerometers
+
+-
+
+Several commercial accelerometers are compared in Table [Figure 2](#figure--fig:characteristics-accelerometers) (see (Collette et al. 2011)).
+
+
+
+{{< figure src="/ox-hugo/inertial_sensors_characteristics_accelerometers.png" caption="Figure 2: Characteristics of commercially available accelerometers" >}}
+
+
+## Geophones and Seismometers {#geophones-and-seismometers}
+
+| Manufacturers | Country |
+|--------------------------------------------------------------------------------------------|---------|
+| [Sercel](http://www.sercel.com/products/Pages/seismometers.aspx) | France |
+| [Wilcoxon](https://wilcoxon.com/) | USA |
+| [Geospace technologies](https://www.geospace.com/sensors/#) | USA |
+| [Ion](https://www.iongeo.com/technologies/hardware/seismic-equipment/precision-geophones/) | USA |
+| [Streckeisen](https://streckeisen.swiss/en/products/overview/) | Swiss |
+| [Guralp](https://www.guralp.com/products/surface) | UK |
+| [Nanometric](https://www.nanometrics.ca/products/seismometers) | Canada |
+
+(Collette et al. 2011)
+
+
+
+{{< figure src="/ox-hugo/inertial_sensors_characteristics_geophone.png" caption="Figure 3: Characteristics of commercially available geophones" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Collette, C, K Artoos, M Guinchard, S Janssens, P Carmona Fernandez, and C Hauviller. 2011. “Review of Sensors for Low Frequency Seismic Vibration Measurement.” CERN.
+
Collette, C., S. Janssens, P. Fernandez-Carmona, K. Artoos, M. Guinchard, C. Hauviller, and A. Preumont. 2012. “Review: Inertial Sensors for Low-Frequency Seismic Vibration Measurement.” Bulletin of the Seismological Society of America 102 (4): 1289–1300. doi:10.1785/0120110223.
+
Collette, C, S Janssens, B Mokrani, L Fueyo-Roza, K Artoos, M Esposito, P Fernandez-Carmona, M Guinchard, and R Leuxe. 2012. “Comparison of New Absolute Displacement Sensors.” In International Conference on Noise and Vibration Engineering (ISMA).
+
diff --git a/content/zettels/instrumented_hammer.md b/content/zettels/instrumented_hammer.md
new file mode 100644
index 0000000..5e0cddf
--- /dev/null
+++ b/content/zettels/instrumented_hammer.md
@@ -0,0 +1,26 @@
++++
+title = "Instrumented Hammer"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Modal Analysis]({{< relref "modal_analysis.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}})
+
+And instrumented hammer consist of a regular hammer with a force sensor fixed at its tip.
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|--------------------------------------------------------------------------------------------------------------|----------|
+| [PCB](https://www.pcb.com/sensors-for-test-measurement/impact-hammers-electrodynamic-shakers/impact-hammers) | USA |
+| [DJB](https://www.djbinstruments.com/products/instrumentation/impact-hammers) | UK |
+| [Dewesoft](https://dewesoft.com/fr/products/interfaces-and-sensors/accelerometers-and-modal-hammers) | Slovenia |
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/integral_force_feedback.md b/content/zettels/integral_force_feedback.md
new file mode 100644
index 0000000..ad58eae
--- /dev/null
+++ b/content/zettels/integral_force_feedback.md
@@ -0,0 +1,21 @@
++++
+title = "Integral Force Feedback"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Active Damping]({{< relref "active_damping.md" >}}), [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}})
+
+
+## Self-Sensing for perfect collocation {#self-sensing-for-perfect-collocation}
+
+This can be done with a [Voice Coil Actuator]({{< relref "voice_coil_actuators.md" >}}) (see (Verma, Lafarga, and Collette 2020)) or with a [Piezoelectric Actuator]({{< relref "piezoelectric_actuators.md" >}}) (see (Jansen, Butler, and Di Filippo 2019)).
+
+
+## Bibliography {#bibliography}
+
+
+
Jansen, Bas, Hans Butler, and Ruben Di Filippo. 2019. “Active Damping of Dynamical Structures Using Piezo Self Sensing.” IFAC-PapersOnLine 52 (15). Elsevier: 543–48.
+
Verma, Mohit, Vicente Lafarga, and Christophe Collette. 2020. “Perfect Collocation Using Self-Sensing Electromagnetic Actuator: Application to Vibration Control of Flexible Structures.” Sensors and Actuators a: Physical 313: 112210. doi:10.1016/j.sna.2020.112210.
diff --git a/content/zettels/interferometers.md b/content/zettels/interferometers.md
new file mode 100644
index 0000000..07b4e19
--- /dev/null
+++ b/content/zettels/interferometers.md
@@ -0,0 +1,105 @@
++++
+title = "Interferometers"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Position Sensors]({{< relref "position_sensors.md" >}}), [Optics]({{< relref "optics.md" >}})
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|--------------------------------------------------------------------------------------------------------------|-------------|
+| [Attocube](http://www.attocube.com/) | Germany |
+| [Zygo](https://www.zygo.com/?/met/markets/stageposition/zmi/) | USA |
+| [Smaract](https://www.smaract.com/interferometry) | Germany |
+| [Qutools](https://www.qutools.com/qudis/) | Germany |
+| [Renishaw](https://www.renishaw.com/en/fibre-optic-laser-encoder-products--6594) | UK |
+| [Sios](https://sios-de.com/products/length-measurement/laser-interferometer/) | Germany |
+| [Keysight](https://www.keysight.com/en/pc-1000000393%3Aepsg%3Apgr/laser-heads?nid=-536900395.0&cc=FR&lc=fre) | USA |
+| [Optics11](https://optics11.com/) | Netherlands |
+| [Prodrive](https://prodrive-technologies.com/motion/products/interferometer/) | Netherlands |
+| [Agito](https://agito-akribis.com/voice-coil-motors/) | |
+
+
+## Reviews {#reviews}
+
+(Ducourtieux 2018, 2018; Bobroff 1993, 1993; Thurner et al. 2015, 2015; Loughridge and Abramovitch 2013)
+
+
+## Effect of Refractive Index - Environmental Units {#effect-of-refractive-index-environmental-units}
+
+The measured distance is proportional to the refractive index of the air that depends on several quantities as shown in [Table 1](#table--tab:index-air) (Taken from (Thurner et al. 2015)).
+
+
+
+ Table 1:
+ Dependence of Refractive Index \(n\) of Air from Temperature \(T\), pressure \(p\), Humidity \(h\), and CO2 content \(x_c\). Taken around \(T = 20^oC\), \(p=101kPa\), \(h = 50\%\), \(x_c = 400 ppm\) and \(\lambda = 1530nm\)
+
+
+| Physical Value | Refractive Index Sensitivity | Value |
+|---------------------------------------|------------------------------|---------------------------|
+| Temperature \\(T\\) | \\(dn/dT\ (K^{-1})\\) | \\(-9.32\cdot 10^{-7}\\) |
+| Pressure \\(p\\) | \\(dn/dp\ (mbar^{-1})\\) | \\(2.70\cdot 10^{-7}\\) |
+| Humidity \\(h\\) | \\(dn/dh\ (\text{%}^{-1})\\) | \\(-8.72\cdot 10^{-9}\\) |
+| \\(\text{CO}\_2\\) content \\(x\_c\\) | \\(dn/dx\_c\ (ppm^{-1})\\) | \\(1.42\cdot 10^{-10}\\) |
+| Wavelength \\(\lambda\\) | \\(dn/d\lambda\ (nm^{-1})\\) | \\(-8.59\cdot 10^{-10}\\) |
+
+In order to limit the measurement uncertainty due to variation of air parameters, an Environmental Unit can be used that typically measures the temperature, pressure and humidity and compensation for the variation of refractive index in real time.
+
+Typical characteristics of commercial environmental units are shown in [Table 2](#table--tab:environmental-units).
+
+
+
+ Table 2:
+ Characteristics of Environmental Units
+
+
+| | Temperature (\\(\pm\ ^oC\\)) | Pressure (\\(\pm\ hPa\\)) | Humidity \\(\pm\\\% RH\\) | Wavelength Accuracy (\\(\pm\ \text{ppm}\\)) |
+|-----------|------------------------------|---------------------------|---------------------------|---------------------------------------------|
+| Attocube | 0.1 | 1 | 2 | 0.5 |
+| Renishaw | 0.2 | 1 | 6 | 1 |
+| Picoscale | 0.2 | 2 | 2 | 1 |
+
+
+## Interferometer Precision {#interferometer-precision}
+
+[Figure 1](#figure--fig:position-sensor-interferometer-precision) shows the expected precision as a function of the measured distance due to change of refractive index of the air (taken from (Jang and Kim 2017)).
+
+
+
+{{< figure src="/ox-hugo/position_sensor_interferometer_precision.png" caption="Figure 1: Expected precision of interferometer as a function of measured distance" >}}
+
+
+## Sources of uncertainty {#sources-of-uncertainty}
+
+Sources of error in laser interferometry are well described in (Ducourtieux 2018).
+
+It includes:
+
+- Laser Source Stability
+- Variation of refractive index of air, which is dependent of:
+ - Temperature: \\(K\_T \approx 1 ppmK^{-1}\\)
+ - Pressure: \\(K\_P \approx 0.27 ppm hPa^{-1}\\)
+ - Humidity: \\(K\_{HR} \approx 0.01 ppm \\% RH^{-1}\\)
+ - These errors can partially be compensated using an environmental unit.
+- Air turbulence ([Figure 2](#figure--fig:interferometers-air-turbulence))
+- Non linearity
+
+
+
+{{< figure src="/ox-hugo/interferometers_air_turbulence.png" caption="Figure 2: Effect of air turbulences on measurement stability" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Bobroff, N. 1993. “Recent Advances in Displacement Measuring Interferometry.” Measurement Science and Technology 4 (9): 907–26. doi:10.1088/0957-0233/4/9/001.
+
Ducourtieux, Sebastien. 2018. “Toward High Precision Position Control Using Laser Interferometry: Main Sources of Error.” doi:10.13140/rg.2.2.21044.35205.
+
Jang, Yoon-Soo, and Seung-Woo Kim. 2017. “Compensation of the Refractive Index of Air in Laser Interferometer for Distance Measurement: A Review.” International Journal of Precision Engineering and Manufacturing 18 (12): 1881–90. doi:10.1007/s12541-017-0217-y.
+
Loughridge, Russell, and Daniel Y. Abramovitch. 2013. “A Tutorial on Laser Interferometry for Precision Measurements.” In 2013 American Control Conference. doi:10.1109/acc.2013.6580402.
+
Thurner, Klaus, Francesca Paola Quacquarelli, Pierre-François Braun, Claudio Dal Savio, and Khaled Karrai. 2015. “Fiber-Based Distance Sensing Interferometry.” Applied Optics 54 (10). Optical Society of America: 3051–63.
+
+| | **IIR** | **FIR** |
+|------------------|--------------------------------|---------------------------------------|
+| Impulse Response | Infinite | Finite |
+| Phase | No particular phase | Linear phase possible |
+| Stability | Can be unstable | Always stable (feedback not involved) |
+| Analog | Derived from analog filter | Cannot simulate analog response |
+| Num/Den | Both numerator and denominator | Only has numerators |
+| Poles/Zeros | Zeros and poles | Only Zeros |
+
+> Digital filters with finite-duration impulse response (all-zero, or FIR filters) have both advantages and disadvantages compared to infinite-duration impulse response (IIR) filters.
+>
+> FIR filters have the following primary advantages:
+>
+> - They can have exactly linear phase.
+> - They are always stable.
+> - The design methods are generally linear.
+> - They can be realized efficiently in hardware.
+> - The filter startup transients have finite duration.
+>
+> The primary disadvantage of FIR filters is that they often require a much higher filter order than IIR filters to achieve a given level of performance. Correspondingly, the delay of these filters is often much greater than for an equal performance IIR filter.
+
+From (Shaw and Srinivasan 1990)
+
+> The FIR are capable of realizing filters with linear phase shift characteristics and furthermore are less susceptible to signal input and filter coefficient quantization effects.
+> However, their computational demands are excessively large because of the large number of multiplications and additions to be performed at each sampling interval.
+> The effective time delay corresponding to the linear phase shift is large and would have a destabilizing effect in closed loop applications.
+> IIR filters are computationally less demanding. The fact that their phase shift characteristics do not vary linearly with frequency is not a disadvantage in this application.
+> IIR filters are however, more susceptible to signal input and coefficient quantization effects.
+
+From
+
+> FIR filters are fairly common in some areas of control theory. As they usually incur a lot of added phase/time-delay, they are not really usable in the feedback path of regular control systems, but they are useful when the added phase/time-delay is not affecting the system in an adverse way, or when the particular phase response and time-delay is desired.
+>
+> Examples:
+>
+> - Feed-forward control. FIR filters are useful for producing filters that approximate arbitrary frequency responses, hence they can be used to shape a reference signal. A typical example is to use an FIR filter with the inverse frequency response of the plant -- trying to counteract the dynamics of the plant in order to get a desired output. Phase/time-delay is not interfering with the stability or performance since the computation can be done offline. FIR filters can often produce higher performance than IIR filters, especially where there are non-minimum phase zeros.
+
+
+## Moving Average Filter (FIR) {#moving-average-filter--fir}
+
+A moving average is just a basic FIR filtering.
+If the moving average is done over `n` samples, the FIR filter's coefficients are then \\([1/n,\ 1/n,\ \dots,\ 1/n]\\).
+
+For instance:
+
+```matlab
+n = 3;
+
+b = 1/n*ones(n,1);
+```
+
+And we can look at the step response of the filter:
+
+```matlab
+y = ones(3*n, 1);
+y(1:n) = 0;
+
+outhi = filter(b,1,y);
+
+figure;
+plot(outhi, 'ko')
+```
+
+
+
+{{< figure src="/ox-hugo/fir_moving_average_step_response.png" caption="Figure 1: Step response of the FIR "moving average filter"" >}}
+
+Let's look at the response of the filter in the frequency domain.
+
+```matlab
+Fs = 1e3; % Sampling frequency
+
+freqz(b,1,[],Fs);
+```
+
+
+
+{{< figure src="/ox-hugo/fir_moving_average_frequency_reponse.png" caption="Figure 2: Frequency response of the moving average filter" >}}
+
+
+## FIR Design with Matlab {#fir-design-with-matlab}
+
+
+## Bibliography {#bibliography}
+
+
+
Shaw, F. R., and K. Srinivasan. 1990. “Bandwidth Enhancement of Position Measurements Using Measured Acceleration.” Mechanical Systems and Signal Processing 4 (1): 23–38. doi:10.1016/0888-3270(90)90038-m.
+
diff --git a/content/zettels/isotropy_of_parallel_manipulator.md b/content/zettels/isotropy_of_parallel_manipulator.md
new file mode 100644
index 0000000..8d3c262
--- /dev/null
+++ b/content/zettels/isotropy_of_parallel_manipulator.md
@@ -0,0 +1,211 @@
++++
+title = "Isotropy of Parallel Manipulator"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Stewart Platforms]({{< relref "stewart_platforms.md" >}})
+
+Here are some notes on the literature about the isotropy of parallel manipulators.
+
+
+## (Tsai and Huang 2003) {#f86766}
+
+
+## (Fassi, Legnani, and Tosi 2005) {#0ac3c3}
+
+
+## (Bandyopadhyay and Ghosal 2008) {#2ab0b0}
+
+Uses `mathematica` to inverse analytical Jacobian matrix and obtain conditions for isotropy.
+
+
+## (Legnani et al. 2010) {#a75d91}
+
+
+### Abstract {#abstract}
+
+A manipulator exhibits an _isotropic behaviour_ when it has the same performances along all the directions of the working space.
+
+The authors introduce the new concept of _Point of Isotropy_, showing how in some circumstances a non-isotropic manipulator may be transform into an isotropic one simply changing the location of its Tool Center Point (TCP).
+
+
+### Introduction {#introduction}
+
+**Kinetostatic** of parallel manipulator can be studied with the following equations:
+
+\begin{align}
+ \dot{Q} &= J \dot{S} \\\\
+ F\_s &= J^T F\_q \\\\
+ J &= \frac{\partial Q}{\partial S}
+\end{align}
+
+where \\(J\\) is the Jacobian matrix which relates the "gripper" velocity \\(\dot{S}\\) with those of the actuators \\(\dot{Q}\\), as well as the forces \\(F\_q\\) exerted by the actuators with the forces/torques \\(F\_s\\) applied to the gripper.
+
+
+### Isotropy {#isotropy}
+
+A robot is called **isotropic** if at least in one point of the working space some of its kinetostatic properties are homogeneous with respect to all the directions.
+
+
+
+- **Velocity isotropy**: A manipulator is isotropic with respect to the velocity, if it can perform the same velocity along all the directions.
+- **Force isotropy**: A manipulator is isotropic with respect to the force, if it can exert the same force along all the directions.
+- **Stiffness isotropy**: A manipulator is isotropic with respect to the stiffness, if the deflection of the TCP produced by a force applied to it is always in the direction of the force and its magnitude is independent of the force direction.
+- **Mass isotropy**: A manipulator is isotropic with respect to the equivalent gripper mass, if the acceleration of the TCP produced by a force applied to it is always in the direction of the force and its magnitude is independent of the force direction.
+
+
+
+A 6-DoF spatial manipulator is isotropic with respect to velocity if:
+
+\begin{equation}
+J^T J = \diag(j\_{xx}, j\_{yy}, j\_{zz}, j\_{\alpha\alpha}, j\_{\beta\beta}, j\_{\gamma\gamma}) \quad \text{with} \quad j\_{xx}=j\_{yy}=j\_{zz} \quad \text{and} \quad j\_{\alpha\alpha}=j\_{\beta\beta}=j\_{\gamma\gamma}
+\end{equation}
+
+The same condition holds for the force isotropy.
+
+Assuming that the actuators are locked and that they are the only sources of compliance, the force \\(F\_s\\) to be applied to the end effector to produce a motion \\(dS\\) is:
+
+\begin{equation}
+F\_s = \underbrace{J^T K\_q J}\_{K\_s} dS \quad K\_q = \diag(\dots,k\_i,\dots)
+\end{equation}
+
+where \\(k\_i\\) is the stiffness of the ith actuator.
+A general 6-DoF manipulator is **fully isotropic** with respect to stiffness if:
+
+\begin{equation}
+K\_s = \diag(k\_{xx}, k\_{yy}, k\_{zz}, k\_{\alpha\alpha}, k\_{\beta\beta}, k\_{\gamma\gamma}) \quad \text{with} \quad k\_{xx}=k\_{yy}=k\_{zz}=k\_x \quad \text{and} \quad k\_{\alpha\alpha}=k\_{\beta\beta}=k\_{\gamma\gamma}=k\_\phi
+\end{equation}
+
+In this case, it results:
+
+\begin{equation}
+F = k\_x dX, \quad T = k\_\phi d\phi
+\end{equation}
+
+where \\(k\_x\\) is the translation stiffness and \\(k\_\phi\\) is the rotation stiffness.
+This means that:
+
+- forces \\(F\\) applied to the TCP do not produce rotations \\(d\phi\\) but only translations \\(dX\\)
+- the translation is proportional to the force and parallel to it regardless to the force direction
+- torques \\(T\\) applied to the TCP do not produce translations \\(dx\\) but only rotations \\(d\phi\\)
+- the rotation is proportional to the torque and occurs around the same axis as the applied torque
+
+In this special case in which all the actuators are identical to each other, and therefore have the same stiffness \\(k\\), we have \\(K\_s = kJ^TJ\\) and the condition number of the matrix \\(J^TJ\\) can be investigated instead of that of \\(J^T K\_q J\\).
+In this case the isotropy for velocity, force and stiffness are achieve simultaneously.
+
+A manipulator is **partially isotropic** if:
+
+\begin{equation}
+k\_{xx} = k\_{yy} \neq k\_{zz} \quad \text{and/or} \quad k\_{\alpha\alpha} = k\_{\beta\beta} \neq k\_{\gamma\gamma}
+\end{equation}
+
+
+### Point of isotropy {#point-of-isotropy}
+
+A parallel manipulator as a "point of isotropy" if it exists at least one point of its end effector for which the isotropy condition is achieved.
+
+Then conditions are given to find an isotropic TCP.
+
+
+### Application to the Stewart platform {#application-to-the-stewart-platform}
+
+Conditions can be applied to the Stewart platform and isotropy points can be found.
+
+
+## (Tong et al. 2011) {#6febd5}
+
+A parallel manipulator consists of a movable platform, a fixed base, and six struts, each with a linear actuator.
+The struts are partitioned into two groups: the first group with strut 1,3,5 and the second group with strut 2,4,6.
+The attached points of each strut are uniformly spaced on the circumferences of two circles on the movable platform and the fixed base, respectively.
+The three struts in each group are rotational symmetry and repeat every 120 deg.
+This parallel manipulator with this kind of configurations are defined as generalized symmetric Gough-Stewart parallel manipulators (GSGSPMs).
+
+
+
+{{< figure src="/ox-hugo/tong11_architecture_gsgspm.png" caption="Figure 1: Architecture of a GSGSPM" >}}
+
+A compliance center exists consequentially for any GSGSPMs.
+At the compliance center, a GSGSPM is uncoupled.
+
+
+## (Legnani et al. 2012) {#633281}
+
+A manipulator is called partially of totally decoupled if the general movements of the robot can be subdivided in elementary tasks, each actuated by one or a group of actuators.
+Decoupling may be referred to the end effector coordinate or to local kinetostatic properties related to the Jacobian.
+
+- Total decoupling occurs when the Jacobian is diagonal
+- Partial decoupling is when the Jacobian is triangular
+- Block decoupling is when the Jacobian is block diagonal
+
+
+
+{{< figure src="/ox-hugo/legnani12_isotropic_pkm.png" caption="Figure 2: An isotropic PKM" >}}
+
+
+
+The paper discusses the concepts of isotropy and decoupling in n-DoF PKM.
+The role of different Jacobian matrices in the isotropy, decoupling and in general mobility analysis of manipulators is recalled.
+It is highlighted how isotropy and decoupling may be achieved for pure translational manipulators in the whole workspace while rotational manipulators maybe decoupling in only one configuration.
+
+
+
+
+## (Ding et al. 2014) {#623b74}
+
+
+## (Afzali-Far 2016) {#6e127c}
+
+> The problem of dynamic isotropy, as an optimal design solution for hexapods, is also addressed in this dissertation.
+> **Dynamic isotropy is a condition in which all eigenfrequencies of a robot are equal**.
+
+
+## (Wu et al. 2018) {#033041}
+
+Isotropy => J\*J' = a\*I
+
+- Stiffness isotropy = static isotropy
+- velocity isotropy = kinematic isotropy
+
+They also proved that the symmetric generalized Stewart platform at a neutral position could be fully decoupled by adjusting the payload's center of mass to coincide with its **compliance center**. (Tong et al. 2011)
+
+Dynamic isotropy => same resonance frequency for all suspension modes.
+
+
+
+{{< figure src="/ox-hugo/wu18_stewart_picture.png" caption="Figure 3: Optimized Stewart platform" >}}
+
+
+## (Yang et al. 2020) {#e39296}
+
+
+
+This paper proposes a novel concept, namely _isotropic control_ to solve the problem of having identical performance in all DoF.
+Dynamic equations of parallel mechanisms with base excitation are established and analyzed.
+An isotropic control framework is then synthesized in modal space.
+The multi-DoF system is transformed into multi identical single-DoF systems.
+Under the framework of isotropic control, parallel mechanisms obtain an identical frequency response for all modes.
+An identical corner frequency, active damping, and rate of low-frequency transmissibility are achieved for all modes.
+
+
Afzali-Far, Behrouz. 2016. “Vibrations and Dynamic Isotropy in Hexapods-Analytical Studies.” Lund University.
+
Bandyopadhyay, Sandipan, and Ashitava Ghosal. 2008. “An Algebraic Formulation of Kinematic Isotropy and Design of Isotropic 6-6 Stewart Platform Manipulators.” Mechanism and Machine Theory 43 (5): 591–616. doi:10.1016/j.mechmachtheory.2007.05.003.
+
Ding, Boyin, Benjamin S. Cazzolato, Richard M. Stanley, Steven Grainger, and John J. Costi. 2014. “Stiffness Analysis and Control of a Stewart Platform-Based Manipulator with Decoupled Sensor-Actuator Locations for Ultrahigh Accuracy Positioning under Large External Loads.” Journal of Dynamic Systems, Measurement, and Control 136 (6). doi:10.1115/1.4027945.
+
Fassi, Irene, Giovanni Legnani, and Diego Tosi. 2005. “Geometrical Conditions for the Design of Partial or Full Isotropic Hexapods.” Journal of Robotic Systems 22 (10): 507–18. doi:10.1002/rob.20074.
+
Kang, Shengzheng, Hongtao Wu, Shengdong Yu, Yao Li, Xiaolong Yang, and Jiafeng Yao. 2020. “Modeling and Control of a Six-Axis Parallel Piezo-Flexural Micropositioning Stage with Cross-Coupling Hysteresis Nonlinearities.” In 2020 IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM), 1350–55. IEEE.
+
Legnani, G., I. Fassi, H. Giberti, S. Cinquemani, and D. Tosi. 2012. “A New Isotropic and Decoupled 6-Dof Parallel Manipulator.” Mechanism and Machine Theory 58: 64–81. doi:10.1016/j.mechmachtheory.2012.07.008.
+
Legnani, Giovanni, D Tosi, I Fassi, Hermes Giberti, and Simone Cinquemani. 2010. “The ‘Point of Isotropy’ and Other Properties of Serial and Parallel Manipulators.” Mechanism and Machine Theory 45 (10). Elsevier: 1407–23.
+
Tong, Zhizhong, Jingfeng He, Hongzhou Jiang, and Guangren Duan. 2011. “Optimal Design of a Class of Generalized Symmetric Gough-Stewart Parallel Manipulators with Dynamic Isotropy and Singularity-Free Workspace.” Robotica 30 (2): 305–14. doi:10.1017/s0263574711000531.
+
Tsai, K.Y., and K.D. Huang. 2003. “The Design of Isotropic 6-Dof Parallel Manipulators Using Isotropy Generators.” Mechanism and Machine Theory 38 (11): 1199–1214. doi:10.1016/s0094-114x(03)00067-3.
+
Wu, Ying, Kaiping Yu, Jian Jiao, Dengqing Cao, Weichao Chi, and Jie Tang. 2018. “Dynamic Isotropy Design and Analysis of a Six-Dof Active Micro-Vibration Isolation Manipulator on Satellites.” Robotics and Computer-Integrated Manufacturing 49: 408–25. doi:10.1016/j.rcim.2017.08.003.
+
Yang, Xiaolong, Hongtao Wu, Yao Li, Shengzheng Kang, Bai Chen, Huimin Lu, Carman K. M. Lee, and Ping Ji. 2020. “Dynamics and Isotropic Control of Parallel Mechanisms for Vibration Isolation.” IEEE/ASME Transactions on Mechatronics 25 (4): 2027–34. doi:10.1109/tmech.2020.2996641.
+
diff --git a/content/zettels/jacobian.md b/content/zettels/jacobian.md
new file mode 100644
index 0000000..0c8c4c0
--- /dev/null
+++ b/content/zettels/jacobian.md
@@ -0,0 +1,120 @@
++++
+title = "Jacobian"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Jacobian Matrices of a Parallel Manipulator {#jacobian-matrices-of-a-parallel-manipulator}
+
+From (Taghirad 2013):
+
+> The Jacobian matrix not only reveals the **relation between the joint variable velocities of a parallel manipulator to the moving platform linear and angular velocities**, it also constructs the transformation needed to find the **actuator forces from the forces and moments acting on the moving platform**.
+
+(NO_ITEM_DATA:merlet06_jacob_manip_condit_number_accur_paral_robot)
+
+
+## Computing the Jacobian Matrix {#computing-the-jacobian-matrix}
+
+How to derive the Jacobian matrix is well explained in chapter 4 of (Taghirad 2013) ([notes]({{< relref "taghirad13_paral.md" >}})).
+
+Consider parallel manipulator shown in [Figure 1](#figure--fig:jacobian-geometry) (it represents a Stewart platform).
+
+Kinematic loop closures are:
+
+\begin{equation}
+{}^A\bm{O}\_B = {}^A\bm{a}\_i + l\_i \hat{\bm{s}}\_i + {}^A\bm{b}\_i
+\end{equation}
+
+Which can be written as:
+
+\begin{equation}
+{}^A\bm{p} = {}^A\bm{a}\_i + l\_i {}^A\hat{\bm{s}}\_i + {}^A\bm{R}\_B {}^B\bm{b}\_i
+\end{equation}
+
+with
+
+- \\({}^A\bm{p} = {}^A\bm{O}\_B\\) the position vector of the moving platform w.r.t. frame \\(\\{\bm{A}\\}\\)
+- \\({}^A\bm{R}\_B\\) the rotation matrix of the moving platform
+- \\({}^A\bm{a}\_i\\) the position vector of the \\(i\\)'th limb of the fixed platform w.r.t. frame \\(\\{\bm{A}\\}\\)
+- \\({}^B\bm{b}\_i\\) the position vector of the \\(i\\)'th limb of the moving platform w.r.t. frame \\(\\{\bm{B}\\}\\)
+- \\(\bm{\hat{s}}\_i\\) the limb unit vector
+- \\(l\_i\\) is the limb length
+
+By taking the time derivative, we obtain the following **Velocity Loop Closures**:
+
+\begin{equation}
+{}^A\hat{\bm{s}}\_i {}^A\bm{v}\_p + ({}^A\bm{b}\_i \times \hat{\bm{s}}\_i) {}^A\bm{\omega} = \dot{l}\_i \label{eq:velocity\_loop\_closure}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/jacobian_geometry.png" caption="Figure 1: Example of parallel manipulator with defined frames and vectors" >}}
+
+
+## Velocities of joints and of moving platform {#velocities-of-joints-and-of-moving-platform}
+
+The Jacobian matrix links the joint variable velocities to the moving platform linear and angular velocities.
+
+\begin{equation}
+ \dot{\bm{q}} = \bm{J} \dot{\bm{\mathcal{X}}}
+\end{equation}
+
+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:
+
+\begin{equation}
+ \bm{J} = \begin{bmatrix}
+ {{}^A\hat{\bm{s}}\_1}^T & ({}^A\bm{b}\_1 \times {}^A\hat{\bm{s}}\_1)^T \\\\
+ {{}^A\hat{\bm{s}}\_2}^T & ({}^A\bm{b}\_2 \times {}^A\hat{\bm{s}}\_2)^T \\\\
+ {{}^A\hat{\bm{s}}\_3}^T & ({}^A\bm{b}\_3 \times {}^A\hat{\bm{s}}\_3)^T \\\\
+ {{}^A\hat{\bm{s}}\_4}^T & ({}^A\bm{b}\_4 \times {}^A\hat{\bm{s}}\_4)^T \\\\
+ {{}^A\hat{\bm{s}}\_5}^T & ({}^A\bm{b}\_5 \times {}^A\hat{\bm{s}}\_5)^T \\\\
+ {{}^A\hat{\bm{s}}\_6}^T & ({}^A\bm{b}\_6 \times {}^A\hat{\bm{s}}\_6)^T
+ \end{bmatrix}
+\end{equation}
+
+And therefore \\(\bm{J}\\) then **depends only** on:
+
+- \\({}^A\hat{\bm{s}}\_i\\) the orientation of the limbs
+- \\({}^A\bm{b}\_i\\) the position of the joints with respect to \\(O\_B\\) and express in \\(\\{\bm{A}\\}\\).
+
+For the platform in [Figure 1](#figure--fig:jacobian-geometry), we have:
+
+\begin{equation}
+\begin{bmatrix} \dot{l}\_1 \\\ \dot{l}\_2 \\\ \dot{l}\_3 \\\ \dot{l}\_4 \\\ \dot{l}\_5 \\\ \dot{l}\_6 \end{bmatrix} =
+\begin{bmatrix}
+ {{}^A\hat{\bm{s}}\_1}^T & ({}^A\bm{b}\_1 \times {}^A\hat{\bm{s}}\_1)^T \\\\
+ {{}^A\hat{\bm{s}}\_2}^T & ({}^A\bm{b}\_2 \times {}^A\hat{\bm{s}}\_2)^T \\\\
+ {{}^A\hat{\bm{s}}\_3}^T & ({}^A\bm{b}\_3 \times {}^A\hat{\bm{s}}\_3)^T \\\\
+ {{}^A\hat{\bm{s}}\_4}^T & ({}^A\bm{b}\_4 \times {}^A\hat{\bm{s}}\_4)^T \\\\
+ {{}^A\hat{\bm{s}}\_5}^T & ({}^A\bm{b}\_5 \times {}^A\hat{\bm{s}}\_5)^T \\\\
+ {{}^A\hat{\bm{s}}\_6}^T & ({}^A\bm{b}\_6 \times {}^A\hat{\bm{s}}\_6)^T
+\end{bmatrix}
+\begin{bmatrix} {}^Av\_x \\\ {}^Av\_y \\\ {}^Av\_z \\\ {}^A\omega\_x \\\ {}^A\omega\_y \\\ {}^A\omega\_z \end{bmatrix}
+\end{equation}
+
+
+## Static Forces in Parallel Manipulators {#static-forces-in-parallel-manipulators}
+
+The **Jacobian matrix** constructs the **transformation needed to find the actuator forces** \\(\bm{\tau}\\) **from the wrench acting on the moving platform** \\(\bm{\mathcal{F}}\\):
+
+\begin{equation}
+ \bm{\mathcal{F}} = \bm{J}^T \bm{\tau}
+\end{equation}
+
+in which \\(\bm{\tau} = [f\_1, f\_2, \cdots, f\_6]^T\\) is the vector of actuator forces, and \\(\bm{\mathcal{F}} = [\bm{f}, \bm{n}]^T\\) is the 6D wrench applied by the manipulator to the environment at the point \\(\bm{O}\_B\\).
+
+Note that it is here assumed that the forces are static and **along the limb axis** \\(\hat{\bm{s}}\_i\\).
+
+
+## Bibliography {#bibliography}
+
+
+
Taghirad, H. 2013. Parallel Robots : Mechanics and Control. Boca Raton, FL: CRC Press.
diff --git a/content/zettels/matlab.md b/content/zettels/matlab.md
new file mode 100644
index 0000000..41c119f
--- /dev/null
+++ b/content/zettels/matlab.md
@@ -0,0 +1,116 @@
++++
+title = "Matlab"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Simulink]({{< relref "simulink.md" >}})
+
+
+## Resources on Matlab {#resources-on-matlab}
+
+Books:
+
+- (Higham 2017)
+- (Attaway 2018)
+- (OverFlow 2018)
+- (Johnson 2010)
+- (Hahn and Valentine 2016)
+
+
+## Useful Commands {#useful-commands}
+
+| Command | Description |
+|------------------------|-------------------------------------------------------------|
+| `desktop` | Open the Matlab Desktop |
+| `workspace` | Open the Workspace |
+| `who` | List all variables in the workspace |
+| `edit ` | Edit the file using Matlab Desktop (usefully for debugging) |
+| `help ` | |
+| `doc ` | |
+| `checkcode ` | Check Matlab code files for possible problems |
+| `preferences` | Open Matlab preferences |
+
+
+## Tips {#tips}
+
+- Folder that starts with a `+` are automatically added to the path.
+ It is useful to add function inside such folder.
+ Then the function is accessible with `folder.function`.
+
+
+## Figures {#figures}
+
+
+### Bode Plot {#bode-plot}
+
+
+## Snippets {#snippets}
+
+
+### Do not show legend for one plot {#do-not-show-legend-for-one-plot}
+
+```matlab
+ figure;
+ hold on;
+ plot(x, y1, 'DisplayName, 'lengendname');
+ plot(x, y2, 'HandleVisibility', 'off');
+ hold off;
+ legend('Location', 'northeast');
+```
+
+
+## Linux Installation {#linux-installation}
+
+If a single user is using the Matlab installation on the machine:
+
+```bash
+ sudo chown -R $LOGNAME: /usr/local/MATLAB/R2017b
+```
+
+Then, Toolboxes can be installed by the user without any problem.
+
+To install Toolboxes, the best is to Download the Matlab installer from mathworks and just select the wanted toolboxes.
+
+
+## Used Toolboxes {#used-toolboxes}
+
+Nice functions:
+
+-
+-
+- Matlab's `exportgraphics`
+- `vfit3` ([link](https://www.sintef.no/projectweb/vectorfitting/)): used to identify transfer functions
+
+
+## Debug Scripts {#debug-scripts}
+
+
+
+
+| Command | Effect |
+|------------|--------------------------------------------------------------|
+| `dbclear` | Remove breakpoints |
+| `dbcont` | Resume execution |
+| `dbdown` | Reverse dbup workspace shift |
+| `dbquit` | Quit debug mode |
+| `dbstack` | Function call stack |
+| `dbstatus` | List all breakpoints |
+| `dbstep` | Execute next executable line from current breakpoint |
+| `dbstop` | Set breakpoints for debugging |
+| `dbtype` | Display file with line numbers |
+| `dbup` | Shift current workspace to workspace of caller in debug mode |
+| `keyboard` | Give control to keyboard |
+| `echo` | Display statements during function execution |
+
+
+## Bibliography {#bibliography}
+
+
+
Attaway, Stormy. 2018. MATLAB : a Practical Introduction to Programming and Problem Solving. Amsterdam: Butterworth-Heinemann.
+
Hahn, Brian, and Daniel T Valentine. 2016. Essential MATLAB for Engineers and Scientists. Academic Press.
+
Higham, Desmond. 2017. MATLAB Guide. Philadelphia: Society for Industrial and Applied Mathematics.
+
Johnson, Richard K. 2010. The Elements of MATLAB Style. Cambridge University Press.
+
OverFlow, Stack. 2018. MATLAB Notes for Professionals. GoalKicker.com.
diff --git a/content/zettels/motor_commutation.md b/content/zettels/motor_commutation.md
new file mode 100644
index 0000000..e9abd07
--- /dev/null
+++ b/content/zettels/motor_commutation.md
@@ -0,0 +1,100 @@
++++
+title = "Motor Commutation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Motors]({{< relref "motors.md" >}})
+
+
+## Sensors {#sensors}
+
+- Hall effect sensors
+- [Encoders]({{< relref "encoders.md" >}})
+
+
+## Electrical Commutation {#electrical-commutation}
+
+For a 3 phase motor (linear or angular), the force constant is a function of the position.
+The motor can be designed in such a way that the relation is close to a sinusoidal function or a trapezoidal function.
+
+
+
+{{< figure src="/ox-hugo/motor_emf_waveform.png" caption="Figure 1: EMF Waveform" >}}
+
+
+### "Hard" commutation {#hard-commutation}
+
+
+
+{{< figure src="/ox-hugo/motor_hard_commutation.png" caption="Figure 2: By changing the direction of the current at the zero force positions of each coil (dashed), an almost constant force-constant of the total actuator is obtained." >}}
+
+
+### Sinusoidal Commutation {#sinusoidal-commutation}
+
+
+
+{{< figure src="/ox-hugo/motor_sin_commutation.png" caption="Figure 3: Three phase commutation with a sinusoidal control of the currents in each coil segment (\\(I\_R, I\_S, I\_T\\)) in phase with their spatial sinusoidal force-constant \\(B l = k\\) values (\\(k\_R, k\_S, k\_T\\)) results in a force per segment with a spatial frequency that is double the original spatial frequency of the coils. The resulting total force of the three coil segments is the sum of the values of the force in each segment and is independent of the position." >}}
+
+
+## Transformations Theory {#transformations-theory}
+
+
+### Clarke Transformation {#clarke-transformation}
+
+
+
+{{< figure src="/ox-hugo/motor_clarke_transformation.png" caption="Figure 4: Clarke transformation" >}}
+
+\begin{align}
+I\_{\alpha} &= \frac{2}{3}(I\_a) - \frac{1}{3}(I\_b - I\_c) \\\\
+I\_{\beta} &= \frac{2}{\sqrt{3}}(I\_b - I\_c)
+\end{align}
+
+Usually:
+
+- \\(I\_{\alpha} = I\_a\\): the \\(\alpha\\) axis and the \\(a\\) axis are aligned
+- \\(I\_a + I\_b + I\_c = 0\\) because of the "star" configuration of the 3-phase motor
+
+In that case, the equations simplifies to:
+
+\begin{align}
+I\_{\alpha} &= I\_a \\\\
+I\_{\beta} &= \frac{1}{\sqrt{3}}(I\_a + 2 I\_b)
+\end{align}
+
+
+### Inverse Clarke Transformation {#inverse-clarke-transformation}
+
+\begin{align}
+I\_a &= I\_{\alpha} \\\\
+I\_b &= \frac{-1}{2} I\_{\alpha} + \frac{\sqrt{3}}{2} I\_{\beta} \\\\
+I\_c &= \frac{-1}{2} I\_{\alpha} - \frac{\sqrt{3}}{2} I\_{\beta}
+\end{align}
+
+
+### Park Transformation {#park-transformation}
+
+
+
+{{< figure src="/ox-hugo/motor_park_transformation.png" caption="Figure 5: Park transformation" >}}
+
+\begin{align}
+I\_{d} &= I\_{\alpha} \cos(\theta) + I\_{\beta} \sin(\theta) \\\\
+I\_{q} &= I\_{\beta} \cos(\theta) - I\_{\alpha} \sin(\theta)
+\end{align}
+
+
+### Inverse Park Transformation {#inverse-park-transformation}
+
+\begin{align}
+I\_{\alpha} &= I\_d \cos(\theta) - I\_q \sin(\theta) \\\\
+I\_{\beta} &= I\_d \sin(\theta) + I\_q \cos(\theta)
+\end{align}
+
+
+## Bibliography {#bibliography}
+
+
Murugesan, S. 1981. “An Overview of Electric Motors for Space Applications.” IEEE Transactions on Industrial Electronics and Control Instrumentation IECI-28 (4): 260–65. doi:10.1109/TIECI.1981.351050.
+
diff --git a/content/zettels/multivariable_control.md b/content/zettels/multivariable_control.md
new file mode 100644
index 0000000..065f47b
--- /dev/null
+++ b/content/zettels/multivariable_control.md
@@ -0,0 +1,42 @@
++++
+title = "Multivariable Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Norms]({{< relref "norms.md" >}})
+
+A very nice book about Multivariable Control is (Skogestad and Postlethwaite 2007)
+
+
+## Transfer functions for Multi-Input Multi-Output systems {#transfer-functions-for-multi-input-multi-output-systems}
+
+{{< figure src="/ox-hugo/mimo_tf.png" >}}
+
+\\[ T\_i = -\frac{u}{d\_i} = (I + KG)^{-1} KG \\]
+\\[ T\_o = -\frac{p\_o}{d\_o} = (I + GK)^{-1} GK \\]
+\\[ S\_i = \frac{p\_i}{d\_i} = (I + KG)^{-1} \\]
+\\[ S\_o = \frac{y}{d\_o} = (I + GK)^{-1} \\]
+
+
+## Measures of interaction {#measures-of-interaction}
+
+- Interaction index (for \\(2 \times 2\\) plant):
+ \\[ \phi = \frac{g\_{12}g\_{21}}{g\_{11}g\_{22}} \\]
+ When \\(\phi\\) is close to zero, this means there is no interaction.
+- The **relative gain array** of a square matrix:
+ \\[ \text{RGA}(G) \triangleq G \times ( G^{-1})^T \\]
+
+
+## Stability {#stability}
+
+- **Characteristic Loci**: Eigenvalues of \\(G(j\omega)\\) plotted in the complex plane
+- **Generalized Nyquist Criterion**: If \\(G(s)\\) has \\(p\_0\\) unstable poles, then the closed-loop system with return ratio \\(kG(s)\\) is stable if and only if the characteristic loci of \\(kG(s)\\), taken together, encircle the point \\(-1\\), \\(p\_0\\) times anti-clockwise, assuming there are no hidden modes
+
+
+## Bibliography {#bibliography}
+
+
+
Skogestad, S., and I. Postlethwaite. 2007. Multivariable Feedback Control: Analysis and Design - Second Edition. John Wiley.
diff --git a/content/zettels/negative_stiffness.md b/content/zettels/negative_stiffness.md
new file mode 100644
index 0000000..350370a
--- /dev/null
+++ b/content/zettels/negative_stiffness.md
@@ -0,0 +1,27 @@
++++
+title = "Negative Stiffness"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+Negative stiffness can be used to reduce the effective stiffness of a [Flexible Joints]({{< relref "flexible_joints.md" >}}).
+
+It is well explained in (Werner 2010).
+
+
+
+{{< figure src="/ox-hugo/negative_stiffness_schematic.png" caption="Figure 1: Example of a negative stiffness. The proloaded compression spring `Cc` is used to counteract the spring `Cs`" >}}
+
+
+
+{{< figure src="/ox-hugo/negative_stiffness_architecture.png" caption="Figure 2: The following architecture is proposed to make the implementation easier" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Werner, C. 2010. “A 3D Translation Stage for Metrological AFM.” Phd Thesis 1 (Research TU/e / Graduation TU/e), Mechanical Engineering; Technische Universiteit Eindhoven. doi:10.6100/IR692270.
+
diff --git a/content/zettels/nonlinear_control.md b/content/zettels/nonlinear_control.md
new file mode 100644
index 0000000..81e6442
--- /dev/null
+++ b/content/zettels/nonlinear_control.md
@@ -0,0 +1,16 @@
++++
+title = "Nonlinear Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+Lecture about Nonlinear Systems at MIT ([link](http://web.mit.edu/nsl/www/videos/lectures.html)).
+
+
+## Bibliography {#bibliography}
+
+
+
+A norm of \\(e\\) (which may be a vector, matrix, signal of system) is a real number, denoted \\(\\|e\\|\\), that satisfies the following properties:
+
+1. Non-negative: \\(\\|e\\| \ge 0\\)
+2. Positive: \\(\\|e\\| = 0 \Longleftrightarrow e = 0\\)
+3. Homogeneous: \\(\\|\alpha \cdot e\\| = |\alpha| \cdot \\|e\\|\\) for all complex scalars \\(\alpha\\)
+4. Triangle inequality: \\(\\|e\_1 + e\_2\\| \le \\|e\_1\\| + \\|e\_2\\|\\)
+
+
+
+A norm on a matrix \\(\\|A\\|\\) is a matrix norm if, in addition to the four norm properties, it also satisfies the multiplicative property:
+\\[ \\|AB\\| \le \\|A\\| \cdot \\|B\\| \\]
+
+
+
+- **Sum matrix norm**:
+ \\[ \\|A\\|\_\text{sum} \triangleq \sum\_{i,j} |a\_{ij}| \\]
+- **Frobenius matrix norm (Euclidean Norm)**:
+ \\[ \\|A\\|\_F \triangleq \sqrt{\sum\_{i,j} |a\_{ij}|^2} = \sqrt{\text{tr}(A^H A)} \\]
+- **Max element norm**: (which is not a _matrix_ norm)
+ \\[ \\|A\\|\_\text{max} \triangleq \max\_{i,j} |a\_{ij}| \\]
+
+
+## Induced Matrix Norms {#induced-matrix-norms}
+
+Induced matrix norms are important because of their close relationship to signal amplification in systems.
+
+Consider the figure below where \\(w\\) is the input vector, \\(z\\) the output vector and where the "amplification" or "gain" of the matrix \\(A\\) is defined by the ration \\(\\|z\\|/\\|w\\|\\).
+
+{{< figure src="/ox-hugo/induced_matrix_norm.png" >}}
+
+The maximum gain for all possible input directions is given by the **induced norm**:
+\\[ \\|A\\|\_{ip} \triangleq \max\_{w \neq 0} \frac{\\|Aw\\|\_p}{\\|w\\|\_p} \\]
+
+Thus, the induced norm gives the largest possible "amplification" of the matrix.
+The following equivalent definition is also used:
+\\[ \\|A\\|\_{ip} = \max\_{\\|w\\|\_p \le 1} \\|Aw\\|\_p \\]
+
+
+## Signal Norms {#signal-norms}
+
+For signals, we may compute the norm in two steps:
+
+1. "Sum up" the channels at a given time using a vector norm.
+ For a scalar, we simply take the absolute value.
+2. "Sum up" in time using a temporal norm.
+
+We normally use the same p-norm both for the vector and the signal.
+
+- **1-norm in time (Integral Absolute Error)**:
+ \\[ \\|e(t)\\|\_1 = \int\_{-\infty}^{\infty} \sum\_i |e\_i(\tau)| d\tau \\]
+- **2-norm in time (Quadratic Norm)**:
+ \\[ \\|e(t)\\|\_2 = \sqrt{\int\_{-\infty}^{\infty} \sum\_i |e\_i(\tau)|^2 d\tau} \\]
+- **\\(\infty\text{-norm}\\) in time (Peak value in time)**:
+ \\[ \\|e(t)\\|\_\infty = \max\_\tau \left( \max\_i |e\_i(\tau)| \right) \\]
+- **Power-Norm or RMS-Norm**:
+ \\[ \\|e(t)\\|\_\text{pow} = \lim\_{T\to \infty} \sqrt{\frac{1}{2T} \int\_{-T}^T \sum\_i |e\_i(\tau)|^2 d\tau} \\]
+
+
+## Signal Interpretation of Various System Norms {#signal-interpretation-of-various-system-norms}
+
+Consider a system \\(G\\) with input \\(d\\) and output \\(e\\), such that:
+\\[ e = G d \\]
+
+For performance, we may want the output signal \\(e\\) to be "small" for any allowed input signals \\(d\\).
+We therefore need to specify:
+
+1. What \\(d\\) are allowed. (Which set does \\(d\\) belong to?)
+ Some possible inputs signal sets are:
+ - \\(d(t)\\) consists of impulses \\(\delta(t)\\).
+ - These generate step changes in the states.
+ - \\(d(t) = \sin(\omega t)\\) with fixed frequency
+ - \\(d(t)\\) is bounded in energy \\(\\|d(t)\\|\_2 \le 1\\)
+ - \\(d(t)\\) is bounded in power \\(\\|d(t)\\|\_\text{pow} \le 1\\)
+ - \\(d(t)\\) is bounded in magnitude \\(\\|d(t)\\|\_\infty \le 1\\)
+2. What we mean by "small". (Which norm should be use for \\(e\\)?)
+ To measure the output signal, we may consider the following norms:
+ - 2-norm (energy): \\(\\|e(t)\\|\_2\\)
+ - \\(\infty\text{-norm}\\) (peak magnitude): \\(\\|e(t)\\|\_\infty\\)
+ - Power: \\(\\|e(t)\\|\_\text{pow}\\)
+
+We now consider which system norms result from the definition of input classes and output norms ([Table 1](#table--tab:system-norms)).
+
+
+
+ Table 1:
+ System norms for sets of inputs signals and three different output norms
+
+
+Consider a proper linear stable system \\(G(s)\\).
+The \\(\mathcal{H}\_\infty\\) norm is the peak value of its maximum singular value:
+\\[ \\|G(s)\\|\_\infty \triangleq \max\_{\omega} \overline{\sigma}(G(j\omega)) \\]
+
+
+
+In terms of signals, the \\(\mathcal{H}\_\infty\\) norm can be interpreted as follows:
+
+- it is the worst case steady-state gain for sinusoidal inputs at any frequency
+- it is equal to the 2-norm in the time domain:
+ \\[ \\|G(s)\\|\_\infty = \max\_{d(t)} \frac{\\|e(t)\\|\_2 \neq 0}{\\|d(t)\\|\_2} = \max\_{\\|d(t)\\|\_2 = 1} \\|e(t)\\|\_2 \\]
+
+
+### \\(\mathcal{H}\_2\\) Norm {#mathcal-h-2-norm}
+
+
+
+Consider a strictly proper system \\(G(s)\\).
+The \\(\mathcal{H}\_2\\) norm is:
+
+\begin{align\*}
+\\|G(s)\\|\_2 &\triangleq \sqrt{\frac{1}{2\pi} \int\_{-\infty}^{\infty} \text{tr}\left(G(j\omega)^HG(j\omega)\right) d\omega} \\\\
+ &= \sqrt{\frac{1}{2\pi} \int\_{-\infty}^{\infty} \sum\_i {\sigma\_i}^2(G(j\omega)) d\omega}
+\end{align\*}
+
+
+
+In terms of signals, the \\(\mathcal{H}\_\infty\\) norm can be interpreted as follows:
+
+- it is a measure of the expected RMS value of the output to white noise excitation
+
+The \\(\mathcal{H}\_2\\) is very useful when combined to [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting.md" >}}).
+
+As explained in (Monkhorst 2004), the \\(\mathcal{H}\_2\\) norm has a stochastic interpretation:
+
+> The squared \\(\mathcal{H}\_2\\) norm can be interpreted as the output variance of a system with zero mean white noise input.
+
+
+## Bibliography {#bibliography}
+
+
+
Monkhorst, W. 2004. “Dynamic Error Budgeting, a Design Approach.” Delft University.
+
Toivonen, Hannu T. 2002. “Robust Control Methods.” Abo Akademi University.
+
Zhang, Weidong. 2011. Quantitative Process Control Theory. CRC Press.
+
NO_ITEM_DATA:skogestad05_multiv_feedb_contr
+
diff --git a/content/zettels/nyquist_stability_criterion.md b/content/zettels/nyquist_stability_criterion.md
new file mode 100644
index 0000000..2718efe
--- /dev/null
+++ b/content/zettels/nyquist_stability_criterion.md
@@ -0,0 +1,73 @@
++++
+title = "Nyquist stability criterion"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Theory {#theory}
+
+The main reason why the Nyquist plot is used it that it can be used with the experimental FRF data!
+
+The zeros and pole of a MIMO system are the zeros and pole of the determinant of \\(G(s)\\).
+\\[ \det(G(s)) = \frac{z\_G(s)}{p\_G(s)} \\]
+The polynomial \\(p\_G(s)\\) is normally called the **open-loop characteristic** polynomial.
+
+In a MIMO feedback system:
+
+- The transfer function matrix open-loop is:
+ \\[ L(s) = G(s) K(s) \neq K(s) G(s) \\]
+- The transfer function matrix closed-loop is:
+ \\[ T(s) = [I + L(s)]^{-1} L(s) \\]
+- **Return difference matrix**:
+ \\[ F(s) = [I + L(s)] \\]
+
+The closed-loop system is stable if the zeros of the closed-loop characteristic polynomial lie in the complex open left half plane.
+There are the zeros of:
+\\[ \det(I + GK) \\]
+
+
+
+**MIMO Nyquist stability criteria**:
+\\[ \det(I + G(s)K(s)) = 0 \quad \text{for} \quad \text{Re}(s)<0 \\]
+To check the closed-loop stability graphically, plot the Nyquist of \\(\det(I + GK)\\) and evaluate the encirclement with respect to the point \\((0,0)\\).
+The Nyquist plot is the image of the imaginary axis (\\(j\omega\\)) under \\(\det(I + GK)\\), i.e. it is the evolution of \\(\det(I + G(j\omega)K(j\omega))\\) in the complex plane.
+Note that there is a single plot, even in the MIMO case.
+
+
+
+
+
+**Eigenvalue loci**:
+The eigenvalue loci (sometimes called the characteristic loci) are defined as the eigenvalues of the frequency response function of the open-loop transfer function matrix \\(G(s)K(s)\\).
+This time, there are \\(n\\) plots, where \\(n\\) is the size of the system.
+
+
+
+
+## Matlab Example {#matlab-example}
+
+Sure we have identified a system with 6 inputs and 6 outputs.
+The Matlab object has dimension `6 x 6 x n` with `n` is the number of frequency points.
+
+First, compute the open-loop gain:
+
+```matlab
+L = zeros(6, 6, length(f));
+
+for i_f = 1:length(f)
+ L(:,:,i_f) = squeeze(G(:,:,i_f))*freqresp(K, f(i_f), 'Hz');
+end
+```
+
+Then, compute the eigenvalues of this open-loop gain:
+Finally, plot the (complex) eigenvalues in the complex plane:
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/optical_fibers.md b/content/zettels/optical_fibers.md
new file mode 100644
index 0000000..7e4bb51
--- /dev/null
+++ b/content/zettels/optical_fibers.md
@@ -0,0 +1,37 @@
++++
+title = "Optical Fibers"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Connectors {#connectors}
+
+
+
+{{< figure src="/ox-hugo/optical_fibers_sc.png" caption="Figure 1: SC Connector (used for instance with Attocube)" >}}
+
+
+
+{{< figure src="/ox-hugo/optical_fibers_fc.png" caption="Figure 2: FC connector" >}}
+
+PC connector is used with Fabry-Perot interferometers when we wish to have some reflection at the end of the fiber.
+Otherwise, APC connectors are used.
+
+
+
+{{< figure src="/ox-hugo/optical_connector_PC_APC.png" caption="Figure 3: PC (usually black) and APC (usually green) connectors" >}}
+
+
+## Multi-mode and Single-mode fibers {#multi-mode-and-single-mode-fibers}
+
+If laser is used (fiber interferometer for instance), a single-mode fiber should be used and the wavelength of the mode should be matched with the wavelength of the laser.
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/piezoelectric_actuators.md b/content/zettels/piezoelectric_actuators.md
new file mode 100644
index 0000000..10cd681
--- /dev/null
+++ b/content/zettels/piezoelectric_actuators.md
@@ -0,0 +1,225 @@
++++
+title = "Piezoelectric Actuators"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Actuators]({{< relref "actuators.md" >}}), [Voltage Amplifier]({{< relref "voltage_amplifier.md" >}})
+
+
+## Piezoelectric Stack Actuators {#piezoelectric-stack-actuators}
+
+
+### Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|----------------------------------------------------------------------------------------------------------------------|-----------|
+| [Cedrat](http://www.cedrat-technologies.com/) | France |
+| [PI](https://www.physikinstrumente.com/en/) | USA |
+| [Piezo System](https://www.piezosystem.com/products/piezo_actuators/stacktypeactuators/) | Germany |
+| [Noliac](http://www.noliac.com/products/actuators/plate-stacks/) | Denmark |
+| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=8700) | USA |
+| [PiezoDrive](https://www.piezodrive.com/actuators/) | Australia |
+| [Mechano Transformer](http://www.mechano-transformer.com/en/products/10.html) | Japan |
+| [CoreMorrow](http://www.coremorrow.com/en/pro-9-1.html) | China |
+| [PiezoData](https://www.piezodata.com/piezo-stack-actuator-2/) | China |
+| [Queensgate](https://www.nanopositioning.com/product-category/nanopositioning/nanopositioning-actuators-translators) | UK |
+| [Matsusada Precision](https://www.matsusada.com/product/pz/) | Japan |
+| [Sinocera](http://www.china-yec.net/piezoelectric-ceramics/) | China |
+| [Fuji Ceramisc](http://www.fujicera.co.jp/en/) | Japan |
+
+
+### Model {#model}
+
+A model of a multi-layer monolithic piezoelectric stack actuator is described in (Fleming 2010) ([Notes]({{< relref "fleming10_nanop_system_with_force_feedb.md" >}})).
+
+Basically, it can be represented by a spring \\(k\_a\\) with the force source \\(F\_a\\) in parallel.
+
+The relation between the applied voltage \\(V\_a\\) to the generated force \\(F\_a\\) is:
+\\[ F\_a = g\_a V\_a, \quad g\_a = d\_{33} n k\_a \\]
+with:
+
+- \\(d\_{33}\\) is the piezoelectric strain constant [m/V]
+- \\(n\\) is the number of layers
+- \\(k\_a\\) is the actuator stiffness [N/m]
+
+
+## Piezoelectric Plate Actuators {#piezoelectric-plate-actuators}
+
+Some manufacturers propose "raw" plate actuators that can be used as actuator / sensors.
+
+| Manufacturers | Country |
+|---------------------------------------------------------------------|---------|
+| [Noliac](http://www.noliac.com/products/actuators/plate-actuators/) | Denmak |
+
+
+## Mechanically Amplified Piezoelectric actuators {#mechanically-amplified-piezoelectric-actuators}
+
+The Amplified Piezo Actuators principle is presented in (Claeyssen et al. 2007):
+
+> The displacement amplification effect is related in a first approximation to the ratio of the shell long axis length to the short axis height.
+> The flatter is the actuator, the higher is the amplification.
+
+A model of an amplified piezoelectric actuator is described in (Lucinskis and Mangeot 2016).
+
+Typical topology of mechanically amplified piezoelectric actuators are displayed in [Figure 1](#figure--fig:ling16-topology-piezo-mechanism-types) (from (Ling et al. 2016)).
+
+
+
+{{< figure src="/ox-hugo/ling16_topology_piezo_mechanism_types.png" caption="Figure 1: Topology of several types of compliant mechanisms" >}}
+
+| Manufacturers | Country |
+|----------------------------------------------------------------------------------------------------|-----------|
+| [Cedrat](https://www.cedrat-technologies.com/en/products/actuators/amplified-piezo-actuators.html) | France |
+| [PiezoDrive](https://www.piezodrive.com/actuators/ap-series-amplified-piezoelectric-actuators/) | Australia |
+| [Dynamic-Structures](https://www.dynamic-structures.com/category/piezo-actuators-stages) | USA |
+| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=8700) | USA |
+| [Noliac](http://www.noliac.com/products/actuators/amplified-actuators/) | Denmark |
+| [Mechano Transformer](http://www.mechano-transformer.com/en/products/01a_actuator_5.html) | Japan |
+| [CoreMorrow](http://www.coremorrow.com/en/pro-13-1.html) | China |
+| [PiezoData](https://www.piezodata.com/piezoelectric-actuator-amplifier/) | China |
+
+
+## Specifications {#specifications}
+
+
+### Typical Specifications {#typical-specifications}
+
+Typical specifications of piezoelectric stack actuators are usually in terms of:
+
+- Displacement/ Travel range \\([\mu m]\\)
+- Blocked force \\([N]\\)
+- Stiffness \\([N/\mu m]\\)
+- Resolution \\([nm]\\)
+- Length \\([mm]\\)
+- Electrical Capacitance \\([nF]\\)
+
+
+### Displacement and Length {#displacement-and-length}
+
+The maximum displacement specified is the displacement of the actuator when the maximum voltage is applied without any load.
+
+Typical maximum strain of Piezoelectric Stack Actuators is \\(0.1\\%\\).
+The free displacement \\(\Delta L\_{f}\\) is then related to the length \\(L\\) of piezoelectric stack by:
+
+\begin{equation}
+ \Delta L\_f \approx \frac{L}{1000}
+\end{equation}
+
+> A “free” actuator — one that experiences no resistance to movement — will produce its maximum displacement, often referred to as “free stroke,” and generate zero force.
+
+Note that this maximum displacement is only attainable at DC.
+For dynamical applications, the electrical capacitance of the piezoelectric actuator is an important factor (see bellow).
+
+
+### Blocked Force {#blocked-force}
+
+The blocked force \\(F\_b\\) is measured by first applying the maximum voltage to the piezoelectric stack without any load.
+Thus, the piezoelectric stack experiences its maximum displacement.
+
+A force is then applied to return the actuator to its original length.
+This force is measured and recorded as the blocking force.
+
+The blocking force is also the maximum force that can produce the piezoelectric stack in contact with an infinitely stiff environment.
+
+> When an actuator is blocked from moving, it will produce its maximum force, which is referred to as the blocked, or blocking, force.
+
+
+### Stiffness {#stiffness}
+
+The stiffness of the actuator is the ratio of the blocking force to the free stroke:
+
+\begin{equation}
+ k\_p = \frac{F\_b}{\Delta L\_f}
+\end{equation}
+
+with:
+
+- \\(k\_p\\): stiffness of the piezo actuator
+- \\(F\_b\\): blocking force
+- \\(\Delta L\_f\\): free stroke
+
+
+### Resolution {#resolution}
+
+The resolution is limited by the noise in the [Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}).
+
+Typical [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}}) of voltage amplifiers is \\(100dB = 10^{5}\\).
+Thus, for a piezoelectric stack with a displacement \\(L\\), the resolution will be
+
+\begin{equation}
+ r \approx \frac{L}{10^5}
+\end{equation}
+
+For a piezoelectric stack with a displacement of \\(100\\,[\mu m]\\), the resolution will be \\(\approx 1\\,[nm]\\).
+
+
+### Electrical Capacitance {#electrical-capacitance}
+
+The electrical capacitance may limit the maximum voltage that can be used to drive the piezoelectric actuator as a function of frequency ([Figure 2](#figure--fig:piezoelectric-capacitance-voltage-max)).
+This is due to the fact that voltage amplifier has a limitation on the deliverable current.
+
+[Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}) with high maximum output current should be used if either high bandwidth is wanted or piezoelectric stacks with high capacitance are to be used.
+
+
+
+{{< figure src="/ox-hugo/piezoelectric_capacitance_voltage_max.png" caption="Figure 2: Maximum sin-wave amplitude as a function of frequency for several piezoelectric capacitance" >}}
+
+
+## Piezoelectric actuator experiencing a mass load {#piezoelectric-actuator-experiencing-a-mass-load}
+
+When the piezoelectric actuator is supporting a payload, it will experience a static deflection due to its finite stiffness \\(\Delta l\_n = \frac{mg}{k\_p}\\), but its stroke will remain unchanged ([Figure 3](#figure--fig:piezoelectric-mass-load)).
+
+
+
+{{< figure src="/ox-hugo/piezoelectric_mass_load.png" caption="Figure 3: Motion of a piezoelectric stack actuator under external constant force" >}}
+
+
+## Piezoelectric actuator in contact with a spring load {#piezoelectric-actuator-in-contact-with-a-spring-load}
+
+Then the piezoelectric actuator is in contact with a spring load \\(k\_e\\), its maximum stroke \\(\Delta L\\) is less than its free stroke \\(\Delta L\_f\\) ([Figure 4](#figure--fig:piezoelectric-spring-load)):
+
+\begin{equation}
+ \Delta L = \Delta L\_f \frac{k\_p}{k\_p + k\_e}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/piezoelectric_spring_load.png" caption="Figure 4: Motion of a piezoelectric stack actuator in contact with a stiff environment" >}}
+
+For piezo actuators, force and displacement are inversely related ([Figure 5](#figure--fig:piezoelectric-force-displ-relation)).
+Maximum, or blocked, force (\\(F\_b\\)) occurs when there is no displacement.
+Likewise, at maximum displacement, or free stroke, (\\(\Delta L\_f\\)) no force is generated.
+When an external load is applied, the stiffness of the load (\\(k\_e\\)) determines the displacement (\\(\Delta L\_A\\)) and force (\\(\Delta F\_A\\)) that can be produced.
+
+
+
+{{< figure src="/ox-hugo/piezoelectric_force_displ_relation.png" caption="Figure 5: Relation between the maximum force and displacement" >}}
+
+
+## Piezoelectric stiffness - Electrical Boundaries {#piezoelectric-stiffness-electrical-boundaries}
+
+The stiffness of the piezoelectric stack varies a little bit whether it is open-circuited or short-circuited (Liu et al. 2007).
+This this experiment: .
+
+Therefore, if the piezoelectric actuator is driven by a charge amplifier (i.e. high input impedance), the stiffness will be a little bit higher than if it is driven with a voltage amplifier (i.e. small input impedance).
+
+
+## Driving Electronics {#driving-electronics}
+
+Piezoelectric actuators can be driven either using a voltage to charge converter or a [Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}).
+Limitations of the electronics is discussed in [Design, modeling and control of nanopositioning systems]({{< relref "fleming14_desig_model_contr_nanop_system.md" >}}).
+Also see (Liu et al. 2007).
+
+
+## Bibliography {#bibliography}
+
+
+
Claeyssen, F., R. Le Letty, F. Barillot, and O. Sosnicki. 2007. “Amplified Piezoelectric Actuators: Static & Dynamic Applications.” Ferroelectrics 351 (1): 3–14. doi:10.1080/00150190701351865.
+
Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” IEEE/ASME Transactions on Mechatronics 15 (3): 433–47. doi:10.1109/tmech.2009.2028422.
+
Ling, Mingxiang, Junyi Cao, Minghua Zeng, Jing Lin, and Daniel J Inman. 2016. “Enhanced Mathematical Modeling of the Displacement Amplification Ratio for Piezoelectric Compliant Mechanisms.” Smart Materials and Structures 25 (7): 075022. doi:10.1088/0964-1726/25/7/075022.
+
Liu, W. Q., Z. H. Feng, R. B. Liu, and J. Zhang. 2007. “The Influence of Preamplifiers on the Piezoelectric Sensor’s Dynamic Property.” Review of Scientific Instruments 78 (12): 125107. doi:10.1063/1.2825404.
+
Lucinskis, R., and C. Mangeot. 2016. “Dynamic Characterization of an Amplified Piezoelectric Actuator.”
+
diff --git a/content/zettels/position_jitter_due_to_asynchronous_acquisition.md b/content/zettels/position_jitter_due_to_asynchronous_acquisition.md
new file mode 100644
index 0000000..b3df6bf
--- /dev/null
+++ b/content/zettels/position_jitter_due_to_asynchronous_acquisition.md
@@ -0,0 +1,149 @@
++++
+title = "Position Jitter due to Asynchronous Acquisition"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Observed issue {#observed-issue}
+
+Sometime the controller is not compatible with the encoder protocol.
+In that case a PEPU can be used in between the encoder and the controller to convert the encoder value to something readable by the controller.
+This is illustrated in [Figure 1](#figure--fig:position-jitter-issue).
+
+
+
+{{< figure src="/ox-hugo/position_jitter_issue.png" caption="Figure 1: Measurement Setup: an encoder working with BISS protocol is read by a PEPU (every \\(T\_{s,\text{pepu}}\\) seconds) and the controller reads the stored encoder value in the PEPU every \\(T\_{s,\text{ctrl}}\\) seconds" >}}
+
+When scanning the device (i.e. changing rapidly the read value on the encoder), some "jumps" on the encoder value read by the controller can be seen.
+This effect is due to some "jitter" between the PEPU acquisition rate and the controller rate as will be explained bellow.
+
+
+## Visual display of jitter issue {#visual-display-of-jitter-issue}
+
+Let's make a simulation to understand what is going on.
+Let's choose the following parameters:
+
+- \\(T\_{s,\text{pepu}} = 60\\,\mu s\\): the acquisition rate of the encoder on the PEPU (very typical for a 32bit absolute encoder)
+- \\(v = 1\\,mm/s\\): the scan velocity
+- \\(T\_{s,\text{ctrl}} = 100\\,\mu s\\) the "sampling rate" of the controller
+
+The encoder position as well as the stored value on the PEPU and the position used in the controller are shown in [Figure 2](#figure--fig:jitter-error-example), left.
+The errors associated with the "jitter" is shown in [Figure 2](#figure--fig:jitter-error-example), right.
+
+```matlab
+%% Simulation parameters
+v = 1e-3; % Scanning velocity [m/s or rad/s]
+Ts_pepu = 60e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
+Ts_ctrl = 1e-4; % Sampling time of controller [s]
+
+t_sim = 10*Ts_ctrl; % Total simulation time [s]
+t = 0:1e-6:t_sim; % Time vector used for simulation [s]
+x = v*t; % Suppose linear position [m, rad]
+
+%% Compute position stored in PEPU as every time step
+x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
+
+%% Compute position get on the controller at each control period
+t_ctrl = 0:Ts_ctrl:t_sim; % Time vector [s]
+x_ctrl = zeros(size(t_ctrl)); % Position stored on the controller [m]
+x_error = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
+for i = 1:length(t_ctrl)
+ [~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
+ x_ctrl(i) = x_pepu(i_t);
+ x_error(i) = x_pepu(i_t) - x(i_t);
+end
+```
+
+
+
+{{< figure src="/ox-hugo/jitter_error_example.png" caption="Figure 2: Measurement error due to Jitter. 1mm/s velocity scan, Ts_pepu is 60us and Ts_ctrl is 100us" >}}
+
+
+## Expected error induced by "jitter" {#expected-error-induced-by-jitter}
+
+Th "position jitter" depends on:
+
+- \\(T\_{s,\text{pepu}}\\): the "sampling time" of the encoder on the PEPU
+- \\(v\\): the scan velocity in [unit/s]
+
+The obtain "jitter" can be as large as (expressed in the same units as \\(v\\)):
+
+\begin{equation}
+dx = v \cdot T\_{s,\text{pepu}}
+\end{equation}
+
+Let's make a numerical example:
+
+```matlab
+%% Simulation parameters
+v = 1e-3; % Scanning velocity [m/s or rad/s]
+Ts_pepu = 60e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
+```
+
+```text
+dx = 60 [nm] with v = 1.0 [mm/s] and Ts_pepu = 60 [us]
+```
+
+
+## Is there an optimal PEPU acquisition rate? {#is-there-an-optimal-pepu-acquisition-rate}
+
+Changing the readout time of the PEPU (its clock for instance) changes the jitter amplitude as well as its "pattern":
+
+```matlab
+%% Longer simulation than before to better see the pattern
+t_sim = 50*Ts_ctrl; % Total simulation time [s]
+t = 0:1e-6:t_sim; % Time vector used for simulation [s]
+x = v*t; % Suppose linear position [m, rad]
+t_ctrl = 0:Ts_ctrl:t_sim; % Time vector [s]
+
+%% Large Ts_pepu to try to match with controller sampling time
+Ts_pepu = 95e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
+x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
+x_error_1 = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
+for i = 1:length(t_ctrl)
+ [~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
+ x_error_1(i) = x_pepu(i_t) - x(i_t);
+end
+
+%% Small Ts_pepu as possible to reduce jitter amplitude
+Ts_pepu = 30e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
+x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
+x_error_2 = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
+for i = 1:length(t_ctrl)
+ [~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
+ x_error_2(i) = x_pepu(i_t) - x(i_t);
+end
+
+%% Small Ts_pepu as possible to reduce jitter amplitude
+Ts_pepu = 10e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
+x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
+x_error_3 = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
+for i = 1:length(t_ctrl)
+ [~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
+ x_error_3(i) = x_pepu(i_t) - x(i_t);
+end
+```
+
+
+
+{{< figure src="/ox-hugo/jitter_errors_effect_Ts_pepu.png" caption="Figure 3: Measurement errors due to Jitter. Effect of the refresh rate on the PEPU, different "patterns" can appear. Velocity scan is 1mm/s" >}}
+
+
+
+For high velocity / high precision scans, it is important to reduce the timing jitter of the measured position (i.e. "position jitter").
+
+Ideally, this is the control system (i.e. where the feedback controller is implemented) that triggers the readout of all the sensors.
+
+Having a intermediate electronic device (here the PEPU) that triggers the readout of the encoders not in sync with the controller can affect quite negatively the quality of the motion.
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/position_sensors.md b/content/zettels/position_sensors.md
new file mode 100644
index 0000000..9c89702
--- /dev/null
+++ b/content/zettels/position_sensors.md
@@ -0,0 +1,81 @@
++++
+title = "Position Sensors"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Inertial Sensors]({{< relref "inertial_sensors.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}}), [Sensor Fusion]({{< relref "sensor_fusion.md" >}}), [Signal Conditioner]({{< relref "signal_conditioner.md" >}}), [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
+
+
+## Types of Positioning sensors {#types-of-positioning-sensors}
+
+High precision positioning sensors include:
+
+- [Interferometers]({{< relref "interferometers.md" >}})
+- [Capacitive Sensors]({{< relref "capacitive_sensors.md" >}})
+- [LVDT]({{< relref "linear_variable_differential_transformers.md" >}})
+- [Eddy Current Sensors]({{< relref "eddy_current_sensors.md" >}})
+- [Encoders]({{< relref "encoders.md" >}})
+- [Quadrant Photodiodes]({{< relref "quadrant_photodiodes.md" >}})
+
+
+## Reviews of Relative Position Sensors {#reviews-of-relative-position-sensors}
+
+- Fleming, A. J., A review of nanometer resolution position sensors: operation and performance (Fleming 2013) ([Notes]({{< relref "fleming13_review_nanom_resol_posit_sensor.md" >}}))
+- (Gao et al. 2015)
+
+[Table 1](#table--tab:characteristics-relative-sensor) is taken from (Collette et al. 2011).
+
+
+
+ Table 1:
+ Characteristics of relative measurement sensors
+
+
+| Technology | Frequency | Resolution | Range | T Range |
+|----------------|------------|----------------|--------------|-------------|
+| LVDT | DC-200 Hz | 10 nm rms | 1-10 mm | -50,100 °C |
+| Eddy current | 5 kHz | 0.1-100 nm rms | 0.5-55 mm | -50,100 °C |
+| Capacitive | DC-100 kHz | 0.05-50 nm rms | 50 nm - 1 cm | -40,100 °C |
+| Interferometer | 300 kHz | 0.1 nm rms | 10 cm | -250,100 °C |
+| Encoder | DC-1 MHz | 1 nm rms | 7-27 mm | 0,40 °C |
+| Bragg Fibers | DC-150 Hz | 0.3 nm rms | 3.5 cm | -30,80 °C |
+
+[Table 2](#table--tab:summary-position-sensors) it taken from (Fleming 2013).
+
+
+
+ Table 2:
+ Summary of position sensor characteristics. The dynamic range (DNR) and resolution are approximations based on a full-scale range of 100um and a first order bandwidth of \(1 kHz\)
+
Collette, C, K Artoos, M Guinchard, S Janssens, P Carmona Fernandez, and C Hauviller. 2011. “Review of Sensors for Low Frequency Seismic Vibration Measurement.” CERN.
+
Fleming, A. J. 2013. “A Review of Nanometer Resolution Position Sensors: Operation and Performance.” Sensors and Actuators a: Physical 190: 106–26. doi:10.1016/j.sna.2012.10.016.
+
Gao, W., S.W. Kim, H. Bosse, H. Haitjema, Y.L. Chen, X.D. Lu, W. Knapp, A. Weckenmann, W.T. Estler, and H. Kunzmann. 2015. “Measurement Technologies for Precision Positioning.” CIRP Annals 64 (2): 773–96. doi:10.1016/j.cirp.2015.05.009.
+
Thurner, Klaus, Francesca Paola Quacquarelli, Pierre-François Braun, Claudio Dal Savio, and Khaled Karrai. 2015. “Fiber-Based Distance Sensing Interferometry.” Applied Optics 54 (10). Optical Society of America: 3051–63.
Engblom, C. 2018. “Nanoprobe Results: Metrology & Control in Stacked Closed-Loop Systems.” In Proc. Of International Conference on Accelerator and Large Experimental Control Systems (ICALEPCS’17). JACoW. doi:10.18429/JACoW-ICALEPCS2017-WEAPL04.
+
Geraldes, R. R., G. B. Z. L. Moreno, F. R. Lena, E. O. Pereira, M. H. S. da Silva, G. G. Basílio, P. P. R. Proença, et al. 2023. “The High-Dynamic Cryogenic Sample Stage for SAPOTI/CARNAÚBA at Sirius/LNLS.” In Proceedings of XRM2022. doi:10.1063/5.0168438.
+
Holler, M., J. Raabe, A. Diaz, M. Guizar-Sicairos, R. Wepf, M. Odstrcil, F. R. Shaik, et al. 2018. “Omny-a Tomography Nano Cryo Stage.” Review of Scientific Instruments 89 (4): 043706. doi:10.1063/1.5020247.
+
Holler, M., J. Raabe, R. Wepf, S. H. Shahmoradian, A. Diaz, B. Sarafimov, T. Lachat, H. Walther, and M. Vitins. 2017. “Omny Pin-a Versatile Sample Holder for Tomographic Measurements at Room and Cryogenic Temperatures.” Review of Scientific Instruments 88 (11): 113701. doi:10.1063/1.4996092.
+
Kelly, J., A. Male, N. Rubies, D. Mahoney, J. M. Walker, M. A. Gomez-Gonzalez, G. Wilkin, J. E. Parker, and P. D. Quinn. 2022. “The Delta Robot-a Long Travel Nano-Positioning Stage for Scanning X-Ray Microscopy.” Review of Scientific Instruments 93 (4). doi:10.1063/5.0084806.
+
Nazaretski, E., D. S. Coburn, W. Xu, J. Ma, H. Xu, R. Smith, X. Huang, et al. 2022. “A New Kirkpatrick-Baez-Based Scanning Microscope for the Submicron Resolution X-Ray Spectroscopy (SRX) Beamline at Nsls-Ii.” Journal of Synchrotron Radiation 29 (5): 1284–91. doi:10.1107/s1600577522007056.
+
Nazaretski, E., K. Lauer, H. Yan, N. Bouet, J. Zhou, R. Conley, X. Huang, et al. 2015. “Pushing the Limits: An Instrument for Hard X-Ray Imaging below 20 Nm.” Journal of Synchrotron Radiation 22 (2): 336–41. doi:10.1107/s1600577514025715.
+
Schroer, C. G., M. Seyrich, M. Kahnt, S. Botta, R. Döhrmann, G. Falkenberg, J. Garrevoet, et al. 2017. “PtyNAMi: Ptychographic Nano-Analytical Microscope at PETRA III: Interferometrically Tracking Positions for 3D X-Ray Scanning Microscopy Using a Ball-Lens Retroreflector.” In X-Ray Nanoimaging: Instruments and Methods III. doi:10.1117/12.2273710.
+
Schropp, A., R. Döhrmann, S. Botta, D. Brückner, M. Kahnt, M. Lyubomirskiy, C. Ossig, et al. 2020. “Ptynami: Ptychographic Nano-Analytical Microscope.” Journal of Applied Crystallography 53 (4): 957–71. doi:10.1107/s1600576720008420.
+
Stankevic, T., C. Engblom, F. Langlois, F. Alves, A. Lestrade, N. Jobert, G. Cauchon, U. Vogt, and S. Kubsky. 2017. “Interferometric Characterization of Rotation Stages for X-Ray Nanotomography.” Review of Scientific Instruments 88 (5): 053703. doi:10.1063/1.4983405.
+
Villar, F., L. Andre, R. Baker, S. Bohic, J. C. da Silva, C. Guilloud, O. Hignette, et al. 2018. “Nanopositioning for the Esrf Id16a Nano-Imaging Beamline.” Synchrotron Radiation News 31 (5): 9–14. doi:10.1080/08940886.2018.1506234.
+
Wang, J., Y.-c. K. Chen, Q. Yuan, A. Tkachuk, C. Erdonmez, B. Hornberger, and M. Feser. 2012. “Automated Markerless Full Field Hard X-Ray Microscopic Tomography at Sub-50 Nm 3-Dimension Spatial Resolution.” Applied Physics Letters 100 (14): 143107. doi:10.1063/1.3701579.
+
Xu, W., H. Xu, D. Gavrilov, X. Huang, H. Yan, Y. S. Chu, and E. Nazaretski. 2023. “High-speed fly-scan capabilities for x-ray microscopy systems at NSLS-II.” In X-Ray Nanoimaging: Instruments and Methods VI. doi:10.1117/12.2675940.
+
diff --git a/content/zettels/power_spectral_density.md b/content/zettels/power_spectral_density.md
new file mode 100644
index 0000000..cf75cae
--- /dev/null
+++ b/content/zettels/power_spectral_density.md
@@ -0,0 +1,136 @@
++++
+title = "Power Spectral Density"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
+
+Tutorial about Power Spectral Density is accessible [here](https://research.tdehaeze.xyz/spectral-analysis/).
+
+A good article about how to use the `pwelch` function with Matlab (Schmid 2012).
+
+
+## Parseval's Theorem - Linking the Frequency and Time domain {#parseval-s-theorem-linking-the-frequency-and-time-domain}
+
+For non-periodic finite duration signals, the energy in the time domain is described by:
+
+\begin{equation}
+\text{Energy} = \int\_{-\infty}^\infty x(t)^2 dt
+\end{equation}
+
+Parseval's Theorem states that energy in the time domain equals energy in the frequency domain:
+
+\begin{equation}
+\text{Energy} = \int\_{-\infty}^{\infty} x(t)^2 dt = \int\_{-\infty}^{\infty} |X(f)|^2 df
+\end{equation}
+
+where \\(X(f)\\) is the Fourier transform of the time signal \\(x(t)\\):
+
+\begin{equation}
+X(f) = \int\_{-\infty}^{\infty} x(t) e^{-2\pi j f t} dt
+\end{equation}
+
+
+## Power Spectral Density function (PSD) {#power-spectral-density-function--psd}
+
+The power distribution over frequency of a time signal \\(x(t)\\) is described by the PSD denoted the \\(S\_x(f)\\).
+A PSD is a power density function with units \\([\text{SI}^2/Hz]\\), meaning that the area underneath the PSD curve equals the power (units \\([\text{SI}^2]\\)) of the signal (SI is the unit of the signal, e.g. \\(m/s\\)).
+
+Using the definition of signal power \\(\bar{x^2}\\) and Parseval's theorem, we can link power in the time domain with power in the frequency domain:
+
+\begin{equation}
+\text{power} = \lim\_{T \to \infty} \frac{1}{2T} \int\_{-T}^{T} x\_T(t)^2 dt = \lim\_{T \to \infty} \frac{1}{2T} \int\_{-\infty}^{\infty} |X\_T(f)|^2 df = \int\_{-\infty}^{\infty} \left( \lim\_{T \to \infty} \frac{|X\_T(f)|^2}{2T} \right) df
+\end{equation}
+
+where \\(X\_T(f)\\) denotes the Fourier transform of \\(x\_T(t)\\), which equals \\(x(t)\\) on the interval \\(-T \le t \le T\\) and is zero outside this interval.
+
+This term is referred to as the two-sided spectral density:
+
+\begin{equation}
+S\_{x,two} (f) = \lim\_{T \to \infty} \frac{|X\_T(f)|^2}{2T}, \quad -\infty \le f \le \infty
+\end{equation}
+
+In practice, the **one sided PSD** is used, which is only defined on the positive frequency axis but also contains all the power.
+It is defined as:
+
+\begin{equation}
+S\_{x}(f) = \lim\_{T \to \infty} \frac{|X\_T(f)|^2}{T}, \quad 0 \le f \le \infty
+\end{equation}
+
+For discrete time signals, the one-sided PSD estimate is defined as:
+
+\begin{equation}
+\hat{S}(f\_k) = \frac{|X\_L(f\_k)|^2}{L T\_s}
+\end{equation}
+
+where \\(L\\) equals the number of time samples and \\(T\_s\\) the sample time, \\(X\_L(f\_k)\\) is the N-point discrete Fourier Transform of the discrete time signal \\(x\_L[n]\\) containing \\(L\\) samples:
+
+\begin{equation}
+ X\_L(f\_k) = \sum\_{n = 0}^{N-1} x\_L[n] e^{-j 2 \pi k n/N}
+\end{equation}
+
+
+## Matlab Code for computing the PSD and CPS {#matlab-code-for-computing-the-psd-and-cps}
+
+Let's compute the PSD of a signal by "hand".
+The signal is defined below.
+
+```matlab
+%% Signal generation
+T_s = 1e-3; % Sampling Time [s]
+t = T_s:T_s:100; % Time vector [s]
+L = length(t);
+
+x = lsim(1/(1 + s/2/pi/5), randn(1, L), t);
+```
+
+The computation is performed using the `fft` function.
+
+```matlab
+%% Parameters
+T_r = L*T_s; % signal time range
+d_f = 1/T_r; % width of frequency grid
+F_s = 1/T_s; % sample frequency
+F_n = F_s/2; % Nyquist frequency
+F = [0:d_f:F_n]; % one sided frequency grid
+
+% Discrete Time Fourier Transform Wxx
+Wxx = fft(x - mean(x))/L;
+
+% Two-sided Power Spectrum Pxx [SI^2]
+Pxx = Wxx.*conj(Wxx);
+
+% Two-sided Power Spectral Density Sxx_t [SI^2/Hz]
+Sxx_t = Pxx/d_f;
+
+% One-sided Power Spectral Density Sxx_o [SI^2/Hz] defined on F
+Sxx_o = 2*Sxx_t(1:L/2+1);
+```
+
+The result is shown in [Figure 1](#figure--fig:psd-manual-example).
+
+
+
+{{< figure src="/ox-hugo/psd_manual_example.png" caption="Figure 1: Amplitude Spectral Density with manual computation" >}}
+
+This can also be done using the `pwelch` function which integrated a "window" that permits to do some averaging.
+
+```matlab
+%% Computation using pwelch function
+[pxx, f] = pwelch(x, hanning(ceil(5/T_s)), [], [], 1/T_s);
+```
+
+The comparison of the two method is shown in [Figure 2](#figure--fig:psd-comp-pwelch-manual-example).
+
+
+
+{{< figure src="/ox-hugo/psd_comp_pwelch_manual_example.png" caption="Figure 2: Amplitude Spectral Density with manual computation" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Schmid, Hanspeter. 2012. “How to Use the Fft and Matlab’s Pwelch Function for Signal and Noise Simulations and Measurements.” Institute of Microelectronics.
diff --git a/content/zettels/quadrant_photodiodes.md b/content/zettels/quadrant_photodiodes.md
new file mode 100644
index 0000000..0ce0657
--- /dev/null
+++ b/content/zettels/quadrant_photodiodes.md
@@ -0,0 +1,168 @@
++++
+title = "Quadrant Photodiodes"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Position Sensors]({{< relref "position_sensors.md" >}}), [Optics]({{< relref "optics.md" >}})
+
+
+## Working principle {#working-principle}
+
+
+
+{{< figure src="/ox-hugo/quadrant_photodiode_schematic.png" caption="Figure 1: Schematic of the Quadrant Photodiode" >}}
+
+The \\([x,y]\\) position of the beam on the quadrant photodiode can be estimated using the following equations:
+
+\begin{align}
+\sigma\_x &= \frac{(I\_B + I\_D) - (I\_A + I\_C)}{I\_A + I\_B + I\_C + I\_D} = \frac{I\_B + I\_D}{I\_A + I\_B + I\_C + I\_D} - 1 \\\\
+\sigma\_y &= \frac{(I\_A + I\_B) - (I\_C + I\_D)}{I\_A + I\_B + I\_C + I\_D} = \frac{I\_A + I\_B}{I\_A + I\_B + I\_C + I\_D} - 1
+\end{align}
+
+
+
+{{< figure src="/ox-hugo/quadrant_photodiode_relation_meas.png" caption="Figure 2: Relation between the X position of the spot and the estimated measurement \\(\sigma\_x\\)" >}}
+
+This is true when the spot is near the center of the four quadrants (linear region).
+
+
+
+{{< figure src="/ox-hugo/quadrant_photodiode_spot_size.jpg" caption="Figure 3: Effect of the spot size on the sensitibility and measurement range" >}}
+
+Basic requirements (taken from [here](https://www.aptechnologies.co.uk/home/support/photodiodes)):
+
+- detector gap < spot size < detector size
+- positional range < spot size
+- positional range is proportional to the spot size
+- positional resolution is inversely proportional to the spot size
+
+Estimation of the linear region.
+
+The relation between the spot size and the quadrant photodiode sensitivity is well explained in (Lee et al. 2010).
+
+Usually, single mode laser are used such that the beam profile can well be approximated by a Gaussian distribution.
+The irradiance distribution is then:
+
+\begin{equation}
+I( r) = \frac{P}{\pi w^2} e^{-\frac{r^2}{w^2}}
+\end{equation}
+
+with:
+
+- \\(r\\) the radius
+- \\(P\\) the overall light source optical power
+- \\(w\\) the light spot radius for which the irradiance drops to the \\(1/e\\) value of its central value
+
+
+## Estimation of photodiode gain {#estimation-of-photodiode-gain}
+
+It is function of:
+
+- the spot size
+- the gain size
+
+Spot size of collimated bean at focal plane of a lens ([link](https://www.gentec-eo.com/blog/spot-size-of-laser-beam)).
+
+See:
+
+- (Ng, Tan, and Foo 2007)
+- (Manojlović 2011)
+- (Wu et al. 2015)
+- (Azaryan et al. 2019)
+- (Li et al. 2019)
+
+
+## Electrical Readout {#electrical-readout}
+
+[Transimpedance Amplifiers]({{< relref "transimpedance_amplifiers.md" >}}) amplifiers are required (schematic shown in [Figure 4](#figure--fig:quadrant-transresistance-amplifier)).
+
+- Trade-off between gain / noise / bandwidth (see [The art of electronics - third edition]({{< relref "horowitz15_art_of_elect_third_edition.md" >}}), chapter 8.11.4).
+
+The amplifier in [Figure 4](#figure--fig:quadrant-transresistance-amplifier) produces a voltage:
+
+\begin{equation}
+V\_{\text{out}} = -I\_{\text{sig}} R\_f
+\end{equation}
+
+So the gain of the amplifier is simply \\(-R\_f\\) in [V/A].
+
+The feedback resistor creates a Johnson noise that corresponds to a current noise:
+
+\begin{equation}
+i\_{n} = \sqrt{4kT/R\_f} \quad [A/\sqrt{Hz}]
+\end{equation}
+
+This is usually larger than the amplifier input current noise.
+
+
+
+{{< figure src="/ox-hugo/quadrant_transresistance_amplifier.png" caption="Figure 4: Transimpedance Amplifier; Current in, Voltage out" >}}
+
+
+## Angle Measurement {#angle-measurement}
+
+
+### Working Principle {#working-principle}
+
+Combined with a lens, a quadrant photodiode can become an angular sensor is well located at the focal plane of the lens (see [Figure 5](#figure--fig:quandrant-diode-angle-schematic)).
+
+The relation between the position \\([y,z]\\) of the quadrant photodiode and the angle of the incident light \\([R\_y, R\_z]\\) is:
+
+\begin{align}
+y &= f \cdot R\_z\\\\
+z &= -f \cdot R\_y
+\end{align}
+
+
+
+{{< figure src="/ox-hugo/quandrant_diode_angle_schematic.png" caption="Figure 5: Optical schematic of combination of a quandrant photodiode with a lens" >}}
+
+
+### Sensitivity of beam translation {#sensitivity-of-beam-translation}
+
+The sensitivity to translation of the beam depends on how well the quadrant photodiode is located at the focal plane of the lens.
+If we note \\(\Delta x\\) the distance between the focal plane and the quadrant plane, the sensitivity to a \\(\Delta z\\) motion of the beam is:
+
+\begin{equation}
+z = \Delta x \cdot \Delta z
+\end{equation}
+
+Therefore, the ratio \\(f/\Delta x\\) gives the ratio of the sensitivity to beam angle to the sensitivity of beam translation.
+
+
+
+Take a lens with focal of \\(f = 500\\,mm\\) and say the quadrant photodiode is positioned at the focal plane with an accuracy of \\(\Delta x = 1\\,mm\\):
+
+\begin{equation}
+\frac{f}{\Delta x} = 500
+\end{equation}
+
+This means that \\(1\\,mm\\) of vertical motion of the beam will give the same output than \\(500\\,mrad\\) of rotation of the beam.
+
+
+
+
+
+Say be want to determine with which precision the quadrant photodiode should be positioned.
+We now that the maximum translation of the beam is \\(\Delta z = 1\\,mm\\) and this should have less effect than a beam rotation of \\(R\_y = 10\\,\mu rad\\), then the quadrant photodiode should be position with an accuracy \\(\Delta x\\) of:
+
+\begin{equation}
+\Delta x = f \frac{R\_y}{\Delta z} = 1\\,mm, \quad \text{with } f = 0.1\\,m
+\end{equation}
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Azaryan, N. S., J. A. Budagov, M. V. Lyablin, A. A. Pluzhnikov, B. Di Girolamo, J.-Ch. Gayde, and D. Mergelkuhl. 2019. “Position-Sensitive Photoreceivers: Sensitivity and Detectable Range of Displacements of a Focused Single-Mode Laser Beam.” Physics of Particles and Nuclei Letters 16 (4): 354–76. doi:10.1134/s1547477119040058.
+
Lee, Eun Joong, Youngok Park, Chul Sung Kim, and Taejoon Kouh. 2010. “Detection Sensitivity of the Optical Beam Deflection Method Characterized with the Optical Spot Size on the Detector.” Current Applied Physics 10 (3): 834–37. doi:10.1016/j.cap.2009.10.003.
+
Li, Qing, Shaoxiong Xu, Jiawei Yu, Lingjie Yan, and Yongmei Huang. 2019. “An Improved Method for the Position Detection of a Quadrant Detector for Free Space Optical Communication.” Sensors 19 (1): 175. doi:10.3390/s19010175.
+
Manojlović, Lazo M. 2011. “Quadrant Photodetector Sensitivity.” Applied Optics 50 (20). Optical Society of America: 3461–69.
+
Ng, T.W., H.Y. Tan, and S.L. Foo. 2007. “Small Gaussian Laser Beam Diameter Measurement Using a Quadrant Photodiode.” Optics &Amp; Laser Technology 39 (5): 1098–1100. doi:10.1016/j.optlastec.2006.06.001.
+
Wu, Jiabin, Yunshan Chen, Shijie Gao, Yimang Li, and Zhiyong Wu. 2015. “Improved Measurement Accuracy of Spot Position on an Ingaas Quadrant Detector.” Applied Optics 54 (27). Optical Society of America: 8049–54.
+
diff --git a/content/zettels/reference_books.md b/content/zettels/reference_books.md
new file mode 100644
index 0000000..2146fd4
--- /dev/null
+++ b/content/zettels/reference_books.md
@@ -0,0 +1,38 @@
++++
+title = "Reference Books"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Here are my favorite books {#here-are-my-favorite-books}
+
+(Steinbuch and Oomen 2016)
+(Taghirad 2013)
+(Lurie 2012)
+(NO_ITEM_DATA:skogestad05_multiv_feedb_contr)
+(Schmidt, Schitter, and Rankers 2014)
+(Preumont 2018)
+(Leach 2014)
+(Ewins 2000)
+(Leach and Smith 2018)
+(Horowitz 2015)
+
+
+## Bibliography {#bibliography}
+
+
+
Ewins, D. J. 2000. Modal Testing: Theory, Practice and Application, Second Edition. Research Studies Press. Baldock, Hertfordshire, England Philadelphia, PA: Wiley-Blackwell.
+
Horowitz, Paul. 2015. The Art of Electronics - Third Edition. New York, NY, USA: Cambridge University Press.
+
Leach, Richard. 2014. Fundamental Principles of Engineering Nanometrology. Elsevier. doi:10.1016/c2012-0-06010-3.
+
Leach, Richard, and Stuart T. Smith. 2018. Basics of Precision Engineering - 1st Edition. CRC Press.
+
Lurie, B. J. 2012. Classical Feedback Control : with MATLAB and Simulink. Boca Raton, FL: CRC Press.
+
Preumont, A. 2018. Vibration Control of Active Structures - Fourth Edition. Solid Mechanics and Its Applications. Springer International Publishing. doi:10.1007/978-3-319-72296-2.
+
Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2014. The Design of High Performance Mechatronics - 2nd Revised Edition. Ios Press.
+
Steinbuch, Maarten, and Tom Oomen. 2016. “Model-Based Control for High-Tech Mechatronics Systems.” CRC Press/Taylor & Francis.
+
Taghirad, H. 2013. Parallel Robots : Mechanics and Control. Boca Raton, FL: CRC Press.
+
NO_ITEM_DATA:skogestad05_multiv_feedb_contr
+
diff --git a/content/zettels/reference_tracking.md b/content/zettels/reference_tracking.md
new file mode 100644
index 0000000..0c897fb
--- /dev/null
+++ b/content/zettels/reference_tracking.md
@@ -0,0 +1,50 @@
++++
+title = "Reference Tracking"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Following Ramp inputs with one integrator {#following-ramp-inputs-with-one-integrator}
+
+Let's suppose a static plant and a controller with one integrator with a crossover frequency of \\(\omega\_c = 10\cdot 2\pi\\) (i.e. 10Hz).
+
+```matlab
+G = tf(1); % Plant
+K = 2*pi*10/s; % Controller
+```
+
+The transfer function from the reference to the output is:
+\\[ T(s) = \frac{G(s)K(s)}{1 + G(s)K(s)} \\]
+
+```matlab
+T = G*K/(1 + G*K); % Transmissibility
+```
+
+The reference signal is a ramp with a "velocity" \\(r\_v = 1\\) unit/sec.
+
+```matlab
+% Time domain simulation
+Ts = 1e-4; % Sampling Time [s]
+t = 0:Ts:0.4; % Time vector [s]
+r = zeros(size(t)); % Sepoint
+r(t>0.1) = t(t>0.1)-0.1;
+y = lsim(T, r, t); % Output
+```
+
+
+
+{{< figure src="/ox-hugo/reference_tracking_ramp_one_int.png" caption="Figure 1: Comparison of the setpoint and the plant output for a ramp with only one integrator in the loop" >}}
+
+The error converges to a constant equal to \\(\frac{r\_v}{\omega\_c} \approx 0.016\\).
+
+The output "lags" behind the reference by \\(\frac{1}{\omega\_c}\\) in seconds.
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/relative_gain_array.md b/content/zettels/relative_gain_array.md
new file mode 100644
index 0000000..75c1eb4
--- /dev/null
+++ b/content/zettels/relative_gain_array.md
@@ -0,0 +1,42 @@
++++
+title = "Relative Gain Array"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+Imagine a 2x2 plant:
+\\[ G(s) = \begin{bmatrix} g\_{11}(s) & g\_{12}(s)\\\ g\_{21}(s) & g\_{22}(s) \end{bmatrix} \\]
+
+Now suppose a controller \\(k\_{1}(s)\\) is closed on the first loop.
+The new transfer function from \\(u\_2\\) to \\(y\_2\\) (while the first loop is closed) is :
+
+\begin{equation}
+y\_2 = g\_{22} \left[ 1 - \underbrace{\frac{g\_{21}g\_{12}}{g\_{11}g\_{22}}}\_{\phi} \underbrace{\frac{g\_{11} k\_{11}}{1 + g\_{11}k\_{11}}}\_{T\_{11}} \right]
+\end{equation}
+
+\\(\phi\\) is called the **interaction index**.
+\\(T\_{11}\\) is the complementary sensitivity of the first loop (equal to 1 in the bandwidth of the first controller).
+Therefore, we want \\(\phi \approx 0\\) to have no interaction.
+
+Similarly, the **relative gain** is defined as:
+\\[ \Lambda = \frac{1}{1 - \phi} \\]
+And we want \\(\Lambda \approx 1\\) to have no interaction.
+
+Note that the scaling of inputs or outputs of the MIMO plant has no effect on \\(\phi\\) or \\(\Lambda\\).
+
+The **relative gain array** is defined as:
+\\[ \Lambda(G) = G \star (G^{-1})^{T} \\]
+where \\(\star\\) means element wise multiplication.
+
+```matlab
+RGA = G.*pinv(G.')
+```
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/right_half_plane_zeros.md b/content/zettels/right_half_plane_zeros.md
new file mode 100644
index 0000000..f4c7e70
--- /dev/null
+++ b/content/zettels/right_half_plane_zeros.md
@@ -0,0 +1,28 @@
++++
+title = "Right Half Plane Zeros"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+Right Half Plane (RHP) Zeros are present in a broad range of systems.
+
+- SISO RHP zeros:
+ - \\(G(z) = 0\\). The real part of \\(z\\) is positive
+- MIMO RHP zeros:
+ - RHP zeros of the determinant of the transfer function matrix
+ - For MIMO plants, the zero is associated with an output direction
+- Consequences:
+ - Non minimum phase
+ - Usually, if looking at the step response, at first the response goes in the wrong direction
+ - The frequency of the RHP zero should be outside the controller bandwidth.
+ It therefore impose a fundamental limitation to the controller bandwidth.
+ The reason is that inside the control bandwidth, the controller basically inverts the plant, and the inverse of a RHP zero is an unstable pole.
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/sensor_noise_estimation.md b/content/zettels/sensor_noise_estimation.md
new file mode 100644
index 0000000..8acfacd
--- /dev/null
+++ b/content/zettels/sensor_noise_estimation.md
@@ -0,0 +1,119 @@
++++
+title = "Sensor Noise Estimation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Estimation of the Noise of Inertial Sensors {#estimation-of-the-noise-of-inertial-sensors}
+
+Measuring the noise level of inertial sensors is not easy as the seismic motion is usually much larger than the sensor's noise level.
+
+A technique to estimate the sensor noise in such case is proposed in (Barzilai, VanZandt, and Kenny 1998) and well explained in (Van der Poel 2010) (Section 6.1.3).
+
+The idea is to mount two inertial sensors closely together such that they should measure the same quantity.
+
+This is represented in [Figure 1](#figure--fig:huddle-test-setup) where two identical sensors are measuring the same motion \\(x(t)\\).
+
+
+
+{{< figure src="/ox-hugo/huddle_test_setup.png" caption="Figure 1: Schematic representation of the setup for measuring the noise of inertial sensors." >}}
+
+
+
+Few quantities that will be used to estimate the sensor noise are now defined.
+This include the **Coherence**, the **Power Spectral Density** (PSD) and the **Cross Spectral Density** (CSD).
+
+The coherence between signals \\(x\\) and \\(y\\) is defined as follow
+\\[ \gamma^2\_{xy}(\omega) = \frac{|C\_{xy}(\omega)|^2}{|P\_{x}(\omega)| |P\_{y}(\omega)|} \\]
+where \\(|P\_{x}(\omega)|\\) is the output PSD of signal \\(x(t)\\) and \\(|C\_{xy}(\omega)|\\) is the CSD of signals \\(x(t)\\) and \\(y(t)\\).
+
+The PSD and CSD are defined as follow:
+
+\begin{align}
+ |P\_x(\omega)| &= \frac{2}{n\_d T} \sum^{n\_d}\_{n=1} \left| x\_k(\omega, T) \right|^2 \\\\
+ |C\_{xy}(\omega)| &= \frac{2}{n\_d T} \sum^{n\_d}\_{n=1} [ x\_k^\*(\omega, T) ] [ y\_k(\omega, T) ]
+\end{align}
+
+where:
+
+- \\(n\_d\\) is the number for records averaged
+- \\(T\\) is the length of each record
+- \\(x\_k(\omega, T)\\) is the finite Fourier transform of the kth record
+- \\(x\_k^\*(\omega, T)\\) is its complex conjugate
+
+The Matlab function `mscohere` can be used to compute the coherence:
+
+```matlab
+ %% Parameters
+ Fs = 1e4; % Sampling Frequency [Hz]
+ win = hanning(ceil(10*Fs)); % 10 seconds Hanning Windows
+
+ %% Coherence between x and y
+ [pxy, f] = mscohere(x, y, win, [], [], Fs); % Coherence, frequency vector in [Hz]
+```
+
+Alternatively, it can be manually computed using the `cpsd` and `pwelch` commands:
+
+```matlab
+ %% Manual Computation of the Coherence
+ [pxy, f] = cpsd(x, y, win, [], [], Fs); % Cross Spectral Density between x and y
+ [pxx, ~] = pwelch(x, win, [], [], Fs); % Power Spectral Density of x
+ [pyy, ~] = pwelch(y, win, [], [], Fs); % Power Spectral Density of y
+
+ pxy_manual = abs(pxy).^2./abs(pxx)./abs(pyy);
+```
+
+
+
+Now suppose that:
+
+- both sensors are modelled as LTI systems \\(H\_1(s)\\) and \\(H\_2(s)\\)
+- sensor noises are modelled as input noises \\(n\_1(t)\\) and \\(n\_2(s)\\)
+- sensor noises are uncorrelated and each are uncorrelated with \\(x(t)\\)
+
+Then, the system can be represented by the block diagram in [Figure 2](#figure--fig:huddle-test-block-diagram), and we can write:
+
+\begin{align}
+ P\_{y\_1y\_1}(\omega) &= |H\_1(\omega)|^2 ( P\_{x}(\omega) + P\_{n\_1}(\omega) ) \\\\
+ P\_{y\_2y\_2}(\omega) &= |H\_2(\omega)|^2 ( P\_{x}(\omega) + P\_{n\_2}(\omega) ) \\\\
+ C\_{y\_1y\_2}(j\omega) &= H\_2^H(j\omega) H\_1(j\omega) P\_{x}(\omega)
+\end{align}
+
+And the CSD between \\(y\_1(t)\\) and \\(y\_2(t)\\) is:
+
+\begin{equation}
+ \gamma^2\_{y\_1y\_2}(\omega) = \frac{|C\_{y\_1y\_2}(j\omega)|^2}{P\_{y\_1}(\omega) P\_{y\_2}(\omega)}
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/huddle_test_block_diagram.png" caption="Figure 2: Huddle test block diagram" >}}
+
+Rearranging the equations, we obtain the PSD of \\(n\_1(t)\\) and \\(n\_2(t)\\):
+
+\begin{align}
+ P\_{n1}(\omega) = \frac{P\_{y\_1}(\omega)}{|H\_1(j\omega)|^2} \left( 1 - \gamma\_{y\_1y\_2}(\omega) \frac{|H\_1(j\omega)|}{|H\_2(j\omega)|} \sqrt{\frac{P\_{y\_2}(\omega)}{P\_{y\_1}(\omega)}} \right) \\\\
+ P\_{n2}(\omega) = \frac{P\_{y\_2}(\omega)}{|H\_2(j\omega)|^2} \left( 1 - \gamma\_{y\_1y\_2}(\omega) \frac{|H\_2(j\omega)|}{|H\_1(j\omega)|} \sqrt{\frac{P\_{y\_1}(\omega)}{P\_{y\_2}(\omega)}} \right)
+\end{align}
+
+If we assume the two sensor dynamics to be the same \\(H\_1(s) \approx H\_2(s)\\) and the PSD of \\(n\_1(t)\\) and \\(n\_2(t)\\) to be the same (\\(P\_{n\_1}(\omega) \approx P\_{n\_2}(\omega)\\)) which is most of the time the case when using two identical sensors, we obtain this approximate equation:
+
+
Barzilai, Aaron, Tom VanZandt, and Tom Kenny. 1998. “Technique for Measurement of the Noise of a Sensor in the Presence of Large Background Signals.” Review of Scientific Instruments 69 (7): 2767–72. doi:10.1063/1.1149013.
+
Poel, Gerrit Wijnand van der. 2010. “An Exploration of Active Hard Mount Vibration Isolation for Precision Equipment.” University of Twente. doi:10.3990/1.9789036530163.
diff --git a/content/zettels/signal_conditioner.md b/content/zettels/signal_conditioner.md
new file mode 100644
index 0000000..250fb49
--- /dev/null
+++ b/content/zettels/signal_conditioner.md
@@ -0,0 +1,37 @@
++++
+title = "Signal Conditioner"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Sensors]({{< relref "sensors.md" >}}), [Electronics]({{< relref "electronics.md" >}})
+
+Most sensors needs some signal conditioner electronics before digitize the signal.
+Few examples are:
+
+- Piezoelectric force sensors
+- Geophone
+- Photodiode
+- Thermocouple
+
+The signal conditioning electronics can have different functions:
+
+- Amplification
+- Isolation
+- Filtering
+- Excitation
+- Linearization
+
+Depending on the electrical quantity that is meaningful for the measurement, different types of amplifiers are used:
+
+- Current to Voltage ([Transimpedance Amplifiers]({{< relref "transimpedance_amplifiers.md" >}}))
+- Charge to Voltage ([Charge Amplifiers]({{< relref "charge_amplifiers.md" >}}))
+- Voltage to Voltage ([Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}))
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/signal_to_noise_ratio.md b/content/zettels/signal_to_noise_ratio.md
new file mode 100644
index 0000000..488d0db
--- /dev/null
+++ b/content/zettels/signal_to_noise_ratio.md
@@ -0,0 +1,100 @@
++++
+title = "Signal to Noise Ratio"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}}), [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting.md" >}})
+
+
+## SNR to Noise PSD {#snr-to-noise-psd}
+
+From (Jabben 2007) (Section 3.3.2):
+
+> Electronic equipment does most often not come with detailed electric schemes, in which case the PSD should be determined from measurements.
+> In the design phase however, one has to rely on information provided by specification sheets from the manufacturer.
+> The noise performance of components like sensors, amplifiers, converters, etc., is often specified in terms of a **Signal to Noise Ratio** (SNR).
+> The SNR gives the **ratio of the RMS value of a sine that covers the full range** of the channel through which the signal is propagating **over the RMS value of the electrical noise**.
+>
+> Usually, the SNR is specified up to a certain cut-off frequency.
+> If no information on the colouring of the noise is available, then the corresponding **PSD can be assumed to be white up to the cut-off frequency** \\(f\_c\\):
+> \\[ S\_{snr} = \frac{x\_{fr}^2}{8 f\_c C\_{snr}^2} \\]
+> with \\(x\_{fr}\\) the full range of \\(x\\), and \\(C\_{snr}\\) the SNR.
+
+
+
+Let's take an example.
+
+- \\(x\_{fr} = 170 V\\)
+- \\(C\_{snr} = 85 dB\\)
+- \\(f\_c = 200 Hz\\)
+
+The Power Spectral Density of the output voltage is:
+\\[ S\_{snr} = \frac{170^2}{8 \cdot 200 \cdot {10^{\frac{2 \cdot 85}{20}}}} = 5.7 \cdot 10^{-8}\ V^2/Hz \\]
+
+And the RMS of that noise up to \\(f\_c\\) is:
+\\[ S\_{rms} = \sqrt{S\_{snr} \cdot f\_c} \approx 3.4\ mV \\]
+
+
+
+
+## Convert SNR to Noise RMS value {#convert-snr-to-noise-rms-value}
+
+The RMS value of the noise can be computed from:
+\\[ N\_\text{rms} = 10^{-\frac{S\_{snr}}{20}} S\_\text{rms} \\]
+where \\(S\_{snr}\\) is the SNR in dB and \\(S\_\text{rms}\\) is the RMS value of a sinus taking the full range.
+
+If the full range is \\(\Delta V\\), then:
+\\[ S\_\text{rms} = \frac{\Delta V/2}{\sqrt{2}} \\]
+
+
+
+As an example, let's take a voltage amplifier with a full range of \\(\Delta V = 20V\\) and a SNR of 85dB.
+The RMS value of the noise is then:
+\\[ n\_\text{rms} = 10^{-\frac{S\_{nrs}}{20}} s\_\text{rms} \\]
+
+\\[ n\_\text{rms} = 10^{-\frac{85}{20}} \frac{10}{\sqrt{2}} \approx 0.4 mV\_\text{rms} \\]
+
+
+
+
+## Convert wanted Noise RMS value to required SNR {#convert-wanted-noise-rms-value-to-required-snr}
+
+If the wanted full range and RMS value of the noise are defined, the required SNR can be computed from:
+\\[ S\_{snr} = 20 \log \frac{\text{Signal, rms}}{\text{Noise, rms}} \\]
+
+
+
+Let's say the wanted noise is \\(1 mV, \text{rms}\\) for a full range of \\(20 V\\), the corresponding SNR is:
+
+\\[ S\_{snr} = 20 \log \frac{\frac{20/2}{\sqrt{2}}}{10^{-3}} \approx 77dB \\]
+
+
+
+
+## Noise Density to RMS noise {#noise-density-to-rms-noise}
+
+From (Fleming 2010):
+\\[ \text{RMS noise} = \sqrt{2 \times \text{bandwidth}} \times \text{noise density} \\]
+
+If the noise is normally distributed, the RMS value is also the standard deviation \\(\sigma\\).
+The peak to peak amplitude is then approximately \\(6 \sigma\\).
+
+
+
+- noise density = \\(20 pm/\sqrt{Hz}\\)
+- bandwidth = 100Hz
+
+\\[ \sigma = \sqrt{2 \times 100} \times 20 = 0.28nm RMS \\]
+The peak-to-peak noise will be approximately \\(6 \sigma = 1.7 nm\\)
+
+
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” IEEE/ASME Transactions on Mechatronics 15 (3): 433–47. doi:10.1109/tmech.2009.2028422.
+
Jabben, Leon. 2007. “Mechatronic Design of a Magnetically Suspended Rotating Platform.” Delft University.
+
diff --git a/content/zettels/simulink.md b/content/zettels/simulink.md
new file mode 100644
index 0000000..c24afba
--- /dev/null
+++ b/content/zettels/simulink.md
@@ -0,0 +1,49 @@
++++
+title = "Simulink"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Matlab]({{< relref "matlab.md" >}})
+
+
+## Useful Key Bindings {#useful-key-bindings}
+
+| Key Binding | Action |
+|----------------|-----------------------------|
+| `spc` | Fit to view |
+| `ctrl-shift-A` | Rearrange all the blocks |
+| `ctrl-shift-I` | Open the Property Inspector |
+| `ctrl-G` | Create a subsystem |
+| `ctrl-J` | Show the Sampling Time |
+| `ctrl-T` | Run Model |
+| `ctrl-shit-T` | Stop Model |
+| `ctrl-D` | Update Model |
+| `ctrl-B` | Build Model |
+| `ctrl-H` | Open Model Explorer |
+
+Tips:
+
+- It is possible to share configuration between files with **referenced configuration**
+
+
+## Control Simulink with the keyboard {#control-simulink-with-the-keyboard}
+
+
+
+
+## Linearize portion of Simulink file {#linearize-portion-of-simulink-file}
+
+
+
+
+## Configure Simulink Programmatically {#configure-simulink-programmatically}
+
+
+
+
+## Bibliography {#bibliography}
+
+
diff --git a/content/zettels/singular_value_decomposition.md b/content/zettels/singular_value_decomposition.md
new file mode 100644
index 0000000..591b71d
--- /dev/null
+++ b/content/zettels/singular_value_decomposition.md
@@ -0,0 +1,71 @@
++++
+title = "Singular Value Decomposition"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## SVD of a MIMO system {#svd-of-a-mimo-system}
+
+This is taken from (NO_ITEM_DATA:skogestad05_multiv_feedb_contr).
+
+We are interested by the physical interpretation of the SVD when applied to the frequency response of a MIMO system \\(G(s)\\) with \\(m\\) inputs and \\(l\\) outputs.
+
+\begin{equation}
+G = U \Sigma V^H
+\end{equation}
+
+- \\(\Sigma\\): is an \\(l \times m\\) matrix with \\(k = \min\\{l, m\\}\\) non-negative **singular values** \\(\sigma\_i\\), arranged in descending order along its main diagonal, the other entries are zero.
+- \\(U\\): is an \\(l \times l\\) unitary matrix. The columns of \\(U\\), denoted \\(u\_i\\), represent the **output directions** of the plant. They are orthonormal.
+- \\(V\\): is an \\(m \times m\\) unitary matrix. The columns of \\(V\\), denoted \\(v\_i\\), represent the **input directions** of the plant. They are orthonormal.
+
+The input and output directions are related through the singular values:
+
+\begin{equation}
+ G v\_i = \sigma\_i u\_i
+\end{equation}
+
+So, if we consider an input in the direction \\(v\_i\\), then the output is in the direction \\(u\_i\\).
+Furthermore, since \\(\\|v\_i\\|\_2=1\\) and \\(\\|u\_i\\|\_2=1\\), we see that **the singular value \\(\sigma\_i\\) directly gives the gain of the matrix \\(G\\) in this direction**.
+
+The **largest gain** for any input is equal to the **maximum singular value**:
+\\[\overline{\sigma}(G) \equiv \sigma\_1(G) = \max\_{d\neq 0}\frac{\\|Gd\\|\_2}{\\|d\\|\_2} = \frac{\\|Gv\_1\\|\_2}{\\|v\_1\\|\_2} \\]
+The **smallest gain** for any input direction is equal to the **minimum singular value**:
+\\[ \underline{\sigma}(G) \equiv \sigma\_k(G) = \min\_{d\neq 0}\frac{\\|Gd\\|\_2}{\\|d\\|\_2} = \frac{\\|Gv\_k\\|\_2}{\\|v\_k\\|\_2} \\]
+
+We define \\(u\_1 = \overline{u}\\), \\(v\_1 = \overline{v}\\), \\(u\_k=\underline{u}\\) and \\(v\_k = \underline{v}\\).
+Then is follows that:
+\\[ G\overline{v} = \overline{\sigma} \cdot \overline{u} ; \quad G\underline{v} = \underline{\sigma} \cdot \underline{u} \\]
+
+
+## SVD to pseudo inverse rectangular matrices {#svd-to-pseudo-inverse-rectangular-matrices}
+
+This is taken from (Preumont 2018).
+
+The **Singular Value Decomposition** (SVD) is a generalization of the eigenvalue decomposition of a rectangular matrix:
+\\[ J = U \Sigma V^T = \sum\_{i=1}^r \sigma\_i u\_i v\_i^T \\]
+With:
+
+- \\(U\\) and \\(V\\) orthogonal matrices. The columns \\(u\_i\\) and \\(v\_i\\) of \\(U\\) and \\(V\\) are the eigenvectors of the square matrices \\(JJ^T\\) and \\(J^TJ\\) respectively
+- \\(\Sigma\\) a rectangular diagonal matrix of dimension \\(m \times n\\) containing the square root of the common non-zero eigenvalues of \\(JJ^T\\) and \\(J^TJ\\)
+- \\(r\\) is the number of non-zero singular values of \\(J\\)
+
+The pseudo-inverse of \\(J\\) is:
+\\[ J^+ = V\Sigma^+U^T = \sum\_{i=1}^r \frac{1}{\sigma\_i} v\_i u\_i^T \\]
+
+The conditioning of the Jacobian is measured by the **condition number**:
+\\[ c(J) = \frac{\sigma\_{max}}{\sigma\_{min}} \\]
+
+When \\(c(J)\\) becomes large, the most straightforward way to handle the ill-conditioning is to truncate the smallest singular value out of the sum.
+This will have usually little impact of the fitting error while reducing considerably the actuator inputs \\(v\\).
+
+
+## Bibliography {#bibliography}
+
+
+
Preumont, A. 2018. Vibration Control of Active Structures - Fourth Edition. Solid Mechanics and Its Applications. Springer International Publishing. doi:10.1007/978-3-319-72296-2.
diff --git a/content/zettels/springs.md b/content/zettels/springs.md
new file mode 100644
index 0000000..314534f
--- /dev/null
+++ b/content/zettels/springs.md
@@ -0,0 +1,27 @@
++++
+title = "Springs"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+:
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
+| [Vanel](https://www.vanel.com/index.php) | France |
+| [Axcesspring](https://www.acxesspring.com/) | US |
+| [Raymond](https://www.asraymond.com/) | US |
+| [Paulstra](https://www.paulstra-industry.com/en/ranges/metal-mountings/v1210) | France |
+| [Norelem](https://www.norelem.com/us/en/Products/Product-overview/Systems-and-components-for-machine-and-plant-construction/26000-Compression-springs-Elastomer-springs-Rubber-buffers-Shock-absorbers-Gas-springs.html) | France |
+| [VibraSystems](https://vibrasystems.com/elastomer-and-spring-hangers.html) | USA |
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/stepper_motor.md b/content/zettels/stepper_motor.md
new file mode 100644
index 0000000..980bb42
--- /dev/null
+++ b/content/zettels/stepper_motor.md
@@ -0,0 +1,144 @@
++++
+title = "Stepper Motor"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+:
+
+
+## Types of Stepper motors {#types-of-stepper-motors}
+
+
+
+- Permanent Magnet
+- Variable Reluctance
+- Hybrid
+
+
+
+{{< figure src="/ox-hugo/stepper_two_phase_hybrid_stepper.png" caption="Figure 1: Interior of a two phase hybrid stepper motor. This motor has eight windings and 50 roto teeth" >}}
+
+
+
+{{< figure src="/ox-hugo/stepper_hybrid_schematic.png" caption="Figure 2: Schematic of a two phase hybrid stepper motor. This motor has four windings and 15 pole pairs" >}}
+
+
+## Micro Stepping {#micro-stepping}
+
+From (Ronquist and Winroth 2016):
+
+> By varying the magnitude and direction of the winding currents, the rotor is continuously attracted in the desired direction.
+> A "step" occurs whenever a rotor tooth moves slightly to align itself to an electromagnet tooth.
+>
+> It is possible to decrease the step size of the hybrid stepper motor by using a control logic called **microstepping**.
+> As opposed to fully exciting each phase in turn, as described previously, microstepping involves transitioning between each phase shift.
+> That is, the current references are defined by sinusoidal signals displaced 90 electrical degrees from each other.
+> For most time instances, then, both phases are excited to a certain degree.
+> The result is that the electric position vector can be placed between two teeth.
+> The resolution of the motor has therefore been increased.
+
+From (Condit 2004):
+
+> There are several factors that affect the linearity of microstepping in real motors.
+> The first limitation is static friction in the system.
+>
+> [...]
+>
+> Another limitation is the fact that the torque versus position curve is not perfectly sinusoidal.
+> The toothed shape of the motor and other physical characteristics of the motor contribute to this.
+> [Figure 3](#figure--fig:stepper-real-pos-vs-actual-pos) shows a plot of actual position vs expected position for a typical motor.
+
+
+
+{{< figure src="/ox-hugo/stepper_real_pos_vs_actual_pos.png" caption="Figure 3: Real vs actuator rotor position" >}}
+
+
+## Open Loop errors {#open-loop-errors}
+
+Nice references:
+
+- (Vyas, Patel, and Shah 2015)
+- (Ronquist and Winroth 2016)
+-
+
+
+
+References about these errors can be search for using "torque ripple", "Cogging torque" and "load dependent error" keywords.
+
+
+
+
+### Error with period equal to one **turn** {#error-with-period-equal-to-one-turn}
+
+A stepper motor has a position error with a period equal to a full turn.
+
+An example is shown in [Figure 4](#figure--fig:stepper-error-one-turn-period) (from (Ronquist and Winroth 2016)).
+The high frequency errors that can be observed have a period of one step (i.e. 200 periods each turn).
+
+
+
+{{< figure src="/ox-hugo/stepper_error_one_turn_period.png" caption="Figure 4: Angle error of the stepper motor during a 100rpm (i.e. 0.6s per turn)" >}}
+
+
+### Error with period equal to one **step** {#error-with-period-equal-to-one-step}
+
+For a two phase stepper motor, there are (typically) **200 steps per revolution** (i.e. 1.8 degrees per step).
+
+Between each step, even when using some micro-stepping, there are some position errors that are due to non-perfect magnetic and electromagnetic fields.
+
+The period of this error is corresponding to 200 period/revolution.
+
+Then scanning, this can lead to **high frequency vibrations**.
+
+This is what is typically limiting the accuracy of the stepper motor (usually specified in between 3% and 5% of the step increment).
+This is approximately corresponding to **1mrad** and can be around 0.1mrad for best stepper motors.
+
+
+
+Consider a stepper motor with 200 steps by turn attached to a ball-screw with a pitch of 1mm per turn.
+A rotation of 1 turn per second will induce vibrations at 200Hz with an amplitude of \\(1\\,\mu m\\).
+
+
+
+Note that this error is not a pure sine, it also has some harmonics.
+
+One way to reduce these errors is to use a ball-screw mechanism with a smaller pitch (or a reduction gearbox).
+The price to pay is smaller velocity (and even high vibration frequencies for the same velocity).
+
+
+### Load Dependent Error {#load-dependent-error}
+
+If the electromagnetic torque would be the only torque acting on the system, the electrical angle generated by the control system would correspond directly to the reference angle.
+
+The position error is to a large degree due to the so called load angle when the motor is positioned by an open-loop controller.
+The load angle results from applying an external torque to the stepper motor, **causing the magnetic rotor to be out of phase with the electrical field**.
+
+The most common way to limit these errors is to always operate the motor with its rated winding currents.
+This results in significant energy losses and heating of the motor which deprive the motor of its efficiency.
+
+Another option is to use a position sensor such as an encoder with a feedback controller.
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|--------------------------------------------------------------------------|----------------|
+| [AML](https://arunmicro.com/) | United Kingdom |
+| [Sanyo](https://www.sanyodenki.com/catalogs/servo/stepping_systems.html) | |
+
+
+## 2 phase VS 5 phase stepper motor {#2-phase-vs-5-phase-stepper-motor}
+
+
+
+
+## Bibliography {#bibliography}
+
+
Ronquist, Anton, and Birger Winroth. 2016. “Estimation and Compensation of Load-Dependent Position Error in a Hybrid Stepper Motor.” Linköping University, Automatic Control; Linköping University, Automatic Control.
+
Vyas, Darshit C, Jinesh G Patel, and Mrs Heli A Shah. 2015. “Microstepping of Stepper Motor and Sources of Errors in Microstepping System.” Int. Journal of Engineering Research and General Science 3 (2).
+
diff --git a/content/zettels/stewart_platforms.md b/content/zettels/stewart_platforms.md
new file mode 100644
index 0000000..aa02b17
--- /dev/null
+++ b/content/zettels/stewart_platforms.md
@@ -0,0 +1,611 @@
++++
+title = "Stewart Platforms"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+:
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
+| [PI](https://www.physikinstrumente.com/en/products/parallel-kinematic-hexapods/) | Germany |
+| [Newport](https://www.newport.com/search/?q1=hexapod%3Arelevance%3Acompatibility%3AMETRIC%3AisObsolete%3Afalse%3A-excludeCountries%3AFR%3AnpCategory%3Ahexapods&ajax&text=hexapod) | USA |
+| [Symetrie](https://symetrie.fr/en/hexapods-en/positioning-hexapods/) | France |
+| [CSA Engineering](https://www.csaengineering.com/products-services/hexapod-positioning-systems/hexapod-models.html) | USA |
+| [Aerotech](https://www.aerotech.com/product-catalog/hexapods.aspx) | USA |
+| [SmarAct](https://www.smaract.com/smarpod) | Germany |
+| [Gridbots](https://www.gridbots.com/hexamove.html) | India |
+| [Alio Industries](https://www.alioindustries.com/) | USA |
+| [MOOG](https://www.moog.com/products/hexapods-positioning-systems.html) | |
+
+
+## Stewart Platforms at ESRF {#stewart-platforms-at-esrf}
+
+| Beamline | Manufacturer | Comments |
+|----------|--------------|-----------------------------------|
+| ID11 | Symetrie | Small, Piezo based |
+| ID31 | Symetrie | Large Stroke, Encoders, DC motors |
+| ID01 | PI | |
+| ID16a | ESRF | Piezo (PI) |
+
+
+## Built Stewart PLatforms {#built-stewart-platforms}
+
+
+
+**Actuators**:
+
+- Short Stroke: PZT, Voice Coil, Magnetostrictive
+- Long Stroke: DC, AC, Servo + Ball Screw, Inchworm
+
+**Joints**:
+
+- Flexible: usually for short stroke
+- Conventional
+
+**Sensors**:
+
+- Force Sensors
+- Relative Motion Sensors: Encoders, LVDT
+- Strain Gauge
+- Inertial Sensors (Geophone, Accelerometer)
+- External Metrology
+
+
+### Short Stroke {#short-stroke}
+
+
+
+| University | Figure | Configuration | Joints | Actuators | Sensors | Application | Link to bibliography |
+|----------------|---------------------------------------------|-------------------|-------------|--------------------------|------------------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| JPL | [Figure 5](#figure--fig:stewart-jpl) | Cubic | Flexible | Voice Coil (0.5 mm) | Force (collocated) | | (Spanos, Rahman, and Blackwood 1995), (Rahman, Spanos, and Laskin 1998) Vibration Isolation (Space) |
+| Washinton, JPL | [Figure 16](#figure--fig:stewart-ht-uw) | Cubic | Elastomers | Voice Coil (10 mm) | Force, LVDT, Geophones | Isolation + Pointing (Space) | (Thayer and Vagners 1998), (Thayer et al. 2002), (Hauge and Campbell 2004) |
+| Wyoming | [Figure 17](#figure--fig:stewart-uw-gsp) | Cubic (CoM=CoK) | Flexible | Voice Coil | Force | | (McInroy 1999), (McInroy, O’Brien, and Neat 1999), (McInroy and Hamann 2000), (Li, Hamann, and McInroy 2001), (Jafari and McInroy 2003) |
+| Brussels | [Figure 21](#figure--fig:stewart-ulb-vc) | Cubic | Flexible | Voice Coil | Force | Vibration Isolation | (Abu Hanieh 2003), (Preumont et al. 2007) |
+| SRDC | [Figure 2](#figure--fig:stewart-naval) | Not Cubic | Ball joints | Voice Coil (10 mm) | | | (Taranti, Agrawal, and Cristi 2001) |
+| SRDC | [Figure 18](#figure--fig:stewart-pph) | Non-Cubic | Flexible | Voice Coil | Accelerometers, External metrology: Eddy Current + optical | Pointing | (Chen, Bishop, and Agrawal 2003) |
+| Harbin (China) | [Figure 13](#figure--fig:stewart-tang18) | Cubic | Flexible | Voice Coil | Accelerometer in each leg | | (Chi et al. 2015), (Tang, Cao, and Yu 2018), (Jiao et al. 2018) |
+| Einhoven | [Figure 9](#figure--fig:stewart-beijen) | Almost cubic | Flexible | Voice Coil | Force Sensor + Accelerometer | Vibration Isolation | (Beijen et al. 2018), (Tjepkema 2012) |
+| JPL | [Figure 4](#figure--fig:stewart-geng) | Cubic (6-UPU) | Flexible | Magnetostrictive | Force (collocated), Accelerometers | Vibration Isolation | (Geng and Haynes 1993), (Geng and Haynes 1994), (Geng et al. 1995) |
+| China | [Figure 10](#figure--fig:stewart-zhang11) | Non-cubic | Flexible | Magnetostrictive | Inertial | | (Zhang et al. 2011) |
+| Brussels | [Figure 20](#figure--fig:stewart-ulb-pz) | Cubic | Flexible | Piezoelectric, Amplified | Piezo Force | Active Damping | (Abu Hanieh, Horodinca, and Preumont 2002) |
+| SRDC | [Figure 19](#figure--fig:stewart-uqp) | Cubic | | Piezoelectric (50 um) | Geophone | Vibration | (Agrawal and Chen 2004) |
+| Taiwan | [Figure 14](#figure--fig:stewart-nanoscale) | Cubic | Flexible | Piezoelectric (120 um) | External capacitive | | (Ting, Jar, and Li 2006), (Ting, Li, and Nguyen 2013) |
+| Taiwan | [Figure 15](#figure--fig:stewart-ting07) | Non-Cubic | Flexible | Piezoelectric (160 um) | External capacitive (LION) | | (Ting, Jar, and Li 2007) |
+| Harbin (China) | [Figure 12](#figure--fig:stewart-du14) | 6-SPS (Optimized) | Flexible | Piezoelectric | Strain Gauge | | (Du, Shi, and Dong 2014) |
+| Japan | [Figure 6](#figure--fig:stewart-furutani) | Non-Cubic | Flexible | Piezoelectric (16 um) | Eddy Current Displacement Sensors | Cutting machine | (Furutani, Suzuki, and Kudoh 2004) |
+| China | [Figure 11](#figure--fig:stewart-yang19) | 6-UPS (Cubic?) | Flexible | Piezoelectric | Force, Position | | (Yang et al. 2019) |
+| Shangai | [Figure 8](#figure--fig:stewart-wang16) | Cubic | Flexible | Piezoelectric | Force Sensor + Accelerometer | | (Wang et al. 2016) |
+| Matra (France) | [Figure 3](#figure--fig:stewart-mais) | Cubic | Flexible | Piezoelectric (25 um) | Piezo force sensors | Vibration control | (Defendini et al. 2000) |
+| Japan | [Figure 7](#figure--fig:stewart-torii) | Non-Cubic | Flexible | Inchworm | | | (Torii et al. 2012) |
+| Netherlands | [Figure 1](#figure--fig:stewart-naves) | Non-Cubic | Flexible | 3-phase rotary motor | Rotary Encoders | | (NO_ITEM_DATA:naves20_desig; Naves et al. 2020) |
+
+
+
+{{< figure src="/ox-hugo/stewart_naves.jpg" caption="Figure 1: T-flex <&naves20_desig>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_naval.jpg" caption="Figure 2: <&taranti01_effic_algor_vibrat_suppr>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_mais.jpg" caption="Figure 3: <&defendini00_techn>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_geng.jpg" caption="Figure 4: <&geng94_six_degree_of_freed_activ>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_jpl.jpg" caption="Figure 5: <&spanos95_soft_activ_vibrat_isolat>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_furutani.jpg" caption="Figure 6: <&furutani04_nanom_cuttin_machin_using_stewar>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_torii.jpg" caption="Figure 7: <&torii12_small_size_self_propel_stewar_platf>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_wang16.jpg" caption="Figure 8: <&wang16_inves_activ_vibrat_isolat_stewar>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_beijen.jpg" caption="Figure 9: <&beijen18_self_tunin_mimo_distur_feedf>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_zhang11.jpg" caption="Figure 10: <&zhang11_six_dof>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_yang19.jpg" caption="Figure 11: <&yang19_dynam_model_decoup_contr_flexib>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_du14.jpg" caption="Figure 12: <&du14_piezo_actuat_high_precis_flexib>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_tang18.jpg" caption="Figure 13: <&tang18_decen_vibrat_contr_voice_coil>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_nanoscale.jpg" caption="Figure 14: <&ting06_desig_stewar_nanos_platf>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_ting07.jpg" caption="Figure 15: <&ting07_measur_calib_stewar_microm_system>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_ht_uw.jpg" caption="Figure 16: Hood Technology Corporation (HT) and the University of Washington (UW) have designed and tested a unique hexapod design for spaceborne interferometry missions <&thayer02_six_axis_vibrat_isolat_system>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_uw_gsp.jpg" caption="Figure 17: UW GSP: Mutually Orthogonal Stewart Geometry <&li01_simul_fault_vibrat_isolat_point>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_pph.jpg" caption="Figure 18: Precision Pointing Hexapod (PPH) <&chen03_payload_point_activ_vibrat_isolat>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_uqp.jpg" caption="Figure 19: Ultra Quiet Platform (UQP) <&agrawal04_algor_activ_vibrat_isolat_spacec>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_ulb_pz.jpg" caption="Figure 20: ULB - Piezoelectric <&abu02_stiff_soft_stewar_platf_activ>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_ulb_vc.jpg" caption="Figure 21: ULB - Voice Coil <&hanieh03_activ_stewar>" >}}
+
+
+### Long Stroke {#long-stroke}
+
+
+
+| University | Figure | Configuration | Joints | Actuators | Sensors | Link to bibliography |
+|----------------|------------------------------------------|---------------|--------------|-------------------------|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Japan | [Figure 22](#figure--fig:stewart-cleary) | 6-UPS | Conventional | DC, gear + rack pinion | Encoder, 7um res | (Cleary and Arai 1991) |
+| Seoul | [Figure 23](#figure--fig:stewart-kim00) | Non-Cubic | Conventional | Hydraulic | LVDT | (Kim, Kang, and Lee 2000) |
+| Xidian (China) | [Figure 24](#figure--fig:stewart-su04) | Non-Cubic | Conventional | Servo Motor + Screwball | Encoder | (Su et al. 2004) |
+| Czech | [Figure 25](#figure--fig:stewart-czech) | 6-UPS | Conventional | DC, Ball Screw | Absolute Linear position | (Březina, Andrš, and Březina 2008), (Houška, Březina, and Březina 2010), (Březina and Březina 2010) |
+
+
+
+{{< figure src="/ox-hugo/stewart_cleary.jpg" caption="Figure 22: <&cleary91_protot_paral_manip>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_kim00.jpg" caption="Figure 23: <&kim01_six>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_su04.jpg" caption="Figure 24: <&su04_distur_rejec_high_precis_motion>" >}}
+
+
+
+{{< figure src="/ox-hugo/stewart_czech.jpg" caption="Figure 25: Stewart platform from Brno University (Czech) <&brezina08_ni_labview_matlab_simmec_stewar_platf_desig>" >}}
+
+
+## Articles - Design Related {#articles-design-related}
+
+
+
+- Flexible joints (Section )
+- Specific geometry to have good decoupling properties (Section )
+- Alternative architectures for 6DoF parallel mechanisms (Section )
+- Workspace (Section )
+- Modelling (Section )
+
+
+### Flexures {#flexures}
+
+
+
+From (Hauge and Campbell 2004):
+
+> Elastomer flexures, rather than steel, reduce lateral stiffness and improve passive performance at payload resonance (damping) and at frequencies greater than 100 Hz.
+
+| Main Object | Link to bibliography |
+|--------------------|----------------------------------------------------|
+| Effect of flexures | (McInroy 2002) |
+
+
+### Decoupling {#decoupling}
+
+
+
+| Main Object | Link to bibliography |
+|------------------------------------|---------------------------------------------------------------|
+| Geometry for decoupling (CoM, CoK) | (McInroy and Hamann 2000) |
+| | (Afzali-Far 2016) |
+
+
+### Alternative Architectures {#alternative-architectures}
+
+
+
+| Figure | Link to bibliography |
+|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
+| [Figure 26](#figure--fig:stewart-dong07) | (Dong, Sun, and Du 2008), (Dong, Sun, and Du 2007) |
+| | (Kim and Cho 2009) |
+| | (Yun and Li 2010) |
+| | (NO_ITEM_DATA:gao02_necw_kinem_struc_paral_manip_desig) |
+| | (Horin and Shoham 2006) |
+
+
+
+{{< figure src="/ox-hugo/stewart_dong07.jpg" caption="Figure 26: <&dong07_desig_precis_compl_paral_posit>" >}}
+
+
+### Workspace {#workspace}
+
+
+
+| Main Object | Link to bibliography |
+|------------------------------------------------------|----------------------------------------------------------------|
+| Compute orientation | (Bonev and Ryu 2001) |
+| Reachable Workspace | (Pernkopf and Husty 2006) |
+| Determination of the max. singularity free workspace | (Jiang and Gosselin 2009a) |
+| Orientation Workspace | (Jiang and Gosselin 2009b) |
+
+
+### Modelling {#modelling}
+
+
+
+
+#### Multi Body {#multi-body}
+
+
+#### Analytical {#analytical}
+
+
+#### Lumped {#lumped}
+
+
+## Control {#control}
+
+
+
+Different control objectives:
+
+- Vibration Control (Section )
+- Position Control (Section )
+
+Sometimes, the two objectives are simultaneous, in that case multiple sensors needs to be combined in the control architecture (Section ).
+
+Stewart platform, being 6DoF parallel mechanisms, have a coupled dynamics.
+In order to ease the control design, decoupling is generally required.
+Several approaches can be used (Section ).
+
+
+### Vibration Control and Active Damping {#vibration-control-and-active-damping}
+
+
+
+From (Hauge and Campbell 2004):
+
+> In general, force sensors such as load cells, work well to measure vibration, but have difficulty with cross-axis dynamics.
+> Inertial sensors, on the other hand, do not have this cross-axis limitation, but are usually more sensitive to payload and base dynamics and are more difficult to control due to the non-collocated nature of the sensor and actuator.
+> Force sensors typically work well because they are not as sensitive to payload and base dynamics, but are limited in performance by a low-frequency zero pair resulting from the cross-axial stiffness.
+> This zero pair has confused many researchers because it is very sensitive, occasionally becoming non-minimum phase.
+> The zero pair is the current limitation in performance using load cell sensors.
+
+
+#### Integral Force Feedback {#integral-force-feedback}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|------------|------------------|------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| JPL | Magnetostrictive | Force (collocated), Accelerometers | Two layers: Decentralized IFF, Robust Adaptive Control | Two layer control for active damping and vibration isolation | (Geng et al. 1995) |
+| JPL | Voice Coil | Force (collocated) | Decentralized IFF | Decentralized force feedback to reduce the transmissibility | (Spanos, Rahman, and Blackwood 1995), (Rahman, Spanos, and Laskin 1998) |
+| Washinton | Voice Coil | Force, LVDT, Geophones | LQG, Force + geophones for vibration, LVDT for pointing | Centralized control is no better than decentralized. Geophone + Force MISO control is good | (Thayer and Vagners 1998), (Thayer et al. 2002) |
+| Wyoming | Voice Coil | Force | Centralized (cartesian) IFF | Difficult to decouple in practice | (O’Brien et al. 1998) |
+| Wyoming | Voice Coil | Force | IFF, centralized (decouple) + decentralized (coupled) | Specific geometry: decoupled force plant. Better perf with centralized IFF | (McInroy 1999), (McInroy, O’Brien, and Neat 1999), (McInroy and Hamann 2000) |
+| Brussels | APA | Piezo force sensor | Decentralized IFF | | (Abu Hanieh, Horodinca, and Preumont 2002) |
+| Brussels | Voice Coil | Force Sensor | Decentralized IFF | Effect of flexible joints | (Preumont et al. 2007) |
+| Shangai | Piezoelectric | Force Sensor + Accelerometer | Vibration isolation, HAC-LAC (IFF + FxLMS) | Dynamic Model + Vibration Control | (Wang et al. 2016) |
+| China | | | Decentralized IFF | Design cubic configuration to have same modal frequencies: optimal damping of all modes | (Yang et al. 2017) |
+| Washinton | Voice Coil | Force | Decentralized IFF | Comparison of force sensor and inertial sensors. Issue on non-minimum phase zero | (Hauge and Campbell 2004) |
+| China | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control: 6x PI controllers | Stiffness of flexible joints is compensated using feedback, then the system is decoupled in the modal space | (Yang et al. 2019) |
+
+
+#### Sky-Hood Damping {#sky-hood-damping}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|----------------|------------|---------------------------------------------------|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
+| Wyoming | Voice Coil | Accelerometer (collocated), ext. Rx/Ry sensors | Cartesian acceleration feedback (isolation) + 2DoF pointing control (external sensor) | Decoupling, both vibration + pointing control | (Li, Hamann, and McInroy 2001) |
+| China | Voice Coil | Geophone + Eddy Current (Struts, collocated) | Decentralized (Sky Hook) + Centralized (modal) Control | | (Pu et al. 2011) |
+| China | Voice Coil | Accelerometer in each leg | Centralized Vibration Control, PI, Skyhook | | (Abbas and Hai 2014) |
+| Einhoven | Voice Coil | 6dof Accelerometers on mobile and fixed platforms | Self learning feedforward (FIR), Centralized MIMO feedback (sky hood damping) | | (Beijen et al. 2018) |
+| Harbin (China) | Voice Coil | Accelerometer in each leg | Decentralized vibration control | Vibration Control with VCM and Decentralized control | (Tang, Cao, and Yu 2018) |
+| Washinton | Voice Coil | Geophones | Decentralized Inertial Feedback | Centralized control is no better than decentralized. Geophone + Force MISO control is good | (Thayer et al. 2002) |
+| Washinton | Voice Coil | Geophones | Decentralized Sky Hood Damping | Comparison of force sensor and inertial sensors | (Hauge and Campbell 2004) |
+| Harbin (China) | Voice Coil | Accelerometers | MIMO H-Infinity, active damping | Model + active damping with flexible hinges | (Jiao et al. 2018) |
+
+
+#### Vibration Control of Narrowband Disturbances {#vibration-control-of-narrowband-disturbances}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|------------|------------------|------------------------------|-------------------------------------------------------------------------------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
+| JPL | Magnetostrictive | Force, Accelerometers | Robust Adaptive Filter | Hardware implementation | (Geng and Haynes 1993), (Geng and Haynes 1994) |
+| SRDC | | | LMS with FIR (feedforward), disturbance rejection, Decentralized (struts) PID | Rejection of narrowband periodic disturbances | (Chen, Bishop, and Agrawal 2003) |
+| Wyoming | Voice Coil | | Adaptive sinusoidal disturbance (Phase Lock Loop) | | (Lin and McInroy 2003) |
+| SRDC | Piezo | Geophone (collocated) | "multiple error LMS" (require measured disturbance) vs "clear box" | | (Agrawal and Chen 2004) |
+| China | Magnetostrictive | Inertial | Sinusoidal vibration, adaptive filters (LMS) | Design and Control of flexure joint Hexapods | (Zhang et al. 2011) |
+| Shangai | Piezoelectric | Force Sensor + Accelerometer | Vibration isolation, HAC-LAC (IFF + FxLMS) | Dynamic Model + Vibration Control | (Wang et al. 2016) |
+
+
+### Position Control {#position-control}
+
+
+
+Here, the objective is to _position_ the mobile platform with respect to an external metrology or internal metrology.
+
+Control Strategy:
+
+- Decentralized P, PI or PID
+- LQR, LQG
+- H-Infinity
+- Two Layer
+
+| University | Actuators | Sensors | Control | Modelling | Main Object | Link to bibliography |
+|----------------|---------------|------------------------------------------------|---------------------------------------------------------------------------------------|-----------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Washinton | Voice Coil | Force, LVDT, Geophones | LQG, Force + geophones for vibration, LVDT for pointing | FEM => State Space | Centralized control is no better than decentralized. Geophone + Force MISO control is good | (Thayer and Vagners 1998), (Thayer et al. 2002) |
+| Wyoming | Voice Coil | Force, LVDT | IFF, centralized (decouple) + decentralized (coupled) | Lumped | Specific geometry: decoupled force plant. Better perf with centralized IFF | (McInroy 1999), (McInroy, O’Brien, and Neat 1999), (McInroy and Hamann 2000) |
+| Seoul | Hydraulic | LVDT | Decentralized (strut) vs Centralized (cartesian) | | | (Kim, Kang, and Lee 2000) |
+| Wyoming | Voice Coil | Accelerometer (collocated), ext. Rx/Ry sensors | Cartesian acceleration feedback (isolation) + 2DoF pointing control (external sensor) | Analytical equations | Decoupling, both vibration + pointing control | (Li, Hamann, and McInroy 2001) |
+| Japan | APA | Eddy current displacement | Decentralized (struts) PI + LPF control | | | (Furutani, Suzuki, and Kudoh 2004) |
+| China | Voice Coil | Geophone + Eddy Current (Struts, collocated) | Decentralized (Sky Hook) + Centralized (modal) Control | | | (Pu et al. 2011) |
+| Harbin (China) | PZT Piezo | Strain Gauge | Decentralized position feedback | | Workspace, Stiffness analyzed | (Du, Shi, and Dong 2014) |
+| China | Piezoelectric | Leg length | Tracking control, ADRC, State observer | Analytical | Use of ADRC for tracking control of cubic hexapod | (Min, Huang, and Su 2019) |
+| China | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control: 6x PI controllers | Solid/Flexible | Stiffness of flexible joints is compensated using feedback, then the system is decoupled in the modal space | (Yang et al. 2019) |
+
+From: (Yang et al. 2019):
+
+> On the other hand, the traditional modal decoupled control strategy cannot deal with the flexible Stewart platform governed by Eq. (34) because it is impossible to achieve simultaneous diagonalization of the mass, damping and stiffness matrices.
+> To make the six-DOF system decoupled into six single-DOF isolators, we design a new controller based on the leg’s force and position feedback.
+> 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}
+
+
+
+Improvement by the use of several sensors:
+
+- HAC-LAC
+- Two sensor control
+- Sensor Fusion
+
+Comparison between "two sensor control" and "sensor fusion" is given in (Beijen, Tjepkema, and van Dijk 2014).
+
+
+#### Two sensor control {#two-sensor-control}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|-------------|------------|--------------------|-----------------------------------|------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|
+| Washinton | Voice Coil | Force and Inertial | LQG, Decentralized, Sensor Fusion | Combine force/inertial sensors. Comparison of force sensor and inertial sensors. Issue on non-minimum phase zero | (Hauge and Campbell 2004) |
+| Netherlands | Voice Coil | | Sensor Fusion, Two Sensor Control | | (Tjepkema 2012) |
+
+
+#### HAC-LAC {#hac-lac}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|------------|------------------|---------------------------------------------------|---------------------------------------------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------------------------|
+| JPL | Magnetostrictive | Force (collocated), Accelerometers | Two layers: Decentralized IFF, Robust Adaptive Control | Two layer control for active damping and vibration isolation | (Geng et al. 1995) |
+| Shangai | Piezoelectric | Force Sensor + Accelerometer | Vibration isolation, HAC-LAC (IFF + FxLMS) | Dynamic Model + Vibration Control | (Wang et al. 2016) |
+| Wyoming | Voice Coil | Accelerometer (collocated), ext. Rx/Ry sensors | Cartesian acceleration feedback (isolation) + 2DoF pointing control (external sensor) | Decoupling, both vibration + pointing control | (Li, Hamann, and McInroy 2001) |
+| China | Voice Coil | Geophone + Eddy Current (Struts, collocated) | Decentralized (Sky Hook) + Centralized (modal) Control | | (Pu et al. 2011) |
+| China | Voice Coil | Force sensors (strus) + accelerometer (cartesian) | Decentralized Force Feedback + Centralized H2 control based on accelerometers | | (Xie, Wang, and Zhang 2017) |
+
+
+#### Sensor Fusion {#sensor-fusion}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|-------------|------------|------------------------------|-----------------------------------|------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
+| Netherlands | Voice Coil | Force (HF) and Inertial (LF) | Sensor Fusion, Two Sensor Control | | (Tjepkema 2012), (Tjepkema, van Dijk, and Soemers 2012) |
+| Washinton | Voice Coil | Force (HF) and Inertial (LF) | LQG, Decentralized, Sensor Fusion | Combine force/inertial sensors. Comparison of force sensor and inertial sensors. Issue on non-minimum phase zero | (Hauge and Campbell 2004) |
+
+
+#### Other Strategies {#other-strategies}
+
+| University | Actuators | Sensors | Control | Main Object | Link to bibliography |
+|------------|---------------|------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| China | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control: 6x PI controllers | Stiffness of flexible joints is compensated using feedback, then the system is decoupled in the modal space | (Yang et al. 2019) |
+| Washinton | Voice Coil | Force, LVDT, Geophones | LQG, Force + geophones for vibration, LVDT for pointing | Centralized control is no better than decentralized. Geophone + Force MISO control is good | (Thayer and Vagners 1998), (Thayer et al. 2002) |
+| Wyoming | Voice Coil | Force | IFF, centralized (decouple) + decentralized (coupled) | Specific geometry: decoupled force plant. Better perf with centralized IFF | (McInroy 1999), (McInroy, O’Brien, and Neat 1999), (McInroy and Hamann 2000) |
+
+
+### Decoupling Strategies {#decoupling-strategies}
+
+Different strategies:
+
+- Jacobian decoupling: in the cartesian frame or in the frame of the struts
+- Modal decoupling
+- SVD decoupling
+
+Identify Jacobian for better decoupling: (Cheng, Ren, and Dai 2004), (Gexue et al. 2004).
+
+
+
+
+#### Jacobian - Struts {#jacobian-struts}
+
+| Japan | APA | Eddy current displacement | Decentralized (struts) PI + LPF control | (Furutani, Suzuki, and Kudoh 2004) |
+|----------------|-----------|---------------------------|-----------------------------------------|------------------------------------------------------------------------|
+| Harbin (China) | PZT Piezo | Strain Gauge | Decentralized position feedback | (Du, Shi, and Dong 2014) |
+
+
+#### Jacobian - Cartesian {#jacobian-cartesian}
+
+| Wyoming | Voice Coil | Force | Cartesian frame decoupling | (O’Brien et al. 1998) |
+|---------|------------|------------------------------------------------|---------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Wyoming | Voice Coil | Force | IFF, Cartesian Frame, Jacobians | (McInroy 1999), (McInroy, O’Brien, and Neat 1999), (McInroy and Hamann 2000) |
+| Seoul | Hydraulic | LVDT | Decentralized (strut) vs Centralized (cartesian) | (Kim, Kang, and Lee 2000) |
+| Wyoming | Voice Coil | Accelerometer (collocated), ext. Rx/Ry sensors | Cartesian acceleration feedback (isolation) + 2DoF pointing control (external sensor) | (Li, Hamann, and McInroy 2001) |
+| China | Voice Coil | Accelerometer in each leg | Centralized Vibration Control, PI, Skyhook | (Abbas and Hai 2014) |
+
+
+#### Modal Decoupling {#modal-decoupling}
+
+| China | Voice Coil | Geophone + Eddy Current (Struts, collocated) | Decentralized (Sky Hook) + Centralized (modal) Control | (Pu et al. 2011) |
+|-------|---------------|----------------------------------------------|--------------------------------------------------------------------|--------------------------------------------------------|
+| China | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control: 6x PI controllers | (Yang et al. 2019) |
+
+
+#### Multivariable Control {#multivariable-control}
+
+From (Thayer et al. 2002):
+
+> Experimental closed-loopcontrol results using the hexapod have shown that controllers designed using a decentralized single-strut design work well when compared to full multivariable methodologies.
+
+| China | PZT | Geophone (struts) | H-Infinity and mu-synthesis | (Lei and Benli 2008) |
+|----------------|------------|---------------------------------------------------|-------------------------------------------------------------------------------|-----------------------------------------------------------------|
+| China | Voice Coil | Force sensors (strus) + accelerometer (cartesian) | Decentralized Force Feedback + Centralized H2 control based on accelerometers | (Xie, Wang, and Zhang 2017) |
+| Harbin (China) | Voice Coil | Accelerometers | MIMO H-Infinity, active damping | (Jiao et al. 2018) |
+
+
+### Long Stroke Stewart Platforms {#long-stroke-stewart-platforms}
+
+
+
+| Link to bibliography | University | Actuators | Sensors | Control | Main Object |
+|-------------------------------------------------------------------------------------------------------------------------------------------------|----------------|------------------------|------------------|--------------------------------------------------|--------------------------------------------|
+| (Cleary and Arai 1991) | Japan | DC, gear + rack pinion | Encoder, 7um res | Decentralized (struts), PID control | Singular configuration analysis, workspace |
+| (Su et al. 2004) | Xidian (China) | | | | |
+| (Huang and Fu 2005) | Taiwan | | | | |
+| (Březina, Andrš, and Březina 2008), (Houška, Březina, and Březina 2010) | Czech | DC | | | Modeling with sim-mechanics |
+| (Molina, Rosario, and Sanchez 2008) | Brazil | | | | Simulation with Matlab/Simulink |
+| (Yang et al. 2010) | China | | | Decentralized PID | Simulation with Simulink/SimMechanics |
+| (Kim, Kang, and Lee 2000) | Seoul | Hydraulic | LVDT | Decentralized (strut) vs Centralized (cartesian) | |
+
+
+## Main Bibliography {#main-bibliography}
+
+
+### Books {#books}
+
+- (Merlet 2006)
+- (Taghirad 2013)
+- (Preumont 2018)
+- (Arakelian 2018)
+
+
+### PhD Thesis {#phd-thesis}
+
+- (Li 2001)
+- (Bishop Jr 2002)
+- (Abu Hanieh 2003)
+- (Vivas 2004)
+- (Afzali-Far 2016)
+- (Deng 2017)
+- (NO_ITEM_DATA:naves20_desig)
+
+
+### Articles - Reviews {#articles-reviews}
+
+- (Dasgupta and Mruthyunjaya 2000)
+- (Merlet 2002)
+- (Patel and George 2012)
+- (Buzurovic 2012)
+- (Furqan, Suhaib, and Ahmad 2017)
+
+
+## Bibliography {#bibliography}
+
+
+
Abbas, H., and H. Hai. 2014. “Vibration Isolation Concepts for Non-Cubic Stewart Platform Using Modal Control.” In Proceedings of 11th International Bhurban Conference on Applied Sciences & Technology (IBCAST) Islamabad, Pakistan. doi:10.1109/ibcast.2014.6778139.
+
Abu Hanieh, A. 2003. “Active Isolation and Damping of Vibrations via Stewart Platform.” Université Libre de Bruxelles, Brussels, Belgium.
+
Abu Hanieh, A., M. Horodinca, and A. Preumont. 2002. “Stiff and Soft Stewart Platforms for Active Damping and Active Isolation of Vibrations.” In Actuator 2002, 8th International Conference on New Actuators.
+
Afzali-Far, Behrouz. 2016. “Vibrations and Dynamic Isotropy in Hexapods-Analytical Studies.” Lund University.
+
Agrawal, B. N., and H.-J. Chen. 2004. “Algorithms for Active Vibration Isolation on Spacecraft Using a Stewart Platform.” Smart Materials and Structures 13 (4): 873–80. doi:10.1088/0964-1726/13/4/025.
+
Arakelian, V. 2018. Dynamic Decoupling of Robot Manipulators. Mechanisms and Machine Science. Springer International Publishing. doi:10.1007/978-3-319-74363-9.
+
Beijen, M.A., M.F. Heertjes, J. Van Dijk, and W.B.J. Hakvoort. 2018. “Self-Tuning Mimo Disturbance Feedforward Control for Active Hard-Mounted Vibration Isolators.” Control Engineering Practice 72: 90–103. doi:10.1016/j.conengprac.2017.11.008.
+
Beijen, M. A., D. Tjepkema, and J. van Dijk. 2014. “Two-Sensor Control in Active Vibration Isolation Using Hard Mounts.” Control Engineering Practice 26: 82–90. doi:10.1016/j.conengprac.2013.12.015.
+
Bishop Jr, Ronald M. 2002. “Development of Precision Pointing Controllers with and without Vibration Suppression for the NPS Precision Pointing Hexapod.” Naval Postgraduate School, Monterey, California.
+
Bonev, Ilian A., and Jeha Ryu. 2001. “A New Approach to Orientation Workspace Analysis of 6-Dof Parallel Manipulators.” Mechanism and Machine Theory 36 (1): 15–28. doi:10.1016/s0094-114x(00)00032-x.
+
Březina, Lukáš, Ondřej Andrš, and Tomáš Březina. 2008. “Ni Labview-Matlab Simmechanics Stewart Platform Design.” Applied and Computational Mechanics. University of West Bohemia.
+
Březina, T., and L. Březina. 2010. “Controller Design of the Stewart Platform Linear Actuator.” In Recent Advances in Mechatronics, 341–46. Recent Advances in Mechatronics. Springer Berlin Heidelberg. doi:10.1007/978-3-642-05022-0_58.
+
Buzurovic, Ivan. 2012. “Advanced Control Methodologies in Parallel Robotic Systems.” Advances in Robotics & Automation 01 (s6). doi:10.4172/2168-9695.s6-e001.
+
Cheng, Yuan, Gexue Ren, and ShiLiang Dai. 2004. “The Multi-Body System Modelling of the Gough-Stewart Platform for Vibration Control.” Journal of Sound and Vibration 271 (3-5): 599–614. doi:10.1016/s0022-460x(03)00283-9.
+
Chen, H.-J., R. Bishop, and B. Agrawal. 2003. “Payload Pointing and Active Vibration Isolation Using Hexapod Platforms.” In 44th Structural Dynamics, and Materials Conference. doi:10.2514/6.2003-1643.
+
Chi, W., D. Cao, D. Wang, J. Tang, Y. Nie, and W. Huang. 2015. “Design and Experimental Study of a Vcm-Based Stewart Parallel Mechanism Used for Active Vibration Isolation.” Energies 8 (8): 8001–19. doi:10.3390/en8088001.
+
Cleary, K., and T. Arai. 1991. “A Prototype Parallel Manipulator: Kinematics, Construction, Software, Workspace Results, and Singularity Analysis.” In Proceedings. 1991 IEEE International Conference on Robotics and Automation. doi:10.1109/robot.1991.131641.
+
Dasgupta, B., and T. S. Mruthyunjaya. 2000. “The Stewart Platform Manipulator: A Review.” Mechanism and Machine Theory 35 (1): 15–40. doi:10.1016/s0094-114x(99)00006-3.
+
Defendini, A, L Vaillon, F Trouve, Th Rouze, B Sanctorum, G Griseri, P Spanoudakis, and M von Alberti. 2000. “Technology Predevelopment for Active Control of Vibration and Very High Accuracy Pointing Systems.” In Spacecraft Guidance, Navigation and Control Systems, 425:385.
+
Deng, R. 2017. “Integrated 6-DoF Lorentz Actuator with Gravity Compensation for Vibration Isolation in in-Line Surface Metrology.” TU Delft.
+
Dong, Wei, Lining Sun, and Zhijiang Du. 2008. “Stiffness Research on a High-Precision, Large-Workspace Parallel Mechanism with Compliant Joints.” Precision Engineering 32 (3): 222–31. doi:10.1016/j.precisioneng.2007.08.002.
+
Dong, W., L. N. Sun, and Z. J. Du. 2007. “Design of a Precision Compliant Parallel Positioner Driven by Dual Piezoelectric Actuators.” Sensors and Actuators a: Physical 135 (1): 250–56. doi:10.1016/j.sna.2006.07.011.
+
Du, Z., R. Shi, and W. Dong. 2014. “A Piezo-Actuated High-Precision Flexible Parallel Pointing Mechanism: Conceptual Design, Development, and Experiments.” IEEE Transactions on Robotics 30 (1): 131–37. doi:10.1109/tro.2013.2288800.
+
Furqan, Mohd, Mohd Suhaib, and Nazeer Ahmad. 2017. “Studies on Stewart Platform Manipulator: A Review.” Journal of Mechanical Science and Technology 31 (9): 4459–70. doi:10.1007/s12206-017-0846-1.
+
Furutani, K., M. Suzuki, and R. Kudoh. 2004. “Nanometre-Cutting Machine Using a Stewart-Platform Parallel Mechanism.” Measurement Science and Technology 15 (2): 467–74. doi:10.1088/0957-0233/15/2/022.
+
Geng, Zheng, and Leonard S. Haynes. 1993. “Six-Degree-of-Freedom Active Vibration Isolation Using a Stewart Platform Mechanism.” Journal of Robotic Systems 10 (5): 725–44. doi:10.1002/rob.4620100510.
+
Geng, Z. J., and L. S. Haynes. 1994. “Six Degree-of-Freedom Active Vibration Control Using the Stewart Platforms.” IEEE Transactions on Control Systems Technology 2 (1): 45–53. doi:10.1109/87.273110.
+
Geng, Z. J., G. G. Pan, L. S. Haynes, B. K. Wada, and J. A. Garba. 1995. “An Intelligent Control System for Multiple Degree-of-Freedom Vibration Isolation.” Journal of Intelligent Material Systems and Structures 6 (6): 787–800. doi:10.1177/1045389x9500600607.
+
Gexue, Ren, Lu Qiuhai, Hu Ning, Nan Rendong, and Peng Bo. 2004. “On Vibration Control with Stewart Parallel Mechanism.” Mechatronics 14 (1): 1–13. doi:10.1016/s0957-4158(02)00092-2.
+
Hauge, G. S., and M. E. Campbell. 2004. “Sensors and Control of a Space-Based Six-Axis Vibration Isolation System.” Journal of Sound and Vibration 269 (3-5): 913–31. doi:10.1016/s0022-460x(03)00206-2.
+
Horin, P. Ben, and M. Shoham. 2006. “Singularity Condition of Six-Degree-of-Freedom Three-Legged Parallel Robots Based on Grassmann-Cayley Algebra.” IEEE Transactions on Robotics 22 (4): 577–90. doi:10.1109/tro.2006.878958.
+
Houška, P., T. Březina, and L. Březina. 2010. “Design and Implementation of the Absolute Linear Position Sensor for the Stewart Platform.” In Recent Advances in Mechatronics, 347–52. Recent Advances in Mechatronics. Springer Berlin Heidelberg. doi:10.1007/978-3-642-05022-0_59.
+
Huang, Chin I, and Li-Chen Fu. 2005. “Smooth Sliding Mode Tracking Control of the Stewart Platform.” In Proceedings of 2005 IEEE Conference on Control Applications, 2005. CCA 2005. doi:10.1109/cca.2005.1507098.
+
Jafari, F., and J. E. McInroy. 2003. “Orthogonal Gough-Stewart Platforms for Micromanipulation.” IEEE Transactions on Robotics and Automation 19 (4). Institute of Electrical and Electronics Engineers (IEEE): 595–603. doi:10.1109/tra.2003.814506.
+
Jiang, Qimi, and Clément M. Gosselin. 2009a. “Determination of the Maximal Singularity-Free Orientation Workspace for the Gough-Stewart Platform.” Mechanism and Machine Theory 44 (6): 1281–93. doi:10.1016/j.mechmachtheory.2008.07.005.
+
———. 2009b. “Evaluation and Representation of the Theoretical Orientation Workspace of the Gough-Stewart Platform.” Journal of Mechanisms and Robotics 1 (2). doi:10.1115/1.3046137.
+
Jiao, J., Y. Wu, K. Yu, and R. Zhao. 2018. “Dynamic Modeling and Experimental Analyses of Stewart Platform with Flexible Hinges.” Journal of Vibration and Control 25 (1): 151–71. doi:10.1177/1077546318772474.
Kim, Hwa Soo, and Young Man Cho. 2009. “Design and Modeling of a Novel 3-Dof Precision Micro-Stage.” Mechatronics 19 (5): 598–608. doi:10.1016/j.mechatronics.2009.01.004.
+
Lei, L., and W. Benli. 2008. “Multi Objective Robust Active Vibration Control for Flexure Jointed Struts of Stewart Platforms via $H_\Infty$ and $\Mu$ Synthesis.” Chinese Journal of Aeronautics 21 (2): 125–33. doi:10.1016/s1000-9361(08)60016-3.
+
Lin, Haomin, and J.E. McInroy. 2003. “Adaptive Sinusoidal Disturbance Cancellation for Precise Pointing of Stewart Platforms.” IEEE Transactions on Control Systems Technology 11 (2): 267–72. doi:10.1109/tcst.2003.809248.
+
Li, X. 2001. “Simultaneous, Fault-Tolerant Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” University of Wyoming.
+
Li, Xiaochun, Jerry C. Hamann, and John E. McInroy. 2001. “Simultaneous Vibration Isolation and Pointing Control of Flexure Jointed Hexapods.” In Smart Structures and Materials 2001: Smart Structures and Integrated Systems. doi:10.1117/12.436521.
+
McInroy, J. E. 1999. “Dynamic Modeling of Flexure Jointed Hexapods for Control Purposes.” In Proceedings of the 1999 IEEE International Conference on Control Applications (Cat. No.99CH36328). doi:10.1109/cca.1999.806694.
+
———. 2002. “Modeling and Design of Flexure Jointed Stewart Platforms for Control Purposes.” IEEE/ASME Transactions on Mechatronics 7 (1): 95–99. doi:10.1109/3516.990892.
+
McInroy, J. E., and J. C. Hamann. 2000. “Design and Control of Flexure Jointed Hexapods.” IEEE Transactions on Robotics and Automation 16 (4): 372–81. doi:10.1109/70.864229.
+
McInroy, J.E., J.F. O’Brien, and G.W. Neat. 1999. “Precise, Fault-Tolerant Pointing Using a Stewart Platform.” IEEE/ASME Transactions on Mechatronics 4 (1): 91–95. doi:10.1109/3516.752089.
+
Merlet, J. P. 2006. Parallel Robots. 2nd ed. Springer Publishing Company, Incorporated.
Min, Da, Deqing Huang, and Hu Su. 2019. “High-Precision Tracking of Cubic Stewart Platform Using Active Disturbance Rejection Control.” In 2019 Chinese Control Conference (CCC). doi:10.23919/chicc.2019.8866606.
+
Molina, Fabian Andres Lara, Joao Mauricio Rosario, and Oscar Fernando Aviles Sanchez. 2008. “Simulation Environment Proposal, Analysis and Control of a Stewart Platform Manipulator.” In 7th Brazilian Conference on Dynamics, Control & Applications.
+
Naves, M, WBJ Hakvoort, M Nijenhuis, and DM Brouwer. 2020. “T-Flex: A Large Range of Motion Fully Flexure-Based 6-DOF Hexapod.” In 20th EUSPEN International Conference & Exhibition, EUSPEN 2020, 205–8. EUSPEN.
+
O’Brien, J.F., J.E. McInroy, D. Bodtke, M. Bruch, and J.C. Hamann. 1998. “Lessons Learned in Nonlinear Systems and Flexible Robots through Experiments on a 6 Legged Platform.” In Proceedings of the 1998 American Control Conference. ACC (IEEE Cat. No.98CH36207). doi:10.1109/acc.1998.703532.
+
Patel, Y. D., and P. M. George. 2012. “Parallel Manipulators Applications-a Survey.” Modern Mechanical Engineering 02 (03). Scientific Research Publishing, Inc,: 57–64. doi:10.4236/mme.2012.23008.
+
Pernkopf, F, and M L Husty. 2006. “Workspace Analysis of Stewart-Gough-Type Parallel Manipulators.” Proceedings of the Institution of Mechanical Engineers, Part c: Journal of Mechanical Engineering Science 220 (7): 1019–32. doi:10.1243/09544062jmes194.
+
Preumont, A. 2018. Vibration Control of Active Structures - Fourth Edition. Solid Mechanics and Its Applications. Springer International Publishing. doi:10.1007/978-3-319-72296-2.
+
Preumont, A., M. Horodinca, I. Romanescu, B. de Marneffe, M. Avraam, A. Deraemaeker, F. Bossens, and A. Abu Hanieh. 2007. “A Six-Axis Single-Stage Active Vibration Isolator Based on Stewart Platform.” Journal of Sound and Vibration 300 (3-5): 644–61. doi:10.1016/j.jsv.2006.07.050.
+
Pu, H., X. Chen, Z. Zhou, and X. Luo. 2011. “Six-Degree-of-Freedom Active Vibration Isolation System with Decoupled Collocated Control.” Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture 226 (2): 313–25. doi:10.1177/0954405411414336.
+
Rahman, Z. H., J. T. Spanos, and R. A. Laskin. 1998. “Multiaxis Vibration Isolation, Suppression, and Steering System for Space Observational Applications.” In Telescope Control Systems III. doi:10.1117/12.308821.
+
Spanos, J., Z. Rahman, and G. Blackwood. 1995. “A Soft 6-Axis Active Vibration Isolator.” In Proceedings of 1995 American Control Conference - ACC’95. doi:10.1109/acc.1995.529280.
+
Su, Y.X., B.Y. Duan, C.H. Zheng, Y.F. Zhang, G.D. Chen, and J.W. Mi. 2004. “Disturbance-Rejection High-Precision Motion Control of a Stewart Platform.” IEEE Transactions on Control Systems Technology 12 (3): 364–74. doi:10.1109/tcst.2004.824315.
+
Taghirad, H. 2013. Parallel Robots : Mechanics and Control. Boca Raton, FL: CRC Press.
+
Tang, J., D. Cao, and T. Yu. 2018. “Decentralized Vibration Control of a Voice Coil Motor-Based Stewart Parallel Mechanism: Simulation and Experiments.” Proceedings of the Institution of Mechanical Engineers, Part c: Journal of Mechanical Engineering Science 233 (1): 132–45. doi:10.1177/0954406218756941.
+
Taranti, Christian, Brij Agrawal, and Roberto Cristi. 2001. “An Efficient Algorithm for Vibration Suppression to Meet Pointing Requirements of Optical Payloads.” In AIAA Guidance, Navigation, and Control Conference and Exhibit, 4094.
+
Thayer, D., and J. Vagners. 1998. “A Look at the Pole/Zero Structure of a Stewart Platform Using Special Coordinate Basis.” In Proceedings of the 1998 American Control Conference. ACC (IEEE Cat. No.98CH36207). doi:10.1109/acc.1998.703595.
+
Thayer, D., M. Campbell, J. Vagners, and A. von Flotow. 2002. “Six-Axis Vibration Isolation System Using Soft Actuators and Multiple Sensors.” Journal of Spacecraft and Rockets 39 (2): 206–12. doi:10.2514/2.3821.
+
Ting, Y., H.-C. Jar, and C.-C. Li. 2007. “Measurement and Calibration for Stewart Micromanipulation System.” Precision Engineering 31 (3): 226–33. doi:10.1016/j.precisioneng.2006.09.004.
+
Ting, Y., C.-C. Li, and T. V. Nguyen. 2013. “Composite Controller Design for a 6dof Stewart Nanoscale Platform.” Precision Engineering 37 (3): 671–83. doi:10.1016/j.precisioneng.2013.01.012.
+
Ting, Yung, H.-C. Jar, and Chun-Chung Li. 2006. “Design of a 6DOF Stewart-Type Nanoscale Platform.” In 2006 Sixth IEEE Conference on Nanotechnology. doi:10.1109/nano.2006.247808.
+
Tjepkema, D. 2012. “Active Hard Mount Vibration Isolation for Precision Equipment [Ph. D. Thesis].”
+
Tjepkema, D., J. van Dijk, and H. M. J. R. Soemers. 2012. “Sensor Fusion for Active Vibration Isolation in Precision Equipment.” Journal of Sound and Vibration 331 (4): 735–49. doi:10.1016/j.jsv.2011.09.022.
+
Torii, Akihiro, Masaaki Banno, Akiteru Ueda, and Kae Doki. 2012. “A Small-Size Self-Propelled Stewart Platform.” Electrical Engineering in Japan 181 (2): 37–46. doi:10.1002/eej.21261.
+
Vivas, Oscar Andrés. 2004. “Contribution À L’identification et À La Commande Des Robots Parallèles.” Université Montpellier II-Sciences et Techniques du Languedoc.
+
Wang, C., X. Xie, Y. Chen, and Z. Zhang. 2016. “Investigation on Active Vibration Isolation of a Stewart Platform with Piezoelectric Actuators.” Journal of Sound and Vibration 383. Elsevier BV: 1–19. doi:10.1016/j.jsv.2016.07.021.
+
Xie, X., C. Wang, and Z. Zhang. 2017. “Modeling and Control of a Hybrid Passive/Active Stewart Vibration Isolation Platform.” In INTER-NOISE and NOISE-CON Congress and Conference Proceedings, 255:1844–53. 6. Institute of Noise Control Engineering.
+
Yang, Chifu, Zhengmao Ye, O. Ogbobe Peter, and Junwei Han. 2010. “Modeling and Simulation of Spatial 6-DOF Parallel Robots Using Simulink and SimMechanics.” In 2010 3rd International Conference on Computer Science and Information Technology. doi:10.1109/iccsit.2010.5563824.
+
Yang, XiaoLong, HongTao Wu, Yao Li, and Bai Chen. 2017. “Dynamic Isotropic Design and Decentralized Active Control of a Six-Axis Vibration Isolator via Stewart Platform.” Mechanism and Machine Theory 117: 244–52. doi:10.1016/j.mechmachtheory.2017.07.017.
+
Yang, X., H. Wu, B. Chen, S. Kang, and S. Cheng. 2019. “Dynamic Modeling and Decoupled Control of a Flexible Stewart Platform for Vibration Isolation.” Journal of Sound and Vibration 439. Elsevier BV: 398–412. doi:10.1016/j.jsv.2018.10.007.
+
Yun, Yuan, and Yangmin Li. 2010. “Design and Analysis of a Novel 6-Dof Redundant Actuated Parallel Robot with Compliant Hinges for High Precision Positioning.” Nonlinear Dynamics 61 (4): 829–45. doi:10.1007/s11071-010-9690-x.
+
Zhang, Z., J. Liu, J. Mao, Y. Guo, and Y. Ma. 2011. “Six DOF Active Vibration Control Using Stewart Platform with Non-Cubic Configuration.” In 2011 6th IEEE Conference on Industrial Electronics and Applications. doi:10.1109/iciea.2011.5975679.
diff --git a/content/zettels/system_identification.md b/content/zettels/system_identification.md
new file mode 100644
index 0000000..76fcfbc
--- /dev/null
+++ b/content/zettels/system_identification.md
@@ -0,0 +1,437 @@
++++
+title = "System Identification"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Modal Analysis]({{< relref "modal_analysis.md" >}})
+
+
+## System Identification {#system-identification}
+
+
+### Problem Definition {#problem-definition}
+
+The goal of a system identification is to extract a model (usually a LTI transfer function) from experimental data.
+The system is represented in [Figure 1](#figure--fig:siso-identification-schematic-simplier) with one input \\(u\\) and one output \\(y\_m\\) affected by some disturbances and noise \\(d\\).
+
+
+
+{{< figure src="/ox-hugo/siso_identification_schematic_simplier.png" caption="Figure 1: Simpler Block diagram of the SISO system identification" >}}
+
+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 .
+For mechatronics systems, _frequency domain identification_ is the norm.
+
+
+
+
+| | **Advantages** | **Disadvantages** |
+|-------------------------------------|---------------------------------------------------------|-------------------------------------------------|
+| Physical Modeling | Understanding dynamics, no measurements | Low accuracy, time consuming |
+| Time domain identification | Parametric models, small data sets, non-linearity, MIMO | order/structure selection can be time consuming |
+| **Frequency domain identification** | easy, intuitive, user-defined model fitting | fitting MIMO parametric model can be difficult |
+
+As an example, a second order plant will be used:
+
+```matlab
+G = 1/(1 + 0.1*s/(2*pi*40) + s^2/(2*pi*40)^2); % Plant model
+```
+
+The sampling time of the recorded digital signal is 1ms.
+
+
+### Open-loop identification {#open-loop-identification}
+
+In open-loop identification ([Figure 2](#figure--fig:siso-identification-schematic-simplier-open-loop)), a test signal \\(u\\) is used to _excite_ the system in the frequency range of interest.
+The signal \\(u\\) can typically be a swept sine, noise or multi-sine.
+
+
+
+{{< figure src="/ox-hugo/siso_identification_schematic_simplier_open_loop.png" caption="Figure 2: Open Loop signal identification" >}}
+
+The plant estimate \\(\hat{G}(j\omega)\\) is computed as follows:
+\\[ \hat{G}(j\omega) = \frac{\Phi\_{yu}(\omega)}{\Phi\_{u}(\omega)} \\]
+with \\(\phi\_{u}(\omega)\\) is the spectrum of \\(u\\) and \\(\Phi\_{yu}(\omega)\\) is the cross-spectrum of \\(u\\) and \\(y\\).
+
+In Matlab, the transfer function can be extracted from the data using:
+
+```matlab
+Nfft = floor(1/Ts); % Size of the window [-]
+win = hanning(Nfft); % Hanning window
+Noverlap = floor(Nfft/2); % Overlap of 50%
+
+% Identified Transfer Functions
+[Gm, f] = tfestimate(data.du, data.y, win, Noverlap, Nfft, 1/Ts);
+```
+
+Then, the bode plot of the obtained transfer function is compared against the plant model including a 1.5 sample time delay ([Figure 3](#figure--fig:system-identification-ol-comp-plant)).
+
+
+
+{{< figure src="/ox-hugo/system_identification_ol_comp_plant.png" caption="Figure 3: Comparison of the plant transfer function with the identified FRF in Open-Loop" >}}
+
+
+### Verification of the Identification Quality - Coherence {#verification-of-the-identification-quality-coherence}
+
+In order to assess the quality of the obtained FRF, the _coherence_ can be computed using the `mscohere` Matlab function.
+
+```matlab
+[coh, f] = mscohere(data.du, data.y, win, Noverlap, Nfft, 1/Ts);
+```
+
+The result for the example is shown in [Figure 4](#figure--fig:system-identification-ol-coh).
+At high frequency, the measurement noise dominates and the coherence is poor.
+
+
+
+{{< figure src="/ox-hugo/system_identification_ol_coh.png" caption="Figure 4: Comparison of the plant transfer function with the identified FRF in Open-Loop" >}}
+
+
+### Closed-Loop identification {#closed-loop-identification}
+
+If the open-loop system is unstable, a first simple controller needs to be designed to stabilizes the system.
+Then, the plant can be identified from closed-loop system identification ([Figure 6](#figure--fig:siso-identification-schematic-simplier-closed-loop)).
+
+
+
+{{< figure src="/ox-hugo/siso_identification_schematic_simplier_closed_loop.png" caption="Figure 5: Closed Loop signal identification" >}}
+
+To perform plant identification in closed-loop:
+
+- Chose \\(d\_u\\) (sweep sine, multi-sine, noise, ...)
+- Measure \\(u\\) and \\(y\\)
+- Compute the process sensitivity:
+ \\[ GS(j\omega) = \frac{\Phi\_{yd\_u}(\omega)}{\Phi\_{d\_u}(\omega)} \\]
+- Compute the Sensitivity:
+ \\[ S(j\omega) = \frac{\Phi\_{ud\_u}(\omega)}{\Phi\_{d\_u}(\omega)} \\]
+- Then the plan estimate \\(\hat{G}(j\omega)\\) can be computed:
+ \\[ \hat{G}(j\omega) = \frac{GS(j\omega)}{S(j\omega)} \\]
+
+In Matlab, this can be done with the following code:
+
+```matlab
+Nfft = floor(1/Ts); % Size of the window [-]
+win = hanning(Nfft); % Hanning window
+Noverlap = floor(Nfft/2); % Overlap of 50%
+
+[S, f] = tfestimate(data.du, data.u, win, Noverlap, Nfft, 1/Ts);
+[GS, ~] = tfestimate(data.du, data.y, win, Noverlap, Nfft, 1/Ts);
+
+Gm = GS ./ S;
+K = (1 ./ S - 1) ./ Gm;
+T = 1 - S;
+```
+
+
+### Multi-Input Multi-Output Plant {#multi-input-multi-output-plant}
+
+This can be generalized to a MIMO plant ([Figure 6](#figure--fig:siso-identification-schematic-simplier-closed-loop)).
+
+
+
+{{< figure src="/ox-hugo/mimo_identification_schematic_simplier_closed_loop.png" caption="Figure 6: Closed Loop signal identification (MIMO case)" >}}
+
+Suppose a plan with \\(m\\) inputs and \\(n\\) outputs.
+\\(\bm{G}\\) is therefore a \\(n \times m\\) plant, and the controller \\(\bm{K}\\) an \\(m \times n\\) system.
+Input sensitivity is an \\(m \times m\\) system:
+\\[ \bm{S}\_i = (\bm{I}\_{m} + \bm{K}\bm{G})^{-1} \\]
+And process sensitivity is an \\(m \times m\\) system:
+\\[ \bm{GS} = \bm{G} (I\_m + KG)^{-1} \\]
+
+And the \\(n \times m\\) plant can be computed using:
+\\[ GS \cdot S^{-1} = \bm{G} (I\_m + KG)^{-1} (\bm{I}\_{m} + \bm{K}\bm{G}) = G \\]
+
+To estimate the full plant, \\(m\\) separate identification needs to be performed (one for each input):
+
+- Chose the excitation signal for the \\(i^{th}\\) input: \\(d\_{ui}\\) (sweep sine, multi-sine, noise, ...)
+- Measure \\(u\_i\\) and \\(\bm{y}\\)
+- Compute the \\(i^{th}\\) column of the process sensitivity (\\(j\\) from \\(1\\) to \\(n\\)):
+ \\[ GS\_{ij}(j\omega) = \frac{\Phi\_{y\_jd\_{ui}}(\omega)}{\Phi\_{d\_{ui}}(\omega)} \\]
+- Compute the \\(i^{th}\\) column of the input sensitivity (\\(j\\) from \\(1\\) to \\(n\\)):
+ \\[ S\_{ij}(j\omega) = \frac{\Phi\_{u\_jd\_{ui}}(\omega)}{\Phi\_{d\_{ui}}(\omega)} \\]
+
+When the complete \\(GS\\) and \\(S\\) matrices are identified, the plan estimate \\(\hat{\bm{G}}(j\omega)\\) can be computed:
+\\[ \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}
+
+
+
+
+### Introduction {#introduction}
+
+There are several choices for excitation signals:
+
+- Impulse, Steps
+- Sweep Sinus
+- Random noise, Periodic signals (PRBS)
+- Multi-Sine
+
+A good review is given in (Pintelon and Schoukens 2012) (chapter 5).
+
+
+### Random noise with specific ASD {#random-noise-with-specific-asd}
+
+The ASD of the measured output is:
+
+\begin{equation}
+\Gamma\_{y\_m}(\omega) = \Gamma\_d(\omega) + \Gamma\_u(\omega) \cdot |G(j\omega)|
+\end{equation}
+
+And we want the effect of the excitation signal to be much higher than the effect of the exogenous signals (measurement noise, input noise, disturbances).
+
+\begin{equation}
+\Gamma\_u(\omega) \gg \Gamma\_d(\omega) \cdot |G(j\omega)|^{-1}
+\end{equation}
+
+Note that \\(\Gamma\_d(\omega)\\) can be estimated by measuring the system output in the absence of any excitation signal.
+The plant magnitude \\(|G(j\omega)|\\) can be roughly estimated from a first identification with bad coherence.
+
+In order to design a random excitation signal with specific spectral characteristics, first a signal with an ASD equal to one is generated (i.e. white noise with unity ASD):
+
+```matlab
+Ts = 1e-4; % Sampling Time [s]
+t = 0:Ts:10; % Time Vector [s]
+
+%% Signal with an ASD equal to one
+u_norm = sqrt(1/2/Ts)*randn(length(t), 1);
+```
+
+Then, a transfer function whose magnitude \\(|G\_u(j\omega)|\\) has the same shape as the wanted excitation ASD \\(\Gamma\_u(\omega)\\) is designed:
+
+```matlab
+%% Transfer function representing the wanted ASD
+G_u = tf([1], [1/2/pi/100 1]);
+```
+
+Finally `lsim` is used to compute the shaped excitation signal.
+
+```matlab
+%% Shape the ASD of the excitation signal
+u = lsim(G_u, u_norm, t);
+```
+
+
+### Choose Sampling Frequency and Duration of Excitation {#choose-sampling-frequency-and-duration-of-excitation}
+
+
+
+The sampling frequency \\(F\_s\\) will determine the maximum frequency \\(F\_{\text{max}}\\) that can be estimated (see Nyquist theorem):
+
+\begin{equation}
+F\_{\text{max}} = \frac{1}{2} F\_s
+\end{equation}
+
+
+
+
+
+The duration of excitation \\(T\_{\text{exc}}\\) will determine the minimum frequency \\(F\_{\text{min}}\\) that can be estimated:
+
+\begin{equation}
+F\_{\text{min}} = \frac{1}{T\_{\text{exc}}}
+\end{equation}
+
+It will also corresponds to the frequency resolution \\(\Delta f\\):
+
+\begin{equation}
+\Delta f = \frac{1}{T\_{\text{exc}}}
+\end{equation}
+
+
+
+In order to increase the estimation quality, averaging can be use with a longer excitation duration.
+A factor 10 is usually good enough, therefore the excitation time can be taken as:
+
+\begin{equation}
+T\_{\text{exc}} \approx \frac{10}{F\_{\text{min}}}
+\end{equation}
+
+
+
+Therefore, if the system has to be identified from 1Hz up to 500Hz, the sampling frequency should be:
+
+\begin{equation}
+F\_s = 2 F\_{\text{max}} = 1\\,\text{kHz}
+\end{equation}
+
+Then, the excitation duration should be (10 averaging):
+
+\begin{equation}
+T\_{\text{exc}} = \frac{10}{1} = 10\\,s
+\end{equation}
+
+
+
+
+### Multi-Sine {#multi-sine}
+
+Multi-sine signal excitation has many advantages as compared to random noise:
+
+- the signal power at each frequency can be precisely chosen
+- the signal is periodic and therefore necessitate no windowing (therefore increasing the obtained FRF quality)
+
+It can be generated with the following code.
+
+```matlab
+%% Generate multinsine signal
+Fs = 1e3; % Sampling Frequency [Hz]
+Ns = 1*Fs; % Signal length [-]
+
+f = linspace(0, Fs/2, Ns/2); % Frequency Vector [Hz]
+
+% Define the wanted ASD of the test signal [unit/sqrt(Hz)]
+wanted_asd = 3*ones(1,Ns);
+f_min = 10; % [Hz]
+f_max = 300; % [Hz]
+wanted_asd([1:round(Ns*f_min/Fs)]) = 0;
+wanted_asd([round(Ns*f_max/Fs+1):end]) = 0;
+
+% Generate the multi-sine signal
+u = generate_multisine(Fs, Ns, ...
+ 'asd', wanted_asd, ...
+ 'type', 'schroeder');
+```
+
+The ASD of the generated signal is exactly as expected ([Figure 7](#figure--fig:system-identification-multi-sine-asd))
+
+```matlab
+[pxx, f] = pwelch(u, ones(Ns,1), [], Ns, Fs);
+```
+
+
+
+{{< figure src="/ox-hugo/system_identification_multi_sine_asd.png" caption="Figure 7: Amplitude Spectral Density of the multi-sine signal" >}}
+
+In the time domain, it is shown in [Figure 8](#figure--fig:system-identification-multi-sine-time).
+
+
+
+{{< figure src="/ox-hugo/system_identification_multi_sine_time.png" caption="Figure 8: Generated Multi-Sine signal" >}}
+
+Then, the open-loop identification is performed, and the FRF is computed using the following code (not that no window is being used!).
+Only the first period (here of 1s) is discarded to remove transient effects.
+
+```matlab
+% Skip the first period (transient)
+[Gm, f] = tfestimate(data.du(Ns:end), data.y(Ns:end), ones(Ns,1), [], Ns, Fs);
+```
+
+The obtained FRF is shown in [Figure 9](#figure--fig:system-identification-multi-sine-frf).
+The quality of the obtained FRF is only good in the defined range.
+
+
+
+{{< figure src="/ox-hugo/system_identification_multi_sine_frf.png" caption="Figure 9: Obtained FRF using the multi-sine excitation signal" >}}
+
+
+### `generatemultisine` - Matlab Function {#generatemultisine-matlab-function}
+
+The synthesis of multi-sine with minimal "crest factor" is taken from (Schroeder 1970).
+
+The Matlab code is adapted from [here](https://bholmesqub.github.io/thesis/chapters/identification-design/multi-sine/).
+
+```matlab
+function y = generate_multisine(Fs, Ns, args)
+%% Input parsing
+ arguments
+ Fs % Sampling frequency of the generated test signal
+ Ns % Length of the generated test signal
+ args.asd double {mustBeNumeric, mustBeNonnegative} = 0
+ args.type char {mustBeMember(args.type,{'schroeder', 'normal'})} = 'schroeder'
+ end
+
+ %% Find amplitude response
+ if args.asd == 0
+ % If magnitude response is zero, set default to "unitary ASD"
+ mag = (ones(1, Ns)*2*sqrt(Fs)/sqrt(Ns)).^2;
+ mag(round(Ns/2+1):end) = 0;
+ else
+ if length(args.asd) ~= Ns
+ error('ASD must be of length Ns');
+ end
+
+ mag = (args.asd*2*sqrt(Fs)/sqrt(Ns)).^2;
+ end
+
+ if any(mag(round(Ns/2+1):end))
+ warning('Non-zero magnitude values present outside of frequency limits.');
+ mag(round(Ns/2+1):end) = 0;
+ end
+
+ %% Find phase response
+ switch args.type
+ case 'schroeder'
+ phase = schroederPhases(Ns, mag);
+ case 'normal'
+ phase = randn(1, Ns);
+ otherwise
+ error('type must be "Schroeder" or "normal"');
+ end
+
+ %% Generate multisine signal
+ % Frequency domain representation
+ Y = sqrt(mag/2).*exp(sqrt(-1).*phase);
+
+ % IFFT to time domain
+ y = ifft(forceFFTSymmetry(Y))*(Ns/2);
+
+ %% Find zero crossing closest to zero
+ % Heuristic method of finding minimum gradient zero crossing
+ ySign = y>0;
+ zeroInds = find((ySign(2:end) ~= ySign(1:end-1)));
+
+ % Find the index with the smallest gradient around the zero crossing.
+ zeroGrad = zeros(1,length(zeroInds));
+ for nn=1:length(zeroInds)
+ zeroGrad(nn) = abs(y(zeroInds(nn)) - y(zeroInds(nn)+1));
+ end
+ [~, minInd] = min(zeroGrad);
+
+ yWrapped = [y(zeroInds(minInd):end) y(1:zeroInds(minInd)-1)];
+ y = yWrapped;
+end
+
+%% Generate phases as defined in "Synthesis of Low-Peak-Factor Signals and
+% Binary Sequences With Low Autocorrelation" by M. R. Schroeder
+function phase = schroederPhases(Ns, mag)
+ rel_mag = mag./sum(mag); % Normalize magnitude for Schroeder's algorithm
+ phase = zeros(1, Ns);
+ for nn=2:floor(Ns/2+1)
+ ll=1:(nn-1);
+ phase(nn) = -2*pi*sum((nn-ll).*rel_mag(ll));
+ end
+end
+
+%% forceFFTSymmetry A function to force conjugate symmetry on an FFT such that when an
+% IFFT is performed the result is a real signal.
+% The function has been written to replace MATLAB's ifft(X,'symmetric'), as this function
+% is not compatible with MATLAB Coder.
+function Y = forceFFTSymmetry(X)
+ Y = X;
+ XStartFlipped = fliplr(X(2:floor(end/2)));
+ Y(ceil(end/2)+2:end) = real(XStartFlipped) - sqrt(complex(-1))*imag(XStartFlipped);
+end
+```
+
+
+## Reference Books {#reference-books}
+
+- (Pintelon and Schoukens 2012)
+- (Schoukens, Pintelon, and Rolain 2012)
+
+
+## Bibliography {#bibliography}
+
+
+
Pintelon, R., and J. Schoukens. 2012. System Identification : a Frequency Domain Approach. Hoboken, N.J. Piscataway, NJ: Wiley IEEE Press. doi:10.1002/9781118287422.
+
Schoukens, Johan, Rik Pintelon, and Yves Rolain. 2012. Mastering System Identification in 100 Exercises. John Wiley & Sons.
+
Schroeder, Manfred. 1970. “Synthesis of Low-Peak-Factor Signals and Binary Sequences with Low Autocorrelation (Corresp.).” IEEE Transactions on Information Theory 16 (1). IEEE: 85–89.
+
diff --git a/content/zettels/temperature_control.md b/content/zettels/temperature_control.md
new file mode 100644
index 0000000..d8a90c7
--- /dev/null
+++ b/content/zettels/temperature_control.md
@@ -0,0 +1,29 @@
++++
+title = "Temperature Control"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+An active temperature control system generally consists of:
+
+- [Temperature Sensors]({{< relref "temperature_sensors.md" >}})
+- [Heaters]({{< relref "heaters.md" >}})
+- A temperature controller
+
+
+## Commercial Temperature Controllers {#commercial-temperature-controllers}
+
+-
+-
+-
+- CN16DPT-305-EIP-DC, OMEGA Inc. (Holler et al. 2022)
+
+
+## Bibliography {#bibliography}
+
+
+
Holler, Mirko, Tomas Aidukas, Lars Heller, Christian Appel, Nicholas W. Phillips, Elisabeth Müller-Gubler, Manuel Guizar-Sicairos, Jörg Raabe, and Johannes Ihli. 2022. “Environmental Control for X-Ray Nanotomography.” Journal of Synchrotron Radiation 29 (5): 1223–31. doi:10.1107/s1600577522006968.
+
diff --git a/content/zettels/temperature_sensors.md b/content/zettels/temperature_sensors.md
new file mode 100644
index 0000000..dacda8a
--- /dev/null
+++ b/content/zettels/temperature_sensors.md
@@ -0,0 +1,581 @@
++++
+title = "Temperature Sensors"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Temperature sensors types {#temperature-sensors-types}
+
+There are mainly three main types of temperature sensors:
+
+- [Thermocouples](#org-target--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)
+ 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).
+ They typically have a NTC (Negative Temperature Coefficient).
+
+
+### Thermocouple {#thermocouple}
+
+
+
+
+#### Working Principle {#working-principle}
+
+Based on Seebeck effect: in a conductor, a temperature difference \\(\Delta T\\) creates an electric field \\(V\\) defined by the Seebeck coefficient \\(\epsilon\\).
+
+Consider a material with a Seebeck coefficient \\(\epsilon\_A\\), the voltage difference at its send is:
+
+\begin{equation}
+ V\_A = \int\_{T\_1}^{T\_2} \epsilon\_A dT = \epsilon\_A (T\_2 - T\_1)
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/temperature_seebeck_material_A.png" caption="Figure 1: Seebeck effect in a material" >}}
+
+Now if two materials are "chained", the overall voltage will be:
+
+\begin{equation}
+V = (\epsilon\_{A} - \epsilon\_{B})(T\_{2} - T\_{1})
+\end{equation}
+
+
+
+{{< figure src="/ox-hugo/temperature_thermocouple_two_materiasl.png" caption="Figure 2: Combination of two materials" >}}
+
+Several materials can be combined:
+
+
+
+{{< figure src="/ox-hugo/temperature_termocouples_sensitivities.png" caption="Figure 3: Some types of thermocouples and associated sensitivities" >}}
+
+
+#### Measurement of the temperature {#measurement-of-the-temperature}
+
+The output voltage of a thermocouple is given by \\(\Delta T\\) (between \\(T\_1\\), the temperature at the measured voltage side, and \\(T\_2\\) at the thermocouple side).
+Therefore, typically \\(T\_1\\) is measured with an RTD (typically what is done inside the Agilent 34970A) and \\(T\_2\\) is therefore estimated from \\(T\_1\\) and \\(\Delta T\\).
+
+
+
+{{< figure src="/ox-hugo/temperature_thermocouple_meas.png" caption="Figure 4: Thermocouple measured voltage" >}}
+
+
+#### Choice of Thermocouple {#choice-of-thermocouple}
+
+- J - Iron / Constantan
+ - \\(55\ \mu V / K\\)
+ - Easy to solder
+ - Can act as galvanic element
+- K - Chromel / Alumel
+ - \\(40\ \mu V / K\\), almost linear
+ - Difficult to solver, welding is better
+ - Low thermal conductivity of wires
+- T - Copper / Constantan
+ - \\(40\ \mu V / K\\)
+ - Easy to solder
+ - High thermal conductivity is source of errors
+
+
+#### Summary {#summary}
+
+Advantages:
+
+- Simple to use
+- Standard acquisition systems
+- Small (thin wires down to 0.08mm)
+- Fast response
+- Suitable for high and low temperatures
+- Can be used in vacuum systems
+- No self heating
+
+Disadvantages:
+
+- Relative expensive
+- Uncertainty about 0.1K, not feasible to reach mK
+
+
+### RTD {#rtd}
+
+
+
+Sensitivity of PT100 is typically around .
+
+Advantages:
+
+- Very high stability (better than 1mK per year)
+- Very high linearity (0.1% over -40 to 125 degrees)
+- This makes them very useful as calibration reference sensor, which is linked to the international standard
+
+Disadvantages:
+
+- Expensive
+- Low sensitivity (typically 0.004 Ohm/Ohm/deg)
+- The measurement is sensitivity to lead wire resistance, but four-wire technique may be used
+- Self heating due to electrical dissipation.
+ Typically, for a Pt100, \\(P = 0.1 mW\\) (the source voltage is typically 0.1 V)
+ This corresponds to approximately 0.1 degree of self heating in "still" air
+
+
+### Thermistor {#thermistor}
+
+
+
+Sensitivity of NTC is .
+
+Advantages:
+
+- Highest sensitivity (typically around -0.05 Ohm/Ohm/deg)
+- Because the resistance is typically high (100k Ohm), no Four wire configuration is necessary, and long wires may be used
+- Lower heat dissipation than Pt100
+- Very high stability, especially for glass encapsulated
+- Very small, and available in all kinds of shapes
+
+Disadvantages:
+
+- Non-linear, so compensation is necessary (but not really an issue with software compensation)
+- Self-heating if mK accuracy is wanted
+- Cover is necessary for use in vacuum
+
+
+### Comparison of sensor types {#comparison-of-sensor-types}
+
+| | RTD | Thermistor | Thermocouple | |
+|---------------|-------------------------|------------|--------------|---|
+| Accuracy | Good | Non-Linear | | A |
+| Linearity | 0.1% over -40..125 degC | | | |
+| Stability | better than 1mK/year | | | |
+| Sensitivity | 0.4%/K | 5%/K | 50uV/K | |
+| Response time | | | | |
+| Self heating | | | None | |
+
+
+## Accuracy of Temperature measurement {#accuracy-of-temperature-measurement}
+
+
+### Accuracy of the resistance measurement {#accuracy-of-the-resistance-measurement}
+
+
+#### Resistor measurement principle and associated errors {#resistor-measurement-principle-and-associated-errors}
+
+Measurement is typically performed using a [wheatstone bridge]({{< relref "wheatstone_bridge.md" >}}), and the accuracy depends on:
+
+- the quality of the ADC measuring the voltage in the bridge
+- the values of the resistors in the bridge
+
+For measuring ranges from \\(200\\,\Omega\\) to \\(5\\,k\Omega\\), the measurement accuracy can be in the order of +/-50ppm to +/-100ppm (here based on the [ELM3704](https://www.beckhoff.com/en-en/products/i-o/ethercat-terminals/elmxxxx-measurement-technology/elm3704-0001.html)).
+For a Pt100 at \\(0^oC\\), this corresponds to an accuracy of \\(< \pm 0.04\\,K\\).
+
+
+#### 2, 3 and 4 wires sensors {#2-3-and-4-wires-sensors}
+
+The measured resistance is the sum of the resistance of the sensitive element and the resistance of the wires.
+This corresponds to the 2-wire measurement ([Figure 5](#figure--fig:temperature-sensor-rtd-2-wires)).
+
+The errors associated with this effect are large when the resistance of the sensitive element is small and then the resistance of all cables and connectors are large.
+For instance, the effect of contact/wire resistance less important for the PT1000 than for the PT100.
+The use of 2 wire PT1000 is possible (whereas for PT100, 4 wire is more accurate).
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_rtd_2_wires.png" caption="Figure 5: 2-wire measurement" >}}
+
+The effect of the resistance of the wires (cables, connectors, etc..) can be mitigated by using the 4-wire configuration ([Figure 6](#figure--fig:temperature-sensor-rtd-4-wires)).
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_rtd_4_wires.png" caption="Figure 6: 4-wire measurement" >}}
+
+
+### Temperature {#temperature}
+
+
+#### Effect of conductivity through the wires {#effect-of-conductivity-through-the-wires}
+
+It is better to use thin wires, of the fix the wires to the part that is to be measured.
+
+
+
+{{< figure src="/ox-hugo/temperature_effect_wires.png" caption="Figure 7: Measured effect of wires. When in "air", it conducts the heat from the air to the sensor which can lead to measurement errors." >}}
+
+
+#### Thermal contact and response time {#thermal-contact-and-response-time}
+
+The measured temperature is the temperature of the sensitive element.
+It may not be equal to the temperature of the element on which the sensor is fixed.
+
+It depends on the thermal contact and the response time in play.
+
+The sensor contact may be improved by using "soft" (i.e. plastically deformable) metals at the contact interface such as indium.
+
+However, it seems that having too much pressure in the sensor may induce stress in the NTC that can induce measurement errors.
+
+
+#### Self heating effect {#self-heating-effect}
+
+(Ebrahimi-Darkhaneh 2019)
+
+In order to measure the resistance, some current through the resistance.
+This leads to heat generation (known as "self heating") according to "Joule effect":
+\\[ P = I V = V^2/R \\]
+
+Typically, a constant voltage is applied, such that the generated current is lower when the resistance is larger.
+
+
+
+The applied voltage is typically in the order of 0.1V to 1V.
+For a Pt100 (\\(R \approx 100\\,\Omega\\)), this would lead a heat generation of \\(P \approx 1 \text{ to } 10\\,mW\\).
+For a NTC with \\(R\approx 10\\,k\Omega\\), the heat generation will me much lower \\(P\approx 10 \text{ to } 100\\,\mu W\\).
+
+
+
+In order to lower the self heating effect, _intermitted_ currents may be used as is the case with the Agilent 34970A.
+
+
+### Converting Resistance to Temperature {#converting-resistance-to-temperature}
+
+
+
+
+#### First order approximation {#first-order-approximation}
+
+\\[ \Delta R = k \cdot \Delta T \\]
+
+
+#### Beta formula {#beta-formula}
+
+\\[ R(T) = R(T\_0) \cdot e^{\beta(\frac{1}{T} - \frac{1}{T\_0})} \\]
+
+
+#### Steinhart-Hart equation {#steinhart-hart-equation}
+
+\\[ T = \frac{1}{A + B \cdot \ln( R) + C \cdot (\ln( R))^3} \\]
+
+
+#### Lookup table {#lookup-table}
+
+Manufacturers usually provides a lookup table that links the resistance and the temperature.
+
+
+## Typical Temperature/Resistance graphs {#typical-temperature-resistance-graphs}
+
+
+### PT100 {#pt100}
+
+A PT100 resistance is quite linear with respect to the temperature as shown in [Figure 8](#figure--fig:temperature-sensor-pt100-resistance).
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_pt100_resistance.png" caption="Figure 8: Resistance of a PT100 as a function of the temperature" >}}
+
+The coefficient of resistance \\(\alpha\\) is defined as the ratio of the rate of change of resistance with temperature to the resistance of the thermistor at a specified temperature:
+\\[ \alpha(T) = \frac{1}{R(T)}\frac{dR(T)}{dT} \\]
+
+For a PT100, it is displayed in [Figure 9](#figure--fig:temperature-sensor-pt100-sensitivity).
+At \\(0^oC\\), \\(\alpha(0^oC) \approx 0.004\\,\Omega/\Omega/{}^oC\\).
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_pt100_sensitivity.png" caption="Figure 9: Sensitivity of a PT100 as a function of the temperature" >}}
+
+
+### NTC {#ntc}
+
+A NTC is much more non-linear than a PT100 as shown in [Figure 10](#figure--fig:temperature-sensor-rtd-resistance).
+
+The NTC used here is "Type F" from Amphenol Thermometrics.
+
+```matlab
+T_rtd = [-50:5:150];
+R_rtd = 1e4*[68.60 48.16 34.23 24.62 17.91 13.17 9.782 7.339 5.558 4.247 3.274 2.544 1.992 1.572 1.250 1.000 0.8056 0.6530 0.5326 0.4369 0.3604 0.2989 0.2491 0.2087 0.1756 0.1485 0.1261 0.1075 0.09209 0.07916 0.06831 0.05916 0.05141 0.04483 0.03922 0.03442 0.03030 0.02675 0.02369 0.02103 0.01872];
+```
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_rtd_resistance.png" caption="Figure 10: Resistance of a RTD as a function of the temperature" >}}
+
+The huge advantage of RTD compared to PT100 is that the sensitivity is much larger than Pt100 as shown in [Figure 11](#figure--fig:temperature-sensor-rtd-sensitivity).
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_rtd_sensitivity.png" caption="Figure 11: Sensitivity of a RTD as a function of the temperature" >}}
+
+
+## Compute temperature from the measured resistance {#compute-temperature-from-the-measured-resistance}
+
+
+### Pt100 and Pt1000 {#pt100-and-pt1000}
+
+The resistance as a function of temperature is approximated by the Callendar–Van Dusen equation:
+\\[ R(T) = \begin{cases}
+ R\_0 (1 + A \cdot T + B \cdot T^2), & \text{for } T>0^oC \\\\
+ R\_0 (1 + A\cdot T + B \cdot T^2 + C \cdot (T - 100) \cdot T^3), & \text{for } T<0^oC
+\end{cases} \\]
+with \\(R\_0\\) the resistance value at 0 degrees (\\(100\\,\Omega\\) for a Pt100 and \\(1000\\,\Omega\\) for a Pt1000).
+
+Values for A, B, C and D are depending on the exact model (summarized in [Table 1](#table--tab:pt100-values)).
+
+
+
+ Table 1:
+ Values of the Callendar-Van Dusen equations
+
+
+| TCR | A | B | C |
+|------------|----------------------------|------------------------------|------------------------------|
+| 3850 ppm/K | \\(3.9083 \cdot 10^{-3}\\) | \\(-5.775 \cdot 10^{-7}\\) | \\(-4.183 \cdot 10^{-12}\\) |
+| 3911 ppm/K | \\(3.9692 \cdot 10^{-3}\\) | \\(-5.829 \cdot 10^{-7}\\) | \\(-4.3303 \cdot 10^{-12}\\) |
+| 3750 ppm/K | \\(3.8102 \cdot 10^{-3}\\) | \\(-6.01888 \cdot 10^{-7}\\) | \\(-6 \cdot 10^{-12}\\) |
+| 3770 ppm/K | \\(3.8285 \cdot 10^{-3}\\) | \\(-5.85 \cdot 10^{-7}\\) | |
+
+```matlab
+%% Pt100 (3850 ppm/K)
+R0 = 100; % [Ohm]
+
+A = 3.9083e-3; % [degC^-1]
+B = -5.775e-7; % [degC^-2]
+C = -4.183e-12; % [degC^-4]
+
+T1 = -200:0; % [degC]
+T2 = 0:850; % [degC]
+T = [T1,T2]; % [degC]
+
+R = [R0*(1 + A*T1 + B*T1.^2 + C*(T1-100).*T1.^3), R0*(1 + A*T2 + B*T2.^2)]; % [Ohm]
+```
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_pt100_curve.png" caption="Figure 12: Resistance as a function of the temperature for a Pt100" >}}
+
+For temperatures above 0 degrees, the temperature \\(T\\) can be easily computed from the measured resistance \\(R\\) using:
+\\[ T = \frac{-A + \sqrt{A^2 - 4 B ( 1 - R/R\_0 )}}{2 B} \\]
+
+For temperatures below 0 degrees, the equation is harder to solve analytically, and a lookup table is more appropriate.
+
+Let's compare the temperature given by a Loopup table and the temperature given by the analytical formula in two cases:
+
+- linear interpolation with one point every degree
+- cubic interpolation with one point every 10 degrees
+
+The error is less than 0.1mK over the full range, validating the use of a lookup table to convert the resistance to temperature ([Figure 14](#figure--fig:temperature-sensor-lut-errors)).
+
+
+### NTC thermistor {#ntc-thermistor}
+
+The resistance of the NTC thermistor as a function of the temperature can be well approximated with the following equation:
+\\[ R\_t = R\_{25} \cdot e^{A + B/T + C/T^2 + D/T^3 \\]
+where \\(T\\) is the temperature in kelvins, \\(R\_{25}\\) the nominal resistance at \\(25^oC\\), \\(A\\), \\(B\\), \\(C\\) and \\(D\\) are coefficients which are specific for a given thermistor.
+
+Typically, coefficients A, B, C and D are varying with temperature as shown in [Table 2](#table--tab:temperature-sensor-ntc-coefs).
+
+
+
+ Table 2:
+ Example of A, B, C and D coeficients for an NTC thermistor (DC95F202VN)
+
+
+| | A | B | C | D |
+|------------|----------------|---------------|----------------|----------------|
+| -50 to 0 | -1.4122478E+01 | 4.4136033E+03 | -2.9034189E+04 | -9.3875035E+06 |
+| 0 to 50 | -1.4141963E+01 | 4.4307830E+03 | -3.4078983E+04 | -8.8941929E+06 |
+| 50 to 100 | -1.4202172E+01 | 4.4975256E+03 | -5.8421357E+04 | -5.9658796E+06 |
+| 100 to 150 | -1.6154078E+01 | 6.8483992E+03 | -1.0004049E+06 | 1.1961431E+08 |
+
+```matlab
+%% Compute the resistance as a function of the temperature for a given NTC (DC95F202VN)
+R0 = 2e3; % Resistance at 25deg
+
+T1 = 273.15+[-50:0]; % [degK]
+T2 = 273.15+[1:50]; % [degK]
+T3 = 273.15+[51:100]; % [degK]
+T4 = 273.15+[101:150]; % [degK]
+
+R = R0*exp([[-1.4122478E+01 + 4.4136033E+03./T1 - 2.9034189E+04./T1.^2 - 9.3875035E+06./T1.^3]';
+ [-1.4141963E+01 + 4.4307830E+03./T2 - 3.4078983E+04./T2.^2 - 8.8941929E+06./T2.^3]';
+ [-1.4202172E+01 + 4.4975256E+03./T3 - 5.8421357E+04./T3.^2 - 5.9658796E+06./T3.^3]';
+ [-1.6154078E+01 + 6.8483992E+03./T4 - 1.0004049E+06./T4.^2 + 1.1961431E+08./T4.^3]'])'; % [Ohm]
+
+T = -273.15+[T1,T2,T3,T4]; % [degC]
+```
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_ntc_curve.png" caption="Figure 13: Resistance as a function of the temperature for a given NTC" >}}
+
+To calculate the actual thermistor temperature as a function of the measured thermistor resistance, use the following equation:
+\\[ T = \frac{1}{a + b \ln(R\_t/R\_{25}) + c (Ln Rt/R25)^2 + d (Ln Rt/R25)^3) \\]
+
+
+
+ Table 3:
+ Coefficients used to compute the temperature as a function of the resistance
+
+
+| Rt/R25 range | a | b | c | d |
+|--------------------|---------------|---------------|----------------|----------------|
+| 68.600 to 3.274 | 3.3538646E-03 | 2.5654090E-04 | 1.9243889E-06 | 1.0969244E-07 |
+| 3.274 to 0.36036 | 3.3540154E-03 | 2.5627725E-04 | 2.0829210E-06 | 7.3003206E-08 |
+| 0.36036 to 0.06831 | 3.3539264E-03 | 2.5609446E-04 | 1.9621987E-06 | 4.6045930E-08 |
+| 0.06831 to 0.01872 | 3.3368620E-03 | 2.4057263E-04 | -2.6687093E-06 | -4.0719355E-07 |
+
+
+### Approximation of formulas using lookup tables {#approximation-of-formulas-using-lookup-tables}
+
+First, let's compare the analytical formula with a LUT for a Pt100 ([Figure 14](#figure--fig:temperature-sensor-lut-errors)).
+The error (accuracy) is bellow 0.1mK for relatively small LUT.
+
+```matlab
+%% "Perfect" temperature and resistance
+R0 = 100; % [Ohm]
+A = 3.9083e-3; % [degC^-1]
+B = -5.775e-7; % [degC^-2]
+C = -4.183e-12; % [degC^-4]
+
+T1 = -200:0.1:0; % [degC]
+T2 = 0.1:0.1:850; % [degC]
+T_true = [T1,T2]; % [degC]
+R_true = [R0*(1 + A*T1 + B*T1.^2 + C*(T1-100).*T1.^3), R0*(1 + A*T2 + B*T2.^2)]; % [Ohm]
+
+%% Lookup table for Pt100 (3850 ppm/K) - Linear
+dT = 1;
+interp_method = 'linear';
+
+T1 = -200:dT:0; % [degC]
+T2 = dT:dT:850; % [degC]
+T_lut_linear = [T1,T2]; % [degC]
+R_lut_linear = [R0*(1 + A*T1 + B*T1.^2 + C*(T1-100).*T1.^3), R0*(1 + A*T2 + B*T2.^2)]; % [Ohm]
+
+T_meas_linear = interp1(R_lut_linear,T_lut_linear,R_true,interp_method); % interpolate the resistance using the LUT to find the corresponding temperature
+
+%% Lookup table for Pt100 (3850 ppm/K) - Makima
+dT = 10;
+interp_method = 'makima';
+
+T1 = -200:dT:0; % [degC]
+T2 = dT:dT:850; % [degC]
+T_lut_makima = [T1,T2]; % [degC]
+R_lut_makima = [R0*(1 + A*T1 + B*T1.^2 + C*(T1-100).*T1.^3), R0*(1 + A*T2 + B*T2.^2)]; % [Ohm]
+
+T_meas_makima = interp1(R_lut_makima,T_lut_makima,R_true,interp_method); % interpolate the resistance using the LUT to find the corresponding temperature
+```
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_lut_errors.png" caption="Figure 14: Interpolation errors in two cases when using a LUT for a Pt100" >}}
+
+NTC thermistors are more non-linear and therefore require finer LUT to have low accuracy errors.
+In order to have less than 0.1mK of accuracy, a LUT with linear interpolation requires approximately one point every 0.1 degree ([Figure 15](#figure--fig:temperature-sensor-lut-errors-ntc)).
+
+```matlab
+%% "Perfect" temperature and resistance of NTC (DC95F202VN)
+R0 = 2e3; % Resistance at 25deg
+dT_true = 0.01;
+
+T1 = 273.15+[-50:dT_true:0]; % [degK]
+T2 = 273.15+[0+dT_true:dT_true:50]; % [degK]
+T3 = 273.15+[50+dT_true:dT_true:100]; % [degK]
+T4 = 273.15+[100+dT_true:dT_true:150]; % [degK]
+
+R_true = R0*exp([[-1.4122478E+01 + 4.4136033E+03./T1 - 2.9034189E+04./T1.^2 - 9.3875035E+06./T1.^3]';
+ [-1.4141963E+01 + 4.4307830E+03./T2 - 3.4078983E+04./T2.^2 - 8.8941929E+06./T2.^3]';
+ [-1.4202172E+01 + 4.4975256E+03./T3 - 5.8421357E+04./T3.^2 - 5.9658796E+06./T3.^3]';
+ [-1.6154078E+01 + 6.8483992E+03./T4 - 1.0004049E+06./T4.^2 + 1.1961431E+08./T4.^3]'])'; % [Ohm]
+
+T_true = -273.15+[T1,T2,T3,T4]; % [degC]
+
+%% Lookup table for NTC (DC95F202VN) - Linear
+dT = 0.1;
+interp_method = 'linear';
+
+T1 = 273.15+[-50:dT:0]; % [degK]
+T2 = 273.15+[0+dT:dT:50]; % [degK]
+T3 = 273.15+[50+dT:dT:100]; % [degK]
+T4 = 273.15+[100+dT:dT:150]; % [degK]
+T_lut_linear = -273.15+[T1,T2,T3,T4]; % [degC]
+R_lut_linear = R0*exp([[-1.4122478E+01 + 4.4136033E+03./T1 - 2.9034189E+04./T1.^2 - 9.3875035E+06./T1.^3]';
+ [-1.4141963E+01 + 4.4307830E+03./T2 - 3.4078983E+04./T2.^2 - 8.8941929E+06./T2.^3]';
+ [-1.4202172E+01 + 4.4975256E+03./T3 - 5.8421357E+04./T3.^2 - 5.9658796E+06./T3.^3]';
+ [-1.6154078E+01 + 6.8483992E+03./T4 - 1.0004049E+06./T4.^2 + 1.1961431E+08./T4.^3]'])'; % [Ohm]
+
+T_meas_linear = interp1(R_lut_linear,T_lut_linear,R_true,interp_method); % interpolate the resistance using the LUT to find the corresponding temperature
+
+%% Lookup table for Pt100 (3850 ppm/K) - Makima
+dT = 1;
+interp_method = 'makima';
+
+T1 = 273.15+[-50:dT:0]; % [degK]
+T2 = 273.15+[0+dT:dT:50]; % [degK]
+T3 = 273.15+[50+dT:dT:100]; % [degK]
+T4 = 273.15+[100+dT:dT:150]; % [degK]
+T_lut_makima = -273.15+[T1,T2,T3,T4]; % [degC]
+R_lut_makima = R0*exp([[-1.4122478E+01 + 4.4136033E+03./T1 - 2.9034189E+04./T1.^2 - 9.3875035E+06./T1.^3]';
+ [-1.4141963E+01 + 4.4307830E+03./T2 - 3.4078983E+04./T2.^2 - 8.8941929E+06./T2.^3]';
+ [-1.4202172E+01 + 4.4975256E+03./T3 - 5.8421357E+04./T3.^2 - 5.9658796E+06./T3.^3]';
+ [-1.6154078E+01 + 6.8483992E+03./T4 - 1.0004049E+06./T4.^2 + 1.1961431E+08./T4.^3]'])'; % [Ohm]
+
+T_meas_makima = interp1(R_lut_makima,T_lut_makima,R_true,interp_method); % interpolate the resistance using the LUT to find the corresponding temperature
+```
+
+
+
+{{< figure src="/ox-hugo/temperature_sensor_lut_errors_ntc.png" caption="Figure 15: Interpolation errors in two cases when using a LUT for a NTC" >}}
+
+
+## Commercial Temperature Sensors {#commercial-temperature-sensors}
+
+
+### 20 degC {#20-degc}
+
+
+### 20 degC, Vacuum compatible {#20-degc-vacuum-compatible}
+
+From (Neto et al. 2022), UHV compatible:
+
+> **Ceramic Amphenol DC95F202WN negative temperature coefficient (NTC)** sensors were used above 270 K, usually at room temperature components equal to 297 K.
+> The part-though-hole (PTH) sensors were soldered to thin, 30 AWG, varnish insulated copper wires with small amounts of tin-lead (70/30) alloy.
+
+
+### Cryogenic temperatures (77K / -200degC) {#cryogenic-temperatures--77k-200degc}
+
+-
+-
+
+From (Neto et al. 2022)
+
+> The temperature sensors also had design iteration since the beginning of the commissioning of the first cryogenic beamline instrumentation.Initially, **10k Ohm (0°C nominal) Platinum thin-film RTD sensors from IST (P10K.520.6W.B.010.D)** were used for parts in operating temperature below 123 K, whereas ceramic Amphenol DC95F202WN negative temperature coefficient (NTC) sensors were used above 270 K, usually at room temperature components equal to 297 K. The part-though-hole (PTH) sensors were soldered to thin, 30 AWG, varnish insulated copper wires with small amounts of tin-lead (70/30) alloy.
+> The set was then encapsulated with the same Stycast resin into small aluminium cases for thermal conductivity and mounting features.
+>
+> [...]
+>
+> Furthermore, the thin platinum wire of the 10 kΩ RTDs presented bad solderability and its assembly process was too laborious, resulting in unreliable mechanical bonds and a failure rate beyond acceptable for a robust beamline instrumentation.
+> The alternative was to use **2 kΩ IST RTDs (P2K0.232.3FW.B.007)** with custom-made flat gold-platted terminals, resulting in a full range sensor with better solderability and temperature **resolution below 0.4 mK** over the entire measurable range
+
+**NTC, Amphenol DC95F**, measured with an Agilent 34970A at 10K:
+
+- leads to 0.2mK resolution (22 bits)
+- High interchangeability: offset of 0.01K and sensitivity of 3mK/K
+
+
+
+{{< figure src="/ox-hugo/temperature_ntc_dc95f_results.png" caption="Figure 16: 6 (un-calibrated) DC95F sensors fixed to the same mass with homogeneous temperature" >}}
+
+**NTC, Betatherm 10K3A1**, measured at 10K:
+
+- Resolution of 0.2mK
+- Low noise and high repeatability
+
+
+
+{{< figure src="/ox-hugo/temperature_betatherm_10K3A1_results.png" caption="Figure 17: Measured temperature of two BetaTherm 10K3A1 compared to a reference sensor, at 10K" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Ebrahimi-Darkhaneh, Hadi. 2019. “Measurement Error Caused by Self-Heating in Ntc and Ptc Thermistors.” Tex. Instrum. Analog. Des. J. Q 3: 001–7.
+
Neto, Joao Brito, Renan Geraldes, Francesco Lena, Marcelo Moraes, Antonio Piccino Neto, Marlon Saveri Silva, and Lucas Volpe. 2022. “Temperature Control for Beamline Precision Systems of Sirius/Lnls.” Proceedings of the 18th International Conference on Accelerator and Large Experimental Physics Control Systems ICALEPCS2021: China. doi:10.18429/JACOW-ICALEPCS2021-WEPV001.
+
diff --git a/content/zettels/test.md b/content/zettels/test.md
new file mode 100644
index 0000000..c22a41c
--- /dev/null
+++ b/content/zettels/test.md
@@ -0,0 +1,642 @@
++++
+title = "test Page"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+## Basics {#basics}
+
+
+### Normal Markup {#normal-markup}
+
+You can make words **bold**, _italic_, underlined, `verbatim` and `code`, and, if you must, ~~strike-through~~.
+
+Here is some inline code Matlab code: `[K,CL,gamma] = mixsyn(G,W1,[],W3);`.
+
+
+### Links to Footnotes {#links-to-footnotes}
+
+A link to a footnote[^fn:1] and to another footnote[^fn:2].
+
+
+### Lists {#lists}
+
+**Unordered List**:
+
+- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+- Nam aliquet euismod viverra.
+- Phasellus turpis nisi, faucibus a orci et, faucibus fermentum ligula.
+
+**List with Tasks**:
+
+- [ ] Task 1
+- [X] Task 2
+- [-] Sub-tasks:
+ - [ ] Sub-task 1
+ - [X] Sub-task 2
+
+**Ordered List**:
+
+1. In libero odio, imperdiet eget ex a, vulputate suscipit tellus.
+2. Etiam sed leo ex.
+3. Integer eu rutrum turpis.
+
+**Nested Lists**:
+
+- Nulla facilisi.
+- Donec vulputate risus ut lectus bibendum, vitae fringilla odio tempus.
+ 1. In libero odio, imperdiet eget ex a, vulputate suscipit tellus.
+ 2. Etiam sed leo ex.
+ - Nulla facilisi.
+ - Donec vulputate risus ut lectus bibendum, vitae fringilla odio tempus.
+ 3. Integer eu rutrum turpis.
+- Ut porta, quam id mattis feugiat, augue mauris bibendum sapien, a pulvinar mi lorem vitae nunc.
+ - Integer eu rutrum turpis.
+ - Sed pretium mattis nibh, vel lobortis augue semper vel.
+
+**Definition List**:
+
+Lorem ipsum
+: dolor sit amet, consectetur adipiscing elit. Mauris laoreet
+ sollicitudin venenatis. Duis sed consequat dolor.
+
+Etiam feugiat
+: pharetra sapien et semper. Nunc ornare lacus sit amet massa
+ auctor, vitae aliquam eros interdum. Mauris arcu ante, imperdiet vel purus
+ ac, bibendum faucibus diam. Ut blandit nec mi at ultricies. Donec eget
+ mattis nisl. In sed nibh felis. Cras quis convallis orci.
+
+Sed aliquam
+: odio sed faucibus aliquam, arcu augue elementum justo, ut
+ vulputate ligula sem in augue. Maecenas ante felis, pellentesque auctor
+ semper non, eleifend quis ante. Fusce enim orci, suscipit ac dapibus et,
+ fermentum eu tortor. Duis in facilisis ante, quis faucibus dolor. Etiam
+ maximus lorem quis accumsan vehicula.
+
+
+### Links {#links}
+
+Here is a list of links to:
+
+- [Figure 5](#figure--fig:general-control-names)
+- [Table 3](#table--tab:table-with-equations)
+- Listing [Code Snippet 1](#code-snippet--lst:matlab-figure)
+- Specific [line of code](#org-coderef--967846-4)
+- Equation \ref{eq:numbered}
+- Section
+- Bibliographic Reference (Stanisic and Legrand 2014), and (Schulte and Davison 2011; Dominik 2010; Stanisic and Legrand 2014)
+
+
+### Maths {#maths}
+
+Here is some inline mathematics: \\(z = 2\\).
+
+Unumbered equation:
+\\[ F(x) = \int\_0^x f(t) dt \\]
+
+Using the `equation` environment in Eq. \ref{eq:numbered}.
+
+\begin{equation}
+\label{eq:numbered}
+ F(s) = \int\_0^\infty f(t) e^{-st} dt
+\end{equation}
+
+Using the `align` environment Equations \ref{eq:align\_1} and \ref{eq:align\_2}.
+
+\begin{align}
+ \mathcal{F}(a) &= \frac{1}{2\pi i}\oint\_\gamma \frac{f(z)}{z - a}\\,dz \label{eq:align\_1} \\\\
+ \int\_D (\nabla\cdot \mathcal{F})\\,dV &=\int\_{\partial D}\mathcal{F}\cdot n\\, dS \label{eq:align\_2}
+\end{align}
+
+
+### Verse, Quote {#verse-quote}
+
+Below is a verse.
+
+
+
+Great clouds overhead
+Tiny black birds rise and fall
+Snow covers Emacs
+
+ ---AlexSchroeder
+
+
+
+Below is a quote.
+
+> Nobody ever figures out what life is all about, and it doesn't matter.
+> Explore the world.
+> Nearly everything is really interesting if you go into it deeply enough.
+>
+> ---Richard P. Feynman
+
+
+### Aside {#aside}
+
+An aside block can be used as shown below.
+
+
+
+Cras elementum ex vel orci congue porttitor. Vestibulum scelerisque gravida mattis. Suspendisse sit amet volutpat felis. Cras luctus porta lectus eget scelerisque. Cras blandit purus vel odio malesuada pellentesque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Morbi eget aliquet sapien. Nunc eu elit in ligula aliquam congue dapibus eu massa. Sed accumsan hendrerit viverra. Quisque purus enim, tristique vitae porttitor eu, feugiat non ligula. Duis vitae ipsum vel quam ultricies ornare quis vitae quam. Vivamus commodo mauris non ex rutrum, sagittis facilisis metus tincidunt. Etiam vel nibh sit amet lorem auctor volutpat vel quis nulla. Quisque nec pharetra justo.
+
+
+### Inline Task {#inline-task}
+
+Some text.
+
+
+This is an inline task
+
+
+Some text.
+
+
+## Headlines {#headlines}
+
+
+
+
+### Second level Headline with tags @home@work {#second-level-headline-with-tags}
+
+
+#### Third level Headline {#third-level-headline}
+
+
+##### Fourth level Headline {#fourth-level-headline}
+
+Aliquam aliquet sagittis lorem in rutrum. Cras pharetra viverra nisi, at placerat felis malesuada elementum. Donec tincidunt pharetra tincidunt. Praesent id lectus eget erat porttitor placerat non a magna. Cras non mauris ex. Morbi ut eros eu tellus egestas dapibus et et est. Aenean sollicitudin nibh enim, sed pulvinar massa iaculis sit amet. Vivamus egestas laoreet varius. Sed finibus libero nec quam tempor, eget viverra sapien fermentum. Donec dictum eleifend velit, vel elementum ex ultrices non. Vivamus mauris ex, ultrices quis sem vel, dapibus lacinia est. Praesent a sapien id diam venenatis finibus non vel justo. Cras sagittis tortor ac rutrum elementum. Maecenas luctus tempor enim, vitae suscipit quam consequat a. Phasellus feugiat congue sapien commodo cursus. Interdum et malesuada fames ac ante ipsum primis in faucibus.
+
+
+#### Third level Headline {#third-level-headline}
+
+
+##### Fourth level Headline {#fourth-level-headline}
+
+Aliquam aliquet sagittis lorem in rutrum. Cras pharetra viverra nisi, at placerat felis malesuada elementum. Donec tincidunt pharetra tincidunt. Praesent id lectus eget erat porttitor placerat non a magna. Cras non mauris ex. Morbi ut eros eu tellus egestas dapibus et et est. Aenean sollicitudin nibh enim, sed pulvinar massa iaculis sit amet. Vivamus egestas laoreet varius. Sed finibus libero nec quam tempor, eget viverra sapien fermentum. Donec dictum eleifend velit, vel elementum ex ultrices non. Vivamus mauris ex, ultrices quis sem vel, dapibus lacinia est. Praesent a sapien id diam venenatis finibus non vel justo. Cras sagittis tortor ac rutrum elementum. Maecenas luctus tempor enim, vitae suscipit quam consequat a. Phasellus feugiat congue sapien commodo cursus. Interdum et malesuada fames ac ante ipsum primis in faucibus.
+
+
+### Second level Headline with Schedule {#second-level-headline-with-schedule}
+
+Aliquam aliquet sagittis lorem in rutrum. Cras pharetra viverra nisi, at placerat felis malesuada elementum. Donec tincidunt pharetra tincidunt. Praesent id lectus eget erat porttitor placerat non a magna. Cras non mauris ex. Morbi ut eros eu tellus egestas dapibus et et est. Aenean sollicitudin nibh enim, sed pulvinar massa iaculis sit amet. Vivamus egestas laoreet varius. Sed finibus libero nec quam tempor, eget viverra sapien fermentum. Donec dictum eleifend velit, vel elementum ex ultrices non. Vivamus mauris ex, ultrices quis sem vel, dapibus lacinia est. Praesent a sapien id diam venenatis finibus non vel justo. Cras sagittis tortor ac rutrum elementum. Maecenas luctus tempor enim, vitae suscipit quam consequat a. Phasellus feugiat congue sapien commodo cursus. Interdum et malesuada fames ac ante ipsum primis in faucibus.
+
+
+### Second level Headline with a priority {#second-level-headline-with-a-priority}
+
+Aliquam aliquet sagittis lorem in rutrum. Cras pharetra viverra nisi, at placerat felis malesuada elementum. Donec tincidunt pharetra tincidunt. Praesent id lectus eget erat porttitor placerat non a magna.
+
+
+### Second level Headline with TODO State {#second-level-headline-with-todo-state}
+
+Vivamus egestas laoreet varius. Sed finibus libero nec quam tempor, eget viverra sapien fermentum. Donec dictum eleifend velit, vel elementum ex ultrices non. Vivamus mauris ex, ultrices quis sem vel, dapibus lacinia est. Praesent a sapien id diam venenatis finibus non vel justo.
+
+
+### Second level Headline with DONE State {#second-level-headline-with-done-state}
+
+Cras sagittis tortor ac rutrum elementum. Maecenas luctus tempor enim, vitae suscipit quam consequat a. Phasellus feugiat congue sapien commodo cursus. Interdum et malesuada fames ac ante ipsum primis in faucibus.
+
+
+#### Third level Headline with DONE State {#third-level-headline-with-done-state}
+
+Cras non mauris ex. Morbi ut eros eu tellus egestas dapibus et et est. Aenean sollicitudin nibh enim, sed pulvinar massa iaculis sit amet.
+
+
+## Blocks {#blocks}
+
+
+
+
+
+{{< figure src="/ox-hugo/test_general_control_names.png" caption="Figure 3: General Control Configuration. With some mathematics in the caption: \\(z^2, \sqrt{y}\\)" >}}
+
+```md
+#+name: fig:general_control_names
+#+caption: General Control Configuration
+[[file:figs/general_control_names.png]]
+```
+
+
+### Wrap Image {#wrap-image}
+
+
+
+{{< figure src="figs/general_control_names.png" caption="Figure 4: General Control Configuration" >}}
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non semper turpis. Proin tristique ipsum at mauris viverra efficitur. Maecenas semper urna vitae hendrerit consectetur. Vivamus id odio et lectus pretium hendrerit ac in libero. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Pellentesque gravida, nibh vitae euismod mollis, dolor justo hendrerit mauris, sed dapibus velit magna ut purus. Mauris sagittis ligula in ante congue, vel rhoncus velit rutrum. In pulvinar elit nibh, a sodales enim iaculis sed. Maecenas et eleifend libero, vel congue urna. Praesent sit amet ornare lacus, nec maximus lectus.
+
+Fusce blandit mauris dui, sed lobortis sapien tincidunt ac. Maecenas vitae molestie mi. Ut sodales euismod mauris, vitae finibus orci sagittis a. Quisque fringilla ante mi, vel aliquet est mollis in. Nam rutrum, nibh vitae tincidunt ultrices, quam urna efficitur ipsum, eget tristique lorem purus vitae metus. Maecenas dictum varius eros. Sed aliquam quis tortor in ultricies. Suspendisse imperdiet, mi eget mattis porta, felis quam gravida mi, malesuada venenatis dui dui a libero. Duis in lorem eget elit fermentum accumsan. Cras consequat eros vehicula, laoreet neque nec, tincidunt odio. Phasellus eu arcu lacus. Aliquam vel sollicitudin ipsum, sed iaculis risus. In pulvinar purus libero, quis vestibulum ex lacinia vel. Ut imperdiet ut erat non vulputate.
+
+```md
+#+name: fig:general_control_names
+#+caption: General Control Configuration
+#+attr_html: :float wrap-left
+#+attr_latex: :float wrap
+[[file:figs/general_control_names.png]]
+```
+
+
+
+{{< figure src="figs/general_control_names.png" caption="Figure 5: General Control Configuration" >}}
+
+Fusce blandit mauris dui, sed lobortis sapien tincidunt ac. Maecenas vitae molestie mi. Ut sodales euismod mauris, vitae finibus orci sagittis a. Quisque fringilla ante mi, vel aliquet est mollis in. Nam rutrum, nibh vitae tincidunt ultrices, quam urna efficitur ipsum, eget tristique lorem purus vitae metus. Maecenas dictum varius eros. Sed aliquam quis tortor in ultricies. Suspendisse imperdiet, mi eget mattis porta, felis quam gravida mi, malesuada venenatis dui dui a libero. Duis in lorem eget elit fermentum accumsan. Cras consequat eros vehicula, laoreet neque nec, tincidunt odio. Phasellus eu arcu lacus. Aliquam vel sollicitudin ipsum, sed iaculis risus. In pulvinar purus libero, quis vestibulum ex lacinia vel. Ut imperdiet ut erat non vulputate.
+
+
+### Sub Images {#sub-images}
+
+Link to sub[ 2](#org-target--fig-general-control-names-1).
+
+```md
+#+name: fig:subfigure
+#+caption: Subfigure Caption
+#+attr_latex: :environment subfigure :width 0.49\linewidth :align c
+| file:figs/general_control_names.png | file:figs/general_control_names.png |
+| <> sub figure caption | <> sub figure caption |
+```
+
+
+
+
+| | **Classical Control** | **Modern Control** | **Robust Control** |
+|:--------------------------|:----------------------------------:|:------------------------------------:|:---------------------------------------------------------------------------------:|
+| **Date** | 1930- | 1960- | 1980- |
+| **Tools** | Transfer Functions | State Space formulation | Disk margin |
+| | Nyquist Plots | Riccati Equations | Systems and Signals Norms (\\(\mathcal{H}\_\infty\\), \\(\mathcal{H}\_2\\) Norms) |
+| | Bode Plots | | Closed Loop Transfer Functions |
+| | Phase and Gain margins | | Weighting Functions |
+| **Control Architectures** | Proportional, Integral, Derivative | Full State Feedback | General Control Configuration |
+| | Leads, Lags | LQR, LQG | |
+| | | Kalman Filters | |
+| **Advantages** | Study Stability | Automatic Synthesis | Automatic Synthesis |
+| | Simple | MIMO | MIMO |
+| | Natural | Optimization Problem | Optimization Problem |
+| | | | Guaranteed Robustness |
+| | | | Easy specification of performances |
+| **Disadvantages** | Manual Method | No Guaranteed Robustness | Required knowledge of specific tools |
+| | Only SISO | Difficult Rejection of Perturbations | Need a reasonably good model of the system |
+
+
+## Details {#details}
+
+Below is some content hidden until you click the bar.
+
+Hiden Part
+
+Almost anything can be put here for instance this table below.
+
+
+
Dominik, Carsten. 2010. The Org Mode 7 Reference Manual-Organize Your Life with GNU Emacs. Network Theory Ltd.
+
Schulte, Eric, and Dan Davison. 2011. “Active Documents with Org-Mode.” Computing in Science & Engineering 13 (3). IEEE Computer Society: 66–73.
+
Stanisic, Luka, and Arnaud Legrand. 2014. “Effective Reproducible Research with Org-Mode and Git.” In European Conference on Parallel Processing, 475–86. Springer.
+
+
+[^fn:1]: A long foot note. Lorem ipsum dolor sit amet, consectetur adipiscing elit. With a reference to [Figure 5](#figure--fig:general-control-names).
+[^fn:2]: An other footnote.
diff --git a/content/zettels/thermoelectric_cooler.md b/content/zettels/thermoelectric_cooler.md
new file mode 100644
index 0000000..f2b8c60
--- /dev/null
+++ b/content/zettels/thermoelectric_cooler.md
@@ -0,0 +1,51 @@
++++
+title = "Thermoelectric cooler"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Temperature Control]({{< relref "temperature_control.md" >}})
+
+
+## First principles {#first-principles}
+
+From (Evers et al. 2021):
+
+
+
+{{< figure src="/ox-hugo/thermoelectric_cooler_schematic.svg" caption="Figure 1: Schematic of a Peltier module" >}}
+
+The thermoelectric dynamics is described by 3 phenomena:
+
+1. the Fourier effect
+2. Joule heating
+3. the Peltier effect
+
+
+### The Fourier effect {#the-fourier-effect}
+
+The Fourier effect \\(Q\_f\\) describes the energy transfer through **conduction** between the two sides of the Peltier module:
+\\[ Q\_f^{1 \rightarrow 2} = \frac{K\_m \cdot A}{d} (T\_1 - T\_2) \\]
+for conduction from temperature \\(T\_1\\) to \\(T\_2\\) with \\(K\_m\\) the conductivity of the Peltier module in \\(W/m \cdot K\\), \\(A\\) the area in \\(m^2\\) and \\(d\\) the thickness in \\(m\\).
+
+
+### Joule heating {#joule-heating}
+
+Joule heating \\(Q\_j\\) occurs when an electrical current flows through a resistive element:
+\\[ Q\_j = R\_m I^2 \\]
+where \\(R\_m\\) is the electrical resistance in \\(\Omega\\) of the Peltier module and \\(I\\) is the electrical current in \\(A\\).
+
+
+### The Peltier effect {#the-peltier-effect}
+
+The Peltier effect describes the occurrence of a heat flow over a semi-conductor in the presence of an electrical potential difference and resulting current:
+\\[ Q\_p = S\_m T I \\]
+where \\(S\_m\\) is the Seebeck coefficient of the Peltier module, and \\(T\\) is the temperature at the cold/hot side.
+
+
+## Bibliography {#bibliography}
+
+
+
Evers, Enzo, Rens Slenders, Rob van Gils, Bram de Jager, and Tom Oomen. 2021. “Thermoelectric Modules in Mechatronic Systems: Temperature-Dependent Modeling and Control.” Mechatronics 79: 102647. doi:10.1016/j.mechatronics.2021.102647.
+
diff --git a/content/zettels/time_delay.md b/content/zettels/time_delay.md
new file mode 100644
index 0000000..3625cce
--- /dev/null
+++ b/content/zettels/time_delay.md
@@ -0,0 +1,83 @@
++++
+title = "Time Delay"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+## Phase induced by a time delay {#phase-induced-by-a-time-delay}
+
+Having some time delay can be modelled by a transfer function having constant amplitude but a phase lag increasing with frequency.
+Such phase lag is linearly proportional to the time delay and to the frequency:
+
+\begin{equation}
+\phi(\omega) = -\omega \cdot T\_s
+\end{equation}
+
+with:
+
+- \\(\phi(\omega)\\) the phase lag in rad
+- \\(\omega\\) the frequency in rad/s
+- \\(T\_s\\) the time delay in s
+
+
+## Estimation of phase delay induced in sampled systems {#estimation-of-phase-delay-induced-in-sampled-systems}
+
+Consider a feedback controller implemented numerically on a system with a sampling frequency \\(F\_s\\).
+
+The time delay associated with the limited sampling frequency \\(F\_s\\) is:
+
+\begin{equation}
+\phi(\omega) = -\frac{\omega}{F\_s}
+\end{equation}
+
+with:
+
+- \\(\phi(\omega)\\) the phase lag in rad
+- \\(\omega\\) the frequency in rad/s
+- \\(F\_s\\) the sampling frequency in Hz
+
+Some values are summarized in [Table 1](#table--tab:time-delay-phase-lag).
+
+
+
+ Table 1:
+ Phase lag as a function of the frequency (relative to the sampling frequency )
+
+
+| Frequency | Phase Delay [deg] |
+|----------------|-------------------|
+| \\(F\_s/100\\) | -3.6 |
+| \\(F\_s/10\\) | -36.0 |
+| \\(F\_s/2\\) | -180.0 |
+
+This is the main reason to have a sampling frequency much higher than the wanted feedback bandwidth is to limit the phase delay at the crossover frequency induced by the time delay.
+Having a sampling frequency a 100 times larger than the crossover frequency is a good objective.
+
+
+
+Take the example of a controller implemented with a sampling time of 0.1ms (10kHz sampling frequency).
+
+```matlab
+t_delay = 1e-4; % Delay [s]
+G_delay = exp(-t_delay*s);
+```
+
+The induced phase delay as a function of frequency is shown in [Figure 1](#figure--fig:time-delay-induced-phase-lag).
+
+At the Nyquist frequency (5 kHz), the phase lag is 180 degrees.
+
+
+
+{{< figure src="/ox-hugo/time_delay_induced_phase_lag.png" caption="Figure 1: Phase lag induced by a time delay" >}}
+
+
diff --git a/content/zettels/trajectory_generation.md b/content/zettels/trajectory_generation.md
new file mode 100644
index 0000000..f961f37
--- /dev/null
+++ b/content/zettels/trajectory_generation.md
@@ -0,0 +1,31 @@
++++
+title = "Trajectory Generation"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+
+
+Requirements
+
+Goals
+
+Tools
+
+(Yoon et al. 2019)
+(Zanasi and Morselli 2002)
+(Singer and Seering 1991)
+Chapter 4.2.4 of (Schmidt, Schitter, and Rankers 2020)
+
+
+## Bibliography {#bibliography}
+
+
+
Schmidt, R. M., G. Schitter, and A. Rankers. 2020. The Design of High Performance Mechatronics - Third Revised Edition. Ios Press.
+
Singer, Neil C., and Warren P. Seering. 1991. “Preshaping Command Inputs to Reduce System Vibration,” 128–47. Cambridge, MA, USA: MIT Press.
+
Yoon, Hyun Joong, Seong Youb Chung, Han Sol Kang, and Myun Joong Hwang. 2019. “Trapezoidal Motion Profile to Suppress Residual Vibration of Flexible Object Moved by Robot.” Electronics 8 (1): 30. doi:10.3390/electronics8010030.
+
Zanasi, R., and R. Morselli. 2002. “Third Order Trajectory Generator Satisfying Velocity, Acceleration and Jerk Constraints.” In Proceedings of the International Conference on Control Applications, 2:1165–70 vol.2. doi:10.1109/CCA.2002.1038770.
+
diff --git a/content/zettels/transconductance_amplifiers.md b/content/zettels/transconductance_amplifiers.md
new file mode 100644
index 0000000..c654bd4
--- /dev/null
+++ b/content/zettels/transconductance_amplifiers.md
@@ -0,0 +1,348 @@
++++
+title = "Transconductance Amplifiers"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}}), [Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}})
+
+
+## Description {#description}
+
+A Transconductance Amplifier converts the control voltage into current with a current source characteristic.
+
+Such a converter is called a voltage-to-current converter, also named a voltage-controlled current source or _transconductance_ amplifier.
+
+Such amplifier is used to control motors (e.g. voice coil, BLDC, stepper motors, ...).
+
+
+## Manufacturers {#manufacturers}
+
+
+
+ Table 1:
+ Drivers with integrated controllers
+
+
+| Model | Manufacturer | Linear / PWM | Axes | Interfaces | Current Bandwidth | Max Current | ASD at 1kHz [A/sqrt(Hz)] |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|--------------|------------------------|------------|-------------------|-------------|--------------------------|
+| [LA300](https://varedan.com/product/analog-linear-servo-amplifiers/la-300-analog-linear-servo-amplifier/) | Varedan | Linear | 3 | +/-10V | 10kHz | 4A | |
+| [CMAu10](https://www.cedrat-technologies.com/en/products/magnetic-controllers/oem-amplifiers.html) | Cedrat | Linear | 1 | +/-10V | 5kHz | 0.5A | |
+| [TA115](https://www.trustautomation.com/products/linear-drives/ta115-linear-drive/) and [TA105](https://www.trustautomation.com/products/linear-drives/ta105-linear-drive/) | TrustAutomation | Linear | 1 | +/-10V | 5kHz | | 1e-6 |
+| [SMA6520](https://www.glentek.com/shop/?swoof=1&product_cat=linear-brushless-series&really_curr_tax=21-product_cat) | Glentek | Linear | 1 Brushless (3 phases) | +/-10V | 10kHz | | |
+| [SMA5005](https://www.glentek.com/shop/?swoof=1&product_cat=linear-brush-series&really_curr_tax=21-product_cat) | Glentek | Linear | 1 | +/-10V | 10kHz | | |
+| [SRS Current Source](https://www.thinksrs.com/products/cs580.html) | SRS | Linear | 1 | | | 0.1A | |
+
+
+## Required properties {#required-properties}
+
+Main required properties are (taken from (Schmidt, Schitter, and Rankers 2020)):
+
+- **Power delivery capability**
+- **Dynamic properties**
+- **Linearity**
+- **Voltage or current drive**
+- **Efficiency**
+- **Four quadrant operation**
+
+
+## Four Quadrant Operation {#four-quadrant-operation}
+
+The self-inductance of an electromagnetic actuator also causes another problem when the actuator is driven with a period signal, because for a sinusoidal signal the current is out of phase with the voltage.
+In the extreme case of a purely reactive load, the maximum current needs to be delivered at zero voltage, while at a quarter of the period a positive current is delivered with a negative voltage and another quarter it is just the other way around.
+
+In mechatronic positioning systems with a high moving mass, the real problem is caused by the kinetic energy that is involved.
+At acceleration, the motion voltage of the actuator increases in phase with the current and electric power is inserted in the system and converted into kinetic energy.
+The deceleration phase is however completely the opposite.
+While the motion voltage still has the same sign as during constant motion, the current needs to be reversed in order to reverse the energy flow.
+This means that the full amount of kinetic energy has to be absorbed by the amplifier.
+
+
+## How to size a linear drive? {#how-to-size-a-linear-drive}
+
+
+### Why it is important to properly choose a linear drive? {#why-it-is-important-to-properly-choose-a-linear-drive}
+
+From a TrustAutomation [white paper](https://www.trustautomation.com/resources/engineering-blog/how-to-size-a-linear-drive-for-precision-positioning-applications/):
+
+> The price you'll pay for the improved precision (i.e. thanks to the linear drive as compared to a PWM one) will mostly come in the form of heat.
+> Linear drive typically maintain small amounts of power inside the drive circuits, increasing heat.
+> **Excess voltage not needed by the motor is also dissipated as heat**.
+
+
+### Determine required currents and voltages {#determine-required-currents-and-voltages}
+
+In order to properly choose a linear amplifier, it is important to determine the voltage and torque that has to be generated.
+
+The required current is based on the force (resp. torque) constant \\(K\_f\\) and peak force (resp. torque).
+The required voltage is based on the back EMF constant \\(K\_u\\), peak velocity \\(v\_\text{peak}\\), peak current \\(I\_\text{peak}\\) and winding resistance \\(R\\).
+
+
+
+Consider a linear brushless motor with a force constant \\(K\_f\\) equal to 30 N/A, a BEMF constant \\(K\_u\\) equal to \\(18\\,\frac{Vrms}{m/s}\\) (i.e. \\(25\\,\frac{V}{m/s}\\)) and a electrical resistance \\(R\\) of \\(20\\,\Omega\\).
+The peak velocity \\(v\_\max\\) is 1 mm/s and the wanted applied peak force \\(F\_\text{peak}\\) is 50 N.
+
+The peak current required is:
+\\[ I\_\text{peak} = F\_\text{peak}/K\_f \\]
+And we obtain a peak current of 1.7 A.
+
+The peak voltage is:
+\\[ V\_\text{peak} = K\_u \cdot v\_\text{peak} + R \cdot I\_\text{peak} + V\_\text{margin} \\]
+With \\(V\_\text{margin}\\) of 10 V, we obtain \\(V\_\text{peak} = 45\\,V\\).
+
+From this simple calculation, it is possible to obtain the required capability of the amplifier.
+
+
+
+
+### Determine safe operating area {#determine-safe-operating-area}
+
+There are two danger scenarios: a stalled motor and a dynamic stopping motion
+
+
+#### Stalled motor {#stalled-motor}
+
+Consider the voltage supply to the drive \\(V\_\text{supply}\\) and the peak current \\(V\_\text{peak}\\).
+Now suppose the motor is pushing against a hard stop, the power \\(W\_\text{drive}\\) that the drive must dissipate is equal to:
+\\[ W\_\text{drive} = I\_\text{peak} \cdot V\_\text{drive} \\]
+with:
+\\[ V\_\text{drive} = V\_\text{supply} - I\_\text{peak} R \\]
+
+
+
+For our current application, \\(V\_\text{supply} = 45\\,V\\), \\(R = 20\\,\Omega\\) and \\(I\_\text{peak} = 1.7\\,A\\) which gives:
+\\[ W\_\text{drive} = 19\\,W \\]
+
+Then, it should be checked that the amplifier can dissipate this amount of power.
+
+
+
+
+#### Dynamic Stopping. {#dynamic-stopping-dot}
+
+With a linear drive, the kinetic energy is absorbed by the drive itself, but must be dissipated as heat.
+This energy must be added to the energy required by the drive to stop all motion.
+
+The kinetic energy \\(E\_K\\) is (expressed in Joules):
+\\[ E\_K = \frac{1}{2} m v\_\text{peak}^2 \\]
+with \\(m\\) the payload mass.
+During the linear deceleration phase, the power \\(W\_d\\) that has to be dissipate by the drive is:
+\\[ W\_d = \frac{E\_K}{t\_\text{dec}} \\]
+with \\(t\_\text{dec}\\) the deceleration time.
+
+
+
+Consider a mass of 5 kg with a peak velocity of 1 mm/s and a deceleration time of 0.1s, the power to be dissipated in the drive is:
+\\[ W\_d = 25\\,\mu W \\]
+which is quite negligible.
+
+If a velocity of 1 m/s is considered instead, we obtain \\(W\_d = 25\\,W\\).
+
+
+
+
+### Matlab Script to size a linear drive {#matlab-script-to-size-a-linear-drive}
+
+```matlab
+%% Motor properties
+Kt = 28; % Force constant [N/A] or Torque constant [Nm/A]
+Ku = 28; % BEMF in [V/(m/s)] or in [V/(rad/s)]
+R = 8.5; % Winding resistance [Ohm]
+
+%% Motion property
+Fp = 100; % Peak force [N] or Peak torque [Nm]
+vp = 10e-3; % Peak Velocity [m/s] or peak rotation [rad/s]
+m = 5; % Mass of the payload [kg]
+td = 0.1; % Deceleration time [s]
+```
+
+```matlab
+%% Driver wanted properties
+V_margin = 10; % Power supply margin [V]
+Imax = Fp / Kt; % Peak current to be supplied by the driver [A]
+Vmax = vp * Ku + R * Imax + V_margin; % Peak voltage to be generated by the driver [V]
+```
+
+```text
+Imax = 3.6 [A], Vmax = 41 [V]
+```
+
+```matlab
+%% Stalled Motor
+W_stalled = Imax * (Vmax - Imax * R); % [W]
+```
+
+```text
+W_stalled = 37 [W]
+```
+
+```matlab
+%% Dynamic Stopping
+W_stop = 0.5*m*vp^2 / t_dec; % [W]
+```
+
+```text
+W_stop = 0.0025 [W]
+```
+
+
+## Basic Circuits {#basic-circuits}
+
+
+### Howland Current Sources {#howland-current-sources}
+
+See Section 4.2.5 in (Horowitz 2015).
+
+Howland current source is shown in [Figure 1](#figure--fig:art-electronics-current-source).
+
+> The output current is sourced through a sense resistor \\(R\_s\\) whose value you can choose independently of the matched resistor array (with resistor pairs \\(R\_1\\) and \\(R\_2\\)).
+> The best way to understand this circuit is to think of \\(IC\_1\\) as a difference amplifier whose output sense and reference connections sample the drop across \\(R\_s\\) (i.e., the current); the latter is buffered by follower IC2 so there is no current error.
+
+
+
+{{< figure src="/ox-hugo/art_electronics_current_source.png" caption="Figure 1: From <&horowitz15_art_of_elect_third_edition>" >}}
+
+
+### Other circuits found in the litterature {#other-circuits-found-in-the-litterature}
+
+{{< figure src="/ox-hugo/lafarga24_current_amplifier.png" caption="Figure 2: From <&lafarga24_activ_vibrat_isolat_system_space_applic>, Appendix B" >}}
+
+{{< figure src="/ox-hugo/okyay16_current_amplifier_schematic.png" caption="Figure 3: From <&okyay16_mechat_desig_dynam_contr_metrol>, Appendix A" >}}
+
+
+## Estimation of the required current noise {#estimation-of-the-required-current-noise}
+
+
+### Voice Coil Actuator with flexible guiding {#voice-coil-actuator-with-flexible-guiding}
+
+```matlab
+%% Frequency vector used for the analysis
+freqs = logspace(0, 4, 1000); % [Hz]
+
+%% Motor properties
+Kt = 28; % Force constant [N/A]
+
+%% Amplifier Noise
+In = 1e-6.*ones(size(freqs)); % Current noise density [A/sqrt(Hz)]
+
+%% DAC Noise
+Vn = (20/2^20)^2/12*1e4*ones(size(freqs)); % DAC output noise in [V/sqrt(Hz)]
+Vn = 3e-8
+Gi = 0.2; % Amplifier Gain [A/V]
+
+%% Mechanical properties
+m = 200e-3; % Mobile mass [kg]
+k = 1e3; % Guiding stiffness [N/m]
+xi = 0.05; % Modal Damping
+```
+
+```matlab
+%% Transfer function from F [N] to x [m]
+Gx = 1/(m*s^2);
+```
+
+```matlab
+%% Transfer function from I [A] to x [m]
+x_asd_i = In.*abs(squeeze(freqresp(Gx*Kt, freqs, 'Hz')))';
+x_asd_v = Vn.*abs(squeeze(freqresp(Gx*Gi*Kt, freqs, 'Hz')))';
+
+%% Cumulative amplitude spectrum
+figure;
+tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
+
+nexttile();
+hold on;
+plot(freqs, sqrt(flip(-cumtrapz(flip(freqs), flip(x_asd_i.^2)))) , '-');
+plot(freqs, sqrt(flip(-cumtrapz(flip(freqs), flip(x_asd_v.^2)))) , '-');
+plot(freqs, ex , '-');
+hold off;
+set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ylabel('Magnitude'); xlabel('Frequency [Hz]');
+xlim([0, 1e3]);
+```
+
+
+### Approximate analytical formula {#approximate-analytical-formula}
+
+Parameters:
+
+- `Kt`: motor force constant in N/A
+- `In`: current noise density of the amplifier in \\(A/\sqrt{Hz}\\)
+- `m`: mass in kg
+- `fb`: the feedback bandwidth in Hz
+
+We have that the residual motion when the feedback controller is closed is approximately equal to:
+
+\begin{equation}
+\epsilon\_x = \sqrt{\int\_\infty^{f\_b} \left(\frac{K\_t I\_n}{m \omega^2}\right)^2 d\omega}
+\end{equation}
+
+\begin{equation}
+\epsilon\_x = \frac{K\_t I\_n}{m (2\pi)^2} \sqrt{\frac{1}{3 f\_b^3}}
+\end{equation}
+
+Therefore, this formula can be used to:
+
+-
+
+
+
+```matlab
+%% Estimate the position stability from the current noise and system parameters
+m = 1; % [kg]
+In = 1e-6; % [A/sqrt(Hz)]
+Kt = 10; % [N/A]
+fb = 10; % [Hz]
+
+ex = In*Kt/m/(2*pi)^2*sqrt(1./(3*fb^3));
+```
+
+```text
+epsilon x = 4.6 [nm RMS]
+```
+
+-
+
+
+
+```matlab
+%% Estimate the required current noise from the wanted position stability and the parameters of the system
+m = 1; % [kg]
+Kt = 10; % [N/A]
+fb = 50; % [Hz]
+ex = 1e-9; % [m RMS]
+
+In = ex*m*(2*pi)^2/Kt * sqrt(3*fb^3);
+```
+
+```text
+In = 2.4e-06 [A/sqrt(Hz)]
+```
+
+
+## Bibliography {#bibliography}
+
+
+
Horowitz, Paul. 2015. The Art of Electronics - Third Edition. New York, NY, USA: Cambridge University Press.
+
Schmidt, R. M., G. Schitter, and A. Rankers. 2020. The Design of High Performance Mechatronics - Third Revised Edition. Ios Press.
+
diff --git a/content/zettels/transimpedance_amplifiers.md b/content/zettels/transimpedance_amplifiers.md
new file mode 100644
index 0000000..5c88858
--- /dev/null
+++ b/content/zettels/transimpedance_amplifiers.md
@@ -0,0 +1,65 @@
++++
+title = "Transimpedance Amplifiers"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Electronics]({{< relref "electronics.md" >}})
+
+
+## Description {#description}
+
+A transimpedance amplifier is a "current to voltage converter" and is also named a current controlled voltage source.
+
+It is generally used to interface a sensor which outputs a current proportional to the measurement parameter ([Quadrant Photodiodes]({{< relref "quadrant_photodiodes.md" >}}) for instance).
+
+
+## Basic Circuit {#basic-circuit}
+
+A basic transimpedance amplifier circuit is shown in [Figure 1](#figure--fig:transimpedance-amplifier-schematic).
+
+It produces an output voltage \\(V\_{\text{out}}\\) proportional to the input current \\(I\_{\text{sig}}\\):
+
+\begin{equation}
+\boxed{V\_{\text{out}} = -I\_{\text{sig}} R\_f}
+\end{equation}
+
+The gain of the amplifier is simply \\(-R\_f\\) in [V/A].
+
+The feedback resistor creates a Johnson noise that corresponds to a current noise:
+
+\begin{equation}
+i\_{n} = \sqrt{4kT/R\_f} \quad [A/\sqrt{Hz}]
+\end{equation}
+
+This is usually larger than the amplifier input current noise.
+
+
+
+{{< figure src="/ox-hugo/transimpedance_amplifier_schematic.png" caption="Figure 1: Transimpedance Amplifier; Current in, Voltage out" >}}
+
+More information about transimpedance can be found in [The art of electronics - third edition]({{< relref "horowitz15_art_of_elect_third_edition.md" >}}), chapter 8.11.4, especially on the trade-off between gain, noise and bandwidth.
+
+See [this](https://www.hardware-x.com/article/S2468-0672(21)00062-6/fulltext) open hardware design.
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|------------------------------------------------------------------------------------------------------------|---------|
+| [Kistler](https://www.kistler.com/fr/produits/composants/conditionnement-de-signal/) | Swiss |
+| [MMF](https://www.mmf.de/signal_conditioners.htm) | Germany |
+| [Femto](https://www.femto.de/en/products/current-amplifiers.html) | Germany |
+| [FMB Oxford](https://www.fmb-oxford.com/products/controls-2/control-modules/i404-quad-current-integrator/) | UK |
+| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=7083) | UK |
+| [Koheron](https://www.koheron.com/photonics/pd4q-4-quadrant-photodetector) | France |
+| [SRS](https://www.thinksrs.com/products/sr570.html) | |
+| [Basel Precision Instruments](https://www.baspi.ch/low-noise-high-stab-itov-conv) | Swiss |
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/tuned_mass_damper.md b/content/zettels/tuned_mass_damper.md
new file mode 100644
index 0000000..42a49c9
--- /dev/null
+++ b/content/zettels/tuned_mass_damper.md
@@ -0,0 +1,166 @@
++++
+title = "Tuned Mass Damper"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Passive Damping]({{< relref "passive_damping.md" >}}), [Mass Spring Damper Systems]({{< relref "mass_spring_damper_systems.md" >}})
+
+Review: (Elias and Matsagar 2017), (Verbaan 2015)
+
+
+## Working Principle {#working-principle}
+
+The basic idea is to damp the resonance of a structure (called the primary system) by attaching a resonant system to it, the Tuned Mass Damper (TMD).
+Usually, the resonance frequency of the TMD should match the resonance of the primary system that is to be damped.
+The TMD then has large internal damping such that the energy is dissipated (i.e. the resonance of the primary system is well damped).
+
+Below is a lecture about tuned mass damper.
+
+{{< youtube qDzGCgLu59A >}}
+
+And a simple experiment showing how a tuned mass damper works with a vibration cantilever beam.
+
+{{< youtube HDa1VO1VDpc >}}
+
+
+## How to properly apply a TMD? {#how-to-properly-apply-a-tmd}
+
+Few questions:
+
+- What damping mechanism to use?
+ Eddy current damping?
+ Viscous damping?
+- How to optimize parameters of the TMD (i.e. mass, stiffness and damping)?
+- Where to fix the TMD to the structure?
+
+
+## Tuned Mass Damper Optimization {#tuned-mass-damper-optimization}
+
+The optimal parameters of the tuned mass damper can be roughly estimated as follows:
+
+- Choose the maximum acceptable mass of the TMD \\(m\_2\\) and note:
+ \\[ \mu = m\_2/m\_1 \\]
+ where \\(m\_1\\) is the mass of the system to damp
+- The resonance frequency of the tuned mass damper should be chosen to be
+ \\[ \nu = \frac{1}{1 + \mu} \approx 1 \\]
+ As usually we have \\(\mu \ll 1\\) (i.e. TMD mass small compared to the structure mass, for instance few percent)
+- This allows to compute the stiffness of the TMD:
+ \\[ k\_2 = \nu^2 k\_1 \mu = k\_1 \frac{\mu}{(1 + \mu)^2} \\]
+- Finally, the optimal damping of the TMD is:
+ \\[ \xi\_2 = \sqrt{\frac{3 \mu}{8 (1 + \mu)}} \Longrightarrow c\_2 = 2 \xi\_2 \sqrt{k\_2 m\_2} \\]
+
+
+## Simple TMD model {#simple-tmd-model}
+
+
+### Model {#model}
+
+Let's consider a primary system that is represented by a [Mass Spring Damper Systems]({{< relref "mass_spring_damper_systems.md" >}}) with the following parameters: \\(m\_1\\), \\(k\_1\\), \\(c\_1\\).
+The TMD is also represented by a mass-spring-damper system with parameters \\(m\_2\\), \\(k\_2\\), \\(c\_2\\).
+The system is schematically represented in [Figure 1](#figure--fig:tuned-mass-damper-schematic).
+
+The goal is to limit the peak amplitude of \\(x\_1\\) due to \\(x\_0\\) (or a force affecting \\(m\_1\\) for instance).
+
+
+
+{{< figure src="/ox-hugo/tuned_mass_damper_schematic.png" caption="Figure 1: Mass Spring Damper representation of the Primary System and the Tuned Mass Damper" >}}
+
+The parameter of the primary system are defined as follow:
+
+```matlab
+%% Primary system parameters
+m1 = 100; % Mass [kg]
+k1 = 1e7; % Stiffness [N/m]
+c1 = 300; % Damping [N/(m/s)]
+```
+
+Then, the mass of the TMD is fixed and its optical parameters are computed:
+
+```matlab
+%% Tuned Mass Damper Parameters
+mu = 0.02; % Mass ratio
+
+m2 = mu*m1;
+k2 = k1*mu/(1 + mu)^2;
+xi = sqrt(3*mu/(8*(1 + mu)));
+c2 = 2*xi*sqrt(k2*m2);
+```
+
+
+ Table 1:
+ Obtained parameters of the TMD
+
+
+| | Mass `m2` [kg] | Stiffness `k2` [N/m] | Damping `c2` [N/(m/s)] |
+|-------|----------------|----------------------|------------------------|
+| Value | 2 | 192234 | 106.338 |
+
+The transfer function from \\(x\_0\\) to \\(x\_1\\) with and without the TMD are computed and shown in Figure
+
+```matlab
+%% Transfer function from X0 to X1 without TMD
+G1 = (c1*s + k1)/(m1*s^2 + c1*s + k1);
+
+%% Transfer function from X0 to X1 with TMD
+G2 = (m2*s^2 + c2*s + k2)*(c1*s + k1)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
+```
+
+
+
+{{< figure src="/ox-hugo/tuned_mass_damper_effect_tmd.png" caption="Figure 2: Comparison of the transmissibility with and without the TMD" >}}
+
+Let's now see how the mass of the TMD can affect its efficiency.
+
+The following mass ratios are tested:
+
+```matlab
+%% Mass ratios
+mus = [0.01, 0.02, 0.05, 0.1];
+```
+
+The obtained transfer functions are shown in [Figure 3](#figure--fig:tuned-mass-damper-mass-effect).
+
+
+
+{{< figure src="/ox-hugo/tuned_mass_damper_mass_effect.png" caption="Figure 3: Effect of the TMD mass on its efficiency" >}}
+
+The maximum amplification (i.e. \\(\mathcal{H}\_\infty\\) norm) of the transmissibility as a function of the mass ratio is shown in [Figure 4](#figure--fig:tuned-mass-damper-effect-mass-ratio).
+This relation can help to determine the minimum mass of the TMD that will give acceptable results.
+
+
+
+{{< figure src="/ox-hugo/tuned_mass_damper_effect_mass_ratio.png" caption="Figure 4: Maximum amplification due to resonance as a function of the mass ratio" >}}
+
+
+## Manufacturers {#manufacturers}
+
+-
+-
+-
+
+
+## Ways to add damping {#ways-to-add-damping}
+
+Possible damping sources:
+
+- Magnetic ([Eddy Current Damping]({{< relref "eddy_current_damping.md" >}}))
+- Viscous fluid
+- Elastomer ([example](https://www.dspe.nl/knowledge/dppm-cases/tuned-mass-damper-with-damped-mass-far-away-from-point-of-interest/))
+
+| Fuild | Reference |
+|----------------------|---------------------------------------------------|
+| Rocol Kilopoise 0868 | (Verbaan 2015) |
+
+
+## Review of existing TMD {#review-of-existing-tmd}
+
+{{< figure src="/ox-hugo/tmd_ligo.png" caption="Figure 5: Tuned Mass Damper used at LIGO" >}}
+
+{{< figure src="/ox-hugo/tmd_smac.jpg" caption="Figure 6: Commercial product from [SMAC](https://smac-sas.com/en/tuned-mass-damper/)" >}}
+
+
+
Elias, Said, and Vasant Matsagar. 2017. “Research Developments in Vibration Control of Structures Using Passive Tuned Mass Dampers.” Annual Reviews in Control 44: 129–56. doi:10.1016/j.arcontrol.2017.09.015.
+
Verbaan, C.A.M. 2015. “Robust mass damper design for bandwidth increase of motion stages.” Mechanical Engineering; Technische Universiteit Eindhoven.
+
diff --git a/content/zettels/two_stage_actuator.md b/content/zettels/two_stage_actuator.md
new file mode 100644
index 0000000..ee0882f
--- /dev/null
+++ b/content/zettels/two_stage_actuator.md
@@ -0,0 +1,98 @@
++++
+title = "Two Stage Actuator"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+The idea is to combine:
+
+- A long stroke, low precision stage
+- A short stroke, high precision stage
+
+The goal is therefore to obtain a long stroke high precision stage.
+
+
+## Review {#review}
+
+
+
+
+| **DoF** | **Long Stroke** | **Short Stroke** | **Bandwidth** | **Metrology** | **References** | Fig |
+|---------|-----------------------------------------------------|----------------------------|-----------------------------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|
+| X | Servo motor, leadscrew, rotary encoder | PZT, flexure (10um) | n/a | Interferometer, X | (Pahk, Lee, and Park 2001) | |
+| X,Y | 2 axis, linear motor | 2 PZT, flexures | n/a | Interferometers, XY | (Chassagne et al. 2007) | |
+| X,Y,Rz | X, linear motor, linear guides | 4 VCM (1mm), air bearing | 85Hz | Interferometers, XYRz | (Choi et al. 2008) | [Figure 2](#figure--fig:two-stage-choi08) |
+| X | 1 axis, DC motor, feedscrew, rotary encoder (25mm) | 1 PZT (17um), flexures | 2000Hz | Interferometer, X | (Buice et al. 2009) | [Figure 1](#figure--fig:two-stage-buice09) |
+| X,Y,Rz | 1 axis, ballscrew, rotary motor | 3 piezo, flexure | 3 PID, \\(\approx 1\\,Hz\\) | Interferometers, XYRz | (Liu et al. 2010) | |
+| X | 1 axis, Servo motor, ball screw (300mm) | 1 VCM, air bearing (5mm) | n/a | Interferometer, X | (Shinno, Yoshioka, and Sawano 2011) | [Figure 4](#figure--fig:two-stage-shinno11) |
+| X | 1 axis, VCM, flexure (10mm) | APA, flexure (15um) | PID, \\(\approx 1\\,Hz\\) | Interferometer, X | (Xu 2012) | [Figure 7](#figure--fig:two-stage-xu12) |
+| X | 1 axis X, ballscrew, stepper | 1 piezo stack Y | n/a | Capacitive, Y | (Ting, Li, and Lin 2011) | [Figure 5](#figure--fig:two-stage-ting11) |
+| X,Y | 2 axis, air bearing, linear motors (500mm), encoder | 4 VCM XYRz (3mm) | n/a | Interferometer, XYRz | (Okazaki, Asano, and Goto 2012) | [Figure 3](#figure--fig:two-stage-okazaki12) |
+| X | 1 axis, linear motor | 1 VCM | 800Hz | Interferometer, X | (Ito et al. 2013; Ito, Steininger, and Schitter 2015) | |
+| X | stepper motor, ballscrew (300mm) | PZT (16um) | 70Hz | Linear Encoder, X | (Kim et al. 2013) | |
+| X,Y | 2 axis stepper (100mm), encoder | 4 PZT (130um) | \\(\approx 10\\,Hz\\) | Interferometers, XY | (Wu et al. 2013) | |
+| X | 1 axis, linear motor (10mm), encoder | 1 VCM | 130 Hz | Interferometer, X | (Zhu, Pang, and Teo 2017) | |
+| X,Y | XY stepper motor (100mm), ballscrew, encoder | 2 PZT (100um) + capacitive | \\(\approx 10\\,Hz\\) | Combine both | (Wang, Peng, and Wang 2017) | [Figure 6](#figure--fig:two-stage-wang17) |
+
+
+
+{{< figure src="/ox-hugo/two_stage_buice09.png" caption="Figure 1: Figure caption" >}}
+
+
+
+{{< figure src="/ox-hugo/two_stage_choi08.png" caption="Figure 2: Figure caption" >}}
+
+
+
+{{< figure src="/ox-hugo/two_stage_okazaki12.png" caption="Figure 3: Figure caption" >}}
+
+
+
+{{< figure src="/ox-hugo/two_stage_shinno11.png" caption="Figure 4: Figure caption" >}}
+
+
+
+{{< figure src="/ox-hugo/two_stage_ting11.png" caption="Figure 5: Figure caption" >}}
+
+
+
+{{< figure src="/ox-hugo/two_stage_wang17.png" caption="Figure 6: Figure caption" >}}
+
+
+
+{{< figure src="/ox-hugo/two_stage_xu12.png" caption="Figure 7: Figure caption" >}}
+
+
+## References {#references}
+
+Books and PhD:
+
+- (Qingsong 2016)
+
+
+## Bibliography {#bibliography}
+
+
+
Buice, Eric S., David Otten, Raymond H. Yang, Stuart T. Smith, Robert J. Hocken, and David L. Trumper. 2009. “Design Evaluation of a Single-Axis Precision Controlled Positioning Stage.” Precision Engineering 33 (4): 418–24. doi:10.1016/j.precisioneng.2008.11.001.
+
Chassagne, L, M Wakim, S Xu, S Topçu, P Ruaux, P Juncar, and Y Alayli. 2007. “A 2d Nano-Positioning System with Sub-Nanometric Repeatability over the Millimetre Displacement Range.” Measurement Science and Technology 18 (11). IOP Publishing: 3267–72. doi:10.1088/0957-0233/18/11/001.
+
Choi, Young-Man, Jung Jae Kim, Jinwoo Kim, and Dae-Gab Gweon. 2008. “Design and Control of a Nanoprecision XY$\THETA$ Scanner.” Review of Scientific Instruments 79 (4): 045109. doi:10.1063/1.2902276.
+
Ito, Shingo, Juergen Steininger, and Georg Schitter. 2015. “Low-Stiffness Dual Stage Actuator for Long Rage Positioning with Nanometer Resolution.” Mechatronics 29: 46–56. doi:10.1016/j.mechatronics.2015.05.007.
+
Ito, Shingo, Juergen Steininger, Peter I. Chang, and Georg Schitter. 2013. “High-Precision Positioning System Using a Low-Stiffness Dual Stage Actuator.” IFAC Proceedings Volumes 46 (5): 20–27. doi:10.3182/20130410-3-cn-2034.00025.
+
Kim, Michael D., Kwang-Hee Lee, Kyung-Tae Nam, and Sang-Moo Lee. 2013. “Design and Control of a Single-Stage Dual-Actuator System for High-Precision Manufacturing.” Microsystem Technologies 20 (2). Springer Science and Business Media LLC: 175–83. doi:10.1007/s00542-013-1979-5.
+
Liu, Chien-Hung, Wen-Yuh Jywe, Yeau-Ren Jeng, Tung-Hui Hsu, and Yi-tsung Li. 2010. “Design and Control of a Long-Traveling Nano-Positioning Stage.” Precision Engineering 34 (3): 497–506. doi:10.1016/j.precisioneng.2010.01.003.
+
Okazaki, Yuichi, Shin Asano, and Takayuki Goto. 2012. “Dual-Servo Mechanical Stage for Continuous Positioning.” International Journal of the Japan Society for Precision Engineering 27 (2): 172–73.
+
Pahk, Heui Jae, Dong Sung Lee, and Jong Ho Park. 2001. “Ultra Precision Positioning System for Servo Motor–Piezo Actuator Using the Dual Servo Loop and Digital Filter Implementation.” International Journal of Machine Tools and Manufacture 41 (1). Elsevier: 51–63.
+
Qingsong. 2016. Design and Implementation of Large-Range Compliant Micropositioning Systems. Singapore: Wiley.
+
Shinno, H., H. Yoshioka, and H. Sawano. 2011. “A Newly Developed Long Range Positioning Table System with a Sub-Nanometer Resolution.” CIRP Annals 60 (1): 403–6. doi:10.1016/j.cirp.2011.03.027.
+
Ting, Y., C.C. Li, and C.M. Lin. 2011. “Controller Design for High-Frequency Cutting Using a Piezo-Driven Microstage.” Precision Engineering 35 (3). Elsevier BV: 455–63. doi:10.1016/j.precisioneng.2011.02.004.
+
Wang, Kou-An, Yi-Kai Peng, and Fu-Cheng Wang. 2017. “The Development and Control of a Long-Stroke Precision Stage.” Smart Science 5 (2). Informa UK Limited: 85–93. doi:10.1080/23080477.2017.1313693.
+
Wu, R.C., I.H. Tsai, F.C. Wang, and J.Y. Yen. 2013. “Design and Control of a Long-Stroke Nano-Positioning Stage.” In Proceedings of the 2013 IEEE/SICE International Symposium on System Integration. doi:10.1109/sii.2013.6776643.
+
Xu, Qingsong. 2012. “Design and Development of a Flexure-Based Dual-Stage Nanopositioning System with Minimum Interference Behavior.” IEEE Transactions on Automation Science and Engineering 9 (3). IEEE: 554–63.
+
Zhu, Haiyue, Chee Khiang Pang, and Tat Joo Teo. 2017. “A Flexure-Based Parallel Actuation Dual-Stage System for Large-Stroke Nanopositioning.” IEEE Transactions on Industrial Electronics 64 (7): 5553–63. doi:10.1109/tie.2017.2677306.
diff --git a/content/zettels/voice_coil_actuators.md b/content/zettels/voice_coil_actuators.md
new file mode 100644
index 0000000..5609bc3
--- /dev/null
+++ b/content/zettels/voice_coil_actuators.md
@@ -0,0 +1,146 @@
++++
+title = "Voice Coil Actuators"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Actuators]({{< relref "actuators.md" >}})
+
+
+## Working Principle {#working-principle}
+
+
+## Typical Specifications {#typical-specifications}
+
+
+## Model of a Voice Coil Actuator {#model-of-a-voice-coil-actuator}
+
+(Schmidt, Schitter, and Rankers 2014)
+
+
+## Driving Electronics {#driving-electronics}
+
+As the force is proportional to the current, a [Transconductance Amplifiers]({{< relref "transconductance_amplifiers.md" >}}) (voltage-controller current source) is generally used as the driving electronics.
+
+
+## Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|-------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Akribis](https://akribis-sys.com/products/voice-coil-motors/avm-series) | Singapore (european distributors: [Maccon](https://www.maccon.de/en.html), [TDS PP](https://www.tds-pp.com/en/product/linear-voice-coil-actuators-avm/)) |
+| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=14116) | |
+| [Geeplus](https://www.geeplus.com/) | UK |
+| [PBA Systems](https://www.pbasystems.com.sg/product/circular-voice-coil-motor-cvc/) | Singapore |
+| [Magnetic Innovations](https://www.magneticinnovations.com/) | Netherlands |
+| [H2tech](https://www.h2wtech.com/) | USA |
+| [Beikimco](http://www.beikimco.com/) | USA |
+| [Monticont](http://www.moticont.com/) | USA |
+| [Celera](https://www.celeramotion.com/applimotion/products/direct-drive-frameless-linear-motors/voice-coil/juke-series-round-body/) | |
+
+
+## Voice Coil Stages {#voice-coil-stages}
+
+| Manufacturers | Country |
+|-----------------------------------------------------------------------------------------------------|-------------|
+| [TDS PP](https://www.tds-pp.com/en/product/voice-coil-actuator-stages/) | Switzerland |
+| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_ID=14930) | USA |
+| [H2tech](https://www.h2wtech.com/category/voice-coil-stages#productInfo1) | USA |
+| [PBA](https://www.pbasystems.com.sg/product/circular-voice-coil-motor-cvca/) | |
+| [Monticont](http://www.pwr-con.com/ecommerce/default.asp?cat=Linear+Motor+Driven+Positioning+Stage) | |
+
+
+## Voice Coil for Vertical payload {#voice-coil-for-vertical-payload}
+
+Let's consider a spring-mass system with a force actuator ([Figure 1](#figure--fig:voice-coil-vertical-mass-spring)).
+Parameters are:
+
+- `m`: the mass payload in [kg]
+- `k`: the spring constant in [N/m]
+- `Fmax`: the maximum force applied by the voice coil in [N]
+
+
+
+{{< figure src="/ox-hugo/voice_coil_vertical_mass_spring.png" caption="Figure 1: Mass Spring System" >}}
+
+`Dg`: deflection due to gravity in [m]
+`Df`: maximum stroke using the voice coil in [m]
+`f0`: the resonance frequency of spring-mass system in [Hz]
+
+\begin{equation}
+2 \pi f\_0 = \sqrt{\frac{k}{m}}
+\end{equation}
+
+\begin{equation}
+D\_g = \frac{m g}{k}
+\end{equation}
+
+\begin{equation}
+D\_f = \frac{F\_\max}{k}
+\end{equation}
+
+
+### Determine the required voice coil force as a function of the payload's resonance {#determine-the-required-voice-coil-force-as-a-function-of-the-payload-s-resonance}
+
+Let's fix `m` (payload mass) and `Df` (wanted motion induced by the voice coil).
+Then, let's vary `f0` and compute the corresponding `Dg`, `Fmax` and `k`.
+
+```matlab
+%% Fixed Parameters
+g = 9.8; % [m/s^2]
+m = 5; % [kg]
+Df = 5e-3; % [m]
+
+%% Suspension resonance is varied
+f0 = 0.1:0.1:20; % [Hz]
+```
+
+```matlab
+%% Other parameters are computed
+k = m * (2*pi*f0).^2; % [N/m]
+Dg = m * g ./ k; % [m]
+Fmax = k * Df; % [N]
+```
+
+
+
+{{< figure src="/ox-hugo/voice_coil_force_fct_f0.png" caption="Figure 2: Required Voice Coil Force as a function of the paylaod resonance and corresponding deflection due to gravity (mass is 5kg, stroke is 5mm)" >}}
+
+
+### Determine the payload resonance as a function of the wanted stroke {#determine-the-payload-resonance-as-a-function-of-the-wanted-stroke}
+
+Let's fix `m` (payload mass) and `Fmax` (maximum force applied by the Voice coil).
+Then, let's vary `Df` and compute the corresponding `Dg`, `f0` and `k`.
+
+```matlab
+%% Fixed Parameters
+g = 9.8; % [m/s^2]
+m = 5; % [kg]
+Fmax = 50; % [N]
+
+%% Wanted stroke is varied
+Df = 1e-3:1e-4:10e-3; % [m]
+```
+
+```matlab
+%% Other parameters are computed
+k = Fmax./Df; % [N/m]
+f0 = sqrt(k/m)/2/pi; % [Hz]
+Dg = m * g ./ k; % [m]
+```
+
+
+
+{{< figure src="/ox-hugo/voice_coil_resonance_fct_stroke.png" caption="Figure 3: Resonance frequency and deflection due to gravity as a function of the wanted stroke (Max voice coil force is 50N and payload mass is 5kg)" >}}
+
+
+
+{{< figure src="/ox-hugo/voice_coil_stiffness_fct_stroke.png" caption="Figure 4: Resonance frequency and deflection due to gravity as a function of the wanted stroke (Max voice coil force is 50N and payload mass is 5kg)" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2014. The Design of High Performance Mechatronics - 2nd Revised Edition. Ios Press.
+
diff --git a/content/zettels/voltage_amplifier.md b/content/zettels/voltage_amplifier.md
new file mode 100644
index 0000000..82cb2df
--- /dev/null
+++ b/content/zettels/voltage_amplifier.md
@@ -0,0 +1,151 @@
++++
+title = "Voltage Amplifier"
+author = ["Dehaeze Thomas"]
+draft = false
+category = "equipment"
++++
+
+Tags
+: [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}}), [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}), [Electronics]({{< relref "electronics.md" >}})
+
+
+## Voltage Amplifiers to drive Capacitive Loads {#voltage-amplifiers-to-drive-capacitive-loads}
+
+
+### Manufacturers {#manufacturers}
+
+| Manufacturers | Country |
+|-------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|
+| [Piezo Drive](https://www.piezodrive.com/drivers/) | Australia |
+| [Falco System](https://www.falco-systems.com/products.html) | Netherlands |
+| [PI](https://www.pi-usa.us/en/products/controllers-drivers-motion-control-software/piezo-drivers-controllers-power-supplies-high-voltage-amplifiers/) | USA |
+| [Thorlabs](https://www.thorlabs.com/navigation.cfm?guide_ID=2085) | USA |
+| [Lab Systems](https://www.lab-systems.com/products/amplifier/amplifier.html) | Isreal |
+| [Piezomechanics](https://www.piezomechanik.com/products/) | Germany |
+| [Cedrat Technologies](https://www.cedrat-technologies.com/en/products/piezo-controllers/electronic-amplifier-boards.html) | France |
+| [Trek](https://www.trekinc.com/products/HV_Amp.asp) | USA |
+| [Madcitylabs](http://www.madcitylabs.com/piezoactuators.html) | USA |
+| [Piezosystem](https://www.piezosystem.com/products/controller/) | Germany |
+| [Matsusada Precision](https://www.matsusada.com/product/pz/) | Japan |
+| [Mechano Transformer](http://www.mechano-transformer.com/en/products/08.html) | Japan |
+
+
+### Limitation in Current {#limitation-in-current}
+
+The piezoelectric stack can be represented as a capacitance.
+
+Let's take a capacitance driven by a voltage amplifier ([Figure 1](#figure--fig:voltage-amplifier-capacitance)).
+
+
+
+{{< figure src="/ox-hugo/voltage_amplifier_capacitance.png" caption="Figure 1: Piezoelectric actuator model with a voltage source" >}}
+
+The equation linking the voltage to the current is:
+\\[ I = C \frac{dU}{dt} \\]
+
+Suppose we want to drive the piezo with a voltage:
+\\[ U(t) = U\_0 \sin(\omega\_0 t) \\]
+
+The required current is:
+\\[ I = C U\_0 \omega\_0 \cos(\omega\_0 t) \\]
+
+Thus, for a specified maximum current \\(I\_\text{max}\\), the "power bandwidth" will be:
+\\[ \omega\_{0, \text{max}} = \frac{I\_\text{max}}{C U\_0}, \quad f\_{0, \text{max}} = \frac{I\_\text{max}}{C U\_0} \frac{1}{2 \pi} \\]
+
+- Below \\(\omega\_{0, \text{max}}\\), a voltage amplitude \\(U\_0\\) can be applied to the piezoelectric load without reaching the maximum current \\(I\_\text{max}\\).
+- Above \\(\omega\_{0, \text{max}}\\), the maximum current \\(I\_\text{max}\\) is reached and the maximum voltage that can be applied decreases with frequency:
+ \\[ U\_\text{max} = \frac{I\_\text{max}}{\omega C} \\]
+
+The maximum voltage as a function of frequency is shown in [Figure 2](#figure--fig:voltage-amplifier-max-V-piezo).
+
+```matlab
+ Vpkp = 170; % [V]
+ Imax = 30e-3; % [A]
+ C = 1e-6; % [F]
+
+ (1/(2*pi))*Imax/(C * Vpkp/2) % Fmax [Hz]
+```
+
+```text
+56.172
+```
+
+
+
+{{< figure src="/ox-hugo/voltage_amplifier_max_V_piezo.png" caption="Figure 2: Maximum voltage as a function of the frequency for \\(C = 1 \mu F\\), \\(I\_\text{max} = 30mA\\) and \\(V\_{pkp} = 170 V\\)" >}}
+
+Similarly, the voltage rise time is determined by the Capacitance of the piezoelectric stack and by the maximum current that the amplifier can deliver:
+\\[ t\_c = \frac{\Delta U C}{I\_\text{max}} \\]
+with \\(t\_c\\) in seconds, \\(\Delta U\\) in volts, \\(C\\) in Farads and \\(I\_\text{max}\\) in Amperes.
+
+If driven at \\(\Delta U = 100V\\), \\(C = 1 \mu F\\) and \\(I\_\text{max} = 1 A\\), then:
+\\[ t\_c = \frac{100 \cdot 10^{-6}}{1} = 0.1 ms \\]
+
+
+### Amplifiers for Low Voltage PZT {#amplifiers-for-low-voltage-pzt}
+
+Piezoelectric Stack Actuators are behaving like capacitor for the Amplifiers.
+
+Specifications are usually:
+
+- Maximum Current
+- DC Gain (usually around 10)
+- Output Noise or [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
+
+The bandwidth can be estimated from the Maximum Current and the Capacitance of the Piezoelectric Actuator.
+
+
+### Problem to drive highly capacitive loads {#problem-to-drive-highly-capacitive-loads}
+
+At high frequency, the impedance of the capacitive load is very small.
+This can pose several problems:
+
+- the current to be supplied by the amplifier to have some voltage becomes very large
+- the internal impedance of the amplifier may be large compared to the load impedance, and thus large voltage drop will occur
+
+
+### Noise {#noise}
+
+Sources of noise in a system comprising a voltage amplifier and a capactive load are discussed in (Van Spengen 2020).
+
+Proper enclosures and cabling are necessary to protect the system from capacitive and inductive interferance.
+
+
+### Impedance of Voltage Amplifiers {#impedance-of-voltage-amplifiers}
+
+The **input** impedance of voltage amplifiers are generally set to \\(50 \Omega\\) to avoid any reflections of the signal.
+
+The **output** (or internal) impedance of voltage amplifier is generally wanted small in order to have a small voltage drop when large current are drawn.
+However, for stability reasons and to avoid overshoot (due to the internal negative feedback loop), this impedance can be chosen quite large.
+
+This is discussed in (Van Spengen 2017).
+
+
+## Small Signal Voltage Amplifier {#small-signal-voltage-amplifier}
+
+Input is usually BNC.
+Output voltage is to up +/-10V.
+It has high input impedance.
+
+| Model | Channel | LPF | HPF | Gains | Shape | Noise | Price |
+|------------------------------------------------------------------------------------------------|---------|----------------|----------------|------------|-----------|-------|-------|
+| [7008](https://www.krohn-hite.com/html/preamps.html) | 8 | 100kHz | AC or DC | 1 to 1k | 19" Rack | 7nV | |
+| [MCVA5](https://www.specs-group.com/nc/nanonis/products/detail/mcva5-preamplifier/) | 4 | | AC or DC | 1 to 1k | Large | 4nV | |
+| [DP-314](https://www.warneronline.com/4-channel-differential-amplifier-with-active-headstages) | 4 | 100Hz to 50kHz | 0.1Hz to 300Hz | 10 to 10k | 19" Rack | | |
+| [ee701](https://www.ee-quipment.com/products/differential-preamplifier?variant=35410631368) | 1 | 10Hz to 1MHz | x | 1 to 1k | Small | | 400 |
+| [LNA 10](https://www.priggen.com/LNA-10-Low-Noise-Differential-Preamplifier-for-Oscilloscopes) | 1 | 1Hz to 1MHz | x | 10 to 1k | Small | | 700 |
+| [Koheron](https://www.koheron.com/photonics/amp200-amplifier) | 1 | | AC or DC | 5 to 500 | Small PCB | 2.4nV | 225 |
+| [5307](https://www.nfcorp.co.jp/english/pro/mi/loc/pre/5307/index.html) | 1 | | AC or DC | 10 to 1k | Large | 4nV | |
+| [DLPVA](https://www.femto.de/en/products/voltage-amplifiers/variable-gain-100-khz-dlpva.html) | 1 | 1kHz, 100kHz | AC or DC | 10 to 10k | Small | 2nV | |
+| [AMP200](https://www.thorlabs.com/thorproduct.cfm?partnumber=AMP200) | 1 | | | 10 to 1k | Small | 5nV | 470 |
+| [SRS](https://www.thinksrs.com/products/preamp.html) | | | | | | | |
+| [Basel](https://www.baspi.ch/low-noise-low-drift-differential-am) | 1 | | DC or 0.03Hz | 100 to 10k | Small | 2nV | |
+
+
+## Bibliography {#bibliography}
+
+
+
Fleming, A. J., and K. K. Leang. 2014. Design, Modeling and Control of Nanopositioning Systems. Advances in Industrial Control. Springer International Publishing. doi:10.1007/978-3-319-06617-2.
+
Spengen, W. Merlijn van. 2017. “High Voltage Amplifiers and the Ubiquitous 50 Ohms: Caveats and Benefits.” Falco Systems.
+
Spengen, W. M. van. 2020. “High Voltage Amplifiers: So You Think You Have Noise!” Falco Systems.
diff --git a/content/zettels/wheatstone_bridge.md b/content/zettels/wheatstone_bridge.md
new file mode 100644
index 0000000..f422e77
--- /dev/null
+++ b/content/zettels/wheatstone_bridge.md
@@ -0,0 +1,25 @@
++++
+title = "Wheatstone Bridge"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+:
+
+Wheatstone Bridge are used to measure an electrical resistance.
+
+They are used to read various sensors:
+
+- [Strain Sensors]({{< relref "strain_sensors.md" >}})
+- [Temperature Sensors]({{< relref "temperature_sensors.md" >}})
+
+
+
+{{< figure src="/ox-hugo/wheatstone_bridge.jpg" caption="Figure 1: Electrical schematic of a Wheatstone bridge" >}}
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/content/zettels/z_transform.md b/content/zettels/z_transform.md
new file mode 100644
index 0000000..f86a595
--- /dev/null
+++ b/content/zettels/z_transform.md
@@ -0,0 +1,21 @@
++++
+title = "Z-Transform"
+author = ["Dehaeze Thomas"]
+draft = false
++++
+
+Tags
+: [Discrete Transfer Functions]({{< relref "discrete_transfer_functions.md" >}})
+
+
+## From Continuous to Discrete transfer function {#from-continuous-to-discrete-transfer-function}
+
+A continuous transfer function (i.e. in the Laplace domain) can easily be converted to the discrete time domain (i.e. in the z-domain) using the `c2d` Matlab command ([doc](https://fr.mathworks.com/help/control/ref/lti.c2d.html;jsessionid=206bd0fc8950c5f8cb6b568d7393#mw_53fc4689-2099-41d0-93b3-de1e51a174c1)).
+
+Several methods can be used, each with some advantages and drawbacks, see [this document](https://fr.mathworks.com/help/control/ug/continuous-discrete-conversion-methods.html).
+
+
+## Bibliography {#bibliography}
+
+
+
diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png
new file mode 100644
index 0000000..cb1ca53
Binary files /dev/null and b/static/android-chrome-192x192.png differ
diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png
new file mode 100644
index 0000000..8f66b2a
Binary files /dev/null and b/static/android-chrome-512x512.png differ
diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png
new file mode 100644
index 0000000..8f66b2a
Binary files /dev/null and b/static/apple-touch-icon.png differ
diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png
new file mode 100644
index 0000000..6113ea6
Binary files /dev/null and b/static/favicon-16x16.png differ
diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png
new file mode 100644
index 0000000..6113ea6
Binary files /dev/null and b/static/favicon-32x32.png differ
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644
index 0000000..cffc8fb
Binary files /dev/null and b/static/favicon.ico differ
diff --git a/static/mstile-150x150.png b/static/mstile-150x150.png
new file mode 100644
index 0000000..8f66b2a
Binary files /dev/null and b/static/mstile-150x150.png differ
diff --git a/static/ox-hugo/afzali-far16_isotropic_hexapod_example.png b/static/ox-hugo/afzali-far16_isotropic_hexapod_example.png
new file mode 100644
index 0000000..80f2aa7
Binary files /dev/null and b/static/ox-hugo/afzali-far16_isotropic_hexapod_example.png differ
diff --git a/static/ox-hugo/afzali-far16_proposed_generalized_hexapod.png b/static/ox-hugo/afzali-far16_proposed_generalized_hexapod.png
new file mode 100644
index 0000000..79f2740
Binary files /dev/null and b/static/ox-hugo/afzali-far16_proposed_generalized_hexapod.png differ
diff --git a/static/ox-hugo/air_bearing_stiffness_gap.png b/static/ox-hugo/air_bearing_stiffness_gap.png
new file mode 100644
index 0000000..de360f4
Binary files /dev/null and b/static/ox-hugo/air_bearing_stiffness_gap.png differ
diff --git a/static/ox-hugo/albertos04_pre_compensator_decoupling.png b/static/ox-hugo/albertos04_pre_compensator_decoupling.png
new file mode 100644
index 0000000..b4b54b9
Binary files /dev/null and b/static/ox-hugo/albertos04_pre_compensator_decoupling.png differ
diff --git a/static/ox-hugo/albertos04_svd_decoupling.png b/static/ox-hugo/albertos04_svd_decoupling.png
new file mode 100644
index 0000000..e64c807
Binary files /dev/null and b/static/ox-hugo/albertos04_svd_decoupling.png differ
diff --git a/static/ox-hugo/alkhatib03_1dof_control.png b/static/ox-hugo/alkhatib03_1dof_control.png
new file mode 100644
index 0000000..6fccc13
Binary files /dev/null and b/static/ox-hugo/alkhatib03_1dof_control.png differ
diff --git a/static/ox-hugo/alkhatib03_hinf_control.png b/static/ox-hugo/alkhatib03_hinf_control.png
new file mode 100644
index 0000000..75d7bae
Binary files /dev/null and b/static/ox-hugo/alkhatib03_hinf_control.png differ
diff --git a/static/ox-hugo/analog_act_filt_second_order_lpf.png b/static/ox-hugo/analog_act_filt_second_order_lpf.png
new file mode 100644
index 0000000..8ed6d11
Binary files /dev/null and b/static/ox-hugo/analog_act_filt_second_order_lpf.png differ
diff --git a/static/ox-hugo/analog_filt_first_order_hpf.png b/static/ox-hugo/analog_filt_first_order_hpf.png
new file mode 100644
index 0000000..2441b27
Binary files /dev/null and b/static/ox-hugo/analog_filt_first_order_hpf.png differ
diff --git a/static/ox-hugo/analog_filt_first_order_hpf_characteristics.png b/static/ox-hugo/analog_filt_first_order_hpf_characteristics.png
new file mode 100644
index 0000000..9fb42cd
Binary files /dev/null and b/static/ox-hugo/analog_filt_first_order_hpf_characteristics.png differ
diff --git a/static/ox-hugo/analog_filt_first_order_lpf.png b/static/ox-hugo/analog_filt_first_order_lpf.png
new file mode 100644
index 0000000..6b3820b
Binary files /dev/null and b/static/ox-hugo/analog_filt_first_order_lpf.png differ
diff --git a/static/ox-hugo/analog_filt_first_order_lpf_characteristics.png b/static/ox-hugo/analog_filt_first_order_lpf_characteristics.png
new file mode 100644
index 0000000..022cf33
Binary files /dev/null and b/static/ox-hugo/analog_filt_first_order_lpf_characteristics.png differ
diff --git a/static/ox-hugo/analog_filt_second_order_hpf.png b/static/ox-hugo/analog_filt_second_order_hpf.png
new file mode 100644
index 0000000..7ccf020
Binary files /dev/null and b/static/ox-hugo/analog_filt_second_order_hpf.png differ
diff --git a/static/ox-hugo/analog_filt_second_order_lpf.png b/static/ox-hugo/analog_filt_second_order_lpf.png
new file mode 100644
index 0000000..0837cda
Binary files /dev/null and b/static/ox-hugo/analog_filt_second_order_lpf.png differ
diff --git a/static/ox-hugo/analog_filt_second_order_lpf_characteristics.png b/static/ox-hugo/analog_filt_second_order_lpf_characteristics.png
new file mode 100644
index 0000000..fbddcc0
Binary files /dev/null and b/static/ox-hugo/analog_filt_second_order_lpf_characteristics.png differ
diff --git a/static/ox-hugo/angular_nonintegrability.png b/static/ox-hugo/angular_nonintegrability.png
new file mode 100644
index 0000000..d0a2bcf
Binary files /dev/null and b/static/ox-hugo/angular_nonintegrability.png differ
diff --git a/static/ox-hugo/approximate_deriv_int.png b/static/ox-hugo/approximate_deriv_int.png
new file mode 100644
index 0000000..94db618
Binary files /dev/null and b/static/ox-hugo/approximate_deriv_int.png differ
diff --git a/static/ox-hugo/art_electronics_current_source.png b/static/ox-hugo/art_electronics_current_source.png
new file mode 100644
index 0000000..4bcdf45
Binary files /dev/null and b/static/ox-hugo/art_electronics_current_source.png differ
diff --git a/static/ox-hugo/bibel92_control_diag.png b/static/ox-hugo/bibel92_control_diag.png
new file mode 100644
index 0000000..ea6d2fc
Binary files /dev/null and b/static/ox-hugo/bibel92_control_diag.png differ
diff --git a/static/ox-hugo/bibel92_general_plant.png b/static/ox-hugo/bibel92_general_plant.png
new file mode 100644
index 0000000..848f3ff
Binary files /dev/null and b/static/ox-hugo/bibel92_general_plant.png differ
diff --git a/static/ox-hugo/bibel92_hinf_weights.png b/static/ox-hugo/bibel92_hinf_weights.png
new file mode 100644
index 0000000..ae2d88c
Binary files /dev/null and b/static/ox-hugo/bibel92_hinf_weights.png differ
diff --git a/static/ox-hugo/bibel92_unmodeled_dynamics.png b/static/ox-hugo/bibel92_unmodeled_dynamics.png
new file mode 100644
index 0000000..413b530
Binary files /dev/null and b/static/ox-hugo/bibel92_unmodeled_dynamics.png differ
diff --git a/static/ox-hugo/bibel92_weight_dynamics.png b/static/ox-hugo/bibel92_weight_dynamics.png
new file mode 100644
index 0000000..5c3e6bf
Binary files /dev/null and b/static/ox-hugo/bibel92_weight_dynamics.png differ
diff --git a/static/ox-hugo/bipolar_transistor_basic_circuits.svg b/static/ox-hugo/bipolar_transistor_basic_circuits.svg
new file mode 100644
index 0000000..0147169
--- /dev/null
+++ b/static/ox-hugo/bipolar_transistor_basic_circuits.svg
@@ -0,0 +1,4532 @@
+
+
diff --git a/static/ox-hugo/bnc_50_75_ohms.jpg b/static/ox-hugo/bnc_50_75_ohms.jpg
new file mode 100644
index 0000000..79ab014
Binary files /dev/null and b/static/ox-hugo/bnc_50_75_ohms.jpg differ
diff --git a/static/ox-hugo/bryson93_hac_lac.png b/static/ox-hugo/bryson93_hac_lac.png
new file mode 100644
index 0000000..0fc02de
Binary files /dev/null and b/static/ox-hugo/bryson93_hac_lac.png differ
diff --git a/static/ox-hugo/charge_amplifier_circuit.png b/static/ox-hugo/charge_amplifier_circuit.png
new file mode 100644
index 0000000..8a414f7
Binary files /dev/null and b/static/ox-hugo/charge_amplifier_circuit.png differ
diff --git a/static/ox-hugo/charge_amplifier_circuit_bis.png b/static/ox-hugo/charge_amplifier_circuit_bis.png
new file mode 100644
index 0000000..96fdd19
Binary files /dev/null and b/static/ox-hugo/charge_amplifier_circuit_bis.png differ
diff --git a/static/ox-hugo/chen00_flexure_hexapod.png b/static/ox-hugo/chen00_flexure_hexapod.png
new file mode 100644
index 0000000..a54295f
Binary files /dev/null and b/static/ox-hugo/chen00_flexure_hexapod.png differ
diff --git a/static/ox-hugo/chesne16_2dof_system.png b/static/ox-hugo/chesne16_2dof_system.png
new file mode 100644
index 0000000..aa7de60
Binary files /dev/null and b/static/ox-hugo/chesne16_2dof_system.png differ
diff --git a/static/ox-hugo/chesne16_root_locus_alpha.png b/static/ox-hugo/chesne16_root_locus_alpha.png
new file mode 100644
index 0000000..1f3233e
Binary files /dev/null and b/static/ox-hugo/chesne16_root_locus_alpha.png differ
diff --git a/static/ox-hugo/chesne16_transmissibility.png b/static/ox-hugo/chesne16_transmissibility.png
new file mode 100644
index 0000000..d35d60e
Binary files /dev/null and b/static/ox-hugo/chesne16_transmissibility.png differ
diff --git a/static/ox-hugo/collette11_comp_isolation_strategies.png b/static/ox-hugo/collette11_comp_isolation_strategies.png
new file mode 100644
index 0000000..b186921
Binary files /dev/null and b/static/ox-hugo/collette11_comp_isolation_strategies.png differ
diff --git a/static/ox-hugo/collette12_absolute_disp_sensors.png b/static/ox-hugo/collette12_absolute_disp_sensors.png
new file mode 100644
index 0000000..8927467
Binary files /dev/null and b/static/ox-hugo/collette12_absolute_disp_sensors.png differ
diff --git a/static/ox-hugo/csencsics20_fsm_schematic.png b/static/ox-hugo/csencsics20_fsm_schematic.png
new file mode 100644
index 0000000..e4965b3
Binary files /dev/null and b/static/ox-hugo/csencsics20_fsm_schematic.png differ
diff --git a/static/ox-hugo/csencsics20_pareto_estimate.png b/static/ox-hugo/csencsics20_pareto_estimate.png
new file mode 100644
index 0000000..b81c510
Binary files /dev/null and b/static/ox-hugo/csencsics20_pareto_estimate.png differ
diff --git a/static/ox-hugo/csencsics20_soa.png b/static/ox-hugo/csencsics20_soa.png
new file mode 100644
index 0000000..28adcb6
Binary files /dev/null and b/static/ox-hugo/csencsics20_soa.png differ
diff --git a/static/ox-hugo/csencsics20_typical_hybrid_reluctance_fsm.png b/static/ox-hugo/csencsics20_typical_hybrid_reluctance_fsm.png
new file mode 100644
index 0000000..f926210
Binary files /dev/null and b/static/ox-hugo/csencsics20_typical_hybrid_reluctance_fsm.png differ
diff --git a/static/ox-hugo/csencsics20_typical_lorentz_fsm.png b/static/ox-hugo/csencsics20_typical_lorentz_fsm.png
new file mode 100644
index 0000000..63b6278
Binary files /dev/null and b/static/ox-hugo/csencsics20_typical_lorentz_fsm.png differ
diff --git a/static/ox-hugo/csencsics20_typical_piezo_fsm.png b/static/ox-hugo/csencsics20_typical_piezo_fsm.png
new file mode 100644
index 0000000..1e5127f
Binary files /dev/null and b/static/ox-hugo/csencsics20_typical_piezo_fsm.png differ
diff --git a/static/ox-hugo/decimation_example.png b/static/ox-hugo/decimation_example.png
new file mode 100644
index 0000000..f97520e
Binary files /dev/null and b/static/ox-hugo/decimation_example.png differ
diff --git a/static/ox-hugo/decimation_spectral_aliasing.png b/static/ox-hugo/decimation_spectral_aliasing.png
new file mode 100644
index 0000000..d19c53f
Binary files /dev/null and b/static/ox-hugo/decimation_spectral_aliasing.png differ
diff --git a/static/ox-hugo/decimation_two_stage_example.png b/static/ox-hugo/decimation_two_stage_example.png
new file mode 100644
index 0000000..e270c8d
Binary files /dev/null and b/static/ox-hugo/decimation_two_stage_example.png differ
diff --git a/static/ox-hugo/decimation_two_stages.png b/static/ox-hugo/decimation_two_stages.png
new file mode 100644
index 0000000..0abe3a7
Binary files /dev/null and b/static/ox-hugo/decimation_two_stages.png differ
diff --git a/static/ox-hugo/devasia07_piezoelectric_tradeoff.png b/static/ox-hugo/devasia07_piezoelectric_tradeoff.png
new file mode 100644
index 0000000..de5eeb0
Binary files /dev/null and b/static/ox-hugo/devasia07_piezoelectric_tradeoff.png differ
diff --git a/static/ox-hugo/du19_decoupled_control.png b/static/ox-hugo/du19_decoupled_control.png
new file mode 100644
index 0000000..9229aaa
Binary files /dev/null and b/static/ox-hugo/du19_decoupled_control.png differ
diff --git a/static/ox-hugo/du19_dual_stage_control.png b/static/ox-hugo/du19_dual_stage_control.png
new file mode 100644
index 0000000..3d47f64
Binary files /dev/null and b/static/ox-hugo/du19_dual_stage_control.png differ
diff --git a/static/ox-hugo/du19_dual_stage_loop_gain.png b/static/ox-hugo/du19_dual_stage_loop_gain.png
new file mode 100644
index 0000000..77cfc49
Binary files /dev/null and b/static/ox-hugo/du19_dual_stage_loop_gain.png differ
diff --git a/static/ox-hugo/du19_dual_stage_sensitivity.png b/static/ox-hugo/du19_dual_stage_sensitivity.png
new file mode 100644
index 0000000..9be9166
Binary files /dev/null and b/static/ox-hugo/du19_dual_stage_sensitivity.png differ
diff --git a/static/ox-hugo/du19_h_inf_diagram.png b/static/ox-hugo/du19_h_inf_diagram.png
new file mode 100644
index 0000000..64dd62f
Binary files /dev/null and b/static/ox-hugo/du19_h_inf_diagram.png differ
diff --git a/static/ox-hugo/du19_open_loop_three_stage.png b/static/ox-hugo/du19_open_loop_three_stage.png
new file mode 100644
index 0000000..5ef9c04
Binary files /dev/null and b/static/ox-hugo/du19_open_loop_three_stage.png differ
diff --git a/static/ox-hugo/du19_parallel_control_structure.png b/static/ox-hugo/du19_parallel_control_structure.png
new file mode 100644
index 0000000..2bae9ad
Binary files /dev/null and b/static/ox-hugo/du19_parallel_control_structure.png differ
diff --git a/static/ox-hugo/du19_pzt_actuator.png b/static/ox-hugo/du19_pzt_actuator.png
new file mode 100644
index 0000000..4346559
Binary files /dev/null and b/static/ox-hugo/du19_pzt_actuator.png differ
diff --git a/static/ox-hugo/du19_sensitivity_three_stage.png b/static/ox-hugo/du19_sensitivity_three_stage.png
new file mode 100644
index 0000000..3478fa1
Binary files /dev/null and b/static/ox-hugo/du19_sensitivity_three_stage.png differ
diff --git a/static/ox-hugo/du19_single_stage_control.png b/static/ox-hugo/du19_single_stage_control.png
new file mode 100644
index 0000000..3c7c808
Binary files /dev/null and b/static/ox-hugo/du19_single_stage_control.png differ
diff --git a/static/ox-hugo/du19_three_stage_control.png b/static/ox-hugo/du19_three_stage_control.png
new file mode 100644
index 0000000..d9d616c
Binary files /dev/null and b/static/ox-hugo/du19_three_stage_control.png differ
diff --git a/static/ox-hugo/du19_three_stage_decoupled.png b/static/ox-hugo/du19_three_stage_decoupled.png
new file mode 100644
index 0000000..75f4ce6
Binary files /dev/null and b/static/ox-hugo/du19_three_stage_decoupled.png differ
diff --git a/static/ox-hugo/du19_three_stage_decoupled_loop_gain.png b/static/ox-hugo/du19_three_stage_decoupled_loop_gain.png
new file mode 100644
index 0000000..dd68388
Binary files /dev/null and b/static/ox-hugo/du19_three_stage_decoupled_loop_gain.png differ
diff --git a/static/ox-hugo/dynamic_range_enob.png b/static/ox-hugo/dynamic_range_enob.png
new file mode 100644
index 0000000..b3838ab
Binary files /dev/null and b/static/ox-hugo/dynamic_range_enob.png differ
diff --git a/static/ox-hugo/electronic_amplifier_noise.png b/static/ox-hugo/electronic_amplifier_noise.png
new file mode 100644
index 0000000..fd914b1
Binary files /dev/null and b/static/ox-hugo/electronic_amplifier_noise.png differ
diff --git a/static/ox-hugo/endstation_engblom.png b/static/ox-hugo/endstation_engblom.png
new file mode 100644
index 0000000..4a4c1fa
Binary files /dev/null and b/static/ox-hugo/endstation_engblom.png differ
diff --git a/static/ox-hugo/endstation_geraldes.png b/static/ox-hugo/endstation_geraldes.png
new file mode 100644
index 0000000..8991d0d
Binary files /dev/null and b/static/ox-hugo/endstation_geraldes.png differ
diff --git a/static/ox-hugo/endstation_holler.png b/static/ox-hugo/endstation_holler.png
new file mode 100644
index 0000000..8368c88
Binary files /dev/null and b/static/ox-hugo/endstation_holler.png differ
diff --git a/static/ox-hugo/endstation_id11.png b/static/ox-hugo/endstation_id11.png
new file mode 100644
index 0000000..042c66b
Binary files /dev/null and b/static/ox-hugo/endstation_id11.png differ
diff --git a/static/ox-hugo/endstation_kelly.png b/static/ox-hugo/endstation_kelly.png
new file mode 100644
index 0000000..60fe37d
Binary files /dev/null and b/static/ox-hugo/endstation_kelly.png differ
diff --git a/static/ox-hugo/endstation_nazaretski.png b/static/ox-hugo/endstation_nazaretski.png
new file mode 100644
index 0000000..bd20b86
Binary files /dev/null and b/static/ox-hugo/endstation_nazaretski.png differ
diff --git a/static/ox-hugo/endstation_schroer.png b/static/ox-hugo/endstation_schroer.png
new file mode 100644
index 0000000..6d5d751
Binary files /dev/null and b/static/ox-hugo/endstation_schroer.png differ
diff --git a/static/ox-hugo/endstation_villar.png b/static/ox-hugo/endstation_villar.png
new file mode 100644
index 0000000..37d932e
Binary files /dev/null and b/static/ox-hugo/endstation_villar.png differ
diff --git a/static/ox-hugo/endstation_wang.png b/static/ox-hugo/endstation_wang.png
new file mode 100644
index 0000000..1690039
Binary files /dev/null and b/static/ox-hugo/endstation_wang.png differ
diff --git a/static/ox-hugo/endstation_xu24.png b/static/ox-hugo/endstation_xu24.png
new file mode 100644
index 0000000..a2c8c60
Binary files /dev/null and b/static/ox-hugo/endstation_xu24.png differ
diff --git a/static/ox-hugo/ewins00_H22_with_residual.png b/static/ox-hugo/ewins00_H22_with_residual.png
new file mode 100644
index 0000000..a43d192
Binary files /dev/null and b/static/ox-hugo/ewins00_H22_with_residual.png differ
diff --git a/static/ox-hugo/ewins00_H22_without_residual.png b/static/ox-hugo/ewins00_H22_without_residual.png
new file mode 100644
index 0000000..92a9bbe
Binary files /dev/null and b/static/ox-hugo/ewins00_H22_without_residual.png differ
diff --git a/static/ox-hugo/ewins00_PRF_measured_FRF.png b/static/ox-hugo/ewins00_PRF_measured_FRF.png
new file mode 100644
index 0000000..18757e0
Binary files /dev/null and b/static/ox-hugo/ewins00_PRF_measured_FRF.png differ
diff --git a/static/ox-hugo/ewins00_PRF_measured_PRF.png b/static/ox-hugo/ewins00_PRF_measured_PRF.png
new file mode 100644
index 0000000..e5d8d73
Binary files /dev/null and b/static/ox-hugo/ewins00_PRF_measured_PRF.png differ
diff --git a/static/ox-hugo/ewins00_PRF_measured_svd.png b/static/ox-hugo/ewins00_PRF_measured_svd.png
new file mode 100644
index 0000000..da29312
Binary files /dev/null and b/static/ox-hugo/ewins00_PRF_measured_svd.png differ
diff --git a/static/ox-hugo/ewins00_PRF_numerical_FRF.png b/static/ox-hugo/ewins00_PRF_numerical_FRF.png
new file mode 100644
index 0000000..9b721da
Binary files /dev/null and b/static/ox-hugo/ewins00_PRF_numerical_FRF.png differ
diff --git a/static/ox-hugo/ewins00_PRF_numerical_PRF.png b/static/ox-hugo/ewins00_PRF_numerical_PRF.png
new file mode 100644
index 0000000..a3f072e
Binary files /dev/null and b/static/ox-hugo/ewins00_PRF_numerical_PRF.png differ
diff --git a/static/ox-hugo/ewins00_PRF_numerical_svd.png b/static/ox-hugo/ewins00_PRF_numerical_svd.png
new file mode 100644
index 0000000..cfd8379
Binary files /dev/null and b/static/ox-hugo/ewins00_PRF_numerical_svd.png differ
diff --git a/static/ox-hugo/ewins00_aliasing.png b/static/ox-hugo/ewins00_aliasing.png
new file mode 100644
index 0000000..80f5b64
Binary files /dev/null and b/static/ox-hugo/ewins00_aliasing.png differ
diff --git a/static/ox-hugo/ewins00_aliasing_distortion.png b/static/ox-hugo/ewins00_aliasing_distortion.png
new file mode 100644
index 0000000..9d5218b
Binary files /dev/null and b/static/ox-hugo/ewins00_aliasing_distortion.png differ
diff --git a/static/ox-hugo/ewins00_aliasing_no_distortion.png b/static/ox-hugo/ewins00_aliasing_no_distortion.png
new file mode 100644
index 0000000..88886ad
Binary files /dev/null and b/static/ox-hugo/ewins00_aliasing_no_distortion.png differ
diff --git a/static/ox-hugo/ewins00_argand_diagram_a.png b/static/ox-hugo/ewins00_argand_diagram_a.png
new file mode 100644
index 0000000..04c8a26
Binary files /dev/null and b/static/ox-hugo/ewins00_argand_diagram_a.png differ
diff --git a/static/ox-hugo/ewins00_argand_diagram_b.png b/static/ox-hugo/ewins00_argand_diagram_b.png
new file mode 100644
index 0000000..a157779
Binary files /dev/null and b/static/ox-hugo/ewins00_argand_diagram_b.png differ
diff --git a/static/ox-hugo/ewins00_argand_diagram_c.png b/static/ox-hugo/ewins00_argand_diagram_c.png
new file mode 100644
index 0000000..331d5c4
Binary files /dev/null and b/static/ox-hugo/ewins00_argand_diagram_c.png differ
diff --git a/static/ox-hugo/ewins00_base_excitation_modal_setup.png b/static/ox-hugo/ewins00_base_excitation_modal_setup.png
new file mode 100644
index 0000000..8b78789
Binary files /dev/null and b/static/ox-hugo/ewins00_base_excitation_modal_setup.png differ
diff --git a/static/ox-hugo/ewins00_beam_modes.png b/static/ox-hugo/ewins00_beam_modes.png
new file mode 100644
index 0000000..d396676
Binary files /dev/null and b/static/ox-hugo/ewins00_beam_modes.png differ
diff --git a/static/ox-hugo/ewins00_bode_accelerance.png b/static/ox-hugo/ewins00_bode_accelerance.png
new file mode 100644
index 0000000..049e2f5
Binary files /dev/null and b/static/ox-hugo/ewins00_bode_accelerance.png differ
diff --git a/static/ox-hugo/ewins00_bode_mobility.png b/static/ox-hugo/ewins00_bode_mobility.png
new file mode 100644
index 0000000..50dec5d
Binary files /dev/null and b/static/ox-hugo/ewins00_bode_mobility.png differ
diff --git a/static/ox-hugo/ewins00_bode_receptance.png b/static/ox-hugo/ewins00_bode_receptance.png
new file mode 100644
index 0000000..2a65371
Binary files /dev/null and b/static/ox-hugo/ewins00_bode_receptance.png differ
diff --git a/static/ox-hugo/ewins00_burst_excitation.png b/static/ox-hugo/ewins00_burst_excitation.png
new file mode 100644
index 0000000..c8ac0ac
Binary files /dev/null and b/static/ox-hugo/ewins00_burst_excitation.png differ
diff --git a/static/ox-hugo/ewins00_calibration_setup.png b/static/ox-hugo/ewins00_calibration_setup.png
new file mode 100644
index 0000000..e496020
Binary files /dev/null and b/static/ox-hugo/ewins00_calibration_setup.png differ
diff --git a/static/ox-hugo/ewins00_chirp_excitation.png b/static/ox-hugo/ewins00_chirp_excitation.png
new file mode 100644
index 0000000..9674989
Binary files /dev/null and b/static/ox-hugo/ewins00_chirp_excitation.png differ
diff --git a/static/ox-hugo/ewins00_circle_fit_natural_frequency.png b/static/ox-hugo/ewins00_circle_fit_natural_frequency.png
new file mode 100644
index 0000000..65ec251
Binary files /dev/null and b/static/ox-hugo/ewins00_circle_fit_natural_frequency.png differ
diff --git a/static/ox-hugo/ewins00_coherence_resonance.png b/static/ox-hugo/ewins00_coherence_resonance.png
new file mode 100644
index 0000000..9dcc484
Binary files /dev/null and b/static/ox-hugo/ewins00_coherence_resonance.png differ
diff --git a/static/ox-hugo/ewins00_composite_raw.png b/static/ox-hugo/ewins00_composite_raw.png
new file mode 100644
index 0000000..25de985
Binary files /dev/null and b/static/ox-hugo/ewins00_composite_raw.png differ
diff --git a/static/ox-hugo/ewins00_composite_sum.png b/static/ox-hugo/ewins00_composite_sum.png
new file mode 100644
index 0000000..5a94cd5
Binary files /dev/null and b/static/ox-hugo/ewins00_composite_sum.png differ
diff --git a/static/ox-hugo/ewins00_conventional_modal_test_setup.png b/static/ox-hugo/ewins00_conventional_modal_test_setup.png
new file mode 100644
index 0000000..a3a2c9a
Binary files /dev/null and b/static/ox-hugo/ewins00_conventional_modal_test_setup.png differ
diff --git a/static/ox-hugo/ewins00_double_hits.png b/static/ox-hugo/ewins00_double_hits.png
new file mode 100644
index 0000000..4c210db
Binary files /dev/null and b/static/ox-hugo/ewins00_double_hits.png differ
diff --git a/static/ox-hugo/ewins00_dry_friction.png b/static/ox-hugo/ewins00_dry_friction.png
new file mode 100644
index 0000000..0932620
Binary files /dev/null and b/static/ox-hugo/ewins00_dry_friction.png differ
diff --git a/static/ox-hugo/ewins00_frf_damped_system.png b/static/ox-hugo/ewins00_frf_damped_system.png
new file mode 100644
index 0000000..0552566
Binary files /dev/null and b/static/ox-hugo/ewins00_frf_damped_system.png differ
diff --git a/static/ox-hugo/ewins00_frf_feedback_model.png b/static/ox-hugo/ewins00_frf_feedback_model.png
new file mode 100644
index 0000000..631fa5d
Binary files /dev/null and b/static/ox-hugo/ewins00_frf_feedback_model.png differ
diff --git a/static/ox-hugo/ewins00_frf_mimo.png b/static/ox-hugo/ewins00_frf_mimo.png
new file mode 100644
index 0000000..651a478
Binary files /dev/null and b/static/ox-hugo/ewins00_frf_mimo.png differ
diff --git a/static/ox-hugo/ewins00_frf_siso_model.png b/static/ox-hugo/ewins00_frf_siso_model.png
new file mode 100644
index 0000000..e0214ee
Binary files /dev/null and b/static/ox-hugo/ewins00_frf_siso_model.png differ
diff --git a/static/ox-hugo/ewins00_general_frf_measurement_setup.png b/static/ox-hugo/ewins00_general_frf_measurement_setup.png
new file mode 100644
index 0000000..8e44a45
Binary files /dev/null and b/static/ox-hugo/ewins00_general_frf_measurement_setup.png differ
diff --git a/static/ox-hugo/ewins00_hammer_impulse.png b/static/ox-hugo/ewins00_hammer_impulse.png
new file mode 100644
index 0000000..19b61c7
Binary files /dev/null and b/static/ox-hugo/ewins00_hammer_impulse.png differ
diff --git a/static/ox-hugo/ewins00_impulsive_excitation.png b/static/ox-hugo/ewins00_impulsive_excitation.png
new file mode 100644
index 0000000..e917b5b
Binary files /dev/null and b/static/ox-hugo/ewins00_impulsive_excitation.png differ
diff --git a/static/ox-hugo/ewins00_inverse_frf_mixed.png b/static/ox-hugo/ewins00_inverse_frf_mixed.png
new file mode 100644
index 0000000..06f45d6
Binary files /dev/null and b/static/ox-hugo/ewins00_inverse_frf_mixed.png differ
diff --git a/static/ox-hugo/ewins00_inverse_frf_viscous.png b/static/ox-hugo/ewins00_inverse_frf_viscous.png
new file mode 100644
index 0000000..9400b97
Binary files /dev/null and b/static/ox-hugo/ewins00_inverse_frf_viscous.png differ
diff --git a/static/ox-hugo/ewins00_leakage_nok.png b/static/ox-hugo/ewins00_leakage_nok.png
new file mode 100644
index 0000000..ed0f658
Binary files /dev/null and b/static/ox-hugo/ewins00_leakage_nok.png differ
diff --git a/static/ox-hugo/ewins00_leakage_ok.png b/static/ox-hugo/ewins00_leakage_ok.png
new file mode 100644
index 0000000..0e1d32c
Binary files /dev/null and b/static/ox-hugo/ewins00_leakage_ok.png differ
diff --git a/static/ox-hugo/ewins00_low_medium_high_modes.png b/static/ox-hugo/ewins00_low_medium_high_modes.png
new file mode 100644
index 0000000..6b709f1
Binary files /dev/null and b/static/ox-hugo/ewins00_low_medium_high_modes.png differ
diff --git a/static/ox-hugo/ewins00_mass_cancellation.png b/static/ox-hugo/ewins00_mass_cancellation.png
new file mode 100644
index 0000000..e274732
Binary files /dev/null and b/static/ox-hugo/ewins00_mass_cancellation.png differ
diff --git a/static/ox-hugo/ewins00_material_histeresis.png b/static/ox-hugo/ewins00_material_histeresis.png
new file mode 100644
index 0000000..f38b46b
Binary files /dev/null and b/static/ox-hugo/ewins00_material_histeresis.png differ
diff --git a/static/ox-hugo/ewins00_mifs.png b/static/ox-hugo/ewins00_mifs.png
new file mode 100644
index 0000000..08859ef
Binary files /dev/null and b/static/ox-hugo/ewins00_mifs.png differ
diff --git a/static/ox-hugo/ewins00_mobility_frf_mdof_point.png b/static/ox-hugo/ewins00_mobility_frf_mdof_point.png
new file mode 100644
index 0000000..b17154f
Binary files /dev/null and b/static/ox-hugo/ewins00_mobility_frf_mdof_point.png differ
diff --git a/static/ox-hugo/ewins00_mobility_frf_mdof_transfer.png b/static/ox-hugo/ewins00_mobility_frf_mdof_transfer.png
new file mode 100644
index 0000000..1e7be63
Binary files /dev/null and b/static/ox-hugo/ewins00_mobility_frf_mdof_transfer.png differ
diff --git a/static/ox-hugo/ewins00_modal.pdf b/static/ox-hugo/ewins00_modal.pdf
new file mode 100644
index 0000000..060bec4
Binary files /dev/null and b/static/ox-hugo/ewins00_modal.pdf differ
diff --git a/static/ox-hugo/ewins00_modal_analysis_schematic.png b/static/ox-hugo/ewins00_modal_analysis_schematic.png
new file mode 100644
index 0000000..9a20596
Binary files /dev/null and b/static/ox-hugo/ewins00_modal_analysis_schematic.png differ
diff --git a/static/ox-hugo/ewins00_modal_circle.png b/static/ox-hugo/ewins00_modal_circle.png
new file mode 100644
index 0000000..1d7c129
Binary files /dev/null and b/static/ox-hugo/ewins00_modal_circle.png differ
diff --git a/static/ox-hugo/ewins00_modal_circle_bis.png b/static/ox-hugo/ewins00_modal_circle_bis.png
new file mode 100644
index 0000000..0dfaaab
Binary files /dev/null and b/static/ox-hugo/ewins00_modal_circle_bis.png differ
diff --git a/static/ox-hugo/ewins00_nyquist_nonpropdamp_point.png b/static/ox-hugo/ewins00_nyquist_nonpropdamp_point.png
new file mode 100644
index 0000000..1159f16
Binary files /dev/null and b/static/ox-hugo/ewins00_nyquist_nonpropdamp_point.png differ
diff --git a/static/ox-hugo/ewins00_nyquist_nonpropdamp_transfer.png b/static/ox-hugo/ewins00_nyquist_nonpropdamp_transfer.png
new file mode 100644
index 0000000..ac1c2db
Binary files /dev/null and b/static/ox-hugo/ewins00_nyquist_nonpropdamp_transfer.png differ
diff --git a/static/ox-hugo/ewins00_nyquist_point.png b/static/ox-hugo/ewins00_nyquist_point.png
new file mode 100644
index 0000000..72567d5
Binary files /dev/null and b/static/ox-hugo/ewins00_nyquist_point.png differ
diff --git a/static/ox-hugo/ewins00_nyquist_receptance_structural.png b/static/ox-hugo/ewins00_nyquist_receptance_structural.png
new file mode 100644
index 0000000..c657c36
Binary files /dev/null and b/static/ox-hugo/ewins00_nyquist_receptance_structural.png differ
diff --git a/static/ox-hugo/ewins00_nyquist_receptance_viscous.png b/static/ox-hugo/ewins00_nyquist_receptance_viscous.png
new file mode 100644
index 0000000..a68701f
Binary files /dev/null and b/static/ox-hugo/ewins00_nyquist_receptance_viscous.png differ
diff --git a/static/ox-hugo/ewins00_nyquist_transfer.png b/static/ox-hugo/ewins00_nyquist_transfer.png
new file mode 100644
index 0000000..06b5891
Binary files /dev/null and b/static/ox-hugo/ewins00_nyquist_transfer.png differ
diff --git a/static/ox-hugo/ewins00_peak_amplitude.png b/static/ox-hugo/ewins00_peak_amplitude.png
new file mode 100644
index 0000000..c79d22a
Binary files /dev/null and b/static/ox-hugo/ewins00_peak_amplitude.png differ
diff --git a/static/ox-hugo/ewins00_piezo_accelerometer.png b/static/ox-hugo/ewins00_piezo_accelerometer.png
new file mode 100644
index 0000000..30061eb
Binary files /dev/null and b/static/ox-hugo/ewins00_piezo_accelerometer.png differ
diff --git a/static/ox-hugo/ewins00_piezo_force_transducer.png b/static/ox-hugo/ewins00_piezo_force_transducer.png
new file mode 100644
index 0000000..0d34fb0
Binary files /dev/null and b/static/ox-hugo/ewins00_piezo_force_transducer.png differ
diff --git a/static/ox-hugo/ewins00_plot_receptance_imag.png b/static/ox-hugo/ewins00_plot_receptance_imag.png
new file mode 100644
index 0000000..3820548
Binary files /dev/null and b/static/ox-hugo/ewins00_plot_receptance_imag.png differ
diff --git a/static/ox-hugo/ewins00_plot_receptance_real.png b/static/ox-hugo/ewins00_plot_receptance_real.png
new file mode 100644
index 0000000..6937793
Binary files /dev/null and b/static/ox-hugo/ewins00_plot_receptance_real.png differ
diff --git a/static/ox-hugo/ewins00_random_autocorrelation.png b/static/ox-hugo/ewins00_random_autocorrelation.png
new file mode 100644
index 0000000..1447123
Binary files /dev/null and b/static/ox-hugo/ewins00_random_autocorrelation.png differ
diff --git a/static/ox-hugo/ewins00_random_psd.png b/static/ox-hugo/ewins00_random_psd.png
new file mode 100644
index 0000000..dd764e4
Binary files /dev/null and b/static/ox-hugo/ewins00_random_psd.png differ
diff --git a/static/ox-hugo/ewins00_random_time.png b/static/ox-hugo/ewins00_random_time.png
new file mode 100644
index 0000000..95faecf
Binary files /dev/null and b/static/ox-hugo/ewins00_random_time.png differ
diff --git a/static/ox-hugo/ewins00_real_complex_modes.png b/static/ox-hugo/ewins00_real_complex_modes.png
new file mode 100644
index 0000000..6109a81
Binary files /dev/null and b/static/ox-hugo/ewins00_real_complex_modes.png differ
diff --git a/static/ox-hugo/ewins00_residual_with.png b/static/ox-hugo/ewins00_residual_with.png
new file mode 100644
index 0000000..919c008
Binary files /dev/null and b/static/ox-hugo/ewins00_residual_with.png differ
diff --git a/static/ox-hugo/ewins00_residual_without.png b/static/ox-hugo/ewins00_residual_without.png
new file mode 100644
index 0000000..715493a
Binary files /dev/null and b/static/ox-hugo/ewins00_residual_without.png differ
diff --git a/static/ox-hugo/ewins00_rotational_excitation.png b/static/ox-hugo/ewins00_rotational_excitation.png
new file mode 100644
index 0000000..f15c7c5
Binary files /dev/null and b/static/ox-hugo/ewins00_rotational_excitation.png differ
diff --git a/static/ox-hugo/ewins00_rotational_measurement.png b/static/ox-hugo/ewins00_rotational_measurement.png
new file mode 100644
index 0000000..34c27b1
Binary files /dev/null and b/static/ox-hugo/ewins00_rotational_measurement.png differ
diff --git a/static/ox-hugo/ewins00_sdof_model.png b/static/ox-hugo/ewins00_sdof_model.png
new file mode 100644
index 0000000..50d227f
Binary files /dev/null and b/static/ox-hugo/ewins00_sdof_model.png differ
diff --git a/static/ox-hugo/ewins00_sdof_modulus_phase.png b/static/ox-hugo/ewins00_sdof_modulus_phase.png
new file mode 100644
index 0000000..7164233
Binary files /dev/null and b/static/ox-hugo/ewins00_sdof_modulus_phase.png differ
diff --git a/static/ox-hugo/ewins00_sdof_response.png b/static/ox-hugo/ewins00_sdof_response.png
new file mode 100644
index 0000000..6de7420
Binary files /dev/null and b/static/ox-hugo/ewins00_sdof_response.png differ
diff --git a/static/ox-hugo/ewins00_shaker_mount_1.png b/static/ox-hugo/ewins00_shaker_mount_1.png
new file mode 100644
index 0000000..8cd2417
Binary files /dev/null and b/static/ox-hugo/ewins00_shaker_mount_1.png differ
diff --git a/static/ox-hugo/ewins00_shaker_mount_2.png b/static/ox-hugo/ewins00_shaker_mount_2.png
new file mode 100644
index 0000000..fa0db3b
Binary files /dev/null and b/static/ox-hugo/ewins00_shaker_mount_2.png differ
diff --git a/static/ox-hugo/ewins00_shaker_mount_3.png b/static/ox-hugo/ewins00_shaker_mount_3.png
new file mode 100644
index 0000000..5d3fddb
Binary files /dev/null and b/static/ox-hugo/ewins00_shaker_mount_3.png differ
diff --git a/static/ox-hugo/ewins00_shaker_rod.png b/static/ox-hugo/ewins00_shaker_rod.png
new file mode 100644
index 0000000..dabb8af
Binary files /dev/null and b/static/ox-hugo/ewins00_shaker_rod.png differ
diff --git a/static/ox-hugo/ewins00_static_display.png b/static/ox-hugo/ewins00_static_display.png
new file mode 100644
index 0000000..f50e3d6
Binary files /dev/null and b/static/ox-hugo/ewins00_static_display.png differ
diff --git a/static/ox-hugo/ewins00_sweep_distortions.png b/static/ox-hugo/ewins00_sweep_distortions.png
new file mode 100644
index 0000000..11aa79f
Binary files /dev/null and b/static/ox-hugo/ewins00_sweep_distortions.png differ
diff --git a/static/ox-hugo/ewins00_transducer_mounting_response.png b/static/ox-hugo/ewins00_transducer_mounting_response.png
new file mode 100644
index 0000000..d02eede
Binary files /dev/null and b/static/ox-hugo/ewins00_transducer_mounting_response.png differ
diff --git a/static/ox-hugo/ewins00_transducer_mounting_types.png b/static/ox-hugo/ewins00_transducer_mounting_types.png
new file mode 100644
index 0000000..171c5dd
Binary files /dev/null and b/static/ox-hugo/ewins00_transducer_mounting_types.png differ
diff --git a/static/ox-hugo/ewins00_transmissibility_plots.png b/static/ox-hugo/ewins00_transmissibility_plots.png
new file mode 100644
index 0000000..46b4f82
Binary files /dev/null and b/static/ox-hugo/ewins00_transmissibility_plots.png differ
diff --git a/static/ox-hugo/ewins00_vibration_analysis_procedure.png b/static/ox-hugo/ewins00_vibration_analysis_procedure.png
new file mode 100644
index 0000000..4e9deae
Binary files /dev/null and b/static/ox-hugo/ewins00_vibration_analysis_procedure.png differ
diff --git a/static/ox-hugo/ewins00_viscous_damper.png b/static/ox-hugo/ewins00_viscous_damper.png
new file mode 100644
index 0000000..b3226b1
Binary files /dev/null and b/static/ox-hugo/ewins00_viscous_damper.png differ
diff --git a/static/ox-hugo/ewins00_windowing_examples.png b/static/ox-hugo/ewins00_windowing_examples.png
new file mode 100644
index 0000000..851a4e9
Binary files /dev/null and b/static/ox-hugo/ewins00_windowing_examples.png differ
diff --git a/static/ox-hugo/ewins00_zoom_bandpass.png b/static/ox-hugo/ewins00_zoom_bandpass.png
new file mode 100644
index 0000000..f39cd96
Binary files /dev/null and b/static/ox-hugo/ewins00_zoom_bandpass.png differ
diff --git a/static/ox-hugo/ewins00_zoom_range.png b/static/ox-hugo/ewins00_zoom_range.png
new file mode 100644
index 0000000..7b4a832
Binary files /dev/null and b/static/ox-hugo/ewins00_zoom_range.png differ
diff --git a/static/ox-hugo/ewins00_zoom_result.png b/static/ox-hugo/ewins00_zoom_result.png
new file mode 100644
index 0000000..07d3736
Binary files /dev/null and b/static/ox-hugo/ewins00_zoom_result.png differ
diff --git a/static/ox-hugo/extremum_seeking_control_architecture.png b/static/ox-hugo/extremum_seeking_control_architecture.png
new file mode 100644
index 0000000..3bfbfd6
Binary files /dev/null and b/static/ox-hugo/extremum_seeking_control_architecture.png differ
diff --git a/static/ox-hugo/extremum_seeking_control_minimum.png b/static/ox-hugo/extremum_seeking_control_minimum.png
new file mode 100644
index 0000000..a343e1c
Binary files /dev/null and b/static/ox-hugo/extremum_seeking_control_minimum.png differ
diff --git a/static/ox-hugo/extremum_seeking_control_non_minimum.png b/static/ox-hugo/extremum_seeking_control_non_minimum.png
new file mode 100644
index 0000000..5f58169
Binary files /dev/null and b/static/ox-hugo/extremum_seeking_control_non_minimum.png differ
diff --git a/static/ox-hugo/feedforward_2nd_order_fourier.png b/static/ox-hugo/feedforward_2nd_order_fourier.png
new file mode 100644
index 0000000..f81ca1d
Binary files /dev/null and b/static/ox-hugo/feedforward_2nd_order_fourier.png differ
diff --git a/static/ox-hugo/feedforward_4th_order.png b/static/ox-hugo/feedforward_4th_order.png
new file mode 100644
index 0000000..dc343d5
Binary files /dev/null and b/static/ox-hugo/feedforward_4th_order.png differ
diff --git a/static/ox-hugo/feedforward_compensated_system.png b/static/ox-hugo/feedforward_compensated_system.png
new file mode 100644
index 0000000..16836c9
Binary files /dev/null and b/static/ox-hugo/feedforward_compensated_system.png differ
diff --git a/static/ox-hugo/feedforward_double_mass_system.png b/static/ox-hugo/feedforward_double_mass_system.png
new file mode 100644
index 0000000..3c6213b
Binary files /dev/null and b/static/ox-hugo/feedforward_double_mass_system.png differ
diff --git a/static/ox-hugo/feedforward_fourth_order_feedforward_architecture.png b/static/ox-hugo/feedforward_fourth_order_feedforward_architecture.png
new file mode 100644
index 0000000..96cfb2d
Binary files /dev/null and b/static/ox-hugo/feedforward_fourth_order_feedforward_architecture.png differ
diff --git a/static/ox-hugo/feedforward_schematic.png b/static/ox-hugo/feedforward_schematic.png
new file mode 100644
index 0000000..b73dc1c
Binary files /dev/null and b/static/ox-hugo/feedforward_schematic.png differ
diff --git a/static/ox-hugo/feedforward_schematic_delay.png b/static/ox-hugo/feedforward_schematic_delay.png
new file mode 100644
index 0000000..90c4d09
Binary files /dev/null and b/static/ox-hugo/feedforward_schematic_delay.png differ
diff --git a/static/ox-hugo/feedforward_schematic_rigid_body.png b/static/ox-hugo/feedforward_schematic_rigid_body.png
new file mode 100644
index 0000000..5d662ba
Binary files /dev/null and b/static/ox-hugo/feedforward_schematic_rigid_body.png differ
diff --git a/static/ox-hugo/feedforward_schematic_snap.png b/static/ox-hugo/feedforward_schematic_snap.png
new file mode 100644
index 0000000..3b96f7e
Binary files /dev/null and b/static/ox-hugo/feedforward_schematic_snap.png differ
diff --git a/static/ox-hugo/feedforward_schematic_zoh_sampler.png b/static/ox-hugo/feedforward_schematic_zoh_sampler.png
new file mode 100644
index 0000000..2c014d0
Binary files /dev/null and b/static/ox-hugo/feedforward_schematic_zoh_sampler.png differ
diff --git a/static/ox-hugo/feedforward_second_order_plant.png b/static/ox-hugo/feedforward_second_order_plant.png
new file mode 100644
index 0000000..e3dfdfb
Binary files /dev/null and b/static/ox-hugo/feedforward_second_order_plant.png differ
diff --git a/static/ox-hugo/feedforward_second_order_trajectory.png b/static/ox-hugo/feedforward_second_order_trajectory.png
new file mode 100644
index 0000000..35ab051
Binary files /dev/null and b/static/ox-hugo/feedforward_second_order_trajectory.png differ
diff --git a/static/ox-hugo/fir_moving_average_frequency_reponse.png b/static/ox-hugo/fir_moving_average_frequency_reponse.png
new file mode 100644
index 0000000..54e8b89
Binary files /dev/null and b/static/ox-hugo/fir_moving_average_frequency_reponse.png differ
diff --git a/static/ox-hugo/fir_moving_average_step_response.png b/static/ox-hugo/fir_moving_average_step_response.png
new file mode 100644
index 0000000..ff4b936
Binary files /dev/null and b/static/ox-hugo/fir_moving_average_step_response.png differ
diff --git a/static/ox-hugo/fleming10_charge_ampl_piezo.png b/static/ox-hugo/fleming10_charge_ampl_piezo.png
new file mode 100644
index 0000000..79ecd5d
Binary files /dev/null and b/static/ox-hugo/fleming10_charge_ampl_piezo.png differ
diff --git a/static/ox-hugo/fleming10_fb_control_strats.png b/static/ox-hugo/fleming10_fb_control_strats.png
new file mode 100644
index 0000000..591854c
Binary files /dev/null and b/static/ox-hugo/fleming10_fb_control_strats.png differ
diff --git a/static/ox-hugo/fleming10_piezo_model.png b/static/ox-hugo/fleming10_piezo_model.png
new file mode 100644
index 0000000..d483efc
Binary files /dev/null and b/static/ox-hugo/fleming10_piezo_model.png differ
diff --git a/static/ox-hugo/fleming13_drift_stability.png b/static/ox-hugo/fleming13_drift_stability.png
new file mode 100644
index 0000000..3c5f72d
Binary files /dev/null and b/static/ox-hugo/fleming13_drift_stability.png differ
diff --git a/static/ox-hugo/fleming13_mapping_error.png b/static/ox-hugo/fleming13_mapping_error.png
new file mode 100644
index 0000000..4dbc2a3
Binary files /dev/null and b/static/ox-hugo/fleming13_mapping_error.png differ
diff --git a/static/ox-hugo/fleming13_tradeoff_res_bandwidth.png b/static/ox-hugo/fleming13_tradeoff_res_bandwidth.png
new file mode 100644
index 0000000..ac194d1
Binary files /dev/null and b/static/ox-hugo/fleming13_tradeoff_res_bandwidth.png differ
diff --git a/static/ox-hugo/fleming14_amplifier_model.png b/static/ox-hugo/fleming14_amplifier_model.png
new file mode 100644
index 0000000..7d128f5
Binary files /dev/null and b/static/ox-hugo/fleming14_amplifier_model.png differ
diff --git a/static/ox-hugo/force_sensor_piezo_vs_strain_gauge.png b/static/ox-hugo/force_sensor_piezo_vs_strain_gauge.png
new file mode 100644
index 0000000..47ff5e9
Binary files /dev/null and b/static/ox-hugo/force_sensor_piezo_vs_strain_gauge.png differ
diff --git a/static/ox-hugo/furutani04_ctrl_arch.png b/static/ox-hugo/furutani04_ctrl_arch.png
new file mode 100644
index 0000000..cff64a3
Binary files /dev/null and b/static/ox-hugo/furutani04_ctrl_arch.png differ
diff --git a/static/ox-hugo/garrido12_decoupling_control_system.png b/static/ox-hugo/garrido12_decoupling_control_system.png
new file mode 100644
index 0000000..3ae4834
Binary files /dev/null and b/static/ox-hugo/garrido12_decoupling_control_system.png differ
diff --git a/static/ox-hugo/geng95_control_structure.png b/static/ox-hugo/geng95_control_structure.png
new file mode 100644
index 0000000..13e900a
Binary files /dev/null and b/static/ox-hugo/geng95_control_structure.png differ
diff --git a/static/ox-hugo/hac_lac_control_architecture.png b/static/ox-hugo/hac_lac_control_architecture.png
new file mode 100644
index 0000000..005b9ef
Binary files /dev/null and b/static/ox-hugo/hac_lac_control_architecture.png differ
diff --git a/static/ox-hugo/hatch00_cant_beam_gramian_balanced.png b/static/ox-hugo/hatch00_cant_beam_gramian_balanced.png
new file mode 100644
index 0000000..faa2a35
Binary files /dev/null and b/static/ox-hugo/hatch00_cant_beam_gramian_balanced.png differ
diff --git a/static/ox-hugo/hatch00_cant_beam_modes_freq.png b/static/ox-hugo/hatch00_cant_beam_modes_freq.png
new file mode 100644
index 0000000..f480c24
Binary files /dev/null and b/static/ox-hugo/hatch00_cant_beam_modes_freq.png differ
diff --git a/static/ox-hugo/hatch00_cant_beam_sorted_dc_gains.png b/static/ox-hugo/hatch00_cant_beam_sorted_dc_gains.png
new file mode 100644
index 0000000..577e729
Binary files /dev/null and b/static/ox-hugo/hatch00_cant_beam_sorted_dc_gains.png differ
diff --git a/static/ox-hugo/hatch00_cant_beam_unsorted_dc_gains.png b/static/ox-hugo/hatch00_cant_beam_unsorted_dc_gains.png
new file mode 100644
index 0000000..8a63a4b
Binary files /dev/null and b/static/ox-hugo/hatch00_cant_beam_unsorted_dc_gains.png differ
diff --git a/static/ox-hugo/hatch00_cantilever_beam.png b/static/ox-hugo/hatch00_cantilever_beam.png
new file mode 100644
index 0000000..13d5fb8
Binary files /dev/null and b/static/ox-hugo/hatch00_cantilever_beam.png differ
diff --git a/static/ox-hugo/hatch00_disk_drive_mimo_ansys.png b/static/ox-hugo/hatch00_disk_drive_mimo_ansys.png
new file mode 100644
index 0000000..a62e069
Binary files /dev/null and b/static/ox-hugo/hatch00_disk_drive_mimo_ansys.png differ
diff --git a/static/ox-hugo/hatch00_disk_drive_mimo_schematic.png b/static/ox-hugo/hatch00_disk_drive_mimo_schematic.png
new file mode 100644
index 0000000..c8a6d2a
Binary files /dev/null and b/static/ox-hugo/hatch00_disk_drive_mimo_schematic.png differ
diff --git a/static/ox-hugo/hatch00_disk_drive_nodes_reduced_model.png b/static/ox-hugo/hatch00_disk_drive_nodes_reduced_model.png
new file mode 100644
index 0000000..17b25ae
Binary files /dev/null and b/static/ox-hugo/hatch00_disk_drive_nodes_reduced_model.png differ
diff --git a/static/ox-hugo/hatch00_disk_drive_siso_model.png b/static/ox-hugo/hatch00_disk_drive_siso_model.png
new file mode 100644
index 0000000..c9cd061
Binary files /dev/null and b/static/ox-hugo/hatch00_disk_drive_siso_model.png differ
diff --git a/static/ox-hugo/hatch00_gramians.png b/static/ox-hugo/hatch00_gramians.png
new file mode 100644
index 0000000..82e3871
Binary files /dev/null and b/static/ox-hugo/hatch00_gramians.png differ
diff --git a/static/ox-hugo/hatch00_modal_analysis_flowchart.png b/static/ox-hugo/hatch00_modal_analysis_flowchart.png
new file mode 100644
index 0000000..0870b65
Binary files /dev/null and b/static/ox-hugo/hatch00_modal_analysis_flowchart.png differ
diff --git a/static/ox-hugo/hatch00_model_reduction_chart.png b/static/ox-hugo/hatch00_model_reduction_chart.png
new file mode 100644
index 0000000..13edc5f
Binary files /dev/null and b/static/ox-hugo/hatch00_model_reduction_chart.png differ
diff --git a/static/ox-hugo/hatch00_n_dof_zeros.png b/static/ox-hugo/hatch00_n_dof_zeros.png
new file mode 100644
index 0000000..993b229
Binary files /dev/null and b/static/ox-hugo/hatch00_n_dof_zeros.png differ
diff --git a/static/ox-hugo/hatch00_schematic_modal_solution.png b/static/ox-hugo/hatch00_schematic_modal_solution.png
new file mode 100644
index 0000000..bab7202
Binary files /dev/null and b/static/ox-hugo/hatch00_schematic_modal_solution.png differ
diff --git a/static/ox-hugo/hatch00_tdof_mode_1.png b/static/ox-hugo/hatch00_tdof_mode_1.png
new file mode 100644
index 0000000..584b8e3
Binary files /dev/null and b/static/ox-hugo/hatch00_tdof_mode_1.png differ
diff --git a/static/ox-hugo/hatch00_tdof_mode_2.png b/static/ox-hugo/hatch00_tdof_mode_2.png
new file mode 100644
index 0000000..fa0e262
Binary files /dev/null and b/static/ox-hugo/hatch00_tdof_mode_2.png differ
diff --git a/static/ox-hugo/hatch00_tdof_mode_3.png b/static/ox-hugo/hatch00_tdof_mode_3.png
new file mode 100644
index 0000000..304b0b1
Binary files /dev/null and b/static/ox-hugo/hatch00_tdof_mode_3.png differ
diff --git a/static/ox-hugo/hatch00_tdof_model.png b/static/ox-hugo/hatch00_tdof_model.png
new file mode 100644
index 0000000..7f1a63d
Binary files /dev/null and b/static/ox-hugo/hatch00_tdof_model.png differ
diff --git a/static/ox-hugo/hatch00_undamped_tdof_model.png b/static/ox-hugo/hatch00_undamped_tdof_model.png
new file mode 100644
index 0000000..d308c0f
Binary files /dev/null and b/static/ox-hugo/hatch00_undamped_tdof_model.png differ
diff --git a/static/ox-hugo/hatch00_z11_tf.png b/static/ox-hugo/hatch00_z11_tf.png
new file mode 100644
index 0000000..1bd8ed6
Binary files /dev/null and b/static/ox-hugo/hatch00_z11_tf.png differ
diff --git a/static/ox-hugo/hatch00_z13_tf.png b/static/ox-hugo/hatch00_z13_tf.png
new file mode 100644
index 0000000..bf955db
Binary files /dev/null and b/static/ox-hugo/hatch00_z13_tf.png differ
diff --git a/static/ox-hugo/hauge04_obtained_transmissibility.png b/static/ox-hugo/hauge04_obtained_transmissibility.png
new file mode 100644
index 0000000..68edfa3
Binary files /dev/null and b/static/ox-hugo/hauge04_obtained_transmissibility.png differ
diff --git a/static/ox-hugo/hauge04_stewart_platform.png b/static/ox-hugo/hauge04_stewart_platform.png
new file mode 100644
index 0000000..e5041f0
Binary files /dev/null and b/static/ox-hugo/hauge04_stewart_platform.png differ
diff --git a/static/ox-hugo/hauge04_strut_model.png b/static/ox-hugo/hauge04_strut_model.png
new file mode 100644
index 0000000..f912755
Binary files /dev/null and b/static/ox-hugo/hauge04_strut_model.png differ
diff --git a/static/ox-hugo/hauge05_struts.png b/static/ox-hugo/hauge05_struts.png
new file mode 100644
index 0000000..3f2a748
Binary files /dev/null and b/static/ox-hugo/hauge05_struts.png differ
diff --git a/static/ox-hugo/heat_transfer_fluid.png b/static/ox-hugo/heat_transfer_fluid.png
new file mode 100644
index 0000000..fed5658
Binary files /dev/null and b/static/ox-hugo/heat_transfer_fluid.png differ
diff --git a/static/ox-hugo/heat_transport.png b/static/ox-hugo/heat_transport.png
new file mode 100644
index 0000000..817a2c8
Binary files /dev/null and b/static/ox-hugo/heat_transport.png differ
diff --git a/static/ox-hugo/holler12_station.png b/static/ox-hugo/holler12_station.png
new file mode 100644
index 0000000..a015e93
Binary files /dev/null and b/static/ox-hugo/holler12_station.png differ
diff --git a/static/ox-hugo/huddle_test_block_diagram.png b/static/ox-hugo/huddle_test_block_diagram.png
new file mode 100644
index 0000000..ab328ca
Binary files /dev/null and b/static/ox-hugo/huddle_test_block_diagram.png differ
diff --git a/static/ox-hugo/huddle_test_setup.png b/static/ox-hugo/huddle_test_setup.png
new file mode 100644
index 0000000..0c94fa0
Binary files /dev/null and b/static/ox-hugo/huddle_test_setup.png differ
diff --git a/static/ox-hugo/hughes13_current_conductor_force.png b/static/ox-hugo/hughes13_current_conductor_force.png
new file mode 100644
index 0000000..d782ce8
Binary files /dev/null and b/static/ox-hugo/hughes13_current_conductor_force.png differ
diff --git a/static/ox-hugo/induced_matrix_norm.png b/static/ox-hugo/induced_matrix_norm.png
new file mode 100644
index 0000000..ff2815c
Binary files /dev/null and b/static/ox-hugo/induced_matrix_norm.png differ
diff --git a/static/ox-hugo/inertial_sensors_characteristics_accelerometers.png b/static/ox-hugo/inertial_sensors_characteristics_accelerometers.png
new file mode 100644
index 0000000..02b84a8
Binary files /dev/null and b/static/ox-hugo/inertial_sensors_characteristics_accelerometers.png differ
diff --git a/static/ox-hugo/inertial_sensors_characteristics_geophone.png b/static/ox-hugo/inertial_sensors_characteristics_geophone.png
new file mode 100644
index 0000000..8d7d064
Binary files /dev/null and b/static/ox-hugo/inertial_sensors_characteristics_geophone.png differ
diff --git a/static/ox-hugo/interferometers_air_turbulence.png b/static/ox-hugo/interferometers_air_turbulence.png
new file mode 100644
index 0000000..0f1067e
Binary files /dev/null and b/static/ox-hugo/interferometers_air_turbulence.png differ
diff --git a/static/ox-hugo/interpolation_perfect_example.png b/static/ox-hugo/interpolation_perfect_example.png
new file mode 100644
index 0000000..2429a2b
Binary files /dev/null and b/static/ox-hugo/interpolation_perfect_example.png differ
diff --git a/static/ox-hugo/ito16_low_high_stiffness_actuators.png b/static/ox-hugo/ito16_low_high_stiffness_actuators.png
new file mode 100644
index 0000000..5b42a03
Binary files /dev/null and b/static/ox-hugo/ito16_low_high_stiffness_actuators.png differ
diff --git a/static/ox-hugo/ito16_transmissibility.png b/static/ox-hugo/ito16_transmissibility.png
new file mode 100644
index 0000000..22f4974
Binary files /dev/null and b/static/ox-hugo/ito16_transmissibility.png differ
diff --git a/static/ox-hugo/jabben07_general_plant.png b/static/ox-hugo/jabben07_general_plant.png
new file mode 100644
index 0000000..da0213b
Binary files /dev/null and b/static/ox-hugo/jabben07_general_plant.png differ
diff --git a/static/ox-hugo/jabben07_pareto_curve_H2.png b/static/ox-hugo/jabben07_pareto_curve_H2.png
new file mode 100644
index 0000000..fe15896
Binary files /dev/null and b/static/ox-hugo/jabben07_pareto_curve_H2.png differ
diff --git a/static/ox-hugo/jabben07_weighting_functions.png b/static/ox-hugo/jabben07_weighting_functions.png
new file mode 100644
index 0000000..d08c9d0
Binary files /dev/null and b/static/ox-hugo/jabben07_weighting_functions.png differ
diff --git a/static/ox-hugo/jacobian_geometry.png b/static/ox-hugo/jacobian_geometry.png
new file mode 100644
index 0000000..4a27213
Binary files /dev/null and b/static/ox-hugo/jacobian_geometry.png differ
diff --git a/static/ox-hugo/jitter_error_example.png b/static/ox-hugo/jitter_error_example.png
new file mode 100644
index 0000000..9dddebd
Binary files /dev/null and b/static/ox-hugo/jitter_error_example.png differ
diff --git a/static/ox-hugo/jitter_errors_effect_Ts_pepu.png b/static/ox-hugo/jitter_errors_effect_Ts_pepu.png
new file mode 100644
index 0000000..b193e40
Binary files /dev/null and b/static/ox-hugo/jitter_errors_effect_Ts_pepu.png differ
diff --git a/static/ox-hugo/lafarga24_current_amplifier.png b/static/ox-hugo/lafarga24_current_amplifier.png
new file mode 100644
index 0000000..fd95fa4
Binary files /dev/null and b/static/ox-hugo/lafarga24_current_amplifier.png differ
diff --git a/static/ox-hugo/legnani12_generated_isotropy.png b/static/ox-hugo/legnani12_generated_isotropy.png
new file mode 100644
index 0000000..c86c615
Binary files /dev/null and b/static/ox-hugo/legnani12_generated_isotropy.png differ
diff --git a/static/ox-hugo/legnani12_isotropic_pkm.png b/static/ox-hugo/legnani12_isotropic_pkm.png
new file mode 100644
index 0000000..306ad08
Binary files /dev/null and b/static/ox-hugo/legnani12_isotropic_pkm.png differ
diff --git a/static/ox-hugo/legnani12_isotropy_gen.png b/static/ox-hugo/legnani12_isotropy_gen.png
new file mode 100644
index 0000000..0b0bbb3
Binary files /dev/null and b/static/ox-hugo/legnani12_isotropy_gen.png differ
diff --git a/static/ox-hugo/li01_closed_loop_pointing.png b/static/ox-hugo/li01_closed_loop_pointing.png
new file mode 100644
index 0000000..2f273b5
Binary files /dev/null and b/static/ox-hugo/li01_closed_loop_pointing.png differ
diff --git a/static/ox-hugo/li01_closed_loop_vibration.png b/static/ox-hugo/li01_closed_loop_vibration.png
new file mode 100644
index 0000000..08814a0
Binary files /dev/null and b/static/ox-hugo/li01_closed_loop_vibration.png differ
diff --git a/static/ox-hugo/li01_decoupling_conf.png b/static/ox-hugo/li01_decoupling_conf.png
new file mode 100644
index 0000000..4af7a5b
Binary files /dev/null and b/static/ox-hugo/li01_decoupling_conf.png differ
diff --git a/static/ox-hugo/li01_decoupling_conf_bis.png b/static/ox-hugo/li01_decoupling_conf_bis.png
new file mode 100644
index 0000000..a7ec34a
Binary files /dev/null and b/static/ox-hugo/li01_decoupling_conf_bis.png differ
diff --git a/static/ox-hugo/li01_feedforward_control.png b/static/ox-hugo/li01_feedforward_control.png
new file mode 100644
index 0000000..5997b4e
Binary files /dev/null and b/static/ox-hugo/li01_feedforward_control.png differ
diff --git a/static/ox-hugo/li01_flexure_hexapod_model.png b/static/ox-hugo/li01_flexure_hexapod_model.png
new file mode 100644
index 0000000..9577fa0
Binary files /dev/null and b/static/ox-hugo/li01_flexure_hexapod_model.png differ
diff --git a/static/ox-hugo/li01_parallel_control.png b/static/ox-hugo/li01_parallel_control.png
new file mode 100644
index 0000000..27d04e8
Binary files /dev/null and b/static/ox-hugo/li01_parallel_control.png differ
diff --git a/static/ox-hugo/li01_pointing_control.png b/static/ox-hugo/li01_pointing_control.png
new file mode 100644
index 0000000..971ab22
Binary files /dev/null and b/static/ox-hugo/li01_pointing_control.png differ
diff --git a/static/ox-hugo/li01_quet_dirty_box.png b/static/ox-hugo/li01_quet_dirty_box.png
new file mode 100644
index 0000000..8ac8d9b
Binary files /dev/null and b/static/ox-hugo/li01_quet_dirty_box.png differ
diff --git a/static/ox-hugo/li01_simultaneous_control_results.png b/static/ox-hugo/li01_simultaneous_control_results.png
new file mode 100644
index 0000000..1556b72
Binary files /dev/null and b/static/ox-hugo/li01_simultaneous_control_results.png differ
diff --git a/static/ox-hugo/li01_stewart_platform.png b/static/ox-hugo/li01_stewart_platform.png
new file mode 100644
index 0000000..7b44431
Binary files /dev/null and b/static/ox-hugo/li01_stewart_platform.png differ
diff --git a/static/ox-hugo/li01_test_bench.png b/static/ox-hugo/li01_test_bench.png
new file mode 100644
index 0000000..b3abb87
Binary files /dev/null and b/static/ox-hugo/li01_test_bench.png differ
diff --git a/static/ox-hugo/li01_transfer_function_angle.png b/static/ox-hugo/li01_transfer_function_angle.png
new file mode 100644
index 0000000..ec27514
Binary files /dev/null and b/static/ox-hugo/li01_transfer_function_angle.png differ
diff --git a/static/ox-hugo/li01_vibration_control_plant.png b/static/ox-hugo/li01_vibration_control_plant.png
new file mode 100644
index 0000000..60421a0
Binary files /dev/null and b/static/ox-hugo/li01_vibration_control_plant.png differ
diff --git a/static/ox-hugo/li01_vibration_isolation_control.png b/static/ox-hugo/li01_vibration_isolation_control.png
new file mode 100644
index 0000000..765c4cf
Binary files /dev/null and b/static/ox-hugo/li01_vibration_isolation_control.png differ
diff --git a/static/ox-hugo/li01_vibration_isolation_control_results.png b/static/ox-hugo/li01_vibration_isolation_control_results.png
new file mode 100644
index 0000000..334fa07
Binary files /dev/null and b/static/ox-hugo/li01_vibration_isolation_control_results.png differ
diff --git a/static/ox-hugo/linear_bearing_comp.png b/static/ox-hugo/linear_bearing_comp.png
new file mode 100644
index 0000000..6576928
Binary files /dev/null and b/static/ox-hugo/linear_bearing_comp.png differ
diff --git a/static/ox-hugo/linear_bearing_cross_section.png b/static/ox-hugo/linear_bearing_cross_section.png
new file mode 100644
index 0000000..8893e1c
Binary files /dev/null and b/static/ox-hugo/linear_bearing_cross_section.png differ
diff --git a/static/ox-hugo/ling16_topology_piezo_mechanism_types.png b/static/ox-hugo/ling16_topology_piezo_mechanism_types.png
new file mode 100644
index 0000000..04ef92c
Binary files /dev/null and b/static/ox-hugo/ling16_topology_piezo_mechanism_types.png differ
diff --git a/static/ox-hugo/lyons11_frequency_ambiguity.png b/static/ox-hugo/lyons11_frequency_ambiguity.png
new file mode 100644
index 0000000..b44f17e
Binary files /dev/null and b/static/ox-hugo/lyons11_frequency_ambiguity.png differ
diff --git a/static/ox-hugo/lyons11_lowpass_sampling.png b/static/ox-hugo/lyons11_lowpass_sampling.png
new file mode 100644
index 0000000..b5201f5
Binary files /dev/null and b/static/ox-hugo/lyons11_lowpass_sampling.png differ
diff --git a/static/ox-hugo/lyons11_lti_impulse_response.png b/static/ox-hugo/lyons11_lti_impulse_response.png
new file mode 100644
index 0000000..6f6e7b3
Binary files /dev/null and b/static/ox-hugo/lyons11_lti_impulse_response.png differ
diff --git a/static/ox-hugo/lyons11_moving_average.png b/static/ox-hugo/lyons11_moving_average.png
new file mode 100644
index 0000000..956663c
Binary files /dev/null and b/static/ox-hugo/lyons11_moving_average.png differ
diff --git a/static/ox-hugo/lyons11_noise_spectral_replication.png b/static/ox-hugo/lyons11_noise_spectral_replication.png
new file mode 100644
index 0000000..562c17f
Binary files /dev/null and b/static/ox-hugo/lyons11_noise_spectral_replication.png differ
diff --git a/static/ox-hugo/mass_spring_damper_1dof_compliance.png b/static/ox-hugo/mass_spring_damper_1dof_compliance.png
new file mode 100644
index 0000000..934586a
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_1dof_compliance.png differ
diff --git a/static/ox-hugo/mass_spring_damper_1dof_transmissibility.png b/static/ox-hugo/mass_spring_damper_1dof_transmissibility.png
new file mode 100644
index 0000000..52a1c1f
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_1dof_transmissibility.png differ
diff --git a/static/ox-hugo/mass_spring_damper_2dof.png b/static/ox-hugo/mass_spring_damper_2dof.png
new file mode 100644
index 0000000..2e210b3
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_2dof.png differ
diff --git a/static/ox-hugo/mass_spring_damper_2dof_F1_bode_plots.png b/static/ox-hugo/mass_spring_damper_2dof_F1_bode_plots.png
new file mode 100644
index 0000000..c24d1df
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_2dof_F1_bode_plots.png differ
diff --git a/static/ox-hugo/mass_spring_damper_2dof_F2_bode_plots.png b/static/ox-hugo/mass_spring_damper_2dof_F2_bode_plots.png
new file mode 100644
index 0000000..5e92974
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_2dof_F2_bode_plots.png differ
diff --git a/static/ox-hugo/mass_spring_damper_2dof_x0_bode_plots.png b/static/ox-hugo/mass_spring_damper_2dof_x0_bode_plots.png
new file mode 100644
index 0000000..e9f1c19
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_2dof_x0_bode_plots.png differ
diff --git a/static/ox-hugo/mass_spring_damper_flex_above.png b/static/ox-hugo/mass_spring_damper_flex_above.png
new file mode 100644
index 0000000..4f8ab61
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_flex_above.png differ
diff --git a/static/ox-hugo/mass_spring_damper_system.png b/static/ox-hugo/mass_spring_damper_system.png
new file mode 100644
index 0000000..bbe5e7a
Binary files /dev/null and b/static/ox-hugo/mass_spring_damper_system.png differ
diff --git a/static/ox-hugo/mcinroy02_leg_model.png b/static/ox-hugo/mcinroy02_leg_model.png
new file mode 100644
index 0000000..3c27a65
Binary files /dev/null and b/static/ox-hugo/mcinroy02_leg_model.png differ
diff --git a/static/ox-hugo/mcinroy02_model_strut_joint.png b/static/ox-hugo/mcinroy02_model_strut_joint.png
new file mode 100644
index 0000000..eaf071a
Binary files /dev/null and b/static/ox-hugo/mcinroy02_model_strut_joint.png differ
diff --git a/static/ox-hugo/mcinroy99_general_hexapod.png b/static/ox-hugo/mcinroy99_general_hexapod.png
new file mode 100644
index 0000000..920d11c
Binary files /dev/null and b/static/ox-hugo/mcinroy99_general_hexapod.png differ
diff --git a/static/ox-hugo/mcinroy99_strut_model.png b/static/ox-hugo/mcinroy99_strut_model.png
new file mode 100644
index 0000000..6cfc13f
Binary files /dev/null and b/static/ox-hugo/mcinroy99_strut_model.png differ
diff --git a/static/ox-hugo/mimo_identification_schematic_simplier_closed_loop.png b/static/ox-hugo/mimo_identification_schematic_simplier_closed_loop.png
new file mode 100644
index 0000000..cd77d7b
Binary files /dev/null and b/static/ox-hugo/mimo_identification_schematic_simplier_closed_loop.png differ
diff --git a/static/ox-hugo/mimo_tf.png b/static/ox-hugo/mimo_tf.png
new file mode 100644
index 0000000..ac205ee
Binary files /dev/null and b/static/ox-hugo/mimo_tf.png differ
diff --git a/static/ox-hugo/monkhorst04_closed_loop_H2.png b/static/ox-hugo/monkhorst04_closed_loop_H2.png
new file mode 100644
index 0000000..75e6017
Binary files /dev/null and b/static/ox-hugo/monkhorst04_closed_loop_H2.png differ
diff --git a/static/ox-hugo/monkhorst04_general_weighted_plant.png b/static/ox-hugo/monkhorst04_general_weighted_plant.png
new file mode 100644
index 0000000..42ac421
Binary files /dev/null and b/static/ox-hugo/monkhorst04_general_weighted_plant.png differ
diff --git a/static/ox-hugo/monkhorst04_weighting_filter.png b/static/ox-hugo/monkhorst04_weighting_filter.png
new file mode 100644
index 0000000..69b6735
Binary files /dev/null and b/static/ox-hugo/monkhorst04_weighting_filter.png differ
diff --git a/static/ox-hugo/morrison16_E_D_fields.svg b/static/ox-hugo/morrison16_E_D_fields.svg
new file mode 100644
index 0000000..338e08c
--- /dev/null
+++ b/static/ox-hugo/morrison16_E_D_fields.svg
@@ -0,0 +1,2938 @@
+
+
diff --git a/static/ox-hugo/morrison16_E_field_charge.svg b/static/ox-hugo/morrison16_E_field_charge.svg
new file mode 100644
index 0000000..7fb0fe6
--- /dev/null
+++ b/static/ox-hugo/morrison16_E_field_charge.svg
@@ -0,0 +1,1049 @@
+
+
diff --git a/static/ox-hugo/morrison16_H_field.svg b/static/ox-hugo/morrison16_H_field.svg
new file mode 100644
index 0000000..2c89fb2
--- /dev/null
+++ b/static/ox-hugo/morrison16_H_field.svg
@@ -0,0 +1,1234 @@
+
+
diff --git a/static/ox-hugo/morrison16_LR_stabilizing_network.svg b/static/ox-hugo/morrison16_LR_stabilizing_network.svg
new file mode 100644
index 0000000..3841df1
--- /dev/null
+++ b/static/ox-hugo/morrison16_LR_stabilizing_network.svg
@@ -0,0 +1,1318 @@
+
+
diff --git a/static/ox-hugo/morrison16_basic_feedback_circuit.svg b/static/ox-hugo/morrison16_basic_feedback_circuit.svg
new file mode 100644
index 0000000..d788384
--- /dev/null
+++ b/static/ox-hugo/morrison16_basic_feedback_circuit.svg
@@ -0,0 +1,1736 @@
+
+
diff --git a/static/ox-hugo/morrison16_charge_amplifier.svg b/static/ox-hugo/morrison16_charge_amplifier.svg
new file mode 100644
index 0000000..6bbd535
--- /dev/null
+++ b/static/ox-hugo/morrison16_charge_amplifier.svg
@@ -0,0 +1,5311 @@
+
+
diff --git a/static/ox-hugo/morrison16_charge_amplifier_feedback_resistor.svg b/static/ox-hugo/morrison16_charge_amplifier_feedback_resistor.svg
new file mode 100644
index 0000000..de77d8b
--- /dev/null
+++ b/static/ox-hugo/morrison16_charge_amplifier_feedback_resistor.svg
@@ -0,0 +1,1404 @@
+
+
diff --git a/static/ox-hugo/morrison16_electric_field_ground_plane.svg b/static/ox-hugo/morrison16_electric_field_ground_plane.svg
new file mode 100644
index 0000000..381cd31
--- /dev/null
+++ b/static/ox-hugo/morrison16_electric_field_ground_plane.svg
@@ -0,0 +1,2415 @@
+
+
diff --git a/static/ox-hugo/morrison16_electric_field_shielded_conductor.svg b/static/ox-hugo/morrison16_electric_field_shielded_conductor.svg
new file mode 100644
index 0000000..2e246be
--- /dev/null
+++ b/static/ox-hugo/morrison16_electric_field_shielded_conductor.svg
@@ -0,0 +1,3208 @@
+
+
diff --git a/static/ox-hugo/morrison16_enclosure_shield_1_2_leads.png b/static/ox-hugo/morrison16_enclosure_shield_1_2_leads.png
new file mode 100644
index 0000000..5389102
Binary files /dev/null and b/static/ox-hugo/morrison16_enclosure_shield_1_2_leads.png differ
diff --git a/static/ox-hugo/morrison16_force_field_plates.svg b/static/ox-hugo/morrison16_force_field_plates.svg
new file mode 100644
index 0000000..1d943c9
--- /dev/null
+++ b/static/ox-hugo/morrison16_force_field_plates.svg
@@ -0,0 +1,1915 @@
+
+
diff --git a/static/ox-hugo/morrison16_grounding_shield_amp.svg b/static/ox-hugo/morrison16_grounding_shield_amp.svg
new file mode 100644
index 0000000..43749d4
--- /dev/null
+++ b/static/ox-hugo/morrison16_grounding_shield_amp.svg
@@ -0,0 +1,1513 @@
+
+
diff --git a/static/ox-hugo/morrison16_low_gain_diff_amp.svg b/static/ox-hugo/morrison16_low_gain_diff_amp.svg
new file mode 100644
index 0000000..8fa50e4
--- /dev/null
+++ b/static/ox-hugo/morrison16_low_gain_diff_amp.svg
@@ -0,0 +1,1684 @@
+
+
diff --git a/static/ox-hugo/morrison16_parasitic_capacitance_amp.svg b/static/ox-hugo/morrison16_parasitic_capacitance_amp.svg
new file mode 100644
index 0000000..fd6ff0c
--- /dev/null
+++ b/static/ox-hugo/morrison16_parasitic_capacitance_amp.svg
@@ -0,0 +1,2035 @@
+
+
diff --git a/static/ox-hugo/morrison16_power_transformer_enclosure.png b/static/ox-hugo/morrison16_power_transformer_enclosure.png
new file mode 100644
index 0000000..5dd122c
Binary files /dev/null and b/static/ox-hugo/morrison16_power_transformer_enclosure.png differ
diff --git a/static/ox-hugo/morrison16_solenoid.svg b/static/ox-hugo/morrison16_solenoid.svg
new file mode 100644
index 0000000..40cb557
--- /dev/null
+++ b/static/ox-hugo/morrison16_solenoid.svg
@@ -0,0 +1,1125 @@
+
+
diff --git a/static/ox-hugo/morrison16_two_ground_problem.svg b/static/ox-hugo/morrison16_two_ground_problem.svg
new file mode 100644
index 0000000..f089fdc
--- /dev/null
+++ b/static/ox-hugo/morrison16_two_ground_problem.svg
@@ -0,0 +1,2280 @@
+
+
diff --git a/static/ox-hugo/morrison16_voltage_moving_coil.svg b/static/ox-hugo/morrison16_voltage_moving_coil.svg
new file mode 100644
index 0000000..dbb35bf
--- /dev/null
+++ b/static/ox-hugo/morrison16_voltage_moving_coil.svg
@@ -0,0 +1,2911 @@
+
+
diff --git a/static/ox-hugo/motor_clarke_transformation.png b/static/ox-hugo/motor_clarke_transformation.png
new file mode 100644
index 0000000..793b674
Binary files /dev/null and b/static/ox-hugo/motor_clarke_transformation.png differ
diff --git a/static/ox-hugo/motor_emf_waveform.png b/static/ox-hugo/motor_emf_waveform.png
new file mode 100644
index 0000000..f09dcdf
Binary files /dev/null and b/static/ox-hugo/motor_emf_waveform.png differ
diff --git a/static/ox-hugo/motor_hard_commutation.png b/static/ox-hugo/motor_hard_commutation.png
new file mode 100644
index 0000000..da23a9b
Binary files /dev/null and b/static/ox-hugo/motor_hard_commutation.png differ
diff --git a/static/ox-hugo/motor_park_transformation.png b/static/ox-hugo/motor_park_transformation.png
new file mode 100644
index 0000000..44dd85e
Binary files /dev/null and b/static/ox-hugo/motor_park_transformation.png differ
diff --git a/static/ox-hugo/motor_sin_commutation.png b/static/ox-hugo/motor_sin_commutation.png
new file mode 100644
index 0000000..a6bfe58
Binary files /dev/null and b/static/ox-hugo/motor_sin_commutation.png differ
diff --git a/static/ox-hugo/negative_stiffness_architecture.png b/static/ox-hugo/negative_stiffness_architecture.png
new file mode 100644
index 0000000..bc87649
Binary files /dev/null and b/static/ox-hugo/negative_stiffness_architecture.png differ
diff --git a/static/ox-hugo/negative_stiffness_schematic.png b/static/ox-hugo/negative_stiffness_schematic.png
new file mode 100644
index 0000000..245ff7d
Binary files /dev/null and b/static/ox-hugo/negative_stiffness_schematic.png differ
diff --git a/static/ox-hugo/okyay16_current_amplifier_schematic.png b/static/ox-hugo/okyay16_current_amplifier_schematic.png
new file mode 100644
index 0000000..c29a7b7
Binary files /dev/null and b/static/ox-hugo/okyay16_current_amplifier_schematic.png differ
diff --git a/static/ox-hugo/oomen18_control_architecture.png b/static/ox-hugo/oomen18_control_architecture.png
new file mode 100644
index 0000000..de9f86d
Binary files /dev/null and b/static/ox-hugo/oomen18_control_architecture.png differ
diff --git a/static/ox-hugo/oomen18_generalized_plant.png b/static/ox-hugo/oomen18_generalized_plant.png
new file mode 100644
index 0000000..cc85e28
Binary files /dev/null and b/static/ox-hugo/oomen18_generalized_plant.png differ
diff --git a/static/ox-hugo/oomen18_next_gen_loop_gain.png b/static/ox-hugo/oomen18_next_gen_loop_gain.png
new file mode 100644
index 0000000..c049636
Binary files /dev/null and b/static/ox-hugo/oomen18_next_gen_loop_gain.png differ
diff --git a/static/ox-hugo/optical_connector_PC_APC.png b/static/ox-hugo/optical_connector_PC_APC.png
new file mode 100644
index 0000000..5a2ee15
Binary files /dev/null and b/static/ox-hugo/optical_connector_PC_APC.png differ
diff --git a/static/ox-hugo/optical_fibers_fc.png b/static/ox-hugo/optical_fibers_fc.png
new file mode 100644
index 0000000..94758b6
Binary files /dev/null and b/static/ox-hugo/optical_fibers_fc.png differ
diff --git a/static/ox-hugo/optical_fibers_sc.png b/static/ox-hugo/optical_fibers_sc.png
new file mode 100644
index 0000000..6fd322e
Binary files /dev/null and b/static/ox-hugo/optical_fibers_sc.png differ
diff --git a/static/ox-hugo/piezoelectric_capacitance_voltage_max.png b/static/ox-hugo/piezoelectric_capacitance_voltage_max.png
new file mode 100644
index 0000000..eeaa0c2
Binary files /dev/null and b/static/ox-hugo/piezoelectric_capacitance_voltage_max.png differ
diff --git a/static/ox-hugo/piezoelectric_force_displ_relation.png b/static/ox-hugo/piezoelectric_force_displ_relation.png
new file mode 100644
index 0000000..13fa475
Binary files /dev/null and b/static/ox-hugo/piezoelectric_force_displ_relation.png differ
diff --git a/static/ox-hugo/piezoelectric_mass_load.png b/static/ox-hugo/piezoelectric_mass_load.png
new file mode 100644
index 0000000..479a0dd
Binary files /dev/null and b/static/ox-hugo/piezoelectric_mass_load.png differ
diff --git a/static/ox-hugo/piezoelectric_spring_load.png b/static/ox-hugo/piezoelectric_spring_load.png
new file mode 100644
index 0000000..466c5e4
Binary files /dev/null and b/static/ox-hugo/piezoelectric_spring_load.png differ
diff --git a/static/ox-hugo/position_jitter_issue.png b/static/ox-hugo/position_jitter_issue.png
new file mode 100644
index 0000000..fb32491
Binary files /dev/null and b/static/ox-hugo/position_jitter_issue.png differ
diff --git a/static/ox-hugo/position_sensor_interferometer_precision.png b/static/ox-hugo/position_sensor_interferometer_precision.png
new file mode 100644
index 0000000..f0b24c2
Binary files /dev/null and b/static/ox-hugo/position_sensor_interferometer_precision.png differ
diff --git a/static/ox-hugo/position_sensors_thurner15.png b/static/ox-hugo/position_sensors_thurner15.png
new file mode 100644
index 0000000..c2ed0d6
Binary files /dev/null and b/static/ox-hugo/position_sensors_thurner15.png differ
diff --git a/static/ox-hugo/preumont02_force_acc_fb_heavy.png b/static/ox-hugo/preumont02_force_acc_fb_heavy.png
new file mode 100644
index 0000000..a769287
Binary files /dev/null and b/static/ox-hugo/preumont02_force_acc_fb_heavy.png differ
diff --git a/static/ox-hugo/preumont02_force_acc_fb_light.png b/static/ox-hugo/preumont02_force_acc_fb_light.png
new file mode 100644
index 0000000..36532da
Binary files /dev/null and b/static/ox-hugo/preumont02_force_acc_fb_light.png differ
diff --git a/static/ox-hugo/preumont07_flexible_joints.png b/static/ox-hugo/preumont07_flexible_joints.png
new file mode 100644
index 0000000..9cd54b2
Binary files /dev/null and b/static/ox-hugo/preumont07_flexible_joints.png differ
diff --git a/static/ox-hugo/preumont07_iff_effect_stiffness.png b/static/ox-hugo/preumont07_iff_effect_stiffness.png
new file mode 100644
index 0000000..7ab45f4
Binary files /dev/null and b/static/ox-hugo/preumont07_iff_effect_stiffness.png differ
diff --git a/static/ox-hugo/preumont07_stewart_platform.png b/static/ox-hugo/preumont07_stewart_platform.png
new file mode 100644
index 0000000..1496095
Binary files /dev/null and b/static/ox-hugo/preumont07_stewart_platform.png differ
diff --git a/static/ox-hugo/preumont18_alternating_p_z.png b/static/ox-hugo/preumont18_alternating_p_z.png
new file mode 100644
index 0000000..b421a26
Binary files /dev/null and b/static/ox-hugo/preumont18_alternating_p_z.png differ
diff --git a/static/ox-hugo/preumont18_bridge_circuit.png b/static/ox-hugo/preumont18_bridge_circuit.png
new file mode 100644
index 0000000..24bf439
Binary files /dev/null and b/static/ox-hugo/preumont18_bridge_circuit.png differ
diff --git a/static/ox-hugo/preumont18_cas_plot.png b/static/ox-hugo/preumont18_cas_plot.png
new file mode 100644
index 0000000..df794dd
Binary files /dev/null and b/static/ox-hugo/preumont18_cas_plot.png differ
diff --git a/static/ox-hugo/preumont18_classical_feedback_small.png b/static/ox-hugo/preumont18_classical_feedback_small.png
new file mode 100644
index 0000000..ef31daa
Binary files /dev/null and b/static/ox-hugo/preumont18_classical_feedback_small.png differ
diff --git a/static/ox-hugo/preumont18_collocated_control_frf.png b/static/ox-hugo/preumont18_collocated_control_frf.png
new file mode 100644
index 0000000..ef5f08c
Binary files /dev/null and b/static/ox-hugo/preumont18_collocated_control_frf.png differ
diff --git a/static/ox-hugo/preumont18_collocated_zero.png b/static/ox-hugo/preumont18_collocated_zero.png
new file mode 100644
index 0000000..7607579
Binary files /dev/null and b/static/ox-hugo/preumont18_collocated_zero.png differ
diff --git a/static/ox-hugo/preumont18_design_steps.png b/static/ox-hugo/preumont18_design_steps.png
new file mode 100644
index 0000000..0d62347
Binary files /dev/null and b/static/ox-hugo/preumont18_design_steps.png differ
diff --git a/static/ox-hugo/preumont18_electro_mechanical_transducer.png b/static/ox-hugo/preumont18_electro_mechanical_transducer.png
new file mode 100644
index 0000000..c9200d4
Binary files /dev/null and b/static/ox-hugo/preumont18_electro_mechanical_transducer.png differ
diff --git a/static/ox-hugo/preumont18_feedforward_adaptative.png b/static/ox-hugo/preumont18_feedforward_adaptative.png
new file mode 100644
index 0000000..01fa8a5
Binary files /dev/null and b/static/ox-hugo/preumont18_feedforward_adaptative.png differ
diff --git a/static/ox-hugo/preumont18_general_plant.png b/static/ox-hugo/preumont18_general_plant.png
new file mode 100644
index 0000000..af869cb
Binary files /dev/null and b/static/ox-hugo/preumont18_general_plant.png differ
diff --git a/static/ox-hugo/preumont18_geophone.png b/static/ox-hugo/preumont18_geophone.png
new file mode 100644
index 0000000..7967ee2
Binary files /dev/null and b/static/ox-hugo/preumont18_geophone.png differ
diff --git a/static/ox-hugo/preumont18_hac_lac_control.png b/static/ox-hugo/preumont18_hac_lac_control.png
new file mode 100644
index 0000000..376a228
Binary files /dev/null and b/static/ox-hugo/preumont18_hac_lac_control.png differ
diff --git a/static/ox-hugo/preumont18_nearly_collocated_schematic.png b/static/ox-hugo/preumont18_nearly_collocated_schematic.png
new file mode 100644
index 0000000..9a865fe
Binary files /dev/null and b/static/ox-hugo/preumont18_nearly_collocated_schematic.png differ
diff --git a/static/ox-hugo/preumont18_neglected_modes.png b/static/ox-hugo/preumont18_neglected_modes.png
new file mode 100644
index 0000000..558fb77
Binary files /dev/null and b/static/ox-hugo/preumont18_neglected_modes.png differ
diff --git a/static/ox-hugo/preumont18_piezo_admittance_curve.png b/static/ox-hugo/preumont18_piezo_admittance_curve.png
new file mode 100644
index 0000000..6555796
Binary files /dev/null and b/static/ox-hugo/preumont18_piezo_admittance_curve.png differ
diff --git a/static/ox-hugo/preumont18_piezo_discrete.png b/static/ox-hugo/preumont18_piezo_discrete.png
new file mode 100644
index 0000000..8e5e4b9
Binary files /dev/null and b/static/ox-hugo/preumont18_piezo_discrete.png differ
diff --git a/static/ox-hugo/preumont18_piezo_stack.png b/static/ox-hugo/preumont18_piezo_stack.png
new file mode 100644
index 0000000..8fb734b
Binary files /dev/null and b/static/ox-hugo/preumont18_piezo_stack.png differ
diff --git a/static/ox-hugo/preumont18_piezo_stack_admittance.png b/static/ox-hugo/preumont18_piezo_stack_admittance.png
new file mode 100644
index 0000000..91665f0
Binary files /dev/null and b/static/ox-hugo/preumont18_piezo_stack_admittance.png differ
diff --git a/static/ox-hugo/preumont18_proof_mass_actuator.png b/static/ox-hugo/preumont18_proof_mass_actuator.png
new file mode 100644
index 0000000..175e7f7
Binary files /dev/null and b/static/ox-hugo/preumont18_proof_mass_actuator.png differ
diff --git a/static/ox-hugo/preumont18_proof_mass_tf.png b/static/ox-hugo/preumont18_proof_mass_tf.png
new file mode 100644
index 0000000..049d0d3
Binary files /dev/null and b/static/ox-hugo/preumont18_proof_mass_tf.png differ
diff --git a/static/ox-hugo/preumont18_smart_materials.png b/static/ox-hugo/preumont18_smart_materials.png
new file mode 100644
index 0000000..36a1780
Binary files /dev/null and b/static/ox-hugo/preumont18_smart_materials.png differ
diff --git a/static/ox-hugo/preumont18_voice_coil_schematic.png b/static/ox-hugo/preumont18_voice_coil_schematic.png
new file mode 100644
index 0000000..97d9d62
Binary files /dev/null and b/static/ox-hugo/preumont18_voice_coil_schematic.png differ
diff --git a/static/ox-hugo/probability_density_function_adc.png b/static/ox-hugo/probability_density_function_adc.png
new file mode 100644
index 0000000..0b732af
Binary files /dev/null and b/static/ox-hugo/probability_density_function_adc.png differ
diff --git a/static/ox-hugo/psd_comp_pwelch_manual_example.png b/static/ox-hugo/psd_comp_pwelch_manual_example.png
new file mode 100644
index 0000000..6944fe1
Binary files /dev/null and b/static/ox-hugo/psd_comp_pwelch_manual_example.png differ
diff --git a/static/ox-hugo/psd_manual_example.png b/static/ox-hugo/psd_manual_example.png
new file mode 100644
index 0000000..4cd52a7
Binary files /dev/null and b/static/ox-hugo/psd_manual_example.png differ
diff --git a/static/ox-hugo/quadrant_photodiode_relation_meas.png b/static/ox-hugo/quadrant_photodiode_relation_meas.png
new file mode 100644
index 0000000..8bc841b
Binary files /dev/null and b/static/ox-hugo/quadrant_photodiode_relation_meas.png differ
diff --git a/static/ox-hugo/quadrant_photodiode_schematic.png b/static/ox-hugo/quadrant_photodiode_schematic.png
new file mode 100644
index 0000000..579c5fa
Binary files /dev/null and b/static/ox-hugo/quadrant_photodiode_schematic.png differ
diff --git a/static/ox-hugo/quadrant_photodiode_spot_size.jpg b/static/ox-hugo/quadrant_photodiode_spot_size.jpg
new file mode 100644
index 0000000..37bb7d9
Binary files /dev/null and b/static/ox-hugo/quadrant_photodiode_spot_size.jpg differ
diff --git a/static/ox-hugo/quadrant_transresistance_amplifier.png b/static/ox-hugo/quadrant_transresistance_amplifier.png
new file mode 100644
index 0000000..4aad242
Binary files /dev/null and b/static/ox-hugo/quadrant_transresistance_amplifier.png differ
diff --git a/static/ox-hugo/quandrant_diode_angle_schematic.png b/static/ox-hugo/quandrant_diode_angle_schematic.png
new file mode 100644
index 0000000..43cd302
Binary files /dev/null and b/static/ox-hugo/quandrant_diode_angle_schematic.png differ
diff --git a/static/ox-hugo/rankers98_1dof_system.png b/static/ox-hugo/rankers98_1dof_system.png
new file mode 100644
index 0000000..5014541
Binary files /dev/null and b/static/ox-hugo/rankers98_1dof_system.png differ
diff --git a/static/ox-hugo/rankers98_2dof_act_flex_frf.png b/static/ox-hugo/rankers98_2dof_act_flex_frf.png
new file mode 100644
index 0000000..5beba2c
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_act_flex_frf.png differ
diff --git a/static/ox-hugo/rankers98_2dof_act_flex_meas_load_frf.png b/static/ox-hugo/rankers98_2dof_act_flex_meas_load_frf.png
new file mode 100644
index 0000000..3883b95
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_act_flex_meas_load_frf.png differ
diff --git a/static/ox-hugo/rankers98_2dof_actuator_flexibility.png b/static/ox-hugo/rankers98_2dof_actuator_flexibility.png
new file mode 100644
index 0000000..36c0d2a
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_actuator_flexibility.png differ
diff --git a/static/ox-hugo/rankers98_2dof_example_frf.png b/static/ox-hugo/rankers98_2dof_example_frf.png
new file mode 100644
index 0000000..fcf7816
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_example_frf.png differ
diff --git a/static/ox-hugo/rankers98_2dof_guiding_flex.png b/static/ox-hugo/rankers98_2dof_guiding_flex.png
new file mode 100644
index 0000000..bf01314
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_guiding_flex.png differ
diff --git a/static/ox-hugo/rankers98_2dof_guiding_flex_rock_mode.png b/static/ox-hugo/rankers98_2dof_guiding_flex_rock_mode.png
new file mode 100644
index 0000000..91a4462
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_guiding_flex_rock_mode.png differ
diff --git a/static/ox-hugo/rankers98_2dof_guiding_flex_x_mode.png b/static/ox-hugo/rankers98_2dof_guiding_flex_x_mode.png
new file mode 100644
index 0000000..85f4e3c
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_guiding_flex_x_mode.png differ
diff --git a/static/ox-hugo/rankers98_2dof_modes_act_flex.png b/static/ox-hugo/rankers98_2dof_modes_act_flex.png
new file mode 100644
index 0000000..03cd47a
Binary files /dev/null and b/static/ox-hugo/rankers98_2dof_modes_act_flex.png differ
diff --git a/static/ox-hugo/rankers98_actuator_flexibility.png b/static/ox-hugo/rankers98_actuator_flexibility.png
new file mode 100644
index 0000000..630a5f2
Binary files /dev/null and b/static/ox-hugo/rankers98_actuator_flexibility.png differ
diff --git a/static/ox-hugo/rankers98_addition_of_motion.png b/static/ox-hugo/rankers98_addition_of_motion.png
new file mode 100644
index 0000000..c5f1b99
Binary files /dev/null and b/static/ox-hugo/rankers98_addition_of_motion.png differ
diff --git a/static/ox-hugo/rankers98_basic_el_mech_servo.png b/static/ox-hugo/rankers98_basic_el_mech_servo.png
new file mode 100644
index 0000000..53990d0
Binary files /dev/null and b/static/ox-hugo/rankers98_basic_el_mech_servo.png differ
diff --git a/static/ox-hugo/rankers98_basic_elastic_struct.png b/static/ox-hugo/rankers98_basic_elastic_struct.png
new file mode 100644
index 0000000..796fdd6
Binary files /dev/null and b/static/ox-hugo/rankers98_basic_elastic_struct.png differ
diff --git a/static/ox-hugo/rankers98_concept_1dof_evaluation.png b/static/ox-hugo/rankers98_concept_1dof_evaluation.png
new file mode 100644
index 0000000..94de9b5
Binary files /dev/null and b/static/ox-hugo/rankers98_concept_1dof_evaluation.png differ
diff --git a/static/ox-hugo/rankers98_conversion_modal_to_physical.png b/static/ox-hugo/rankers98_conversion_modal_to_physical.png
new file mode 100644
index 0000000..90800a4
Binary files /dev/null and b/static/ox-hugo/rankers98_conversion_modal_to_physical.png differ
diff --git a/static/ox-hugo/rankers98_example_2dof.png b/static/ox-hugo/rankers98_example_2dof.png
new file mode 100644
index 0000000..6d4707b
Binary files /dev/null and b/static/ox-hugo/rankers98_example_2dof.png differ
diff --git a/static/ox-hugo/rankers98_example_2dof_effective_modal.png b/static/ox-hugo/rankers98_example_2dof_effective_modal.png
new file mode 100644
index 0000000..273cefc
Binary files /dev/null and b/static/ox-hugo/rankers98_example_2dof_effective_modal.png differ
diff --git a/static/ox-hugo/rankers98_example_2dof_modal.png b/static/ox-hugo/rankers98_example_2dof_modal.png
new file mode 100644
index 0000000..fe125bb
Binary files /dev/null and b/static/ox-hugo/rankers98_example_2dof_modal.png differ
diff --git a/static/ox-hugo/rankers98_example_3dof_sensitivity.png b/static/ox-hugo/rankers98_example_3dof_sensitivity.png
new file mode 100644
index 0000000..ed72a92
Binary files /dev/null and b/static/ox-hugo/rankers98_example_3dof_sensitivity.png differ
diff --git a/static/ox-hugo/rankers98_example_sensitivity_2dof.png b/static/ox-hugo/rankers98_example_sensitivity_2dof.png
new file mode 100644
index 0000000..fc8977e
Binary files /dev/null and b/static/ox-hugo/rankers98_example_sensitivity_2dof.png differ
diff --git a/static/ox-hugo/rankers98_feedforward_example.png b/static/ox-hugo/rankers98_feedforward_example.png
new file mode 100644
index 0000000..e0cb6fb
Binary files /dev/null and b/static/ox-hugo/rankers98_feedforward_example.png differ
diff --git a/static/ox-hugo/rankers98_final_frf_alpha.png b/static/ox-hugo/rankers98_final_frf_alpha.png
new file mode 100644
index 0000000..4df5ace
Binary files /dev/null and b/static/ox-hugo/rankers98_final_frf_alpha.png differ
diff --git a/static/ox-hugo/rankers98_frame_dynamics_2dof.png b/static/ox-hugo/rankers98_frame_dynamics_2dof.png
new file mode 100644
index 0000000..5c9a057
Binary files /dev/null and b/static/ox-hugo/rankers98_frame_dynamics_2dof.png differ
diff --git a/static/ox-hugo/rankers98_frf_effect_alpha.png b/static/ox-hugo/rankers98_frf_effect_alpha.png
new file mode 100644
index 0000000..55f0a40
Binary files /dev/null and b/static/ox-hugo/rankers98_frf_effect_alpha.png differ
diff --git a/static/ox-hugo/rankers98_guiding_flexibility_planar.png b/static/ox-hugo/rankers98_guiding_flexibility_planar.png
new file mode 100644
index 0000000..440b359
Binary files /dev/null and b/static/ox-hugo/rankers98_guiding_flexibility_planar.png differ
diff --git a/static/ox-hugo/rankers98_ideal_bode_nyquist.png b/static/ox-hugo/rankers98_ideal_bode_nyquist.png
new file mode 100644
index 0000000..95126f1
Binary files /dev/null and b/static/ox-hugo/rankers98_ideal_bode_nyquist.png differ
diff --git a/static/ox-hugo/rankers98_ideal_frf_pid.png b/static/ox-hugo/rankers98_ideal_frf_pid.png
new file mode 100644
index 0000000..4ffbacc
Binary files /dev/null and b/static/ox-hugo/rankers98_ideal_frf_pid.png differ
diff --git a/static/ox-hugo/rankers98_illustration_first_two_steps.png b/static/ox-hugo/rankers98_illustration_first_two_steps.png
new file mode 100644
index 0000000..0ca70e0
Binary files /dev/null and b/static/ox-hugo/rankers98_illustration_first_two_steps.png differ
diff --git a/static/ox-hugo/rankers98_interaction_shapes.png b/static/ox-hugo/rankers98_interaction_shapes.png
new file mode 100644
index 0000000..89bdde1
Binary files /dev/null and b/static/ox-hugo/rankers98_interaction_shapes.png differ
diff --git a/static/ox-hugo/rankers98_lever_representation_with_force.png b/static/ox-hugo/rankers98_lever_representation_with_force.png
new file mode 100644
index 0000000..6590f2f
Binary files /dev/null and b/static/ox-hugo/rankers98_lever_representation_with_force.png differ
diff --git a/static/ox-hugo/rankers98_limited_m_k_stationary_machine_part.png b/static/ox-hugo/rankers98_limited_m_k_stationary_machine_part.png
new file mode 100644
index 0000000..bb98bcd
Binary files /dev/null and b/static/ox-hugo/rankers98_limited_m_k_stationary_machine_part.png differ
diff --git a/static/ox-hugo/rankers98_mechanical_servo_system.png b/static/ox-hugo/rankers98_mechanical_servo_system.png
new file mode 100644
index 0000000..d3945d1
Binary files /dev/null and b/static/ox-hugo/rankers98_mechanical_servo_system.png differ
diff --git a/static/ox-hugo/rankers98_mode_2_lumped_masses.png b/static/ox-hugo/rankers98_mode_2_lumped_masses.png
new file mode 100644
index 0000000..123b1dd
Binary files /dev/null and b/static/ox-hugo/rankers98_mode_2_lumped_masses.png differ
diff --git a/static/ox-hugo/rankers98_mode_new_representation.png b/static/ox-hugo/rankers98_mode_new_representation.png
new file mode 100644
index 0000000..6aceb05
Binary files /dev/null and b/static/ox-hugo/rankers98_mode_new_representation.png differ
diff --git a/static/ox-hugo/rankers98_mode_representation_guideline.png b/static/ox-hugo/rankers98_mode_representation_guideline.png
new file mode 100644
index 0000000..8774d31
Binary files /dev/null and b/static/ox-hugo/rankers98_mode_representation_guideline.png differ
diff --git a/static/ox-hugo/rankers98_mode_trad_representation.png b/static/ox-hugo/rankers98_mode_trad_representation.png
new file mode 100644
index 0000000..55ffc97
Binary files /dev/null and b/static/ox-hugo/rankers98_mode_trad_representation.png differ
diff --git a/static/ox-hugo/rankers98_pattern_generator.png b/static/ox-hugo/rankers98_pattern_generator.png
new file mode 100644
index 0000000..5319e9a
Binary files /dev/null and b/static/ox-hugo/rankers98_pattern_generator.png differ
diff --git a/static/ox-hugo/rankers98_pattern_generator_concept.png b/static/ox-hugo/rankers98_pattern_generator_concept.png
new file mode 100644
index 0000000..c0e1f5f
Binary files /dev/null and b/static/ox-hugo/rankers98_pattern_generator_concept.png differ
diff --git a/static/ox-hugo/rankers98_pattern_generator_rigid_body.png b/static/ox-hugo/rankers98_pattern_generator_rigid_body.png
new file mode 100644
index 0000000..f380d89
Binary files /dev/null and b/static/ox-hugo/rankers98_pattern_generator_rigid_body.png differ
diff --git a/static/ox-hugo/rankers98_pid_amplitude.png b/static/ox-hugo/rankers98_pid_amplitude.png
new file mode 100644
index 0000000..ab9ed81
Binary files /dev/null and b/static/ox-hugo/rankers98_pid_amplitude.png differ
diff --git a/static/ox-hugo/rankers98_pole_zero_high_freq.png b/static/ox-hugo/rankers98_pole_zero_high_freq.png
new file mode 100644
index 0000000..cf9dced
Binary files /dev/null and b/static/ox-hugo/rankers98_pole_zero_high_freq.png differ
diff --git a/static/ox-hugo/rankers98_pole_zero_low_freq.png b/static/ox-hugo/rankers98_pole_zero_low_freq.png
new file mode 100644
index 0000000..5666b3f
Binary files /dev/null and b/static/ox-hugo/rankers98_pole_zero_low_freq.png differ
diff --git a/static/ox-hugo/rankers98_pole_zero_medium_freq.png b/static/ox-hugo/rankers98_pole_zero_medium_freq.png
new file mode 100644
index 0000000..e9f0fe7
Binary files /dev/null and b/static/ox-hugo/rankers98_pole_zero_medium_freq.png differ
diff --git a/static/ox-hugo/rankers98_representation_user_dof.png b/static/ox-hugo/rankers98_representation_user_dof.png
new file mode 100644
index 0000000..0d14ae5
Binary files /dev/null and b/static/ox-hugo/rankers98_representation_user_dof.png differ
diff --git a/static/ox-hugo/rankers98_servo_system.png b/static/ox-hugo/rankers98_servo_system.png
new file mode 100644
index 0000000..9de921f
Binary files /dev/null and b/static/ox-hugo/rankers98_servo_system.png differ
diff --git a/static/ox-hugo/rankers98_steps_modelling.png b/static/ox-hugo/rankers98_steps_modelling.png
new file mode 100644
index 0000000..747a4b9
Binary files /dev/null and b/static/ox-hugo/rankers98_steps_modelling.png differ
diff --git a/static/ox-hugo/rankers98_substructuring_technique.png b/static/ox-hugo/rankers98_substructuring_technique.png
new file mode 100644
index 0000000..b82c5af
Binary files /dev/null and b/static/ox-hugo/rankers98_substructuring_technique.png differ
diff --git a/static/ox-hugo/rankers98_suspension_mode_machine.png b/static/ox-hugo/rankers98_suspension_mode_machine.png
new file mode 100644
index 0000000..c1b5731
Binary files /dev/null and b/static/ox-hugo/rankers98_suspension_mode_machine.png differ
diff --git a/static/ox-hugo/rankers98_system_performance_spec.png b/static/ox-hugo/rankers98_system_performance_spec.png
new file mode 100644
index 0000000..98e7876
Binary files /dev/null and b/static/ox-hugo/rankers98_system_performance_spec.png differ
diff --git a/static/ox-hugo/rankers98_zero_pole_high_freq.png b/static/ox-hugo/rankers98_zero_pole_high_freq.png
new file mode 100644
index 0000000..dd106a3
Binary files /dev/null and b/static/ox-hugo/rankers98_zero_pole_high_freq.png differ
diff --git a/static/ox-hugo/rankers98_zero_pole_low_freq.png b/static/ox-hugo/rankers98_zero_pole_low_freq.png
new file mode 100644
index 0000000..6df893b
Binary files /dev/null and b/static/ox-hugo/rankers98_zero_pole_low_freq.png differ
diff --git a/static/ox-hugo/rankers98_zero_pole_medium_freq.png b/static/ox-hugo/rankers98_zero_pole_medium_freq.png
new file mode 100644
index 0000000..a72d57b
Binary files /dev/null and b/static/ox-hugo/rankers98_zero_pole_medium_freq.png differ
diff --git a/static/ox-hugo/reference_tracking_ramp_one_int.png b/static/ox-hugo/reference_tracking_ramp_one_int.png
new file mode 100644
index 0000000..73c0544
Binary files /dev/null and b/static/ox-hugo/reference_tracking_ramp_one_int.png differ
diff --git a/static/ox-hugo/rotation_stage_rt100bs_asd_errors.png b/static/ox-hugo/rotation_stage_rt100bs_asd_errors.png
new file mode 100644
index 0000000..c5a09f3
Binary files /dev/null and b/static/ox-hugo/rotation_stage_rt100bs_asd_errors.png differ
diff --git a/static/ox-hugo/rotation_stage_rt100bs_cas_error.png b/static/ox-hugo/rotation_stage_rt100bs_cas_error.png
new file mode 100644
index 0000000..9f83189
Binary files /dev/null and b/static/ox-hugo/rotation_stage_rt100bs_cas_error.png differ
diff --git a/static/ox-hugo/rotation_stage_rt150u_asd_errors.png b/static/ox-hugo/rotation_stage_rt150u_asd_errors.png
new file mode 100644
index 0000000..7efe047
Binary files /dev/null and b/static/ox-hugo/rotation_stage_rt150u_asd_errors.png differ
diff --git a/static/ox-hugo/rotation_stage_rt150u_cas_error.png b/static/ox-hugo/rotation_stage_rt150u_cas_error.png
new file mode 100644
index 0000000..6267a62
Binary files /dev/null and b/static/ox-hugo/rotation_stage_rt150u_cas_error.png differ
diff --git a/static/ox-hugo/rotation_stage_rt150u_xyz_errors.png b/static/ox-hugo/rotation_stage_rt150u_xyz_errors.png
new file mode 100644
index 0000000..32ab76d
Binary files /dev/null and b/static/ox-hugo/rotation_stage_rt150u_xyz_errors.png differ
diff --git a/static/ox-hugo/schmidt20_bode_plot.svg b/static/ox-hugo/schmidt20_bode_plot.svg
new file mode 100644
index 0000000..63909a4
--- /dev/null
+++ b/static/ox-hugo/schmidt20_bode_plot.svg
@@ -0,0 +1,6565 @@
+
+
diff --git a/static/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg b/static/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg
new file mode 100644
index 0000000..99e3745
--- /dev/null
+++ b/static/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg
@@ -0,0 +1,5613 @@
+
+
diff --git a/static/ox-hugo/schmidt20_bode_plot_scanning.svg b/static/ox-hugo/schmidt20_bode_plot_scanning.svg
new file mode 100644
index 0000000..e775c34
--- /dev/null
+++ b/static/ox-hugo/schmidt20_bode_plot_scanning.svg
@@ -0,0 +1,5679 @@
+
+
diff --git a/static/ox-hugo/schmidt20_cable_topology.svg b/static/ox-hugo/schmidt20_cable_topology.svg
new file mode 100644
index 0000000..0fb7352
--- /dev/null
+++ b/static/ox-hugo/schmidt20_cable_topology.svg
@@ -0,0 +1,5661 @@
+
+
diff --git a/static/ox-hugo/schmidt20_digital_implementation.svg b/static/ox-hugo/schmidt20_digital_implementation.svg
new file mode 100644
index 0000000..53031c7
--- /dev/null
+++ b/static/ox-hugo/schmidt20_digital_implementation.svg
@@ -0,0 +1,4493 @@
+
+
diff --git a/static/ox-hugo/schmidt20_digital_number_representation.svg b/static/ox-hugo/schmidt20_digital_number_representation.svg
new file mode 100644
index 0000000..346e14e
--- /dev/null
+++ b/static/ox-hugo/schmidt20_digital_number_representation.svg
@@ -0,0 +1,6118 @@
+
+
diff --git a/static/ox-hugo/schmidt20_dir_filter_cascaded_sos.svg b/static/ox-hugo/schmidt20_dir_filter_cascaded_sos.svg
new file mode 100644
index 0000000..63b4b39
--- /dev/null
+++ b/static/ox-hugo/schmidt20_dir_filter_cascaded_sos.svg
@@ -0,0 +1,4182 @@
+
+
diff --git a/static/ox-hugo/schmidt20_electrical_field.svg b/static/ox-hugo/schmidt20_electrical_field.svg
new file mode 100644
index 0000000..19c6705
--- /dev/null
+++ b/static/ox-hugo/schmidt20_electrical_field.svg
@@ -0,0 +1,3903 @@
+
+
diff --git a/static/ox-hugo/schmidt20_electrostatic_shielding.svg b/static/ox-hugo/schmidt20_electrostatic_shielding.svg
new file mode 100644
index 0000000..a76d34a
--- /dev/null
+++ b/static/ox-hugo/schmidt20_electrostatic_shielding.svg
@@ -0,0 +1,5231 @@
+
+
diff --git a/static/ox-hugo/schmidt20_energy_actuator_system.svg b/static/ox-hugo/schmidt20_energy_actuator_system.svg
new file mode 100644
index 0000000..b753c5f
--- /dev/null
+++ b/static/ox-hugo/schmidt20_energy_actuator_system.svg
@@ -0,0 +1,4780 @@
+
+
diff --git a/static/ox-hugo/schmidt20_feedback_control_diagram.svg b/static/ox-hugo/schmidt20_feedback_control_diagram.svg
new file mode 100644
index 0000000..f2f7fac
--- /dev/null
+++ b/static/ox-hugo/schmidt20_feedback_control_diagram.svg
@@ -0,0 +1,5483 @@
+
+
diff --git a/static/ox-hugo/schmidt20_feedback_full_simplified.svg b/static/ox-hugo/schmidt20_feedback_full_simplified.svg
new file mode 100644
index 0000000..2c07291
--- /dev/null
+++ b/static/ox-hugo/schmidt20_feedback_full_simplified.svg
@@ -0,0 +1,5851 @@
+
+
diff --git a/static/ox-hugo/schmidt20_feedforward_control_diagram.svg b/static/ox-hugo/schmidt20_feedforward_control_diagram.svg
new file mode 100644
index 0000000..9ad8d58
--- /dev/null
+++ b/static/ox-hugo/schmidt20_feedforward_control_diagram.svg
@@ -0,0 +1,4565 @@
+
+
diff --git a/static/ox-hugo/schmidt20_fourier_sawtooth.svg b/static/ox-hugo/schmidt20_fourier_sawtooth.svg
new file mode 100644
index 0000000..1d17695
--- /dev/null
+++ b/static/ox-hugo/schmidt20_fourier_sawtooth.svg
@@ -0,0 +1,5546 @@
+
+
diff --git a/static/ox-hugo/schmidt20_fourier_square.svg b/static/ox-hugo/schmidt20_fourier_square.svg
new file mode 100644
index 0000000..33cf4ff
--- /dev/null
+++ b/static/ox-hugo/schmidt20_fourier_square.svg
@@ -0,0 +1,6389 @@
+
+
diff --git a/static/ox-hugo/schmidt20_fourier_triangle.svg b/static/ox-hugo/schmidt20_fourier_triangle.svg
new file mode 100644
index 0000000..4892fe2
--- /dev/null
+++ b/static/ox-hugo/schmidt20_fourier_triangle.svg
@@ -0,0 +1,6432 @@
+
+
diff --git a/static/ox-hugo/schmidt20_gray_code.svg b/static/ox-hugo/schmidt20_gray_code.svg
new file mode 100644
index 0000000..13b345a
--- /dev/null
+++ b/static/ox-hugo/schmidt20_gray_code.svg
@@ -0,0 +1,19788 @@
+
+
diff --git a/static/ox-hugo/schmidt20_ground_loops.svg b/static/ox-hugo/schmidt20_ground_loops.svg
new file mode 100644
index 0000000..854b8c3
--- /dev/null
+++ b/static/ox-hugo/schmidt20_ground_loops.svg
@@ -0,0 +1,3277 @@
+
+
diff --git a/static/ox-hugo/schmidt20_impulse_response_location.svg b/static/ox-hugo/schmidt20_impulse_response_location.svg
new file mode 100644
index 0000000..f5a3532
--- /dev/null
+++ b/static/ox-hugo/schmidt20_impulse_response_location.svg
@@ -0,0 +1,5827 @@
+
+
diff --git a/static/ox-hugo/schmidt20_input_shaping_example.svg b/static/ox-hugo/schmidt20_input_shaping_example.svg
new file mode 100644
index 0000000..719dd0d
--- /dev/null
+++ b/static/ox-hugo/schmidt20_input_shaping_example.svg
@@ -0,0 +1,6493 @@
+
+
diff --git a/static/ox-hugo/schmidt20_irr_sos_structure.svg b/static/ox-hugo/schmidt20_irr_sos_structure.svg
new file mode 100644
index 0000000..26cbd78
--- /dev/null
+++ b/static/ox-hugo/schmidt20_irr_sos_structure.svg
@@ -0,0 +1,4905 @@
+
+
diff --git a/static/ox-hugo/schmidt20_irr_structure.svg b/static/ox-hugo/schmidt20_irr_structure.svg
new file mode 100644
index 0000000..69cffaa
--- /dev/null
+++ b/static/ox-hugo/schmidt20_irr_structure.svg
@@ -0,0 +1,6142 @@
+
+
diff --git a/static/ox-hugo/schmidt20_mechanical_wave.svg b/static/ox-hugo/schmidt20_mechanical_wave.svg
new file mode 100644
index 0000000..7aded84
--- /dev/null
+++ b/static/ox-hugo/schmidt20_mechanical_wave.svg
@@ -0,0 +1,4507 @@
+
+
diff --git a/static/ox-hugo/schmidt20_nyquist_plot.svg b/static/ox-hugo/schmidt20_nyquist_plot.svg
new file mode 100644
index 0000000..5cb3203
--- /dev/null
+++ b/static/ox-hugo/schmidt20_nyquist_plot.svg
@@ -0,0 +1,4886 @@
+
+
diff --git a/static/ox-hugo/schmidt20_nyquist_plot_stable.svg b/static/ox-hugo/schmidt20_nyquist_plot_stable.svg
new file mode 100644
index 0000000..9b7b5f8
--- /dev/null
+++ b/static/ox-hugo/schmidt20_nyquist_plot_stable.svg
@@ -0,0 +1,7317 @@
+
+
diff --git a/static/ox-hugo/schmidt20_optimized_fir_filter_structure.svg b/static/ox-hugo/schmidt20_optimized_fir_filter_structure.svg
new file mode 100644
index 0000000..ded1660
--- /dev/null
+++ b/static/ox-hugo/schmidt20_optimized_fir_filter_structure.svg
@@ -0,0 +1,4085 @@
+
+
diff --git a/static/ox-hugo/schmidt20_phase_gain_margin_bode.svg b/static/ox-hugo/schmidt20_phase_gain_margin_bode.svg
new file mode 100644
index 0000000..ec5ff8f
--- /dev/null
+++ b/static/ox-hugo/schmidt20_phase_gain_margin_bode.svg
@@ -0,0 +1,5309 @@
+
+
diff --git a/static/ox-hugo/schmidt20_psd_cps.svg b/static/ox-hugo/schmidt20_psd_cps.svg
new file mode 100644
index 0000000..5c2192d
--- /dev/null
+++ b/static/ox-hugo/schmidt20_psd_cps.svg
@@ -0,0 +1,9135 @@
+
+
diff --git a/static/ox-hugo/schmidt20_s_z_planes.svg b/static/ox-hugo/schmidt20_s_z_planes.svg
new file mode 100644
index 0000000..04142b5
--- /dev/null
+++ b/static/ox-hugo/schmidt20_s_z_planes.svg
@@ -0,0 +1,4173 @@
+
+
diff --git a/static/ox-hugo/schmidt20_schmitt_trigger.svg b/static/ox-hugo/schmidt20_schmitt_trigger.svg
new file mode 100644
index 0000000..dbf372a
--- /dev/null
+++ b/static/ox-hugo/schmidt20_schmitt_trigger.svg
@@ -0,0 +1,4377 @@
+
+
diff --git a/static/ox-hugo/schmidt20_signal_interference.svg b/static/ox-hugo/schmidt20_signal_interference.svg
new file mode 100644
index 0000000..92372c7
--- /dev/null
+++ b/static/ox-hugo/schmidt20_signal_interference.svg
@@ -0,0 +1,5971 @@
+
+
diff --git a/static/ox-hugo/schmidt20_trajectory_profile.svg b/static/ox-hugo/schmidt20_trajectory_profile.svg
new file mode 100644
index 0000000..f0f6c1a
--- /dev/null
+++ b/static/ox-hugo/schmidt20_trajectory_profile.svg
@@ -0,0 +1,6088 @@
+
+
diff --git a/static/ox-hugo/schmidt20_transversal_filter_structure.svg b/static/ox-hugo/schmidt20_transversal_filter_structure.svg
new file mode 100644
index 0000000..1e1c613
--- /dev/null
+++ b/static/ox-hugo/schmidt20_transversal_filter_structure.svg
@@ -0,0 +1,4011 @@
+
+
diff --git a/static/ox-hugo/schmidt20_walk_control_loop.svg b/static/ox-hugo/schmidt20_walk_control_loop.svg
new file mode 100644
index 0000000..5d07080
--- /dev/null
+++ b/static/ox-hugo/schmidt20_walk_control_loop.svg
@@ -0,0 +1,6577 @@
+
+
diff --git a/static/ox-hugo/schmidt20_window_functions.svg b/static/ox-hugo/schmidt20_window_functions.svg
new file mode 100644
index 0000000..5de4d4e
--- /dev/null
+++ b/static/ox-hugo/schmidt20_window_functions.svg
@@ -0,0 +1,2793 @@
+
+
diff --git a/static/ox-hugo/siso_identification_schematic_simplier.png b/static/ox-hugo/siso_identification_schematic_simplier.png
new file mode 100644
index 0000000..838994c
Binary files /dev/null and b/static/ox-hugo/siso_identification_schematic_simplier.png differ
diff --git a/static/ox-hugo/siso_identification_schematic_simplier_closed_loop.png b/static/ox-hugo/siso_identification_schematic_simplier_closed_loop.png
new file mode 100644
index 0000000..dffd119
Binary files /dev/null and b/static/ox-hugo/siso_identification_schematic_simplier_closed_loop.png differ
diff --git a/static/ox-hugo/siso_identification_schematic_simplier_open_loop.png b/static/ox-hugo/siso_identification_schematic_simplier_open_loop.png
new file mode 100644
index 0000000..d53a699
Binary files /dev/null and b/static/ox-hugo/siso_identification_schematic_simplier_open_loop.png differ
diff --git a/static/ox-hugo/skogestad07_additive_uncertainty.png b/static/ox-hugo/skogestad07_additive_uncertainty.png
new file mode 100644
index 0000000..1831fee
Binary files /dev/null and b/static/ox-hugo/skogestad07_additive_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_block_diagonal_scalings.png b/static/ox-hugo/skogestad07_block_diagonal_scalings.png
new file mode 100644
index 0000000..91198c1
Binary files /dev/null and b/static/ox-hugo/skogestad07_block_diagonal_scalings.png differ
diff --git a/static/ox-hugo/skogestad07_cascade_control.png b/static/ox-hugo/skogestad07_cascade_control.png
new file mode 100644
index 0000000..9af2f9c
Binary files /dev/null and b/static/ox-hugo/skogestad07_cascade_control.png differ
diff --git a/static/ox-hugo/skogestad07_cascade_control_two_layers.png b/static/ox-hugo/skogestad07_cascade_control_two_layers.png
new file mode 100644
index 0000000..245fd4b
Binary files /dev/null and b/static/ox-hugo/skogestad07_cascade_control_two_layers.png differ
diff --git a/static/ox-hugo/skogestad07_cascade_extra_input.png b/static/ox-hugo/skogestad07_cascade_extra_input.png
new file mode 100644
index 0000000..038b774
Binary files /dev/null and b/static/ox-hugo/skogestad07_cascade_extra_input.png differ
diff --git a/static/ox-hugo/skogestad07_cascade_extra_meas.png b/static/ox-hugo/skogestad07_cascade_extra_meas.png
new file mode 100644
index 0000000..caa358f
Binary files /dev/null and b/static/ox-hugo/skogestad07_cascade_extra_meas.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_2dof_alt.png b/static/ox-hugo/skogestad07_classical_feedback_2dof_alt.png
new file mode 100644
index 0000000..aa61471
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_2dof_alt.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_2dof_simple.png b/static/ox-hugo/skogestad07_classical_feedback_2dof_simple.png
new file mode 100644
index 0000000..754ad1e
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_2dof_simple.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_alt.png b/static/ox-hugo/skogestad07_classical_feedback_alt.png
new file mode 100644
index 0000000..43620e3
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_alt.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_bis.png b/static/ox-hugo/skogestad07_classical_feedback_bis.png
new file mode 100644
index 0000000..47dc90a
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_bis.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_meas.png b/static/ox-hugo/skogestad07_classical_feedback_meas.png
new file mode 100644
index 0000000..93e65a4
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_meas.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_sep.png b/static/ox-hugo/skogestad07_classical_feedback_sep.png
new file mode 100644
index 0000000..5773d9b
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_sep.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_small.png b/static/ox-hugo/skogestad07_classical_feedback_small.png
new file mode 100644
index 0000000..8dddcfd
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_small.png differ
diff --git a/static/ox-hugo/skogestad07_classical_feedback_stability.png b/static/ox-hugo/skogestad07_classical_feedback_stability.png
new file mode 100644
index 0000000..c245577
Binary files /dev/null and b/static/ox-hugo/skogestad07_classical_feedback_stability.png differ
diff --git a/static/ox-hugo/skogestad07_coprime_uncertainty.png b/static/ox-hugo/skogestad07_coprime_uncertainty.png
new file mode 100644
index 0000000..2f1ee20
Binary files /dev/null and b/static/ox-hugo/skogestad07_coprime_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_coprime_uncertainty_bis.png b/static/ox-hugo/skogestad07_coprime_uncertainty_bis.png
new file mode 100644
index 0000000..24eda70
Binary files /dev/null and b/static/ox-hugo/skogestad07_coprime_uncertainty_bis.png differ
diff --git a/static/ox-hugo/skogestad07_coprime_uncertainty_hinf.png b/static/ox-hugo/skogestad07_coprime_uncertainty_hinf.png
new file mode 100644
index 0000000..9540d82
Binary files /dev/null and b/static/ox-hugo/skogestad07_coprime_uncertainty_hinf.png differ
diff --git a/static/ox-hugo/skogestad07_decentralized_diagonal_control.png b/static/ox-hugo/skogestad07_decentralized_diagonal_control.png
new file mode 100644
index 0000000..265c19e
Binary files /dev/null and b/static/ox-hugo/skogestad07_decentralized_diagonal_control.png differ
diff --git a/static/ox-hugo/skogestad07_design_trade_off_mimo_gk.png b/static/ox-hugo/skogestad07_design_trade_off_mimo_gk.png
new file mode 100644
index 0000000..40cff7a
Binary files /dev/null and b/static/ox-hugo/skogestad07_design_trade_off_mimo_gk.png differ
diff --git a/static/ox-hugo/skogestad07_dk_iter_d_scale.png b/static/ox-hugo/skogestad07_dk_iter_d_scale.png
new file mode 100644
index 0000000..b670b5b
Binary files /dev/null and b/static/ox-hugo/skogestad07_dk_iter_d_scale.png differ
diff --git a/static/ox-hugo/skogestad07_dk_iter_mu.png b/static/ox-hugo/skogestad07_dk_iter_mu.png
new file mode 100644
index 0000000..d998c54
Binary files /dev/null and b/static/ox-hugo/skogestad07_dk_iter_mu.png differ
diff --git a/static/ox-hugo/skogestad07_general_control.png b/static/ox-hugo/skogestad07_general_control.png
new file mode 100644
index 0000000..3266b49
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control.png differ
diff --git a/static/ox-hugo/skogestad07_general_control_Mdelta.png b/static/ox-hugo/skogestad07_general_control_Mdelta.png
new file mode 100644
index 0000000..7ee754b
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control_Mdelta.png differ
diff --git a/static/ox-hugo/skogestad07_general_control_Mdelta_bis.png b/static/ox-hugo/skogestad07_general_control_Mdelta_bis.png
new file mode 100644
index 0000000..7ee754b
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control_Mdelta_bis.png differ
diff --git a/static/ox-hugo/skogestad07_general_control_Ndelta.png b/static/ox-hugo/skogestad07_general_control_Ndelta.png
new file mode 100644
index 0000000..0477a6e
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control_Ndelta.png differ
diff --git a/static/ox-hugo/skogestad07_general_control_delta.png b/static/ox-hugo/skogestad07_general_control_delta.png
new file mode 100644
index 0000000..b5c0b16
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control_delta.png differ
diff --git a/static/ox-hugo/skogestad07_general_control_names.png b/static/ox-hugo/skogestad07_general_control_names.png
new file mode 100644
index 0000000..6cfe45c
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control_names.png differ
diff --git a/static/ox-hugo/skogestad07_general_control_names_bis.png b/static/ox-hugo/skogestad07_general_control_names_bis.png
new file mode 100644
index 0000000..6cfe45c
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_control_names_bis.png differ
diff --git a/static/ox-hugo/skogestad07_general_plant_weights.png b/static/ox-hugo/skogestad07_general_plant_weights.png
new file mode 100644
index 0000000..b42e5e1
Binary files /dev/null and b/static/ox-hugo/skogestad07_general_plant_weights.png differ
diff --git a/static/ox-hugo/skogestad07_hinf_signal_based.png b/static/ox-hugo/skogestad07_hinf_signal_based.png
new file mode 100644
index 0000000..74d1280
Binary files /dev/null and b/static/ox-hugo/skogestad07_hinf_signal_based.png differ
diff --git a/static/ox-hugo/skogestad07_hinf_signal_based_uncertainty.png b/static/ox-hugo/skogestad07_hinf_signal_based_uncertainty.png
new file mode 100644
index 0000000..475717d
Binary files /dev/null and b/static/ox-hugo/skogestad07_hinf_signal_based_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_hinf_synthesis_2dof.png b/static/ox-hugo/skogestad07_hinf_synthesis_2dof.png
new file mode 100644
index 0000000..659fa8f
Binary files /dev/null and b/static/ox-hugo/skogestad07_hinf_synthesis_2dof.png differ
diff --git a/static/ox-hugo/skogestad07_input_output_uncertainty.png b/static/ox-hugo/skogestad07_input_output_uncertainty.png
new file mode 100644
index 0000000..8ea9e8f
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_output_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_input_uncertainty.png b/static/ox-hugo/skogestad07_input_uncertainty.png
new file mode 100644
index 0000000..39f78f8
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_input_uncertainty_hinf.png b/static/ox-hugo/skogestad07_input_uncertainty_hinf.png
new file mode 100644
index 0000000..f18ee35
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_uncertainty_hinf.png differ
diff --git a/static/ox-hugo/skogestad07_input_uncertainty_set.png b/static/ox-hugo/skogestad07_input_uncertainty_set.png
new file mode 100644
index 0000000..39f78f8
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_uncertainty_set.png differ
diff --git a/static/ox-hugo/skogestad07_input_uncertainty_set_feedback.png b/static/ox-hugo/skogestad07_input_uncertainty_set_feedback.png
new file mode 100644
index 0000000..9c32871
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_uncertainty_set_feedback.png differ
diff --git a/static/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight.png b/static/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight.png
new file mode 100644
index 0000000..acae272
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight.png differ
diff --git a/static/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight_bis.png b/static/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight_bis.png
new file mode 100644
index 0000000..81e53f6
Binary files /dev/null and b/static/ox-hugo/skogestad07_input_uncertainty_set_feedback_weight_bis.png differ
diff --git a/static/ox-hugo/skogestad07_inv_additive_uncertainty.png b/static/ox-hugo/skogestad07_inv_additive_uncertainty.png
new file mode 100644
index 0000000..4224220
Binary files /dev/null and b/static/ox-hugo/skogestad07_inv_additive_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_inv_input_uncertainty.png b/static/ox-hugo/skogestad07_inv_input_uncertainty.png
new file mode 100644
index 0000000..d420607
Binary files /dev/null and b/static/ox-hugo/skogestad07_inv_input_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_inv_output_uncertainty.png b/static/ox-hugo/skogestad07_inv_output_uncertainty.png
new file mode 100644
index 0000000..f4f9d33
Binary files /dev/null and b/static/ox-hugo/skogestad07_inv_output_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_inverse_uncertainty_set.png b/static/ox-hugo/skogestad07_inverse_uncertainty_set.png
new file mode 100644
index 0000000..990ad45
Binary files /dev/null and b/static/ox-hugo/skogestad07_inverse_uncertainty_set.png differ
diff --git a/static/ox-hugo/skogestad07_lag_delay_uncertainty.png b/static/ox-hugo/skogestad07_lag_delay_uncertainty.png
new file mode 100644
index 0000000..eb5438d
Binary files /dev/null and b/static/ox-hugo/skogestad07_lag_delay_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_lqg_integral.png b/static/ox-hugo/skogestad07_lqg_integral.png
new file mode 100644
index 0000000..5f9e402
Binary files /dev/null and b/static/ox-hugo/skogestad07_lqg_integral.png differ
diff --git a/static/ox-hugo/skogestad07_lqg_kalman_filter.png b/static/ox-hugo/skogestad07_lqg_kalman_filter.png
new file mode 100644
index 0000000..d0de6ee
Binary files /dev/null and b/static/ox-hugo/skogestad07_lqg_kalman_filter.png differ
diff --git a/static/ox-hugo/skogestad07_lqg_separation.png b/static/ox-hugo/skogestad07_lqg_separation.png
new file mode 100644
index 0000000..70d3da1
Binary files /dev/null and b/static/ox-hugo/skogestad07_lqg_separation.png differ
diff --git a/static/ox-hugo/skogestad07_margin_requirements.png b/static/ox-hugo/skogestad07_margin_requirements.png
new file mode 100644
index 0000000..0c01bff
Binary files /dev/null and b/static/ox-hugo/skogestad07_margin_requirements.png differ
diff --git a/static/ox-hugo/skogestad07_mixed_sensitivity_dist_rejection.png b/static/ox-hugo/skogestad07_mixed_sensitivity_dist_rejection.png
new file mode 100644
index 0000000..04aedc1
Binary files /dev/null and b/static/ox-hugo/skogestad07_mixed_sensitivity_dist_rejection.png differ
diff --git a/static/ox-hugo/skogestad07_mixed_sensitivity_ref_tracking.png b/static/ox-hugo/skogestad07_mixed_sensitivity_ref_tracking.png
new file mode 100644
index 0000000..b76dec9
Binary files /dev/null and b/static/ox-hugo/skogestad07_mixed_sensitivity_ref_tracking.png differ
diff --git a/static/ox-hugo/skogestad07_mixed_sensitivity_s_t.png b/static/ox-hugo/skogestad07_mixed_sensitivity_s_t.png
new file mode 100644
index 0000000..df2ab28
Binary files /dev/null and b/static/ox-hugo/skogestad07_mixed_sensitivity_s_t.png differ
diff --git a/static/ox-hugo/skogestad07_mu_plot_optimal_k3.png b/static/ox-hugo/skogestad07_mu_plot_optimal_k3.png
new file mode 100644
index 0000000..be22d25
Binary files /dev/null and b/static/ox-hugo/skogestad07_mu_plot_optimal_k3.png differ
diff --git a/static/ox-hugo/skogestad07_mu_plots_distillation.png b/static/ox-hugo/skogestad07_mu_plots_distillation.png
new file mode 100644
index 0000000..6ff8a50
Binary files /dev/null and b/static/ox-hugo/skogestad07_mu_plots_distillation.png differ
diff --git a/static/ox-hugo/skogestad07_neglected_first_order_lag.png b/static/ox-hugo/skogestad07_neglected_first_order_lag.png
new file mode 100644
index 0000000..76384d6
Binary files /dev/null and b/static/ox-hugo/skogestad07_neglected_first_order_lag.png differ
diff --git a/static/ox-hugo/skogestad07_neglected_time_delay.png b/static/ox-hugo/skogestad07_neglected_time_delay.png
new file mode 100644
index 0000000..453132b
Binary files /dev/null and b/static/ox-hugo/skogestad07_neglected_time_delay.png differ
diff --git a/static/ox-hugo/skogestad07_nyquist_performance_condition.png b/static/ox-hugo/skogestad07_nyquist_performance_condition.png
new file mode 100644
index 0000000..09f542d
Binary files /dev/null and b/static/ox-hugo/skogestad07_nyquist_performance_condition.png differ
diff --git a/static/ox-hugo/skogestad07_nyquist_uncertainty.png b/static/ox-hugo/skogestad07_nyquist_uncertainty.png
new file mode 100644
index 0000000..f40d982
Binary files /dev/null and b/static/ox-hugo/skogestad07_nyquist_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_optimize_control_a.png b/static/ox-hugo/skogestad07_optimize_control_a.png
new file mode 100644
index 0000000..986bc58
Binary files /dev/null and b/static/ox-hugo/skogestad07_optimize_control_a.png differ
diff --git a/static/ox-hugo/skogestad07_optimize_control_b.png b/static/ox-hugo/skogestad07_optimize_control_b.png
new file mode 100644
index 0000000..948676c
Binary files /dev/null and b/static/ox-hugo/skogestad07_optimize_control_b.png differ
diff --git a/static/ox-hugo/skogestad07_optimize_control_c.png b/static/ox-hugo/skogestad07_optimize_control_c.png
new file mode 100644
index 0000000..600a676
Binary files /dev/null and b/static/ox-hugo/skogestad07_optimize_control_c.png differ
diff --git a/static/ox-hugo/skogestad07_output_uncertainty.png b/static/ox-hugo/skogestad07_output_uncertainty.png
new file mode 100644
index 0000000..df86dba
Binary files /dev/null and b/static/ox-hugo/skogestad07_output_uncertainty.png differ
diff --git a/static/ox-hugo/skogestad07_partial_control.png b/static/ox-hugo/skogestad07_partial_control.png
new file mode 100644
index 0000000..8556b09
Binary files /dev/null and b/static/ox-hugo/skogestad07_partial_control.png differ
diff --git a/static/ox-hugo/skogestad07_perturb_s_k3.png b/static/ox-hugo/skogestad07_perturb_s_k3.png
new file mode 100644
index 0000000..137513b
Binary files /dev/null and b/static/ox-hugo/skogestad07_perturb_s_k3.png differ
diff --git a/static/ox-hugo/skogestad07_shaped_plant.png b/static/ox-hugo/skogestad07_shaped_plant.png
new file mode 100644
index 0000000..da1ac79
Binary files /dev/null and b/static/ox-hugo/skogestad07_shaped_plant.png differ
diff --git a/static/ox-hugo/skogestad07_shapping_practical_implementation.png b/static/ox-hugo/skogestad07_shapping_practical_implementation.png
new file mode 100644
index 0000000..382def5
Binary files /dev/null and b/static/ox-hugo/skogestad07_shapping_practical_implementation.png differ
diff --git a/static/ox-hugo/skogestad07_system_hierarchy.png b/static/ox-hugo/skogestad07_system_hierarchy.png
new file mode 100644
index 0000000..563d8d3
Binary files /dev/null and b/static/ox-hugo/skogestad07_system_hierarchy.png differ
diff --git a/static/ox-hugo/skogestad07_uncertainty_disc_generated.png b/static/ox-hugo/skogestad07_uncertainty_disc_generated.png
new file mode 100644
index 0000000..a88190c
Binary files /dev/null and b/static/ox-hugo/skogestad07_uncertainty_disc_generated.png differ
diff --git a/static/ox-hugo/skogestad07_uncertainty_region.png b/static/ox-hugo/skogestad07_uncertainty_region.png
new file mode 100644
index 0000000..3732115
Binary files /dev/null and b/static/ox-hugo/skogestad07_uncertainty_region.png differ
diff --git a/static/ox-hugo/skogestad07_uncertainty_state_a_matrix.png b/static/ox-hugo/skogestad07_uncertainty_state_a_matrix.png
new file mode 100644
index 0000000..614e8f3
Binary files /dev/null and b/static/ox-hugo/skogestad07_uncertainty_state_a_matrix.png differ
diff --git a/static/ox-hugo/skogestad07_uncertainty_weight.png b/static/ox-hugo/skogestad07_uncertainty_weight.png
new file mode 100644
index 0000000..2ca7cb1
Binary files /dev/null and b/static/ox-hugo/skogestad07_uncertainty_weight.png differ
diff --git a/static/ox-hugo/skogestad07_weight_anti_windup.png b/static/ox-hugo/skogestad07_weight_anti_windup.png
new file mode 100644
index 0000000..5230e95
Binary files /dev/null and b/static/ox-hugo/skogestad07_weight_anti_windup.png differ
diff --git a/static/ox-hugo/skogestad07_weight_first_order.png b/static/ox-hugo/skogestad07_weight_first_order.png
new file mode 100644
index 0000000..453fc6a
Binary files /dev/null and b/static/ox-hugo/skogestad07_weight_first_order.png differ
diff --git a/static/ox-hugo/skogestad07_weights_distillation.png b/static/ox-hugo/skogestad07_weights_distillation.png
new file mode 100644
index 0000000..52721bf
Binary files /dev/null and b/static/ox-hugo/skogestad07_weights_distillation.png differ
diff --git a/static/ox-hugo/souleille18_model_piezo.png b/static/ox-hugo/souleille18_model_piezo.png
new file mode 100644
index 0000000..f0b99c3
Binary files /dev/null and b/static/ox-hugo/souleille18_model_piezo.png differ
diff --git a/static/ox-hugo/souleille18_result_damping_transmissibility.png b/static/ox-hugo/souleille18_result_damping_transmissibility.png
new file mode 100644
index 0000000..831e087
Binary files /dev/null and b/static/ox-hugo/souleille18_result_damping_transmissibility.png differ
diff --git a/static/ox-hugo/souleille18_root_locus.png b/static/ox-hugo/souleille18_root_locus.png
new file mode 100644
index 0000000..a8e26c0
Binary files /dev/null and b/static/ox-hugo/souleille18_root_locus.png differ
diff --git a/static/ox-hugo/souleille18_setup_flexible_payload.png b/static/ox-hugo/souleille18_setup_flexible_payload.png
new file mode 100644
index 0000000..661bb02
Binary files /dev/null and b/static/ox-hugo/souleille18_setup_flexible_payload.png differ
diff --git a/static/ox-hugo/souleille18_tf_iff_result.png b/static/ox-hugo/souleille18_tf_iff_result.png
new file mode 100644
index 0000000..079e9de
Binary files /dev/null and b/static/ox-hugo/souleille18_tf_iff_result.png differ
diff --git a/static/ox-hugo/spanos95_iff_plant.png b/static/ox-hugo/spanos95_iff_plant.png
new file mode 100644
index 0000000..a8d4d98
Binary files /dev/null and b/static/ox-hugo/spanos95_iff_plant.png differ
diff --git a/static/ox-hugo/spanos95_results.png b/static/ox-hugo/spanos95_results.png
new file mode 100644
index 0000000..aeb0aa2
Binary files /dev/null and b/static/ox-hugo/spanos95_results.png differ
diff --git a/static/ox-hugo/spanos95_stewart_platform.png b/static/ox-hugo/spanos95_stewart_platform.png
new file mode 100644
index 0000000..d8d82db
Binary files /dev/null and b/static/ox-hugo/spanos95_stewart_platform.png differ
diff --git a/static/ox-hugo/stankevic17_station.png b/static/ox-hugo/stankevic17_station.png
new file mode 100644
index 0000000..64b4d90
Binary files /dev/null and b/static/ox-hugo/stankevic17_station.png differ
diff --git a/static/ox-hugo/stein03_formal_design.png b/static/ox-hugo/stein03_formal_design.png
new file mode 100644
index 0000000..34b17bb
Binary files /dev/null and b/static/ox-hugo/stein03_formal_design.png differ
diff --git a/static/ox-hugo/stein03_serious_design.png b/static/ox-hugo/stein03_serious_design.png
new file mode 100644
index 0000000..513f228
Binary files /dev/null and b/static/ox-hugo/stein03_serious_design.png differ
diff --git a/static/ox-hugo/stein03_spreading_it_thin.png b/static/ox-hugo/stein03_spreading_it_thin.png
new file mode 100644
index 0000000..5f917d7
Binary files /dev/null and b/static/ox-hugo/stein03_spreading_it_thin.png differ
diff --git a/static/ox-hugo/stepper_error_one_turn_period.png b/static/ox-hugo/stepper_error_one_turn_period.png
new file mode 100644
index 0000000..80e4eae
Binary files /dev/null and b/static/ox-hugo/stepper_error_one_turn_period.png differ
diff --git a/static/ox-hugo/stepper_hybrid_schematic.png b/static/ox-hugo/stepper_hybrid_schematic.png
new file mode 100644
index 0000000..b4be6e9
Binary files /dev/null and b/static/ox-hugo/stepper_hybrid_schematic.png differ
diff --git a/static/ox-hugo/stepper_real_pos_vs_actual_pos.png b/static/ox-hugo/stepper_real_pos_vs_actual_pos.png
new file mode 100644
index 0000000..47e121e
Binary files /dev/null and b/static/ox-hugo/stepper_real_pos_vs_actual_pos.png differ
diff --git a/static/ox-hugo/stepper_two_phase_hybrid_stepper.png b/static/ox-hugo/stepper_two_phase_hybrid_stepper.png
new file mode 100644
index 0000000..02b6e53
Binary files /dev/null and b/static/ox-hugo/stepper_two_phase_hybrid_stepper.png differ
diff --git a/static/ox-hugo/stewart_beijen.jpg b/static/ox-hugo/stewart_beijen.jpg
new file mode 100644
index 0000000..151052d
Binary files /dev/null and b/static/ox-hugo/stewart_beijen.jpg differ
diff --git a/static/ox-hugo/stewart_cleary.jpg b/static/ox-hugo/stewart_cleary.jpg
new file mode 100644
index 0000000..2748571
Binary files /dev/null and b/static/ox-hugo/stewart_cleary.jpg differ
diff --git a/static/ox-hugo/stewart_czech.jpg b/static/ox-hugo/stewart_czech.jpg
new file mode 100644
index 0000000..350732d
Binary files /dev/null and b/static/ox-hugo/stewart_czech.jpg differ
diff --git a/static/ox-hugo/stewart_dong07.jpg b/static/ox-hugo/stewart_dong07.jpg
new file mode 100644
index 0000000..6297139
Binary files /dev/null and b/static/ox-hugo/stewart_dong07.jpg differ
diff --git a/static/ox-hugo/stewart_du14.jpg b/static/ox-hugo/stewart_du14.jpg
new file mode 100644
index 0000000..9f452df
Binary files /dev/null and b/static/ox-hugo/stewart_du14.jpg differ
diff --git a/static/ox-hugo/stewart_furutani.jpg b/static/ox-hugo/stewart_furutani.jpg
new file mode 100644
index 0000000..bc776ac
Binary files /dev/null and b/static/ox-hugo/stewart_furutani.jpg differ
diff --git a/static/ox-hugo/stewart_geng.jpg b/static/ox-hugo/stewart_geng.jpg
new file mode 100644
index 0000000..55f82c0
Binary files /dev/null and b/static/ox-hugo/stewart_geng.jpg differ
diff --git a/static/ox-hugo/stewart_ht_uw.jpg b/static/ox-hugo/stewart_ht_uw.jpg
new file mode 100644
index 0000000..a4fa4f8
Binary files /dev/null and b/static/ox-hugo/stewart_ht_uw.jpg differ
diff --git a/static/ox-hugo/stewart_jpl.jpg b/static/ox-hugo/stewart_jpl.jpg
new file mode 100644
index 0000000..7bedf4a
Binary files /dev/null and b/static/ox-hugo/stewart_jpl.jpg differ
diff --git a/static/ox-hugo/stewart_kim00.jpg b/static/ox-hugo/stewart_kim00.jpg
new file mode 100644
index 0000000..15ac6b4
Binary files /dev/null and b/static/ox-hugo/stewart_kim00.jpg differ
diff --git a/static/ox-hugo/stewart_mais.jpg b/static/ox-hugo/stewart_mais.jpg
new file mode 100644
index 0000000..60ece3d
Binary files /dev/null and b/static/ox-hugo/stewart_mais.jpg differ
diff --git a/static/ox-hugo/stewart_nanoscale.jpg b/static/ox-hugo/stewart_nanoscale.jpg
new file mode 100644
index 0000000..8f1fb02
Binary files /dev/null and b/static/ox-hugo/stewart_nanoscale.jpg differ
diff --git a/static/ox-hugo/stewart_naval.jpg b/static/ox-hugo/stewart_naval.jpg
new file mode 100644
index 0000000..f06bb35
Binary files /dev/null and b/static/ox-hugo/stewart_naval.jpg differ
diff --git a/static/ox-hugo/stewart_naves.jpg b/static/ox-hugo/stewart_naves.jpg
new file mode 100644
index 0000000..4bb0a9d
Binary files /dev/null and b/static/ox-hugo/stewart_naves.jpg differ
diff --git a/static/ox-hugo/stewart_pph.jpg b/static/ox-hugo/stewart_pph.jpg
new file mode 100644
index 0000000..423f1d4
Binary files /dev/null and b/static/ox-hugo/stewart_pph.jpg differ
diff --git a/static/ox-hugo/stewart_su04.jpg b/static/ox-hugo/stewart_su04.jpg
new file mode 100644
index 0000000..fe23588
Binary files /dev/null and b/static/ox-hugo/stewart_su04.jpg differ
diff --git a/static/ox-hugo/stewart_tang18.jpg b/static/ox-hugo/stewart_tang18.jpg
new file mode 100644
index 0000000..5c96ec5
Binary files /dev/null and b/static/ox-hugo/stewart_tang18.jpg differ
diff --git a/static/ox-hugo/stewart_ting07.jpg b/static/ox-hugo/stewart_ting07.jpg
new file mode 100644
index 0000000..80306f0
Binary files /dev/null and b/static/ox-hugo/stewart_ting07.jpg differ
diff --git a/static/ox-hugo/stewart_torii.jpg b/static/ox-hugo/stewart_torii.jpg
new file mode 100644
index 0000000..33d2c73
Binary files /dev/null and b/static/ox-hugo/stewart_torii.jpg differ
diff --git a/static/ox-hugo/stewart_ulb_pz.jpg b/static/ox-hugo/stewart_ulb_pz.jpg
new file mode 100644
index 0000000..1ff5b0d
Binary files /dev/null and b/static/ox-hugo/stewart_ulb_pz.jpg differ
diff --git a/static/ox-hugo/stewart_ulb_vc.jpg b/static/ox-hugo/stewart_ulb_vc.jpg
new file mode 100644
index 0000000..0814adb
Binary files /dev/null and b/static/ox-hugo/stewart_ulb_vc.jpg differ
diff --git a/static/ox-hugo/stewart_uqp.jpg b/static/ox-hugo/stewart_uqp.jpg
new file mode 100644
index 0000000..94b04e4
Binary files /dev/null and b/static/ox-hugo/stewart_uqp.jpg differ
diff --git a/static/ox-hugo/stewart_uw_gsp.jpg b/static/ox-hugo/stewart_uw_gsp.jpg
new file mode 100644
index 0000000..dfde30d
Binary files /dev/null and b/static/ox-hugo/stewart_uw_gsp.jpg differ
diff --git a/static/ox-hugo/stewart_wang16.jpg b/static/ox-hugo/stewart_wang16.jpg
new file mode 100644
index 0000000..d995996
Binary files /dev/null and b/static/ox-hugo/stewart_wang16.jpg differ
diff --git a/static/ox-hugo/stewart_yang19.jpg b/static/ox-hugo/stewart_yang19.jpg
new file mode 100644
index 0000000..221f0f8
Binary files /dev/null and b/static/ox-hugo/stewart_yang19.jpg differ
diff --git a/static/ox-hugo/stewart_zhang11.jpg b/static/ox-hugo/stewart_zhang11.jpg
new file mode 100644
index 0000000..4ed939a
Binary files /dev/null and b/static/ox-hugo/stewart_zhang11.jpg differ
diff --git a/static/ox-hugo/stoev17_coupled_diagonal_plants.png b/static/ox-hugo/stoev17_coupled_diagonal_plants.png
new file mode 100644
index 0000000..a5730ca
Binary files /dev/null and b/static/ox-hugo/stoev17_coupled_diagonal_plants.png differ
diff --git a/static/ox-hugo/stoev17_decompos_3d_tensor.png b/static/ox-hugo/stoev17_decompos_3d_tensor.png
new file mode 100644
index 0000000..8557f6e
Binary files /dev/null and b/static/ox-hugo/stoev17_decompos_3d_tensor.png differ
diff --git a/static/ox-hugo/stoev17_decoupled_system_schematic.png b/static/ox-hugo/stoev17_decoupled_system_schematic.png
new file mode 100644
index 0000000..6025b67
Binary files /dev/null and b/static/ox-hugo/stoev17_decoupled_system_schematic.png differ
diff --git a/static/ox-hugo/stoev17_results_decoupling_example.png b/static/ox-hugo/stoev17_results_decoupling_example.png
new file mode 100644
index 0000000..d811b85
Binary files /dev/null and b/static/ox-hugo/stoev17_results_decoupling_example.png differ
diff --git a/static/ox-hugo/system_identification_multi_sine_asd.png b/static/ox-hugo/system_identification_multi_sine_asd.png
new file mode 100644
index 0000000..64d7ace
Binary files /dev/null and b/static/ox-hugo/system_identification_multi_sine_asd.png differ
diff --git a/static/ox-hugo/system_identification_multi_sine_frf.png b/static/ox-hugo/system_identification_multi_sine_frf.png
new file mode 100644
index 0000000..9793509
Binary files /dev/null and b/static/ox-hugo/system_identification_multi_sine_frf.png differ
diff --git a/static/ox-hugo/system_identification_multi_sine_time.png b/static/ox-hugo/system_identification_multi_sine_time.png
new file mode 100644
index 0000000..55908fa
Binary files /dev/null and b/static/ox-hugo/system_identification_multi_sine_time.png differ
diff --git a/static/ox-hugo/system_identification_ol_coh.png b/static/ox-hugo/system_identification_ol_coh.png
new file mode 100644
index 0000000..42311fd
Binary files /dev/null and b/static/ox-hugo/system_identification_ol_coh.png differ
diff --git a/static/ox-hugo/system_identification_ol_comp_plant.png b/static/ox-hugo/system_identification_ol_comp_plant.png
new file mode 100644
index 0000000..5256906
Binary files /dev/null and b/static/ox-hugo/system_identification_ol_comp_plant.png differ
diff --git a/static/ox-hugo/taghira13_cascade_force_inner_loop_F.png b/static/ox-hugo/taghira13_cascade_force_inner_loop_F.png
new file mode 100644
index 0000000..a7f18e2
Binary files /dev/null and b/static/ox-hugo/taghira13_cascade_force_inner_loop_F.png differ
diff --git a/static/ox-hugo/taghira13_cascade_force_inner_loop_tau.png b/static/ox-hugo/taghira13_cascade_force_inner_loop_tau.png
new file mode 100644
index 0000000..fc00cdf
Binary files /dev/null and b/static/ox-hugo/taghira13_cascade_force_inner_loop_tau.png differ
diff --git a/static/ox-hugo/taghira13_cascade_force_inner_loop_tau_q.png b/static/ox-hugo/taghira13_cascade_force_inner_loop_tau_q.png
new file mode 100644
index 0000000..cc8aee4
Binary files /dev/null and b/static/ox-hugo/taghira13_cascade_force_inner_loop_tau_q.png differ
diff --git a/static/ox-hugo/taghira13_cascade_force_outer_loop.png b/static/ox-hugo/taghira13_cascade_force_outer_loop.png
new file mode 100644
index 0000000..6613396
Binary files /dev/null and b/static/ox-hugo/taghira13_cascade_force_outer_loop.png differ
diff --git a/static/ox-hugo/taghira13_cascade_force_outer_loop_tau.png b/static/ox-hugo/taghira13_cascade_force_outer_loop_tau.png
new file mode 100644
index 0000000..4029c1e
Binary files /dev/null and b/static/ox-hugo/taghira13_cascade_force_outer_loop_tau.png differ
diff --git a/static/ox-hugo/taghira13_cascade_force_outer_loop_tau_q.png b/static/ox-hugo/taghira13_cascade_force_outer_loop_tau_q.png
new file mode 100644
index 0000000..723c599
Binary files /dev/null and b/static/ox-hugo/taghira13_cascade_force_outer_loop_tau_q.png differ
diff --git a/static/ox-hugo/taghira13_direct_force_control.png b/static/ox-hugo/taghira13_direct_force_control.png
new file mode 100644
index 0000000..76f00f4
Binary files /dev/null and b/static/ox-hugo/taghira13_direct_force_control.png differ
diff --git a/static/ox-hugo/taghira13_impedance_control.png b/static/ox-hugo/taghira13_impedance_control.png
new file mode 100644
index 0000000..ae6b079
Binary files /dev/null and b/static/ox-hugo/taghira13_impedance_control.png differ
diff --git a/static/ox-hugo/taghirad13_adaptative_inverse_control_task_space.png b/static/ox-hugo/taghirad13_adaptative_inverse_control_task_space.png
new file mode 100644
index 0000000..3a680c0
Binary files /dev/null and b/static/ox-hugo/taghirad13_adaptative_inverse_control_task_space.png differ
diff --git a/static/ox-hugo/taghirad13_angular_momentum_rigid_body.png b/static/ox-hugo/taghirad13_angular_momentum_rigid_body.png
new file mode 100644
index 0000000..14310b6
Binary files /dev/null and b/static/ox-hugo/taghirad13_angular_momentum_rigid_body.png differ
diff --git a/static/ox-hugo/taghirad13_cascade_control.png b/static/ox-hugo/taghirad13_cascade_control.png
new file mode 100644
index 0000000..b35a25a
Binary files /dev/null and b/static/ox-hugo/taghirad13_cascade_control.png differ
diff --git a/static/ox-hugo/taghirad13_consecutive_transformations.png b/static/ox-hugo/taghirad13_consecutive_transformations.png
new file mode 100644
index 0000000..bedfed4
Binary files /dev/null and b/static/ox-hugo/taghirad13_consecutive_transformations.png differ
diff --git a/static/ox-hugo/taghirad13_decentralized_pd_control_joint_space.png b/static/ox-hugo/taghirad13_decentralized_pd_control_joint_space.png
new file mode 100644
index 0000000..a83ca8b
Binary files /dev/null and b/static/ox-hugo/taghirad13_decentralized_pd_control_joint_space.png differ
diff --git a/static/ox-hugo/taghirad13_decentralized_pd_control_task_space.png b/static/ox-hugo/taghirad13_decentralized_pd_control_task_space.png
new file mode 100644
index 0000000..3f627a6
Binary files /dev/null and b/static/ox-hugo/taghirad13_decentralized_pd_control_task_space.png differ
diff --git a/static/ox-hugo/taghirad13_feedforward_control_task_space.png b/static/ox-hugo/taghirad13_feedforward_control_task_space.png
new file mode 100644
index 0000000..7b51aff
Binary files /dev/null and b/static/ox-hugo/taghirad13_feedforward_control_task_space.png differ
diff --git a/static/ox-hugo/taghirad13_feedforward_pd_control_joint_space.png b/static/ox-hugo/taghirad13_feedforward_pd_control_joint_space.png
new file mode 100644
index 0000000..51ff975
Binary files /dev/null and b/static/ox-hugo/taghirad13_feedforward_pd_control_joint_space.png differ
diff --git a/static/ox-hugo/taghirad13_free_body_diagram_stewart.png b/static/ox-hugo/taghirad13_free_body_diagram_stewart.png
new file mode 100644
index 0000000..1736572
Binary files /dev/null and b/static/ox-hugo/taghirad13_free_body_diagram_stewart.png differ
diff --git a/static/ox-hugo/taghirad13_general_motion.png b/static/ox-hugo/taghirad13_general_motion.png
new file mode 100644
index 0000000..26164bf
Binary files /dev/null and b/static/ox-hugo/taghirad13_general_motion.png differ
diff --git a/static/ox-hugo/taghirad13_general_topology_motion_feedback.png b/static/ox-hugo/taghirad13_general_topology_motion_feedback.png
new file mode 100644
index 0000000..fc4b4d9
Binary files /dev/null and b/static/ox-hugo/taghirad13_general_topology_motion_feedback.png differ
diff --git a/static/ox-hugo/taghirad13_general_topology_motion_feedback_bis.png b/static/ox-hugo/taghirad13_general_topology_motion_feedback_bis.png
new file mode 100644
index 0000000..f0d2212
Binary files /dev/null and b/static/ox-hugo/taghirad13_general_topology_motion_feedback_bis.png differ
diff --git a/static/ox-hugo/taghirad13_general_topology_motion_feedback_quater.png b/static/ox-hugo/taghirad13_general_topology_motion_feedback_quater.png
new file mode 100644
index 0000000..04ef95e
Binary files /dev/null and b/static/ox-hugo/taghirad13_general_topology_motion_feedback_quater.png differ
diff --git a/static/ox-hugo/taghirad13_general_topology_motion_feedback_ter.png b/static/ox-hugo/taghirad13_general_topology_motion_feedback_ter.png
new file mode 100644
index 0000000..707f9fa
Binary files /dev/null and b/static/ox-hugo/taghirad13_general_topology_motion_feedback_ter.png differ
diff --git a/static/ox-hugo/taghirad13_impedance_control_rlc.png b/static/ox-hugo/taghirad13_impedance_control_rlc.png
new file mode 100644
index 0000000..874f3b1
Binary files /dev/null and b/static/ox-hugo/taghirad13_impedance_control_rlc.png differ
diff --git a/static/ox-hugo/taghirad13_inverse_dynamics_control_joint_space.png b/static/ox-hugo/taghirad13_inverse_dynamics_control_joint_space.png
new file mode 100644
index 0000000..c258f27
Binary files /dev/null and b/static/ox-hugo/taghirad13_inverse_dynamics_control_joint_space.png differ
diff --git a/static/ox-hugo/taghirad13_inverse_dynamics_control_task_space.png b/static/ox-hugo/taghirad13_inverse_dynamics_control_task_space.png
new file mode 100644
index 0000000..ea45cec
Binary files /dev/null and b/static/ox-hugo/taghirad13_inverse_dynamics_control_task_space.png differ
diff --git a/static/ox-hugo/taghirad13_mass_property_rigid_body.png b/static/ox-hugo/taghirad13_mass_property_rigid_body.png
new file mode 100644
index 0000000..d2a3af8
Binary files /dev/null and b/static/ox-hugo/taghirad13_mass_property_rigid_body.png differ
diff --git a/static/ox-hugo/taghirad13_paral.pdf b/static/ox-hugo/taghirad13_paral.pdf
new file mode 100644
index 0000000..7b6330d
Binary files /dev/null and b/static/ox-hugo/taghirad13_paral.pdf differ
diff --git a/static/ox-hugo/taghirad13_pitch-roll-yaw.png b/static/ox-hugo/taghirad13_pitch-roll-yaw.png
new file mode 100644
index 0000000..f4d793a
Binary files /dev/null and b/static/ox-hugo/taghirad13_pitch-roll-yaw.png differ
diff --git a/static/ox-hugo/taghirad13_rigid_body_motion.png b/static/ox-hugo/taghirad13_rigid_body_motion.png
new file mode 100644
index 0000000..3c6c3fc
Binary files /dev/null and b/static/ox-hugo/taghirad13_rigid_body_motion.png differ
diff --git a/static/ox-hugo/taghirad13_robust_inverse_dynamics_task_space.png b/static/ox-hugo/taghirad13_robust_inverse_dynamics_task_space.png
new file mode 100644
index 0000000..68bb61f
Binary files /dev/null and b/static/ox-hugo/taghirad13_robust_inverse_dynamics_task_space.png differ
diff --git a/static/ox-hugo/taghirad13_rotation_matrix.png b/static/ox-hugo/taghirad13_rotation_matrix.png
new file mode 100644
index 0000000..23d55cf
Binary files /dev/null and b/static/ox-hugo/taghirad13_rotation_matrix.png differ
diff --git a/static/ox-hugo/taghirad13_screw_axis_representation.png b/static/ox-hugo/taghirad13_screw_axis_representation.png
new file mode 100644
index 0000000..7dbcbd7
Binary files /dev/null and b/static/ox-hugo/taghirad13_screw_axis_representation.png differ
diff --git a/static/ox-hugo/taghirad13_stewart36.png b/static/ox-hugo/taghirad13_stewart36.png
new file mode 100644
index 0000000..fdae916
Binary files /dev/null and b/static/ox-hugo/taghirad13_stewart36.png differ
diff --git a/static/ox-hugo/taghirad13_stewart_forward_dynamics.png b/static/ox-hugo/taghirad13_stewart_forward_dynamics.png
new file mode 100644
index 0000000..b556bee
Binary files /dev/null and b/static/ox-hugo/taghirad13_stewart_forward_dynamics.png differ
diff --git a/static/ox-hugo/taghirad13_stewart_inverse_dynamics.png b/static/ox-hugo/taghirad13_stewart_inverse_dynamics.png
new file mode 100644
index 0000000..7f3e76a
Binary files /dev/null and b/static/ox-hugo/taghirad13_stewart_inverse_dynamics.png differ
diff --git a/static/ox-hugo/taghirad13_stewart_schematic.png b/static/ox-hugo/taghirad13_stewart_schematic.png
new file mode 100644
index 0000000..d9f46c4
Binary files /dev/null and b/static/ox-hugo/taghirad13_stewart_schematic.png differ
diff --git a/static/ox-hugo/taghirad13_stewart_static_forces.png b/static/ox-hugo/taghirad13_stewart_static_forces.png
new file mode 100644
index 0000000..5efc9fe
Binary files /dev/null and b/static/ox-hugo/taghirad13_stewart_static_forces.png differ
diff --git a/static/ox-hugo/temperature_betatherm_10K3A1_results.png b/static/ox-hugo/temperature_betatherm_10K3A1_results.png
new file mode 100644
index 0000000..6dde974
Binary files /dev/null and b/static/ox-hugo/temperature_betatherm_10K3A1_results.png differ
diff --git a/static/ox-hugo/temperature_effect_wires.png b/static/ox-hugo/temperature_effect_wires.png
new file mode 100644
index 0000000..03946a1
Binary files /dev/null and b/static/ox-hugo/temperature_effect_wires.png differ
diff --git a/static/ox-hugo/temperature_ntc_dc95f_results.png b/static/ox-hugo/temperature_ntc_dc95f_results.png
new file mode 100644
index 0000000..68f8edf
Binary files /dev/null and b/static/ox-hugo/temperature_ntc_dc95f_results.png differ
diff --git a/static/ox-hugo/temperature_seebeck_material_A.png b/static/ox-hugo/temperature_seebeck_material_A.png
new file mode 100644
index 0000000..55ef8f5
Binary files /dev/null and b/static/ox-hugo/temperature_seebeck_material_A.png differ
diff --git a/static/ox-hugo/temperature_sensor_lut_errors.png b/static/ox-hugo/temperature_sensor_lut_errors.png
new file mode 100644
index 0000000..dc0387f
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_lut_errors.png differ
diff --git a/static/ox-hugo/temperature_sensor_lut_errors_ntc.png b/static/ox-hugo/temperature_sensor_lut_errors_ntc.png
new file mode 100644
index 0000000..aa22f7c
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_lut_errors_ntc.png differ
diff --git a/static/ox-hugo/temperature_sensor_ntc_curve.png b/static/ox-hugo/temperature_sensor_ntc_curve.png
new file mode 100644
index 0000000..bfb8abc
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_ntc_curve.png differ
diff --git a/static/ox-hugo/temperature_sensor_pt100_curve.png b/static/ox-hugo/temperature_sensor_pt100_curve.png
new file mode 100644
index 0000000..76bdd18
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_pt100_curve.png differ
diff --git a/static/ox-hugo/temperature_sensor_pt100_resistance.png b/static/ox-hugo/temperature_sensor_pt100_resistance.png
new file mode 100644
index 0000000..b6fc049
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_pt100_resistance.png differ
diff --git a/static/ox-hugo/temperature_sensor_pt100_sensitivity.png b/static/ox-hugo/temperature_sensor_pt100_sensitivity.png
new file mode 100644
index 0000000..31de65f
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_pt100_sensitivity.png differ
diff --git a/static/ox-hugo/temperature_sensor_rtd_2_wires.png b/static/ox-hugo/temperature_sensor_rtd_2_wires.png
new file mode 100644
index 0000000..a4cad7d
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_rtd_2_wires.png differ
diff --git a/static/ox-hugo/temperature_sensor_rtd_4_wires.png b/static/ox-hugo/temperature_sensor_rtd_4_wires.png
new file mode 100644
index 0000000..5fd6190
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_rtd_4_wires.png differ
diff --git a/static/ox-hugo/temperature_sensor_rtd_resistance.png b/static/ox-hugo/temperature_sensor_rtd_resistance.png
new file mode 100644
index 0000000..eadea26
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_rtd_resistance.png differ
diff --git a/static/ox-hugo/temperature_sensor_rtd_sensitivity.png b/static/ox-hugo/temperature_sensor_rtd_sensitivity.png
new file mode 100644
index 0000000..ea312cf
Binary files /dev/null and b/static/ox-hugo/temperature_sensor_rtd_sensitivity.png differ
diff --git a/static/ox-hugo/temperature_termocouples_sensitivities.png b/static/ox-hugo/temperature_termocouples_sensitivities.png
new file mode 100644
index 0000000..8a61c95
Binary files /dev/null and b/static/ox-hugo/temperature_termocouples_sensitivities.png differ
diff --git a/static/ox-hugo/temperature_thermocouple_meas.png b/static/ox-hugo/temperature_thermocouple_meas.png
new file mode 100644
index 0000000..4551f11
Binary files /dev/null and b/static/ox-hugo/temperature_thermocouple_meas.png differ
diff --git a/static/ox-hugo/temperature_thermocouple_two_materiasl.png b/static/ox-hugo/temperature_thermocouple_two_materiasl.png
new file mode 100644
index 0000000..1a491af
Binary files /dev/null and b/static/ox-hugo/temperature_thermocouple_two_materiasl.png differ
diff --git a/static/ox-hugo/test_general_control_names.png b/static/ox-hugo/test_general_control_names.png
new file mode 100644
index 0000000..400dc6b
Binary files /dev/null and b/static/ox-hugo/test_general_control_names.png differ
diff --git a/static/ox-hugo/thermoelectric_cooler_schematic.svg b/static/ox-hugo/thermoelectric_cooler_schematic.svg
new file mode 100644
index 0000000..c34bdde
--- /dev/null
+++ b/static/ox-hugo/thermoelectric_cooler_schematic.svg
@@ -0,0 +1,2356 @@
+
+
diff --git a/static/ox-hugo/time_delay_induced_phase_lag.png b/static/ox-hugo/time_delay_induced_phase_lag.png
new file mode 100644
index 0000000..8904a0a
Binary files /dev/null and b/static/ox-hugo/time_delay_induced_phase_lag.png differ
diff --git a/static/ox-hugo/tmd_ligo.png b/static/ox-hugo/tmd_ligo.png
new file mode 100644
index 0000000..48de7de
Binary files /dev/null and b/static/ox-hugo/tmd_ligo.png differ
diff --git a/static/ox-hugo/tmd_smac.jpg b/static/ox-hugo/tmd_smac.jpg
new file mode 100644
index 0000000..787a703
Binary files /dev/null and b/static/ox-hugo/tmd_smac.jpg differ
diff --git a/static/ox-hugo/tong11_architecture_gsgspm.png b/static/ox-hugo/tong11_architecture_gsgspm.png
new file mode 100644
index 0000000..dbfa3d8
Binary files /dev/null and b/static/ox-hugo/tong11_architecture_gsgspm.png differ
diff --git a/static/ox-hugo/transimpedance_amplifier_schematic.png b/static/ox-hugo/transimpedance_amplifier_schematic.png
new file mode 100644
index 0000000..4aad242
Binary files /dev/null and b/static/ox-hugo/transimpedance_amplifier_schematic.png differ
diff --git a/static/ox-hugo/tuned_mass_damper_effect_mass_ratio.png b/static/ox-hugo/tuned_mass_damper_effect_mass_ratio.png
new file mode 100644
index 0000000..4377a25
Binary files /dev/null and b/static/ox-hugo/tuned_mass_damper_effect_mass_ratio.png differ
diff --git a/static/ox-hugo/tuned_mass_damper_effect_tmd.png b/static/ox-hugo/tuned_mass_damper_effect_tmd.png
new file mode 100644
index 0000000..f772898
Binary files /dev/null and b/static/ox-hugo/tuned_mass_damper_effect_tmd.png differ
diff --git a/static/ox-hugo/tuned_mass_damper_mass_effect.png b/static/ox-hugo/tuned_mass_damper_mass_effect.png
new file mode 100644
index 0000000..4dd9d5d
Binary files /dev/null and b/static/ox-hugo/tuned_mass_damper_mass_effect.png differ
diff --git a/static/ox-hugo/tuned_mass_damper_schematic.png b/static/ox-hugo/tuned_mass_damper_schematic.png
new file mode 100644
index 0000000..38c32bb
Binary files /dev/null and b/static/ox-hugo/tuned_mass_damper_schematic.png differ
diff --git a/static/ox-hugo/two_stage_buice09.png b/static/ox-hugo/two_stage_buice09.png
new file mode 100644
index 0000000..d0c8f66
Binary files /dev/null and b/static/ox-hugo/two_stage_buice09.png differ
diff --git a/static/ox-hugo/two_stage_choi08.png b/static/ox-hugo/two_stage_choi08.png
new file mode 100644
index 0000000..2a90a0b
Binary files /dev/null and b/static/ox-hugo/two_stage_choi08.png differ
diff --git a/static/ox-hugo/two_stage_okazaki12.png b/static/ox-hugo/two_stage_okazaki12.png
new file mode 100644
index 0000000..2ef42ad
Binary files /dev/null and b/static/ox-hugo/two_stage_okazaki12.png differ
diff --git a/static/ox-hugo/two_stage_shinno11.png b/static/ox-hugo/two_stage_shinno11.png
new file mode 100644
index 0000000..ce1252e
Binary files /dev/null and b/static/ox-hugo/two_stage_shinno11.png differ
diff --git a/static/ox-hugo/two_stage_ting11.png b/static/ox-hugo/two_stage_ting11.png
new file mode 100644
index 0000000..9ebe386
Binary files /dev/null and b/static/ox-hugo/two_stage_ting11.png differ
diff --git a/static/ox-hugo/two_stage_wang17.png b/static/ox-hugo/two_stage_wang17.png
new file mode 100644
index 0000000..a1800b2
Binary files /dev/null and b/static/ox-hugo/two_stage_wang17.png differ
diff --git a/static/ox-hugo/two_stage_xu12.png b/static/ox-hugo/two_stage_xu12.png
new file mode 100644
index 0000000..533c4a4
Binary files /dev/null and b/static/ox-hugo/two_stage_xu12.png differ
diff --git a/static/ox-hugo/variable_controller_simulink.png b/static/ox-hugo/variable_controller_simulink.png
new file mode 100644
index 0000000..707ed12
Binary files /dev/null and b/static/ox-hugo/variable_controller_simulink.png differ
diff --git a/static/ox-hugo/verbaan15_RMD_design_modes.png b/static/ox-hugo/verbaan15_RMD_design_modes.png
new file mode 100644
index 0000000..2ee3598
Binary files /dev/null and b/static/ox-hugo/verbaan15_RMD_design_modes.png differ
diff --git a/static/ox-hugo/verbaan15_RMD_mechanical_parts.png b/static/ox-hugo/verbaan15_RMD_mechanical_parts.png
new file mode 100644
index 0000000..c4f9d1f
Binary files /dev/null and b/static/ox-hugo/verbaan15_RMD_mechanical_parts.png differ
diff --git a/static/ox-hugo/verbaan15_broadbanded_damping_results.png b/static/ox-hugo/verbaan15_broadbanded_damping_results.png
new file mode 100644
index 0000000..c9ec5d5
Binary files /dev/null and b/static/ox-hugo/verbaan15_broadbanded_damping_results.png differ
diff --git a/static/ox-hugo/verbaan15_damped_undamped_frf.png b/static/ox-hugo/verbaan15_damped_undamped_frf.png
new file mode 100644
index 0000000..3777367
Binary files /dev/null and b/static/ox-hugo/verbaan15_damped_undamped_frf.png differ
diff --git a/static/ox-hugo/verbaan15_damper_parts.png b/static/ox-hugo/verbaan15_damper_parts.png
new file mode 100644
index 0000000..088bcf2
Binary files /dev/null and b/static/ox-hugo/verbaan15_damper_parts.png differ
diff --git a/static/ox-hugo/verbaan15_fluid_lve_model.png b/static/ox-hugo/verbaan15_fluid_lve_model.png
new file mode 100644
index 0000000..3371475
Binary files /dev/null and b/static/ox-hugo/verbaan15_fluid_lve_model.png differ
diff --git a/static/ox-hugo/verbaan15_maxwell_fluid_model.png b/static/ox-hugo/verbaan15_maxwell_fluid_model.png
new file mode 100644
index 0000000..4db4d0a
Binary files /dev/null and b/static/ox-hugo/verbaan15_maxwell_fluid_model.png differ
diff --git a/static/ox-hugo/verbaan15_obtained_damping_bench.png b/static/ox-hugo/verbaan15_obtained_damping_bench.png
new file mode 100644
index 0000000..3f9a1f0
Binary files /dev/null and b/static/ox-hugo/verbaan15_obtained_damping_bench.png differ
diff --git a/static/ox-hugo/verbaan15_results_fct_mass.png b/static/ox-hugo/verbaan15_results_fct_mass.png
new file mode 100644
index 0000000..c3c2be2
Binary files /dev/null and b/static/ox-hugo/verbaan15_results_fct_mass.png differ
diff --git a/static/ox-hugo/verbaan15_stage_undamped.png b/static/ox-hugo/verbaan15_stage_undamped.png
new file mode 100644
index 0000000..76019d9
Binary files /dev/null and b/static/ox-hugo/verbaan15_stage_undamped.png differ
diff --git a/static/ox-hugo/verbaan15_tmd_mech_system.png b/static/ox-hugo/verbaan15_tmd_mech_system.png
new file mode 100644
index 0000000..2f4cc15
Binary files /dev/null and b/static/ox-hugo/verbaan15_tmd_mech_system.png differ
diff --git a/static/ox-hugo/verbaan15_tmd_modes.png b/static/ox-hugo/verbaan15_tmd_modes.png
new file mode 100644
index 0000000..8bca3d7
Binary files /dev/null and b/static/ox-hugo/verbaan15_tmd_modes.png differ
diff --git a/static/ox-hugo/verbaan15_tmd_optimization.png b/static/ox-hugo/verbaan15_tmd_optimization.png
new file mode 100644
index 0000000..c42b468
Binary files /dev/null and b/static/ox-hugo/verbaan15_tmd_optimization.png differ
diff --git a/static/ox-hugo/verbaan15_tmd_principle.png b/static/ox-hugo/verbaan15_tmd_principle.png
new file mode 100644
index 0000000..e984f08
Binary files /dev/null and b/static/ox-hugo/verbaan15_tmd_principle.png differ
diff --git a/static/ox-hugo/verbaan15_tmd_side_front_views.png b/static/ox-hugo/verbaan15_tmd_side_front_views.png
new file mode 100644
index 0000000..9b1b7f4
Binary files /dev/null and b/static/ox-hugo/verbaan15_tmd_side_front_views.png differ
diff --git a/static/ox-hugo/verbaan15_tmd_slot_fin_parts.png b/static/ox-hugo/verbaan15_tmd_slot_fin_parts.png
new file mode 100644
index 0000000..3c9d890
Binary files /dev/null and b/static/ox-hugo/verbaan15_tmd_slot_fin_parts.png differ
diff --git a/static/ox-hugo/verbaan15single_double_fin.png b/static/ox-hugo/verbaan15single_double_fin.png
new file mode 100644
index 0000000..d2fd6c9
Binary files /dev/null and b/static/ox-hugo/verbaan15single_double_fin.png differ
diff --git a/static/ox-hugo/voice_coil_force_fct_f0.png b/static/ox-hugo/voice_coil_force_fct_f0.png
new file mode 100644
index 0000000..735db16
Binary files /dev/null and b/static/ox-hugo/voice_coil_force_fct_f0.png differ
diff --git a/static/ox-hugo/voice_coil_resonance_fct_stroke.png b/static/ox-hugo/voice_coil_resonance_fct_stroke.png
new file mode 100644
index 0000000..7ce8ded
Binary files /dev/null and b/static/ox-hugo/voice_coil_resonance_fct_stroke.png differ
diff --git a/static/ox-hugo/voice_coil_stiffness_fct_stroke.png b/static/ox-hugo/voice_coil_stiffness_fct_stroke.png
new file mode 100644
index 0000000..6e82e22
Binary files /dev/null and b/static/ox-hugo/voice_coil_stiffness_fct_stroke.png differ
diff --git a/static/ox-hugo/voice_coil_vertical_mass_spring.png b/static/ox-hugo/voice_coil_vertical_mass_spring.png
new file mode 100644
index 0000000..4138b34
Binary files /dev/null and b/static/ox-hugo/voice_coil_vertical_mass_spring.png differ
diff --git a/static/ox-hugo/voltage_amplifier_capacitance.png b/static/ox-hugo/voltage_amplifier_capacitance.png
new file mode 100644
index 0000000..1dd8ac3
Binary files /dev/null and b/static/ox-hugo/voltage_amplifier_capacitance.png differ
diff --git a/static/ox-hugo/voltage_amplifier_max_V_piezo.png b/static/ox-hugo/voltage_amplifier_max_V_piezo.png
new file mode 100644
index 0000000..48e284d
Binary files /dev/null and b/static/ox-hugo/voltage_amplifier_max_V_piezo.png differ
diff --git a/static/ox-hugo/wang16_force_feedback.png b/static/ox-hugo/wang16_force_feedback.png
new file mode 100644
index 0000000..85956e6
Binary files /dev/null and b/static/ox-hugo/wang16_force_feedback.png differ
diff --git a/static/ox-hugo/wang16_stewart_platform.png b/static/ox-hugo/wang16_stewart_platform.png
new file mode 100644
index 0000000..9abf89d
Binary files /dev/null and b/static/ox-hugo/wang16_stewart_platform.png differ
diff --git a/static/ox-hugo/wardle15_asynchronous_error_motion_example.png b/static/ox-hugo/wardle15_asynchronous_error_motion_example.png
new file mode 100644
index 0000000..07d6a73
Binary files /dev/null and b/static/ox-hugo/wardle15_asynchronous_error_motion_example.png differ
diff --git a/static/ox-hugo/wardle15_fundamental_and_residual_errors.png b/static/ox-hugo/wardle15_fundamental_and_residual_errors.png
new file mode 100644
index 0000000..0bc0d74
Binary files /dev/null and b/static/ox-hugo/wardle15_fundamental_and_residual_errors.png differ
diff --git a/static/ox-hugo/wardle15_synchronous_asynchronous_schematic.png b/static/ox-hugo/wardle15_synchronous_asynchronous_schematic.png
new file mode 100644
index 0000000..e1ca5cc
Binary files /dev/null and b/static/ox-hugo/wardle15_synchronous_asynchronous_schematic.png differ
diff --git a/static/ox-hugo/wardle15_synchronous_error_example.png b/static/ox-hugo/wardle15_synchronous_error_example.png
new file mode 100644
index 0000000..c6f113a
Binary files /dev/null and b/static/ox-hugo/wardle15_synchronous_error_example.png differ
diff --git a/static/ox-hugo/wardle15_typical_error_plot.png b/static/ox-hugo/wardle15_typical_error_plot.png
new file mode 100644
index 0000000..2b615ba
Binary files /dev/null and b/static/ox-hugo/wardle15_typical_error_plot.png differ
diff --git a/static/ox-hugo/wheatstone_bridge.jpg b/static/ox-hugo/wheatstone_bridge.jpg
new file mode 100644
index 0000000..86eacda
Binary files /dev/null and b/static/ox-hugo/wheatstone_bridge.jpg differ
diff --git a/static/ox-hugo/wu18_stewart_picture.png b/static/ox-hugo/wu18_stewart_picture.png
new file mode 100644
index 0000000..0f6cc41
Binary files /dev/null and b/static/ox-hugo/wu18_stewart_picture.png differ
diff --git a/static/ox-hugo/yang19_control_arch.png b/static/ox-hugo/yang19_control_arch.png
new file mode 100644
index 0000000..947ea35
Binary files /dev/null and b/static/ox-hugo/yang19_control_arch.png differ
diff --git a/static/ox-hugo/yang19_flexible_joints.png b/static/ox-hugo/yang19_flexible_joints.png
new file mode 100644
index 0000000..5a1467f
Binary files /dev/null and b/static/ox-hugo/yang19_flexible_joints.png differ
diff --git a/static/ox-hugo/yang19_results.png b/static/ox-hugo/yang19_results.png
new file mode 100644
index 0000000..9054173
Binary files /dev/null and b/static/ox-hugo/yang19_results.png differ
diff --git a/static/ox-hugo/yang19_stewart_platform.png b/static/ox-hugo/yang19_stewart_platform.png
new file mode 100644
index 0000000..b7a65a5
Binary files /dev/null and b/static/ox-hugo/yang19_stewart_platform.png differ
diff --git a/static/ox-hugo/zhang11_platform.png b/static/ox-hugo/zhang11_platform.png
new file mode 100644
index 0000000..ed46f3c
Binary files /dev/null and b/static/ox-hugo/zhang11_platform.png differ
diff --git a/static/ox-hugo/zuo04_eddy_current_magnets.png b/static/ox-hugo/zuo04_eddy_current_magnets.png
new file mode 100644
index 0000000..5908f5b
Binary files /dev/null and b/static/ox-hugo/zuo04_eddy_current_magnets.png differ
diff --git a/static/ox-hugo/zuo04_eddy_current_setup.png b/static/ox-hugo/zuo04_eddy_current_setup.png
new file mode 100644
index 0000000..bd370bb
Binary files /dev/null and b/static/ox-hugo/zuo04_eddy_current_setup.png differ
diff --git a/static/ox-hugo/zuo04_piezo_plant.png b/static/ox-hugo/zuo04_piezo_plant.png
new file mode 100644
index 0000000..2d1594b
Binary files /dev/null and b/static/ox-hugo/zuo04_piezo_plant.png differ
diff --git a/static/ox-hugo/zuo04_piezo_spring_series.png b/static/ox-hugo/zuo04_piezo_spring_series.png
new file mode 100644
index 0000000..7cdb4f0
Binary files /dev/null and b/static/ox-hugo/zuo04_piezo_spring_series.png differ
diff --git a/static/ox-hugo/zuo04_voice_coil_plant.png b/static/ox-hugo/zuo04_voice_coil_plant.png
new file mode 100644
index 0000000..d3c314c
Binary files /dev/null and b/static/ox-hugo/zuo04_voice_coil_plant.png differ
diff --git a/static/ox-hugo/zuo04_voice_coil_spring_parallel.png b/static/ox-hugo/zuo04_voice_coil_spring_parallel.png
new file mode 100644
index 0000000..5bf6a9b
Binary files /dev/null and b/static/ox-hugo/zuo04_voice_coil_spring_parallel.png differ