cours-m1-eea/421-Controle_processus/Cours/Cours.tex

2153 lines
69 KiB
TeX
Raw Normal View History

2018-12-23 23:03:26 +01:00
\documentclass[12pt,a4paper,french]{book}
% Packages
\usepackage[utf8x]{inputenc} % encodage
\usepackage{mathtools} % math
\usepackage{cancel} % rayer des trucs en maths
\usepackage{amsfonts} % math
\usepackage{amssymb} % math
\usepackage{mathrsfs}
\usepackage{graphicx} % pour inserer des graphiques
\usepackage[french]{babel} % pour ecrire en francais
\usepackage[left=2.00cm, right=2.00cm, top=3.00cm, bottom=3.00cm]{geometry} % la mise en page
\usepackage{fancyhdr} % la mise en page
\usepackage[dvipsnames,x11names]{xcolor} % Un peu de couleur !
\usepackage{float}
\usepackage{subcaption}
\usepackage{enumitem}
\usepackage{multicol}
\usepackage{subfiles} % Gere les sous-fichier
\usepackage{hyperref} % Creer des lien dans le pdf, en particulier sur la table des matières
\usepackage{tikz}
\usetikzlibrary{fit}
\usetikzlibrary{positioning}
\usepackage{schemabloc}
\usepackage{circuitikz}
\usepackage{pgfplots}
\input{../../Raccourcis.tex}
\input{../../Boites.tex}
\hypersetup{
colorlinks = true,
linkcolor=.,
}
% Mise en page
\title{421 - Controle de processus}
\setcounter{secnumdepth}{3}
2018-12-05 20:38:40 +01:00
\renewcommand{\thesection}{\arabic{section}}
\begin{document}
\maketitle
\tableofcontents
\chapter{Echantillonnage des signaux et transformée en z}
\section{Introduction : positionnement du problème}
On va s'intéresser aux signaux analogiques vus comme des fonctions réelles
\[x : t \in \R \rightarrow x(t) \in \R\]
Les processus évoluent continûment dans le temps.\\
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\sbEntree{E}
2018-12-23 23:03:26 +01:00
\sbComp{comp}{E}
2018-12-05 20:38:40 +01:00
\sbRelier[$c(t)$]{E}{comp}
2018-12-23 23:03:26 +01:00
\sbBloc{reg}{Structure de commande}{comp}
2018-12-05 20:38:40 +01:00
\sbRelier[$\epsilon$]{comp}{reg}
2018-12-23 23:03:26 +01:00
\sbBloc{sys}{Système}{reg}
2018-12-05 20:38:40 +01:00
\sbRelier[u(t)]{reg}{sys}
2018-12-23 23:03:26 +01:00
\sbSortie{S}{sys}
2018-12-05 20:38:40 +01:00
\sbRelier[$y(t)$]{sys}{S}
\sbRenvoi{sys-S}{comp}{}
\end{tikzpicture}
\caption{Asservissement analogique}
\end{figure}
2018-12-23 23:03:26 +01:00
La loi de commande est alors :
2018-12-05 20:38:40 +01:00
\begin{align*}
U(p) & = C(p).[R(p) - Y(p)], \text{ transformée de Laplace de }\\
u(t) & = c(t)*[r(t) - y(t)]
\end{align*}
2018-12-23 23:03:26 +01:00
\paragraph*{Problématique}
2018-12-05 20:38:40 +01:00
Il faut alors évaluer u(t) et le mettre en œuvre de manière analogique et/ou bon moment. Pour cela, il est nécessaire de calculer en temps réels et d'adapter u(t).\\
2018-12-23 23:03:26 +01:00
La solution est d'exploiter un calculateur numérique couplé à de l'électronique numérique pour implémenter la loi de commande.
2018-12-05 20:38:40 +01:00
Par exemple :
\begin{itemize}
\item ordinateur à base de microprocesseurs cadencés par une horloge interne
\item micro-contrôleurs
\item DSP (Digital Signal Processing, puce à usage spécifique, non modifiable)
\item Arduino
2018-12-23 23:03:26 +01:00
\end{itemize}
2018-12-05 20:38:40 +01:00
L'information est transmise par des signaux binaires eux-mêmes étant des signaux numériques. Cette information ne transporte pas l'énergie nécessaire pour contrôler le processus, mais seulement la loi de commande.
Les signaux numériques évoluent de manière discrète à des instants régulièrement espacés par un intervalle de temps donné par la période de l'horloge $T_h = \frac{1}{f_h}$.
On pose l'hypothèse que $T_h$ est constante donc les différents instants correspondent à $k.T_h$$k\in\mathbb{N}$.\\
\subsection*{Définition}
Le signal numérique $u_k$ est défini comme une suite numérique :
\begin{align*}
\mathbb{N} & \rightarrow \mathbb{R} \\
k & \mapsto U_k
\end{align*}
\subsection*{Calculateurs numériques}
Ils servent à implémenter les lois de commande, c'est-à-dire les règles mathématiques d'évolution des signaux.
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\sbEntree{E}
2018-12-23 23:03:26 +01:00
\sbBloc{calc}{Calculateur numérique}{E}
2018-12-05 20:38:40 +01:00
\sbRelier[$e_k$]{E}{calc}
\sbBloc{cna}{CNA}{calc}
\sbRelier[$u_k$]{calc}{cna}
\sbBloc{sys}{Système analogique}{cna}
\sbRelier[$u(t)$]{cna}{sys}
\sbSortie{S}{sys}
\sbRelier[$y(t)$]{sys}{S}
\sbDecaleNoeudy[4]{S}{R}
\sbBlocr[12]{can}{CAN}{R}
\sbRelieryx{sys-S}{can}
\sbRelierxy{can}{calc}
\end{tikzpicture}
\caption{Interfaçage Numérique / Analogique}
\end{figure}
\noindent Remarque :\\
CAN : Convertisseur Analogique Numérique\\CNA : Convertisseur Numérique Analogique\\
L'horloge permet le fonctionnement synchrone des différents composants de la structure de l'asservissement numérique.
\section{Modélisation des signaux échantillonnés}
\subsection*{Échantillonnage}
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
Un échantillonnage idéal à la période d'échantillonnage $T_e$ est représenté par :
2018-12-23 23:03:26 +01:00
{\centering
2018-12-05 20:38:40 +01:00
\begin{circuitikz}
\draw (0,0) node[above]{$u(t)$} to [cspst,l=$T_e$](2,0) node[above]{$u^*(t)$};
2018-12-23 23:03:26 +01:00
\end{circuitikz}}
2018-12-05 20:38:40 +01:00
\[
u^*(t) =
\left\{
\begin{array}{ll}
2018-12-23 23:03:26 +01:00
u(k.T_e)=u_k & \text{si} t =k.T_e \\
0 & \text{si} t\neq k.T_e
\end{array}
2018-12-05 20:38:40 +01:00
\right.
\]
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\subsection*{Peigne de Dirac}
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
On définit le peigne de Dirac par : \[p(t)=\sum_{k\in\mathbb{N}}\delta_0(t-k.T_e)\]
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
On peut donc réécrire l'expression de l'échantillonnage :
\begin{figure}[h!]
\centering
\begin{tikzpicture}[scale=0.8,samples=50,domain=-4.5:4.5]
\draw[-stealth] (-5,0) -- (5,0) node[right] {$t$};
\draw[-stealth] (0,-1.5) -- (0,1.5) node[above] {$p(t)$};
\foreach \n in {-4,-3,...,4}
\draw[-stealth,thick] (\n,0) -- (\n,1);
\draw (1,0) node[below]{$T_e$};
\end{tikzpicture}
\begin{tikzpicture}[scale=0.8,samples=50,domain=-4.5:4.5]
\draw[-stealth] (-5,0) -- (5,0) node[right] {$t$};
\draw[-stealth] (0,-1.5) -- (0,1.5) node[above] {$p^*(t)$};
\draw[dotted] plot (\x,{sin(60*\x+20)});
\foreach \n [evaluate=\n as \x using sin(60*\n+20)] in {-4,-3,...,4}
\draw[-stealth,thick] (\n,0) -- (\n,\x);
\end{tikzpicture}
\caption{Peigne de Dirac et échantillonnage d'un signal}
\end{figure}
\begin{align*}
u^*(t) &= u(t).p(t)\\
&=\sum_{k\in\mathbb{N}}u(t)\delta_0(t-k.T_e) \\
&=\sum_{k\in\mathbb{N}}u(kT_e)\delta_0(t-k.T_e) \\
u^*(t) &= \sum_{k\in\mathbb{N}} u_k\delta_0(t-k.T_e) \\
\end{align*}
\section{Transformée en $z$ et lien avec Fourier / Laplace}
Soit $f(t)$ un signal.
\begin{align*}
\text{Transformée de Laplace : } & L\{f(t)\} = \int_0^{\infty}f(t)e^{-pt}dt \\
\text{Signal échantilloné : } & f^*(t) = \sum_{k\in\mathbb{N}}f_k\delta_ 0(t-kT_e) \\
\end{align*}
On calcule la transformée de Laplace du signal échantillonné :
\begin{align*}
F^*(p) & = L\{f^*(t)\} \\
& = \int_ 0^{\infty}\sum_{k\in\mathbb{N}}f_k\delta_ 0(t-kT_e)e^{-tp}dt \\
& = \int_ 0^{\infty}\sum_{k\in\mathbb{N}}f_ke^{-kT_ep}\delta_ 0(t-kT_e)dt \\
& = \sum_{k\in\mathbb{N}}f_ke^{-kT_ep} \\
F^*(p) & = \sum_{k\in\mathbb{N}}f_k(e^{-T_ep})^{-k} \\
\end{align*}
2018-12-23 23:03:26 +01:00
En notant $z = e^{T_ep}$, on obtient
2018-12-05 20:38:40 +01:00
\[ \boxed{ F(z) = F^*(p)|_{z=e^{T_ep}} } \]
\subsection*{Transformée en $z$}
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
On définit la transformée en $z$ du signal numérique $f_k$ :
\[ F(z) = \sum_{k = 0}^{\infty} f_kz^{-k} \quad, z = e^{T_ep}\]
On note $F(z) = Z\{f_k\}$
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\begin{prop}
La transformée en z est \textbf{linéaire} : \[ Z\{\alpha u_k + \beta f_k\} = \alpha U(z) + \beta F(z) \]
Si $R_u$ et $R_f$ sont les rayons de convergence de $U(z)$ et de $F(z)$, alors \[R_{\alpha_u + \beta f} = \max \{ R_u,R_f \} \]
\end{prop}
\subsection*{Produit de convolution}
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
On définit le produit de convolution entre deux signaux $u_k$ et $f_k$ :
\begin{align*}
u_k * f_k & = \sum_{n=-\infty}^{\infty} u_n f_{k-n} \\
& = \sum_{n=0}^{\infty} u_n f_{k-n} \text{ pour u et f causaux } \\
Z\{u_k * f_k\} & = U(z).F(z)
\end{align*}
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\subsection*{Théorèmes importants}
\begin{thm}[Théorème d'avance]
\[ Z\{u_{k+d|d\in\mathbb{N}^*}\} = z^d U(z) - z^d \sum_{i=0}^{d-1}u_iz^{-i} \]
\end{thm}
\begin{thm}[Théorème du retard]
\[ Z\{u_{k-d|d\in\mathbb{N}^*}\} = z^{-d} U(z) \]
\end{thm}
\begin{thm}[Théorème de la sommation]
\[ Z\{\sum_{k=0}^nu_k\} = \frac{z}{z-1}U(z) \]
\end{thm}
\begin{thm}[Théorème de la valeur initiale]
\[ \lim_{k\rightarrow 0} u_k = \lim_{z\rightarrow \infty} U(z) \]
\end{thm}
\begin{thm}[Théorème de la valeur finale]
\[ \lim_{k\rightarrow \infty} u_k = \lim_{z\rightarrow 1} \frac{z-1}{z} U(z) \]
Cette limite est définie lorsque les pôles de $\frac{z-1}{z}U(z)$ sont à l'intérieur du cercle de rayon 1.
\end{thm}
\begin{prop}[Multiplication par le temps]
Soit $x(t)=te(t)$.\\
\begin{align*}
x^*(nT_e) = x_n = nT_e e_n \\
X(z) = Z[x_n] = -z T_e \frac{\partial E(z)}{\partial z}
\end{align*}
\end{prop}
\subsection*{Lien avec la transformée de Fourier}
On peut considérer le peigne de Dirac $p(t)$ comme une fonction $T_e$-périodique, donc on peut la décomposer en série de Fourier :
\begin{align*}
p(t) & = \sum_{n=0}^{\infty} \delta_0(t-nT_e) = \sum_{k=-\infty}^{\infty} c_k e^{j\frac{2\pi k t}{T_e}} \\
\text{} c_k & = \int_{-T_e/2}^{T_e/2} (\sum_{n=0}^{\infty} \delta_0(t-nT_e)e^{-j \frac{2\pi kt}{T_e}})dt = ... = \frac{1}{T_e} \\
\intertext{Ainsi,}
f^*(t) & = f(t).p(t) = \frac{1}{T_e} \sum_{k=-\infty}^{\infty}f(t)e^{-j\frac{2\pi kt}{T_e}} \\
F^*(p) & = \frac{1}{T_e} \int_0^{\infty} ( \sum_{k=-\infty}^{\infty}f(t)e^{-j\frac{2\pi kt}{T_e}} ) e^{-pt}dt \\
& = \frac{1}{T_e} \sum_{k=-\infty}^{\infty} (\int_0^{\infty} f(t) e^{-(p-j\frac{2\pi k}{T_e})t}dt) \\
F^*(p) &= \frac{1}{T_e} \sum_{k=- \infty}^{\infty}F(p-j\frac{2\pi k}{T_e})
\end{align*}
Le spectre de $f^*(t)$ est périodique en fréquence, de période $\frac{2\pi}{T_e}$.
2018-12-23 23:03:26 +01:00
FAIRE UNE FIGURE PROPRE !!
2018-12-05 20:38:40 +01:00
\subsection*{Reconstitution d'un signal}
\begin{thm}
2018-12-23 23:03:26 +01:00
Un signal analogique $f(t)$ dont la transformée de Fourier est nulle à l'extérieur de l'intervalle $[-\omega_0,\omega_0]$, $\omega_0>0$, est parfaitement défini par ses échantillons $f_k=f(kT_e)$ si
2018-12-05 20:38:40 +01:00
\[F_e=\frac{1}{T_e} \text{ vérifie } \omega_e > 2 \omega_0 \text{ : Condition de Shannon } \]
Dans ce cas, on peut reconstituer le signal :
\[ f(t)=\sum_{k=-\infty}^{\infty}f_k sinc(\omega_e\frac{t-kT_e}{2}) \]
\end{thm}
Preuve : à base de développement en série de Fourier.\\
\noindent Remarque : la méthode de reconstruction de f(t) n'est pas causale car elle suppose de connaître le signal à tout instant.
En pratique, on préfère utiliser un CNA pour des applications en temps réel.
\section{Transformée en z inverse}
Soit $F(z) : \mathbb{C} \rightarrow \mathbb{C}$ une fraction rationnelle propre (degré du numérateur $<$ degré du dénominateur).
\subsection*{Problématique} Déterminer les échantillons $(f_k)_{k\in\mathbb{N}}$ tel que \[F(z) = Z\{(f_k)_{k\in\mathbb{N}}\}= \sum_{k=0}^{\infty}f_kz^{-k}\]
\subsection{Méthode par décomposition en éléments simples}
On applique cette méthode à $\frac{F(z)}{z}$ plutôt qu'à $F(z)$, en utilisant les transformées usuelles.\\
\noindent \textbf{Cas où F(z) possède des pôles distincts non nuls}
\begin{align*}
F(z) & = \frac{...}{(z-p_1)...(z-p_ n)} \\
\frac{F(z)}{z} & = \frac{...}{z(z-p_1)...(z-p_n)} \\
& = \frac{C_0}{z} + \frac{C_1}{z-p_1} + ... \\
F(z) & = C_0 + \frac{C_1 z}{z-p_1} + ... \text{} C_0 = F(0) \text{ et } C_i = \lim_{z\rightarrow p_i} \frac{z-p_i}{z}F(z)
\end{align*}
De plus, on a \[ \boxed{Z^{-1}\{\frac{C_jz}{z-p_j}\}=C_jp_j^k \text{ pour } i \leq j \leq n } \]
2018-12-23 23:03:26 +01:00
Exemple :
2018-12-05 20:38:40 +01:00
\[W(z) = \frac{z+3}{(z-1)(z+2)} \]
\begin{align*}
\intertext{Décomposition en éléments simples}
\frac{W(z)}{z} & = \frac{z+3}{z(z-1)(z+2)} = -\frac{3/2}{z}+\frac{4/3}{z-1}+\frac{1/6}{z+2} \\
W(z) & = -\frac{3}{2} + \frac{4}{3}\frac{z}{z-1} + \frac{1}{6}\frac{z}{z+2} \\
w_k & = -\frac{3}{2}\delta_k + (\frac{4}{3} + \frac{1}{6}(-2)^k).\mathbf{1}_k
\end{align*}
\noindent \textbf{Cas où F(z) possède un pôle multiple non nul, de multiplicité l supérieure ou égale à 1}
\[ W(z) = ... + \frac{C_1z}{z-p} + \frac{C_2z}{(z-p)^2} + ... + \frac{C_lz}{(z-p)^l} + ... \]
On a alors, $\forall j = 0,1,...,l-1$
\[ C_{l-j} = \lim_{z \rightarrow p} (\frac{1}{j!} \frac{\partial ^j \frac{(z-p)^l}{z}W(z)}{\partial z^j}) \]
\[Z^{-1}\{\frac{z}{(z-p)^l}\} = \frac{1}{(l-1)!}k(k-1)...(k-l+2)p^{k-l+1}, k\geq 0 \]
Exemple dans le poly.\\
\noindent \textbf{Cas d'un pôle nul, de multiplicité l supérieure ou égale à 1}
\[ W(z) = ... + C_0 + \frac{C_1z}{z} + \frac{C_2z}{z^2} + ... \]
On a alors, $\forall j = 0,1,...,l$
2018-12-23 23:03:26 +01:00
\[ C_{l-j} = \lim_{z \rightarrow p} (\frac{1}{j!} \frac{\partial ^j \frac{z^l}{z}W(z)}{\partial z^j}) \]
2018-12-05 20:38:40 +01:00
\[ Z^{-1} [z^{-d}] = \delta_{k-d} \]
Remarque :
\[ \frac{z}{z-D} = \frac{1}{1-Dz^{-1}} = \lim_{N\rightarrow\infty} \sum_{k=0}^N (z^{-1}D)^k = \sum_{k=0}^{\infty} D^k z^{-k} \]
On en déduit facilement que $Z^{-1}\{\frac{z}{z-D}\} = D^k$
2018-12-23 23:03:26 +01:00
\subsection{Méthode des résidus}
2018-12-05 20:38:40 +01:00
Méthode non exigée, voir polycopié
\section{Modélisation des CAN et CNA}
\subsection{Convertisseur analogique numérique}
Problématique :
\[ y(t) \rightarrow \boxed{\text{ CAN }} \rightarrow y_k \]
\begin{enumerate}
\item Échantillonnage : (discrétisation de l'axe des abscisses)
on échantillonne sur les instants $kT_e$
\item Quantification du signal : (discrétisation de l'axe des ordonnées)
On a $ q = \frac{u_{MAX} - u_{MIN}}{2^n}$, avec n le nombre de bits de codages, indiquant le qualité, la précision du convertisseur.
\end{enumerate}
\begin{figure}[h!]
\centering
\includegraphics[scale=0.6]{CAN.png}
\caption{Discrétisation et échantillonnage}
\end{figure}
La limitation d'amplitude est source de saturation du signal échantillonné. La quantification génère un bruit sur le signal en sortie du CAN (appelé bruit de quantification). Ce bruit peut être modélisé par une variable aléatoire de moyenne nulle, de répartition uniforme et de variance donnée par $q^2 / 12 $.\\
Dans le cadre de ce cours, on fera l'hypothèse que la quantification ne génère pas de bruit de quantification. Il n'y auras pas non plus de saturation : on parle de numérisation parfaite.\\
Remarque : ces opérations induisent également des retards de l'information. \\
Conséquence : en amont du CAN, on place un FAR\footnote{Filte anti-repliement de spectre} , un filtre analogique passe-bas.
\subsection*{Convertisseur Numérique Analogique}
Problématique : transformer un échantillon numérique en signal analogique défini $\forall t$.
Challenge théorique : quel comportement entre $(k-1)T_e$ et $kT_e$.
Idée : extrapolation des échantillons entre 2 instants d'échantillonnage.
2018-12-23 23:03:26 +01:00
\paragraph{Cas du Bloqueur d'Ordre Zéro}
2018-12-05 20:38:40 +01:00
$B_0(p)$ fonction de transfert du filtre réalisant le BOZ.
2018-12-23 23:03:26 +01:00
\[b_0(t) = 1_0^+(t) - 1_0^+(t-T_e)\]
2018-12-05 20:38:40 +01:00
Donc par transformée de Laplace inverse,
\[B_0(p) = \frac{1}{p}-\frac{1}{p}e^{-T_ep} \]
\[ \boxed{B_0(p) = \frac{1-e^{-T_ep}}{p}} \]
\chapter{Fonctions de transfert en z}
Rappel : filtre analogique linéaire
\[ e(t) \rightarrow \boxed{G(p)} \rightarrow s(t) \]
\[ s(t) = g(t)*e(t) \]
\[ S(p) = G(p) E(p) \]
\section{Premières propriétés}
\begin{thm}
Si on applique un échantillonnage en entrée de e(t),
\[s(t) = g(t) * e^*(t) \]
\begin{enumerate}
\item $s^*(t) = g^*(t) * e^*(t)$$g^*(t)$ est léchantillonnage de $g(t)$
\item $s_n = g_n * e_n = \sum_ {k=0}^n g_{n-k}e_k$
\end{enumerate}
\end{thm}
2018-12-23 23:03:26 +01:00
\begin{proof}
2018-12-05 20:38:40 +01:00
\begin{enumerate}
\item
\[g^*(t) * e^*(t) = \int_0^{\infty} g^*(t-\tau)e^*(\tau)d\tau = ... \]
2018-12-23 23:03:26 +01:00
\item
2018-12-05 20:38:40 +01:00
\begin{align*}
s^*(t) & = s(t)\sum_{k=0}^{\infty}\delta_0(t-kT_e) = \sum_{k=0}^{\infty}s_k\delta_0(t-kT_e)
\intertext{Or, $ s(t) = \int_0^{\infty}g(t-\tau)e^*(\tau)d\tau $ avec $ e^*(t) = \sum_ {k=0}^{\infty}e_k\delta_0(t-kT_e)$}
\text{donc } s(t) & = \int_ 0^{\infty}g(t-\tau)(\sum_{k=0}^{\infty}e_k\delta_0(\tau-kT_e))d\tau \\
& = \sum_ {k=0}^{\infty}e_k \int_0^{\infty} g(t-\tau) \delta_0(\tau-kT_e) d\tau \\
& = \sum_ {k=0}^{\infty}e_k g(t-kT_e) \\
s_n = s(nT_e) & = \sum_ {k=0}^{\infty}e_kg((n-k)T_e) = \sum_ {k=0}^{\infty}e_kg_{n-k}
\end{align*}
\end{enumerate}
2018-12-23 23:03:26 +01:00
\end{proof}
2018-12-05 20:38:40 +01:00
Application : Discrétisation d'un système analogique avec CNA + BOZ
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\sbEntree{E}
\sbBloc{cna}{CNA, BOZ}{E}
\sbRelier[$u_k$]{E}{cna}
\sbBloc[3]{sys}{G(p)}{cna}
\sbRelier[$u(t)$]{cna}{sys}
\sbBloc[3]{can}{CAN}{sys}
\sbRelier[$y(t)$]{sys}{can}
\sbSortie[3]{S}{can}
\sbRelier[$y_k$]{can}{S}
\end{tikzpicture}
\caption{Discrétisation d'un système analogique}
\end{figure}
Hypothèse : Synchronisation des convertisseurs
\[ u_k \rightarrow \boxed{H(z)} \rightarrow y_k \]
\subsection*{Fonction de transfert pour asservissement numérique}
On cherche à déterminer la fonction de transfert $H(z)=\frac{Y(z)}{U^*(z)}$ de l'asservissement numérique suivant :
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\sbEntree{E}
2018-12-23 23:03:26 +01:00
\sbBloc{calc}{CNA}{E}
2018-12-05 20:38:40 +01:00
\sbRelier[$u_k$]{E}{calc}
\sbBloc[3]{boz}{$B_0(p)$}{calc}
\sbRelier[$u^*(t)$]{calc}{boz}
\sbBloc[3]{sys}{$G(p)$}{sys}
\sbRelier{boz}{sys}
\sbBloc[3]{can}{CAN}{sys}
\sbRelier[$y(p)$]{sys}{can}
\sbSortie[3]{S}{can}
\sbRelier[$y^*(t)$]{can}{S}
\end{tikzpicture}
\caption{Asservissement numérique}
\end{figure}
\begin{thm}
\[ \boxed{H(z) = (1-z^{-1}) Z[^*L^{-1}[\frac{G(p)}{p}]]} \]
\end{thm}
2018-12-23 23:03:26 +01:00
\begin{preuve}
2018-12-05 20:38:40 +01:00
\begin{align*}
Y(p) & = B_0(p)G(p)U^*(p) \\
& = (1 - e^{-T_ep})\frac{G(p)}{p}U^*(p) \\
2018-12-23 23:03:26 +01:00
& = \frac{G(p)}{p}U^*(p)-\frac{G(p)}{p}U^*(p)e^{-T_ep}
2018-12-05 20:38:40 +01:00
\intertext{On pose $ \tilde{G}(p) = \frac{G(p)}{p} $ }
Y(p) & = \tilde{G}(p)U^*(p) - \tilde{G}(p)U^*(p)e^{-T_ep}
\end{align*}
Avec $\tilde{Y}(p) = \tilde{G}(p)U^*(p)$, par transformation inverse de Laplace,
\begin{align*}
\tilde{y}(t) & = \tilde{g}(t)*u^*(t) \\
\tilde{y}_n & = \tilde{g}_n*u_n \\
\tilde{Y}(z) & = \tilde{G}(z)U(z)\\
\text{Ainsi, } Y(z) & = \tilde{Y}(z) - z^{-1}\tilde{Y}(z) \\
& = (1-z^{-1})\tilde{Y}(z) \\
H(z) & = (1-z^{-1})\tilde{G}(z) \\
H(z) & = (1-z^{-1})Z[^*L^{-1}[\tilde{G}(p)]]
\end{align*}
2018-12-23 23:03:26 +01:00
\end{preuve}
2018-12-05 20:38:40 +01:00
\medskip
\noindent Remarque : comment choisir $T_e$ ? Tout système physique peut être représenté par un filtre passe-bas :
\[ \boxed{ \text{Règle empirique : } 6f_c \leq f_e \leq 24f_c } \]
\subsection*{Propriétés des systèmes discrétisés}
\begin{enumerate}
\item Un système analogique linéaire reste linéaire après discrétisation.
\item L'ordre du système est conservé.
\item Les pôles du système discrétisé $p_d$ sont liés aux pôles du système analogique $p_c = e^{T_e p_c}$ (cela vient de $z=e^{T_ep}$). Attention, c'est faux pour les zéros !
\item La discrétisation d'une association en série n'est pas identique à la mise en série des discrétisés.
\end{enumerate}
\section{Obtention d'une fonction de transfert en z à partir d'une équation récurrente}
2018-12-23 23:03:26 +01:00
\[a_ny_{k+n} + ... + a_1y_{k+1}+a_0y_k = b_mu_{k+m} + ... + b_1u_{k+1} + b_0u_k \]
2018-12-05 20:38:40 +01:00
\[ \text{ avec } a_i,b_j \in \mathbb{R}, a_n \neq 0 \]
Par causalité, on a $n \geq m$. \\
Rappel : Théorème d'avance
\[ Z[u_{k+d|d\in\mathbb{N}^*}] = z^d U(z) - z^d \sum_{i=0}^{d-1}u_iz^{-i} \]
On applique la transformée en $z$ à ($EQ_n$) = $a_ny_{k+n} + ... + a_1y_{k+1}+a_0y_k$
\[
\begin{array}{lcll}
a_n y_{k+n} & & a_nz^nY(z) & - a_n [y_0...y_{n-1}][z^n...z]^T \\
+ a_{n-1} y_{k+N-1} & & + a_{n-1}z^{n-1}Y(z) & - a_{n-1} [0, y_0...y_{n-2}][z^n...z]^T \\
... & \quad \rightarrow \quad TZ \quad \rightarrow \quad & ... & ... \\
+ a_1 y_{k+1} & & + a_1z^{n-1}Y(z) & - a_1 [0, ...,0,y_0][z^n...z]^T \\
+ a_0 y_k & & +a_0zY(z) \\
2018-12-23 23:03:26 +01:00
\hline
2018-12-05 20:38:40 +01:00
TZ(EQ_n) & = & (\sum_{l=0}^na_lz^l)Y(z) & - CI_y(z)
\end{array}
\]
On fait de même avec ($EQ_m$) = $b_mu_{k+m} + ... + b_1u_{k+1} + b_0u_k$.
Conditions initiales données : les $y_k, k = 0,...,n-1$ et $u_k,k=0,...,m-1$
\begin{align*}
CIy(z) & = \sum_{j=0}^{n-1} ( \sum_{l=0}^j a_{n-l}y_{l-j}) z^{n-j} \\
2018-12-23 23:03:26 +01:00
CIu(z) & = \sum_{j=0}^{m-1} ( \sum_{l=0}^j b_{m-l}u_{l-j}) z^{n-j}
2018-12-05 20:38:40 +01:00
\end{align*}
Ainsi, en posant \[A(z) = \sum_{l=0}^n a_lz^l \text{ et } B(z) = \sum_{l=0}^m b_lz^l \]
\begin{align*}
& A(z)Y(z) - CIy(z) = B(z)U(z) - CIu(z) \\
& \boxed{Y(z) = \frac{B(z)}{A(z)} U(z) + \frac{CIy(z)-CIu(z)}{A(z)}}
\end{align*}
On pose $G(z)=\frac{B(z)}{A(z)}$, appelée fonction de transfert du système.
\begin{align*}
Y(z) & = G(z)U(z) + \frac{CI(z)}{A(z)} \\
& \text{} CI(z) = CIy(z) - CIu(z) \\
& \text{ À CI nulles, } Y(z) = G(z) U(z)
\end{align*}
\subsection*{Définitions}
2018-12-23 23:03:26 +01:00
Les pôles (zéros) du système sont les racines de $A(z)$ ($B(z)$).
2018-12-05 20:38:40 +01:00
Le gain statique (si défini) est \( \lim_{z\rightarrow 0}G(z)\).
Lorsqu'il n'y a plus de simplifications possibles entre pôles et zéros dans G(z), on parle de fonction de transfert minimale. Alors, le degré de A(z) désigne l'ordre du système.
\section{Réponse temporelle de système à temps discret}
On considère le système à temps discret :
\[u_k \rightarrow \boxed{G(z)} \rightarrow y_k \]
\[G(z) = \frac{B(z)}{A(z)} \text{ et } A(z) = \sum_{l=0}^n a_lz^l, B(z) = \sum_{l=0}^m b_lz^l\]
\subsection{Calcul à partir de la relation de récurrence}
On effectue un changement de variable muet pour exprimer $y_k$ en fonction des instants précédents.
\[a_ny_{k+n} + ... + a_1y_{k+1}+a_0y_k = b_mu_{k+m} + ... + b_1u_{k+1} + b_0u_k \]
\[a_ny_k = -a_{n-1}y_{k-1}-...-a_1y_{k-n+1}-a_0y_{k-n} + b_mu_{k+m-n} + ... + b_1u_{k-n+1} + b_0u_{k-n}\]
Intérêt : pratique pour le calcul en temps réel (simulation, implantation systèmes embarqués...). Les CI $y_{-1}, y_{-2}...$ sont à préciser
\subsection{Calcul à partir de la fonction de transfert}
Si les CI sont nulles :
\begin{align*}
Y(z) & = G(z)U(z) \\
y_k & = Z^{-1}[G(z)U(z)]
\end{align*}
En pratique, on effectue une décomposition en éléments simples de $\frac{Y(z)}{z}$ et on applique $Z^{-1}[.]$ à $Y(z)$ en utilisant le tableau des transformées en z usuelles.\\
2018-12-23 23:03:26 +01:00
Exemple :
2018-12-05 20:38:40 +01:00
\begin{align*}
\intertext{On cherche la réponse impulsionnelle ($u_k=\delta_k$) de }
G(z)& = \frac{1}{(z-1)(z-2)}
\intertext{On effectue la décomposition en éléments simples de $\frac{Y(z)}{z}$}
\frac{Y(z)}{z} & = \frac{1}{z(z-1)(z-2)} \\
& = \frac{1}{2z} - \frac{1}{2(z-1)} + \frac{1}{2(z-2)} \\
Y(z) & = \frac{1}{2} - \frac{1}{2}\frac{z}{z-1} + \frac{1}{2} \frac{z}{z-2} \\
y_k &= \frac{1}{2}\delta_k + \frac{1}{2}2^k -1
\end{align*}
SI les CI non nulles et connues :
\begin{align*}
Y(z) & = G(z) U(z) + \frac{CIy(z)-CIu(z)}{A(z)} \\
y_k &= Z^{-1}[G(z) U(z) + \frac{CIy(z)-CIu(z)}{A(z)}]
\end{align*}
\subsection{Par décomposition modale}
\begin{align*}
G(z) & = \frac{b_mz^m + ... + b_0}{a_nz^n + ... + a_0} = \frac{B(z)}{A(z)} \\
& = \frac{K(z-z_1)^{\alpha_1}(z-z_2)^{\alpha_2}...(z-z_r)^{\alpha_r}}{(z-p_1)^{\gamma_1}(z-p_2)^{\gamma_2}...(z-p_q)^{\gamma_q}} \text{ avec } \sum_1^q \gamma_i = n, \sum_1^r \alpha_i = m
\end{align*}
$\gamma_i$ est la multiplicité algébrique du pôle $p_i \in \mathbb{C}$.
$\alpha_i$ est la multiplicité algébrique du zéro $z_i \in \mathbb{C}$
Avec l'hypothèse $a_n=1$, $A(z)$ est un polynôme appelé Monique.
\begin{align*}
\frac{Y(z)}{z} & = \frac{G(z)U(z)}{z} \text{ où U(z) quelconque, de pôles } r_1,...,r_u \\
\text{ d'où } Y(z) & = Y(0) + \sum_{i=1}^q G_i(z) + \sum_{i=1}^{r_u}U_i(z)
\end{align*}
Remarque : $U(z)$ influence la décomposition de $G(z)$ et vice-verse.
\begin{align*}
G_i(z) & = \sum_{j=1}^{\gamma_i}\frac{c_{ij}z}{(z-p_j)^j} \\
g_{i_k} & = Z^{-1}[G_i(z)] \\
& = (c_0 + c_1k + ... + c_{\gamma_i - 1}k^{\gamma_i - 1})p_i^k
& = P_i(k)p_i^k
\end{align*}
$g_{i_k}$ correspond à l'évolution de la sortie $y_k$ due au pôle $p_i$ : mode $p_i$.
\medskip
La sortie $y_k$ est construite à partir de la contribution de chaque mode (et du type d'entrée)
\[ y_k = Y(0)\delta_k + \sum_{i=1}^q g_{i_k} + Z^{-1}[\sum_{i=1}^{r_u}U_i(z)] \]
2018-12-23 23:03:26 +01:00
2018-12-05 20:38:40 +01:00
$\sum_{i=1}^q g_{i_k}$ est l'excitation des modes par l'entrée $y_k$
$Z^{-1}[\sum_{i=1}^{r_u}U_i(z)]$ le régime forcé par $u_k$
\subsubsection{Mode réel}
\begin{itemize}
\item $|p_i|<1 \Rightarrow P_i(k)p_i^k \rightarrow_{\infty} 0$ : mode convergent
\item $|p_i|>1 \Rightarrow P_i(k)p_i^k $ divergence exponentielle
\item $ |p_i| = 1 et P_i(k) = c_0$ constant $\rightarrow$ mode entretenu (ni convergence, ni divergence)
\item $ |p_i| = 1 $ et $ \gamma_i > 1, P_i(k)p ^k \rightarrow $ divergence polynomiale
\begin{itemize}
\item Si $p_i > 0$ alors $ P_i(k)p_i^k$ tend à être du même signe : mode apériodique
\item Si $p_i < 0$ alors $P_i(k)p_i^k = (-1)^k |p_i|^k P_i(k)$ change de signe en fonction de la parité de k : mode oscillant
\item Si $p_i = 0 \rightarrow P_i(k)p_i^k = 0 \forall
k\geq 1$ : mode à réponse pile
\end{itemize}
\end{itemize}
Remarque : un pôle discret nul $p_i = 0$ possède un équivalent en temps continu à partie réelle infiniment négative :
\[p_i = e^{T_ep_{ci}} = 0 \Leftrightarrow p_{i} \rightarrow - \infty\]
\subsubsection{Mode complexe}
À un pôle $p_i$ complexe correspond son conjugué $\overline{p_i}$ :
\[P_{a_i}(k)p_i^k + P_{b_i}(k)\overline{p_i}^k = ... = P(k)\rho_i^k\sin(k\theta_i+\phi\]
$p_i = \rho_ie^{j\theta_i}$ et $\phi$ dépend du contexte.
\begin{itemize}
2018-12-23 23:03:26 +01:00
\item $|p_i| = \rho_i > 1$ : divergence
\item $|p_i| = \rho_i < 1$ : convergence en $\rho_i^k$
\item $|p_i| = \rho_i = 1$
2018-12-05 20:38:40 +01:00
\begin{itemize}
\item si multiplicité de $p_i = 1$ : mode entretenu
\item si multiplicité de $p_i > 1$ : divergence
\end{itemize}
\item $\theta_i \neq 0$ oscillation à la fréquence $\theta$
\end{itemize}
\section{Stabilité}
2018-12-23 23:03:26 +01:00
\begin{defin}[Stabilité EBSB]
2018-12-05 20:38:40 +01:00
Un système discret est stable au sens EBSB si pour toute entrée $u_k$ bornée, $y_k$ reste bornée.
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\begin{thm}[Stabilité et réponse impulsionnelle]
Un système est stable au sens EBSB si et seulement si sa réponse impulsionnelle est absolument sommable, c'est-à-dire $\sum_ {k=0}^{\infty}|g_k|<\infty$
\end{thm}
\subsection*{Théorème : stabilité et pôles}
\begin{thm}[Stabilité et pôles]
Un système discret est stable au sens EBSB si et seulement si tous les pôles de sa fonction de transfert en $z$ sont à l'intérieur du cercle unité (strictement, pas sur le cercle).
\end{thm}
2018-12-23 23:03:26 +01:00
Remarque : cela suppose le calcul des pôles de $G(z) = \frac{B(z)}{A(z)}$
2018-12-05 20:38:40 +01:00
\begin{figure}[h!]
\centering
\includegraphics[scale=0.8]{polesenz.jpg}
\caption{Allure de la réponse temporelle en fonction de la position des pôles dans le plan $z$}
\end{figure}
\subsection*{Critère de Jury}
\emph{À savoir utiliser, voir polycopié.}
\subsection*{Critère de Routh-Hurwitz}
\emph{À connaître par coeur, voir polycopié.}\\
Rappel : En temps continu, le critère de Routh-Hurwitz permet de déterminer le nombre de racines instables de l'équation caractéristique, c'est-à-dire à partie réelle strictement positive.\\
Transformation en w :
\begin{align*}
z & = \frac{1+w}{1-w} ,\quad w \neq 1 \\
w & = \frac{z-1}{z+1} ,\quad z \neq -1
\end{align*}
2018-12-23 23:03:26 +01:00
Cette transformation transforme le disque unité du plan en $z$, en le preuvei-plan ouvert gauche du plan en $w$.
2018-12-05 20:38:40 +01:00
Cette transformation étant bijective, on l'utilise pour appliquer le critère de Routh au polynôme en la variable $w$.
\subsection*{Critère de stabilité de Schur-Cohn}
\emph{Non exigible, voir polycopié.}
\subsection*{Critère de stabilité de Nyquist}
\emph{À connaître par coeur, voir polycopié.}
\section{Transposition des méthodes analogiques}
\subsection{Approximation du BOZ par un retard équivalent}
On rappelle l'expression de la fonction de transfert du BOZ :
\begin{align*}
B_0(p) & = \frac{1-e^{-T_ep}}{p} \\
& = \frac{e^{-\frac{T_e}{2}p} ( e^{\frac{T_e}{2}p} - e^{-\frac{T_e}{2}p})}{p} \\
\text{ Or, } & e^{-\frac{T_e}{2}p} = 1 - \frac{T_e}{2}p + o(\frac{T_e}{2}p) \\
& e^{-\frac{T_e}{2}p} = 1 + \frac{T_e}{2}p + o(\frac{T_e}{2}p) \\
\text{Donc } & \boxed{ B_0(p) \approx T_e e^{-\frac{T_e}{2}p}}
\end{align*}
\subsection{Approximation de Padé pour les retards}
Cette approximation repose sur le développement de Taylor du terme de retard exponentiel. Elle fournit une fraction rationnelle causale.
À l'ordre 1,
\[ e^{-T_ep} = \frac{e^{-\frac{T_e}{2}p}}{e^{+\frac{T_e}{2}p}} = \frac{1 - \frac{T_e}{2}p}{1 + \frac{T_e}{2}p} \]
À l'ordre 2,
\[ e^{-T_ep} = \frac{1 - \frac{T_e}{2}p + \frac{T_e^2}{8}p^2}{1 + \frac{T_e}{2}p + \frac{T_e^2}{8}p^2} \]
Application au BOZ :
\[\boxed{B_0(p) \approx \frac{T_e}{1+\frac{T_e}{2}p}}\]
Conséquence : on peut donc appliquer les résultats des systèmes analogiques sur le système équivalent obtenu.
\subsection{Correction numérique obtenue par discrétisation approchée d'un correcteur continu}
\subsubsection*{Approximation de l'opérateur intégral}
\begin{align*}
x(t) & = \int_ 0^t e(\tau)d\tau\\
x_k & = x(kT_e) = \int_ 0^{kT_e} e(\tau)d\tau \\
x_k & = \sum_{j=0}^k e_jT_e
\end{align*}
\subsubsection*{Approximation d'Euler arrière}
\begin{align*}
\frac{de(t)}{dt} & = \frac{e_k - e_{k-1}}{T_e} \\
2018-12-23 23:03:26 +01:00
pE(p) & = \frac{1-z^{-1}}{t_e}E(z)
2018-12-05 20:38:40 +01:00
\end{align*}
\[ \boxed{p = \frac{z-1}{zT_e}} \]
2018-12-23 23:03:26 +01:00
\subsubsection*{Approximation d'Euler avant}
2018-12-05 20:38:40 +01:00
\begin{align*}
\frac{de(t)}{dt}& = \frac{e_{k+1}-e_k}{T_e} \\
pE(p) & = \frac{z-1}{T_e}E(z)
\end{align*}
\[ \boxed{p = \frac{z-1}{T_e} } \]
\subsubsection*{Approximation de Tustin}
\begin{align*}
x_k - x_{k-1} & = \frac{1}{2}(e_k + e_{k-1})T_e \\
(1-z^{-1})X(z) & = \frac{T_e}{2}(1+z^{-1})E(z) \\
X(z) & = \frac{T_e}{2}\frac{1+z^{-1}}{1-z^{-1}}E(z) \\
& = \frac{T_e}{2}\frac{z+1}{z-1}E(z)
\end{align*}
D'où \[ \boxed{p = \frac{2}{T_e}\frac{z-1}{z+1}} \]
Remarque : semblable à la transformation en $w$.
Remarque : les approximations de $p$ induisent des distorsions fréquentielles.
Exemple : correcteur continu $R_C(p)$ \\
$R_d(z) = R_c(p) |_{p=\frac{2}{T_e} \frac{z-1}{z+1}}$
Réponse fréquentielle : $ z=e^{T_ep}, p=j\omega$
\begin{align*}
2018-12-23 23:03:26 +01:00
R_d(e^{jT_e\omega}) & = R_c(\frac{2}{T_e} \frac{jT_e\omega-1}{jT_e\omega+1}
2018-12-05 20:38:40 +01:00
\\
\frac{jT_e\omega-1}{jT_e\omega+1} & = j\tan(\frac{T_e}{2}\omega) \\
R_d(e^{jT_e\omega}) & = R_c(j\frac{2}{T_e} \tan(\frac{T_e}{2})\omega)
\\
2018-12-23 23:03:26 +01:00
& = R_c(j\tilde{\omega}) \text{} \tilde{\omega} = \frac{2}{T_e}\tan(\frac{T_e}{2}\omega)
2018-12-05 20:38:40 +01:00
\end{align*}
$\tilde{\omega}$ est une "pseudo-pulsation" qui varie de 0 à $+\infty$ lorsque $\omega$ varie de 0 à $\frac{\pi}{2}$. Cela correspond à une distorsion de l'échelle fréquentielle.
Approximation de Tustin adaptée à la pulsation $\omega_c$
On voudrait que $R_d(e^{j\omega_cT_e}) = R_c(j\omega_c)$, alors
\[p \leftarrow \frac{\omega_c}{\tan(\frac{\omega_cT_e}{2})}\frac{z-1}{z+1}\]
\[R_c(j\frac{\omega_c}{\tan(\frac{\omega_cT_e}{2}})) = R_c(j\omega_c)\]
Approximation par correspondance pôle-zéro
Exemple :
\begin{align*}
R_c(p) & = \frac{p+a}{p+b} \\
z & = e^{T_ep} \\
R_d(z) & = \frac{z-e^{-T_ea}}{z-e^{-T_eb}} \alpha \\
\text{Gain statique : } & \lim_{z\rightarrow1}R_d(z) = \alpha \frac{1-e^{-T_ea}}{1-e^{-T_eb}} = \lim_ {p\rightarrow 0} R_c(p) = \frac{a}{b} \\
\alpha & = \frac{a}{b} \frac{1-e^{-T_ea}}{1-e^{-T_eb}}
2018-12-23 23:03:26 +01:00
\end{align*}
2018-12-05 20:38:40 +01:00
En résumé, on construit $R_d(z)$ avec la même structure que $R_c(p)$ en temres de zéros, pôles et gain statique.
Précaution à prendre lorsque le degré du numérateur de $R_c(p)$ est inférieur au degré du dénominateur de $R_c(p)$ (i.e. $R_c(p)$ strictement propre)
2018-12-23 23:03:26 +01:00
Exemple :
2018-12-05 20:38:40 +01:00
\begin{align*}
R_c(p) & = \frac{p+a}{(p+b)(p+c)} \\
R_d(p) & = \frac{(z+1)(z - e^{-T_ea})}{(z-e^{-T_eb)(z-e^{-T_ec})}}\alpha \\
R_d(1) = R_c(0) \rightarrow \alpha = ...
\end{align*}
Le terme $(z+1)$ est ajouté pour permettre d'avoir le même gain de $R_d(z)|_{z=e^{jT_e\frac{\pi}{T_e}}} = R_c(j\omega)|_{\omega \rightarrow \infty}$ (correspondance du gain haute fréquence).
2018-12-23 23:03:26 +01:00
En conclusion, le choix d'une approximation dépend beaucoup des caractéristiques (zéros, ordre,...) du système.
2018-12-05 20:38:40 +01:00
\newpage
\textbf{À savoir pour le partiel}
\begin{itemize}
\item Transformées en $z$ et ses propriétés
\item Tous les résultats sur les filtres linéaires numériques
\item Méthode d'obtention des transformées en $z$ d'un système discrétisé
\item Définitions stabilité, critères algébriques pour la caractériser (connaître Routh-Hurwitz, savoir appliquer Jury)
\item Réglage d'un correcteur PID analogique, savoir passer en TD (Euler, Tustin, méthode de correspondance pour le zéro)
\item Transformation en $w$
\item Correcteur RST
\item Règle des retards relatifs
\item Règles de rejet de la perturbation, conséquence sur le polynôme $R$
2018-12-23 23:03:26 +01:00
\item Être en mesure de déterminer les degrés de polynômes R et S pour résoudre un problème : technique de simplification de pôles / zéros, introduction de polynôme auxiliaire
2018-12-05 20:38:40 +01:00
\end{itemize}
\chapter{Commande dans l'espace d'état}
\section{Concept du modèle d'état}
\subsection{Définitions}
Soit un système $\Sigma$, à temps continu, linéaire ou non :
\[ u \rightarrow \boxed{\Sigma} \rightarrow y\]
$u(t) \in \R^m$ commande
$y(t)\in \R^p $ sortie mesurée
$x(t) \in \R^n$ vecteur d'état, et ses composantes $x_i(t)\in \mathbb{R}$ variables d'état\\
2018-12-23 23:03:26 +01:00
\begin{defin}
On appelle \textbf{équation d'état} du système $(\Sigma)$ :
2018-12-05 20:38:40 +01:00
\[ \dot{x}(t) = f(x(t),u(t),t) \]
$f : \R^n \times \R^m \times R_+ \rightarrow \R^n$ : champs de vecteurs, relation non linéaire en $x,u,t$.
$x_0=x(0) \in \R^n$ : vecteur des conditions initiales.
$x(t)$ contient des grandeurs physiques ou non.\\
2018-12-23 23:03:26 +01:00
On appelle \textbf{équation d'observation }du système $(\Sigma)$ :
2018-12-05 20:38:40 +01:00
\[ y(t) = h(x(t),u(t),t) \quad \text{(équation algébrique)} \]
2018-12-23 23:03:26 +01:00
Un \textbf{modèle d'état} est composé d'une équation d'état et d'une équation d'observation :
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
(\Sigma)
\left\{
\begin{array}{ll}
\dot{x}(t) & = f(x(t),u(t),t), \quad x_0=x(0) \\
y(t) & = h(x(t),u(t),t)
\end{array}
\right.
\]
Dans le cas discret :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
(\Sigma)
\left\{
\begin{array}{ll}
x_{k+1} & = f_d(x_k,u_k,k), \quad x_0=x(0) \\
y_k & = h_d(x_k,u_k,k)
\end{array}
\right.
\]
\[ u_k\in \R^m \rightarrow \boxed{\Sigma_d} \rightarrow y_k\in\R^p \]
$x_k \in \R^n$ vecteur de suites numériques
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\paragraph{Systèmes stationnaires :} on peut simplifier comme suit :
\begin{multicols}{2}
Continu :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
\dot{x}(t) & = f(x(t),u(t)), \quad x_0=x(0) \\
y(t) & = h(x(t),u(t))
\end{array}
\right.
\]
Discret :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
x_{k+1} & = f_d(x_k,u_k), \quad x_0=x(0) \\
y_k & = h_d(x_k,u_k)
\end{array}
\right.
\]
\end{multicols}
\paragraph{Systèmes linéaires stationnaires :} on a alors :
\begin{multicols}{2}
Continu :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
\dot{x}(t) & = Ax(t)+Bu(t), \quad x_0=x(0) \\
y(t) & = Cx(t)+Du(t))
\end{array}
\right.
\]
Discret :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
x_{k+1} & = A_d x_k + B_d u_k, \quad x_0=x(0) \\
y_k & = C_d x_k + D_d u_k
\end{array}
\right.
\]
\end{multicols}
$A,A_d \in \R^{n\times n}$ matrices d'évolution
$B,B_d\in \R^{n\times m}$ matrices d'application de l'entrée commande $u$
$C,C_d \in \R^{p \times n}$ matrices dobservation
$D,D_d \in \R^{p\times n}$ matrices de transmission directe
\paragraph{Remarque} Systèmes linéaires variant dans le temps :
\begin{multicols}{2}
Continu :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
\dot{x}(t) & = A(t)x(t)+B(t)u(t), \quad x_0=x(0) \\
y(t) & = C(t)x(t)+D(t)u(t))
\end{array}
\right.
\]
Discret :
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
x_{k+1} & = A_d(k) x_k + B_d(k) u_k, \quad x_0=x(0) \\
y_k & = C_d(k) x_k + D_d(k) u_k
\end{array}
\right.
\]
\end{multicols}
2018-12-23 23:03:26 +01:00
\paragraph{Cadre du cours :} systèmes linéaires, stationnaires, SISO (mono-entrée, mono-sortie).
2018-12-05 20:38:40 +01:00
De plus, $u\in\R \quad (m=1)$, $y\in\R \quad (p=1)$.
\subsection{Quelques exemples}
\subsubsection{Robot manipulateur à 1 bras}
PFD : équation de mouvement
\begin{align*}
J\ddot{\theta}(t) & = C_m(t) + C_g(t)\\
J\ddot{\theta} & = C_m(t) - \frac{L}{2}mg\cos\theta \\
\intertext{On pose $C_m(t) = u(t)$}
\ddot{\theta}(t) & = \frac{1}{J}u(t) - \frac{mgL}{2J}\cos(\theta(t))
2018-12-23 23:03:26 +01:00
\end{align*}
On a donc :
2018-12-05 20:38:40 +01:00
\[
\dot{x}(t) =
2018-12-23 23:03:26 +01:00
\left[
2018-12-05 20:38:40 +01:00
\begin{array}{cc}
\dot{\theta}(t) \\
\ddot{\theta}(t)
\end{array}
\right]
=
\left[
\begin{array}{cc}
\dot{\theta}(t) \\
-\frac{mgL}{2J}\cos(\theta(t))
\end{array}
\right]
2018-12-23 23:03:26 +01:00
+
2018-12-05 20:38:40 +01:00
\left[
\begin{array}{cc}
0 \\ \frac{1}{J}
2018-12-23 23:03:26 +01:00
\end{array}
2018-12-05 20:38:40 +01:00
\right] u(t)
\]
\subsubsection{Cas d'un robot à n liaisons en série, n-actionné}
\[M(q) \ddot{q} + C(q,\dot{q}) \dot{q} + D\dot{q} + g(q) = \tau \]
2018-12-23 23:03:26 +01:00
\[q(t) = \vect{
2018-12-05 20:38:40 +01:00
\theta_1(t) \\
\vdots \\
\theta_n(t)
}
\in \R^n, \quad
2018-12-23 23:03:26 +01:00
\tau =
2018-12-05 20:38:40 +01:00
\vect{
\tau_1(t) \\
\vdots \\
\tau_n(t)
}\]
\begin{tabular}{lll}
$M(q) = M(q)^T$ & $\in \R^{n \times n}$ & matrice d'inertie, définie positive \\
$C(q,\dot{q})\dot{q}$ & $\in \R^n$ & forces centrifuges et de Coriolis\\
$g(q) = \frac{\partial u(q)}{\partial q}$ & $\in \R^n$ & énergie potentielle totale due à la gravité\\
$D\dot{q}$ & & frottements visqueux dans les liaisons
\end{tabular}
2018-12-23 23:03:26 +01:00
\[x(t) =
2018-12-05 20:38:40 +01:00
\vect{q(t) \\ \dot{q}(t)} \in \R^{2n}\]
2018-12-23 23:03:26 +01:00
\[\dot{x}(t) =
2018-12-05 20:38:40 +01:00
\vect{ \dot{q}(t) \\ \ddot{q}(t)}
2018-12-23 23:03:26 +01:00
=
2018-12-05 20:38:40 +01:00
\vect{\dot{q}(t) \\ -M^{-1}(q)C(q,\dot{q})\dot{q}-M^{-1}D\dot{q}-M^{-1}(q)g(q)}
+
\vect{ 0_{n\times n} \\ M^{-1}}
\]
\subsubsection{Circuit avec diode à effet tunnel}
2018-12-23 23:03:26 +01:00
\begin{figure}[H]
2018-12-05 20:38:40 +01:00
\centering
\begin{tikzpicture}[scale=0.8]
\draw (0,0) to [sV=$u(t)$] (0,2) to [R,l=$R$] (0,4) to [L,l=$L$,i=$i_L$] (4,4) to [C,l=$C$,v=$v_c$] (4,0) to (0,0)
2018-12-23 23:03:26 +01:00
(4,4) to (8,4) to[tunnel diode,i=$i_D$] (8,0) to (4,0)
2018-12-05 20:38:40 +01:00
;
\end{tikzpicture}
2018-12-23 23:03:26 +01:00
\caption{Montage étudié}
2018-12-05 20:38:40 +01:00
\end{figure}
Lois de Kirchoff :
\begin{align*}
2018-12-23 23:03:26 +01:00
\text{Noeud A : } & i_L = i_C + i_D = h(v_D) + v_C \\
2018-12-05 20:38:40 +01:00
& \Rightarrow C\frac{dv_D}{dt} = i_L - h(v_D)\\
\text{Maille 1 : } & u(t) - Ri_L(t) - L\frac{di_L}{dt} -v_C(t) = 0 \\
& \Rightarrow Ri_L + L\frac{di_L}{dt} + v_D = u(t)\\
\text{Maille 2 : } & v_C(t) = v_D(t)
2018-12-23 23:03:26 +01:00
\end{align*}
2018-12-05 20:38:40 +01:00
\[x(t) = \vect{
i_L \\
v_D
} = \vect{
x_1 \\
x_2
} \in \R^2,\text{ 2 variables d'état} \]
2018-12-23 23:03:26 +01:00
\[\dot{x}(t) =
2018-12-05 20:38:40 +01:00
\vect{
\dot{x}_1 \\
\dot{x}_2
}
2018-12-23 23:03:26 +01:00
=
2018-12-05 20:38:40 +01:00
\left[
\begin{array}{cc}
2018-12-23 23:03:26 +01:00
-\frac{R}{L}i_L & -\frac{1}{L}v_D \\
2018-12-05 20:38:40 +01:00
\frac{1}{C}i_L & -\frac{1}{C}h(v_D)
\end{array}
\right]
2018-12-23 23:03:26 +01:00
+
2018-12-05 20:38:40 +01:00
\vect{
\frac{1}{L} \\
0
}
u(t)
\]
2018-12-23 23:03:26 +01:00
\section{Quelques propriétés de base, valables à temps continu ou discret}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\subsection{Non-unicité d'un modèle d'état}
2018-12-05 20:38:40 +01:00
Cas continu :
\[
\left\{
\begin{array}{ll}
\dot{x}(t) & = Ax(t)+Bu(t), \quad x_0=x(0) \\
y(t) & = Cx(t)+Du(t))
\end{array}
\right.
\]
2018-12-23 23:03:26 +01:00
Soit $T\in\R^{n\times n}$ inversible. Soit $z(t) \in \R^n$ tel que $x(t) = T z(t)$. et $T$ invariante dans le temps.
2018-12-05 20:38:40 +01:00
\begin{align*}
2018-12-23 23:03:26 +01:00
& \begin{cases}
T\dot{z}(t) & = AT(t)+Bu(t) \\
y(t) & = CTz(t)+Du(t))
\end{cases}
\\
& \begin{cases}
2018-12-05 20:38:40 +01:00
\dot{z}(t) & = T^{-1}ATz(t) + T^{-1}Bu(t) \\
y & = CT z(t) + Du(t)
2018-12-23 23:03:26 +01:00
\end{cases} \text{ avec } z(0) = T^{-1}x_0 \\
& \begin{cases}
2018-12-05 20:38:40 +01:00
\dot{z}(t) & = \tilde{A}z(t) + \tilde{B}z(t) \\
y & = \tilde{C}z(t) + Du(t)
2018-12-23 23:03:26 +01:00
\end{cases}
2018-12-05 20:38:40 +01:00
\end{align*}
D est invariant par changement de coordonnées régulier ($x(t) = Tz(t)$)
2018-12-23 23:03:26 +01:00
\begin{prop}
2018-12-05 20:38:40 +01:00
Il existe une infinité de modèles d'état pour un même système (linéaire et stationnaire).
2018-12-23 23:03:26 +01:00
\end{prop}
2018-12-05 20:38:40 +01:00
\paragraph{Remarque} voir plus bas quelques changement de coordonnées vers des formes d'état canoniques.
2018-12-23 23:03:26 +01:00
\subsection{Solution de l'équation d'état}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\subsubsection{Exponentiel d'une matrice}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\begin{defin}
Soit $\K = \R \text{ ou } \C$.
\[ \forall A \in \K^{n\times n}, e^A \in \K^{n\times n} \text{ et } e^A = \sum_{k=0}^{\infty} \frac{A^k}{k!} \]
2018-12-05 20:38:40 +01:00
On admet la convergence de la série.
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\paragraph{Remarque} $e^{0_{n\times n}} = 1_{n}$
\begin{prop}
\[ e^A = \lim_{k \rightarrow \infty} (1_{n}+\frac{1}{k}A)^k \]
\begin{enumerate}
\item $(e^A)^T = e^{A^T}$
\item $e^A$ inversible et $(e^A)^{-1} = e^{-A}$
\item Si $A=diag(A_k)$$A_k\in \K^{n_i \times n_i}$, i=1.. k, $e^A = diag (e^{A_k})$
\item Soit $X$ inversible $\in \K^{n \times n}$, $e^{XAX^{-1}} = Xe^AX^{-1}$
\item Si $A,B \in \K^{n \times n}$ sont similaires $e^A$ et $e^B$ sont similaires aussi
\item Si $A,B \in \K^{n \times n}$ sont similaires et unitaires $e^A$ et $e^B$ le sont aussi
\item Si $A$ est hermitienne ($A=\overline{A}^T$) alors $e^A$ est définie positive
\item Si $A$ est anti-hermitienne, alors $e^A$ est unitaire
\item Si $A$ est normale $(AA^* = A^*A)$, alors $e^A$ est normale aussi
\end{enumerate}
\end{prop}
\begin{prop}
\[ t\in \R, \frac{de^{At}}{dt} = Ae^{tA} = e^{tA}A \]
\end{prop}
\begin{proof}
\begin{align*}
e^{tA} & = \sum_{k=0}^{\infty} \frac{t^k}{k!}A^k \\
\frac{de^{At}}{dt} & = \frac{d}{dt}\sum_{k=0}^{\infty} \frac{t^k}{k!}A^k = \sum_{k=1}^{\infty} \frac{t^{k-1}}{(k-1)!}A^k \\
& = A \sum_{k=1}^{\infty} \frac{t^{k-1}}{(k-1)!}A^{k-1} = Ae^{tA}
\end{align*}
\end{proof}
\begin{prop}
Soient $A,B \in \K^{n \times n}$
\begin{enumerate}
\item \[\forall t \in \R_+, \quad AB = BA \Leftrightarrow e^{tA}e^{tB} = e^{t(A+B)} \]
2018-12-23 23:03:26 +01:00
\item \[ \text{ si } AB = BA, \text{ alors } e^{A+B} = e^A e^B = e^Be^A \]
2018-12-05 20:38:40 +01:00
\end{enumerate}
\end{prop}
2018-12-23 23:03:26 +01:00
\begin{thm}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Soit $A\in \K^{n\times n}$
2018-12-05 20:38:40 +01:00
\begin{align*}
e^{tA} & = \sum_{k=0}^{n-1} \Psi_k(t)A^k, \quad \forall t \in \R \\
e^{tA} & = \frac{1}{2\pi j} \int_C (z1_n-A)^{-1} e^{tz} dz
2018-12-23 23:03:26 +01:00
\end{align*}\\[2em]
$C$ est un contour fermé du plan complexe contenant $Spec(A)$ (valeurs propres de A)
\end{thm}
Soit $P_A$ le polynôme caractéristique de $A$
\begin{align*}
2018-12-05 20:38:40 +01:00
P_A(s) & = det(s1_n-A) = s^n + a_{n-1}s^{n-1} + ... + a_1s + a_0, \quad a_j \in \R, j=0...n-1 \\
\intertext{On montre que}
2018-12-23 23:03:26 +01:00
sP_A^{(k+1)}(s) & = P_A^{(k)}(s) - a_k, \quad k=0,...n-1 \text{ avec } P_A^{(0)}(s) = P_A(s) \text{ et } P_A^{(n)}(s) = 1 \\
2018-12-05 20:38:40 +01:00
\Psi_k(t) & = \frac{1}{2\pi j} \int_C \frac{P_A^{(k+1)}(z)}{P_A^{(k)}(z)} e^{tz} dz
\end{align*}
On montre que $\forall k = 0,1...n-1$ et $t\geq 0$
\[ \Psi_k^{(n)}(t) + a_{n-1} \Psi_k^{(n-1)}(t) + ... + a_1\Psi_k^{(0)}(t) + a_0\Psi_k(t) = 0 \]
avec $\forall k,l= 0...n-1, k\neq l$, on a $\Psi_k^{(l)}(0) = \delta_{kl}$
2018-12-23 23:03:26 +01:00
\begin{thm}
Soit $A\in \K^{n\times n}$ et $\Psi_0(t)...\Psi_{n-1}(t)$ définis précédement.
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Alors $\forall s \in \C \setminus Spec(A)$,
2018-12-05 20:38:40 +01:00
\[ L[e^{tA}] = \int_0^{\infty} e^{-st}e^{At} dt = (s1_n-A)^{-1} \]
On appelle $(s1_n-A)^{-1}$ résolvante de A.
2018-12-23 23:03:26 +01:00
\end{thm}
De plus,
2018-12-05 20:38:40 +01:00
\begin{align*}
\hat{\Psi_k}(s) & = L[\Psi_k(t)]_{k=0..n-1} \\
& = \frac{P_A^{(k+1)}(s)}{P_A^{(k)}(s)} \\
(p1_n-A)^{-1} & = L[e^{tA}] \\
& = \sum_{k=0}^{n-1}\hat{\Psi_k}(s)A^k
\end{align*}
2018-12-23 23:03:26 +01:00
En pratique, soit $V\in \mathbb{K}^{n\times }$ inversible, tel que $V^{-1}AV = J$, $J\in \mathbb{K}^{n \times n}$ matrice de Jordan ou bien $J = \Lambda = \text{diag}(\lambda_1...\lambda_n), \lambda_i$ valeurs propres de A
\begin{prop}
\[A^k = V J^k V^{-1}\] ou bien si $J = \Lambda = \text{diag}(\lambda_1...\lambda_n)$, \[A^k = V \Lambda^k V^{-1} \]
\[ e^{tA} = e^{tVJV^{-1}} = V e^{tJ} V^{-1} \]
ou si $J = \Lambda = \text{diag}(\lambda_1...\lambda_n)$,
\[ e^{tA} = V e^{t\Lambda}V^{-1} \]
$\Lambda^k = \text{diag}(\lambda_i^k)$
$e^{t\Lambda} = \text{diag}(e^{t\lambda_i})$
\end{prop}
\subsubsection{Cas analogique}
\begin{thm}
La solutions de l'équation d'état est:
2018-12-05 20:38:40 +01:00
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
2018-12-23 23:03:26 +01:00
\end{thm}
2018-12-05 20:38:40 +01:00
\[ x(t) = e^{At}x_0 + \int_0^t e^{A(t-\tau)}Bu(\tau)d\tau \]
\begin{proof}
\begin{align*}
\dot{x} & = Ax + Bu \\
2018-12-23 23:03:26 +01:00
e^{-tA}(\dot{x} - Ax) & = e^{-tA}Bu\\
2018-12-05 20:38:40 +01:00
\int \frac{d}{dt}(e^{-tA}x(t)) & = \int e^{-tA}Bu(t) \\
2018-12-23 23:03:26 +01:00
e^{-tA}x(t)-e^{-t_0A}x_0 & = \int_{t_0}^t e^{-\tau A}Bu(\tau)d\tau \text{ avec } t_0=0
2018-12-05 20:38:40 +01:00
\end{align*}
Réciproquement
\begin{align*}
\dot{x}(t) & = Ae^{tA}x_0 + \frac{d}{dt} \int_0^t e^{A(t-\tau)}Bu(\tau)d\tau \\
& = Ae^{tA}x_0 + \int_0^t Ae^{(t-\tau)A} Bu(\tau)d\tau + Bu(t) \\
& = A(e^{tA}x_0 + \int_0^t e^{(t-\tau)A} Bu(\tau)d\tau) + Bu(t) \\
& = Ax(t) + Bu(t)
\end{align*}
\end{proof}
2018-12-23 23:03:26 +01:00
\subsubsection{Cas discret}
\begin{thm}
Dans le cas discret , les solutions de l'équation d'état sont:
\[ (S) :
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
x_{k+1} &= A_dx_k + B_du_k, \quad x_0 \in \R^n \\
y_k & = C_dx_k+D_du_k
\end{array}
\right.
\]
2018-12-23 23:03:26 +01:00
\end{thm}
2018-12-05 20:38:40 +01:00
\[
2018-12-23 23:03:26 +01:00
\begin{array}{c|ll}
2018-12-05 20:38:40 +01:00
k=0 & x_1 = & A_dx_0 + B_du_0 \\
k=1 & x_2 = & A_dx_1 + B_du_1 \\
& & A_d^2x_0 + A_dB_du_0 + B_du_1 \\
& \vdots \\
2018-12-23 23:03:26 +01:00
\forall k & x_k & = A_d^k x_0 + \sum_{j=0}^{k-1}A_j^{k-1-j}B_du_j
2018-12-05 20:38:40 +01:00
\end{array}
\]
2018-12-23 23:03:26 +01:00
\subsection{Modèle d'état pour quelques associations de systèmes (TD1)}
2018-12-05 20:38:40 +01:00
\section{Commandabilité et observabilité}
Problème : existe-t-il une commande $u(t)$ permettant de passer d'un point de fonctionnement à $t=t_1$ à un autre à $t=t_2$ ?
\subsection{Commandabilité}
2018-12-23 23:03:26 +01:00
\begin{defin}
\begin{description}
\item[Cas analogique]
Le système $(\Sigma)$ est dit commandable si \[\forall x(t=t_0)=x_0 \in \K^N \text{ et } \forall x_f=x(t=t_f)\in \K^n\] il existe une commande $u(t)$ continue (par morceaux) qui amène l'état $x(t)$ de l'état $x_0$ à $t=t_0$ vers $x_f$ à $t=t_f$.
\item[Cas discret]
Le système $(\Sigma_d)$ est commandable si \[\forall x_d \in \K^n \text{ et } \forall x_f \in \K^n\] il existe une séquence d'échantillons de commande $[u_0,u_1,\dots u_k]$ qui amène le système $\Sigma_d$ de l'état de $x_d$ pour $k=0$ à $x_f$ pour $k=n$.
\end{description}
\end{defin}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\begin{defin}
On appelle \textbf{matrice de commandabilité} (dite de Kalman), la matrice notée (obtenue par concaténation)
\[ \mathcal{C}(A,B) = [B \quad AB \quad A^2B \dots A^{n-1}B] \in \K^{n \times n} \]
\end{defin}
2018-12-05 20:38:40 +01:00
\begin{thm} Cas analogique ou discret : \\
2018-12-23 23:03:26 +01:00
\textbf{Le système $(\Sigma)$ est commandable} si et seulement si (matrice de rang plein)
\[ rang( \mathcal{C}(A,B)) = n \]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\textbf{Le système $(\Sigma_d)$ est commandable} si et seulement si
\[ rang( C(A_d,B_d)) = n \]
2018-12-05 20:38:40 +01:00
\end{thm}
2018-12-23 23:03:26 +01:00
On dit alors que la paire $A,B$ est commandable.
2018-12-05 20:38:40 +01:00
\begin{prop}[Corollaire spécifique aux systèmes monovariables]
2018-12-23 23:03:26 +01:00
Le systèmes $(S)$ ou $(S_d)$ est commandable si et seulement si
\[ det (\mathcal{C}(A,B)) \neq 0 \quad (\text{ ou } det (C(A_d,B_d)) \neq 0) \]
2018-12-05 20:38:40 +01:00
\end{prop}
\begin{proof}
\[x_k= A_d^k x_0 + \sum_{j=0}^{k-1}A_j^{k-1-j}B_du_j\]
Pour atteindre n'impotre quel état de $\K^N$, il faut que
2018-12-23 23:03:26 +01:00
\[ Im\{A_d^{k-1-j}B_d\}_{j=0...k-1} = \K^n \]
2018-12-05 20:38:40 +01:00
De plus, $\forall k \geq n$,
\[ Im\{A_d^{k-1-j}B_d\}_{j=0...k-1} = Im\{A_d^{n-1-j}B_d\}_{j=0...n-1} \]
En effet, d'après le théorème d'Hamilton-Cayley, la matrice $A$ est racine de son polynôme caractéristique : $P_A(A) = 0$ donc $A^n = -\sum_{k=0}^{n-1}a_k A^k$.
2018-12-23 23:03:26 +01:00
Donc :
\[Im\{A_d^{k-1-j}B_d\}_{j=0...n-1} = \K^n \Leftrightarrow rang(C(A_d,B_d)) = n\]
2018-12-05 20:38:40 +01:00
\end{proof}
2018-12-23 23:03:26 +01:00
\subsubsection{Cas discret}
2018-12-05 20:38:40 +01:00
\begin{prop}
2018-12-23 23:03:26 +01:00
Soit $x_0\in\K^n, x_f\in\K^n$,
\[x_f-A_d^nx_0 = \underbrace{[B \quad AB \dots \quad A^{n-1}b]}_{\mathcal{C}(A,B)}\vect {u_{n-1}\\ \vdots\\ u_0}\]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Si $\mathcal{C}(A,B)$ inversible i.e. système commandable, alors on en déduit la séquence de commande permettant de passe de $x_d$ pour $k=0$ à $x_f$ pour $k=n$:
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\[
\vect{u_{n-1}\\ \vdots\\ u_0} = \mathcal{C}(A,B)^{-1}(x_n-A_d^nx_0)
2018-12-05 20:38:40 +01:00
\]
\end{prop}
2018-12-23 23:03:26 +01:00
\subsubsection{Cas continu}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
On définit le Gramien de commandabilité, noté $W_c\in\R^{n\times n}$
2018-12-23 23:03:26 +01:00
\[W_c(t_0,t_1) = \int_{t_0}^{t_1} e^{(t_1-\tau)A} BB^T e^{(t_1-\tau)A^T} d\tau = \int_0^{t_1-t_0}e^{\sigma A}BB^Te^{\sigma A^T}d\sigma \in \K^{n\times n}\]
\end{defin}
\begin{prop}
\begin{itemize}
\item $W_c$ est symétrique
\item $W_c \ge 0$ ie $W_c \in S_n^+$
\end{itemize}
\end{prop}
2018-12-05 20:38:40 +01:00
\begin{thm}
2018-12-23 23:03:26 +01:00
Le système $(\Sigma)$ d'équation d'état $\dot{x}=Ax+Bu$ est commandable si et seulement si $W_c$ inversible, c'est-à-dire $W_c > 0$.
2018-12-05 20:38:40 +01:00
\end{thm}
2018-12-23 23:03:26 +01:00
\begin{proof}~\\
\begin{enumerate}[label=\alph*)]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\item $W_c$ inversible $\implies (\Sigma)$ commandable.
2018-12-05 20:38:40 +01:00
Soient $x_0,X_1\in\R^n$.
Soit $v(t)$ bornée sur $[t_0,t_1]$ défini par $v(t) = B^Te^{A(t_1-\tau)}W_c(t_0,t_1)^{-1}(x_1-e^{A(t_1-t_0)}x_0)$,
$v(t)$ solution de $\dot{\overline{x}} = A\overline{x}+Bv,\overline{x}(t_0) = X_0$
On a \begin{align*}
\overline{x}(t_1) & = e^{A(t_1-t_0)}x_0 + \int_{t_0}^{t_1}e^{A(t_1-\tau)}Bv(\tau)d\tau \\
& = e^{A(t_1-t_0)}x_0 + \int_{t_0}^{t_1}e^{A(t_1-\tau)}BBe^{A^T(t_1-\tau)}W_c(t_0,t_1)^{-1}(x_1-e^{A(t_1-t_0)}x_0)d\tau + W_c(t_0,t_1)W_c(t_0,t_1)^{-1}(x_1-e^{A(t_1-t_0)}x_0), \forall x_1 \in \R^n \\
& = x_1
\end{align*}
2018-12-23 23:03:26 +01:00
\item $(\Sigma)$ commandable $\implies$ $W_c$ inversible. Montrons que si $W_c$ non inversible, alors $(\Sigma)$ non commandable.
2018-12-05 20:38:40 +01:00
$\exists y \in \R^n \setminus \{0\}$ tel que $W_cy=0$
\begin{align*}
\Leftrightarrow & y^TW_c y = 0 \\
\Leftrightarrow & \int_{t_0}^{t_1}y^T e^{A\tau}BB^Te^{A^T\tau}yd\tau = 0 \\
2018-12-23 23:03:26 +01:00
\Leftrightarrow & \int_{t_0}^{t_1}\left|B^Te^{(t_1-\tau)A^T}y\right|^2d\tau =0
2018-12-05 20:38:40 +01:00
\Rightarrow & B^Te^{A^T\tau}y=0 \forall\tau\in [t_0,t_1] \\
\Leftrightarrow & y^Te^{A\tau}B=0
\end{align*}
Soit $u$ tel que $\dot{x}=Ax+Bu$, $x(t_0)=0$
\[x(t_1) = \int_{t_0}^{t_1}e^{A(t_1-\tau)}Bu(\tau)d\tau \]
\[ \Rightarrow y^Tx(t_1)=0 \]
2018-12-23 23:03:26 +01:00
Or si $y\in\R^n \setminus \{0\}$ il existe $x_1\in\R^n$ tel que $y^Tx_1\neq 0$ par exemple $x_1=y$ donc $\forall u, x(t_1) \neq x_1$ $(\Sigma)$ non commandable.
\end{enumerate}
2018-12-05 20:38:40 +01:00
\end{proof}
2018-12-23 23:03:26 +01:00
\begin{prop}[Gramien asymptotique]
2018-12-05 20:38:40 +01:00
$W_c(0,\infty)$ solution de l'équation de Lyapumov $AP + PA^T+BB^T=0$
2018-12-23 23:03:26 +01:00
\end{prop}
\paragraph{Remarque}
Soit $A \in \K^{n\times n}$ et $t\in \R$ on montre avec le théorème de Cayley-Hamilton que :
\[
e^{tA} = \sum_{j=0}^{n-1} \phi_j(t)A^j \text{ avec } \phi_j(t) \text{ fonction analytique de $\R$, ie DSE.}
\]
On a alors:
\begin{align*}
x(t) &= e^{tA}x_0+ \int_0^t e^{(t-\tau)A}Bu(t)d\tau\\
&=e^{tA}x_0 + \int_0^t \sum_{j=0}^{n-1} \phi_j(t-\tau)A^j B u(t)d\tau \\
&=e^{tA}x_0 + \sum_{j=0}^{n-1} \int_0^t \phi_j(t-\tau)A^j B u(t)d\tau \\
&=e^{tA}x_0 + \sum_{j=0}^{n-1} A^jB \underbrace{\int_0^t \phi_j(t-\tau)u(t)d\tau}_{\mu_j}\\
&= e^{tA}x_0 + \mathcal{C}(A,B) \vect{\mu_0 \\ \vdots\\ \mu_{n-1}}
\end{align*}
\paragraph{Exercice}
\begin{it}
Soit $A\in\K^{3\times3}$ diagonalisable. Calculer $e^{tA}$ et en déduire $\phi_0,\phi_1,\phi_2$ tel que \[e^{tA}=\sum_{j=0}^{2}\phi_jA^j\]
\end{it}
\subsection{Observabilité}
\begin{defin}
Le système $(\Sigma_d)$ est observable si $\forall x_0 \in \R^n$ à
$t=t_0$, il est possible de déterminer le vecteur d'état ($x(t)$ ou $x_d$, uniquement en se servant de l'entrée $u(t)$ ou $u_k$ et de la sortie $y(t)$ ou $y_k$.
\end{defin}
\begin{defin}
On appelle matrice d'observabilité (dite de Kalman), la matrice
\[ \mathcal{O}(A,C) = \left[ \begin{array}{c}
C \\
CA \\
\vdots \\
CA^{n-1}
\end{array} \right]
\in \K^{n\times n}
\]
\end{defin}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\begin{thm}[Critère d'Observabilité de Kallman]
Le systèmes $(\Sigma)$ ou $(\Sigma_d)$ est observalble si et seulement si
\[ rang(\mathcal{O}(A,C)) = n \quad \text{ ou }rang(\mathcal{O}(A_d,C_d)) = n \]
\end{thm}
\begin{prop}[Corollaire dans le cas SISO]
\[rang(\mathcal{O}(A,C)) = n \Leftrightarrow det(\mathcal{O}(A,C)) \neq 0 \]
2018-12-05 20:38:40 +01:00
\end{prop}
2018-12-23 23:03:26 +01:00
\begin{proof}
Dans le cas discret, \[y_k = C_dA_d^kx_0 + \sum_{j=0}^{k-1}C_dA_d^{k-1-j}B_du_j+D_du_k\]
\[ \left[ \begin{array}{c} C \\ CA \\ \vdots \\CA^{k-1} \\ \end{array} \right] x_d = \left[ \begin{array}{c} y_0 \\ y_1 \\ \vdots \\ y_k \end{array} \right] - M \left[ \begin{array}{c} u_0 \\ u_1 \\ \vdots \\ u_{k-1} \end{array} \right] \]
avec \[ M = \left[
\begin{array}{ccccc}
0 \\
CB & \ddots\\
CAB & \ddots & \ddots \\
\vdots & \ddots & \ddots & \ddots \\
CA^{k-2} & \hdots & CAB & CB & 0
\end{array}
\right]
\]
$k\geq n-1$
$x_d$ s'obtient si et seulement si $rang(\mathcal{O}(C,A))=n$
\end{proof}
\begin{prop}
Les propriétés de commandabilité et d'observabilité sont invariantes par changement de variable.
\end{prop}
\begin{proof}
Soit $(\Sigma) =
\begin{cases}
\dot{x} =Ax+Bu \\
y = Cx+Du
\end{cases}$
et $T\in \K^{n\times n}$ inversible et $z$ tel que $x(t)= Tz(t)$. Alors:
\[
\begin{cases}
\dot{z} = \underbrace{T^{-1}AT}_{\tilde{A}} + \underbrace{T^{-1}B}_{\tilde{B}}u\\
y = \underbrace{CT}_{\tilde{C}}z + Du
\end{cases}
\]
Alors on a la matrice de commandabilité :
\[
\mathcal{C}(\tilde{A},\tilde{B}) = [ T^{-1}B T^{-1}ATT^{-1}B \dots ] = T^{-1} \mathcal{C}(A,B)
\implies rg(\mathcal{C}(\tilde{A},\tilde{B})) = rg(\mathcal{C}(A,B))
\]
De même :
\[
\mathcal{O}(\tilde{C},\tilde{A}) = \mathcal{O}(C,A)T \implies rg(\mathcal{O}(\tilde{C},\tilde{A}))=rg(\mathcal{O}(C,A))
\]
\end{proof}
2018-12-05 20:38:40 +01:00
\section{Relation modèle d'état / fonction de transfert}
\subsection{Modèle d'état vers fonction de transfert}
\[ u(t) \rightarrow \boxed{(S)} \rightarrow y(t) \]
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
Soient $Y(p) = L\{y(t)\}, U(p) = L\{u(t)\}, p\in \C$. $X(p) = L\{x(t)\} = [X_1(p) \dots X_n(p)]^T$
Alors on a
\begin{align*}
L\{\dot{x}\} & = pX(p) - x_0 \\
pX(p) - x_0 & = AX(p) + BU(p) \\
(p1_n-A)X(p) & = BU(p) + x_0 \\
X(p) & = (p1_n-A)^{-1}BU(p) + (p1_n-A)^{-1}x_0 \\
\intertext{ Remarque : $X(p) = L\{\int_0^t e^{-A(t-\tau)}Bu(\tau)d\tau\} + L\{e^{At}x_0\}$}
Y(p) & = CX(p) + DU(p) \\
Y(p) & = [C(p1_n-A)^{-1}B+D]U(p) + C(p1_n-A)^{-1}x_0 + DU(p)
\end{align*}
Soit $G(p)$ la fonction de transfert entre $u$ et $y$.
\[\boxed{G(p) = C(p1_n-A)^{-1}B+D}\]
\begin{prop}
Les valeurs propres de A (les modes de (S)) sont les pôles de la fonction de transfert $G(p)$.
\end{prop}
\begin{proof}
\[(p1_n-A)^{-1}=\frac{1}{det(p1_n-A)}Adj(p1_n-A)\]
Or, $P_A(p) = det(p1_n-A)$. $Adj(p1_n-A)\in\K^{n\times n}[X]$ Les éléments de $Adj(p1_n-A)$ sont des polynômes d'ordre $n-1$
2018-12-23 23:03:26 +01:00
\[G(p) = \frac{CAdj(p1_n-A)B+DP_A(p)}{P_A(p)}\]
2018-12-05 20:38:40 +01:00
\end{proof}
2018-12-23 23:03:26 +01:00
\paragraph{Remarque} Les fonctions de transferts entrées/sorties sont indépendantes du choix du vecteur d'état.
2018-12-05 20:38:40 +01:00
\subsection{Fonction de transfert / équation différentielle vers modèle d'état}
\emph{Voir polycopié}
\subsubsection*{Formes canoniques à matrice d'évolution compagnon}
\paragraph{Exemple :} $4y^{(3)}(t)-2y^{(1)}(t)+8y(t) = 2u^{(1)}(t)-u(t)$\\
On se ramène à une forme conforme au cours (coefficient de plus haut degré égal à 1) :
\[ y^{(3)}(t)-\frac{1}{2}y^{(1)}(t)+2y(t) = \frac{1}{2}u^{(1)}(t)-\frac{1}{4}u(t)\]
\begin{multicols}{2}
Forme compagnon horizontal de type I :
\[ A_c = \left[\begin{array}{ccc}
2018-12-23 23:03:26 +01:00
0 & 1 & 0 \\
0 & 0 & 1 \\
2018-12-05 20:38:40 +01:00
-2 & 1/2 & 0
2018-12-23 23:03:26 +01:00
\end{array} \right]
2018-12-05 20:38:40 +01:00
\quad
B_c = \left[\begin{array}{c} 0 \\ 0 \\1 \end{array} \right] \]
\[ C_c = [-1/4 \quad 1/2 \quad 0], \quad D=0\]
Forme compagnon horizontal de type II :
\[ A_c = \left[\begin{array}{ccc}
2018-12-23 23:03:26 +01:00
0 & 1/2 & -2 \\
1 & 0 & 0 \\
2018-12-05 20:38:40 +01:00
0 & 1 & 0
2018-12-23 23:03:26 +01:00
\end{array} \right]
\quad
2018-12-05 20:38:40 +01:00
B_c = \left[\begin{array}{c}1 \\ 0 \\0 \end{array} \right] \]
\[ C_c = [0 \quad 1/2 \quad -1/4] , \quad D=0\]
\end{multicols}
Forme compagnon vertical de type I :
\[ A_o = \left[\begin{array}{ccc}
2018-12-23 23:03:26 +01:00
0 & 1 & 0 \\
1/2 & 0 & 1 \\
2018-12-05 20:38:40 +01:00
-2 & 0 & 0
2018-12-23 23:03:26 +01:00
\end{array}\right]
\quad
2018-12-05 20:38:40 +01:00
B_o = \left[\begin{array}{c}-1/4 \\ 1/2 \\ 0 \end{array} \right] \]
\[ C_c = [ 1\quad 0 \quad 0] , \quad D=0\]
\subsubsection*{Forme modale (pôles simples)}
\begin{align*}
G(p) & = \frac{p^2-1}{(p+1)(p+2)(p+3)}\\
& = \frac{\alpha_1}{p^2-1} + \frac{\alpha_2}{p+2} + \frac{\alpha_3}{p+3} \\
(S) & \left\{ \begin{array}{cc}
\dot{x_m} & = \left[\begin{array}{ccc}
-1 & & \\
& -2 & \\
& & -3
\end{array} \right] x_m +
\left[\begin{array}{ccc}
2018-12-23 23:03:26 +01:00
\alpha_1 \gamma_1 \\
\alpha_2 \gamma_2 \\
2018-12-05 20:38:40 +01:00
\alpha_3 \gamma_3
\end{array} \right] u \\
y & = [1/\gamma_1 \quad 1/\gamma_2 \quad 1/\gamma_3]x_m+0, \quad \forall \gamma_i \neq 0
\end{array}
\right.
\end{align*}
\subsection{Changement de base vers une forme canonique}
\emph{Voir polycopié}
\subsection{Dualité observation-commande}
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
\[G(s) = C(s1_n-A)^{-1}B+D \in \R[X]\]
$G(s)$ est scalaire, donc en transposant ($G(s)=G(s)^T, D=D^T$) :
\[G(s) = B^T(s1_n-A)^{-1}C^T+D \in \R[X]\]
2018-12-23 23:03:26 +01:00
Ainsi, $\exists \tilde{x}\in \R^n$ tel que
2018-12-05 20:38:40 +01:00
\[ (S) :
\left\{
\begin{array}{ll}
\dot{\tilde{x}} &= A^T\tilde{x} + C^Tu \\
y & = B^T\tilde{x}+Du
\end{array}
\right.
\]
C'est la forme duale du modèle d'état (monovariable uniquement).
\subsection{Commandabilité et observabilité pour les formes canoniques}
Une forme canonique :
\begin{itemize}
\item de commandabilité est toujours commandable, l'observabilité est à étudier
\item d'observabilité est toujours observable, la commandabilité est à étudier\\
\end{itemize}
Cas des formes modales :
\[
(S) : \left\{
\begin{array}{rl}
\left[
\begin{array}{c}
\dot{\xi_1} \\
\vdots \\
2018-12-23 23:03:26 +01:00
\dot{\xi_n}
2018-12-05 20:38:40 +01:00
\end{array}
\right]
& = \left[
\begin{array}{ccc}
\lambda_1 \\
&\ddots \\
&& \lambda_n
\end{array}
\right]
.
\left[
\begin{array}{c}
\xi_1 \\
\vdots \\
\xi_n
\end{array}
\right]
+
\left[
\begin{array}{c}
z_1 \\
\vdots \\
z_n
\end{array}
\right]
u \\
y & = [\gamma_1 \dots \gamma_n]
\vect{z_1 \\ \vdots \\z_n}
+ D_n
\end{array}
\right.
\]
$(S)$ est commandable (resp. observable) si et seulement si tous les modes sont commandables (resp. observables)
Si dans la matrice d'application exprimée dans la base modale, un des coefficients est nul, alors le mode correspondant, donc le système, n'est pas commandable. Il en est de même pour la matrice d'observation et l'observabilité.\\
Cas des formes de Jordan : (exemple)
2018-12-23 23:03:26 +01:00
\[ \dot{x}= \begin{bmatrix}
\lambda_1 & 1& \\
& \lambda_1 & \\
& &\lambda_1 \\
\end{bmatrix}
2018-12-05 20:38:40 +01:00
x + \vect{.\\.\\.\\} u, \quad u \in \R
\]
Ce n'est pas un système commandable.
Dans un système monovariable ($y\in\R, u\in\R$), si un mode multiple est associé à au moins 2 blocs de Jordan, alors ce mode n'est pas commandable / observable.
2018-12-23 23:03:26 +01:00
\section{Commande par retour d'état}
2018-12-05 20:38:40 +01:00
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
Étant donné un système en boucle ouverte où $A$ peut posséder des modes / pôles instables, faiblements amortis, lents,... le but est de se donner un ensemble $\{ \lambda_1^{des}, \dots, \lambda_n^{des}\}\in\C^n$ auto-conjugué, et de chercher une loi de commande $u(t)$ permettant d'obtenir en boucle fermée un système dont les pôles / modes sont $\{ \lambda_1^{des}, \dots, \lambda_n^{des}\}$.
2018-12-23 23:03:26 +01:00
\paragraph{Hypothèses : } $x(t) = \vect{x_1(t) \\ \vdots \\ x_n(t)} \in \K^n$.
2018-12-05 20:38:40 +01:00
On suppose que les $x_k(t)$ sont mesurables, i.e. $x(t)$ est mesurable.\\
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
Une loi de commande par retour d'état est une expression du type
\[u(t) = \kappa (x(t)) \text{} \kappa : \begin{array}{ll}
\R^n & \rightarrow \R \\
x(t) & \mapsto u(t) = \kappa(x(t))
\end{array}
\]
Dans le cas d'une loi de commande linéaire, la ldc par retour d'état est une expression du type :
\[ u(t) = Kx(t) \text{} K\in \R^{1\times n} \]
$K$ est alors appelé gain du rectour d'état.
Une ldc linéaire par retour d'état et consigne est une expression du type :
\[ u(t) = Kx(t) + \eta e(t) \]
$K\in \R^{1\times n}$ gain du retour d'état, $\eta \in \R$ terme de précommande et $e(t)$ signal de consigne (ou de référence).
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\subsection{Mise en équation (cas continu) :}
\[ (\Sigma) :
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
\begin{align*}
\intertext{Avec $u=Kx+\eta e$,}
\dot{x} & = Ax + BKx + \eta Be \\
& = (A+BK)x+\eta Be
\intertext{Posons $A_{bf} = A+BK \in \K^{n \times n}$ matrice d'évolution en bf, $B_{bf} = \eta B \in \K^{n\times 1}$ matrice d'application du signal de consigne}
\dot{x} & = A_{bf}x + B_{bf} e
\end{align*}
2018-12-23 23:03:26 +01:00
Donc :
\[
x(t) e^{tA_{bf}}x_0 + \int_0^t e^{(t-\tau)A_{bf}}B\eta e(\tau)d\tau
\]
\paragraph{Remarque} le Dynamisme de $x(t)$ est caractérisé par les valeurs propres de $A_{bf}$. $K$ permet de les régler sous certaines conditions.
\subsection{Calcul du gain $K$ du retour d'état}
2018-12-05 20:38:40 +01:00
On souhaite trouver $K \in \K^{1 \times n}$ tel que $\{ \lambda_1^{d}, \dots, \lambda_n^{d}\}$ correspondent aux valeurs propres de $A_{bf} = A+BK$.\\
2018-12-23 23:03:26 +01:00
\textbf{Hypothèse : } $(\Sigma)$ est commandable, i.e. $\mathcal{C}(A,B)$ est inversible.\\
2018-12-05 20:38:40 +01:00
Soit $P_A(\lambda) = det(\lambda 1_n-A) = \lambda^n + a_{n-1} \lambda^{n-1} + ... + a_1 \lambda + a_0$.
Soit $\Pi_d(p)$ le polynôme caractéristique désiré en boucle fermée.
\begin{align*}
2018-12-23 23:03:26 +01:00
\Pi_d(\lambda) & = \prod_{i=1}^n(\lambda-\lambda_i^d) \\
& = \lambda^n + \alpha_{n-1}\lambda^{n-1} + ... + \alpha_1\lambda + \alpha_0 , \alpha_k\in\R
2018-12-05 20:38:40 +01:00
\end{align*}
2018-12-23 23:03:26 +01:00
Ainsi, on cherche $K=[k_0, k_1,\dots,k_n]$ tel que
2018-12-05 20:38:40 +01:00
\begin{align*}
2018-12-23 23:03:26 +01:00
P_{A_{bf}}(\lambda) & = det(\lambda 1_n-A_{bf}) \\
& = det(\lambda 1_n - A - BK) \\
& = \Pi_d(\lambda)
2018-12-05 20:38:40 +01:00
\end{align*}
Cette équation polynomiale équivaut à un système linéaire de $n$ équations à $n$ inconnues $k_0, k_1,\dots,k_n$.
2018-12-23 23:03:26 +01:00
On identifie terme à terme les monômes de $\Pi_d(\lambda)$ et $P_{a_{bf}}(\lambda)$ pour obtenir les $n$ équations.
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\subsubsection{Obtention de $K$ à partir de la forme canonique de commandabilité}
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Soit $M \in \K^{n\times n} $ la matrice de changement de coordonnées vers la forme canonique de commandabilité tel que :
2018-12-05 20:38:40 +01:00
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x_c} &= A_cx + B_cu\\
y & = C_cx+D_cu
\end{array}
\right.
\]
\[ A_c = \left[ \begin{array}{cccc}
0 & 1 \\
& & \ddots \\
& & & 1 \\
2018-12-23 23:03:26 +01:00
-a_0 & \dots & & -a_{n-1}
2018-12-05 20:38:40 +01:00
\end{array}\right], B_c = \vect{0 \\ \vdots \\ 0 \\ 1}, x = Mx_c \]
\begin{align*}
u(t) & = Kx(t) + \eta e(t) \\
u(t) & = KMx_c(t) + \eta e(t)
\end{align*}
Posons $\tilde{K} = KM = [\tilde{k_1}\dots\tilde{k_{n-1}}]$. Ainsi,
\begin{align*}
\dot{x_c} & = A_c x_c + B_c \tilde{K}x + \eta B_c e \\
& = \tilde{A_{bf}}x_ + \eta B e \\
2018-12-23 23:03:26 +01:00
\tilde{A_{bf}} & =
2018-12-05 20:38:40 +01:00
\left[ \begin{array}{cccc}
0 & 1 \\
& & \ddots \\
& & & 1 \\
2018-12-23 23:03:26 +01:00
-a_0 & \dots & & -a_{n-1}
2018-12-05 20:38:40 +01:00
\end{array}\right] +
\vect{0 \\ \vdots \\ 0 \\ 1}.[\tilde{k_0}...\tilde{k_{n-1}}] \\
& = \left[ \begin{array}{cccc}
0 & 1 \\
& & \ddots \\
& & & 1 \\
-a_0 + \tilde{k}_0 & \dots & & -a_{n-1} +\tilde{k}_{n-1}
\end{array}\right]\\
2018-12-23 23:03:26 +01:00
P_{\tilde{A_{bf}}}(\lambda) & = det(\lambda1_n - \tilde{A_{bf}}) \\
& = \lambda^n + (a_{n-1}-\tilde{k}_{n-1})\lambda^{n-1} + \dots + (a_0-\tilde{k}_0)
2018-12-05 20:38:40 +01:00
\end{align*}
2018-12-23 23:03:26 +01:00
Rappel : si $P_A(\lambda) = det (\lambda1_n -A)$, $ P_{T^{-1}AT} = det(T^{-1}) P_A(\lambda) det(T)$.
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
En identifiant terme à terme $ P_{\tilde{A_{bf}}}(\lambda)$ avec $\Pi_d(\lambda)$, on obtient
2018-12-05 20:38:40 +01:00
\begin{align*}
a_{n-1} - \tilde{k}_{n-1} & = \alpha_{n-1} \\
\vdots \\
a_{1} - \tilde{k}_{1} & = \alpha_{1} \\
a_{0} - \tilde{k}_{0} & = \alpha_{0} \intertext{ d'où $\tilde{k}_j = a_j - \alpha_j, j=0...n-1$ et enfin, $K=\tilde{K}M^{-1}$}
\end{align*}
2018-12-23 23:03:26 +01:00
\subsubsection{formule d'Ackerman}
\begin{thm}[Formule d'Ackerman]
\[ K = [0 \dots 0,1].\mathcal{C}(A,B)^{-1}\Pi_d(A) \]
\end{thm}
\begin{proof}
Preuve par récurrence, la preuve en dimension 3 est \og laissé en exercice au lecteur\fg{}.
\end{proof}
\paragraph{Remarque} : il n'y a pas besoin de calculer l'inverse de $\mathcal{C}(A,B)$ dans son intégralité, mais seulement la dernière ligne, c'est-à-dire seulement la dernière colonne de la matrice des cofacteurs.
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\subsection{Calcul du terme de précommande $\eta$}
2018-12-05 20:38:40 +01:00
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x_c} &= (A+BK) x + B\eta u\\
y & = (C+DK) x+ B\eta u
\end{array}
\right.
\]
Soit $G_{bf}(p) = ((C+DK)(p1_n-A-BK)^{-1}B+D)\eta$
Erreur statique nulle $\Leftrightarrow G_{bf}(0)=1$ (gain statique unitaire en bf)
\[ \eta = \frac{-1}{(C+DK)(A+BK)^{-1}B-D} \]
Remarque : en cas de boucle mal posée (quand le dénominateur est nul), on peut mettre en série du système de départ un filtre passe-bas.
2018-12-23 23:03:26 +01:00
\subsection{Poursuite de trajectoire}
2018-12-05 20:38:40 +01:00
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x_c} &= A_cx + B_cu\\
y & = C_cx+D_cu
\end{array}
\right.
\]
2018-12-23 23:03:26 +01:00
$\exists M \in \K^{n\times n}$ inversible tel que
2018-12-05 20:38:40 +01:00
\[M^{-1}AM = A_c = A_c = \left[ \begin{array}{cccc}
0 & 1 \\
& & \ddots \\
& & & 1 \\
2018-12-23 23:03:26 +01:00
-a_0 & \dots & & a_{n-1}
2018-12-05 20:38:40 +01:00
\end{array}\right] \qquad M^{-1}B = B_c = \vect{0 \\ \vdots \\ 0 \\ 1}\]
\[ x_c = \vect{z_1\\ \vdots \\ z_n}, \quad x = Mx_c\]
2018-12-23 23:03:26 +01:00
\subsubsection{Forme canonique de commandabilité}
2018-12-05 20:38:40 +01:00
\[\vect{ \dot{z_1} \\ \vdots \\ \dot{z_n}} = \left[ \begin{array}{cccc}
0 & 1 \\
& & \ddots \\
& & & 1 \\
2018-12-23 23:03:26 +01:00
-a_0 & \dots & & a_{n-1}
\end{array}\right] . \vect{z_1\\ \vdots \\ z_n} + \vect{0 \\ \vdots \\ 0 \\ 1}u\]
2018-12-05 20:38:40 +01:00
Posons $a = [-a_0 \dots a_{n-1}]$, puis $v(t) = -a^Tx_c(t)+u(t)$, on obtient la forme de Brunowsky :
\[ \vect{ \dot{z_1} \\ \vdots \\ \dot{z_n}} = \vect{z_2\\ \vdots \\ z_n \\ v} \]
On parle aussi d'une chaîne d'intégrateurs en cascade.
2018-12-23 23:03:26 +01:00
\subsubsection{Application au suivi de trajectoire}
2018-12-05 20:38:40 +01:00
Soit $y_d(t)$ une trajetoire désirée en boucle fermée.
Si $y(t) = z_1(t)$ (par exemple), $\dots y^{(n)}(t) = z_1^{(n)}(t) = v$,
soit $\epsilon(t) = y(t) - y_d(t) = z_1(t) - y_d(t),\dots,\epsilon^{(n)}(t) = v(t) - y_d^{(n)}(t)$
On pose \[v(t) = y_d^{(n)}(t) + k_{n-1}(y^{(n-1)}(t)-y_d^{(n-1)}(t)) + ... + k_1 (y^{(1)}(t)-y_d^{(1)}(t)) + k_0(y-y_d)\]
2018-12-23 23:03:26 +01:00
où les racines du polynôme caractéristique $p^n + k_{n-1}p^{n-1} + k_1p+k_0$ sont à partie réelle strictement négative, alors
2018-12-05 20:38:40 +01:00
\[\lim_{t\rightarrow \infty} y(t) = y_d(t) \]
Enfin, \[u(t) = v(t) + a^Tx_c\]
\newpage
\section{Observateur}
2018-12-23 23:03:26 +01:00
\emph{CF polycopié}
2018-12-05 20:38:40 +01:00
\subsection{Concept}
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu,\quad x(0) = x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
Seul $y$ est mesuré à chaque instant par un capteur.\\
2018-12-23 23:03:26 +01:00
L'observateur donne une estimation du vecteur d'état du système telle que :
2018-12-05 20:38:40 +01:00
$\forall \epsilon > 0,$ arbitrairement petit, $\exists T > 0$ tel que
\[ \forall t > T, ||x(t) - \hat{x}(t) || < \epsilon \]
But: faire la synthèse du système $(O)$ sous forme d'état, appelé observateur du système $(S)$.
\subsection{Observateur asymptotique (extension de l'observateur de Luenberger)}
Hypothèse : système $(S)$ observable
2018-12-23 23:03:26 +01:00
\begin{defin}
2018-12-05 20:38:40 +01:00
Un observateur asymptotique d'ordre $n$ est donné par le modèle d'état \[\dot{\hat{x}}=A\hat{x}+Bu+L(y- \hat{y}), \quad \hat{x}(0)=\hat{x}_0\in\R^n\]$\hat{x}\in \R^n$ est le vecteur d'état quelconque de l'observateur et $L\in\R^{n\times 1}$ est le gain de l'observateur asymptotique. $L(y- \hat{y})$ correspond à un terme de correction, et $\epsilon_y=y-\hat{y}$ est appelé innovation.
2018-12-23 23:03:26 +01:00
\end{defin}
2018-12-05 20:38:40 +01:00
\textbf{\textbf{But :}} calculer $L\in\R^{n\times 1}$ tel que $\lim_{t\rightarrow\infty} ||x(t) - \hat{x}(t) || = 0$ \\
2018-12-23 23:03:26 +01:00
Soit $\epsilon_x(t) = x(t)-\hat{x}(t)\in\R^n$, on a
2018-12-05 20:38:40 +01:00
\[\dot{\epsilon_x}(t) = \dot{x}(t)-\dot{\hat{x}}(t) = Ax(t)+Bu(t)-(A\hat{x}(t)+Bu(t)+L(y(t)-\hat{y}(t))\]
2018-12-23 23:03:26 +01:00
Or, $y(t) = Cx(t) + Du(t)$ et $\hat{y}=C\hat{x}(t) +Du(t)$, donc $y-\hat{y} = C\epsilon_x$
2018-12-05 20:38:40 +01:00
\[\dot{\epsilon_x}(t) = (A-LC)\epsilon_x(t)\]
2018-12-23 23:03:26 +01:00
$\epsilon_x(0) = x(0) - \hat{x}(0) = x_0 - \hat{x_0}$ avec $x_0$ inconnu et $\hat{x_0}$ choisi arbitrairement par l'utilisateur.
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\[\epsilon_x(t) = e^{(A-LC)t}(x_0-\hat{x}_0)\]
2018-12-05 20:38:40 +01:00
$A-LC$ : dynamique d'observation.
2018-12-23 23:03:26 +01:00
Si les valeurs propres de $A-LC$ sont à partie réelle strictement négative, alors \[\lim_{t\to\infty} \epsilon_x(t) = 0 \quad \text{i.e.} \quad \lim_{t\to\infty} \hat{x}(t) = x(t)\]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Ainsi, on se donne un polynôme caractéristique désiré pour la dynamique d'observation
\[ \Pi_o(\lambda) = \Pi_{i=1}^n (\lambda-\lambda_i^o) \]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
avec $\{\lambda_j\}_{j=1..n}$ auto-conjugué (stable par conjugaison) et $\forall j, Re(\lambda_j)<0$
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\[ \Pi_o(\lambda) = \lambda^n + \sum_{i=0}^{n-1} \gamma_i \lambda^i, \quad \gamma_k\in\R \]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Soit $L=[l_1 \quad ... \quad l_{n-1}]^T$, le calcul de $L$ s'appuie sur la résolution du système linéaire (de type $ML=b$) issu de l'identification terme à terme des monômes de $P_{A-LC}(\lambda) = det (\lambda 1_n - (A-LC))$ avec ceux de $\Pi_o(\lambda)$.
2018-12-05 20:38:40 +01:00
Soit $T\in\R^{n\times n}$ inversible tel que $x(t) = Tx_0(t)$ conduit à la forme canonique d'observabilité, c'est-à-dire avec
2018-12-23 23:03:26 +01:00
\[
2018-12-05 20:38:40 +01:00
\left\{
\begin{array}{ll}
\dot{x}_0 & = \left[ \begin{array}{cccc}
-a_{n-1} & 1 \\
& & \ddots \\
& & & 1 \\
-a_0 & \dots & & 0
\end{array}\right] x_0 + \vect{b_{n-1} \\ \vdots \\ b_0}u \\
2018-12-23 23:03:26 +01:00
y(t) &= [1 \quad 0 ... 0]x+Du
2018-12-05 20:38:40 +01:00
\end{array}
\right.
\]
2018-12-23 23:03:26 +01:00
Or, $\dot{\hat{x}} = A\hat{x} + Bu + L(y-\hat{y})$ et $\hat{y} = C\hat{x}$.
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
Posons $\hat{x}_0$ tel quel $\hat{x} = T\hat{x}_0$
2018-12-05 20:38:40 +01:00
\begin{align*}
& \left\{
\begin{array}{ll}
2018-12-23 23:03:26 +01:00
T\dot{\hat{x}}_0 & = AT\hat{x}_0 + Bu + L(y-\hat{y}) \\
\hat{y} & = CT\hat{x} + Du
2018-12-05 20:38:40 +01:00
\end{array}
\right. \\
\Leftrightarrow & \left\{
\begin{array}{ll}
2018-12-23 23:03:26 +01:00
\dot{\hat{x}}_0 & = A_0\hat{x}_0 + B_0u + T^{-1}L(y-\hat{y}) \\
\hat{y} & = C_0\hat{x} + D_u
2018-12-05 20:38:40 +01:00
\end{array}
2018-12-23 23:03:26 +01:00
\right.
2018-12-05 20:38:40 +01:00
\end{align*}
$ A_0 = T^{-1}AT, B_0 = T^{-1}B, C_0 = CT$
Posons $\tilde{L} = T^{-1}L = [\tilde{l}_{n-1} ... \tilde{l}_0]^T$
\[ \dot{\tilde{\epsilon}}_x = (A-\tilde{L}C_0)\epsilon_x\]
2018-12-23 23:03:26 +01:00
Calculons $A_0-\tilde{L}C_0 =
2018-12-05 20:38:40 +01:00
\left[ \begin{array}{cccc}
-a_{n-1}-\tilde{l}_{n-1} & 1 \\
\vdots & 0 & \ddots \\
\vdots & & & 1 \\
-a_0-\tilde{l}_0 & & & 0
\end{array}\right]$
2018-12-23 23:03:26 +01:00
Son polynôme caractéristique est $P_{A_0-\tilde{L}C_0}(\lambda) = \lambda^n + (a_{n-1}\tilde{l}_{n-1})\lambda^{n-1} + ... + (a_0 + \tilde{l}_0)$ (déduit de la forme de la matrice compagnon).\\
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
En identifiant terme à terme les monômes de $\Pi_d(\lambda)$ avec $P_{A-LC}(\lambda)$ : $\tilde{l}_j = \gamma_j - a_j$ d'où on en déduit $L = T\tilde{L}$.
2018-12-05 20:38:40 +01:00
\subsection{Correcteur par retour de sortie - Correcteur par retour d'état sur l'état reconstruit}
\[ (S) :
\left\{
\begin{array}{ll}
\dot{x} &= Ax + Bu,\quad x(0) = x_0 \in \R^n \\
y & = Cx+Du
\end{array}
\right.
\]
Loi de commande par retour d'état et consigne :
\[ u(t) = Kx(t) + \eta e(t) \]$x$ était supposé entièrement mesurable.\\
2018-12-23 23:03:26 +01:00
En pratique on utilisera
2018-12-05 20:38:40 +01:00
\[
(C) \left\{
\begin{array}{ll}
2018-12-23 23:03:26 +01:00
\dot{\hat{x}} &= Ax + Bu + L(y-\hat{y})\\
\hat{y} & = C\hat{x}+Du
2018-12-05 20:38:40 +01:00
\end{array}
\right.
\]
2018-12-23 23:03:26 +01:00
\[u(t) = K\hat{x}(t) + \eta e(t)\]
2018-12-05 20:38:40 +01:00
Correcteur dynamique par retour de sortie avec la structure observateur - retour d'état sur l'état reconstruit.
\begin{align*}
2018-12-23 23:03:26 +01:00
\dot{\hat{x}} & = A\hat{x} + BK\hat{x} + \eta Be + LC(x-\hat{x}) \\
& = (A+BK-LC)\hat{x} + LCx + \eta BE \\
& = (A+BK-LC)\hat{x} + L(y-DK\hat{x}-\eta De) + \eta Be \\
& = (A+BK-LC-LDK)\hat{x} + (B-LD)\eta e + Ly \\
& = K_A\hat{x} + K_{Be} e + Ly \\
u & = K\hat{x} + \eta e + 0y
2018-12-05 20:38:40 +01:00
\end{align*}
\begin{prop}[Principe de séparation]
La dynamique du système $(\Sigma)$ bouclé au correcteur est donné par l'union de :
\begin{itemize}
\item la dynamique de commande (valeurs propres de $A+BK$)
\item la dynamique d'observation (valeurs propres de $A-LC$)
\end{itemize}
\end{prop}
2018-12-23 23:03:26 +01:00
\section{Modèle d'état d'un système analogique discrétisé par un CNA-BOZ}
\begin{center}
\begin{tikzpicture}
\sbEntree{E}
\sbBloc[5]{CNA}{CNA+BOZ}{E}
\sbRelier[$u_k$]{E}{CNA}
\sbBloc{sys}{{\Huge$(\Sigma)$}}{CNA}
\sbRelier[$u(t)$]{CNA}{sys}
\sbBloc{CAN}{CAN}{sys}
\sbRelier[$y(t)$]{sys}{CAN}
\sbSortie[5]{S}{CAN}
\sbRelier[$y_k$]{CAN}{S}
\node[draw,dotted,fit= (CNA) (sys) (CAN),inner sep=1em ] (box){};
\node[below = 0em of box] {$\Sigma_q$};
\end{tikzpicture}
\end{center}
\paragraph{Hypothèses}: Pas d'erreur de quantification. Conversions synchrones periodique de période $T_e$
Pour $(\Sigma)$ on a :
\
\begin{align*}
x(t) &= e^{tA}x_0 + \int_0^t e^{(t-\tau)A}Bu(\tau)d\tau
\intertext{Pour $t=kT_e$}
x_k &= e^{kT_eA}x_0 + \int_0^{kT_e} e^{(kT_e-\tau)A}Bu(\tau)d\tau\\
\intertext{Alors}
x_{k+1} &= e^{T_eA}\left(e^{kT_eA}x_0+ \int_0^{kT_e} e^{(kT_e-\tau)A}Bu(\tau)d\tau+ \int_{kT_e}^{(k+1)T_e} e^{(kT_e-\tau)A}Bu(\tau)d\tau \right) \\
x_{k+1} &= e^{T_eA}\left(x_k - \int_0^{-T_e} e^{\sigma A}Bu_kd\sigma \right) \\
x_{k+1} &= \underbracket{e^{T_eA}}_{A_d}x_k + \underbracket{\int_0^{T_e} e^{\sigma A}Bd\sigma}_{B_d} u_k
\end{align*}
De plus
\[
y_k = y(kT_e) = C x(kT_e) + Du(kT_e) = C x_k + D u_k
\]
2018-12-05 20:38:40 +01:00
2018-12-23 23:03:26 +01:00
\end{document}