\documentclass[10pt,a4paper]{article} 

\usepackage{ananu}
\usepackage{amsmath}

\begin{document}
%%  Le titre du TP
\title{\textbf{Rapport du TP2}}

%%  Commande de page de garde avec 5 arguments (les arguments entre accolades) :
%   1er argument : Numéro du TP (ici TP No 0).
%   2e argument : Numéro du binôme (ici No A00, c'est-� -dire groupe A, binôme 00).
%   3e et 4e arguments : Prénoms et noms du binôme.
%   5 argument : Prénom et nom dans le cas d'un trinôme (ici le champ est laissé vide).


\pageGardeAnaNu{2}{B6}{Alexandre Peltier} {Louis Pendu}{  }
\newpage 
\section{Introduction }
$ $ \\
De fa�on g�n�rale, une r�action chimique consiste � transformer une quantit� d'un produit X en un produit Y. Ceci est �galement valide pour la r�action de Van Der Vusse, qui entre autre est une exp�rience exothermique( qui d�gage de la chaleur), et qui va nous int�resser par la suite.
\\
Le but de ce TP est, � partir de donn�es observ�es � savoir l'entr�e et la sortie de produits chimiques dans un r�acteur, d'�laborer un syst�me de pr�vision.Ce syst�me �valuera  la quantit� de sortie du produit � un instant t quelconque en se basant uniquement sur des exp�riences pass�es.

\newpage
\section{Un peu de th�orie...}
$ $ \\
Dans cette r�action de Van Der Vusse nous avons plusieurs param�tres � prendre en compte :
\\

-$c_{A}$ : la concentration du produit A (entr�e)
\\

-$T$ : la temp�rature dans le r�acteur
\\

-$T_{K}$ : la temp�rature dans le r�frig�rant
\\

-F : le flot d'entr�e du produit A
\\

-$Q_{K}$ : d�gagement de chaleur de la r�action
\\

-$c_{B}$ : la concentration du produit B (sortie)
\\
\\
Les trois premiers param�tres sont mesur�s, F et $Q_{K}$ sont des variables manipul�es et $c_{B}$ est une variable contr�l�e par ces deux variables.
\\
\\
\newpage 
Pour d�crire la dynamique du syst�me, on introduit un syst�me d'�tat dont l'�quation (sous forme diff�rentielle) est la suivante :
\begin{equation}
\dot{x} = Ax(t) + bu(t)
\end{equation}
\\
x(t) repr�sente les variations des flots d'entr�e/sortie � un instant t\\
$x_{1}$ repr�sente la variation du flot d'entr�e du produit A\\
$x_{2}$ repr�sente la variation du flot d'entr�e du produit B\\
u(t) repr�sente la commande du syst�me � un instant t\\
bu(t) permet de g�rer la stabilisation de la r�action.\\
 
Nous choisissons un temps initial $t_{0}$ = 0, un temps final $t_{1}$ = 12 et un temps d'�chantillonnage $dt$ = 0.05.\\

Dans notre cas, nous avons A et b qui sont constants et la commande u(t) qui vaudra 1 ou 5. Ainsi nous avons les conditions suivantes : 
\begin{equation}
\dot{x} = \begin{pmatrix}
\dot{x_{1}} \\
\dot{x_{2}}
\end{pmatrix}
\end{equation}
\begin{equation}
A = \begin{pmatrix}
-1 & 10 \\
1 & 0
\end{pmatrix}
\end{equation}

\begin{equation}
x = \begin{pmatrix}
x_{1} \\
x_{2}
\end{pmatrix}
\end{equation}

\begin{equation}
b = \begin{pmatrix}
1 \\
0
\end{pmatrix}
\end{equation}

\begin{equation}
u(t) = 1
\end{equation}

\begin{center}
ou
\end{center}
\begin{equation}
u(t) = 5
\end{equation}\\

Ainsi, nous allons essayer de mettre en d�pendance les variables $x_{1}$ et $x_{2}$.
Pour cela nous allons utiliser l'identification par la m�thode des moindres carr�s. \\
On d�clare le fait que $x_{2}(t+1)$ est une combinaison lin�aire des  $x_{1}(0)$, $x_{1}(1)$, ..., $x_{1}(t)$, $x_{2}(0)$, $x_{2}(1)$, ..., $x_{2}(t)$ 
\begin{equation}
x_{2}(t+1) = a_{1}x_{1}(t)+...+a_{t+1}x_{1}(0)+b_{1}x_{2}(t)+...+b_{t+1}x_{2}(0)
\end{equation}
$a_{1}$,...,$a_{t+1}$,$b_{1}$,...$b_{t+1}$ expriment ici la dynamique du syst�me.\\
Le probl�me que l'on cherche � r�soudre �tant le suivant :
\begin{center}
\textbf{Peut-on calculer la d�pendance entre ce qui sortira � un instant t et ce qui est d�j� entr� et sorti auparavant ?}
\end{center}

\newpage 
\section{... Avant la pratique}
Comme indiqu� dans l'�nonc� nous avons cr�� quatre programmes en Scilab : un �tant le menu principal et les autres effectuant l'identification de la sortie du syst�me par moindres carr�s selon les mod�les du premier, deuxi�me et troisi�me ordre.

\textbf{Pour lancer le programme veuillez ouvrir Scilab, vous mettre dans le bon r�pertoire courant et taper la commande TP2()}

\subsection{Premier ordre}
Pour le mod�le du premier ordre on a l'�quation suivante :
\begin{equation}
x_{2}(t+1) = a_{1}x_{1}(t)+b_{1}x_{2}(t)
\end{equation}
Notons :
\begin{equation}
a = \begin{pmatrix}
a_{1} \\
b_{1}
\end{pmatrix}
\end{equation}

Pour trouver la matrice "a" nous sommes amen�s � r�soudre le syst�me matriciel suivant :
\begin{equation}
y=X*a
\end{equation}

\begin{equation}
\begin{pmatrix}
x_{2}(1) \\
... \\
... \\
x_{2}(241)
\end{pmatrix}
=
\begin{pmatrix}
x_{1}(0) & x_{2}(0) \\
... & ... \\
... & ... \\
x_{1}(240) & x_{2}(240)
\end{pmatrix}
\begin{pmatrix}
a_{1}\\
b_{1}
\end{pmatrix}
\end{equation}

L'inconnue dans l'�quation pr�c�dente est a. Le but �tant de le trouver nous allons r��crire l'�quation pr�c�dente afin de trouver a.\\
Le probl�me est que la matrice X n'est pas une matrice carr�e, par cons�quent son inverse n'existe pas. Nous passons alors par son pseudo�nverse ($X^{+}$). Cela revient � �crire l'�quation suivante :
\begin{equation}
a=X^{+}*y
\end{equation}
\\

Le passage par le pseudo�nverse est le "coeur" de notre probl�me et le but de notre programme. En effet, on essaye de voir � quel(s) moment(s) nous pouvons l'utiliser et de quelle mani�re. 
Tout d'abord nous utilisons la fonction svd (singular value decomposition) de Scilab qui prend en param�tre la matrice X. Elle renvoie alors 3 matrices : U, Delta et V que nous allons utiliser pour le calcul de $X^{+}$.\\

Il faut, au pr�alable, retoucher Delta et U en calculant respectivement leur pseudo�nverse $Delta^{+}$ et transpos�e $U^{T}$. On a ainsi l'�quation suivante :
\begin{equation}
X^{+}=V*Delta^{+}*U^{T}
\end{equation}

A pr�sent, on peut ais�ment r�soudre l'�quation (5) en faisant le calcul matriciel de $X^{+}$ et de y.




\newpage 
\subsection{Deuxi�me ordre}
Pour le mod�le du deuxi�me ordre on a l'�quation suivante :
\begin{equation}
x_{2}(t+1) = a_{1}x_{1}(t)+a_{2}x_{1}(t-1)+b_{1}x_{2}(t)+b_{2}x_{2}(t-1)
\end{equation}

Notons :
\begin{equation}
a = \begin{pmatrix}
a_{1} \\
b_{1} \\
a_{2} \\
b_{2} 
\end{pmatrix}
\end{equation}


Pour trouver la matrice "a" nous sommes amen�s � r�soudre le syst�me matriciel suivant :
\begin{equation}
y=X*a
\end{equation}

\begin{equation}
\begin{pmatrix}
x_{2}(2) \\
... \\
... \\
x_{2}(241)
\end{pmatrix}
=
\begin{pmatrix}
x_{1}(0) & x_{2}(0) & x_{1}(1) & x_{2}(1) \\
... & ... & ... & ... \\
... & ... & ... & ... \\
x_{1}(239) & x_{2}(239) & x_{1}(240) & x_{2}(240)
\end{pmatrix}
\begin{pmatrix}
a_{1}\\
b_{1}\\
a_{2}\\
b_{2}
\end{pmatrix}
\end{equation}
\\

L'inconnue dans l'�quation pr�c�dente est a. Le but �tant de le trouver nous allons r��crire l'�quation pr�c�dente afin de trouver a.\\
Le probl�me est que la matrice X n'est pas une matrice carr�e, par cons�quent son inverse n'existe pas. Nous passons alors par son pseudo�nverse ($X^{+}$). Cela revient � �crire l'�quation suivante :
\begin{equation}
a=X^{+}*y
\end{equation}


Le passage par le pseudo�nverse est le "coeur" de notre probl�me et le but de notre programme. En effet, on essaye de voir � quel(s) moment(s) nous pouvons l'utiliser et de quelle mani�re. 
Tout d'abord nous utilisons la fonction svd (singular value decomposition) de Scilab qui prend en param�tre la matrice X. Elle renvoie alors 3 matrices : U, Delta et V que nous allons utiliser pour le calcul de $X^{+}$.\\

Il faut, au pr�alable, retoucher Delta et U en calculant respectivement leur pseudo�nverse $Delta^{+}$ et transpos�e $U^{T}$. On a ainsi l'�quation suivante :
\begin{equation}
X^{+}=V*Delta^{+}*U^{T}
\end{equation}

A pr�sent, on peut ais�ment r�soudre l'�quation (11) en faisant le calcul matriciel de $X^{+}$ et de y.

\newpage 
\subsection{Troisi�me ordre}
Pour le mod�le du troisi�me ordre on a l'�quation suivante :
\begin{equation}
x_{2}(t+1) = a_{1}x_{1}(t)+a_{2}x_{1}(t-1)+a_{2}x_{1}(t-2)+b_{1}x_{2}(t)+b_{2}x_{2}(t-1)+b_{3}x_{2}(t-2)
\end{equation}

Notons :
\begin{equation}
a = \begin{pmatrix}
a_{1} \\
b_{1} \\
a_{2} \\
b_{2}  \\
a_{3} \\
b_{3}
\end{pmatrix}
\end{equation}


Pour trouver la matrice "a" nous sommes amen�s � r�soudre le syst�me matriciel suivant :
\begin{equation}
y=X*a
\end{equation}

\begin{equation}
\begin{pmatrix}
x_{2}(3) \\
... \\
... \\
x_{2}(241)
\end{pmatrix}
=
\begin{pmatrix}
x_{1}(0) & x_{2}(0) & x_{1}(1) & x_{2}(1) & x_{1}(2) & x_{2}(2) \\
... & ... & ... & ... & ... & ... \\
... & ... & ... & ... & ... & ... \\
x_{1}(238) & x_{2}(238) & x_{1}(239) & x_{2}(239) & x_{1}(240) & x_{2}(240)
\end{pmatrix}
\begin{pmatrix}
a_{1}\\
b_{1}\\
a_{2}\\
b_{2}\\
a_{3}\\
b_{3}
\end{pmatrix}
\end{equation}
\\
L'inconnue dans l'�quation pr�c�dente est a. Le but �tant de le trouver nous allons r��crire l'�quation pr�c�dente afin de trouver a.\\
Le probl�me est que la matrice X n'est pas une matrice carr�e, par cons�quent son inverse n'existe pas. Nous passons alors par son pseudo�nverse ($X^{+}$). Cela revient � �crire l'�quation suivante :
\begin{equation}
a=X^{+}*y
\end{equation}


Le passage par le pseudo�nverse est le "coeur" de notre probl�me et le but de notre programme. En effet, on essaye de voir � quel(s) moment(s) nous pouvons l'utiliser et de quelle mani�re. 
Tout d'abord nous utilisons la fonction svd (singular value decomposition) de Scilab qui prend en param�tre la matrice X. Elle renvoie alors 3 matrices : U, Delta et V que nous allons utiliser pour le calcul de $X^{+}$.\\

Il faut, au pr�alable, retoucher Delta et U en calculant respectivement leur pseudo�nverse $Delta^{+}$ et transpos�e $U^{T}$. On a ainsi l'�quation suivante :
\begin{equation}
X^{+}=V*Delta^{+}*U^{T}
\end{equation}

A pr�sent, on peut ais�ment r�soudre l'�quation (17) en faisant le calcul matriciel de $X^{+}$ et de y.





\newpage 
\section{R�sultats}

Dans cette partie, nous allons nous int�resser aux diff�rents r�sultats que nous avons obtenus � travers nos fichiers Scilab dans le but d'en tirer des conclusions dans la partie suivante. 

Nous avons souhait� faire un calcul de l'erreur commise � chaque ordre et pour chaque valeur de commande et voir ainsi plus tard leur influence sur l'efficacit� et la pr�cision des calculs.
Ainsi nous obtenons six erreurs.
Nous avons calculer l'erreur de la mani�re suivante :
\begin{equation}
Erreur = \frac{|Valeur Pratique - Valeur Th\acute{e}orique|}{Valeur Pratique}
\end{equation}
Nous cherchons ici l'incertitude entre la valeur exacte et la valeur approch�e. On souhaite d�terminer et quantifier notre erreur de calcul\\

\subsection{Premier ordre}
Pour ce qui est du premier ordre nous obtenons les deux erreurs suivantes :
\\

-u=1 : \textbf{Erreur = $8,6529*10^{-1}$}\\

-u=5 : \textbf{Erreur = $2,1780*10^{-1}$}
\\


\subsection{Deuxi�me ordre}
Pour ce qui est du deuxi�me ordre nous obtenons les deux erreurs suivantes :
\\

-u=1 : \textbf{Erreur = $7,0600*10^{-7}$}\\

-u=5 : \textbf{Erreur = $1,4350*10^{-6}$}
\\

\subsection{Troisi�me ordre}
Pour ce qui est du troisi�me ordre nous obtenons les deux erreurs suivantes :
\\

-u=1 : \textbf{Erreur = $1,5990*10^{-6}$}\\

-u=5 : \textbf{Erreur = $4,0550*10^{-7}$}\\
\\\\
\textbf{N.B. : Etrangement les diff�rents fichiers ne nous renvoient pas la m�me choses s'ils sont lanc�s individuellement ou s'ils sont lanc�s � travers le fichier repr�sentant le menu. Cette diff�rence varie d'une puissance de 10 allant de 0 � 1. Nous avons essay� par tous les moyens de la r�soudre mais nous n'y sommes pas arriv�s. Nous arrivons cependant aux m�mes conclusions avec les deux jeux de valeurs.}

\newpage 
\section{Analyse}
Dans cette partie, nous allons donc interpr�ter les diff�rents r�sultats obtenus ci-dessus. \\

Int�ressons-nous tout d'abord � l'impact de l'ordre sur l'identification. On remarque que pour le premier ordre on a une erreur beaucoup plus importante qu'aux autres ordres (qui est de l'ordre de $10^{-6}$).\\

On peut tout simplement dire que nous ne pouvons pr�voir avec exactitude la sortie � l'instant t+1 en se basant simplement aux entr�e/sortie � l'instant t.\\

Par contre, on constate que l'erreur est sensiblement la m�me au deuxi�me et au troisi�me ordre. On peut ainsi en conclure qu'� partir de l'ordre 2 la qualit� de pr�diction est assez bonne. Ainsi il suffit de savoir toutes les actions des instants t et t+1 pour savoir la sortie � l'instant t+2.\\

Passons ensuite � l'effet de la commande sur la qualit� de l'identification. On remarque qu'au premier ordre, la commande a un impact non n�gligeable sur l'erreur.\\

De plus, pour les deuxi�me et troisi�me ordre, la commande a un effet que l'on peut qualifier de "nul" sur l'erreur et donc sur la pr�vision de la sortie. Par cons�quent on peut en conclure que la commande n'influe en rien sur la pr�diction de l'�volution du syst�me.\\\\\\




\section{Conclusion}
Pour conclure par rapport � ce TP, on en tire comme conclusion que l'identification par la m�thode des moindres carr�s est assez fiable.\\

 En effet nous ne d�passons � aucun moment les 1\% d'erreur. 
Cependant nous pouvons affirmer que cette m�thode a un meilleur rapport pr�cision / co�t pour le mod�le du deuxi�me ordre. En effet, on constate que l'ordre de l'erreur entre le premier et le deuxi�me ordre est de $10^{-6}$ alors qu'entre le deuxi�me et le troisi�me l'ordre est �quivalent. \\

De plus les calculs obtenus par le deuxi�me ordre sont moins longs et demande ainsi moins de ressources � la machine. 

\end{document}