-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into lectures/week11
- Loading branch information
Showing
7 changed files
with
361 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
\begin{tikzpicture}[auto, node distance=1.5cm,>=latex'] | ||
\node [input, name=uinput] (uinput) {}; | ||
\node [tmp, right of=uinput] (ut) {}; | ||
\node [block, right of=ut] (P) {$P(s)$}; | ||
\node [block, above of=P] (W) {$W(s)$}; | ||
\node [output, right of=P] (y) {}; | ||
\node [output, right of=W] (z) {}; | ||
|
||
\draw [->] (rinput) -- node[pos=0.2]{$u$} (P); | ||
\draw [->] (ut) |- node{} (W); | ||
\draw [->] (P) -- node{$y$} (y); | ||
\draw [->] (W) -- node{$z$} (z); | ||
\end{tikzpicture} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,327 @@ | ||
\section{Modern Controller Synthesis} | ||
To unify the controller synthesis the following standard form has been established. | ||
|
||
|
||
\setlength{\oldtabcolsep}{\tabcolsep}\setlength\tabcolsep{2pt} | ||
|
||
\begin{tabularx}{\linewidth}{@{}ll@{}} | ||
\includegraphics[width=0.5\linewidth, align=c]{controller_synthesis_paradigm.png} | ||
& | ||
{\begin{tabularx}{\linewidth}{@{}ll@{}} | ||
$u$: & control input \\ | ||
$y$: & measured output \\ | ||
$r$: & reference signal \\ | ||
$w$: & disturbance \\ | ||
$z$: & performance output \\ | ||
$q$: & uncertainty block input \\ | ||
$v$: & uncertainty block output | ||
\end{tabularx} | ||
} | ||
\end{tabularx} | ||
|
||
\setlength{\tabcolsep}{\oldtabcolsep} | ||
|
||
|
||
\newpar{} | ||
The objective is to stabilize the system and minimize the performance outputs $z$. | ||
|
||
\subsection{Frequency Weights} | ||
|
||
To guide the optimization process the performance outputs $z_i$ are weighted with frequency dependent weighting functions $W_i$. | ||
|
||
The most common performance outputs are | ||
\begin{center} | ||
\includegraphics[width=0.9\linewidth]{frequency_weights.png} | ||
\end{center} | ||
|
||
\ptitle{Tracking Error} | ||
|
||
Is given by | ||
\begin{equation*} | ||
z_1=W_1 G_{er} = W_1 S(s) | ||
\end{equation*} | ||
with the sensitivity function $S(s)$ and the loop transfer function $L(s)$: | ||
\begin{gather*} | ||
S(s)=G_{er}(s) = {(I+L(s))}^{-1} \\ | ||
L(s)=P(s)C(s) | ||
\end{gather*} | ||
\begin{itemize} | ||
\item If $W_1(s)$ is chosen large at low frequencies $S(s)$ must be small in order to minimize $z_1$. In other words, the tracking error must be small at low frequencies. | ||
\item This is the same as requiring $\sigma_{\min}[L(s)] \gg |W_1(s)|$, which corresponds to the low-frequency ``Bode obstacle'' in the SISO case. | ||
\end{itemize} | ||
|
||
\newpar{} | ||
|
||
\ptitle{Control Effort} | ||
|
||
Is given by | ||
\begin{equation*} | ||
z_2=W_2 G_{ur}(s) = W_2 C(s) S(s) | ||
\end{equation*} | ||
\begin{itemize} | ||
\item Useful to limit the maximum control effort | ||
\end{itemize} | ||
|
||
\newpar{} | ||
|
||
\ptitle{Noise Rejection} | ||
|
||
Is given by | ||
\begin{equation*} | ||
z_3= W_3 G_{yn} =-W_3 T(s) | ||
\end{equation*} | ||
with the complementary sensitivity function | ||
\begin{equation*} | ||
T(s) = G_{yr}(s)={(I+L(s))}^{-1}L(s) = I-S(s) | ||
\end{equation*} | ||
\begin{itemize} | ||
\item If $W_3$ is chosen very large for high frequencies, the complementary sensitivity must be very small at high frequencies. | ||
\item This is the same as requiring $\sigma_{\max}[L(s)] \ll |W_3(s)|$, which corresponds to the high-frequency ``Bode obstacle'' in the SISO case. | ||
\end{itemize} | ||
|
||
\newpar{} | ||
|
||
\ptitle{Stability Robustness} | ||
|
||
For stability robustness in the presence of uncertainty $\Delta$ the same weighting method can be applied. | ||
\begin{equation*} | ||
z_\Delta = \Delta(s)W_\Delta(s) | ||
\end{equation*} | ||
with | ||
\begin{gather*} | ||
\|\Delta(s)\|_{\mathcal{H}_\infty} < 1 \\ | ||
\|M(s)\|_{\mathcal{H}_\infty} < 1 | ||
\end{gather*} | ||
where $M(s)$ is the TF from the output of $\delta$ ti its input. | ||
|
||
\subsubsection{First Order Weights} | ||
\ptitle{Lowpass} | ||
\begin{equation*} | ||
W(s) = \frac{M}{\frac{Ms}{\omega}+1} | ||
\end{equation*} | ||
|
||
\ptitle{Highpass} | ||
\begin{equation*} | ||
W(s) = \frac{Ms}{s+M\omega} | ||
\end{equation*} | ||
|
||
\subsection{State-Space Representation} | ||
To synthesize a controller an assembled state space model of the generalized system ($G$) can be constructed. | ||
|
||
\ptitle{Plant} | ||
\begin{gather*} | ||
P : \left[ | ||
\begin{array}{c|c} % ChkTex -2 | ||
A_p & B_p \\ | ||
\hline % ChkTex -2 | ||
C_p & D_p \\ | ||
\end{array} | ||
\right] \\ | ||
P(s) = {C_p(sI-A_p)}^{-1}B_p+D_p | ||
\end{gather*} | ||
|
||
\ptitle{Frequency Weights} | ||
|
||
For each weight we get | ||
\begin{gather*} | ||
W : \left[ | ||
\begin{array}{c|c} % ChkTex -2 | ||
-p & 1 \\ | ||
\hline % ChkTex -2 | ||
r-qp & q | ||
\end{array} | ||
\right] \\ | ||
W(s) = \frac{qs+r}{s+p} | ||
\end{gather*} | ||
|
||
\ptitle{Generalized System} | ||
|
||
The generalized system is obtained by stacking all the state-space models: | ||
\begin{gather*} | ||
G : \left[ | ||
\begin{array}{c|c c} % ChkTex -2 | ||
A & B_w & B_u \\ | ||
\hline % ChkTex -2 | ||
C_z & D_{zw} & D_{zu} \\ | ||
C_y & D_{yw} & D_{yu} | ||
\end{array} | ||
\right] \\ | ||
G(s) = \begin{bmatrix} | ||
G_{zw}(s) & G_{zu}(s) \\ | ||
G_{yw}(s) & G_{yu}(s) \\ | ||
\end{bmatrix} | ||
\end{gather*} | ||
The matrix $A$ contains both the dynamics of the plant and the frequency weights. | ||
|
||
\ptitle{Controller} | ||
\begin{gather*} | ||
K : \left[ | ||
\begin{array}{c|c} % ChkTex -2 | ||
A_c & B_c \\ | ||
\hline % ChkTex -2 | ||
C_c & D_c \\ | ||
\end{array} | ||
\right] \\ | ||
K(s) = {C_c(sI-A_c)}^{-1}B_c+D_c | ||
\end{gather*} | ||
|
||
The closed loop TF from the exogenous inputs $w$ to the performance outputs $z$ is given by the \textit{Linear Fractional Transformation}: | ||
\begin{equation*} | ||
F(s) = G_{zw}(s) + G_{zu}(s)K(s){(I-G_{yu}(s))}^{-1}G_{yw}(s) | ||
\end{equation*} | ||
|
||
\begin{examplesection}[Example Assembly] | ||
For the system | ||
\begin{center} | ||
\input{BSB/freq_weights_example.tex} | ||
\end{center} | ||
the generalized system $G(s)$ has to be calculated | ||
\begin{equation*} | ||
\begin{bmatrix} | ||
y \\ | ||
z | ||
\end{bmatrix} | ||
= \underbrace{\begin{bmatrix} | ||
G_{yu}(s) \\ | ||
G_{zu}(s) | ||
\end{bmatrix}}_{G(s)} u | ||
\end{equation*} | ||
The combined states evolve with | ||
\begin{equation*} | ||
\begin{bmatrix} | ||
\dot{x}_p \\ | ||
\dot{x}_w | ||
\end{bmatrix} | ||
= \underbrace{\begin{bmatrix} | ||
A_p & 0 \\ | ||
0 & A_w | ||
\end{bmatrix}}_{A_G} | ||
\begin{bmatrix} | ||
x_p \\ | ||
x_w | ||
\end{bmatrix} | ||
+ \underbrace{\begin{bmatrix} | ||
B_p \\ | ||
B_w | ||
\end{bmatrix}}_{B_G} \: u | ||
\end{equation*} | ||
|
||
and the combined output is given by | ||
|
||
\begin{equation*} | ||
\begin{bmatrix} | ||
y \\ | ||
z | ||
\end{bmatrix} | ||
= \underbrace{\begin{bmatrix} | ||
C_p & 0 \\ | ||
0 & C_w | ||
\end{bmatrix}}_{C_G} | ||
\begin{bmatrix} | ||
x_p \\ | ||
x_w | ||
\end{bmatrix} | ||
+ | ||
\underbrace{\begin{bmatrix} | ||
D_p \\ | ||
D_w | ||
\end{bmatrix}}_{D_G} | ||
\: u | ||
\end{equation*} | ||
The generalized system representation is then given by | ||
\begin{equation*} | ||
G = \left[ | ||
\begin{array}{c|c} % ChkTex -2 | ||
A_G & B_G \\ | ||
\hline % ChkTex -2 | ||
C_G & D_G | ||
\end{array} | ||
\right] | ||
= | ||
\left[ | ||
\begin{array}{cc|c} % ChkTex -2 | ||
A_p & 0 & B_p \\ | ||
0 & A_w & B_w \\ | ||
\hline % ChkTex -2 | ||
C_p & 0 & D_p \\ | ||
0 & C_w & D_w | ||
\end{array} | ||
\right] | ||
\end{equation*} | ||
|
||
\end{examplesection} | ||
|
||
\subsection{Youla's Q Parameterization} | ||
One can get all stabilizing controllers for a given plant as a function of a single stable transfer function Q(s). This is called the Youla parameterization (Q-parameterization). It's the extension of a full state feedback controller (including observer) with a system \textcolor{purple}{$Q$} that takes the innovation as an input. | ||
\begin{center} | ||
\includegraphics[width=0.8\linewidth]{youlas_Q_parameterization.png} | ||
\end{center} | ||
$Q$ needs to be \textbf{stable} and has to consist of a \textbf{proper rational} transfer function. | ||
\newpar{} | ||
The closed-loop dynamics are given by | ||
\begin{equation*} | ||
\begin{bmatrix} | ||
\dot{x} \\ | ||
\dot{x}_Q \\ | ||
\dot{\eta} | ||
\end{bmatrix} | ||
= | ||
\begin{bmatrix} | ||
A+BK & BC_Q & -BK \\ | ||
0 & A_Q & B_Q C \\ | ||
0 & 0 & A+LC | ||
\end{bmatrix} | ||
\begin{bmatrix} | ||
x \\ | ||
x_Q \\ | ||
\eta | ||
\end{bmatrix} | ||
+ | ||
\begin{bmatrix} | ||
I & 0 \\ | ||
0 & C \\ | ||
0 & C | ||
\end{bmatrix} | ||
\begin{bmatrix} | ||
r \\ | ||
d | ||
\end{bmatrix} | ||
\end{equation*} | ||
The closed-loop poles are the union of the full-state feedback poles $A+BK$, the observer poles $A+LC$ and the poles of $Q(s)$. | ||
\newpar{} | ||
The TF from $y$ to $u$ hence the TF of the controller $C(s)$ can be written as | ||
\begin{equation*} | ||
C(s) = -{(X_0(s)+Q(s)N(s))}^{-1}(Y_0(s)-Q(s)D(s)) | ||
\end{equation*} | ||
where | ||
\begin{equation*} | ||
C_0(s)=-{X_0(s)}^{-1}Y_0(s) | ||
\end{equation*} | ||
is the TF when $Q(s)=0$ with controller gain $K_0$ and observer gail $L_0$ | ||
\noindent\begin{align*} | ||
X_0(s) & = -K_0{(sI-A-L_0C)}^{-1}B \\ | ||
Y_0(s) & = -K_0{(sI-A-L_0C)}^{-1}L_0 | ||
\end{align*} | ||
and $N$, $D$ are the nominator and denominator of the plant | ||
\begin{align*} | ||
N(s) & =C{(sI-A-L_0C)}^{-1}B \\ | ||
D(s) & = -C(sI-A-L_0-C^{-1}L_0) | ||
\end{align*} | ||
where $L_0$ is an observer gain that would stabilize the error dynamics. | ||
\newpar{} | ||
It can be show that the interconnection of the system is stable if the \textbf{Bezout identity} is fulfilled | ||
\begin{equation*} | ||
D(s)X(s)-N(s)Y(s)=1 | ||
\end{equation*} | ||
and that all feedback stabilizing controllers for $P$ are given by | ||
\begin{equation*} | ||
C(s) = \frac{Y_0(s) -D(s)Q(s)}{X_0(s)-N(s)Q(s)} | ||
\end{equation*} | ||
The sensitivity function is given by | ||
\begin{equation*} | ||
S(s) = D(s)(X_0(s)-N(S)Q(s)) | ||
\end{equation*} | ||
and the complementary sensitivity function by | ||
\begin{equation*} | ||
T(s) = -N(s)(Y_0(s)+D(s)Q(s)) | ||
\end{equation*} |
Oops, something went wrong.