Vous êtes sur la page 1sur 78

1.

6
1.4
1.2
1

0.8
0.6
0.4
0.2
0
0.2

0.5

1.5

2.5

3.5
t

4.5

5.5

MAXPID

MAXPID

Scilab/Xcos

www.scilab.org

pourlenseignement
dessciencesdelingnieur

6.5

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

9
11
14
16
20

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

21
24
31
42

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

53
55
57
58
60

4 - acquISItIon et pIlotaGe de moteur (module arduIno)


PRSENTATION DE LA CARTE ARDUINO UNO
UTILISATION DU MODULE ARDUINO

65
66
|3

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 scientifiques et lingnierie

Xcos
Modules externes

Outil de modlisation et de simulation de systmes dynamiques hybrides

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")

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|

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.

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

reprsentation

Sous-palette standard

chelon

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

Consigne de
temprature

Perturbations

Relais

Radiateur

Sonde

24 |

Pice

Temprature
de la pice

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

paramtrage

Rsistance chauante

lectrique / Composant
basique / Passif /
MEAB_HeatingResistor

50 la temprature de rfrence
Temprature de rfrence de 20 C =
293.15 K
Coecient de temprature gal 0

Interrupteur command

lectrique / Composant
basique / Passif /
MEAI_IdealClosingSwitch

Source de tension

lectrique / Sources /
CEAS_PredefVoltage

Masse

lectrique / Sources /
MEAB_Ground

Capacit thermique

Thermique / Basique /
MTH_HeatCapacitor

Constante
220 V

500 000 J.K-1

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

reprsentation

Sous-palette SImm

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

Signal crneau

Signaux / Sources /
MBS_Pulse

tude temporelle

Utilitiaires / Analyses /
IREP_TEMP

Capteur de temprature

Thermique / Mesure /
MTHC_TemperatureSensor

Visualisation

Utilitaires / Visualisation /
ISCOPE

nombre de courbes : 2

160

Signal de commande
Temprature de la pice

150

Lancez la simulation.

140
130
120

Les rsultats de celle-ci sachent sur une nouvelle fentre.

110
100

Les courbes montrent notamment quun tel modle, ne


prenant pas en compte les pertes au niveau des murs, nest
pas raliste.

90
80
70
60
50
40
30
20
10
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

reprsentation

Sous-palette SImm

paramtrage

Conductivit thermique

Thermique / Basique /
MTH_ThermalConductor

20 W.K-1

Source de temprature

Thermique / Sources /
MTHC_PrescribedTemperature

Signal sinusodale

Signaux / Sources / MBS_Sine

Amplitude : 10
Dcalage : 15
Frquence : 1/24h =1/(3600*24) Hz

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.

Signal de commande
Temprature de la pice
Temprature extrieure

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

50 000

100 000

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.

150 000

200 000

250 000

300 000

350 000

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 :

Dmonstrations / SIMM / Exemples Livret / Exemple 3


| 29

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Relancez la simulation pour obtenir la courbe ci-dessous :


Signal de commande
Temprature de la pice
Temprature extrieure

24
22
20
18
16
14
12
10
8
6
4
2
0

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.

Cf

Lobjectif de cette activit est de montrer comment modliser le moteur et le piloter.

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

reprsentation

Sous-palette SImm

paramtrage

Solide en rotation autour


dun axe xe

Mcanique / Rotation 1D /
Basique / MMR_Inertia

0.00002 kg.m2

Couple extrieur (entre


laxe et le bti)

Mcanique / Rotation 1D /
Sources / CMRS_Torque0

tude temporelle

Utilitaires / Analyses /
IREP_TEMP

Dure : 1 s
nombre de points : 200

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

Lancez la simulation et observez une droite de pente


5 000 rad.s-1 reprsentant la vitesse.

Vitesse angulaire (rad/s)

4 500
4 000
3 500

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.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.

700
600
500
400

noter
Le comportement en translation
rectiligne (Translation 1D)
fonctionne exactement sur le
mme principe.

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

reprsentation

Sous-palette SImm

paramtrage

Source de tension

lectrique / Sources /
CEAS_PredefVoltage

Constante
12 V

Rsistance

lectrique / Composant
basique / Passif /
MEAB_Resistor

Inductance

lectrique / Composant
basique / Passif
/MEAB_Inductor

0.001 H

Force lectromotrice en
rotation

lectrique / Composant
basique / Passif
/CEAB_EMFGEn

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

Masse

lectrique / Sources /
MEAB_Ground

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

Vitesse angulaire (rad/s)

550
500
450
400
350
300
250
200
150
100
50
0

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

Vitesse angulaire (rad/s)

400
200
0

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

Couple moteur (Nm)

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.

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

reprsentation

Sous-palette SImm

paramtrage

Echelon

Signaux / Sources / MBS_Step

Amplitude : 125 (le reste 0)

PWM

Signaux / Sources / CCP_PWM

8 bits
Frquence : 500 Hz
Temps de dpart : 0 s

Etude temporelle

Utilitaires / Analyse /
IREP_TEMP

Dure 0.1s
1000 points
Grille : oui
Acher les courbes pendant la
simulation : oui

Achage du signal

Utilitaires / Visualisation /
ISCOPE
1

Lancez une simulation et observez le signal.

commande

0.9
0.8

Remplacez lchelon par un bloc MBS_Ramp (sous-palette


Signaux / Sources) de pente 255 / 0.1.

0.7
0.6
0.5

Observez lvolution du signal crneau en sortie du PWM.

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

uL

ic

L
uH
D
iD

uc

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

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


points).

Vitesse angulaire (rad/s)

200
100
0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

Intensit (A)

8
6
4
2
0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

Tension (V)

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 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.

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
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.
Linstitut runit aujourdhui
3500 chercheurs, inventeurs du
monde numrique.

Ces chercheurs inventent les


technologies numriques de
demain.

Inria accueille
chaque anne :
600 stagiaires
de fin 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

critre

niveau

Dplacer le LP en
translation

tre rapide sans mettre en danger le


personnel mdical

Vitesse maximale 100 mm.s-1

FS2

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

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

1. Temps masqu : 0.3 s


2. Premires oscillations < 1 mm dun
extremum lautre
< 0.2 mm dun extremum lautre
aprs 1 s

FS3

Assurer la scurit du
patient

Limiter la distance darrt du LP, pour Distance darrt rglemente


infrieure 10 mm
ne pas blesser le patient

FS1

42 |

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

S4

Schma cinmatique

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

iso-centre : lc

donnes gomtriques, cintiques et grandeurs caractristiques du moteur


poulie motrice

dispositif roue et vis sans n

Rayon de la poulie motrice S3 : Rp = 0.0318 m

Rapport de rduction : r = 1 / 50

chariot (S1)

armature (S2) : armature en forme de c

Masse : m1= 270 kg

AIC = d = 1.4 m
Centre dinertie G2 : AG2 = l2 = 0.85 m
Masse : m2 = 490 kg
J2 = 620 kg.m2

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

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

44 |

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

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

reprsentation

Sous-palette SImm

paramtrage

Ramp

Amplitude : -255
Dure : 0.15 s
Signaux / Sources / MBS_Ramp
Dcalage : 255
Temps de dbut : 1 s

PWM

Signaux / Sources / CCP_PWM

8 bits
Frquence : 500 Hz
Temps de dbut : 0 s

tude temporelle

Utilitaires / Analyses /
IREP_TEMP

Dure : 2 s
10 000 points
Grille ache : oui
Acher les courbes pendant la
simulation : non

Achage du signal

Utilitaires / Visualisation /
ISCOPE

nombre de courbes : 1
nom de la courbe : vitesse PWM

Hacheur demi-pont

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

reprsentation

Sous-palette SImm

paramtrage

Rducteur engrenages

Composants / Adaptateurs /
MMR_IdealGearGen

Rapport de transmission : 50
Bti : oui

Pignon crmaillre

Composants / Adaptateurs /
MMR_IdealGearR2TGen

Rapport de transmission : 1 / 0.038


Bti : oui

Masse en translation

Mcanique / Translation 1D /
Basique / CMTC_Mass

Masse : 760 Kg

Capteur de vitesse

Mcanique / Translation 1D /
Mesure / CMTS_GenSensor

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

Vitesse moteur (rad/s)

120
100
80
60
40
20
0

0.2

0.4

0.6

0.8

1.2

1.4

0.1

1.6

1.8

Vitesse chariot (m/s)

0.08
0.06
0.04
0.02
0

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

Gain

Signaux / Math / MBM_Gain

50/0.0318

tude temporelle

Utilitaires / Analyses /
IREP_TEMP

Dure : 2 s
2000 points
Grille ache : oui
Acher les courbes pendant la
simulation : non

Comparateur

Signaux / Math / MBM_Add

Gains 1 et -1

Correcteur PI

Signaux / Continu / MBC_PI

Gain 0.15
Constante de temps 0.025 s

Filtre du premier ordre

Signaux / Continu /
MBC_FirstOrder

Gain 1
Constante de temps 0.001 s

| 51

MODLISATIOn MULTI-PHYSIQUE ACAUSALE

Dmonstrations / SIMM / Exemples Livret / Exemple 19


200

Vitesse moteur (rad/s)

150
100
50
0
0

0.2

0.4

0.6

0.8

1.2

1.4

0.15

1.6

1.8

Vitesse chariot (m/s)

0.1
0.05
0
0

0.2

0.4

0.6

0.8

1.2

1.4

80

1.6

1.8

Intensit moteur (A)

60
40
20
0
0

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

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

reprsentation

Sous-palette cpGe

paramtrage
Valeur nale : 0

chelon

Entres / STEP_FUnCTIOn

Fonction de transfert
continue

Oprateurs linaires / CLR

Gain

Oprateurs linaires /
GAInBLK_f

Comparateur

Oprateurs linaires /
BIGSOM_f

Visualisation

Sorties / SCOPE

Valeur nale : 80
numrateur : 1
Dnominateur : Lm*s + Rm
Kt
Ke

Intensit (A)
Vitesse angulaire (rad / s)

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

Vitesse de rotation (rad/s)

300
250
200
150
100
50
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

30

0.9

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

Vitesse de rotation (rad/s)

0.1
0.05

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.

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Intensit (A)

4
2
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Vitesse de rotation (tours/min)

1 500
1 000

Analysez rapidement les courbes obtenues en les comparant


celles qui ont t obtenues par la simulation acausale.

500
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Tension dalimentation (V)

40
20
0

56 |

01

02

03

04

05

06

07

08

09

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

reprsentation

Sous-palette cpGe

paramtrage

Gnrateur de signal
trapzodal

Entres / TRAPEZOID

Amplitude : 0.1
Largeur : 10

Correcteur PI

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

Intensit (A)

2
0
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Vitesse de rotation (tours/min)


1 000

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.05
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Tension dalimentation (V)

40
20
0
0.1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Vitesse dplacement (m/s)

0.05
0

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

reprsentation

Sous-palette cpGe

paramtrage

Variation paramtrique

Analyses / PARAM_VAR

Kp
[0.5,1,5,10,100]

Saturation

non-linarits / SATURATIOn

40
-40

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.
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.

2
0
0

0.1

0.2

0.3

0.4

0.5

0.6

1 500
1 000
500
0

0.1

0.2

0.3

0.4

0.5

0.6

Congurez la saturation avec les valeurs indiques


dans le tableau prcdent (40 et -40).

0.05
0

0.1

0.2

0.3

0.4

0.5

0.6

20

0.1

0.2

0.3

0.4

0.5

0.6

0.1

0.7

0.8

0.9

0.7

0.8

0.9

0.7

0.8

0.9

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)

0.05

0.9

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)

40

0.8

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

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).

0.7

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)

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.

Kp=0.5 Intensit (A)


Kp=1 Intensit (A)
Kp=5 Intensit (A)
Kp=10 Intensit (A)
Kp=100 Intensit (A)

2
0
0

0.1

0.2

0.3

0.4

0.5

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.

0.1

0.2

0.3

0.4

0.5

0.1

0.2

0.3

0.4

0.5

0.8

0.9

0.6

0.7

0.8

0.9

0.6

0.7

0.8

0.9

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)

20

0.1

0.7

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.05

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

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.05
0

Lancez la simulation et observez leet de la saturation pour


la valeur Kp = 100.

0.1

40

0.6

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)

1 000

01

02

03

04

05

06

07

08

09

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

reprsentation

Sous-palette cpGe

Analyse frquentielle

Analyses / REP_FREQ

Points dentre / sortie

Analyses /
GRAnDEUR_PHYSIQUE

paramtrage

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.

Marge de gain infinie ; Marge de phase : 43.25


40

Amplitude (dB)

20

10
0

10

10

10

10
Pulsation (rad/s)

20
40
60

10
0

10

10

10

10

Pulsation (rad/s)

50
Phase ()

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.

100
150
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

Marge de gain infinie ; Marge de phase : 109.86

400

20

200
100
0
100

10

10
0

Pulsation (rad/s)
0

10

10

10

10

10

10

10

10

Amplitude (dB)

Amplitude (dB)

300

10

10
0

Pulsation (rad/s)
0

10

10

10

10

10

10

10

10

Pulsation (rad/s)

50
Pulsation (rad/s)

150
200

Phase ()

Phase ()

0
10

50
100

250

10

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

Reset

MISO

12

+3V3

MOSI / PWM

11

SS / PWM

10

PWM

09

+5V
0V
0V

08

+Vin (7-12V)
A0

15

A1

16

A2

17

A3

18
19

06

PWM

05
04

Analog

14

07

PWM

INT1 / PWM

03
02

A4

INTO
TX

A5

RX

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.

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

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

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

Sous-palette

paramtrage

Conguration
Arduino

Arduino / Conguration /
ARDUInO_SETUP

Port srie : 5

Conguration
simulation

Arduino / Conguration /
TIME_SAMPLE

criture port digital

Arduino / Digital /
DIGITAL_WRITE_SB

PIn digital : 13

CPGE / Entres / PULSE_SC

Retard : 0.1
Largeur de pulsations : 30
Priode : 1
Amplitude : 1

Gnrateur
dimpulsions

reprsentation

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 |

1.6
1.4
1.2
1

0.8
0.6
0.4
0.2
0
0.2

0.5

1.5

2.5

3.5
t

4.5

5.5

MAXPID

MAXPID

Scilab/Xcos

www.scilab.org

pourlenseignement
dessciencesdelingnieur

6.5

Vous aimerez peut-être aussi