Telechargé par MAB ABDELMALEK

chapitre1 systèmes en temps réel

publicité
Chapitre 1. Systèmes Temps Réel
1.Introduction :
Depuis quelques années, l’avènement du numérique a conduit à intégrer une très forte automatisation dans
tous les processus industriels. Ainsi le dénominateur commun de toutes ces systèmes de commande est la
fourniture de fonctionnalités toujours plus sophistiquées et un nombre élevé de fonctions débordant largement
l’utilisation de base (visualisation des commandes, liaison Internet, sûreté de fonctionnement robustesse,
tolérance aux fautes, répartition, maintenance rapide et aisée…).
Ce développement, est due principalement à la progression et l’adaptation de l’électronique, l’automatique et
l’informatique. :
▶ Électronique : processeur multifonction (microcontrôleur), processeurs multicœurs, processeur à faible
consommation, réalisation de circuits électroniques dédiés (FPGA), automates programmables etc.
▶ Automatique : lois de régulations adaptées, régulation numérique, commande adaptative etc.
▶ Informatique : méthodes et méthodologies de développement, systèmes d’exploitation ou exécutifs
embarqués, langages applicatifs, méthodes de tests et de validations, etc.
Les systèmes analogiques de type électromécanique ou électronique ont rapidement fait place à des systèmes
purement numériques ; seuls les capteurs et les actionneurs, faisant le lien vers le monde réel, sont toujours
analogiques. Les concepteurs de ces applications ont des méthodes basées sur l’aspect fonctionnel : schémas
blocs, grafcets, etc. En effet, la spécification et la conception de telles applications sont plus aisées
lorsqu’elles sont pensées en termes de fonctions ou de traitements des données. Aussi les langages dédiés à
ce type d’applications sont tout naturellement des langages fonctionnels à exécution séquentielle comme le
langage C, les assembleurs ou le langage flot de donnée LabVIEW
Dans ce cours nous allons nous intéresser particulièrement à l’aspect matériels nécessaires à l’appréhension
des systèmes commandés en temps réel par un microcontrôleur. Toutefois, étant donné le développement lié
entre les deux parties « matériel et logiciel », nous allons présenter quelques notions sur la programmation
des algorithmes en langage Arduino, ou microcontrôleur dédié au contrôle de ces procédés et enfin un
exemple de contrôle de vitesse d’un moteur à courant continu par microcontrôleur Arduino est detaillé en fin
de ce manuscrite
1
Chapitre 1. Systèmes Temps Réel
2. Définitions :
2.1. Les différentes définitions du "temps réel"
La notion de temps
L'expression "temps réel" est apparue aux débuts des années 1950 chez les informaticiens scientifiques et
militaires. Il ne s'agissait pas de l'expression "temps réel" mais de son équivalent anglais "real-time". Dans le
Collins : "denoting or relating to a data-processing system in which a computer receives constantly changing
data, such as information relating to air-traffic control, travel booking systems, etc, and processes it
sufficiently rapidly to be able to control the source of the data". On trouve aussi la définition suivante pour "in
real time : at once, instantaneously".
Dans le dictionnaire de la délégation Générale à la Langue Française, le terme "temps réel" est défini par :
"Mode de traitement qui permet l'admission des données à un instant quelconque et l'obtention immédiate des
résultats."
Lorsqu'on parle de "temps" dans l'expression "temps réel", parle-t-on du temps physique et donc par définition
du temps local de l'observateur ? Ou bien du temps logique, rythmé par la cadence d'horloge de l'ordinateur,
un temps discret par définition, instable (il a la stabilité de la référence qui le génère) et fini ? Evidemment, il
s'agit de la seconde hypothèse. Et cela borne en les minorant la notion de "suffisamment rapide" et
d'"immédiat". Le délai de temps le plus petit mesurable est le pas temporel de l'horloge de l'ordinateur, variable
entre quelques nanosecondes et quelques microsecondes selon les machines.
Et que dire du mot "réel" ? Existerait-il en informatique un temps imaginaire ? Quelle est la réalité du temps
? En physique comme en informatique, nous mesurons des durées, c'est à dire des intervalles de temps et dans
un ordinateur, chaque intervalle est un multiple du pas temporel d'horloge de l'ordinateur. En physique, nous
ne savons pas si notre temps est discret (il l'est probablement), ni même ce qu'est réellement le temps.
En bref, la notion de "temps" en informatique n'a pas grand-chose à voir avec le temps des physiciens. Mais
l'avantage, c'est qu'on peut le quantifier rigoureusement car il possède une origine (la mise sous tension de
l'ordinateur) et une unité fondamentale, le pas d'horloge de l'ordinateur
L'expression "temps réel" désigne finalement le plus souvent une image du monde réel, ou du moins d'une de
ses parties, à un instant donné.
2
Chapitre 1. Systèmes Temps Réel
2.2. Les systèmes "temps réel"
Dans un système "temps réel" ou système TR, ce qui importe ce n'est pas tant qu'il réponde "immédiatement"
ou "suffisamment rapidement" à une information, le même selon qu'il s'agisse de piloter un missile à 3 Mach
ou une voiture à 100 km/h. Mais par contre, il est essentiel que le traitement de l'information soit fait dans le
délai imparti. Imaginez que le régulateur de vitesse de votre voiture, qui est un système TR, réagisse en une
milliseconde ou une seconde au grès de la température ou de la pression atmosphérique !
Un système TR est un système qui réagit, dans un temps spécifié, aux informations provenant de son
environnement. Le délai que le concepteur lui accorde pour réagir déterminera la classe de systèmes TR à
laquelle il appartient. La définition que le CNRS donne à un système TR et qui habituellement utilisée chez
les informaticiens scientifiques et militaires est : "le comportement d'un système informatique est qualifié de
"temps réel" lorsqu'il est assujetti à l'évolution d'un procédé qui lui est connecté et qu'il doit piloter ou suivre
en réagissant à tous ses changements d'états" (CNRS - Le temps-réel. TSI - Technique et Science Informatique.
1988 vol 7 p 493-500)
Figure.1. Principe d'un système temps réel
Un système TR qui produirait un résultat de calcul logiquement correct mais en dehors du délai accordé pour
exécuter ce calcul serait un système défaillant. Cette condition a des répercussions importantes sur la
conception et la validation des systèmes TR.
3
Chapitre 1. Systèmes Temps Réel
Autre caractéristique essentielle d'un système TR : il doit être déterministe. En l'espèce, cela signifie qu'il doit
être possible lors de la conception du système de prévoir avec certitude son comportement temporel en
fonction des contraintes de charges et environnementales. En fait, cette caractéristique découle de l'impératif
de garantir le respect des dates d'échéance de traitement. Cette caractéristique implique des contraintes fortes
sur les architectures matérielles des systèmes TR.
un système TR n'est pas obligatoirement un système rapide ! C'est le respect des contraintes temporelles qui
qualifie un système TR, pas sa rapidité de traitement. Mais bien sûr, si les contraintes temporelles sont élevèes,
une puissance et une rapidité de traitement seront indispensables.
2.3. Classification des systèmes "temps réel"
On distingue deux grandes classes de systèmes TR: le temps réel "dur" et le temps réel "mou". La différence
ne tient pas tant dans la valeur du délai de réaction spécifié que dans le respect de ce délai.
Considérons une tâche d'acquisition Ai, périodique de période Ti. Soit Si le début de la tâche Ai et Di la date
d'échéance de Ai, c'est à dire la date à laquelle les résultats doivent être disponibles. Le délai de réaction du
système spécifié sera donc Di - Si, avec évidemment Di-Si < Ti. Soit Ci la durée du traitement.
2.3.1. Le temps réel "dur"
Un système TR sera dit "dur" lorsque la totalité du traitement sera achevé avant Di, c'est à dire strictement
inclus dans l'intervalle [Si, Di]. Si le traitement s'achève après Di, le système sera en défaut. L'essentiel est de
respecter l'échéance de mise à disposition des résultats.
On trouve les systèmes TR durs dans tous les systèmes embarqués destinés au pilotage, dans les systèmes de
mesures des machines de physique de particules, dans les robots de chirurgie et autres systèmes critiques
Exemples : contrôle aérien, contrôle d’une centrale nucléaire….
Ces systèmes doivent être parfaitement déterministes afin de garantir le temps de calcul. Cela exclut l'usage
de réseaux non déterministes comme Ethernet, mais aussi les mémoires caches et les processeurs parallèles.
Les systèmes d'exploitation des ordinateurs doivent garantir un ordonnancement des tâches compatibles avec
ces exigences. Ce sont les OS "temps réel", par exemple VxWorks, VRTX, LynxOS, qui sont normalisés
Posix temps réel P1003.4, ou plus vieux HP RTE ou RTX-11.
4
Chapitre 1. Systèmes Temps Réel
En conclusion La réponse du système temps dur dans les délais est vitale. L’absence de réponse est
catastrophique
2.3.2. Le temps réel "mou"
Un système TR sera dit "mou" lorsqu’il est toléré que le traitement débute dans l'intervalle [Si, Di] mais
s'achève après Di mais avant Ti. Si le traitement s'achève après Ti, le système sera en défaut. Le dépassement
de l'échéance Di ne doit pas être systématique, les tolérances étant spécifiées lors de la conception du système.
Les systèmes de supervision et une bonne partie des systèmes de contrôle/commande (SCADA) sont des
systèmes temps réel mous, avec des tolérances de dépassement de l'échéance Di plus ou moins sévères selon
le procédé sous contrôle. Exemples : VoD, logiciel embarqué de votre téléphone, iPod, etc.
La réponse du système après les délais réduit progressivement son intérêt. Les pénalités ne sont pas
catastrophiques.
2.4. Système temps réel en industrie
En industrie les systèmes à commande en temps réel sont avant tout des systèmes de contrôle-commande.
Un système de contrôle-commande est un système informatique de contrôle de procédé. Le terme procédé
est un terme Générique désignant un système physique contrôlé. Afin de contrôler le procédé, le système
informatique est en relation avec l’environnement physique externe par l’intermédiaire de capteurs et/ou
d’actionneurs actuateur. Les grandeurs physiques acquises grâce aux capteurs permettent au système de
contrôle commande de s’informer de l’état du procédé ou de son environnement. Le système de contrôlecommande, à partir de consignes décrivant l’état voulu du procédé, calcule des commandes qui sont alors
appliquées sur le procédé par l’intermédiaire d’actionneurs. Donnons ainsi la définition générale d’un
système contrôle commande
Définition :
« Un système de contrôle-commande reçoit des informations sur l’état du procédé externe par le(s) capteur(s),
traite ces données par calculateur(s) et, en fonction du résultat, évalue une décision qui agit sur cet
environnement extérieur par (pré) actionneurs afin d’assurer un état voulu le tout peut être supervisé par un
operateur ».
5
Chapitre 1. Systèmes Temps Réel
Figure 2. Structure d'un système temps réel
2.5 Exemple typique des système temps réel :
Figure 3. Système temps réel 1
6
Chapitre 1. Systèmes Temps Réel
Figure 4 Système de contrôle de débit
Figure.5 Système de contrôle de la production
7
Chapitre 1. Systèmes Temps Réel
Conclusion :
Un système à commande numérique en temps réel est un système de control-commande que ce soit
embarquées ou non observe le procèdes ou le processus à contrôlé en temps réel et acquis des informations
ou des mesures sur son état par les capteurs, puis traite ces informations et élabore des commandes suivant un
programme soft sauve gardé dans la mémoire programme du calculateur en un temps inferieurs au période
d’acquisition. Ces ordres seront appliquées par le biais de pré actionneur au actionneur pour Controller les
grandeurs de sortie
8
Téléchargement