Rapport de BE Trottinnette - Etud · BETrottinette INSAToulouse...
Transcript of Rapport de BE Trottinnette - Etud · BETrottinette INSAToulouse...
Institut National des Sciences Appliquées de Toulouse4èmeannée Automatique Electronique
option Systèmes Embarqués
Rapport de BE Trottinnette
Simon BOUVOTNicolas GARIN
Enseignant : Thierry ROCACHERToulouse - 24 janvier 2013
Table des matières
Introduction 3
1 Conception de l’électronique de traitement 41.1 Capteur à effet hall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Traitement des capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Etude théorique : la boucle de courant en continu 62.1 Démarche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Boucle de courant en continu . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Le hacheur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Correcteur PI(D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5.1 Validité du modèle continu . . . . . . . . . . . . . . . . . . . . . . . 92.5.2 Question de saturation . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Etude théorique : la boucle de courant discrétisée 123.1 De Laplace au discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 Schéma global du système bouclé . . . . . . . . . . . . . . . . . . . . . . . 133.3 Simulations du modèle Matlab final . . . . . . . . . . . . . . . . . . . . . . 13
4 Programmation du STM32 sous Keil 154.1 Chaine directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.2 Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.3 Comparaison Matlab - Keil . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Planning de déroulement du BE 18
Conclusion 21
2
Introduction
L’objectif de ce bureau d’études est de concevoir un asservissement numérique decouple et de vitesse d’un moteur pour trottinette électrique. Plusieurs étapes peuventêtre alors définies :
On commencera par une analyse qualitative du système existant. Ensuite, la conceptiond’une électronique de traitement des capteurs (courant, tachymètre). Matlab est utilisépour effectuer une modélisation représentative du dispositif en temps continu.
Ensuite, on concevra le correcteur en temps continu, on le discrétisera et le dimension-nera avec par exemple sa fréquence de coupure. Une étude sera portée sur la stabilité dusystème : quel impact à l’échantillonnage sur ce dernier critère.
Les lois de commande seront mises en oeuvre sur Keil afin de les implémenter sur unmicro-contrôleur STM32F103RB.
Ainsi ce projet a pour objectif d’utiliser toutes nos connaissances acquises lors de notrescolarité à l’INSA.
La trottinette, étude en puissanceLe TD traité en début de projet permet de se rendre compte des caractéristiques de la
trottinette comme son rendement, la pente qu’elle peut gravir suivant une vitesse imposée,la tension aux bornes du moteur et son courant dans différents cas d’utilisation (cas demontée et descente traités sur papier) et bien entendu ses puissances utiles et absorbéespendant utilisation.
Il nous as rappelé le fonctionnement du hacheur 4 quadrants qu’on utilisera bien en-tendu pour commander le moteur (on note qu’on a opté pour un choix de rendementidéal !).
3
Chapitre 1
Conception de l’électronique detraitement
1.1 Capteur à effet hallLe capteur de courant utilisé (LTS6NP) présente les caractéristiques suivantes :– Tension d’alimentation : 5V– Nombre de spires primaire : 1– Tension de polarisation : 2.5V– Sensibilité (1 tour au primaire) : SI=104mV/A
1.2 Traitement des capteursL’objectif est d’asservir en courant notre système afin de pouvoir avoir une utilisation
correcte de la trottinette en question. La régulation se fait par l’intermédiaire d’un micro-contrôleur numérique type STM32. Avant d’effectuer cet asservissement, il faut s’assurerque les tensions appliquées en IN et en OUT du STM32 soit bien comprises dans lesplages voulues (étant donné que nous souhaitons utiliser un ADC, les tensions en entréedu micro-contrôleur devront être comprise entre [0V ;3.3V]).
Le convertisseur courant/tension présent dans la boucle de retour doit suivre les carac-téristiques suivantes à la vue de la tension maximale d’acceptation du micro-contrôleur.De même, le capteur à effet hall utilisé doit être borné entre [−10A; +10A], cet intervallereprésentant les limites de fonctionnement du moteur (avant détérioration).
Figure 1.1 – Convertisseur courant-tension
4
BE Trottinette INSA Toulouse
Afin de respecter cette partie du cahier des charges, on a mit en place une électroniquede conditionnement analogique. A l’origine, le capteur est polarisé à 2.5V avec une sen-sibilité de 104mV/A. En entrée du micro-contrôleur, le signal doit être polarisé à 1.65Vavec une sensibilité de 165mV/A. Nous avons donc utilisé un soustracteur afin de réalisercette fonction.
Figure 1.2 – Soustracteur
La tension U2 est la tension de sortie du capteur. On a pris R1 = R3 et R4 = R2. Parconséquent, on aura :
Us = (U2 − U1) ∗ R2R1
On doit avoir idéalement R2R1
= 165104 = 1.58. En pratique, on a choisi R2 = 18kΩ et
R1 = 10kΩ. La tension U1 sert à fixer la polarisation, on doit avoir Us = (U2 − U1) ∗ R2R1
soit 1.8∗(2.5−U1) = 1.65. D’où U1 = 1.58V . On fixera cette tension avec un pont diviseurutilisant une résistance variable afin d’être vraiment précis sur la polarisation.
La tension de sortie Us est ensuite envoyé sur le filtre anti-aliasing pour éviter tout re-pliement de spectre. C’est tout simplement un filtre RC (passe-bas) qu’on vient ajouteren série au montage précédent avec une fréquence de coupure équivalente à la moitié dela fréquence d’échantillonnage : fc = Fe
2 . La fréquence d’échantillonnage Fe a été choisieégale à 10kHz au vue des performances de la trottinnette et du micro-contrôleur.
Pour le montage soustracteur, nous avons utilisé un composant intégré Rail to Rail, leLMC663 dont voici le brochage :
Figure 1.3 – Brochage du LMC662
Bouvot - Garin Page 5/ 21 24 janvier 2013
Chapitre 2
Etude théorique : la boucle decourant en continu
2.1 DémarcheA ce stade de la conception, nous avons décidé d’approcher par étapes successives afin
de bien se rendre compte de l’influence des modifications que nous allions faire par lasuite. Notre avancement peut se résumer en 3 étapes.
La première étape va modéliser le système sans les polarisations ni les saturations, laseconde va rajouter les polarisations ; enfin notre dernière étape va modéliser la boucle decourant version continue, c’est à dire avec à la fois les polarisations mais également lessaturations.
Pour éviter une surcharge de ce présent rapport, on présentera nos travaux à partir de laboucle de courant version continue.
2.2 Boucle de courant en continuDans cette partie, on présentera la boucle de courant pour un système à temps continu
(variable de Laplace). Le schéma ci-dessous peut être décomposé en plusieurs blocs :l’entrée, le correcteur PID, le hacheur 4 quadrants, le moteur et enfin la sortie.
Figure 2.1 – Système continu avec saturation
6
BE Trottinette INSA Toulouse
2.3 MoteurLes caractéristiques électriques de l’induit sont données ci-dessous :– Résistance de l’induit : R = 1Ω– Inductance de l’induit : L = 2mH– Vitesse maximale : 3000tr/mn– Puissance absorbée nominale, Pabs = 100W– Puissance restituée à l’arbre : Pu = n ∗ Pabs = 0, 6 ∗ 100 = 60W
Le moteur est modélisé par une self en série avec une résistance, sa fonction de transfertest donc la suivante :
Figure 2.2 – Fonction de transfert du moteur
De ce système, on tire les diagrammes de Bode suivant (Gain et Phase) :
Figure 2.3 – Diagrammes de bode du moteur simple
On remarque sur le graphe ci-dessus l’état de stabilité du système : celui-ci n’est passtable. On va corriger le système afin que ce dernier soit stable en boucle fermée. Le cahierdes charges sera réalisé avec en plus de la stabilité une erreur nulle.
Bouvot - Garin Page 7/ 21 24 janvier 2013
BE Trottinette INSA Toulouse
2.4 Le hacheurDans notre étude, il est nécessaire de pouvoir commander le sens de rotation ainsi que
la vitesse du moteur à courant continu de la trottinette. On fait appel à un convertisseurcontinu/continu : le hacheur. Les 4 transistors (couplés à 4 diodes de roue-libre) fonc-tionnent 2 par 2 pour assurer les 2 sens de rotation du moteur. Le principe est illustréci-dessous.
Figure 2.4 – Hacheur 4 quadrants
On veut pouvoir commander ce moteur grâce à un rapport cyclique qui sera généré enPWM (Modulation Largeur d’Impulsions) par le micro-contrôleur. On établit l’équationsuivante qui permet de commander le moteur par une tension continue, image du rapportcyclique généré (alpha) selon le graphe ci-dessous.
Figure 2.5 – Rapport cyclique α et PWM
On a :
U = (α∗T∗E+(T−α∗T )∗(−E))T
d’où :
U = (2α− 1)E
2.5 Correcteur PI(D)Afin de remédier au problème de stabilité, on va mettre en place un correcteur pro-
portionnel intégral. Il récupérera en IN une différence de tension et fournira en OUT lerapport cyclique désiré pour commander le hacheur et ainsi le moteur.
On rappelle que dans les spécifications, la fréquence de transition en boucle ouverte doitêtre comprise dans l’intervalle [300Hz; 500Hz] et la marge de phase du système dans
Bouvot - Garin Page 8/ 21 24 janvier 2013
BE Trottinette INSA Toulouse
[45 ; 90 ].Le correcteur proportionnel intégral est codé selon la syntaxe suivante :
PI = Prop+ Integ ∗ 1S
avec :Prop = fc ∗ pi ∗ L/(capteur ∗ E)Integ = Prop ∗R/L
2.5.1 Validité du modèle continuAfin de tester la validité du correcteur déterminé, on va vérifier si la fréquence f =
400Hz soit une pulsation w = 2 ∗ π ∗ f = 2500rad/s correspond bien à une la marge dephase de Mφ = 90o (Gain=0dB).
Figure 2.6 – Mφ = 90o à 2500rad/s = 400Hz
En entrée, on met un échelon de +10A et on visualise la réponse du système bouclé.On remarque qu’il y a un dépassement rapidement contré par la boucle de retour. Ceciest dû au temps de traitement de la boucle et plus particulèrement au temps de réponsedu système (lié à la fréquence d’échantillonnage).
Bouvot - Garin Page 9/ 21 24 janvier 2013
BE Trottinette INSA Toulouse
Figure 2.7 – Echelon de 10A en IN
Dans la réponse suivante, on met un échelon de -10A :
Figure 2.8 – Echelon de 10A en IN
Le temps de réponse est d’environ 25ms (les simulations à l’origine des graphes ci-
Bouvot - Garin Page 10/ 21 24 janvier 2013
BE Trottinette INSA Toulouse
dessus sont stoppées à 15ms) et correspond à notre fréquence de transition choisie (400Hz ↔2500rad/s). On visualise ci-après l’erreur en régime permanent ε (en sortie du soustrac-teur) ; elle est bien nulle comme la spécification le demande.
Figure 2.9 – Erreur ε
2.5.2 Question de saturationOn note qu’un saturateur a été installé juste après le correcteur pour que le rapport
cyclique soit borné entre 0 et 1.
On peut conclure quant au correcteur programmé : celui-ci convient parfaitement auxspécifications. On va désormais passer à l’étape de discrétisation du correcteur qui nouspermettra par la suite de l’implémenter dans le micro-contrôleur.
Bouvot - Garin Page 11/ 21 24 janvier 2013
Chapitre 3
Etude théorique : la boucle decourant discrétisée
Le but de cette étape de discrétisation est de faire un changement de variable deLaplace en Z afin de pouvoir coder dans le micro-contrôleur l’équation de récurrence tiréedu correcteur proportionnel intégral.
3.1 De Laplace au discretAfin d’implémenter le correcteur sur le micro-contrôleur, on calcule grâce à la trans-
formée en Z la nouvelle fonction de transfert (en Z). On effectue le changement de variablesuivant qui correspond à la transformée bilinéaire :
s = 2T.Z−1Z+1
On peut écrire :
PID(Z) = P + I ∗ Te2 ∗Z+1Z−1
D’où :
PID(Z) = Y (Z)U(Z) = Z.(P+I T e
2 )+(I.T e2 −P )
Z−1
On a ensuite :
Y (Z)(Z − 1) = U(Z)(Z.(P + I Te2 ) + (I.Te2 − P ))
En multipliant par Z−1 :
Y (Z)(1− Z−1) = U(Z)(P + I Te2 + Z−1(I.Te2 − P ))
Et en passant en indice :
Yn − Yn−1 = Un(P + I Te2 + Un−1(I.Te2 − P ))
On va pouvoir venir programmer sur Keil directement cette équation de récurrence :
12
BE Trottinette INSA Toulouse
Yn = Yn−1 + Un(P + ITe
2 + Un−1(I.Te2 − P ))
Au niveau du programme Matlab, on peut utiliser directement la fonction de tranfertdu correcteur en s dans la commande c2dm.
PI = Prop+ I ∗ 1S
Prop = fc ∗ pi ∗ L/(capteur ∗ E)Integ = Prop ∗R/L
num = [Prop/Integ 1]den = [1/Integ 0][NUMd,DENd] =c2dm(num, den, TS,′ tustin′)
3.2 Schéma global du système boucléOn ajoute dans le fichier simulink un retard 1/Z représentant le temps de traitement
du micro-contrôleur. Un schéma vaut mieux qu’un long discours :
Figure 3.1 – Boucle de courant
3.3 Simulations du modèle Matlab finalOn visualise sur les courbes suivantes la consigne (courant), le courant de sortie ainsi
que le rapport cyclique α après le saturateur. On remarque l’efficacité du saturateur etl’influence de la fréquence d’échantillonnage Fe du système. Ci-dessous une simulationavec en consigne un échelon à 8A.
Bouvot - Garin Page 13/ 21 24 janvier 2013
BE Trottinette INSA Toulouse
Figure 3.2 – IIN = 8A, réponse de Isortie et α
Bouvot - Garin Page 14/ 21 24 janvier 2013
Chapitre 4
Programmation du STM32 sous Keil
Une fois la validation du modèle effectuée, nous avons converti le code Matlab en C.Nous n’avons pas jugé utile de joindre le code, seulement une simulation représentativedu bon fonctionnement du micro-contrôleur. Le code est disponible à l’adresse suivante :https://etud.insa-toulouse.fr/~bouvot/Cours/4AE/Trottinette/Trottinette-Bouvot-Garin.zip
4.1 Chaine directeEn entrée, on vient récupérer la valeur de tension sur la broche GPIO avec un ADC.
L’ADC vient convertir une valeur physique en numérique. La plage de fonctionnement deADC : 0 à 3.3V, il faudra donc faire attention aux tensions d’entrée (voir Traitement descapteurs).
En sortie, on vient injecter le rapport cyclique calculé par le micro-contrôleur dans leGPIO configuré, grâce à la PWM (MLI). On note ici qu’en réalité 2 signaux PWM sontenvoyés, qui sont l’un (porta.9) et l’autre opposé (portb.14).
Dans la simulation ci-dessous, on visualise un changement de rapport cyclique voulupar la commande et le travail que fait la PWM pour y arriver.
Figure 4.1 – En haut, rapport cyclique. En bas, signal PWM résultant
15
BE Trottinette INSA Toulouse
La chaine directe n’a pas vraiment posé de problème au niveau du code. Un simpleif nous a permis de rêgler la question de saturation par exemple. On a ci-dessous unesimulation de la chaine directe seule, on met en entrée un step avec un α0 = 0.5. Onremarque que le système met du temps à réagir (retard 1/Z) et qu’il sature bien à 1(0 < α < 1).
4.2 InterruptionsLes interruptions viennent faire l’acquisition de l’entrée et de la boucle de retour pour
calculer l’erreur à intervalles de temps réguliers. Il a fallu paramétrer ce temps pour quele système ait le temps d’acquérir, de traiter et de communiquer en une période d’inter-ruption. Nous avons choisi une période de 100µs (sur le timer 1) pour que ce critère soitvalidé. A chaque interruption, on vient modifier la PWM pour que la trottinette réponderapidement à la demande de l’utilisateur.
Active_IT_Debordement_Timer(TIM1, 7,&IT_PWM);
Nous avons ensuite validé notre programmation sous Keil en comparant pour unemême consigne ce que nous donnait la simulation sous Matlab.
4.3 Comparaison Matlab - Keil
Figure 4.2 – Saturation du système à α = 1
Bouvot - Garin Page 16/ 21 24 janvier 2013
BE Trottinette INSA Toulouse
Figure 4.3 – Matlab VS Keil
Notre programme de régulation est donc validé : en effet, on observe une réponsesimilaire dans les 2 cas.
Bouvot - Garin Page 17/ 21 24 janvier 2013
Planning de déroulement du BE
Le planning a été un élément assez important car il nous a permis de juger de notreavancement et de notre efficacité.
18
BE Chaînes d'acquisition et commande numérique
Grille de suivi de projet
N° de séance Tâches à effectuer Tâches effectuées en séance de TP
Tâches effectuées hors séance TP
1
11/12/12X Découverte du projet Premier Schéma bloc de l’asservissement en courant X
2
12/12/12Prévu : Simulink de l'asservissementCalculer le correcteurCalculer l'électroniqueFait à la fin de la séance:Simulink de l'asservissementCalculer le correcteurCalculer l'électronique(sur papier)
Simulink système continu(sans polarisation, sans saturation)vérification des spécifications :BO : FcBF : marge de phase, erreur statique
11/12/12=>12/12/12Rien
3
20/12/12Prévu : Simulink continu completDiscret (avec transfo en Z)Fait à la fin de la séance:Simulink continu complet Débogage(Reprise du simulink continue avec saturation et polarisation)12/12/12=>20/12/12
PolarisationSaturation
4
09 /01/13Prévu : Courant: Simulink discret, Keil, elec.Vitesse : Commencer à réfléchirFait à la fin de la séance:Courant : Simulink discret, début du programme sur KeilSimulink Discret1ere version du main du programme sous Keil
20/12/12=>09/01/13TD Étude de puissance de la trottinette
Noms, prénoms, groupe :4ème année AE -SE- ISSimon BOUVOTNicolas GARIN
BE Chaînes d'acquisition et commande numérique
Grille de suivi de projet
N° de séance Tâches à effectuer Tâches effectuées en séance de TP
Tâches effectuées hors séance TP
5
11/01/13Prévu : Programme Keil en C pour faire tourner la boucle de courantimplémentation sur maquetteFait à la fin de la séance:Programme Keil « terminé » hormis les interruptionsDébogage partie automatique sous Matlab-Simulink Suite Programme Keil
09/01/13=>11/01/13Fin de la partie Matlab sur la boucle de courantProgrammation sous keil :Fonction d’Init Fonction Du PID
6
15/01/13Prévu : Keil : entrée, retour, interruption, tests.Elec : CâblerFait à la fin de la séance:Keil : Entrée=> Test Ok Retour=> Test Ok Interruption=> Test non concluant
Interruptions (Débogage)11/01/13=>15/01/13
Programmation de tout le programme sous keil
7
16/01/13Prévu : Keil : Tests interruptionsElec : CâblageTest comparatif Keil-SimulinkFait à la fin de la séance:Keil : Tests interruptions Elec : CâblageTest comparatif Keil-Simulink
Interruptions : testElectronique : Câblage 15/01/13=>16/01/13
Interruptions
8
18/01/13Prévu : Résoudre problème électroniqueTest montage terminalValidationFait à la fin de la séance:Problème électronique quasi résoluTests montage terminalReprise du débogage électroniqueTests
16/01/13=>18/01/13Débogage électronique 18/01/13=>25/01/13Problèmes résoluTest de la boucle de courant en réel : « Auto validation » du montage terminal
Simon BOUVOTNicolas GARINNoms, prénoms, groupe :
4ème année AE -SE- IS
Conclusion
Ce bureau d’étude "Trottinette" a été vraiment complet. Il nous a permis de cotoyerautomatique linéaire et discrète, électronique et acquisition en passant par la program-mation de périphériques. Il est très intéressant au niveau pédagogique de travailler surdes maquettes réelles, on se rend compte suivant le comportement du système si nos pro-grammes sont bons.
La densité des séances dans cette fin de semestre ne nous a pas permis d’aboutir à larégulation en vitesse, chose qui aurait été largement faisable grâce à un espacement desséances. Le travail en dehors des créneaux a été assez important comme le planning peutle confirmer, un peu plus de temps aurait permis de finir la partie vitesse de ce bureaud’étude.
Le bilan de cette enseignement est plus que positif car nous avons pu mettre en oeuvrede nombreux points abordés dans de nombreux cours et interpréter réellement les différentscomportements de la trottinette suivant les commandes employées.
21