\documentclass[12pt, a4paper, oneside]{report}

%--------------------------------------------------------------
% PACKAGES
%--------------------------------------------------------------
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{geometry}
\geometry{top=2.5cm, bottom=2.5cm, left=3cm, right=2.5cm}

\usepackage{graphicx}
\usepackage{amsmath, amssymb, amsthm}
\usepackage{mathtools}
\usepackage{bm}
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=black,
    citecolor=black,
    urlcolor=blue
}
\usepackage{setspace}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{tocloft}
\usepackage{nomencl}
\usepackage{appendix}
\usepackage{cite}
\usepackage{url}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning, shapes.geometric, calc, fit}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

%--------------------------------------------------------------
% MISE EN PAGE
%--------------------------------------------------------------
\onehalfspacing

% --- En-têtes et pieds de page ---
\pagestyle{fancy}
\fancyhf{}
% Header : titre du chapitre à gauche uniquement (pas de numéro en haut)
\fancyhead[L]{\small\nouppercase{\leftmark}}
\renewcommand{\headrulewidth}{0.4pt}
% Pied de page : numéro de page centré
\fancyfoot[C]{\thepage}
\renewcommand{\footrulewidth}{0pt}
% Style plain (première page de chaque chapitre) : numéro en bas seulement
\fancypagestyle{plain}{%
  \fancyhf{}%
  \fancyfoot[C]{\thepage}%
  \renewcommand{\headrulewidth}{0pt}%
}

\titleformat{\chapter}[display]
  {\normalfont\Large\bfseries}
  {\chaptertitlename\ \thechapter}{14pt}{\huge}

%--------------------------------------------------------------
% NOMENCLATURE
%--------------------------------------------------------------
\makenomenclature

%==============================================================
\begin{document}
%==============================================================

%--------------------------------------------------------------
% PAGE DE GARDE
%--------------------------------------------------------------
\begin{titlepage}
\centering
{\small
République Algérienne Démocratique et Populaire \\
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
}

\vspace{0.3cm}
\textbf{UNIVERSITÉ MOULOUD MAMMERI DE TIZI-OUZOU}

\vspace{0.5cm}
\includegraphics[width=3cm]{attachements/ummto_logo_100x100.png}\\[0.3cm]

\textbf{FACULTÉ DU GÉNIE ÉLECTRIQUE ET D'INFORMATIQUE} \\
\textbf{DÉPARTEMENT D'AUTOMATIQUE}

\vspace{0.7cm}
\Large\textbf{Mémoire de Fin d'Études\\de MASTER ACADEMIQUE}

\vspace{0.5cm}
\normalsize
Domaine : Sciences et Technologies \\
Filière : Automatique \\
Spécialité : Automatique et Informatique Industrielle

\vspace{0.5cm}
Présenté par

\Large\textbf{Rayane AKKOUCHE}

\vspace{0.45cm}
\underline{\textbf{Thème:}}

\vspace{0.5cm}
\LARGE\textbf{Contrôleur PID d'ordre fractionnaire réglé par réseau de neurones}

\vspace{1.0cm}
\normalsize\textit{Mémoire soutenu le \ldots/\ldots/2026 devant le jury composé de :}

\vspace{0.6cm}
\begin{flushleft}
\hspace{2cm}
\begin{tabular}{lll}
M.   Prénom NOM     & Grade, Lieu d'exercice   & Président        \\[0.3cm]
Mme Karima AMOURA   & Grade, UMMTO             & Encadrante       \\[0.3cm]
M.   Prénom NOM     & Grade, Lieu d'exercice   & Examinateur      \\[0.3cm]
M.   Prénom NOM     & Grade, Lieu d'exercice   & Examinateur      \\
\end{tabular}
\end{flushleft}

\vfill
\end{titlepage}

%--------------------------------------------------------------
% REMERCIEMENTS
%--------------------------------------------------------------
\chapter*{Remerciements}
\addcontentsline{toc}{chapter}{Remerciements}


\newpage

%--------------------------------------------------------------
% DÉDICACE
%--------------------------------------------------------------
\chapter*{Dédicace}
\addcontentsline{toc}{chapter}{Dédicace}
\thispagestyle{empty}

\vspace*{4cm}
\begin{center}
\end{center}
\newpage

%--------------------------------------------------------------
% RÉSUMÉ
%--------------------------------------------------------------
\chapter*{Résumé}
\addcontentsline{toc}{chapter}{Résumé}

Ce mémoire porte sur la synthèse d'un contrôleur PID d'ordre fractionnaire (FOPID)
dont les paramètres sont réglés à l'aide d'un réseau de neurones artificiels, appliqué à la
commande de la vitesse d'un véhicule électrique hybride. L'objectif est d'imposer à la boucle
fermée un comportement robuste d'iso-amortissement par l'intermédiaire d'un modèle de
référence fractionnaire.

Dans un premier temps, les notions fondamentales des systèmes d'ordre fractionnaire sont
présentées, notamment le dérivateur généralisé et son approximation par la méthode d'Oustaloup.
Le modèle de référence fractionnaire d'iso-amortissement est ensuite introduit et analysé.

Le deuxième chapitre traite du contrôleur PID classique et du contrôleur FOPID, leurs
structures, leurs types et leurs méthodes de réglage, incluant une application numérique.
Le troisième chapitre est consacré aux réseaux de neurones artificiels : architecture, types,
apprentissage, régularisation et critères de performance.

Le quatrième chapitre présente le modèle du véhicule électrique hybride, sa modélisation
et son analyse, ainsi que la conception complète du contrôleur Neuro-FOPID et les résultats
de simulation. Le Neuro-FOPID réduit le dépassement à $0.29\%$, l'ISE d'un facteur 7 par
rapport au PID classique, et maintient ces performances sur $\pm 30\%$ de variation de gain.

\vspace{0.5cm}
\textbf{Mots-clés :} Contrôleur FOPID, Réseau de neurones, Modèle de référence fractionnaire,
Systèmes d'ordre fractionnaire, Véhicule électrique, Commande robuste, Iso-amortissement.

\newpage

%--------------------------------------------------------------
% TABLE DES MATIÈRES
%--------------------------------------------------------------
\tableofcontents
\newpage

%--------------------------------------------------------------
% LISTE DES FIGURES
%--------------------------------------------------------------
\listoffigures
\addcontentsline{toc}{chapter}{Table des figures}
\newpage

%--------------------------------------------------------------
% LISTE DES TABLEAUX
%--------------------------------------------------------------
\listoftables
\addcontentsline{toc}{chapter}{Liste des tableaux}
\newpage

%--------------------------------------------------------------
% LISTE DES SYMBOLES
%--------------------------------------------------------------
\chapter*{Liste des Symboles}
\addcontentsline{toc}{chapter}{Liste des Symboles}

\section*{Symboles Généraux et Mathématiques}
\begin{tabular}{ll}
$s$         & Variable de Laplace (opérateur de dérivation) \\
$t$         & Temps (s) \\
$j$         & Unité imaginaire ($j^2 = -1$) \\
$\omega$    & Pulsation (rad/s) \\
$\omega_c$  & Fréquence de coupure ou de référence (rad/s) \\
$\Gamma(\cdot)$ & Fonction Gamma d'Euler \\
$e(t)$      & Signal d'erreur ($e(t) = r(t) - y(t)$) \\
$u(t)$      & Signal de commande (sortie du contrôleur) \\
$r(t)$      & Consigne (référence) \\
$y(t)$      & Sortie du système \\
\end{tabular}

\section*{Chapitre I : Systèmes d'Ordre Fractionnaire}
\begin{tabular}{ll}
$D^\alpha$      & Opérateur de dérivée/intégrale fractionnaire d'ordre $\alpha$ \\
$\alpha, \lambda, \nu$ & Ordres fractionnaires (exposants réels) \\
$n$             & Ordre entier (dans les définitions Riemann-Liouville et Caputo) \\
$\omega_l$      & Fréquence basse de la bande d'approximation (rad/s) \\
$\omega_h$      & Fréquence haute de la bande d'approximation (rad/s) \\
$\tau_c$        & Constante de temps du modèle de référence fractionnaire \\
$\varphi_m$     & Marge de phase (rad ou deg) \\
$M_p$           & Dépassement (Overshoot) (\%) \\
$T_s$           & Temps de stabilisation (s) \\
\end{tabular}

\section*{Chapitre II : Contrôleurs PID et FOPID}
\begin{tabular}{ll}
$K_p$       & Gain proportionnel \\
$K_i$       & Gain intégral \\
$K_d$       & Gain dérivé \\
$T_i$       & Constante de temps intégrale (s) \\
$T_d$       & Constante de temps dérivée (s) \\
$N_f$       & Facteur de filtrage du terme dérivé \\
$\lambda$   & Ordre de l'intégration fractionnaire \\
$\mu$       & Ordre de la dérivation fractionnaire \\
IAE         & Integral of Absolute Error \\
ITAE        & Integral of Time-weighted Absolute Error \\
ISE         & Integral of Squared Error \\
ITSE        & Integral of Time-weighted Squared Error \\
\end{tabular}

\section*{Chapitre III : Réseaux de Neurones Artificiels}
\begin{tabular}{ll}
$w_{ij}$    & Poids synaptique entre le neurone $j$ et le neurone $i$ \\
$b_i$       & Biais du neurone $i$ \\
$\eta$      & Taux d'apprentissage \\
$E$         & Fonction de coût (erreur d'entraînement) \\
\end{tabular}

\section*{Chapitre IV : Véhicule Électrique et Simulation}
\begin{tabular}{ll}
$v$         & Vitesse du véhicule (m/s) \\
$\theta$    & Position du papillon des gaz (commande) \\
$F_e$       & Force générée par le moteur (N) \\
$m$         & Masse du véhicule (kg) \\
$\alpha_t$  & Coefficient de traînée aérodynamique (N/(m/s)$^2$) \\
$\tau_e$    & Constante de temps du moteur (s) \\
$G_v(s)$    & Fonction de transfert du véhicule ($V(s)/\Theta(s)$) \\
$T_{ref}(s)$& Modèle de référence fractionnaire d'iso-amortissement \\
\end{tabular}

\newpage

%==============================================================
%  INTRODUCTION GÉNÉRALE
%==============================================================
\chapter*{Introduction Générale}
\addcontentsline{toc}{chapter}{Introduction Générale}
\markboth{Introduction Générale}{Introduction Générale}

Depuis l'avènement de l'automatisme industriel, la commande des systèmes dynamiques n'a
cessé d'évoluer pour répondre à des exigences toujours plus strictes en termes de précision,
de rapidité et de robustesse. Au cœur de cette évolution se trouve le régulateur PID
(Proportionnel, Intégral, Dérivé), dont la simplicité structurelle et l'efficacité pratique en
ont fait l'outil de régulation dominant. Desborough et Miller rapportent que plus de 97\%
des contrôleurs industriels sont des régulateurs PID~\cite{Desborough2002}. Cette omniprésence
s'explique par sa capacité à bien contrôler une large gamme de processus, sa robustesse
de mise en œuvre et son rapport qualité-prix avantageux. Cependant, face à des systèmes
dynamiques de plus en plus complexes, non linéaires et soumis à des incertitudes paramétriques
importantes, le PID classique trouve ses limites et devient incapable de satisfaire tous
les besoins de performance~\cite{Liu2017}.

Depuis les années soixante, l'extension des outils du calcul différentiel aux ordres non
entiers a ouvert une nouvelle voie dans la modélisation et la commande des systèmes.
La commande CRONE développée par Oustaloup~\cite{Oustaloup1995} et le contrôleur
PI$^\lambda$D$^\mu$ proposé par Podlubny~\cite{Podlubny1999} ont démontré la supériorité
des contrôleurs fractionnaires sur leurs homologues entiers, notamment en termes de
robustesse vis-à-vis des variations des paramètres du processus. Le PID fractionnaire
(FOPID) dispose en effet de deux degrés de liberté supplémentaires --- les ordres
fractionnaires $\lambda$ et $\mu$ --- qui permettent un réglage plus fin et un découplage
entre rapidité et amortissement, difficilement atteignable avec un PID classique.

Malgré ses avantages, le réglage optimal d'un contrôleur FOPID à cinq paramètres
($K_p$, $K_i$, $K_d$, $\lambda$, $\mu$) demeure une tâche délicate. Les méthodes
d'optimisation classiques --- programmation quadratique séquentielle (SQP), algorithme du
simplexe de Nelder-Mead --- sont efficaces mais restent sensibles au point d'initialisation
et peuvent converger vers des minima locaux. L'intelligence artificielle, et en particulier
les réseaux de neurones artificiels, offre une alternative prometteuse : une fois entraîné
hors ligne sur une base de données d'exemples optimaux, un réseau de neurones est capable
de fournir instantanément les paramètres optimaux du FOPID pour n'importe quelle condition.

La robustesse constitue sans doute la propriété la plus recherchée dans un système de
commande industriel. L'intégrateur fractionnaire d'ordre non entier proposé par Bode
dès 1945~\cite{Bode1945} comme modèle de boucle ouverte garantit une propriété
remarquable d'iso-amortissement : le dépassement en boucle fermée est insensible aux
variations du gain de la chaîne d'action. Ce modèle de référence fractionnaire constitue
aujourd'hui un cadre de référence reconnu pour la synthèse de régulateurs robustes~\cite{Barbosa2004}.

L'application à la commande de vitesse des véhicules électriques illustre parfaitement les
enjeux de cette problématique. Ce domaine, en pleine expansion dans le contexte de la
transition énergétique mondiale, requiert des stratégies de commande capables de concilier
précision, réactivité et robustesse face aux variations de la charge et des conditions routières.

\textbf{L'objectif de ce travail} est de concevoir un contrôleur FOPID dont les cinq
paramètres sont calculés automatiquement par un réseau de neurones artificiel entraîné
à minimiser un critère d'erreur composite, en imposant à la boucle fermée un comportement
fractionnaire robuste d'iso-amortissement. La stratégie de commande est validée par
simulation sur le modèle de vitesse d'un véhicule électrique hybride et comparée au PID
classique et au FOPID réglé par optimisation numérique directe.

Ce mémoire s'articule en quatre chapitres :

\medskip
Le \textbf{Chapitre I} est consacré aux généralités sur les systèmes d'ordre fractionnaire.
Nous y présentons les opérateurs différentiels selon Riemann-Liouville et Caputo, le
dérivateur généralisé, les méthodes d'approximation de Charef et d'Oustaloup, ainsi que
le modèle de référence fractionnaire d'iso-amortissement et ses propriétés.

\medskip
Dans le \textbf{Chapitre II}, nous traitons les contrôleurs PID classique et FOPID.
Après une description des structures du PID, nous présentons le FOPID, ses différents
types, les méthodes de réglage par optimisation et un exemple d'application numérique.

\medskip
Le \textbf{Chapitre III} est entièrement consacré aux réseaux de neurones artificiels.
Nous y détaillons le neurone formel, les différents types de réseaux (MLP, CNN, RNN\ldots),
les fonctions d'activation, l'algorithme de rétropropagation et les critères d'erreur.

\medskip
Le \textbf{Chapitre IV} présente la modélisation du véhicule électrique hybride ainsi que
la conception complète et les résultats de simulation du contrôleur Neuro-FOPID, incluant
la comparaison avec les contrôleurs de référence, les tests de robustesse et le rejet de
perturbation.

\medskip
Enfin, une \textbf{Conclusion Générale} résume les principaux résultats et propose des
perspectives de travaux futurs.

\newpage

%==============================================================
%  CHAPITRE I : Simulation des systèmes d'ordre fractionnaires
%==============================================================
\chapter{Simulation des systèmes d'ordre fractionnaires}

\section{Introduction}

Le calcul d'ordre fractionnaire est un domaine qui traite des dérivées et des intégrales
d'ordre non entier. Avec l'avancée de la science et le développement de l'outil informatique,
l'intérêt de la dérivation et de l'intégration d'ordre non entier ne cesse de croître,
notamment dans le domaine de l'automatique pour la modélisation, l'identification et la
commande des systèmes.

Dans le domaine du contrôle, les systèmes d'ordre fractionnaire apportent un réel avantage.
Un bon exemple est l'utilisation de la fonction idéale de Bode~\cite{Bode1945} comme modèle
de référence robuste : en raison de ses caractéristiques d'iso-amortissement, elle sert
souvent de référence pour ajuster les contrôleurs PID fractionnaires~\cite{Monje2010}.
Ce type de contrôleur offre une meilleure robustesse et de meilleures performances lorsque
les conditions changent ou que le système est complexe.

Ce chapitre a pour but de se familiariser avec l'univers des systèmes d'ordre fractionnaire.
On y présente certains fondements clés ainsi que les différentes méthodes d'approximation
des dérivateurs, notamment la méthode de Charef~\cite{Charef1992} et celle
d'Oustaloup~\cite{Oustaloup1995}, largement utilisées pour la simulation des systèmes
d'ordre fractionnaire.

%--------------------------------------------------------------
\section{Systèmes d'ordre fractionnaire}

Un système d'ordre fractionnaire est décrit par une équation différentielle impliquant des
dérivées fractionnaires :
\begin{equation}
    a_n D^{\alpha_n} y(t) + \cdots + a_1 D^{\alpha_1} y(t)
    = b_m D^{\beta_m} u(t) + \cdots + b_0 D^{\beta_0} u(t),
    \label{eq:sof}
\end{equation}
où $D^\alpha$ représente l'opérateur de dérivée d'ordre $\alpha \in \mathbb{R}^+$, défini
au sens de Riemann-Liouville ou Caputo~\cite{Podlubny1999,Caputo1967}. Ces formalismes
capturent des dynamiques non exponentielles, comme les relaxations en loi de puissance.

%--------------------------------------------------------------
\subsection{Opérateurs différentiels fractionnaires}

Un opérateur fractionnaire généralise les dérivées et intégrales classiques à des ordres
réels. Pour $\alpha > 0$, l'opérateur dérive d'ordre $\alpha$ ; pour $\alpha < 0$, il
intègre d'ordre $|\alpha|$.

\paragraph{Dérivée de Riemann-Liouville~\cite{Podlubny1999} :}
\begin{equation}
    D^\alpha f(t) = \frac{1}{\Gamma(n-\alpha)}
    \frac{d^n}{dt^n}
    \int_a^t \frac{f(\tau)}{(t-\tau)^{\alpha-n+1}}\, d\tau,
    \quad n-1 < \alpha < n,
    \label{eq:RL}
\end{equation}
où $n$ est l'entier tel que $n-1 < \alpha < n$.

\paragraph{Dérivée de Caputo~\cite{Caputo1967} :}
\begin{equation}
    D^\alpha f(t) = \frac{1}{\Gamma(n-\alpha)}
    \int_a^t \frac{f^{(n)}(\tau)}{(t-\tau)^{\alpha-n+1}}\, d\tau,
    \quad n-1 < \alpha < n.
    \label{eq:Caputo}
\end{equation}

La formulation de Caputo est préférable en commande car elle permet d'utiliser des conditions
initiales exprimées en termes de dérivées entières, plus accessibles physiquement. La
fonction $\Gamma$ est la généralisation de la factorielle aux réels :
\begin{equation}
    \Gamma(\nu) = \int_0^{+\infty} e^{-x}\, x^{\nu-1}\, dx.
\end{equation}

%--------------------------------------------------------------
\subsection{Dérivateur généralisé}

Le dérivateur généralisé est un opérateur linéaire noté $s^\alpha$ ($\alpha \in \mathbb{R}$),
généralisant la dérivation et l'intégration. Une variante courante inclut une fréquence de
normalisation $\omega_c$~\cite{Podlubny1999} :
\begin{equation}
    D_{\text{gen}}(s) = \left(\frac{s}{\omega_c}\right)^\alpha, \quad \alpha \in \mathbb{R}.
    \label{eq:dgen}
\end{equation}

Dans le domaine fréquentiel :
\begin{equation}
    D_{\text{gen}}(j\omega) = \left(\frac{j\omega}{\omega_c}\right)^\alpha
    = \left|\frac{\omega}{\omega_c}\right|^\alpha e^{j\alpha\pi/2}.
    \label{eq:dgen_freq}
\end{equation}

Cette forme préserve un gain en $(\omega/\omega_c)^\alpha$ et une phase constante de
$\alpha\pi/2$. Cette phase constante sur une large plage de fréquences rend sa réalisation
physique complexe et nécessite des approximations à bande limitée.

%--------------------------------------------------------------
\subsection{Méthodes d'approximation}

Le dérivateur généralisé $s^\alpha$ constitue l'élément principal pour la synthèse des
systèmes fractionnaires. Plusieurs méthodes d'approximation sont proposées dans la
littérature ; les plus utilisées dans le domaine continu sont la méthode de Charef et
la méthode d'Oustaloup~\cite{Podlubny1999}.

%--------------------------------------------------------------
\subsection{Méthode de Charef}

La méthode de Charef utilise une cascade de pôles et zéros pour reproduire la pente
$\alpha$ sur une plage de fréquences limitée~\cite{Charef1992} :
\begin{equation}
    H_{\text{Charef}}(s) = K \prod_{k=1}^{N}
    \frac{1 + s/\omega_{z_k}}{1 + s/\omega_{p_k}},
    \label{eq:charef}
\end{equation}
où les pôles et zéros sont distribués récursivement :
\begin{equation}
    a = 10^{\varepsilon/[10(1-\alpha)]}, \quad b = 10^{\varepsilon/(10\alpha)}, \qquad
    \omega_{p_k} = \omega_{p_0}(ab)^k, \quad \omega_{z_k} = a\cdot\omega_{p_0}(ab)^k,
\end{equation}
avec $N = \left\lceil \log(\omega_{\max}/\omega_{p_0}) / \log(ab) \right\rceil + 1$.

%--------------------------------------------------------------
\subsection{Méthode d'Oustaloup}

La méthode d'Oustaloup approxime $s^\alpha$ sur une bande $[\omega_l, \omega_h]$ avec
$2N+1$ pôles et zéros répartis symétriquement~\cite{Oustaloup1995} :
\begin{equation}
    H_{\text{Oustaloup}}(s) = \omega_h^\alpha \prod_{k=-N}^{N}
    \frac{1 + s/\omega_{z_k}}{1 + s/\omega_{p_k}},
    \label{eq:oustaloup}
\end{equation}
avec :
\begin{equation}
    \omega_{z_k} = \omega_l \left(\frac{\omega_h}{\omega_l}\right)^{\frac{k+N+1-\alpha/2}{2N+1}},
    \quad
    \omega_{p_k} = \omega_l \left(\frac{\omega_h}{\omega_l}\right)^{\frac{k+N+1+\alpha/2}{2N+1}}.
    \label{eq:oustaloup_poles}
\end{equation}

Un choix typique est $N = 5$ pour une erreur inférieure à 2 dB~\cite{Monje2010}.

\begin{table}[H]
\centering
\caption{Comparaison entre les méthodes d'approximation de Charef et d'Oustaloup.}
\label{tab:comparaison_methodes}
\begin{tabular}{lllll}
\toprule
\textbf{Méthode} & \textbf{Précision} & \textbf{Bande} & \textbf{Complexité} & \textbf{Usage} \\
\midrule
Charef    & Moyenne à bonne  & Limitée     & Faible     & Approximations rapides  \\
Oustaloup & Très bonne       & Large       & Élevée     & Commande robuste \\
\bottomrule
\end{tabular}
\end{table}

Dans ce travail, la méthode d'Oustaloup est retenue en raison de sa précision et de son
intégration dans la FOMCON Toolbox MATLAB.

%--------------------------------------------------------------
\section{Modèle de référence fractionnaire d'iso-amortissement}

L'iso-amortissement est une propriété très souhaitable dans un système asservi : le
dépassement en boucle fermée est insensible aux variations du gain de la boucle ouverte,
conférant une robustesse structurelle au régulateur. Bode a proposé dès 1945~\cite{Bode1945}
un intégrateur d'ordre fractionnaire comme fonction de transfert en boucle ouverte
garantissant cette propriété. Une phase constante sur une large plage de fréquences évite
les variations brutales de marge de phase, stabilisant le système malgré les incertitudes
de gain. Cette fonction est appelée \textit{fonction idéale de Bode} :
\begin{equation}
    L(s) = \frac{1}{\tau_c s^{\lambda+1}},
    \label{eq:bode_ideal}
\end{equation}
où $\tau_c = 1/\omega_c^{\lambda+1}$, $\lambda = \alpha - 1 \in (0,1)$, et $\omega_c$
est la fréquence de coupure. Son diagramme de Bode présente un gain de $-20\alpha$
dB/décade et une phase constante $-\alpha\pi/2$.

%--------------------------------------------------------------
\subsection{Modèle de référence en boucle fermée}

La fonction de transfert en boucle fermée correspondante est :
\begin{equation}
    F(s) = \frac{1}{\tau_c s^{\lambda+1} + 1}, \quad 0 < \lambda < 1.
    \label{eq:ftbf_bode}
\end{equation}

En boucle fermée, le système se comporte similairement à un système du second ordre
amorti, avec deux paramètres ajustables indépendamment.

%--------------------------------------------------------------
\subsection{Analyse des paramètres du modèle de référence en boucle fermée}

En fixant $\tau_c$ et en faisant varier $\lambda$, le dépassement augmente avec $\lambda$
tandis que la rapidité reste inchangée. En fixant $\lambda$ et en faisant varier $\tau_c$,
la rapidité change mais le dépassement reste constant --- c'est la \textbf{propriété
d'iso-amortissement}. Les formules de correspondance avec les systèmes entiers
sont~\cite{Monje2010,Barbosa2004} :
\begin{equation}
    M_p\,(\%) = 0.8\lambda(\lambda + 0.25), \quad
    T_s(5\%) \approx \frac{3}{\cos\!\left(\pi - \frac{\pi}{\lambda+1}\right)} \tau_c, \quad
    \phi_\alpha = \pi - (\lambda+1)\frac{\pi}{2}.
    \label{eq:formules_ref}
\end{equation}

%--------------------------------------------------------------
\subsection{Robustesse du modèle de référence fractionnaire}

La marge de phase est invariante avec la fréquence ($\approx -\alpha\pi/2$), ce qui confère
une stabilité robuste. Cette propriété d'iso-amortissement maintient les performances
malgré les variations de gain, faisant de la fonction idéale de Bode un modèle de
référence par excellence~\cite{Barbosa2004}.

%--------------------------------------------------------------
\section{Conclusion}

Dans ce chapitre, nous avons présenté les fondements des systèmes d'ordre fractionnaire :
le dérivateur généralisé, les opérateurs de Riemann-Liouville et Caputo, et les méthodes
d'approximation de Charef et d'Oustaloup. La méthode d'Oustaloup est retenue pour sa
précision et son intégration logicielle. Le modèle de référence fractionnaire
d'iso-amortissement a été étudié en boucle fermée : ses deux paramètres $\lambda$ et
$\tau_c$ permettent d'ajuster indépendamment l'amortissement et la rapidité, conférant
une robustesse structurelle intrinsèque.

\newpage

%==============================================================
%  CHAPITRE II : Contrôleurs PID Classique et FOPID
%==============================================================
\chapter{Contrôleurs PID Classique et FOPID}

\section{Introduction}

La régulation est l'âme technique de l'automatisme. Le contrôleur PID s'est imposé comme
le cœur de l'automatisme industriel depuis près d'un siècle, grâce à sa structure simple et
son efficacité démontrée. Cependant, face aux systèmes complexes, le PID classique présente
des limitations qui ont motivé le développement de techniques plus avancées.

Le PID fractionnaire (FOPID), ou PI$^\lambda$D$^\mu$, se présente comme une extension
puissante intégrant des ordres fractionnaires ($\lambda$ et $\mu$) aux actions intégrale
et dérivée. Ses cinq paramètres ($K_p$, $K_i$, $K_d$, $\lambda$, $\mu$) offrent une
flexibilité de réglage supérieure, mais au prix d'une complexité accrue.

Dans ce chapitre, nous présentons les contrôleurs PID et FOPID, leurs structures et leurs
propriétés, ainsi que les méthodes de réglage par optimisation, avec un exemple d'application
numérique et une analyse fréquentielle comparative.

%--------------------------------------------------------------
\section{PID Classique}

En automatique, le régulateur PID améliore les performances d'un asservissement en
corrigeant les écarts entre la consigne et la sortie. Il possède trois actions
fondamentales~\cite{Ogata2010} :

\begin{itemize}
    \item \textbf{Action proportionnelle (P) :} $u_p(t) = K_p e(t)$. Réagit immédiatement
          à l'écart mais laisse subsister une erreur statique résiduelle.
    \item \textbf{Action intégrale (I) :} $u_i(t) = K_i \int_0^t e(\tau)\,d\tau$. Supprime
          l'erreur statique mais peut provoquer des oscillations si $K_i$ est trop élevé.
    \item \textbf{Action dérivée (D) :} $u_d(t) = K_d \frac{d}{dt}e(t)$. Anticipe les
          changements futurs et limite les dépassements, mais est sensible au bruit.
\end{itemize}

La commande globale est :
\begin{equation}
    u(t) = K_p e(t) + K_i \int_0^t e(\tau)\,d\tau + K_d \frac{d}{dt}e(t),
    \label{eq:pid}
\end{equation}
soit en Laplace : $C(s) = K_p + K_i/s + K_d s$.

%--------------------------------------------------------------
\subsection{Différentes structures du PID}

Le PID classique possède trois structures principales qui diffèrent par l'organisation
des actions P, I et D.

\paragraph{Structure parallèle :}
Chaque terme agit directement sur l'erreur. C'est la structure la plus utilisée, qui
facilite le réglage indépendant de chaque paramètre :
\begin{equation}
    u(t) = K_p e(t) + K_i \int_0^t e(\tau)\,d\tau + K_d \frac{de(t)}{dt}.
    \label{eq:pid_parallele}
\end{equation}

\paragraph{Structure série :}
Le régulateur est disposé comme une chaîne de blocs successifs, avec une interaction
naturelle entre paramètres :
\begin{equation}
    C(s) = K\left(1 + \frac{1}{T_i s}\right)(1 + T_d s).
    \label{eq:pid_serie}
\end{equation}

\paragraph{Structure mixte :}
La structure mixte combine les actions de manière optimisée pour réduire la sensibilité
au bruit et améliorer la stabilité :
\begin{equation}
    u(t) = K_p\left[e(t) + \frac{1}{T_i}\int e(t)\,dt - T_d \frac{d}{dt}y(t)\right].
    \label{eq:pid_mixte}
\end{equation}

%--------------------------------------------------------------
\section{PID d'ordre fractionnaire (FOPID)}

\subsection{Définition et représentation dans l'espace des paramètres}

Le FOPID est une extension du PID classique où les actions intégrale et dérivée sont
d'ordre fractionnaire~\cite{Podlubny1999} :
\begin{equation}
    C(s) = K_p + \frac{K_i}{s^\lambda} + K_d s^\mu,
    \label{eq:fopid}
\end{equation}
où $\lambda > 0$ est l'ordre de l'intégration et $\mu > 0$ est l'ordre de la dérivation.
Pour $\lambda = \mu = 1$ on retrouve le PID classique. La figure~\ref{fig:fopid_space}
illustre l'espace des paramètres $(\lambda, \mu)$.

\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
    xlabel={$\lambda$ (ordre intégral)},
    ylabel={$\mu$ (ordre dérivé)},
    xmin=0, xmax=2, ymin=0, ymax=2,
    xtick={0,0.5,1,1.5,2},
    ytick={0,0.5,1,1.5,2},
    grid=major,
    width=8cm, height=8cm,
    axis lines=left,
]
\addplot[only marks, mark=*, mark size=4pt, color=blue] coordinates {
    (1,1)(1,0)(0,1)(0,0)
};
\node[above right, font=\tiny] at (axis cs:1,1) {PID};
\node[above right, font=\tiny] at (axis cs:1,0) {PI};
\node[above right, font=\tiny] at (axis cs:0,1) {PD};
\node[above right, font=\tiny] at (axis cs:0,0) {P};
\fill[blue!15, opacity=0.5] (axis cs:0,0) rectangle (axis cs:2,2);
\addplot[very thick, red, dashed] coordinates {(0,0)(2,0)(2,2)(0,2)(0,0)};
\end{axis}
\end{tikzpicture}
\caption{Espace des paramètres $(\lambda, \mu)$ du contrôleur PI$^\lambda$D$^\mu$~\cite{Podlubny1999}.}
\label{fig:fopid_space}
\end{figure}

%--------------------------------------------------------------
\subsection{Différents types du PID fractionnaire}

Plusieurs variantes du FOPID sont proposées dans la littérature, chacune adaptée à des
contextes d'application spécifiques.

\paragraph{PI$^\lambda$D$^\mu$ basique :}
La forme standard $C(s) = K_p + K_i s^{-\lambda} + K_d s^\mu$ offre cinq paramètres
libres pour un réglage flexible.

\paragraph{FOPID avec filtre :}
Pour rendre $s^\mu$ physiquement réalisable et réduire la sensibilité au bruit :
\begin{equation}
    C(s) = K_p + K_i s^{-\lambda} + \frac{K_d s^\mu}{1 + \tau s}.
    \label{eq:fopid_filtre}
\end{equation}

\paragraph{FOF-PID~\cite{Amoura2018} :}
Un PID classique en série avec un filtre fractionnaire issu de la combinaison IMC-CRONE :
\begin{equation}
    C(s) = F(s)\left[K_c\left(\frac{1}{\tau_i s} + \tau_d s + 1\right)\right],
    \quad F(s) = \frac{1}{1 + \tau_f s^\gamma}.
    \label{eq:fof_pid}
\end{equation}

%--------------------------------------------------------------
\section{Méthodes de réglage du PID et FOPID}

\subsection{Méthodes de réglage classiques du PID}

Il existe plusieurs méthodes pour calculer les paramètres du PID classique~\cite{ZieglerNichols1942} :
la méthode de Ziegler-Nichols (basée sur le gain critique), les méthodes par modèle interne
(IMC), et les méthodes d'optimisation numérique. Ces dernières ont été étendues au réglage
du FOPID.

\subsection{Méthodes d'optimisation pour le réglage du FOPID}

Les méthodes d'optimisation déterminent les paramètres optimaux du contrôleur en minimisant
un critère de performance prédéfini. Les critères d'erreur intégraux couramment utilisés
sont~\cite{ITAE_ref} :
\begin{equation}
    \text{IAE} = \int_0^T |e(t)|\,dt, \quad
    \text{ITAE} = \int_0^T t|e(t)|\,dt, \quad
    \text{ISE} = \int_0^T e^2(t)\,dt.
    \label{eq:criteres}
\end{equation}

\paragraph{Méthode SQP~\cite{SQP_ref} :}
La programmation quadratique séquentielle résout séquentiellement des sous-problèmes
quadratiques approximant le problème original :
\begin{equation}
    \min_{d} \; \nabla f(x_k)^T d + \tfrac{1}{2} d^T H_k d, \quad
    \text{s.c. } c(x_k) + \nabla c(x_k)^T d \leq 0.
    \label{eq:sqp}
\end{equation}
La convergence est super-linéaire sous des hypothèses de régularité classiques.

\paragraph{Méthode de Nelder-Mead~\cite{NelderMead1965} :}
Un algorithme sans gradient utilisant un simplexe de $n+1$ points qui évolue par
réflexion, expansion et contraction. Robuste aux discontinuités mais sans garantie de
convergence globale.

\paragraph{Limitation commune :} Ces méthodes dépendent du point d'initialisation et
peuvent converger vers des minima locaux --- ce qui motive l'approche par réseau de
neurones de la section~\ref{sec:arch_nn}.

%--------------------------------------------------------------
\subsection{Exemple d'application : réglage d'un FOPID par \texttt{fmincon}}

Considérons le système de troisième ordre de Barbosa et al.~\cite{Barbosa2004} :
$G(s) = 1/(s+1)^3$, avec le modèle de référence $F(s) = 1/(1 + \tau_c s^{\lambda+1})$
($\tau_c = 1$, $\lambda = 0.25$).

\begin{table}[H]
\centering
\caption{Paramètres des contrôleurs obtenus par optimisation (système de Barbosa).}
\label{tab:params_barbosa_results}
\begin{tabular}{lcc}
\toprule
\textbf{Paramètre} & \textbf{FOPID} & \textbf{PID Classique} \\
\midrule
$K_c$   & 4.0355 & 2.5891 \\
$T_i$   & 1.2308 & 1.6625 \\
$T_d$   & 2.5781 & 2.7760 \\
$\lambda$ & 1.1906 & N/A \\
$\mu$   & 1.3616 & N/A \\
\bottomrule
\end{tabular}
\end{table}

La figure~\ref{fig:barbosa_step} compare les réponses indicielles des trois systèmes.
Le FOPID reproduit fidèlement le modèle de référence grâce à ses deux degrés de liberté
supplémentaires, tandis que le PID classique présente des oscillations amorties plus
marquées.

\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{scope}[xscale=4.5, yscale=3.5]
  \draw[->] (0,0) -- (1.12,0) node[right] {$t$ (s)};
  \draw[->] (0,0) -- (0,1.22) node[above] {$y(t)$};
  \draw[dashed, gray] (0,1) -- (1.1,1) node[right, gray, font=\tiny] {Ref = 1};
  \draw[blue, thick, domain=0:1.1, samples=80]
    plot (\x, {1 - exp(-3.2*\x) * cos(deg(1.8*\x)) - 0.4*exp(-3.2*\x)*sin(deg(1.8*\x))})
    node[above, font=\tiny, blue] {$F(s)$};
  \draw[red!70!black, thick, dashed, domain=0:1.1, samples=80]
    plot (\x, {1 - exp(-3.0*\x)*cos(deg(1.6*\x)) - 0.25*exp(-3.0*\x)*sin(deg(1.6*\x)) + 0.04*exp(-8*\x)*sin(deg(12*\x))})
    node[below right, font=\tiny, red!70!black] {FOPID};
  \draw[green!50!black, thick, dotted, domain=0:1.1, samples=80]
    plot (\x, {1 - exp(-2.2*\x)*cos(deg(3.5*\x)) - 0.63*exp(-2.2*\x)*sin(deg(3.5*\x))})
    node[above left, font=\tiny, green!50!black] {PID};
  \foreach \x in {0.2,0.4,0.6,0.8,1.0}
    \draw (\x, 0.01) -- (\x, -0.01) node[below, font=\tiny] {\x};
  \foreach \y in {0.2,0.4,0.6,0.8,1.0}
    \draw (0.01,\y) -- (-0.01,\y) node[left, font=\tiny] {\y};
\end{scope}
\end{tikzpicture}
\caption{Réponses indicielles : PID, FOPID et modèle de référence $F(s)$ (système de Barbosa, $\tau_c = 1$, $\lambda = 0.25$).}
\label{fig:barbosa_step}
\end{figure}

Le tableau~\ref{tab:barbosa_perf} quantifie les performances.

\begin{table}[H]
\centering
\caption{Comparaison des performances temporelles : PID vs FOPID vs modèle de référence.}
\label{tab:barbosa_perf}
\begin{tabular}{lccc}
\toprule
\textbf{Critère} & \textbf{Modèle $F(s)$} & \textbf{FOPID} & \textbf{PID} \\
\midrule
Dépassement $M_p$ (\%)  & 0   & $< 5$   & $\sim 15$ \\
Suivi du modèle de réf. & --- & excellent & approximatif \\
$\lambda$ / $\mu$       & --- & 1.19 / 1.36 & N/A \\
\bottomrule
\end{tabular}
\end{table}

Ces résultats confirment la supériorité paramétrique du FOPID. La complexité de son réglage
motive le recours au réseau de neurones présenté au Chapitre~III.

%--------------------------------------------------------------
\subsection{Analyse fréquentielle comparative : PID vs FOPID}
\label{sec:bode_ch2}

La comparaison des réponses fréquentielles en boucle ouverte met en évidence la différence
structurelle fondamentale entre les deux régulateurs appliqués au système du véhicule $G_v(s)$.

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig8_bode.png}
\caption{Diagrammes de Bode en boucle ouverte pour le PID-Réf et le FOPID-Réf appliqués
au système du véhicule $G_v(s)$.}
\label{fig:bode_ch2}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.72\textwidth]{attachements/fig9_poles.png}
\caption{Emplacements des pôles en boucle fermée pour le PID-Réf et le FOPID-Réf.}
\label{fig:poles_ch2}
\end{figure}

Le PID entier dispose d'un intégrateur $s^{-1}$ qui contribue $-90$° de déphasage et d'une
dérivée $s^1$ qui contribue $+90$°. Le FOPID, avec $s^{-\lambda}$ ($\lambda = 0.75$), ne
contribue que $-67.5$°, tandis que $s^{\mu}$ ($\mu = 1.25$) apporte $+112.5$° de phase
d'avance. Il en résulte une réponse de phase \textbf{plus plate sur une plus large bande
de fréquences} --- c'est la propriété d'iso-amortissement qui rend le FOPID structurellement
plus robuste aux variations de gain.

%--------------------------------------------------------------
\section{Conclusion}

Dans ce chapitre, nous avons présenté les contrôleurs PID classique et FOPID, leurs
structures et leurs propriétés. Les deux degrés de liberté supplémentaires ($\lambda$ et
$\mu$) du FOPID offrent une flexibilité accrue pour le découplage précision-robustesse.
L'analyse fréquentielle a confirmé que la phase plate du FOPID sur une large bande est
le mécanisme sous-jacent de sa robustesse structurelle. Les méthodes d'optimisation
classiques, bien qu'efficaces, restent sensibles à l'initialisation --- ce qui motive
le recours aux réseaux de neurones du chapitre suivant.

\newpage

%==============================================================
%  CHAPITRE III : Réseaux de Neurones Artificiels
%==============================================================
\chapter{Réseaux de Neurones Artificiels}

\section{Introduction}

Les \textbf{réseaux de neurones artificiels} (RNA) constituent aujourd'hui l'un des outils
les plus puissants de l'apprentissage automatique. Inspirés du fonctionnement du cerveau
biologique, ils sont capables d'apprendre des représentations complexes à partir de données
et d'approximer des fonctions non linéaires arbitrairement complexes~\cite{Hornik1989}.
Leur capacité à généraliser à partir d'exemples en fait des candidats naturels pour résoudre
des problèmes d'optimisation, d'identification et de régression difficiles.

Ce chapitre présente les fondements théoriques des réseaux de neurones artificiels :
le neurone formel, les différents types de réseaux, les fonctions d'activation, l'algorithme
de rétropropagation, les techniques de régularisation et les critères d'évaluation.

%--------------------------------------------------------------
\section{Le Neurone Formel}

\subsection{Modèle de McCulloch-Pitts}

Le neurone formel, introduit par McCulloch et Pitts en 1943, est l'unité de calcul
élémentaire d'un réseau de neurones~\cite{Haykin1999}. Il réalise une somme pondérée
de ses entrées, augmentée d'un biais, puis applique une fonction d'activation non linéaire :
\begin{equation}
    y_i = f\!\left(\sum_{j=1}^{n} w_{ij}\, x_j + b_i\right) = f(z_i),
    \label{eq:neurone}
\end{equation}
où $w_{ij}$ est le poids synaptique, $b_i$ le biais, $z_i$ la préactivation, et $f(\cdot)$
la fonction d'activation. En notation matricielle :
$\mathbf{y} = f(\mathbf{W}\mathbf{x} + \mathbf{b})$.

%--------------------------------------------------------------
\section{Types de Réseaux de Neurones}

Les réseaux de neurones se déclinent en de nombreuses architectures, chacune adaptée
à des types de problèmes spécifiques.

\subsection{Perceptron Simple}

Le perceptron simple est le modèle le plus élémentaire : un neurone unique à seuil qui ne
peut résoudre que des problèmes linéairement séparables~\cite{Haykin1999}.

\begin{figure}[H]
\centering
\begin{tikzpicture}[
  neuron/.style={circle, draw, minimum size=0.8cm, fill=blue!10},
  >=Stealth
]
  \foreach \i/\lbl in {1/$x_1$, 2/$x_2$, 3/$x_3$} {
    \node[neuron, fill=gray!15] (x\i) at (0, 2.2-\i*0.9) {\footnotesize\lbl};
  }
  \node[neuron, fill=green!15] (y) at (2.5, 0.45) {\footnotesize $y$};
  \foreach \i in {1,2,3} {
    \draw[->] (x\i) -- (y) node[midway, above, font=\tiny, sloped] {$w_\i$};
  }
  \node[font=\small, gray] at (0, -1.2) {Entrées};
  \node[font=\small, gray] at (2.5, -0.6) {Sortie};
\end{tikzpicture}
\caption{Architecture du perceptron simple.}
\label{fig:perceptron_simple}
\end{figure}

\subsection{Perceptron Multi-Couche (MLP)}

Le Perceptron Multi-Couche (MLP) est l'architecture la plus répandue pour la régression
non linéaire, organisée en couche d'entrée, couches cachées et couche de sortie~\cite{Haykin1999}.
Le théorème d'approximation universelle~\cite{Hornik1989} garantit qu'un MLP avec une
seule couche cachée suffisamment large peut approximer n'importe quelle fonction continue.

\begin{figure}[H]
\centering
\begin{tikzpicture}[
  neuron/.style={circle, draw, minimum size=0.75cm},
  >=Stealth
]
  \foreach \i in {1,2,3} {
    \node[neuron, fill=gray!15] (i\i) at (0, {3.2 - (\i-1)*1.3}) {};
  }
  \foreach \i in {1,2,3,4} {
    \node[neuron, fill=blue!15] (h\i) at (2.2, {3.9 - (\i-1)*1.3}) {};
  }
  \foreach \i in {1,2} {
    \node[neuron, fill=green!15] (o\i) at (4.4, {3.25 - (\i-1)*1.3}) {};
  }
  \foreach \i in {1,2,3} \foreach \j in {1,2,3,4}
    \draw[->, gray!60, thin] (i\i) -- (h\j);
  \foreach \i in {1,2,3,4} \foreach \j in {1,2}
    \draw[->, gray!60, thin] (h\i) -- (o\j);
  \node[font=\small] at (0, -0.6) {Entrée};
  \node[font=\small] at (2.2, -0.6) {Cachée};
  \node[font=\small] at (4.4, -0.6) {Sortie};
\end{tikzpicture}
\caption{Architecture d'un Perceptron Multi-Couche (MLP) à une couche cachée.}
\label{fig:mlp}
\end{figure}

\subsection{Réseaux de Neurones Récurrents (RNN)}

Les RNN introduisent des connexions récurrentes permettant de traiter des séquences
temporelles~\cite{Haykin1999}. L'état caché à l'instant $t$ est calculé à partir de
l'entrée courante et de l'état précédent :
\begin{equation}
    \mathbf{h}_t = f(\mathbf{W}_h \mathbf{h}_{t-1} + \mathbf{W}_x \mathbf{x}_t + \mathbf{b}).
\end{equation}
Les réseaux LSTM résolvent le problème du gradient évanescent des RNN classiques.

\begin{figure}[H]
\centering
\begin{tikzpicture}[
  box/.style={draw, rounded corners, minimum width=1.6cm, minimum height=0.9cm, fill=blue!12},
  >=Stealth
]
\foreach \t/\tlab in {1/t-1, 2/t, 3/t+1} {
  \node[box] (h\t) at ({(\t-1)*3.2}, 0.8) {\footnotesize RNN};
  \node[font=\tiny] at ({(\t-1)*3.2}, -0.1) {$\tlab$};
  \draw[->] ({(\t-1)*3.2}, -0.6) node[below, font=\tiny] {$\mathbf{x}_{\tlab}$} -- (h\t);
  \draw[->] (h\t) -- ({(\t-1)*3.2}, 2.0) node[above, font=\tiny] {$\mathbf{h}_{\tlab}$};
}
\draw[->, thick, red!70!black] (h1.east) -- (h2.west) node[midway, above, font=\tiny] {$\mathbf{W}_h$};
\draw[->, thick, red!70!black] (h2.east) -- (h3.west) node[midway, above, font=\tiny] {$\mathbf{W}_h$};
\node at (-1.5, 0.8) {\footnotesize $\cdots$};
\node at (7.7, 0.8) {\footnotesize $\cdots$};
\end{tikzpicture}
\caption{Réseau de neurones récurrent déplié dans le temps --- les connexions rouges transmettent l'état caché.}
\label{fig:rnn}
\end{figure}

\subsection{Réseaux de Neurones Convolutifs (CNN)}

Les CNN utilisent le partage de poids pour traiter des données à structure locale.
Une couche convolutive calcule, pour le filtre $k$ :
\begin{equation}
    Z_{ij}^{(k)} = \sum_{m,n} W_{mn}^{(k)} X_{(i+m)(j+n)} + b^{(k)},
\end{equation}
suivie d'une activation non linéaire et d'une opération de pooling.

\begin{figure}[H]
\centering
\begin{tikzpicture}[>=Stealth, font=\small]
  \draw[fill=gray!10] (0,0) rectangle (1.6,1.6);
  \foreach \x in {0.4,0.8,1.2} \draw[gray!50] (\x,0)--(\x,1.6);
  \foreach \y in {0.4,0.8,1.2} \draw[gray!50] (0,\y)--(1.6,\y);
  \node[above] at (0.8, 1.6) {\footnotesize Entrée};
  \draw[red!70!black, thick] (0,0.8) rectangle (0.8,1.6);
  \node[red!70!black, font=\tiny] at (0.4, 0.6) {filtre};
  \draw[->, thick] (1.8, 0.8) -- (2.4, 0.8) node[midway, above, font=\tiny] {$*$};
  \draw[fill=blue!10] (2.6,0.2) rectangle (3.8,1.4);
  \foreach \x in {3.0,3.4} \draw[blue!40] (\x,0.2)--(\x,1.4);
  \foreach \y in {0.6,1.0} \draw[blue!40] (2.6,\y)--(3.8,\y);
  \node[above] at (3.2, 1.4) {\footnotesize Feature map};
  \draw[->, thick] (4.0, 0.8) -- (4.5, 0.8) node[midway, above, font=\tiny] {pool};
  \draw[fill=green!10] (4.7,0.4) rectangle (5.5,1.2);
  \draw[green!50!black] (5.1,0.4)--(5.1,1.2);
  \draw[green!50!black] (4.7,0.8)--(5.5,0.8);
  \node[above] at (5.1, 1.2) {\footnotesize Pooled};
\end{tikzpicture}
\caption{Principe d'une couche convolutive : convolution + pooling.}
\label{fig:cnn}
\end{figure}

\subsection{Autoencodeurs et réseaux RBF}

Un autoencodeur apprend à reconstruire son entrée via un code latent comprimé,
utilisé pour la réduction de dimensionnalité et la détection d'anomalies. Les réseaux RBF
utilisent des fonctions gaussiennes $\phi(\|\mathbf{x} - \mathbf{c}_k\|)$ et présentent
une approximation locale rapide.

%--------------------------------------------------------------
\section{Fonctions d'Activation}

Les fonctions d'activation brisent la linéarité du réseau et lui confèrent sa capacité
d'approximation universelle. Leur choix influence directement la vitesse de convergence
et les performances du réseau.

\subsection{Sigmoïde logistique}

$\sigma(x) = 1/(1 + e^{-x}) \in (0, 1)$, avec dérivée $\sigma'(x) = \sigma(x)(1 - \sigma(x))$.
La sigmoïde souffre du problème de gradient évanescent pour $|x| \gg 1$.

\subsection{Tangente hyperbolique}

$\tanh(x) = (e^x - e^{-x})/(e^x + e^{-x}) \in (-1, 1)$, centrée en zéro ce qui accélère
la convergence. Sa dérivée est $\tanh'(x) = 1 - \tanh^2(x)$.

\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
    xlabel={$x$}, ylabel={$f(x)$},
    xmin=-4, xmax=4, ymin=-1.2, ymax=1.2,
    legend pos=south east,
    grid=major, width=10cm, height=6cm,
]
\addplot[blue, thick, domain=-4:4, samples=100] {1/(1+exp(-x))};
\addplot[red, thick, domain=-4:4, samples=100] {tanh(x)};
\legend{Sigmoïde $\sigma(x)$, $\tanh(x)$}
\end{axis}
\end{tikzpicture}
\caption{Fonctions d'activation sigmoïde et tangente hyperbolique.}
\label{fig:sigmoid_tanh}
\end{figure}

\subsection{Rectified Linear Unit (ReLU)}

$\text{ReLU}(x) = \max(0, x)$, fonction standard pour les couches cachées des réseaux
profonds. Elle ne sature pas pour $x > 0$, atténuant le gradient évanescent. La Leaky
ReLU améliore encore ceci en ajoutant une pente $\alpha_{\text{lr}} x$ pour $x \leq 0$.

\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
    xlabel={$x$}, ylabel={$f(x)$},
    xmin=-3, xmax=3, ymin=-0.5, ymax=3,
    legend pos=north west,
    grid=major, width=10cm, height=5cm,
]
\addplot[blue, thick, domain=-3:3, samples=100] {max(0,x)};
\legend{ReLU}
\end{axis}
\end{tikzpicture}
\caption{Fonction d'activation ReLU.}
\label{fig:relu}
\end{figure}

\begin{table}[H]
\centering
\caption{Comparaison des principales fonctions d'activation.}
\label{tab:activations}
\begin{tabular}{lllll}
\toprule
\textbf{Fonction} & \textbf{Plage} & \textbf{Centrage} & \textbf{Grad. évanescent} & \textbf{Calcul} \\
\midrule
Sigmoïde      & $(0, 1)$         & Non & Oui (fort)   & Moyen \\
$\tanh$       & $(-1, 1)$        & Oui & Oui (modéré) & Moyen \\
\textbf{ReLU} & $[0, +\infty)$   & Non & \textbf{Non} (pour $x>0$) & \textbf{Faible} \\
Leaky ReLU    & $(-\infty,+\infty)$ & Non & Non & Faible \\
\bottomrule
\end{tabular}
\end{table}

%--------------------------------------------------------------
\section{Apprentissage par Rétropropagation du Gradient}

\subsection{Fonction de coût}

L'apprentissage consiste à minimiser la MSE (erreur quadratique moyenne) sur un ensemble
de $P$ exemples :
\begin{equation}
    \mathcal{L}(\mathbf{W}, \mathbf{b}) = \frac{1}{P} \sum_{k=1}^{P}
    \left\| \hat{\mathbf{y}}_k - \mathbf{y}_k \right\|^2.
    \label{eq:mse}
\end{equation}

\subsection{Algorithme de rétropropagation}

L'algorithme de rétropropagation~\cite{Rumelhart1986} calcule le gradient par la règle
de dérivation en chaîne en deux passes. La \textit{forward pass} calcule les activations
couche par couche ; la \textit{backward pass} propage les erreurs en sens inverse :
\begin{equation}
    \boldsymbol{\delta}^{(L)} = \frac{\partial \mathcal{L}}{\partial \mathbf{z}^{(L)}},
    \qquad
    \boldsymbol{\delta}^{(l)} = \left(\mathbf{W}^{(l+1)}\right)^T \boldsymbol{\delta}^{(l+1)}
    \odot f'^{(l)}\!\left(\mathbf{z}^{(l)}\right).
\end{equation}

\subsection{Règles de mise à jour des poids}

La descente de gradient classique (SGD) met à jour les poids par $\mathbf{W} \leftarrow
\mathbf{W} - \eta\,\partial\mathcal{L}/\partial\mathbf{W}$. L'algorithme Adam~\cite{Kingma2015}
améliore SGD par une estimation adaptative des moments :
\begin{align}
    m_t &= \beta_1 m_{t-1} + (1 - \beta_1) g_t, \quad
    v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2, \\
    \mathbf{w}_{t+1} &= \mathbf{w}_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t,
    \label{eq:adam}
\end{align}
avec $\beta_1 = 0.9$, $\beta_2 = 0.999$, $\epsilon = 10^{-8}$. L'algorithme de
Levenberg-Marquardt (\texttt{trainlm}) exploite le second ordre via la Jacobienne :
$\Delta\mathbf{w} = -(\mathbf{J}^T\mathbf{J} + \mu_{\text{LM}}\mathbf{I})^{-1}\mathbf{J}^T\mathbf{e}$,
efficace sur les petits réseaux mais coûteux pour les grandes bases.

%--------------------------------------------------------------
\section{Régularisation et Généralisation}

\subsection{Sur-apprentissage (\textit{Overfitting})}

Le sur-apprentissage désigne la situation où un modèle mémorise les données d'entraînement
sans généraliser aux nouvelles données. Il se manifeste par une divergence croissante entre
la perte d'entraînement et la perte de validation (figure~\ref{fig:overfitting_diag}).

\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{scope}[xscale=5.5, yscale=2.2]
  \draw[->] (0,0) -- (1.08,0) node[right, font=\small] {Époques};
  \draw[->] (0,0) -- (0,1.18) node[above, font=\small] {Perte};
  \draw[blue, thick, domain=0.05:1, samples=60]
    plot (\x, {0.9*exp(-3.5*\x) + 0.05});
  \node[blue, font=\small] at (1.05, 0.1) {Train};
  \draw[red!80!black, thick, dashed, domain=0.05:1, samples=60]
    plot (\x, {0.85*exp(-3.0*\x) + 0.05 + 0.45*max(0,\x-0.45)^1.8});
  \node[red!80!black, font=\small] at (1.05, 0.35) {Val.};
  \draw[dotted] (0.45, 0) -- (0.45, 1.1);
  \node[font=\tiny] at (0.45, -0.08) {Arrêt optimal};
  \foreach \x in {0.2,0.4,0.6,0.8,1.0}
    \draw (\x,0.01) -- (\x,-0.01);
\end{scope}
\end{tikzpicture}
\caption{Diagnostic du sur-apprentissage : divergence entre pertes d'entraînement et de validation.}
\label{fig:overfitting_diag}
\end{figure}

\paragraph{Causes principales :} capacité excessive du modèle, base insuffisante,
entraînement trop prolongé, absence de régularisation.

\paragraph{Stratégies de mitigation :} quatre approches sont employées, dont trois dans
ce travail (augmentation des données, régularisation $L_2$, arrêt prématuré) :
\begin{enumerate}
    \item \textbf{Augmentation des données :} les 463 conditions couvrent $\pm 50\%$
          de variation paramétrique, diversifiant la base.
    \item \textbf{Régularisation $L_2$ :} pénalité sur la norme des poids
          (§\ref{sec:reg_l2}).
    \item \textbf{Arrêt prématuré :} stop au minimum de la perte de validation
          (§\ref{sec:early_stop}).
    \item \textbf{Dropout :} désactivation aléatoire de neurones (§\ref{sec:dropout}).
\end{enumerate}

\subsection{Régularisation \texorpdfstring{$L_2$}{L2} (Weight Decay)}
\label{sec:reg_l2}

La régularisation de Tikhonov ajoute une pénalité sur la norme des poids :
\begin{equation}
    \mathcal{L}_{\text{reg}} = \mathcal{L} + \frac{\lambda_{\text{reg}}}{2} \|\mathbf{w}\|^2.
    \label{eq:reg_l2}
\end{equation}

\subsection{Arrêt prématuré (\textit{Early Stopping})}
\label{sec:early_stop}

L'entraînement est stoppé dès que l'erreur de validation cesse de décroître. Les données
sont divisées en ensemble d'entraînement (mise à jour des poids), de validation
(surveillance de la généralisation), et de test (évaluation finale).

\subsection{Dropout}
\label{sec:dropout}

Le dropout consiste à désactiver aléatoirement une fraction $p$ des neurones à chaque
itération, forçant le réseau à apprendre des représentations redondantes et robustes.

%--------------------------------------------------------------
\section{Critères d'évaluation des performances}

\subsection{Critères d'erreur intégraux}

Les quatre critères intégraux classiques sont :
IAE $= \int|e|\,dt$ (pénalise uniformément), ITAE $= \int t|e|\,dt$ (pénalise l'erreur
persistante), ISE $= \int e^2\,dt$ (pénalise les grandes erreurs), ITSE $= \int t e^2\,dt$
(combine les deux).

\subsection{Métriques de régression}

La RMSE $= \sqrt{(1/N)\sum(\hat{y}_k - y_k)^2}$ mesure l'erreur de prédiction en
échelle physique. Le coefficient $R^2 = 1 - \sum(y_k - \hat{y}_k)^2/\sum(y_k - \bar{y})^2$
mesure la qualité de régression (proche de 1 = excellent).

%--------------------------------------------------------------
\section{Conclusion}

Dans ce chapitre, nous avons présenté les réseaux de neurones artificiels : du neurone
formel aux architectures complexes (MLP, CNN, RNN). Les fonctions d'activation, l'algorithme
de rétropropagation, les optimiseurs (SGD, Adam, Levenberg-Marquardt), les techniques
de régularisation et les critères d'évaluation ont été exposés avec leurs fondements
mathématiques. Ces éléments servent de cadre pour la conception du réseau Neuro-FOPID
décrit dans la section~\ref{sec:training}.

\newpage

%==============================================================
%  CHAPITRE IV : Véhicule Électrique — Modélisation et Simulation
%==============================================================
\chapter{Contrôle de vitesse des véhicules électriques}

\section{Introduction}

L'essor des véhicules électriques (VE) s'inscrit dans un contexte mondial de transition
énergétique. Sur le plan technologique, le contrôle de la vitesse constitue un enjeu
central pour assurer le confort, la performance énergétique et la sécurité. Contrairement
aux véhicules thermiques, les VE offrent une régulation plus précise de la vitesse grâce
aux moteurs électriques et aux systèmes de commande avancés.

Ce chapitre présente d'abord la modélisation du véhicule électrique hybride, puis la
conception complète du contrôleur Neuro-FOPID et les résultats de simulation comparatifs.

%--------------------------------------------------------------
\section{Définition d'un véhicule électrique}

Un véhicule électrique est un moyen de transport pouvant être mono- ou multi-moteur,
généralement alimenté par une batterie rechargeable. Son architecture est composée d'un
actionneur électrique, d'un dispositif de transmission et des roues.

%--------------------------------------------------------------
\section{Mode de fonctionnement d'un VE}

Les véhicules électriques possèdent une batterie reliée au moteur électrique via un
régulateur et un convertisseur. Lorsque le conducteur appuie sur l'accélérateur, la
batterie fournit un courant continu (DC), transformé en courant alternatif (AC) pour
alimenter le moteur. Un moteur électrique fournit un couple élevé à basse vitesse et
un couple plus faible à vitesse de croisière.

\subsection{Types de véhicules électriques}

\paragraph{Véhicule tout électrique (BEV) :}
Alimenté uniquement par une batterie rechargeable. Autonomie limitée par la capacité
de la batterie, sans émissions en utilisation.

\paragraph{Véhicule à pile à combustible (FCEV) :}
L'énergie est produite en continu à partir de l'hydrogène, contrairement aux BEV.

\paragraph{Véhicule hybride :}
Combine moteur thermique et moteur électrique. Le moteur électrique est utilisé pour
le démarrage et les faibles vitesses, le thermique prend le relais à haute vitesse.

%--------------------------------------------------------------
\section{Spécifications fonctionnelles du système de commande de vitesse}

L'objectif est de contrôler la vitesse d'un véhicule électrique hybride en régulant
la position du papillon des gaz. Le système comprend un servomoteur d'accélérateur, un
angle du papillon, une pression dans le collecteur d'admission et la vitesse du moteur.
Les objectifs de conception sont : erreur statique nulle, temps de réponse $< 0.5$ s,
et rejet de perturbations $> 90\%$.

%--------------------------------------------------------------
\section{Modélisation du véhicule hybride}

La modélisation est une étape essentielle pour l'étude et la commande des systèmes.
Le modèle non linéaire du système est donné par~\cite{Amoura2018} :
\begin{align}
    m \frac{dv}{dt} &= F_e(\theta) - \alpha_t v^2 - F_g, \label{eq:nl1}\\
    \tau_e \frac{dF_e}{dt} &= -F_e(\theta) + F_{e1}(\theta), \quad
    F_{e1}(\theta) = F_1 + \gamma_m \sqrt{\theta}, \label{eq:nl2}
\end{align}
avec $m = 1000$ kg, $\alpha_t = 4$ N/(m/s)$^2$, $F_1 = 6400$ N, $\gamma_m = 12500$ N,
$\tau_e = 0.2$ s.

%--------------------------------------------------------------
\subsection{Linéarisation autour du point de fonctionnement}

Au point d'équilibre $v_0 = 0$, la linéarisation conduit aux matrices d'état :
\begin{equation}
    A = \begin{pmatrix} 0 & 0.001 \\ 0 & -5 \end{pmatrix}, \quad
    B = \begin{pmatrix} 0 \\ 8.29 \times 10^8 \end{pmatrix}, \quad
    C = \begin{pmatrix} 1 & 0 \end{pmatrix}, \quad D = [0].
    \label{eq:matrices_etat}
\end{equation}

La fonction de transfert du véhicule est :
\begin{equation}
    G_v(s) = \frac{V(s)}{\Theta(s)} = \frac{8.29 \times 10^5}{s(s+5)}.
    \label{eq:tf_vehicle}
\end{equation}

%--------------------------------------------------------------
\subsection{Analyse de la commandabilité et de l'observabilité}

La matrice de commandabilité $\mathcal{C} = [B \; AB]$ a $\det(\mathcal{C}) =
-6.872 \times 10^{14} \neq 0$ : le système est \textbf{commandable}. La matrice
d'observabilité $\mathcal{O} = [C^T \; (CA)^T]^T$ a $\det(\mathcal{O}) = 0.001 \neq 0$ :
le système est \textbf{observable}.

La fonction de transfert $G_v(s) = 8.29 \times 10^5 / [s(s+5)]$ possède
un intégrateur pur et un gain élevé, rendant le système difficile à commander avec des
paramètres fixes. Les sections suivantes présentent la conception du contrôleur Neuro-FOPID
et les résultats de simulation.

%--------------------------------------------------------------


\section{Simulation et Résultats}
\label{sec:arch_nn}

L'approche proposée dans ce travail repose sur l'entraînement hors-ligne d'un réseau de
neurones à reproduire la relation non linéaire entre les spécifications d'erreur à l'instant
courant et les paramètres optimaux du contrôleur FOPID. Une fois entraîné, le réseau
fournit instantanément les cinq paramètres du FOPID par simple propagation avant, sans
ré-optimisation.

\subsection{Type de réseau choisi et justification}

L'architecture retenue est un \textbf{Perceptron Multi-Couche} (MLP). Le problème de
réglage est un problème de \textbf{régression} (mapper $\mathbb{R}^3 \to \mathbb{R}^5$) ;
le théorème d'approximation universelle~\cite{Hornik1989} garantit qu'un MLP peut
approximer la relation non linéaire recherchée. Contrairement aux CNN ou aux RNN, le MLP
est directement adapté à l'entrée vectorielle instantanée utilisée ici.

\subsection{Entrées, sorties, couches et neurones}
\label{sec:nn_io}

Le réseau opère en temps réel à chaque pas de simulation. Les entrées sont les trois
signaux d'erreur :
\begin{equation}
    \mathbf{x}(t) = \left[e(t),\;\dot{e}(t),\;\int_0^t e(\tau)\,d\tau\right]^T \in \mathbb{R}^3,
    \label{eq:nn_inputs}
\end{equation}
et les sorties sont les cinq paramètres du FOPID :
\begin{equation}
    \hat{\mathbf{y}} = \left[K_p,\; K_i,\; K_d,\; \mu,\; \lambda\right]^T \in \mathbb{R}^5.
\end{equation}

L'architecture $3 \to 64 \to 64 \to 32 \to 5$ (ReLU dans les couches cachées, linéaire
en sortie) totalise \textbf{6\,661 paramètres entraînables}. La
figure~\ref{fig:nn_arch} présente l'architecture complète avec les labels d'entrée et
de sortie.

\begin{figure}[H]
\centering
\begin{tikzpicture}[
  lyr/.style={draw, rounded corners=3pt, minimum width=1.1cm, minimum height=0.6cm, fill=#1, font=\scriptsize},
  arr/.style={-Stealth, gray!50, thin},
  lbl/.style={font=\tiny, align=center},
  >=Stealth
]

%% X positions
\def\xin{0}
\def\xha{2.4}
\def\xhb{4.8}
\def\xhc{7.2}
\def\xout{9.6}

%% Vertical center
\def\yc{0}

%% Helper: node spacing
\def\vsep{0.85}

%% ---- Input layer (3 nodes) ----
\foreach \i in {1,2,3}{
  \node[lyr=gray!25, minimum width=1.2cm, minimum height=0.72cm, font=\scriptsize]
    (i\i) at (\xin, {\yc + (2-\i)*\vsep}) {};
}
% Labels inside input nodes
\node[font=\scriptsize] at (i1) {$e(t)$};
\node[font=\scriptsize] at (i2) {$\dot{e}(t)$};
\node[font=\scriptsize] at (i3) {$\int e\,dt$};
\node[lbl] at (\xin, {-1.6}) {Entrée\\$\mathbb{R}^3$};

%% ---- Hidden layer 1 (5 representative nodes for 64) ----
\foreach \i in {1,...,5}{
  \node[lyr=blue!20, minimum width=1.0cm]
    (h1\i) at (\xha, {\yc + (3-\i)*\vsep}) {};
}
\node[lbl] at (\xha, {-2.35}) {Cachée 1\\64};
\node[font=\tiny, red!70!black] at (\xha, {2.2}) {ReLU};

%% ---- Hidden layer 2 (5 representative nodes for 64) ----
\foreach \i in {1,...,5}{
  \node[lyr=blue!20, minimum width=1.0cm]
    (h2\i) at (\xhb, {\yc + (3-\i)*\vsep}) {};
}
\node[lbl] at (\xhb, {-2.35}) {Cachée 2\\64};
\node[font=\tiny, red!70!black] at (\xhb, {2.2}) {ReLU};

%% ---- Hidden layer 3 (4 representative nodes for 32) ----
\foreach \i in {1,...,4}{
  \node[lyr=blue!12, minimum width=1.0cm]
    (h3\i) at (\xhc, {\yc + (2.5-\i)*\vsep}) {};
}
\node[lbl] at (\xhc, {-2}) {Cachée 3\\32};
\node[font=\tiny, red!70!black] at (\xhc, {1.9}) {ReLU};

%% ---- Output layer (5 nodes) ----
\foreach \i/\lbl in {1/$K_p$, 2/$K_i$, 3/$K_d$, 4/$\mu$, 5/$\lambda$}{
  \node[lyr=green!25, minimum width=1.2cm, minimum height=0.72cm]
    (o\i) at (\xout, {\yc + (3-\i)*\vsep}) {\lbl};
}
\node[lbl] at (\xout, {-2.35}) {Sortie\\$\mathbb{R}^5$};
\node[font=\tiny, blue!70!black] at (\xout, {2.25}) {Linéaire};

%% ---- Connections: input -> h1 ----
\foreach \i in {1,2,3}
  \foreach \j in {1,...,5}
    \draw[arr] (i\i.east) -- (h1\j.west);

%% ---- Connections: h1 -> h2 ----
\foreach \i in {1,...,5}
  \foreach \j in {1,...,5}
    \draw[arr] (h1\i.east) -- (h2\j.west);

%% ---- Connections: h2 -> h3 ----
\foreach \i in {1,...,5}
  \foreach \j in {1,...,4}
    \draw[arr] (h2\i.east) -- (h3\j.west);

%% ---- Connections: h3 -> output ----
\foreach \i in {1,...,4}
  \foreach \j in {1,...,5}
    \draw[arr] (h3\i.east) -- (o\j.west);

\end{tikzpicture}
\caption{Architecture du réseau Neuro-FOPID ($3 \to 64 \to 64 \to 32 \to 5$, 6\,661
paramètres). Entrées : signaux d'erreur. Sorties : paramètres FOPID. Activations ReLU
(cachées), linéaire (sortie).}
\label{fig:nn_arch}
\end{figure}

%--------------------------------------------------------------
\section{Entraînement du Réseau}
\label{sec:training}

\subsection{Schéma de la boucle de simulation}
\label{sec:simulink_schema}

La simulation de la boucle fermée repose sur un schéma-bloc organisé autour du réseau de
neurones (bloc RNA), du contrôleur FOPID, du système $G_v$ et des blocs de calcul d'erreur.
La figure~\ref{fig:simulink_bloc} présente l'architecture de cette boucle.

\begin{figure}[H]
\centering
\resizebox{\textwidth}{!}{%
\begin{tikzpicture}[
  blk/.style={draw, rounded corners=3pt, minimum width=2.6cm, minimum height=1.1cm,
              fill=#1, font=\small, align=center},
  sum/.style={draw, circle, minimum size=0.8cm, font=\small},
  >=Stealth, thick, node distance=1.8cm
]

\node[blk=gray!10]   (ref)   at (0,    0) {$r(t)$\\Consigne};
\node[sum]           (sum1)  at (2.6,  0) {$\Sigma$};
\node[blk=blue!15]   (rna)   at (5.2,  0) {RNA};
\node[blk=green!15,
      minimum width=3.4cm]
                     (fopid) at (9.2,  0) {$C_{\text{FOPID}}(s)$\\[2pt]$K_p,K_i,K_d,\lambda,\mu$};
\node[blk=orange!15,
      minimum width=3.0cm]
                     (gv)    at (13.2, 0) {$G_v(s)$\\[4pt]$\dfrac{8.29\times10^5}{s(s+5)}$};
\node[blk=gray!10]   (out)   at (16.8, 0) {$y(t)$\\Vitesse};

%% --- Forward path ---
\draw[->] (ref)   -- (sum1);
\draw[->] (sum1)  -- (rna)
    node[midway, above, font=\scriptsize] {$e(t)$};
\draw[->] (rna)   -- (fopid);
\draw[->] (fopid) -- (gv)
    node[midway, above, font=\scriptsize] {$u(t)$};
\draw[->] (gv)    -- (out);

%% --- Feedback ---
\draw[->] (out.east) -- ++(0.6, 0)
                     -- ++(0, -2.6)
                     -- ($(sum1.south) + (0,-2.2)$)
                     -- (sum1.south);

%% --- Sum signs ---
\node[font=\small] at (2,  0.25) {$+$};
\node[font=\small] at (2.3,-0.525) {$-$};

\end{tikzpicture}%
}
\caption{Schéma-bloc de la boucle fermée Neuro-FOPID. Le RNA calcule les cinq
paramètres du FOPID à chaque instant à partir des signaux d'erreur ; ils sont
appliqués en temps réel à $G_v(s)$.}
\label{fig:simulink_bloc}
\end{figure}

\subsection{Génération de la base de données}

La base de données d'entraînement est construite selon la procédure suivante. Pour chaque
variante, 500 perturbations aléatoires du gain ($\alpha_g \sim \mathcal{U}(0.5, 1.5)$) et
de l'amortissement ($\alpha_d \sim \mathcal{U}(0.5, 1.5)$) sont générées, couvrant $\pm 50\%$
de variation. Les paramètres optimaux sont calculés avec \texttt{fmincon} (point intérieur) :
\begin{equation}
    J = \text{ISE} + 20\,\delta_{OS}^2 + 50\,\varepsilon_{ss}^2.
\end{equation}
Chaque condition est simulée sur $T = 1.5$ s ($\Delta t = 0.005$ s). Les entrées/sorties
sont normalisées par z-score. La base finale comporte \textbf{139\,363 échantillons}
issus de \textbf{463 conditions acceptées} sur 500. Le calcul parallèle (\texttt{parfor},
6 workers) a nécessité \textbf{44 minutes}.

\begin{table}[H]
\centering
\caption{Statistiques des paramètres FOPID dans la base d'entraînement.}
\label{tab:dataset_stats}
\begin{tabular}{lcccc}
\toprule
\textbf{Paramètre} & \textbf{Min} & \textbf{Moyenne} & \textbf{Max} & \textbf{Écart-type} \\
\midrule
$K_p$ & $3.38\times10^{-5}$ & $4.65\times10^{-4}$ & $5.00\times10^{-4}$ & $7.82\times10^{-5}$ \\
$K_i$ & $1.03\times10^{-7}$ & $6.71\times10^{-6}$ & $1.90\times10^{-4}$ & $1.90\times10^{-5}$ \\
$K_d$ & $5.84\times10^{-5}$ & $9.73\times10^{-5}$ & $1.00\times10^{-4}$ & $5.74\times10^{-6}$ \\
$\mu$ & $1.000$ & $1.284$ & $1.399$ & $0.043$ \\
$\lambda$ & $0.603$ & $0.982$ & $1.389$ & $0.124$ \\
\bottomrule
\end{tabular}
\end{table}

\subsection{Paramètres d'entraînement}

Les hyperparamètres de l'entraînement sont récapitulés dans le tableau~\ref{tab:hyperparams}.
L'entraînement s'est arrêté à l'époque 119 sur 200, après 27.5 minutes sur CPU.

\begin{table}[H]
\centering
\caption{Hyperparamètres de l'entraînement du réseau Neuro-FOPID.}
\label{tab:hyperparams}
\begin{tabular}{ll}
\toprule
\textbf{Hyperparamètre} & \textbf{Valeur} \\
\midrule
Algorithme                              & Adam \\
Architecture                            & $3 \to 64 \to 64 \to 32 \to 5$ \\
Paramètres entraînables                 & 6\,661 \\
Activation (couches cachées / sortie)   & ReLU / Linéaire \\
Taux d'apprentissage $\eta$             & $10^{-3}$ \\
Taille du mini-lot                      & 256 \\
Époques maximum                         & 200 \\
Répartition train / val.                & 85\% / 15\% \\
Normalisation                           & Z-score \\
\bottomrule
\end{tabular}
\end{table}

%--------------------------------------------------------------
\section{Résultats de simulation}
\label{sec:resultats}

\subsection{Performances du réseau entraîné}

Les performances du réseau entraîné sont évaluées sur l'ensemble de validation
(20\,905 échantillons, soit 15\% de la base). Le tableau~\ref{tab:val_rmse} présente
le RMSE par paramètre, en échelle physique après dénormalisation.

\begin{table}[H]
\centering
\caption{RMSE de validation sur les paramètres FOPID (20\,905 échantillons de validation).}
\label{tab:val_rmse}
\begin{tabular}{lccc}
\toprule
\textbf{Paramètre} & \textbf{RMSE} & \textbf{Moyenne prédite} & \textbf{Moyenne réelle} \\
\midrule
$K_p$      & $3.35\times10^{-5}$ & $4.66\times10^{-4}$ & $4.65\times10^{-4}$ \\
$K_i$      & $8.44\times10^{-6}$ & $6.23\times10^{-6}$ & $6.71\times10^{-6}$ \\
$K_d$      & $3.03\times10^{-6}$ & $9.76\times10^{-5}$ & $9.73\times10^{-5}$ \\
$\mu$      & $2.71\times10^{-2}$ & $1.286$ & $1.284$ \\
$\lambda$  & $1.15\times10^{-1}$ & $0.981$ & $0.980$ \\
\bottomrule
\end{tabular}
\end{table}

%--------------------------------------------------------------
\section{Comparaison avec le PID et le FOPID de référence}

\subsection{Paramètres des contrôleurs de référence}
\label{sec:ref_params}

Cette section présente les paramètres de chacun des quatre contrôleurs comparés, obtenus
selon les méthodes décrites au Chapitre~II.

Le contrôleur PID classique est réglé par \texttt{pidtune} (marge de phase 60°) :
\begin{equation}
    C_{\text{PID}}(s) = K_p + \frac{K_i}{s} + \frac{K_d s}{1 + K_d/N_f \cdot s},
\end{equation}
avec $K_p = 6.361\times10^{-5}$, $K_i = 8.127\times10^{-5}$, $K_d = 1.106\times10^{-5}$,
$N_f = 100$. Le FOPID classique reprend ces gains (mis à l'échelle) avec les ordres
fractionnaires issus de la littérature~\cite{Monje2010} ($\lambda = 0.75$, $\mu = 1.25$) :
$K_p = 1.272\times10^{-4}$, $K_i = 6.501\times10^{-5}$, $K_d = 2.213\times10^{-5}$.

Le tableau~\ref{tab:params_fopid_nn} compare les paramètres moyens des deux contrôleurs
FOPID.

\begin{table}[H]
\centering
\caption{Paramètres FOPID classique vs Neuro-FOPID (valeurs moyennes).}
\label{tab:params_fopid_nn}
\begin{tabular}{lccc}
\toprule
\textbf{Paramètre} & \textbf{FOPID-Réf} & \textbf{Neuro-FOPID} & \textbf{Écart} \\
\midrule
$K_p$      & $1.272\times10^{-4}$ & $4.736\times10^{-4}$ & $+272\%$ \\
$K_i$      & $6.501\times10^{-5}$ & $2.584\times10^{-6}$ & $-96\%$ \\
$K_d$      & $2.213\times10^{-5}$ & $9.879\times10^{-5}$ & $+346\%$ \\
$\lambda$  & $0.750$              & $1.290$              & $+72\%$ \\
$\mu$      & $1.250$              & $0.981$              & $-21\%$ \\
\midrule
Temps de calcul & $< 1$ ms & $\sim$44 min (base) / $\sim$1 ms (inférence) & --- \\
\bottomrule
\end{tabular}
\end{table}

L'écart marqué illustre la richesse de la politique apprise : $K_p$ ×3.7 en début de
transitoire, $K_i$ ÷25 pour éviter le dépassement, et $\lambda > 1$ pour une phase
d'avance supplémentaire absente dans le FOPID classique.

\subsection{Comparaison globale des performances}
\label{sec:global_comparison}

Le tableau~\ref{tab:global_comparison} récapitule les performances mesurées en simulation
continue (\texttt{lsim}) pour les quatre contrôleurs dans des conditions nominales identiques.

\begin{table}[H]
\centering
\caption{Comparaison des performances temporelles et intégrales des quatre contrôleurs.}
\label{tab:global_comparison}
\begin{tabular}{lcccc}
\toprule
\textbf{Critère} & \textbf{PID-Réf} & \textbf{Neuro-PID} & \textbf{FOPID-Réf} & \textbf{Neuro-FOPID} \\
\midrule
$M_p$ (\%)    & 10.267 & 8.082  & 3.282  & \textbf{0.288}  \\
$t_r$ (s)     & 0.1900 & 0.1280 & 0.1540 & \textbf{0.0270} \\
$t_s$ (s)     & 1.5830 & 1.1950 & 1.2000 & \textbf{0.0460} \\
ISE  & 0.058670 & 0.041126 & 0.016122 & \textbf{0.008171} \\
IAE  & 0.182228 & 0.129095 & 0.091164 & \textbf{0.015525} \\
ITAE & 0.088336 & 0.072704 & 0.096097 & \textbf{0.006297} \\
ITSE & 0.007278 & 0.002705 & 0.001245 & \textbf{0.000050} \\
\bottomrule
\end{tabular}
\end{table}

Les quatre contrôleurs forment une progression monotone claire. La figure~\ref{fig:step_response}
montre les réponses indicielles complètes, la figure~\ref{fig:transient_zoom} zoome sur
le transitoire, et la figure~\ref{fig:tracking_error} montre l'erreur de suivi.

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig1_step_response.png}
\caption{Réponses indicielles nominales des quatre contrôleurs (0--10 s).}
\label{fig:step_response}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig2_transient_zoom.png}
\caption{Zoom sur le régime transitoire (0--0.5 s).}
\label{fig:transient_zoom}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig3_tracking_error.png}
\caption{Évolution de l'erreur de suivi $e(t) = r(t) - y(t)$ pour les quatre contrôleurs.}
\label{fig:tracking_error}
\end{figure}

Les figures~\ref{fig:perf_indices} et \ref{fig:step_metrics} comparent respectivement
les indices intégraux et les métriques temporelles clés.

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig9_perf_indices.png}
\caption{Indices intégraux de performance (ISE, IAE, ITAE, ITSE) pour les quatre contrôleurs.}
\label{fig:perf_indices}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig10_step_metrics.png}
\caption{Métriques temporelles comparatives : dépassement, temps de montée et stabilisation.}
\label{fig:step_metrics}
\end{figure}

Le Neuro-FOPID domine tous les critères intégraux simultanément. Deux leviers se cumulent :
(1) PID~$\to$~FOPID réduit le dépassement de 8.1\% à 3.28\% grâce à la phase d'avance
fractionnaire ; (2) classique~$\to$~neural réduit l'ISE de 49\% par planification adaptative.

%--------------------------------------------------------------
\subsection{Test de robustesse aux variations paramétriques}
\label{sec:robustness}

Un contrôleur performant en régime nominal peut se dégrader lorsque les paramètres du
système varient. Pour évaluer la robustesse des quatre contrôleurs, le gain de $G_v(s)$
est perturbé de $\delta \in \{-30\%, \ldots, +30\%\}$, les autres paramètres restant nominaux.

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig4_rob_pid_responses.png}
\caption{Famille PID : réponses en boucle fermée pour $\delta = -30\%$ à $+30\%$. La dispersion traduit la sensibilité paramétrique.}
\label{fig:rob_pid}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig5_rob_fopid_responses.png}
\caption{Famille FOPID : réponses pour les mêmes perturbations. Le faisceau est visuellement beaucoup plus serré.}
\label{fig:rob_fopid}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig6_rob_ise.png}
\caption{ISE en fonction de $\delta$ pour les quatre contrôleurs. Le Neuro-FOPID maintient le plus faible ISE sur toute la plage.}
\label{fig:rob_ise}
\end{figure}

Le tableau~\ref{tab:robustness} récapitule le dépassement à chaque niveau de perturbation.

\begin{table}[H]
\centering
\caption{Dépassement $M_p$ (\%) en fonction de la perturbation du gain ($\delta$).}
\label{tab:robustness}
\begin{tabular}{lcccc}
\toprule
$\delta$ & \textbf{PID-Réf} & \textbf{Neuro-PID} & \textbf{FOPID-Réf} & \textbf{Neuro-FOPID} \\
\midrule
$-30\%$ & 13.585 & 9.696 & 4.462 & \textbf{0.227} \\
$-20\%$ & 12.269 & 9.068 & 3.987 & \textbf{0.253} \\
$-10\%$ & 11.181 & 8.538 & 3.601 & \textbf{0.273} \\
$\pm 0\%$ & 10.267 & 8.082 & 3.282 & \textbf{0.288} \\
$+10\%$ & 9.487  & 7.683 & 3.015 & \textbf{0.300} \\
$+20\%$ & 8.814  & 7.330 & 2.787 & \textbf{0.310} \\
$+30\%$ & 8.227  & 7.014 & 2.591 & \textbf{0.318} \\
\midrule
\textbf{Étendue} & 5.358 & 2.682 & 1.871 & \textbf{0.091} \\
\bottomrule
\end{tabular}
\end{table}

La famille PID montre une étendue de 5.36 points sur $\pm 30\%$ de variation de gain.
Les deux contrôleurs FOPID maintiennent un faisceau serré : 1.87 points pour le FOPID-Réf,
seulement 0.09 point pour le Neuro-FOPID. Cet avantage découle de la propriété
d'iso-amortissement (voir section~\ref{sec:bode_ch2}) : la phase reste quasi-constante sur
une large bande, rendant les marges de stabilité insensibles aux variations de gain.

%--------------------------------------------------------------
\subsection{Rejet de perturbation}
\label{sec:disturbance}

Le rejet de perturbation est testé en appliquant un échelon de gain $+10\%$ à $t = 5$ s,
après que tous les contrôleurs ont atteint leur régime permanent nominal.

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig7_disturbance.png}
\caption{Réponse de rejet de perturbation : échelon de gain $+10\%$ à $t = 5$ s.}
\label{fig:disturbance}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=0.85\textwidth]{attachements/fig8_disturbance_zoom.png}
\caption{Zoom sur la phase de récupération après perturbation ($t = 5$--$7$ s).}
\label{fig:disturbance_zoom}
\end{figure}

Le tableau~\ref{tab:disturbance} quantifie les performances de rejet.

\begin{table}[H]
\centering
\caption{Performances de rejet d'une perturbation en échelon ($+10\%$ à $t = 5$ s).}
\label{tab:disturbance}
\vspace{0.2cm}
\begin{tabular}{lcccc}
\toprule
\textbf{Métrique} & \textbf{PID-Réf} & \textbf{Neuro-PID} & \textbf{FOPID-Réf} & \textbf{Neuro-FOPID} \\
\midrule
$T_{\text{récupération}}$ ($\pm 2\%$) & 1.526 s & 1.092 s & 1.139 s & \textbf{0.042 s} \\
Dépassement   & Oui & Oui & Non & Non \\
\bottomrule
\end{tabular}
\end{table}

Les deux contrôleurs FOPID récupèrent sans dépassement grâce à la dérivée fractionnaire
qui fournit une phase d'avance lors du saut d'erreur. Le Neuro-FOPID récupère en 42 ms ---
plus court que son propre temps de stabilisation nominal (46 ms) --- car le RNA applique
instantanément une action dérivative maximale en réponse au saut.

%--------------------------------------------------------------
\section{Conclusion}
\label{sec:ch4_final_conclusion}

Ce chapitre a présenté le véhicule électrique hybride, sa modélisation et l'ensemble des
résultats de simulation. La fonction de transfert $G_v(s) = 8.29\times10^5/[s(s+5)]$ a
servi de base de test pour quatre contrôleurs. Le Neuro-FOPID domine avec un dépassement
de $0.29\%$ (contre $10.27\%$), un temps de stabilisation de 46 ms ($34\times$ plus court),
une ISE $7\times$ inférieure. En robustesse, son étendue de dépassement sur $\pm30\%$ est
de 0.09 point (contre 5.36 pour le PID-Réf). En rejet de perturbation, sa récupération
en 42 ms sans dépassement confirme l'avantage structurel de la combinaison fractionnaire-neuronale.

\newpage

%==============================================================
%  CONCLUSION GÉNÉRALE
%==============================================================
\chapter*{Conclusion Générale}
\addcontentsline{toc}{chapter}{Conclusion Générale}
\markboth{Conclusion Générale}{Conclusion Générale}

Ce mémoire a abordé la problématique du réglage automatique d'un contrôleur PID d'ordre
fractionnaire par réseau de neurones artificiels, appliqué à la commande de la vitesse
d'un véhicule électrique hybride. L'objectif principal était de combiner les avantages
de la commande fractionnaire --- notamment la propriété d'iso-amortissement et la
robustesse structurelle du FOPID --- avec la capacité d'adaptation et d'optimisation
instantanée des réseaux de neurones.

Dans le premier chapitre, nous avons établi les fondements théoriques des systèmes d'ordre
fractionnaire. Les opérateurs de Riemann-Liouville et Caputo ont été présentés, ainsi que
les méthodes d'approximation de Charef et d'Oustaloup. Cette dernière a été retenue pour
sa précision et son intégration dans la FOMCON Toolbox de MATLAB. Le modèle de référence
fractionnaire d'iso-amortissement a été étudié en boucle fermée : son comportement est
similaire à celui d'un système de second ordre amorti dont le dépassement reste constant
malgré les variations de gain, ce qui en fait un modèle de référence robuste par excellence.

Le deuxième chapitre a permis de comparer les contrôleurs PID classique et FOPID. Les
trois structures du PID ont été présentées, ainsi que les différents types de FOPID.
Un exemple numérique sur un système de troisième ordre a démontré la supériorité du
FOPID vis-à-vis du PID classique en termes de précision de suivi. Les méthodes
d'optimisation SQP et Nelder-Mead ont été décrites et leur limitation principale ---
la sensibilité à l'initialisation --- a été identifiée comme la motivation principale
pour l'approche par réseau de neurones.

Le troisième chapitre a fourni les fondements théoriques des réseaux de neurones artificiels.
Les différentes architectures (MLP, CNN, RNN), les fonctions d'activation, l'algorithme de
rétropropagation et les techniques de régularisation ont été présentés. Ces éléments ont
servi de cadre pour la conception du réseau Neuro-FOPID.

Le quatrième chapitre a rassemblé la modélisation du véhicule électrique hybride ainsi que
l'ensemble des résultats de simulation. Le modèle non linéaire a été linéarisé au point
d'équilibre, conduisant à $G_v(s) = 8.29 \times 10^5 / [s(s+5)]$. Le réseau MLP à
architecture $3 \to 64 \to 64 \to 32 \to 5$, entraîné avec l'algorithme Adam sur
139\,363 échantillons générés hors-ligne, a démontré d'excellentes performances de
régression. En simulation en boucle fermée, le Neuro-FOPID surpasse le PID classique et
le FOPID de référence sur tous les critères : dépassement $0.29\%$ contre $10.27\%$,
ISE $7\times$ inférieure, temps de stabilisation $34\times$ plus court. Les tests de
robustesse ($\pm30\%$ de gain) et de rejet de perturbation confirment la supériorité
structurelle de l'approche fractionnaire-neuronale.

\textbf{Pour l'avenir}, plusieurs perspectives sont envisageables :
\begin{itemize}
    \item Utiliser des architectures RNA plus avancées (LSTM) pour une meilleure
          généralisation sur des dynamiques complexes,
    \item Combiner les RNA avec des algorithmes évolutionnaires pour la génération
          de la base d'entraînement,
    \item Valider expérimentalement les résultats sur une plateforme embarquée,
    \item Étendre l'approche aux modèles non linéaires complets du véhicule
          (frottement, dynamique batterie).
\end{itemize}

En définitive, ce mémoire démontre que les approches fractionnaires combinées aux réseaux
de neurones constituent une avancée significative pour les systèmes de commande modernes.

\newpage

%==============================================================
%  BIBLIOGRAPHIE
%==============================================================
\bibliographystyle{unsrt}

\begin{thebibliography}{99}

\bibitem{Caputo1967}
Caputo, M. (1967). Linear models of dissipation whose Q is almost frequency independent—II.
\textit{Geophysical Journal International}, 13(5), 529--539.

\bibitem{Charef1992}
Charef, A. (1992). Analogue realisation of fractional-order integrator.
\textit{IEEE Transactions on Circuits and Systems}, 39(9), 789--792.

\bibitem{Charef2006}
Charef, A. (2006). Analogue realisation of fractional-order integrator, differentiator and
fractional PID controller. \textit{IET Control Theory \& Applications}, 153(6), 714--722.

\bibitem{Kilbas2006}
Kilbas, A. A., Srivastava, H. M., \& Trujillo, J. J. (2006).
\textit{Theory and Applications of Fractional Differential Equations}. Elsevier.

\bibitem{Monje2010}
Monje, C. A., Chen, Y., Vinagre, B. M., Xue, D., \& Feliu, V. (2010).
\textit{Fractional-order Systems and Controls: Fundamentals and Applications}. Springer.

\bibitem{Ogata2010}
Ogata, K. (2010). \textit{Modern Control Engineering} (5th ed.). Prentice Hall.

\bibitem{Oustaloup1995}
Oustaloup, A., Mathieu, B., \& Lanusse, P. (1995). The CRONE control of resonant plants.
\textit{European Journal of Control}, 1(2), 113--121.

\bibitem{Podlubny1999}
Podlubny, I. (1999). \textit{Fractional Differential Equations}. Academic Press.

\bibitem{Bode1945}
Bode, H. W. (1945). \textit{Network Analysis and Feedback Amplifier Design}. Van Nostrand.

\bibitem{Chen2003}
Chen, Y., \& Moore, K. L. (2003). Discretization schemes for fractional-order differentiators
and integrators. \textit{IEEE Transactions on Circuits and Systems}, 49(3), 363--367.

\bibitem{ITAE_ref}
Définition et usages de ITAE. \textit{Ijee.ie}.
\url{https://www.ijee.ie/articles/Vol21-5/Ijee1673.pdf}

\bibitem{fmincon}
MathWorks. \textit{fmincon}.
\url{https://www.mathworks.com/help/optim/ug/fmincon.html}

\bibitem{NelderMead1965}
Nelder, J. A., \& Mead, R. (1965). A simplex method for function minimization.
\textit{Computer Journal}, 7(4), 308--313.

\bibitem{Barbosa2004}
Barbosa, R. S., Machado, J. A. T., \& Ferreira, I. M. (2004). Tuning of PID Controllers Based
on Bode's Ideal Transfer Function. \textit{Nonlinear Dynamics}, 38, 305--321.

\bibitem{SQP_ref}
Boggs, P. T., \& Tolle, J. W. (1995). Sequential Quadratic Programming.
\textit{Acta Numerica}, 4, 1--51.

\bibitem{Desborough2002}
Desborough, L., \& Miller, R. (2002). Increasing customer value of industrial control
performance monitoring. \textit{AIChE Symposium Series}, pp. 169--189.

\bibitem{Liu2017}
Liu, L., Wang, Z., \& Zhang, H. (2017). A multi-objective optimization method for fractional
order PID controller. \textit{ISA Transactions}, 72, 256--267.

\bibitem{Zhao2005}
Zhao, C., Xue, D., \& Chen, Y. Q. (2005). A Fractional Order PID Tuning Algorithm.
\textit{Int. Conf. on Mechatronics and Automation}, pp. 216--221.

\bibitem{Amoura2018}
AMOURA, Karima. \textit{Contribution à la synthèse de contrôleurs fractionnaires d'ordre
réduit}. Thèse de doctorat, UMMTO, 2018.

\bibitem{ZieglerNichols1942}
Ziegler, J. G., \& Nichols, N. B. (1942). Optimum settings for automatic controllers.
\textit{Transactions of the ASME}, 64, 759--768.

\bibitem{Haykin1999}
Haykin, S. (1999). \textit{Neural Networks: A Comprehensive Foundation} (2nd ed.).
Prentice Hall.

\bibitem{Hornik1989}
Hornik, K., Stinchcombe, M., \& White, H. (1989). Multilayer feedforward networks are
universal approximators. \textit{Neural Networks}, 2(5), 359--366.

\bibitem{Rumelhart1986}
Rumelhart, D. E., Hinton, G. E., \& Williams, R. J. (1986). Learning representations by
back-propagating errors. \textit{Nature}, 323, 533--536.

\bibitem{Kingma2015}
Kingma, D. P., \& Ba, J. (2015). Adam: A method for stochastic optimization.
\textit{ICLR 2015}, San Diego, CA.

\bibitem{Valerio2013}
Val\'{e}rio, D., \& S\'{a} da Costa, J. (2013).
\textit{An Introduction to Fractional Control}. IET.

\bibitem{Petras2011}
Petr\'{a}\v{s}, I. (2011).
\textit{Fractional-Order Nonlinear Systems}. Springer.

\bibitem{Garcia1982}
Garcia, C. E., \& Morari, M. (1982). Internal model control.
\textit{Ind. Eng. Chem. Process Des. Dev.}, 21(2), 308--323.

\end{thebibliography}

%==============================================================
\end{document}
%==============================================================
