You are on page 1of 78

1.6 1.4 1.2 1 0.8 y 0.6 0.4 0.2 0 0.2 0 0.5 1 1.5 2 2.5 3 3.5 t 4 4.5 5 5.5 6 6.

5 7

MAXPID

MAXPID

pourlenseignement dessciencesdelingnieur

Scilab/Xcos

Ralis avec le soutien dInria, ce livret a t co-crit par Scilab Enterprises et Messieurs Alain Caignot, Lyce Stanislas (Paris), Vincent Crespel, Lyce Saint Louis (Paris), Marc Derumaux, Lyce Saint Louis (Paris), Cdric Lusseau, Lyce Hoche (Versailles), Gilles Moissard, Lyce Janson de Sailly (Paris), Pascal Serrier, Lyce Benjamin Franklin (Orlans) et David Violeau, Lyce Janson de Sailly (Paris). 2013 Scilab Enterprises. Tous droits rservs.

TABLE DES MATIRES

ScIlab-XcoS pour lenSeIGnement deS ScIenceS de lInGnIeur


IntroductIon
PROPOS DE CE LIVRET INSTALLATION DE SCILAB ET CONFIGURATIONS UTILES EN SCIENCES DE LINGNIEUR LISTE DE DIFFUSION ET DINFORMATION RESSOURCES COMPLMENTAIRES 5 5 7 7

1- Se famIlIarISer XcoS LENVIRONNEMENT GNRAL LA BARRE DE MENUS LES PALETTES DISPONIBLES EXEMPLE DE CONSTRUCTION DUN DIAGRAMME SIMPLE LES SUPERBLOCS 2 - modlISatIon multI phySIque acauSale (module SImm) COMPARAISON DES APPROCHES CAUSALE ET ACAUSALE EXEMPLE 1 : RGULATION DE LA TEMPRATURE INTRIEURE DUNE MAISON DHABITATION EXEMPLE 2 : PILOTAGE DUN MOTEUR COURANT CONTINU EXEMPLE 3 : AXE ASSERVI DANGIOGRAPHIE BI-PLAN 3 - modlISatIon et analySe de SyStmeS tempS contInu (module cpGe) MISE EN PLACE DUN DIAGRAMME DE MOTEUR TEMPS CONTINU MISE EN PLACE DUN DIAGRAMME DE COMMANDE EN BOUCLE OUVERTE PRSENTATION DE LA STRUCTURE DE LASSERVISSEMENT EN VITESSE ASSERVISSEMENT DE VITESSE ET CORRECTION PROPORTIONNELLE ASSERVISSEMENT DE VITESSE ET CORRECTION PROPORTIONNELLE ET INTGRALE 4 - acquISItIon et pIlotaGe de moteur (module arduIno) PRSENTATION DE LA CARTE ARDUINO UNO UTILISATION DU MODULE ARDUINO 65 66
|3

9 11 14 16 20

21 24 31 42

53 55 57 58 60

IInTRODUCTIOn nTRODUCTIOn

IntroductIon
propoS de ce lIvret
Lobjectif de ce livret est de vous guider pas pas dans la dcouverte des direntes fonctionnalits de base de loutil Xcos inclus dans Scilab dans le cadre dune utilisation en classe de sciences de lingnieur. Cette prsentation propose plusieurs exemples dapplications qui permettent de dcouvrir les fonctionnalits utiles lenseignement et lapprentissage des sciences de lingnieur en section S-SI ou STIDD, au lyce et dans l'enseignement suprieur. Les exemples, diagrammes et illustrations sont raliss avec Scilab 5.4.1 enrichi des modules CPGE, SIMM et Arduino. Vous pouvez donc reproduire tous les exemples prsents partir de la version 5.4.1 de Scilab (les diagrammes sont mis disposition depuis la barre de menus en cliquant sur ? / dmonstrations / nom du module correspondant / exemples livret). Il est indispensable de disposer dun compilateur C pour utiliser le module de modlisation multi-physique SIMM (se rfrer au sous-chapitre Installation dun compilateur C ).

InStallatIon de ScIlab

et confIGuratIonS utIleS en ScIenceS de lInGnIeur


Scilab est un logiciel open source de calcul numrique que chacun peut tlcharger gratuitement. Disponible sous Windows, Linux et Mac OS X, Scilab est tlchargeable ladresse suivante : http://www.scilab.org Une fois Scilab tlcharg et install, il faut ajouter les modules externes complmentaires, lists ci-dessous :

Scilab
Logiciel open source gratuit de calcul et de simulation numrique qui fournit un puissant environnement de dveloppement pour les applications scienti ques et lingnierie

Xcos
Outil de modlisation et de simulation de systmes dynamiques hybrides

Modules externes

CPGE
Modlisation de systmes asservis, tude temporelle et frquentielle

SIMM
Modlisation multi-physique acausale

ARDUINO
Acquisition et pilotage de systmes via une carte Arduino

noter Lors de linstallation, Scilab va tlcharger des chiers qui seront stocks avec lexcutable dinstallation. Sils sont dtects lors dune nouvelle installation, ils ne seront pas tlchargs de nouveau, ce qui est utile pour une installation dans une salle sans accs Internet.
|5

InTRODUCTIOn

Pour cela, il sut : w Dtre connect Internet w De lancer Scilab w De cliquer dans la barre de menus sur applications / Gestionnaire de modules atomS puis daller chercher les dirents modules dans les catgories indiques ci-dessous : - CPGE (catgorie ducation), - SIMM (catgorie ducation), - Arduino (catgorie Instruments Control). Pour chaque module, cliquez sur le bouton Installer, quittez Scilab et relancez-le. Les modules sont alors installs et se chargeront automatiquement chaque dmarrage de Scilab. Pour supprimer un module ou le mettre jour, il sut de retourner dans le Gestionnaire de modules atomS et de cliquer cette fois sur le bouton correspondant Supprimer ou mettre jour. Si vous ne disposez pas dune connexion Internet, connectez-vous depuis un autre poste reli Internet et tlchargez les dirents modules (chiers .bin.zip) partir du site : http://atoms.scilab.org Tapez dans la console :
--> atomsSetConfig("offLine","True") --> atomsInstall("chemin_de_telechargement\nom_du_fichier_zip_telecharge")

Par exemple sous Windows, si le module CPGE, sous la forme dun chier zip, a t tlcharg dans E:\Telechargement, on tape la commande :
--> atomsInstall("E:\Telechargement\nom_du_fichier.bin.zip")
noter Dans le cas dun environnement Unix (Linux ou Mac OS), remplacer les anti-slashs (\) par des slashs (/) conformment aux habitudes dcriture des chemins daccs aux chiers.

Installation dun compilateur c


w Sous Windows Installez depuis le Gestionnaire de modules atomS, le module MinGW (catgorie Windows Tools). Suivez bien la procdure dcrite dans la fentre d'installation du module.

6|

InTRODUCTIOn

w Sous linux Le compilateur GCC tant disponible dans ce systme dexploitation, il sut de vrier (via Synaptic, Yum ou tout autre systme de gestion de paquets) quil est prsent et jour. w Sous mac Tlchargez XCode via lApp Store (Mac OS 10.7) ou via les CD fournis avec lordinateur (Mac OS 10.5 et 10.6). Pour les versions antrieures, voir le site dApple. Validez la possibilit dutiliser le compilateur hors de lenvironnement Xcode. Pour cela, aprs avoir lanc Xcode, allez dans Prfrences , puis Downloads et, dans longlet Components , cochez la case Check for and install updates automatically et installez lextension Command Line Tools . Il est bien entendu que si un compilateur C est dj install sur votre machine, il nest pas ncessaire den installer un nouveau. Pour vrier que Scilab a bien dtect votre compilateur, utilisez la commande qui retourne %T si un compilateur est install :
--> haveacompiler()

lISte de dIffuSIon
Pour faciliter lchange entre les utilisateurs de Scilab du monde de lducation, une liste de diusion leur est ddie. Le principe est simple. Les personnes inscrites peuvent communiquer les unes avec les autres par courrier lectronique (questions, rponses, partage de documents, retour dexpriences...). Pour sinscrire, il sut de complter un formulaire disponible en ligne ladresse suivante : http://lists.scilab.org/mailman/listinfo/enseignement Vous recevrez une conrmation de votre inscription. Il vous sura alors denvoyer un message ladresse enseignement@lists.scilab.org pour que celui-ci soit redistribu automatiquement tous les inscrits de la liste.

reSSourceS complmentaIreS
Le site Internet de Scilab dispose dune rubrique consacre lutilisation de Scilab pour lenseignement (http://www.scilab.org/fr/community/education), avec des liens et des documents utiles, dont le prsent livret au format PDF, un livret destin lenseignement des mathmatiques, des exercices et des corrigs dpreuves pratiques, le tout pouvant tre tlcharg et imprim librement. Le site des professeurs ayant largement contribu lcriture de ce prsent livret est galement une source riche dinformations et dexemples dutilisation : http://www.demosciences.fr/

|7

SE FAMILIARISER XCOS

1 - Se famIlIarISer XcoS
La simulation numrique est aujourdhui incontournable dans le processus de conception de systmes. Simuler des phnomnes complexes (physiques, mcaniques, lectroniques, etc.) permet den tudier les comportements et dobtenir des rsultats sans avoir besoin de recourir lexprience relle. Largement utilise dans le monde de lindustrie, les ingnieurs et les chercheurs de demain sont forms ds le secondaire aux concepts de modlisation et de simulation. Xcos est loutil de Scilab ddi la modlisation et la simulation de systmes dynamiques hybrides incluant la fois des modles continus et discrets. Il permet aussi de simuler des systmes rgis par des quations explicites (simulation causale) et implicites (simulation acausale). Xcos inclut un diteur graphique permettant de reprsenter facilement des modles sous forme de schmas fonctionnels (diagrammes) en connectant des blocs entre eux. Chaque bloc reprsente une fonction de base prdnie ou une fonction dnie par lutilisateur. Distribu librement et gratuitement avec Scilab, Xcos est loutil idal pour lenseignement et lapprentissage des sciences de lingnieur en classe comme la maison.

lenvIronnement Gnral
Aprs avoir lanc Scilab, lenvironnement par dfaut est constitu dune console, dun navigateur de chiers, dun navigateur de variables et dun historique des commandes.

|9

SE FAMILIARISER XCOS

Dans la console, aprs --> , il sut de saisir une commande et dappuyer sur la touche entre du clavier pour obtenir le rsultat correspondant. Xcos peut tre ouvert : w Depuis la barre doutils, via licne , ou w Depuis la barre de menus, dans applications / Xcos, ou w Depuis la console, en tapant :
-->xcos

Xcos souvre, par dfaut, avec deux fentres : w Le navigateur de palettes qui met disposition un ensemble de blocs prdnis, w Une fentre ddition qui est la zone de construction dun diagramme.

Pour construire un diagramme, lutilisateur slectionne les blocs dans le navigateur de palettes et les positionne dans la fentre ddition (cliquer / glisser / dposer). Il peut ensuite connecter les blocs entre eux en utilisant leurs dirents ports (entre / sortie / vnement) pour pouvoir simuler le modle cr.

10 |

SE FAMILIARISER XCOS

la barre de menuS
La barre de menus utile dans Xcos est celle de la fentre ddition.

menu fichier
w nouveau diagramme (Ctrl+N sous Windows et Linux / Cmd+N sous Mac OS X) Ouvre une nouvelle fentre ddition de Xcos. Le diagramme Xcos courant nest pas aect. w ouvrir (Ctrl+O sous Windows et Linux / Cmd+O sous Mac OS X) Charge un chier Xcos au format .zcos ou .xcos contenant un diagramme ou une palette. w ouvrir le chier dans le rpertoire courant de Scilab Charge un chier Xcos au format .zcos ou .xcos contenant un diagramme ou une palette depuis le rpertoire de travail de Scilab. w ouvrir rcents Propose les chiers rcemment ouverts. w fermer (Ctrl+W sous Windows et Linux / Cmd+W sous Mac OS X) Ferme le diagramme courant si plusieurs diagrammes sont ouverts. Quitte Xcos si un seul diagramme est ouvert. Les fentres auxiliaires telles que le navigateur de palettes sont galement fermes la fermeture du dernier diagramme. w enregistrer (Ctrl+S sous Windows et Linux / Cmd+S sous Mac OS X) Enregistre les modications apportes un diagramme. Si celui-ci na pas t prcdemment enregistr dans un chier, il sera propos de lenregistrer (cf. Enregistrer sous). w enregistrer sous (Ctrl+Maj+S sous Windows et Linux / Cmd+Maj+S sous Mac OS X) Enregistre le diagramme ou la palette avec un nouveau nom. Le schma prend alors le nom du chier (sans lextension). w exporter (Ctrl+E sous Windows et Linux / Cmd+E sous Mac OS X) Exporte une image du diagramme Xcos courant aux formats standards (PnG, SVG, etc.) w exporter tous les diagrammes Exporte des images du diagramme et du contenu de ses superblocs. w Imprimer (Ctrl+P sous Windows et Linux / Cmd+P sous Mac OS X) Imprime le diagramme courant. w quitter (Ctrl+Q sous Windows et Linux / Cmd+Q sous Mac OS X) Quitte Xcos.

menu dition
w annuler (Ctrl+Z sous Windows et Linux / Cmd+Z sous Mac OS X) Annule la ou les dernire(s) opration(s). w rtablir (Ctrl+Y sous Windows et Linux / Cmd+Y sous Mac OS X) Rtablit la ou les dernire(s) opration(s) annule(s).

| 11

SE FAMILIARISER XCOS

w couper (Ctrl+X sous Windows et Linux / Cmd+X sous Mac OS X) Supprime les objets slectionns dun diagramme et en garde une copie dans le presse-papier. w copier (Ctrl+C sous Windows et Linux / Cmd+C sous Mac OS X) Place une copie des objets slectionns dans le presse-papier. w coller (Ctrl+V sous Windows et Linux / Cmd+V sous Mac OS X) Ajoute le contenu du presse-papier au diagramme courant. w Supprimer (Suppr) Eace les blocs ou les liens qui ont t slectionns. Quand un bloc est supprim, tous les liens qui lui sont connects sont eux aussi eacs. w tout slectionner (Ctrl+A sous Windows et Linux / Cmd+A sous Mac OS X) Slectionne tous les lments du diagramme courant. w Inverser la slection Inverse la slection courante. w paramtres du bloc (Ctrl+B sous Windows et Linux / Cmd+B sous Mac OS X) Congure le bloc slectionn (voir laide du bloc pour obtenir plus dinformations sur sa conguration). w Zone vers superbloc Convertit une slection de blocs et de liens en un superbloc.

menu achage
w Zoom avant (Ctrl+Pav numrique Plus sous Windows et Linux / Cmd+Pav numrique Plus sous Mac OS X) Agrandit la vue de 10 %. w Zoom arrire (Ctrl+Pav numrique Moins sous Windows et Linux / Cmd+Pav numrique Moins sous Mac OS X) Rduit la vue de 10 %. w ajuster le diagramme la vue Ajuste la vue la taille de la fentre. w normal 100 % Dimensionne la vue sa taille par dfaut. w navigateur de palettes Ache / masque le navigateur de palettes. w navigateur de diagrammes Ache une fentre qui liste les proprits globales du diagramme et de tous les objets quil contient (blocs et liens). w aperu Ache un aperu complet du diagramme courant. Avec la vue Aperu, vous pouvez dplacer laire de travail ache sur une partie du diagramme.

12 |

SE FAMILIARISER XCOS

menu Simulation
w congurer Modie les paramtres de simulation. w trace dexcution et de dbogage Congure la simulation en mode dbogage. w modier le contexte Permet dentrer des instructions Scilab pour dnir des variables / fonctions utilisables dans le paramtrage des blocs dun diagramme. w compiler Compile le diagramme. w Initialisation de modelica Permet dinitialiser les variables du sous-ensemble acausal du diagramme. w dmarrer Lance la simulation. w arrter Interrompt la simulation.

menu format
w pivoter (Ctrl+R sous Windows et Linux / Cmd+R sous Mac OS X) Pivote le ou les bloc(s) slectionn(s) de 90 anti-horaire. w retourner (Ctrl+F sous Windows et Linux / Cmd+F sous Mac OS X) Inverse les positions des entres et sorties dvnements places au-dessus et au-dessous dun bloc slectionn. w miroir (Ctrl+M sous Windows et Linux / Cmd+M sous Mac OS X) Inverse les positions des entres et sorties rgulires places gauche et droite dun bloc slectionn. w acher / masquer lombre Ache / masque lombre porte des blocs slectionns. w aligner les blocs En slectionnant plusieurs blocs, il est possible de les aligner sur laxe horizontal (gauche, droite et centre) ou sur laxe vertical (haut, bas et centre). w couleur de bordure Change la couleur des bords des blocs slectionns. w couleur de fond Change la couleur de remplissage des blocs slectionns. w Style de liens Modie le style dun lien.

| 13

SE FAMILIARISER XCOS

w fond du diagramme Change la couleur de fond du diagramme. w Grille Active / dsactive la grille. Avec la grille, le positionnement des blocs et des liens est plus facile.

menu outils
w Gnration de code Permet de gnrer le code de simulation associ un superbloc slectionn.

menu ?
w aide de Xcos Ouvre laide sur le fonctionnement de Xcos, des palettes, des blocs et des exemples. w aide du bloc Ouvre laide sur un bloc slectionn. w dmonstrations Xcos Ouvre des exemples de diagrammes et les simule. Lutilisateur peut alors, sil le souhaite, modier ces diagrammes et les sauvegarder pour une utilisation future.

leS paletteS dISponIbleS


w blocs couramment utiliss Blocs les plus utiliss. w Systmes temps continu Blocs continus (intgration, drive, PID). w fonctions discontinues Blocs dont les sorties sont des fonctions discontinues de leurs entres (hystrsis). w Systmes temps discret Blocs de modlisation en temps discret (drive, chantillonn / bloqu). w Interpolation Blocs calculant des approximations de sortie partir des entres. w Gestion dvnements Blocs permettant de grer les vnements dans le diagramme (horloge, multiplication / division de frquence). w oprations mathmatiques Blocs de modlisation des fonctions mathmatiques gnrales (cosinus, sinus, division, multiplication, etc.).

14 |

SE FAMILIARISER XCOS

w matrice Blocs pour des oprations matricielles simples et complexes. w lectrique Blocs reprsentant des composants lectriques de base (source de tension, rsistance, diode, condensateur, etc.). w entier Blocs permettant la manipulation de nombres entiers (oprateurs logiques, portes logiques). w port et sous-systme Blocs de cration de sous-systmes. w dtection de passage zro Blocs utiliss pour dtecter les traverses de zro pendant la simulation. Ces blocs utilisent les capacits des solveurs (ODE ou DAE) pour eectuer cette opration. w routage de signal Blocs permettant le routage du signal, multiplexage, aiguillage, chantillonn / bloqu. w traitement du signal Blocs pour des applications en traitement du signal. w Implicite Blocs pour modliser des systmes implicites. w annotations Blocs utiliss pour les annotations. w Sinks Blocs de sortie utiliss pour lachage graphique (scope) et lexport de donnes (chier ou Scilab). w Sources Blocs de sources de donnes (impulsion, rampe, sinusode) et de lecture de donnes partir de chiers ou de variables Scilab. w thermohydrauliques Blocs des composants thermohydrauliques de base (source de pression, tuyaux, vannes de rgulation). w blocs de dmonstration Blocs utiliss dans les diagrammes de dmonstration. w fonctions dnies par lutilisateur Blocs utilisateurs permettant de modliser un comportement (fonction de simulation C, Scilab ou Modelica).

| 15

SE FAMILIARISER XCOS

eXemple de conStructIon dun dIaGramme SImple


nous allons vous expliquer comment construire de A Z, un modle de systme temps continu modlis par une fonction de transfert dordre 1. Lancez Xcos. Comme vu prcdemment, Xcos souvre par dfaut avec le navigateur de palettes et une fentre ddition. Dans le navigateur de palettes, nous allons utiliser les blocs suivants :
dsignation chelon reprsentation Sous-palette standard Sources / STEP_FUnCTIOn

Fonction de transfert continue

Systmes temps continu / CLR

Horloge

Sources / CLOCK_C

Visualisation

Sinks / CSCOPE

Disposez les blocs dans la fentre ddition. Pour relier les ports dentre et de sortie entre eux, cliquez sur la sortie (che noire) du bloc STEP-FUnCTIOn et en maintenant le bouton de la souris appuy, reliez au port dentre du bloc CLR, un carr vert apparat en surbrillance pour indiquer que le lien est correct, comme dcrit dans les images ci-dessous :

16 |

SE FAMILIARISER XCOS

Relchez pour naliser le lien. Compltez ensuite les connexions des blocs entre eux pour arriver ce rsultat :

Il est possible damliorer laspect de votre diagramme en utilisant les options dalignement des blocs (menu format / aligner les blocs) et de style de liens (menu format / Style de liens). tout moment, les blocs peuvent tre dplacs ou repositionns en les slectionnant et en maintenant le bouton de la souris appuy pendant le dplacement. Relchez le bloc la position souhaite. La simulation est lance en cliquant sur licne (ou depuis le menu Simulation / dmarrer) et peut tre stoppe en cliquant sur (ou depuis le menu Simulation / arrter). Une nouvelle fentre (scope) apparat, montrant lvolution de la simulation. En bas de la fentre ddition du diagramme, une mention indique que la simulation est en cours :

| 17

SE FAMILIARISER XCOS

Les rsultats de cette simulation ntant pas exploitables, nous choisissons de modier les paramtres du bloc CLR et de la simulation.

Un contexte contenant du script Scilab permet de rutiliser facilement des fonctions et des variables. nous allons utiliser ce contexte pour xer des valeurs de rfrence lors de la simulation du diagramme.

Cliquez sur Simulation / modier le contexte dans la barre de menus et dclarez les variables suivantes : w K=1 w Tau = 1 Vous pouvez maintenant utiliser ces variables pour le paramtrage des blocs du diagramme. Double-cliquez sur le bloc CLR, une bote de dialogue souvre avec les paramtres par dfaut du bloc. Modiez ces paramtres : w numrateur : K w Dnominateur : 1+Tau*s La nouvelle fonction de transfert est ache sur le bloc :

18 |

SE FAMILIARISER XCOS

nous allons maintenant congurer la simulation et les blocs pour visualiser la rponse temporelle du systme une impulsion. Pour cela, nous allons limiter le temps de simulation 5 secondes (menu Simulation / congurer).

Double-cliquez sur le bloc CSCOPE pour congurer lachage des valeurs comprises entre 0 et 1.2, puis la priode de rafrachissement du scope 5 secondes. Pour cela, changez les paramtres suivants : w Ymin : 0 w Ymax : 1.2 w Refresh period : 5 Relancez la simulation et visualisez le rsultat :

| 19

SE FAMILIARISER XCOS

leS SuperblocS
Pour faciliter la comprhension de certains diagrammes, il est souvent utile de recourir aux superblocs ou blocs composites. Un superbloc contient une partie dun diagramme ainsi que des blocs reprsentant ses entres et sorties. Il peut tre manipul comme un seul et unique bloc dans le diagramme parent.

Aprs avoir ralis un diagramme et slectionn la partie du diagramme (ou sous-diagramme) que lon souhaite runir en un bloc, la cration dun superbloc seectue partir du menu dition / Zone vers Superbloc.

La slection est alors devenue un bloc dont on peut acher le contenu en double-cliquant dessus. Une nouvelle fentre ddition souvre alors avec la slection de blocs initiale.

Il est galement possible de masquer le superbloc cr pour dsactiver laccs au sous-diagramme. Pour cela, on eectue un clic-droit sur le superbloc puis masque du superbloc / crer. On peut galement rendre accessible certains paramtres de conguration du sous-diagramme dans une seule interface de conguration par un clic-droit sur le superbloc, puis masque du superbloc / personnaliser. Il sut ensuite dajouter les paramtres que lon souhaite rendre accessibles.

20 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

2 - modlISatIon multI-phySIque acauSale (module SImm)


La modlisation dite acausale est une forme rcente de modlisation des systmes qui permet de dcrire les quations modlisant les phnomnes physiques sans anticiper lorientation des liens entre les composants ou phnomnes. Il ny a notamment pas de choix particulier de variables changes entre composants (force ou vitesse par exemple), ni de notion dentre / sortie. Cette particularit conduit une trs grande exibilit des modles de composants dvelopps, une rutilisation des modles sur de nouveaux projets et la possibilit de construire des bibliothques de composants. Ces avantages en font un outil pris en entreprise. Dun point de vue pdagogique, le modle acausal est trs proche de larchitecture matrielle et permet de simuler le comportement dun systme complexe sans avoir crire la moindre quation. Lobjectif de cette premire partie est de montrer les possibilits de Scilab / Xcos pour simuler des processus multi-physiques par une approche acausale.

comparaISon deS approcheS cauSale et acauSale


Le circuit RLC aliment par une source de tension U est reprsent par le schma lectrique suivant : , , , et

La reprsentation acausale ne privilgie aucune grandeur physique particulire et est base sur la notion de composants. Ainsi, dans Scilab / Xcos, le diagramme correspondant au circuit RLC est le suivant :

| 21

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Il nest pas ncessaire dcrire les quations du systme car chaque bloc les contient. Il sut simplement de congurer les paramtres de chaque bloc (R, L, C et U) en double-cliquant dessus. Un lien entre deux blocs contient dans ce cas la fois le potentiel et lintensit. Cette modlisation permet dexprimer des relations entre composants sans connatre la grandeur que lon cherche calculer. Pour extraire cette grandeur, on utilisera des blocs de type capteur et ainsi entrer dans le monde causal. Dans une reprsentation purement causale, les liens reprsentent une grandeur physique particulire et le diagramme est alors une traduction des quations plutt quune reprsentation des composants. Lors de la modlisation, la grandeur de sortie est donc exprime dans une relation directe contenant des blocs intgrale pour chacune des quations contenant une drive. Cela donne :

On peut alors modliser les quations par un diagramme de ce type :

Celui-ci est donc plus compliqu que le diagramme prcdent. On a aussi perdu la signication physique. Lutilisation de la transforme de Laplace permet, entre autre, de simplier la reprsentation causale par ce diagramme (en supprimant, par exemple, la boucle avec R) :

22 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Chacune des formes des connecteurs correspond une grandeur physique. Une validation des liens entre connecteurs est ralise lors de la simulation an de garantir une modlisation cohrente. Reliez les blocs entre eux en respectant obligatoirement les formes et couleurs des connecteurs. Relier un connecteur carr-rouge un connecteur carr-bleu revient crire une galit entre llectrique et le thermique sans conversion. Ce type de connexion ne gnrera pas derreur lors de ldition du diagramme mais une erreur de compilation sera retourne lors de la simulation. An dviter les erreurs, veillez connecter des ports de mme domaine fonctionnel : w Triangle bleu : signal de donnes (sans dimension). w Carr bleu : lectrique. w Carr rouge : thermique. w Carr vert : mcanique 1D en translation. noter Certains connecteurs sont vides, dautres pleins w Rond gris : mcanique 1D en rotation. mais il ny a pas de dirences entre eux. Certains w Carr gris : mcanique 2D plane.

composants sont cependant orients, on reprera leur polarit en fonction des connecteurs. On rappelle que dans une reprsentation acausale, il ny a pas de notion dentre / sortie.

| 23

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

eXemple 1 : rGulatIon de la temprature IntrIeure dune maISon dhabItatIon


On se propose dtudier le problme de la rgulation de temprature dune maison une temprature xe de 20 C. La temprature des pices volue car la temprature extrieure passe de 25 C le jour 5 C la nuit et lisolation thermique nest pas parfaite.

Les phnomnes physiques sont, en premire approximation, assez simples modliser : w Lintrieur de la maison est modlis par une capacit thermique (ou inertie thermique) qui caractrise la capacit du btiment absorber ou restituer la chaleur, w Lisolant thermique de la maison agit comme un conducteur thermique entre lintrieur et lextrieur modlisant ainsi les changes de chaleur, w Un radiateur chaue lintrieur de la maison quand cela est ncessaire et est modlis par une rsistance chauante. La commande Tout-Ou-Rien (TOR) sappuie sur la mesure de la temprature intrieure et la consigne de temprature de la pice pour allumer le radiateur quand la temprature mesure passe 3 degrs sous la consigne. Lasservissement Tout-Ou-Rien est reprsent par le schma fonctionnel suivant :

Chane daction

Perturbations

Consigne de temprature

Relais

Radiateur

Pice

Temprature de la pice

Sonde

24 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

comportements physiques lmentaires


La capacit thermique (ou capacit calorique) dun corps est une grandeur permettant de quantier la possibilit qua un corps dabsorber ou de restituer de lnergie par changes thermiques au cours dune transformation pendant laquelle sa temprature varie. Lancez le logiciel Scilab. Scilab charge automatiquement les modules installs via ATOMS. Lancez ensuite Xcos. Tous les blocs ncessaires la simulation de processus se situent dans le navigateur de palettes. Le module SIMM a ajout un certain nombre de sous-palettes contenant dirents blocs. Double-cliquez sur SIMM pour faire apparatre la liste des sous-palettes.

noter La capacit thermique est lnergie quil faut apporter un corps pour augmenter sa temprature dun Kelvin. Elle sexprime en Joule par Kelvin (J.K-1). Cest une grandeur extensive. Plus la quantit de matire est importante plus la capacit thermique est grande. La conduction thermique est un transfert thermique spontan dune rgion de temprature leve vers une rgion de temprature plus basse, et est dcrite par la loi dite de Fourier o F est le ux de chaleur.

Dans SIMM, les composants des chanes dnergie et dinformation ont t regroups (sous-palette Composants). On retrouve galement une organisation des blocs par domaines (sous-palettes Signaux, Mcanique, lectrique, Thermique).

modlisation du radiateur et de la maison


On va modliser le chauage de la maison par le diagramme suivant :

Dmonstrations / SIMM / Exemples Livret / Exemple 1

| 25

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Positionnez les blocs suivants puis double-cliquez sur chacun deux pour congurer les paramtres indiqus lorsque cela est prcis :
dsignation reprsentation Sous-palette SImm lectrique / Composant basique / Passif / MEAB_HeatingResistor lectrique / Composant basique / Passif / MEAI_IdealClosingSwitch lectrique / Sources / CEAS_PredefVoltage lectrique / Sources / MEAB_Ground Thermique / Basique / MTH_HeatCapacitor 500 000 J.K-1 Constante 220 V paramtrage 50 la temprature de rfrence Temprature de rfrence de 20 C = 293.15 K Coecient de temprature gal 0

Rsistance chauante

Interrupteur command

Source de tension Masse Capacit thermique

noter 5.105 scrit 5e5 dans Scilab. -4.10-3 scrit -4e-3 dans Scilab.

Pour changer lorientation dun bloc, slectionnez le puis faire un clic droit et slectionnez format / pivoter ou format / miroir (ou tapez directement Ctrl+R ou Ctrl+M sous Windows et Linux / Cmd+R ou Cmd+M sous Mac OS X). Pour simuler le comportement du chauage, on impose en entre de linterrupteur command, un signal crneau passant de 0 1 sur une priode de 3 heures (3*3600 secondes car lunit temporelle est la seconde) et de rapport cyclique 20 %. Ceci signie que toutes les 3 heures, on chaue durant 36 minutes. On utilise le bloc MBS_Pulse de la sous-palette Signaux / Sources. Il faut galement spcier sur quelle dure de simulation le comportement doit tre valu. On choisit une dure de 4 jours. La dure de simulation est spcie par le bloc IREP_TEMP (sous-palette Utilitaires / Analyses) o lon congurera 3600*24*4. On choisit de paramtrer le bloc de manire ce que 20 000 points de visualisation soient calculs et que les courbes correspondantes soient traces la n du calcul. Les quantits thermiques, le ux et la temprature circulent sur le lien reliant la rsistance chauante la capacit. Pour acher la temprature, il faut extraire de ce lien la grandeur temprature, en utilisant le bloc MTHC_TemperatureSensor de la sous-palette Thermique / Mesure.

26 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

La sortie signal (triangle bleu) peut ensuite tre visualise ou utilise dans le diagramme. Pour visualiser des signaux provenant dune source ou dun capteur, on utilise le bloc ISCOPE de la sous-palette Utilitaires / Visualisation pour lequel le nombre dentres visualiser sur un mme graphique est spci (une lgende peut tre donne pour chaque courbe dans le deuxime menu). devient si lon congure plus dune entre (ici 3). Ajoutez donc un bloc ISCOPE deux entres pour visualiser le signal crneau et la temprature de la maison. Indiquez comme nom de courbes Signal de commande reprsentant la consigne et Temprature de la pice . Le tableau ci-dessous rsume lensemble des blocs positionner et les paramtres congurer :
dsignation Signal crneau reprsentation Sous-palette SImm Signaux / Sources / MBS_Pulse paramtrage Amplitude : 1 Rapport cyclique : 20 % Priode : 3*3600 s Dure : 3600*24*4 s nombre de points (pour la visualisation et le calcul) : 20 000 Acher les courbes pendant la simulation : non

tude temporelle

Utilitiaires / Analyses / IREP_TEMP

Capteur de temprature Visualisation

Thermique / Mesure / MTHC_TemperatureSensor Utilitaires / Visualisation / ISCOPE


160 150

nombre de courbes : 2

Lancez la simulation. Les rsultats de celle-ci sachent sur une nouvelle fentre. Les courbes montrent notamment quun tel modle, ne prenant pas en compte les pertes au niveau des murs, nest pas raliste.

Signal de commande Temprature de la pice

140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 0 50 000 100 000 150 000 200 000 250 000 300 000 350 000

| 27

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

amlioration du modle
prise en compte des pertes On choisit de prendre en compte les pertes en modlisant le mur par un conducteur thermique et en reprsentant l'volution de la temprature extrieure au cours d'une journe par une sinusode.

Dmonstrations / SIMM / Exemples Livret / Exemple 2

Pour cela, on insre les composants suivants :


dsignation Conductivit thermique reprsentation Sous-palette SImm Thermique / Basique / MTH_ThermalConductor Thermique / Sources / MTHC_PrescribedTemperature Amplitude : 10 Dcalage : 15 Frquence : 1/24h =1/(3600*24) Hz paramtrage 20 W.K-1

Source de temprature

Signal sinusodale

Signaux / Sources / MBS_Sine

Le signal sinusodal modlise la variation de temprature extrieure de 5 C 25 C, ce qui justie les paramtres retenus. Pour imposer une temprature comme pour la visualiser, il est ncessaire de spcier une source de temprature et dindiquer sa variation en donnant le signal correspondant. Modiez le bloc ISCOPE pour ajouter une troisime entre et visualiser lvolution de la temprature extrieure.
28 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

35

Lancez une nouvelle simulation et observez que la commande par impulsion nest pas optimale.

30

Signal de commande Temprature de la pice Temprature extrieure

25

20

mise en place de la rgulation Pour assurer la rgulation de temprature, il sut de comparer le signal de temprature de la pice une temprature de consigne. Lcart ainsi form est utilis comme entre dun relais qui ferme ou non linterrupteur.

15

10

La consigne de temprature est un bloc signal constant MBS_Constant (sous-palette Signaux / Sources). Une valeur de 20 C est spcie. Pour calculer lcart, on utilise un bloc sommateur MBM_Add (sous-palette Signaux / Math). Pour changer les signes du sommateur, double-cliquez sur le bloc et renseignez les valeurs -1 et 1. La commande du relais CBn_Hysteresys (sous-palette Signaux / non-linarits) passe 1 (qui correspond la fermeture) lorsque lcart est suprieur 3 C. Elle repasse 0 lorsque lcart est nul. Congurez le bloc comme indiqu ci-contre. Le diagramme global est alors le suivant :

50 000

100 000

150 000

200 000

250 000

300 000

350 000

Dmonstrations / SIMM / Exemples Livret / Exemple 3


| 29

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Relancez la simulation pour obtenir la courbe ci-dessous :


24 22 20 18 16 14 12 10 8 6 4 2 0 Signal de commande Temprature de la pice Temprature extrieure

50 000

100 000

150 000

200 000

250 000

300 000

350 000

On obtient des rsultats de simulation cohrents. Lorsque la temprature de la maison descend 17 C, le systme de chauage se met en route et la temprature remonte 20 C quelle que soit la temprature extrieure. On constate galement que le systme ne peut pas refroidir la maison lorsque la temprature extrieure dpasse la consigne. travers cette activit, nous avons pu trs facilement voir lintrt dune rgulation de temprature en prenant en compte un modle trs simple dune maison chaue par un radiateur. La prise en main du module SIMM est immdiate et ne ncessite que de connatre quelques principes physiques lmentaires. Cependant, il est ncessaire de garder en mmoire que normalement la tension du courant domestique est sinusodale (220 V, 50 Hz) mais videment, si le simulateur doit reprsenter correctement le signal sinusodal dans le circuit lectrique, le pas de temps devra tre trs petit (de lordre de 1 / 500 s) alors que le phnomne thermique est tudi sur plusieurs jours... Cest pourquoi, on utilise une source continue quivalente dans le modle. Comme nous le verrons dans lactivit suivante, il faut viter dune faon gnrale dimposer dans un mme modle des phnomnes dont les constantes de temps sont trs loignes. Cette contrainte conduit des compromis sur le niveau de dtail des modles choisis et ncessite du recul quant aux phnomnes physiques tudis.

30 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

eXemple 2 : pIlotaGe dun moteur courant contInu


La plupart des systmes dvelopps par les lves en projet ncessite le pilotage dun moteur courant continu. Il est indispensable de modliser ces moteurs courant continu pour tre capable, par exemple, de raliser un asservissement ou bien dvaluer les performances du systme. Le moteur courant continu est modlis, dans son rgime linaire, par les cinq quations suivantes : , , , et

w Lquation 1 correspond au modle lectrique du moteur qui est Moment dinertie J modlis par une rsistance R en srie avec une inductance L et une force lectromotrice (fem) E. w Les quations 2 et 3 correspondent aux quations de couplage lectromcanique. Le courant circulant dans la bobine gnre des Cm Cpert forces de Laplace qui se traduisent par un couple moteur Cm. w Lquation 3 traduit le lien entre la vitesse angulaire et la force lectromotrice. w Lquation 4 dcrit le couple d au frottement visqueux. w Lquation 5 correspond lquation de dynamique obtenue en isolant larbre moteur et en lui appliquant le thorme de lnergie cintique sachant quil est soumis : - un couple moteur Cm, - un couple Cpert (frottements secs par exemple) - un couple Cf d au frottement visqueux. Lobjectif de cette activit est de montrer comment modliser le moteur et le piloter.

Cf

modlisation mcanique
Le schma cinmatique du moteur soumis des actions mcaniques peut directement tre traduit dans Xcos. Pour commencer, on considre le rotor en liaison pivot soumis un couple Cm et un couple Cpert. Un solide en rotation autour dun axe xe est caractris mcaniquement par son moment dinertie autour de laxe de rotation (dicult le mettre en mouvement).

| 31

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Positionnez les blocs suivants comme indiqu sur le diagramme ci-aprs :


dsignation Solide en rotation autour dun axe xe Couple extrieur (entre laxe et le bti) reprsentation Sous-palette SImm Mcanique / Rotation 1D / Basique / MMR_Inertia Mcanique / Rotation 1D / Sources / CMRS_Torque0 Utilitaires / Analyses / IREP_TEMP Dure : 1 s nombre de points : 200 paramtrage 0.00002 kg.m2

tude temporelle

On constate que ce diagramme correspond exactement au schma cinmatique. Sur un tel diagramme, on ne spcie pas les volutions des grandeurs. De la mme manire, il faut indiquer dans Xcos comment voluent les couples Cm et Cpert. Reliez ainsi le couple Cm un signal constant MBS_Constant (sous-palette Signaux / Sources) gal 0.11 n.m et le couple Cpert un signal constant de 0.01 n.m. On peut ensuite visualiser les grandeurs qui transitent sur chaque lien entre les composants. Dans un modle mcanique 1D de type rotation, ces grandeurs sont lacclration, la vitesse et la position angulaires ainsi que le couple. Ajoutez le bloc de mesure CMRS_GenSensor (sous-palette Mcanique / Rotation 1D / Mesure) et double-cliquez dessus. Choisissez de visualiser la vitesse (le texte sur le bloc change). Ajoutez galement un bloc ISCOPE (sous-palette Utilitaires / Visualisation) une entre. On obtient le diagramme suivant :

Dmonstrations / SIMM / Exemples Livret / Exemple 4


32 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

5 000 4 500 4 000 3 500

Vitesse angulaire (rad/s)

Lancez la simulation et observez une droite de pente 5 000 rad.s-1 reprsentant la vitesse. Ce rsultat permet dattester le modle dynamique utilis et illustre bien la notion dinertie. Cependant, ce modle ne prend pas en compte la limitation de lapport en nergie, ni les frottements.

3 000 2 500 2 000 1 500 1 000 500

Un couple de frottement visqueux existe entre le bti et le rotor. Pour le modliser, il sut dajouter sur le lien reprsentant laxe : w Un bloc amortissement linaire / visqueux MMR_Damper (sous-palette Mcanique / Rotation 1D / Basique avec une valeur de 0.0001 n.m.s.rad-1), w Le bti MMR_Fixed (sous-palette Mcanique / Rotation 1D / Basique).
0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Dmonstrations / SIMM / Exemples Livret / Exemple 5

La simulation sur 1 seconde fournit une rponse dun systme dordre 1 tendant vers la valeur (Cm + Cpert) / viscosit avec une constante de temps gale J / viscosit.
1 000 Vitesse angulaire (rad/s) 900 800

Il ne faut pas oublier de mettre un bti (rfrentiel galilen dtude) dans une tude mcanique. Il est implicitement spci lorsque lon impose les couples.
noter Le comportement en translation rectiligne (Translation 1D) fonctionne exactement sur le mme principe.

700 600 500 400 300 200 100 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

| 33

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

modlisation lectrique et couplage


Positionnez partir de la sous-palette lectrique, les blocs suivants et reliez-les entre eux :
dsignation Source de tension reprsentation Sous-palette SImm lectrique / Sources / CEAS_PredefVoltage lectrique / Composant basique / Passif / MEAB_Resistor lectrique / Composant basique / Passif /MEAB_Inductor lectrique / Composant basique / Passif /CEAB_EMFGEn lectrique / Sources / MEAB_Ground paramtrage Constante 12 V 1

Rsistance

Inductance

0.001 H 0.01 n.m.A-1 Reli au bti (ce qui veut dire que le stator est xe)

Force lectromotrice en rotation Masse

On constate que le bloc CEAB_EMFGEn propose de supposer que le bti est implicitement donn ou non. Pour la source de tension, les connecteurs ont un sens particulier, le connecteur plein (carr bleu) correspond la borne positive, le connecteur vide (carr blanc au cadre bleu) la borne ngative. Le diagramme lectrique est nouveau comparable au circuit lectrique. Il ne faut pas oublier de mettre une masse dans le circuit.

Dmonstrations / SIMM / Exemples Livret / Exemple 6


34 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

En enlevant le couple rsistant (Cpert), on obtient la rponse suivante :


600 550 500 450 400 350 300 250 200 150 100 50 0 Vitesse angulaire (rad/s)

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Ajoutez un ampremtre reprsent par le bloc MEAS_CurrentSensor (sous-palette lectrique / Mesure) et placez-le correctement dans le diagramme pour mesurer lintensit dans le circuit (en srie avec linductance par exemple). De la mme manire que les blocs sources, les bornes positive et ngative sont dnies par laspect plein ou vide des connecteurs. Positionnez galement un capteur de couple MMRS_TorqueSensor (sous-palette Mcanique / Rotation 1D / Mesure) pour mesurer le couple moteur, par analogie avec lintensit (cf. quation), en srie entre la force lectromotrice et linertie.

Dmonstrations / SIMM / Exemples Livret / Exemple 7


| 35

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

On obtient les courbes suivantes :


600 400 200 0 Vitesse angulaire (rad/s)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9 Intensit (A)

10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.1

Couple moteur (Nm)

0.05

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

On constate eectivement que le couple moteur est proportionnel lintensit. On peut galement tudier linuence de linductance sur la vitesse angulaire en modiant sa valeur dans le bloc correspondant.

modlisation du pilotage par hacheur


Le hacheur est le practionneur le plus courant pour lasservissement des moteurs courant continu. Il permet, en moyenne, de doser le niveau de tension aux bornes du moteur. Associ une mesure de courant et une rgulation, il peut aussi doser le niveau dintensit dans le moteur. Le pilotage dun hacheur se fait par lintermdiaire dun PWM ( Pulse Width Modulation ou MLI, Modulation de Largeur dImpulsions ). Le principe est simple. Un signal crneau de 0 (tat logique bas) 5 V (tat logique haut) dont le rapport cyclique, variable, est gnr. Comme la frquence de ce signal est leve (environ 500 Hz frquemment), si le systme connect en sortie du PWM est lent , il ne voit ses bornes que la tension moyenne du signal PWM (il fonctionne ainsi comme un ltre). Le hacheur fonctionne selon le mme principe que le signal PWM. Il hache la tension issue dune alimentation externe grce des transistors. La tension moyenne dpend alors du rapport cyclique. Cest le signal PWM qui est utilis pour commander ces transistors.

36 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Signal pWm
Ouvrez une nouvelle fentre ddition Xcos. Positionnez les blocs indiqus pour raliser le diagramme suivant :

Dmonstrations / SIMM / Exemples Livret / Exemple 9

dsignation Echelon

reprsentation

Sous-palette SImm Signaux / Sources / MBS_Step

paramtrage Amplitude : 125 (le reste 0) 8 bits Frquence : 500 Hz Temps de dpart : 0 s Dure 0.1s 1000 points Grille : oui Acher les courbes pendant la simulation : oui

PWM

Signaux / Sources / CCP_PWM

Etude temporelle

Utilitaires / Analyse / IREP_TEMP

Achage du signal

Utilitaires / Visualisation / ISCOPE


1 commande 0.9 0.8

Lancez une simulation et observez le signal. Remplacez lchelon par un bloc MBS_Ramp (sous-palette Signaux / Sources) de pente 255 / 0.1. Observez lvolution du signal crneau en sortie du PWM.

0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

| 37

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

hacheur 1 quadrant Le hacheur le plus simple est le hacheur srie 1 quadrant. Il est constitu dun transistor command (interrupteur command) et dune diode.

H iH v

ic

uL L

uH D iD

uc E

um

Reprenez le diagramme du moteur et ajoutez un interrupteur normalement ferm MEAI_IdealClosingSwitch et une diode CEAI_IdealDiode (sous-palette lectrique / Composant basique / Passif ). Insrez le pilotage par PWM donn prcdemment en utilisant un chelon damplitude 120.

Dmonstrations / SIMM / Exemples Livret / Exemple 10

38 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

300 200 100 0

Vitesse angulaire (rad/s)

Lancez une simulation sur une dure de 0.2 s (pour 10 000 points).
0.2

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18 Intensit (A)

8 6 4 2 0 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

0.18 Tension (V)

0.2

On obtient par simulation ce que lon peut observer laide dun oscilloscope et dune pince ampremtrique : une intensit hache dont lenveloppe correspond lintensit obtenue pour une tension continue de 120 / 256*12 = 5.625 V. La vitesse est par contre naturellement ltre . La tension vue par le moteur est bien un signal crneau de rapport cyclique 120 / 256 = 46.9 %. Les dirents exemples proposs sont relativement simples mais permettent dillustrer trs facilement le comportement lectrique et mcanique dun moteur courant continu pilot.

10 5

0 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

On remarque nouveau quil est important de choisir correctement le nombre de points utiliss pour le calcul pour pouvoir observer les phnomnes souhaits. Par exemple, le PWM tant cadenc 500 Hz, il est ncessaire de prendre au moins 5 000 points pour 1 seconde pour observer son allure. Et mme ainsi, en choisissant 1000 points pour 0.2 s, le compilateur ne russit pas mener la simulation bien (lalgorithme de calcul ne converge pas, il faut donc augmenter le nombre de points dobservation de faon consquente). Comme pour ltude thermique, il est draisonnable de modliser un hacheur pour un moteur ayant une constante de temps bien suprieure la priode du hacheur ou PWM. nous verrons dans la prochaine activit quil est possible dutiliser des blocs prdnis de certains composants standards (moteurs, hacheurs...) de manire viter des diagrammes trop denses.

| 39

Dcouvrez

Inria
A
ujourdhui, les technologies numriques rendent les transports plus autonomes et plus srs, les maisons plus intelligentes, lagriculture plus respectueuse de lenvironnement... Elles sont lorigine de nouveaux services, transforment en profondeur nos modes de vie et enrichissent notre quotidien.

Pour se dvelopper, notre socit compte toujours plus sur ces technologies numriques qui restent souvent invisibles. Elles sont issues de travaux de recherche longs et complexes associant sciences informatiques et mathmatiques. Cr en 1967, Inria est le seul institut public de recherche entirement ddi aux sciences du numrique. L institut runit aujourdhui 3500 chercheurs, inventeurs du monde numrique.

Ces chercheurs inventent les technologies numriques de demain.

Inria accueille chaque anne : 600 stagiaires de n dtude, plus de 1200 doctorants dans ses quipes de recherche

Issus des plus grandes universits internationales, ils croisent avec crativit recherche fondamentale et recherche applique. Ils se consacrent des problmes concrets, collaborent avec les acteurs de la recherche publique et prive en France et ltranger, et transfrent le fruit de leurs travaux vers les entreprises innovantes.

Et plus dinformations sur : www.inria.fr Twitter twitter.com/inria YouTube youtube.com/inriachannel

Quelques illustrations
de nos recherches

Clusters de calcul pour lexprimentation et Tlescope (quipes Cartes, Madynes)

Chercheuse (quipe Flowers)

Manipulation molculaire via cran multi-touch (quipe Mint)

Extraction des donnes cryptographiques dune carte bancaire

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

eXemple 3 : aXe aSServI danGIoGraphIe bI-plan


Ltude sera faite sur le dplacement en translation de larmature suspendue au plafond dune chane image dun angiographe bi-plan (voir gure ci-contre) permettant la cration dimages tridimensionnelles de la structure veineuse dun patient an de prvenir les risques de rupture danvrisme. La prise de vue est ralise en positionnant de manire trs prcise une tte et un rcepteur rayons X longitudinalement et angulairement, un logiciel ddi se chargeant de la cration dune image colorise destination du mdecin. Lensemble est constitu dun chariot supportant larmature (S2) et mis en mouvement par un moteur courant continu suivi dun rducteur roue-vis qui entrane les roues du chariot. Compte-tenu de la masse de larmature (S2) et de son encombrement, le mcanisme possde deux degrs de libert : la position du chariot y(t) et la position angulaire de larmature (S2) (t) qui apparat suite la dformation de larmature lors du dplacement. On appelle LP (Lateral Plan) lensemble constitu de la chane image latrale et de son armature suspendue au plafond. Le mouvement de translation est command par le mdecin laide dun joystick. La position voulue tant atteinte, le mdecin lche le joystick et dclenche la prise de vue laide dune pdale de commande. Le mdecin exige que la prise de vue puisse commencer ds la demande darrt du mouvement de translation. Le tableau ci-dessous propose un extrait du cahier des charges.
fonction de service FS1 Dplacer le LP en translation critre tre rapide sans mettre en danger le personnel mdical 1. Arrter le mouvement en temps masqu (le temps masqu est li au temps de raction du mdecin) 2. Limiter lamplitude et la dure des oscillations du LP au niveau de liso-centre niveau Vitesse maximale 100 mm.s-1 1. Temps masqu : 0.3 s 2. Premires oscillations < 1 mm dun extremum lautre < 0.2 mm dun extremum lautre aprs 1 s

FS2

Pouvoir commencer la prise de vue ds larrt du mouvement de translation

FS3

Assurer la scurit du patient

Limiter la distance darrt du LP, pour Distance darrt rglemente infrieure 10 mm ne pas blesser le patient

42 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Schma cinmatique

S4

S1

S3

S0

A
z

S2 S0 : Plafond + rails de guidage + courroie S1 : Chariot S2 : Armature en forme de C + dtecteur + tube S3 : Roue + poulie motrice S4 : Rotor moteur + vis
x y

iso-centre : lc

donnes gomtriques, cintiques et grandeurs caractristiques du moteur


poulie motrice Rayon de la poulie motrice S3 : Rp = 0.0318 m chariot (S1) Masse : m1= 270 kg moteur (inclus dans la masse du chariot S1) R = 2.8 (rsistance) L = 3.10-3 H (inductance) K = 0.23 n.m.A-1 (constante de couple ou de fcem) J = 0.25.10-3 kg.m2 (moment dinertie axe moteur + vis) f = 10-5 n.m.s (frottement visqueux)
| 43

dispositif roue et vis sans n Rapport de rduction : r = 1 / 50 armature (S2) : armature en forme de c AIC = d = 1.4 m Centre dinertie G2 : AG2 = l2 = 0.85 m Masse : m2 = 490 kg J2 = 620 kg.m2

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

modlisation du systme
On sintresse dans un premier temps au dplacement de lensemble en supposant larmature xe par rapport au chariot. modlisation du moteur nous avons vu dans lactivit prcdente quil tait possible de modliser de manire ne un moteur courant continu en utilisant des composants lmentaires. Il est cependant possible de considrer globalement le moteur comme un lment dune chane fonctionnelle et de nentrer que les caractristiques de celui-ci sans soccuper de la manire dont il se comporte. Insrez un bloc MEMC_DCmotor (sous-palette Composants / Actionneurs) dans une fentre ddition. Double-cliquez sur le bloc et congurez les valeurs des constantes du moteur (voir tableau prcdent). Ajoutez un bloc CEAS_PredefVoltage (sous-palette lectrique / Sources) et connectez le moteur cette source dalimentation. noubliez pas dajouter une masse MEAB_Ground (sous-palette lectrique / Sources) pour dnir le potentiel de rfrence. Ajoutez en sortie un bloc CMRS_GenSensor (sous-palette Mcanique / Rotation 1D / Mesure), choisissez de visualiser la vitesse de rotation de larbre moteur et ajoutez un bloc ISCOPE (sous-palette Utilitaires / Visualisation). nous allons faire direntes tudes temporelles (bloc IREP_TEMP de la sous-palette Utilitaires / Analyses). Pour commencer, double-cliquez sur le bloc dalimentation et choisissez un chelon damplitude 80 V (tension maximale du moteur). Lancez une simulation sur 0.5 s (en prenant 1000 points) et observez lallure de la rponse.
350 vitesse

300

250

200

150

100

50

Dmonstrations / SIMM / Exemples Livret / Exemple 11

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

44 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

350

Vitesse relle Vitesse approche

300

250

200

150

100

50

Dmonstrations / SIMM / Exemples Livret / Exemple 12

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

noter Le gain du modle du premier ordre est gal la valeur asymptotique (environ 350 rad.s-1 ici) divise par la consigne (80 V). La constante de temps est obtenue pour 63 % de la valeur nale (cf. Courbe obtenue pour la charge dun condensateur).

Une telle rponse correspond la rponse dun systme du premier ordre de gain et constante de temps donne. L'avantage de ce modle est qu'il ne ncessite que deux paramtres alors que le modle physique en demande beaucoup plus. On peut alors chercher les paramtres qui sapprochent au mieux du modle du moteur puis les tester avec un bloc MBC_FirstOrder (sous-palette Signaux / Continu) et une source chelon MBS_Step (sous-palette Signaux / Sources) damplitude 80.
commande

En ralit, la tension dlivre au moteur ne peut pas tre constante car la commande est gre par un joystick. Cest pourquoi, une commande en trapze est plus reprsentative de la commande relle obtenue lorsque le mdecin lche le joystick. Elle est modlisable par le signal ci-contre.

80

Pour faire varier la tension dalimentation du moteur, il est ncessaire T T+0,15 dutiliser un hacheur. Comme pour le moteur, des blocs prdnis sont disponibles pour les hacheurs et vitent ainsi davoir dtailler leur comportement. Ces composants se situent dans la sous-palette Composants / PrActionneurs. Le hacheur demi-pont MEMC_Q2driver que nous avons choisi pour ce test, est pilot par un PWM ayant une commande sur 8 bits une frquence de 500 Hz. Ralisez le diagramme indiqu sur la page suivante et paramtrez le signal de consigne du PWM pour obtenir une tension de commande du moteur comme indiqu sur la gure prcdente (on prendra T = 2 s et 20 000 points de simulation). Ajoutez un bloc pour visualiser le signal du PWM.
| 45

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Dmonstrations / SIMM / Exemples Livret / Exemple 13

Les blocs ajouter ou paramtrer nouveau sont rappels ci-dessous :


dsignation Ramp reprsentation Sous-palette SImm paramtrage Amplitude : -255 Dure : 0.15 s Signaux / Sources / MBS_Ramp Dcalage : 255 Temps de dbut : 1 s Signaux / Sources / CCP_PWM 8 bits Frquence : 500 Hz Temps de dbut : 0 s Dure : 2 s 10 000 points Grille ache : oui Acher les courbes pendant la simulation : non nombre de courbes : 1 nom de la courbe : vitesse PWM

PWM

tude temporelle

Utilitaires / Analyses / IREP_TEMP

Achage du signal Hacheur demi-pont

Utilitaires / Visualisation / ISCOPE Composants / PrActionneurs / MEMC_Q2driver

On constate quil est trs dicile de visualiser correctement le signal PWM (ou en sortie du hacheur) sur la dure de simulation compte-tenu de la commande retenue. Ouvrez une nouvelle fentre ddition Xcos et copiez le diagramme prcdent. Supprimez les blocs hacheurs, PWM, source dalimentation et remplacez-les par une alimentation variable pilote MEAS_SignalVoltage (sous-palette lectrique / Sources). Modiez le bloc Trapze MBS_Ramp (sous-palette Signaux / Sources) pour obtenir directement la tension de commande du moteur (Amplitude -80, Dcalage 80 V).
46 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Lancez la simulation en prenant 2 000 points. Comparez la courbe obtenue avec la prcdente.
350 vitesse

300

250

200

150

100

50

Dmonstrations / SIMM / Exemples Livret / Exemple 14

50

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

En observant les rsultat obtenus, on saperoit que la modlisation ne du hacheur nest pas ncessaire dans ce cas prcis. Il sera remplac par la source de tension variable. modlisation des adaptateurs En aval du moteur courant continu tudi prcdemment se trouve une chane cinmatique compose par la mise en srie dun rducteur de type roue et vis sans n. La rotation de la roue du rducteur entrane la translation du chariot par lintermdiaire dune roue de rayon donn.

Dmonstrations / SIMM / Exemples Livret / Exemple 15

Ajoutez un rducteur engrenages MMR_IdealGearGen et un systme de transformation de mouvement de rotation en translation MMR_IdealGearR2TGen (sous-palette Composants / Adaptateurs). Congurez les blocs laide des donnes initiales. Attention pour le bloc engrenage, le rapport renseign est le rapport de lentre sur la sortie. Intercalez juste avant le capteur de vitesse linaire un bloc CMTC_Mass (masse en translation) de la sous-palette Mcanique / Translation 1D / Basique. Seule la masse est importante (760 Kg). Il est galement possible de dnir les positions et vitesses initiales, etc.
| 47

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Lancez ensuite une simulation. Vriez que la vitesse obtenue est cohrente.
dsignation Rducteur engrenages reprsentation Sous-palette SImm Composants / Adaptateurs / MMR_IdealGearGen Composants / Adaptateurs / MMR_IdealGearR2TGen Mcanique / Translation 1D / Basique / CMTC_Mass Mcanique / Translation 1D / Mesure / CMTS_GenSensor paramtrage Rapport de transmission : 50 Bti : oui Rapport de transmission : 1 / 0.038 Bti : oui Masse : 760 Kg

Pignon crmaillre

Masse en translation

Capteur de vitesse

Vitesse

Inuence des frottements sur lvolution de lintensit


Il existe une rsistance lavancement qui est gale 70 n. Cette action peut tre modlise par lintermdiaire du bloc CMT_MassWithFriction (sous-palette Mcanique / Translation 1D / Basique). Ce bloc est plus compliqu paramtrer car il permet de tester dirents modles de frottement. Le seul qui est considr ici est le modle de Coulomb (les autres sont mis 0). Attention, le signe de la rsistance est positif. On constate que la commande utilise ne respecte pas la vitesse maximale de 0.1 m.s-1. Modiez celle-ci de manire ce que la vitesse maximale soit celle dnie dans le cahier des charges. Ajoutez un ampremtre au niveau de lalimentation du moteur et visualisez lintensit. Faites varier la masse et visualisez linuence sur lintensit (ajoutez une masse sans frottement sil y a des problmes de simulation).

Dmonstrations / SIMM / Exemples Livret / Exemple 16


48 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

On constate ainsi quil est ncessaire de contrler lintensit du moteur pour grer les acclrations de larmature. Cest pourquoi par la suite, un asservissement dintensit est mis en place, comme on le voit sur la gure suivante avec une correction unitaire.
140 120 100 80 60 40 20 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Vitesse moteur (rad/s)

0.1 0.08 0.06 0.04 0.02 0

Vitesse chariot (m/s)

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

mise en place de lasservissement dintensit du moteur


Insrez une boucle de courant (comme pour la rgulation de temprature) en prenant un correcteur de type PI proportionnel intgral MBC_PI (sous-palette Signaux / Continu). En pratique, la mesure de courant est ralise par une rsistance ou une sonde ampremtrique de gain gal 0.245 V.A-1.

Dmonstrations / SIMM / Exemples Livret / Exemple 17


| 49

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Lasservissement portant sur le couple, il faut imposer une intensit de consigne, soit U / R avec U la valeur maximale utilise prcdemment (vous pouvez aussi ajouter un gain comme sur la gure prcdente). Le rglage du correcteur PI pour lasservissement de courant du moteur se fait en choisissant une constante de temps gale 10*L / R. Renseignez cette valeur et laissez un gain proportionnel de 1 pour linstant. Remarquez que la vitesse nest plus du tout la mme car le moteur est pilot en intensit (donc une intensit constante correspondra une vitesse linaire de par lquation de dynamique). Il est donc indispensable dadapter la consigne dintensit pour retrouver des niveaux de vitesse raisonnable. Changez la consigne (prendre 1.7 V par exemple ou 0.6 A). Observez ensuite linuence du gain du correcteur sur lintensit. Le choix nal de la valeur du gain doit se faire en fonction de la tension du moteur qui ne peut pas dpasser physiquement 80 V (Cf. hacheur). Ajoutez un voltmtre aux bornes du moteur et visualisez la tension pour dirents gains suprieurs 1. Une valeur trop grande du gain entranera ncessairement un dpassement de la tension maximale. On prendra par la suite un gain de 100.

asservissement en vitesse
La partie prcdente a permis de montrer quil est ncessaire dasservir en intensit un moteur pour contrler les acclrations. Il est donc indispensable dajouter un contrle de vitesse pour assurer la loi de consigne souhaite. Pour simplier la commande du moteur, on peut utiliser une source dintensit pilote MEAS_SignalCurrent (sous-palette lectrique / Sources) plutt que lasservissement dintensit, ce qui revient considrer cet asservissement comme parfait.

Dmonstrations / SIMM / Exemples Livret / Exemple 18

50 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Lasservissement de vitesse se fait en comparant la vitesse de rotation du moteur (capteur sur laxe du moteur) la vitesse de consigne (en trapze). On utilise nouveau un correcteur PI pour simplier (gain 0.15, constante de temps 0.025 s). Le codeur incrmental mont sur laxe moteur dlivre une position en nombre de tops (informations binaires) et cette information de position est ensuite drive numriquement par dirences nies. Le signal obtenu, image de la vitesse de rotation du moteur, est en gnral trs bruit. Il faut donc adjoindre cette mesure un ltre de constante de temps donn. Ce ltre est modlisable simplement par un bloc du premier ordre MBC_FirstOrder (sous-palette Signaux / Continu) de constante de temps 1 ms. Ralisez lasservissement de vitesse suivant et congurez en entre une consigne rampe de valeur maximale 0.1 m.s-1. Lancez la simulation et vous pouvez maintenant conclure sur la pertinence de ce type de commande. Les blocs ajouter ou paramtrer sont rappels ci-dessous :
dsignation reprsentation Sous-palette SImm paramtrage

Ramp

Amplitude : - 0.1 Dure : 0.15 s Signaux / Sources / MBS_Ramp Dcalage : 0.1 Temps de dpart : 1 s Signaux / Math / MBM_Gain 50/0.0318 Dure : 2 s 2000 points Grille ache : oui Acher les courbes pendant la simulation : non Gains 1 et -1 Gain 0.15 Constante de temps 0.025 s Gain 1 Constante de temps 0.001 s

Gain

tude temporelle

Utilitaires / Analyses / IREP_TEMP

Comparateur

Signaux / Math / MBM_Add

Correcteur PI

Signaux / Continu / MBC_PI Signaux / Continu / MBC_FirstOrder

Filtre du premier ordre

| 51

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Dmonstrations / SIMM / Exemples Livret / Exemple 19


200 150 100 50 0 0 0.15 0.1 0.05 0 0 80 60 40 20 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Vitesse moteur (rad/s)

Vitesse chariot (m/s)

Intensit moteur (A)

On a montr travers cette application la ncessit dasservir en intensit (ou en couple) le moteur de manire contrler les acclrations. On parle, dans ces conditions, de pilotage en intensit du moteur. Il est alors indispensable dasservir en vitesse le moteur pour obtenir un mouvement particulier du chariot respectant ainsi le cahier des charges initial. De nombreux axes linaires (imprimante par exemple) utilisent ce type de commande (boucle d'intensit et de vitesse) pour contrler prcisment les mouvements. La suite de cette activit serait de modliser les oscillations de l'armature en utilisant la sous-palette Mcanique / Plane et damliorer la commande pour supprimer les problmes de rsonance.

52 |

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

3- modlISatIon et analySe de SyStmeS tempS contInu (module cpGe)


Lexemple que nous allons traiter est le mme que celui utilis dans le chapitre prcdent : langiographe. Le module CPGE permet de dimensionner les correcteurs mettre en place dans le systme par des analyses frquentielles. Il ncessite des connaissances thoriques (transforme de Laplace, analyse frquentielle, correcteur...) pour tre utilise ecacement. Son utilisation est donc plutt oriente post-bac. Le cahier des charges du systme est donc le mme que dans le chapitre prcdent, page 42.

mISe en place dun dIaGramme de moteur courant contInu


Dans cette premire partie, nous allons construire le diagramme du moteur courant continu (rsistance Rm, inductance Lm, constante de couple Kt, constante de vitesse Ke et inertie quivalente rapporte laxe moteur Je). Ouvrez une nouvelle fentre ddition Xcos. Positionnez les blocs suivants :
dsignation chelon Fonction de transfert continue Gain reprsentation Sous-palette cpGe Entres / STEP_FUnCTIOn Oprateurs linaires / CLR Oprateurs linaires / GAInBLK_f Oprateurs linaires / BIGSOM_f Sorties / SCOPE Intensit (A) Vitesse angulaire (rad / s) paramtrage Valeur nale : 0 Valeur nale : 80 numrateur : 1 Dnominateur : Lm*s + Rm Kt Ke

Comparateur

Visualisation

noter Pour congurer un sommateur en soustracteur, cliquez sur le bloc et choisissez la forme du vecteur [1,-1] ou 1 -1 (sans crochets, ni virgule). Il est possible de sommer ou de soustraire plus de deux valeurs en augmentant la taille du vecteur (exemple : 1 1 1 pour la somme de 3 entres).

| 53

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

Construire le modle du diagramme du moteur courant continu en reliant les dirents blocs (aprs les avoir positionns puis ventuellement orients), sous la forme du diagramme ci-dessous :

Dmonstrations / CPGE / Exemples Livret / Exemple 1

Pour dnir les grandeurs de sortie (an que les courbes obtenues soient ensuite reprables facilement), double-cliquez sur chacun des deux blocs SCOPE et congurez le nombre de courbes superposer sur un mme graphe (une seule dans notre cas) puis aprs avoir cliqu sur OK, entrez le nom du signal, savoir une vitesse de rotation de laxe du moteur (en rad.s-1) et lintensit dans linduit (en A). En double-cliquant sur un espace vierge du diagramme, il est possible dinsrer du texte permettant damliorer la lecture globale. Dans limage prcdente, on a ainsi pu dcrire quoi correspondaient les deux chelons dentre et les deux sorties. Il est galement possible dattacher une tiquette / texte un bloc par un simple clic droit sur le bloc, puis format / dition et de complter la zone de texte.
noter Dans toutes les zones de texte, il est possible dentrer du code LaTeX permettant, par exemple, dinsrer des quations.

En double-cliquant successivement sur les deux chelons dentre, congurez une tension de 80 V (tension nominale du moteur), un instant initial t = 0 s et un couple rsistant nul t = 0 s (le cas perturb sera tudi par la suite).

tude / Simulation
Pour lancer une simulation, il est ncessaire de spcier le type dtude retenu (temporelle et / ou frquentielle). Pour raliser une tude temporelle, positionnez dans le diagramme un bloc REP_TEMP (sous-palette Analyses). En double-cliquant sur ce bloc, congurez une dure de simulation de 1 s et 500 points dachage. Lancez alors la simulation. Deux courbes sachent, reprsentant respectivement lintensit et la vitesse angulaire.

54 |

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

350 300 250 200 150 100 50 0

Vitesse de rotation (rad/s)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

30

Intensit (A)

25

20

15

10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

mISe en place dun dIaGramme de commande en boucle ouverte


En aval du moteur courant continu se trouve une chane cinmatique (rducteur engrenages + systme roue et vis sans n + systme Um en V pignon crmaillre) de rapport de rduction Kch = 31.8.10-3 / 50 m.rad-1 U0 permettant de transformer la rotation en une translation de laxe linaire. An de ne pas trop solliciter le moteur lectrique, on lalimente progressivement jusqu la valeur nominale (voir gure ci-contre) : on donne tm = 0.1 s (temps de monte) et U0 = 40 V (tension nominale). t en s Ce signal peut classiquement tre obtenu par soustraction dune rampe tm de pente U0 / tm linstant t = 0 s et dune rampe de mme pente mais dcale dans le temps de tm secondes. Cependant, le module CPGE ore la possibilit de dnir un signal trapze dont nous nexploiterons que la partie initiale (monte et maintien) en prenant un temps de maintien en position maximale trs grand. Par ailleurs, un eort Fr = 72 n est exerc sur la structure qui se translate linstant tr = 0.5 s. Cet eort est ressenti comme un couple rsistant au niveau du moteur avec, si lon suppose un rendement unitaire, un rapport de proportionnalit correspondant au gain de la chane cinmatique.
| 55

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

Compltez le contexte avec les informations Kch = 31.8.10-3 / 50, tm, tr, U0 et Fr la suite des prcdentes puis ajoutez trois gains GAInBLK_f (sous-palette Oprateurs linaires). Rajoutez galement deux acheurs SCOPE (sous-palette Sorties) pour le trac de la tension dalimentation et de la vitesse de dplacement. Remplacez lchelon de tension par un bloc TRAPEZOID (sous-palette Entres) et congurez lamplitude, le temps de monte et prenez un temps de maintien de 10 (donc trs suprieur au temps de simulation) sans modier les autres paramtres. partir du diagramme initial, crez alors le diagramme ci-dessous, correspondant la commande en boucle ouverte du systme (entre : tension du moteur en V, sortie : vitesse de dplacement de laxe en m.s-1 perturbation : force Fr linstant tr = 0.5 s). Un gain de 30 / (qui scrit dans Scilab 30 / %pi) permet dobtenir la vitesse de rotation en rad.s-1.

Dmonstrations / CPGE / Exemples Livret / Exemple 2

0.1 0.05 0 4 2 0

Vitesse de rotation (rad/s)

Lancez la simulation. Quatre courbes sachent, reprsentant respectivement la tension dalimentation en V, lintensit dans linduit en A, la vitesse angulaire en tours.min-1 et en rad.s-1. Analysez rapidement les courbes obtenues en les comparant celles qui ont t obtenues par la simulation acausale.

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9 Intensit (A)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1 500 1 000 500 0 40 20 0 0 0.1 0.2 0.3 0.4 0.5 0.6

Vitesse de rotation (tours/min)

0.7

0.8

0.9

Tension dalimentation (V)

01

02

03

04

05

06

07

08

09

56 |

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

prSentatIon de la Structure de laSServISSement en vIteSSe


La structure de commande prcdente nest pas performante car elle est trs sensible la perturbation. An darrter le dplacement de laxe au niveau souhait, il serait ncessaire de couper lalimentation au bon moment (donc en tenant compte la fois des perturbations et de linertie du systme), ce qui est bien entendu illusoire. Pour matriser la vitesse de dplacement de laxe et compenser les perturbations, il est donc ncessaire de passer une structure asservie. Dans le cas du systme tudi, ceci est ralis par limplantation dun codeur incrmental sur laxe moteur et ladjonction dun calculateur permettant de traiter les informations de manire numrique. nous introduisons les nouveaux blocs suivants :
dsignation Gnrateur de signal trapzodal Correcteur PI reprsentation Sous-palette cpGe Entres / TRAPEZOID paramtrage Amplitude : 0.1 Largeur : 10

Oprateurs linaires / PIcontrol Gain proportionnel : Kp

La structure du diagramme est la suivante :

Dmonstrations / CPGE / Exemples Livret / Exemple 3

Dans ce diagramme, on note les volutions suivantes : w Modication de la typologie de lentre pour raliser une commande en trapze de vitesse (valeur de maintien de 0.1 m.s-1 au bout de 0.1 s), ce qui correspond une commande classique pour ce type daxe linaire asservi,
| 57

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

w Ajout dune observation de lvolution de la tension dalimentation du moteur, w Mise en place dun soustracteur et dun correcteur PI, PIcontrol (sous-palette Oprateurs linaires). Modiez le contexte en dnissant la variable Kp=1. On utilise pour l'instant comme paramtres du correcteur PI, le gain proportionnel Kp et un gain intgral nul. Cette variable tient compte de lensemble correcteur + module damplication (hacheur) en amont de lensemble constitu du moteur et de la chane cinmatique.
4 2 0 0 1 000 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Vitesse de rotation (tours/min) Intensit (A)

0 0.1 0.05 0 40 20 0 0.1 0.05 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Consigne de vitesse (m/s)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Tension dalimentation (V)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Vitesse dplacement (m/s)

01

02

03

04

05

06

07

08

09

aSServISSement de vIteSSe et correctIon proportIonnelle


nous allons, dans un premier temps analyser linuence de la simple correction proportionnelle implante sur le comportement temporel du systme. Dans le contexte, la valeur de Kp est unitaire. La valeur na pas dimportance mais, pour tre prise en compte, elle doit tre dnie. nous introduisons les nouveaux blocs suivants :
dsignation Variation paramtrique reprsentation Sous-palette cpGe Analyses / PARAM_VAR paramtrage Kp [0.5,1,5,10,100] 40 -40

Saturation

non-linarits / SATURATIOn

Insrez un bloc PARAM_VAR (sous-palette Analyses) pour faire une tude paramtrique.
58 |

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

noter Le bloc PARAM_VAR permet de faire des tudes paramtriques sans avoir besoin de linariser le systme. Le diagramme peut donc utiliser nimporte quel type de blocs.

Lancez la simulation et observez linuence du gain du correcteur sur les performances en comparaison aux attentes du cahier des charges.
4 2 0 0 1 500 1 000 500 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Kp=0.5 Intensit (A) Kp=1 Intensit (A) Kp=5 Intensit (A) Kp=10 Intensit (A) Kp=100 Intensit (A)

La valeur de la tension dalimentation doit physiquement tre limite 40 V pour protger le moteur. On constate cependant que, pour plusieurs valeurs de Kp, cette tension est dpasse. Pour amliorer le modle, il est donc indispensable dajouter une non-linarit physique : la saturation. Slectionnez tous les blocs situs aprs le correcteur (les blocs sont mis en surbrillance) et dplacez un des blocs pour mouvoir lensemble. Insrez alors, entre le bloc correspondant lensemble correcteur + hacheur et le moteur, un bloc SATURATIOn (sous-palette non-linarits). Congurez la saturation avec les valeurs indiques dans le tableau prcdent (40 et -40).

Kp=0.5 Vitesse de rotation (tours/min) Kp=1 Vitesse de rotation (tours/min) Kp=5 Vitesse de rotation (tours/min) Kp=10 Vitesse de rotation (tours/min) Kp=100 Vitesse de rotation (tours/min)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.1 0.05 0

Kp=0.5 Consigne de vitesse (m/s) Kp=1 Consigne de vitesse (m/s) Kp=5 Consigne de vitesse (m/s) Kp=10 Consigne de vitesse (m/s) Kp=100 Consigne de vitesse (m/s)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

40 20 0 0.1

Kp=0.5 Tension dalimentation (V) Kp=1 Tension dalimentation (V) Kp=5 Tension dalimentation (V) Kp=10 Tension dalimentation (V) Kp=100 Tension dalimentation (V)

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.05

Kp=0.5 Vitesse dplacement (m/s) Kp=1 Vitesse dplacement (m/s) Kp=5 Vitesse dplacement (m/s) Kp=10 Vitesse dplacement (m/s) Kp=100 Vitesse dplacement (m/s)

01

02

03

04

05

06

07

08

09

| 59

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

Relancez la simulation et observez leet de la saturation sur la rponse obtenue, tant au niveau des grandeurs lectriques que sur le suivi de la consigne de vitesse en trapze. An danalyser la capacit du systme suivre lvolution de la consigne, il est bien entendu possible de comparer la rponse temporelle obtenue la consigne en superposant plusieurs courbes sur un mme acheur (SCOPE). Double-cliquez sur le bloc SCOPE de la vitesse de dplacement et demandez deux courbes de noms Vitesse de dplacement (m.s-1) et Consigne de vitesse (m.s-1) puis connectez la nouvelle entre. Lancez la simulation et observez leet de la saturation pour la valeur Kp = 100.

4 2 0 0 1 000 0.1 0.2 0.3 0.4 0.5 0.6 0.7

Kp=0.5 Intensit (A) Kp=1 Intensit (A) Kp=5 Intensit (A) Kp=10 Intensit (A) Kp=100 Intensit (A) 0.8 0.9 1 Kp=0.5 Vitesse de rotation (tours/min) Kp=1 Vitesse de rotation (tours/min) Kp=5 Vitesse de rotation (tours/min) Kp=10 Vitesse de rotation (tours/min) Kp=100 Vitesse de rotation (tours/min) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Kp=0.5 Consigne de vitesse (m/s) Kp=1 Consigne de vitesse (m/s) Kp=5 Consigne de vitesse (m/s) Kp=10 Consigne de vitesse (m/s) Kp=100 Consigne de vitesse (m/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Kp=0.5 Tension dalimentation (V) Kp=1 Tension dalimentation (V) Kp=5 Tension dalimentation (V) Kp=10 Tension dalimentation (V) Kp=100 Tension dalimentation (V) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Kp=0.5 Vitesse de dplacement (m/s) Kp=1 Vitesse de dplacement (m/s) Kp=5 Vitesse de dplacement (m/s) Kp=10 Vitesse de dplacement (m/s) Kp=100 Vitesse de dplacement (m/s) 0 01 02 03 04 05 06 07 08 09 1

0 0.1 0.05 0 40 20 0 0.1 0.05 0

aSServISSement de vIteSSe et correctIon proportIonnelle et IntGrale


An damliorer sensiblement la capacit du systme suivre la consigne de vitesse, il est ncessaire dapporter un eet intgral la correction. On choisit alors de renseigner le gain Ki du correcteur PI :

60 |

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

Pour analyser linuence des paramtres et le rglage du correcteur, on ralise une analyse frquentielle en boucle ouverte. Pour raliser cette analyse, il est ncessaire de linariser le diagramme. normalement les blocs non-linaires (type saturation) sont remplacs par des gains unitaires (sauf pour le retard qui peut tre trait exactement en boucle ouverte).
dsignation Analyse frquentielle reprsentation Sous-palette cpGe Analyses / REP_FREQ paramtrage

Points dentre / sortie

Analyses / GRAnDEUR_PHYSIQUE

Supprimez le bloc REP_TEMP et remplacez-le par un bloc REP_FREQ (sous-palette Analyses) qui ralisera lanalyse frquentielle. On peut cumuler la rponse temporelle et la rponse frquentielle en laissant les deux blocs REP_ TEMP et REP_FREQ sur le schma. Ajoutez galement deux blocs GRAnDEUR_PHYSIQUE (sous-palette Analyses) qui sont utiliss pour dnir les points dentre et de sortie de lanalyse frquentielle. Double-cliquez sur ces blocs pour les nommer E et S (tout nom est possible). Positionnez-les avant le bloc PIcontrol et au niveau du retour du premier comparateur (attention bien les relier). On doit alors se trouver dans la situation du diagramme suivant :

Dmonstrations / CPGE / Exemples Livret / Exemple 4

| 61

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

noter Plusieurs blocs REP_FREQ peuvent tre introduits dans le diagramme, ce qui permet dobtenir la rponse frquentielle de la boucle ouverte et celle de la boucle ferme dans deux fentres graphiques spares. Si lon souhaite superposer deux rponses frquentielles, il sut de congurer les direntes entres et sorties spares par des points-virgules. Exemple : E1;E2 et S1;S2.

On peut alors congurer, dans le bloc REP_FREQ, le type de diagramme frquentiel (Bode, Black ou nyquist), les points dentre et de sortie (rfrence aux blocs GRAnDEUR_PHYSIQUE E et S ) ainsi que lachage ou non des marges de stabilit et des asymptotes. Dans la fentre de conguration du bloc, il est possible de dnir les pulsations minimale et maximale : prendre ici 1 et 10 000. Lancez une simulation (analyse frquentielle seule) pour les paramtres par dfaut du correcteur (Kp=1 dans le contexte et Ki=0). Visualisez alors les marges de gain et phase sur les diagrammes de Bode.

Marge de gain infinie ; Marge de phase : 43.25 40 20 Amplitude (dB)


0 1 2 3 4

10 0

10

10

10

10 Pulsation (rad/s)

20 40 60
0 1 2 3 4

10 0 50 Phase () 100 150

10

10

10

10

Pulsation (rad/s)

Entre : E Sortie : S

Modiez les valeurs pour voir leur impact sur le comportement frquentiel de la boucle ouverte. Il est ncessaire de relancer une simulation chaque fois. Vous pouvez galement positionner un bloc PARAM_VAR pour voir linuence des paramtres pour des jeux donns en analyse frquentielle. Attention, le calcul de marges nest fait que pour une seule courbe (pas le trac des asymptotes). Un rglage satisfaisant pour avoir une marge de phase de 45 environ est Kp=10 et Ki=0.1. Ajoutez le bloc REP_TEMP (dure 1 s, 200 points de tracs) et observez la rponse temporelle. Vous pouvez supprimer le bloc REP_FREQ pour nobserver que la rponse temporelle. On voit que ce rglage PI nest pas idal dans le cas dtude car le moteur utilis peine entraner de manire ecace le systme avec cette structure srie. An damliorer sensiblement les performances, on commande le moteur en courant cest--dire que lon ajoute une boucle de courant. Cette structure de commande est trs classique de nos jours. La quasi-totalit des cartes de commande actuelles dispose de cette fonctionnalit que nous utilisons ici.

62 |

MODLISATIOn ET AnALYSE DE SYSTMES TEMPS COnTInU

Le principe de la boucle de courant est simple. On vient, grce une structure adquate, mesurer lintensit au niveau de linduit et alors modier lalimentation relle du moteur aprs une correction le plus souvent de type PI comme le montre le diagramme suivant :

Dmonstrations / CPGE / Exemples Livret / Exemple 5

Dans ce diagramme, le retour de courant a t choisi unitaire car le gain du capteur (rsistance de shunt ou capteur eet Hall) est ici intgr dans le correcteur PI. Il est ncessaire de rgler le correcteur PI de la boucle de courant (utilisant les grandeurs physiques Ei et Si) puis le correcteur PI de la boucle de vitesse. Un ltre a t ajout dans la boucle de retour tachymtrique pour tre au plus prt de la physique du systme (mesure par codeur puis drivation numrique bruite). On voit quil est possible, en utilisant cette structure, datteindre des performances relativement importantes tout en ne modiant ni la structure globale de lasservissement (donc en gardant un codeur incrmental sur laxe du moteur) ni le choix du moteur courant continu, ce qui est toujours dlicat (cot, implantation, etc.).
Marge de gain : 26.59dB ; Marge de phase : 59.91 400 300 Amplitude (dB) 200 100 0 100 10 Pulsation (rad/s)
0

Marge de gain infinie ; Marge de phase : 109.86 20 10 0 10 10 Pulsation (rad/s)


0

Amplitude (dB)

10

10

10

10

10

10

10

10

10 0 50 Phase ()

10

10

10

10

10 0 50

10

10

10

10

Pulsation (rad/s)

Pulsation (rad/s)

Phase ()

100 150 200 250

100 150

Entre : E Sortie : S

Entre : Ei Sortie : Si

| 63

ACQUISITIOn ET PILOTAGE DE MOTEUR

4- acquISItIon et pIlotaGe de moteur (module arduIno)


Cette activit expose les possibilits de simulation de type hardware in the loop (intgration de matriel physique dans une simulation logicielle) de Scilab / Xcos et du module Arduino coupls une carte Arduino Uno. Le module Arduino permet, en eet, dintgrer dans loutil de simulation, la commande dune carte Arduino Uno an de faire de lacquisition ou du pilotage de systmes. Il est possible de raliser les commandes suivantes : lecture / criture dune entre / sortie logique, lecture / criture dune entre / sortie analogique, commande dun moteur courant continu, dun servomoteur et dun moteur pas pas.

prSentatIon SuccIncte de la carte arduIno uno


Carte Arduino

USB

AREF 0V SCK
13 12 11 10 09 08 07

Reset +3V3 +5V 0V 0V +Vin (7-12V)

MISO MOSI / PWM SS / PWM PWM

PWM
14 15 16 17 18 19

06 05 04

A0 A1 Analog A2 A3 A4 A5

PWM INT1 / PWM INTO TX RX

03 02 01 00

Sur la carte Arduino Uno, identiez les ports (PInS en anglais) suivants : w 14 entres / Sorties logiques (port ou PIn Digital de 0 13) : - Srie asynchrone (avec 0 sur Rx et 1 sur Tx). Les PInS 0 et 1 ne seront donc pas utilisables, - 2 interruptions externes sur 2 et 3 (utilises pour le codeur en quadrature), - Sortie 13 couple une LED sur la carte. w 6 entres analogiques (A0 A5) : - La tension dentre doit ncessairement tre infrieure la tension de rfrence (5 V ou 1.1 V ou AREF : rfrence externe), - 6 CAn (Convertisseur Analogique numrique) 10 bits (plage de 1024) 10 kHz maximum, - Ces entres peuvent aussi fonctionner comme des Entres / Sorties numriques. w 6 Sorties analogiques : 6 PWM sur les ports 3, 5, 6, 9, 10 et 11, construites sur les pins dentres / sorties logiques.
noter Comme les mmoires sont de type Flash, le programme reste indniment en mmoire, mme sans alimentation, aprs son implantation dans le microcontrleur. Pour charger le programme, la liaison USB permet de communiquer avec le microcontrleur en mulant une liaison srie.
| 65

La programmation de toutes les cartes de la famille Arduino, dont le modle Uno, se fait dans un langage simpli adapt du C / C++, bas sur lutilisation de classes (ou macro-commandes) faciles comprendre et modier, y compris par des personnes non-spcialistes de la programmation. Le projet Open Source Arduino a, en eet, initialement t cr pour la mise en uvre denvironnements sonores ou visuels destination de crations artistiques. Il tait donc indispensable que linterface soit rduite la mise en uvre squentielle dordres simples et lacquisition de donnes analogiques ou numriques. Le logiciel de programmation, gratuit et utilisable sans installation sur lordinateur sur les environnements Windows, Mac OS X et Linux, est tlchargeable en ligne ladresse : http://arduino.cc/en/Main/Software Un guide dinstallation est disponible ladresse : http://arduino.cc/en/Guide/HomePage

ACQUISITIOn ET PILOTAGE DE MOTEUR

utIlISatIon du module arduIno IntGr ScIlab / XcoS


Pour faire fonctionner le module, il faut aussi charger un programme particulier (Toolbox_Arduino.ino) dans lArduino. Celui-ci est tlchargeable depuis le site http://atoms.scilab.org/toolboxes/arduino. Grce au logiciel Arduino, ouvrez le chier tlcharg puis tlversez-le aprs avoir choisi le port de communication dans le menu Outils / Port srie (prendre le port dirent du Com1) et le type de carte Arduino Uno. Vriez que le tlversement sest bien termin et quittez. La carte Arduino Uno est prte tre interface avec Scilab / Xcos grce au module que nous allons maintenant tudier. Il ne sera plus ncessaire dutiliser le logiciel Arduino par la suite.

dmarrage avec le module arduino : clignotement dune led et entres / sorties logiques
Lancez Xcos. Pour vrier le bon fonctionnement du module, nous allons faire clignoter la LED intgre la carte Arduino (PIn 13), ce qui correspond lexemple de base en programmation de microcontrleurs. Le tableau ci-dessous rsume lensemble des blocs positionner et les paramtres congurer :
dsignation Conguration Arduino Conguration simulation reprsentation Sous-palette Arduino / Conguration / ARDUInO_SETUP Arduino / Conguration / TIME_SAMPLE Arduino / Digital / DIGITAL_WRITE_SB paramtrage Port srie : 5

criture port digital

PIn digital : 13 Retard : 0.1 Largeur de pulsations : 30 Priode : 1 Amplitude : 1

Gnrateur dimpulsions

CPGE / Entres / PULSE_SC

Reliez lentre Pulse et la sortie logique puis lancez lacquisition via le bouton de simulation. Les deux diodes Rx et Tx sur la carte doivent indiquer la communication srie entre Xcos et lArduino tandis que la LED situe ct du PIn 13 doit clignoter.

66 |

ACQUISITIOn ET PILOTAGE DE MOTEUR

Vous pouvez galement prendre une LED quelconque, lui associer une rsistance judicieusement choisie et brancher une patte de la LED + rsistance au PIn Gnd ( ground pour masse) et lautre extrmit un PIn digital quelconque (dirent de 0 et 1 - 5 sur le schma ci-contre), puis congurer ce numro de PIn dans le bloc DIGITAL_WRITE_SB du diagramme. lissue de ce premier essai, linterfaage des entres / sorties logiques de lArduino avec Xcos a t mis en uvre. On peut maintenant passer lacquisition dune grandeur analogique.

acqurir une grandeur analogique


Dans cette partie, nous allons utiliser un potentiomtre an de gnrer une tension variant entre 0 V et 5 V (principe du pont diviseur de tension). On pourrait acqurir la tension de nimporte quel capteur analogique, mais il faut faire attention ne pas lalimenter une tension suprieure la tension de rfrence (5 V pour le modle UnO ou 3.3 V suivant les modles) supporte par les PInS de lArduino. Lacquisition analogique se fait grce un CAn (Convertisseur Analogique numrique) de 10 bits, cest--dire que la plage 0 V 5 V est convertie en 210 = 1024 nombres numriques, soit une plage allant de 0 1023. La rsolution est donc de 4.9 mV. Branchez le potentiomtre comme suit : Patte extrieure 0 V (masse ou PIn GnD), patte intrieure 5 V et patte du milieu relier une entre analogique quelconque note Apin. Crez un diagramme avec un port analogique en lecture Analog_READ_SB (sous-palette Analog) et double-cliquez sur lentre analogique pour spcier votre numro de PIn. Ajoutez un acheur ARDUInO_SCOPE (sous-palette Conguration). Lancez lacquisition via le bouton de simulation et faites tourner le potentiomtre. On doit voir une courbe variant de 0 1023 selon langle du potentiomtre.
Dmonstrations / Arduino / Exemples Livret / Exemple 1
| 67

ACQUISITIOn ET PILOTAGE DE MOTEUR

Maintenant que lacquisition dune grandeur analogique a t valide, nous allons commander les sorties analogiques de lArduino.

commande de sorties analogiques : pWm


Les sorties analogiques de la carte Arduino Uno sont disponibles sur les ports des sorties logiques 3, 5, 6, 9, 10 et 11. Parler de sorties analogiques est donc un peu un abus de langage. En eet, pour gnrer cette sortie en minimisant les pertes dnergie, lArduino utilise des PWM. Le but est de raliser un variateur de lumire partir de la consigne issue du potentiomtre grce la diode.

Comme il sagit dun systme trs rapide (le temps de rponse est de lordre de la nanoseconde), elle va donc clignoter la frquence de 490 Hz avec un rapport cyclique variable. Ce sont nos yeux qui vont jouer le rle de ltre en ne retenant que la valeur moyenne de lintensit lumineuse perue.

Ajoutez au diagramme Xcos prcdent un bloc sortie analogique AnALOG_WRITE_SB (sous-palette Analog). Double-cliquez pour spcier que cette sortie sera associe au PIn PWM de votre choix et branchez la diode sur ce PIn et sur le PIn Gnd (masse). Lentre du bloc sortie analogique correspond la valeur du rapport cyclique qui peut varier de 0 (0 %) 255 (100 %). Il est possible de mettre une valeur suprieure 255, mais cela naurait pas de sens car le rapport cyclique restera son maximum (100 %).

Dmonstrations / Arduino / Exemples Livret / Exemple 2

nous avons vu prcdemment que la consigne issue du potentiomtre varie de 0 1023. Il faut donc adapter cette consigne pour proter au maximum de la plage de rglage allant de 0 255.

68 |

ACQUISITIOn ET PILOTAGE DE MOTEUR

Ajoutez un gain GAInBLK_f de 256 / 1024 disponible dans la palette standard (sous-palette Oprations mathmatiques) puis reliez lentre potentiomtre la sortie PWM en passant par le gain et enn lancez lacquisition via le bouton de simulation an de suivre lvolution de la structure ainsi cre. On constate que lon peut maintenant commander lintensit lumineuse de la diode en agissant sur le potentiomtre.

commande en boucle ouverte dun moteur courant continu


Pour raliser la commande dun moteur, nous allons utiliser un hacheur externe. Cela est ncessaire car la carte Arduino Uno utilise ne peut dlivrer susamment de puissance pour alimenter un moteur. Le hacheur fonctionne selon le mme principe que le signal PWM prcdent. Il hache la tension issue de lalimentation externe grce des transistors. La tension moyenne dpend alors du rapport cyclique. Cest justement le signal PWM de lArduino qui est utilis pour commander ces transistors. Il est possible dutiliser des cartes toutes prtes qui permettent de relier simplement lArduino, le hacheur externe et le moteur. Il nest cependant pas beaucoup plus compliqu de crer son propre hacheur en utilisant des circuits imprims comme le L293D ou Sn754410. nous allons utiliser, dans un premier temps, le moteur-rducteur 6 V ainsi que la carte PMODHB5 disponible sur plusieurs sites dachat en ligne. Il y a 6 broches connecter via la rallonge sur la carte Arduino, il sagit du connecteur J1 du schma suivant. La rallonge possde un dtrompeur (petite toile pour le PIn 1) pour bien reprer les direntes connectiques du port J1. Schma de cblage de la carte pmodhb5 : Attention, une inversion des bornes pourrait endommager le circuit. w Le signal PWM pour la commutation VM du pont en H sera envoy sur lentre En. M+ DIR w Spciez le sens de rotation avec H-BRIDGE CIRCUIT MEN lentre DIR. GND SA w SA et SB correspondent aux signaux GND SB VCC des deux capteurs en quadrature de GND phase. VCC w Lalimentation des capteurs se fait entre GnD et VCC. VM J1 J2 w VM et GnD correspondent GND J3 lalimentation externe (chane dnergie). Cf. photo ci-contre.

| 69

ACQUISITIOn ET PILOTAGE DE MOTEUR

Reliez lalimentation 5V la borne VCC, ainsi que la masse la borne GnD avec des straps. Connectez la borne DIR sur une sortie digitale de lArduino. Connectez la borne En sur une sortie PWM de lArduino. On va maintenant crer linterface avec Scilab / Xcos et le module Arduino. Ouvrez une nouvelle fentre ddition Xcos et ajoutez le bloc de conguration du port srie ARDUInO_SETUP (sous-palette Conguration) et le bloc chantillonnage TIME_SAMPLE (sous-palette Conguration) avec un chantillonnage de 0.01s. Ajoutez un bloc entre constante COnST_m disponible dans la palette standard (sous-palette Sources) et rglez-le une consigne comprise entre -255 et 255 (ici 120). Si la consigne dpasse 255, le PWM de lArduino saturera la valeur maximale (255). Ajoutez un bloc moteur continu DCMOTOR_SB (sous-palette Motor) et congurez-le pour grer la carte PMODHB5 et le moteur n1.

Dmonstrations / Arduino / Exemples Livret / Exemple 3

Spciez les ports choisis(par exemple, direction : 8, commutation / PWM : 11) puis lancez lacquisition via le bouton de simulation. Le moteur se met tourner dans un sens.

commande dun moteur courant continu avec un potentiomtre


Reliez le potentiomtre pour eectuer une acquisition sur lune des entres analogiques de la carte Arduino Uno. Dans Xcos, modiez le diagramme prcdent pour lire la valeur du potentiomtre et imposer la consigne. Un gain de 120 / 1024 a t ajout entre la consigne issue du potentiomtre et le moteur. En eet, les moteurs admettent une tension nominale maximum de 6 V, mais lalimentation du hacheur est en 12 V. Il faut donc envoyer uniquement 50 % environ de la tension Dmonstrations / Arduino / Exemples Livret / Exemple 4 maximale 12 V, ce qui correspond un rapport cyclique maximal de 120 pour se limiter 6 V avec une marge de scurit (255 correspond 12 V) pour une valeur de consigne maximale de 1024.

70 |

ACQUISITIOn ET PILOTAGE DE MOTEUR

Lancez lacquisition via le bouton de simulation. On voit que lon commande le moteur en boucle ouverte laide du potentiomtre. On se rend compte quil existe une forte tension de seuil avant la rotation. Cette tension est lie dimportants frottements secs dans le rducteur.

rcupration des informations issues dun codeur


Reprenons le schma de cblage de la carte PMODHB5 vu prcdemment. Grce la quadrature des deux signaux SA et SB, on arrive dterminer le sens de rotation. nous allons avoir direntes options pour compter les impulsions : w x1 : incrmente / dcrmente (selon le sens de rotation) le compteur tous les fronts montants de la voie A. w x2 : incrmente / dcrmente (selon le sens de rotation) le compteur tous les fronts montants et Cellule a descendants de la voie A. Cellule b w x4 : incrmente / dcrmente (selon le sens de rotation) le compteur tous les fronts montants et descendants de la voie A et de la voie B.

Sens 1

Sens 2

Sur les moteurs utiliss, il y a trois priodes pour chaque cellule par tour darbre moteur. nous pouvons donc en x4 obtenir 12 incrments par tour de larbre moteur. Comme nous avons un rducteur de rapport 1 / 53, cela donne 636 incrments par tour en sortie du rducteur. Branchez les deux broches du codeur incrmental sur les voies 2 et 3. Pour faire fonctionner un codeur, nous avons besoin dentres en interruption. Ce sont des entres capables darrter le programme principal lors dun changement dtat an dexcuter un sous-programme (dans notre cas incrmenter un compteur).

Dmonstrations / Arduino / Exemples Livret / Exemple 5

| 71

ACQUISITIOn ET PILOTAGE DE MOTEUR

Les PInS 2 et 3 sont les seuls PInS de la carte Arduino Uno supportant les interruptions. Pour faire fonctionner un codeur en x4, il faut que les deux voies soient cbles sur les PInS dinterruption. Par contre, en x1 ou x2, seule une voie doit tre branche en interruption, lautre peut tre relie une entre logique classique. Dans Xcos, ajoutez le bloc EnCODER_SB (sous-palette Digital). Double-cliquez sur celui-ci et choisissez le numro de la carte (1) et le mode de fonctionnement (x1, x2, x4). Ensuite, il est ncessaire de spcier les bons PInS pour la voie A (forcment 2 ou 3) et la voie B, qui permet de trouver la direction. Ajoutez un scope. Positionnez un gain permettant de limiter la consigne 120, sachant que la valeur lue par le potentiomtre varie de 0 1024. Lancez lacquisition via le bouton de simulation et testez la commande avec le potentiomtre. Choisissez une valeur xe de commande avec le potentiomtre et vriez les rapports de multiplication x1, x2, x4 en regardant la courbe obtenue.

noter Si la position est ngative, il faut inverser les voies physiquement sur les PIn2 et PIn3 de lArduino ou inverser les PIn dans la conguration des blocs EnCODER_SB et DCMOTOR_SB. Dmonstrations / Arduino / Exemples Livret / Exemple 6

On peut maintenant essayer dacher la vitesse de rotation du moteur. Pour cela, il faut driver la position laide dun bloc DERIV (sous-palette standard Systmes temps continu). On doit observer que la vitesse est assez bruite. Pour ltrer le bruit, on peut utiliser un ltre du second ordre CLR, disponible dans la palette standard (sous-palette Systmes temps continu), comme indiqu sur la gure suivante.
72 |

ACQUISITIOn ET PILOTAGE DE MOTEUR

La valeur de 0.2 du ltre, qui correspond 2 fois la priode de lacquisition Arduino permet dviter les repliements de spectres (thorme de Shannon).

asservissement en vitesse dun moteur


Le potentiomtre permet de dnir la consigne de vitesse du moteur en incrments par seconde. Cette consigne est compare la vitesse relle, obtenue par drivation de la position fournie par le codeur incrmental, pour former un cart. L'cart est ensuite adapt l'aide d'un correcteur de type proportionnel intgral (PI) qui fournit la consigne au moteur.

Dmonstrations / Arduino / Exemples Livret / Exemple 7

On notera que pour que l'asservissement soit possible, il faut mettre une frquence d'chantillonnage assez faible (de l'ordre d'un dizime du temps de rponse du systme en boucle ouverte).

| 73

ACQUISITIOn ET PILOTAGE DE MOTEUR

L'asservissement est galement ralis sur la vitesse brute car le ltre introduit un retard dans le calcul de la vitesse.

74 |

www.scilab.org

You might also like