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
\\[ \theta\_i^{\min} = \min\_j \theta\_{ij} \\]
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:
\\[ \hnorm{w\_P S(s)} = \max\_{\w} \abs{w\_P(j\w)} \maxsv(S(j\w)) \ge \abs{w\_P(z)} \\]
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.
The transfer function \\(KS\\) from plant output to plant inputs must satisfy for any RHP-pole \\(p\\)
\\[ \hnorm{KS} \ge \normtwo{u\_p^H G\_s(p)^{-1}} \\]
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.
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
\\[ \hnorm{S} \ge c \quad \hnorm{T} \ge c \\]
\\[ \text{with } c = \sqrt{\sin^2 \phi + \frac{\abs{z + p}^2}{\abs{z-p}^2} \cos^2 \phi} \\]
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}
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\\).
\begin{equation}
\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 = \bar{u}\\)) if the disturbance is in the "good" direction, and the condition number \\(\gamma(G) = \maxsv(G) \maxsv(G^\dagger)\\) (for \\(y\_d = \ubar{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
\\[ \normtwo{S g\_d} = \maxsv(S g\_d) < 1 \ \forall\w \quad \Leftrightarrow \quad \hnorm{S g\_d} < 1 \\]
We derive bounds in terms of the singular values of \\(S\\):
\\[ \minsv(S) \normtwo{g\_d} \le \normtwo{S g\_d} \le \maxsv(S) \normtwo{g\_d} \\]
For acceptable performance **we must at least require that**
\\[ \maxsv(I+L) > \normtwo{g\_d} \\]
And **we may require that**
\\[ \minsv(I+L) > \normtwo{g\_d} \\]
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
\\[ \abs{y\_z^H g\_d(z)} < 1 \\]
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:
\\[ \\|G^{-1} g\_d\\|\_{\text{max}} < 1, \ \forall\w \\]
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}
\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 Fig. [fig:input_output_uncertainty](#fig:input_output_uncertainty)):
\\[ G^\prime = (I + E\_O) G (I + E\_I) \\]
{{< 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:
\\[ \left[ G E\_I G^{-1} \right]\_{ii} = \sum\_{j=1}^n \lambda\_{ij}(G) \epsilon\_j \\]
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:
\\[ \maxsv(S^\prime) \ge \maxsv(S) \left( 1 + \frac{\abs{w\_I t}}{1+\abs{w\_I t}} \\|\Lambda(G)\\|\_{i\infty} \right) \\]
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.
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}
\alpha\_p = \bar{\alpha}(1 + r\_\alpha \Delta); \quad r\_\alpha = \frac{\alpha\_{\text{max}} - \alpha\_{\min}}{\alpha\_{\text{max}} + \alpha\_{\min}}
\end{equation}
where \\(\bar{\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
\\[ G\_p(s) = G(s)(1 + w\_I(s)\Delta\_I(s)); \quad \abs{\Delta\_I(j\w)} \le 1 \, \forall\w \\]
which may be represented by the diagram in Fig. [fig:input_uncertainty_set](#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.
\\[ G\_p(s) = k\_p G\_0(s); \quad k\_{\min} \le k\_p \le k\_{\text{max}} \\]
where \\(k\_p\\) is an uncertain gain and \\(G\_0(s)\\) is a transfer function with no uncertainty.
By writing \\(k\_p = \bar{k}(1 + r\_k \Delta)\\) where \\(r\_k\\) is the relative magnitude of the gain uncertainty and \\(\bar{k}\\) is the average gain, be may write
\\[ G\_p = \underbrace{\bar{k}G\_0(s)}\_{G(s)} (1 + r\_k \Delta), \quad \abs{\Delta} \le 1 \\]
where \\(\Delta\\) is a real scalar and \\(G(s)\\) is the nominal plant.
\\[ G\_p(s) = \frac{1}{\tau\_p s + 1}G\_0(s); \quad \tau\_{\min} \le \tau\_p \le \tau\_{\text{max}} \\]
By writing \\(\tau\_p = \bar{\tau}(1 + r\_\tau \Delta)\\), with \\(\abs{\Delta} \le 1\\), the model set can be rewritten as
\\[ G\_p(s) = \frac{G\_0}{1+\bar{\tau} s + r\_\tau \bar{\tau} s \Delta} = \underbrace{\frac{G\_0}{1+\bar{\tau}s}}\_{G(s)} \frac{1}{1 + w\_{iI}(s) \Delta} \\]
with \\(\displaystyle w\_{iI}(s) = \frac{r\_\tau \bar{\tau} s}{1 + \bar{\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 Fig. [fig:uncertainty_region](#fig:uncertainty_region) the Nyquist plots generated by the following set of plants
\\[ G\_p(s) = \frac{k}{\tau s + 1} e^{-\theta s}, \quad 2 \le k, \theta, \tau \le 3 \\]
- **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}
\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 Fig. [fig:uncertainty_disc_generated](#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}
\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:
\\[ \abs{w\_I(j\w)} = \abs{w\_A(j\w)}/\abs{G(j\w)} \\]
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\\)
\\[ l\_A(\w) = \max\_{G\_p\in\Pi} \abs{G\_p(j\w) - G(j\w)} \\]
If we want a rational transfer function weight, \\(w\_A(s)\\), then it must be chosen to cover the set, so
\\[ \abs{w\_A(j\w)} \ge l\_A(\w) \quad \forall\w \\]
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
\\[ l\_I(\w) = \max\_{G\_p\in\Pi} \abs{\frac{G\_p(j\w) - G(j\w)}{G(j\w)}} \\]
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)\\)
\\[ \Pi: \quad G\_p(s) = \frac{k}{\tau s + 1} e^{-\theta s}, \quad 2 \le k, \theta, \tau \le 3 \\]
To simplify subsequent controller design, we select a delay-free nominal model
\\[ G(s) = \frac{\bar{k}}{\bar{\tau} s + 1} = \frac{2.5}{2.5 s + 1} \\]
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\\) (Fig. [fig:uncertainty_weight](#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) = \bar{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
\\[ G\_p(s) = G\_0(s) f(s) \\]
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
\\[ l\_I(\w) = \max\_{G\_p} \abs{\frac{G\_p - G}{G}} = \max\_{f(s) \in \Pi\_f} \abs{f(j\w) - 1} \\]
##### 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 (Fig. [fig:neglected_time_delay](#fig:neglected_time_delay)). If we consider all \\(\theta \in [0, \theta\_{\text{max}}]\\) then:
\\[ 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} \\]
{{< 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)\\) (Fig. [fig:neglected_first_order_lag](#fig:neglected_first_order_lag)) can be represented by a rational transfer function with \\(\abs{w\_I(j\w)} = l\_I(\w)\\) where
\\[ w\_I(s) = \frac{\tau\_{\text{max}} s}{\tau\_{\text{max}} s + 1} \\]
{{< 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
\\[ 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}}] \\]
which we want to represent by multiplicative uncertainty and a delay-free nominal model \\(G(s) = \bar{k} G\_0(s)\\).
There is an exact expression, its first order approximation is
\\[ w\_I(s) = \frac{(1+\frac{r\_k}{2})\theta\_{\text{max}} s + r\_k}{\frac{\theta\_{\text{max}}}{2} s + 1} \\]
However, as shown in Fig. [fig:lag_delay_uncertainty](#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:
\\[ 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} \\]
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}
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 Fig. [fig:feedback_multiplicative_uncertainty](#fig:feedback_multiplicative_uncertainty) where there is multiplicative uncertainty of magnitude \\(\abs{w\_I(j\w)}\\).
The loop transfer function becomes
\\[ L\_P = G\_p K = G K (1 + w\_I \Delta\_I) = L + w\_I L \Delta\_I \\]
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 Fig. [fig:nyquist_uncertainty](#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}
\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
\\[ \text{RS} \ \Leftrightarrow \ \abs{1 + L} - \abs{w\_I L} > 0, \ \forall\w \ \Leftrightarrow \ \abs{w\_I T} < 1, \ \forall\w \\]
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 (Fig. [fig:inverse_uncertainty_set](#fig:inverse_uncertainty_set)) in which
\\[ G\_p = G(1 + w\_{iI}(s) \Delta\_{iI})^{-1} \\]
{{< 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}
\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}
\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 Fig. [fig:nyquist_performance_condition](#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}
\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 Fig. [fig:input_uncertainty_set_feedback_weight_bis](#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
\\[ L\_p = G\_p K = L (1 + w\_I \Delta\_I) = L + w\_I L \Delta\_I \\]
{{< 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 Fig. [fig:nyquist_performance_condition](#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}
\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\\):
\\[ \text{RP} \ \Leftrightarrow\ \max\_{S\_p} \abs{w\_P S\_p} < 1, \quad \forall\omega \\]
The perturbed sensitivity \\(S\_p\\) is
\\[ S\_p = \frac{1}{1 + L\_p} = \frac{1}{1 + L + w\_I L \Delta\_I} \\]
Thus:
\\[ \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}} \\]
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:
\\[ \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} \\]
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:
\begin{subequations}
\begin{align}
\text{NP} & \Leftrightarrow |w\_P S| < 1,\ \forall \omega \\\\\\
\text{RS} & \Leftrightarrow |w\_I T| < 1,\ \forall \omega \\\\\\
\text{RP} & \Leftrightarrow |w\_P S| + |w\_I T| < 1,\ \forall \omega
\end{align}
\end{subequations}
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:
\\[ |w\_P S| + |w\_I T| < 2 \cdot \max \\{|w\_P S|, |w\_I T|\\} < 2 \\]
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 \\(\si{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:
\\[ G\_p(s) = \frac{1}{s - a\_p} G\_0(s); \quad a\_\text{min} \le a\_p \le a\_{\text{max}} \\]
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
\\[ G\_p(s) = \frac{G\_0(s)}{s - \bar{a}(1 + r\_a \Delta)}; \quad -1 \le \Delta \le 1 \\]
which can be exactly described by inverse multiplicative uncertainty:
\\[ G(s) = \frac{G\_0(s)}{(s - \bar{a})}; \quad w\_{iI}(s) = \frac{r\_a \bar{a}}{s - \bar{a}} \\]
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:
\\[ G\_p(s) = \frac{1}{\tau\_p s + 1} G\_0(s); \quad \tau\_\text{min} \le \tau\_p \le \tau\_\text{max} \\]
The corresponding uncertainty weight is
\\[ w\_{iI}(s) = \frac{r\_\tau \bar{\tau} s}{1 + \bar{\tau} s} \\]
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:
\\[ G\_p(s) = (1 + \tau\_p s)G\_0(s); \quad \tau\_\text{min} \le \tau\_p \le \tau\_\text{max} \\]
This set of plants may be written as multiplicative uncertainty with:
\\[ w\_I(s) = \frac{r\_\tau \bar{\tau} s}{1 + \bar{\tau} s} \\]
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:
\\[ A\_p = A + \sum \delta\_i A\_i = A + W\_2 \Delta W\_1 \\]
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 Fig. [fig:uncertainty_state_a_matrix](#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**
\\[ \Delta = \text{diag} \\{\Delta\_i\\} = \begin{bmatrix}\Delta\_1 \\ & \ddots \\ & & \Delta\_i \\ & & & \ddots \end{bmatrix} \\]
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 Fig. [fig:general_control_delta](#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 Fig. [fig:general_control_Ndelta](#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 Fig. [fig:general_control_Mdelta_bis](#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**:
\\[ \maxsv(\Delta\_i(j\w)) \le 1 \quad \forall\w \\]
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
\\[ \maxsv(\Delta\_i(j\w)) \le 1 \quad \forall\w, \forall i \quad \Leftrightarrow \quad \tcmbox{\hnorm{\Delta} \le 1} \\]
#### 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 Fig. [fig:feedforward_uncertainty](#fig:feedforward_uncertainty): additive uncertainty, multiplicative input uncertainty and multiplicative output uncertainty.
\begin{alignat\*}{3}
&\Pi\_A: \quad &&G\_p = G + E\_A; \quad& &E\_a = w\_A \Delta\_a \\\\\\
&\Pi\_I: \quad &&G\_p = G(I + E\_I); \quad& &E\_I = w\_I \Delta\_I \\\\\\
&\Pi\_O: \quad &&G\_p = (I + E\_O)G; \quad& &E\_O = w\_O \Delta\_O
\end{alignat\*}
Table 4:
Common feedforward unstructured uncertainty
| ![](/ox-hugo/skogestad07_additive_uncertainty.png) | ![](/ox-hugo/skogestad07_input_uncertainty.png) | ![](/ox-hugo/skogestad07_output_uncertainty.png) |
|----------------------------------------------------|----------------------------------------------------------|-----------------------------------------------------------|
| Additive uncertainty | Multiplicative input uncertainty | Multiplicative output uncertainty |
In Fig. [fig:feedback_uncertainty](#fig:feedback_uncertainty), three **feedback or inverse unstructured uncertainty** forms are shown: inverse additive uncertainty, inverse multiplicative input uncertainty and inverse multiplicative output uncertainty.
\begin{alignat\*}{3}
&\Pi\_{iA}: \quad &&G\_p = G(I - E\_{iA} G)^{-1}; & & \quad E\_{ia} = w\_{iA} \Delta\_{ia} \\\\\\
&\Pi\_{iI}: \quad &&G\_p = G(I - E\_{iI})^{-1}; & & \quad E\_{iI} = w\_{iI} \Delta\_{iI} \\\\\\
&\Pi\_{iO}: \quad &&G\_p = (I - E\_{iO})^{-1}G; & & \quad E\_{iO} = w\_{iO} \Delta\_{iO}
\end{alignat\*}
Table 5:
Common feedback unstructured uncertainty
| ![](/ox-hugo/skogestad07_inv_additive_uncertainty.png) | ![](/ox-hugo/skogestad07_inv_input_uncertainty.png) | ![](/ox-hugo/skogestad07_inv_output_uncertainty.png) |
|--------------------------------------------------------|------------------------------------------------------------------|-------------------------------------------------------------------|
| 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
\\[ G\_p = (I + w\_O \Delta\_O) G, \quad \hnorm{\Delta\_O} \le 1 \\]
where
\\[ 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 \\]
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,
\\[ G\_p = G(I + w\_I \Delta\_I), \quad \hnorm{\Delta\_I} \le 1 \\]
where
\\[ 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 \\]
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
\\[ \Delta(s) = \text{diag}\\{\delta\_i(s)\\}; \quad \abs{\delta\_i(j\w)} \le 1, \ \forall\w, \, \forall i \\]
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\\)
\\[ m\_i = h\_i(s) u\_i \\]
The scalar transfer function \\(h\_i(s)\\) is often absorbed into the plant model \\(G(s)\\).
We can represent its uncertainty as multiplicative uncertainty
\\[ h\_{pi}(s) = h\_i(s)(1 + w\_{Ii}(s)\delta\_i(s)); \quad \abs{\delta\_i(j\w)} \le 1, \, \forall\w \\]
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
\\[ w(s) = \frac{\tau s + r\_0}{(\tau/r\_\infty)s + 1} \\]
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 Fig. [fig:input_uncertainty_set_feedback_weight](#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
\\[ P = \begin{bmatrix}
0 & 0 & W\_I \\\\\\
W\_P G & W\_P & W\_P G \\\\\\
-G & -I & -G
\end{bmatrix} \\]
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
\\[ F\_u(N, \Delta) = N\_{22} + N\_{21}\Delta(I - N\_{11}\Delta)^{-1} N\_{12} \\]
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}\\).
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}
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}
\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 Figs [fig:feedforward_uncertainty](#fig:feedforward_uncertainty) and [fig:feedback_uncertainty](#fig:feedback_uncertainty) with
\\[ E = W\_2 \Delta W\_1, \quad \hnorm{\Delta} \le 1 \\]
To derive the matrix \\(M\\) we simply "isolate" the perturbation, and determine the transfer function matrix
\\[ M = W\_1 M\_0 W\_2 \\]
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
\\[ \text{RS} \quad \Leftrightarrow \quad \hnorm{W\_1 M\_0 W\_2(j\w)} < 1, \ \forall\w \\]
For instance, for feedforward input uncertainty, we get
\\[ \text{RS}\ \forall G\_p = G(I + w\_I \Delta\_I), \hnorm{\Delta\_I} \le 1 \Leftrightarrow \hnorm{w\_I T\_I} < 1 \\]
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 Fig. [fig:coprime_uncertainty](#fig:coprime_uncertainty), for which the set of plants is
\\[ G\_p = (M\_l + \Delta\_M)^{-1}(Nl + \Delta\_N), \quad \hnorm{[\Delta\_N, \ \Delta\_N]} \le \epsilon \\]
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
\\[ \Delta = [\Delta\_N, \ \Delta\_M]; \quad M = -\begin{bmatrix}K\\I\end{bmatrix} (I + GK)^{-1} M\_l^{-1} \\]
And we get
\\[ \text{RS}\ \forall\ \hnorm{\Delta\_N, \ \Delta\_M} \le \epsilon \quad \Leftrightarrow \quad \hnorm{M} < 1/\epsilon \\]
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
\\[ \text{RS if } \maxsv(M(j\w)) < 1, \ \forall\w \\]
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
\\[ D = \diag{d\_i I\_i} \\]
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 Fig. [fig:block_diagonal_scalings](#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
\\[ \text{RS if } \maxsv(DM(j\w)D^{-1}) < 1, \ \forall\w \\]
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
\\[ \text{RS if } \min\_{D(\w) \in \mathcal{D}} \maxsv(D(\w)M(j\w)D(\w)^{-1}) < 1, \ \forall\w \\]
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
\\[ \mu(M)^{-1} \triangleq \min\_{\Delta}\\{\maxsv(\Delta) | \det(I-M\Delta) = 0 \text{ for struct. }\Delta\\} \\]
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 \\[ \mu\_\Delta \ge \text{max} \\{\mu\_{\Delta\_1} (M\_{11}), \mu\_{\Delta\_2}(M\_{22}) \\} \\]
#### 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\\)
\\[ \mu(M) = \maxsv(M) \\]
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
\\[ \text{RS} \ \Leftrightarrow \ \det(I-M\Delta(j\w)) \ne 0, \ \forall\w,\, \forall\Delta, \, \\|\Delta\\|\_\infty \le 1 \\]
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
\\[ \det(I - k\_m M \Delta) = 0 \\]
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}
\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
\\[ K\_m = \begin{bmatrix}I & 0 \\ 0 & k\_m I\end{bmatrix} \\]
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
\\[ \mu^s(M) \triangleq 1/k\_m \\]
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
\\[ \hat{\Delta} = \begin{bmatrix}\Delta & 0 \\ 0 & \Delta\_P\end{bmatrix} \\]
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
\\[ F = F\_u(N, \Delta) = N\_{22} + N\_{21}\Delta(I - N\_{11} \Delta)^{-1} N\_{12} \\]
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
\\[ \max\_{\maxsv(\Delta) \le 1} \maxsv(F\_l(N, \Delta)(j\w)) = \mu^s (N(j\w)) \\]
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
\\[ \mu(K\_mN) = 1, \quad K\_m = \begin{bmatrix}I & 0 \\ 0 & 1/\mu^s\end{bmatrix} \\]
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 (Fig. [fig:input_uncertainty_set_feedback_weight](#fig:input_uncertainty_set_feedback_weight)).
The performance requirement is then
\\[ \text{RP} \quad \stackrel{\text{def}}{\Longleftrightarrow} \quad \hnorm{w\_P (I + G\_p K)^{-1}} < 1, \quad \forall G\_p \\]
where the set of plant is given by
\\[ G\_p = G (I + w\_I \Delta\_I), \quad \hnorm{\Delta\_I} \le 1 \\]
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}
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:
\\[ N\_\text{mix} = \begin{bmatrix} w\_P S \\ w\_I T \end{bmatrix} \\]
At each frequency, \\(\mu(N)\\) differs from and \\(\bar{\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:
\\[ 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} \\]
The controller provides a nominally decoupled system:
\\[ L = l I,\ S = \epsilon I \text{ and } T = t I \\]
where
\\[ l = \frac{0.7}{s}, \ \epsilon = \frac{s}{s + 0.7}, \ t = \frac{0.7}{s + 0.7} \\]
The following weights for uncertainty and performance are used:
\\[ w\_I(s) = \frac{s + 0.2}{0.5s + 1}; \quad w\_P(s) = \frac{s/2 + 0.05}{s} \\]
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:
\\[ \bar{\sigma}(N\_{22}) = \bar{\sigma}(w\_P S) = \left|\frac{s/2 + 0.05}{s + 0.7}\right| \\]
and we see from Fig. [fig:mu_plots_distillation](#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:
\\[ \mu\_{\Delta\_I}(w\_I T\_I) = |w\_I t| = \left|0.2 \frac{5s + 1}{(0.5s + 1)(1.43s + 1)}\right| \\]
and we see from Fig. [fig:mu_plots_distillation](#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 Fig. [fig:mu_plots_distillation](#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 [eq:n_delta_structure_clasic](#eq:n_delta_structure_clasic), we have:
\\[ \overbrace{\mu\_{\tilde{\Delta}}(N)}^{\text{RP}} \le [ \overbrace{\bar{\sigma}(w\_I T\_I)}^{\text{RS}} + \overbrace{\bar{\sigma}(w\_P S)}^{\text{NP}} ] (1 + \sqrt{k}) \\]
where \\(k\\) is taken as the smallest value between the condition number of the plant and of the controller:
\\[ k = \text{min}(\gamma(G), \gamma(K)) \\]
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
\\[ N = \begin{bmatrix} w\_O T & w\_O T \\ w\_P S & w\_P S \end{bmatrix} \\]
and for any structure of the uncertainty, \\(\mu(N)\\) is bounded as follows:
\\[ \bar{\sigma}\begin{bmatrix} w\_O T \\ w\_P S\end{bmatrix} \le \overbrace{\mu(N)}^{\text{RP}} \le \sqrt{2}\ \bar{\sigma} \overbrace{\underbrace{\begin{bmatrix} w\_O T \\ w\_P S \end{bmatrix}}\_{\text{NP}}}^{\text{RS}} \\]
This follows since the uncertainty and performance blocks both enter at the output and that the difference between bounding the combined perturbations \\(\bar{\sigma}[\Delta\_O \ \Delta\_P]\\) and the individual perturbations \\(\bar{\sigma}(\Delta\_O)\\) and \\(\bar{\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}
\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}
\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.
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
\\[ w\_p(s) = \frac{s/M + \w\_B^\*}{s + \w\_B^\* A} \\]
where we want to keep \\(M\\) constant and find the high achievable bandwidth frequency \\(\w\_B^\*\\).
The optimization problem becomes
\\[ \text{max} \abs{\w\_B^\*} \quad \text{such that} \quad \mu(N) < 1, \ \forall\w \\]
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 Fig. [fig:weights_distillation](#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 Fig. [fig:dk_iter_mu](#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 Fig. [fig:dk_iter_d_scale](#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 Fig. [fig:mu_plot_optimal_k3](#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 \\(\bar{\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 Fig. [fig:perturb_s_k3](#fig:perturb_s_k3).
{{< figure src="/ox-hugo/skogestad07_perturb_s_k3.png" caption="Figure 37: Perturbed sensitivity functions \\(\bar{\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
\\[ \tcmbox{RS \quad \Leftarrow \quad \maxsv(M) < 1, \ \forall\w} \\]
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**
\\[ \tcmbox{RP \quad \Leftrightarrow \quad \mu(M) < 1, \ \forall\w} \\]
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
\\[ \tcmbox{RS \quad \Leftrightarrow \quad \mu(N) < 1, \ \forall\w} \\]
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 Fig. [fig:classical_feedback_small](#fig:classical_feedback_small).
We have the following important relationships:
\begin{subequations}
\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}
\end{subequations}
{{< figure src="/ox-hugo/skogestad07_classical_feedback_small.png" caption="Figure 38: One degree-of-freedom feedback configuration" >}}
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
\\[ \minsv(L) - 1 \le \frac{1}{\maxsv(S)} \le \minsv(L) + 1 \\]
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.
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 Fig. [fig:design_trade_off_mimo_gk](#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:
\\[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\\} \\]
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}
\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 Fig. [fig:lqg_separation](#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" >}}
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}
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}
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}
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 Fig. [fig:lqg_kalman_filter](#fig:lqg_kalman_filter), with:
\begin{equation}
\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}
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}
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 Fig. [fig:lqg_kalman_filter](#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 \\ \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} \\ \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 Fig. [fig:lqg_kalman_filter](#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 Fig. [fig:lqg_integral](#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 Fig. [fig:general_control](#fig:general_control).
{{< figure src="/ox-hugo/skogestad07_general_control.png" caption="Figure 43: General control configuration" >}}
The system is described by
\begin{subequations}
\begin{align}
\colvec{z\\v} &= P(s) \colvec{w\\u} = \begin{bmatrix}P\_{11}(s) & P\_{12}(s)\\ P\_{21}(s) & P\_{22}(s) \end{bmatrix} \colvec{w\\u}\\\\\\
u &= K(s) v
\end{align}
\end{subequations}
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 \\\\\\
\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 \\ C\_1 & D\_{12} \end{bmatrix}\\) and \\(\begin{bmatrix} A-j\w I & B\_1 \\ 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
\\[\normtwo{F(s)} = \sqrt{\frac{1}{2\pi}\int\_{-\infty}^{\infty} tr[F(j\w)F(j\w)^H]d\w }\\]
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
\\[ E\\{w(t)w(\tau)^T\\} = I \delta(t-\tau) \\]
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
\\[ 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) \\]
The LQG problem is to find \\(u = K(s) y\\) such that
\\[ J = E \left\\{ \lim\_{T\to \infty} \frac{1}{T} \int\_0^T [x^T Q x + u^T R u] dt \right\\} \\]
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
\\[ z = \begin{bmatrix}
Q^{\frac{1}{2}} & 0 \\\\\\
0 & R^{\frac{1}{2}}
\end{bmatrix} \begin{bmatrix}
x \\ u
\end{bmatrix} \\]
Represent the stochastic inputs as
\\[ \begin{bmatrix}
w\_d \\ w\_n
\end{bmatrix} = \begin{bmatrix}
W^{\frac{1}{2}} & 0 \\\\\\
0 & V^{\frac{1}{2}}
\end{bmatrix} w \\]
where \\(w\\) is a white noise process of unit density.
Then the LQG cost function is
\\[ 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 \\]
#### \\(\hinf\\) Optimal Control {#hinf--optimal-control}
With reference to the general control configuration on Fig. [fig:general_control](#fig:general_control), the standard \\(\hinf\\) optimal control problem is to find all stabilizing controllers \\(K\\) which minimize
\\[ \hnorm{F\_l(P, K)} = \max\_{\omega} \maxsv\big(F\_l(P, K)(j\omega)\big) \\]
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}
\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}
\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 \\ \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}
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
\\[ \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) \\]
and a state feedback \\(u = F\_\infty \hat{x}\\).
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}
\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 Fig. [fig:mixed_sensitivity_dist_rejection](#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 Fig. [fig:mixed_sensitivity_ref_tracking](#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 Fig. [fig:mixed_sensitivity_dist_rejection](#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}
\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 Fig. [fig:mixed_sensitivity_s_t](#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 Fig. [fig:input_uncertainty_hinf](#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 Fig. [fig:input_uncertainty_hinf](#fig:input_uncertainty_hinf).
A typical problem using the signal-based approach to \\(\hinf\\) control is illustrated in the interconnection diagram of Fig. [fig:hinf_signal_based](#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 Fig. [fig:hinf_signal_based_uncertainty](#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:
\\[ \mu(M(j\omega)) < 1, \quad \forall\omega \\]
{{< 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 Fig. [fig:coprime_uncertainty_bis](#fig:coprime_uncertainty_bis), the stability property is robust if and only if the nominal feedback system is stable and
\\[ \gamma \triangleq \hnorm{\begin{bmatrix}K \\ I\end{bmatrix} (I - GK)^{-1} M^{-1}} \le \frac{1}{\epsilon} \\]
Notice that \\(\gamma\\) is the \\(\hinf\\) norm from \\(\phi\\) to \\(\begin{bmatrix}u\\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}
\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
\\[ R = I + D D^T, \quad S = I + D^T D \\]
\\(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
\\[ \hnorm{ \begin{bmatrix}K\\I\end{bmatrix} (I-GK)^{-1} M^{-1} } \le \gamma \\]
for a specified \\(\gamma > \gamma\_\text{min}\\), is given by
\begin{subequations}
\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} \\ \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}
\end{subequations}
The Matlab function `coprimeunc` can be used to generate the controller in [eq:control_coprime_factor](#eq:control_coprime_factor).
It is important to emphasize that since we can compute \\(\gamma\_\text{min}\\) from [eq:gamma_min_coprime](#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 Fig. [fig:shaped_plant](#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 Fig. [fig:shapping_practical_implementation](#fig:shapping_practical_implementation) has been found useful when compared with the conventional setup in Fig. [fig:classical_feedback_small](#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 Fig. [fig:classical_feedback_2dof_simple](#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 [sec:hinf_loop_shaping_procedure](#sec:hinf_loop_shaping_procedure) is a one-degree-of-freedom design, although a **constant** pre-filter can be easily implemented for steady-state accuracy.
However, this may not be sufficient and a dynamic two degrees-of-freedom design is required.
The design problem is illustrated in Fig. [fig:coprime_uncertainty_hinf](#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 Fig. [fig:coprime_uncertainty_hinf](#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:
\\[ u\_s = \begin{bmatrix} K\_1 & K\_2 \end{bmatrix} \begin{bmatrix} \beta \\ y \end{bmatrix} \\]
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:
\\[ \left\\| (I - G\_s K\_2)^{-1} G\_s K\_1 - T\_{\text{ref}} \right\\|\_\infty < \gamma \rho^2 \\]
\\(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 [sec:hinf_loop_shaping_procedure](#sec:hinf_loop_shaping_procedure)) but without a post-compensator \\(W\_2\\)
2. Select a desired closed-loop transfer function \\(T\_{\text{ref}}\\) between the commands and controller outputs
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 Fig. [fig:hinf_synthesis_2dof](#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
\\[ G\_s \triangleq \left[ \begin{array}{c|c}
A\_s & B\_s \\ \hline
C\_s & 0
\end{array} \right] \\]
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
\\[ W\_1 \triangleq \left[ \begin{array}{c|c}
A\_w & B\_w \\ \hline
C\_w & D\_w
\end{array} \right] \\]
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
\\[ u = \left[ \begin{array}{c|cc}
A\_w - B\_wD\_w^{-1}C\_w & 0 & B\_wD\_w^{-1} \\ \hline
C\_w & D\_w & 0
\end{array} \right] \begin{bmatrix}
u\_s \\ u\_a
\end{bmatrix} \\]
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 Fig. [fig:weight_anti_windup](#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
\\[ \dot{\hat{x}}\_s = A\_s \hat{x}\_s + H\_s (C\_s \hat{x}\_s - y\_s) + B\_s u\_s \\]
but when off-line, the state equation becomes
\\[ \dot{\hat{x}}\_s = A\_s \hat{x}\_s + H\_s (C\_s \hat{x}\_s - y\_s) + B\_s u\_{as} \\]
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 Fig. [fig:general_control_names_bis](#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 Fig. [fig:control_system_hierarchy](#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 Fig. [fig:optimize_control_b](#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 Fig. [fig:optimize_control_c](#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
| ![](/ox-hugo/skogestad07_optimize_control_a.png) | ![](/ox-hugo/skogestad07_optimize_control_b.png) | ![](/ox-hugo/skogestad07_optimize_control_c.png) |
|--------------------------------------------------|--------------------------------------------------------------------------------|-------------------------------------------------------------|
| 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:
- The cost function \\(J\\) is smooth (twice differentiable)
- 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
- 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:
\\[ 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)) \\]
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:
\\[ 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}) \\]
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 \\(\bar{\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
\\[ v\_i = \frac{(y\_{i\_{\text{opt,max}}} - y\_{i\_{\text{opt,min}}})}{2} \\]
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 Fig. [fig:general_control_names_bis](#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\\):
\\[ u = K v \\]
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** (Fig. [fig:cascade_extra_meas](#fig:cascade_extra_meas))
- The "measurement" \\(y\_i\\) is an output from another controller.
This is referred to as **input resetting** (Fig. [fig:cascade_extra_input](#fig:cascade_extra_input))
| ![](/ox-hugo/skogestad07_cascade_extra_meas.png) | ![](/ox-hugo/skogestad07_cascade_extra_input.png) |
|-------------------------------------------------------|---------------------------------------------------|
| 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 Fig. [fig:cascade_extra_meas](#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 (Fig. [fig:cascade_extra_meas](#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 Fig. [fig:cascade_control](#fig:cascade_control) where the primary output \\(y\_1\\) depends directly on \\(y\_2\\) which is a special case of Fig. [fig:cascade_extra_meas](#fig:cascade_extra_meas).
With reference to the special (but common) case of cascade control shown in Fig. [fig:cascade_control](#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
\\[ u\_1 = K\_{11}(s)(r-y); \quad u\_2 = K\_{21}(s)(r-y) \\]
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 Fig. [fig:cascade_extra_input](#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
\\[ u\_2 = K\_2(s)(r - y) \\]
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}\\):
\\[ u\_1 = K\_1(s)(r\_{u\_2} - y\_1), \ y\_1 = u\_2 \\]
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 Fig. [fig:cascade_control_two_layers](#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 [tab:partial_control](#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
Table 8:
Applications of partial control
| 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}
\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\\) (Fig. [fig:partial_control](#fig:partial_control)).
We get:
\begin{equation}
\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:
\\[ u\_2 = -G\_{22}^{-1} G\_{d2} d - G\_{22}^{-1} G\_{21} u\_1 + G\_{22}^{-1} y\_2 \\]
The dynamics of the system becomes:
\begin{equation}
\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 Fig. [fig:cascade_extra_meas](#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 [eq:partial_control](#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 [eq:partial_control_partitioning](#eq:partial_control_partitioning) and [eq:partial_control](#eq:partial_control), and compute \\(P\_d\\) using [eq:tight_control_y2](#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
\\[ y\_1 = (G\_{d1} - G\_1 G\_2^{-1} G\_{d2})d + G\_1 G\_2^{-1} (r\_2 + e\_2) \\]
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
\\[ r\_1 = G\_1 G\_2^{-1} r\_2 \\]
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\\).
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 (Fig. [fig:decentralized_diagonal_control](#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)\\)
\\[ K(s) = \text{diag}\\{k\_i(s)\\} = \begin{bmatrix}
k\_1(s) & & & \\\\\\
& k\_2(s) & & \\\\\\
& & \ddots & \\\\\\
& & & k\_m(s)
\end{bmatrix} \\]
#### 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:
\\[ \tilde{G} \triangleq \text{diag}\\{g\_{ii}\\} = \begin{bmatrix}
g\_{11} & & & \\\\\\
& g\_{22} & & \\\\\\
& & \ddots & \\\\\\
& & & g\_{mm} \\\\\\
\end{bmatrix} \\]
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{subequations}
\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}
\end{subequations}
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}
\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 [eq:S_factorization](#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}
\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".
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}
\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\\)
For a stable plant, avoid pairings that corresponds to negative steady-state RGA-elements \\(\lambda\_{ij}(0) < 0\\)
\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:
\\[ u\_1 \leftrightarrow y\_2,\ u\_2 \leftrightarrow y\_1,\ u\_3 \leftrightarrow y\_3 \\]
\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}
\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}
\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**:
- Compute the CLDG and PRGA, and plot these as a function of frequency
- 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}
|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 [eq:decent_contr_one_loop](#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}\\)
- 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}
|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.
- If the chosen pairing is controllable, then [eq:decent_contr_one_loop](#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. [eq:decent_contr_cond_stability](#eq:decent_contr_cond_stability) and [eq:decent_contr_necessary_cond_stability](#eq:decent_contr_necessary_cond_stability), and **performance**, e.g. [eq:decent_contr_cond_perf_dist](#eq:decent_contr_cond_perf_dist) and [eq:decent_contr_cond_perf_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**.
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 \\(\colvec{x\_1 \\ x\_2}\\) 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
\\[ G - G\_a = \sum\_{i = k+1}^n \frac{c\_i b\_i^T}{s - \lambda\_i} \\]
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{subequations}
\begin{align}
AP + PA^T + BB^T &= 0 \\\\\\
A^TQ + QA + C^TC &= 0
\end{align}
\end{subequations}
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{subequations}
\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}
\end{subequations}
\\(\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\\)
\\[ 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} \\]
Define \\((\hat{A},\hat{B},\hat{C},\hat{D})\\) by
\begin{subequations}
\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}
\end{subequations}
where \\(U\\) is a unitary matrix satisfying
\\[ B\_2 = - C\_2^T U \ \text{ and } \ \Gamma \triangleq \Sigma\_1^2 - \sigma\_{k+1}^2 I \\]
The matrix \\(\hat{A}\\) has \\(k\\) "stable" eigenvalues; the remaining ones are in the open right-half plane.
Then
\\[ G\_h^k(s) + F(s) = \left[ \begin{array}{c|cc}
\hat{A} & \hat{B} \\ \hline
\hat{C} & \hat{D}
\end{array} \right] \\]
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
Skogestad, S., & Postlethwaite, I., *Multivariable feedback control: analysis and design* (2007), : John Wiley. [↩](#ad6f62e369b7a8d31c21671886adec1f)