Académique Documents
Professionnel Documents
Culture Documents
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.
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
21
24
31
42
53
55
57
58
60
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
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
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
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")
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
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
menu achage
w Zoom avant (Ctrl+Pav numrique Plus sous Windows et Linux / Cmd+Pav numrique Plus sous Mac OS X)
Agrandit la vue de 10 %.
w Zoom arrire (Ctrl+Pav numrique Moins sous Windows et Linux / Cmd+Pav numrique Moins sous Mac OS X)
Rduit la vue de 10 %.
w ajuster le diagramme la vue
Ajuste la vue la taille de la fentre.
w normal 100 %
Dimensionne la vue sa taille par dfaut.
w navigateur de palettes
Ache / masque le navigateur de palettes.
w navigateur de diagrammes
Ache une fentre qui liste les proprits globales du diagramme et de tous les objets quil contient
(blocs et liens).
w aperu
Ache un aperu complet du diagramme courant. Avec la vue Aperu, vous pouvez dplacer laire de
travail ache sur une partie du diagramme.
12 |
SE FAMILIARISER XCOS
menu Simulation
w congurer
Modie les paramtres de simulation.
w trace dexcution et de dbogage
Congure la simulation en mode dbogage.
w modier le contexte
Permet dentrer des instructions Scilab pour dnir des variables / fonctions utilisables dans le
paramtrage des blocs dun diagramme.
w compiler
Compile le diagramme.
w Initialisation de modelica
Permet dinitialiser les variables du sous-ensemble acausal du diagramme.
w dmarrer
Lance la simulation.
w arrter
Interrompt la simulation.
menu format
w pivoter (Ctrl+R sous Windows et Linux / Cmd+R sous Mac OS X)
Pivote le ou les bloc(s) slectionn(s) de 90 anti-horaire.
w retourner (Ctrl+F sous Windows et Linux / Cmd+F sous Mac OS X)
Inverse les positions des entres et sorties dvnements places au-dessus et au-dessous dun bloc
slectionn.
w miroir (Ctrl+M sous Windows et Linux / Cmd+M sous Mac OS X)
Inverse les positions des entres et sorties rgulires places gauche et droite dun bloc slectionn.
w acher / masquer lombre
Ache / masque lombre porte des blocs slectionns.
w aligner les blocs
En slectionnant plusieurs blocs, il est possible de les aligner sur laxe horizontal (gauche, droite et
centre) ou sur laxe vertical (haut, bas et centre).
w couleur de bordure
Change la couleur des bords des blocs slectionns.
w couleur de fond
Change la couleur de remplissage des blocs slectionns.
w Style de liens
Modie le style dun lien.
| 13
SE FAMILIARISER XCOS
w fond du diagramme
Change la couleur de fond du diagramme.
w Grille
Active / dsactive la grille. Avec la grille, le positionnement des blocs et des liens est plus facile.
menu outils
w Gnration de code
Permet de gnrer le code de simulation associ un superbloc slectionn.
menu ?
w aide de Xcos
Ouvre laide sur le fonctionnement de Xcos, des palettes, des blocs et des exemples.
w aide du bloc
Ouvre laide sur un bloc slectionn.
w dmonstrations Xcos
Ouvre des exemples de diagrammes et les simule. Lutilisateur peut alors, sil le souhaite, modier ces
diagrammes et les sauvegarder pour une utilisation future.
14 |
SE FAMILIARISER XCOS
w matrice
Blocs pour des oprations matricielles simples et complexes.
w lectrique
Blocs reprsentant des composants lectriques de base (source de tension, rsistance, diode,
condensateur, etc.).
w entier
Blocs permettant la manipulation de nombres entiers (oprateurs logiques, portes logiques).
w port et sous-systme
Blocs de cration de sous-systmes.
w dtection de passage zro
Blocs utiliss pour dtecter les traverses de zro pendant la simulation. Ces blocs utilisent les capacits
des solveurs (ODE ou DAE) pour eectuer cette opration.
w routage de signal
Blocs permettant le routage du signal, multiplexage, aiguillage, chantillonn / bloqu.
w traitement du signal
Blocs pour des applications en traitement du signal.
w Implicite
Blocs pour modliser des systmes implicites.
w annotations
Blocs utiliss pour les annotations.
w Sinks
Blocs de sortie utiliss pour lachage graphique (scope) et lexport de donnes (chier ou Scilab).
w Sources
Blocs de sources de donnes (impulsion, rampe, sinusode) et de lecture de donnes partir de chiers
ou de variables Scilab.
w thermohydrauliques
Blocs des composants thermohydrauliques de base (source de pression, tuyaux, vannes de rgulation).
w blocs de dmonstration
Blocs utiliss dans les diagrammes de dmonstration.
w fonctions dnies par lutilisateur
Blocs utilisateurs permettant de modliser un comportement (fonction de simulation C, Scilab ou
Modelica).
| 15
SE FAMILIARISER XCOS
reprsentation
Sous-palette standard
chelon
Sources / STEP_FUnCTIOn
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
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.
18 |
SE FAMILIARISER XCOS
| 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.
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 |
, 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
Il nest pas ncessaire dcrire les quations du systme car chaque bloc les contient. Il sut simplement de
congurer les paramtres de chaque bloc (R, L, C et U) en double-cliquant dessus. Un lien entre deux blocs
contient dans ce cas la fois le potentiel et lintensit. Cette modlisation permet dexprimer des relations entre
composants sans connatre la grandeur que lon cherche calculer. Pour extraire cette grandeur, on utilisera
des blocs de type capteur et ainsi entrer dans le monde causal.
Dans une reprsentation purement causale, les liens reprsentent une grandeur physique particulire et le
diagramme est alors une traduction des quations plutt quune reprsentation des composants. Lors de la
modlisation, la grandeur de sortie est donc exprime dans une relation directe contenant des blocs
intgrale pour chacune des quations contenant une drive. Cela donne :
Celui-ci est donc plus compliqu que le diagramme prcdent. On a aussi perdu la signication physique.
Lutilisation de la transforme de Laplace permet, entre autre, de simplier la reprsentation causale par ce
diagramme (en supprimant, par exemple, la boucle avec R) :
22 |
Chacune des formes des connecteurs correspond une grandeur physique. Une validation des liens entre
connecteurs est ralise lors de la simulation an de garantir une modlisation cohrente.
Reliez les blocs entre eux en respectant obligatoirement les formes et couleurs des connecteurs. Relier un
connecteur carr-rouge un connecteur carr-bleu revient crire une galit entre llectrique et le thermique
sans conversion. Ce type de connexion ne gnrera pas derreur lors de ldition du diagramme mais une erreur
de compilation sera retourne lors de la simulation.
An dviter les erreurs, veillez connecter des ports de mme domaine fonctionnel :
w Triangle bleu : signal de donnes (sans dimension).
w Carr bleu : lectrique.
w Carr rouge : thermique.
w Carr vert : mcanique 1D en translation.
noter
Certains connecteurs sont vides, dautres pleins
w Rond gris : mcanique 1D en rotation.
mais il ny a pas de dirences entre eux. Certains
w Carr gris : mcanique 2D plane.
| 23
Chane daction
Consigne de
temprature
Perturbations
Relais
Radiateur
Sonde
24 |
Pice
Temprature
de la pice
noter
La capacit thermique est lnergie quil
faut apporter un corps pour augmenter
sa temprature dun Kelvin. Elle sexprime
en Joule par Kelvin (J.K-1). Cest une
grandeur extensive. Plus la quantit de
matire est importante plus la capacit
thermique est grande. La conduction
thermique est un transfert thermique
spontan dune rgion de temprature
leve vers une rgion de temprature
plus basse, et est dcrite par la loi dite de
Fourier
o F est le ux de
chaleur.
Dans SIMM, les composants des chanes dnergie et dinformation ont t regroups (sous-palette
Composants). On retrouve galement une organisation des blocs par domaines (sous-palettes Signaux,
Mcanique, lectrique, Thermique).
| 25
Positionnez les blocs suivants puis double-cliquez sur chacun deux pour congurer les paramtres indiqus
lorsque cela est prcis :
dsignation
reprsentation
Sous-palette SImm
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
noter
5.105 scrit 5e5
dans Scilab.
-4.10-3 scrit
-4e-3 dans
Scilab.
Pour changer lorientation dun bloc, slectionnez le puis faire un clic droit et slectionnez format / pivoter ou
format / miroir (ou tapez directement Ctrl+R ou Ctrl+M sous Windows et Linux / Cmd+R ou Cmd+M sous
Mac OS X).
Pour simuler le comportement du chauage, on impose en entre de linterrupteur command, un signal
crneau passant de 0 1 sur une priode de 3 heures (3*3600 secondes car lunit temporelle est la seconde)
et de rapport cyclique 20 %. Ceci signie que toutes les 3 heures, on chaue durant 36 minutes. On utilise le
bloc MBS_Pulse de la sous-palette Signaux / Sources.
Il faut galement spcier sur quelle dure de simulation le comportement doit tre valu. On choisit une
dure de 4 jours. La dure de simulation est spcie par le bloc IREP_TEMP (sous-palette Utilitaires / Analyses)
o lon congurera 3600*24*4. On choisit de paramtrer le bloc de manire ce que 20 000 points de
visualisation soient calculs et que les courbes correspondantes soient traces la n du calcul.
Les quantits thermiques, le ux et la temprature circulent sur le lien reliant la rsistance chauante la
capacit. Pour acher la temprature, il faut extraire de ce lien la grandeur temprature, en utilisant le bloc
MTHC_TemperatureSensor de la sous-palette Thermique / Mesure.
26 |
La sortie signal (triangle bleu) peut ensuite tre visualise ou utilise dans le diagramme. Pour visualiser des
signaux provenant dune source ou dun capteur, on utilise le bloc ISCOPE de la sous-palette Utilitaires /
Visualisation pour lequel le nombre dentres visualiser sur un mme graphique est spci (une lgende
peut tre donne pour chaque courbe dans le deuxime menu).
devient
si lon congure plus dune entre (ici 3). Ajoutez donc un bloc ISCOPE deux entres pour
visualiser le signal crneau et la temprature de la maison. Indiquez comme nom de courbes Signal de
commande reprsentant la consigne et Temprature de la pice .
Le tableau ci-dessous rsume lensemble des blocs positionner et les paramtres congurer :
dsignation
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
110
100
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
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.
reprsentation
Sous-palette SImm
paramtrage
Conductivit thermique
Thermique / Basique /
MTH_ThermalConductor
20 W.K-1
Source de temprature
Thermique / Sources /
MTHC_PrescribedTemperature
Signal sinusodale
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 |
35
Signal de commande
Temprature de la pice
Temprature extrieure
30
25
20
15
10
50 000
100 000
150 000
200 000
250 000
300 000
350 000
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
30 |
et
Cf
modlisation mcanique
Le schma cinmatique du moteur soumis des actions mcaniques peut directement tre traduit dans Xcos.
Pour commencer, on considre le rotor en liaison pivot soumis un couple Cm et un couple Cpert. Un solide
en rotation autour dun axe xe est caractris mcaniquement par son moment dinertie autour de laxe de
rotation (dicult le mettre en mouvement).
| 31
reprsentation
Sous-palette SImm
paramtrage
Mcanique / Rotation 1D /
Basique / MMR_Inertia
0.00002 kg.m2
Mcanique / Rotation 1D /
Sources / CMRS_Torque0
tude temporelle
Utilitaires / Analyses /
IREP_TEMP
Dure : 1 s
nombre de points : 200
5 000
4 500
4 000
3 500
3 000
2 500
2 000
1 500
1 000
500
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
La simulation sur 1 seconde fournit une rponse dun systme dordre 1 tendant vers la valeur
(Cm + Cpert) / viscosit avec une constante de temps gale
J / viscosit.
1 000
900
800
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
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.
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
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
0.1
0.05
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
On constate eectivement que le couple moteur est proportionnel lintensit. On peut galement tudier
linuence de linductance sur la vitesse angulaire en modiant sa valeur dans le bloc correspondant.
36 |
Signal pWm
Ouvrez une nouvelle fentre ddition Xcos. Positionnez les blocs indiqus pour raliser le diagramme suivant :
dsignation
reprsentation
Sous-palette SImm
paramtrage
Echelon
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
commande
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
| 37
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
38 |
300
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 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.
Inria accueille
chaque anne :
600 stagiaires
de fin dtude,
plus de 1200
doctorants dans
ses quipes de
recherche
Quelques illustrations
de nos recherches
critre
niveau
Dplacer le LP en
translation
FS2
Pouvoir commencer la
prise de vue ds larrt du
mouvement de translation
FS3
Assurer la scurit du
patient
FS1
42 |
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
Rapport de rduction : r = 1 / 50
chariot (S1)
AIC = d = 1.4 m
Centre dinertie G2 : AG2 = l2 = 0.85 m
Masse : m2 = 490 kg
J2 = 620 kg.m2
modlisation du systme
On sintresse dans un premier temps au dplacement de lensemble en supposant larmature xe par rapport
au chariot.
modlisation du moteur
nous avons vu dans lactivit prcdente quil tait possible de modliser de manire ne un moteur courant
continu en utilisant des composants lmentaires. Il est cependant possible de considrer globalement le
moteur comme un lment dune chane fonctionnelle et de nentrer que les caractristiques de celui-ci sans
soccuper de la manire dont il se comporte.
Insrez un bloc MEMC_DCmotor (sous-palette Composants / Actionneurs) dans une fentre ddition.
Double-cliquez sur le bloc et congurez les valeurs des constantes du moteur (voir tableau prcdent). Ajoutez
un bloc CEAS_PredefVoltage (sous-palette lectrique / Sources) et connectez le moteur cette source
dalimentation. noubliez pas dajouter une masse MEAB_Ground (sous-palette lectrique / Sources) pour dnir
le potentiel de rfrence.
Ajoutez en sortie un bloc CMRS_GenSensor (sous-palette Mcanique / Rotation 1D / Mesure), choisissez de
visualiser la vitesse de rotation de larbre moteur et ajoutez un bloc ISCOPE (sous-palette Utilitaires /
Visualisation).
nous allons faire direntes tudes temporelles (bloc IREP_TEMP de la sous-palette Utilitaires / Analyses). Pour
commencer, double-cliquez sur le bloc dalimentation et choisissez un chelon damplitude 80 V (tension
maximale du moteur). Lancez une simulation sur 0.5 s (en prenant 1000 points) et observez lallure de la
rponse.
350
vitesse
300
250
200
150
100
50
44 |
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
350
Vitesse relle
Vitesse approche
300
250
200
150
100
50
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
noter
Le gain du modle du premier ordre est gal la valeur asymptotique (environ 350 rad.s-1 ici) divise par la consigne (80 V). La
constante de temps est obtenue pour 63 % de la valeur nale (cf. Courbe obtenue pour la charge dun condensateur).
Une telle rponse correspond la rponse dun systme du premier ordre de gain et constante de temps
donne.
L'avantage de ce modle est qu'il ne ncessite que deux paramtres alors que le modle physique en demande
beaucoup plus. On peut alors chercher les paramtres qui sapprochent au mieux du modle du moteur puis
les tester avec un bloc MBC_FirstOrder (sous-palette Signaux / Continu) et une source chelon MBS_Step
(sous-palette Signaux / Sources) damplitude 80.
commande
80
reprsentation
Sous-palette SImm
paramtrage
Ramp
Amplitude : -255
Dure : 0.15 s
Signaux / Sources / MBS_Ramp
Dcalage : 255
Temps de dbut : 1 s
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 |
Lancez la simulation en prenant 2 000 points. Comparez la courbe obtenue avec la prcdente.
350
vitesse
300
250
200
150
100
50
50
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
En observant les rsultat obtenus, on saperoit que la modlisation ne du hacheur nest pas ncessaire dans
ce cas prcis. Il sera remplac par la source de tension variable.
modlisation des adaptateurs
En aval du moteur courant continu tudi prcdemment se trouve une chane cinmatique compose par
la mise en srie dun rducteur de type roue et vis sans n. La rotation de la roue du rducteur entrane la
translation du chariot par lintermdiaire dune roue de rayon donn.
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
Masse en translation
Mcanique / Translation 1D /
Basique / CMTC_Mass
Masse : 760 Kg
Capteur de vitesse
Mcanique / Translation 1D /
Mesure / CMTS_GenSensor
Vitesse
On constate ainsi quil est ncessaire de contrler lintensit du moteur pour grer les acclrations de
larmature. Cest pourquoi par la suite, un asservissement dintensit est mis en place, comme on le voit sur la
gure suivante avec une correction unitaire.
140
120
100
80
60
40
20
0
0.2
0.4
0.6
0.8
1.2
1.4
0.1
1.6
1.8
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
Lasservissement portant sur le couple, il faut imposer une intensit de consigne, soit U / R avec U la valeur
maximale utilise prcdemment (vous pouvez aussi ajouter un gain comme sur la gure prcdente).
Le rglage du correcteur PI pour lasservissement de courant du moteur se fait en choisissant une constante
de temps gale 10*L / R. Renseignez cette valeur et laissez un gain proportionnel de 1 pour linstant.
Remarquez que la vitesse nest plus du tout la mme car le moteur est pilot en intensit (donc une intensit
constante correspondra une vitesse linaire de par lquation de dynamique). Il est donc indispensable
dadapter la consigne dintensit pour retrouver des niveaux de vitesse raisonnable. Changez la consigne
(prendre 1.7 V par exemple ou 0.6 A). Observez ensuite linuence du gain du correcteur sur lintensit.
Le choix nal de la valeur du gain doit se faire en fonction de la tension du moteur qui ne peut pas dpasser
physiquement 80 V (Cf. hacheur). Ajoutez un voltmtre aux bornes du moteur et visualisez la tension pour
dirents gains suprieurs 1. Une valeur trop grande du gain entranera ncessairement un dpassement de
la tension maximale. On prendra par la suite un gain de 100.
asservissement en vitesse
La partie prcdente a permis de montrer quil est ncessaire dasservir en intensit un moteur pour contrler
les acclrations. Il est donc indispensable dajouter un contrle de vitesse pour assurer la loi de consigne
souhaite.
Pour simplier la commande du moteur, on peut utiliser une source dintensit pilote MEAS_SignalCurrent
(sous-palette lectrique / Sources) plutt que lasservissement dintensit, ce qui revient considrer cet
asservissement comme parfait.
50 |
Lasservissement de vitesse se fait en comparant la vitesse de rotation du moteur (capteur sur laxe du moteur)
la vitesse de consigne (en trapze). On utilise nouveau un correcteur PI pour simplier (gain 0.15, constante
de temps 0.025 s).
Le codeur incrmental mont sur laxe moteur dlivre une position en nombre de tops (informations binaires)
et cette information de position est ensuite drive numriquement par dirences nies. Le signal obtenu,
image de la vitesse de rotation du moteur, est en gnral trs bruit. Il faut donc adjoindre cette mesure un
ltre de constante de temps donn. Ce ltre est modlisable simplement par un bloc du premier ordre
MBC_FirstOrder (sous-palette Signaux / Continu) de constante de temps 1 ms.
Ralisez lasservissement de vitesse suivant et congurez en entre une consigne rampe de valeur maximale 0.1
m.s-1. Lancez la simulation et vous pouvez maintenant conclure sur la pertinence de ce type de commande.
Les blocs ajouter ou paramtrer sont rappels ci-dessous :
dsignation
reprsentation
Sous-palette SImm
paramtrage
Ramp
Amplitude : - 0.1
Dure : 0.15 s
Signaux / Sources / MBS_Ramp
Dcalage : 0.1
Temps de dpart : 1 s
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
Gains 1 et -1
Correcteur PI
Gain 0.15
Constante de temps 0.025 s
Signaux / Continu /
MBC_FirstOrder
Gain 1
Constante de temps 0.001 s
| 51
150
100
50
0
0
0.2
0.4
0.6
0.8
1.2
1.4
0.15
1.6
1.8
0.1
0.05
0
0
0.2
0.4
0.6
0.8
1.2
1.4
80
1.6
1.8
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 |
reprsentation
Sous-palette cpGe
paramtrage
Valeur nale : 0
chelon
Entres / STEP_FUnCTIOn
Fonction de transfert
continue
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
Construire le modle du diagramme du moteur courant continu en reliant les dirents blocs (aprs les avoir
positionns puis ventuellement orients), sous la forme du diagramme ci-dessous :
Pour dnir les grandeurs de sortie (an que les courbes obtenues soient ensuite reprables facilement),
double-cliquez sur chacun des deux blocs SCOPE et congurez le nombre de courbes superposer sur un
mme graphe (une seule dans notre cas) puis aprs avoir cliqu sur OK, entrez le nom du signal, savoir une
vitesse de rotation de laxe du moteur (en rad.s-1) et lintensit dans linduit (en A).
En double-cliquant sur un espace vierge du diagramme, il est possible dinsrer
du texte permettant damliorer la lecture globale. Dans limage prcdente, on
a ainsi pu dcrire quoi correspondaient les deux chelons dentre et les deux
sorties. Il est galement possible dattacher une tiquette / texte un bloc par un
simple clic droit sur le bloc, puis format / dition et de complter la zone de texte.
noter
Dans toutes les zones de
texte, il est possible dentrer
du code LaTeX permettant,
par exemple, dinsrer des
quations.
En double-cliquant successivement sur les deux chelons dentre, congurez une tension de 80 V (tension
nominale du moteur), un instant initial t = 0 s et un couple rsistant nul t = 0 s (le cas perturb sera tudi
par la suite).
tude / Simulation
Pour lancer une simulation, il est ncessaire de spcier le type dtude retenu (temporelle et / ou frquentielle).
Pour raliser une tude temporelle, positionnez dans le diagramme un bloc REP_TEMP (sous-palette Analyses).
En double-cliquant sur ce bloc, congurez une dure de simulation de 1 s et 500 points dachage. Lancez
alors la simulation. Deux courbes sachent, reprsentant respectivement lintensit et la vitesse angulaire.
54 |
350
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
Compltez le contexte avec les informations Kch = 31.8.10-3 / 50, tm, tr, U0 et Fr la suite des prcdentes puis
ajoutez trois gains GAInBLK_f (sous-palette Oprateurs linaires). Rajoutez galement deux acheurs SCOPE
(sous-palette Sorties) pour le trac de la tension dalimentation et de la vitesse de dplacement. Remplacez
lchelon de tension par un bloc TRAPEZOID (sous-palette Entres) et congurez lamplitude, le temps de
monte et prenez un temps de maintien de 10 (donc trs suprieur au temps de simulation) sans modier les
autres paramtres.
partir du diagramme initial, crez alors le diagramme ci-dessous, correspondant la commande en boucle
ouverte du systme (entre : tension du moteur en V, sortie : vitesse de dplacement de laxe en m.s-1
perturbation : force Fr linstant tr = 0.5 s). Un gain de 30 / (qui scrit dans Scilab 30 / %pi) permet dobtenir
la vitesse de rotation en rad.s-1.
0.1
0.05
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
1 500
1 000
500
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
40
20
0
56 |
01
02
03
04
05
06
07
08
09
reprsentation
Sous-palette cpGe
paramtrage
Gnrateur de signal
trapzodal
Entres / TRAPEZOID
Amplitude : 0.1
Largeur : 10
Correcteur PI
Intensit (A)
2
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.05
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
40
20
0
0.1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.05
0
01
02
03
04
05
06
07
08
09
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 |
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)
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
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
0.05
0.9
40
0.8
0.1
0.7
01
02
03
04
05
06
07
08
09
| 59
2
0
0
0.1
0.2
0.3
0.4
0.5
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
20
0.1
0.7
0.05
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.05
0
0.1
40
0.6
1 000
01
02
03
04
05
06
07
08
09
60 |
Pour analyser linuence des paramtres et le rglage du correcteur, on ralise une analyse frquentielle en
boucle ouverte. Pour raliser cette analyse, il est ncessaire de linariser le diagramme. normalement les blocs
non-linaires (type saturation) sont remplacs par des gains unitaires (sauf pour le retard qui peut tre trait
exactement en boucle ouverte).
dsignation
reprsentation
Sous-palette cpGe
Analyse frquentielle
Analyses / REP_FREQ
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 :
| 61
noter
Plusieurs blocs REP_FREQ peuvent tre introduits dans le diagramme, ce qui permet dobtenir la rponse frquentielle de la
boucle ouverte et celle de la boucle ferme dans deux fentres graphiques spares. Si lon souhaite superposer deux rponses
frquentielles, il sut de congurer les direntes entres et sorties spares par des points-virgules. Exemple : E1;E2 et S1;S2.
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 ()
100
150
Entre : E Sortie : S
62 |
Le principe de la boucle de courant est simple. On vient, grce une structure adquate, mesurer lintensit
au niveau de linduit et alors modier lalimentation relle du moteur aprs une correction le plus souvent de
type PI comme le montre le diagramme suivant :
Dans ce diagramme, le retour de courant a t choisi unitaire car le gain du capteur (rsistance de shunt ou
capteur eet Hall) est ici intgr dans le correcteur PI.
Il est ncessaire de rgler le correcteur PI de la boucle de courant (utilisant les grandeurs physiques Ei et Si)
puis le correcteur PI de la boucle de vitesse. Un ltre a t ajout dans la boucle de retour tachymtrique pour
tre au plus prt de la physique du systme (mesure par codeur puis drivation numrique bruite).
On voit quil est possible, en utilisant cette structure, datteindre des performances relativement importantes
tout en ne modiant ni la structure globale de lasservissement (donc en gardant un codeur incrmental sur
laxe du moteur) ni le choix du moteur courant continu, ce qui est toujours dlicat (cot, implantation, etc.).
Marge de gain : 26.59dB ; Marge de phase : 59.91
400
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
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.
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
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
Arduino / Digital /
DIGITAL_WRITE_SB
PIn digital : 13
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 |
Maintenant que lacquisition dune grandeur analogique a t valide, nous allons commander les sorties
analogiques de lArduino.
nous avons vu prcdemment que la consigne issue du potentiomtre varie de 0 1023. Il faut donc adapter
cette consigne pour proter au maximum de la plage de rglage allant de 0 255.
68 |
Ajoutez un gain GAInBLK_f de 256 / 1024 disponible dans la palette standard (sous-palette Oprations
mathmatiques) puis reliez lentre potentiomtre la sortie PWM en passant par le gain et enn lancez
lacquisition via le bouton de simulation an de suivre lvolution de la structure ainsi cre.
On constate que lon peut maintenant commander lintensit lumineuse de la diode en agissant sur le
potentiomtre.
| 69
Reliez lalimentation 5V la borne VCC, ainsi que la masse la borne GnD avec des straps.
Connectez la borne DIR sur une sortie digitale de lArduino.
Connectez la borne En sur une sortie PWM de lArduino.
On va maintenant crer linterface avec Scilab / Xcos et le module Arduino.
Ouvrez une nouvelle fentre ddition Xcos et ajoutez le bloc de conguration du port srie
ARDUInO_SETUP (sous-palette Conguration) et le
bloc chantillonnage TIME_SAMPLE (sous-palette
Conguration) avec un chantillonnage de 0.01s.
Ajoutez un bloc entre constante COnST_m disponible
dans la palette standard (sous-palette Sources) et
rglez-le une consigne comprise entre -255 et 255 (ici
120). Si la consigne dpasse 255, le PWM de lArduino
saturera la valeur maximale (255).
Ajoutez un bloc moteur continu DCMOTOR_SB
(sous-palette Motor) et congurez-le pour grer la carte
PMODHB5 et le moteur n1.
Spciez les ports choisis(par exemple, direction : 8, commutation / PWM : 11) puis lancez lacquisition via le
bouton de simulation. Le moteur se met tourner dans un sens.
70 |
Sens 1
Sens 2
| 71
Les PInS 2 et 3 sont les seuls PInS de la carte Arduino Uno supportant les interruptions. Pour faire fonctionner
un codeur en x4, il faut que les deux voies soient cbles sur les PInS dinterruption. Par contre, en x1 ou x2,
seule une voie doit tre branche en interruption, lautre peut tre relie une entre logique classique.
Dans Xcos, ajoutez le bloc EnCODER_SB (sous-palette Digital). Double-cliquez sur celui-ci et choisissez le
numro de la carte (1) et le mode de fonctionnement (x1, x2, x4). Ensuite, il est ncessaire de spcier les bons
PInS pour la voie A (forcment 2 ou 3) et la voie B, qui permet de trouver la direction.
Ajoutez un scope.
Positionnez un gain permettant de limiter la consigne 120, sachant que la valeur lue par le potentiomtre
varie de 0 1024.
Lancez lacquisition via le bouton de simulation et testez la commande avec le potentiomtre.
Choisissez une valeur xe de commande avec le potentiomtre et vriez les rapports de multiplication x1,
x2, x4 en regardant la courbe obtenue.
noter
Si la position est ngative, il
faut inverser les voies
physiquement sur les PIn2
et PIn3 de lArduino ou
inverser les PIn dans la
conguration des blocs
EnCODER_SB et
DCMOTOR_SB.
Dmonstrations / Arduino / Exemples Livret / Exemple 6
On peut maintenant essayer dacher la vitesse de rotation du moteur. Pour cela, il faut driver la position
laide dun bloc DERIV (sous-palette standard Systmes temps continu).
On doit observer que la vitesse est assez bruite.
Pour ltrer le bruit, on peut utiliser un ltre du second ordre CLR, disponible dans la palette standard
(sous-palette Systmes temps continu), comme indiqu sur la gure suivante.
72 |
On notera que pour que l'asservissement soit possible, il faut mettre une frquence d'chantillonnage assez
faible (de l'ordre d'un dizime du temps de rponse du systme en boucle ouverte).
| 73
L'asservissement est galement ralis sur la vitesse brute car le ltre introduit un retard dans le calcul de la
vitesse.
74 |
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