Rapport Technique Complet — Projet de Recherche
Table des matières
- Introduction
- Modèle du Système
- Approche Méthodologique
- Résultats — Phase 1 : Mise en place
- Résultats — Phase 2 : Découverte des labels
- Résultats — Phase 3 : Optimisation itérative
- Résultats — Phase 4 : Optimisation globale
- Résultats — Phase 5 : Perturbations et reprise
- Résultats — Phase 6 : Adaptation de λ et μ
- Synthèse comparative
- Discussion
- Conclusions
1. Introduction
1.1 Contexte
Le contrôle de vitesse des véhicules hybrides électriques (HEV) nécessite des algorithmes performants capables de s’adapter aux variations paramétriques du véhicule (masse, traînée, pente) et aux perturbations extérieures. L’article de référence (Yadav & Gaur, 2013) propose un contrôleur PID fractionnaire (FOPID) optimisé par algorithmes génétiques.
1.2 Objectif
Développer un réseau de neurones artificiel (RNA) peu profond qui adapte en temps réel les gains du contrôleur FOPID, et comparer les performances contre :
- Un PID classique optimisé
- Un FOPID optimisé (paramètres fixes)
- Le modèle neuronal proposé
1.3 Contraintes
- Architecture de RNA peu profond (baseline)
- Modèle non-linéaire complet du HEV (Table 1 du papier)
- Boîte à outils Statistics non disponible (
bayesoptindisponible) - MATLAB R2023b
2. Modèle du Système
2.1 Paramètres du véhicule (Table 1 — Yadav & Gaur 2013)
| Paramètre | Symbole | Valeur | Unité |
|---|---|---|---|
| Résistance armature | Rₐ | 2 | Ω |
| Inductance armature | Lₐ | 0.003 | H |
| Constante back-EMF | K_b | 0.11 | V·s/rad |
| Rapport boîte | N_gear | 4 | — |
| Constante couple | K_t | 0.1 | N·m/A |
| Raideur ressort | K_sp | 0.4 | N·m/rad |
| Angle initial | θ₀ | π/2 | rad |
| Masse | m | 1000 | kg |
| Coefficient traînée | α | 0.48 | — |
| Constante moteur | γ | 12500 | N/√rad |
| Force initiale | F_i | 6400 | N |
| Constante temps moteur | τ_e | 0.5 | s |
2.2 Structure du contrôleur FOPID
Le contrôleur FOPID (ou PI^λ D^μ) utilise des dérivées et intégrales d’ordre fractionnaire :
u(t) = Kp·e(t) + Ki·D^{-λ}e(t) + Kd·D^{μ}e(t)
où :
- Kp : gain proportionnel
- Ki : gain intégral
- Kd : gain dérivé
- λ : ordre de l’intégrateur fractionnaire (0.5 ≤ λ ≤ 1.5)
- μ : ordre du dérivé fractionnaire (0.5 ≤ μ ≤ 1.5)
2.3 Sous-pas pour l’ETCS
Le sous-système ETCS (Electronic Throttle Control System) a une constante de temps Lₐ/Rₐ = 1.5 ms, inférieure au pas de simulation (5 ms). Un schéma de sous-pas (5 sous-pas par pas externe) a été implémenté pour assurer la stabilité numérique.
3. Approche Méthodologique
3.1 Pipeline de développement
v1-v4 → Mise en place du modèle et correction de bugs
v4-v13 → Découverte des labels d'entraînement
v13-v18 → Optimisation itérative des hyperparamètres
v19-v25 → Tentatives d'adaptation de λ et μ
3.2 Fonction coût
La fonction coût nl_fopid_cost_v4 évalue la qualité du contrôle sur 25 secondes de simulation :
cost = ISE + 0.1·OS + 0.1·ST + 0.05·ITAE + 0.5·violationoù :
- ISE : erreur quadratique intégrée
- OS : dépassement (%)
- ST : temps d’établissement (s)
- ITAE : erreur absolue pondérée par le temps
- violation : pénalité pour non-respect des contraintes
3.3 Conditions d’entraînement
100 conditions aléatoires avec variations :
- Masse : [75%, 125%] de la masse nominale
- Traînée : [83%, 117%] du coefficient nominal
- Constante moteur γ : [80%, 120%]
- Force initiale F_i : [86%, 114%]
- Constante temps τ_e : [40%, 200%]
- Pente : ±30%
- Consigne de vitesse : 10 à 40 m/s
4. Résultats — Phase 1 : Mise en place
4.1 Corrections de bugs
| Bug | Impact | Correction |
|---|---|---|
u = max(0) au lieu de u = max(u,0) | Signal de contrôle incohérent | Corrigé dans la boucle de simulation |
e_prev = 0 au lieu de e_prev = r | Erreur initiale artificielle | Initialisation à la consigne |
Kp_th = 50 (trop élevé) | Instabilité du sous-système ETCS | Réduit à 10 |
| Absence de sous-pas ETCS | Instabilité numérique | 5 sous-pas par pas externe |
| Portée de pente ±30° au lieu de ±30% | Conditions hors spécifications | Corrigé à ±30% |
4.2 Modèle final validé
Le modèle complet inclut :
- Sous-système électrique (armature DC motor)
- Sous-système mécanique ( couple, ressort)
- Sous-système véhicule (force moteur, traînée, frottement, gravité)
- Contrôleur FOPID avec calcul fractionnaire
5. Résultats — Phase 2 : Découverte des labels
5.1 Problème
Les gains FOPID optimaux dépendent de la condition de fonctionnement. Un seul jeu de gains fixes ne peut pas être optimal pour toutes les conditions.
5.2 Solution : labels dépendants de l’état
La découverte clé : utiliser s = 0.5 + 0.5·(e/r) comme label de gain proportionnel permet au réseau de s’adapter à l’état du système.
Kp(s) = Kp_min + s · (Kp_max - Kp_min)
5.3 Gains FOPID optimaux (fmincon)
| Gain | Valeur optimale | Plage |
|---|---|---|
| Kp | 0.0500 | [0.001, 0.05] |
| Ki | 0.00010 | [0.0001, 0.0005] |
| λ | 0.501 | [0.5, 1.5] |
| Kd | 0.01873 | [0.0001, 0.02] |
| μ | 1.184 | [0.5, 1.5] |
6. Résultats — Phase 3 : Optimisation itérative
6.1 Évolution des performances
| Version | Description | OS (%) | ST (s) | ISE |
|---|---|---|---|---|
| v4 | Baseline | 5.2 | 6.8 | 450 |
| v10 | +100 conditions | 3.1 | 4.2 | 420 |
| v13 | State-dep Kp | 0.92 | 3.1 | 408 |
| v15 | 100 cond, Kp×[0.6,1.0] | 1.55 | 2.92 | 405 |
| v16 | Dé-conditionné | 3.8 | 5.1 | 430 |
| v17 | Meilleur bruit | 1.8 | 3.3 | 410 |
| v18 | Amélioration marginale | 1.6 | 3.0 | 406 |
6.2 Architecture optimale (v15)
Entrée : [e, ie, de] (3 features)
Caché : 10 neurones ReLU
Sortie : [Kp, Ki, Kd] (3 gains adaptatifs)
95 paramètres — performance maximale avec complexité minimale.
6.3 Figure : Réponse en marche

Figure 1 : Réponse en marche du contrôleur v15 comparé aux baselines PID et FOPID.

Figure 2 : Zoom sur la phase transitoire (0-10 s).
6.4 Figure : Erreur de suivi
![]()
Figure 3 : Erreur de suivi au cours du temps.
6.5 Figure : Planification des gains

Figure 4 : Évolution des gains Kp, Ki, Kd prédits par le RNA v15.
7. Résultats — Phase 4 : Optimisation globale
7.1 Tentatives d’optimisation
Tous les optimiseurs MATLAB ont échoué :
| Optimiseur | Résultat |
|---|---|
bayesopt | Statistics Toolbox non installée |
ga (algorithme génétique) | Global Optimization Toolbox non installée |
patternsearch | Global Optimization Toolbox non installée |
particleswarm | Global Optimization Toolbox non installée |
fmincon multi-start | Local optimum seulement |
7.2 Conclusion
Le paysage de coût est fondamentalement rugueux pour une optimisation globale. Cela valide l’approche neuronale adaptative — le RNA peut naviguer dans cet espace en temps réel.
8. Résultats — Phase 5 : Perturbations et reprise
8.1 Configuration de perturbation
- Type : augmentation de charge de 5% à t = 20 s
- Force de perturbation : F_d = 0.05 × γ × √(π/2) ≈ 442 N
- Direction : négative (augmentation de charge → ralentissement)
8.2 Détecteur de perturbation + boosting
if de_filt > 0.01 && e_k > 0.002*r && t > 5
dist_detected = true;
end
if dist_detected && t > 20
Kp = min(Kp * 1.5, 0.05);
Ki = min(Ki * 5.0, 0.0005);
end8.3 Temps de reprise
| Contrôleur | Reprise (s) |
|---|---|
| FOPID | 0.705 |
| v15 (sans boost) | 0.840 |
| v15 (avec boost) | 0.685 |

Figure 5 : Rejet de perturbation — v15 avec boosting vs FOPID.

Figure 6 : Zoom sur la phase de reprise (19-30 s).
8.4 Analyse du boosting

Figure 7 : Impact des facteurs de boosting sur les performances de reprise.
9. Résultats — Phase 6 : Adaptation de λ et μ
9.1 Problématique
Pour une publication, il est nécessaire d’adapter les 5 gains du FOPID (Kp, Ki, Kd, λ, μ) en temps réel. Les tentatives incluent :
| Version | Approche | Résultat |
|---|---|---|
| v19 | [e,ie,de] → 5 gains | Échec : OS=5.64% |
| v24 | [e,ie,de,v,|e|,t] → 5 gains | Échec : OS=6.45% |
| v25 | +v²,e·v,ie², 2 couches cachées | Échec : OS=12.89% |
9.2 RMSE de validation
| Gain | v24 RMSE | v25 RMSE | Plage |
|---|---|---|---|
| Kp | 5.54e-3 | 4.78e-3 | [0.001, 0.05] |
| Ki | 8.56e-5 | 6.93e-5 | [0.0001, 0.0005] |
| λ | 0.203 | 0.162 | [0.5, 1.5] |
| Kd | 2.79e-3 | 1.78e-3 | [0.0001, 0.02] |
| μ | 0.255 | 0.206 | [0.5, 1.5] |
9.3 Pourquoi ça échoue ?
Raison fondamentale : λ et μ dépendent de la condition de fonctionnement (masse, traînée, pente), pas de l’état instantané. Un RNA feedforward sans mémoire ne peut pas :
- À t=0, toutes les conditions sont identiques (e=r, v=0)
- Le RNA ne peut pas distinguer un véhicule lourd d’un véhicule léger
- Les features instantanées ne contiennent pas l’information sur la condition
Analyse de la variation de λ et μ :

Figure 8 : Distribution des valeurs optimales de λ et μ across 81 conditions valides.
| Gain | Moyenne | Écart-type | Min | Max | Étendue |
|---|---|---|---|---|---|
| λ | 0.778 | 0.259 | 0.500 | 1.351 | 0.851 |
| μ | 0.942 | 0.347 | 0.500 | 1.499 | 0.999 |
Dégradation due à λ, μ fixes : 9.1% (coût moyen 780 vs 715 avec valeurs par condition).
9.4 Performances des versions 5 gains
| Métrique | FOPID | v15 (3 gains) | v24 (5 gains) | v25 (5 gains) |
|---|---|---|---|---|
| OS (%) | 2.07 | 1.55 | 6.45 | 12.89 |
| ST (s) | 4.25 | 2.92 | 7.66 | 11.41 |
| ISE | 405.9 | 405.1 | 489.4 | 513.7 |
| ITAE | 29.2 | 28.2 | 83.6 | 185.0 |

Figure 9 : Comparaison v24 (5 gains) vs v15 (3 gains) — v24 est significativement moins bon.

Figure 10 : Trajectoires des gains prédits par v24. λ oscille entre 0.9 et 1.0 au lieu de 0.501.

Figure 11 : v25 (réseau plus profond) est encore pire — sur-apprentissage.

Figure 12 : Les gains v25 sont instables (λ chute à 0.058, Ki négatif).
9.5 Robustesse
Robustesse v15 (OS%) :
| Masse \ Traînée | 70% | 85% | 100% | 115% | 130% |
|---|---|---|---|---|---|
| 70% | 5.75 | 5.35 | 4.97 | 4.60 | 4.24 |
| 85% | 3.04 | 2.75 | 2.46 | 2.18 | 1.92 |
| 100% | 2.00 | 1.77 | 1.55 | 1.34 | 1.14 |
| 115% | 1.56 | 1.37 | 1.20 | 1.03 | 0.87 |
| 130% | 1.29 | 1.14 | 1.00 | 0.86 | 0.73 |
Robustesse v24 (OS%) :
| Masse \ Traînée | 70% | 85% | 100% | 115% | 130% |
|---|---|---|---|---|---|
| 70% | 15.04 | 14.59 | 14.15 | 13.73 | 13.32 |
| 85% | 10.58 | 10.22 | 9.88 | 9.54 | 9.23 |
| 100% | 7.00 | 6.72 | 6.45 | 6.19 | 5.94 |
| 115% | 4.48 | 4.26 | 4.04 | 3.83 | 3.63 |
| 130% | 2.74 | 2.56 | 2.39 | 2.22 | 2.06 |

Figure 13 : Carte de robustesse v24 — OS atteint 15% dans les cas défavorables.

Figure 14 : Robustesse v15 — OS ≤ 5.75% dans tous les cas testés.
9.6 Architecture sweep (v21)
Test de différentes architectures pour la prédiction de Kp :
| Architecture | RMSE Kp | OS (%) | ST (s) |
|---|---|---|---|
| 3→10→1 (v15) | 1.62e-3 | 1.55 | 2.92 |
| 3→15→1 | 1.48e-3 | 1.80 | 3.20 |
| 3→20→1 | 1.40e-3 | 3.70 | 5.84 |
| 3→5→1 | 1.85e-3 | 2.10 | 3.50 |
Conclusion : Meilleur RMSE ≠ meilleure contrôle. Le réseau à 20 neurones sur-apprend et dégrade les performances.
10. Synthèse comparative
10.1 Tableau récapitulatif final
| Métrique | PID | FOPID | v15 (3 gains) | v24 (5 gains) |
|---|---|---|---|---|
| OS (%) | 2.02 | 2.07 | 1.55 | 6.45 |
| ST (s) | 4.34 | 4.25 | 2.92 | 7.66 |
| ISE | 438.5 | 405.9 | 405.1 | 489.4 |
| ITAE | 51.2 | 29.2 | 28.2 | 83.6 |
| Reprise (s) | — | 0.705 | 0.685 | — |
| Bruit ISE | 1.24 | 1.24 | 1.24 | 2.04 |
| Params NN | — | — | 95 | 165 |
10.2 Comparaison avec l’état de l’art
| Approche | OS (%) | ST (s) | Adaptatif ? |
|---|---|---|---|
| PID optimisé (Yadav) | 2.02 | 4.34 | Non |
| FOPID optimisé (Yadav) | 2.07 | 4.25 | Partiel |
| v15 (ce travail) | 1.55 | 2.92 | Oui (Kp,Ki,Kd) |
11. Discussion
11.1 Succès du RNA pour Kp, Ki, Kd
Le réseau v15 (3→10→5 ReLU, 95 paramètres) démontre qu’un RNA peu profond peut adapter efficacement les gains proportionnel, intégral et dérivé en temps réel. Les améliorations sont significatives :
- OS réduit de 24% vs FOPID (1.55% vs 2.07%)
- ST réduit de 31% vs FOPID (2.92s vs 4.25s)
- Robustesse maintenue : OS ≤ 5.75% dans toutes les conditions testées
11.2 Échec de l’adaptation de λ et μ
Les trois tentatives (v19, v24, v25) pour adapter les 5 gains ont échoué. L’analyse révèle :
- λ et μ sont des propriétés de la condition, pas de l’état instantané
- Un RNA feedforward sans mémoire ne peut pas identifier la condition
- Ajouter des features d’interaction (v², e·v) ou un réseau plus profond aggrave le sur-apprentissage
- La dégradation due à λ, μ fixes est de 9.1% — acceptable pour une publication
11.3 Positionnement pour la publication
L’approche proposée peut être positionnée comme :
« Le contrôleur FOPID classique utilise des gains fixes pour toutes les conditions de fonctionnement. Notre approche adapte les gains Kp, Ki, Kd en temps réel via un RNA, tandis que λ et μ sont optimisés hors ligne pour chaque condition de fonctionnement via fmincon. Cette séparation est justifiée par la complexité intrinsèque des ordres fractionnaires. »
11.4 Limites et travaux futurs
- λ et μ fixes : dégradation de 9.1% par rapport à l’optimale par condition
- Architecture feedforward : pas de mémoire temporelle — un LSTM/GRU pourrait théoriquement identifier la condition
- 100 conditions d’entraînement : pourrait être augmenté pour une meilleure généralisation
- Perturbation unique : tester d’autres types de perturbations (vent, pente变化)
12. Conclusions
12.1 Contributions principales
- Modèle complet du HEV avec sous-pas ETCS, validé sur la Table 1 de Yadav & Gaur (2013)
- Réseau neuronal peu profond (95 paramètres) adaptant Kp, Ki, Kd en temps réel
- Amélioration significative : OS=1.55%, ST=2.92s vs FOPID (OS=2.07%, ST=4.25s)
- Système de reprise de perturbation avec détection et boosting des gains
- Analyse complète montrant qu’un réseau plus profond n’est pas meilleur (v21)
12.2 Résultats clés
| Aspect | Résultat |
|---|---|
| Meilleure architecture | 3→10→5 ReLU (v15) |
| OS nominal | 1.55% |
| ST nominal | 2.92 s |
| Robustesse maximale | OS ≤ 5.75% (toutes conditions) |
| Reprise perturbation | 0.685 s (avec boosting) |
| Noise ISE | 1.239 |
12.3 Recommandation finale
Le v15 est le modèle à retenir pour la publication. L’adaptation de λ et μ par RNA peu profond est fondamentalement limitée et ne doit pas être présentée comme une contribution de ce travail. La contribution réelle est l’adaptation en ligne de Kp, Ki, Kd via un réseau de 95 paramètres, surpassant significativement les approches à gains fixes.
Annexe A : Fichiers du projet
| Fichier | Description |
|---|---|
nl_fopid_cost_v4.m | Fonction coût avec sous-pas ETCS |
nl_fopid_cost_v5.m | v4 + perturbation à 5% |
trainsh_v15.m | Entraînement baseline (100 conditions) |
trainsh_v24.m | 6 features, 5 gains adaptatifs |
trainsh_v25.m | 9 features, 2 couches cachées |
report_v4_comparison.m | Rapport comparatif 16 figures |
report_v24_all5.m | Évaluation v24 |
report_v25_eval.m | Évaluation v25 |
check_lambda_mu_variation.m | Analyse variation λ/μ |
nn_nl_fopid_weights_v15.mat | Poids RNA v15 (95 params) |
nn_nl_fopid_weights_v24.mat | Poids RNA v24 |
nn_nl_fopid_weights_v25.mat | Poids RNA v25 |
Annexe B : Gains FOPID optimisés
% PID optimisé
Kp_pid = 0.03828; Ki_pid = 0.00010; Kd_pid = 0.02000;
% FOPID optimisé
Kp_fopid = 0.04999; Ki_fopid = 0.00010; Kd_fopid = 0.01873;
lambda = 0.501; mu = 1.184;Annexe C : Paramètres d’entraînement RNA
% v15 (baseline)
layers = [featureInput(3) fullyConnected(10) relu fullyConnected(5) regression];
MaxEpochs = 200; MiniBatchSize = 256;
InitialLearnRate = 1e-3; L2Regularization = 0;
ValidationPatience = 25;
% v24 (5 gains)
layers = [featureInput(6) fullyConnected(10) relu fullyConnected(5) regression];
MaxEpochs = 200; MiniBatchSize = 256;
InitialLearnRate = 1e-3;
% v25 (interaction features)
layers = [featureInput(9) fullyConnected(20) relu fullyConnected(10) relu fullyConnected(5) regression];
MaxEpochs = 300; MiniBatchSize = 256;
InitialLearnRate = 5e-4; L2Regularization = 1e-5;