From 7dfa66dcbaf0d3bbcf008c2a517f2cf424d83a39 Mon Sep 17 00:00:00 2001 From: Pierre-antoine Comby Date: Sun, 6 Jan 2019 12:05:31 +0100 Subject: [PATCH] structure propre --- 421-Controle_processus/Cours/Cours.docx | Bin 105864 -> 0 bytes 421-Controle_processus/Cours/Cours.tex | 2092 +---------------- 421-Controle_processus/Cours/chap1.tex | 354 +++ 421-Controle_processus/Cours/chap2.tex | 461 ++++ 421-Controle_processus/Cours/chap3.tex | 6 + 421-Controle_processus/Cours/chap4.tex | 1279 ++++++++++ .../Cours/{modulation.tex => chap2.tex} | 0 .../Cours/{filtrage.tex => chap3.tex} | 0 .../Cours/{estimateur.tex => chap4.tex} | 0 9 files changed, 2105 insertions(+), 2087 deletions(-) delete mode 100644 421-Controle_processus/Cours/Cours.docx create mode 100644 421-Controle_processus/Cours/chap1.tex create mode 100644 421-Controle_processus/Cours/chap2.tex create mode 100644 421-Controle_processus/Cours/chap3.tex create mode 100644 421-Controle_processus/Cours/chap4.tex rename 431-Electronique_transmission/Cours/{modulation.tex => chap2.tex} (100%) rename 451-Signal_Image/Cours/{filtrage.tex => chap3.tex} (100%) rename 451-Signal_Image/Cours/{estimateur.tex => chap4.tex} (100%) diff --git a/421-Controle_processus/Cours/Cours.docx b/421-Controle_processus/Cours/Cours.docx deleted file mode 100644 index 1cc410bbcc1061ba1d6dee1ba92398e62427461a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105864 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 z 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

uWNiwpEdx$9B+V(`&}d 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 diff --git a/421-Controle_processus/Cours/Cours.tex b/421-Controle_processus/Cours/Cours.tex index e83f59c..9c5af3c 100644 --- a/421-Controle_processus/Cours/Cours.tex +++ b/421-Controle_processus/Cours/Cours.tex @@ -41,820 +41,12 @@ \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} -\sbComp{comp}{E} -\sbRelier[$c(t)$]{E}{comp} -\sbBloc{reg}{Structure de commande}{comp} -\sbRelier[$\epsilon$]{comp}{reg} -\sbBloc{sys}{Système}{reg} -\sbRelier[u(t)]{reg}{sys} -\sbSortie{S}{sys} -\sbRelier[$y(t)$]{sys}{S} -\sbRenvoi{sys-S}{comp}{} -\end{tikzpicture} -\caption{Asservissement analogique} -\end{figure} - - -La loi de commande est alors : -\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*} - -\paragraph*{Problématique} -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).\\ - -La solution est d'exploiter un calculateur numérique couplé à de l'électronique numérique pour implémenter la loi de commande. -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 -\end{itemize} - -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$ où $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} - -\sbBloc{calc}{Calculateur numérique}{E} -\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} -\begin{defin} -Un échantillonnage idéal à la période d'échantillonnage $T_e$ est représenté par : - -{\centering -\begin{circuitikz} -\draw (0,0) node[above]{$u(t)$} to [cspst,l=$T_e$](2,0) node[above]{$u^*(t)$}; -\end{circuitikz}} -\[ -u^*(t) = -\left\{ -\begin{array}{ll} -u(k.T_e)=u_k & \text{si} t =k.T_e \\ -0 & \text{si} t\neq k.T_e -\end{array} -\right. -\] -\end{defin} - -\subsection*{Peigne de Dirac} -\begin{defin} -On définit le peigne de Dirac par : \[p(t)=\sum_{k\in\mathbb{N}}\delta_0(t-k.T_e)\] -\end{defin} - -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*} - -En notant $z = e^{T_ep}$, on obtient -\[ \boxed{ F(z) = F^*(p)|_{z=e^{T_ep}} } \] - -\subsection*{Transformée en $z$} -\begin{defin} -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\}$ -\end{defin} - -\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} -\begin{defin} -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*} -\end{defin} - -\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{où } 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}$. -FAIRE UNE FIGURE PROPRE !! - -\subsection*{Reconstitution d'un signal} -\begin{thm} -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 -\[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{ où } 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 } \] - -Exemple : -\[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$ -\[ C_{l-j} = \lim_{z \rightarrow p} (\frac{1}{j!} \frac{\partial ^j \frac{z^l}{z}W(z)}{\partial z^j}) \] -\[ 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$ - -\subsection{Méthode des résidus} -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. - -\paragraph{Cas du Bloqueur d'Ordre Zéro} - -$B_0(p)$ fonction de transfert du filtre réalisant le BOZ. -\[b_0(t) = 1_0^+(t) - 1_0^+(t-T_e)\] -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}} \] - +\subfile{chap1.tex} \chapter{Fonctions de transfert en z} +\subfile{chap2.tex} -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)$ où $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} - -\begin{proof} -\begin{enumerate} -\item -\[g^*(t) * e^*(t) = \int_0^{\infty} g^*(t-\tau)e^*(\tau)d\tau = ... \] - -\item -\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} -\end{proof} - -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} - -\sbBloc{calc}{CNA}{E} -\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} - -\begin{preuve} -\begin{align*} -Y(p) & = B_0(p)G(p)U^*(p) \\ -& = (1 - e^{-T_ep})\frac{G(p)}{p}U^*(p) \\ -& = \frac{G(p)}{p}U^*(p)-\frac{G(p)}{p}U^*(p)e^{-T_ep} -\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*} -\end{preuve} - -\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} - -\[a_ny_{k+n} + ... + a_1y_{k+1}+a_0y_k = b_mu_{k+m} + ... + b_1u_{k+1} + b_0u_k \] -\[ \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) \\ -\hline -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} \\ -CIu(z) & = \sum_{j=0}^{m-1} ( \sum_{l=0}^j b_{m-l}u_{l-j}) z^{n-j} -\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{ où } CI(z) = CIy(z) - CIu(z) \\ -& \text{ À CI nulles, } Y(z) = G(z) U(z) -\end{align*} - -\subsection*{Définitions} -Les pôles (zéros) du système sont les racines de $A(z)$ ($B(z)$). - -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.\\ - -Exemple : -\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)] \] -où - -$\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\] -où $p_i = \rho_ie^{j\theta_i}$ et $\phi$ dépend du contexte. -\begin{itemize} -\item $|p_i| = \rho_i > 1$ : divergence -\item $|p_i| = \rho_i < 1$ : convergence en $\rho_i^k$ -\item $|p_i| = \rho_i = 1$ -\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é} - -\begin{defin}[Stabilité EBSB] -Un système discret est stable au sens EBSB si pour toute entrée $u_k$ bornée, $y_k$ reste bornée. -\end{defin} - -\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} - -Remarque : cela suppose le calcul des pôles de $G(z) = \frac{B(z)}{A(z)}$ - -\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*} - -Cette transformation transforme le disque unité du plan en $z$, en le preuvei-plan ouvert gauche du plan en $w$. - -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} \\ -pE(p) & = \frac{1-z^{-1}}{t_e}E(z) -\end{align*} -\[ \boxed{p = \frac{z-1}{zT_e}} \] - -\subsubsection*{Approximation d'Euler avant} -\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*} -R_d(e^{jT_e\omega}) & = R_c(\frac{2}{T_e} \frac{jT_e\omega-1}{jT_e\omega+1} -\\ -\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) -\\ -& = R_c(j\tilde{\omega}) \text{ où } \tilde{\omega} = \frac{2}{T_e}\tan(\frac{T_e}{2}\omega) -\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}} -\end{align*} - -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) - -Exemple : -\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). - -En conclusion, le choix d'une approximation dépend beaucoup des caractéristiques (zéros, ordre,...) du système. - +\chapter{Correcteur RST} +\subfile{chap3.tex} \newpage \textbf{À savoir pour le partiel} \begin{itemize} @@ -871,1279 +63,5 @@ En conclusion, le choix d'une approximation dépend beaucoup des caractéristiqu \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\\ -\begin{defin} -On appelle \textbf{équation d'état} du système $(\Sigma)$ : -\[ \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.\\ - -On appelle \textbf{équation d'observation }du système $(\Sigma)$ : -\[ y(t) = h(x(t),u(t),t) \quad \text{(équation algébrique)} \] - -Un \textbf{modèle d'état} est composé d'une équation d'état et d'une équation d'observation : - -\[ -(\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 : - -\[ -(\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 -\end{defin} -\paragraph{Systèmes stationnaires :} on peut simplifier comme suit : - -\begin{multicols}{2} -Continu : -\[ -\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 : -\[ -\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 : -\[ -\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 : -\[ -\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 d’observation - -$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 : -\[ -\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 : -\[ -\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} - -\paragraph{Cadre du cours :} systèmes linéaires, stationnaires, SISO (mono-entrée, mono-sortie). - -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)) -\end{align*} -On a donc : -\[ -\dot{x}(t) = -\left[ -\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] -+ -\left[ -\begin{array}{cc} -0 \\ \frac{1}{J} -\end{array} -\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 \] -\[q(t) = \vect{ -\theta_1(t) \\ -\vdots \\ -\theta_n(t) -} -\in \R^n, \quad -\tau = -\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} - - -\[x(t) = -\vect{q(t) \\ \dot{q}(t)} \in \R^{2n}\] -\[\dot{x}(t) = -\vect{ \dot{q}(t) \\ \ddot{q}(t)} -= -\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} - -\begin{figure}[H] -\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) -(4,4) to (8,4) to[tunnel diode,i=$i_D$] (8,0) to (4,0) -; -\end{tikzpicture} -\caption{Montage étudié} -\end{figure} - -Lois de Kirchoff : -\begin{align*} -\text{Noeud A : } & i_L = i_C + i_D = h(v_D) + v_C \\ -& \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) -\end{align*} -\[x(t) = \vect{ -i_L \\ -v_D -} = \vect{ -x_1 \\ -x_2 -} \in \R^2,\text{ 2 variables d'état} \] - -\[\dot{x}(t) = -\vect{ -\dot{x}_1 \\ -\dot{x}_2 -} - = -\left[ -\begin{array}{cc} --\frac{R}{L}i_L & -\frac{1}{L}v_D \\ -\frac{1}{C}i_L & -\frac{1}{C}h(v_D) -\end{array} -\right] - + - \vect{ - \frac{1}{L} \\ - 0 - } - u(t) - \] - - -\section{Quelques propriétés de base, valables à temps continu ou discret} - -\subsection{Non-unicité d'un modèle d'état} - -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. -\] - -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. -\begin{align*} - & \begin{cases} - T\dot{z}(t) & = AT(t)+Bu(t) \\ - y(t) & = CTz(t)+Du(t)) -\end{cases} - \\ -& \begin{cases} -\dot{z}(t) & = T^{-1}ATz(t) + T^{-1}Bu(t) \\ -y & = CT z(t) + Du(t) -\end{cases} \text{ avec } z(0) = T^{-1}x_0 \\ -& \begin{cases} -\dot{z}(t) & = \tilde{A}z(t) + \tilde{B}z(t) \\ -y & = \tilde{C}z(t) + Du(t) -\end{cases} -\end{align*} - -D est invariant par changement de coordonnées régulier ($x(t) = Tz(t)$) - -\begin{prop} -Il existe une infinité de modèles d'état pour un même système (linéaire et stationnaire). -\end{prop} - -\paragraph{Remarque} voir plus bas quelques changement de coordonnées vers des formes d'état canoniques. -\subsection{Solution de l'équation d'état} - -\subsubsection{Exponentiel d'une matrice} - -\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!} \] -On admet la convergence de la série. -\end{defin} - -\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)$ où $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)} \] -\item \[ \text{ si } AB = BA, \text{ alors } e^{A+B} = e^A e^B = e^Be^A \] -\end{enumerate} -\end{prop} - - -\begin{thm} - -Soit $A\in \K^{n\times n}$ -\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 -\end{align*}\\[2em] - -où $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*} -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} -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 \\ -\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}$ - -\begin{thm} -Soit $A\in \K^{n\times n}$ et $\Psi_0(t)...\Psi_{n-1}(t)$ définis précédement. - -Alors $\forall s \in \C \setminus Spec(A)$, -\[ 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. - -\end{thm} -De plus, -\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*} - - -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: -\[ (S) : -\left\{ -\begin{array}{ll} -\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\ -y & = Cx+Du -\end{array} -\right. -\] -\[ x(t) = e^{At}x_0 + \int_0^t e^{A(t-\tau)}Bu(\tau)d\tau \] -\end{thm} -\begin{proof} -\begin{align*} -\dot{x} & = Ax + Bu \\ -e^{-tA}(\dot{x} - Ax) & = e^{-tA}Bu\\ -\int \frac{d}{dt}(e^{-tA}x(t)) & = \int e^{-tA}Bu(t) \\ -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 -\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} - -\subsubsection{Cas discret} -\begin{thm} -Dans le cas discret , les solutions de l'équation d'état sont: - \[ (S) : -\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. -\] -\end{thm} -\[ -\begin{array}{c|ll} -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 \\ -\forall k & x_k & = A_d^k x_0 + \sum_{j=0}^{k-1}A_j^{k-1-j}B_du_j -\end{array} -\] - - -\subsection{Modèle d'état pour quelques associations de systèmes (TD1)} -\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é} - -\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} - -\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} - -\begin{thm} Cas analogique ou discret : \\ - -\textbf{Le système $(\Sigma)$ est commandable} si et seulement si (matrice de rang plein) -\[ rang( \mathcal{C}(A,B)) = n \] - -\textbf{Le système $(\Sigma_d)$ est commandable} si et seulement si -\[ rang( C(A_d,B_d)) = n \] - -\end{thm} - -On dit alors que la paire $A,B$ est commandable. - -\begin{prop}[Corollaire spécifique aux systèmes monovariables] -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) \] -\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 -\[ Im\{A_d^{k-1-j}B_d\}_{j=0...k-1} = \K^n \] - -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$. - -Donc : -\[Im\{A_d^{k-1-j}B_d\}_{j=0...n-1} = \K^n \Leftrightarrow rang(C(A_d,B_d)) = n\] -\end{proof} -\subsubsection{Cas discret} -\begin{prop} -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}\] - -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$: - -\[ -\vect{u_{n-1}\\ \vdots\\ u_0} = \mathcal{C}(A,B)^{-1}(x_n-A_d^nx_0) -\] -\end{prop} - -\subsubsection{Cas continu} - -\begin{defin} -On définit le Gramien de commandabilité, noté $W_c\in\R^{n\times n}$ -\[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} - -\begin{thm} -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$. -\end{thm} - -\begin{proof}~\\ - \begin{enumerate}[label=\alph*)] - - \item $W_c$ inversible $\implies (\Sigma)$ commandable. -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*} - -\item $(\Sigma)$ commandable $\implies$ $W_c$ inversible. Montrons que si $W_c$ non inversible, alors $(\Sigma)$ non commandable. - -$\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 \\ -\Leftrightarrow & \int_{t_0}^{t_1}\left|B^Te^{(t_1-\tau)A^T}y\right|^2d\tau =0 -\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 \] - -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} -\end{proof} - -\begin{prop}[Gramien asymptotique] -$W_c(0,\infty)$ solution de l'équation de Lyapumov $AP + PA^T+BB^T=0$ -\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} - -\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 \] -\end{prop} - -\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} - - -\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$ -\[G(p) = \frac{CAdj(p1_n-A)B+DP_A(p)}{P_A(p)}\] -\end{proof} - -\paragraph{Remarque} Les fonctions de transferts entrées/sorties sont indépendantes du choix du vecteur d'état. - - -\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} -0 & 1 & 0 \\ -0 & 0 & 1 \\ --2 & 1/2 & 0 -\end{array} \right] -\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} -0 & 1/2 & -2 \\ -1 & 0 & 0 \\ -0 & 1 & 0 -\end{array} \right] -\quad -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} -0 & 1 & 0 \\ -1/2 & 0 & 1 \\ --2 & 0 & 0 -\end{array}\right] -\quad -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} -\alpha_1 \gamma_1 \\ -\alpha_2 \gamma_2 \\ -\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]\] - -Ainsi, $\exists \tilde{x}\in \R^n$ tel que -\[ (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 \\ -\dot{\xi_n} -\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) -\[ \dot{x}= \begin{bmatrix} - - \lambda_1 & 1& \\ - & \lambda_1 & \\ - & &\lambda_1 \\ - \end{bmatrix} -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. - -\section{Commande par retour d'état} - -\[ (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}\}$. - -\paragraph{Hypothèses : } $x(t) = \vect{x_1(t) \\ \vdots \\ x_n(t)} \in \K^n$. - -On suppose que les $x_k(t)$ sont mesurables, i.e. $x(t)$ est mesurable.\\ - -\begin{defin} -Une loi de commande par retour d'état est une expression du type -\[u(t) = \kappa (x(t)) \text{ où } \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{ où } 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) \] -où $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). -\end{defin} - -\subsection{Mise en équation (cas continu) :} -\[ (\Sigma) : -\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*} - -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} - -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$.\\ - -\textbf{Hypothèse : } $(\Sigma)$ est commandable, i.e. $\mathcal{C}(A,B)$ est inversible.\\ - -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*} -\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 -\end{align*} - -Ainsi, on cherche $K=[k_0, k_1,\dots,k_n]$ tel que -\begin{align*} -P_{A_{bf}}(\lambda) & = det(\lambda 1_n-A_{bf}) \\ -& = det(\lambda 1_n - A - BK) \\ -& = \Pi_d(\lambda) -\end{align*} - -Cette équation polynomiale équivaut à un système linéaire de $n$ équations à $n$ inconnues $k_0, k_1,\dots,k_n$. - -On identifie terme à terme les monômes de $\Pi_d(\lambda)$ et $P_{a_{bf}}(\lambda)$ pour obtenir les $n$ équations. - -\subsubsection{Obtention de $K$ à partir de la forme canonique de commandabilité} - -Soit $M \in \K^{n\times n} $ la matrice de changement de coordonnées vers la forme canonique de commandabilité tel que : -\[ (S) : -\left\{ -\begin{array}{ll} -\dot{x_c} &= A_cx + B_cu\\ -y & = C_cx+D_cu -\end{array} -\right. -\] -où \[ A_c = \left[ \begin{array}{cccc} -0 & 1 \\ -& & \ddots \\ -& & & 1 \\ --a_0 & \dots & & -a_{n-1} -\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 \\ -\tilde{A_{bf}} & = -\left[ \begin{array}{cccc} -0 & 1 \\ -& & \ddots \\ -& & & 1 \\ --a_0 & \dots & & -a_{n-1} -\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]\\ -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) -\end{align*} - -Rappel : si $P_A(\lambda) = det (\lambda1_n -A)$, $ P_{T^{-1}AT} = det(T^{-1}) P_A(\lambda) det(T)$. - -En identifiant terme à terme $ P_{\tilde{A_{bf}}}(\lambda)$ avec $\Pi_d(\lambda)$, on obtient -\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*} - -\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. - - - -\subsection{Calcul du terme de précommande $\eta$} -\[ (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. - -\subsection{Poursuite de trajectoire} -\[ (S) : -\left\{ -\begin{array}{ll} -\dot{x_c} &= A_cx + B_cu\\ -y & = C_cx+D_cu -\end{array} -\right. -\] -$\exists M \in \K^{n\times n}$ inversible tel que -\[M^{-1}AM = A_c = A_c = \left[ \begin{array}{cccc} -0 & 1 \\ -& & \ddots \\ -& & & 1 \\ --a_0 & \dots & & a_{n-1} -\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\] - -\subsubsection{Forme canonique de commandabilité} -\[\vect{ \dot{z_1} \\ \vdots \\ \dot{z_n}} = \left[ \begin{array}{cccc} -0 & 1 \\ -& & \ddots \\ -& & & 1 \\ --a_0 & \dots & & a_{n-1} -\end{array}\right] . \vect{z_1\\ \vdots \\ z_n} + \vect{0 \\ \vdots \\ 0 \\ 1}u\] - -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. - -\subsubsection{Application au suivi de trajectoire} -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)\] -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 -\[\lim_{t\rightarrow \infty} y(t) = y_d(t) \] - -Enfin, \[u(t) = v(t) + a^Tx_c\] - -\newpage -\section{Observateur} -\emph{CF polycopié} -\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.\\ - -L'observateur donne une estimation du vecteur d'état du système telle que : - -$\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 - -\begin{defin} -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\] où $\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. -\end{defin} - -\textbf{\textbf{But :}} calculer $L\in\R^{n\times 1}$ tel que $\lim_{t\rightarrow\infty} ||x(t) - \hat{x}(t) || = 0$ \\ - -Soit $\epsilon_x(t) = x(t)-\hat{x}(t)\in\R^n$, on a -\[\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))\] - -Or, $y(t) = Cx(t) + Du(t)$ et $\hat{y}=C\hat{x}(t) +Du(t)$, donc $y-\hat{y} = C\epsilon_x$ -\[\dot{\epsilon_x}(t) = (A-LC)\epsilon_x(t)\] - -$\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. - -\[\epsilon_x(t) = e^{(A-LC)t}(x_0-\hat{x}_0)\] - -$A-LC$ : dynamique d'observation. - -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)\] - -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) \] - -avec $\{\lambda_j\}_{j=1..n}$ auto-conjugué (stable par conjugaison) et $\forall j, Re(\lambda_j)<0$ - -\[ \Pi_o(\lambda) = \lambda^n + \sum_{i=0}^{n-1} \gamma_i \lambda^i, \quad \gamma_k\in\R \] - -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)$. - -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 -\[ -\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 \\ -y(t) &= [1 \quad 0 ... 0]x+Du -\end{array} -\right. -\] - -Or, $\dot{\hat{x}} = A\hat{x} + Bu + L(y-\hat{y})$ et $\hat{y} = C\hat{x}$. - -Posons $\hat{x}_0$ tel quel $\hat{x} = T\hat{x}_0$ -\begin{align*} -& \left\{ -\begin{array}{ll} -T\dot{\hat{x}}_0 & = AT\hat{x}_0 + Bu + L(y-\hat{y}) \\ -\hat{y} & = CT\hat{x} + Du -\end{array} -\right. \\ -\Leftrightarrow & \left\{ -\begin{array}{ll} -\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 -\end{array} -\right. -\end{align*} -où $ 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\] - -Calculons $A_0-\tilde{L}C_0 = -\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]$ - -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).\\ - -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}$. - -\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) \] où $x$ était supposé entièrement mesurable.\\ - -En pratique on utilisera -\[ -(C) \left\{ -\begin{array}{ll} -\dot{\hat{x}} &= Ax + Bu + L(y-\hat{y})\\ -\hat{y} & = C\hat{x}+Du -\end{array} -\right. -\] -\[u(t) = K\hat{x}(t) + \eta e(t)\] -Correcteur dynamique par retour de sortie avec la structure observateur - retour d'état sur l'état reconstruit. - -\begin{align*} -\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 -\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} - - -\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 -\] - - +\subfile{chap4.tex} \end{document} diff --git a/421-Controle_processus/Cours/chap1.tex b/421-Controle_processus/Cours/chap1.tex new file mode 100644 index 0000000..10eda63 --- /dev/null +++ b/421-Controle_processus/Cours/chap1.tex @@ -0,0 +1,354 @@ +\documentclass[main.tex]{subfiles} +\begin{document} +\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} +\sbComp{comp}{E} +\sbRelier[$c(t)$]{E}{comp} +\sbBloc{reg}{Structure de commande}{comp} +\sbRelier[$\epsilon$]{comp}{reg} +\sbBloc{sys}{Système}{reg} +\sbRelier[u(t)]{reg}{sys} +\sbSortie{S}{sys} +\sbRelier[$y(t)$]{sys}{S} +\sbRenvoi{sys-S}{comp}{} +\end{tikzpicture} +\caption{Asservissement analogique} +\end{figure} + + +La loi de commande est alors : +\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*} + +\paragraph*{Problématique} +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).\\ + +La solution est d'exploiter un calculateur numérique couplé à de l'électronique numérique pour implémenter la loi de commande. +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 +\end{itemize} + +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$ où $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} + +\sbBloc{calc}{Calculateur numérique}{E} +\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} +\begin{defin} +Un échantillonnage idéal à la période d'échantillonnage $T_e$ est représenté par : + +{\centering +\begin{circuitikz} +\draw (0,0) node[above]{$u(t)$} to [cspst,l=$T_e$](2,0) node[above]{$u^*(t)$}; +\end{circuitikz}} +\[ +u^*(t) = +\left\{ +\begin{array}{ll} +u(k.T_e)=u_k & \text{si} t =k.T_e \\ +0 & \text{si} t\neq k.T_e +\end{array} +\right. +\] +\end{defin} + +\subsection*{Peigne de Dirac} +\begin{defin} +On définit le peigne de Dirac par : \[p(t)=\sum_{k\in\mathbb{N}}\delta_0(t-k.T_e)\] +\end{defin} + +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*} + +En notant $z = e^{T_ep}$, on obtient +\[ \boxed{ F(z) = F^*(p)|_{z=e^{T_ep}} } \] + +\subsection*{Transformée en $z$} +\begin{defin} +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\}$ +\end{defin} + +\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} +\begin{defin} +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*} +\end{defin} + +\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{où } 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}$. +FAIRE UNE FIGURE PROPRE !! + +\subsection*{Reconstitution d'un signal} +\begin{thm} +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 +\[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{ où } 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 } \] + +Exemple : +\[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$ +\[ C_{l-j} = \lim_{z \rightarrow p} (\frac{1}{j!} \frac{\partial ^j \frac{z^l}{z}W(z)}{\partial z^j}) \] +\[ 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$ + +\subsection{Méthode des résidus} +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. + +\paragraph{Cas du Bloqueur d'Ordre Zéro} + +$B_0(p)$ fonction de transfert du filtre réalisant le BOZ. +\[b_0(t) = 1_0^+(t) - 1_0^+(t-T_e)\] +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}} \] + + +\end{document} diff --git a/421-Controle_processus/Cours/chap2.tex b/421-Controle_processus/Cours/chap2.tex new file mode 100644 index 0000000..074139e --- /dev/null +++ b/421-Controle_processus/Cours/chap2.tex @@ -0,0 +1,461 @@ +\documentclass[main.tex]{subfiles} +\begin{document} +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)$ où $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} + +\begin{proof} +\begin{enumerate} +\item +\[g^*(t) * e^*(t) = \int_0^{\infty} g^*(t-\tau)e^*(\tau)d\tau = ... \] + +\item +\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} +\end{proof} + +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} + +\sbBloc{calc}{CNA}{E} +\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} + +\begin{preuve} +\begin{align*} +Y(p) & = B_0(p)G(p)U^*(p) \\ +& = (1 - e^{-T_ep})\frac{G(p)}{p}U^*(p) \\ +& = \frac{G(p)}{p}U^*(p)-\frac{G(p)}{p}U^*(p)e^{-T_ep} +\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*} +\end{preuve} + +\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} + +\[a_ny_{k+n} + ... + a_1y_{k+1}+a_0y_k = b_mu_{k+m} + ... + b_1u_{k+1} + b_0u_k \] +\[ \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) \\ +\hline +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} \\ +CIu(z) & = \sum_{j=0}^{m-1} ( \sum_{l=0}^j b_{m-l}u_{l-j}) z^{n-j} +\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{ où } CI(z) = CIy(z) - CIu(z) \\ +& \text{ À CI nulles, } Y(z) = G(z) U(z) +\end{align*} + +\subsection*{Définitions} +Les pôles (zéros) du système sont les racines de $A(z)$ ($B(z)$). + +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.\\ + +Exemple : +\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)] \] +où + +$\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\] +où $p_i = \rho_ie^{j\theta_i}$ et $\phi$ dépend du contexte. +\begin{itemize} +\item $|p_i| = \rho_i > 1$ : divergence +\item $|p_i| = \rho_i < 1$ : convergence en $\rho_i^k$ +\item $|p_i| = \rho_i = 1$ +\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é} + +\begin{defin}[Stabilité EBSB] +Un système discret est stable au sens EBSB si pour toute entrée $u_k$ bornée, $y_k$ reste bornée. +\end{defin} + +\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} + +Remarque : cela suppose le calcul des pôles de $G(z) = \frac{B(z)}{A(z)}$ + +\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*} + +Cette transformation transforme le disque unité du plan en $z$, en le preuvei-plan ouvert gauche du plan en $w$. + +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} \\ +pE(p) & = \frac{1-z^{-1}}{t_e}E(z) +\end{align*} +\[ \boxed{p = \frac{z-1}{zT_e}} \] + +\subsubsection*{Approximation d'Euler avant} +\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*} +R_d(e^{jT_e\omega}) & = R_c(\frac{2}{T_e} \frac{jT_e\omega-1}{jT_e\omega+1} +\\ +\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) +\\ +& = R_c(j\tilde{\omega}) \text{ où } \tilde{\omega} = \frac{2}{T_e}\tan(\frac{T_e}{2}\omega) +\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}} +\end{align*} + +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) + +Exemple : +\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). + +En conclusion, le choix d'une approximation dépend beaucoup des caractéristiques (zéros, ordre,...) du système. +\end{document} diff --git a/421-Controle_processus/Cours/chap3.tex b/421-Controle_processus/Cours/chap3.tex new file mode 100644 index 0000000..19de864 --- /dev/null +++ b/421-Controle_processus/Cours/chap3.tex @@ -0,0 +1,6 @@ +\documentclass[main.tex]{subfiles} +\begin{document} + +TO BE ADDED + +\end{document} diff --git a/421-Controle_processus/Cours/chap4.tex b/421-Controle_processus/Cours/chap4.tex new file mode 100644 index 0000000..f885346 --- /dev/null +++ b/421-Controle_processus/Cours/chap4.tex @@ -0,0 +1,1279 @@ +\documentclass[main.tex]{subfiles} +\begin{document} + + +\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\\ +\begin{defin} +On appelle \textbf{équation d'état} du système $(\Sigma)$ : +\[ \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.\\ + +On appelle \textbf{équation d'observation }du système $(\Sigma)$ : +\[ y(t) = h(x(t),u(t),t) \quad \text{(équation algébrique)} \] + +Un \textbf{modèle d'état} est composé d'une équation d'état et d'une équation d'observation : + +\[ +(\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 : + +\[ +(\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 +\end{defin} +\paragraph{Systèmes stationnaires :} on peut simplifier comme suit : + +\begin{multicols}{2} +Continu : +\[ +\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 : +\[ +\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 : +\[ +\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 : +\[ +\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 d’observation + +$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 : +\[ +\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 : +\[ +\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} + +\paragraph{Cadre du cours :} systèmes linéaires, stationnaires, SISO (mono-entrée, mono-sortie). + +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)) +\end{align*} +On a donc : +\[ +\dot{x}(t) = +\left[ +\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] ++ +\left[ +\begin{array}{cc} +0 \\ \frac{1}{J} +\end{array} +\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 \] +\[q(t) = \vect{ +\theta_1(t) \\ +\vdots \\ +\theta_n(t) +} +\in \R^n, \quad +\tau = +\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} + + +\[x(t) = +\vect{q(t) \\ \dot{q}(t)} \in \R^{2n}\] +\[\dot{x}(t) = +\vect{ \dot{q}(t) \\ \ddot{q}(t)} += +\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} + +\begin{figure}[H] +\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) +(4,4) to (8,4) to[tunnel diode,i=$i_D$] (8,0) to (4,0) +; +\end{tikzpicture} +\caption{Montage étudié} +\end{figure} + +Lois de Kirchoff : +\begin{align*} +\text{Noeud A : } & i_L = i_C + i_D = h(v_D) + v_C \\ +& \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) +\end{align*} +\[x(t) = \vect{ +i_L \\ +v_D +} = \vect{ +x_1 \\ +x_2 +} \in \R^2,\text{ 2 variables d'état} \] + +\[\dot{x}(t) = +\vect{ +\dot{x}_1 \\ +\dot{x}_2 +} + = +\left[ +\begin{array}{cc} +-\frac{R}{L}i_L & -\frac{1}{L}v_D \\ +\frac{1}{C}i_L & -\frac{1}{C}h(v_D) +\end{array} +\right] + + + \vect{ + \frac{1}{L} \\ + 0 + } + u(t) + \] + + +\section{Quelques propriétés de base, valables à temps continu ou discret} + +\subsection{Non-unicité d'un modèle d'état} + +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. +\] + +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. +\begin{align*} + & \begin{cases} + T\dot{z}(t) & = AT(t)+Bu(t) \\ + y(t) & = CTz(t)+Du(t)) +\end{cases} + \\ +& \begin{cases} +\dot{z}(t) & = T^{-1}ATz(t) + T^{-1}Bu(t) \\ +y & = CT z(t) + Du(t) +\end{cases} \text{ avec } z(0) = T^{-1}x_0 \\ +& \begin{cases} +\dot{z}(t) & = \tilde{A}z(t) + \tilde{B}z(t) \\ +y & = \tilde{C}z(t) + Du(t) +\end{cases} +\end{align*} + +D est invariant par changement de coordonnées régulier ($x(t) = Tz(t)$) + +\begin{prop} +Il existe une infinité de modèles d'état pour un même système (linéaire et stationnaire). +\end{prop} + +\paragraph{Remarque} voir plus bas quelques changement de coordonnées vers des formes d'état canoniques. +\subsection{Solution de l'équation d'état} + +\subsubsection{Exponentiel d'une matrice} + +\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!} \] +On admet la convergence de la série. +\end{defin} + +\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)$ où $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)} \] +\item \[ \text{ si } AB = BA, \text{ alors } e^{A+B} = e^A e^B = e^Be^A \] +\end{enumerate} +\end{prop} + + +\begin{thm} + +Soit $A\in \K^{n\times n}$ +\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 +\end{align*}\\[2em] + +où $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*} +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} +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 \\ +\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}$ + +\begin{thm} +Soit $A\in \K^{n\times n}$ et $\Psi_0(t)...\Psi_{n-1}(t)$ définis précédement. + +Alors $\forall s \in \C \setminus Spec(A)$, +\[ 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. + +\end{thm} +De plus, +\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*} + + +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: +\[ (S) : +\left\{ +\begin{array}{ll} +\dot{x} &= Ax + Bu, \quad x(0)=x_0 \in \R^n \\ +y & = Cx+Du +\end{array} +\right. +\] +\[ x(t) = e^{At}x_0 + \int_0^t e^{A(t-\tau)}Bu(\tau)d\tau \] +\end{thm} +\begin{proof} +\begin{align*} +\dot{x} & = Ax + Bu \\ +e^{-tA}(\dot{x} - Ax) & = e^{-tA}Bu\\ +\int \frac{d}{dt}(e^{-tA}x(t)) & = \int e^{-tA}Bu(t) \\ +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 +\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} + +\subsubsection{Cas discret} +\begin{thm} +Dans le cas discret , les solutions de l'équation d'état sont: + \[ (S) : +\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. +\] +\end{thm} +\[ +\begin{array}{c|ll} +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 \\ +\forall k & x_k & = A_d^k x_0 + \sum_{j=0}^{k-1}A_j^{k-1-j}B_du_j +\end{array} +\] + + +\subsection{Modèle d'état pour quelques associations de systèmes (TD1)} +\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é} + +\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} + +\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} + +\begin{thm} Cas analogique ou discret : \\ + +\textbf{Le système $(\Sigma)$ est commandable} si et seulement si (matrice de rang plein) +\[ rang( \mathcal{C}(A,B)) = n \] + +\textbf{Le système $(\Sigma_d)$ est commandable} si et seulement si +\[ rang( C(A_d,B_d)) = n \] + +\end{thm} + +On dit alors que la paire $A,B$ est commandable. + +\begin{prop}[Corollaire spécifique aux systèmes monovariables] +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) \] +\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 +\[ Im\{A_d^{k-1-j}B_d\}_{j=0...k-1} = \K^n \] + +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$. + +Donc : +\[Im\{A_d^{k-1-j}B_d\}_{j=0...n-1} = \K^n \Leftrightarrow rang(C(A_d,B_d)) = n\] +\end{proof} +\subsubsection{Cas discret} +\begin{prop} +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}\] + +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$: + +\[ +\vect{u_{n-1}\\ \vdots\\ u_0} = \mathcal{C}(A,B)^{-1}(x_n-A_d^nx_0) +\] +\end{prop} + +\subsubsection{Cas continu} + +\begin{defin} +On définit le Gramien de commandabilité, noté $W_c\in\R^{n\times n}$ +\[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} + +\begin{thm} +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$. +\end{thm} + +\begin{proof}~\\ + \begin{enumerate}[label=\alph*)] + + \item $W_c$ inversible $\implies (\Sigma)$ commandable. +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*} + +\item $(\Sigma)$ commandable $\implies$ $W_c$ inversible. Montrons que si $W_c$ non inversible, alors $(\Sigma)$ non commandable. + +$\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 \\ +\Leftrightarrow & \int_{t_0}^{t_1}\left|B^Te^{(t_1-\tau)A^T}y\right|^2d\tau =0 +\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 \] + +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} +\end{proof} + +\begin{prop}[Gramien asymptotique] +$W_c(0,\infty)$ solution de l'équation de Lyapumov $AP + PA^T+BB^T=0$ +\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} + +\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 \] +\end{prop} + +\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} + + +\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$ +\[G(p) = \frac{CAdj(p1_n-A)B+DP_A(p)}{P_A(p)}\] +\end{proof} + +\paragraph{Remarque} Les fonctions de transferts entrées/sorties sont indépendantes du choix du vecteur d'état. + + +\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} +0 & 1 & 0 \\ +0 & 0 & 1 \\ +-2 & 1/2 & 0 +\end{array} \right] +\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} +0 & 1/2 & -2 \\ +1 & 0 & 0 \\ +0 & 1 & 0 +\end{array} \right] +\quad +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} +0 & 1 & 0 \\ +1/2 & 0 & 1 \\ +-2 & 0 & 0 +\end{array}\right] +\quad +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} +\alpha_1 \gamma_1 \\ +\alpha_2 \gamma_2 \\ +\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]\] + +Ainsi, $\exists \tilde{x}\in \R^n$ tel que +\[ (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 \\ +\dot{\xi_n} +\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) +\[ \dot{x}= \begin{bmatrix} + + \lambda_1 & 1& \\ + & \lambda_1 & \\ + & &\lambda_1 \\ + \end{bmatrix} +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. + +\section{Commande par retour d'état} + +\[ (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}\}$. + +\paragraph{Hypothèses : } $x(t) = \vect{x_1(t) \\ \vdots \\ x_n(t)} \in \K^n$. + +On suppose que les $x_k(t)$ sont mesurables, i.e. $x(t)$ est mesurable.\\ + +\begin{defin} +Une loi de commande par retour d'état est une expression du type +\[u(t) = \kappa (x(t)) \text{ où } \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{ où } 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) \] +où $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). +\end{defin} + +\subsection{Mise en équation (cas continu) :} +\[ (\Sigma) : +\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*} + +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} + +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$.\\ + +\textbf{Hypothèse : } $(\Sigma)$ est commandable, i.e. $\mathcal{C}(A,B)$ est inversible.\\ + +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*} +\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 +\end{align*} + +Ainsi, on cherche $K=[k_0, k_1,\dots,k_n]$ tel que +\begin{align*} +P_{A_{bf}}(\lambda) & = det(\lambda 1_n-A_{bf}) \\ +& = det(\lambda 1_n - A - BK) \\ +& = \Pi_d(\lambda) +\end{align*} + +Cette équation polynomiale équivaut à un système linéaire de $n$ équations à $n$ inconnues $k_0, k_1,\dots,k_n$. + +On identifie terme à terme les monômes de $\Pi_d(\lambda)$ et $P_{a_{bf}}(\lambda)$ pour obtenir les $n$ équations. + +\subsubsection{Obtention de $K$ à partir de la forme canonique de commandabilité} + +Soit $M \in \K^{n\times n} $ la matrice de changement de coordonnées vers la forme canonique de commandabilité tel que : +\[ (S) : +\left\{ +\begin{array}{ll} +\dot{x_c} &= A_cx + B_cu\\ +y & = C_cx+D_cu +\end{array} +\right. +\] +où \[ A_c = \left[ \begin{array}{cccc} +0 & 1 \\ +& & \ddots \\ +& & & 1 \\ +-a_0 & \dots & & -a_{n-1} +\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 \\ +\tilde{A_{bf}} & = +\left[ \begin{array}{cccc} +0 & 1 \\ +& & \ddots \\ +& & & 1 \\ +-a_0 & \dots & & -a_{n-1} +\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]\\ +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) +\end{align*} + +Rappel : si $P_A(\lambda) = det (\lambda1_n -A)$, $ P_{T^{-1}AT} = det(T^{-1}) P_A(\lambda) det(T)$. + +En identifiant terme à terme $ P_{\tilde{A_{bf}}}(\lambda)$ avec $\Pi_d(\lambda)$, on obtient +\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*} + +\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. + + + +\subsection{Calcul du terme de précommande $\eta$} +\[ (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. + +\subsection{Poursuite de trajectoire} +\[ (S) : +\left\{ +\begin{array}{ll} +\dot{x_c} &= A_cx + B_cu\\ +y & = C_cx+D_cu +\end{array} +\right. +\] +$\exists M \in \K^{n\times n}$ inversible tel que +\[M^{-1}AM = A_c = A_c = \left[ \begin{array}{cccc} +0 & 1 \\ +& & \ddots \\ +& & & 1 \\ +-a_0 & \dots & & a_{n-1} +\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\] + +\subsubsection{Forme canonique de commandabilité} +\[\vect{ \dot{z_1} \\ \vdots \\ \dot{z_n}} = \left[ \begin{array}{cccc} +0 & 1 \\ +& & \ddots \\ +& & & 1 \\ +-a_0 & \dots & & a_{n-1} +\end{array}\right] . \vect{z_1\\ \vdots \\ z_n} + \vect{0 \\ \vdots \\ 0 \\ 1}u\] + +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. + +\subsubsection{Application au suivi de trajectoire} +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)\] +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 +\[\lim_{t\rightarrow \infty} y(t) = y_d(t) \] + +Enfin, \[u(t) = v(t) + a^Tx_c\] + +\newpage +\section{Observateur} +\emph{CF polycopié} +\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.\\ + +L'observateur donne une estimation du vecteur d'état du système telle que : + +$\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 + +\begin{defin} +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\] où $\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. +\end{defin} + +\textbf{\textbf{But :}} calculer $L\in\R^{n\times 1}$ tel que $\lim_{t\rightarrow\infty} ||x(t) - \hat{x}(t) || = 0$ \\ + +Soit $\epsilon_x(t) = x(t)-\hat{x}(t)\in\R^n$, on a +\[\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))\] + +Or, $y(t) = Cx(t) + Du(t)$ et $\hat{y}=C\hat{x}(t) +Du(t)$, donc $y-\hat{y} = C\epsilon_x$ +\[\dot{\epsilon_x}(t) = (A-LC)\epsilon_x(t)\] + +$\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. + +\[\epsilon_x(t) = e^{(A-LC)t}(x_0-\hat{x}_0)\] + +$A-LC$ : dynamique d'observation. + +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)\] + +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) \] + +avec $\{\lambda_j\}_{j=1..n}$ auto-conjugué (stable par conjugaison) et $\forall j, Re(\lambda_j)<0$ + +\[ \Pi_o(\lambda) = \lambda^n + \sum_{i=0}^{n-1} \gamma_i \lambda^i, \quad \gamma_k\in\R \] + +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)$. + +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 +\[ +\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 \\ +y(t) &= [1 \quad 0 ... 0]x+Du +\end{array} +\right. +\] + +Or, $\dot{\hat{x}} = A\hat{x} + Bu + L(y-\hat{y})$ et $\hat{y} = C\hat{x}$. + +Posons $\hat{x}_0$ tel quel $\hat{x} = T\hat{x}_0$ +\begin{align*} +& \left\{ +\begin{array}{ll} +T\dot{\hat{x}}_0 & = AT\hat{x}_0 + Bu + L(y-\hat{y}) \\ +\hat{y} & = CT\hat{x} + Du +\end{array} +\right. \\ +\Leftrightarrow & \left\{ +\begin{array}{ll} +\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 +\end{array} +\right. +\end{align*} +où $ 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\] + +Calculons $A_0-\tilde{L}C_0 = +\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]$ + +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).\\ + +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}$. + +\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) \] où $x$ était supposé entièrement mesurable.\\ + +En pratique on utilisera +\[ +(C) \left\{ +\begin{array}{ll} +\dot{\hat{x}} &= Ax + Bu + L(y-\hat{y})\\ +\hat{y} & = C\hat{x}+Du +\end{array} +\right. +\] +\[u(t) = K\hat{x}(t) + \eta e(t)\] +Correcteur dynamique par retour de sortie avec la structure observateur - retour d'état sur l'état reconstruit. + +\begin{align*} +\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 +\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} + + +\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 +\] + + +\end{document} diff --git a/431-Electronique_transmission/Cours/modulation.tex b/431-Electronique_transmission/Cours/chap2.tex similarity index 100% rename from 431-Electronique_transmission/Cours/modulation.tex rename to 431-Electronique_transmission/Cours/chap2.tex diff --git a/451-Signal_Image/Cours/filtrage.tex b/451-Signal_Image/Cours/chap3.tex similarity index 100% rename from 451-Signal_Image/Cours/filtrage.tex rename to 451-Signal_Image/Cours/chap3.tex diff --git a/451-Signal_Image/Cours/estimateur.tex b/451-Signal_Image/Cours/chap4.tex similarity index 100% rename from 451-Signal_Image/Cours/estimateur.tex rename to 451-Signal_Image/Cours/chap4.tex