Professional Documents
Culture Documents
TRAVAUX PRATIQUES
1
ATELIER
PRISE EN MAIN DE LA CARTE DSP DS1104
I. INTRODUCTION
II. CREATION D’UN MODELE SIMPLE DANS SIMULINK
III. CREATION D’UN MODELE EN TEMPS REEL DANS SIMULINK/ DSPACE RTI1104
IV. CREATION D’UN FICHIER D’EXPERIENCE AVEC CONTROL DESK
TP. 1
COMMANDE DE LA VITESSE D’UN MOTEUR A COURANT CONTINU
TP. 2
COMMANDE DE LA VITESSE AVEC CONTROL DU COURANT
D'UN MOTEUR BRUSHLESS BLDC
TP. 3
LES CAPTEURS DANS LES ENTRAINEMENTS ELECTRIQUES
2
ATELIER
PRISE EN MAIN DE LA CARTE DSP DS1104
I. INTRODUCTION
L’objectif est d’apporter une introduction sur la carte ‘DS1104 controller board’ (construite autour d’un
processeur PPC et d’un DSP TMS320F240) et sur son logiciel d’exploitation ‘Control Desk’ ainsi que sur
leur usage dans le développement et l’implémentation des solutions pour le contrôle des systèmes en temps
réel.
II. CREATION D’UN MODELE SIMPLE DANS SIMULINK
Matlab contient un outil de modélisation SIMULINK, qui aide à poser le problème d'une manière graphique
en utilisant les blocs interconnectés. En fait, beaucoup de systèmes de développement en temps réel à base de
DSP viennent maintenant avec une interface à Simulink par laquelle ils peuvent convertir les blocs de
Simulink en un code machine qui peut être exécuté sur un système à base de DSP. Ceci réduit
considérablement le temps de développement et de prototypage pour le control des systèmes. Le prototypage
passe alors par trois étapes :
1. Construire le système de commande en utilisant les blocs de Simulink
2. Simuler le système pour voir les résultats dans différents scénarios.
3. Exécuter le modèle en temps réel à travers la carte DS1104.
III. CREATION D’UN MODELE EN TEMPS REEL DANS SIMULINK/ DSPACE RTI1104
Un des meilleurs atouts de DS1104 et la facilité avec laquelle on peut construire des applications en temps
réel. Le temps entre la conversion de la conception des instructions numériques pour le DSP et l’exécution
effective de l'application dépend seulement de la façon dont l'ordinateur peut compiler rapidement le code
initial. Fondamentalement une application en temps réel peut être créée par deux méthodes :
- en utilisant Matlab/Simulink pour établir le modèle et produire automatiquement le code en C et le
télécharger dans la mémoire du DSP,
- en programmant le codage en C manuellement et en compilant le modèle dans le code du DSP
On en convient volontiers que la première méthode est la plus rapide, surtout pour les systèmes qui ne
présentent pas d’exigences particulières.
Pour avoir la librairie RTI1104 il suffit de taper dans l’espace de travail Matlab la commande ‘rit’.
Une fois que l’on a achevé le modèle de Simulink qu’on veut exécuter en temps réel, la seule commande
exigée est RTW Build sous le menu Tools dans Simulink. Une fois que la commande est exécutée, le
logiciel de dSPACE crée un fichier objet (*.obj), le télécharge sur la carte DS1104 et commence
automatiquement l'exécution matérielle. Cependant, il y a quelques arrangements importants qu’on doit faire
avant de "transporter" le modèle dans le monde du temps réel.
Le modèle développé pour la simulation doit être connecté à des dispositifs externes (générateurs de signaux
et oscilloscopes). Puisque ces dispositifs sont physiquement des générateurs / récepteurs de signaux partant
ou provenant du DSP, on doit faire passer ces signaux par l'intermédiaire des canaux d'entrée-sortie
analogiques, situés sur le boîtier de connexion de la carte.
Premièrement, on doit s’assurer que les générateurs et les récepteurs des signaux sont reliés par
l'intermédiaire des câbles protégés BNC aux entrées ADC et aux sorties DAC respectivement.
* Les signaux entrant ou sortant analogique sont pris avec la conversion suivante :
10V sur les bornes ADC ou DAC du boîtier de connexion vaut 1V dans l’espace Simulink.
Le canal d'entrée analogique ADC prend le signal avec un rapport de 1/10. Ceci signifie que 10V à l'entrée
sera lu comme 1V dans le modèle. Il doit être multiplié par 10 dans le modèle pour retrouver l’amplitude
3
réelle. A la sortie, le signale doit être divisé par 10 avant d’être connecté au canal. Ainsi, deux blocs de gain,
de la bibliothèque de maths, seront exigés correctement pour lire et écrire les valeurs provenant et partant des
voies analogiques.
La communication avec les canaux d'entrée-sortie est assurée par l'intermédiaire de deux blocs de dSPACE
qui se trouvent dans la bibliothèque de dSPACE RTI1104 (figure 1) dans la « sous – bibliothèque » de
DS1104 MASTER PPC, appelé : DS1104ADC_CX et DS1104DAC_CX (X=1,...,5).
Une fois l'instruction ci-dessus donnée, on observe une liste de messages qui apparaissent dans la fenêtre de
commande de Matlab. Ces messages correspondent aux différentes étapes que le logiciel de RTI exécute afin
de transformer le code de Simulink du fichier *.mdl en code de DSP.
D'abord, il y a une étape de compilation, dans laquelle le dossier de Simulink est transformé en dossier de C,
vient alors l'étape de lien où tous les variables et sous-programmes sont corrélés avec l'environnement de
DSP, et le code est transformé en fichier exécutable et finalement téléchargé dans la mémoire de la carte
DS1104. Si le fichier a été construit avec succès il est chargé dans la mémoire de DSP et son exécution est
lancée.
4
Il est à noter que l'annuaire dans lequel le modèle a été établi est identique à celui choisi pour la création du
modèle de Simulink. Si on regarde maintenant dans cet annuaire, on trouve plusieurs dossiers produits
pendant la construction de la commande. En raison du grand nombre des dossiers produits, il est
recommandé que chaque projet soit placé dans un sous - répertoire séparé.
A près l’exécution du programme en temps réel, le plus important qui reste à avoir est l'interaction avec le
système. On doit visualiser, modifier et analyser les variables. Pour cela, dSPACE a sa propre interface
utilisateur graphique, appelée CONTROL DESK.
IV. CREATION D’UN FICHIER D’EXPERIENCE AVEC CONTROL DESK
CONTROLDESK est un logiciel qui permet à l'utilisateur de suivre les variables, de voir leur comportement
et de modifier les paramètres de simulation en interagissant directement avec la carte DS1104.
Démarrer CONTROLDESK (Figure 2). Les étiquettes montrent l'outil actuellement utilisé. Dans la
figure seuls trois des outils de travail sont disponibles, à savoir : Log Viewer, Interpreter et File
Selector.
Il y a un outil, très important, auquel il faut donner une particulière attention. Cet outil s'appelle Variable
Browser and Parameter Editor. Il permet d'accéder aux variables d'une application. Ces variables sont
stockées dans un dossier appelé le file.sdf. Ainsi pour la manipulation des variables simulation on doit
charger le *.sdf avant de commencer la conception graphique.
5
Maintenant, comment visualiser une variable dans l’environnement ControlDesk ?
Avec le bouton droit de la sourie cliquer sur la liaison représentant la variable désirée, puis choisir ‘Signal
properties’ (Figure 3). Sur cette fenêtre cocher ‘SimulinkGlobal (Test Point)’ et entrer le nom de la variable.
Après l’application de ’Build’ toutes les variables déclarées de cette manière vont apparaître dans l’anglet
file.sdf sous ‘Labels’
6
Une étape de plus, avant de commencer la simulation est le réglage des paramètres de visualisation. Les
paramètres de processus peuvent être placés dans la fenêtre Capture Settings Window sous le menu
View/Controlbars
Ouvrir la fenêtre Capture Settings Window (Figure 5) et entrer le Length ou la longueur de la
mémoire tampon. En prenant par exemple 0.02s, toutes les variables disponibles dans ControlDesk
vont être stockées par intervalle de 0.02s. l’affichage des graphes se fera également par fenêtre de
0.02s.
7
Exécution de l’expérience
Il y a deux opérations qui doivent être faites pour lancer/arrêter l’expérience. D'abord, l'exécution du
programme dans la carte DSP doit être lancée. En second lieu, l’animation et l’acquisition de données et les
besoins d’impression de données doivent à leur tour être lancés. Pour arrêter une expérience, les opérations
doivent être faites dans l'ordre de réservation.
Pour lancer et arrêter le DSP on peut utiliser les icônes de la barre d’outils de gestion de plateforme
(figure 6).
La barre d’outils de Edit Mode contient des icônes d’édition, de test ou d'animation.
Édit Mode est utilisé pour éditer ou modifier le Layout, lancer ou arrêter la simulation en temps réel.
Une fois que commence la simulation en temps réel, on peut modifier des paramètres en temps réel et
observer les formes d'onde en cliquant sur l’icône Animation. A moins que commence la simulation en
temps réel on ne peut plus entrer dans ce mode. En cliquant sur l’icône Test, on peut avoir accès au
mode Test.
On lance l’exécution temps réel par le bouton vert de ‘Play’ et on l’arrête par le bouton rectangulaire
rouge de Stop.
Lancer l’animation en cliquant sur l’icône Animation barre d’outils Edit Mode
8
TP. 1
COMMANDE DE LA VITESSE D’UN MOTEUR A COURANT CONTINU
suivantes (figure) :
-1 0.5 Vb
Va_PWM = U/2Vdc+0.5
Vb_PWM = -U/2Vdc+0.5
Vc_PWM = 0 0 Vc
1
PWM Generator
10
8
u
6
4
Uref
2
-2
-4
-6
-8
-10
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
Un moteur 200W à aimant permanent type Motorsolver est utilisé dans cette expérience.
2. Mesures nécessaires
La vitesse du moteur est mesurée à l’aide d’un encodeur incrémental à 1000 points.
Le courant dans la charge est pris à l’aide du capteur de courant integré dans le convertisseur
(rapport de transformation 0.33V/A). Le rôle de ce capteur dans le montage est de réaliser
l’isolation galvanique entre le circuit de puissance et celui de commande.
Remarque : Le courant est mesuré pour des objectifs de visualisation et d’analyse et pas de
commande.
Les sorties de ces capteurs sont connectées au entrées convenables du panneau de connexion de la
carte DS1104 :
• Vitesse Æ entrée ‘Inc Encoder’.
• Courant Æ entrée ADC.
La commande est réalisée avec la carte DS1104. Pour plus de détails voir ‘Introduction à la Carte de
Commande DS1104’.
9
II. EXPERIENCES
1. Objectifs de l’expérience
1. Réaliser une marche en boucle ouverte du moteur à courant continu. La grandeur d’entrée
est la tension d’induit U et la sortie est la vitesse Ω.
2. Identifier la réponse indicielle (fournie) du moteur à courant continu (méthode empirique).
Voir les détails au paragraphe 3.
3. Mettre en œuvre la commande en vitesse du moteur et valider les résultats.
Le schéma de commande pour ce dernier travail demandé est celui de la figure ci dessous :
Tch
1 In Uref GH U
Wref
Speed PI1 Power W 1
Converter W
Tch
DC_Motor
Figure 1.
2. Réalisation
Pour commencer la réalisation suivre les étapes suivantes :
1. Modifier dans la fenêtre Matlab le dossier de travail en passant ‘Current directory’ dans:
Matlab\Work\TP_DCMotor_votre nom, répertoire que vous créez.
2. Ensuit, ouvrir les fichiers parametre_DCM.m et DCMotor_control.mdl
Le programme de Simulink contient :
- Un block ‘Speed sensor’ qui traite les signaux encodeur et fournit la vitesse en tr/min.
3. Une entré ADC5, avec son gain d’adaptation, est nécessaire pour la prise du courant.
Pour réaliser la commande en vitesse, ajouter dans le fichier.m, le calcul des paramètres du
correcteur.
3. Identification de la réponse indicielle du moteur à courant continu
Le modèle du moteur étudié, entre le rapport cyclique et la vitesse du rotor, ressemble à un premier
ordre simple de type :
Km
Ω= U
1+τ s
10
La tension d’induit U = 2 Vdc ( α − 0.5 )
A partir d’un relever de la vitesse ‘echelon1000_2000.mat’ enregistré lors d’un échelon entre 1000
tr/min et 2000tr/min, on se propose d’identifier la constante de temps en utilisant ‘Curve Fitting
Tool’ de Matlab. Pour ceci les étapes suivantes doivent être réalisées :
11
Figure 2.
Figure 3.
12
Figure 4.
13
TP. 2
COMMANDE EN TENSION AVEC CONTROL DU COURANT
D'UN MOTEUR BRUSHLESS (BLDC)
5. Mettre en œuvre une commande en tension avec control du courant du moteur Brushless.
Essai d’un échelon positif de vitesse (400tr/min à 700tr/min) dans les cas suivants :
a. Test à vide sans limitation du courant.
b. Test à vide avec limitation du courant à 2A.
c. Test en charge avec limitation du courant à 4A. Correction du paramètre kwi.
Valider les résultats expérimentaux.
14
Le schéma de commande pour ce dernier travail demandé est celui de la figure ci dessous :
Speed PI Current PI
Wref
Power
TL wm -K-
Converter
DC_Motor grmp
TL
Load
Figure 1.
2. Réalisation
Pour commencer la réalisation suivre les étapes suivantes :
1. Modifier dans la fenêtre Matlab le dossier de travail en passant ‘Current directory’ dans:
Matlab\Work\TP_BLDCMotor_votre nom, que vous crée.
2. Ensuit, ouvrir les fichiers parametre_bldc.m et BLDCMotor.mdl
Le programme de Simulink contient :
- Un block ‘Hall sensor’ qui traite les signaux encodeur et fournit trois signaux à effet
hall : Ha, Hb et Hc et la vitesse en tr/min.
- Un block ‘MLI Generator’ qui donne les 6 signaux de commande au Convertisseur.
3. Une entré ADC, avec son gain d’adaptation, est nécessaire pour la prise du courant Idc.
Pour réaliser la commande, ajouter dans le fichier.m, le calcul des paramètres du correcteur.
15
TP. 5
LES CAPTEURS DANS LES ENTRAINEMENTS ELECTRIQUES
OBJECTIF :
On ciblera, dans ces ateliers les capteurs utilisés en particulier dans les entraînements électriques, a
savoir les capteurs mécaniques et les capteur de tension et de courant.
On désire également mètre en ouvre ces capteur dans une expérience qui constitue à estimer la
vitesse de la machine à courant continu à partir de son courant et sa tension.
I. MISE EN ŒUVRE PRATIQUE D’UN ENCODEUR INCREMENTAL
Le but dans cet atelier est de mesurer les deux grandeurs mécaniques caractérisant le mouvement de
rotation de l’arbre d’un moteur, c.-à-d. :
1. la position angulaire de l’arbre en rad,
2. la vitesse de rotation de l’arbre en tr/min.
L’encodeur est lié mécaniquement à l’arbre du moteur qui l’entraîne et le câble qui fourni les
signaux A,B et Z est connecté à la carte.
La mise en marche de l’encodeur est réalisée dans l’environnement Matlab/simulink grâce à
l’interface temps réel RTI1104 de la carte DS1104. La visualisation des mesures est faite avec
l’interface CotrolDesck.
Voir en annexe la fiche technique d’un exemple d’ encodeur de ‘Agilent Technologies’ série
HEDL-64xx avec deux ou trois chaînes A, B, et Z.
1. Préparation des blocs
On veut monter le schéma de la figure 6 qui va permettre de traiter les signaux provenant de
l’encodeur connecté à la carte.
Dans le ‘Toolbox dSpace RTI1104’ ouvrir le menu ‘Library : rtilib1104/DS1104 MASTER PPC’.
Ouvrir ensuite un nouveau fichier ‘.mdl’, puis ramener de cette librairie les blocs suivants (Figure
2):
• ENCODER MASTER SETUP : DS1104ENC_SETUP
• INDEX : DS1104ENC_HW_INDEX_C1/2
• ENC position/delta position : DS1104ENC_POS_C1/2
2. Configuration des blocs
• ENCODER MASTER SETUP : DS1104ENC_SETUP (Figure 3)
Encoder signal type (type d’entrée) : singel-ended (TTL) ou Differential (RS422)
Choisir le type ‘singel-ended’.
• ENC position/delta position : DS1104ENC_POS_C1/2 (Figure 4)
Unit : Channel number 1 or 2
Initialization (initial position value) : de -2097152 à +2097152 (221)
Choisir ‘Channel 1 and initial position value = 0’.
• INDEX : DS1104ENC_HW_INDEX_C1/2 (Figure 5)
Unit : Channel number 1 or 2
Parameters :
Action on index detection (Reset position count) : never / once / always
Output after index detection : kipt high / current index
16
Choisir ‘always and current index’.
Dans cette expérience, le bloc ‘Index’ ne joue aucun rôle à part l’activation de la détection du
signale Z d’initialisation. Sa sortie n’est pas exploitée.
3. Adaptation des unités des mesures (Figure 6)
Le nombre d’impulsions (points) par tour de l’encodeur est N=1000 points.
D’où : nencod = 0 → θ = 0 rad et nencod = 1000 → θ = 2π rad
où nencod est la valeur du conteur incrémental activé par les signaux encodeurs.
La carte permet la détection des fronts montants et descendants des signaux A et B.
Par conséquence, nous avons les résultats suivants :
• Résolution : 4×N = 4000.
2π 1 2π 360°
• Précision : = = 0.00157 rad ou = 0.09° .
N 4 4000 4000
• Pas du conteur incrémental : 0.25 point.
Pour avoir une mesure de la position angulaire en rad il faut utiliser le gain :
2π
ka =
1000
La mesure de vitesse est obtenue en utilisant le gain :
2π 1 60 1
ks = × pour l’unité rad/min ou ks = × pour l’unité tr/min
1000 Te 1000 Te
Te est la période d’échantillonnage (la valeur choisie dans cet atelier est Te=1ms).
Afin d’alléger la procédure de calcul, les deux gains sont introduits en valeurs numériques.
La vitesse obtenue de cette manière est généralement bruitée. Il est, donc, nécessaire de la passer à
travers un filtre ‘pas bas’ qui présente une fréquence de coupure faible (valeur type wc=100 rad/s).
Pour la visualisation des mesures de la position angulaire et de la vitesse on utilise l’interface
ControlDesk de la carte. Consulter pour ceci le support ‘Introduction à la Carte DS1104’.
Figure 2.
17
Figure 3.
Figure 4.
18
Figure 5.
Figure 6.
19
II. MISE EN ŒUVRE PRATIQUE DES CAPTEURS LEM DE COURANT ET DE TENSION
On cible dans cette partie les grandeurs électrique i.e. le courant et la tension. Et on cherche le gain
du capteur de courant LEM : LA 55-P.
Nous voulons aussi exploiter un capteur de tension LV 25-P.
Voir en annexe les fiches techniques de ces deux capteurs.
L’exploitation des mesures est réalisée avec la carte DS1104.
1. Mise à l’échelle des mesures
Dans le cas d’un schéma de commande avec des boucles de courant, il est nécessaire d’utiliser un
capteur pour cette grandeur électrique (capteur à effet Hall type LEM par exemple). Le capteur de
courant donne en sortie une tension vmes-i proportionnelle au courant qui le traverse i (Figure 7-a) :
,i = Gi × vmes-i
Le capteur de tension est, éventuellement, utilisé dans le cas de nécessité de surveillance des
tensions ou le cas de schéma de commande exigeant cette grandeur (commande sans capteur
mécanique, DTC…). La tension vmes-v est proportionnelle à la tension v aux bornes du capteur
(Figure 7-b) :
,v = Gv × vmes-v
Les gains Gi et Gv dépendent de la résistance de mesure Rm. Cette résistance est dimensionnée pour
remettre à l’échelle les deux grandeurs électriques. En effet, les tensions limites des entrées ADC de
la carte DS1104 sont ±10V, le rôle des capteurs est alors d’adapter les mesures à cette plage.
2. Conditionnement des mesures
Dans l’environnement dSpace-RTI1104/Simulink, pour avoir les valeurs des grandeurs électriques
il faut tenir en comptes, d’un côté, des gains des capteurs utilisés et de l’autre côté de la
normalisation appliqué dans cet environnement (voir paragraphe I.2). Par exemple, avec un capteur
de courant, sur la phase ‘a’, présentant un gain Gi l’adaptation nécessaire est :
G = 10 × Gi
Les mesures sont ensuite filtrées par un Passe Bas ayant une fréquence de coupure convenable. En
effet, le filtre doit être transparent pour la plage des fréquences de fonctionnement possibles
(exp.,wc=1000 rad/s). Le schéma complet des mesures est illustré par la figure 7-c.
On rappel que, comme dans tous capteurs à amplification, les mesures qui résultent des LEM sont
affectés d’offsets. Dans les applications où ces défauts sont consistants par rapports à l’amplitude de
la grandeur mesurée, il faut les éliminer avant l’exploitation des mesures.
i RTH
Capteur v Capteur
LEM vmes-i LEM
Rm
vmes-v
Rm
20
II. ESTIMATION DE LA VITESSE DE LA MACHINE A COURANT CONTINU
On désire estimer la vitesse de la machine à courant continu à partir de son courant et sa tension
d’induit. Pour ceci on mesure ces deux grandeurs et on utilise l’équation électrique de la machine.
Etant donné les paramètres de la machine : R et Ke et les mesures électriques, réaliser un
programme pour l’estimation de la vitesse et valider cette estimation en utilisant la mesure de la
vitesse.
ANNEXES
21
Series M21 Modular Encoder (MotorSolver)
Modular, Incremental Encoder for Stepper and Small Servo Motor Feedback
Phased Array Sensor Technology Provides High Temperature and Operating
Frequency and Allows 0.020" (0.5 mm) of Axial Play
1000 PPR Resolution with Index Standard & Commutation
Hall communication tracks for 10 pole Brushless Motors
22