diff --git a/421-Controle_processus/Cours/CAN.png b/421-Controle_processus/Cours/CAN.png new file mode 100644 index 0000000..0efe485 Binary files /dev/null and b/421-Controle_processus/Cours/CAN.png differ diff --git a/421-Controle_processus/Cours/Cours.docx b/421-Controle_processus/Cours/Cours.docx new file mode 100644 index 0000000..1cc410b Binary files /dev/null and b/421-Controle_processus/Cours/Cours.docx differ diff --git a/421-Controle_processus/Cours/Cours.dvi b/421-Controle_processus/Cours/Cours.dvi new file mode 100644 index 0000000..4675eb1 Binary files /dev/null and b/421-Controle_processus/Cours/Cours.dvi differ diff --git a/421-Controle_processus/Cours/Cours.pdf b/421-Controle_processus/Cours/Cours.pdf new file mode 100644 index 0000000..1def390 Binary files /dev/null and b/421-Controle_processus/Cours/Cours.pdf differ diff --git a/421-Controle_processus/Cours/Cours.tex b/421-Controle_processus/Cours/Cours.tex new file mode 100644 index 0000000..236af83 --- /dev/null +++ b/421-Controle_processus/Cours/Cours.tex @@ -0,0 +1,2119 @@ +% Relu jusqu'au 1.4.1. 12.10.14. AA +% Relu jusqu'au 2.3. 28.10.14. AA + +\documentclass{book} +\input{../../preambule/preambule} +\renewcommand{\nomentete}{UE 421 : Contrôle de processus} +\renewcommand{\thesection}{\arabic{section}} +\title{\nomentete} + + +\begin{document} + +\maketitle +\tableofcontents + + +\chapter{Echantillonnage des signaux et transformée en z} + +\section{Introduction : positionnement du problème} + +On va s'intéresser aux signaux analogiques vus comme des fonctions réelles + +\[x : t \in \R \rightarrow x(t) \in \R\] + +Les processus évoluent continûment dans le temps.\\ + +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\sbEntree{E} +\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{dfn} +Un échantillonnage idéal à la période d'échantillonnage $T_e$ est représenté par : + +\begin{figure}[h!] +\centering +\begin{circuitikz} +\draw (0,0) node[above]{$u(t)$} to [cspst,l=$T_e$](2,0) node[above]{$u^*(t)$}; +\end{circuitikz} +\caption{Échantillonnage idéal} +\end{figure} + +\[ +u^*(t) = +\left\{ +\begin{array}{ll} +u(k.T_e)=u_k & \si t =k.T_e \\ +0 & \si t\neq k.T_e +\end{array} +\right. +\] +\end{dfn} + +\subsection*{Peigne de Dirac} +\begin{dfn} +On définit le peigne de Dirac par : \[p(t)=\sum_{k\in\mathbb{N}}\delta_0(t-k.T_e)\] +\end{dfn} + +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{dfn} +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{dfn} + +\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{dfn} +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{dfn} + +\subsection*{Théorèmes importants} +\begin{multicols}{2} +\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} +\end{multicols} + +\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}$. + +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\begin{axis}[ + xlabel=$\omega$, + xmin=-2, + xmax=2, + xtick={-2,-1,0,1,2}, + xticklabels={$-4\frac{\pi}{T_e}$,$-2\frac{\pi}{T_e}$,$0$,$2\frac{\pi}{T_e}$,$4\frac{\pi}{T_e}$}, + ylabel=$|F(j\omega)|$, + ytick={0}, + axis x line*=middle, + axis y line*=middle + ] + \addplot[red,mark=none,smooth,samples=50] {gauss(0,0.5)}; + \addplot[blue,mark=none,smooth,samples=50] {gauss(1,0.5)}; + \addplot[blue,mark=none,smooth,samples=50] {gauss(-1,0.5)}; +\end{axis} +\end{tikzpicture} +\caption{Exemple d'un spectre périodique} +\end{figure} + +\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}} \] + +\chapter{Fonctions de transfert en z} + +Rappel : filtre analogique linéaire + +\[ e(t) \rightarrow \boxed{G(p)} \rightarrow s(t) \] +\[ s(t) = g(t)*e(t) \] +\[ S(p) = G(p) E(p) \] + + + +\section{Premières propriétés} + +\begin{thm} +Si on applique un échantillonnage en entrée de e(t), +\[s(t) = g(t) * e^*(t) \] +\begin{enumerate} +\item $s^*(t) = g^*(t) * e^*(t)$ 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{dem} +\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{dem} + +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{dem} +\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{dem} + +\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{dfn}[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{dfn} + +\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 demi-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é.} + +\chapter{Calcul de correcteurs en temps discret} + +\section{Le correcteur PID Proportionnel - Intégral - Dérivée} + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{pid.png} +\caption{Correcteur PID} +\end{figure} + +Le PID se traduit donc théoriquement par : +\[ C(p) = K_p ( 1 + \frac{1}{T_ip} + T_dp ) \] + +En pratique, on considère plutôt : +\[ C(p) = K_p ( 1 + \frac{1}{T_ip} + \frac{T_dp}{1+\epsilon _p})\] +où $\epsilon < \frac{T_d}{10^N}$, avec $N>>10$ + +\begin{align*} +U(p) & = C(p) \epsilon(p) \\ +& = K_p \epsilon(p) + \frac{1}{T_ip} \epsilon(p) + T_dp\epsilon(p) \\ +u(t) & = K_p ( \epsilon (t) + \frac{1}{T_i} \int_0^t\epsilon(\tau)d\tau + T_d \frac{d\epsilon(t)}{dt} +\end{align*} + +Avec $t = kT_e, u_k = u(kT_e), \epsilon_k = \epsilon(kT_e)$ +\begin{align*} +u_k & = K_p \epsilon_k + \frac{K_p}{T_i} \int_0^{kT_e} \epsilon (\tau) d\tau + K_pT_d \frac{\epsilon_k - \epsilon_{k-1}}{T_e} \\ +& \text{ Or, } \int_0^{kT_e} \epsilon(\tau)d\tau \approx \sum_{j=0}^k \epsilon_jT_e \\ +u_k &= K_p \epsilon_k + \frac{K_pT_e}{T_i} \sum_{j=0}^k \epsilon_j + \frac{K_pT_e}{T_i}(\epsilon_k-\epsilon_{k-1}) \quad (1) +\end{align*} +où $K_p, T_i, T_d$ sont trois paramètres à ajuster pour garantir stabilité en performances en boucle fermée. + +Soit $U(z) = Z[u_k], \epsilon(z) = Z[\epsilon_k]$ +\begin{align*} +U(z) & = K_p ( \epsilon(z) + \frac{T_e}{T_i}\frac{z}{z-1}\epsilon(z) + \frac{T_d}{T_e}(1-z^{-1})\epsilon(z) ) \\ +\text{ d'où } C(z) & = \frac{U(z)}{\epsilon(z)} = K_p ( 1 + \frac{T_e}{T_i}\frac{z}{z-1} + \frac{T_d}{T_e}(1-z^{-1})) +\end{align*} + +Remarque : la loi de commande (1) n'est pas appropriée pour une implémentation en temps réel, car le terme $\sum_{j=0}^k \epsilon_j$ est difficile à manipuler. + +On s'intéresse donc plutôt à : + +\[ +u_k - u_{k-1} = K_p ( \epsilon_k - \epsilon_{k-1} ) + \frac{K_pT_e}{T_i} \epsilon_k + \frac{K_pT_d}{T_e}(\epsilon_k - 2\epsilon_{k-1} + \epsilon_{k-2}) +\] + +Méthodes de réglage du PID : +\begin{itemize} +\item méthodes graphiques, réglage des marges de gain et de phase, bande passante, ..., sur le diagramme de Bode +\item méthodes empiriques, mais la méthode de Takahashi\footnote{À savoir appliquer, voir polycopié} ne s'applique ni aux systèmes instables, ni aux systèmes oscillants. +\end{itemize} +\medskip + +Les effets des composantes P, I et D sont similaires à ceux dans le cas analogique. +\begin{itemize} +\item l'action P augmente la bande passante, donc la rapidité du système, mais dégrade la stabilité. Une amplitude de commande élevée conduit alors à une saturation. +\item l'action I augmente la précision, dégrade la rapidité et la stabilité. Elle est peu robuste aux perturbations basses fréquences (une perturbation constante sera intégrée). +\item l'action D augmente la rapidité et la bande passante. Elle permet d'améliorer les marges de stabilité mais amplifie les bruits hautes fréquences (notamment les bruits de capteurs) +\end{itemize} +\medskip + +Conclusion : il faudra combiner judicieusement ces actions en fonction du système, des capteurs et des performances requises. + +\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. + +\newpage +\textbf{À savoir pour le partiel} +\begin{itemize} +\item Transformées en $z$ et ses propriétés +\item Tous les résultats sur les filtres linéaires numériques +\item Méthode d'obtention des transformées en $z$ d'un système discrétisé +\item Définitions stabilité, critères algébriques pour la caractériser (connaître Routh-Hurwitz, savoir appliquer Jury) +\item Réglage d'un correcteur PID analogique, savoir passer en TD (Euler, Tustin, méthode de correspondance pour le zéro) +\item Transformation en $w$ +\item Correcteur RST +\item Règle des retards relatifs +\item Règles de rejet de la perturbation, conséquence sur le polynôme $R$ +\item Être en mesure de déterminer les degrés de polynômes R et S pour résoudre un problème : technique de simplification de pôles / zéros, introduction de polynôme auxiliaire +\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\\ + +On appelle é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 équation d'observation du système $(\Sigma)$ : +\[ y(t) = h(x(t),u(t),t) \quad \text{(équation algébrique)} \] + +Un 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 + +\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{Schéma-bloc :} cas linéaire stationnaire + +Insérer schéma bloc + + +\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} +\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} +\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) + \] + + +\subsection{Quelques propriétés de base, valables à temps continu ou discret} + +\subsubsection{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 + +\begin{align*} +x(t) & = Tz(t) \\ +\dot{x}(t) & = T\dot{z}(t) +\end{align*} +\begin{align*} +& \left\{ +\begin{array}{ll} +T\dot{z}(t) & = AT(t)+Bu(t) \\ +y(t) & = CTz(t)+Du(t)) +\end{array} +\right. \\ +& \left\{ +\begin{array}{ll} +\dot{z}(t) & = T^{-1}ATz(t) + T^{-1}Bu(t) \\ +y & = CT z(t) + Du(t) +\end{array} +\right., z(0) = T^{-1}x_0 \\ +& \left\{ +\begin{array}{ll} +\dot{z}(t) & = \tilde{A}z(t) + \tilde{B}z(t) \\ +y & = \tilde{C}z(t) + Du(t) +\end{array} +\right. +\end{align*} + +D est invariant par changement de coordonnées régulier ($x(t) = Tz(t)$) + +Il existe une infinité de modèles d'état pour un même système (linéaire et stationnaire). + +\paragraph{Remarque} voir plus bas quelques changement de coordonnées vers des formes d'état canoniques. + +\subsection{Modèle d'état pour quelques associations de systèmes (TD1)} + +Soient +\begin{align*} +(S_1) & \left\{ +\begin{array}{ll} +\dot{x}_1 & = A_1x_1 + B_1u_1 \\ +y_1 & = C_1 x_1 + D_1 u_1 +\end{array} +\right. \\ +(S_2) & \left\{ +\begin{array}{ll} +\dot{x}_2 & = A_2x_2 + B_2u_2 \\ +y_2 & = C_2 x_2 + D_2 u_2 +\end{array} +\right. +\end{align*} + +Association en série (schéma) + +\section{Solution de l'équation d'état} + +\subsection{Exponentiel d'une matrice} + +\begin{dfn} +Soit $\K = \R \ou \C$. +\[ \forall A \in \K^{n\times n}, e^A \in \K^{n\times n} \et e^A = \sum_{k=0}^{\infty} \frac{A^k}{k!} \] +On admet la convergence de la série. +\end{dfn} + +\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 \[ \si AB = BA, \alors e^{A+B} = e^A e^B = e^Be^A \] +\end{enumerate} +\end{prop} + + +\paragraph{Théorème} 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 +\intertext{où $C$ est un contour fermé du plan complexe contenant $Spec(A)$ (valeurs propres de A)} +\intertext{Soit $P_A$ le polynôme caractéristique de $A$} +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 \avec P_A^{(0)}(s) = P_A(s) \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}$ + +\paragraph{Théorème} Soit $A\in \K^{n\times n}$ et $\Psi_0(t)...\Psi_{n-1}(t)$ définis précédemment. + +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. + +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*} + +\subsection{Cas analogique} + +\[ (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 \] + +\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 \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} + +\subsection{Cas discret} +\[ (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. +\] + +\[ +\begin{array}{lll} +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 \\ +& x_k & = A_d^k x_0 + \sum_{j=0}^{k-1}A_j^{k-1-j}B_du_j +\end{array} +\] + +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} + +Remarque : si $x(t)$ ou $x_k$ connu, +\[y(t) = Cx(t) + Du(t) \] +\[y-k = C_dx_k + d_du_k \] + +\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{dfn}[Cas analogique] +Le système $(S)$ est dit commandable si \[\forall x(t=t_0)=x_0 \in \K^N \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$. +\end{dfn} + +\begin{dfn}[Cas discret] +Le système $(S_d)$ est commandable si \[\forall x_d \in \K^n \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 $S_d$ de l'état de $x_d$ pour $k=0$ à $x_f$ pour $k=n$. +\end{dfn} + +\begin{dfn}[analogique ou discret] +On appelle matrice de commandabilité (dite de Kalman), la matrice notée (obtenue par concaténation) +\[ C(A,B) = [B \quad AB \quad A^2B \dots A^{n-1}B] \in \K^{n \times n} \] +\end{dfn} + +\begin{thm} Cas analogique ou discret : \\ + +Le système $(S)$ est commandable si et seulement si (matrice de rang plein) +\[ rang( C(A,B) = n )\] + +Le système $(S_d)$ est commandable si et seulement si +\[ rang( C(A_d,B_d) = n )\] + +\end{thm} + +\begin{prop}[Corollaire spécifique aux systèmes monovariables] +Le systèmes $(S)$ ou $(S_d)$ est commandable si et seulement si +\[ det (C(A,B)) \neq 0 \quad (\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} = \R^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$. + +Dire que $Im\{A_d^{k-1-j}B_d\}_{j=0...n-1} = \K^n \Leftrightarrow rang(C(A_d,B_d)) = n$ +\end{proof} + +\begin{prop} +Soit $x_d\in\K^n, x_f\in\K^n$, +\[x_f-A_d^nx_d = [B \quad AB \dots \quad A^{n-1}b][u_{n-1} \dots u_0]^T\] + +Si $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$. +\end{prop} + +\subsection{Observabilité} + +\begin{dfn} +Le système $(S)$ est observable si $\forall x_0 \in \R^n$ pour $t=t_0$, il est possible de déterminer cet état uniquement en se servant de l'entrée $u(t)$ ou $u_k$ et de la sortie $y(t)$ ou $y_k$. +\end{dfn} + +\begin{dfn} +On appelle matrice d'observabilité (dite de Kalman), la matrice +\[ O(A,C) = \left[ \begin{array}{c} +C \\ +CA \\ +\vdots \\ +CA^{n-1} +\end{array} \right] +\in \K^{n\times n} +\] +\end{dfn} + +\begin{thm} +Le systèmes $(S)$ ou $(S_d)$ est observalble si et seulement si +\[ rang(O(A,C)) = n \quad (ou rang(O(A_d,C_d)) = n \] +\end{thm} + +\begin{prop}[Corollaire] +\[rang(O(A,C)) = n \Leftrightarrow det(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(O(C,A))=n$ +\end{proof} + + +\begin{dfn} +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 e^{\tau A} BB^T e^{\tau A^T} d\tau = W_c(t_0,t_1)^T \geq 0 \] +\end{dfn} + +\begin{thm} +Le système $(S)$ 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} +a) Si $W_c$ inversible, alors $\dot{x}=Ax+Bu$ (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*} + +b) Si $\dot{x}=Ax+Bu$ commandable, alors $W_c$ inversible. Montrons que si $W_c$ non inversible, alors $\dot{x}=Ax+Bu$ 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 & = 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$ non commandable. +\end{proof} + +\begin{prop}[asymptotique du Gramien] +$W_c(0,\infty)$ solution de l'équation de Lyapumov $AP + PA^T+BB^T=0$ + +Gramien d'observabilité : +\[W_o(t_0,t_1) = \int_{t_0}^{t_1}e^{A^Tt}C^TCe^{At}dt \] +$W_o(0,\infty)$ solution de $A^TP + PA + C^TC = 0$ +\end{prop} + +\section{Stabilité} + +\emph{Voir polycopié} + +\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} + +\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}= \mat{\lambda_1 & 1}{& \lambda_1}{& &\lambda_1} +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{Stabilisation 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{dfn} +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{dfn} + +\subsection*{Schéma bloc :} + +\subsection*{Mise en équation :} +\[ (S) : +\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*} + +\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 : } $(S)$ est commandable, i.e. $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(\ld) & = \prod_{i=1}^n(\ld-\ld_i^d) \\ +& = \ld^n + \alpha_{n-1}\ld^{n-1} + ... + \alpha_1\ld + \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}}(\ld) & = det(\ld1_n-A_{bf}) \\ +& = det(\ld 1_n - A - BK) \\ +& = \Pi_d(\ld) +\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(\ld)$ et $P_{a_{bf}}(\ld)$ pour obtenir les $n$ équations. + +\subsubsection*{Obtention de $K$ à partir de la forme canonique de commandabilité} + +$\exists M \in \K^{n\times n} $ inversible 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}}}(\ld) & = det(\ld1_n - \tilde{A_{bf}}) \\ +& = \ld^n + (a_{n-1}-\tilde{k}_{n-1})\ld^{n-1} + \dots + (a_0-\tilde{k}_0) +\end{align*} + +Rappel : si $P_A(\ld) = det (\ld1_n -A)$, $ P_{T^{-1}AT} = det(T^{-1}) P_A(\ld) det(T)$. + +En identifiant terme à terme $ P_{\tilde{A_{bf}}}(\ld)$ avec $\Pi_d(\ld)$, 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*{Autre algorithme : formule d'Ackerman} +\[ K = [0\dots0,1].C(A,B)^{-1} \quad \avec \quad C(A,B) = [B \quad AB \quad ... \quad A^{n-1}B] \] +Remarque : il n'y a pas besoin de calculer l'inverse de $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. + +\[C(A,B)^{-1} = \mat{}{}{* & \dots & *} = \frac{1}{det(C(A,B))} \mat{&&*}{&&\vdots}{&&*}^T\] + +\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} + +\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{dfn} +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{dfn} + +\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 $\hy=C\hx(t) +Du(t)$, donc $y-\hy = C\epsilon_x$ +\[\dot{\epsilon_x}(t) = (A-LC)\epsilon_x(t)\] + +$\epsilon_x(0) = x(0) - \hx(0) = x_0 - \hx_0$ avec $x_0$ inconnu et $\hx_0$ choisi arbitrairement par l'utilisateur. + +\[\epsilon_x(t) = e^{(A-LC)t}(x_0-\hx_0)\] + +$A-LC$ : dynamique d'observation. + +Si les valeurs propres de $A-LC$ sont à partie réelle strictement négative, alors \[\limti \epsilon_x(t) = 0 \quad \text{i.e.} \quad \limti \hx(t) = x(t)\] + +Ainsi, on se donne un polynôme caractéristique désiré pour la dynamique d'observation +\[ \Pi_o(\ld) = \Pi_{i=1}^n (\ld-\ld_i^o) \] + +avec $\{\ld_j\}_{j=1..n}$ auto-conjugué (stable par conjugaison) et $\forall j, Re(\ld_j)<0$ + +\[ \Pi_o(\ld) = \ld^n + \sum_{i=0}^{n-1} \gamma_i \ld^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}(\ld) = det (\ld 1_n - (A-LC))$ avec ceux de $\Pi_o(\ld)$. + +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{\hx} = A\hx + Bu + L(y-\hy)$ et $\hy = C\hx$. + +Posons $\hx_0$ tel quel $\hx = T\hx_0$ +\begin{align*} +& \left\{ +\begin{array}{ll} +T\dot{\hx}_0 & = AT\hx_0 + Bu + L(y-\hy) \\ +\hy & = CT\hx + Du +\end{array} +\right. \\ +\Leftrightarrow & \left\{ +\begin{array}{ll} +\dot{\hx}_0 & = A_0\hx_0 + B_0u + T^{-1}L(y-\hy) \\ +\hy & = C_0\hx + 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}(\ld) = \ld^n + (a_{n-1}\tilde{l}_{n-1})\ld^{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(\ld)$ avec $P_{A-LC}(\ld)$ : $\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{\hx} &= Ax + Bu + L(y-\hy)\\ +\hy & = C\hx+Du +\end{array} +\right. +\] +\[u(t) = K\hx(t) + \eta e(t)\] +Correcteur dynamique par retour de sortie avec la structure observateur - retour d'état sur l'état reconstruit. + +\begin{align*} +\dot{\hx} & = A\hx + BK\hx + \eta Be + LC(x-\hx) \\ +& = (A+BK-LC)\hx + LCx + \eta BE \\ +& = (A+BK-LC)\hx + L(y-DK\hx-\eta De) + \eta Be \\ +& = (A+BK-LC-LDK)\hx + (B-LD)\eta e + Ly \\ +& = K_A\hx + K_{Be} e + Ly \\ +u & = K\hx + \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} + +\begin{proof} + +\end{proof} + +\section{Discrétisation} + +\end{document} diff --git a/421-Controle_processus/Cours/pid.png b/421-Controle_processus/Cours/pid.png new file mode 100644 index 0000000..ceded14 Binary files /dev/null and b/421-Controle_processus/Cours/pid.png differ diff --git a/421-Controle_processus/Cours/polesenz.jpg b/421-Controle_processus/Cours/polesenz.jpg new file mode 100644 index 0000000..faeda1f Binary files /dev/null and b/421-Controle_processus/Cours/polesenz.jpg differ diff --git a/421-Controle_processus/README.md b/421-Controle_processus/README.md new file mode 100644 index 0000000..dbba70a --- /dev/null +++ b/421-Controle_processus/README.md @@ -0,0 +1,2 @@ + - Le cours a été rédigé en 2015, en cours de révision en 2018. + - Les TD et TP ont été rédigé en 2014/2015 . diff --git a/421-Controle_processus/TD1/TD1.pdf b/421-Controle_processus/TD1/TD1.pdf new file mode 100644 index 0000000..37ca748 Binary files /dev/null and b/421-Controle_processus/TD1/TD1.pdf differ diff --git a/421-Controle_processus/TD1/TD1.tex b/421-Controle_processus/TD1/TD1.tex new file mode 100644 index 0000000..666f971 --- /dev/null +++ b/421-Controle_processus/TD1/TD1.tex @@ -0,0 +1,226 @@ +% Relu 12.10.14. AA + +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TD1 : Systèmes échantillonés} +\renewcommand{\nomentete}{UE411 - \nomTD} + +\begin{document} + +\titre{\nomTD} + +\subsection*{Exercice 1} +\begin{itemize} +\item Montrer que $U(z) = \frac{z}{z-1}E(z)$, avec $u_k = \sum_{j=0}^{k} e_j$ et $Z(e_j) = E(z)$ + +\begin{align*} +u_{k-1} & = \sum_{j=0}^{k-1}e_j \\ +u_k & = e_k+u_{k-1} \\ +\intertext{Donc en appliquant la transformée en z et en utilisant le théorème du retard,} +U(z) & = E(z) +z^{-1}U(z) \\ +U(z) & = \frac{z}{z-1}E(z) +\end{align*} + +\item Montrer que $Z\{ke_k\}=-z\frac{d}{dz}(E(z))$ +\begin{align*} +-z\frac{d}{dz}(E(z))&= -z\frac{d}{dz}(\skzi e_kz^{-k})\\ +&=-z \skzi e_k(-k)z^{-k-1}\\ +&=\skzi ke_kz^{-k}\\ +&=Z\{ke_k\}\\ +\end{align*} +\end{itemize} + +\subsection*{Exercice 2 :} +\noindent Méthode : on effectue la transformée inverse pour obtenir le signal temporel. Puis on l'échantillonne avant de passer à sa transformée en Z, où l'on obtient une suite géométrique que l'on simplifie.\\ + +\begin{enumerate} +\item \[Y(p)= L[y(t)] = \frac{1}{p(p+a)} = \frac{\alpha}{p}+\frac{\beta}{p+a}\] + +On identifie \[\alpha=\frac{1}{a} \text{ et } \beta=\frac{-1}{a} \] + +donc par transformée inverse de Laplace, \[y(t)=\frac{1}{a}(1-e^{-at})\mathbf{1}(t)\] + +Puis on échantillonne avec $t=k.t_e$ avec $k \in\mathbb{N}$, et on a $y_k=\frac{1}{a}(1-e^{-a.k.T_e})$\\ +On a donc : +\begin{align*} +Z\{y_k\} &= Z\{\frac{1}{a}\} - Z\{\frac{1}{a}(e^{-aT_e})^k\}\\ +&= \frac{1}{a}(\frac{z}{z-1}-\frac{1}{1-e^{-aT_e}z^{-1}})\\ +Y(z) &= \frac{1}{a}(\frac{z}{z-1}-\frac{z}{z-e^{-aT_e}}) +\end{align*} + +\item On pose $Y(p)= \frac{a}{p^2+a^2} = L\{\sin(at)\}$:\\ +On a donc, \[y_k=\sin(akT_e) = \frac{e^{jakT_e}-e^{-jakT_e}}{2j}\] +Or , \[Z\{e^{jakT_e}\}=\frac{1}{1-e^{jaT_e}z^{-1}}=\frac{z}{z-e^{jaT_e}}\] +et , \[Z\{e^{-jakT_e}\}=\frac{1}{1-e^{-jaT_e}z^{-1}}=\frac{z}{z-e^{-jaT_e}}\] +d'où : +\begin{align*} +Y(z) &= \frac{z}{2j}(\frac{1}{z-e^{jaT_e}}-\frac{1}{z-e^{-jaT_e}})\\ +&=\frac{z}{2j}(\frac{e^{jaT_e}-e^{-jaT_e}}{z^2-z(2\cos(aT_e)+1)})\\ +Y(z) &=\frac{z\sin(aT_e)}{z^2-z(2\cos(aT_e)+1)} +\end{align*} + +\item On procède de même que ci-dessus avec $Y(p)= \frac{p}{p^2+a^2} = L\{\cos(at)\}$:\\ +On a donc, \[y_k=\cos(akT_e) = \frac{e^{jakT_e}+e^{-jakT_e}}{2}\] + +D'où +\begin{align*} +Y(z) &=\frac{z}{2}(2z-\frac{e^{jaT_e}-e^{-jaT_e}}{z^2-z(2\cos(aT_e)+1)}) \\ +Y(z) &=\frac{z(z-\cos(aT_e))}{z^2-z(2\cos(aT_e)+1)} +\end{align*} + +\item Ici, les échantillons sont définis par : +\[y_0=0 ,y_1=1, y_2=-1 \text{ et } \forall k > 2, y_k=0\] +On a alors : +\begin{align*} +Z\{y_k\} &= \skzi y_k.z^{-k}\\ +Y(z) &= z^{-1} - z^{-2} +\end{align*} + +\item $\forall k \in \N, y_{2k} = 0 \et y_{2k+1} = 1$. Ainsi, +\begin{align*} +Z\{y_k\} & = \skzi 1.z^{-(2k+1)} \\ +& = z^{-1} \skzi z^{-2k} \\ +& = \frac{z}{z^2-1} +\end{align*} + +\item $forall l \in \N, y_k = (-1)^{k+1} \mathbf{1}_k$. Ainsi, +\begin{align*} +Z\{y_k\} & = \skzi (-1)^{k+1}z^{-k} \\ +& = - \skzi (-1)^k(z^{-1})^k \\ +& = - \frac{1}{1+z^{-1}} \\ +& = - \frac{z}{z+1} +\end{align*} +\end{enumerate} + +\subsection*{Exercice 3 :} +\noindent Méthode : dans le cas général, on réécrit $\frac{Y(z)}{z}$ en décomposant en éléments simples puis on repasse Y(z) sous forme de série pour effectuer la transformée en Z inverse. De plus, pour les fractions rationnelles dont le dénominateur est d'ordre deux ou plus, on utilise la propriété de multiplication par une variable d'évolution : +\[TZ : \quad k^n x[k] \rightarrow (-z \frac{d}{dz})^n X(z) \] \\ + +\begin{enumerate} +\item Pour $h > 0$ et $a \in \mathbb{R^*}$ +\begin{align*} +Y(z) &= \frac{z}{z-a^h}\\ +&= \frac{1}{1-\frac{a^h}{z}}\\ +&= \skzi (a^h.z^{-1})^k\\ +Y(z) & = Z\{(a^h)^k\} +\end{align*} +\bigbreak + +\item $Y(z) = \frac{z+1}{(z-3)^2}$\\ +On pose \[\frac{Y(z)}{z}=\frac{z+1}{z(z-3)^2}=\frac{\alpha}{z}+\frac{\beta}{z-3}+\frac{\gamma}{(z-3)^2}\] +On identifie ensuite $\alpha = \frac{1}{9}$, $\gamma =\frac{4}{3}$ et pour $\beta$ on peut multiplier l'égalité par $(z-3)$ puis faire tendre $z$ vers $+\infty$ pour obtenir que $0 = \alpha + \beta$. D'où $\beta = \frac{-1}{9}$, et ainsi : +\[Y(z) = \frac{1}{9} - \frac{1}{9}\frac{z}{z-3}+\frac{4}{3}\frac{z}{(z-3)^2}\] +La transformée inverse donne alors en utilisant la propriété de multiplication : +\[y_k = \frac{1}{9}.\delta_k - \frac{1}{9}.3^k.\mathbf{1}_k+\frac{4}{3}.k.3^{k-1}.\mathbf{1}_k\] +\bigbreak + +\item $Y(z) =\frac{z+3}{z^2-3z+2}= \frac{z+3}{(z-1)(z-2)}$ +On pose \[\frac{Y(z)}{z}=\frac{\alpha}{z}+\frac{\beta}{z-1}+\frac{\gamma}{z-2}\] +On identifie ensuite $\alpha = \frac{3}{2}$, $\gamma =5$, $\beta = -4$, d'où : +\[Y(z) = \frac{3}{2} - 4\frac{z}{z-1}+5\frac{z}{z-2}\] +La transformée inverse donne alors : +\[y_k = \frac{3}{2}.\delta_k - 4.\mathbf{1}_k +5.2^k.\mathbf{1}_k\] +\end{enumerate} + +\subsection*{Exercice 5 :} +L'asservissement analogique considéré est le suivant, où $H(p) = \frac{C}{p(1+0.2p)}$ et $B_0(p) = \frac{1-e^{-T_ep}}{2}$, avec $T_e=0.2s$ et $C=5rad.s^{-1}$. +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\sbEntree{E} + +\sbComp{comp}{E} +\sbRelier[$E(z)$]{E}{comp} + +\sbBloc{cna}{CNA, BOZ}{comp} +\sbRelier[$\epsilon(z)$]{comp}{cna} + +\sbBloc[3]{sys}{H(p)}{cna} +\sbRelier[$U(p)$]{cna}{sys} + +\sbSortie[3]{S}{sys} +\sbRelier[$Y(p)$]{sys}{S} + +\sbDecaleNoeudy[4]{S}{R} +\sbBlocr[8]{can}{CAN}{R} +\sbRelieryx{sys-S}{can} +\sbRelierxy{can}{comp} + +\end{tikzpicture} +\end{figure} + +\begin{enumerate} +\item Par propriété du cours, on a : +\[T(z) = (1-z^{-1}).Z\{^*L^{-1}\{\frac{H(p)}{p}\}\}\] +On commence par poser $A(p)=\frac{H(p)}{p}=L\{a(t)\}$ et $a_n = a(n.T_e)$, donc + +\[T(z) = (1-z^{-1}).Z\{a_n\}\] +On a alors : +\[A(p) = \frac{C}{p^2(1+0.2p)} = C(\frac{\alpha}{p^2}+\frac{\beta}{p}+\frac{\gamma}{1+0.2p})\] +On trouve, $\gamma = 0.04$, $\alpha = 1$ et $\beta=-0.2$. Donc en repassant dans le domaine réel on a: +\[A(t) = C(t-0.2+0.2e^{-5t})u(t)\] +Donc en échantillonnant avec $a_n=A(nT_e)$ : +\[a_n=A(nT_e)=C(n.T_e-0.2 + 0.2e^{-5nT_e})\] +Ainsi, avec la transformée en Z on a : +\[Z\{a_n\}=C(T_e\frac{z}{(z-1)^2}-0.2\frac{z}{z-1}+0.2\frac{z}{z-\chi}) \text{ avec } \chi = e^{-5T_e}\] +d'où avec la formule initiale, on obtient : +\begin{align*} +T(z) &= \frac{z-1}{z}Z\{a_n\}\\ +&= C\frac{z-1}{z}(\frac{T_ez}{(z-1)^2}-\frac{0.2z}{z-1}+\frac{0.2z}{z-\chi})\\ +&= C(\frac{T_e}{z-1}-0.2+0.2\frac{z-1}{z-\chi})\\ +&= C.\frac{T_e(z-\chi)-0.2(z^2-(1+\chi)z+\chi)+0.2(z^2-2z+1)}{z^2-(1+\chi)z+\chi}\\ +T(z) &= C.\frac{(T_e+0.2(1+\chi)-0.4)z +(-\chi T_e-0.2\chi+0.2)}{z^2-(1+\chi)z+\chi} +\end{align*} +\medbreak +On pose :\begin{itemize} +\item $b_1 = C(T_e+0.2(1+\chi)-0.4)$ +\item $b_0 = C(0.2-\chi T_e-0.2\chi)$ +\item $a_1 = -(1+\chi)$ +\item $a_0 = \chi$ +\end{itemize} +\bigbreak +\noindent Ainsi, on a : +\[T(z) = \frac{b_1z+b_0}{z^2+a_1z+a_0}=\frac{B(z)}{A(z)}\] +\medbreak +\noindent Remarque : + +Les pôles analogiques sont : $p_1=0$ , $p_2 = -5$. + +Les pôles discrétisés sont : $p_{z_1}=1$ et $p_{z_2} = \chi$. + +(On peut le vérifier avec la relation $p_{z_i}=e^{p_iT_e}$.) + +Les zéros du temps discret dépendent de $T_e$.\\ + +\item On a donc en boucle fermée : +\begin{align*} +Y(z) = \frac{T(z)}{1+T(z)}E(z)&=\frac{B(z)}{A(z) + B(z)}E(z)\\ +&=\frac{b_1z+b_0}{z^2+(a_1+b_1)z+a_0} =F(z) E(z) +\end{align*} +Les zéros de T(z) sont aussi les zéros de F(z).\\ + +D'autre part, on cherche $G(z) = \frac{\epsilon (z)}{E(z)}$. Or : +\begin{align*} +\epsilon (z) &= E(z) - Y(z)\\ +&= (1-F(z))E(Z)\\ +&=\frac{1}{1+T(z)}E(z)\\ +&=\frac{A(z)}{A(z)+B(z)}\\ +&=G(z) E(z) +\end{align*} + +Ainsi, on a: \[G(z)=\frac{z^2 +a_1z+a_0}{z^2+(a_1+b_1)z+(a_0+b_0)}\] + +\item a -- Déterminons la relation de récurrence entrée-sortie du système en boucle fermée. On a en factorisant par $z^2$: +\[Y(z)=\frac{b_1z^{-1}+b_0z^{-2}}{1+(a_1+b_1)z^{-1}+(a_0+b_0)z^{-2}}E(z)\] +\[Y(z)(1+(a_1+b_1)z^{-1}+(a_0+b_0)z^{-2}) = E(z)(b_1z^{-1}+b_0z^{-2}) \] +d'où, avec la transformée inverse, la relation de récurrence suivante : +\[y_k+(a_1+b_1)y_{k-1}+(a_0+b_0)y_{k-2}=b_1e_{k-1}+b_0e_{k-2}\] + +\noindent b -- Déterminons la réponse à un échelon $E(z) = \frac{z}{z-1}$ : +\[Y(z) = \frac{z}{z-1}\frac{b_1z+b_0}{z^2+(a_1+b_1)z+(a_0+b_0)}\\ +\frac{Y(z)}{z}=\frac{\alpha}{z-1}+\frac{\beta}{z-p_1}+\frac{\alpha}{z-p_2}\] +d'où: +\[y_k = (\alpha+\beta p_1^k+\gamma p_2^k).\mathbf{1}_k\] +\end{enumerate} + + +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TD1/asservissementTD1.png b/421-Controle_processus/TD1/asservissementTD1.png new file mode 100644 index 0000000..5a8c8ce Binary files /dev/null and b/421-Controle_processus/TD1/asservissementTD1.png differ diff --git a/421-Controle_processus/TD2/TD2.pdf b/421-Controle_processus/TD2/TD2.pdf new file mode 100644 index 0000000..086f0c4 Binary files /dev/null and b/421-Controle_processus/TD2/TD2.pdf differ diff --git a/421-Controle_processus/TD2/TD2.tex b/421-Controle_processus/TD2/TD2.tex new file mode 100644 index 0000000..50dfc9c --- /dev/null +++ b/421-Controle_processus/TD2/TD2.tex @@ -0,0 +1,200 @@ +% Relu 12.10.14. AA + +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TD2 : Stabilité} +\renewcommand{\nomentete}{UE411 - \nomTD} + +\begin{document} + +\section*{\nomTD} + +\subsection*{Exercice I : Stabilité d'un asservissement avec retour unitaire} + +On considère l'asservissement analogique où : +\[ H(p) = \frac{C}{p(1+\tau p)} \text{avec } \tau = 0.2 \] + +On place un CNA (BOZ) en amont de $H(p)$ et un CAN dans la boucle de retour. +\begin{enumerate} +\item Pour passer de l'analogique au numérique, on utilise la formule suivante : +\[ T(z) = (1-z^{-1})Z[^*L^{-1}[\frac{H(p)}{p}]] \] +On a donc successivement : +\begin{align*} +A(p) & = \frac{H(p)}{p} = \frac{C/\tau}{p^2(p+1/\tau)} \\ +& = \frac{C}{\tau}(\frac{\alpha}{p} + \frac{\beta}{p^2} + \frac{\gamma}{p+1/\tau}) \\ +& = C (\frac{-\tau}{p} + \frac{1}{p^2} + \frac{\tau}{p+1/\tau}) \\ +a(t) & = C[-\tau+t+\tau e^{-\frac{t}{\tau}}] \\ +a_k & = C[-\tau + kT_e + \tau e^{-\frac{T_e}{\tau}k}] \\ +A(z) & = C[ -\frac{\tau z}{z-1} + \frac{T_e z}{(z-1)^2} + \tau\frac{z}{z-D} ] \text{ où } D = e^{-\frac{T_e}{\tau}} \\ +T(z) & = (1-z^{-1})A(z) \\ +& = \frac{z-1}{z} C[ -\frac{\tau z}{z-1} + \frac{T_e z}{(z-1)^2} + \tau\frac{z}{z-D}] \\ +& = C[ -\tau + \frac{T_e}{z-1} + \frac{\tau(z-1)}{z-D} ] \\ +T(z) & = C \frac{(\tau(1+D)+T_e-2\tau)z + (-D\tau - T_e D + \tau)}{z^2 - (1+D)z + D} +\end{align*} +On pose +\begin{align*} +T(z) & = \frac{b_1 z + b_0}{z^2 + a_1 z + a_0} \\ +& b_1 = C(\tau(D-1) + T_e)\\ +& b_0 = C(\tau(1-D) - T_e D)\\ +& a_1 = -(1+D)\\ +& a_0 =D +\end{align*} + +\item Mise en équation de l'asservissement +\begin{align*} +Y(z) & = \frac{T(z)}{1+T(z)} E(z) \\ +& = \frac{B(z)}{A(z) + B(z)} \text{ avec } T(z) = \frac{A(z)}{B(z)} +\end{align*} + +Le polynôme caractéristique s'écrit : +\begin{eqnarray*} +\Pi(z) & = & B(z) + A(z) \\ +& = & c_2 z^2 + c_1 z + c_0 \\ +& \text{avec } & c_2 = 1 \\ +& & c_1 = a_1 + b_1 = -(1+D) + C(T_e + \tau (D-1)) \\ +& & c_1 = -(1+D) + CT_eD \text{ car ici } \tau = T_e \\ +& & c_0 = a_0 + b_0 = D + C(\tau(1-D) - T_e D) \\ +& & c_0 = D + CT_e(1-2D) +\end{eqnarray*} + + +\item a) Critère de Routh-Hurwitz \\ +Transformation en w : \( z = \frac{1+w}{1-w}, \quad w = \frac{z-1}{z+1} \) \\ + +On réécrit l'équation caractéristique en $w$ : +\begin{eqnarray*} +c_2 (\frac{1+w}{1-w})^2 & + c_1(\frac{1+w}{1-w}) & + c_0 = 0 \\ +C_2 (w^2 + 2w + 1) & + c_1(1-w^2) & + c_0(w^2 -2w+1) = 0 \\ +(c_2-c_1+c_0)w^2 & + 2(c_2-c_0)w & + (c_2+c_1+c_0) = 0 +\end{eqnarray*} + +Tableau de Routh :\\ +\begin{figure}[h!] +\centering +\begin{tabular}{|c|c|c|} +\hline +$w^2$ & $c_2-c_1+c_0$ & $c_2+c_1+c_0$ \\ +\hline +$w$ & $2(c_2-c_0)$ & 0 \\ +\hline +$w^0$ & $c_2+c_1+c_0$ & \\ +\hline +\end{tabular} + +\end{figure} + + +On doit avoir tous les termes de la première colonne positifs : on retrouve le critère de Jury. + + + +\item b) Critère de Jury : +\begin{itemize} +\item $c_2 + c_1 + c_0 > 0$ +\item $c_2 - c_1 + c_0 > 0$ +\item $|c_0| < c_2 \Leftrightarrow -c_2 < c_0 < c_2$ +\end{itemize} + +On traduit ces conditions +\begin{itemize} +\item $c_2 + c_1 + c_0 > 0$ +\begin{align*} +& 1 + (-(1+D) + CT_eD) + (D + CT_e(1-2D)) > 0 \\ +& C ( T_e D + T_e - 2 DT_e ) > 0 \\ +& C (1-D) > 0 \\ +& C > 0 \text{ car } D =e^{-1} < 1 +\end{align*} + +\item $c_2 - c_1 + c_0 > 0$ +\begin{align*} +& 1 - (-(1+D) + CT_eD) + (D + CT_e(1-2D)) > 0 \\ +& 2 + 2D + cT_e(-3D+1) > 0 \\ +& C T_e(1-3D) > -2 -2D \\ +& C < -\frac{2+2D}{1-3D} \text{ car } 3D > 1 +\end{align*} + +\item $-c_2 < c_0 < c_2$ +\begin{eqnarray*} +-1 < & D + CT_e(1-2D) & < 1 \\ +-1 - D < & CT_e(1-2D) & < 1 - D \\ +\frac{-1-D}{T_e(1-2D)} < & C & < \frac{1-D}{T_e(1-2D)} +\end{eqnarray*} +\end{itemize} + +Le critère de Jury aboutit donc à : +\[ \boxed{ 0 < C < \min(-\frac{2+2D}{(1-3D)T_e},\frac{1-D}{(1-2D)T_e}) } \] + +\item On s'intéresse à l'asservissement analogique du même système +\[ Y(p) = \frac{H(p)}{1+H(p)} E(p) \] +L'équation caractéristique conduit à +\begin{align*} +1 + H(p) & = 0 \\ +1 + \frac{C}{p(1+\tau p)} &= 0 \\ +\tau p^2 + p + C &= 0 +\end{align*} +Le système est stable si et seulement si $C>0$.\\ +En analogique, la marge de gain est infinie (la phase n'est jamais égale à $-180^o$. En numérique, le BOZ induit un déphasage qui conduit à une limitation supplémentaire pour $C$ en terme de stabilité. + + +\item Pour approcher le comportement basse fréquence de la chaîne directe de l'asservissement de la figure 1, il faut tenir compte du BOZ. Il faut approximer l'expression de $B_0(p)$. + +\begin{itemize} +\item Avec $\omega << \frac{1}{T_e}$, $e^{-T_ep} \approx 1 - T_ep$ et +\begin{align*} +B_0(p) & = T_e \\ +\tilde{H}(p) & = T_e H(p) = \frac{CT_e}{p(1+\tau p)} +\end{align*} +On revient à la même condition $ C > 0 $. + +\item Suggestion : faire le développement à l'ordre 2 ? + +Avec $e^{-T_e p} \approx 1 - T_ep + \frac{(T_ep)^2}{2}$, +\begin{align*} +B_0(p) & = \frac{T_ep-T_e^2p^2 / 2 }{p}\\ +& = T_e - \frac{T_e^2}{2}p \text{ : non causal} \\ +\tilde{H}(p) & = T_e(1-\frac{T_e}{2}p)\frac{C}{p(1+\tau p)} +\end{align*} +L'équation caractéristique $1+\tilde{H}(p) = 0$ mène à +\begin{align*} +\tau p^2 + p + CT_e(1-\frac{T_e}{2}p) & = 0 \\ +\tau p^2 + (1-C\frac{T_e^2}{2})p + CT_e & = 0 +\end{align*} +L'application du critère de Routh mène à : $0 < C < \frac{2}{T_e^2}$ + +\item Approximation de Padé ($\omega << \frac{1}{2T_e}$) : +\[ e^{-T_ep} = \frac{e^{-\frac{T_e}{2}p}}{e^{\frac{T_e}{2}p}} \text{ et } e^{-\frac{T_e}{2}p} \approx 1 - +\frac{T_e}{2}p \Longrightarrow e^{-T_ep} \approx \frac{1 - \frac{T_e}{2}p}{1 + \frac{T_e}{2}p} \text{ : causal !} \] + +\begin{align*} +B_0(p) & \approx \frac{1-\frac{1 - \frac{T_e}{2}p}{1 + \frac{T_e}{2}p}}{p} \\ +& = \frac{T_e}{1+\frac{T_e}{2}p} \text{ : causal } \\ +\tilde{H}(p) & = \frac{T_e}{1+\frac{T_e}{2}p} . \frac{C}{p(1+\tau p)} +\end{align*} + +L'équation caractéristique $1+\tilde{H}(p)=0$ mène à +\begin{align*} +CT_e + p (1+\frac{T_e}{2}p)(1+\tau p) & = 0 \\ +\tau\frac{T_e}{2}p^3 + (\tau+\frac{T_e}{2})p^2 + p + CT_e &= 0 +\end{align*} + +\begin{figure}[h!] +\centering +\begin{tabular}{|c|c|c|} +\hline +$p^3$ & $\tau \frac{T_e}{2}$ & 1 \\ +\hline +$p^2$ & $\tau + \frac{T_e}{2} $ & $CT_e$ \\ +\hline +$p$ & $1- \frac{CT_e \tau}{2(\tau + \frac{T_e}{2})}$ & 0 \\ +\hline +$p^0$ & $CT_e$ & \\ +\hline +\end{tabular} +\end{figure} + +La condition est donc $C < \frac{2(\tau + T_e/2)}{T_e \tau} = \frac{3}{\tau}$ +\end{itemize} + +\item La discrétisation d'un asservissement en temps continu dégrade la stabilité. +\end{enumerate} + +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TD3/TD3.pdf b/421-Controle_processus/TD3/TD3.pdf new file mode 100644 index 0000000..26b4a69 Binary files /dev/null and b/421-Controle_processus/TD3/TD3.pdf differ diff --git a/421-Controle_processus/TD3/TD3.tex b/421-Controle_processus/TD3/TD3.tex new file mode 100644 index 0000000..a55099f --- /dev/null +++ b/421-Controle_processus/TD3/TD3.tex @@ -0,0 +1,123 @@ +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TD3 : Correcteur des asservissements numériques} +\renewcommand{\nomentete}{UE411 - \nomTD} + +\begin{document} + +\section*{\nomTD} + + +\subsection*{Exercice 1 : Analyse et synthèse par une approche (pseudo-)continue} +On considère la fonction de transfert \[H(p) = \frac{1}{p(1 + \tau p)} \avec \tau = 0,2\] +La période d'échantillonnage est $T_e = 0,2s$ et l'on souhaite régler le correcteur PI pour satisfaire le cahier des charges suivants en boucle fermée : +\begin{itemize} +\item marge de phase de 45 degrés +\item erreur en vitesse $\epsilon_v$ nulle +\end{itemize} + +\begin{enumerate} +\item Synthèse d'un correcteur à temps continu + +\begin{enumerate} +\item On considère le BOZ $B_0(p)=\frac{1-e^{-T_ep}}{p}$ que l'on cherche a approché par un retard pur équivalent : +\begin{align*} +B_0(p) &= \frac{1-e^{-T_ep}}{p}\\ +&= e^{-\frac{T_ep}{2}}\frac{e^{\frac{T_ep}{2}}-e^{-\frac{T_ep}{2}}}{p} +\intertext{Or, le développement limité à l'odre 1 $e^{-T_ep} = 1-T_ep$ donne :} +\tilde{B}_0(p) &= e^{-\frac{T_ep}{2}} \frac{1+\frac{T_ep}{2}- (1-\frac{T_ep}{2})}{p}\\ +& \boxed{\tilde{B}_0(p) = T_e e^{\frac{-T_ep}{2}}} +\end{align*} +\bigbreak + +\item On se propose de régler le correcteur PI en utilisant le tracé de la fonction de transfert en boucle ouverte du système.\\ +Le correcteur a donc la forme : \[C(p) = K_p(1+\frac{1}{T_ip})\] et on pose \[L(p) = \tilde{B}_0(p)H(p) = \frac{T_e e^{\frac{-T_ep}{2}}}{p(1 + \tau p)}\] + +On s'intéresse dans un premier temps à l'erreur en vitesse. On prend donc pour entrée $e(t) = t$ d'où $E(p) = \frac{1}{p^2}$\\ + +On a donc comme écart $\epsilon(p) = \frac{E(p)}{1+L(p)C(p)}$, et on va appliquer le théorème de la valeur finale : +\begin{align*} +\epsilon_v &= \lim_{t \rightarrow \infty}\epsilon(t)\\ +&= \lim_{p \rightarrow 0} p \epsilon(p)\\ +&= \lim_{p \rightarrow 0} p \frac{1}{p^2} \frac{1}{1+L(p)C(p)}\\ +&= \lim_{p \rightarrow 0} \frac{T_ip(1+\tau p)}{T_ip^2(1+\tau p)+T_ee^{\frac{-T_ep}{2}}K_p(1+T_ip)} +&= 0 +\end{align*} +L'erreur statique de vitesse est bien nulle avec ce modèle du retard pur pour le BOZ.\\ + +Intéressons-nous maintenant au réglage du correcteur, on relève le gain lorsque la phase est de -135 degrés et on cherche à annuler ce gain pour imposer le marge de phase à 45 degrés. On relève un gain de -35dB, il faut donc relever le gain de 35dB : +\[20log(K_p) = 25 \Rightarrow K_p = 10^{\frac{25}{20}} = 18\] + +De plus, pour régler $T_i$, on fait en sorte que la phase du correcteur n'influence pas trop celle du système dans la bande passante, donc que la phase du correcteur seul soit à zéro quand celle du système est proche du point critique -1. Il est une bonne approximation de prendre $T_i$ de sorte que $\frac{1}{T_i}$ soit une décade plus tôt que la pulsation de coupure du système ou d'annulation du gain (choix effectué ici). Donc : +\[\frac{1}{T_i} = \frac{\omega_{0dB}}{10} \Rightarrow T_i = \frac{10}{3} = 3.3s\] + +\item On utilise l'approximation $z=e^{pT_e} \approx 1+pT_e$ pour écrire la fonction de transfert en $z$ du correcteur échantillonné, on a donc $p = \frac{z-1}{T_e}$, d'où :\\ +\begin{align*} +C(p)|_{p = \frac{z-1}{T_e}} &= C(z)\\ +&= K_p(1+ \frac{1}{\frac{T_i}{T_e}(z-1)})\\ +&=K_p\frac{z+\frac{T_e}{T_i}-1}{z-1} +\end{align*} + +La fonction de transfert en $z$ du système + BOZ est : +\begin{align*} +T(z) & = (1-z^{-1})Z\{^*L^{-1}\{\frac{H(p)}{p}\}\} \\ +& = \frac{b_1z+b_0}{z^2+a_1z+a_0} \\ +\avec b_0 & = (1-D)\tau - T_eD \\ +b_1 & = T_e + (D-1)\tau \\ +a_0 & = D \\ +a_1 & = -D-1 \\ +D & = e^{-T_e/\tau} +\end{align*} + +\item Déterminons si le système échantillonné est stable si asservi de la sorte (correcteur numérique) :\\ +On peut appliquer le critère de Routh à $1+C(z)T(z)$, avec $T(z)$ la fonction de transfert de l'asservissement échantillonné, CF TD précédent. +\end{enumerate} + +\item Synthèse "pseudo-continue" + +\begin{enumerate} +\item Déterminons la fonction de transfert en $w$ du système échantillonné : +\begin{align*} +T(z)|_{z=\frac{1+w}{1-w}} = \tilde{T}(w) &= \frac{b_1\frac{1+w}{1-w}+b_0}{(\frac{1+w}{1-w})^2 + a_1 \frac{1+w}{1-w} + a_0}\\ +&= \frac{b_1(1-w^2)+b_0(1-2w + w^2)}{(w^2+w+1)+a_1(1-w^2)+a_0(1-2w+w^2}\\ +\end{align*} +\[\boxed{\tilde{T}(w)= \frac{(b_0-b_1)w^2-2b_0w + b_0+b_1}{(1-a_1+a_0)w^2 + 2(1-a_0)w + 1+a_1+a_0}}\] + +\noindent Comment se traduit le cahier des charges pour le système transformé ?\\ +\[ z= \frac{1+w}{1-w} \Leftrightarrow w = \frac{z-1}{z+1} \text{ avec } z= e^{T_ep} \] +La réponse fréquentielle est valable pour $p = j\omega$ avec $\omega \in [0,\frac{\pi}{T_e}]$, donc pour : +\[w = \frac{e^{j\omega T_e}-1}{e^{j\omega T_e}+1} = \frac{2j\sin(\omega \frac{T_e}{2})}{2\cos(\omega \frac{T_e}{2})} = j\tan(\frac{\omega T_e}{2})\] +Ainsi, quand $\omega$ varie de 0 à $\frac{\pi}{T_e}$ alors $w$ varie de 0 à l'infini sur l'axe des imaginaires.\\ +On pose donc $w = j\tilde{\omega}$ et $\tilde{\omega}\in[0;+\infty[$ \\ + +En quoi on répond à la question??? + +\item On va régler ici le correcteur PI en la variable $w$ : +On a $C(w) = K_p(1+\frac{1}{T_iw}$ et $\epsilon(w) = \frac{1}{1+C(w)\tilde{T}(w)}E(w)$\\ +On applique une entrée en rampe $t \rightarrow nT_e \rightarrow \frac{T_ez}{(z-1)^2}$, on a donc : +\begin{align*} +E(w) = E(z)|_{z=\frac{1+w}{1-w}} &= \frac{T_e(1+w)}{(1-w)(\frac{1+w-1+w}{1-w})^2}\\ +&=\frac{T_e(1-{w}^2)}{4{w}^2} +\end{align*} + +Intéressons nous maintenant à l'écart statique en vitesse avec el théorème de la valeur finale: +\begin{align*} +\epsilon_v &= \lim_{z \rightarrow 1} (z-1) E(z)\\ +z \rightarrow 1 &\Leftrightarrow w \rightarrow 0 \text{ car, $z-1 = \frac{2w}{1-w}$}\\ +\epsilon_v &= \lim_{w \rightarrow 0} \frac{2w}{1-w}\epsilon(w)\\ +&= \lim_{w \rightarrow 0} \frac{2w}{1-w}\frac{1}{1+K_p(1+\frac{1}{T_iw}\frac{\beta_2{w}^2+\beta_1 w + \beta_0}{\alpha_2{w}^2+\alpha_1 w + \alpha_0}\frac{T_e(1-{w}^2)}{4{w}^2})}\\ +&= ...\\ +&= 0 +\end{align*} + +Caractérisons maintenant le correcteur en fonction du cahier des charges. Comme précedemment on relève le gain lorsque la phase est à -135 degrés et on a : $K_p = 10^{\frac{10}{20}} = 3.3$ et le choix de $T_i$ est le même fait comme précedemment donc : $T_i = \frac{10}{\tilde{\omega}_{0dB}} = 33.3s$\\ + +\item La transformée en z ainsi, obtenue est : +\begin{align*} +C(z) &= C(w)|_{w = \frac{z-1}{z+1}}\\ +&= K_p(1+\frac{z+1}{T_i(z-1)}\\ +&= \frac{C_p}{T_i}\frac{T_iz+1-T_i}{z-1} +\end{align*} +\end{enumerate} +\end{enumerate} + +\end{document} diff --git a/421-Controle_processus/TD4/TD4.pdf b/421-Controle_processus/TD4/TD4.pdf new file mode 100644 index 0000000..b7fd298 Binary files /dev/null and b/421-Controle_processus/TD4/TD4.pdf differ diff --git a/421-Controle_processus/TD4/TD4.tex b/421-Controle_processus/TD4/TD4.tex new file mode 100644 index 0000000..16bd8cb --- /dev/null +++ b/421-Controle_processus/TD4/TD4.tex @@ -0,0 +1,317 @@ +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TD4 : Correcteur RST} +\renewcommand{\nomentete}{UE421 - \nomTD} + +\begin{document} + +\section*{\nomTD} + + +\subsection*{Exercice 1 : Asservissement par synthèse d'un correcteur RST} +On considère la fonction de transfert: \[G(p) = \frac{1}{p(1+\tau p)}\] + +Rappel : (TD précédent) +\begin{align*} +G(z) & = \frac{B(z)}{A(z)} \\ +& = \frac{b_1z+b_0}{(z-1)(z-D)} \avec D=e^{-T_e/2}\\ +& =\frac{b_1z+b_0}{z^2+a_1z+a_0} \\ +n & = deg(A) = 2 \\ +m & = deg(B) = 1 \\ +\end{align*} + +\begin{enumerate} + +\item Il y a plusieurs façon de représenter le correcteur RST : +\begin{itemize} +\item $\nu(z)=-\frac{S(z)}{R(z)}Y(z) + \frac{T(z)}{R(z)}E(z)$ + +Les conditions de causalité sont alors : $\tau \leq p$ et $\sigma \leq p$.\\ + +\item $\nu(z)=\frac{S}{R}[-Y(z) + \frac{T}{S}E(z)] $ + +Causalité : $\tau \leq p$ et $\sigma \leq p$.\\ + +\item $\nu(z)=\frac{T}{R}[-\frac{S}{T}Y(z) + E(z)]$ + +Causalité : $\tau \leq p$ et $\sigma \leq p$.\\ +\end{itemize} + + +\item On a : $Y(p)= G(p)[\nu(p) + P(p)]$, $P(p) = \frac{P_0}{p}$ et $\nu(p) = B_0(p)\nu^*(p)$\\ + +\begin{align*} +Y(p) &= G(p)[\nu(p) + P(p)]\\ +&= G(p)[B_0(p)\nu^*(p)+\frac{P_0}{p}]\\ +&= \frac{1-e^{-T_ep}}{p}G(p)\nu^*(p) + G(p)\frac{P_0}{p}\\ +\intertext{On pose $A(p) = \frac{G(p)}{p}$, et on a après transformée inverse de Laplace :} +y(t) &= (a*\nu^*)(t)-(a*\nu^*)(t-T_e)+a(t)P_0\\ +\intertext{après discrétisation on obtient : } +y_k & = a_k*\nu_k-a_{k-1}*\nu_{k-1} + a_kP_0\\ +\intertext{après transformée en $z$ on a alors :} +Y(z) &= A(z)\nu(z)-z^{-1}A(z)\nu(z)+A(z)P_0\\ +&=(1-z^{-1})A(z)\nu(z)+A(z)P_0\\ +&= G(z)\nu(z)+(1-z^{-1})A(z)(1-z^{-1})^{-1}P_0\\ +&= G(z)\nu(z)+G(z)P_0\frac{z}{z-1}\\ +Y(z)&= G(z)(\nu(z)+p(z)) +\end{align*} +\bigbreak + +\item Calcul de R et S. + +On considère l'exigence 1 du cahier des charges :\\ +$p_{1,2}=\omega_0 (-\xi \pm j\sqrt{1-\xi^2})$, avec $\omega_0 = 1.5$ et $\xi=0.7$ + +$p_3 = -3\omega_0 \xi$\\ + +Comme $z_i = e^{T_ep_i}$, avec $\Omega = \omega_0 \sqrt{1-\xi^2}$, + +$z_1 = e^{-T_e\omega_0\xi}(cos(\Omega T_e) +j sin(\Omega T_e))$ + +$z_2 = \overline{z_1}$ + +$z_3 = e^{-3\omega_0 \xi T_e}$\\ + +En boucle fermée, l'asservissement considéré donne en posant $G(z) = \frac{B(z)}{A(z)}$, +\[Y(z) = \frac{BT}{AR+BS}E(z) + \frac{BR}{AR+BS}p(z)\] +On pose $H_d(z) = \frac{B_d(z)}{\Pi_d(z)} = \frac{BT}{AR+BS}$, avec $deg(\Pi_d)=q$ et $deg(B_d)=\mu$. Les pôles (continus) imposés par le cahier des charges conduisent à la forme suivante pour le polynôme caractéristique : +\begin{align*} +\Pi_d(z) &= (z-z_1)(z-z_2)(z-z_3)\\ +&= z^3+C_2z^2+C_1z+C_0\\ +\intertext{avec} +C_0 &= z_1z_2z_1 = -e^{-5\omega_0 \xi T_e}\\ +C_1 &= z_1z_2 + z_2z_3 + z_3z_1 = (e^{-2 \xi \omega_0 T_e}+2e^{-4\xi \omega_0 T_e}cos(\Omega T_e))\\ +C_2 &= -z_1-z_2-z_3 = -(e^{-3\xi \omega_0 T_e}+2e^{-\xi \omega_0 T_e}cos(\Omega T_e))\\ +\end{align*} + + + +On s'intéresse à l'exigence 2 du cahier des charges : +Pour $E(z) = 0$ i.e $e_k = 0$, et $P(z) = P_0 \frac{z}{z-1}$, +\[\lim_{\rightarrow\infty} y_k =0\] + +Ainsi, avec le théorème de la valeur finale on a : +\begin{align*} +\lim_{z\rightarrow 1} \frac{z-1}{z}Y(z) = \lim_{z\rightarrow 1} \frac{BR}{AR+BS}P_0 =0 +\Leftrightarrow & \lim_{z\rightarrow 1} B(z)R(z) = 0\\ +\Leftrightarrow & R(z) = (z-1)^l \tilde{R}(z)\text{\indent avec, } l\geq 1\\ +\end{align*} + +Par simplicité, on prend donc $l=1$. + +\[\frac{B(z)T(z)}{A(z)R(z)+B(z)S(z)} = \frac{B_d(z)}{\Pi_d(z)}\] +donc $B(z)T(z) = B_d(z)$ et $A(z)(z-1)\tilde{R}(z)+B(z)S(z)=\Pi_d(z)$\\ +donc avec $\tilde{A}(z) = (z-1)A(z)$, \[\boxed{\tilde{A}(z)\tilde{R}(z) + B(z)S(z) = \Pi_d(z)}\] + + +Soit $\tilde{n} = deg(\tilde{A}) = n+1$ et $\tilde{\rho} = deg(\tilde{R})$\\ + +1) Égalité des degrés : $deg(\tilde{A}\tilde{R})=deg(AR)0$ et $h_0>0$.\\ +La transformée de Laplace de cette équation donne donc : +\begin{align*} +p^2\epsilon_d(p) &- p\epsilon_d(0^+) - \dot{\epsilon_d}(0^+) + h_1(p\epsilon_d - \epsilon_d(o^+))+ h_0\epsilon_d(p) = 0\\ +\epsilon_d &= \frac{\dot{\epsilon_d}(0^+)+(h_1+p)\epsilon_d(0^+)}{p^2+h_1p + h_0}\\ +&=\frac{\gamma_1p+\gamma_0}{(p-p_1)(p-p_2)} +\end{align*} +Exemple : $p^2+h_1p + h_0 = (p+\frac{10}{T})^2 = p^2 + \frac{20p}{T} + \frac{100}{T^2}$\\ + +$v$ doit vérifier d'après l'expression de $\ddot{\epsilon_d}$ : +\begin{align*} +v(t) &= \ddot{\epsilon_d}(t) + \ddot{z_1^d}(t)\\ +&= \ddot{z_1^d}(t) - h_1(\dot{z_1}(t)-\dot{z_1^d}(t))- h_0(z_1(t) - z_1^d(t))\\ +&= \begin{pmatrix} +h_0&h_1\end{pmatrix}.\begin{pmatrix} +z_1\\z_2\end{pmatrix} + (\ddot{z_1^d}(t) + h_1\dot{z_1^d}(t)+ h_0z_1^d(t))\\ +&= -Kx_c + \tilde{z_d} +\intertext{or, $v=-a^Tx_c + u$, donc on obtient la loi de commande :} +u &= -Kx_c + \tilde{z_d} + a^Tx_c\\ +&= (a^T-K)x_c + \tilde{z_d} +\end{align*} + +Loi de commande en BF par retour d'état : +\begin{center} +\includegraphics[scale=0.5]{TD8.png} +\end{center} + + + +\end{enumerate} +\end{enumerate} + +\section{Exercice 2 : Synthèse d'une loi de commande par retour d'état} +\begin{enumerate} +\item On a ici, n=3. Déterminons la représentation d'état.\\ +On a avec la fonction de transfert :\\ +\begin{align*} +A(p)Y(p) &= B(p)U(p)\\ +\intertext{d'où l'équation dans le domaine temporelle :} +y^{(3)} + 8 y^{(2)} + 17 y^{(1)} + 10y &= u^{(1)} +2u +\intertext{On a donc la forme canonique de commandabilité :} +\dot{x_c} &= \begin{pmatrix}0&1&0\\0&0&1\\-10&-17&-8\end{pmatrix} x_c + \begin{pmatrix}0\\0\\1\end{pmatrix}u\\ +&= A_c x_c +B_c u +\intertext{et on a l'equation d'observation :} +y &= \begin{pmatrix}2\\1\\0\end{pmatrix} x_c + 0.u +\end{align*} +Attention : Le u de l'équation d'état et de la fonction de transfert ne sont PAS les mêmes, l'un est un scalaire l'autre un vecteur.\\ + +On a une forme canonique de commandabilité, donc le système est effectivement commandable. Cependant, l'observabilité n'est pas acquise.\\ +La réalisation est observable ssi il n'y a pas de simplification d'un zéro par un pôle. Il suffit donc de vérifier que -2 n'est pas un zéro du numérateur.\\ +Une représentation minimal est appelée réalisation d'état.\\ + +\item On impose pour la boucle fermée : +\[ \left \{ \begin{matrix} +u = -Kx_c + \eta e\\ +K = \begin{pmatrix}k_0 & k_1 & k_2\end{pmatrix} \in \mathbb{R^{1x3}}\\ +\end{matrix} \right. \] + +On a donc pour l'équation d'état : +\begin{align*} +\dot{x_c} &= A_c x_c + B_c u\\ +&= (A_c - B_cK)x_c + \eta B_c e\\ +&= A_{bf}x_c + \eta B_c e +\intertext{et pour l'éuation d'obersation : } +y = C_c x_c +\end{align*} + +\item On impose les racines $P_1/P_2 = -m\omega_0 \pm j \omega_0\sqrt{1-m^2}$, donc on a le polynôme caractéristique : $\frac{p^2}{\omega_0^2} + \frac{2m}{\omega_0}p + 1$\\ +Il est nécessaire de spécifier un troisième pôle $p_3 = -\lambda m \omega_0$, avec $\lambda >> 1$, car la système est d'ordre 3. Comment le choisir? Stable, plus rapide que les autres pôles que l'on impose.\\ + +On a alors le polynôme à imposer : +\begin{align*} +\Pi_d(p) &= (p + \lambda m \omega_0)(p^2 + 2mp + \omega^2)\\ +&= p^3 + (2+\lambda)m\omega_0 p^2 + (2\lambda m^2 + 1) \omega^2 p + \lambda m \omega_0^3 +\end{align*} + +Pour la matrice $A_{bf}$, on a le polynôme caractéristique : +\begin{align*} +P_{A_{bf}} &= det(p\mathbf{1_3} - A_{bf})\\ +&=p^3 + (8+k_2)p^2 + (17+k_1)p + (10+k_0) +\end{align*} +Sachant qu'il y a une lien directe entre les coefficients de la matrice compagnon et son polynôme caractéristique.\\ +On identifie donc les coefficients des deux polynômes : +\[\left \{ \begin{matrix} +(8+k_2) = (2+\lambda)m\omega_0\\ +(17+k_1) = (2\lambda m^2 + 1) \omega^2\\ +(10+k_0) = \lambda m \omega_0^3 +\end{matrix} \right. \] + +\item Erreur statique nulle ssi le gain en p=0 vaut 1 (gain statique unitaire)\\ +Or, \[G_{bf}(p) = C_c(p \mathbf{1_3}-A_{bf})^{-1}B_c \eta \] +Donc , \[ \eta = \frac{1}{-C_c(A_c-B-cK)^{-1}B_c}\] +\end{enumerate} + +\end{document} diff --git a/421-Controle_processus/TD9/TD9.pdf b/421-Controle_processus/TD9/TD9.pdf new file mode 100644 index 0000000..5fdb1d7 Binary files /dev/null and b/421-Controle_processus/TD9/TD9.pdf differ diff --git a/421-Controle_processus/TD9/TD9.tex b/421-Controle_processus/TD9/TD9.tex new file mode 100644 index 0000000..b1ae64c --- /dev/null +++ b/421-Controle_processus/TD9/TD9.tex @@ -0,0 +1,146 @@ +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TD9 - Observateurs} +\renewcommand{\nomentete}{UE421 - \nomTD} + + + +\begin{document} + +\titre{\nomTD} + +\section*{Exercice 1 : Système hydraulique} +On rappelle la loi de Bernoulli : $\rho \frac{V_1^2}{2} + \rho g z_1 +p_1 = \rho \frac{V_2^2}{2} + \rho g z_2 +p_2$ Ce qui donne $q_1 \approx k h_i$\\ +On a aussi la formule $k = \frac{S}{2} \sqrt{2gH_0}$ \\ + +\begin{enumerate} +\item Cuve 1 :\\ +On a la relation de débit $q_e - q_1 = \frac{dv_1}{dt}$ , le volume $V_1 = V_1^0+v_1$, sachant que $v_1 = h_1 * S$, d'où :\\ +$q_e -q_1 = S \frac{dh_1}{dt}$, et puisque $q_1 = kh_1$ on aboutit à : +\[ q_e- kh_1 = S\frac{dh_1}{dt}\] + + Cuve 2 :\\ +On a ici, $q_1-q_2 = \frac{dv_2}{dt} = S\frac{dh_2}{dt}$ donc : +\[kh_1 - kh_2 = S\frac{dh_2}{dt}\] + +\item On a les relations : +\begin{align*} +\frac{dh_1}{dt} &= - \frac{k}{S}h_1 + \frac{1}{S}q_e\\ +\frac{dh_2}{dt} &= \frac{k}{S}h_1- \frac{k}{S}h_2 +\end{align*} +On pose $a= \frac{k}{S}$ et $b = \frac{1}{S}$, donc en posant $x= \begin{pmatrix}h_1\\h_2\end{pmatrix}$, on a : +\[\dot{x} = \begin{pmatrix}-a & 0 \\ 0 & -a\end{pmatrix}x + \begin{pmatrix}b\\0\end{pmatrix} q_e\] + +\item \begin{align*} +P_A(\lambda) &= det(p \mathbf{1}-A)\\ +&= (\lambda + a )^2 +\end{align*} +On a donc une racine double négative, le système est donc globalement asymptotique stable.\\ + +\item \begin{align*} +y &= h_1\\ +&= \begin{pmatrix}1&0\end{pmatrix}. \begin{pmatrix}h_1\\h_2\end{pmatrix}\\ +&= Cx +\end{align*} + +A-t-on observabilité du système? \\ +\[O(C,A) = \begin{pmatrix} C\\CA\end{pmatrix} = \begin{pmatrix}1&0\\-a&0\end{pmatrix}\] +Le système est non observable lorsque $y= h_1$.\\ + +Si $y = h_2 = \begin{pmatrix}0\\1\end{pmatrix} x$ +\[O(C,A) = \begin{pmatrix} C\\CA\end{pmatrix} = \begin{pmatrix}0&1\\a&-a\end{pmatrix}\] +Le système est observable lorsque $y = h_2$.\\ + +Rappel : Équation fondamentale de l'observateur asymptotique : +\[\left \{\begin{matrix} +\dot{\hat{x}} = A\hat{x} + B u + L(y-\hat{y})\\ +\hat{y} = C\hat{x} +\end{matrix}\right. \] + +Posons : +\begin{align*} +\epsilon_x = x - \hat{x}\\ +\dot{\epsilon_x} = \dot{x}-\dot{\hat{x}}\\ +&= Ax + Bu - (A\hat{x} + Bu + L(y - \hat{y})\\ +&= A(x-\hat{x}) - L(Cx + C\hat{x})\\ +&= A\epsilon_x - LC\epsilon_x +\intertext{donc :} +\dot{\epsilon_x} &= (A-LC)\epsilon_x +\intertext{avec $\epsilon_x(0) = x_0 - \hat{x_0}$} +\epsilon_x(t) &= e^{(A-LC)t} \epsilon_{x_0} +\end{align*} +\begin{align*} +\hat{x} \longrightarrow_{t \longrightarrow\infty} x &\Leftrightarrow \text{valeurs propres de A-LC à $Re() <0$} +\end{align*} +On cherche $L \in \mathbb{R}^{N*1}$ tel que $A-LC$ soit à valeurs propres à partie réelle négative.\\ + +Soit, +\begin{align*} +L &= \begin{pmatrix}l_1\\l2\end{pmatrix}\\ +A-LC &= \begin{pmatrix}-a & -l_1\\a & -a-l_2\end{pmatrix}\\ +P_{A-LC}(p) &= p^2 + (2a+l_2)p + a^2 + a(l_1+l_2)\\ +\Pi_0(p) &= (p - \xi(-a))^2\\ +&= (p + \xi a )^2\\ +&= p^2 + 2\xi ap + \xi^2a^2 +\intertext{d'où, par identification :} +&\left \{\begin{matrix} +2a + l_2 = 2 \xi a\\ +a^2 + a(l_1+l_2) = \xi^2a^2 +\end{matrix} \right. +\intertext{donc, on obtient :} +l_2 &= 2a(\xi-1)\\ +l_1 &= a(\xi -1) ^2 +\end{align*} +\end{enumerate} + + +\section*{Exercice 2 : système hydraulique avec perturbation} + +\begin{enumerate} +\item On a : +\begin{align*} +q_e + q_p -q_1 &= S\frac{dh_1}{dt}\\ +q_1 - q_2 &= S\frac{dh_2}{dt} +\intertext{d'ou la représentation d'état :} +\begin{pmatrix}\dot{h_1}\\\dot{h_2}\end{pmatrix} &= \begin{pmatrix} +-a & 0 \\a & -a\end{pmatrix}. \begin{pmatrix} +h_1\\h_2\end{pmatrix} + \begin{pmatrix} +b\\0\end{pmatrix}q_e + \begin{pmatrix} +b\\0\end{pmatrix}q_p +\end{align*} + +\item On suppose que $q_p \approx cst$ + +Posons $x = \begin{pmatrix}h_1\\h_2\\q_p\end{pmatrix}$, on a alors : +\begin{align*} +\dot{x} &= \begin{pmatrix}\dot{h_1}\\\dot{h_2}\\\dot{q_p}\end{pmatrix}\\ +&= \begin{pmatrix} +-a & 0 & b\\a & -a 0 \\ 0 & 0& 0\end{pmatrix}.\begin{pmatrix} +h_1\\h_2\\q_p\end{pmatrix} + \begin{pmatrix} +b\\0\\00\end{pmatrix} q_e\\ +&= Ax + Bq_e +\end{align*} + +\item Déterminons les valeurs propres : +\begin{align*} +det(\lambda \mathbf{1} - A) &= \left | \begin{matrix} +\lambda + a &0&-b \\ -a & \lambda + a & 0 \\ 0 & 0 & \lambda \end{matrix} \right |\\ +&= \lambda(\lambda + a)^2 +\end{align*} + +\item +\begin{align*} +\dot{\hat{x}} &= A\hat{x} + B u + L(y-\hat{y})\\ +y &= h_2 = \begin{pmatrix}0&1&0\end{pmatrix} x\\ +O(C,A) &= \begin{pmatrix}C\\CA \\CA^2\end{pmatrix}\\ + &= \begin{pmatrix}0&1&0\\2&-a&0\\-2a^2&a^2&ab\end{pmatrix}\\ + det(O(C,A)) &= -a^2b +\end{align*} + donc observable.\\ + + +\end{enumerate} + + + + +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TP1/.~lock.bode.odt# b/421-Controle_processus/TP1/.~lock.bode.odt# new file mode 100644 index 0000000..5d3a345 --- /dev/null +++ b/421-Controle_processus/TP1/.~lock.bode.odt# @@ -0,0 +1 @@ +,pierre-antoine,HP-PA,03.10.2018 17:59,file:///home/pierre-antoine/.config/libreoffice/4; \ No newline at end of file diff --git a/421-Controle_processus/TP1/Bode.ods b/421-Controle_processus/TP1/Bode.ods new file mode 100644 index 0000000..10656fd Binary files /dev/null and b/421-Controle_processus/TP1/Bode.ods differ diff --git a/421-Controle_processus/TP1/Bode1.png b/421-Controle_processus/TP1/Bode1.png new file mode 100644 index 0000000..2d6ea2c Binary files /dev/null and b/421-Controle_processus/TP1/Bode1.png differ diff --git a/421-Controle_processus/TP1/Bode2.png b/421-Controle_processus/TP1/Bode2.png new file mode 100644 index 0000000..d48df21 Binary files /dev/null and b/421-Controle_processus/TP1/Bode2.png differ diff --git a/421-Controle_processus/TP1/BodeTe1.png b/421-Controle_processus/TP1/BodeTe1.png new file mode 100644 index 0000000..97f9489 Binary files /dev/null and b/421-Controle_processus/TP1/BodeTe1.png differ diff --git a/421-Controle_processus/TP1/BodeTe5.png b/421-Controle_processus/TP1/BodeTe5.png new file mode 100644 index 0000000..99bb6c9 Binary files /dev/null and b/421-Controle_processus/TP1/BodeTe5.png differ diff --git a/421-Controle_processus/TP1/TP1.pdf b/421-Controle_processus/TP1/TP1.pdf new file mode 100644 index 0000000..c2db515 Binary files /dev/null and b/421-Controle_processus/TP1/TP1.pdf differ diff --git a/421-Controle_processus/TP1/TP1.tex b/421-Controle_processus/TP1/TP1.tex new file mode 100644 index 0000000..74f7a5d --- /dev/null +++ b/421-Controle_processus/TP1/TP1.tex @@ -0,0 +1,283 @@ +\documentclass[../../Cours_M1.tex]{subfiles} + +\title{TP1 : Introduction aux systèmes asservis échantillonés : synthèse de correcteurs analogiques numérisés} +\author{Aymeric Arnould, Tom Colinot} + +\begin{document} + +\maketitle + +\subsection*{Effets de l'échantillonnage} + +\subsubsection*{Préparation 1} +\begin{itemize} +\item Soit un signal sinusoïdal $x(t) = \sin(2 \pi f_0 t)$ échantillonné à la fréquence $F_e = 1/T_e$. Le spectre d'un signal purement sinusoïdal de fréquence $f_0$ est un Dirac de valeur 1 en $f_0$ et un Dirac de valeur -1 en $-f_0$. L'échantillonnage provoque une périodicité de ce spectre, de fréquence $F_e$. + +En effet, l'échantillonnage du signal revient à le multiplier par un peigne de Dirac : +\[p(t) = \sum_{n=0}^{\infty} \delta_0(t-nT_e) = \sum_{k=-\infty}^{\infty} \frac{1}{T_e} e^{j\frac{2\pi k t}{T_e}} \] + +On peut donc exprimer le signal échantillonné $x^*(t)$ puis sa transformée de Fourier : +\begin{align*} +& x^*(t) = x(t).p(t) = \frac{1}{T_e} \sum_{k=-\infty}^{\infty}x(t)e^{-j\frac{2\pi kt}{T_e}} \\ +& X^*(\omega)= \frac{1}{T_e} \sum_{k=- \infty}^{\infty}X(2\pi f-j\frac{2\pi k}{T_e}) \\ +& \boxed{X^*(f)= \frac{1}{T_e} \sum_{k=- \infty}^{\infty}(\delta(f_0-kF_e) - \delta(-f_0-kF_e))} \text{ car } X(f) = \delta_{f_0}(f) - \delta_{-f_0}(f) +\end{align*} + +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\draw [>=latex,->] (-6,0) -- (6,0) node[right]{$f$} ; +\draw [>=latex,->] (0,-2) -- (0,2) node[left]{$|X(f)|$}; +\draw [red] (1,0)node[below]{$f_0$} -- (1,1); +\draw [red] (-1,0)node[above]{$-f_0$} -- (-1,-1); +\draw (5,0)node[below]{$f_0+F_e$} -- (5,1); +\draw (3,0)node[above]{$-f_0+F_e$} -- (3,-1); +\draw (-3,0)node[below]{$f_0-F_e$} -- (-3,1); +\draw (-5,0)node[above]{$-f_0-F_e$} -- (-5,-1); +\draw [dotted] (-6,1) node[left]{$1/T_e$} -- (6,1); + +\end{tikzpicture} +\caption{Représentation du spectre $X^*(f)$ dans le cas où $F_e > 2f_0$} +\end{figure} + +\item Pour la reconstruction du signal, on utilise un filtre passe-bas idéal : +\[ H(p=j2\pi f) = \left\{ +\begin{array}{ll} +1 & \si |f| \leq F_e/2 \\ +0 & \sinon +\end{array} +\right. +\] + +\begin{itemize} +\item Si $f_0 < F_e / 2$, alors on va couper toutes les composantes sauf celles en $f_0$ et en $-f_0$. Le signal reconstitué sera donc le signal sinusoïdal initial. +\item Si $f_0 = 1,2F_e$, alors le spectre sera de la forme donnée en figure 2. +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\draw [>=latex,->] (-4,0) -- (5,0) node[right]{$f$} ; +\draw [>=latex,->] (0,-2) -- (0,2) node[left]{$|X(f)|$}; +\draw [red] (1,0)node[below]{$f_0$} -- (1,1); +\draw [red] (-1,0)node[above]{$-f_0$} -- (-1,-1); +\draw (4.2,0)node[below]{$f_0+F_e$} -- (4.2,1); +\draw (2.2,0)node[above]{$-f_0+F_e$} -- (2.2,-1); +\draw (-0.2,0)node[below]{$f_0-F_e$} -- (-0.2,1); +\draw (-2.2,0)node[above]{$-f_0-F_e$} -- (-2.2,-1); +\draw [dotted] (-4,1) node[left]{$1/T_e$} -- (5,1); +\end{tikzpicture} +\caption{Représentation du spectre $X^*(f)$ dans le cas où $F_e = 1.2f_0$} +\end{figure} + +Ainsi, en utilisant le filtre passe-bas, on ne récupérera que la composante correspondant à la fréquence $f_0-F_e$, et la reconstitution sera donc incorrecte. + +\end{itemize} + +\end{itemize} + +\clearpage +\subsubsection*{Manipulation 1} +On réalise à l'aide de Simulink l'échantillonnage et la reconstitution d'un signal de fréquence $f_0$ avec une période d'échantillonnage $T_e=1ms$ ($F_e=1kHz$). + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.35]{m1_f0100.png} + +\includegraphics[scale=0.35]{m1_f01200.png} + +\includegraphics[scale=0.35]{m1_f04010.png} +\caption{$s(t)$ et $e(t)$ pour $f_0$ = 100Hz, 1,2kHz et 4,01kHz} +\end{figure} + +\begin{itemize} +\item Lorsque $f_0 < F_e/2$, le signal est correctement reconstitué. +\item Lorsque $f_0 = 1,2F_e=1,2kHz$, comme prévu dans la préparation, on ne récupère qu'un signal avec une fréquence $f_0-F_e = 200Hz$. +\item Lorsque $f_0 \approx kF_e$ (ici $k=4$), alors on récupère de même un signal à la fréquence $f_0-kF_e$ (ici 4010-4000 = 10 Hz): c'est ce qu'on appelle un phénomène de battement. +\end{itemize} + +\subsubsection*{Préparation 2} +Le système comporte dans la chaîne directe le système analogique de fonction de transfert $H(p) = \frac{1}{1+2m_{BO}\frac{p}{\omega_{0BO}}+\frac{p^2}{\omega_{0BO}^2}}$ et un correcteur $C(p) = K_p$. +\begin{itemize} +\item L'expression de la fonction de transfert en boucle fermée s'écrit donc : +\begin{align*} +H_{BF}(p) & = \frac{H(p)C(p)}{1+H(p)C(p)} \\ +& = \frac{K_p}{(1+2m_{BO}\frac{p}{\omega_{0BO}}+\frac{p^2}{\omega_{0BO}^2}) + K_p} \\ +H_{BF}(p) & = \frac{\frac{K_p}{K_p+1}}{1+2\frac{m_{BO}}{K_p+1}\frac{p}{\omega_{0BO}}+\frac{p^2}{(K_p+1)\omega_{0BO}^2}} +\end{align*} +\item Avec $K_p=20$, on a alors +\begin{align*} +H_{BF}(p) & = \frac{0.95}{1+3,81.10^{-4}p+3,04.10^{-6}p^2} +\intertext{On a donc :} +\frac{1}{\omega_{0BF}^2} & = 3,04.10^{-6} \et +\frac{2m_{BF}}{\omega_{0BF}} = 3,81.10^{-4} +\intertext{On en déduit les paramètres en boucle fermée :} +\omega_{0BF} & = 574 rad.s^{-1} \\ +m_{BF} & = 0,11 +\end{align*} + +À l'aide de l'abaque donnant le temps de réponse réduit $t_r\omega_0$ en fonction de l'amortissement $m$, on en déduit $t_r\omega_0 = 30$ rad donc \[t_r = 52,3ms\] + +L'abaque des dépassements indiciels permet d'obtenir la valeur du premier dépassement +\[D_1 = 0.7\] + +\item Le diagramme de Bode est donné en annexe 1. On assure une marge de phase de $45^o$ si on a pour une pulsation donnée une phase de $-135^o$ et un gain nul. Pour le système non corrigé, on a un gain de $-7,16dB$ pour une phase de $-135^o$. Multiplier par un gain $K_{45}=10^{7,16/20}=2,28$ permet de translater la courbe de gain sans agir sur la phase, et on a alors bien la marge de phase voulue. +\end{itemize} + +\clearpage +\subsubsection*{Manipulation 2} +\paragraph{Simulation sur Simulink} On réalise l'asservissement analogique et on prend la réponse indicielle. + +Pour $K_p = 20$ on obtient la réponse indicielle donnée en annexe 5. La valeur finale est de 0.95, l'amplitude du premier dépassement est de 1.6. On a donc $D_1=\frac{1.6-0.95}{0.95}=0.68$. Le temps de réponse à $5\%$ est d'environ $50ms$. + +Pour $K_p = K_{45} = 2,28$, on se propose de relever le gain et la phase à $\omega=202rad/s$ (voir annexe 6).On a bien un gain unitaire et une phase de $-135^o$ donc le gain $K_{45}$ assure bien une marge de phase de $45^o$. + +\paragraph{Montage sur la maquette} +On réalise le montage sur la maquette. + +Pour $K_p=20=R_1/R_2$, on utilise $R_1=12K\Omega$ et $R_2=600\Omega$ en mettant deux résistances de $1,2k\Omega$ en parallèle. +On obtient la réponse indicielle suivante : +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{m2Kp20.png} +\caption{Réponse indicielle, $K_p=20$} +\end{figure} + +Les curseurs nous permettent d'avoir un temps de réponse à $5\%$ de $52ms$ et un premier dépassement de $70\%$. + +\clearpage + +Pour $K_p=K_{45}$, on obtient la réponse suivante à $\omega = 202rad/s$ ($f=32.2Hz$) : + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{m2K45w0dB.png} +\caption{$s(t)$ et $e(t)$ en boucle ouverte, $K=K_{45}$, $\omega = 202rad/s$} +\end{figure} + +On a bien un gain unitaire et un déphasage de $-135^o$, donc le gain $K_{45}$ assure bien une marge de phase de $45^o$. + +\bigskip + +\paragraph{Conclusion partie 2} Les résultats donnés par la simulation sont conformes à ceux obtenus par expérimentation sur la plaquette. La simulation Simulink représente bien le système réel implanté sur la plaquette. + +\clearpage + +\subsection*{Correcteur analogique numérisé} +\subsubsection*{Préparation 3} +On modélise l'action de l'échantillonneur-bloqueur par un retard pur de fonction de transfert \[B(p) = \exp(-T_ep/2)\] + +Ainsi, le gain de la fonction de transfert en boucle ouverte n'est pas affecté car $|\exp(-T_ep/2)| = 1$, et la phase est modifiée de $arg(\exp(-T_ep/2)) = -T_e/2 \omega$. + +\begin{figure}[h!] +\includegraphics[scale=0.4]{Bode2.png} +\caption{Diagrammes de Bode du système analogique et échantillonné} +\end{figure} + +\begin{itemize} +\item 1er cas : $T_e = 1ms$ (voir annexe 2)\\ + +Le gain correspondant à la phase $-135^o$ est de $-5.7dB$ pour $\omega=190rad/s$, donc on a $K_{45} = 10^{5.7/20} = 1.93$. + +La limite d'instabilité est atteinte lorsqu'on a simultanément une phase de $-180^o$ et un gain de $0dB$. On a ici un gain de $-23.9dB$ pour une phase de $-180^o$, donc on a à la limite d'instabilité $K_{lim}=10^{23.9/20}=15.7$. + + +\clearpage + +\item 2ème cas : $T_e = 5ms$ (voir annexe 3)\\ + +Le gain correspondant à la phase $-135^o$ est de $-2.5dB$ pour $\omega=150rad/s$, donc on a $K_{45} = 10^{2.5/20} = 1.33$. + +La limite d'instabilité est atteinte lorsqu'on a simultanément une phase de $-180^o$ et un gain de $0dB$. On a ici un gain de $-10,5dB$ pour une phase de $-180^o$, donc on a à la limite d'instabilité $K_{lim}=3,35$. + +\end{itemize} + +\clearpage + +\subsubsection*{Manipulation 3} + +On se propose dans les deux cas ($T_e=1ms$, $T_e=5ms$) de vérifier que le gain $K_{45}$ assure la marge de phase à $45^o$ et que le gain $K_{lim}$ est bien la limite de stabilité. + +\bigskip +\textbf{1er cas :} $T_e = 1ms$ + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.8]{m3retardpurTe1Kp45.png} +\caption{$e(t)$ et $s(t)$ en boucle ouverte, $K_p=K_{45}$, $\omega=190rad/s$} +\end{figure} + +Le gain $K_{45}$ assure bien une marge de phase de $-135^o$. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.8]{m3retardpurTe1.png} +\caption{Réponse indicielle, $K=K_{lim}$} +\end{figure} + +Le gain $K_{lim}$ assure bien la limite d'instabilité. + +On se propose de comparer la simulation du système avec le correcteur numérique et avec sa modélisation par un retard pur. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.8]{m3compTe1.png} +\caption{Réponse indicielle simulée pour $K=K_{45}$, avec correcteur numérique (--) et modélisation par un retard pur (+)} +\end{figure} + +La modélisation par un retard pur est très proche du comportement réel du correcteur. + +En faisant le montage avec la plaquette analogique et le correcteur numérique, on retrouve une réponse semblable. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{m3maquette.png} +\caption{Réponse indicielle avec la maquette et le correcteur numérique pour $K=K_{45}$} +\end{figure} + +\clearpage +\textbf{2ème cas :} $T_e = 5ms$ + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.8]{m3retardpurTe5Kp45.png} +\caption{$e(t)$ et $s(t)$ en boucle ouverte, $K_p=K_{45}$, $\omega=150rad/s$} +\end{figure} + +Le gain $K_{45}$ assure bien une marge de phase de $-135^o$. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.8]{m3retardpurTe5.png} +\caption{Réponse indicielle, $K=K_{lim}$} +\end{figure} + +Le gain $K_{lim}$ assure bien la limite d'instabilité. + +\clearpage +\subsection*{Synthèse d'un correcteur PI numérisé} +\subsubsection*{Préparation 4} + +Le diagramme de Bode asymptotique du correcteur $C(p) = K_p(1+\frac{1}{T_ip})$ est le suivant : + +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\draw [>=latex,->] (0,0) -- (0,3) node[left]{$\phi(^o)$} ; +\draw [>=latex,->] (-1,2) -- (6,2) node[right]{$\omega$}; + +\draw [red] (0,1) node[left]{$-90$} -- (3,1) -- (3,2) -- (6,2); + +\draw [>=latex,->] (0,4) -- (0,7) node[left]{$G_{dB}$} ; +\draw [>=latex,->] (-1,5) -- (6,5) node[right]{$\omega$}; + +\draw [red] (0,6.5) -- (3,5.5) -- (6,5.5); +\draw [red,dashed] (0,5.5) node[left]{$K_p$} -- (3,5.5) -- (3,2) node[left]{$\frac{1}{T_i}$}; + +\end{tikzpicture} +\end{figure} + +Pour obtenir une marge de phase de $-45^o$, il faut utiliser $K_p$ pour ajuster la courbe de gain. Pour cela, on se place dans le domaine où le gain du correcteur est égal à $K_p$ et où la phase est nulle. + +Le gain $K_p$ utilisé sera celui calculé précédemment, $K_{45} = 2.28$. +On avait pour le système non corrigé une phase de $-135dB$ pour une pulsation de 202 rad/s. On va donc placer $\frac{1}{T_i}=\frac{202}{10}$ donc $T_i=49.5ms$. + +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TP1/bode.odt b/421-Controle_processus/TP1/bode.odt new file mode 100644 index 0000000..99c264d Binary files /dev/null and b/421-Controle_processus/TP1/bode.odt differ diff --git a/421-Controle_processus/TP1/m1_f0100.png b/421-Controle_processus/TP1/m1_f0100.png new file mode 100644 index 0000000..514d6e9 Binary files /dev/null and b/421-Controle_processus/TP1/m1_f0100.png differ diff --git a/421-Controle_processus/TP1/m1_f01200.png b/421-Controle_processus/TP1/m1_f01200.png new file mode 100644 index 0000000..0438741 Binary files /dev/null and b/421-Controle_processus/TP1/m1_f01200.png differ diff --git a/421-Controle_processus/TP1/m1_f04010.png b/421-Controle_processus/TP1/m1_f04010.png new file mode 100644 index 0000000..da3e112 Binary files /dev/null and b/421-Controle_processus/TP1/m1_f04010.png differ diff --git a/421-Controle_processus/TP1/m2K45w0dB.png b/421-Controle_processus/TP1/m2K45w0dB.png new file mode 100644 index 0000000..daca7a4 Binary files /dev/null and b/421-Controle_processus/TP1/m2K45w0dB.png differ diff --git a/421-Controle_processus/TP1/m2Kp20.png b/421-Controle_processus/TP1/m2Kp20.png new file mode 100644 index 0000000..c347993 Binary files /dev/null and b/421-Controle_processus/TP1/m2Kp20.png differ diff --git a/421-Controle_processus/TP1/m3compTe1.png b/421-Controle_processus/TP1/m3compTe1.png new file mode 100644 index 0000000..fcedda6 Binary files /dev/null and b/421-Controle_processus/TP1/m3compTe1.png differ diff --git a/421-Controle_processus/TP1/m3maquette.png b/421-Controle_processus/TP1/m3maquette.png new file mode 100644 index 0000000..200516b Binary files /dev/null and b/421-Controle_processus/TP1/m3maquette.png differ diff --git a/421-Controle_processus/TP1/m3retardpurTe1.png b/421-Controle_processus/TP1/m3retardpurTe1.png new file mode 100644 index 0000000..727cf6b Binary files /dev/null and b/421-Controle_processus/TP1/m3retardpurTe1.png differ diff --git a/421-Controle_processus/TP1/m3retardpurTe1Kp45.png b/421-Controle_processus/TP1/m3retardpurTe1Kp45.png new file mode 100644 index 0000000..0ad66ba Binary files /dev/null and b/421-Controle_processus/TP1/m3retardpurTe1Kp45.png differ diff --git a/421-Controle_processus/TP1/m3retardpurTe5.png b/421-Controle_processus/TP1/m3retardpurTe5.png new file mode 100644 index 0000000..c153f02 Binary files /dev/null and b/421-Controle_processus/TP1/m3retardpurTe5.png differ diff --git a/421-Controle_processus/TP1/m3retardpurTe5Kp45.png b/421-Controle_processus/TP1/m3retardpurTe5Kp45.png new file mode 100644 index 0000000..9d53aa8 Binary files /dev/null and b/421-Controle_processus/TP1/m3retardpurTe5Kp45.png differ diff --git a/421-Controle_processus/TP2/TP2.bbl b/421-Controle_processus/TP2/TP2.bbl new file mode 100644 index 0000000..e69de29 diff --git a/421-Controle_processus/TP2/TP2.blg b/421-Controle_processus/TP2/TP2.blg new file mode 100644 index 0000000..c74c197 --- /dev/null +++ b/421-Controle_processus/TP2/TP2.blg @@ -0,0 +1,48 @@ +This is BibTeX, Version 0.99d (TeX Live 2013/Debian) +Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 +The top-level auxiliary file: TP2.aux +I found no \citation commands---while reading file TP2.aux +I found no \bibdata command---while reading file TP2.aux +I found no \bibstyle command---while reading file TP2.aux +You've used 0 entries, + 0 wiz_defined-function locations, + 83 strings with 480 characters, +and the built_in function-call counts, 0 in all, are: += -- 0 +> -- 0 +< -- 0 ++ -- 0 +- -- 0 +* -- 0 +:= -- 0 +add.period$ -- 0 +call.type$ -- 0 +change.case$ -- 0 +chr.to.int$ -- 0 +cite$ -- 0 +duplicate$ -- 0 +empty$ -- 0 +format.name$ -- 0 +if$ -- 0 +int.to.chr$ -- 0 +int.to.str$ -- 0 +missing$ -- 0 +newline$ -- 0 +num.names$ -- 0 +pop$ -- 0 +preamble$ -- 0 +purify$ -- 0 +quote$ -- 0 +skip$ -- 0 +stack$ -- 0 +substring$ -- 0 +swap$ -- 0 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 0 +warning$ -- 0 +while$ -- 0 +width$ -- 0 +write$ -- 0 +(There were 3 error messages) diff --git a/421-Controle_processus/TP2/TP2.pdf b/421-Controle_processus/TP2/TP2.pdf new file mode 100644 index 0000000..5491551 Binary files /dev/null and b/421-Controle_processus/TP2/TP2.pdf differ diff --git a/421-Controle_processus/TP2/TP2.tex b/421-Controle_processus/TP2/TP2.tex new file mode 100644 index 0000000..4c1fb7e --- /dev/null +++ b/421-Controle_processus/TP2/TP2.tex @@ -0,0 +1,219 @@ +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TP2 : Asservissement échantillonné, méthode de ZDAN} +\renewcommand{\nomentete}{UE421-\nomTD} +\renewcommand{\auteur}{Aymeric Arnould, Tom Colinot} +\newcommand{\z}{z^{-1}} + +\begin{document} +\section*{\nomTD} + +\subsection*{I/ Introduction et Préparation} + +On souhaite corriger par la méthode de ZDAN le processus de fonction de transfert \[G(p) = \frac{K}{1+\tau p}\] + +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\sbEntree{E} +\sbComp{comp}{E} +\sbRelier[$E(z)$]{E}{comp} +\sbBloc{reg}{$D(z)$}{comp} +\sbRelier[$\epsilon$]{comp}{reg} +\sbBloc{boz}{Bloqueur $B_0(p)$}{reg} +\sbRelier{reg}{boz} +\sbBloc{sys}{$G(p)$}{boz} +\sbRelier{boz}{sys} +\sbSortie{S}{sys} +\sbRelier[$S(p)$]{sys}{S} +\sbDecaleNoeudy[4]{S}{R} +\sbBlocr[7]{can}{Échantillonneur}{R} +\sbRelieryx{sys-S}{can} +\sbRelierxy{can}{comp} +\end{tikzpicture} +\caption{Asservissement considéré} +\end{figure} + +\subsubsection*{Préparation 1} + +On cherche à expliciter la fonction de transfert en $z$ du processus \[G(p) = \frac{K}{1+\tau p}\] + +Ce processus est associé au bloqueur d'ordre 0 modélisé par \[B_0(p) = \frac{1-e^{-T_ep}}{p}\] + +\begin{align*} +H(z) & = Z\{B_0(p)G(p)\} = (1-\z)Z\{^*L^{-1}\{\frac{G(p)}{p}\}\} \\ +& = (1-\z)Z\{^*L^{-1}\{ \frac{K}{p(1+\tau p)} \} \\ +& = K (1-\z)Z\{^*L^{-1}\{ \frac{1}{p} - \frac{\tau}{1+\tau p} \} \\ +& = K (1-\z)Z\{1-e^{-\frac{nT_e}{\tau}}\} \\ +& = K (1-\z)(\frac{z}{z-1}-\frac{z}{z-D}) \text{ où } D = e^{-T_e/\tau} \\ +& = K(1-\frac{z-1}{z-D}) \\ +H(z) & = K(1-D)\frac{\z}{1-D\z} +\end{align*} +\[ \boxed{H(z) = k_1\frac{\z}{1-a\z} \avec k_1 = K(1-e^{-\frac{T_e}{\tau}}) \et a = e^{-\frac{T_e}{\tau}}} \] + +\subsubsection*{Préparation 2} + +On utilise un correcteur de la forme : +\[ D(z) = K_d\frac{1-a\z}{(1-\z)(1+b\z)} \] + +\begin{itemize} \setlength{\itemsep}{10mm} +\item \textbf{Calcul de la fonction de transfert en boucle fermée } + +En boucle ouverte, +\[ T_{BO}(z) = D(z)H(z) = k_1K_d \frac{\z}{(1-\z)(1+b\z)} \] + +On a donc en boucle fermée : +\begin{align*} +F(z) & = \frac{T_{BO}(z)}{1+T_{B0}(z)} \\ +& = \frac{k_1K_d\z}{(1-\z)(1+b\z) +k_1K_d\z} \\ +& = \frac{k_1K_d\z}{1+\z(k_1K_d+b-1)-bz^{-2}} +\end{align*} + +\item \textbf{Erreur statique de position} + +En utilisant le théorème de la valeur finale, avec une entrée échelon $E(z) = E_0 \frac{z}{z-1}$, + +\begin{align*} +\lim_{t\rightarrow +\infty}s(t) & = \lim_{z\rightarrow 1} \frac{z-1}{z} F(z) \frac{z}{z-1}E_0 \\ +& = \lim_{z\rightarrow 1} \frac{k_1K_d\z}{1+\z(k_1K_d+b-1)-bz^{-2}} E_0 \\ +& = \frac{k_1K_d}{1+(k_1K_d-1+b)-b}E_0 \\ +& = E_0 +\end{align*} + +On a donc bien une erreur statique de position nulle. + +\item On écrit la fonction de transfert en boucle fermée sous la forme suivante : +\[ \boxed{ F(z) = \frac{A\z}{1+B\z+Cz^{-2}} \avec A = k_1K_d, \quad B=k_1K_d + b -1, \quad C = -b }\] +\end{itemize} + +\subsubsection*{Préparation 3} +\begin{itemize}\setlength{\itemsep}{10mm} + +\item On veut la fonction de transfert du second ordre : +\[ M(p) = \frac{F_0}{1+\frac{2m}{\Omega}p+\frac{p^2}{\Omega^2}} = \frac{\omega_0}{(p+x)^2 + \omega_0^2} = \frac{\frac{\omega_0}{\omega_0^2+x^2}}{\frac{p^2}{\omega_0^2+x^2}+\frac{2x}{\omega_0^2 + x^2}p +1}\] + +On en déduit donc : \[ \boxed{ F_0 = \frac{\omega_0}{\omega_0^2 + x^2}, \quad \Omega = \sqrt{\omega_0^2 + x^2} \quad \et \quad m=\frac{x}{\Omega}} \] + +\item \[ \boxed{x = m\Omega, \quad \omega_0=\Omega\sqrt{1-m^2} \text{ pour } m< 1 } \] + +\item La transformée en $z$ de la fonction de transfert $M(p)$ est +\[ M(z) = \frac{ze^{-xT_e}\sin(\omega_0T_e)}{z^2 - 2ze^{-xT_e}\cos(\omega_0T_e)+e^{-2xT_e}} \] + +Le dénominateur a pour déterminant $\Delta = 4e^{-2xT_e}(\cos^2(\omega_0T_e)-1) \leq 0$. + +Les pôles sont donc \[z_{1,2} = e^{-xT_e}(\cos(\omega_0T_e) \pm j \sqrt{1-\cos^2(\omega_0T_e)}) = e^{-xT_e\pm j\omega_0T_e}\] + +\item On veut que $M(z)$ et $F(z)$ aient les mêmes pôles : +\[ \frac{A\z}{1+B\z+Cz^{-2}} = \frac{ze^{-xT_e}\sin(\omega_0T_e)}{z^2 - 2ze^{-xT_e}\cos(\omega_0T_e)+e^{-2xT_e}} = \frac{\z e^{-xT_e}\sin(\omega_0T_e)}{1 - 2\z e^{-xT_e}\cos(\omega_0T_e)+z^{-2}e^{-2xT_e}} \] + +Donc en identifiant : +\[ \boxed{ A = e^{-xT_e}\sin(\omega_0T_e), \quad B = -2 e^{-xT_e}\cos(\omega_0T_e), \quad C = e^{-2xT_e}} \] + +\item On a immédiatement +\[ \boxed{ b = -e^{-2xT_e}} \] + +De plus, $B = k_1K_d + b -1 = -2 e^{-xT_e}\cos(\omega_0T_e)$ donc +\[ \boxed{ K_d = \frac{1-2 e^{-xT_e}\cos(\omega_0T_e)+e^{-2xT_e}}{k_1} }\] +\end{itemize} + +\subsubsection*{Préparation 4} + +\begin{itemize}\setlength{\itemsep}{10mm} +\item On a le correcteur +\[ D(z) = \frac{K_d-K_da\z}{1+(b-1)\z -bz^{-2}} = \frac{Y(z)}{X(z)} \] +On transforme cette expression en équation de récurrence : +\[Y(z)(1+(b-1)\z -bz^{-2}) = X(z)(K_d-K_da\z) \] +\[ \boxed{y[n] = K_dx[n] - K_d a x[n-1] + (1-b)y[n-1] + by[n-2]}\] + +\item On en déduit donc : +\[ \boxed{ A_1 = K_d, A_2 = -aK_d, B_1 = 1-b, B_2 = b } \] + +\item Applications numériques : +\[ T_e = 50 \mu s, m = 0,5, \Omega = 5000 rad/s, \tau = 1ms, K=2 \] +\begin{multicols}{3} +$a = 0.9512$\\ +$k_1 = 0.09754$\\ +$x = 2500 $ rad/s\\ +$\omega_0 = 4330 $rad/s\\ + +$A = 0.18957$\\ +$B = -1.72379$\\ +$C = 0.7788$\\ +$b = -0.7788$\\ +$K_d = 0.56397$\\ +$A_1 = 0.56397$\\ +$A_2 = -0.53645$\\ +$B_1 = 1.7788$\\ +$B_2 = -0.7788$ +\end{multicols} + +\item Avec un coefficient d'amortissement $m=0.5$, on détermine $t_r\Omega = 5.3$ donc $t_r = 1,26$ ms. Le premier dépassement est de $D_1 = 25 \%$. +\end{itemize} + +\subsection*{II/ Manipulation} + +\subsubsection*{Manipulation 1} + +\textit{Simulation du système analogique} \\ + +Avec les valeurs calculées ci-dessus, en utilisant un pas d'intégration de $10^{-5}$s et un schéma d'Euler d'ordre 1, on obtient la réponse indicielle suivante : + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.4]{analtr5.png} +\caption{Réponse indicielle du système analogique simulé} +\end{figure} + +Si on diminue le pas d'intégration, alors la réponse calculée peut être très différente. Par exemple, avec un temps de $10^{-4}$ s, on a la réponse : + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.4]{analbullshit.png} +\end{figure} + +Si on prend un schéma d'intégration plus précis, sans changer le pas d'intégration, on peut obtenir une réponse satisfaisante. Par exemple, en prenant un schéma de Dormand-Price d'ordre 8, on obtient la réponse suivante, qui est similaire à celle obtenue précédemment. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.4]{anal_DP8.png} +\end{figure} + +\textit{Simulation de l'asservissement avec un correcteur numérique}\\ + +On réalise l'asservissement avec le correcteur numérique. Les réponses du second ordre analogique et du second ordre numérique diffèrent d'un gain induit par l'échantillonnage. Pour les comparer, on peut donc les normaliser par leur gain statique. + +\begin{figure}[h!] +\includegraphics[scale=0.40]{anal_num.png} +\end{figure} + +La réponse du système numérique est très proche de celle du système analogique, mais les courbes ne se superposent pas tout à fait. +\newpage + +On réalise la simulation pour des valeurs différentes de $T_e$ : + +\begin{figure}[h!] +\includegraphics[scale=0.40]{num_Te.png} +\caption{Réponse de l'asservissement pour $T_e$ = 1$\mu$s,10$\mu$s,100$\mu$s,1ms,5ms,10ms} +\end{figure} + +La variation de la période d'échantillonnage fait varier la valeur du premier dépassement. Lorsque $T_e$ augmente et se rapproche de la période de Shannon $\frac{\pi}{\Omega}$, le dépassement diminue. \\ + +On avait remarqué que les réponses simulées avec $M(p)$ et $M(z)$ étaient légèrement différentes. Pour retrouver une réponse proche de celle de la boucle avec le correcteur numérique, en utilisant un modèle analogique, on approxime le bloqueur d'ordre zéro par un retard pur de $T_e/2$ et on utilise l'approximation de Tustin pour remplacer la fonction de transfert en $z$ par une fonction de transfert en $p$. + +\noindent Remarque : on utilise les fonctions de Matlab pour faire l'approximation de Tustin.\\ + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.4]{tustin.png} +\includegraphics[scale=0.4]{simtustin.png} +\end{figure} + +Les deux courbes ne sont pas superposées. L'approximation a cependant permis d'améliorer le modèle analogique vu au début du TP. + +\subsubsection*{Manipulation 2} + +Grâce à la carte D-space on a pu remplacer la partie analogique simulée du système par une partie analogique réelle. + +On retrouve bien les performances du système modélisé : $D = 17.3 \%$ et $t_5\% = 1 ms$ (voir figures en annexe). + + +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TP2/anal_DP8.png b/421-Controle_processus/TP2/anal_DP8.png new file mode 100644 index 0000000..dff1a37 Binary files /dev/null and b/421-Controle_processus/TP2/anal_DP8.png differ diff --git a/421-Controle_processus/TP2/anal_num.png b/421-Controle_processus/TP2/anal_num.png new file mode 100644 index 0000000..93ab72b Binary files /dev/null and b/421-Controle_processus/TP2/anal_num.png differ diff --git a/421-Controle_processus/TP2/analbullshit.png b/421-Controle_processus/TP2/analbullshit.png new file mode 100644 index 0000000..26d68e7 Binary files /dev/null and b/421-Controle_processus/TP2/analbullshit.png differ diff --git a/421-Controle_processus/TP2/analtr5.png b/421-Controle_processus/TP2/analtr5.png new file mode 100644 index 0000000..53bd25a Binary files /dev/null and b/421-Controle_processus/TP2/analtr5.png differ diff --git a/421-Controle_processus/TP2/manip1.m b/421-Controle_processus/TP2/manip1.m new file mode 100644 index 0000000..d395898 --- /dev/null +++ b/421-Controle_processus/TP2/manip1.m @@ -0,0 +1,104 @@ +% UE421 - TP2 - Manipulation 1 + +close all; + +Te = 50e-6; +tau = 1e-3; %ms +K=2; + +% Paramètres du second ordre analogique +m=0.5; +Omega = 5000; %rad/s +x = m*Omega; +omega0 = Omega*sqrt(1-m^2); +F0 = omega0/(omega0^2+x^2); + +% Paramètres du second ordre numérique correspondant +a = exp(-Te/tau); +k1 = K*(1-a); +A = exp(-x*Te)*sin(omega0*Te); +B = -2*exp(-x*Te)*cos(omega0*Te); +C = exp(-2*x*Te); +b = -C; +Kd = (B-b+1)/k1; + +% Simulation ordre 2 analogique + +% Delta = 1e-4; % pas d'intégration +% sim ('scripts/ordre2ana.slx') +% sim_an = simout; +% s_an = sim_an.data(:,2); +% s0_an = s_an(end); % Valeur finale pour normalisation +% figure(1); +% plot(sim_an.time,sim_an.data(:,2)) +% xlabel('temps (s)'); +% title('Reponse indicielle (systeme analogique, pas 100us, Dormand Price(8))'); + + +% Simulation ordre 2 numérique +% Delta = 5e-6; % pas d'intégration < Te +% sim ('scripts/ordre2num.slx'); +% sim_num = simout; +% s_num = sim_num.data(:,2); +% s0_num = s_num(end); % Valeur finale pour normalisation + +%Comparaison des réponses analogique / numérique +% figure(2); +% plot(sim_num.time,s_num/s0_num,'.',sim_an.time,s_an/s0_an); +% xlabel('temps(s)'); +% title('Comparaison des reponses indicielles'); + +%Effet de la fréquence d'échantllonnage +% figure(2); +% xlabel('temps(s)'); +% title('Comparaison des reponses indicielles numériques'); +% temps_ech = [1e-6,1e-5,1e-4,1e-3,5e-3,1e-2]; +% +% for k = [1:1:6] +% Te=temps_ech(k); +% a = exp(-Te/tau); +% k1 = K*(1-a); +% A = exp(-x*Te)*sin(omega0*Te); +% B = -2*exp(-x*Te)*cos(omega0*Te); +% C = exp(-2*x*Te); +% b = -C; +% Kd = (B-b+1)/k1; +% sim ('scripts/boucle.slx'); +% sim_num = simout; +% s_num = sim_num.data(:,3); +% s0_num = s_num(end); % Valeur finale pour normalisation +% subplot(2,3,k); plot(sim_num.time,s_num/s0_num); +% end; +% + + +% Recherche réponse par modèle analogique +z=tf('z',Te) +D=Kd*z*(z-a)/((z-1)*(z+b)) +Dt = d2c(D,'Tustin') + +% Système analogique par BF +Delta = 1e-5; % pas d'intégration +sim ('scripts/ordre2ana.slx') +sim_an0 = simout; +s_an0 = sim_an0.data(:,2); +s0_an0 = s_an0(end); % Valeur finale pour normalisation + +% Approximation analogique par Tustin +Delta = 1e-5; % pas d'intégration +sim ('scripts/ordre2ana2.slx') +sim_an = simout; +s_an = sim_an.data(:,2); +s0_an = s_an(end); % Valeur finale pour normalisation + +%Simulation ordre 2 numérique bouclé +sim ('scripts/boucle.slx'); +sim_num = simout; +s_num = sim_num.data(:,3); +s0_num = s_num(end); % Valeur finale pour normalisation + +%Comparaison des réponses analogique / numérique +figure(1); +plot(sim_num.time,s_num/s0_num,sim_an.time,s_an/s0_an); +xlabel('temps(s)'); +title('Comparaison des reponses indicielles'); \ No newline at end of file diff --git a/421-Controle_processus/TP2/num_Te.png b/421-Controle_processus/TP2/num_Te.png new file mode 100644 index 0000000..3445e33 Binary files /dev/null and b/421-Controle_processus/TP2/num_Te.png differ diff --git a/421-Controle_processus/TP2/scripts/boucle (1).slx b/421-Controle_processus/TP2/scripts/boucle (1).slx new file mode 100644 index 0000000..0ff24e2 Binary files /dev/null and b/421-Controle_processus/TP2/scripts/boucle (1).slx differ diff --git a/421-Controle_processus/TP2/scripts/boucle.slx b/421-Controle_processus/TP2/scripts/boucle.slx new file mode 100644 index 0000000..0ff24e2 Binary files /dev/null and b/421-Controle_processus/TP2/scripts/boucle.slx differ diff --git a/421-Controle_processus/TP2/scripts/ordre2ana.slx b/421-Controle_processus/TP2/scripts/ordre2ana.slx new file mode 100644 index 0000000..ee243ba Binary files /dev/null and b/421-Controle_processus/TP2/scripts/ordre2ana.slx differ diff --git a/421-Controle_processus/TP2/scripts/ordre2ana2 (1).slx b/421-Controle_processus/TP2/scripts/ordre2ana2 (1).slx new file mode 100644 index 0000000..1e06388 Binary files /dev/null and b/421-Controle_processus/TP2/scripts/ordre2ana2 (1).slx differ diff --git a/421-Controle_processus/TP2/scripts/ordre2ana2.slx b/421-Controle_processus/TP2/scripts/ordre2ana2.slx new file mode 100644 index 0000000..1e06388 Binary files /dev/null and b/421-Controle_processus/TP2/scripts/ordre2ana2.slx differ diff --git a/421-Controle_processus/TP2/scripts/ordre2num.slx b/421-Controle_processus/TP2/scripts/ordre2num.slx new file mode 100644 index 0000000..3fa0fe6 Binary files /dev/null and b/421-Controle_processus/TP2/scripts/ordre2num.slx differ diff --git a/421-Controle_processus/TP2/simtustin.png b/421-Controle_processus/TP2/simtustin.png new file mode 100644 index 0000000..5b04d1a Binary files /dev/null and b/421-Controle_processus/TP2/simtustin.png differ diff --git a/421-Controle_processus/TP2/tustin.png b/421-Controle_processus/TP2/tustin.png new file mode 100644 index 0000000..f7e5511 Binary files /dev/null and b/421-Controle_processus/TP2/tustin.png differ diff --git a/421-Controle_processus/TP3/CAN.png b/421-Controle_processus/TP3/CAN.png new file mode 100644 index 0000000..9c92fd8 Binary files /dev/null and b/421-Controle_processus/TP3/CAN.png differ diff --git a/421-Controle_processus/TP3/FFTBG.png b/421-Controle_processus/TP3/FFTBG.png new file mode 100644 index 0000000..159431c Binary files /dev/null and b/421-Controle_processus/TP3/FFTBG.png differ diff --git a/421-Controle_processus/TP3/SBPA.PNG b/421-Controle_processus/TP3/SBPA.PNG new file mode 100644 index 0000000..4bfacf1 Binary files /dev/null and b/421-Controle_processus/TP3/SBPA.PNG differ diff --git a/421-Controle_processus/TP3/TP3.pdf b/421-Controle_processus/TP3/TP3.pdf new file mode 100644 index 0000000..317b48d Binary files /dev/null and b/421-Controle_processus/TP3/TP3.pdf differ diff --git a/421-Controle_processus/TP3/TP3.tex b/421-Controle_processus/TP3/TP3.tex new file mode 100644 index 0000000..4952350 --- /dev/null +++ b/421-Controle_processus/TP3/TP3.tex @@ -0,0 +1,190 @@ +\documentclass{article} + +\input{../../preambule/preambule} + +\newcommand{\nomTD}{TP3 : Asservissement numériques de position} +\renewcommand{\nomentete}{UE421 - \nomTD} +\renewcommand{\auteur}{A. Arnould, T. Colinot, C.Colonna} +\newcommand{\z}{z^{-1}} + + +\begin{document} + +\titre{TP3 : Identification et asservissement numériques de position d'un bras à liaisons flexibles} + +\section{Introduction} + +On s'intéresse dans ce TP à la commande d'un montage disposant d'un bras entrainé par un moteur en liaison pivot élastique avec un chassis également en liaison pivot élastique avec le bâti. + +\subsection*{Préparation 1} + +\begin{itemize} +\item En utilisant la documentation fournie en annexe on trouve la constante de temps mécanique de la MCC : $\tau_m = 17 ms$. On peut également déduire des valeurs de résistance et d'inductance fournie un ordre de grandeur de la constante de temps électrique de la machine : \[\tau_{el} = \frac{L}{R} \approx 80 \mu s << \tau_m\] + +\item Comme la constante de temps mécanique est très grande devant la constante de temps électrique, on peut simplifier l'équation électrique donnée. \[u(t) = Ri(t) + \Phi\omega_m\] + +\item En analysant les ordres de dérivation maximum atteignables par combinaison des équations électriques et mécaniques fournies, on trouve : \begin{itemize} +\item Pour $\theta$ : on arrive jusqu'à $\ddot{\ddot{\theta}}$, ce qui explique le degré 4 au dénominateur. Comme les expressions ne comportent que $\dot{\theta}$, on obtient un $(1-\z)$ en facteur. +\item Pour $\psi$ : on atteint $\dot{\ddot{\psi}}$, ce qui explique l'ordre 3 pour $V_\psi$. +\item Pour $U$ : on sait que le système est causal, ce qui impose les degrés des polynômes aux numérateurs. +\end{itemize} + +\end{itemize} + +\subsection*{Manipulation 1} + +On injecte en entrée du système un créneau d'amplitude 2V crête-à-crête. On relève les signaux en sortie des capteurs de vitesse angulaire $\omega$ et de position angulaire du bras $\psi$. On obtient la courbe suivante : + +\begin{figure}[h!] +\begin{center} +\includegraphics[width=0.7\textwidth]{tau.png} +\end{center} +\end{figure} + +On relève le temps de montée du système approximé à un premier ordre, ce qui nous donne la bande passante du système. On trouve $\tau = 16 ms$ donc $F_max = 9.9Hz$. Une fréquence d'échantillonnage de 25ms est donc adaptée : elle conduit à une fréquence d'échantillonnage $F_e = 40Hz$ qui respecte la condition de Shannon : \[F_e > 2F_{max}\] + +On peut approximer le système par un premier ordre, car la dérivée à l'origine de la réponse indicielle n'est pas nulle. Le comportement observé est donc uniquement dû à l'aspect mécanique du système. Cela prouve que la constante de temps électrique est négligeable, et justifie la simplification de l'équation électrique. + +Pour une entrée sinusoïdale de fréquence 1Hz, on observe les angles $\theta$ et $\psi$ du système grâce à la carte Dspace et Simulink. + +\begin{figure} +\begin{center} +\includegraphics[width=0.7\textwidth]{CAN.png} +\end{center} +\end{figure} + +\section{Identification} +\subsection*{Préparation 2} + +\begin{itemize} + +\item D'après l'équation (6) on trouve l'équation de récurrence : \[\gamma[k] + (a_1-1)\gamma[k-1] + (a_2-a_1)\gamma[k-2] + (a_3-a_2)\gamma[k-3] + (a_3-a_4)\gamma(k-4) = \Sigma_{i=1..4}b_iu[k-i]\] + +\item On peut poser $\hat{\gamma}$ tel que $\hat{\gamma}[k] = \gamma[k] - \gamma[k-1]$. + +\item On exprime $\hat{\gamma}[k]$ en fonction des termes précédents de $\hat{\gamma}$ et de $u$ : +\[\hat{\gamma}[k] = -\Sigma_{i=1..3}a_i\hat{\gamma}[k-i] + \Sigma_{i=1..4}b_iu[k-i]\] +d'où l'expression matricielle : +\[\hat{\gamma}[k] = \left[ -\hat{\gamma}_{k-1} \quad -\hat{\gamma}_{k-2} \quad -\hat{\gamma}_{k-3} \quad -\hat{\gamma}_{k-4} \quad u_{k-1} \quad u_{k-2} \quad u_{k-3}\right] \left[a_1 \quad a_2 \quad a_3 \quad b_1 \quad b_2 \quad b_3 \quad b_4\right]^{T} \] + +\item D'après l'annexe 7 on obtient une expression de d[k] : \[d[k] = \left[-\hat{\gamma}[k-1] -\hat{\gamma}[k-2] ... -\hat{\gamma}[k-n] u[k-1] u[k-2] ... u[k-m]\right] \] +tel que $d[k]v = \hat{\gamma}\*[k,v]$ + +\item Par définition du SBPA, la grille fréquentielle est de $\frac{1}{NT_e}$. Pour $N=127$ et $T_e = 25ms$ on obtient 0.31Hz. + +\end{itemize} + +\subsection*{Manipulation 2} + +On génère une séquence de bruit pseudo-aléatoire de longueur 7. On utilise pour ceci un registre à décalage, que l'on peut mettre en oeuvre sous Simulink comme suit : + +\begin{figure} +\begin{center} +\includegraphics[width=0.7\textwidth]{SBPA.PNG} +\end{center} +\end{figure} + +La transformée de Fourier du SBPA est : + +\begin{figure} +\begin{center} +\includegraphics[width=0.5\textwidth]{spectroutroum.PNG} +\end{center} +\end{figure} + +L'enveloppe de la densité spectrale de puissance a la forme d'un sinus cardinal périodisé. On vérifie que la grille fréquentielle est suffisamment fine pour caractériser le système. + +On mesure les variations de l'angle du bras au cours du temps. On s'intéresse particulièrement au comportement fréquentiel de ce paramètre. La réponse en fréquence est donnée ci-dessous. + + +\begin{figure}[h!] +\begin{center} +\includegraphics[width=0.5\textwidth]{FFTBG.png} +\end{center} +\end{figure} + +Il existe des résonances matérialisées par des pics dans la réponse en fréquence. La plus importante se trouve à $F_{res} = 4.1Hz$. En excitant le système au GBF, avec un sinus de fréquence 4.1Hz, on remarque que cette résonance correspond à la fréquence où le bras oscille sans la plate-forme. + +On veut identifier le système à partir de la forme choisie. Pour ce faire on met en oeuvre un critère des moindres carrés portant sur les paramètres du système. + +Le code matlab est donné ci-dessous : +\begin{lstlisting} +%kth=10/(2*pi); +%kpsi = 25/(2*pi); + +mlibini + +var_names={'Model Root/theta/Out1';'Model Root/psi/Out1';'Model Root/Alpha7/Out1'}; +var=mlib('GetTrcVar',var_names); +mlib('Set','Trigger','off', 'TraceVars',var, 'StepSize',0.025, 'Start',0.0, 'Stop',5); + +mlib('StartCapture'); +while mlib('CaptureState')~=0,end +out_data=mlib('FetchData'); + +Te=0.025; +theta = out_data(1,:)-mean(out_data(1,:)); +psi = out_data(2,:)-mean(out_data(2,:)); +u = out_data(3,:)-mean(out_data(3,:)); +gamma = psi+theta; + + +t=0:(length(out_data)-1); +t=t*Te; + +hat_gamma = gamma - [0 gamma(1:end-1)]; +hat_gamma_1 = [0 hat_gamma(:,1:end-1)]; +hat_gamma_2 = [0 hat_gamma_1(:,1:end-1)]; +hat_gamma_3 = [0 hat_gamma_2(:,1:end-1)]; +hat_gamma_4 = [0 hat_gamma_3(:,1:end-1)]; + +u_1 = [0 u(:,1:end-1)]; +u_2 = [0 u_1(:,1:end-1)]; +u_3 = [0 u_2(:,1:end-1)]; + +d = [[-hat_gamma_1]; [-hat_gamma_2]; [-hat_gamma_3]; [-hat_gamma_4]; [u_1]; [u_2]; [u_3]]; +d = d'; +d = d(4:end,:); + +v_opt = inv(d'*d)*d'*gamma(4:end)'; + +\end{lstlisting} + +Les valeurs optimales sont \[v_{opt} = \vect{a_1 \\ a_2 \\ a_3 \\ a_4 \\ b_1 \\ b_2 \\ b_3} = \vect{-0,284 \\ +-0,540 \\ +-0,718 \\ +-0,525 \\ +-0,066 \\ +0,007 \\ +0,038}\] + +\section{Asservissement de position} + +\subsection*{Préparation 3} + +\begin{itemize} + +\item Le polynôme caractéristique monique s'exprime sous la forme \[\Pi_d(p) = 1+\frac{2m}{\omega_0}p + \frac{p^2}{w_0^2} +\] +Si on pose $p=\frac{1-z}{T_e}$ on trouve \[\Pi_d(z) = 1+\frac{2m}{\omega_0}\frac{1-z}{T_e} + \frac{(\frac{1-z}{T_e})^2}{w_0^2}\] +\[=1+\frac{2m}{\omega_0T_e}+\frac{1}{\omega_0^2T_e^2} + z(-\frac{2m}{ \omega_0T_e} - \frac{2}{\omega_0^2T_e^2}) + z^2(\frac{1}{\omega_0^2T_e^2})\] + +\item Pour $e(z) = 0$ et $p(z) = cste$ on a \[lim_{n\rightarrow+\infty}(\epsilon[n]) = lim_{z\rightarrow1}(\epsilon(z)) = lim_{z\rightarrow1}(R(z)*(...))\] +donc si $R(z) = (z-1)\tilde{R}(z)$ on a bien : \[lim_{n\rightarrow+\infty}(\epsilon[n]) = 0\] ce qui correspond à une erreur statique nulle pour une perturbation constante. + +\item L'équation diophantienne prend la forme : \[A(z)R(z) - B(z)R(z) = \Pi_d(z)A_0(z) \] +Par égalité des degrés : + +\item On prend $\omega = 100$. + +\end{itemize} + +\section*{Conclusion} + +Si la forme de la fonction de transfert en z supposée est la bonne alors cette identification de système représente exactement la réalité. + +On a utilisé un bruit blanc en entrée afin d'obtenir tous + + + +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TP3/jeanmoniqueleSBPA.png b/421-Controle_processus/TP3/jeanmoniqueleSBPA.png new file mode 100644 index 0000000..e2d4be5 Binary files /dev/null and b/421-Controle_processus/TP3/jeanmoniqueleSBPA.png differ diff --git a/421-Controle_processus/TP3/jeanmoniqueleSBPAlevraicettefois.PNG b/421-Controle_processus/TP3/jeanmoniqueleSBPAlevraicettefois.PNG new file mode 100644 index 0000000..14fc149 Binary files /dev/null and b/421-Controle_processus/TP3/jeanmoniqueleSBPAlevraicettefois.PNG differ diff --git a/421-Controle_processus/TP3/spectroutroum.PNG b/421-Controle_processus/TP3/spectroutroum.PNG new file mode 100644 index 0000000..760a7d9 Binary files /dev/null and b/421-Controle_processus/TP3/spectroutroum.PNG differ diff --git a/421-Controle_processus/TP3/tau.png b/421-Controle_processus/TP3/tau.png new file mode 100644 index 0000000..4bd58d5 Binary files /dev/null and b/421-Controle_processus/TP3/tau.png differ diff --git a/421-Controle_processus/TP4/TP4.m b/421-Controle_processus/TP4/TP4.m new file mode 100644 index 0000000..0a40872 --- /dev/null +++ b/421-Controle_processus/TP4/TP4.m @@ -0,0 +1,30 @@ +tau = 0.056; +Kohm=1.1; +Kthe=3.98; +K=1.18; + +K2=K*Kthe; +mBF=0.8; + +C=1/(mBF^2*4*K2*tau) +omega0 = (K2*C/tau)^(1/2) + +num=[K2]; +den=[tau 1 0]; + +sys=tf(num,den); + +% +% zeta=0.8;wn=12.5; +% rlocus(sys); +% sgrid(zeta,wn); +% +% C=0.1; +% sysBF = feedback(C*sys,1,-1); +rlocus(sys); + +% prep 2 +% omegaBF=[20 30 50]; +% +% l1=tau.*omegaBF.^2/K2 +% l2=(2*tau*mBF.*omegaBF-1)/K2 \ No newline at end of file diff --git a/421-Controle_processus/TP4/TP4.pdf b/421-Controle_processus/TP4/TP4.pdf new file mode 100644 index 0000000..2d42737 Binary files /dev/null and b/421-Controle_processus/TP4/TP4.pdf differ diff --git a/421-Controle_processus/TP4/TP4.tex b/421-Controle_processus/TP4/TP4.tex new file mode 100644 index 0000000..4900ed1 --- /dev/null +++ b/421-Controle_processus/TP4/TP4.tex @@ -0,0 +1,357 @@ +\documentclass[../../Cours_M1.tex]{subfiles} +\newcommand{\nomTD}{TP4 : Asservissement par retour d'état} +\renewcommand{\nomentete}{UE421-\nomTD} +\renewcommand{\auteur}{Aymeric Arnould, Tom Colinot} +\newcommand{\z}{z^{-1}} + +\title{TP4 : Asservissement de position d'un moteur à courant continu par retour d'état} +\author{\auteur} + +\begin{document} +\maketitle + +\section*{I/ Introduction} +Nous allons dans ce TP mener une première étude pour identifier le moteur considéré. Ensuite, nous mettrons en place une correction proportionnelle, afin de voir dans quelle mesure la correction par retour d'état permet un meilleur réglage des paramètres du système bouclé. + + +\section*{II/ Présentation du moteur} + +\subsection*{Préparation 1} +\begin{itemize}\setlength{\itemsep}{10mm} +\item Le frottement sec est assimilable à une perturbation en couple constant. Ainsi, pour réduire son importance dans la modélisation, il faut essayer d'augmenter l'amplitude de la tension d'entrée, et donc du couple créé, pour que celui-ci soit prépondérant devant le frottement sec. Il faut toutefois conserver une tension d'entrée entre $\pm$ 10 V pour ne pas avoir de saturation. + +\item \textbf{Détermination de $K_2$} + +En boucle ouverte, la fonction de transfert relative à la tension image de la position est : +\[\frac{V_{\theta}(p)}{U(p)} = \frac{K_2}{p(1+\tau p)} = \frac{K_2}{p}-\frac{K_2\tau}{1+\tau p}\] +On en déduit la réponse indicielle : +\[v_{\theta}(t) = K_2(t - \tau(1-e^{t/\tau})), \forall t>0\] +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{indBO.png} +\caption{Allure de la réponse indicielle en boucle ouverte} +\end{figure} + +Dans la réponse indicielle, $K_2$ et $\tau$ correspondent à la pente et au pied de l'asymptote. + +\item \textbf{Détermination de} $K_1=KK_{\Omega}$ et $\tau$ + +En boucle ouverte, la fonction de transfert relative à la tension image de la vitesse est : +\[\frac{V_{\Omega}(p)}{U(p)} = \frac{K_1}{1+\tau p} \] +On en déduit la réponse indicielle : +\[v_{\Omega}(t) = K_1(1-e^{t/\tau}), \forall t>0\] + +$K_1$ est alors la valeur finale de $v_{\Omega}(t)$ et $\tau$ est le temps de montée à $63\%$. +\end{itemize} + + +\subsection*{Manipulation 1} +\begin{itemize}\setlength{\itemsep}{10mm} +\item \textbf{Détermination de $K_2$} avec $v_{\theta}(t)$ + +On génère un créneau en entrée de la boucle ouverte. La réponse de $V_{\theta}$ donnée en \emph{Annexe 1} est une rampe. Sa pente est de 18,9 V/rad pour un échelon d'amplitude 4V. Ainsi, on a \[\boxed{K_2 = KK_{\theta} = 4,725 V/rad} \]. + +Déterminer $\tau$ avec cet essai ne serait pas très précis, on utilise donc le second. + +\item \textbf{Détermination de} $K_1=KK_{\Omega}$ et $\tau$ avec $v_{\Omega}(t)$ + +On prend le même créneau mais on observe la réponse de $v_{\Omega}(t)$ donnée en \emph{Annexe 2}. On obtient un premier ordre si on prend une amplitude suffisamment grande et que l'on ajoute un offset pour que le sens de rotation ne s'inverse pas à chaque créneau. + +Pour un échelon de 3V, la valeur finale est de 4V, donc \[\boxed{K_1 = KK_{\Omega} = 1,3}\] + +Le temps de montée à $63\%$ est \[\boxed{\tau = 56ms}\] + +\item \textbf{Essai harmonique} + +On génère une tension d'entrée sinusoïdale. En observant +\[V_{\Omega}(p) = \frac{K_1}{1+\tau p} U(p)\] +on peut déterminer $\tau$ en observant le déphasage entre $v_{\Omega}(t)$ et $u(t)$ (\emph{Annexe 3}). En effet, lorsque la pulsation vaut $\frac{1}{\tau}$, le déphasage entre les deux signaux sera de $45^o$. + +On a un déphasage de $45^o$ pour une pulsation de 2,84 Hz, soit $\tau = 56ms$. + +\item \textbf{Détermination de $K_{\theta}$} + +Pour obtenir la valeur de $K_{\theta}$, on choisit de faire tourner le moteur d'un angle de $2\pi$ (repéré entre deux remises à zéro du capteur). Pour cela, on injecte une consigne continue (échelon de fréquence très faible). Pour $\theta$ allant de 0 à $2\pi$, la tension varie proportionnellement de $0$ à $25V$. +On a donc +\[K_{\theta} = \frac{25}{2\pi} = 3.98 V/rad\] + +On en déduit donc : +\begin{itemize} +\item $K_{\theta} = 3.98 V/rad$ +\item $K = 1,18 V^{-1}.rad.s^{-1}$ +\item $K_{\Omega} = 1,1V.rad^{-1}.s$ +\end{itemize} + + +\end{itemize} + + +\section*{III/ Asservissement de position par un correcteur proportionnel} + +\subsection*{Préparation 2} +\begin{figure}[h!] +\centering +\begin{tikzpicture} +\sbEntree{E} +\sbComp{comp}{E} +\sbRelier[$E(p)$]{E}{comp} + +\sbBloc[3]{CP}{$C$}{comp} +\sbRelier[$U(p$)]{comp}{CP} + +\sbBloc[3]{mot}{$\frac{K}{1+\tau p}$}{CP} +\sbRelier{CP}{mot} + +\sbBloc[3]{int}{$\frac{1}{p}$}{mot} +\sbRelier[$\Omega(p)$]{mot}{int} + +\sbBloc[3]{sys}{$K_{\theta}$}{int} +\sbRelier[$\theta(p)$]{int}{sys} + +\sbSortie[3]{S}{sys} +\sbRelier[$V_{\theta}(p)$]{sys}{S} + +\sbRenvoi{sys-S}{comp}{} +\end{tikzpicture} +\caption{Asservissement considéré} +\end{figure} + +\begin{itemize}\setlength{\itemsep}{10mm} +\item La fonction de transfert en boucle fermée est : +\[\frac{V_{\theta}(p)}{E(p)} = \frac{1}{p(1+\tau p) + K_2C} = \frac{1}{\frac{\tau}{K_2C}p^2 + \frac{1}{K_2C}p+1}\] + +On en déduit donc +\begin{align*} +\omega_{0BF} & = \sqrt{\frac{K_2C}{\tau}} \\ +m_{BF} & = \frac{1}{2\sqrt{\tau K_2C}} \\ +C & = \frac{1}{4m_{BF}^2K_2\tau} +\end{align*} + +\item On veut régler le coefficient d'amortissement $m_{BF}=0,8$. On a donc : +\[ \boxed{ C_0 = 1,63 \quad \et \quad \omega_{0BF} = 12,5 rad/s} \] + +\item Les pôles de la fonction de transfert en boucle fermée $\frac{V_{\theta}(p)}{E(p)}$ sont : + +\begin{multicols}{2} +Pour $m<1$ +\[p_{1,2} = -\frac{1}{2\tau} \pm j \frac{\sqrt{4\tau K_2 C -1}}{2\tau} \] +Les pôles ont pour partie réelle $-\frac{1}{2\tau}$ et se déplacent sur un axe vertical lorsque $C$ varie. + +Pour $m\geq 1$ +\[p_{1,2} = -\frac{1}{2\tau} \pm \frac{\sqrt{1 - 4\tau K_2 C}}{2\tau} \] +Lorsque $C$ varie, $p_1$ se déplace entre 0 et $-\frac{1}{2\tau}$, et $p_2$ entre $-\frac{1}{2\tau}$ et $-2\frac{1}{2\tau}$ +\end{multicols} + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.4]{rlocus.png} +\caption{Lieu des pôles (simulé sous Matlab avec la fonction \texttt{rlocus})} +\end{figure} + +Pour $m<1$, les pôles se déplacent sur un axe vertical. La distance à l'origine ($\omega_0$) et l'angle avec l'axe vertical ($m$) varient donc simultanément. + +\item À l'aide des abaques, pour $C=C_0$, donc $m=0,8$ et $\omega_{0BF} = 12,5 rad/s$, on obtient : +\[t_r = 280 ms \] +\[D_1 = 1,5\% \] + +Le gain statique de la fonction de transfert en boucle fermée est unitaire, donc l'erreur statique de position est nulle. +\end{itemize} + +\subsection*{Manipulation 2} + +\begin{itemize}\setlength{\itemsep}{10mm} +\item Avec les paramètres trouvés en préparation 1, on recalcule : +\[ C_0 = 1,485 \quad \et \quad \omega_{0BF} = 11,16 rad/s \] +On a alors +\[ t_r = 313 ms \quad \et \quad D_1 = 1,5\% \] + +\item Lorsqu'on applique un échelon au système bouclé, on observe deux phases dans la réponse. En effet, il y a un jeu important dans l'engrenage, c'est le phénomène qu'on observe en premier. Ce phénomène a également tendance à retarder la réponse. Pour le minimiser, on augmente l'amplitude de la consigne.\\ + +Sur l'\emph{annexe 5}, on relève la réponse de $v_{\theta}(t)$ à un échelon de consigne. On observe un temps de réponse de $394ms$. C'est plus élevé que ce à quoi on s'attendait car il y a du jeu dans l'engrenage qui peut retarder la réponse. L'erreur statique est quasiment nulle. + +Le dépassement prévu était de l'ordre de $1\%$ donc n'est pas visible sur le relevé. + +\item Sur les faibles amplitudes, l'erreur statique augmente (voir \emph{annexe 6}). En effet, le phénomène de jeu ainsi que celui de frottement sec ne sont plus négligeables et le modèle de second ordre n'est plus valable. + + +\item \textbf{Régime harmonique} + +On veut déterminer le coefficient $m$ et la pulsation propre $\omega_{0BF}$ du système bouclé.\\ + +Pour cela, on va chercher la pulsation pour laquelle le déphasage est de $90^o$ ($\omega=\omega_{0BF}$). Ainsi, on aura un gain de $\frac{1}{2m}$. (\emph{Annexe 7}) + +On obtient ce déphasage pour $\omega_{0BF}=11,74Hz$, ce qui est conforme à ce qu'on attendait. (11,16Hz) +Le gain est de -3.3dB donc on obtient $m=\frac{1}{2}10^{3,3/20}=0.73$. (valeur attendue de 0,8) + +\item Grâce à cette manipulation, on peut conclure que le modèle de second ordre pour la réponse en angle est valable dans un domaine d'amplitude de consigne élevée. Lorsque l'amplitude est faible, des phénomènes (jeu dans les engrenages, frottement sec) interviennent et mettent à mal le modèle. +\end{itemize} +\section*{IV/ Asservissement de position par retour d'état} + +\subsection*{Préparation 3} + +\begin{itemize}\setlength{\itemsep}{10mm} +\item On part de la fonction de transfert +\[ \frac{V_{\theta}(p)}{U(p)} = \frac{K_2}{p(1+\tau p)} \] +On a donc +\[\boxed{K_2 u(t) = \frac{dv_{\theta}(t)}{dt} + \tau \frac{d^2v_{\theta}(t)}{dt^2}} \] + +\item En posant +\begin{align*} +& \left\{ +\begin{array}{ll} +x_1(t) & = v_{\theta}(t) = y(t) \\ +x_2(t) & = \frac{dv_{\theta}(t)}{dt} +\end{array} +\right. +\intertext{on a alors} +& \left\{ +\begin{array}{ll} +\frac{dx_1(t)}{dt} & = x_2\\ +\frac{dx_2(t)}{dt} & = \frac{K_2}{\tau}u(t) - \frac{1}{\tau}x_2(t) +\end{array} +\right. +\end{align*} + +Le modèle d'état peut donc s'écrire sous forme canonique commandable : +\[ +\left\{ +\begin{array}{rl} +\frac{d}{dt} \left[\begin{array}{c} +x_1(t) \\ +x_2(t) +\end{array} \right] + & = \left[\begin{array}{cc} +0 & 1 \\ +0 & -\frac{1}{\tau} +\end{array} \right] +. +\left[\begin{array}{c} +x_1(t) \\ +x_2(t) +\end{array} \right] + \left[\begin{array}{c} +0 \\ +\frac{K_2}{\tau} +\end{array} \right] u(t) \\ +\\ +y(t) & = \left[\begin{array}{cc} +1 & 0\\ +\end{array} \right]. \left[\begin{array}{c} +x_1(t) \\ +x_2(t) +\end{array} \right] +\end{array} +\right. +\] + +\item En posant $u(t) = -Lx(t) + \eta e(t)$, avec $L=[l_1 \quad l_2]$, +\begin{align*} +\frac{d}{dt} \left[\begin{array}{c} +x_1(t) \\ +x_2(t) +\end{array} \right] + & = \left[\begin{array}{cc} +0 & 1 \\ +0 & -\frac{1}{\tau} +\end{array} \right] +. +\left[\begin{array}{c} +x_1(t) \\ +x_2(t) +\end{array} \right] + \left[\begin{array}{c} +0 \\ +\frac{K_2}{\tau} +\end{array} \right] (-\left[\begin{array}{cc} +l_1 & l_2 +\end{array}\right]x(t) + \eta e(t)) \\ +\\ +& = \left[\begin{array}{cc} +0 & 1 \\ +-\frac{K_2l_1}{\tau} & -\frac{K_2l_2 +1}{\tau} +\end{array} \right] +. +\left[\begin{array}{c} +x_1(t) \\ +x_2(t) +\end{array} \right] + \left[\begin{array}{c} +0 \\ +\eta \frac{K_2}{\tau} +\end{array} \right] e(t)) +\end{align*} + +On a donc +\[ \boxed{F = \left[\begin{array}{cc} +0 & 1 \\ +-\frac{K_2l_1}{\tau} & -\frac{K_2l_2 +1}{\tau} +\end{array} \right] \quad \et \quad G = \left[\begin{array}{c} +0 \\ +\eta \frac{K_2}{\tau} +\end{array} \right] } \] + +\item Calculons l'équation caractéristique $D(p)= det(pI-F)$ du système bouclé : + +\[ D(p) = det +\left[\begin{array}{cc} +p & -1 \\ +\frac{K_2l_1}{\tau} & p+\frac{K_2l_2 +1}{\tau} +\end{array} \right] \] +\[\boxed{D(p) = p^2 + \frac{K_2l_2 +1}{\tau}p + \frac{K_2l_1}{\tau}}\] + +On peut l'assimiler à l'équation caractéristique d'une fonction de transfert du second ordre : +\[D_{2nd}(p) = p^2 + 2m_{BF}\omega_{0BF} + \omega_{0BF}^2\] + +avec +\begin{align*} +2m_{BF}\omega_{0BF} & = \frac{K_2l_2 +1}{\tau} \\ +\omega_{0BF}^2 & = \frac{K_2l_1}{\tau} +\end{align*} +Ainsi, +\[ \boxed{ l_1 = \frac{\tau \omega_{0BF}^2}{K_2} \quad \et \quad l_2 = \frac{2\tau m_{BF} \omega_{0BF}-1}{K_2} } \] + +On veut un amortissement $m_{BF} = 0.8$ et $\omega_{0BF} = $ 20 puis 30 et 50 rad/s :\\ + +\begin{center} +\begin{tabular}{|c|c|c|} +\hline +$\omega_{0BF}$ & $l_1$ & $l_2$ \\ +\hline +20 & 4.17 & 0.125 \\ +30 & 9.38 & 0.292 \\ +50 & 26.0 & 0.625 \\ +\hline +\end{tabular} +\end{center} + +\item On a $u(t) = -[l_1 \quad l_2]x(t) + \eta e(t)$ et on veut une erreur statique d'asservissement nulle, c'est-à-dire que $u(\infty) = 0$ lorsque $v_{\theta}(\infty) = e(\infty)$ : il faut donc que $\eta = l_1$. + +\subsection*{Manipulation 3} +\begin{itemize}\setlength{\itemsep}{10mm} +\item On met en oeuvre la correction par retour d'état en utilisant un gain $\frac{l_2K_{\theta}}{K_{\Omega}}$ pour $V_{\Omega}$ et $l_1$ pour $V_{\theta}$. + +On effectue, pour chacune des valeurs de $\omega_{0BF}$, une réponse à un échelon et une réponse harmonique. +\begin{figure}[h!] +\centering +\begin{tabular}{|c|c|c|c|c|c|} +\hline +$\omega_{0BF}$ (rad/s) & erreur statique & $D_1$ & $t_{r5}$ (ms) & $m_{BF}$ & Relevé \\ +\hline +20 & 0 & 1 \% & 150 & 0.64 & 8 et 9 \\ +\hline +30 & 0 & 7 \% & 99 & 0.54 & 10 et 11 \\ +\hline +\end{tabular} +\end{figure} + +Pour $\omega_{0BF}=50rad /s$, la réponse en régime harmonique n'est plus sinusoïdal (\emph{Annexes 12 et 13}). Des effets non linéaires apparaissent et on ne peut plus du tout utiliser le modèle du second ordre. + +On voulait imposer $m=0,8$ mais on observe que $m$ diminue. En effet, on avait considéré que le modèle était un second ordre. En réalité, lorsque $\omega_{0BF}$ augmente, on se rapproche de l'influence du système mécanique, ce qui rajoute encore de la phase. + +Par conséquent, la marge de phase du système diminue, et donc $m$ diminue et les dépassements augmentent.\\ + +Au delà de 20 rad/s, les performances sont fortement impactées par les effets de non linéarité du système. +\end{itemize} + +\end{itemize} + +\section*{Conclusion} +Nous avons au cours de ce TP identifié le moteur à l'aide d'une approche temporelle et harmonique. Nous avons ensuite vu que la correction proportionnelle classique permettait de garantir certaines performances, mais pas de régler indépendamment $\omega_{0BF}$ et $m_{BF}$. Ainsi, la mise en place de la commande par retour d'état permet, dans un certain domaine de validité, de régler ces paramètres de manière indépendante. +\end{document} \ No newline at end of file diff --git a/421-Controle_processus/TP4/impBO.png b/421-Controle_processus/TP4/impBO.png new file mode 100644 index 0000000..73668c5 Binary files /dev/null and b/421-Controle_processus/TP4/impBO.png differ diff --git a/421-Controle_processus/TP4/indBO.png b/421-Controle_processus/TP4/indBO.png new file mode 100644 index 0000000..3b271e4 Binary files /dev/null and b/421-Controle_processus/TP4/indBO.png differ diff --git a/421-Controle_processus/TP4/rlocus.png b/421-Controle_processus/TP4/rlocus.png new file mode 100644 index 0000000..0ffdb59 Binary files /dev/null and b/421-Controle_processus/TP4/rlocus.png differ