CONSERVATOIRE NATIONAL DES ARTS ET MÉTIERS CENTRE RÉGIONAL ASSOCIÉ DE GRENOBLE (C.U.E.F.A.) ________________________ MÉMOIRE présenté en vue d'obtenir le DIPLÔME D'INGÉNIEUR C.N.A.M. en AUTOMATISME INDUSTRIEL par Gabriel BUCHE __________________________ COMMANDE VECTORIELLE DE MACHINE ASYNCHRONE EN ENVIRONNEMENT TEMPS RÉEL MATLAB/SIMULINK ___________________________ Soutenu le 7 mars 2001 JURY : Président : M. J.-L. THOMAS Membres : M. E. CHAMBEROD M. B. DESCOTES-GENON M. L. DUGARD M. D. LUBINEAU M. M. NOUGARET M. D. REY Remerciements Remerciements Ce mémoire a été préparé au sein du Laboratoire d'Automatique de Grenoble, sous la direction de M. Luc DUGARD, Directeur du L.A.G. et M. Denis LUBINEAU, professeur agrégé à l'I.U.T. Génie Electrique et Informatique Industrielle de Grenoble.. Je tiens à leur témoigner ma reconnaissance pour leurs conseils et leur disponibilité sans faille. Mes remerciements vont également à M. Jean-Michel DION, ancien Directeur du L.A.G, qui, à l'origine, m'a proposé une étude sur la machine asynchrone. Je tiens à remercier particulièrement : Monsieur Jean-Luc THOMAS, Professeur au Conservatoire National des Arts et Métiers, qui me fait l'honneur de présider ce jury. Monsieur Marcel NOUGARET, Responsable de la section Automatisme industriel au C.U.E.F.A. de Grenoble, pour ses conseils et ses nombreux encouragements. L'ensemble des enseignants du C.U.E.F.A. Je ne peux oublier M. Jean BARNIER et M. Thierry BLANC pour le suivi technique de la plateforme, ainsi que M. Daniel REY, responsable de l'équipe technique. Je remercie également M. Ricardo ALVAREZ-SALAS pour son aide précieuse lors des nombreux essais. Je réitère mes plus vifs remerciements à MM. DUGARD, NOUGARET et LUBINEAU pour la relecture de ce rapport. A Isabelle A Samuel, Caroline, Solène Table des matières Table des matières Notations 8 Introduction 11 Chapitre 1 Modélisation du moteur asynchrone triphasé 13 1.1 Description du moteur asynchrone à cage ......................................................................13 1.2 Avantages du moteur asynchrone ...................................................................................14 1.3 Problèmes posés par le moteur asynchrone ....................................................................14 1.4 Hypothèses simplificatrices ............................................................................................14 1.5 Principe du contrôle vectoriel à flux orienté...................................................................15 1.6 Notion de vecteur tournant .............................................................................................16 1.7 Transformation de Clarke ...............................................................................................16 1.8 Transformation de Park ..................................................................................................18 1.9 Modèle du moteur asynchrone........................................................................................19 1.9.1 Équations de base.....................................................................................................19 1.9.2 Modèle exprimé dans le repère (α,β) lié au stator...................................................19 1.9.3 Modèle exprimé dans le repère (d,q) lié au champ tournant....................................22 1.10 Expressions du couple électromagnétique instantané ..................................................24 Chapitre 2 Commande vectorielle à flux rotorique orienté 25 2.1 Expression générale de la commande .............................................................................25 2.2 Découplage entrée-sortie ................................................................................................26 2.2.1 Découplage par retour d'état ....................................................................................26 2.2.2 Découplage par compensation .................................................................................30 2.2.3 Problèmes posés par le découplage .........................................................................31 2.3 Commande vectorielle à flux orienté..............................................................................32 2.3.1 Schéma de principe ..................................................................................................32 2.3.2 Calcul de Φr .............................................................................................................32 2.3.3 Calcul de ωs et θs .....................................................................................................33 2.3.4 Schéma complet de la commande vectorielle directe à flux rotorique orienté ........33 2.3.5 Calcul des régulateurs ..............................................................................................35 2.3.5.1 Régulateur de flux.............................................................................................35 2.3.5.2 Régulateur de couple ........................................................................................36 2.3.5.3 Régulateur de vitesse ........................................................................................37 2.3.5.4 Application numérique .....................................................................................39 Chapitre 3 Plate-forme expérimentale 41 3.1 Structure électromécanique.............................................................................................42 3.1.1 Description...............................................................................................................42 3.1.2 Principaux paramètres..............................................................................................42 5 Table des matières 3.2 Commande de la machine asynchrone ...........................................................................43 3.2.1 L'onduleur de puissance JIS 35 (Jeumont-Schneider).............................................43 3.2.2 Pilotage de l'onduleur par la carte Alcatel PWM ......................................................44 3.2.2.1 Modulation de largeur d'impulsion...................................................................44 3.2.2.2 Génération de référence....................................................................................44 3.2.2.3 Gestion des impulsions.....................................................................................45 3.2.2.4 Problèmes liés à la modulation de largeur d'impulsion ....................................47 3.2.2.5 Adaptation de la carte Alcatel ..........................................................................49 3.3 Environnement de mesures.............................................................................................50 3.3.1 Instrumentation du banc ..........................................................................................50 3.3.2 Capteurs ...................................................................................................................51 3.3.2.1 Capteur de flux et de couple électromagnétique ..............................................51 3.3.2.2 Capteur de vitesse.............................................................................................52 3.4 Evaluation des retards.....................................................................................................52 3.4.1 Retards dus à l'onduleur et au temps de calcul ........................................................52 3.4.2 Retards dus aux filtrage des mesures.......................................................................53 3.5 Environnement dSPACE ...................................................................................................54 Chapitre 4 Simulation de la commande vectorielle 57 4.1 Présentation de l'environnement MATLAB/SIMULINK™.................................................57 4.2 Modélisation sous MATLAB/SIMULINK ...........................................................................57 4.2.1 Introduction aux S-Functions ..................................................................................57 4.2.2 Fonctionnement d'une S-Function ...........................................................................59 4.2.3 Modèle du moteur asynchrone ................................................................................60 4.3 Structure des principaux blocs de simulation .................................................................61 4.3.1 Bloc régulateurs et découplages ..............................................................................61 4.3.2 Blocs transformations (d,q)→ (α,β) et (α,β)→ (d,q)................................................63 4.3.3 Bloc calcul ωs, θs .....................................................................................................65 4.3.4 Génération des consignes ........................................................................................66 4.3.5 Visualisation des courbes de réponse ......................................................................66 4.4 Résultats de simulation...................................................................................................67 4.4.1 Aspects pratiques.....................................................................................................67 4.4.2 Définition des profils de régulation et poursuite .....................................................68 4.4.3 Résultats en régulation de vitesse............................................................................69 4.4.4 Résultats en poursuite..............................................................................................70 Chapitre 5 Mise en œuvre sur le banc 73 5.1 Environnement MATLAB/SIMULINK/dSPACE™ ..............................................................73 5.1.1 Présentation des interfaces dSPACE ..........................................................................73 5.1.2 Utilisation du module Real Time Interface (RTI) ....................................................73 5.1.3 Module de contrôle COCKPIT ...................................................................................76 5.1.4 Module d'affichage TRACE ......................................................................................78 5.2 Adaptation du schéma de simulation..............................................................................79 6 Table des matières 5.2.1 Intégrateurs ..............................................................................................................79 5.2.2 Limitation des consignes de commande ..................................................................79 5.2.3 Estimation du couple électromagnétique .................................................................80 5.2.4 Ajustement des compensations ................................................................................80 5.2.4.1 Compensation de fem. ......................................................................................80 5.2.4.2 Compensation de déphasage .............................................................................80 5.2.5 Interfaces dSPACE .....................................................................................................80 5.2.5.1 Commande de la machine asynchrone..............................................................80 5.2.5.2 Commande de la charge (machine à courant continu)......................................81 5.2.5.3 Mesures .............................................................................................................82 5.2.5.4 Transformation (a,b,c)→(α,β) ..........................................................................82 5.3 Résultats expérimentaux .................................................................................................83 5.3.1 Aspects pratiques .....................................................................................................83 5.3.1.1 Compilation et chargement ...............................................................................83 5.3.1.2 Mise en route du banc .......................................................................................84 5.3.2 Résultats en régulation de vitesse ............................................................................85 5.3.3 Résultats en poursuite ..............................................................................................86 Conclusion 89 Annexe A Variateurs de vitesse et contrôleurs 91 A.1 Variateur machine asynchrone : l'onduleur de puissance JIS 35 ..................................91 A.1.1 Schéma fonctionnel.................................................................................................91 A.1.2 Liste des sous-ensembles technologiques ...............................................................92 A.1.3 Fonctionnement.......................................................................................................93 A.1.4 Régulation interne (U/f) ..........................................................................................94 A.1.5 Protection et séquences ...........................................................................................94 A.2 Variateur machine à courant continu : le Jistor triphasé VM011 .................................95 A.2.1 Raccordement de puissance ....................................................................................95 A.2.2 Liste des sous-ensembles technologiques ...............................................................95 A.3 Contrôle de l'inducteur de la machine à courant continu : le Babytrex SMO ................96 Annexe B Environnement de mesures 97 B.1 Interface d'isolement puissance/système de contrôle-commande ..................................97 B.2 Mesure des courants et des tensions...............................................................................98 B.3 Mesure de vitesse et de position.....................................................................................99 B.3 Mesure du couple mécanique (capteur Staiger Mohilo) ................................................99 B.4 Mesure du couple électromagnétique...........................................................................100 Annexe C Adaptation carte Alcatel ALCT01 103 Annexe D Fichiers C et MATLAB 105 D.1 Modèle C du moteur asynchrone "moteur.c"...............................................................105 D.2 Définition des paramètres moteur "Majn.m" et "Datafocn.m" ....................................108 D.3 Calcul des régulateurs "Calcregn.m" ...........................................................................109 Annexe E Schémas de simulation et d'implantation temps réel 111 7 Table des matières E.1 Schéma de simulation .................................................................................................111 E.2 Schéma d'implantation temps réel...............................................................................112 E.3..Génération des consignes............................................................................................113 E.4 Interface COCKPIT .......................................................................................................114 8 Notations Notations Indices r s Grandeur rotor ou de repère rotor (R) Grandeur stator ou de repère stator (S) Opérateur de Laplace Repère tournant (d,q) ≡ (T) Axe α du repère stator (S) ≡ (α,β) Axe β du repère stator (S) ≡ (α,β) Axe d du repère tournant (T) ≡ (d,q) Axe q du repère tournant (T) ≡ (d,q) Grandeur nominale t α β d q n Principales grandeurs [Xy(z)] Vecteur X, y ∈ {r, s} exprimé dans le repère biphasé (z), z ∈ {r , s, t} xd xα X ( s) = , X ( t ) = xβ xq Nombre complexe associé au vecteur [Xy(z)] [ ] X y(z) [ ] Estimation de x dx x& , x dt xref consigne x vsd tension statorique instantanée dans l'axe d vsq tension statorique instantanée dans l'axe q courant statorique instantané dans l'axe d isd courant statorique instantané dans l'axe q isq vsα tension statorique instantanée dans l'axe α vsβ tension statorique instantanée dans l'axe β θ position du rotor θs angle électrique entre l'axe d du référentiel tournant (T) et le référentiel fixe (S) lié 1 au stator, θ s = ωs s ωs pulsation statorique Ω vitesse de rotation mécanique couple électromagnétique Γe x̂ o 9 Notations Γr Te, Tech couple résistant période d'échantillonnage Principaux paramètres moteur asynchrone Rs Rr Ls Lr Lm p Tr J f résistance statorique résistance rotorique inductance cyclique statorique inductance cyclique rotorique inductance magnétisante nombre de paires de pôles constante de temps rotorique moment d'inertie ramené sur l'axe moteur coefficient de frottement visqueux 10 Introduction Introduction La machine asynchrone, de par sa simplicité de conception et d'entretien, a la faveur des industriels depuis son invention par Nikola Tesla à la fin du siècle dernier, quand il découvrit les champs magnétiques tournants engendrés par un système de courants polyphasés. Cette simplicité s'accompagne toutefois d'une grande complexité physique, liée aux interactions électromagnétiques entre le stator et le rotor. D'autre part, à la différence du moteur à courant continu où il suffit de faire varier la tension d'alimentation de l'induit pour faire varier la vitesse, le moteur asynchrone nécessite l'utilisation de courants alternatifs de fréquence variable. L'un des principaux blocages était constitué par l'onduleur devant fonctionner en commutation forcée. La machine asynchrone a donc longtemps été utilisée essentiellement à vitesse constante, faute de pouvoir maîtriser convenablement la dynamique de l'ensemble moteur-charge. L'apparition des thyristors GTO (Gate Turn Off) et, par la suite, des transistors IGBT (Insulated Gate Bipolar Transistor) a permis le développement d'onduleurs à modulation d'impulsion performants, fiables et proposés à un coût non prohibitif. Le problème de l'alimentation étant pratiquement réglé, les commandes vectorielles à flux orienté et de contrôle direct de couple ont pu être implantées dans des conditions satisfaisantes. Toutefois, la commande de la machine asynchrone reste complexe par les développements théoriques mis en œuvre et la difficulté à identifier certains paramètres en temps réel (observateurs en boucle fermée). Le Laboratoire d'Automatique de Grenoble a été amené, avec l'aide de la fédération ELESA, groupement de recherche pluridisciplinaire établi à Grenoble et des organismes de tutelle, à développer un banc d'essai dédié exclusivement à l'étude de la chaîne de commande du moteur asynchrone. Cette machine présente en effet un grand intérêt pour l'automaticien et l'électrotechnicien : c'est un procédé non-linéaire, multivariable, fortement couplé, avec des caractéristiques dynamiques variables, des saturations possibles sur les entrées, les états, les sorties. Chercheurs et étudiants peuvent tester et valider leurs algorithmes sur une plate-forme entièrement instrumentée. L'objet de ce travail est d'illustrer le développement complet d'une commande vectorielle à flux rotorique orienté dans un environnement MATLAB/ SIMULINK/dSPACE, de la modélisation à l'implantation temps réel. Nous présentons, à chaque étape, hypothèses de travail et adaptations nécessaires liées aux caractéristiques du banc. L'objectif est de permettre une adaptation rapide des intervenants aux fonctionnalités offertes par la plate-forme et de servir de point de départ à une étude personnelle. 11 Introduction Le mémoire est structuré de la manière suivante : • Dans le chapitre 1, nous proposons une modélisation classique de la machine asynchrone en utilisant les transformations de Clarke et de Park. Le choix de la représentation complexe permet une simplification de l'écriture. • Dans le chapitre 2, nous abordons l'étude d'une commande à flux rotorique orienté. Une technique de découplage est proposée. Nous évoquons ses limitations, liées à celles de l'estimateur de flux utilisé, ainsi qu'une technique permettant d'éviter une éventuelle divergence du système due à l'évolution des paramètres du modèle en cours de fonctionnement. Un calcul pratique des différents régulateurs (flux, couple, vitesse) est présenté en fin de chapitre. • Le chapitre 3 est consacré à la description de la plate-forme expérimentale. Les principales adaptations matérielles et logicielles sont décrites de manière détaillée. Une modification de la carte de pilotage MLI (Modulation de largeur d'impulsion) permettant un fonctionnement à fréquence réduite (500 Hz) a été réalisée par l'auteur. L'évaluation des retards, et notamment ceux liés au filtrage des mesures, a nécessité une identification précise du comportement, dans la bande de fréquence de travail, du filtre utilisé. Une compensation de déphasage a pu ainsi être intégrée dans les schémas de simulation et d'implantation temps réel. • Dans le chapitre 4, nous implantons la commande proposée au chapitre 2 dans un schéma de simulation SIMULINK. Nous avons utilisé, pour décrire le modèle du moteur, une fonction système (S-function) écrite en langage C. Les résultats obtenus en poursuite et en régulation valident dans un premier temps la commande. • Le chapitre 5 est consacré à la mise en œuvre sur le banc dans l'environnement MATLAB/SIMULINK/dSPACE et aux essais expérimentaux. L'adaptation du schéma de simulation est présentée de manière détaillée, notamment au niveau de l'utilisation des intégrateurs, de l'ajout de gains de compensation de fem (découplage) et de déphasage dus aux filtres, et de l'appel aux interfaces système dDPACE. 12 Chapitre 1 Modélisation du moteur asynchrone triphasé Chapitre 1 Modélisation du moteur asynchrone triphasé 1.1 Description du moteur asynchrone à cage Un moteur asynchrone à cage se présente (Figure 1.1) sous la forme d'un carter (2) entourant le circuit magnétique, ferromagnétique, statorique qui accueille dans des encoches l'enroulement statorique polyphasé (généralement triphasé) bobiné en fil de cuivre isolé (1). A l'intérieur de ce circuit magnétique, qui se présente comme un cylindre creux, séparé par un entrefer, tourne le circuit magnétique rotorique (3) qui accueille dans ses encoches les barreaux de la cage rotorique, en aluminium coulé ou en cuivre, court-circuités à chaque extrémité par des anneaux réalisés dans le même matériau. Le circuit magnétique rotorique est traversé par l'arbre qui repose sur des paliers montés dans les flasques (5), (6) fixées au carter. Figure 1.1 Moteur asynchrone à cage Leroy-Somer 13 Chapitre 1 Modélisation du moteur asynchrone triphasé Le moteur asynchrone utilisé est donc caractérisé : • par la présence d'un seul bobinage polyphasé alimenté par une source extérieure au stator, • par la présence d'un "bobinage" massif en court-circuit au rotor. 1.2 Avantages du moteur asynchrone Le machine asynchrone à cage est le moteur le plus répandu dans l'industrie : il est robuste, fiable, économique. Il est également apprécié pour sa très bonne standardisation. 1.3 Problèmes posés par le moteur asynchrone Dans le moteur asynchrone, le courant statorique sert à la fois à générer le flux et le couple. Le découplage naturel de la machine à courant continu n'existe plus. D'autre part, on ne peut connaître les variables internes du rotor à cage (Ir par exemple) qu'à travers le stator. L'inaccessibilité du rotor nous amènera à modifier l'équation vectorielle rotorique pour exprimer les grandeurs rotoriques à travers leurs actions sur le stator. La simplicité structurelle cache donc une grande complexité fonctionnelle due aux caractéristiques qui viennent d'être évoquées mais également aux non-linéarités, à la difficulté d'identification et aux variations des paramètres (Rr en particulier, jusqu'à 50%). 1.4 Hypothèses simplificatrices La modélisation s'appuie sur un certain nombre d'hypothèses : • parfaite symétrie, • assimilation de la cage à un bobinage en court-circuit de même nombre de phases que le bobinage statorique (c'est à dire 3), • répartition sinusoïdale, le long de l'entrefer, des champs magnétiques de chaque bobinage, • absence de saturation dans le circuit magnétique. 14 Chapitre 1 Modélisation du moteur asynchrone triphasé (a) (A) STATOR (S) θ (C) ROTOR (R) (b) (c) (B) Figure 1.2 Machine asynchrone modélisée - Définition des repères stator et rotor 1.5 Principe du contrôle vectoriel à flux orienté L'objectif de ce type de contrôle est d'aboutir à un modèle simple de la machine asynchrone qui rende compte de la commande séparée de la grandeur Flux Φ et de la grandeur Courant I, générateur de couple. Il s'agira donc de retrouver la quadrature entre I et Φ, naturellement découplés pour une machine à courant continu (courant d'excitation – producteur de flux -, et courant d'induit – producteur de couple -). La difficulté va résider justement dans le fait que, pour une machine à induction, il est difficile de distinguer le courant producteur de couple du courant producteur de flux, fortement couplés. La méthode du flux orienté consiste à choisir un système d'axes (d,q), repère tournant biphasé orienté sur Φr (flux rotorique) ou Φs (flux statorique) et un type de commande qui permettent de découpler le couple et le flux. Nous nous intéressons à la commande à flux rotorique orienté. Le système d'axes (d,q) est élaboré à partir des transformations de Clarke et de Park. 15 Chapitre 1 Modélisation du moteur asynchrone triphasé 1.6 Notion de vecteur tournant Au stator comme au rotor, les courants triphasés parcourant des enroulements triphasés créent des champs magnétiques pulsatoires dont les superpositions génèrent des champs magnétiques tournants. Figure 1.3 Principe de création d'un vecteur champ tournant Compte tenu des relations entre les différentes grandeurs, il est possible d'étendre la notion de vecteur tournant à tout ensemble de grandeurs triphasées : [Is], [Φs], [Vs], [Φr],… 1.7 Transformation de Clarke L'idée de Clarke repose sur le fait qu'un champ tournant créé par un système triphasé peut l'être aussi par un système biphasé de deux bobines à π/2 équivalent, à condition que le champ ou les forces magnétomotrices et la puissance instantanée soient conservés. Ainsi, aux trois grandeurs triphasées xa, xb, xc, on associe le vecteur [X(s)] dans le référentiel (S) d'axes (α,β) fixe lié au stator (Figure 1.4). 16 Chapitre 1 Modélisation du moteur asynchrone triphasé β b KTxc 0 XH(s) KTxa a α KTxb c Figure 1.4 Représentation du vecteur champ tournant Le vecteur [X(s)] a pour expression : [X ] (s) où K T = 1 1 − x α 2 = = KT 3 xβ 0 2 1 x a 2 x 3 b − x 2 c − (1.1) 2 pour une représentation conservant la puissance. 3 Le nombre complexe associé aux composantes de ce vecteur s'écrit : 2π 4π j j X ( s ) = KT xa + xb e 3 + xc e 3 Pour obtenir une matrice de passage carrée et donc inversible, on ajoute une composante x0 fictive : [X ] (s) xα 2 = xβ = 3 x0 1 0 1 2 1 2 3 2 1 2 − 1 2 x a 3 − xb 2 1 xc 2 − Dans beaucoup de cas, le système de grandeurs triphasées est tel que la somme instantanée des grandeurs est nulle, ce qui permet d'annuler la composante homopolaire d'indice 0. Les relations inverses sont définies par : 17 Chapitre 1 Modélisation du moteur asynchrone triphasé 2 Réel[ X ( s ) ] xa = K 3 T 2π −j 2 3 x Réel [ X . e ] = ( ) s b 3 K T 4π −j 2 xc = Réel[ X ( s ) .e 3 ] 3K T (1.2) 1.8 Transformation de Park La transformation de Park permet d'exprimer le vecteur [X(s)] dans un référentiel tournant (T) d'axes (d,q) lié aux champs tournants : [X ] = xx = P(−θ ) xx α d (t ) cos θ s avec P (−θ s ) = − sin θ s q s β sin θ s , matrice de rotation d'angle -θs (Figure 1.5). cos θ s Le nombre complexe associé au vecteur [X(t)] s'écrit : X ( t ) = e − jθ s X ( s ) β d (T) q θs α, (a) 0 Figure 1.5 Position du système d'axes (d,q) 18 (S) Chapitre 1 Modélisation du moteur asynchrone triphasé 1.9 Modèle du moteur asynchrone Le choix d'un modèle de représentation, qu'il soit formel ou issu d'une identification se fait toujours en fonction du type de commande à réaliser. La machine est alimentée en tension : les composantes du vecteur de commande de l'équation d'état seront donc des tensions. Les différentes grandeurs seront, dans un premier temps, exprimées dans leurs repères respectifs. Un premier changement de variable permettra d'exprimer le flux Φ r (r ) dans le repère (α,β) fixe par rapport au stator. 1.9.1 Équations de base Les différents vecteurs sont, dans un premier temps, exprimés dans leurs repères biphasés respectifs : [V ] = R [I ]+ dtd [Φ ] s(s) s(s) s s(s) [V ] = R [I ]+ dtd [Φ ] r (r ) r (r ) r r (r ) [Φ ] = L [I ]+ L P( pθ)[I ] s(s) s s(s) m r (r ) [Φ ] = L [I ]+ L P(− pθ)[I ] r (r ) r r (r ) m s(s) où P(±pθ) est la matrice de rotation d'angle ±pθ qui permet le passage du repère (R) au repère (S) et θ la position du rotor, p le nombre de paires de pôles. L'angle pθ est l'angle électrique du rotor (R) par rapport au stator (S). L'utilisation de la représentation complexe permet de simplifier l'écriture : V s ( s ) = Rs I s ( s ) + d Φ s(s) dt (1.3) V r ( r ) = Rr I r ( r ) + d Φ r (r ) dt (1.4) Φ s ( s ) = Ls I s ( s ) + Lm e jpθ I r ( r ) (1.5) Φ r ( r ) = Lr I r ( r ) + Lm e − jpθ I s ( s ) (1.6) 1.9.2 Modèle exprimé dans le repère (α,β) lié au stator Nous avons, d'après (1.6) : 19 Chapitre 1 Modélisation du moteur asynchrone triphasé I r (r ) = [ 1 Φ r ( r ) − Lm e − jpθ I s ( s ) Lr ] D'où, après dérivation, o I r (r ) = 1 Lr o o o − jpθ Φ − L e I + L jp θ e − jpθ I s ( s ) r r ( ) ( ) s s m m (1.7) Les équations (1.3) et (1.5) donnent : o o o Ls I s ( s ) + j Lm p θ e jpθ I r ( r ) + Lm e jpθ I r ( r ) = V s ( s ) − Rs I s ( s ) o Remplaçons I r ( r ) par l'expression (1.7) : o o Ls I s ( s ) + j Lm p θ e jpθ I r ( r ) + o o Lm jpθ o e Φ r ( r ) − Lm e − jpθ I s ( s ) + jLm p θ e − jpθ I s ( s ) = V s ( s ) − Rs I s ( s ) Lr (1.8) Nous avons V r ( r ) = 0 (rotor en court-circuit), soit d'après (1.4), o I r (r ) Φ r (r ) =− Rr En remplaçant I r (r ) dans l'expression (1.6), o Φ r (r ) = − [ Rr Φ r ( r ) − Lm e − jpθ I s ( s ) Lr ] o (1.9) Nous avons alors, en remplaçant I r (r ) et Φ r (r ) par leurs expressions respectives dans (1.8) : L2 o Ls − m I s ( s ) = Lr o Rr Lm p θ Lm jpθ e Φ r(r ) − j − Lr Rr Lr o L p L L2 o θ R m r + j − m e jpθ Lm e − jpθ − j m p θ− Rs I s ( s ) Lr Rr Lr Lr + V s(s) Après simplifications, L2 o Ls − m I s ( s ) = Lr 20 Chapitre 1 Modélisation du moteur asynchrone triphasé o p θ jpθ Rr Lm 2 − j e Φ r (r ) Lr Lr 2 L − m2 Rr + Rs I s ( s ) Lr + V s(s) L2m appelé coefficient de dispersion. Posons σ = 1 − Ls Lr Nous obtenons alors : o I s(s) = Lm σLr Ls o Rr − jp θ e jpθ Φ r ( r ) − Lr Rs + Rr L2m L2r σLs I s(s) + V s(s) σLs L2m Rs + Rr 2 Lm Lr et γ = . Posons k = σLr Ls σLs o Nous avons également Ω = θ , vitesse mécanique et Tr = Lr constante de temps rotorique. Rr Nous pouvons alors écrire : o 1 I s ( s ) = − γ I s ( s ) + k − jpΩ + Tr jpθ 1 e Φ r ( r ) + Vs ( s ) σLs Soit le changement de repère : Φ r ( s ) = e jpθ Φ r ( r ) qui définit le flux rotorique dans le repère (α,β) fixe par rapport au stator. Dérivons cette équation : o o o Φ r ( s ) = jp θ e jpθ Φ r ( r ) + e jpθ Φ r ( r ) o En remplaçant Φ r (r ) par l'expression (1.9), nous obtenons : o o Φ r ( s ) = jp θ e jpθ Φ r ( r ) + Lm Soit, après regroupement, 21 Rr R I s ( s ) − r e jpθ Φ r ( r ) Lr Lr (1.10) Chapitre 1 Modélisation du moteur asynchrone triphasé o Φ r (s) = 1 Lm I s ( s ) − − jpΩ Φ r ( s ) Tr Tr (1.11) Nous obtenons finalement le système d'équations suivant : o 1 1 V s(s) I s ( s ) = − γ I s ( s ) + k − jpΩ + Φ r ( s ) + Tr σLs o Φ = Lm I − 1 − jpΩ Φ r (s) r (s) T s(s) T r r (1.12) Nous avons : I s ( s ) = isα + jisβ Φ r ( s ) = Φ rα + jΦ rβ et Nous pouvons alors écrire : k 1 o + Φ rα + kpΩΦ rβ + vsα i sα = − γisα σLs Tr k 1 o − γisβ − kpΩΦ rα + Φ rβ + vsβ i sβ = σLs Tr o 1 Φ rα = Lm i − Φ rα − pΩΦ rβ sα Tr Tr o Lm 1 Φ rβ = isβ + pΩΦ rα − Φ rβ Tr Tr (1.13) 1.9.3 Modèle exprimé dans le repère (d,q) lié au champ tournant Soient : Φ r ( t ) = e − jθ s Φ r ( s ) (1.14) V s ( t ) = e − jθ s V s ( s ) I s ( t ) = e − jθ s I s ( s ) Dérivons cette dernière équation : o o o I s ( t ) = e − jθ s I s ( s ) − j θ s e − jθ s I s ( s ) o En remplaçant I s ( s ) par son expression dans le système d'équations (1.12), nous obtenons : 22 Chapitre 1 Modélisation du moteur asynchrone triphasé o 1 1 − jθ s I s ( t ) = − γe − jθ s I s ( s ) + k − jpΩ e − jθ s Φ r ( s ) + e V s ( s ) − j θ s e − jθ s I s ( s ) σLs Tr o Nous pouvons alors écrire : o o 1 1 I s ( t ) = − γ + j θ s I s ( t ) + k − jpΩ Φ r ( t ) + V s (t ) σLs Tr De même, dérivons l'équation (1.14) : o o o Φ r ( t ) = e − jθ s Φ r ( s ) − j θ s e − jθ s Φ r ( s ) o En remplaçant Φ r ( s ) par l'expression (1.11), nous obtenons : o Φ r (t ) = o 1 Lm I s (t ) − − jpΩ + j θ s Φ r ( t ) Tr Tr Nous obtenons finalement le système d'équations suivant : o o 1 1 V s (t ) I s ( t ) = − γ + j θ s I s ( t ) + k − jpΩ Φ r ( t ) + σLs Tr o Φ = Lm I − 1 − jpΩ + j θo Φ s r (t ) r (t ) T s (t ) T r r (1.15) Il est possible de vérifier que si θ s = 0 , nous retrouvons le repère (α,β). Nous avons : I s ( t ) = isd + jisq et Φ r (t ) = Φ rd + jΦ rq o Si nous faisons l'hypothèse que la dynamique de la vitesse est lente ( Ω ≈ 0 ) devant celle des courants et des flux, nous pouvons alors écrire l'équation d'état linéaire suivante : o X = AX + BU avec : 23 Chapitre 1 Modélisation du moteur asynchrone triphasé −γ − ω s A= L m Tr 0 et ωs k Tr −γ − pΩk 0 Lm Tr − pΩk 1 σL k s Tr , B= 0 ωs − pΩ 0 1 0 − Tr 1 Tr − (ωs − pΩ ) 0 1 σLs 0 0 (1.16) isd i vsd sq , U = X = Φ rd vsq Φ rq 1.10 Expressions du couple électromagnétique instantané Une expression du couple électromagnétique exprimé à partir des différentes grandeurs exprimées dans le repère (α,β) peut être donnée par : Γe = p Lm (Φ rαisβ − Φ rβisα ) Lr (1.17) Dans le repère (d,q), l'expression devient : Γe = p Lm (Φ rd isq − Φ rqisd ) Lr Si nous choisissons le référentiel tournant (T) tel que Φ r ( t ) soit calé sur l'axe (d), nous avons Φ rq = 0 et Φ r ( t ) = Φ rd . Par la suite, nous utiliserons la notation suivante : Φ r = Φ rd Le couple électromagnétique est alors égal à : Γe = p Lm Φ r isq Lr L'équation mécanique du moteur s'écrit : J dΩ = Γe − Γr dt où Γr représente le couple résistant, incluant frottements et couple de charge. 24 (1.18) Chapitre 2 Commande vectorielle à flux rotorique orienté Chapitre 2 Commande vectorielle à flux rotorique orienté 2.1 Expression générale de la commande La commande vectorielle à flux rotorique orienté que nous mettons en œuvre est basée sur une orientation du repère tournant (T) d'axes (d,q) tels que l'axe d soit confondu avec la direction de Φr. Le flux Φr étant orienté sur l'axe d, l'équation d'état (1.16) nous permet d'exprimer vsd et vsq , o Φr et ωs avec Φ rq ≡ 0 et Φ rq ≡ 0 : o L2m L i − ωs σLs isq − m2 Rr Φ r v L i R R = σ + + sd sd s r 2 sd s Lr Lr 2 o vsq = σLs i sq + ωs σLs isq + Rs + Rr Lm isq + Lm pΩΦ r 2 Lr L2r o Tr Φ r + Φ r = Lmisd ω = pΩ + Lm isq s Tr Φ r (2.1) Ces expressions peuvent être exploitées telles quelles pour réaliser la commande vectorielle à flux orienté des machines asynchrones alimentées en tension mais vsd et vsq influent à la fois sur isd et isq donc sur le flux et le couple (Figure 2.1). Il est donc nécessaire de réaliser un découplage [2]. 25 Chapitre 2 Commande vectorielle à flux rotorique orienté f vsd→ isd vsd isd f isd→ flux flux isq f isq→ couple couple f vsd→ isq f vsq→ isd f vsq→ isq vsq couplages Figure 2.1 Description des couplages 2.2 Découplage entrée-sortie L'objectif est, dans la mesure du possible, de limiter l'effet d'une entrée à une seule sortie. Nous pourrons alors modéliser le processus sous la forme d'un ensemble de systèmes monovariables évoluant en parallèle. Les commandes sont alors non interactives. Différentes techniques existent : découplage utilisant un régulateur [5], découplage par retour d'état, découplage par compensation. Nous présentons ces deux derniers types de découplage. 2.2.1 Découplage par retour d'état Principe [3], [5] Soit le modèle : o X = AX + BU (2.2) Y = CX (2.3) où X ∈ ℜ , Y ∈ ℜ ,U ∈ ℜ , les matrices B et C sont de rang maximum et la sortie Y est n m m commandable, ce qui s'exprime par la relation : rang[CB, CAB,..., CAn −1 B ] = m 26 (2.4) Chapitre 2 Commande vectorielle à flux rotorique orienté L'objectif est de déterminer un retour d'état : U = KX + LW , W désignant le nouveau vecteur d'entrée (Figure 2.2), qui découple le système de façon à ce que la sortie Yi ne dépende que de l'entrée Wi. W L Uref U o X X B C Y A processus K Figure 2.2 Principe du découplage par retour d'état L'équation du système corrigé s'écrit : o X = ( A + BK ) X + (BL )W , Y = CX et la matrice de transfert entre l'entrée W et la sortie Y : T = C (s[I ] − ( A + BK ) ) BL avec Y = T ( s ).W −1 Il faut déterminer K et L telles que cette matrice de transfert soit diagonale. La résolution de ce problème n'est pas simple. Résolution Notons Ci la i-ème ligne de la matrice C. La commandabilité de la sortie scalaire yi s'exprime sous la forme : rang[Ci B, Ci AB,..., Ci An −1 B] = 1 La sortie Y du système étant commandable, il en est de même de yi, c'est à dire que si la condition (2.4) est vérifiée, alors, pour tout i dans {1,…,m}, il existe nécessairement un d i ∈ {0,1,..., n − 1} tel que : Ci Ad i B ≠ 0, ∀α ∈ N , α < d i , Ci Aα B = 0 Par dérivations successives des relations (2.2) et (2.3), nous obtenons pour la i-ème sortie : 27 Chapitre 2 Commande vectorielle à flux rotorique orienté y& i = Ci ( A + BK ) X + Ci BLW = Ci AX , = Ci A 2 X , &y&i = Ci A( A + BK ) X + Ci ABLW M ( di ) d i −1 d i −1 di yi = Ci A ( A + BK ) X + Ci A BLW = Ci A X , y ( d i+1 ) = C Ad i ( A + BK ) X + C Ad i BLW (Ci Ad i B ≠ 0) i i i Cette dernière équation, pour laquelle Ci Ad i B ≠ 0 , fixe la valeur de di. En écrivant cette relation pour chacune des sorties, nous obtenons : y1( d1 +1) C1 Ad1 +1 C1 Ad1 C1 Ad1 M M M M yi( di +1) = Ci Ad i +1 + Ci Ad i BK X + Ci Ad i BLW M M M M y ( d m +1) C Ad m +1 C Ad m C Ad m m m m m que nous pouvons mettre sous la forme : Y * = ( A* + B* K ) X + B* LW Si la nouvelle matrice d'application des entrées B* est inversible, le choix : K = −( B * ) −1 A* et L = ( B * ) −1 conduit à Y * = W , soit la relation entrées-sorties découplées : ∀i ∈ {1,..., m } , Yi ( s ) = 1 s d i +1 Wi ( s ) Application Reprenons l'équation d'état (1.16) avec un vecteur X de dimension 3, puisque Φ rq ≡ 0 et o Φ rq ≡ 0 . Nous avons : isd o X = AX + BU où X = i , sq Y = CX Φ rd −γ A = − ωs Lm T r 1 k σL ωs s Tr − γ − pΩk , B = 0 1 0 0 − Tr Le vecteur de sortie est donné par : isd isd Y = = C isq isq Φ rd 28 0 1 σLs 0 Chapitre 2 Commande vectorielle à flux rotorique orienté 1 0 0 La matrice d'observation s'écrit alors C = . 0 1 0 Nous avons : 1 σL s C1 B = [1 0 0] 0 0 0 1 1 = σLs σLs 0 1 σL s C2 B = [0 1 0] 0 0 0 1 = 0 σLs 0 0 ≠ 0 et 1 ≠0 σLs D'où d1 = d 2 = 0 Nous pouvons facilement déterminer A* et B* : C A −γ A = 1 = C2 A − ω s * k Tr − γ − pΩk ωs 1 C B σL B* = 1 = s C2 B 0 0 1 σLs Les matrices de gain K et L assurant le découplage sont donc les suivantes : γσLs K = ωs σLs soit L2m Rs + Rr 2 Lr K = ωs σLs − ωs σLs γσLs − σLs k Tr pΩkσLs − ωs σLs L2m Rs + Rr 2 Lr 29 Lm L2r L pΩ m Lr − Rr Chapitre 2 Commande vectorielle à flux rotorique orienté σL et L = s 0 0 σLs Nous obtenons le système découplé suivant : 1 1 y1 = w1 , soit isd = wsd s s 1 1 y2 = w2 , soit isq = wsq s s Or, Φr = Lm 1 isd − Φ r Tr Tr soit Φr = Lm wsd s(1 + Tr s ) o 2.2.2 Découplage par compensation Définissons deux nouvelles variables de commande vsd1 et vsq1 [8], [10] telles que : vsd = vsd 1 − esd et vsq = vsq1 − esq esd = ωs σLs isq + avec esq = −ωs σLs isd − et Lm Rr Φ r L2r Lm L2 ωs Φ r + m isq Lr LrTr Les tensions vsd et vsq sont alors reconstituées à partir des tensions vsd1 et vsq1 (Figure 2.3) : esd vsd vsd1 vsq vsq1 MAS + commande vectorielle esq Figure 2.3 Reconstitution des tensions vsd et vsq 30 flux couple Chapitre 2 Commande vectorielle à flux rotorique orienté Nous définissons ainsi un nouveau système (Figure 2.4) pour lequel : o L2m vsd 1 = σLs i sd + Rs + Rr 2 isd Lr 2 v = σL io + R + R Lm i sq sq s r s sq1 L2r (2.5) Les actions sur les axes d et q sont donc découplées. vsd1 vsq1 L2r σLs L2r s + Rs L2r + Rr L2m ) isd L2r σLs L2r s + Rs L2r + Rr L2m ) isq ( ( ) ( ) ( Figure 2.4 Commande découplée – Expression de isd et isq En faisant apparaître de manière explicite flux (2.1) et couple (1.18), nous obtenons : vsd1 Lm 1 σLs (s + γ )(Tr s + 1) Φr vsq1 pLm Φ r 1 σLs Lr (s + γ ) Γe Figure 2.5 Commande découplée – Expression de Φr et Γe 2.2.3 Problèmes posés par le découplage Nous pouvons montrer que, dans les deux types de découplage proposés, un risque d'instabilité existe si les paramètres du modèle évoluent et pose donc un problème de robustesse de la commande. Dans le cas du découplage par compensation, si celle-ci est correcte, toute action sur l'une des entrées ne provoque aucune variation de l'autre sortie. En revanche, une mauvaise compensation pourrait provoquer une évolution de cette dernière dans un sens tel qu'il y aurait renforcement de 31 Chapitre 2 Commande vectorielle à flux rotorique orienté l'action, et donc divergence du système. Une solution consiste, par exemple, à fixer a priori, un gain plus faible dans les fonctions de transfert compensatrices. C'est la technique que nous utiliserons pour l'implantation réelle de la commande. En pratique, les paramètres Rs, Rr évoluent avec la température. 2.3 Commande vectorielle à flux orienté 2.3.1 Schéma de principe A partir du modèle du moteur élaboré au chapitre 1 et des équations de découplage données au paragraphe 2.2, nous pouvons élaborer un schéma de principe de la commande vectorielle à flux rotorique orienté sur l'axe d (Figure 2.6). La position θs de l'axe d par rapport au stator est obtenue par intégration de la pulsation statorique ωs. vsd ref vsd 1ref Découplage vsq1ref vsqref Φ rref Φ̂ r Calcul Φr ωs isd isq isd isq ωs Transformation (d,q) → (α,β) vsα ref vsβref Transformation v sabc (α,β) → (a,b,c) ref θs Calcul θs,ωs isα Transformation (α,β) → (d,q) Transformation (a,b,c) → (α,β) i sabc isβ Figure 2.6 Schéma de principe d'une commande vectorielle 2.3.2 Calcul de Φr Les grandeurs d'état ou de sorties utilisées pour l'élaboration de la commande sont souvent difficilement accessibles pour des raisons techniques (c'est le cas du flux) ou pour des problèmes de coût. Le flux peut être reconstitué par : 32 Chapitre 2 Commande vectorielle à flux rotorique orienté – des estimateurs utilisés en boucle ouverte, – des observateurs corrigeant en boucle fermée les variables estimées. Les estimateurs reposent sur l'utilisation d'une représentation de la machine sous forme d'équation de Park définie en régime permanent (estimateur statique) ou transitoire (estimateur dynamique). Ils sont obtenus par une résolution directe des équations associées à ce modèle. L'intérêt d'une telle approche conduit à la mise en œuvre d'algorithmes simples et donc rapides. Toutefois, ils sont peu robustes aux variations paramétriques (résistance rotorique et statorique, mutuelle, etc.). ˆr : Le système d'équations (2.1) permet d'estimer le flux Φ ˆ r = Lm isd Φ 1 + Tr s (2.6) 2.3.3 Calcul de ωs et θs La pulsation statorique s'écrit, d'après (2.1) : ωs = pΩ + Lm isq ˆr Tr Φ L'équation n'est pas exploitable telle quelle puisque Φ̂ r est nul au démarrage du moteur. Nous utiliserons, pour l'implantation, l'équation suivante : ωs = pΩ + Lm isq ˆ r +ε Tr Φ avec ε = 0,01 . Nous avons alors : 1 θ s = ωs s De même, l'expression exploitable est la suivante : 1 θ s = ωs mod[2π] s 2.3.4 Schéma complet de la commande vectorielle directe à flux rotorique orienté Le schéma que nous proposons (Figure 2.7) est une commande vectorielle de type direct : le flux rotorique est asservi à une consigne de flux [2]. Une commande indirecte ne comporterait pas de régulateur de flux. Nous utilisons les estimateurs de flux et de pulsation statorique déterminés précédemment. 33 Chapitre 2 Commande vectorielle à flux rotorique orienté Les grandeurs mesurées dont nous avons besoin sont les suivantes : – vitesse Ω donnée par le codeur incrémental monté directement sur l'axe du moteur, – courants isa, isb, donnés par des sondes à effet Hall. Valim MAS isa transformation (a,b,c) → (d,q) MLI vsaref vsbref vscref θs isb isd θs isq transformation (d,q)→ (a,b,c) vsd ref ωs Φ rref estimateurs vsqref découplage vsd 1ref régulateur flux Φ̂ r Γe ωs θ s vsq1ref régulateur couple Φ̂ r Γe Φ̂ r ref régulateur vitesse Ω Ω ref Figure 2.7 Commande vectorielle directe de flux d'une machine alimentée en tension 34 DT Chapitre 2 Commande vectorielle à flux rotorique orienté 2.3.5 Calcul des régulateurs 2.3.5.1 Régulateur de flux Le découplage proposé Figure 2.5 permet d'écrire : Φr = avec K1 = K1 ( s + γ )( s + 1 ) Tr vsd 1 Lm . σLsTr Nous souhaitons obtenir en boucle fermée une réponse de type 2nd ordre. Soit un régulateur proportionnel-intégral classique de type : PI ( s ) = K p + Ki s Nous pouvons représenter le système en boucle ouverte par la Figure 2.8. s+ Φ rref K p1 K i1 K p1 vsd1 K1 s ( s + γ )( s + 1 ) Tr Φr Figure 2.8 Schéma en boucle ouverte Compensons le pôle le 1 régulateur, soit s + par Tr plus lent par le numérateur de la fonction de transfert de notre s + K i1 , ce qui se traduit par la condition : K p1 K i1 1 = K p1 Tr En boucle ouverte, la fonction de transfert s'écrit maintenant : BO( s ) = K p1 K1 s( s + γ ) L'équation caractéristique du système en boucle fermée est la suivante : 1+ γ K p1 K1 s+ s2 K p1 K1 que nous cherchons à identifier à la forme canonique du 2nd ordre. 35 (2.7) Chapitre 2 Commande vectorielle à flux rotorique orienté Nous avons donc à résoudre le système suivant : 1 1 K K = ω2 n p1 1 γ = 2ζ 1 K p1 K1 ωn Le gain K p1 est donné par : K p1 = γ2 2 K1 (2ζ1 ) (2.8) 1 K p1 Tr (2.9) L'équation (2.7) permet de déduire K i1 : K i1 = 2.3.5.2 Régulateur de couple De même, les équations de découplage proposées Figure 2.5 permettent d'exprimer Γe : Γe = avec K 2 = pLm Φ rref σLs Lr K2 vsq1 s+γ . Les paramètres du régulateur seront donc dépendants de la consigne de flux Φ rref . L'utilisation d'un régulateur proportionnel-intégral donne le schéma en boucle ouverte suivant (Figure 2.9) : s+ Γeref K p2 Ki 2 K p2 vsq1 s K2 s+γ Γe Figure 2.9 Schéma en boucle ouverte Compensons le pôle s + γ par s + Ki 2 , ce qui se traduit par la condition : K p2 Ki2 =γ K p2 36 (2.10) Chapitre 2 Commande vectorielle à flux rotorique orienté La fonction de transfert en boucle ouverte s'écrit maintenant : BO( s ) = K p2 K2 s En boucle fermée, nous obtenons une réponse de type 1er ordre de constante de 1 temps . K p2 K2 Pour un temps de réponse imposé t rep 2 ( 5%) , nous obtenons la condition suivante : 3 1 = t rep 2 ( 5%) K p2 K2 K p2 = 3 soit σLs Lr pLm Φ rref t rep 2 ( 5%) Et, d'après l'équation (2.10), : K i 2 = γK p 2 2.3.5.3 Régulateur de vitesse La chaîne de régulation de vitesse peut être représentée par le schéma fonctionnel suivant (Figure 2.10) : Γr couple résistant Régulateur de vitesse Ω ref Γ 1 Js + f Figure 2.10 Schéma fonctionnel de la régulation de vitesse Nous avons : Ω= 1 (Γ − Γr ) Js + f Dans le cas de l'utilisation d'un régulateur PI classique, Ω s'écrit alors : Ω= 1 K p3s + Ki3 1 (Ω ref − Ω ) − Γr Js + f s Js + f 37 Ω J : moment d'inertie ramené sur l'axe moteur f : frottements visqueux Chapitre 2 Commande vectorielle à flux rotorique orienté soit Ω= K p3s + Ki3 Js + ( K p 3 + f ) s + K i 3 2 Ω ref − s Γr Js + ( K p 3 + f ) s + K i 3 2 Cette fonction de transfert possède une dynamique du 2nd ordre. 1 En identifiant le dénominateur à la forme canonique , nous avons à résoudre le 2ζ s2 s+ 2 1+ ωn ωn système d'équations suivant : 1 J K = ω2 i3 n 2ζ 3 = K p 3 + f ωn Ki3 Pour un coefficient d'amortissement ζ3 de 1, nous avons ωnt rep 3 ≈ 4,75 , trep3 représentant le temps de réponse en vitesse du système (Tableau 2.1). ζ ωntrep(5%) 0,4 7,7 0,5 5,3 0,6 5,2 0,7 3 1 4,75 Tableau 2.1 Relation entre ωn, trep(5%) et ζ Les paramètres du régulateur PI sont alors les suivants : 4,75 K i 3 = J t rep 3 K = J 9,5 − f p3 t rep 3 38 2 Chapitre 2 Commande vectorielle à flux rotorique orienté 2.3.5.4 Application numérique Les paramètres du moteur donnés Tableau 3.1 permettent de calculer les valeurs des différents coefficients (Tableau 2.2). L'application numérique montre que la valeur du coefficient de frottement visqueux f est 9,5 . négligeable devant celle de J t rep 3 Il conviendra de s'assurer, lors des essais en simulation, que nous ne saturons pas la commande, c'est à dire que la norme de la tension statorique Vsdqref n'atteigne pas la valeur limite admissible (380 V). γ σ Tr(ms) Régulateur de flux 171,6 0,062 0,227 ζ1 Kp1 Ki1 0,4 0,5 0,6 691 442 307 3036 1923 1350 Régulateur de vitesse Régulateur de couple Φ rref (Wb) trep2 (ms) 50 0,21 Kp2 36,3 Ki2 0,85 40 0,26 45,4 0,7 225 991 ζ3 30 0,35 60,6 trep3(ms) Kp3 Ki3 500 4,18 19,8 Tableau 2.2 Paramètres des régulateurs 39 1 400 5,2 31 300 7 55,1 Chapitre 3 Plate-forme expérimentale Chapitre 3 Plate-forme expérimentale Le Laboratoire d'automatique de Grenoble dispose depuis 1994 d'un banc d'essais "Machine asynchrone" destiné à valider des algorithmes de commande dédiés. Leur implantation nécessite un environnement susceptible de permettre une mise en œuvre rapide et d'offrir une modularité importante. La solution retenue passe par l'utilisation d'un processeur de signal (le DSP TMS320C30 de TEXAS INSTRUMENTS) dont les programmes temps réel sont générés par le logiciel MATLAB et complété par des outils de compilation spécifiques au DSP (RTW, Real Time Workshop), et par des modules de pilotage de l'application, COCKPIT et TRACE. La représentation synoptique de la plate-forme est donné Figure 3.1 : PC 486 Matlab Simulink Protections et gestion des défauts Carte PWM Alcatel Génération de largeur d'impulsion _________ Génération de consigne (charge) DSP TMS320C30 Ta+ Interface et Isolement. Filtres Antirepliement Tc+ Db+ Dc+ Ia Ud Ib Ic DaTa- Tb- Db- Va Vb Vc Dc- Tc- Onduleur triphasé F=1kHZ Convertisseur à circulation de courant Acquisition de données Tb+ Da+ MOTEUR ASYNCHRONE P=7.5k Ω nom=1500 tr/mn Cnom=50N.m MACHINE A COURANT CONTINU P=7kW couplemètre Figure 3.1 Représentation synoptique de la plate-forme expérimentale du L.A.G.. 41 Chapitre 3 Plate-forme expérimentale Nous détaillerons dans ce chapitre la commande la structure électromécanique du banc, les organes de commande de la machine asynchrone et l'environnement de mesures. Les éléments de contrôle de la machine à courant continu sont détaillés en Annexe A. 3.1 Structure électromécanique 3.1.1 Description La structure électromécanique est constituée par : • Une machine asynchrone triphasée à cage d'écureuil d'une puissance de 7,5 kW. Cette puissance a été choisie pour sa capacité à simuler des moteurs de taille plus importante (de l'ordre de 50 kW). • Une machine à courant continu ventilée d'une puissance de 7,5 kW servant de charge variable associée à une dynamo tachymétrique pour l'asservissement local de vitesse. • Un codeur optique incrémental pour la mesure de vitesse de l'axe. • Un couplemètre à grande bande passante intercalé entre les deux machines ; il est relié aux moteurs par deux accouplements rigides en torsion et souples en flexion de manière à rattraper les défauts d'alignement. Accouplements D.T. Moteur à courant continu Moteur asynchrone Couplemètre Socle IPN rigide Figure 3.2 Structure électromécanique de la plate-forme 3.1.2 Principaux paramètres Le Tableau 3.1 donne les principaux paramètres du moteur asynchrone. 42 Codeur optique Chapitre 3 Plate-forme expérimentale Puissance nominale P 7,5 kW Vitesse nominale Ωn 1450 Couple nominal Γn 50 N.m Courant nominal In 16 A Résistance statorique Rs 0,63 Ω tr/min Résistance rotorique Rr 0,4 Ω Inductance mutuelle Lm 0,091 H Inductance statorique Ls 0,097 H Inductance rotorique Lr 0,091 H Vitesse maximale Ω Tension maximale (norme en repère V Inertie J 0,22 kg.m² Frottement visqueux f 0,001 N.s/rad Paire de pôles p 2 Couple i l de tr/min 380 V 35 A 1 Wb 45 N.m smax Courant maximal (norme en repère Flux maximal (norme en repère 200 Is max Φ r max Γ charge Tableau 3.1 Paramètres du moteur et valeurs maximales admissibles 3.2 Commande de la machine asynchrone 3.2.1 L'onduleur de puissance JIS 35 (Jeumont-Schneider) Cet onduleur triphasé de technologie bipolaire (Figure 3.3) [Annexe A], conçu à l'origine pour fonctionner de manière autonome en U/f, n'était pas utilisable pour le test de lois de commande avancées : il ne pouvait recevoir d'ordres en provenance d'un logiciel de contrôle. Ta Valim Tb Tc Va Ud 2 N 0 Ud 2 Vb Ta Tb Tc Figure 3.3 Onduleur triphasé 43 Vc Chapitre 3 Plate-forme expérimentale Le variateur a donc été modifié afin de recevoir des consignes en provenance d'un processeur de signal. 3.2.2 Pilotage de l'onduleur par la carte Alcatel PWM 3.2.2.1 Modulation de largeur d'impulsion La modulation de largeur d'impulsions est une technique de découpage de tension ou de courant permettant de générer des formes quasi sinusoïdales. L'objectif principal de cette technique est de régler l'amplitude et la fréquence du terme fondamental et de rejeter les harmoniques indésirables générées par une ondulation "pleine onde" vers les fréquences élevées, leurs amplitudes devenant alors négligeables. On démontre que plus le nombre d'angles de découpage est important, plus on annule d'harmoniques. Ainsi, pour trois angles calculés, la modulation est déjà performante et il est possible de supprimer les harmoniques de rangs 3 et 5 et régler la valeur efficace du fondamental. 3.2.2.2 Génération de référence Chaque bras du pont (Figure 3.3) est chargé de générer par modulation de largeur d'impulsion un signal dont le fondamental est le signal de référence. Il existe différents types de modulation : • MLI naturelle ou intersective : le calcul des instants de commutation se fait par intersection du signal de référence avec un signal triangulaire. • MLI avec contrôle d'amplitude : l'amplitude crête est constante et pour la valeur efficace du fondamental, on agit sur la largeur des impulsions. Pour maintenir U/f=Cte, il faut modifier la valeur des angles d'amorçage de la MLI pour chaque valeur de vitesse. Ceux-ci sont donc précalculés et stockés dans une mémoire. • MLI vectorielle : les instants de commutation sont calculés en ligne. Cette technique est utilisée par la carte PWM Alcatel ALCT01 (Figure 3.1), développée spécialement par la société dSPACE pour le compte d'Alcatel Alsthom Recherche et implantée sur la plate-forme du L.A.G. Il s'agit d'une carte client compatible PHS-Bus, le bus propriétaire des équipements dSPACE. Les principales caractéristiques de cette carte sont les suivantes : • • • • • six générateurs MLI indépendants, impulsions symétriques pour sortie triphasée sinusoïdale, tension, fréquence, déphasage programmables, fréquence de découpage 20 kHz, temps morts, retards à la mise en et hors circuit programmable, 44 Chapitre 3 Plate-forme expérimentale • transformation automatique du repère cartésien en repère polaire, • fonctionnement synchrone ou asynchrone sur toutes les voies. Les générateurs MLI sont basés sur un circuit spécialisé, le PBM 1/89, de la société Hanning [24]. Chaque circuit fournit trois voies MLI déphasées de 120° (Figure 3.4), à raison de deux signaux (On et Un) par voie. Une étude détaillée de la modulation du PBM 1/89 a été réalisée [6]. Elle conclut à une modélisation de type modulation sinusoïdale simple avec un harmonique de rang 3. Les sorties On pilotent les branches supérieures du pont de puissance de l'onduleur et les sorties Un sont conçues pour piloter les branches inférieures. Figure 3.4 Modulation PBM 1/89 3.2.2.3 Gestion des impulsions Le PBM 1/89 prévoit le paramétrage des durées minimales de conduction et de temps de garde. Néanmoins, cette mise en œuvre n'est pas apparue suffisamment fiable pour permettre d'envoyer directement ces impulsions sur les transistors. Les signaux Un ne sont donc pas utilisés. Une interface de protection a été réalisée (Figure 3.5). En pratique, les trois signaux O1, O2, O3 de commande sont calibrés pour que les impulsions présentent une durée minimale (400 µs, signaux S11, S12, S13) [14]. Toutefois, ces durées ne sont pas appliquées en raison de la technologie bipolaire de l'onduleur. Ce paramètre prendrait toute son importance avec des transistors de type MOS. 45 Chapitre 3 Plate-forme expérimentale ALCT 01 Signaux PBM 1/89 O2 O3 Défauts variateur Ordres de marche T1 S11 O1 Durée minimale d'impulsions S12 T'1 Application des temps de garde S13 Gestion marche/arrêt et défauts T2 T'2 Buffer 6 Ta,b,c Ta,b,c T3 T'3 Déblocage impulsions Figure 3.5 Interface commande - puissance L'application des temps de garde consiste à partir du signal S11 à générer un signal S11r retardé de la valeur du temps mort (25 µs). Les signaux de commande T1 et T'1 du transistor Ta et de son complémentaire sont alors obtenus par les opérations logiques suivantes : S11 final = ( S11.S11r ) S 21 final = ( S11 + S11r ) La Figure 3.6 donne une représentation de cette équation. Les signaux prêts à être appliqués aux transistors sont alors stockés dans un buffer. Une logique de contrôle veille au blocage des impulsions pendant la séquence de démarrage et interrompt la commande en cas de défaut sur le banc d'essai. 46 Chapitre 3 Plate-forme expérimentale TMLI S11 S11r Temps morts temps T1= S11.S11r T'1= S11.S11r Figure 3.6 Génération des temps morts 3.2.2.4 Problèmes liés à la modulation de largeur d'impulsion Si l'on considère le fonctionnement logiciel et matériel de l'ensemble carte DSP DS1002 carte Alcatel (Figure 3.7), on constate que : • L'algorithme de commande est séquencé par une horloge (timer1) qui envoie des interruptions au processeur. La fonction appelée isr_t1 assure la mise à jour du modèle du contrôleur et le calcul des sorties. • La carte de génération de la MLI appelle le processeur de manière périodique (intc04) mais indépendante de isr_t1. 47 Chapitre 3 Plate-forme expérimentale O1 O2 O3 PBM 1/89 int_c04 TMS320C30 TRACE isr_t1 Horloge PWM Horloge commande Timer1 ALCT01 DS1002 COCKPIT PC Figure 3.7 Contrôle des interruptions – Cartes ALCT01 et DS1002 La génération de MLI fonctionne donc de manière asynchrone par rapport à l'algorithme de commande. Les conséquences sont les suivantes : • un déphasage supplémentaire dû au blocage par la MLI venant s'ajouter au bloqueur d'ordre 0 en sortie de régulateur numérique, • une différence de période des deux bloqueurs dans la mesure où les horloges de référence sont générées à partir de deux quartz différents. Des relevés ont été effectués [6] qui mettent en évidence les harmoniques perturbateurs, essentiellement de rang 2, générés par ce type de fonctionnement, en particulier sur les courants de phase. Ce fonctionnement entraîne de plus des retards qui sont préjudiciables à la robustesse de l'algorithme, ainsi qu'un aléa quant à la valeur de ce retard. Un solution logicielle a été élaborée pour résoudre ce problème d'asynchronisme : utiliser l'interruption int_c04 pour contrôler l'algorithme de commande [14]. Elle est schématisée par la Figure 3.8. • L'interruption PBM 1/89 (int_c04) est appelée toutes les 500 µs. • Une fois sur deux, le timer 1 est réarmé pour lancer isr_t1 une milliseconde plus tard, ce qui synchronise les deux algorithmes. 48 Chapitre 3 Plate-forme expérimentale TMLI TMLI TMLI Int_c04 ∆1 ∆1 ∆1 Décomptage timer1 Isr_t1 Tr T calcul DSP TMLI : Période de calcul de la MLI Tr : Retard dû au temps de calcul et de transfert vers la MLI ∆1 : Intervalle de temps entre la fin du calcul et la prise en compte de la donnée par la MLI Figure 3.8 Synchronisation des algorithmes MLI – Commmande 3.2.2.5 Adaptation de la carte Alcatel La fréquence de MLI utilisée actuellement (1 kHz) limite le temps d'exécution total du programme implanté sur le DSP à environ 800 µs. Certaines commandes, gourmandes en temps de calcul (notamment le DTC), nécessitent une période de MLI plus faible. Nous avons donc modifié la carte Alcatel ALCT 01 en ajoutant un diviseur de fréquence à l'horloge de base distribuée aux circuits PBM 1/89 par l'intermédiaire des drivers de ligne 74BCT2245 [22]. Le schéma fonctionnel de la carte d'adaptation est proposé Figure 3.9. Quatre diviseurs sont disponibles : 1, 2, 4 et 8. La sélection peut être effectuée directement sur la carte par straps ou par deux inverseurs situés sur la face arrière du boîtier PX20. Pour une fréquence de MLI fixée à 500 Hz, les inverseurs A et B doivent être en position "L" (diviseur par 2). L'utilisation d'un multiplexeur évite le passage des signaux d'horloge par des circuits de commutation mécaniques et limite ainsi la sensibilité de l'ensemble aux parasites. 49 Chapitre 3 Plate-forme expérimentale Le schéma électronique complet est fourni en Annexe C. H Horloge ALCT01 20 MHz /2 E0 /4 E1 /8 E3 B0 A0 Vers PBM 1/89 Y Driver E4 Diviseur Multiplexeur A7 B7 Sélection diviseur Figure 3.9 Adaptation horloge carte ALCT 01 3.3 Environnement de mesures 3.3.1 Instrumentation du banc La commande des moteurs asynchrones nécessite généralement la mesure : • des courants statoriques (deux des trois phases étant instrumentées, la troisième obtenue par soustraction), • de la vitesse (la suppression de ce capteur motive d'ailleurs de nombreuses recherches). Le banc d'essai a néanmoins été instrumenté avec d'autres capteurs qui permettent une meilleure évaluation du comportement du procédé (Figure 3.10) : • capteurs de tensions (tensions stator, Ur tension redressée onduleur, Ua tension d'induit MCC), • capteurs de courant Ia, courant d'induit MCC et Ir courant redressé onduleur, • capteur de couple mécanique sur l'arbre moteur, • capteurs de flux Φsa, Φsb, • capteur de couple électromagnétique Γe Une possibilité de pilotage du moteur asynchrone en U/f à partir du DSP via la carte de sortie DS2101 a également été prévue. 50 Chapitre 3 Plate-forme expérimentale Gestion modes marche/arrêt Carte DSP DS1002 Consignes Vitesse/couple Consigne U/f Carte PWM ALCT01 ONDULEUR VARIATEUR MCC Carte CNA DS2101 Ir, Ur Isa, Usa Isb, Usb Ia, Ua Iex Ωana Γm Carte filtre Φsa,Φsb,Γe Carte CAN DS2002 Carte codeur DS3001 D.T. MCC Codeur optique Couplemètre MAS Figure 3.10 Instrumentation du banc 3.3.2 Capteurs 3.3.2.1 Capteur de flux et de couple électromagnétique L'une des difficultés de la commande du moteur asynchrone réside dans la nécessité de reconstruire les flux qui ne sont pas mesurés dans la pratique. Dans le but d'évaluer la performance des observateurs et des contrôleurs réalisés par certains utilisateurs du banc, il est paru souhaitable de disposer d'une information sur les flux effectivement créés dans le moteur. Une solution simple a été mise en œuvre au laboratoire : elle consiste à insérer sous les pôles du stator des spires de mesure de la tension induite, ce qui permet par intégration de reconstruire le flux statorique. Cette technique pose toutefois deux types de problèmes : • L'intégration du signal de mesure est en pratique réalisée à l'aide d'un filtrage passe-bas. Il en résulte que les mesures ne seront exploitables que pour des fréquences de signaux, et donc de vitesse rotorique, suffisante. 51 Chapitre 3 Plate-forme expérimentale • La mesure est dépendante de la réalisation technologique de l'enroulement de mesure (emplacement du brin dans l'encoche). La connaissance des flux statoriques permet aisément de construire une image du couple électromagnétique à l'aide de la formule : Γe = 3 (Φ bia − Φ a ib ) où Φ a , Φ b et ia, ib sont des grandeurs par phase. 3.3.2.2 Capteur de vitesse La vitesse est évaluée par dérivation de la position fournie par un codeur optique. L'interface logicielle doit prendre en compte le dépassement de capacité du registre mémorisant la position. 3.4 Evaluation des retards 3.4.1 Retards dus à l'onduleur et au temps de calcul Le retard statistique dû à l'onduleur est en moyenne équivalent à une demi-période d'échantillonnnage. Le retard dû au temps de calcul est illustré par la Figure 3.11. Sortie du procédé t Calcul commande fin de calcul t0 Commande t1 fin de calcul t0+Te t1+Te t0+2Te t t1+2Te t Figure 3.11 Retard dû au temps de calcul 52 Chapitre 3 Plate-forme expérimentale Le retard est théoriquement équivalent à une période d'échantillonnage. Toutefois, compte tenu des caractéristiques particulières du circuit PBM 1/89, il peut dans certains cas être réduit à une demi-période d'échantillonnage. Ces retards devront être pris en compte lors de la simulation (Figure 3.12). Vsα Bloqueur ordre 0 Retard temps de calcul Retard PBM 1/89 e-T s e-T /2.s e e. Vsβ Echantillonnage Modèle moteur asynchrone Filtre anti-repliement Mesures Figure 3.12 Présentation synoptique des différents retards 3.4.2 Retards dus au filtrage des mesures Les mesures sont échantillonnées et destinées à un traitement numérique. Elles sont donc soumises au problème de repliement de spectre. Les convertisseurs numériques-analogiques sont donc précédés de filtres anti-repliement (Figure 3.12). Or, ces filtres génèrent des retards de phase incompatibles avec les dynamiques demandées et conduisent à l'instabilité à haute vitesse. Il faudra donc tenir compte de leur présence dans la synthèse de la commande. Afin de compenser les déphasages induits, il est nécessaire d'identifier correctement le filtre utilisé. Identification du filtre anti-repliement Le circuit MAX280 fabriqué par Maxim [25] est un filtre passe-bas du 5e ordre qui a été choisi pour son absence d'offset et sa bande passante (jusqu'à 20 kHz). Toutefois, la technologie utilisée (4e ordre à capacité commutée associé à un circuit RC) ne permet pas a priori de connaître son comportement précis dans la bande de fréquence qui nous intéresse. L'analyse des courbes de Bode du MAX280, relevées à partir d'essais en laboratoire, a permis d'assimiler le comportement du circuit à celui d'un filtre de Butterworth du 5e ordre (Figure 3.13), à la condition de choisir le couple (R,C) tel que [25] : fc 1 = 1,62 2πRC 53 Chapitre 3 Plate-forme expérimentale Un mauvais réglage du filtre RC entraîne une résonance près de la fréquence de coupure. 0 -2 -4 Phase (deg) -6 -8 -10 -12 -14 -16 -18 -20 0 50 100 150 200 250 Frequence (rad/sec) 300 350 en continu : relevé (fréquence,phase) du MAX280 pour fcoupure=500 Hz et fclk=50 kHz en pointillé : filtre de Butterworth du 5e ordre théorique Figure 3.13 Courbes MAX280 et filtre de Butterworth du 5e ordre Dans la bande de fréquence qui nous intéresse, c'est à dire jusqu'à ω = ωs ≈ pΩnom (p nombre de paires de pôles, Ωnom = 1500 tr/mn) soit 300 rad/s, nous avons la relation linéaire suivante : Pour le MAX280 : ϕdeg ≈ −0,063.ωs , soit ϕ rad ≈ −1,1.10 −3.ωs Pour le filtre de Butterworth théorique : ϕdeg ≈ −0,059.ωs , soit ϕ rad ≈ −1,03.10 −3.ωs Ces équations seront utilisées pour le passage des repères (α,β) à (d,q), en simulation et dans les schémas temps réels implantés sur le banc. 3.5 Environnement dSPACE Le système informatique dSPACE est construit autour du processeur de signal TMS320C30 de la société Texas Instruments.. L'unité centrale DS1002 est située dans un coffret type PX20, qui peut être considéré comme une extension du PC (Figure 3.14). Les échanges d'informations entre la carte DS1002 et les autres cartes d'interface sont réalisés par l'intermédiaire du bus rapide PHS-Bus (16,6 MB/s) déjà mentionné. 54 Chapitre 3 Plate-forme expérimentale DS1002 Unité centrale DSP DS2101 Sorties analogiques DS2002 Entrées analogiques DS3001 Codeur incrémental Carte d'extension DS4001 Entrées-sorties numériques PHS-Bus ALCT01 Alcatel PWM PC Coffret PX 20 Figure 3.14 Environnement dSPACE Les principales caractéristiques des cartes d'interface sont les suivantes : • Carte DS2101 – Sorties analogiques – 5 convertisseurs N/A 12 bits parallèles, – 3 µs de temps d'établissement à ± 0,01% de la pleine échelle, – gammes de tension de sortie programmables, • Carte DS2002 - Entrées analogiques – deux convertisseurs A/N 16 bits séparés avec chacun 16 voies multiplexées, – résolution programmable : 4, 8, 12, 16 bits, – temps de conversion :1,5- 2,7-3,8- 5 µs suivant la résolution demandée, – gammes de tension d'entrée programmables : ± 5 V, ± 10 V. 55 Chapitre 3 Plate-forme expérimentale • Carte DS3001 - Codeur incrémental – 5 voies codeur indépendantes, – entrées différentielles (RS 422) ou simples (TTL), – résolution : 24 bits, – fréquence de comptage maximum : 5 MHz, – multiplication par 4, – étage filtre du 4ème ordre. • Carte DS4001 -Entrées-Sorties numériques – 32 E/S compatibles TTL, configurables en entrée ou en sortie par blocs de 8, – 5 compteurs/timers 16 bits indépendants avec possibilité d'interruptions, – base de temps 5 Mhz avec 200 ns de résolution. 56 Chapitre 4 Simulation de la commande vectorielle Chapitre 4 Simulation de la commande vectorielle 4.1 Présentation de l'environnement MATLAB/SIMULINK™ MATLAB est un logiciel destiné principalement au calcul scientifique, à la modélisation et à la simulation [15]. Le noyau de calcul est associé à l'environnement SIMULINK, permettant une modélisation basée sur des schémas-blocs [16]. Des bibliothèques spécialisées sont disponibles (les "Toolboxes") pour la plupart des domaines scientifiques nécessitant des moyens de calcul importants : automatique, traitement de signal, mathématiques appliquées, télécommunications, etc. Des modules temps réel, développés autour des produits dSPACE (Real Time Interface, TRACE, COCKPIT) sont également proposés et rendent l'environnement de travail particulièrement attractif : l'utilisateur dispose en effet de tous les outils nécessaires à l'élaboration d'une application sur procédé réel, de la simulation à la supervision. Les simulations proposées sont réalisées sous MATLAB version 4.2.c1. Le passage aux versions 5.x nécessite quelques adaptations mineures (en particulier la recompilation des Sfunctions écrites en C). 4.2 Modélisation sous MATLAB/SIMULINK 4.2.1 Introduction aux S-Functions L'élaboration d'un algorithme sous MATLAB/SIMULINK est basée sur une description arborescente par schémas-blocs. Chaque bloc fonctionnel peut être décrit de trois manières : • graphiquement. C'est la méthode la plus courante et la plus facile à utiliser (Figure 4.1). 57 Chapitre 4 Simulation de la commande vectorielle x(n+1)=Ax(n)+Bu(n) y(n)=Cx(n)+Du(n) Signal Generator Discrete State-Space Mux Scope Mux Figure 4.1 Représentation graphique sous Simulink • par une S-function (fonction système) écrite en langage MATLAB standard. L'avantage de ce type de description est la simplicité. Par contre, la simulation est plus lente et, surtout, une S-function de ce type n'est pas compilable par le module temps réel Real Time Workshop (RTW). • par une S-function écrite en langage C. Celle-ci doit être compilée avant utilisation (fonction cmex). Elle a pour principales caractéristiques une écriture plus complexe, une simulation rapide et une compatibilité avec RTW. La Figure 4.2 illustre le lien entre un bloc S-function, sa boîte de dialogue et le fichier source définissant la fonction réalisée par le bloc. Fichier source S-function Fichier C MEX ou Fichier Matlab Figure 4.2 Lien entre S-function et fichier source 58 Chapitre 4 Simulation de la commande vectorielle L'utilisation de S-functions est incontournable pour la description de processus complexes, difficilement représentables graphiquement ou encore pour les systèmes modélisés sous forme de jeu d'équations. Pour la modélisation du moteur asynchrone, nous utiliserons donc des S-functions écrites en C. Nous utilisons le compilateur WATCOM C/C++ v11, lancé sous MATLAB 4.2c.1 par la commande !cmex. Un fichier C-MEX est généré (Figure 4.3). Celui-ci pourra être appelé par la Sfunction correspondante. Fichier moteur.C commande !cmex sous Matlab Compilateur Watcom Fichier moteur.MEX Figure 4.3 Génération d'un fichier C-MEX 4.2.2 Fonctionnement d'une S-Function Tout bloc S-function contenu dans un schéma Simulink possède les caractéristiques suivantes [17] : un vecteur d'entrée u, un vecteur de sortie y et un vecteur d'état x (Figure 4.4). état x entrée u sortie y Figure 4.4 Fonctionnement d'une S-function Le vecteur d'état peut être discret, continu ou une combinaison des deux. Les vecteurs u, x et y sont définis de la manière suivante : y = f o (t , x, u ) (sortie) xd k +1 = f u (t , x, u ) (mise à jour) x&c = f d (t , x, u ) (dérivée) avec xc x= xd k +1 59 Chapitre 4 Simulation de la commande vectorielle En cours de simulation, SIMULINK appelle à chaque itération les blocs S-functions et demande un calcul des sorties, une mise à jour des états discrets ou un calcul des dérivées. Des routines complémentaires assurent une initialisation et une sortie correctes des différentes tâches. Dans le cas d'une S-function écrite en langage MATLAB (M-file) , ces appels sont gérés par le contenu du paramètre flag dans la fonction appelante. Pour une S-function écrite en C, les appels sont gérés différemment comme le montre le Tableau 4.1 : ils font appels à des routines indépendantes. Etat simulation C Mex-file Function M-File Flag Initialisation mdlInitializeSizes, mdlInitializeSampleTimes, mdlInitializeConditions Flag = 0 Calcul des sorties mdlOutputs Flag = 3 Mise à jour mdlUpdate Flag = 2 Calcul des dérivées mdlDerivates Flag = 1 Fin de simulation mdlTerminate Flag = 9 Tableau 4.1 Appel des routines liées aux S-functions 4.2.3 Modèle du moteur asynchrone A partir du modèle du moteur, une S-function, basée sur le programme 'moteur.c' (appel à 'moteur.mex' après compilation), a été développée. L'accès à cette S-function dans un schéma SIMULINK est possible par l'utilisation d'un bloc dédié (Figure 4.5). Ce bloc est constitué lui-même de sous-blocs contenant l'appel à la S-function 'moteur.mex', les fonctions de multiplexage et démultiplexage, et les ports correspondants [16]. Les entrées du bloc sont les suivantes : vsα , vsβ et Γr, couple résistant. Seules les sorties Ω, Γe, isα , isβ seront utilisées dans notre application. 60 Chapitre 4 Simulation de la commande vectorielle Phisalpha Vsalpha Commande Unmask sous SIMULINK Phisbeta Phiralpha Phirbeta Vsbeta 1 Phisalpha Sous-système moteur (Subsystem) omega Ce 2 Phisbeta isalpha Cr 3 Phiralpha isbeta 1 Vsalpha_ref moteur 2 Vsbeta_ref Bloc modèle moteur asynchrone 3 Cr1 Mux moteur S-Function Demux 4 Phirbeta 5 omega 6 Ce Mux Demux 7 isalpha 8 isbeta Accès au passage de paramètres Accès à la définition de la S-function Figure 4.5 Bloc modèle moteur asynchrone Le listage du programme 'moteur.c' est donné en Annexe D. 4.3 Structure des principaux blocs de simulation A partir de l'étude théorique de la structure de la commande vectorielle à flux rotorique orienté du Chapitre 2, nous pouvons élaborer les différents blocs nécessaires à une simulation du procédé. Le schéma d'ensemble est donné en Annexe E. 4.3.1 Bloc régulateurs et découplages Compte tenu de la valeur limite de la norme de la tension statorique évoquée au §2.3.5.4, les saturations sur Vsd_ref et Vsq_ref sont fixées à ± 350 V (Figure 4.6). 61 Chapitre 4 Simulation de la commande vectorielle 1 isq_mes * -K- 2 ws sigma*Ls 3 Phir_est + + Sum 1 femd -KLm*Rr/Lr^2 Compensation Femd Compensation Femd 1 Phir_ref + Sum Vsd1 PID Régulateur flux 2 Phir_est 6 ws 5 isq_mes Vsd_ref_ + Sum1 Saturation 1 Vsd_ref cem_ref To Workspace2 3 omega_ref Ce_ref + PID Sum2 Régulateur vitesse 8 omega + Sum3 PID Vsq1 + 2 Régulateur couple pour Phi_ref fixé Sum4 Saturation1 Vsq_ref 4 Ce_mes 7 isd_mes Régulateurs+décou Compensation Femq Régulateurs+découplage 1 isd_mes * -K- 3 ws 2 Phir_est 4 isq_mes sigma*Ls * + Sum -KLm/Lr -K- Lm^2/Lr/Tr Compensation Femq Figure 4.6 Bloc Régulateur + découplages 62 1 femq Chapitre 4 Simulation de la commande vectorielle 4.3.2 Blocs transformations (d,q)→ (α,β) et (α,β)→ (d,q) Le modèle du moteur exprimé dans le repère (d,q) présenté §1.9.3 nous permet de construire facilement les différents blocs de changement de repères (Figure 4.7, Figure 4.8). Vsd_ref Vsalpha_ref Vsq_ref Vsbeta _ref theta_s Transformation d,q->alpha,beta 1 Vsd_ref 2 Vsq_ref 3 theta_s Mux cos(u[1]) cos theta sin(u[1]) sin theta -1 f(u) 1 park -theta(d) Vsalpha_ref f(u) 2 park -theta(q) Vsbeta_ref Figure 4.7 Bloc transformation (d,q) → (α,β) 63 Chapitre 4 Simulation de la commande vectorielle isalpha_mes isd_mes_ isq_mes_ Analog Butterworth 5e ordre theta_s ws Transformation alpha,beta -> d,q avec compensation isbeta_mes Analog Butterworth 5e ordre1 1 isalpha_mes_filtré 2 isbeta_mes_filtré 3 theta_s cos theta sin(u[1]) park theta(q) sin theta -1.03e-003*u[1] psi_f=f(ws) psi_f Mux cos(psi_f) 1 Switch isd_mes f(u) rotation isd f(u) rotation isq cos(u[1]) 4 ws -1 constante isd_f f(u) park theta(d) isq_f f(u) Mux cos(u[1]) 2 isq_mes Switch1 Switch : si 0 -> pas de compensation si -1 -> compensation sin(u[1]) sin(psi_f) Transformation alpha,beta -> d,q avec compensation du déphasage par rotation du vecteur tournant Figure 4.8 Bloc transformation (α,β) → (d,q) et filtres sur les courants 64 Chapitre 4 Simulation de la commande vectorielle 4.3.3 Bloc calcul ωs, θs La Figure 4.9 illustre le bloc calcul (ωs,θs). La constante présente au dénominateur de la ˆ r = 0 , c'est-à-dire au démarrage du fonction f(u) permet de rendre le calcul possible quand Φ moteur. Le bloc "Intégration modulo 2pi" est l'expression du calcul de θs proposé §2.3.3. isq_mes theta_s Phir-est ws omega Calcul ws,theta_s + Lm/tr 1 isq_mes * f(u) 1 theta_s + Integration modulo 2pi p 2 Phir_est 3 omega Sum 2 ws 1 in_1 1/s Reset Integrator f(u) [0 2pi] 1 out_1 f(u) reste Figure 4.9 Bloc calcul ωs,θs 65 Chapitre 4 Simulation de la commande vectorielle 4.3.4 Génération des consignes • Des filtres destinés à adoucir les commandes sont appliqués sur les générations de consigne de vitesse et de flux. Ils seront destinés essentiellement au schéma d'implantation. Ω ref 1 2 Φ rref s s + +1 400 10 Figure 4.10 Filtres de génération de consigne – pôles à –20 • Le flux est fixé à 0,85 Wb (ne pas dépasser 1 Wb). Il a été fixé à cette valeur pour permettre la comparaison des résultats avec des benchmarks antérieurs. • L'accélération en vitesse maximale applicable a été estimée par la relation suivante : 2 & JΩ max ≈ Γemax , avec J = 0,22 kg .m et Γemax ≈ 50 N .m soit, 2 & Ω max ≈ 200 rad/s Cette valeur définit le "Slew rate" utilisé dans les schémas Simulink. 4.3.5 Visualisation des courbes de réponse En cours de simulation, il est possible de visualiser les courbes de réponse par l'utilisation des blocs 'Scope'. L'exploitation ultérieure des courbes est réalisée à l'aide des blocs "To Workspace". Ils nécessitent, pour notre usage, le stockage du vecteur temps dans une variable Time utilisée pour le tracé des courbes. Un programme MATLAB permet d'afficher les différents couples de vecteurs (Figure 4.11). 66 Chapitre 4 Simulation de la commande vectorielle Exemple de programme de visualisation sous Matlab w w_mes To Workspace1_ omega figure(1); subplot(2,1,1); cem To Workspace2_ Ce_mes plot(time,isalpha);grid on; isalpha_mes_ isbeta_mes_ title('isalpha'); isalpha subplot(2,1,2); isalpha To Workspace3 moteur plot(time,isbeta);grid on; title('isbeta'); isbeta figure(2); isbeta To Workspace4 axis([0 9 –200 200]); plot(time,w_mes,'r');grid on; title('Vitesse mesurée'); Clock time To Workspace Figure 4.11 Blocs visualisation des courbes et programme MATLAB associé 4.4 Résultats de simulation 4.4.1 Aspects pratiques Le lancement de la simulation nécessite la prise en compte des procédures suivantes : – Mise à jour de constantes et de vecteurs ainsi que la déclaration de variables. Le listage des programmes MATLAB correspondants ('majn' et 'Data_focn') est proposé en Annexe D. – Définition des paramètres de simulation SIMULINK. Nous avons travaillé avec l'algorithme d'intégration 'Runge-Kutta 5', qui donne les meilleurs résultats pour notre application. Le pas d'itération minimal a été fixé à 1.10-4, pour une valeur maximale de 1.10-3 (Figure 4.12). 67 Chapitre 4 Simulation de la commande vectorielle Figure 4.12 Définition des paramètres Simulink 4.4.2 Définition des profils de régulation et poursuite • En régulation de vitesse, nous proposons le benchmark suivant (Figure 4.13a) : la vitesse de rotation étant fixée à 150 rad/s (vitesse nominale), un couple résistant positif, puis négatif de 30 N.m est appliqué. • En poursuite, la vitesse est amenée à 150 rad/s en 1 s, puis à –150 rad/s en 2 s. Un couple résistant de 30 N.m est appliqué (Figure 4.13b). Référence flux rotorique (Phir_ref) Référence flux rotorique (Phir_ref) 1.1 1.1 1 0.9 [Wb] [Wb] 1 0.9 0.85 0.8 0.7 0.8 0.7 0.6 0.6 0.5 0.5 0 0.5 1 1.5 [s] 2 2.5 3 Référence vitesse (omega_ref) 0 2 6 [s] Référence vitesse (omega_ref) 4 8 200 150 [rad/s] [rad/s] 100 100 50 -100 0 -50 0 0 05 1 15 2 25 3 -200 0 2 4 (b) (a) Figure 4.13 Profils de régulation de vitesse et de poursuite 68 6 8 Chapitre 4 Simulation de la commande vectorielle 4.4.3 Résultats en régulation de vitesse Les résultats sont illustrés par les figures (4.14) et (4.15) (profil de la Figure 4.13a). Paramètres des régulateurs : • Flux : Kp1 = 691, Ki1 = 3036 ( ζ1 = 0,4 ) • Couple : Φ rref = 0,85 , Kp2 = 0,21, Ki2 = 36,3 (trep2 = 50 ms) • Vitesse : Kp3 = 4,18, Ki3 = 19,8 (trep3 = 500 ms) Figure 4.14 Résultats en régulation de vitesse (simulation) 69 Chapitre 4 Simulation de la commande vectorielle Figure 4.15 Erreurs de régulation (simulation) • La régulation de vitesse en simulation est correcte : le dépassement maximal est de l'ordre de 7% et le temps de réponse ne dépasse pas 250 ms. • La norme de tension statorique de commande reste inférieure à 300 V. • La norme de courant statorique ne dépasse pas 30 A. 4.4.4 Résultats en poursuite Les figures (4.16) et (4.17) illustrent les résultats en poursuite (profil de la Figure 4.13b). • La poursuite en vitesse est satisfaisante : le dépassement maximal est de l'ordre de 3,5 % et le temps de réponse ne dépasse pas, là encore, 250 ms. • La valeur maximale de la norme de la tension statorique est de 300 V environ. • La norme de courant statorique dépasse 40 A, valeur qu'il s'agira de surveiller lors de l'implantation temps réel. Conclusion Les résultats de simulation valident la commande proposée et permettent d'envisager une implantation sur le banc. 70 Chapitre 4 Simulation de la commande vectorielle Paramètres des régulateurs : • Flux : Kp1 = 691, Ki1 = 3036 ( ζ1 = 0,4 ) • Couple : Φ rref = 0,85 , Kp2 = 0,21, Ki2 = 36,3 (trep2 = 50 ms) • Vitesse : Kp3 = 4,18, Ki3 = 19,8 (trep3 = 500 ms) Figure 4.16 Résultats en poursuite (simulation) 71 Chapitre 4 Simulation de la commande vectorielle Figure 4.17 Erreurs de poursuite (simulation) 72 Chapitre 5 Mise en œuvre sur le banc Chapitre 5 Mise en œuvre sur le banc 5.1 Environnement MATLAB/SIMULINK/dSPACE™ 5.1.1 Présentation des interfaces dSPACE Les interfaces développées par dSPACE permettent une implantation rapide des schémas SIMULINK sur processeur DSP TEXAS INTRUMENTS. Le module dSPACE Real Time Interface (RTI) assure la compilation et le transfert du code généré par Real Time Workshop (RTW) de SIMULINK dans l'environnement temps réel (Figure 5.1). Le module COCKPIT permet de superviser l'exécution du programme implanté dans le DSP. Il est possible de visualiser ou modifier en temps réel toutes les variables mémoire de la carte mère DS 1002. Le module TRACE permet d'afficher les courbes d'évolution de ces variables. Il est possible d'exporter les fichiers de points au format binaire MATLAB pour une exploitation ultérieure. 5.1.2 Utilisation du module Real Time Interface (RTI) Des bibliothèques de modèles d'entrées/sorties sous forme de blocs SIMULINK pour chacune des cartes dSPACE sont fournies avec l'interface RTI [19]. Ces blocs sont donc utilisés lors de l'adaptation du schéma de simulation à l'environnement temps réel dSPACE (Figure 5.2). Le lancement des différentes étapes d'implantation de l'application sur DSP est accessible par une boîte de dialogue lancée depuis le menu "Code" de SIMULINK (Figure 5.3). Le modèle "rti.tmf" appelé par la commande Makefile permet la prise en compte de l'environnement matériel spécifique dSPACE connecté au bus PC/AT. Il peut être considéré comme le pilote du module RTI. 73 Chapitre 5 Mise en œuvre sur le banc Environnement MATLAB/SIMULINK MATLAB SIMULINK Real-Time Workshop appli.c Environnement dSPACE Real-Time Interface appli.c pour DSP TMS320C30 Compilateur "C" Texas Instrument appli.obj Module de chargement TRACE variables COCKPIT paramètres DSP Figure 5.1 Développement d'une application temps réel sous MATLAB/SIMULINK/dSPACE Figure 5.2 Bibliothèques dSPACE pour SIMULINK 74 Chapitre 5 Mise en œuvre sur le banc Figure 5.3 Définition des options temps réel L'appui sur le bouton "Build" a pour effet de lancer automatiquement la procédure suivante (Figure 5.4) : • génération du code C du modèle SIMULINK par RTW, • lancement du M-file MATLAB make_rt qui crée un fichier appli.mk basé sur le modèle rti.tmf, • utilisation de ce fichier par l'application make pour appeler les modules suivants : – le postprocesseur RTI qui modifie le code C du fichier généré par RTW pour une implantation sur DSP, – le compilateur/éditeur de liens TEXAS INSTRUMENTS, qui compile le modèle, la trame temps réel dSPACE et assure l'édition de liens avec les différents fichiers-objets et bibliothèques, générant ainsi un fichier exécutable, – le "loader" dSPACE qui charge celui-ci sur le DSP et lance l'exécution, – l'utilitaire de détection d'erreurs dSPACE qui contrôle le démarrage correct du fichier exécutable. 75 Chapitre 5 Mise en œuvre sur le banc Build SIMULINK D/A A/D RTW RTI Template Makefile make_rt generate generate make appli.c appli.h Application Makefile RTI Simulation Frame DSP Figure 5.4 Génération d'un fichier exécutable pour DSP 5.1.3 Module de contrôle COCKPIT Le module COCKPIT utilise des fichiers générés par RTI et par le compilateur TEXAS INSTRUMENTS (Figure 5.5). Le fichier "appli.trc" est de type ASCII et contient la description des variables globales utilisées par le programme implanté dans le DSP. Le fichier "appli.map" contient des informations sur l'emplacement mémoire des variables du DSP. Ces deux fichiers sont interprétés ensemble par COCKPIT. Le fichier "appli.ccs" (Cockpit Control Script) est généré par COCKPIT en mode édition. Il contient la description du "tableau de contrôle" élaboré par l'utilisateur. La création d'un tel tableau est facilitée par la mise à disposition "d'instruments" de base tels que des boutons, des afficheurs, des potentiomètres, etc. (Figure 5.6). Il suffit ensuite d'associer à ces instruments des variables issues du fichier "appli.trc", elles-mêmes créées par le schéma SIMULINK (Figure 5.7). 76 Chapitre 5 Mise en œuvre sur le banc Real Time Interface (RTI) appli.c fichiers liés par références croisées Compilateur/Editeur de liens TI appli.obj appli.map appli.ccs appli.trc dSPACE Loader DSP COCKPIT appli.err Figure 5.5 Fichiers utilisés par COCKPIT Figure 5.6 Liste des instruments disponibles 77 Chapitre 5 Mise en œuvre sur le banc Figure 5.7 Définition des instruments – association aux variables DSP 5.1.4 Module d'affichage TRACE Le module TRACE utilise les même fichiers que le module COCKPIT (Figure 5.5). Un fichier "appli.tmd" permet de mémoriser un masque d'affichage par défaut. TRACE offre les fonctionnalités particulières suivantes [20] : • • • • balayage libre ou mode trigger, sous-échantillonnage des variables, stockage et rappel des données anciennes pour comparaison avec données temps réel, exportation des données au format binaire MATLAB (".mat") ou ASCII. Nous utiliserons TRACE pour le suivi temps réel et l'exportation des données au format MATLAB. 78 Chapitre 5 Mise en œuvre sur le banc 5.2 Adaptation du schéma de simulation 5.2.1 Intégrateurs Les intégrateurs utilisés dans les régulateurs doivent impérativement pouvoir être désactivés. Dans le cas contraire, ils saturent dès le lancement de l'application sur DSP. Les blocs PID utilisent donc des intégrateurs initialisables continus ("Reset Integrator"), dont l'entrée de commande sera pilotable sous COCKPIT (Figure 5.8). P Kp I 1 In Ki D Kd 2 reset + + + Sum 1/s Reset Integrator 1 Out du/dt Derivative 0 00 Figure 5.8 Utilisation des intégrateurs initialisables L'utilisation, le cas échéant, de régulateurs numériques, impose l'utilisation d'un intégrateur discret faisant appel à la S-function "intc.c". Cette routine est basée sur la discrétisation de type bilinéaire (ou méthode de Tustin), correspondant à une approximation trapézoïdale de l'intégration. La transformation est donnée par : s= 2 (1 − z −1 ) Tech (1 + z −1 ) 5.2.2 Limitation des consignes de commande Les commandes Vsd ref et Vsqref ne doivent pas dépasser les valeurs limites admissibles (± 380 V). Des blocs "saturation" sont donc insérés systématiquement dans les schémas. 79 Chapitre 5 Mise en œuvre sur le banc 5.2.3 Estimation du couple électromagnétique Nous estimons le couple électromagnétique Γe par la relation suivante (bloc "Estimateur Cem") : L ˆ Γˆ e = p m Φ r isq Lr Une image du couple électromagnétique peut également être donnée par les mesures de force électromotrices induites dans les phases du stator instrumentées sur le banc du L.A.G. (Annexe B). 5.2.4 Ajustement des compensations 5.2.4.1 Compensation de fem. Nous avons évoqué les problèmes posés par le découplage au §2.2.3. Un gain ajustable au schéma SIMULINK, accessible sous COCKPIT, a donc été ajouté aux fonctions de transfert compensatrices "femd" et "femq" afin d'ajuster celles-ci au procédé réel. 5.2.4.2 Compensation de déphasage La compensation sur le déphasage de θs a été traitée au §3.4.2. Un gain permettant d'ajuster l'angle de rotation a été ajouté dans les mêmes conditions que précédemment. 5.2.5 Interfaces dSPACE Les blocs Real Time Interface (RTI) pour SIMULINK sont insérés à la place du modèle du moteur. 5.2.5.1 Commande de la machine asynchrone Le bloc "mise à niveau" (Figure 5.9) permet de transformer la commande Vsα , Vsβ afin : – d'adapter les tensions à la partie puissance du banc, – de délivrer les consignes au PBM1/89 en coordonnées polaires [24]. norm(Vsabc) Vsalphabeta_ref phi Transformation d,q->alpha,beta mise a niveau PWM 1 norm(Vsabc) 2 phi Figure 5.9 Commande de la carte ALCT01 80 Mux pwmfunc S-Function Mux Chapitre 5 Mise en œuvre sur le banc Les équations de transformation sont les suivantes : Vabc = et 2 3K T Vs2α + Vs2β 220 2 , KT = ϕ = − Arctg 2 (cf. équation (1.2) 3 Vsα +π Vsβ Le bloc "PWM" fait appel à la S-function "pwmfunc.c" permettant l'accès à la carte ALCT01. Figure 5.10 Passage de paramètres au bloc dSPACE PWM 5.2.5.2 Commande de la charge (machine à courant continu) La commande en couple (donc en courant) du moteur à courant continu est réalisée par l'intermédiaire du bloc "Sorties analogiques", qui accède à la carte CNA DS2101 (Figure 5.11). Un gain permet de normaliser les grandeurs. 2 Commande MCC en N.m DAC Board 1/81 S OutPlug3 GA3 DS2101_#1 Figure 5.11 Commande de la charge (moteur à courant continu) 81 Chapitre 5 Mise en œuvre sur le banc 5.2.5.3 Mesures Les différentes mesures sont accessibles par le bloc "Carte de mesures". Il permet l'acquisition des différentes voies de la carte CAN DS2002 et de la carte codeur incrémental DS3001 ( Figure 5.12). -K1 vsabc Mux -K- VSa VSb -K- 2 isabc Mux 4 PHI Mux ISa ISc -KVSc -K- M Mux-ADC Board ISb phi sa M -K-K- phi_sb DS2002_#1 phi_sc -10*50/2.5 COUPLE mécanique + + Sum -662 Demultiplexeur -0.5329 Constant offset cem 3 vitesse 0.0464z+0.0464 5270.718 z-0.907 OMEGA derivateur S enc enc_to_fract DS3001ENC_#1 Figure 5.12 Bloc "carte mesures" Pour une acquisition dans la gamme [-10 V, +10 V] de la carte DS2002, les gains appliqués sont les suivants : – sur les mesures de tensions Vsa, Vsb, Vsc : 10x220/4,75 – sur les courants : 10x16/1,4 – sur les flux : 10/4,43 – sur le couple mécanique : -10x50/2,5 – sur le couple électromagnétique : -662x(CemDS2002-0,5329) Un filtre passe-bas du 1er ordre, de fréquence de coupure 100 rad/s est appliqué après le dérivateur de la mesure de vitesse. 5.2.5.4 Transformation (a,b,c)→(α,β) Les blocs "abc2alphabeta" sont utilisés pour les mesures de tensions, de courant et de flux. La transformation est basée sur l'équation matricielle (1.1). 82 Chapitre 5 Mise en œuvre sur le banc Nous avons donc : 1 1 xα = KT xa − 2 xb − 2 xc 2 avec K T = 3 3 3 x = K xb − xc β T 2 2 5.3 Résultats expérimentaux 5.3.1 Aspects pratiques 5.3.1.1 Compilation et chargement Les fichier suivants doivent obligatoirement être présents avant compilation : – pwm4201.c, – pwmfunc.c, – pwmusr.c, – srtframe.c, – timer1.c, – srtframe.c, – intc.c – les fichiers de déclaration de variables ("Datafocn.m" et "majn.m" dans le cadre de ce travail) Le répertoire courant doit également contenir un fichier C de déclarations appelé "appli.usr", "appli" représentant le nom du schéma de travail SIMULINK (Figure 5.13). Figure 5.13 Fichier "appli.usr" de déclarations 83 Chapitre 5 Mise en œuvre sur le banc La fenêtre de paramétrage des options temps réel doit contenir les paramètres suivants (Figure 5.3) : – "Algorithm" : Euler. La méthode Runge-Kutta n'est pas exploitable en temps réel car le code généré entraîne un temps de calcul trop long (total >800 µs), – "Step size" : 0,9728 ms. Cette valeur représente la période réelle de la MLI. – "Template Makefile" : rti30.tmf – "Target Makefile" : $model.mk – "Build Command" : make_rt 5.3.1.2 Mise en route du banc La procédure suivante doit impérativement être respectée lors de la mise en route : Sur le pupitre de commande – Activer "ALIMENTATIONS PLATINES". – Activer "MOTEUR ASYNCHRONE". – ORDRE DE MARCHE MOTEUR ASYNCHRONE en position I. – Activer "MOTEUR COURANT CONTINU". – ORDRE DE MARCHE MOTEUR COURANT CONTINU en position I. Sous COCKPIT – Lancer l'exécution du programme DSP à flux réduit (0,1 Wb). Sur le pupitre de commande – Activer "LIAISON PAR FIBRES OPTIQUES". Sous COCKPIT – Augmenter le flux jusqu'à la valeur nominale (0,85 Wb dans le cadre de notre travail). – Activer les intégrateurs. Contrôle du temps d'exécution de la tâche temps réel Le temps d'exécution du programme sur le DSP est inférieur à 600 µs. 84 Chapitre 5 Mise en œuvre sur le banc 5.3.2 Résultats en régulation de vitesse Les résultats en régulation sont illustrés par les figures (5.14) et (5.15). Figure 5.14 Résultats en régulation de vitesse (procédé réel) 85 Chapitre 5 Mise en œuvre sur le banc Paramètres des régulateurs : • Flux : Kp1 = 691, Ki1 = 3036 ( ζ1 = 0,4 ) • Couple : Φ rref = 0,85 , Kp2 = 0,35, Ki2 = 60,6 (trep2 = 30 ms) • Vitesse : Kp3 = 5,2, Ki3 = 31 (trep3 = 400 ms) Figure 5.15 Erreurs de régulation (procédé réel) • Ces résultats ont été obtenus : – en sous-compensant les fem de découplage de 30 % (cf. §2.2.3), – en sur-compensant le déphasage dû aux filtres de 40 % lors du changement de repère (α,β)→(d,q). Ces deux compensations ont pour effet de corriger les erreurs de modélisation, en particulier sur la constante de temps rotorique Tr, qui entraîne une erreur d'orientation du référentiel tournant (d,q). Toutefois, cette constante évolue en cours de fonctionnement de la machine et un observateur permettrait d'effectuer un meilleur contrôle à la fois du découplage, et de l'erreur d'orientation du repère (d,q). • Le contrôle de la vitesse est satisfaisant, l'utilisation d'un codeur permettant de rattraper les erreurs sur les boucles de régulation internes. • La boucle de flux permet de limiter l'erreur sur celui-ci, qui reste inférieure à 0,1 Wb. 5.3.3 Résultats en poursuite Les figures (5.16) et (5.17) illustrent les résultats en poursuite de la machine. Les compensations sont identiques à celles du fonctionnement en régulation (cf. §5.3.2). 86 Chapitre 5 Mise en œuvre sur le banc Figure 5.16 Résultats en poursuite (procédé réel) 87 Chapitre 5 Mise en œuvre sur le banc Paramètres des régulateurs : • Flux : Kp1 = 546, Ki1 = 2400 ( ζ1 = 0,45 ) • Couple : Φ rref = 0,85 , Kp2 = 0,35, Ki2 = 60,6 (trep2 = 30 ms) • Vitesse : Kp3 = 5,2, Ki3 = 31 (trep3 = 400 ms) Figure 5.17 Erreurs de poursuite (procédé réel) • Le contrôle de la vitesse est là encore satisfaisant. • La tension statorique reste inférieure à 350 V, valeur qu'il convient de ne pas approcher, au risque de provoquer un début de saturation de l'onduleur. • L'erreur sur le flux ne dépasse pas 0,1 Wb, ce qui est correct pour une commande sans estimateur en boucle fermée. 88 Conclusion Conclusion Il était important d'élaborer dans le cadre du fonctionnement de la plate-forme un document de synthèse illustrant les différentes étapes d'implantation d'une commande temps réel. L'objectif est atteint. Les problèmes inhérents à toute adaptation d'une commande simulée sur un procédé réel, et particulièrement sur un banc de ce type, ont été abordés : retards, asynchronismes, déphasages, saturations, variation des paramètres du modèle. L'accroissement de la complexité des algorithmes, et donc l'allongement des temps de calcul, peut rendre difficile leur implantation. Dans ce cadre, une modification de la carte de pilotage MLI a été proposée. Les limites, prévisibles, de la commande vectorielle à flux orienté avec estimateur en boucle ouverte sont clairement établies : un certain nombre de grandeurs sont mal maîtrisées (tension et courant statorique). L'étude a d'autre part été réalisée dans l'hypothèse d'une dynamique de & ≈ 0 ) afin de travailler sur des équations d'état linéaires. vitesse lente ( Ω Les recherches actuelles portent sur l'élaboration d'observateurs plus performants, afin de maîtriser correctement les états du système. La suppression du capteur de vitesse reste un objectif pour les industriels. Les commandes discrètes de type D.T.C. (Direct Torque Control) sont à l'étude et offrent des perspectives très attractives en termes de performances dynamiques. Sur un plan pédagogique, il est envisagé de proposer des travaux pratiques sur la plate-forme dans le cadre de la formation d'ingénieurs. Le projet est intéressant : pour l'automaticien, qui est ainsi amené à travailler sur un procédé particulièrement difficile à piloter, et pour l'élèveingénieur qui doit apprendre à extraire d'une théorie les éléments pertinents et applicables dans l'état de la technologie à un instant donné. 89 Annexe A Variateurs de vitesse et contrôleurs Annexe A Variateurs de vitesse et contrôleurs A.1 Variateur machine asynchrone : l'onduleur de puissance JIS 35 (Jeumont-Schneider) Le principe de fonctionnement, très classique, est le suivant : – Un pont de diodes transforme la tension alternative triphasée du réseau en une tension continue filtrée par des condensateurs. – Alimenté par cette tension continue, le pont onduleur à transistors génère un système triphasé de tensions alternatives d'amplitude et de fréquence variables. La tension de sortie est constituée d'impulsions de largeur variable et leur nombre varie en fonction de la fréquence. La loi de modulation de la largeur des impulsions est telle que l'onde de courant résultante a une forme proche de celle d'une sinusoïde. La technique de modulation choisie permet la neutralisation des premiers harmoniques ainsi que le réglage en amplitude et en fréquence de la tension fondamentale de sortie de l'onduleur. A.1.1 Schéma fonctionnel La figure A.1 donne une représentation schématique du variateur JIS35 et de ses sousensembles. 91 Annexe A Variateurs de vitesse et contrôleurs Précharge effectuée PLRGPO 91/02 Ref. Freq. Circuits de contrôle et de surveillance SQUAL 21 CFP 71 Commande U/F = cste Autorisation de fonctionnement 6 Impulsions PWM Contrôle Capa. Contrôle réseau (Branchement manuel) HFBR 2531 TI ITPL 251 Commande de l'onduleur LT 100-P Pont à transistors de puissance Filtrage réseau 380 V Pont redresseur F1 380 V F2 Précharge - + 8 7 56 kž LV 25-P IR 4 5 6 Masy. UR Figure A.1 Schéma fonctionnel de l'onduleur JIS35 A.1.2 Liste des sous-ensembles technologiques Précharge, Redressement, Filtrage, Pont onduleur Ce sous-ensemble est constitué de boîtiers moulés (ponts de diodes et Darlington de puissance), de deux résistances de précharge, de condensateurs électrolytiques de filtrage avec leurs résistances d'équilibrage, d'un transformateur d'alimentation pour les autres sous-ensembles du JIS 35. 92 Annexe A Variateurs de vitesse et contrôleurs Carte SQAL 21/02 - Séquence, alimentation Ce circuit comprend l'électronique de séquence, l'isolement du retour tension, le capteur de courant et l'ensemble des alimentations des circuits électroniques. Carte ITPL 251 - Commande des interrupteurs de puissance Cet ensemble, comportant six cartes identiques, réalise l'isolement entre la régulation et la puissance ainsi que la commande des transistors de puissance. Carte PLRGPO 91/02 - Régulation et protection Ce circuit comprend l'électronique de régulation et de contrôle des paramètres électriques et fournit la commande des interrupteurs de puissance ; il supporte également la carte de personnalisation CFP 71 enfichable. Carte CFP 71 - Personnalisation Ce circuit regroupe notamment les potentiomètres de réglages propres au moteur. A.1.3 Fonctionnement L'onduleur se compose de six interrupteurs (Darlington de puissance) commandés par la carte ITPL 251. Chaque interrupteur possède ses propres alimentations électroniques obtenues à partir d'un transformateur monophasé. Les commandes sont isolées de la partie puissance par des photocoupleurs. Les interrupteurs sont protégés en surintensité et en surtension ; la surintensité dans un interrupteur est mémorisée sur la carte PLRGPO 91/02. De plus ce défaut est signalé par une diode électroluminescente rouge et peut être acquitté par l'effacement défaut. Modulation de largeur d'impulsion Les trois courants d'alimentation du moteur sont obtenus par la technique dite de modulation de largeur d'impulsion (MLI) qui permet notamment d'obtenir par intégration dans les bobinages du moteur, un système triphasé d'ondes sinusoïdales dépourvues d'harmoniques de rangs faibles. Les ordres de modulation sont générés par un circuit intégré spécifique. A partir de la tension continue issue du redresseur et filtrée par les condensateurs, les interrupteurs créent trois tensions hachées, déphasées de 120° l'une par rapport aux autres. Les interrupteurs d'un même bras ont leurs commandes décalées d'un temps mort de 25 µs. Les commandes sont telles que la valeur efficace de la tension de sortie du convertisseur croît linéairement avec la fréquence de fonctionnement. 93 Annexe A Variateurs de vitesse et contrôleurs Précharge des condensateurs de puissance Dès la mise sous tension, les condensateurs de filtrage sont chargés à travers deux résistances et un pont redresseur monophasé. Lorsque la tension des condensateurs atteint 80 % de la tension nominale, la fermeture d'un contact libre de potentiel permet la montée du contacteur de tête. Un contrôle de la tension redressée autorise alors le déblocage du variateur. En cas de décharge supérieure à un niveau prédéterminé, ou lors de l'absence d'une phase du réseau, le même contrôle bloque le variateur jusqu'au retour des conditions normales. A.1.4 Régulation interne (U/f) Le régulateur inclut une régulation de tension ; elle agit uniquement en protection lorsque le variateur fonctionne en ralentissement et que la tension du condensateur de filtrage atteint une valeur supérieure à un seuil prédéterminé : son action est de s'opposer à la variation de fréquence qui a créé l'élévation de tension. Le signal de référence vitesse est une tension 0, +10 V ; afin d'assurer une montée en vitesse et un ralentissement progressifs, ce signal est appliqué à un circuit "rampe" à taux fixe de 5 secondes. A.1.5 Protection et séquences Protections Cinq protections intégrées signalées par des diodes électroluminescentes rouges provoquent le blocage immédiat du variateur. Il s'agit de se prémunir contre les défauts suivants : – défaut ventilation, – surintensité onduleur : indique une surintensité au niveau de l'un des interrupteurs de puissance, – surintensité redresseur, – thermique moteur, – défaut réseau : surveillance de la charge des condensateurs de filtrage et d'un contrôle de la présence du réseau de puissance. Séquences Une commande à distance permet, en absence de défaut sur le variateur, de débloquer les impulsions de commande après une temporisation ; le déblocage est signalé par une diode électroluminescente verte. Une inversion électronique du sens de rotation est possible par une commande logique extérieure ; l'équipement ralentit suivant la rampe et l'inversion du sens de rotation se fait à vitesse faible. 94 Annexe A Variateurs de vitesse et contrôleurs A.2 Variateur machine à courant continu : le Jistor triphasé VM011 (Jeumont-Schneider) Ce variateur de vitesse est un équipement réversible conçu pour résoudre les problèmes d'entraînement d'axes à l'aide de moteurs à courant continu spécialement dans le domaine de la machine-outil ; en effet sa bande passante peut atteindre 25 Hz. A.2.1 Raccordement de puissance Le convertisseur est constitué de deux ponts triphasés alimentés par l'intermédiaire d'un transformateur à un secondaire (Figure A.2). L L M.C.C. V1 V2 V3 I Figure A.2 Schéma de puissance du Jistor VM011 Les deux inductances L permettent de découpler les deux ponts. Pour de fortes variations de l'angle d'amorçage, seul un des deux ponts conduit et nous retrouvons le fonctionnement classique en onduleur ou en redresseur. A.2.2 Liste des sous-ensembles technologiques Le Jistor est constitué de deux sous-ensembles : outre la partie puissance composée de deux ponts triphasés à thyristors à ventilation naturelle décrits ci-dessus ; la partie contrôle et régulation est assurée par deux cartes dédiées : 95 Annexe A Variateurs de vitesse et contrôleurs • la carte XASQ 31 pour la commande des thyristors réalisée à l'aide d'amplificateurs opérationnels et de circuits logiques à haute immunité, • la carte RGAL 31 pour la régulation du type cascade, les fonctions de limitation de courant, sécurités de défaut réseau et de surintensité. A.3 Contrôle de l'inducteur de la machine à courant continu : le Babytrex SMO (Jeumont-Schneider) Le contrôleur Babytrex SMO est un régulateur de courant inducteur et de force contreélectromotrice induite d'une machine à courant continu. Il permet d'assurer la désexcitation de ce type de moteur avec contrôle de la fcem. Il est muni d'un pont complet monophasé et d'une partie électronique assurant la commande des thyristors, la protection du redresseur ainsi que le contrôle par régulation du courant inducteur et de la fcem induite. Les différents éléments constituant ce contrôleur sont : • la carte PLTJP 20, pont complet monophasé, • la carte PLRGXA 6, qui comporte un circuit de contrôle isolé par rapport au circuit de puissance. Il assure les fonctions suivantes : – amorçage des thyristors par trains d'impulsions 25 kHz garantissant la mise en conduction des thyristors sur charge selfique, – asservissement du fonctionnement du Babytrex à la présence réseau : déblocage temporisé à l'apparition du réseau, – élaboration du retour courant inducteur à partir du transformateur d'intensité et protection de l'installation contre le manque de champ : relais désexcité sur défaut, – atténuation de la tension induit pour élaborer le retour fcem non isolé par rapport à l'alimentation alternative de l'induit, – régulation dite "parallèle" du courant inducteur et de la fcem induite. 96 Annexe B Environnement de mesures Annexe B Environnement de mesures B.1 Interface d'isolement puissance/système de contrôle-commande Les équipements de puissance et de contrôle-commande sont isolés galvaniquement. Les filtres anti-repliement ("F" sur le schéma ci-dessous, Figure B.1) possèdent deux fréquences de coupure (500 Hz et 1 kHz) , sélectables par straps sur la carte filtres. DT Γe Φsa Φsb Φsc Ref Ref. N/ Γ freq. Mcc Masy Γm Pha C O AV/AR Phb Masy Index Isa Isb Vsa Vsb Vsc Ur Ir Iex Ia Ua ±15v iso. 5v 220 v~ F 5v F F 5v ±15v 6 impulsions vers ITPL 251 dSPACE CPU DS1002 DA AD CO TOR DS 2101 DS 2002 DS 3001 DS 4001 - Gestion des impulsions - Sécurités Figure B.1 Interface puissance / contrôle-commande 97 ALCATEL PWM board Annexe B Environnement de mesures B.2 Mesure des courants et des tensions Ces capteurs sont conçus pour la mesure électronique des courants (AC, DC, IMP.). Ils reposent sur le principe de la compensation du champ magnétique : le champ magnétique généré par le courant à mesurer est compensé par un champ crée par le bobinage secondaire, incorporant une sonde à effet Hall, associé à un circuit électronique de compensation : le courant de mesure est l'image du courant primaire réduit par le nombre de spires du bobinage secondaire. Pour mesurer une tension, il faut prélever un courant proportionnel à la tension à mesurer : pour ce faire on insère en série dans le primaire du capteur une résistance dimensionnée de manière à ce que la tension nominale à mesurer corresponde à un courant primaire de 10 mA (par exemple Un = 380 V, R = 38 kΩ). Pour le banc expérimental, on a utilisé pour la mesure des courants et des tensions des capteurs de la société LEM : Machine asynchrone : – Isb, Isc : module LEM LT 100P. – Usa, Usb, Usc : module LEM LV 25 P. Variateur JIS 35 : – Ir : module LEM LT 100 P. – Ur : module LEM 25 P. Génératrice à courant continu : – Ia : module LEM LT 100 P. – Ua : module LEM 25 P. – Iexc. : module LEM 25 NP-09. 98 Annexe B Environnement de mesures B.3 Mesure de vitesse et de position Mesure de position moteur asynchrone : La position de l'axe moteur est mesurée à l'aide d'un codeur optique. Le principe est le suivant : on compte le nombre d'impulsions à partir d'une position de référence sachant qu'entre chaque impulsion existe un écart angulaire de 2π/n rad, n étant le nombre de pistes codeur). Le codeur IDEACOD de la série GHM5 a été retenu. Sa résolution est de R = 2500 pts/tr ; l'étage de sortie est un driver RS 422 ; la bande passante de 100 kHz est suffisante pour les essais en survitesse (fmax = 1/60*Nmax*R ≈ 84 kHz). Mesure de la vitesse machine à courant continu : La charge constituée par la machine à courant continu possède un asservissement local de vitesse ; celle-ci est mesurée par une génératrice à courant continu, type REO 444 R (RadioEnergie). Elle comporte un inducteur statorique à aimants permanents et un induit rotorique composé d'un circuit magnétique en tôles de qualité avec un grand nombre d'encoches et d'un collecteur très divisé. Sa constante de vitesse est de Cv = 0,06 V/tr/min ; il sera donc nécessaire de conditionner le signal vitesse en tenant compte de la possibilité d'effectuer des essais en survitesse à 2000 tr/min soit une fem de 120 V aux bornes de la dynamo tachymétrique. B.3 Mesure du couple mécanique (capteur Staiger Mohilo) Il s'agit d'un système de mesure à fréquence porteuse de la famille IC 3000 de la société Staiger Mohilo. Le schéma de principe est le suivant (Figure B.2) : Capteur de couple Amplificateur de mesure ~ _ Redresseur Osc. Amplificateur de sortie Figure B.2 Capteur de couple mécanique 99 Annexe B Environnement de mesures Il est conçu pour des mesures rapides et possède un dispositif interne de contrôle de bon fonctionnement. Il comporte deux coffrets rackables (19 ") : – le générateur d'onde porteuse IC 3002, – le système de mesure de vitesse NC 2000. Le signal issu du couplemètre présente à la mise sous tension du variateur JIS 35 et du variateur JVMO11 deux fréquences "parasites" centrées respectivement sur 116 Hz et 150 Hz. – la première est d’origine électronique, – la seconde est due au variateur utilisé sur la machine à courant continu - de type "à circulation de courant" - prévu à l’origine pour la commande des machines-outils. Afin d’obtenir un signal visuellement correct, deux filtres réjecteurs de fréquence ont été insérés en sortie du couplemètre, qui déphasent fortement le signal (plus d’une période d’échantillonnage). Pour le moment, le signal du couplemètre n'est utilisé que pour la comparaison avec des signaux calculés. Par contre, si ce signal intervient comme mesure dans la boucle de commande, il sera nécessaire d’utiliser des techniques adaptatives ou de traitement du signal si ce signal intervient comme mesure dans la boucle de commande. B.4 Mesure du couple électromagnétique Le couple électromagnétique des machines asynchrones peut être exprimé par différentes expressions combinant les flux et les courants statoriques et rotoriques. L'une d'elles est donnée par : Γe = 3(Φ s 2 × is1 − Φ s1 × is 2 ) où Φ s1 et Φ s 2 sont les flux sous un pôle pour les enroulements 1 et 2 du stator, is1 et is 2 les courants dans ces mêmes enroulements. Flux et courants doivent donc être mesurés. Mesure des flux : Des spires ont été placées sous un pôle de chaque phase concernée [14]. Si Ns est le nombre de spires par pôle et par phase, le flux traversant ces spires a pour expression : φ= Φ , avec Ns= 243 spires pour notre moteur Ns 100 Annexe B Environnement de mesures Les fem induites dans ces spires sont relevées par des amplificateurs d'instrumentation. Calcul de la fem induite : Chaque enroulement est soumis à une tension de 380 V, ce qui donne pour la fem induite : e= 380 = 1,56 V , soit Emax = 2,2 V 243 Le flux est ensuite calculé à l'aide d'un intégrateur à amplificateur opérationnel. Le circuit AD 549 de la société Analog Devices a été choisi pour son courant de polarisation et sa tension d'offset d'entrée faibles. Avec R = 10 kΩ, C = 100 nF, nous avons, en sortie, à 50 Hz : 1 1 Emax × ≈ 7,07 V RC 2πf Des filtres passe-hauts placés en sortie des intégrateurs éliminent d'éventuelles composantes continues. Mesure des intensités : Pour assurer une isolation galvanique entre le moteur et l'électronique de traitement d'une part et bénéficier d'une bande passante suffisante d'autre part, des capteurs de courant à effet Hall ont été choisis. Le modèle Transtronic EH/EV 50 de la société ABB permet de mesurer les intensités de démarrage (Id/In = 7, avec In = 16,7 A). Le courant de mesure est transformé en tension par une résistance de 10 Ω amplifiée 10 fois. Calcul analogique du couple électromagnétique : Les produits flux – intensités sont réalisés par des multiplieurs analogiques (AD 532JH de la société Analog Devices). La sortie d'un amplificateur monté en soustracteur donne l'image du couple électromagnétique. Pour la transmission, cette tension est transformée en courant 4/20 mA. 101 Annexe C Adaptation carte Alcatel ALCT01 Annexe C Adaptation carte Alcatel ALCT01 Figure C.1 Schéma électronique carte adaptation carte Alcatel ALCT01 103 Annexe D Fichiers C et MATLAB Annexe D Fichiers C et MATLAB D.1 Modèle du moteur asynchrone "moteur.c" /************************ Definition de la S-function **************************/ #define S_FUNCTION_NAME moteur /************************ #ifdef Librairies **************************/ MATLAB_MEX_FILE #include "mex.h" #endif #include "simstruc.h" #include "math.h" #include <stdlib.h> #include "stdio.h" /******************** #define PARAM Passage des arguments ssGetArg(S,0) #define X0 ssGetArg(S,1) #define Ls ssGetRWorkValue(S,0) #define Lr ssGetRWorkValue(S,1) #define Lm ssGetRWorkValue(S,2) #define Rs ssGetRWorkValue(S,3) #define Rr ssGetRWorkValue(S,4) #define p ssGetRWorkValue(S,5) #define J ssGetRWorkValue(S,6) #define f ssGetRWorkValue(S,7) #define alpha ssGetRWorkValue(S,8) 105 **************************/ Annexe D Fichiers C et MATLAB #define beta #define k ssGetRWorkValue(S,9) ssGetRWorkValue(S,10) #define sigma ssGetRWorkValue(S,11) /******************* flag=0 initialisation **************************/ static void mdlInitializeSizes(S) SimStruct *S; { if (ssGetNumArgs(S)==2) { ssSetNumContStates( S, 5); /* number of continuous states */ ssSetNumDiscStates( S, 0); /* number of discrete states */ ssSetNumInputs( S, 3); ssSetNumOutputs( /* number of inputs */ S, 8); /* number of outputs */ ssSetDirectFeedThrough(S, 0); /* direct feedthrough flag */ ssSetNumSampleTimes( S, 1); /* number of sample times */ ssSetNumInputArgs( S, 2); /* number of input arguments */ ssSetNumRWork( S, 12); /* number of real work vector elements */ ssSetNumIWork( S, 0); ssSetNumPWork( S, 0); /* number of integer work vector elements */ /* number of pointer work vector elements */ } } /******************* Initialisation des periodes d'echantillonage **************************/ static void mdlInitializeSampleTimes(S) SimStruct *S; { ssSetSampleTimeEvent (S, 0, 0.00); ssSetOffsetTimeEvent (S, 0, 0.0); } /******************* Conditions initiales sur l'etat static void mdlInitializeConditions(x0, S) double *x0; SimStruct *S; { double *paramptr=mxGetPr(PARAM); double *x0ptr =mxGetPr(X0);; double *RWork =ssGetRWork(S); int i, nstates; 106 **************************/ Annexe D Fichiers C et MATLAB nstates = ssGetNumContStates(S); { for (i = 0; i < nstates; i++) *x0++ = *x0ptr++; RWork[0]=paramptr[0]; /* ls */ RWork[1]=paramptr[1]; /* lr */ RWork[2]=paramptr[2]; /* lm */ RWork[3]=paramptr[3]; /* rs */ RWork[4]=paramptr[4]; /* rr */ RWork[5]=paramptr[5]; /* p */ RWork[6]=paramptr[6]; /* J */ RWork[7]=paramptr[7]; /* f */ RWork[11]=1-((Lm*Lm)/(Ls*Lr)); /* sigma */ RWork[8]=Rs/(sigma*Ls); /* alpha */ RWork[9]=Rr/(sigma*Lr); /* beta */ RWork[10]=Lm/(sigma*Ls*Lr); /* k */ }; } /******************* Calcul des sorties **************************/ static void mdlOutputs(y, x, u, S, tid) double *y, *x, *u; SimStruct *S; int tid; { y[0]=x[0]; y[1]=x[1]; y[2]=x[2]; y[3]=x[3]; y[4]=x[4]; y[5]=p*k*(x[2]*x[1]-x[3]*x[0]); y[6]=(x[0]-x[2]*Lm/Lr)/sigma/Ls; y[7]=(x[1]-x[3]*Lm/Lr)/sigma/Ls; } /******************* Mise a jour de l etat **************************/ static void mdlUpdate(x, u, S, tid) double *x, *u; SimStruct *S; int tid; { 107 Annexe D Fichiers C et MATLAB } /******************* Derivee de l etat **************************/ static void mdlDerivatives(dx, x, u, S, tid) double *dx, *x, *u; SimStruct *S; int tid; { dx[0]= -alpha*x[0] + k*Rs*x[2] + u[0]; dx[1]= -alpha*x[1] + k*Rs*x[3] + u[1]; dx[2]= k*Rr*x[0] - beta*x[2] - p*x[4]*x[3]; dx[3] = k*Rr*x[1] + p*x[4]*x[2] - beta*x[3]; dx[4] = (p*k*(-x[0]*x[3]+x[1]*x[2]) - u[2]-f*x[4])/J; } static void mdlTerminate(S) SimStruct *S; { } #ifdef MATLAB_MEX_FILE #include "simulink.c" /* Is this file being compiled as a MEX-file? */ /* MEX-file interface mechanism */ #else #include "cg_sfun.h" /* Code generation registration function */ #endif D.2 Définition des paramètres moteur "Majn.m" et "Datafocn.m" Listage "Majn.n" : clear all phir_ref=0.85 disp('Chargement des nouveaux paramètres moteur') datafocn; T=0.5; % Coefficient profil consignes vitesse et couple Listage "Datafocn.m" : lmax=100000; % Nombre maximal des lignes du vecteur de sortie des blocs "To Workspace" lmaxk=lmax; 108 Annexe D Fichiers C et MATLAB %================================================== %PARAMETRES GLOBAUX global Rr Rs Lr Ls Lm J f p global gamm sigma alpha beta k tr X0=[0 0 0 0]; PARAM=[Ls Lr Lm Rs Rr p J f]; %================================================== % PARAMETRES machines Rr=0.4; Rs=0.63; Lr=0.091; Ls=0.097; Lm=0.091; J=0.22; f=0.001; p=2; sigma = 1-Lm^2/Ls/Lr; gamm=Rs/(sigma*Ls)+((Rr*Lm*Lm)/(sigma*Ls*Lr*Lr)); alpha = Rs/sigma/Ls; beta = Rr/sigma/Lr; tr = Lr/Rr; k1 = Lm/sigma/Ls/tr; Tech=0.001; Tech=0.0009728; % Période réelle MLI à utiliser pour l'implantation temps réel ts=Tech; TFVN=100; % Fréquence de coupure filtre de vitesse (cartes mesures) D.3 Calcul des régulateurs "Calcregn.m" % Régulateur de flux PI ====================== dzeta1 = 0.6; k1 = Lm/sigma/Ls/tr; kp1 = gamm^2/k1/(2*dzeta1)^2 ki1 = kp1/tr % Régulateur de couple PI =================== phi_ref = 0.85; 109 Annexe D Fichiers C et MATLAB trep2 = 0.05; k2 = p*Lm*phi_ref/sigma/Ls/Lr; kp2 = 3/k2/trep2 ki2 = gamm*kp2 % Régulateur de vitesse PI ================== % Pour dzeta3=0.7, wn*trep=3 %disp('Pour dzeta=0.7') %dzeta3 = 1; %trep3 = 0.5; %kp3 = J*6*dzeta3/trep3 %ki3 = J*(3/trep3)^2 % Pour dzeta3=1, wn*trep=4.75 disp('Pour dzeta=1') dzeta3=1; trep3=0.5; kp3=J*9.5/trep3-f ki3=J*(4.75/trep3)^2 110 Annexe E Schémas de simulation et d'implantation temps réel Annexe E Schémas de simulation et d'implantation temps réel E.1 Schéma de simulation complet Figure E.1 Schéma de simulation SIMULINK 111 Annexe E Schémas de simulation et d'implantation temps réel E.2 Schéma d'implantation temps réel complet Figure E.2 Schéma d'implantation SIMULINK/dSPACE 112 Annexe E Schémas de simulation et d'implantation temps réel E.3..Génération des consignes Les blocs "Top synchro" sont utilisés pour la synchronisation de l'affichage sous TRACE. Bloc "Consignes" (Figure E3) : 1 1/400s 2+1/10s+1 Phir_ref Filtre consigne1 1 out_1 Si 0 -> Poursuite 1 -> Régulation omega_ref 0 regpoursuite 1 1/400s 2+1/10s+1 Accélération max. Filtre consigne Arret urgence Regulation/Poursuite 1 Normal 0 consigne nulle 2 out_2 Si 1 -> fonctionnement normal 0 -> Arret urgence 0 3 out_3 gain_couple_charge Regulation/Poursuite1 Cr_ref Arret urgence1 0 consigne nulle1 Top synchro régulation 1 synchro Regulation/Poursuite2 Top synchro poursuite Figure E.3 Consignes : schéma général Bloc "omega_ref" (Figure E.4) : Figure E.4 Consignes de vitesse 113 Annexe E Schémas de simulation et d'implantation temps réel Bloc "Cr_ref" : Couple de charge régulation Couple de charge poursuite 1 Consigne pour régulation vitesse 2 Consigne pour poursuite vitesse Figure E.5 Consignes de couple de charge Bloc "Phir_ref" : phir_ref To Workspace2 0.85 Phir_ref 1 Phir_ref_ Figure E.6 Consigne de flux rotor E.4 Interface COCKPIT Figure E.7 Contrôle du banc sous COCKPIT 114 Bibliographie Bibliographie [1] Commande des machines à courant alternatif. Le procédé, description et modélisation. D. Roye. Actes de l'Ecole d'Été d'Automatique de Grenoble. Septembre 1997 [2] Actionneurs électriques. Principes, modèles, commande. G.Grellet et G.Clerc. Éditions Eyrolles. 1996 [3] Commande des machines asynchrones. Journées de l'Enseignement de l'Électrotechnique et de l'Électronique Industrielle "3EI 93". SEE-MAFPEN. 1993 [4] Modélisation et commande de la machine asynchrone. J.-P. Caron et J.-P. Hautier. Éditions Technip. 1995 [5] Commande et optimisation des processus. P. Borne, G. Dauphin, J.-P. Richard, F. Rotella, I. Zambettakis. Éditions Technip. 1990 [6] Commande non linéaire de moteur asynchrone avec observateur. Denis Lubineau. Thèse de doctorat INPG, Laboratoire d'Automatique de Grenoble. 1999 [7] "Design of an advanced non linear controller for induction and experimental validation on an industrial benchmark". D. Lubineau, J.M Dion, L. Dugard, D. Roye. European Physical Journal Applied Physics. Vol.9. 2000 [8] Variateur de vitesse pour machine asynchrone, contrôle de vitesse sans capteur mécanique. Xavier Roboam. Thèse de doctorat de l'INPT, Toulouse. 1991 [9] "The principle of field orientation as applied to the new transvector closed loop control system for rotating field machines". F. Blaschke. Siemens Review. 1972 [10] Contraintes spécifiques du contrôle vectoriel : description, effets, dégradation des performances. M. Pietrzak-David, X. Roboam. Actes du GDR sur la conception de dispositifs et systèmes électrotechniques, Toulouse. Juin 1993 [11] Commandes vectorielles de machines alternatives à base de processeur de signal. J. Guiraud. Mémoire d'ingénieur CNAM, Centre régional de Grenoble. 1997 115 Bibliographie [12] Plate-forme d'essais : Commande de machines électriques. L. Douaud. Mémoire d'ingénieur CNAM, Centre régional de Nantes. 1996 [13] Banc d'essais machine asynchrone. Laboratoire d'automatique de Grenoble. R.Alvarez-Salas, J.M. Dion, L. Dugard. Note interne. 2000 [14] Plate-forme expérimentale moteur asynchrone. J. Barnier, Th. Blanc, L. Dugard, D. Lubineau. Rapport interne Laboratoire d'Automatique de Grenoble. 1998 [15] MATLAB Reference Guide. The MathWorks, Inc. 1992 [16] SIMULINK User's Guide. The MathWorks, Inc. 1993 [17] SIMULINK Release Notes v1.3. The MathWorks, Inc. 1994 [18] DSP-CITpro TRACE COCKPIT RTI. dSPACE GmbH. 1994 [19] Real-Time Interface to SIMULINK RTI 30 User's Guide v 2.0. dSPACE GmbH. 1995 [20] Real-Time TRACE Module User's Guide – Reference Guide v 2.0. dSPACE GmbH. 1995 [21] COCKPIT Instrument Panel User's Guide – Reference Guide v 2.0. dSPACE GmbH. 1995 [22] Alcatel PWM-Board User's Guide v1.0. dSPACE GmbH. 1995 [23] SIMULINK/RTI Interface for the Alcatel PWM-Board v1.0. dSPACE GmbH. 1995 [24] Pulse Width Modulator PBM 1/87 – PBM 1/89 Data sheet Rev. 2.0. Hanning ElektroWerke GmbH. 1993 [25] MAX280/MXL062 5th Order Low pass Filter. Data sheet Rev. 3. Maxim. 1995 116