Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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.
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
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.
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.
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
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 |
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
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 :
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 |
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
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 |
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).
| 25
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
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 |
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
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.
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
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.
Source de temprature
Signal sinusodale
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 |
35
Lancez une nouvelle simulation et observez que la commande par impulsion nest pas optimale.
30
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
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 |
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
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 :
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.
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
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.
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
| 33
Rsistance
Inductance
0.001 H 0.01 n.m.A-1 Reli au bti (ce qui veut dire que le stator est xe)
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.
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.
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
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.
36 |
Signal pWm
Ouvrez une nouvelle fentre ddition Xcos. Positionnez les blocs indiqus pour raliser le diagramme suivant :
dsignation Echelon
reprsentation
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
Etude temporelle
Achage du signal
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.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
| 37
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.
38 |
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.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.
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.
Quelques illustrations
de nos recherches
FS2
FS3
Limiter la distance darrt du LP, pour Distance darrt rglemente infrieure 10 mm ne pas blesser le patient
42 |
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
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 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
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
44 |
350
300
250
200
150
100
50
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
PWM
tude temporelle
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 |
Lancez la simulation en prenant 2 000 points. Comparez la courbe obtenue avec la prcdente.
350 vitesse
300
250
200
150
100
50
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.
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
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
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.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
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.
50 |
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
Comparateur
Correcteur PI
| 51
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 |
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
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 :
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 |
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
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.
0.1 0.05 0 4 2 0
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.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.7
0.8
0.9
01
02
03
04
05
06
07
08
09
56 |
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
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.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
01
02
03
04
05
06
07
08
09
Saturation
non-linarits / SATURATIOn
Insrez un bloc PARAM_VAR (sous-palette Analyses) pour faire une tude paramtrique.
58 |
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
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.
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
60 |
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
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 :
| 61
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.
10 0
10
10
10
10 Pulsation (rad/s)
20 40 60
0 1 2 3 4
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 |
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 :
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
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
Entre : E Sortie : S
Entre : Ei Sortie : Si
| 63
USB
AREF 0V SCK
13 12 11 10 09 08 07
PWM
14 15 16 17 18 19
06 05 04
A0 A1 Analog A2 A3 A4 A5
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
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
Gnrateur dimpulsions
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 |
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.
Maintenant que lacquisition dune grandeur analogique a t valide, nous allons commander les sorties analogiques de lArduino.
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 %).
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 |
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.
| 69
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.
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.
70 |
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.
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).
| 71
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 |
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).
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
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