Skip to content

Commit

Permalink
Merge pull request #11 from MeierTobias/lectures/week10
Browse files Browse the repository at this point in the history
Lectures/week10
  • Loading branch information
MeierTobias authored May 14, 2024
2 parents ae222ee + b1fe041 commit 1751c87
Show file tree
Hide file tree
Showing 8 changed files with 362 additions and 13 deletions.
13 changes: 13 additions & 0 deletions src/BSB/freq_weights_example.tex
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}
3 changes: 3 additions & 0 deletions src/images/controller_synthesis_paradigm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/images/frequency_weights.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/images/youlas_Q_parameterization.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

% load the template headers
\input{\templatePath/summary_headers.tex} % ChkTex 27
\usepackage{cancel}

\begin{document}
\begin{multicols*}{3}
Expand All @@ -23,6 +22,7 @@
\input{sections/LQG.tex}
\input{sections/MIMO_intro.tex}
\input{sections/stab_and_perf_robustness.tex}
\input{sections/modern_controller_synthesis.tex}
\newpage
\input{sections/Appendix.tex}

Expand Down
327 changes: 327 additions & 0 deletions src/sections/modern_controller_synthesis.tex
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*}
Loading

0 comments on commit 1751c87

Please sign in to comment.