Systèmes Embarqués : Concepts et Applications
Systèmes Embarqués : Concepts et Applications
systèmes autonomes
Filière : Électronique Embarquée Et
Systèmes Intelligents
programmes.
◼ Ils sont donc partout, discrets, efficaces et dédiés à ce à quoi ils sont destinés.
Exemple d'un SE (calculateur moteur MCU) Exemple d'un SE (calculateur moteur BCM)
▪ Un SE est autonome et ne possède pas des entrées/sorties standards tels qu'un clavier ou
un écran d'ordinateur
▪ Contrairement à un PC, l'interface IHM d'un système embarqué peut être aussi simple
qu'un LED qui clignote ou aussi complexe qu'un afficheurs à cristaux liquides LCD.
▪ Le logiciel a une fonctionnalité fixe à exécuter qui est spécifique à une application.
Coût minimal:
Les coûts de production doivent être aussi bas que possible tout en maintenant les performances requises
Autonomes: Une fois enfouis dans l'application ils ne sont (le plus souvent) plus
accessibles
Temps réel (TR): Les temps de réponses de ces systèmes sont aussi importants que
l'exactitude des résultats. Les système embarqués fonctionnent généralement en
TR; les opérations de calcul sont alors faites en réponse à un événement extérieur
(interruption matérielle)
❑ Système Interactif :
Un système qui est constamment en contact avec son environnement, même après son
démarrage ; il réagit aux événements qu'il reçoit en fonction de son état actuel, qui
dépend des événements passés et des réponses antérieures ; le rythme de cette
interaction est dicté par le système lui-même et non par son environnement
❑ Système Réactif ou Temps Réel
Cela signifie qu'un système continue d'interagir avec son environnement une fois qu'il est
démarré.
Sa réaction aux événements est influencée par ce qu'il reçoit et par son état actuel, qui
dépend de ce qui s'est passé avant. Cependant, le rythme auquel ces interactions se
produisent est dicté par l'environnement et non par le système lui-même.
24/02/2025 Pr. HASSANI 18
1 Introduction aux systèmes embarqués
5. Systèmes embarqués temps réel
❑ Définition de temps-réel (CNRS 1988) :
« Peut être qualifiée de "temps-réel" (ou "temps contraint", ou encore "réactif") toute
application mettant en œuvre un système informatique dont le fonctionnement est
soumis à l'évolution dynamique de l'environnement qui lui est connecté et dont il doit
contrôler le comportement »
Cela signifie que le système doit être capable de traiter les données en temps réel et
d'ajuster ses actions en fonction des changements en cours dans son environnement.
Si les délais ne sont pas respectés, de graves problèmes vont apparaitre pour le
système ou son environnement, exemple des accidents dans le cas de systèmes d'auto-
pilotage, des retards dans les soins médicaux, etc. Il est crucial que les délais ne soient
jamais dépassés.
Si les délais ne sont pas respectés, le système peut fonctionner plus lentement, mais
sans causer de problèmes graves, comme dans les systèmes de billetterie automatique. Le
système doit toujours répondre aussi rapidement et efficacement que possible.
➢ Sûreté de fonctionnement
▪ Capacité à accorder une confiance justifiée au service.
➢ Robustesse
▪ Aux chocs, à la température, à l’humidité.
➢ Environnement
▪ Ils doivent s'adapter et fonctionner efficacement malgré ces contraintes
environnementales.
▪ Exemples de contraintes: température, vibration, chocs, radiations, …
➢ Temps Réel
▪ La validité et la pertinence des résultats sont directement liées au moment de leur
délivrance.
▪ Le non-respect d'une échéance entraîne un dysfonctionnement et des erreurs.
✓ Trois couches:
Fonction principale : Exécution des instructions logiques et arithmétiques qui composent les
programmes informatiques. Il traite les données en effectuant des opérations telles que l'addition,
la soustraction, la multiplication, la division, la comparaison, etc.
Horloge : Le CPU est synchronisé par une horloge interne qui définit la cadence à laquelle les
opérations sont exécutées. La vitesse du processeur est mesurée en hertz (Hz) et détermine la
fréquence à laquelle les instructions sont traitées.
Architecture parallèle : Les CPU modernes utilisent souvent une architecture parallèle,
comprenant plusieurs cœurs de processeur, pour exécuter plusieurs tâches en parallèle et
améliorer les performances globales du système.
24/02/2025 Pr. HASSANI 29
1 Introduction aux systèmes embarqués
7. Architecture générale et modes de fonctionnement
❑ Architecture générale d’un SE Partie Hardware
2. Mémoires
La mémoire est un composant essentiel de tout système informatique, permettant de stocker des
programmes, des fichiers, des paramètres, des variables et d'autres types d'informations
nécessaires au fonctionnement du système. Chaque cellule de mémoire possède les caractéristiques
suivantes:
• Taille : Il s'agit du nombre de bits que cette cellule peut stocker. La taille peut varier en
fonction du type de mémoire et de sa conception.
• Adresse unique : Chaque cellule de mémoire est associée à une adresse unique qui permet
d'identifier de manière précise son emplacement dans la mémoire. Cette adresse est utilisée
pour accéder à la cellule et récupérer ou stocker des données.
La mémoire peut être classée en plusieurs types en fonction de sa volatilité, de sa vitesse d'accès, de
sa capacité de stockage et de sa fonctionnalité.
▪ Fonctionnement de l'horloge :
• Oscillateur à quartz : Il utilise un cristal de quartz qui vibre à une fréquence spécifique lorsqu'une
tension est appliquée. Génère un signal d'horloge stable et précis.
• Oscillateur à cristal : Similaire à l'oscillateur à quartz, mais utilise d'autres types de cristaux, tels que
le cristal de céramique, pour générer le signal d'horloge.
• Oscillateur à base de circuits LC : Utilise des composants inductifs et capacitifs pour générer des
oscillations électriques à une fréquence spécifique. Il est moins précis que l'oscillateur à quartz
• Oscillateur à base de circuits intégrés : Sont des oscillateurs intégrés dans des circuits intégrés
spécifiques, tels que des PLL (Phase-Locked Loops) ou des VCO (Voltage-Controlled Oscillators),
33
1 Introduction aux systèmes embarqués
7. Architecture générale et modes de fonctionnement
❑ Architecture générale d’un SE Partie Hardware
4. Entrées/sorties
Se réfèrent aux interfaces par lesquelles le système communique avec le monde extérieur, que ce soit
pour recevoir des données (entrées) ou envoyer des données (sorties).
➢ Entrées : Boutons poussoirs, capteurs,
➢ Il s'agit d'un ensemble de broches qui peuvent être configurées pour fonctionner soit en tant
qu'entrées, soit en tant que sorties, selon les besoins du système.
➢ Les broches GPIO permettent au SE de se connecter à une variété de périphériques externes tels
que des capteurs, des actionneurs, des écrans, des claviers, des cartes d'extension, etc.
▪ Cette unité de traitement exécute les instructions des programmes et effectue les opérations de
calcul nécessaires au fonctionnement du SE.
• Unités arithmétiques et logiques (UAL): permet de traiter les opérations arithmétiques (addition,
soustraction, …) et logiques (ET, OU, NON) sur les données.
• Unité de calcule en virgule flottante (FPU): permet d’accélérer la calcule sur les nombres en virgule
flottantes (floating-point).
4- Registres: sont de petits emplacements de mémoire situés à l'intérieur du µp, utilisés pour stocker
temporairement des données et des adresses mémoire pendant l'exécution des instructions.
▪ Bus d’adresse: utilisé par le processeur pour spécifier l'adresse mémoire d'où lire ou écrire des données
▪ Bus de données: utilisé pour transférer les données entre le processeur et la mémoire, ainsi que entre le
processeur et les périphériques d’ E/S.
▪ Bus de contrôle: transporte des signaux de contrôle (synchronisation, interruption, lecture/écriture,
validation d'adresse, etc) qui coordonnent les opérations entre le processeur, la mémoire et les
périphériques.
µC (MCU)
On parle de microcontrôleur ou MCU, l'ensemble des
composants (CPU, RAM, ROM, ...) se trouvent sur une même et
unique puce qui a été miniaturisée de manière optimale par le
fabricant.
Dans un système embarqué (SE), le fonctionnement repose sur plusieurs types de tâches
qui assurent la gestion des différentes opérations
❑ Tâches d’entrées/sorties : ces tâches permettent d’accéder aux données externes par
l’intermédiaire de cartes d’entrées/sorties et ensuite de capteurs et d’actionneurs
directement liés au procédé géré. Ces tâches peuvent être activées de façon régulière ou
par interruption.
❑ Tâches de traitement : ces tâches constituent le cœur de l’application. Ces tâches
effectuent des calculs et analyses sur les données obtenues via les entrées.
➔ Calculer la vitesse d’un véhicule à partir des données du capteur de roue
➔ Algorithme de filtrage, algorithme de contrôle PID
24/02/2025 Pr. HASSANI 41
1 Introduction aux systèmes embarqués
7. Architecture générale et modes de fonctionnement
❑ Architecture générale d’un SE
❑ Tâches de sauvegarde : ces tâches permettent de stocker des données critiques pour éviter
leur perte en cas de panne ou de redémarrage (Sauvegarde d’un code DTC dans la mémoire
non volatile).
Une organisation du cycle de vie logiciel très adaptée aux systèmes critiques est celle du
cycle en «V». Dans cette représentation, à chaque niveau d’analyse ou de conception
correspond un niveau de validation; ainsi nous avons :
• Non fonctionnelles : décrivent des propriétés que le système doit avoir. Les contraintes
temporelles sont typiquement des exigences non fonctionnelles.
➢ Boucle infinie
Tant que TOUJOURS faire
➢ Fonctionnement Cyclique :
• Scrutation d'une mémoire d'entrée périodiquement (lecture
périodique à intervalles réguliers)
• Echantillonnage des entrées sur l'horloge du système
(uniquement à chaque top d'horloge)
• Activation du système à chaque top d'horloge
➢ Fonctionnement Evénementiel :
Le fonctionnement est basé sur le principe d'activation du système
à chaque événement (notion d'interruption)
* Historiques
* Classification par Type de Motorisation
* Architecture du véhicule
* Systèmes avancés d'aide à la conduite (ADAS)
* Conduite autonome
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
1. Généralités
1.1 Véhicule autonomes
Ÿ | Ÿ
Terrestre Aérien Maritime
L’autonomie est une caractéristique progressive et mesurable selon des standards précis
(SAE pour les voitures, ICAO pour les drones, IMO pour les navires). J
* SAE (Society of Automotive Engineers) 6 niveaux d'autonomie (de O à 5) pour les véhicule terrestres
° _ICAO (International Civil Aviation Organization) > 6 niveaux d'autonomie (de O à 5) pour les véhicule aériens
y IOM (International Maritime Organization) > 5 niveaux d’autonomie (de O à 4) pour les véhicule terrestres
J
28/03/2025 Pr. HASSANI b
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
1. Généralités
1.1 Véhicule autonomes
Q Niveau d’autonomie
e de . A : ‘ : ‘
TP Niveau O Niveau 1 Niveau 2 Niveau 3 Niveau 4 Niveau 5
véhicule
Automatisation | Automatisation Automatisation
Pas Assistance au partielle (Le conditionnelle Automatisation | complète
& Véhicules k ue conducteur {ex. | véhicule contrôle | {le véhicule élevée (véhicule | (aucune
d'automatisation - de : : .
terrestres (conduite régulateur de accélération et peut conduire autonome dans | intervention
anu elle) vitesse direction, mais le | seul dans des zones humaine
° adaptatif). conducteur certaines spécifiques). nécessaire
surveille). conditions). partout).
Assistance au eus Automatisation | Autonomie
pilote Automatisation Automatisation élevée (drone complète
# Véhicules | Vol entièrement (autopilote partielle (ex. drone eue autonome (aéronefs
aériens manuel (piloté basique : décollage ou 1 l capable d'éviter | opérant seuls
ICAO par un humain). maintien de atterrissage un plan de vo des obstacles et | sans
l'altitude et du automatique). Supervision) de prendre des | intervention
cap). P ° décisions). humaine).
e de . A : ‘ : :
Type Niveau O Niveau 1 Niveau 2 Niveau 3 Niveau 4 Niveau 5
Navigation Navigation
Navigation Assistance Navigation avec | autonome sous entièrement
sd Véhicules | entièrement automatique SUpervs on surveillance autonome
maritimes manuelle (aides à la humaine à (opération (aucune =
: Lu distance automatisée : .
(pilotage navigation intervention
humain) autos ilote). (équipage avec contrôle à humaine
° P ° réduit). distance .
possible). nécessaire).
7 #ư
dE Ai #
Se Le »
28/03/2025 Pr. HASSANI
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
2. Véhicule autonomes: Drone
2.2 Classification des UAVSs
A
Tricoptères
N
Hexacoptère
+
L] Ca
— D Octocoptères
Consommation 2 1 1
d'énergie
Charge utile 3 1 2
Maniabilité 2 3 3
Vol stationnaire 1 2 3
Endurance 3 1 1
Utilisation intérieur 1 3 3
28/03/2025 14
Systèmes Embarqués pour les véhicules
autonomes (Drone et Automobile)
2. Véhicule autonomes: Drone
2.3 Quadrirotor
Q Référentiels
Angle de
_— rotation
positive
Q Configuration
> Coordonnées
Orientation : (D,0,Y)
> © (roulis)
> 0 (tangage)
> Y (lacet)
Q Mécanisme du vol
" Les mouvements sont assuré par le système de propulsion
Q Configuration
28/03/2025 18
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
2. Véhicule autonomes: Drone
2.3 Quadrirotor
Q Mouvement de translation verticale
Ti l
! Mouvement vol Mouvement :
! ascendant stationnaire de descente
[l l
I ll
I ll
I Z l
[l l
;
[l 4
I ll
I Z !
! RE Reference ]}
r| [l
| R
I ? ll
I l
|1 R
I Z ll
I l
I
| ?
È Augmentation | . Diminution de la I
de la vitesse Vitesse nominale Vitesse des moteurs
des moteurs
l
Vol stationnaire
A4 Z
Angle de Roulis et 1e
mouvement de translation
x y latérale
[
I
I
1
I
m
9 Angle de Tangage et le
mouvement de translation
longitudinale
mX — FG + RB-EËn — KyX + dy
0
° Poids F; =| 0
my
0
* Force de poussé totale FE, = 0
Xi Fi
* Force de frottement KyX
dx
* Perturbations externes dy = FA
dz
Mo EP — Fa K/1(C03 — 07)
dy
28/03/2025 Pr. HASSANI 23
Systèmes Embarqués pour les véhicules EEE
autonomes (Drone et Automobile)
2. Véhicule autonomes: Drone
2.3 Quadrirotor
Q Modèle dynamique
Dynamique de translation Dynamique de rotation
(. U K | Ko
% = — (cos P sin @ cos Y + sin D sin W) — —Æ À + d, é = 6 (27 = _ Lou + 2 h1+d,
D. K Jx Jx J Jk
Ty > Æ y
° Rotation de lacet Y
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
2. Véhicule autonomes: Drone
2.3 Quadrirotor
Q Architecture de contrôle
Contrôleur
> Station de contrôle. d'orientation :
Quadrirotor
> L'état du système est soit à qu x | \NU
Générateur
travers des capteurs ou des L
trajectoire Système de
observateurs découplage
pm,
! Estimation de d'état |
Nr
f
—,
+ IMU/GPS + __ Détection des obstacles É E ji f Planification de la trajectoire \
> Sous système de navigation + Visuelle/Laser . Détection des cibles 1 (évitement des obstacles) |
+ Cartographie
“" Acquisition, analyse et extraction des + Baromètre
H
H
#
informations sur l’états du drone. Acquisition de
données (I2C, :
" Estimation de l'état et perception de PSI,
l’environnement.
f
" Les sorties de ce module sont exploitées par
| Système de commande de vol :
a
le contrôleur de vol (contrôle de Commande le a
{
as
. Contrôle de position
d'actionneurs |L Allocation [es
de de | + Contrôle d'altitude [1
mouvement) et par le système de guidage il de contrôle |
(réalisation de la mission).
ci
28/03/2025 Pr. HASSANI
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
2. Véhicule autonomes: Drone
2.3 Quadrirotor
Ces ——— ---
Q Système de guidage, de navigation et ol
!
de contrôle (|
(l Estimation de d'état | Perception |
11é Li | + » - ll \
> S n d id li + IMU/GPS ; + Détection des obstacles j7 | Planification de la trajectoire
ous système ce guidage 1. Visuelle/Laser À. Détectiondes dbles À {… (vitement des obstacles)
“"
. .
Agir en tant que pilote/opérateur
. L'
LEE _À
1.
"Cartographie
è
pm,
! Estimation de d'état |
> Sous système de contrôle Nr
f |
—,
+ IMU/GPS + Détection des obstacles É É ” [ Planification de la trajectoire |
1 (évitement des obstades) |
" Responsable de la stabilité et du suivit des + Visuelle/Laser . Détection des cibles
+ Baromètre Î + Cartographie
trajectoires.
#
" Architecture de contrôle hiérarchique Acquisition de
données (I2C, :
PSI,
(méthode de contrôle)
2 N N LA
" Entrées Etat du système (système de l
l
navigation) et les trajectoire désirées Û | Système de commande de vol |
Commande 1 a _—. 1 _
= e
(système de guidage). d'actionneurs il Allocation usés Ê SOIR = ER
. . L d ok + Contrôle d'altitude |
" Sorties Les signaux de contrôle _. na En cn 1}| de contrôle >) œupe a }
=
Y Ÿ Ÿ Ÿ Ÿ
Vol de stabilisation Vol d'altitude Maintien de localisation Mode retour Vol automatique
« Stabilize mode» « AltHold mode» « Loiter mode » « RTL mode » « Auto mode »
à ue ue à 8 B * Drone suitune\
mission
+ Roulis/Tangage . Stabilisation du « Maintenir la . Ramène le drone à
+ Lacet Roulis/Tangage noshton, le up et son point de ù h
+ Élévation * Maintien de l'altitude 1 lancement. preéprogrammee
l'altitude courante altitude actuels * Planification de
J \ la mission
J
+ GPS ??
* Capteurs inertiels P?
ce,
tee
Descente et atterrissage
automatique (Baromètre/Ultrason)
HÔME
HOME
Algorithmes de contrôle
°_ PD ° _ Bdetepping ° _ Loiqæefloe
° __ Ctrilecæptimal ° __ Crtréledenndedlissant + Réœaudenarones
°_ Cnirüleadaptative
+ Sratégeshybrides
r à
Terme Proportionnel
K,e(tpe(0) J
+
4 LA] LA à
Terme Dérivé
de(t)
d dt
Retour
Avec: K:gain . .
Choix de la surface de glissement
eñ: erreur
482
e(Lo)
s. \ Phase L'établissement des conditions d’existences
- dl d'atteinte
nu"
ei
À 4
Mia 2
e(£s)
slissenent
Surface de
Détermination
z « «
de la loi . de commande
LT
s=0
" Modèle dynamique Ueq: est la commande équivalente, elle peut être dérivée en fixant $;=
À, = f(x) + g(x)U Avec ñ = (x, y,z,®,0,) 0. Elle est permet d'assurer le glissement des erreurs de suivi le long de
la surface de glissement.
=" Erreur de suivi Ujatt® est la commande de commutation qui permet d'atteindre la
surface de glissement prédéfinie en peu de temps.
Eh — Xha — XR
Ên = Xna — Xh Ujatt = —Cnsign(S;)
" Commande
* Historiques
Classification par Type de Motorisation
Architecture du véhicule
Systèmes avancés d'aide à la conduite (ADAS)
Conduite autonome
37
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
8. Véhicule autonomes: Automobile
38.1 Classification par Type de Motorisation
r sf ff à
{[__ automobile Source d’énergie Emission
+| Véhicules Thermiques
Véhicule
PRE Dane an Carburant fossile (Essence) |
Véhicule
( ) L Dicscl | | Carburant fossile (Diesel) |
» Véhicules électriques
BEV nd | Batterie | mn |
ln HEV nd Batterie Carburant fossile ||==}|
FCEV Hydrogène
\. y
28/03/2025 Pr. HASSANI 38
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
8. Véhicule autonomes: Automobile
38.1 Classification par Type de Motorisation
Q Véhicules Thermiques
Essence
“" Utilise un mélange air-carburant enflammé par une bougie d'allumage
" Consommation importante
Diesel
" Fonctionne par auto-inflammation sous forte compression
" Plus économique en carburant, mais polluant.
FUEL
100% ELECTRICITY
FROM GRID
@
28/03/2025 Pr. HASSANI 40
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile) SRE
8. Véhicule autonomes: Automobile HYBRID ELECTRIC
8.1 Classification par Type de Motorisation cc it =
GASOLINE ENGINE
Q Véhicules hybride (HEV: Hybrid Electric Vehicle)
|
" Batterie plus grande qu’un HEV, permettant une autonomie | T lececrric |
électrique significative (généralement entre 30 et 100 km).
“" Peut être rechargé sur une prise électrique ou une borne de recharge.
FUEL
GASOLINE AND / OR
ELECTRICITY FROM GRID
©@
28/03/2025 Pr. HASSANI 42
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
3. Véhicule autonomes: Automobile
3.2 Architecture du véhicule
Q Système de propulsion
Control Arm
‘Eû
28/03/2025 Pr. HASRANI 46
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
8. Véhicule autonomes: Automobile
3.2 Architecture du véhicule
Q Rôle d’un ECU
> Contrôler
Le calculateur contrôle le fonctionnement des différents systèmes du véhicule en recevant des données
des capteurs et en envoyant des commandes aux actionneurs. Par exemple, le calculateur moteur ajuste
l'injection de carburant et l'allumage en fonction de la vitesse et de la charge du moteur
> Surveiller
Le calculateur surveille en permanence l’état du véhicule en analysant les informations des capteurs.
> Optimiser
Le calculateur optimise les performances et l'efficacité du véhicule en adaptant les réglages en temps
réel. Par exemple, le calculateur de gestion moteur ajuste le mélange air-carburant pour réduire la
consommation et minimiser les émissions polluantes.
Reçoit des signaux d'entrée provenant de capteurs qui mesurent divers paramètres de
véhicule.
” n
Compare les signaux d'entrée avec les valeurs prédéfinies et les paramètres
stockés dans sa mémoire.
F_ D
Les systèmes ADAS utilisent généralement une combinaison de composants d'entrée pour détecter
l'environnement de conduite (perception de l'environnement).
La perception de l’environnement est la capacité du véhicule à détecter son environnement grâce au
processus de collecte, d’acquisition et de prétraitement des informations sensorielles. À cette fin,
différentes classes de capteurs ont été utilisées; Odométrie, RADAR , LIDAR, Camera, IMU,
- PIDARSESst l'abréviation de Light Detection And Ranging (détection et télémétrie par la lumière). son
principe de fonctionnement est similaire à celui du RADAR, sauf que le LIDAR utilise des faisceaux
lumineux du spectre visible.
- MMUM abréviation de Inertial Measurement Unit (unité de mesure inertielle). Il s'agit d'un dispositif qui
mesure et fournit des informations sur la vitesse, l'orientation et les forces gravitationnelles du véhicule,
en utilisant une combinaison d'accéléromètres, de gyroscopes et même de magnétomètres.
- (Cäpteurs aluItaSonSMLes capteurs à ultrasons sont utilisés pour les systèmes d'aide au stationnement
et peuvent détecter les obstacles et les autres véhicules à faible vitesse.
- GNSSMabréviation de Global Navigation Satellite System (système mondial de navigation par satellite). Il
s'agit d'un système de navigation par satellite qui permet au véhicule de déterminer avec précision sa
position et l'heure où qu'il se trouve sur le globe.
Le tableau suivant précise la mesure qui pourrait être fournie par chaque capteur:
Odornétrie f f - “ ä = 5
RADAR - f = “ = à F
LIDAR - "4 - - - = Fa
Carméra f - - ra # “ f
IMU - ra f - = “ 5
GNSS “ - = s = 5 f
Aucun type de capteur ne fonctionne bien pour toutes les tâches et dans toutes les conditions
—> Fusion des capteurs sera donc nécessaire pour assurer la redondance
ACC est la fonction ADAS qui permet maintenir une distance de sécurité avec le véhicule qui précède et
d'ajuster automatiquement la vitesse pour éviter les collisions.
Le régulateur de vitesse classique peut maintenir une vitesse constante programmée par lz)
conducteur. L’ ACC est une amélioration du régulateur classique: il ajuste automatiquement la
vitesse de votre véhicule à celle du véhicule qui le précède.
> Si le véhicule qui vous précède ralentit, l’ACC peut automatiquement s'adapter à sa vitesse.
> Si le véhicule qui vous précède quitte votre voie ou accélère au-delà de la vitesse
U programmée, l'ACC permet à votre véhicule de maintenir la vitesse que vous avez programmée. /
28/03/2025 5G
Systèmes Embarqués pour les véhicules 2
autonomes (Drone et Automobile)
8. Véhicule autonomes: Automobile Régulateur de vitesse adaptatif
3.3 Systèmes avancés d'aide à la conduite Adaptive Cruise Control
Q Fonctions ADAS - ACC -
+(/ Fonctionnement
Distance inter-véhicules
En présence d'obstacles, l’'ACC régule la vitesse de telle sorte à maïntenir la distance de sécurité
programmée.
+ Fonctionnement
(mm) Sélection de la vitesse souhaitée (vitesse > 40 Km/h) The Following Distance You Set
+ Fonctionnement
L’ACC intervient sur l'accélérateur et peut même freiner pour maintenir la distance de sécurité
programmée
= Mode
croisière
: la vitesse du véhicule est contrôlée pour maintenir une vitesse donnée
=" Mode
poursuite : La vitesse du véhicule est contrôlée pour maintenir une distance définie par
rapport au véhicule précédent.
< Fonctionnement
> Un capteur de distance (radar monté à l'avant du véhicule) et une caméra (fixée au pare-
brise) surveillent la distance par rapport au véhicule qui précède.
> Un capteur de vitesse qui donne des consignes pour l'accélération ou la décélération
ACC User's Control
automatique du véhicule.
L'ACC exploite les données de ses capteurs pour adapter votre vitesse et
maintenir la distance programmée avec le véhicule qui vous précède. _
IStance
Ù
Sensor
+ Défis d’ACC
# Défis d’ACC
" Le système ACC peut avoir des difficultés sur les routes en
pente.
+ Défis d’ACC
L'alerte de franchissement de ligne est conçue pour aider à éviter les accidents dus à une dérive ou
à une sortie de voie.
Î Le système détecte les marquages de voie et vous avertit lorsqu'un pneu touche un marquage de)
voie. L'avertissement prend généralement la forme
> Indicateur clignotant .
> Signal sonore.
> Vibration légère du volant.
& J
+ Fonctionnement
Le fonctionnement de LDW est basé sur :
Si le système détecte que le véhicule est trop proche des marquages de la voie de gauche ou de droite, et
que votre clignotant n'est pas activé, un témoin lumineux, une vibration et/ou un son se
déclencheront.
+ Défis de LDW
+ Défis de LDW
+ Défis de LKA
être générés.
=)"seCCE)
l))
> Défi: Réaction insuffisante si le conducteur ne freine pas ED.
du tout ou si la surface est glissante
Domaine d’application
24/05/2025
Conception basée sur un modèle (MBD)
1. Introduction au MBD
Modèle du système physique (Plant) :Il représente la dynamique du système réel que l’on veut
contrôler, comme une voiture, un moteur ou un robot.
Modèle de contrôleur (Controller) :Il représente l'algorithme qui agit sur le système pour
atteindre un objectif spécifique, comme maintenir la vitesse ou la position.
Dans MBD le Plant est les schéma ou scripts qui traduisent les équations mathématiques
décrivant le comportement dynamique de système en utilisant un logiciel (Matlab/simulink,
LabVIEW...)
a, [TR TT M it
Q Réduire le temps et les efforts de n C_T':-H| os FA
développement d'environ 30 % ou plus. rt" -
Réalisation de Code T
la conception à J Fonctionnement indépendant
un niveau bas Codification des éléments de que Chaque composant
Application des normes de
codage (MISRA C, AUTOSAR)
-
| Variant (8): model-based implementation |
NX 4e -
—) TS he a Liu rue ceucecucceccece
logicielles. Permet d'
et de
demande du
supplémentaires aux développeurs, augmente
Traditional System Design
la dans le SW et
des projets de Design Production
exécutables à 1!
partir de modèles }
SE
Eu un mu mu
RE | Design avec I
let vérifications } simulation J
| OR enD continu
TT LE LE |
À nues
s
I génération I
jautomatique de code!
D
Ü
| Software-in-the Loop |
Ÿ
| Processor-in-the Loop |
Ÿ
|Hardware-in-the
Loop
Us
Vehicle-in-the Loop
24/05/2025 Pr. HASSANI 1 6
Conception basée sur un modèle (MBD) (
6. Test MBD | Model-in-the Loop
Une fois le model Simulink/LabVIEW est développé, la phase de test MIL consiste à vérifier la
capacité du modèle à fonctionner et ses performances dans différentes conditions et sous
plusieurs scénarios de simulation. Sans génération de code, ni matériel
Exemple 1 : Tester une fonction ADAS (ACC), pour vérifier son comportement dynamique.
"= Teste de modèle (Plant model)
= Teste de Contrôleur
+ À
°° Sortie
Capteur outon
e cruem |
Logical Sortie_Ref] +
pus} —#+ =
Le bloc Signal Builder permet de définir les formes d'onde des signaux émis par le bloc.
Toute forme d'onde linéaire par morceaux peut être spécifiée.
Le code, de modèle développé, est généré à l'aide d'un outil de génération automatique de
code tel que Embedded coder, puis testé une nouvelle fois dans l'environnement de
simulation. Sans dépendance matérielle.
Exemple : Exécuter le code généré pour le contrôleur « ACC » dans un simulateur pour tester
la logique du code
” Généralement sur Simulink pour ce genre de test qui test des partie de modèle
uniquement
Le test PIL vérifie la fonctionnalité du code sur une véritable carte à microprocesseur. Un câble
USB est généralement utilisé pour assurer la connectivité entre le PC (environnement Simulink)
et la carte à microprocesseur
Exemple : Pour un teste PIL de l’ACC, le modèle de est simulé sur le PC hôte tandis que le
code du contrôleur suggéré est exécuté sur le microprocesseur embarqué.
Le test HIL permet de vérifier le fonctionnement de modèle développée (plant + contrôleur) sur un
ECU réelle sans avoir besoin d'un véhicule physique.
Exemple : Le contrôleur de l' ACC est intégré à un système d'essai où l'ECU réel est
connecté à un banc de test simulant les capteurs et actionneurs du véhicule. Cette
configuration permet de tester l'interaction du matériel avec les entrées/sorties simulées sans
avoir besoin d'un véhicule réel.
Le test VIL est une méthode de test où un véhicule réel est utilisé, maïs certaines parties du
système ou de l'environnement sont simulées.
Exemple : Dans un test VIL pour un ACC, le véhicule est testé sur une piste où un banc
dynamique, tandis que l'environnement (trafic, vitesse) est simulé. Cela permet de vérifier si
l'ACC ajuste correctement la vitesse et la distance sans avoir besoin de tests en conditions
réelles.
ed data
+ ch Inputs à out D Output
es, failFlag
MATLAB Chat
SIMULINK" a
Embedded Coder }
MAAB \:°
r U
un
Guideline ID
je: Justification Category
Guideline Title > Règles liées à la structure du schéma, à la
lisibilité, ou à la clarté des modèles)
25
Conception basée sur un modèle (MBD)
7. Mathworks Automotive Advisory Board (MAAB)
SIMULINK"
24/05/2025 Pr. HASSANI 26
Conception basée sur un modèle (MBD) (
7. Mathworks Automotive Advisory Board (MAAB)
Chaque bloc doit être accompagné d’un commentaire expliquant son rôle,
afin d’améliorer la lisibilité et la maintenance du modèle.
(ŒD
System_Enable
M AAB Rule MAAB Rule
| je_0121 je_0021
C1 } D] Time_security
Time_security Bree Incorrecte
ee
C 2 } >| Lead_Vehicle_Speed
Lead Vehicle Speed
Accelerate >
€ 4 } >] Lead_Vehicle_Distance
Lead_Vehicle_Distance
Fonctionalité
ACC
Ce bloc défini les éxgence relative à la logique de la fonctionnalité ACC Correcte
Di
ID ï
ID ïüi
MAAB Rule
je_0002
24/05/2025 Pr. HASSANI
Conception basée sur un modèle (MBD) (
7. Mathworks Automotive Advisory Board (MAAB)
MAAB Rule db
_ 0031
Toutes les variables utilisées dans les modèles doivent être initialisées
Incorrecte Correcte
—. C1 uinté 5 single
}— single
C1) g Entre 1
Entre 1
_— Hboolean = PE »( )
—— »C 1 ) PAT Sortie
_—. Sortie C2 } >
C2) p- Entre_2
Entre2
uint8
Lead_Vehicle_Speed
Lead_Vehicle_Speed
F boolean . | double
Sortie Pr Entre: à fa Î 2)‘= Incorrecte
boolean
ortie?
single |
Lead Vehicle Distance
Lead_Vehicle_Distance
uint8
2 } > Lead_Vehicle_Speed
boolean boolean
Lead Vehicle Speed IsvehicleDetected D IsvehicleDetected Brake ——p(" 7 )
Brake
su » Lead.
Lead- Vehici
Vehicle Distant
Distance
Lead_Vehicle_Distance T “ le x Correcte
double boolean
double Distance_of_security »: Distance_of_security Accelerate
QC 1 } » Time_security boolean
Accelerate
Time_security
MAAB Rule «h 0011 Utilisation des limites de saturation sur les signaux
Dans les modèles Simulink pour les systèmes autonomes, tous les signaux
(principalement de commande) qui peuvent dépasser les limites physiques ou
logiques doivent être protégés par des blocs de saturation. Cela permet d'éviter des
comportements imprévus dus à des dépassements ou sous-dépassements.
Q Un système à états finis est un système qui possède un nombre déterminé d'états et qui peut
être décrit par une machine à états finis (FSM).
QU Une machine à états finis est une machine qui ne fonctionne que dans un nombre limité
d'états prédéfinis, et qui permet de représenter des processus dynamiques en passant d'un état à
un autre en fonction d'événements ou de conditions spécifique
> Ascenseur : États : En attente, En montée, En descente, Porte ouverte, Porte fermée
> Distributeur automatique : États : Attente d’une commande, Sélection de produit, Paiement,
Livraison.
Q Un système à états non finis (ou systèmes à état continu) est un système qui peut
fonctionner dans une infinité d'états différents, souvent en raison de la nature
continue des variables qui le gouvernent. Contrairement aux machines à états finis,
ces systèmes ne se limitent pas à un ensemble discret d'états prédéfinis.
> Système de contrôle de vol d’un avion: Les commandes d’un avion sont ajustées en
continu pour maintenir la stabilité ou suivre une trajectoire donnée.
Variables continues : Altitude, vitesse, angle d’attaque, taux de montée ou descente.
Q Stateflow est un outil graphique interactif intégré à Simulink pour modéliser et simuler
des machines d’état fini (FSM). Le passage d'un état à un autre est déclenché par des
événements et des conditions.
er
K()
24/05/2025 Pr. HASSANI 38
Conception basée sur un modèle (MBD) (
8. Modélisation des systèmes par « Stateflow »
8.2 Stateflow Chart
Optimisation
(optionnelle)
” Préparation du Modèle
Cette étape sert a s'assurer que votre modèle Simulink est prêt pour la génération de
code.
= Simplifiez le modèle : Le modèle doit contenir des blocs compatibles avec la génération
de code. Utilisez des blocs optimisés pour le code (comme ceux des bibliothèques
Embedded Coder).
= Vérifiez les erreurs potentielles : Utilisez la commande Model Advisor dans Simulink
pour identifier les problèmes liés à la génération de code.
Accédez à Code > C/C++ Code > Generate Code dans la barre d'outils Simulink.
Une fois la génération terminée, MATLAB crée des fichiers source C/C++ (fichiers .c et
h) dans le répertoire spécifié.
Si nécessaire, vous pouvez personnaliser le code C généré pour répondre à vos besoins
spécifiques.
" Utilisez des fonctionnalités d’Embedded Coder pour générer du code optimisé.
" Personnalisez les options de génération pour répondre à des contraintes spécifiques
(temps d'exécution, mémoire, etc.).
+* Historique
La carte Pixhawk est une unité de contrôle de vol (Flight Controller) open-source. Elle est
conçue pour piloter des drones et des véhicules autonomes de manière précise et fiable.
+ Historique
" 2010 : Initiation du projet « Pixhawk » par Lorenz Meier, chercheur de École polytechnique
fédérale de Zurich (ETH, Zurich, swisse)
" 2011 : Pixhawk 1 (basé sur un microcontrôleur STM32F103), a été développée et adoptée
comme une solution open-source dédié principalement pour les drones
" 2016 : Pixhawk cupe (une version améliorée et modulaire de Pixhawk 2) est lancée.
” 2018 : Adoption de Pixhawk dans divers projets de recherche, y compris dans des véhicules
pour la conduite autonome
Pixhawk 2
Microcontrôleur principal :
* STM32F427 Cortex-M4, cadencé à 168 MHz, avec un coprocesseur matériel FPU. 4/4 >»
256 Ko de RAM et 2 Mo de mémoire flash. DR
V
Le cœur du système de contrôle —
- Réalise tous les calculs de navigation, de stabilisation et de contrôle
- Gère les algorithmes de vol autonome - Gère les interfaces de communication
- Produit les commandes moteur (PWM) à envoyer via le coprocesseur
Microcontrôleur secondaire :
° 32 bit STM32F100, cadencé à 24 MHz
° __8 KB RAM et 64 KB de mémoire flash
Joue un rôle de gestionnaire d’entrées/sorties
- Distribue les signaux PWM aux moteurs (ESC)
- Gère le module d’alimentation (mesure de la tension et du courant de la batterie
- __Fournit une interface USB pour la configuration et le chargement du firmware.
Connectivité :
* Entrées/Sorties PWM : Jusqu'à 8 canaux pour contrôler les
moteurs et les servos.
° UART, I2C, SPI, CAN : Pour connecter des périphériques
comme des modules GPS, télémétrie, ou autres capteurs.
* Ports ADC (3.3v et 6.6v) : Pour des capteurs analogiques.
° _ Port USB : Pour la configuration et la mise à jour des
firmwares.
° __ Port Micro SD : Pour enregistrer les données.
QGroundControl C/C++
ROS C/C++/Python
La communication entre les modules de la carte Pixhawk est assurée à travers uORB
"microObject Request Broker”. uORB est un bus de messages asynchrone utilisé dans
Pixhawk pour permettre aux différents composants du véhicule (processus ou threads) de
communiquer entre eux. Il repose sur le middleware mécanisme publish/subscribe.
F4 F4 Pia
Status D
UQRE Message uORE Read UÜRE Write
Msq M5g
La
ra
M
vehicle_gps_position Sensor, ace 9} vehicle _gps_ position
°. Subscribe (s'abonner) : Un autre composant s'abonne à ce topic pour recevoir les messages
publiés Topic A
A A
Topic B
Subscriber
> Exemple
. L’accéléromètre mesure l'accélération du véhicule et publie ces données sur le topic
sensor_accel. Le gyroscope mesure la vitesse angulaire est publie ces données sur le
topic sensor gyro. Le magnétomèêtre mesure l’amplitude du champ magnétique et
publie ces données sur le topic sensor
_ mag.
Fa Fx4 F4
Status |
UORE Message Meg D uORE Read YMeg UORE Write
M
vehicle_gps_position sensor BCoel _- } Ehicle_9ps_postion
24/05/2025 PX4 uORB Message PX4 UORB Read PX4 UORE Write b b