SlideShare una empresa de Scribd logo
1 de 78
Descargar para leer sin conexión
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 
MAXPID 
1.6 
1.4 
1.2 
1 
0.8 
0.6 
0.4 
0.2 
0 
−0.2 
t 
y 
MAXPID 
Scilab / Xcos 
pour l’enseignement 
des sciences de l’ingénieur
Réalisé avec le soutien d’Inria, ce livret a été co-écrit par Scilab Enterprises et Messieurs Alain Caignot, Lycée Stanislas (Paris), Vincent 
Crespel, Lycée Saint Louis (Paris), Marc Derumaux, Lycée Saint Louis (Paris), Cédric Lusseau, Lycée Hoche (Versailles), Gilles Moissard, 
Lycée Janson de Sailly (Paris), Pascal Serrier, Lycée Benjamin Franklin (Orléans) et David Violeau, Lycée Janson de Sailly (Paris). 
© 2013 Scilab Enterprises. Tous droits réservés.
ScIlab-XcoS 
pour l’enSeIGnement deS ScIenceS de l’InGénIeur 
TABLE DES MATIèRES 
| 3 
IntroductIon 
À PROPOS DE CE LIVRET 5 
INSTALLATION DE SCILAB ET CONFIGURATIONS UTILES EN SCIENCES DE L’INGÉNIEUR 5 
LISTE DE DIFFUSION ET D’INFORMATION 7 
RESSOURCES COMPLÉMENTAIRES 7 
1- Se famIlIarISer à XcoS 
L’ENVIRONNEMENT GÉNÉRAL 9 
LA BARRE DE MENUS 11 
LES PALETTES DISPONIBLES 14 
EXEMPLE DE CONSTRUCTION D’UN DIAGRAMME SIMPLE 16 
LES SUPERBLOCS 20 
2 - modélISatIon multI phySIque acauSale (module SImm) 
COMPARAISON DES APPROCHES CAUSALE ET ACAUSALE 21 
EXEMPLE 1 : RÉGULATION DE LA TEMPÉRATURE INTÉRIEURE D’UNE MAISON D’HABITATION 24 
EXEMPLE 2 : PILOTAGE D’UN MOTEUR À COURANT CONTINU 31 
EXEMPLE 3 : AXE ASSERVI D’ANGIOGRAPHIE BI-PLAN 42 
3 - modélISatIon et analySe de SyStèmeS à tempS contInu (module cpGe) 
MISE EN PLACE D’UN DIAGRAMME DE MOTEUR À TEMPS CONTINU 53 
MISE EN PLACE D’UN DIAGRAMME DE COMMANDE EN BOUCLE OUVERTE 55 
PRÉSENTATION DE LA STRUCTURE DE L’ASSERVISSEMENT EN VITESSE 57 
ASSERVISSEMENT DE VITESSE ET CORRECTION PROPORTIONNELLE 58 
ASSERVISSEMENT DE VITESSE ET CORRECTION PROPORTIONNELLE ET INTÉGRALE 60 
4 - acquISItIon et pIlotaGe de moteur (module arduIno) 
PRÉSENTATION DE LA CARTE ARDUINO UNO 65 
UTILISATION DU MODULE ARDUINO 66
InTRODUCTIOn 
InTRODUCTIOn 
| 5 
IntroductIon 
à propoS de ce lIvret 
L’objectif de ce livret est de vous guider pas à pas dans la découverte des différentes fonctionnalités de base 
de l’outil Xcos inclus dans Scilab dans le cadre d’une utilisation en classe de sciences de l’ingénieur. 
Cette présentation propose plusieurs exemples d’applications qui permettent de découvrir les fonctionnalités 
utiles à l’enseignement et à l’apprentissage des sciences de l’ingénieur en section S-SI ou STIDD, au lycée et 
dans l'enseignement supérieur. 
Les exemples, diagrammes et illustrations sont réalisés avec Scilab 5.4.1 enrichi des modules CPGE, SIMM et 
Arduino. Vous pouvez donc reproduire tous les exemples présentés à partir de la version 5.4.1 de Scilab (les 
diagrammes sont mis à disposition depuis la barre de menus en cliquant sur ? / démonstrations / nom du 
module correspondant / exemples livret). Il est indispensable de disposer d’un compilateur C pour utiliser le 
module de modélisation multi-physique SIMM (se référer au sous-chapitre « Installation d’un compilateur C »). 
InStallatIon de ScIlab 
et confIGuratIonS utIleS en ScIenceS de l’InGénIeur 
Scilab est un logiciel open source de calcul numérique que chacun peut télécharger gratuitement. Disponible 
sous Windows, Linux et Mac OS X, Scilab est téléchargeable à l’adresse suivante : http://www.scilab.org 
Une fois Scilab téléchargé et installé, il faut ajouter les modules externes complémentaires, listés ci-dessous : 
Scilab 
Logiciel open source gratuit de calcul et de simulation numérique 
qui fournit un puissant environnement de développement pour les applications scienti€ques et l’ingénierie 
Xcos 
Outil de modélisation et de simulation de systèmes dynamiques hybrides 
Modules externes 
CPGE 
Modélisation de systèmes asservis, étude temporelle et fréquentielle 
SIMM 
Modélisation multi-physique acausale 
ARDUINO 
Acquisition et pilotage de systèmes via une carte Arduino 
À noter 
Lors de l’installation, 
Scilab va télécharger des 
fichiers qui seront stockés 
avec l’exécutable 
d’installation. S’ils sont 
détectés lors d’une 
nouvelle installation, ils 
ne seront pas téléchargés 
de nouveau, ce qui est 
utile pour une installation 
dans une salle sans accès 
Internet.
InTRODUCTIOn 
6 | 
Pour cela, il suffit : 
w D’être connecté à Internet 
w De lancer Scilab 
w De cliquer dans la barre de menus sur applications / 
Gestionnaire de modules – atomS puis d’aller chercher 
les différents modules dans les catégories indiquées 
ci-dessous : 
- CPGE (catégorie Éducation), 
- SIMM (catégorie Éducation), 
- Arduino (catégorie Instruments Control). 
Pour chaque module, cliquez sur le bouton Installer, quittez 
Scilab et relancez-le. Les modules sont alors installés et se 
chargeront automatiquement à chaque démarrage de Scilab. 
Pour supprimer un module ou le mettre à jour, il suffit 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 d’une connexion Internet, connectez-vous depuis un autre poste relié à Internet et 
téléchargez les différents modules (fichiers .bin.zip) à partir du site : http://atoms.scilab.org 
Tapez dans la console : 
--> atomsSetConfig("offLine","True") 
--> atomsInstall("chemin_de_telechargementnom_du_fichier_zip_telecharge") 
Par exemple sous Windows, si le module CPGE, sous la forme d’un fichier zip, a été téléchargé dans 
E:Telechargement, on tape la commande : 
--> atomsInstall("E:Telechargementnom_du_fichier.bin.zip") 
Installation d’un compilateur c 
w Sous Windows 
Installez depuis le Gestionnaire de modules – atomS, le module 
MinGW (catégorie Windows Tools). Suivez bien la procédure décrite 
dans la fenêtre d'installation du module. 
À noter 
Dans le cas d’un environnement 
Unix (Linux ou Mac OS), 
remplacer les anti-slashs () par 
des slashs (/) conformément 
aux habitudes d’écriture des 
chemins d’accès aux fichiers.
InTRODUCTIOn 
| 7 
w Sous linux 
Le compilateur GCC étant disponible dans ce système d’exploitation, il suffit de vérifier (via Synaptic, 
Yum ou tout autre système de gestion de paquets) qu’il est présent et à jour. 
w Sous mac 
Téléchargez XCode via l’App Store (Mac OS ≥ 10.7) ou via les CD fournis avec l’ordinateur (Mac OS 10.5 et 
10.6). Pour les versions antérieures, voir le site d’Apple. Validez la possibilité d’utiliser le compilateur hors 
de l’environnement Xcode. Pour cela, après avoir lancé Xcode, allez dans « Préférences », puis 
« Downloads » et, dans l’onglet « Components », cochez la case « Check for and install updates 
automatically » et installez l’extension « Command Line Tools ». 
Il est bien entendu que si un compilateur C est déjà installé sur votre machine, il n’est pas nécessaire d’en 
installer un nouveau. Pour vérifier que Scilab a bien détecté votre compilateur, utilisez la commande qui 
retourne %T si un compilateur est installé : 
--> haveacompiler() 
lISte de dIffuSIon 
Pour faciliter l’échange entre les utilisateurs de Scilab du monde de l’éducation, une liste de diffusion leur est 
dédiée. Le principe est simple. Les personnes inscrites peuvent communiquer les unes avec les autres par 
courrier électronique (questions, réponses, partage de documents, retour d’expériences...). 
Pour s’inscrire, il suffit de compléter un formulaire disponible en ligne à l’adresse suivante : 
http://lists.scilab.org/mailman/listinfo/enseignement 
Vous recevrez une confirmation de votre inscription. Il vous suffira alors d’envoyer un message à l’adresse 
enseignement@lists.scilab.org pour que celui-ci soit redistribué automatiquement à tous les inscrits de la liste. 
reSSourceS complémentaIreS 
Le site Internet de Scilab dispose d’une rubrique consacrée à l’utilisation de Scilab pour l’enseignement 
(http://www.scilab.org/fr/community/education), avec des liens et des documents utiles, dont le présent livret 
au format PDF, un livret destiné à l’enseignement des mathématiques, des exercices et des corrigés d’épreuves 
pratiques, le tout pouvant être téléchargé et imprimé librement. 
Le site des professeurs ayant largement contribué à l’écriture de ce présent livret est également une source 
riche d’informations et d’exemples d’utilisation : http://www.demosciences.fr/
SE FAMILIARISER À XCOS 
| 9 
1 - Se famIlIarISer à XcoS 
La simulation numérique est aujourd’hui incontournable dans le processus de conception de systèmes. Simuler 
des phénomènes complexes (physiques, mécaniques, électroniques, etc.) permet d’en étudier les 
comportements et d’obtenir des résultats sans avoir besoin de recourir à l’expérience réelle. Largement utilisée 
dans le monde de l’industrie, les ingénieurs et les chercheurs de demain sont formés dès le secondaire aux 
concepts de modélisation et de simulation. 
Xcos est l’outil de Scilab dédié à la modélisation et à la simulation de systèmes dynamiques hybrides incluant 
à la fois des modèles continus et discrets. Il permet aussi de simuler des systèmes régis par des équations 
explicites (simulation causale) et implicites (simulation acausale). Xcos inclut un éditeur graphique permettant 
de représenter facilement des modèles sous forme de schémas fonctionnels (diagrammes) en connectant des 
blocs entre eux. Chaque bloc représente une fonction de base prédéfinie ou une fonction définie par 
l’utilisateur. 
Distribué librement et gratuitement avec Scilab, Xcos est l’outil idéal pour l’enseignement et l’apprentissage 
des sciences de l’ingénieur en classe comme à la maison. 
l’envIronnement Général 
Après avoir lancé Scilab, l’environnement par défaut est constitué d’une console, d’un navigateur de fichiers, 
d’un navigateur de variables et d’un historique des commandes.
SE FAMILIARISER À XCOS 
10 | 
Dans la console, après « -->», il suffit de saisir une commande et d’appuyer sur la touche entrée du clavier 
pour obtenir le résultat correspondant. 
Xcos peut être ouvert : 
w Depuis la barre d’outils, via l’icône , ou 
w Depuis la barre de menus, dans applications / Xcos, ou 
w Depuis la console, en tapant : 
-->xcos 
Xcos s’ouvre, par défaut, avec deux fenêtres : 
w Le navigateur de palettes qui met à disposition un ensemble de blocs prédéfinis, 
w Une fenêtre d’édition qui est la zone de construction d’un diagramme. 
Pour construire un diagramme, l’utilisateur sélectionne les blocs dans le navigateur de palettes et les positionne 
dans la fenêtre d’édition (cliquer / glisser / déposer). Il peut ensuite connecter les blocs entre eux en utilisant 
leurs différents ports (entrée / sortie / événement) pour pouvoir simuler le modèle créé.
SE FAMILIARISER À XCOS 
| 11 
la barre de menuS 
La barre de menus utile dans Xcos est celle de la fenêtre d’édition. 
menu fichier 
w nouveau diagramme (Ctrl+N sous Windows et Linux / Cmd+N sous Mac OS X) 
Ouvre une nouvelle fenêtre d’édition de Xcos. Le diagramme Xcos courant n’est pas affecté. 
w ouvrir (Ctrl+O sous Windows et Linux / Cmd+O sous Mac OS X) 
Charge un fichier Xcos au format .zcos ou .xcos contenant un diagramme ou une palette. 
w ouvrir le fichier dans le répertoire courant de Scilab 
Charge un fichier Xcos au format .zcos ou .xcos contenant un diagramme ou une palette depuis le 
répertoire de travail de Scilab. 
w ouvrir récents 
Propose les fichiers récemment 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 fenêtres auxiliaires telles que le navigateur de palettes sont également fermées à la 
fermeture du dernier diagramme. 
w enregistrer (Ctrl+S sous Windows et Linux / Cmd+S sous Mac OS X) 
Enregistre les modifications apportées à un diagramme. Si celui-ci n’a pas été précédemment enregistré 
dans un fichier, il sera proposé de l’enregistrer (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 schéma prend alors le nom du fichier 
(sans l’extension). 
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 dernière(s) opération(s). 
w rétablir (Ctrl+Y sous Windows et Linux / Cmd+Y sous Mac OS X) 
Rétablit la ou les dernière(s) opération(s) annulée(s).
SE FAMILIARISER À XCOS 
12 | 
w couper (Ctrl+X sous Windows et Linux / Cmd+X sous Mac OS X) 
Supprime les objets sélectionnés d’un 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 sélectionnés 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) 
Efface les blocs ou les liens qui ont été sélectionnés. Quand un bloc est supprimé, tous les liens qui lui 
sont connectés sont eux aussi effacés. 
w tout sélectionner (Ctrl+A sous Windows et Linux / Cmd+A sous Mac OS X) 
Sélectionne tous les éléments du diagramme courant. 
w Inverser la sélection 
Inverse la sélection courante. 
w paramètres du bloc (Ctrl+B sous Windows et Linux / Cmd+B sous Mac OS X) 
Configure le bloc sélectionné (voir l’aide du bloc pour obtenir plus d’informations sur sa configuration). 
w Zone vers superbloc 
Convertit une sélection de blocs et de liens en un superbloc. 
menu affichage 
w Zoom avant (Ctrl+Pavé numérique Plus sous Windows et Linux / Cmd+Pavé numérique Plus sous Mac OS X) 
Agrandit la vue de 10 %. 
w Zoom arrière (Ctrl+Pavé numérique Moins sous Windows et Linux / Cmd+Pavé numérique Moins sous Mac OS X) 
Réduit la vue de 10 %. 
w ajuster le diagramme à la vue 
Ajuste la vue à la taille de la fenêtre. 
w normal 100 % 
Dimensionne la vue à sa taille par défaut. 
w navigateur de palettes 
Affiche / masque le navigateur de palettes. 
w navigateur de diagrammes 
Affiche une fenêtre qui liste les propriétés globales du diagramme et de tous les objets qu’il contient 
(blocs et liens). 
w aperçu 
Affiche un aperçu complet du diagramme courant. Avec la vue Aperçu, vous pouvez déplacer l’aire de 
travail affichée sur une partie du diagramme.
SE FAMILIARISER À XCOS 
| 13 
menu Simulation 
w configurer 
Modifie les paramètres de simulation. 
w trace d’exécution et de débogage 
Configure la simulation en mode débogage. 
w modifier le contexte 
Permet d’entrer des instructions Scilab pour définir des variables / fonctions utilisables dans le 
paramétrage des blocs d’un diagramme. 
w compiler 
Compile le diagramme. 
w Initialisation de modelica 
Permet d’initialiser les variables du sous-ensemble acausal du diagramme. 
w démarrer 
Lance la simulation. 
w arrêter 
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) sélectionné(s) de 90° anti-horaire. 
w retourner (Ctrl+F sous Windows et Linux / Cmd+F sous Mac OS X) 
Inverse les positions des entrées et sorties d’événements placées au-dessus et au-dessous d’un bloc 
sélectionné. 
w miroir (Ctrl+M sous Windows et Linux / Cmd+M sous Mac OS X) 
Inverse les positions des entrées et sorties régulières placées à gauche et à droite d’un bloc sélectionné. 
w afficher / masquer l’ombre 
Affiche / masque l’ombre portée des blocs sélectionnés. 
w aligner les blocs 
En sélectionnant plusieurs blocs, il est possible de les aligner sur l’axe horizontal (gauche, droite et 
centre) ou sur l’axe vertical (haut, bas et centre). 
w couleur de bordure 
Change la couleur des bords des blocs sélectionnés. 
w couleur de fond 
Change la couleur de remplissage des blocs sélectionnés. 
w Style de liens 
Modifie le style d’un lien.
SE FAMILIARISER À XCOS 
14 | 
w fond du diagramme 
Change la couleur de fond du diagramme. 
w Grille 
Active / désactive la grille. Avec la grille, le positionnement des blocs et des liens est plus facile. 
menu outils 
w Génération de code 
Permet de générer le code de simulation associé à un superbloc sélectionné. 
menu ? 
w aide de Xcos 
Ouvre l’aide sur le fonctionnement de Xcos, des palettes, des blocs et des exemples. 
w aide du bloc 
Ouvre l’aide sur un bloc sélectionné. 
w démonstrations Xcos 
Ouvre des exemples de diagrammes et les simule. L’utilisateur peut alors, s’il le souhaite, modifier ces 
diagrammes et les sauvegarder pour une utilisation future. 
leS paletteS dISponIbleS 
w blocs couramment utilisés 
Blocs les plus utilisés. 
w Systèmes à temps continu 
Blocs continus (intégration, dérivée, PID). 
w fonctions discontinues 
Blocs dont les sorties sont des fonctions discontinues de leurs entrées (hystérésis). 
w Systèmes à temps discret 
Blocs de modélisation en temps discret (dérivée, échantillonné / bloqué). 
w Interpolation 
Blocs calculant des approximations de sortie à partir des entrées. 
w Gestion d’événements 
Blocs permettant de gérer les événements dans le diagramme (horloge, multiplication / division de 
fréquence). 
w opérations mathématiques 
Blocs de modélisation des fonctions mathématiques générales (cosinus, sinus, division, multiplication, 
etc.).
SE FAMILIARISER À XCOS 
| 15 
w matrice 
Blocs pour des opérations matricielles simples et complexes. 
w électrique 
Blocs représentant des composants électriques de base (source de tension, résistance, diode, 
condensateur, etc.). 
w entier 
Blocs permettant la manipulation de nombres entiers (opérateurs logiques, portes logiques). 
w port et sous-système 
Blocs de création de sous-systèmes. 
w détection de passage à zéro 
Blocs utilisés pour détecter les traversées de zéro pendant la simulation. Ces blocs utilisent les capacités 
des solveurs (ODE ou DAE) pour effectuer cette opération. 
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 modéliser des systèmes implicites. 
w annotations 
Blocs utilisés pour les annotations. 
w Sinks 
Blocs de sortie utilisés pour l’affichage graphique (scope) et l’export de données (fichier ou Scilab). 
w Sources 
Blocs de sources de données (impulsion, rampe, sinusoïde) et de lecture de données à partir de fichiers 
ou de variables Scilab. 
w thermohydrauliques 
Blocs des composants thermohydrauliques de base (source de pression, tuyaux, vannes de régulation). 
w blocs de démonstration 
Blocs utilisés dans les diagrammes de démonstration. 
w fonctions définies par l’utilisateur 
Blocs utilisateurs permettant de modéliser un comportement (fonction de simulation C, Scilab ou 
Modelica).
SE FAMILIARISER À XCOS 
16 | 
eXemple de conStructIon d’un dIaGramme SImple 
nous allons vous expliquer comment construire de A à Z, un modèle de système à temps continu modélisé 
par une fonction de transfert d’ordre 1. 
Lancez Xcos. 
Comme vu précédemment, Xcos s’ouvre par défaut avec le navigateur de palettes et une fenêtre d’édition. 
Dans le navigateur de palettes, nous allons utiliser les blocs suivants : 
désignation représentation Sous-palette standard 
Échelon Sources / STEP_FUnCTIOn 
Fonction de transfert continue Systèmes à temps continu / CLR 
Horloge Sources / CLOCK_C 
Visualisation Sinks / CSCOPE 
Disposez les blocs dans la fenêtre d’édition. Pour relier les ports d’entrée et de sortie entre eux, cliquez sur la 
sortie (flèche noire) du bloc STEP-FUnCTIOn et en maintenant le bouton de la souris appuyé, reliez au 
port d’entrée du bloc CLR, un carré vert apparaît en surbrillance pour indiquer que le lien est correct, comme 
décrit dans les images ci-dessous :
SE FAMILIARISER À XCOS 
| 17 
Relâchez pour finaliser le lien. 
Complétez ensuite les connexions des blocs entre eux pour arriver à ce résultat : 
Il est possible d’améliorer l’aspect de votre diagramme en utilisant les options d’alignement des blocs (menu 
format / aligner les blocs) et de style de liens (menu format / Style de liens). À tout moment, les blocs peuvent 
être déplacés ou repositionnés en les sélectionnant et en maintenant le bouton de la souris appuyé pendant 
le déplacement. Relâchez le bloc à la position souhaitée. 
La simulation est lancée en cliquant sur l’icône (ou depuis le menu Simulation / démarrer) et peut être 
stoppée en cliquant sur (ou depuis le menu Simulation / arrêter). 
Une nouvelle fenêtre (scope) apparaît, montrant l’évolution de la simulation. En bas de la fenêtre d’édition du 
diagramme, une mention indique que la simulation est en cours :
SE FAMILIARISER À XCOS 
18 | 
Les résultats de cette simulation n’étant pas exploitables, nous choisissons de modifier les paramètres du bloc 
CLR et de la simulation. 
Un « contexte » contenant du script Scilab permet de réutiliser facilement des fonctions et des variables. nous 
allons utiliser ce contexte pour fixer des valeurs de référence lors de la simulation du diagramme. 
Cliquez sur Simulation / modifier le contexte dans la barre de menus et 
déclarez les variables suivantes : 
w K = 1 
w Tau = 1 
Vous pouvez maintenant utiliser ces variables pour le paramétrage des blocs 
du diagramme. 
Double-cliquez sur le bloc CLR, une boîte de dialogue s’ouvre avec les paramètres 
par défaut du bloc. Modifiez ces paramètres : 
w numérateur : K 
w Dénominateur : 1+Tau*s 
La nouvelle fonction de transfert est affichée sur le bloc :
SE FAMILIARISER À XCOS 
| 19 
nous allons maintenant configurer la simulation et les blocs pour visualiser 
la réponse temporelle du système à une impulsion. Pour cela, nous allons 
limiter le temps de simulation à 5 secondes (menu Simulation / 
configurer). 
Double-cliquez sur le bloc CSCOPE pour configurer l’affichage des 
valeurs comprises entre 0 et 1.2, puis la période de rafraîchissement du 
scope à 5 secondes. Pour cela, changez les paramètres suivants : 
w Ymin : 0 
w Ymax : 1.2 
w Refresh period : 5 
Relancez la simulation et visualisez le résultat :
SE FAMILIARISER À XCOS 
20 | 
leS SuperblocS 
Pour faciliter la compréhension de certains diagrammes, il est souvent utile de recourir aux superblocs ou blocs 
composites. Un superbloc contient une partie d’un diagramme ainsi que des blocs représentant ses entrées 
et sorties. Il peut être manipulé comme un seul et unique bloc dans le diagramme parent. 
Après avoir réalisé un diagramme et sélectionné la partie du 
diagramme (ou sous-diagramme) que l’on souhaite réunir en un bloc, 
la création d’un superbloc s’effectue à partir du menu édition / Zone 
vers Superbloc. 
La sélection est alors devenue un bloc dont on peut afficher le 
contenu en double-cliquant dessus. Une nouvelle fenêtre d’édition 
s’ouvre alors avec la sélection de blocs initiale. 
Il est également possible de « masquer » le superbloc créé pour désactiver l’accès au sous-diagramme. Pour 
cela, on effectue un clic-droit sur le superbloc puis masque du superbloc / créer. 
On peut également rendre accessible certains paramètres de configuration du sous-diagramme dans une seule 
interface de configuration par un clic-droit sur le superbloc, puis masque du superbloc / personnaliser. 
Il suffit ensuite d’ajouter les paramètres que l’on souhaite rendre accessibles.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
2 - modélISatIon multI-phySIque acauSale (module SImm) 
La modélisation dite « acausale » est une forme récente de modélisation des systèmes qui permet de décrire 
les équations modélisant les phénomènes physiques sans anticiper l’orientation des liens entre les composants 
ou phénomènes. Il n’y a notamment pas de choix particulier de variables échangées entre composants (force 
ou vitesse par exemple), ni de notion d’entrée / sortie. Cette particularité conduit à une très grande flexibilité 
des modèles de composants développés, une réutilisation des modèles sur de nouveaux projets et la possibilité 
de construire des bibliothèques de composants. Ces avantages en font un outil prisé en entreprise. 
D’un point de vue pédagogique, le modèle acausal est très proche de l’architecture matérielle et permet de 
simuler le comportement d’un système complexe sans avoir à écrire la moindre équation. 
L’objectif de cette première partie est de montrer les possibilités 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 représenté par le schéma électrique suivant : 
| 21 
, , , et 
R C 
R 
C 
La représentation acausale ne privilégie aucune grandeur physique particulière et est basée sur la notion de 
composants. Ainsi, dans Scilab / Xcos, le diagramme correspondant au circuit RLC est le suivant :
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
22 | 
Il n’est pas nécessaire d’écrire les équations du système car chaque bloc les contient. Il suffit simplement de 
configurer les paramètres 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 l’intensité. Cette modélisation permet d’exprimer des relations entre 
composants sans connaître la grandeur que l’on cherche à calculer. Pour extraire cette grandeur, on utilisera 
des blocs de type capteur et ainsi entrer dans le monde causal. 
Dans une représentation purement causale, les liens représentent une grandeur physique particulière et le 
diagramme est alors une traduction des équations plutôt qu’une représentation des composants. Lors de la 
modélisation, la grandeur de sortie est donc exprimée dans une relation directe contenant des blocs 
« intégrale » pour chacune des équations contenant une dérivée. Cela donne : 
On peut alors modéliser les équations par un diagramme de ce type : 
Celui-ci est donc plus compliqué que le diagramme précédent. On a aussi perdu la signification physique. 
L’utilisation de la transformée de Laplace permet, entre autre, de simplifier la représentation causale par ce 
diagramme (en supprimant, par exemple, la boucle avec R) :
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
Chacune des formes des connecteurs correspond à une grandeur physique. Une validation des liens entre 
connecteurs est réalisée lors de la simulation afin de garantir une modélisation cohérente. 
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 l’électrique et le thermique 
sans conversion. Ce type de connexion ne générera pas d’erreur lors de l’édition du diagramme mais une erreur 
de compilation sera retournée lors de la simulation. 
Afin d’éviter les erreurs, veillez à connecter des ports de même domaine fonctionnel : 
| 23 
w Triangle bleu : signal de données (sans dimension). 
w Carré bleu : électrique. 
w Carré rouge : thermique. 
w Carré vert : mécanique 1D en translation. 
w Rond gris : mécanique 1D en rotation. 
w Carré gris : mécanique 2D plane. 
À noter 
Certains connecteurs sont vides, d’autres pleins 
mais il n’y a pas de différences entre eux. Certains 
composants sont cependant orientés, on repèrera 
leur polarité en fonction des connecteurs. On 
rappelle que dans une représentation acausale, il 
n’y a pas de notion d’entrée / sortie.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
24 | 
eXemple 1 : réGulatIon de la température IntérIeure d’une maISon d’habItatIon 
On se propose d’étudier le problème de la régulation de température d’une maison à une température fixe de 
20 °C. La température des pièces évolue car la température extérieure passe de 25 °C le jour à 5 °C la nuit et 
l’isolation thermique n’est pas parfaite. 
Les phénomènes physiques sont, en 
première approximation, assez simples à 
modéliser : 
w L’intérieur de la maison est modélisé 
par une capacité thermique (ou inertie 
thermique) qui caractérise la capacité 
du bâtiment à absorber ou à restituer 
la chaleur, 
w L’isolant thermique de la maison agit 
comme un conducteur thermique 
entre l’intérieur et l’extérieur 
modélisant ainsi les échanges de 
chaleur, 
w Un radiateur chauffe l’intérieur de la 
maison quand cela est nécessaire et est 
modélisé par une résistance 
chauffante. 
La commande « Tout-Ou-Rien » (TOR) s’appuie sur la mesure de la température intérieure et la consigne de 
température de la pièce pour allumer le radiateur quand la température mesurée passe 3 degrés sous la 
consigne. L’asservissement « Tout-Ou-Rien » est représenté par le schéma fonctionnel suivant : 
Chaîne d’action 
Consigne de 
température 
Perturbations 
Relais Radiateur Pièce 
Sonde 
Température 
de la pièce
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
comportements physiques élémentaires 
La capacité thermique (ou capacité calorifique) d’un corps est une 
grandeur permettant de quantifier la possibilité qu’a un corps 
d’absorber ou de restituer de l’énergie par échanges thermiques au 
cours d’une transformation pendant laquelle sa température varie. 
Lancez le logiciel Scilab. Scilab charge automatiquement les modules 
installés via ATOMS. Lancez ensuite Xcos. 
Tous les blocs nécessaires à la simulation de processus se situent dans 
le navigateur de palettes. Le module SIMM a ajouté un certain nombre 
de sous-palettes contenant différents blocs. Double-cliquez sur SIMM 
pour faire apparaître la liste des sous-palettes. 
Dans SIMM, les composants des chaînes d’énergie et d’information ont été regroupés (sous-palette 
Composants). On retrouve également une organisation des blocs par domaines (sous-palettes Signaux, 
Mécanique, Électrique, Thermique). 
modélisation du radiateur et de la maison 
On va modéliser le chauffage de la maison par le diagramme suivant : 
| 25 
À noter 
La capacité thermique est l’énergie qu’il 
faut apporter à un corps pour augmenter 
sa température d’un Kelvin. Elle s’exprime 
en Joule par Kelvin (J.K-1). C’est une 
grandeur extensive. Plus la quantité de 
matière est importante plus la capacité 
thermique est grande. La conduction 
thermique est un transfert thermique 
spontané d’une région de température 
élevée vers une région de température 
plus basse, et est décrite par la loi dite de 
Fourier où F est le flux de 
chaleur. 
Démonstrations / SIMM / Exemples Livret / Exemple 1
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
26 | 
Positionnez les blocs suivants puis double-cliquez sur chacun d’eux pour configurer les paramètres indiqués 
lorsque cela est précisé : 
désignation représentation Sous-palette SImm paramétrage 
Résistance chauffante 
Électrique / Composant 
basique / Passif / 
MEAB_HeatingResistor 
50 Ω à la température de référence 
Température de référence de 20 °C = 
293.15 K 
Coefficient de température égal à 0 
Interrupteur commandé 
Électrique / Composant 
basique / Passif / 
MEAI_IdealClosingSwitch 
Source de tension Électrique / Sources / 
CEAS_PredefVoltage 
Constante 
220 V 
Masse Électrique / Sources / 
MEAB_Ground 
Capacité thermique Thermique / Basique / 
MTH_HeatCapacitor 500 000 J.K-1 
À noter 
5.105 s’écrit 5e5 
dans Scilab. 
-4.10-3 s’écrit 
-4e-3 dans 
Scilab. 
Pour changer l’orientation d’un bloc, sélectionnez le puis faire un clic droit et sélectionnez 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 chauffage, on impose en entrée de l’interrupteur commandé, un signal 
créneau passant de 0 à 1 sur une période de 3 heures (3*3600 secondes car l’unité temporelle est la seconde) 
et de rapport cyclique 20 %. Ceci signifie que toutes les 3 heures, on chauffe durant 36 minutes. On utilise le 
bloc MBS_Pulse de la sous-palette Signaux / Sources. 
Il faut également spécifier sur quelle durée de simulation le comportement doit être évalué. On choisit une 
durée de 4 jours. La durée de simulation est spécifiée par le bloc IREP_TEMP (sous-palette Utilitaires / Analyses) 
où l’on configurera 3600*24*4. On choisit de paramétrer le bloc de manière à ce que 20 000 points de 
visualisation soient calculés et que les courbes correspondantes soient tracées à la fin du calcul. 
Les quantités thermiques, le flux et la température circulent sur le lien reliant la résistance chauffante à la 
capacité. Pour afficher la température, il faut extraire de ce lien la grandeur température, en utilisant le bloc 
MTHC_TemperatureSensor de la sous-palette Thermique / Mesure.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
La sortie signal (triangle bleu) peut ensuite être visualisée ou utilisée dans le diagramme. Pour visualiser des 
signaux provenant d’une source ou d’un capteur, on utilise le bloc ISCOPE de la sous-palette Utilitaires / 
Visualisation pour lequel le nombre d’entrées à visualiser sur un même graphique est spécifié (une légende 
peut être donnée pour chaque courbe dans le deuxième menu). 
devient si l’on configure plus d’une entrée (ici 3). Ajoutez donc un bloc ISCOPE à deux entrées pour 
visualiser le signal créneau et la température de la maison. Indiquez comme nom de courbes « Signal de 
commande » représentant la consigne et « Température de la pièce ». 
Le tableau ci-dessous résume l’ensemble des blocs à positionner et les paramètres à configurer : 
| 27 
désignation représentation Sous-palette SImm paramétrage 
Signal créneau Signaux / Sources / 
MBS_Pulse 
Lancez la simulation. 
Les résultats de celle-ci s’affichent sur une nouvelle fenêtre. 
Les courbes montrent notamment qu’un tel modèle, ne 
prenant pas en compte les pertes au niveau des murs, n’est 
pas réaliste. 
Amplitude : 1 
Rapport cyclique : 20 % 
Période : 3*3600 s 
Étude temporelle Utilitiaires / Analyses / 
IREP_TEMP 
Durée : 3600*24*4 s 
nombre de points (pour la 
visualisation et le calcul) : 20 000 
Afficher les courbes pendant la 
simulation : non 
Capteur de température Thermique / Mesure / 
MTHC_TemperatureSensor 
Visualisation Utilitaires / Visualisation / 
ISCOPE nombre de courbes : 2 
150 Signal de commande 
0 50 000 100 000 150 000 200 000 250 000 300 000 350 000 
160 
140 
130 
120 
110 
100 
90 
80 
70 
60 
50 
40 
30 
20 
10 
0 
Température de la pièce
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
28 | 
amélioration du modèle 
prise en compte des pertes 
On choisit de prendre en compte les pertes en modélisant le mur par un conducteur thermique et en 
représentant l'évolution de la température extérieure au cours d'une journée par une sinusoïde. 
Démonstrations / SIMM / Exemples Livret / Exemple 2 
Pour cela, on insère les composants suivants : 
désignation représentation Sous-palette SImm paramétrage 
Conductivité thermique Thermique / Basique / 
MTH_ThermalConductor 
20 W.K-1 
Source de température Thermique / Sources / 
MTHC_PrescribedTemperature 
Signal sinusoïdale Signaux / Sources / MBS_Sine 
Amplitude : 10 
Décalage : 15 
Fréquence : 1/24h =1/(3600*24) Hz 
Le signal sinusoïdal modélise la variation de température extérieure de 5 °C à 25 °C, ce qui justifie les paramètres 
retenus. 
Pour imposer une température comme pour la visualiser, il est nécessaire de spécifier une source de 
température et d’indiquer sa variation en donnant le signal correspondant. Modifiez le bloc ISCOPE pour ajouter 
une troisième entrée et visualiser l’évolution de la température extérieure.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
| 29 
Lancez une nouvelle simulation et observez que la commande 
par impulsion n’est pas optimale. 
35 
30 
25 
20 
mise en place de la régulation 
Pour assurer la régulation de température, il suffit de comparer 
le signal de température de la pièce à une température de 
consigne. L’écart ainsi formé est utilisé comme entrée d’un 
relais qui ferme ou non l’interrupteur. 
La consigne de température est un bloc signal constant 
MBS_Constant (sous-palette Signaux / Sources). Une valeur de 
20 °C est spécifiée. Pour calculer l’écart, on utilise un bloc sommateur MBM_Add 
(sous-palette Signaux / Math). Pour changer les signes du sommateur, 
double-cliquez sur le bloc et renseignez les valeurs -1 et 1. 
La commande du relais CBn_Hysteresys (sous-palette Signaux / non-linéarités) 
passe à 1 (qui correspond à la fermeture) lorsque l’écart est supérieur à 3 °C. Elle 
repasse à 0 lorsque l’écart est nul. Configurez le bloc comme indiqué ci-contre. 
Le diagramme global est alors le suivant : 
0 50 000 100 000 150 000 200 000 250 000 300 000 350 000 
15 
10 
5 
0 
Signal de commande 
Température de la pièce 
Température extérieure 
Démonstrations / SIMM / Exemples Livret / Exemple 3
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
30 | 
Relancez la simulation pour obtenir la courbe ci-dessous : 
24 Signal de commande 
Température de la pièce 
Température extérieure 
0 50 000 100 000 150 000 200 000 250 000 300 000 350 000 
22 
20 
18 
16 
14 
12 
10 
8 
6 
4 
2 
0 
On obtient des résultats de simulation cohérents. Lorsque la température de la maison descend à 17 °C, le 
système de chauffage se met en route et la température remonte à 20 °C quelle que soit la température 
extérieure. On constate également que le système ne peut pas refroidir la maison lorsque la température 
extérieure dépasse la consigne. 
À travers cette activité, nous avons pu très facilement voir l’intérêt d’une régulation de température en prenant 
en compte un modèle très simple d’une maison chauffée par un radiateur. La prise en main du module SIMM 
est immédiate et ne nécessite que de connaître quelques principes physiques élémentaires. 
Cependant, il est nécessaire de garder en mémoire que normalement la tension du courant domestique est 
sinusoïdale (220 V, 50 Hz) mais évidement, si le simulateur doit représenter correctement le signal sinusoïdal 
dans le circuit électrique, le pas de temps devra être très petit (de l’ordre de 1 / 500 s) alors que le phénomène 
thermique est étudié sur plusieurs jours... C’est pourquoi, on utilise une source continue équivalente dans le 
modèle. 
Comme nous le verrons dans l’activité suivante, il faut éviter d’une façon générale d’imposer dans un même 
modèle des phénomènes dont les constantes de temps sont très éloignées. Cette contrainte conduit à des 
compromis sur le niveau de détail des modèles choisis et nécessite du recul quant aux phénomènes physiques 
étudiés.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
eXemple 2 : pIlotaGe d’un moteur à courant contInu 
La plupart des systèmes développés par les élèves en projet nécessite le pilotage d’un moteur à courant 
continu. Il est indispensable de modéliser ces moteurs à courant continu pour être capable, par exemple, de 
réaliser un asservissement ou bien d’évaluer les performances du système. Le moteur à courant continu est 
modélisé, dans son régime linéaire, par les cinq équations suivantes : 
| 31 
, , , et 
w L’équation 1 correspond au modèle électrique du moteur qui est 
modélisé par une résistance R en série avec une inductance L et une 
Moment d’inertie J 
force électromotrice (fem) E. 
w Les équations 2 et 3 correspondent aux équations de couplage 
électromécanique. Le courant circulant dans la bobine génère des 
forces de Laplace qui se traduisent par un couple moteur Cm. 
w L’équation 3 traduit le lien entre la vitesse angulaire et la force 
électromotrice. 
w L’équation 4 décrit le couple dû au frottement visqueux. 
w L’équation 5 correspond à l’équation de dynamique obtenue en isolant l’arbre moteur et en lui 
appliquant le théorème de l’énergie cinétique sachant qu’il est soumis à : 
- un couple moteur Cm, 
- un couple Cpert (frottements secs par exemple) 
- un couple Cf dû au frottement visqueux. 
Cm Cpert Cf 
L’objectif de cette activité est de montrer comment modéliser le moteur et le piloter. 
modélisation mécanique 
Le schéma cinématique du moteur soumis à des actions mécaniques peut directement être traduit dans Xcos. 
Pour commencer, on considère le rotor en liaison pivot soumis à un couple Cm et un couple Cpert. Un solide 
en rotation autour d’un axe fixe est caractérisé mécaniquement par son moment d’inertie autour de l’axe de 
rotation (difficulté à le mettre en mouvement).
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
32 | 
Positionnez les blocs suivants comme indiqué sur le diagramme ci-après : 
désignation représentation Sous-palette SImm paramétrage 
Solide en rotation autour 
d’un axe fixe 
Mécanique / Rotation 1D / 
Basique / MMR_Inertia 0.00002 kg.m2 
Couple extérieur (entre 
l’axe et le bâti) 
Mécanique / Rotation 1D / 
Sources / CMRS_Torque0 
Étude temporelle Utilitaires / Analyses / 
IREP_TEMP Durée : 1 s 
nombre de points : 200 
On constate que ce diagramme correspond exactement au schéma 
cinématique. Sur un tel diagramme, on ne spécifie pas les évolutions 
des grandeurs. De la même manière, 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 modèle mécanique 1D de type rotation, ces grandeurs sont 
l’accélération, la vitesse et la position angulaires ainsi que le couple. 
Ajoutez le bloc de mesure CMRS_GenSensor (sous-palette Mécanique / 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 entrée. 
On obtient le diagramme suivant : 
Démonstrations / SIMM / Exemples Livret / Exemple 4
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
| 33 
Lancez la simulation et observez une droite de pente 
5 000 rad.s-1 représentant la vitesse. 
Ce résultat permet d’attester le modèle dynamique utilisé et 
illustre bien la notion d’inertie. Cependant, ce modèle ne 
prend pas en compte la limitation de l’apport en énergie, ni 
les frottements. 
Un couple de frottement visqueux existe entre le bâti et le rotor. 
Pour le modéliser, il suffit d’ajouter sur le lien représentant l’axe : 
Vitesse angulaire (rad/s) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
5 000 
4 500 
4 000 
3 500 
3 000 
2 500 
2 000 
1 500 
1 000 
500 
0 
w Un bloc amortissement linéaire / visqueux 
MMR_Damper (sous-palette Mécanique / Rotation 1D / Basique avec une valeur de 0.0001 n.m.s.rad-1), 
w Le bâti MMR_Fixed (sous-palette Mécanique / Rotation 1D / Basique). 
Démonstrations / SIMM / Exemples Livret / Exemple 5 
La simulation sur 1 seconde fournit une réponse d’un système d’ordre 1 tendant vers la valeur 
(Cm + Cpert) / viscosité avec une constante de temps égale à 
J / viscosité. 
Il ne faut pas oublier de mettre un bâti (référentiel galiléen 
d’étude) dans une étude mécanique. Il est implicitement 
spécifié lorsque l’on impose les couples. 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
1 000 
900 
800 
700 
600 
500 
400 
300 
200 
100 
0 
Vitesse angulaire (rad/s) 
À noter 
Le comportement en translation 
rectiligne (Translation 1D) 
fonctionne exactement sur le 
même principe.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
34 | 
modélisation électrique et couplage 
Positionnez à partir de la sous-palette Électrique, les blocs suivants et reliez-les entre eux : 
désignation représentation Sous-palette SImm paramétrage 
Source de tension Électrique / Sources / 
CEAS_PredefVoltage 
Constante 
12 V 
Résistance 
Électrique / Composant 
basique / Passif / 
MEAB_Resistor 
1 Ω 
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 bâti (ce qui veut dire que le 
stator est fixe) 
Masse Électrique / Sources / 
MEAB_Ground 
On constate que le bloc CEAB_EMFGEn propose de supposer que le bâti 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 négative. 
Le diagramme électrique est à nouveau comparable au circuit électrique. Il ne faut pas oublier de mettre une 
masse dans le circuit. 
Démonstrations / SIMM / Exemples Livret / Exemple 6
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
| 35 
En enlevant le couple résistant (Cpert), on obtient la réponse suivante : 
Vitesse angulaire (rad/s) 
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 
600 
550 
500 
450 
400 
350 
300 
250 
200 
150 
100 
50 
0 
Ajoutez un ampèremètre représenté par le bloc MEAS_CurrentSensor (sous-palette Électrique / Mesure) et 
placez-le correctement dans le diagramme pour mesurer l’intensité dans le circuit (en série avec l’inductance 
par exemple). De la même manière que les blocs sources, les bornes positive et négative sont définies par 
l’aspect plein ou vide des connecteurs. 
Positionnez également un capteur de couple MMRS_TorqueSensor (sous-palette Mécanique / Rotation 1D / 
Mesure) pour mesurer le couple moteur, par analogie avec l’intensité (cf. équation), en série entre la force 
électromotrice et l’inertie. 
Démonstrations / SIMM / Exemples Livret / Exemple 7
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
36 | 
On obtient les courbes suivantes : 
Vitesse angulaire (rad/s) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
600 
400 
200 
0 
Intensité (A) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
10 
5 
0 
Couple moteur (Nm) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0.1 
0.05 
0 
On constate effectivement que le couple moteur est proportionnel à l’intensité. On peut également étudier 
l’influence de l’inductance sur la vitesse angulaire en modifiant sa valeur dans le bloc correspondant. 
modélisation du pilotage par hacheur 
Le hacheur est le préactionneur le plus courant pour l’asservissement 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 
régulation, il peut aussi doser le niveau d’intensité dans le moteur. Le pilotage d’un hacheur se fait par 
l’intermédiaire d’un PWM (« Pulse Width Modulation » ou MLI, « Modulation de Largeur d’Impulsions »). 
Le principe est simple. Un signal créneau de 0 (état logique bas) à 5 V (état logique haut) dont le rapport 
cyclique, variable, est généré. Comme la fréquence de ce signal est élevée (environ 500 Hz fréquemment), si le 
système connecté en sortie du PWM est « lent », il ne voit à ses bornes que la tension moyenne du signal PWM 
(il fonctionne ainsi comme un filtre). 
Le hacheur fonctionne selon le même principe que le signal PWM. Il hache la tension issue d’une alimentation 
externe grâce à des transistors. La tension moyenne dépend alors du rapport cyclique. C’est le signal PWM qui 
est utilisé pour commander ces transistors.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
| 37 
Signal pWm 
Ouvrez une nouvelle fenêtre d’édition Xcos. Positionnez les blocs indiqués pour réaliser le diagramme suivant : 
Lancez une simulation et observez le signal. 
Remplacez l’échelon par un bloc MBS_Ramp (sous-palette 
Signaux / Sources) de pente 255 / 0.1. 
Observez l’évolution du signal créneau en sortie du PWM. 
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 
1 
0.9 
0.8 
0.7 
0.6 
0.5 
0.4 
0.3 
0.2 
0.1 
0 
commande 
Démonstrations / SIMM / Exemples Livret / Exemple 9 
désignation représentation Sous-palette SImm paramétrage 
Echelon Signaux / Sources / MBS_Step Amplitude : 125 (le reste à 0) 
PWM Signaux / Sources / CCP_PWM 
8 bits 
Fréquence : 500 Hz 
Temps de départ : 0 s 
Etude temporelle Utilitaires / Analyse / 
IREP_TEMP 
Durée 0.1s 
1000 points 
Grille : oui 
Afficher les courbes pendant la 
simulation : oui 
Affichage du signal Utilitaires / Visualisation / 
ISCOPE
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
38 | 
hacheur 1 quadrant 
Le hacheur le plus simple est le hacheur série 1 quadrant. Il est constitué d’un transistor commandé 
(interrupteur commandé) et d’une diode. 
H 
uL 
L 
uc um 
E 
D 
i 
R 
c 
i 
v 
H 
iD 
uH 
Reprenez le diagramme du moteur et ajoutez un interrupteur normalement fermé MEAI_IdealClosingSwitch 
et une diode CEAI_IdealDiode (sous-palette Électrique / Composant basique / Passif ). Insérez le pilotage par 
PWM donné précédemment en utilisant un échelon d’amplitude 120. 
Démonstrations / SIMM / Exemples Livret / Exemple 10
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
Lancez une simulation sur une durée de 0.2 s (pour 10 000 
points). 
On obtient par simulation ce que l’on peut observer à l’aide 
d’un oscilloscope et d’une pince ampèremétrique : 
une intensité hachée dont l’enveloppe correspond à 
l’intensité obtenue pour une tension continue de 
120 / 256*12 = 5.625 V. La vitesse est par contre naturellement 
« filtrée ». La tension vue par le moteur est bien un signal 
créneau de rapport cyclique 120 / 256 = 46.9 %. 
Les différents exemples proposés sont relativement 
simples mais permettent d’illustrer très facilement le 
comportement électrique et mécanique d’un moteur à 
courant continu piloté. 
300 
200 
100 
8 Intensité (A) 
6 
4 
2 
10 
5 
On remarque à nouveau qu’il est important de choisir correctement le nombre de points utilisés pour le calcul 
pour pouvoir observer les phénomènes souhaités. Par exemple, le PWM étant cadencé à 500 Hz, il est nécessaire 
de prendre au moins 5 000 points pour 1 seconde pour observer son allure. Et même ainsi, en choisissant 1000 
points pour 0.2 s, le compilateur ne réussit pas à mener la simulation à bien (l’algorithme de calcul ne converge 
pas, il faut donc augmenter le nombre de points d’observation de façon conséquente). Comme pour l’étude 
thermique, il est déraisonnable de modéliser un hacheur pour un moteur ayant une constante de temps bien 
supérieure à la période du hacheur ou PWM. 
nous verrons dans la prochaine activité qu’il est possible d’utiliser des blocs prédéfinis de certains composants 
standards (moteurs, hacheurs...) de manière à éviter des diagrammes trop denses. 
| 39 
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 
0 
Vitesse angulaire (rad/s) 
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 
0 
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 
0 
Tension (V)
Découvrez 
Inria 
Aujourd’hui, les technologies numériques rendent les transports plus autonomes et plus sûrs, les 
maisons plus intelligentes, l’agriculture plus respectueuse de l’environnement... Elles sont à l’origine 
de nouveaux services, transforment en profondeur nos modes de vie et enrichissent notre quotidien. 
Pour se développer, notre 
société compte toujours 
plus sur ces technologies 
numériques qui restent 
souvent invisibles. Elles sont 
issues de travaux de recherche 
longs et complexes associant 
sciences informatiques et 
mathématiques. 
Créé en 1967, Inria est le seul 
institut public de recherche 
entièrement dédié aux 
sciences du numérique. 
L’institut réunit aujourd’hui 
3500 chercheurs, inventeurs du 
monde numérique. 
Inria accueille 
chaque année : 
600 stagiaires 
de fi n d’étude, 
plus de 1200 
doctorants dans 
ses équipes de 
recherche 
Ces chercheurs inventent les 
technologies numériques de 
demain. 
Issus des plus grandes 
universités internationales, 
ils croisent avec créativité 
recherche fondamentale et 
recherche appliquée. Ils se 
consacrent à des problèmes 
concrets, collaborent avec 
les acteurs de la recherche 
publique et privée en 
France et à l’étranger, et 
transfèrent le fruit de leurs 
travaux vers les entreprises 
innovantes. 
Et plus d’informations sur : 
www.inria.fr 
Twitter twitter.com/inria 
YouTube youtube.com/inriachannel
Quelques illustrations 
de nos recherches 
Clusters de calcul pour l’expérimentation 
et Télescope (équipes Cartes, Madynes) 
Chercheuse (équipe Flowers) 
Manipulation moléculaire via écran 
multi-touch (équipe Mint) 
Extraction des données cryptographiques 
d’une carte bancaire
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
42 | 
eXemple 3 : aXe aSServI d’anGIoGraphIe bI-plan 
L’étude sera faite sur le déplacement en translation de l’armature suspendue 
au plafond d’une chaîne image d’un angiographe bi-plan (voir figure 
ci-contre) permettant la création d’images tridimensionnelles de la 
structure veineuse d’un patient afin de prévenir les risques de rupture 
d’anévrisme. 
La prise de vue est réalisée en positionnant de manière très précise une tête 
et un récepteur à rayons X longitudinalement et angulairement, un logiciel 
dédié se chargeant de la création d’une image colorisée à destination du 
médecin. 
L’ensemble est constitué d’un chariot supportant l’armature (S2) et mis en mouvement par un moteur à courant 
continu suivi d’un réducteur roue-vis qui entraîne les roues du chariot. Compte-tenu de la masse de l’armature 
(S2) et de son encombrement, le mécanisme possède deux degrés de liberté : la position du chariot y(t) et la 
position angulaire de l’armature (S2) α(t) qui apparaît suite à la déformation de l’armature lors du déplacement. 
On appelle LP (Lateral Plan) l’ensemble constitué de la chaîne image latérale et de son armature suspendue au 
plafond. 
Le mouvement de translation est commandé par le médecin à l’aide d’un joystick. La position voulue étant 
atteinte, le médecin lâche le joystick et déclenche la prise de vue à l’aide d’une pédale de commande. Le 
médecin exige que la prise de vue puisse commencer dès la demande d’arrêt du mouvement de translation. 
Le tableau ci-dessous propose un extrait du cahier des charges. 
fonction de service critère niveau 
FS1 Déplacer le LP en 
translation 
Être rapide sans mettre en dan ger le 
personnel médical Vitesse maximale 100 mm.s-1 
FS2 
Pouvoir commencer la 
prise de vue dès l’arrêt du 
mouvement de translation 
1. Arrêter le mouvement en temps 
masqué (le temps masqué est lié au 
temps de réaction du médecin) 
2. Limiter l’amplitude et la durée des 
oscillations du LP au niveau de 
l’iso-centre 
1. Temps masqué : 0.3 s 
2. Premières oscillations < à 1 mm d’un 
extremum à l’autre 
< à 0.2 mm d’un extremum à l’autre 
après 1 s 
FS3 Assurer la sécurité du 
patient 
Limiter la distance d’arrêt du LP, pour 
ne pas blesser le patient 
Distance d’arrêt réglementée 
infé rieure à 10 mm
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
| 43 
Schéma cinématique 
A 
z 
x y 
S1 
w 
O 
S0 
S0 : Plafond + rails de guidage + courroie 
S1 : Chariot 
S2 : Armature en forme de C + détecteur + tube 
S3 : Roue + poulie motrice 
S4 : Rotor moteur + vis 
S4 
S2 
S3 
iso-centre : lc 
données géométriques, cinétiques et grandeurs caractéristiques du moteur 
poulie motrice dispositif roue et vis sans fin 
Rayon de la poulie motrice S3 : Rp = 0.0318 m Rapport de réduction : r = 1 / 50 
chariot (S1) armature (S2) : armature en forme de c 
Masse : m1= 270 kg 
AIC = d = 1.4 m 
Centre d’inertie 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 Ω (résistance) 
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 d’inertie axe moteur + vis) 
f = 10-5 n.m.s (frottement visqueux)
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
44 | 
modélisation du système 
On s’intéresse dans un premier temps au déplacement de l’ensemble en supposant l’armature fixe par rapport 
au chariot. 
modélisation du moteur 
nous avons vu dans l’activité précédente qu’il était possible de modéliser de manière fine un moteur à courant 
continu en utilisant des composants élémentaires. Il est cependant possible de considérer globalement le 
moteur comme un élément d’une chaîne fonctionnelle et de n’entrer que les caractéristiques de celui-ci sans 
s’occuper de la manière dont il se comporte. 
Insérez un bloc MEMC_DCmotor (sous-palette Composants / Actionneurs) dans une fenêtre d’édition. 
Double-cliquez sur le bloc et configurez les valeurs des constantes du moteur (voir tableau précédent). Ajoutez 
un bloc CEAS_PredefVoltage (sous-palette Électrique / Sources) et connectez le moteur à cette source 
d’alimentation. n’oubliez pas d’ajouter une masse MEAB_Ground (sous-palette Électrique / Sources) pour définir 
le potentiel de référence. 
Ajoutez en sortie un bloc CMRS_GenSensor (sous-palette Mécanique / Rotation 1D / Mesure), choisissez de 
visualiser la vitesse de rotation de l’arbre moteur et ajoutez un bloc ISCOPE (sous-palette Utilitaires / 
Visualisation). 
nous allons faire différentes études temporelles (bloc IREP_TEMP de la sous-palette Utilitaires / Analyses). Pour 
commencer, double-cliquez sur le bloc d’alimentation et choisissez un échelon d’amplitude 80 V (tension 
maximale du moteur). Lancez une simulation sur 0.5 s (en prenant 1000 points) et observez l’allure de la 
réponse. 
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 
350 
300 
250 
200 
150 
100 
50 
0 
vitesse 
Démonstrations / SIMM / Exemples Livret / Exemple 11
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 
350 
300 
250 
200 
150 
100 
50 
Une telle réponse correspond à la réponse d’un système du premier ordre de gain et constante de temps 
donnée. 
L'avantage de ce modèle est qu'il ne nécessite que deux paramètres alors que le modèle physique en demande 
beaucoup plus. On peut alors chercher les paramètres qui s’approchent au mieux du modèle du moteur puis 
les tester avec un bloc MBC_FirstOrder (sous-palette Signaux / Continu) et une source échelon MBS_Step 
(sous-palette Signaux / Sources) d’amplitude 80. 
En réalité, la tension délivrée au moteur ne peut pas être constante car 
la commande est gérée par un joystick. C’est pourquoi, une commande 
en trapèze est plus représentative de la commande réelle obtenue 
lorsque le médecin lâche le joystick. Elle est modélisable par le signal 
ci-contre. 
Pour faire varier la tension d’alimentation du moteur, il est nécessaire 
d’utiliser un hacheur. Comme pour le moteur, des blocs prédéfinis sont 
disponibles pour les hacheurs et évitent ainsi d’avoir à détailler leur comportement. Ces composants se situent 
dans la sous-palette Composants / PréActionneurs. 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 fréquence de 500 Hz. 
Réalisez le diagramme indiqué sur la page suivante et paramétrez le signal de consigne du PWM pour obtenir 
une tension de commande du moteur comme indiqué sur la figure précédente (on prendra T = 2 s et 20 000 
points de simulation). Ajoutez un bloc pour visualiser le signal du PWM. 
| 45 
À noter 
Le gain du modèle du premier ordre est égal à la valeur asymptotique (environ 350 rad.s-1 ici) divisée par la consigne (80 V). La 
constante de temps est obtenue pour 63 % de la valeur finale (cf. Courbe obtenue pour la charge d’un condensateur). 
commande 
T 
80 
t 
T+0,15 
0 
Vitesse réelle 
Vitesse approchée 
Démonstrations / SIMM / Exemples Livret / Exemple 12
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
46 | 
Démonstrations / SIMM / Exemples Livret / Exemple 13 
Les blocs à ajouter ou paramétrer à nouveau sont rappelés ci-dessous : 
désignation représentation Sous-palette SImm paramétrage 
Ramp Signaux / Sources / MBS_Ramp 
Amplitude : -255 
Durée : 0.15 s 
Décalage : 255 
Temps de début : 1 s 
PWM Signaux / Sources / CCP_PWM 
8 bits 
Fréquence : 500 Hz 
Temps de début : 0 s 
Étude temporelle Utilitaires / Analyses / 
IREP_TEMP 
Durée : 2 s 
10 000 points 
Grille affichée : oui 
Afficher les courbes pendant la 
simulation : non 
Affichage du signal Utilitaires / Visualisation / 
ISCOPE 
nombre de courbes : 1 
nom de la courbe : vitesse PWM 
Hacheur demi-pont Composants / PréActionneurs / 
MEMC_Q2driver 
On constate qu’il est très difficile de visualiser correctement le signal PWM (ou en sortie du hacheur) sur la 
durée de simulation compte-tenu de la commande retenue. 
Ouvrez une nouvelle fenêtre d’édition Xcos et copiez le diagramme précédent. Supprimez les blocs hacheurs, 
PWM, source d’alimentation et remplacez-les par une alimentation variable pilotée MEAS_SignalVoltage 
(sous-palette Électrique / Sources). Modifiez le bloc Trapèze MBS_Ramp (sous-palette Signaux / Sources) pour 
obtenir directement la tension de commande du moteur (Amplitude -80, Décalage 80 V).
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
| 47 
Lancez la simulation en prenant 2 000 points. Comparez la courbe obtenue avec la précédente. 
vitesse 
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 
350 
300 
250 
200 
150 
100 
50 
0 
−50 
Démonstrations / SIMM / Exemples Livret / Exemple 14 
En observant les résultat obtenus, on s’aperçoit que la modélisation fine du hacheur n’est pas nécessaire dans 
ce cas précis. Il sera remplacé par la source de tension variable. 
modélisation des adaptateurs 
En aval du moteur à courant continu étudié précédemment se trouve une chaîne cinématique composée par 
la mise en série d’un réducteur de type roue et vis sans fin. La rotation de la roue du réducteur entraîne la 
translation du chariot par l’intermédiaire d’une roue de rayon donné. 
Démonstrations / SIMM / Exemples Livret / Exemple 15 
Ajoutez un réducteur à engrenages MMR_IdealGearGen et un système de transformation de mouvement de 
rotation en translation MMR_IdealGearR2TGen (sous-palette Composants / Adaptateurs). Configurez les blocs 
à l’aide des données initiales. Attention pour le bloc engrenage, le rapport renseigné est le rapport de l’entrée 
sur la sortie. Intercalez juste avant le capteur de vitesse linéaire un bloc CMTC_Mass (masse en translation) de 
la sous-palette Mécanique / Translation 1D / Basique. Seule la masse est importante (760 Kg). Il est également 
possible de définir les positions et vitesses initiales, etc.
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
48 | 
Lancez ensuite une simulation. Vérifiez que la vitesse obtenue est cohérente. 
désignation représentation Sous-palette SImm paramétrage 
Réducteur à engrenages Composants / Adaptateurs / 
MMR_IdealGearGen 
Rapport de transmission : 50 
Bâti : oui 
Pignon crémaillère Composants / Adaptateurs / 
MMR_IdealGearR2TGen 
Rapport de transmission : 1 / 0.038 
Bâti : oui 
Masse en translation Mécanique / Translation 1D / 
Basique / CMTC_Mass Masse : 760 Kg 
Capteur de vitesse Mécanique / Translation 1D / 
Mesure / CMTS_GenSensor Vitesse 
Influence des frottements sur l’évolution de l’intensité 
Il existe une résistance à l’avancement qui est égale à 70 n. 
Cette action peut être modélisée par l’intermédiaire du bloc CMT_MassWithFriction (sous-palette Mécanique / 
Translation 1D / Basique). Ce bloc est plus compliqué à paramétrer car il permet de tester différents modèles 
de frottement. Le seul qui est considéré ici est le modèle de Coulomb (les autres sont mis à 0). Attention, le 
signe de la résistance est positif. 
On constate que la commande utilisée ne respecte pas la vitesse maximale de 0.1 m.s-1. Modifiez celle-ci de 
manière à ce que la vitesse maximale soit celle définie dans le cahier des charges. 
Ajoutez un ampèremètre au niveau de l’alimentation du moteur et visualisez l’intensité. Faites varier la masse 
et visualisez l’influence sur l’intensité (ajoutez une masse sans frottement s’il y a des problèmes de simulation). 
Démonstrations / SIMM / Exemples Livret / Exemple 16
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
On constate ainsi qu’il est nécessaire de contrôler l’intensité du moteur pour gérer les accélérations de 
l’armature. C’est pourquoi par la suite, un asservissement d’intensité est mis en place, comme on le voit sur la 
figure suivante avec une correction unitaire. 
140 
120 
100 
80 
60 
40 
20 
0.1 
0.08 
0.06 
0.04 
0.02 
mise en place de l’asservissement d’intensité du moteur 
Insérez une boucle de courant (comme pour la régulation de température) en prenant un correcteur de type 
PI proportionnel intégral MBC_PI (sous-palette Signaux / Continu). En pratique, la mesure de courant est réalisée 
par une résistance ou une sonde ampèremétrique de gain égal à 0.245 V.A-1. 
| 49 
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 
0 
Vitesse moteur (rad/s) 
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 
0 
Vitesse chariot (m/s) 
Démonstrations / SIMM / Exemples Livret / Exemple 17
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
50 | 
L’asservissement portant sur le couple, il faut imposer une intensité de consigne, soit U / R avec U la valeur 
maximale utilisée précédemment (vous pouvez aussi ajouter un gain comme sur la figure précédente). 
Le réglage du correcteur PI pour l’asservissement 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 l’instant. 
Remarquez que la vitesse n’est plus du tout la même car le moteur est piloté en intensité (donc à une intensité 
constante correspondra une vitesse linéaire de par l’équation de dynamique). Il est donc indispensable 
d’adapter la consigne d’intensité pour retrouver des niveaux de vitesse raisonnable. Changez la consigne 
(prendre 1.7 V par exemple ou 0.6 A). Observez ensuite l’influence du gain du correcteur sur l’intensité. 
Le choix final de la valeur du gain doit se faire en fonction de la tension du moteur qui ne peut pas dépasser 
physiquement 80 V (Cf. hacheur). Ajoutez un voltmètre aux bornes du moteur et visualisez la tension pour 
différents gains supérieurs à 1. Une valeur trop grande du gain entraînera nécessairement un dépassement de 
la tension maximale. On prendra par la suite un gain de 100. 
asservissement en vitesse 
La partie précédente a permis de montrer qu’il est nécessaire d’asservir en intensité un moteur pour contrôler 
les accélérations. Il est donc indispensable d’ajouter un contrôle de vitesse pour assurer la loi de consigne 
souhaitée. 
Pour simplifier la commande du moteur, on peut utiliser une source d’intensité pilotée MEAS_SignalCurrent 
(sous-palette Électrique / Sources) plutôt que l’asservissement d’intensité, ce qui revient à considérer cet 
asservissement comme parfait. 
Démonstrations / SIMM / Exemples Livret / Exemple 18
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
L’asservissement de vitesse se fait en comparant la vitesse de rotation du moteur (capteur sur l’axe du moteur) 
à la vitesse de consigne (en trapèze). On utilise à nouveau un correcteur PI pour simplifier (gain 0.15, constante 
de temps 0.025 s). 
Le codeur incrémental monté sur l’axe moteur délivre une position en nombre de tops (informations binaires) 
et cette information de position est ensuite « dérivée » numériquement par différences finies. Le signal obtenu, 
image de la vitesse de rotation du moteur, est en général très bruité. Il faut donc adjoindre à cette mesure un 
filtre de constante de temps donné. Ce filtre est modélisable simplement par un bloc du premier ordre 
MBC_FirstOrder (sous-palette Signaux / Continu) de constante de temps 1 ms. 
Réalisez l’asservissement de vitesse suivant et configurez en entrée 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 paramétrer sont rappelés ci-dessous : 
désignation représentation Sous-palette SImm paramétrage 
| 51 
Ramp Signaux / Sources / MBS_Ramp 
Amplitude : - 0.1 
Durée : 0.15 s 
Décalage : 0.1 
Temps de départ : 1 s 
Gain Signaux / Math / MBM_Gain 50/0.0318 
Étude temporelle Utilitaires / Analyses / 
IREP_TEMP 
Durée : 2 s 
2000 points 
Grille affichée : oui 
Afficher 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
MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 
52 | 
Vitesse moteur (rad/s) 
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 
200 
150 
100 
50 
0 
0.15 Vitesse chariot (m/s) 
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 
0.1 
0.05 
0 
Intensité moteur (A) 
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 
80 
60 
40 
20 
0 
Démonstrations / SIMM / Exemples Livret / Exemple 19 
On a montré à travers cette application la nécessité d’asservir en intensité (ou en couple) le moteur de manière 
à contrôler les accélérations. On parle, dans ces conditions, de pilotage en intensité du moteur. Il est alors 
indispensable d’asservir en vitesse le moteur pour obtenir un mouvement particulier du chariot respectant 
ainsi le cahier des charges initial. 
De nombreux axes linéaires (imprimante par exemple) utilisent ce type de commande (boucle d'intensité et 
de vitesse) pour contrôler précisément les mouvements. La suite de cette activité serait de modéliser les 
oscillations de l'armature en utilisant la sous-palette Mécanique / Plane et d’améliorer la commande pour 
supprimer les problèmes de résonance.
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
L’exemple que nous allons traiter est le même que celui utilisé dans le chapitre précédent : l’angiographe. 
Le module CPGE permet de dimensionner les correcteurs à mettre en place dans le système par des analyses 
fréquentielles. Il nécessite des connaissances théoriques (transformée de Laplace, analyse fréquentielle, 
correcteur...) pour être utilisée efficacement. Son utilisation est donc plutôt orientée post-bac. 
Le cahier des charges du système est donc le même que dans le chapitre précédent, page 42. 
mISe en place d’un dIaGramme de moteur à courant contInu 
Dans cette première partie, nous allons construire le diagramme du moteur à courant continu (résistance Rm, 
inductance Lm, constante de couple Kt, constante de vitesse Ke et inertie équivalente rapportée à l’axe moteur Je). 
Ouvrez une nouvelle fenêtre d’édition Xcos. Positionnez les blocs suivants : 
| 53 
3- modélISatIon et analySe de SyStèmeS à tempS contInu 
(module cpGe) 
désignation représentation Sous-palette cpGe paramétrage 
Échelon Entrées / STEP_FUnCTIOn 
Valeur finale : 0 
Valeur finale : 80 
Fonction de transfert 
continue Opérateurs linéaires / CLR numérateur : 1 
Dénominateur : Lm*s + Rm 
Gain Opérateurs linéaires / 
GAInBLK_f 
Kt 
Ke 
Comparateur Opérateurs linéaires / 
BIGSOM_f 
Visualisation Sorties / SCOPE Intensité (A) 
Vitesse angulaire (rad / s) 
À noter 
Pour configurer 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 entrées).
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
54 | 
Construire le modèle du diagramme du moteur à courant continu en reliant les différents blocs (après les avoir 
positionnés puis éventuellement orientés), sous la forme du diagramme ci-dessous : 
Pour définir les grandeurs de sortie (afin que les courbes obtenues soient ensuite repérables facilement), 
double-cliquez sur chacun des deux blocs SCOPE et configurez le nombre de courbes à superposer sur un 
même graphe (une seule dans notre cas) puis après avoir cliqué sur OK, entrez le nom du signal, à savoir une 
vitesse de rotation de l’axe du moteur (en rad.s-1) et l’intensité dans l’induit (en A). 
En double-cliquant sur un espace vierge du diagramme, il est possible d’insérer 
À noter 
du texte permettant d’améliorer la lecture globale. Dans l’image précédente, on 
Dans toutes les zones de 
a ainsi pu décrire à quoi correspondaient les deux échelons d’entrée et les deux 
texte, il est possible d’entrer 
du code LaTeX permettant, 
sorties. Il est également possible d’attacher une étiquette / texte à un bloc par un 
par exemple, d’insérer des 
simple clic droit sur le bloc, puis format / édition et de compléter la zone de texte. 
équations. 
En double-cliquant successivement sur les deux échelons d’entrée, configurez une tension de 80 V (tension 
nominale du moteur), un instant initial t = 0 s et un couple résistant nul à t = 0 s (le cas perturbé sera étudié 
par la suite). 
étude / Simulation 
Pour lancer une simulation, il est nécessaire de spécifier le type d’étude retenu (temporelle et / ou fréquentielle). 
Pour réaliser une étude temporelle, positionnez dans le diagramme un bloc REP_TEMP (sous-palette Analyses). 
En double-cliquant sur ce bloc, configurez une durée de simulation de 1 s et 500 points d’affichage. Lancez 
alors la simulation. Deux courbes s’affichent, représentant respectivement l’intensité et la vitesse angulaire. 
Démonstrations / CPGE / Exemples Livret / Exemple 1
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
350 
300 
250 
200 
150 
100 
50 
30 
25 
20 
15 
10 
5 
mISe en place d’un dIaGramme de commande en boucle ouverte 
En aval du moteur à courant continu se trouve une chaîne cinématique 
(réducteur à engrenages + système roue et vis sans fin + système 
pignon – crémaillère) de rapport de réduction Kch = 31.8.10-3 / 50 m.rad-1 
permettant de transformer la rotation en une translation de l’axe linéaire. 
Afin de ne pas trop solliciter le moteur électrique, on l’alimente 
progressivement jusqu’à la valeur nominale (voir figure ci-contre) : on 
donne tm = 0.1 s (temps de montée) et U0 = 40 V (tension nominale). 
Ce signal peut classiquement être obtenu par soustraction d’une rampe 
de pente U0 / tm à l’instant t = 0 s et d’une rampe de même pente mais 
décalée dans le temps de tm secondes. Cependant, le module CPGE 
offre la possibilité de définir un signal trapèze dont nous n’exploiterons 
que la partie initiale (montée et maintien) en prenant un temps de maintien en position maximale très grand. 
Par ailleurs, un effort Fr = – 72 n est exercé sur la structure qui se translate à l’instant tr = 0.5 s. Cet effort est 
ressenti comme un couple résistant au niveau du moteur avec, si l’on suppose un rendement unitaire, un 
rapport de proportionnalité correspondant au gain de la chaîne cinématique. 
| 55 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0 
Vitesse de rotation (rad/s) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0 
Intensité (A) 
Um en V 
U0 
t en s 
tm
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
56 | 
Complétez le contexte avec les informations Kch = 31.8.10-3 / 50, tm, tr, U0 et Fr à la suite des précédentes puis 
ajoutez trois gains GAInBLK_f (sous-palette Opérateurs linéaires). Rajoutez également deux afficheurs SCOPE 
(sous-palette Sorties) pour le tracé de la tension d’alimentation et de la vitesse de déplacement. Remplacez 
l’échelon de tension par un bloc TRAPEZOID (sous-palette Entrées) et configurez l’amplitude, le temps de 
montée et prenez un temps de maintien de 10 (donc très supérieur au temps de simulation) sans modifier les 
autres paramètres. 
À partir du diagramme initial, créez alors le diagramme ci-dessous, correspondant à la commande en boucle 
ouverte du système (entrée : tension du moteur en V, sortie : vitesse de déplacement de l’axe en m.s-1 
perturbation : force Fr à l’instant tr = 0.5 s). Un gain de 30 / π (qui s’écrit dans Scilab 30 / %pi) permet d’obtenir 
la vitesse de rotation en rad.s-1. 
Lancez la simulation. 
Quatre courbes s’affichent, représentant respectivement la 
tension d’alimentation en V, l’intensité dans l’induit en A, la 
vitesse angulaire en tours.min-1 et en rad.s-1. 
Analysez rapidement les courbes obtenues en les comparant à 
celles qui ont été obtenues par la simulation acausale. 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0.1 
0.05 
0 
Vitesse de rotation (rad/s) 
4 Intensité (A) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
2 
0 
1 500 Vitesse de rotation (tours/min) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
1 000 
500 
0 
40 Tension d’alimentation (V) 
0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 
20 
0 
Démonstrations / CPGE / Exemples Livret / Exemple 2
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
préSentatIon de la Structure de l’aSServISSement en vIteSSe 
La structure de commande précédente n’est pas performante car elle est très sensible à la perturbation. Afin 
d’arrêter le déplacement de l’axe au niveau souhaité, il serait nécessaire de couper l’alimentation au bon 
moment (donc en tenant compte à la fois des perturbations et de l’inertie du système), ce qui est bien entendu 
illusoire. 
Pour maîtriser la vitesse de déplacement de l’axe et compenser les perturbations, il est donc nécessaire de 
passer à une structure asservie. Dans le cas du système étudié, ceci est réalisé par l’implantation d’un codeur 
incrémental sur l’axe moteur et l’adjonction d’un calculateur permettant de traiter les informations de manière 
numérique. 
nous introduisons les nouveaux blocs suivants : 
| 57 
désignation représentation Sous-palette cpGe paramétrage 
Générateur de signal 
trapézoïdal Entrées / TRAPEZOID Amplitude : 0.1 
Largeur : 10 
Correcteur PI Opérateurs linéaires / PIcontrol Gain proportionnel : Kp 
La structure du diagramme est la suivante : 
Démonstrations / CPGE / Exemples Livret / Exemple 3 
Dans ce diagramme, on note les évolutions suivantes : 
w Modification de la typologie de l’entrée pour réaliser une commande en trapèze 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 d’axe 
linéaire asservi,
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
58 | 
w Ajout d’une observation de l’évolution de la tension d’alimentation du moteur, 
w Mise en place d’un soustracteur et d’un correcteur PI, PIcontrol (sous-palette Opérateurs linéaires). 
Modifiez le contexte en définissant la variable Kp=1. On utilise pour l'instant comme paramètres du correcteur 
PI, le gain proportionnel Kp et un gain intégral nul. Cette variable tient compte de l’ensemble correcteur + 
module d’amplification (hacheur) en amont de l’ensemble constitué du moteur et de la chaîne cinématique. 
4 Intensité (A) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
2 
0 
Vitesse de rotation (tours/min) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
1 000 
0 
Consigne de vitesse (m/s) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0.1 
0.05 
0 
40 Tension d’alimentation (V) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
20 
0 
Vitesse déplacement (m/s) 
0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 
0.1 
0.05 
0 
aSServISSement de vIteSSe et correctIon proportIonnelle 
nous allons, dans un premier temps analyser l’influence de la simple correction proportionnelle implantée sur 
le comportement temporel du système. Dans le contexte, la valeur de Kp est unitaire. La valeur n’a pas 
d’importance mais, pour être prise en compte, elle doit être définie. 
nous introduisons les nouveaux blocs suivants : 
désignation représentation Sous-palette cpGe paramétrage 
Variation paramétrique Analyses / PARAM_VAR Kp 
[0.5,1,5,10,100] 
Saturation non-linéarités / SATURATIOn 40 
-40 
Insérez un bloc PARAM_VAR (sous-palette Analyses) pour faire une étude paramétrique.
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
À noter 
Le bloc PARAM_VAR permet de faire des études paramétriques sans avoir besoin de linéariser le système. Le diagramme peut 
donc utiliser n’importe quel type de blocs. 
Lancez la simulation et observez l’influence du gain du correcteur sur les performances en comparaison aux 
attentes du cahier des charges. 
| 59 
La valeur de la tension d’alimentation doit 
physiquement être limitée à 40 V pour protéger le 
moteur. On constate cependant que, pour plusieurs 
valeurs de Kp, cette tension est dépassée. Pour 
améliorer le modèle, il est donc indispensable 
d’ajouter une non-linéarité physique : la saturation. 
Sélectionnez tous les blocs situés après le correcteur 
(les blocs sont mis en surbrillance) et déplacez un des 
blocs pour mouvoir l’ensemble. Insérez alors, entre le 
bloc correspondant à l’ensemble correcteur + 
hacheur et le moteur, un bloc SATURATIOn 
(sous-palette non-linéarités). 
Configurez la saturation avec les valeurs indiquées 
dans le tableau précédent (40 et -40). 
4 Kp=0.5 Intensité (A) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
2 
0 
Kp=1 Intensité (A) 
Kp=5 Intensité (A) 
Kp=10 Intensité (A) 
Kp=100 Intensité (A) 
1 500 Kp=0.5 Vitesse de rotation (tours/min) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
1 000 
500 
0 
Kp=1 Vitesse de rotation (tours/min) 
Kp=5 Vitesse de rotation (tours/min) 
Kp=10 Vitesse de rotation (tours/min) 
Kp=100 Vitesse de rotation (tours/min) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0.1 
0.05 
0 
Kp=0.5 Consigne de vitesse (m/s) 
Kp=1 Consigne de vitesse (m/s) 
Kp=5 Consigne de vitesse (m/s) 
Kp=10 Consigne de vitesse (m/s) 
Kp=100 Consigne de vitesse (m/s) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
40 
20 
0 
Kp=0.5 Tension d’alimentation (V) 
Kp=1 Tension d’alimentation (V) 
Kp=5 Tension d’alimentation (V) 
Kp=10 Tension d’alimentation (V) 
Kp=100 Tension d’alimentation (V) 
0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 
0.1 
0.05 
0 
Kp=0.5 Vitesse déplacement (m/s) 
Kp=1 Vitesse déplacement (m/s) 
Kp=5 Vitesse déplacement (m/s) 
Kp=10 Vitesse déplacement (m/s) 
Kp=100 Vitesse déplacement (m/s)
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
60 | 
Relancez la simulation et observez l’effet de la saturation sur 
la réponse obtenue, tant au niveau des grandeurs 
4 Kp=0.5 Intensité (A) 
Kp=1 Intensité (A) 
électriques que sur le suivi de la consigne de vitesse en 
2 
Kp=5 Intensité (A) 
Kp=10 Intensité (A) 
0 
Kp=100 Intensité (A) 
trapèze. 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
Kp=0.5 Vitesse de rotation (tours/min) 
1 000 
Kp=1 Vitesse de rotation (tours/min) 
Afin d’analyser la capacité du système à suivre l’évolution 
Kp=5 Vitesse de rotation (tours/min) 
Kp=10 Vitesse de rotation (tours/min) 
Kp=100 Vitesse de rotation (tours/min) 
de la consigne, il est bien entendu possible de comparer la 
0 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
réponse temporelle obtenue à la consigne en superposant 
0.1 
Kp=0.5 Consigne de vitesse (m/s) 
Kp=1 Consigne de vitesse (m/s) 
Kp=5 Consigne de vitesse (m/s) 
plusieurs courbes sur un même afficheur (SCOPE). 
0.05 
Kp=10 Consigne de vitesse (m/s) 
0 
Kp=100 Consigne de vitesse (m/s) 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
40 
Kp=0.5 Tension d’alimentation (V) 
Double-cliquez sur le bloc SCOPE de la vitesse de 
Kp=1 Tension d’alimentation (V) 
20 
Kp=5 Tension d’alimentation (V) 
déplacement et demandez deux courbes de noms « Vitesse 
Kp=10 Tension d’alimentation (V) 
Kp=100 Tension d’alimentation (V) 
0 
de déplacement (m.s-1) » et « Consigne de vitesse (m.s-1) » 
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 
0.1 
Kp=0.5 Vitesse de déplacement (m/s) 
puis connectez la nouvelle entrée. 
Kp=1 Vitesse de déplacement (m/s) 
0.05 
Kp=5 Vitesse de déplacement (m/s) 
Kp=10 Vitesse de déplacement (m/s) 
Kp=100 Vitesse de déplacement (m/s) 
0 
Lancez la simulation et observez l’effet de la saturation pour 
0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 
la valeur Kp = 100. 
aSServISSement de vIteSSe et correctIon proportIonnelle et IntéGrale 
Afin d’améliorer sensiblement la capacité du système à suivre la consigne de vitesse, il est nécessaire d’apporter 
un effet intégral à la correction. 
On choisit alors de renseigner le gain Ki du correcteur PI :
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
Pour analyser l’influence des paramètres et le réglage du correcteur, on réalise une analyse fréquentielle en 
boucle ouverte. Pour réaliser cette analyse, il est nécessaire de linéariser le diagramme. normalement les blocs 
non-linéaires (type saturation) sont remplacés par des gains unitaires (sauf pour le retard qui peut être traité 
exactement en boucle ouverte). 
Supprimez le bloc REP_TEMP et remplacez-le par un bloc REP_FREQ (sous-palette Analyses) qui réalisera 
l’analyse fréquentielle. On peut cumuler la réponse temporelle et la réponse fréquentielle en laissant les deux 
blocs REP_ TEMP et REP_FREQ sur le schéma. 
Ajoutez également deux blocs GRAnDEUR_PHYSIQUE (sous-palette Analyses) qui sont utilisés pour définir les 
points d’entrée et de sortie de l’analyse fréquentielle. 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 
désignation représentation Sous-palette cpGe paramétrage 
Analyse fréquentielle Analyses / REP_FREQ 
Points d’entrée / sortie Analyses / 
GRAnDEUR_PHYSIQUE 
Démonstrations / CPGE / Exemples Livret / Exemple 4
À noter 
Plusieurs blocs REP_FREQ peuvent être introduits dans le diagramme, ce qui permet d’obtenir la réponse fréquentielle de la 
boucle ouverte et celle de la boucle fermée dans deux fenêtres graphiques séparées. Si l’on souhaite superposer deux réponses 
fréquentielles, il suffit de configurer les différentes entrées et sorties séparées par des points-virgules. Exemple : E1;E2 et S1;S2. 
On peut alors configurer, dans le bloc REP_FREQ, 
le type de diagramme fréquentiel (Bode, Black ou 
40 
nyquist), les points d’entrée et de sortie (référence 
20 
0 
1 
2 
3 
4 
10 
10 
10 
10 
10 
aux blocs GRAnDEUR_PHYSIQUE « E » et « S ») ainsi 
0 
que l’affichage ou non des marges de stabilité et 
−20 
des asymptotes. Dans la fenêtre de configuration 
−40 
−60 
du bloc, il est possible de définir les pulsations 
minimale et maximale : prendre ici 1 et 10 000. 
Lancez une simulation (analyse fréquentielle 
seule) pour les paramètres par défaut du 
correcteur (Kp=1 dans le contexte et Ki=0). 
Visualisez alors les marges de gain et phase sur les 
diagrammes de Bode. 
Modifiez les valeurs pour voir leur impact sur le 
comportement fréquentiel de la boucle ouverte. Il est nécessaire de relancer une simulation à chaque fois. 
Vous pouvez également positionner un bloc PARAM_VAR pour voir l’influence des paramètres pour des jeux 
donnés en analyse fréquentielle. Attention, le calcul de marges n’est fait que pour une seule courbe (pas le 
tracé des asymptotes). 
Un réglage satisfaisant pour avoir une marge de phase de 45 ° environ est Kp=10 et Ki=0.1. 
Ajoutez le bloc REP_TEMP (durée 1 s, 200 points de tracés) et observez la réponse temporelle. Vous pouvez 
supprimer le bloc REP_FREQ pour n’observer que la réponse temporelle. 
On voit que ce réglage PI n’est pas idéal dans le cas d’étude car le moteur utilisé peine à entraîner de manière 
efficace le système avec cette structure série. Afin d’améliorer sensiblement les performances, on commande 
le moteur en courant c’est-à-dire que l’on ajoute une boucle de courant. Cette structure de commande est très 
classique de nos jours. La quasi-totalité des cartes de commande actuelles dispose de cette fonctionnalité que 
nous utilisons ici. 
Amplitude (dB) 
Pulsation (rad/s) 
Marge de gain infinie ; Marge de phase : 43.25° 
10 
0 
10 
1 
10 
2 
10 
3 
10 
4 
0 
−50 
−100 
−150 
Phase (°) 
Pulsation (rad/s) 
Entrée : E Sortie : S 
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
62 |
MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 
Le principe de la boucle de courant est simple. On vient, grâce à une structure adéquate, mesurer l’intensité 
au niveau de l’induit et alors modifier l’alimentation réelle du moteur après une correction le plus souvent de 
type PI comme le montre le diagramme suivant : 
Démonstrations / CPGE / Exemples Livret / Exemple 5 
Dans ce diagramme, le retour de courant a été choisi unitaire car le gain du capteur (résistance de shunt ou 
capteur à effet Hall) est ici intégré dans le correcteur PI. 
Il est nécessaire de régler 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 filtre a été ajouté dans la boucle de retour tachymétrique pour 
être au plus prêt de la physique du système (mesure par codeur puis dérivation numérique bruitée). 
On voit qu’il est possible, en utilisant cette structure, d’atteindre des performances relativement importantes 
tout en ne modifiant ni la structure globale de l’asservissement (donc en gardant un codeur incrémental sur 
l’axe du moteur) ni le choix du moteur à courant continu, ce qui est toujours délicat (coût, implantation, etc.). 
| 63 
10 
0 
10 
1 
10 
2 
10 
3 
10 
4 
400 
300 
200 
100 
0 
−100 
Amplitude (dB) 
Pulsation (rad/s) 
Marge de gain : 26.59dB ; Marge de phase : 59.91° 
10 
0 
10 
1 
10 
2 
10 
3 
10 
4 
0 
−50 
−100 
Phase (°) Pulsation (rad/s) 
−150 
−200 
−250 
Entrée : E Sortie : S 
10 
0 
10 
1 
10 
2 
10 
3 
10 
4 
20 
10 
0 
−10 
Amplitude (dB) 
Pulsation (rad/s) 
Marge de gain infinie ; Marge de phase : 109.86° 
10 
0 
10 
1 
10 
2 
10 
3 
10 
4 
0 
−50 
−100 
−150 
Phase (°) 
Pulsation (rad/s) 
Entrée : Ei Sortie : Si
ACQUISITIOn ET PILOTAGE DE MOTEUR 
| 65 
4- acquISItIon et pIlotaGe de moteur (module arduIno) 
Cette activité expose les possibilités de simulation de type « hardware in the 
loop » (intégration de matériel physique dans une simulation logicielle) de 
Scilab / Xcos et du module Arduino couplés à une carte Arduino Uno. Le module 
Arduino permet, en effet, d’intégrer dans l’outil de simulation, la commande 
d’une carte Arduino Uno afin de faire de l’acquisition ou du pilotage de systèmes. 
Il est possible de réaliser les commandes suivantes : lecture / écriture d’une entrée 
/ sortie logique, lecture / écriture d’une entrée / sortie analogique, commande 
d’un moteur à courant continu, d’un servomoteur et d’un moteur pas à pas. 
préSentatIon SuccIncte de la carte arduIno uno 
Sur la carte Arduino Uno, identifiez les ports (PInS en anglais) suivants : 
w 14 entrées / Sorties logiques (port ou « PIn Digital » de 0 à 13) : 
- Série 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 (utilisées pour le codeur en quadrature), 
- Sortie 13 couplée à une LED sur la carte. 
w 6 entrées analogiques (A0 à A5) : 
- La tension d’entrée doit nécessairement être inférieure à la tension de référence 
(5 V ou 1.1 V ou AREF : référence externe), 
- 6 CAn (Convertisseur Analogique numérique) 10 bits (plage de 1024) à 10 kHz 
maximum, 
- Ces entrées peuvent aussi fonctionner comme des Entrées / Sorties numériques. 
w 6 Sorties analogiques : 6 PWM sur les ports 3, 5, 6, 9, 10 et 11, construites sur les 
pins d’entrées / sorties logiques. 
USB 
Carte 
Arduino 
14 
13 
12 
11 
10 
09 
08 
07 
06 
05 
04 
03 
02 
01 
00 
15 
16 
17 
18 
19 
Reset 
AREF 
+3V3 
+5V 
0V 
0V 
0V 
+Vin (7-12V) 
A0 
A1 
A2 
A3 
A4 
A5 
Analog 
SCK 
MISO 
MOSI / PWM 
SS / PWM 
PWM 
PWM 
PWM 
INT1 / PWM 
INTO 
TX 
RX 
La programmation de toutes les cartes de la famille Arduino, dont le modèle Uno, se 
fait dans un langage simplifié adapté du C / C++, basé sur l’utilisation de « classes » (ou 
macro-commandes) faciles à comprendre et à modifier, y compris par des personnes 
non-spécialistes de la programmation. Le projet « Open Source » Arduino a, en effet, 
initialement été créé pour la mise en oeuvre d’environnements sonores ou visuels à 
destination de créations artistiques. Il était donc indispensable que l’interface soit 
réduite à la mise en oeuvre séquentielle d’ordres simples et à l’acquisition de données 
analogiques ou numériques. Le logiciel de programmation, gratuit et utilisable sans 
installation sur l’ordinateur sur les environnements Windows, Mac OS X et Linux, est 
téléchargeable en ligne à l’adresse : http://arduino.cc/en/Main/Software 
Un guide d’installation est disponible à l’adresse : 
http://arduino.cc/en/Guide/HomePage 
À noter 
Comme les mémoires 
sont de type Flash, le 
programme reste 
« indéfiniment » en 
mémoire, même sans 
alimentation, après son 
implantation dans le 
microcontrôleur. Pour 
charger le programme, la 
liaison USB permet de 
communiquer avec le 
microcontrôleur en 
émulant une liaison série.
ACQUISITIOn ET PILOTAGE DE MOTEUR 
66 | 
utIlISatIon du module arduIno IntéGré à ScIlab / XcoS 
Pour faire fonctionner le module, il faut aussi charger un programme particulier (Toolbox_Arduino.ino) dans 
l’Arduino. Celui-ci est téléchargeable depuis le site http://atoms.scilab.org/toolboxes/arduino. 
Grâce au logiciel Arduino, ouvrez le fichier téléchargé puis téléversez-le après avoir choisi le port de 
communication dans le menu Outils / Port série (prendre le port différent du Com1) et le type de carte Arduino 
Uno. Véri fiez que le téléversement s’est bien terminé et quittez. 
La carte Arduino Uno est prête à être interfacée avec Scilab / Xcos grâce au module que nous allons maintenant 
étudier. Il ne sera plus nécessaire d’utiliser le logiciel Arduino par la suite. 
démarrage avec le module arduino : clignotement d’une led et entrées / sorties logiques 
Lancez Xcos. Pour vérifier le bon fonctionnement du module, nous allons faire clignoter la LED intégrée à la 
carte Arduino (PIn 13), ce qui correspond à l’exemple de base en programmation de microcontrôleurs. 
Le tableau ci-dessous résume l’ensemble des blocs à positionner et les paramètres à configurer : 
désignation représentation Sous-palette paramétrage 
Configuration 
Arduino 
Arduino / Configuration / 
ARDUInO_SETUP Port série : 5 
Configuration 
simulation 
Arduino / Configuration / 
TIME_SAMPLE 
Écriture port digital Arduino / Digital / 
DIGITAL_WRITE_SB PIn digital : 13 
Générateur 
d’impulsions CPGE / Entrées / PULSE_SC 
Retard : 0.1 
Largeur de pulsations : 30 
Période : 1 
Amplitude : 1 
Reliez l’entrée Pulse et la sortie logique puis lancez l’acquisition via le bouton de simulation. Les deux diodes 
Rx et Tx sur la carte doivent indiquer la communication série entre Xcos et l’Arduino tandis que la LED située à 
côté du PIn 13 doit clignoter.
ACQUISITIOn ET PILOTAGE DE MOTEUR 
Vous pouvez également prendre une LED 
quelconque, lui associer une résistance 
judicieusement choisie et brancher une patte de la 
LED + résistance au PIn Gnd (« ground » pour masse) 
et l’autre extrémité à un PIn digital quelconque 
(différent de 0 et 1 - 5 sur le schéma ci-contre), puis 
configurer ce numéro de PIn dans le bloc 
DIGITAL_WRITE_SB du diagramme. 
À l’issue de ce premier essai, l’interfaçage des entrées / sorties logiques de l’Arduino avec Xcos a été mis en 
oeuvre. On peut maintenant passer à l’acquisition d’une grandeur analogique. 
acquérir une grandeur analogique 
Dans cette partie, nous allons utiliser un potentiomètre afin de générer une tension variant entre 0 V et 5 V 
(principe du pont diviseur de tension). On pourrait acquérir la tension de n’importe quel capteur analogique, 
mais il faut faire attention à ne pas l’alimenter à une tension supérieure à la tension de référence (5 V pour le 
modèle UnO ou 3.3 V suivant les modèles) supportée par les PInS de l’Arduino. 
L’acquisition analogique se fait grâce à un CAn (Convertisseur Analogique numérique) de 10 bits, c’est-à-dire 
que la plage 0 V – 5 V est convertie en 210 = 1024 nombres numériques, soit une plage allant de 0 à 1023. La 
résolution est donc de 4.9 mV. 
Branchez le potentiomètre comme suit : 
Patte extérieure à 0 V (masse ou PIn GnD), patte 
intérieure à 5 V et patte du milieu à relier à une 
entrée analogique quelconque notée Apin. 
Créez un diagramme avec un port analogique en 
lecture Analog_READ_SB (sous-palette Analog) et 
double-cliquez sur l’entrée analogique pour spécifier 
votre numéro de PIn. 
Ajoutez un afficheur ARDUInO_SCOPE (sous-palette 
Configuration). 
Lancez l’acquisition via le bouton de simulation et 
faites tourner le potentiomètre. 
On doit voir une courbe variant de 0 à 1023 selon 
l’angle du potentiomètre. 
| 67 
Démonstrations / Arduino / Exemples Livret / Exemple 1
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur

Más contenido relacionado

La actualidad más candente

Lecture dc machines
Lecture dc machinesLecture dc machines
Lecture dc machines
sudeep kumar
 
Economic load dispatch
Economic load  dispatchEconomic load  dispatch
Economic load dispatch
Deepak John
 
Modeling and Simulation of Induction Motor based on Finite Element Analysis
Modeling and Simulation of Induction Motor based on Finite Element AnalysisModeling and Simulation of Induction Motor based on Finite Element Analysis
Modeling and Simulation of Induction Motor based on Finite Element Analysis
IJPEDS-IAES
 

La actualidad más candente (20)

Repulsion motor
Repulsion motorRepulsion motor
Repulsion motor
 
Artificial Intelligence Based MPPT Algorithm for Grid Connected Solar PV System
Artificial Intelligence Based MPPT Algorithm for Grid Connected Solar PV SystemArtificial Intelligence Based MPPT Algorithm for Grid Connected Solar PV System
Artificial Intelligence Based MPPT Algorithm for Grid Connected Solar PV System
 
Hexagonal architecture in PHP
Hexagonal architecture in PHPHexagonal architecture in PHP
Hexagonal architecture in PHP
 
Lecture dc machines
Lecture dc machinesLecture dc machines
Lecture dc machines
 
Power quality.ppt
Power quality.pptPower quality.ppt
Power quality.ppt
 
React - Start learning today
React - Start learning today React - Start learning today
React - Start learning today
 
Introduction into ES6 JavaScript.
Introduction into ES6 JavaScript.Introduction into ES6 JavaScript.
Introduction into ES6 JavaScript.
 
Power factor
Power factorPower factor
Power factor
 
Economic load dispatch
Economic load  dispatchEconomic load  dispatch
Economic load dispatch
 
HVDC UNIT-II.pptx
HVDC UNIT-II.pptxHVDC UNIT-II.pptx
HVDC UNIT-II.pptx
 
Improving substation reliability & availability
Improving substation reliability & availability Improving substation reliability & availability
Improving substation reliability & availability
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & Actuators
 
Multi level inverter
Multi level inverterMulti level inverter
Multi level inverter
 
Unified Power Flow Controller(upfc)1
Unified Power Flow Controller(upfc)1Unified Power Flow Controller(upfc)1
Unified Power Flow Controller(upfc)1
 
Modern power system planning new
Modern power system planning newModern power system planning new
Modern power system planning new
 
Vsc based hvdc transmission
Vsc based hvdc transmissionVsc based hvdc transmission
Vsc based hvdc transmission
 
Modeling and Simulation of Induction Motor based on Finite Element Analysis
Modeling and Simulation of Induction Motor based on Finite Element AnalysisModeling and Simulation of Induction Motor based on Finite Element Analysis
Modeling and Simulation of Induction Motor based on Finite Element Analysis
 
grid power quality improvement and battery energy storage in wind energy systems
grid power quality improvement and battery energy storage in wind energy systemsgrid power quality improvement and battery energy storage in wind energy systems
grid power quality improvement and battery energy storage in wind energy systems
 
Quasi z source inverter
Quasi z source inverterQuasi z source inverter
Quasi z source inverter
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSX
 

Destacado

Branche-technical report 1
Branche-technical report 1Branche-technical report 1
Branche-technical report 1
Emilie Branche
 
NX 9.0 Examples
NX 9.0 ExamplesNX 9.0 Examples
NX 9.0 Examples
Gil Stark
 
VersióN Para Exponer En 1ras Jornadas En Chubut Inicadoresd
VersióN Para Exponer En 1ras Jornadas En  Chubut  InicadoresdVersióN Para Exponer En 1ras Jornadas En  Chubut  Inicadoresd
VersióN Para Exponer En 1ras Jornadas En Chubut Inicadoresd
hildaberon
 
Compras para tí
Compras para tíCompras para tí
Compras para tí
djcani
 
La música en el tractor
La música en el tractorLa música en el tractor
La música en el tractor
Jose Catalan
 
Camí de santiago- xacobeo
Camí de santiago- xacobeoCamí de santiago- xacobeo
Camí de santiago- xacobeo
Teresa Torné
 
Dossier de production sustainable Groupe 21
Dossier de production sustainable Groupe 21Dossier de production sustainable Groupe 21
Dossier de production sustainable Groupe 21
jardinierwiki21
 

Destacado (20)

Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieurScilab/Xcos pour l'enseignement des sciences de l'ingénieur
Scilab/Xcos pour l'enseignement des sciences de l'ingénieur
 
Scilab pour les vrais débutants
Scilab pour les vrais débutantsScilab pour les vrais débutants
Scilab pour les vrais débutants
 
Scilab debutant
Scilab debutantScilab debutant
Scilab debutant
 
Branche-technical report 1
Branche-technical report 1Branche-technical report 1
Branche-technical report 1
 
Lahm passes
Lahm passesLahm passes
Lahm passes
 
NX 9.0 Examples
NX 9.0 ExamplesNX 9.0 Examples
NX 9.0 Examples
 
Présentation des partenaires du Summer Meeting du SCIJ
Présentation des partenaires du Summer Meeting du SCIJPrésentation des partenaires du Summer Meeting du SCIJ
Présentation des partenaires du Summer Meeting du SCIJ
 
B´squeda de información industrias pecuarias marzo 2013
B´squeda de información industrias pecuarias marzo 2013B´squeda de información industrias pecuarias marzo 2013
B´squeda de información industrias pecuarias marzo 2013
 
Présentation du Club Export
Présentation du Club ExportPrésentation du Club Export
Présentation du Club Export
 
VersióN Para Exponer En 1ras Jornadas En Chubut Inicadoresd
VersióN Para Exponer En 1ras Jornadas En  Chubut  InicadoresdVersióN Para Exponer En 1ras Jornadas En  Chubut  Inicadoresd
VersióN Para Exponer En 1ras Jornadas En Chubut Inicadoresd
 
Compras para tí
Compras para tíCompras para tí
Compras para tí
 
El viaje al poder de la conciencia 1984
El viaje al poder de la conciencia 1984El viaje al poder de la conciencia 1984
El viaje al poder de la conciencia 1984
 
Industries créatives et Industries traditionnelles en Wallonie
Industries créatives et Industries traditionnelles en Wallonie Industries créatives et Industries traditionnelles en Wallonie
Industries créatives et Industries traditionnelles en Wallonie
 
La música en el tractor
La música en el tractorLa música en el tractor
La música en el tractor
 
Charla Phh 2009
Charla Phh 2009Charla Phh 2009
Charla Phh 2009
 
Simposio Internacional
Simposio InternacionalSimposio Internacional
Simposio Internacional
 
por que la Biblia
por que la Bibliapor que la Biblia
por que la Biblia
 
Neurocoaching Practico - Hacernos Cargo
Neurocoaching Practico - Hacernos CargoNeurocoaching Practico - Hacernos Cargo
Neurocoaching Practico - Hacernos Cargo
 
Camí de santiago- xacobeo
Camí de santiago- xacobeoCamí de santiago- xacobeo
Camí de santiago- xacobeo
 
Dossier de production sustainable Groupe 21
Dossier de production sustainable Groupe 21Dossier de production sustainable Groupe 21
Dossier de production sustainable Groupe 21
 

Similar a Scilab/Xcos pour l'enseignement des sciences de l'ingénieur

DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
TasnimBenAmmar
 
Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)
Badr Hakkari
 
Collecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleCollecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centrale
oussama Hafid
 

Similar a Scilab/Xcos pour l'enseignement des sciences de l'ingénieur (20)

Xcos pour débutants
Xcos pour débutantsXcos pour débutants
Xcos pour débutants
 
Xcos pour les vrais débutants
Xcos pour les vrais débutantsXcos pour les vrais débutants
Xcos pour les vrais débutants
 
Livret lycees 2010
Livret lycees 2010Livret lycees 2010
Livret lycees 2010
 
Scilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiquesScilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiques
 
Rapport de mini projet java
Rapport de mini projet javaRapport de mini projet java
Rapport de mini projet java
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
 
Programmation en technologie (C.Blin)
Programmation en technologie (C.Blin)Programmation en technologie (C.Blin)
Programmation en technologie (C.Blin)
 
Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)
 
Scilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiquesScilab pour l'enseignement des mathématiques
Scilab pour l'enseignement des mathématiques
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...
#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...
#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...
 
Collecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centraleCollecte des données métiers et constitution d'un entrepôt centrale
Collecte des données métiers et constitution d'un entrepôt centrale
 
Cours spring
Cours springCours spring
Cours spring
 
cours logiciels de simulation.docx
cours logiciels de simulation.docxcours logiciels de simulation.docx
cours logiciels de simulation.docx
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdf
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 

Más de Scilab

Más de Scilab (20)

Statistical Analysis for Robust Design
Statistical Analysis for Robust DesignStatistical Analysis for Robust Design
Statistical Analysis for Robust Design
 
Electric motor optimization
Electric motor optimizationElectric motor optimization
Electric motor optimization
 
Asteroidlanding - Scilab conference 2019 Keynote
Asteroidlanding - Scilab conference 2019 KeynoteAsteroidlanding - Scilab conference 2019 Keynote
Asteroidlanding - Scilab conference 2019 Keynote
 
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
Faster Time to Market using Scilab/XCOS/X2C for motor control algorithm devel...
 
Scilab and Xcos for Very Low Earth Orbits satellites modelling
Scilab and Xcos for Very Low Earth Orbits satellites modellingScilab and Xcos for Very Low Earth Orbits satellites modelling
Scilab and Xcos for Very Low Earth Orbits satellites modelling
 
X2C -a tool for model-based control development and automated code generation...
X2C -a tool for model-based control development and automated code generation...X2C -a tool for model-based control development and automated code generation...
X2C -a tool for model-based control development and automated code generation...
 
A Real-Time Interface for Xcos – an illustrative demonstration using a batter...
A Real-Time Interface for Xcos – an illustrative demonstration using a batter...A Real-Time Interface for Xcos – an illustrative demonstration using a batter...
A Real-Time Interface for Xcos – an illustrative demonstration using a batter...
 
Aircraft Simulation Model and Flight Control Laws Design Using Scilab and XCos
Aircraft Simulation Model and Flight Control Laws Design Using Scilab and XCosAircraft Simulation Model and Flight Control Laws Design Using Scilab and XCos
Aircraft Simulation Model and Flight Control Laws Design Using Scilab and XCos
 
Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3
 
Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2
 
Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1Scilab for real dummies j.heikell - part 1
Scilab for real dummies j.heikell - part 1
 
Multiobjective optimization and Genetic algorithms in Scilab
Multiobjective optimization and Genetic algorithms in ScilabMultiobjective optimization and Genetic algorithms in Scilab
Multiobjective optimization and Genetic algorithms in Scilab
 
Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop
 
INRA @ Scilab Conference 2018
INRA @ Scilab Conference 2018INRA @ Scilab Conference 2018
INRA @ Scilab Conference 2018
 
Qualcomm @ Scilab Conference 2018
Qualcomm @ Scilab Conference 2018Qualcomm @ Scilab Conference 2018
Qualcomm @ Scilab Conference 2018
 
Sanofi @ Scilab Conference 2018
Sanofi @ Scilab Conference 2018Sanofi @ Scilab Conference 2018
Sanofi @ Scilab Conference 2018
 
University of Applied Science Esslingen @ Scilab Conference 2018
University of Applied Science Esslingen @ Scilab Conference 2018University of Applied Science Esslingen @ Scilab Conference 2018
University of Applied Science Esslingen @ Scilab Conference 2018
 
DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018DLR @ Scilab Conference 2018
DLR @ Scilab Conference 2018
 
Fraunhofer IIS @ Scilab Conference 2018
Fraunhofer IIS @ Scilab Conference 2018Fraunhofer IIS @ Scilab Conference 2018
Fraunhofer IIS @ Scilab Conference 2018
 
Arcelormittal @ Scilab Conference 2018
Arcelormittal @ Scilab Conference 2018Arcelormittal @ Scilab Conference 2018
Arcelormittal @ Scilab Conference 2018
 

Scilab/Xcos pour l'enseignement des sciences de l'ingénieur

  • 1. 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 MAXPID 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 −0.2 t y MAXPID Scilab / Xcos pour l’enseignement des sciences de l’ingénieur
  • 2.
  • 3. Réalisé avec le soutien d’Inria, ce livret a été co-écrit par Scilab Enterprises et Messieurs Alain Caignot, Lycée Stanislas (Paris), Vincent Crespel, Lycée Saint Louis (Paris), Marc Derumaux, Lycée Saint Louis (Paris), Cédric Lusseau, Lycée Hoche (Versailles), Gilles Moissard, Lycée Janson de Sailly (Paris), Pascal Serrier, Lycée Benjamin Franklin (Orléans) et David Violeau, Lycée Janson de Sailly (Paris). © 2013 Scilab Enterprises. Tous droits réservés.
  • 4. ScIlab-XcoS pour l’enSeIGnement deS ScIenceS de l’InGénIeur TABLE DES MATIèRES | 3 IntroductIon À PROPOS DE CE LIVRET 5 INSTALLATION DE SCILAB ET CONFIGURATIONS UTILES EN SCIENCES DE L’INGÉNIEUR 5 LISTE DE DIFFUSION ET D’INFORMATION 7 RESSOURCES COMPLÉMENTAIRES 7 1- Se famIlIarISer à XcoS L’ENVIRONNEMENT GÉNÉRAL 9 LA BARRE DE MENUS 11 LES PALETTES DISPONIBLES 14 EXEMPLE DE CONSTRUCTION D’UN DIAGRAMME SIMPLE 16 LES SUPERBLOCS 20 2 - modélISatIon multI phySIque acauSale (module SImm) COMPARAISON DES APPROCHES CAUSALE ET ACAUSALE 21 EXEMPLE 1 : RÉGULATION DE LA TEMPÉRATURE INTÉRIEURE D’UNE MAISON D’HABITATION 24 EXEMPLE 2 : PILOTAGE D’UN MOTEUR À COURANT CONTINU 31 EXEMPLE 3 : AXE ASSERVI D’ANGIOGRAPHIE BI-PLAN 42 3 - modélISatIon et analySe de SyStèmeS à tempS contInu (module cpGe) MISE EN PLACE D’UN DIAGRAMME DE MOTEUR À TEMPS CONTINU 53 MISE EN PLACE D’UN DIAGRAMME DE COMMANDE EN BOUCLE OUVERTE 55 PRÉSENTATION DE LA STRUCTURE DE L’ASSERVISSEMENT EN VITESSE 57 ASSERVISSEMENT DE VITESSE ET CORRECTION PROPORTIONNELLE 58 ASSERVISSEMENT DE VITESSE ET CORRECTION PROPORTIONNELLE ET INTÉGRALE 60 4 - acquISItIon et pIlotaGe de moteur (module arduIno) PRÉSENTATION DE LA CARTE ARDUINO UNO 65 UTILISATION DU MODULE ARDUINO 66
  • 5.
  • 6. InTRODUCTIOn InTRODUCTIOn | 5 IntroductIon à propoS de ce lIvret L’objectif de ce livret est de vous guider pas à pas dans la découverte des différentes fonctionnalités de base de l’outil Xcos inclus dans Scilab dans le cadre d’une utilisation en classe de sciences de l’ingénieur. Cette présentation propose plusieurs exemples d’applications qui permettent de découvrir les fonctionnalités utiles à l’enseignement et à l’apprentissage des sciences de l’ingénieur en section S-SI ou STIDD, au lycée et dans l'enseignement supérieur. Les exemples, diagrammes et illustrations sont réalisés avec Scilab 5.4.1 enrichi des modules CPGE, SIMM et Arduino. Vous pouvez donc reproduire tous les exemples présentés à partir de la version 5.4.1 de Scilab (les diagrammes sont mis à disposition depuis la barre de menus en cliquant sur ? / démonstrations / nom du module correspondant / exemples livret). Il est indispensable de disposer d’un compilateur C pour utiliser le module de modélisation multi-physique SIMM (se référer au sous-chapitre « Installation d’un compilateur C »). InStallatIon de ScIlab et confIGuratIonS utIleS en ScIenceS de l’InGénIeur Scilab est un logiciel open source de calcul numérique que chacun peut télécharger gratuitement. Disponible sous Windows, Linux et Mac OS X, Scilab est téléchargeable à l’adresse suivante : http://www.scilab.org Une fois Scilab téléchargé et installé, il faut ajouter les modules externes complémentaires, listés ci-dessous : Scilab Logiciel open source gratuit de calcul et de simulation numérique qui fournit un puissant environnement de développement pour les applications scienti€ques et l’ingénierie Xcos Outil de modélisation et de simulation de systèmes dynamiques hybrides Modules externes CPGE Modélisation de systèmes asservis, étude temporelle et fréquentielle SIMM Modélisation multi-physique acausale ARDUINO Acquisition et pilotage de systèmes via une carte Arduino À noter Lors de l’installation, Scilab va télécharger des fichiers qui seront stockés avec l’exécutable d’installation. S’ils sont détectés lors d’une nouvelle installation, ils ne seront pas téléchargés de nouveau, ce qui est utile pour une installation dans une salle sans accès Internet.
  • 7. InTRODUCTIOn 6 | Pour cela, il suffit : w D’être connecté à Internet w De lancer Scilab w De cliquer dans la barre de menus sur applications / Gestionnaire de modules – atomS puis d’aller chercher les différents modules dans les catégories indiquées ci-dessous : - CPGE (catégorie Éducation), - SIMM (catégorie Éducation), - Arduino (catégorie Instruments Control). Pour chaque module, cliquez sur le bouton Installer, quittez Scilab et relancez-le. Les modules sont alors installés et se chargeront automatiquement à chaque démarrage de Scilab. Pour supprimer un module ou le mettre à jour, il suffit 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 d’une connexion Internet, connectez-vous depuis un autre poste relié à Internet et téléchargez les différents modules (fichiers .bin.zip) à partir du site : http://atoms.scilab.org Tapez dans la console : --> atomsSetConfig("offLine","True") --> atomsInstall("chemin_de_telechargementnom_du_fichier_zip_telecharge") Par exemple sous Windows, si le module CPGE, sous la forme d’un fichier zip, a été téléchargé dans E:Telechargement, on tape la commande : --> atomsInstall("E:Telechargementnom_du_fichier.bin.zip") Installation d’un compilateur c w Sous Windows Installez depuis le Gestionnaire de modules – atomS, le module MinGW (catégorie Windows Tools). Suivez bien la procédure décrite dans la fenêtre d'installation du module. À noter Dans le cas d’un environnement Unix (Linux ou Mac OS), remplacer les anti-slashs () par des slashs (/) conformément aux habitudes d’écriture des chemins d’accès aux fichiers.
  • 8. InTRODUCTIOn | 7 w Sous linux Le compilateur GCC étant disponible dans ce système d’exploitation, il suffit de vérifier (via Synaptic, Yum ou tout autre système de gestion de paquets) qu’il est présent et à jour. w Sous mac Téléchargez XCode via l’App Store (Mac OS ≥ 10.7) ou via les CD fournis avec l’ordinateur (Mac OS 10.5 et 10.6). Pour les versions antérieures, voir le site d’Apple. Validez la possibilité d’utiliser le compilateur hors de l’environnement Xcode. Pour cela, après avoir lancé Xcode, allez dans « Préférences », puis « Downloads » et, dans l’onglet « Components », cochez la case « Check for and install updates automatically » et installez l’extension « Command Line Tools ». Il est bien entendu que si un compilateur C est déjà installé sur votre machine, il n’est pas nécessaire d’en installer un nouveau. Pour vérifier que Scilab a bien détecté votre compilateur, utilisez la commande qui retourne %T si un compilateur est installé : --> haveacompiler() lISte de dIffuSIon Pour faciliter l’échange entre les utilisateurs de Scilab du monde de l’éducation, une liste de diffusion leur est dédiée. Le principe est simple. Les personnes inscrites peuvent communiquer les unes avec les autres par courrier électronique (questions, réponses, partage de documents, retour d’expériences...). Pour s’inscrire, il suffit de compléter un formulaire disponible en ligne à l’adresse suivante : http://lists.scilab.org/mailman/listinfo/enseignement Vous recevrez une confirmation de votre inscription. Il vous suffira alors d’envoyer un message à l’adresse enseignement@lists.scilab.org pour que celui-ci soit redistribué automatiquement à tous les inscrits de la liste. reSSourceS complémentaIreS Le site Internet de Scilab dispose d’une rubrique consacrée à l’utilisation de Scilab pour l’enseignement (http://www.scilab.org/fr/community/education), avec des liens et des documents utiles, dont le présent livret au format PDF, un livret destiné à l’enseignement des mathématiques, des exercices et des corrigés d’épreuves pratiques, le tout pouvant être téléchargé et imprimé librement. Le site des professeurs ayant largement contribué à l’écriture de ce présent livret est également une source riche d’informations et d’exemples d’utilisation : http://www.demosciences.fr/
  • 9.
  • 10. SE FAMILIARISER À XCOS | 9 1 - Se famIlIarISer à XcoS La simulation numérique est aujourd’hui incontournable dans le processus de conception de systèmes. Simuler des phénomènes complexes (physiques, mécaniques, électroniques, etc.) permet d’en étudier les comportements et d’obtenir des résultats sans avoir besoin de recourir à l’expérience réelle. Largement utilisée dans le monde de l’industrie, les ingénieurs et les chercheurs de demain sont formés dès le secondaire aux concepts de modélisation et de simulation. Xcos est l’outil de Scilab dédié à la modélisation et à la simulation de systèmes dynamiques hybrides incluant à la fois des modèles continus et discrets. Il permet aussi de simuler des systèmes régis par des équations explicites (simulation causale) et implicites (simulation acausale). Xcos inclut un éditeur graphique permettant de représenter facilement des modèles sous forme de schémas fonctionnels (diagrammes) en connectant des blocs entre eux. Chaque bloc représente une fonction de base prédéfinie ou une fonction définie par l’utilisateur. Distribué librement et gratuitement avec Scilab, Xcos est l’outil idéal pour l’enseignement et l’apprentissage des sciences de l’ingénieur en classe comme à la maison. l’envIronnement Général Après avoir lancé Scilab, l’environnement par défaut est constitué d’une console, d’un navigateur de fichiers, d’un navigateur de variables et d’un historique des commandes.
  • 11. SE FAMILIARISER À XCOS 10 | Dans la console, après « -->», il suffit de saisir une commande et d’appuyer sur la touche entrée du clavier pour obtenir le résultat correspondant. Xcos peut être ouvert : w Depuis la barre d’outils, via l’icône , ou w Depuis la barre de menus, dans applications / Xcos, ou w Depuis la console, en tapant : -->xcos Xcos s’ouvre, par défaut, avec deux fenêtres : w Le navigateur de palettes qui met à disposition un ensemble de blocs prédéfinis, w Une fenêtre d’édition qui est la zone de construction d’un diagramme. Pour construire un diagramme, l’utilisateur sélectionne les blocs dans le navigateur de palettes et les positionne dans la fenêtre d’édition (cliquer / glisser / déposer). Il peut ensuite connecter les blocs entre eux en utilisant leurs différents ports (entrée / sortie / événement) pour pouvoir simuler le modèle créé.
  • 12. SE FAMILIARISER À XCOS | 11 la barre de menuS La barre de menus utile dans Xcos est celle de la fenêtre d’édition. menu fichier w nouveau diagramme (Ctrl+N sous Windows et Linux / Cmd+N sous Mac OS X) Ouvre une nouvelle fenêtre d’édition de Xcos. Le diagramme Xcos courant n’est pas affecté. w ouvrir (Ctrl+O sous Windows et Linux / Cmd+O sous Mac OS X) Charge un fichier Xcos au format .zcos ou .xcos contenant un diagramme ou une palette. w ouvrir le fichier dans le répertoire courant de Scilab Charge un fichier Xcos au format .zcos ou .xcos contenant un diagramme ou une palette depuis le répertoire de travail de Scilab. w ouvrir récents Propose les fichiers récemment 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 fenêtres auxiliaires telles que le navigateur de palettes sont également fermées à la fermeture du dernier diagramme. w enregistrer (Ctrl+S sous Windows et Linux / Cmd+S sous Mac OS X) Enregistre les modifications apportées à un diagramme. Si celui-ci n’a pas été précédemment enregistré dans un fichier, il sera proposé de l’enregistrer (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 schéma prend alors le nom du fichier (sans l’extension). 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 dernière(s) opération(s). w rétablir (Ctrl+Y sous Windows et Linux / Cmd+Y sous Mac OS X) Rétablit la ou les dernière(s) opération(s) annulée(s).
  • 13. SE FAMILIARISER À XCOS 12 | w couper (Ctrl+X sous Windows et Linux / Cmd+X sous Mac OS X) Supprime les objets sélectionnés d’un 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 sélectionnés 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) Efface les blocs ou les liens qui ont été sélectionnés. Quand un bloc est supprimé, tous les liens qui lui sont connectés sont eux aussi effacés. w tout sélectionner (Ctrl+A sous Windows et Linux / Cmd+A sous Mac OS X) Sélectionne tous les éléments du diagramme courant. w Inverser la sélection Inverse la sélection courante. w paramètres du bloc (Ctrl+B sous Windows et Linux / Cmd+B sous Mac OS X) Configure le bloc sélectionné (voir l’aide du bloc pour obtenir plus d’informations sur sa configuration). w Zone vers superbloc Convertit une sélection de blocs et de liens en un superbloc. menu affichage w Zoom avant (Ctrl+Pavé numérique Plus sous Windows et Linux / Cmd+Pavé numérique Plus sous Mac OS X) Agrandit la vue de 10 %. w Zoom arrière (Ctrl+Pavé numérique Moins sous Windows et Linux / Cmd+Pavé numérique Moins sous Mac OS X) Réduit la vue de 10 %. w ajuster le diagramme à la vue Ajuste la vue à la taille de la fenêtre. w normal 100 % Dimensionne la vue à sa taille par défaut. w navigateur de palettes Affiche / masque le navigateur de palettes. w navigateur de diagrammes Affiche une fenêtre qui liste les propriétés globales du diagramme et de tous les objets qu’il contient (blocs et liens). w aperçu Affiche un aperçu complet du diagramme courant. Avec la vue Aperçu, vous pouvez déplacer l’aire de travail affichée sur une partie du diagramme.
  • 14. SE FAMILIARISER À XCOS | 13 menu Simulation w configurer Modifie les paramètres de simulation. w trace d’exécution et de débogage Configure la simulation en mode débogage. w modifier le contexte Permet d’entrer des instructions Scilab pour définir des variables / fonctions utilisables dans le paramétrage des blocs d’un diagramme. w compiler Compile le diagramme. w Initialisation de modelica Permet d’initialiser les variables du sous-ensemble acausal du diagramme. w démarrer Lance la simulation. w arrêter 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) sélectionné(s) de 90° anti-horaire. w retourner (Ctrl+F sous Windows et Linux / Cmd+F sous Mac OS X) Inverse les positions des entrées et sorties d’événements placées au-dessus et au-dessous d’un bloc sélectionné. w miroir (Ctrl+M sous Windows et Linux / Cmd+M sous Mac OS X) Inverse les positions des entrées et sorties régulières placées à gauche et à droite d’un bloc sélectionné. w afficher / masquer l’ombre Affiche / masque l’ombre portée des blocs sélectionnés. w aligner les blocs En sélectionnant plusieurs blocs, il est possible de les aligner sur l’axe horizontal (gauche, droite et centre) ou sur l’axe vertical (haut, bas et centre). w couleur de bordure Change la couleur des bords des blocs sélectionnés. w couleur de fond Change la couleur de remplissage des blocs sélectionnés. w Style de liens Modifie le style d’un lien.
  • 15. SE FAMILIARISER À XCOS 14 | w fond du diagramme Change la couleur de fond du diagramme. w Grille Active / désactive la grille. Avec la grille, le positionnement des blocs et des liens est plus facile. menu outils w Génération de code Permet de générer le code de simulation associé à un superbloc sélectionné. menu ? w aide de Xcos Ouvre l’aide sur le fonctionnement de Xcos, des palettes, des blocs et des exemples. w aide du bloc Ouvre l’aide sur un bloc sélectionné. w démonstrations Xcos Ouvre des exemples de diagrammes et les simule. L’utilisateur peut alors, s’il le souhaite, modifier ces diagrammes et les sauvegarder pour une utilisation future. leS paletteS dISponIbleS w blocs couramment utilisés Blocs les plus utilisés. w Systèmes à temps continu Blocs continus (intégration, dérivée, PID). w fonctions discontinues Blocs dont les sorties sont des fonctions discontinues de leurs entrées (hystérésis). w Systèmes à temps discret Blocs de modélisation en temps discret (dérivée, échantillonné / bloqué). w Interpolation Blocs calculant des approximations de sortie à partir des entrées. w Gestion d’événements Blocs permettant de gérer les événements dans le diagramme (horloge, multiplication / division de fréquence). w opérations mathématiques Blocs de modélisation des fonctions mathématiques générales (cosinus, sinus, division, multiplication, etc.).
  • 16. SE FAMILIARISER À XCOS | 15 w matrice Blocs pour des opérations matricielles simples et complexes. w électrique Blocs représentant des composants électriques de base (source de tension, résistance, diode, condensateur, etc.). w entier Blocs permettant la manipulation de nombres entiers (opérateurs logiques, portes logiques). w port et sous-système Blocs de création de sous-systèmes. w détection de passage à zéro Blocs utilisés pour détecter les traversées de zéro pendant la simulation. Ces blocs utilisent les capacités des solveurs (ODE ou DAE) pour effectuer cette opération. 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 modéliser des systèmes implicites. w annotations Blocs utilisés pour les annotations. w Sinks Blocs de sortie utilisés pour l’affichage graphique (scope) et l’export de données (fichier ou Scilab). w Sources Blocs de sources de données (impulsion, rampe, sinusoïde) et de lecture de données à partir de fichiers ou de variables Scilab. w thermohydrauliques Blocs des composants thermohydrauliques de base (source de pression, tuyaux, vannes de régulation). w blocs de démonstration Blocs utilisés dans les diagrammes de démonstration. w fonctions définies par l’utilisateur Blocs utilisateurs permettant de modéliser un comportement (fonction de simulation C, Scilab ou Modelica).
  • 17. SE FAMILIARISER À XCOS 16 | eXemple de conStructIon d’un dIaGramme SImple nous allons vous expliquer comment construire de A à Z, un modèle de système à temps continu modélisé par une fonction de transfert d’ordre 1. Lancez Xcos. Comme vu précédemment, Xcos s’ouvre par défaut avec le navigateur de palettes et une fenêtre d’édition. Dans le navigateur de palettes, nous allons utiliser les blocs suivants : désignation représentation Sous-palette standard Échelon Sources / STEP_FUnCTIOn Fonction de transfert continue Systèmes à temps continu / CLR Horloge Sources / CLOCK_C Visualisation Sinks / CSCOPE Disposez les blocs dans la fenêtre d’édition. Pour relier les ports d’entrée et de sortie entre eux, cliquez sur la sortie (flèche noire) du bloc STEP-FUnCTIOn et en maintenant le bouton de la souris appuyé, reliez au port d’entrée du bloc CLR, un carré vert apparaît en surbrillance pour indiquer que le lien est correct, comme décrit dans les images ci-dessous :
  • 18. SE FAMILIARISER À XCOS | 17 Relâchez pour finaliser le lien. Complétez ensuite les connexions des blocs entre eux pour arriver à ce résultat : Il est possible d’améliorer l’aspect de votre diagramme en utilisant les options d’alignement des blocs (menu format / aligner les blocs) et de style de liens (menu format / Style de liens). À tout moment, les blocs peuvent être déplacés ou repositionnés en les sélectionnant et en maintenant le bouton de la souris appuyé pendant le déplacement. Relâchez le bloc à la position souhaitée. La simulation est lancée en cliquant sur l’icône (ou depuis le menu Simulation / démarrer) et peut être stoppée en cliquant sur (ou depuis le menu Simulation / arrêter). Une nouvelle fenêtre (scope) apparaît, montrant l’évolution de la simulation. En bas de la fenêtre d’édition du diagramme, une mention indique que la simulation est en cours :
  • 19. SE FAMILIARISER À XCOS 18 | Les résultats de cette simulation n’étant pas exploitables, nous choisissons de modifier les paramètres du bloc CLR et de la simulation. Un « contexte » contenant du script Scilab permet de réutiliser facilement des fonctions et des variables. nous allons utiliser ce contexte pour fixer des valeurs de référence lors de la simulation du diagramme. Cliquez sur Simulation / modifier le contexte dans la barre de menus et déclarez les variables suivantes : w K = 1 w Tau = 1 Vous pouvez maintenant utiliser ces variables pour le paramétrage des blocs du diagramme. Double-cliquez sur le bloc CLR, une boîte de dialogue s’ouvre avec les paramètres par défaut du bloc. Modifiez ces paramètres : w numérateur : K w Dénominateur : 1+Tau*s La nouvelle fonction de transfert est affichée sur le bloc :
  • 20. SE FAMILIARISER À XCOS | 19 nous allons maintenant configurer la simulation et les blocs pour visualiser la réponse temporelle du système à une impulsion. Pour cela, nous allons limiter le temps de simulation à 5 secondes (menu Simulation / configurer). Double-cliquez sur le bloc CSCOPE pour configurer l’affichage des valeurs comprises entre 0 et 1.2, puis la période de rafraîchissement du scope à 5 secondes. Pour cela, changez les paramètres suivants : w Ymin : 0 w Ymax : 1.2 w Refresh period : 5 Relancez la simulation et visualisez le résultat :
  • 21. SE FAMILIARISER À XCOS 20 | leS SuperblocS Pour faciliter la compréhension de certains diagrammes, il est souvent utile de recourir aux superblocs ou blocs composites. Un superbloc contient une partie d’un diagramme ainsi que des blocs représentant ses entrées et sorties. Il peut être manipulé comme un seul et unique bloc dans le diagramme parent. Après avoir réalisé un diagramme et sélectionné la partie du diagramme (ou sous-diagramme) que l’on souhaite réunir en un bloc, la création d’un superbloc s’effectue à partir du menu édition / Zone vers Superbloc. La sélection est alors devenue un bloc dont on peut afficher le contenu en double-cliquant dessus. Une nouvelle fenêtre d’édition s’ouvre alors avec la sélection de blocs initiale. Il est également possible de « masquer » le superbloc créé pour désactiver l’accès au sous-diagramme. Pour cela, on effectue un clic-droit sur le superbloc puis masque du superbloc / créer. On peut également rendre accessible certains paramètres de configuration du sous-diagramme dans une seule interface de configuration par un clic-droit sur le superbloc, puis masque du superbloc / personnaliser. Il suffit ensuite d’ajouter les paramètres que l’on souhaite rendre accessibles.
  • 22. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 2 - modélISatIon multI-phySIque acauSale (module SImm) La modélisation dite « acausale » est une forme récente de modélisation des systèmes qui permet de décrire les équations modélisant les phénomènes physiques sans anticiper l’orientation des liens entre les composants ou phénomènes. Il n’y a notamment pas de choix particulier de variables échangées entre composants (force ou vitesse par exemple), ni de notion d’entrée / sortie. Cette particularité conduit à une très grande flexibilité des modèles de composants développés, une réutilisation des modèles sur de nouveaux projets et la possibilité de construire des bibliothèques de composants. Ces avantages en font un outil prisé en entreprise. D’un point de vue pédagogique, le modèle acausal est très proche de l’architecture matérielle et permet de simuler le comportement d’un système complexe sans avoir à écrire la moindre équation. L’objectif de cette première partie est de montrer les possibilités 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 représenté par le schéma électrique suivant : | 21 , , , et R C R C La représentation acausale ne privilégie aucune grandeur physique particulière et est basée sur la notion de composants. Ainsi, dans Scilab / Xcos, le diagramme correspondant au circuit RLC est le suivant :
  • 23. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 22 | Il n’est pas nécessaire d’écrire les équations du système car chaque bloc les contient. Il suffit simplement de configurer les paramètres 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 l’intensité. Cette modélisation permet d’exprimer des relations entre composants sans connaître la grandeur que l’on cherche à calculer. Pour extraire cette grandeur, on utilisera des blocs de type capteur et ainsi entrer dans le monde causal. Dans une représentation purement causale, les liens représentent une grandeur physique particulière et le diagramme est alors une traduction des équations plutôt qu’une représentation des composants. Lors de la modélisation, la grandeur de sortie est donc exprimée dans une relation directe contenant des blocs « intégrale » pour chacune des équations contenant une dérivée. Cela donne : On peut alors modéliser les équations par un diagramme de ce type : Celui-ci est donc plus compliqué que le diagramme précédent. On a aussi perdu la signification physique. L’utilisation de la transformée de Laplace permet, entre autre, de simplifier la représentation causale par ce diagramme (en supprimant, par exemple, la boucle avec R) :
  • 24. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE Chacune des formes des connecteurs correspond à une grandeur physique. Une validation des liens entre connecteurs est réalisée lors de la simulation afin de garantir une modélisation cohérente. 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 l’électrique et le thermique sans conversion. Ce type de connexion ne générera pas d’erreur lors de l’édition du diagramme mais une erreur de compilation sera retournée lors de la simulation. Afin d’éviter les erreurs, veillez à connecter des ports de même domaine fonctionnel : | 23 w Triangle bleu : signal de données (sans dimension). w Carré bleu : électrique. w Carré rouge : thermique. w Carré vert : mécanique 1D en translation. w Rond gris : mécanique 1D en rotation. w Carré gris : mécanique 2D plane. À noter Certains connecteurs sont vides, d’autres pleins mais il n’y a pas de différences entre eux. Certains composants sont cependant orientés, on repèrera leur polarité en fonction des connecteurs. On rappelle que dans une représentation acausale, il n’y a pas de notion d’entrée / sortie.
  • 25. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 24 | eXemple 1 : réGulatIon de la température IntérIeure d’une maISon d’habItatIon On se propose d’étudier le problème de la régulation de température d’une maison à une température fixe de 20 °C. La température des pièces évolue car la température extérieure passe de 25 °C le jour à 5 °C la nuit et l’isolation thermique n’est pas parfaite. Les phénomènes physiques sont, en première approximation, assez simples à modéliser : w L’intérieur de la maison est modélisé par une capacité thermique (ou inertie thermique) qui caractérise la capacité du bâtiment à absorber ou à restituer la chaleur, w L’isolant thermique de la maison agit comme un conducteur thermique entre l’intérieur et l’extérieur modélisant ainsi les échanges de chaleur, w Un radiateur chauffe l’intérieur de la maison quand cela est nécessaire et est modélisé par une résistance chauffante. La commande « Tout-Ou-Rien » (TOR) s’appuie sur la mesure de la température intérieure et la consigne de température de la pièce pour allumer le radiateur quand la température mesurée passe 3 degrés sous la consigne. L’asservissement « Tout-Ou-Rien » est représenté par le schéma fonctionnel suivant : Chaîne d’action Consigne de température Perturbations Relais Radiateur Pièce Sonde Température de la pièce
  • 26. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE comportements physiques élémentaires La capacité thermique (ou capacité calorifique) d’un corps est une grandeur permettant de quantifier la possibilité qu’a un corps d’absorber ou de restituer de l’énergie par échanges thermiques au cours d’une transformation pendant laquelle sa température varie. Lancez le logiciel Scilab. Scilab charge automatiquement les modules installés via ATOMS. Lancez ensuite Xcos. Tous les blocs nécessaires à la simulation de processus se situent dans le navigateur de palettes. Le module SIMM a ajouté un certain nombre de sous-palettes contenant différents blocs. Double-cliquez sur SIMM pour faire apparaître la liste des sous-palettes. Dans SIMM, les composants des chaînes d’énergie et d’information ont été regroupés (sous-palette Composants). On retrouve également une organisation des blocs par domaines (sous-palettes Signaux, Mécanique, Électrique, Thermique). modélisation du radiateur et de la maison On va modéliser le chauffage de la maison par le diagramme suivant : | 25 À noter La capacité thermique est l’énergie qu’il faut apporter à un corps pour augmenter sa température d’un Kelvin. Elle s’exprime en Joule par Kelvin (J.K-1). C’est une grandeur extensive. Plus la quantité de matière est importante plus la capacité thermique est grande. La conduction thermique est un transfert thermique spontané d’une région de température élevée vers une région de température plus basse, et est décrite par la loi dite de Fourier où F est le flux de chaleur. Démonstrations / SIMM / Exemples Livret / Exemple 1
  • 27. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 26 | Positionnez les blocs suivants puis double-cliquez sur chacun d’eux pour configurer les paramètres indiqués lorsque cela est précisé : désignation représentation Sous-palette SImm paramétrage Résistance chauffante Électrique / Composant basique / Passif / MEAB_HeatingResistor 50 Ω à la température de référence Température de référence de 20 °C = 293.15 K Coefficient de température égal à 0 Interrupteur commandé Électrique / Composant basique / Passif / MEAI_IdealClosingSwitch Source de tension Électrique / Sources / CEAS_PredefVoltage Constante 220 V Masse Électrique / Sources / MEAB_Ground Capacité thermique Thermique / Basique / MTH_HeatCapacitor 500 000 J.K-1 À noter 5.105 s’écrit 5e5 dans Scilab. -4.10-3 s’écrit -4e-3 dans Scilab. Pour changer l’orientation d’un bloc, sélectionnez le puis faire un clic droit et sélectionnez 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 chauffage, on impose en entrée de l’interrupteur commandé, un signal créneau passant de 0 à 1 sur une période de 3 heures (3*3600 secondes car l’unité temporelle est la seconde) et de rapport cyclique 20 %. Ceci signifie que toutes les 3 heures, on chauffe durant 36 minutes. On utilise le bloc MBS_Pulse de la sous-palette Signaux / Sources. Il faut également spécifier sur quelle durée de simulation le comportement doit être évalué. On choisit une durée de 4 jours. La durée de simulation est spécifiée par le bloc IREP_TEMP (sous-palette Utilitaires / Analyses) où l’on configurera 3600*24*4. On choisit de paramétrer le bloc de manière à ce que 20 000 points de visualisation soient calculés et que les courbes correspondantes soient tracées à la fin du calcul. Les quantités thermiques, le flux et la température circulent sur le lien reliant la résistance chauffante à la capacité. Pour afficher la température, il faut extraire de ce lien la grandeur température, en utilisant le bloc MTHC_TemperatureSensor de la sous-palette Thermique / Mesure.
  • 28. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE La sortie signal (triangle bleu) peut ensuite être visualisée ou utilisée dans le diagramme. Pour visualiser des signaux provenant d’une source ou d’un capteur, on utilise le bloc ISCOPE de la sous-palette Utilitaires / Visualisation pour lequel le nombre d’entrées à visualiser sur un même graphique est spécifié (une légende peut être donnée pour chaque courbe dans le deuxième menu). devient si l’on configure plus d’une entrée (ici 3). Ajoutez donc un bloc ISCOPE à deux entrées pour visualiser le signal créneau et la température de la maison. Indiquez comme nom de courbes « Signal de commande » représentant la consigne et « Température de la pièce ». Le tableau ci-dessous résume l’ensemble des blocs à positionner et les paramètres à configurer : | 27 désignation représentation Sous-palette SImm paramétrage Signal créneau Signaux / Sources / MBS_Pulse Lancez la simulation. Les résultats de celle-ci s’affichent sur une nouvelle fenêtre. Les courbes montrent notamment qu’un tel modèle, ne prenant pas en compte les pertes au niveau des murs, n’est pas réaliste. Amplitude : 1 Rapport cyclique : 20 % Période : 3*3600 s Étude temporelle Utilitiaires / Analyses / IREP_TEMP Durée : 3600*24*4 s nombre de points (pour la visualisation et le calcul) : 20 000 Afficher les courbes pendant la simulation : non Capteur de température Thermique / Mesure / MTHC_TemperatureSensor Visualisation Utilitaires / Visualisation / ISCOPE nombre de courbes : 2 150 Signal de commande 0 50 000 100 000 150 000 200 000 250 000 300 000 350 000 160 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 Température de la pièce
  • 29. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 28 | amélioration du modèle prise en compte des pertes On choisit de prendre en compte les pertes en modélisant le mur par un conducteur thermique et en représentant l'évolution de la température extérieure au cours d'une journée par une sinusoïde. Démonstrations / SIMM / Exemples Livret / Exemple 2 Pour cela, on insère les composants suivants : désignation représentation Sous-palette SImm paramétrage Conductivité thermique Thermique / Basique / MTH_ThermalConductor 20 W.K-1 Source de température Thermique / Sources / MTHC_PrescribedTemperature Signal sinusoïdale Signaux / Sources / MBS_Sine Amplitude : 10 Décalage : 15 Fréquence : 1/24h =1/(3600*24) Hz Le signal sinusoïdal modélise la variation de température extérieure de 5 °C à 25 °C, ce qui justifie les paramètres retenus. Pour imposer une température comme pour la visualiser, il est nécessaire de spécifier une source de température et d’indiquer sa variation en donnant le signal correspondant. Modifiez le bloc ISCOPE pour ajouter une troisième entrée et visualiser l’évolution de la température extérieure.
  • 30. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE | 29 Lancez une nouvelle simulation et observez que la commande par impulsion n’est pas optimale. 35 30 25 20 mise en place de la régulation Pour assurer la régulation de température, il suffit de comparer le signal de température de la pièce à une température de consigne. L’écart ainsi formé est utilisé comme entrée d’un relais qui ferme ou non l’interrupteur. La consigne de température est un bloc signal constant MBS_Constant (sous-palette Signaux / Sources). Une valeur de 20 °C est spécifiée. Pour calculer l’écart, on utilise un bloc sommateur MBM_Add (sous-palette Signaux / Math). Pour changer les signes du sommateur, double-cliquez sur le bloc et renseignez les valeurs -1 et 1. La commande du relais CBn_Hysteresys (sous-palette Signaux / non-linéarités) passe à 1 (qui correspond à la fermeture) lorsque l’écart est supérieur à 3 °C. Elle repasse à 0 lorsque l’écart est nul. Configurez le bloc comme indiqué ci-contre. Le diagramme global est alors le suivant : 0 50 000 100 000 150 000 200 000 250 000 300 000 350 000 15 10 5 0 Signal de commande Température de la pièce Température extérieure Démonstrations / SIMM / Exemples Livret / Exemple 3
  • 31. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 30 | Relancez la simulation pour obtenir la courbe ci-dessous : 24 Signal de commande Température de la pièce Température extérieure 0 50 000 100 000 150 000 200 000 250 000 300 000 350 000 22 20 18 16 14 12 10 8 6 4 2 0 On obtient des résultats de simulation cohérents. Lorsque la température de la maison descend à 17 °C, le système de chauffage se met en route et la température remonte à 20 °C quelle que soit la température extérieure. On constate également que le système ne peut pas refroidir la maison lorsque la température extérieure dépasse la consigne. À travers cette activité, nous avons pu très facilement voir l’intérêt d’une régulation de température en prenant en compte un modèle très simple d’une maison chauffée par un radiateur. La prise en main du module SIMM est immédiate et ne nécessite que de connaître quelques principes physiques élémentaires. Cependant, il est nécessaire de garder en mémoire que normalement la tension du courant domestique est sinusoïdale (220 V, 50 Hz) mais évidement, si le simulateur doit représenter correctement le signal sinusoïdal dans le circuit électrique, le pas de temps devra être très petit (de l’ordre de 1 / 500 s) alors que le phénomène thermique est étudié sur plusieurs jours... C’est pourquoi, on utilise une source continue équivalente dans le modèle. Comme nous le verrons dans l’activité suivante, il faut éviter d’une façon générale d’imposer dans un même modèle des phénomènes dont les constantes de temps sont très éloignées. Cette contrainte conduit à des compromis sur le niveau de détail des modèles choisis et nécessite du recul quant aux phénomènes physiques étudiés.
  • 32. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE eXemple 2 : pIlotaGe d’un moteur à courant contInu La plupart des systèmes développés par les élèves en projet nécessite le pilotage d’un moteur à courant continu. Il est indispensable de modéliser ces moteurs à courant continu pour être capable, par exemple, de réaliser un asservissement ou bien d’évaluer les performances du système. Le moteur à courant continu est modélisé, dans son régime linéaire, par les cinq équations suivantes : | 31 , , , et w L’équation 1 correspond au modèle électrique du moteur qui est modélisé par une résistance R en série avec une inductance L et une Moment d’inertie J force électromotrice (fem) E. w Les équations 2 et 3 correspondent aux équations de couplage électromécanique. Le courant circulant dans la bobine génère des forces de Laplace qui se traduisent par un couple moteur Cm. w L’équation 3 traduit le lien entre la vitesse angulaire et la force électromotrice. w L’équation 4 décrit le couple dû au frottement visqueux. w L’équation 5 correspond à l’équation de dynamique obtenue en isolant l’arbre moteur et en lui appliquant le théorème de l’énergie cinétique sachant qu’il est soumis à : - un couple moteur Cm, - un couple Cpert (frottements secs par exemple) - un couple Cf dû au frottement visqueux. Cm Cpert Cf L’objectif de cette activité est de montrer comment modéliser le moteur et le piloter. modélisation mécanique Le schéma cinématique du moteur soumis à des actions mécaniques peut directement être traduit dans Xcos. Pour commencer, on considère le rotor en liaison pivot soumis à un couple Cm et un couple Cpert. Un solide en rotation autour d’un axe fixe est caractérisé mécaniquement par son moment d’inertie autour de l’axe de rotation (difficulté à le mettre en mouvement).
  • 33. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 32 | Positionnez les blocs suivants comme indiqué sur le diagramme ci-après : désignation représentation Sous-palette SImm paramétrage Solide en rotation autour d’un axe fixe Mécanique / Rotation 1D / Basique / MMR_Inertia 0.00002 kg.m2 Couple extérieur (entre l’axe et le bâti) Mécanique / Rotation 1D / Sources / CMRS_Torque0 Étude temporelle Utilitaires / Analyses / IREP_TEMP Durée : 1 s nombre de points : 200 On constate que ce diagramme correspond exactement au schéma cinématique. Sur un tel diagramme, on ne spécifie pas les évolutions des grandeurs. De la même manière, 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 modèle mécanique 1D de type rotation, ces grandeurs sont l’accélération, la vitesse et la position angulaires ainsi que le couple. Ajoutez le bloc de mesure CMRS_GenSensor (sous-palette Mécanique / 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 entrée. On obtient le diagramme suivant : Démonstrations / SIMM / Exemples Livret / Exemple 4
  • 34. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE | 33 Lancez la simulation et observez une droite de pente 5 000 rad.s-1 représentant la vitesse. Ce résultat permet d’attester le modèle dynamique utilisé et illustre bien la notion d’inertie. Cependant, ce modèle ne prend pas en compte la limitation de l’apport en énergie, ni les frottements. Un couple de frottement visqueux existe entre le bâti et le rotor. Pour le modéliser, il suffit d’ajouter sur le lien représentant l’axe : Vitesse angulaire (rad/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 5 000 4 500 4 000 3 500 3 000 2 500 2 000 1 500 1 000 500 0 w Un bloc amortissement linéaire / visqueux MMR_Damper (sous-palette Mécanique / Rotation 1D / Basique avec une valeur de 0.0001 n.m.s.rad-1), w Le bâti MMR_Fixed (sous-palette Mécanique / Rotation 1D / Basique). Démonstrations / SIMM / Exemples Livret / Exemple 5 La simulation sur 1 seconde fournit une réponse d’un système d’ordre 1 tendant vers la valeur (Cm + Cpert) / viscosité avec une constante de temps égale à J / viscosité. Il ne faut pas oublier de mettre un bâti (référentiel galiléen d’étude) dans une étude mécanique. Il est implicitement spécifié lorsque l’on impose les couples. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 000 900 800 700 600 500 400 300 200 100 0 Vitesse angulaire (rad/s) À noter Le comportement en translation rectiligne (Translation 1D) fonctionne exactement sur le même principe.
  • 35. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 34 | modélisation électrique et couplage Positionnez à partir de la sous-palette Électrique, les blocs suivants et reliez-les entre eux : désignation représentation Sous-palette SImm paramétrage Source de tension Électrique / Sources / CEAS_PredefVoltage Constante 12 V Résistance Électrique / Composant basique / Passif / MEAB_Resistor 1 Ω 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 bâti (ce qui veut dire que le stator est fixe) Masse Électrique / Sources / MEAB_Ground On constate que le bloc CEAB_EMFGEn propose de supposer que le bâti 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 négative. Le diagramme électrique est à nouveau comparable au circuit électrique. Il ne faut pas oublier de mettre une masse dans le circuit. Démonstrations / SIMM / Exemples Livret / Exemple 6
  • 36. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE | 35 En enlevant le couple résistant (Cpert), on obtient la réponse suivante : Vitesse angulaire (rad/s) 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 600 550 500 450 400 350 300 250 200 150 100 50 0 Ajoutez un ampèremètre représenté par le bloc MEAS_CurrentSensor (sous-palette Électrique / Mesure) et placez-le correctement dans le diagramme pour mesurer l’intensité dans le circuit (en série avec l’inductance par exemple). De la même manière que les blocs sources, les bornes positive et négative sont définies par l’aspect plein ou vide des connecteurs. Positionnez également un capteur de couple MMRS_TorqueSensor (sous-palette Mécanique / Rotation 1D / Mesure) pour mesurer le couple moteur, par analogie avec l’intensité (cf. équation), en série entre la force électromotrice et l’inertie. Démonstrations / SIMM / Exemples Livret / Exemple 7
  • 37. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 36 | On obtient les courbes suivantes : Vitesse angulaire (rad/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 600 400 200 0 Intensité (A) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 10 5 0 Couple moteur (Nm) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.05 0 On constate effectivement que le couple moteur est proportionnel à l’intensité. On peut également étudier l’influence de l’inductance sur la vitesse angulaire en modifiant sa valeur dans le bloc correspondant. modélisation du pilotage par hacheur Le hacheur est le préactionneur le plus courant pour l’asservissement 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 régulation, il peut aussi doser le niveau d’intensité dans le moteur. Le pilotage d’un hacheur se fait par l’intermédiaire d’un PWM (« Pulse Width Modulation » ou MLI, « Modulation de Largeur d’Impulsions »). Le principe est simple. Un signal créneau de 0 (état logique bas) à 5 V (état logique haut) dont le rapport cyclique, variable, est généré. Comme la fréquence de ce signal est élevée (environ 500 Hz fréquemment), si le système connecté en sortie du PWM est « lent », il ne voit à ses bornes que la tension moyenne du signal PWM (il fonctionne ainsi comme un filtre). Le hacheur fonctionne selon le même principe que le signal PWM. Il hache la tension issue d’une alimentation externe grâce à des transistors. La tension moyenne dépend alors du rapport cyclique. C’est le signal PWM qui est utilisé pour commander ces transistors.
  • 38. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE | 37 Signal pWm Ouvrez une nouvelle fenêtre d’édition Xcos. Positionnez les blocs indiqués pour réaliser le diagramme suivant : Lancez une simulation et observez le signal. Remplacez l’échelon par un bloc MBS_Ramp (sous-palette Signaux / Sources) de pente 255 / 0.1. Observez l’évolution du signal créneau en sortie du PWM. 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 commande Démonstrations / SIMM / Exemples Livret / Exemple 9 désignation représentation Sous-palette SImm paramétrage Echelon Signaux / Sources / MBS_Step Amplitude : 125 (le reste à 0) PWM Signaux / Sources / CCP_PWM 8 bits Fréquence : 500 Hz Temps de départ : 0 s Etude temporelle Utilitaires / Analyse / IREP_TEMP Durée 0.1s 1000 points Grille : oui Afficher les courbes pendant la simulation : oui Affichage du signal Utilitaires / Visualisation / ISCOPE
  • 39. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 38 | hacheur 1 quadrant Le hacheur le plus simple est le hacheur série 1 quadrant. Il est constitué d’un transistor commandé (interrupteur commandé) et d’une diode. H uL L uc um E D i R c i v H iD uH Reprenez le diagramme du moteur et ajoutez un interrupteur normalement fermé MEAI_IdealClosingSwitch et une diode CEAI_IdealDiode (sous-palette Électrique / Composant basique / Passif ). Insérez le pilotage par PWM donné précédemment en utilisant un échelon d’amplitude 120. Démonstrations / SIMM / Exemples Livret / Exemple 10
  • 40. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE Lancez une simulation sur une durée de 0.2 s (pour 10 000 points). On obtient par simulation ce que l’on peut observer à l’aide d’un oscilloscope et d’une pince ampèremétrique : une intensité hachée dont l’enveloppe correspond à l’intensité obtenue pour une tension continue de 120 / 256*12 = 5.625 V. La vitesse est par contre naturellement « filtrée ». La tension vue par le moteur est bien un signal créneau de rapport cyclique 120 / 256 = 46.9 %. Les différents exemples proposés sont relativement simples mais permettent d’illustrer très facilement le comportement électrique et mécanique d’un moteur à courant continu piloté. 300 200 100 8 Intensité (A) 6 4 2 10 5 On remarque à nouveau qu’il est important de choisir correctement le nombre de points utilisés pour le calcul pour pouvoir observer les phénomènes souhaités. Par exemple, le PWM étant cadencé à 500 Hz, il est nécessaire de prendre au moins 5 000 points pour 1 seconde pour observer son allure. Et même ainsi, en choisissant 1000 points pour 0.2 s, le compilateur ne réussit pas à mener la simulation à bien (l’algorithme de calcul ne converge pas, il faut donc augmenter le nombre de points d’observation de façon conséquente). Comme pour l’étude thermique, il est déraisonnable de modéliser un hacheur pour un moteur ayant une constante de temps bien supérieure à la période du hacheur ou PWM. nous verrons dans la prochaine activité qu’il est possible d’utiliser des blocs prédéfinis de certains composants standards (moteurs, hacheurs...) de manière à éviter des diagrammes trop denses. | 39 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0 Vitesse angulaire (rad/s) 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0 Tension (V)
  • 41. Découvrez Inria Aujourd’hui, les technologies numériques rendent les transports plus autonomes et plus sûrs, les maisons plus intelligentes, l’agriculture plus respectueuse de l’environnement... Elles sont à l’origine de nouveaux services, transforment en profondeur nos modes de vie et enrichissent notre quotidien. Pour se développer, notre société compte toujours plus sur ces technologies numériques qui restent souvent invisibles. Elles sont issues de travaux de recherche longs et complexes associant sciences informatiques et mathématiques. Créé en 1967, Inria est le seul institut public de recherche entièrement dédié aux sciences du numérique. L’institut réunit aujourd’hui 3500 chercheurs, inventeurs du monde numérique. Inria accueille chaque année : 600 stagiaires de fi n d’étude, plus de 1200 doctorants dans ses équipes de recherche Ces chercheurs inventent les technologies numériques de demain. Issus des plus grandes universités internationales, ils croisent avec créativité recherche fondamentale et recherche appliquée. Ils se consacrent à des problèmes concrets, collaborent avec les acteurs de la recherche publique et privée en France et à l’étranger, et transfèrent le fruit de leurs travaux vers les entreprises innovantes. Et plus d’informations sur : www.inria.fr Twitter twitter.com/inria YouTube youtube.com/inriachannel
  • 42. Quelques illustrations de nos recherches Clusters de calcul pour l’expérimentation et Télescope (équipes Cartes, Madynes) Chercheuse (équipe Flowers) Manipulation moléculaire via écran multi-touch (équipe Mint) Extraction des données cryptographiques d’une carte bancaire
  • 43. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 42 | eXemple 3 : aXe aSServI d’anGIoGraphIe bI-plan L’étude sera faite sur le déplacement en translation de l’armature suspendue au plafond d’une chaîne image d’un angiographe bi-plan (voir figure ci-contre) permettant la création d’images tridimensionnelles de la structure veineuse d’un patient afin de prévenir les risques de rupture d’anévrisme. La prise de vue est réalisée en positionnant de manière très précise une tête et un récepteur à rayons X longitudinalement et angulairement, un logiciel dédié se chargeant de la création d’une image colorisée à destination du médecin. L’ensemble est constitué d’un chariot supportant l’armature (S2) et mis en mouvement par un moteur à courant continu suivi d’un réducteur roue-vis qui entraîne les roues du chariot. Compte-tenu de la masse de l’armature (S2) et de son encombrement, le mécanisme possède deux degrés de liberté : la position du chariot y(t) et la position angulaire de l’armature (S2) α(t) qui apparaît suite à la déformation de l’armature lors du déplacement. On appelle LP (Lateral Plan) l’ensemble constitué de la chaîne image latérale et de son armature suspendue au plafond. Le mouvement de translation est commandé par le médecin à l’aide d’un joystick. La position voulue étant atteinte, le médecin lâche le joystick et déclenche la prise de vue à l’aide d’une pédale de commande. Le médecin exige que la prise de vue puisse commencer dès la demande d’arrêt du mouvement de translation. Le tableau ci-dessous propose un extrait du cahier des charges. fonction de service critère niveau FS1 Déplacer le LP en translation Être rapide sans mettre en dan ger le personnel médical Vitesse maximale 100 mm.s-1 FS2 Pouvoir commencer la prise de vue dès l’arrêt du mouvement de translation 1. Arrêter le mouvement en temps masqué (le temps masqué est lié au temps de réaction du médecin) 2. Limiter l’amplitude et la durée des oscillations du LP au niveau de l’iso-centre 1. Temps masqué : 0.3 s 2. Premières oscillations < à 1 mm d’un extremum à l’autre < à 0.2 mm d’un extremum à l’autre après 1 s FS3 Assurer la sécurité du patient Limiter la distance d’arrêt du LP, pour ne pas blesser le patient Distance d’arrêt réglementée infé rieure à 10 mm
  • 44. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE | 43 Schéma cinématique A z x y S1 w O S0 S0 : Plafond + rails de guidage + courroie S1 : Chariot S2 : Armature en forme de C + détecteur + tube S3 : Roue + poulie motrice S4 : Rotor moteur + vis S4 S2 S3 iso-centre : lc données géométriques, cinétiques et grandeurs caractéristiques du moteur poulie motrice dispositif roue et vis sans fin Rayon de la poulie motrice S3 : Rp = 0.0318 m Rapport de réduction : r = 1 / 50 chariot (S1) armature (S2) : armature en forme de c Masse : m1= 270 kg AIC = d = 1.4 m Centre d’inertie 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 Ω (résistance) 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 d’inertie axe moteur + vis) f = 10-5 n.m.s (frottement visqueux)
  • 45. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 44 | modélisation du système On s’intéresse dans un premier temps au déplacement de l’ensemble en supposant l’armature fixe par rapport au chariot. modélisation du moteur nous avons vu dans l’activité précédente qu’il était possible de modéliser de manière fine un moteur à courant continu en utilisant des composants élémentaires. Il est cependant possible de considérer globalement le moteur comme un élément d’une chaîne fonctionnelle et de n’entrer que les caractéristiques de celui-ci sans s’occuper de la manière dont il se comporte. Insérez un bloc MEMC_DCmotor (sous-palette Composants / Actionneurs) dans une fenêtre d’édition. Double-cliquez sur le bloc et configurez les valeurs des constantes du moteur (voir tableau précédent). Ajoutez un bloc CEAS_PredefVoltage (sous-palette Électrique / Sources) et connectez le moteur à cette source d’alimentation. n’oubliez pas d’ajouter une masse MEAB_Ground (sous-palette Électrique / Sources) pour définir le potentiel de référence. Ajoutez en sortie un bloc CMRS_GenSensor (sous-palette Mécanique / Rotation 1D / Mesure), choisissez de visualiser la vitesse de rotation de l’arbre moteur et ajoutez un bloc ISCOPE (sous-palette Utilitaires / Visualisation). nous allons faire différentes études temporelles (bloc IREP_TEMP de la sous-palette Utilitaires / Analyses). Pour commencer, double-cliquez sur le bloc d’alimentation et choisissez un échelon d’amplitude 80 V (tension maximale du moteur). Lancez une simulation sur 0.5 s (en prenant 1000 points) et observez l’allure de la réponse. 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 350 300 250 200 150 100 50 0 vitesse Démonstrations / SIMM / Exemples Livret / Exemple 11
  • 46. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 350 300 250 200 150 100 50 Une telle réponse correspond à la réponse d’un système du premier ordre de gain et constante de temps donnée. L'avantage de ce modèle est qu'il ne nécessite que deux paramètres alors que le modèle physique en demande beaucoup plus. On peut alors chercher les paramètres qui s’approchent au mieux du modèle du moteur puis les tester avec un bloc MBC_FirstOrder (sous-palette Signaux / Continu) et une source échelon MBS_Step (sous-palette Signaux / Sources) d’amplitude 80. En réalité, la tension délivrée au moteur ne peut pas être constante car la commande est gérée par un joystick. C’est pourquoi, une commande en trapèze est plus représentative de la commande réelle obtenue lorsque le médecin lâche le joystick. Elle est modélisable par le signal ci-contre. Pour faire varier la tension d’alimentation du moteur, il est nécessaire d’utiliser un hacheur. Comme pour le moteur, des blocs prédéfinis sont disponibles pour les hacheurs et évitent ainsi d’avoir à détailler leur comportement. Ces composants se situent dans la sous-palette Composants / PréActionneurs. 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 fréquence de 500 Hz. Réalisez le diagramme indiqué sur la page suivante et paramétrez le signal de consigne du PWM pour obtenir une tension de commande du moteur comme indiqué sur la figure précédente (on prendra T = 2 s et 20 000 points de simulation). Ajoutez un bloc pour visualiser le signal du PWM. | 45 À noter Le gain du modèle du premier ordre est égal à la valeur asymptotique (environ 350 rad.s-1 ici) divisée par la consigne (80 V). La constante de temps est obtenue pour 63 % de la valeur finale (cf. Courbe obtenue pour la charge d’un condensateur). commande T 80 t T+0,15 0 Vitesse réelle Vitesse approchée Démonstrations / SIMM / Exemples Livret / Exemple 12
  • 47. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 46 | Démonstrations / SIMM / Exemples Livret / Exemple 13 Les blocs à ajouter ou paramétrer à nouveau sont rappelés ci-dessous : désignation représentation Sous-palette SImm paramétrage Ramp Signaux / Sources / MBS_Ramp Amplitude : -255 Durée : 0.15 s Décalage : 255 Temps de début : 1 s PWM Signaux / Sources / CCP_PWM 8 bits Fréquence : 500 Hz Temps de début : 0 s Étude temporelle Utilitaires / Analyses / IREP_TEMP Durée : 2 s 10 000 points Grille affichée : oui Afficher les courbes pendant la simulation : non Affichage du signal Utilitaires / Visualisation / ISCOPE nombre de courbes : 1 nom de la courbe : vitesse PWM Hacheur demi-pont Composants / PréActionneurs / MEMC_Q2driver On constate qu’il est très difficile de visualiser correctement le signal PWM (ou en sortie du hacheur) sur la durée de simulation compte-tenu de la commande retenue. Ouvrez une nouvelle fenêtre d’édition Xcos et copiez le diagramme précédent. Supprimez les blocs hacheurs, PWM, source d’alimentation et remplacez-les par une alimentation variable pilotée MEAS_SignalVoltage (sous-palette Électrique / Sources). Modifiez le bloc Trapèze MBS_Ramp (sous-palette Signaux / Sources) pour obtenir directement la tension de commande du moteur (Amplitude -80, Décalage 80 V).
  • 48. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE | 47 Lancez la simulation en prenant 2 000 points. Comparez la courbe obtenue avec la précédente. vitesse 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 350 300 250 200 150 100 50 0 −50 Démonstrations / SIMM / Exemples Livret / Exemple 14 En observant les résultat obtenus, on s’aperçoit que la modélisation fine du hacheur n’est pas nécessaire dans ce cas précis. Il sera remplacé par la source de tension variable. modélisation des adaptateurs En aval du moteur à courant continu étudié précédemment se trouve une chaîne cinématique composée par la mise en série d’un réducteur de type roue et vis sans fin. La rotation de la roue du réducteur entraîne la translation du chariot par l’intermédiaire d’une roue de rayon donné. Démonstrations / SIMM / Exemples Livret / Exemple 15 Ajoutez un réducteur à engrenages MMR_IdealGearGen et un système de transformation de mouvement de rotation en translation MMR_IdealGearR2TGen (sous-palette Composants / Adaptateurs). Configurez les blocs à l’aide des données initiales. Attention pour le bloc engrenage, le rapport renseigné est le rapport de l’entrée sur la sortie. Intercalez juste avant le capteur de vitesse linéaire un bloc CMTC_Mass (masse en translation) de la sous-palette Mécanique / Translation 1D / Basique. Seule la masse est importante (760 Kg). Il est également possible de définir les positions et vitesses initiales, etc.
  • 49. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 48 | Lancez ensuite une simulation. Vérifiez que la vitesse obtenue est cohérente. désignation représentation Sous-palette SImm paramétrage Réducteur à engrenages Composants / Adaptateurs / MMR_IdealGearGen Rapport de transmission : 50 Bâti : oui Pignon crémaillère Composants / Adaptateurs / MMR_IdealGearR2TGen Rapport de transmission : 1 / 0.038 Bâti : oui Masse en translation Mécanique / Translation 1D / Basique / CMTC_Mass Masse : 760 Kg Capteur de vitesse Mécanique / Translation 1D / Mesure / CMTS_GenSensor Vitesse Influence des frottements sur l’évolution de l’intensité Il existe une résistance à l’avancement qui est égale à 70 n. Cette action peut être modélisée par l’intermédiaire du bloc CMT_MassWithFriction (sous-palette Mécanique / Translation 1D / Basique). Ce bloc est plus compliqué à paramétrer car il permet de tester différents modèles de frottement. Le seul qui est considéré ici est le modèle de Coulomb (les autres sont mis à 0). Attention, le signe de la résistance est positif. On constate que la commande utilisée ne respecte pas la vitesse maximale de 0.1 m.s-1. Modifiez celle-ci de manière à ce que la vitesse maximale soit celle définie dans le cahier des charges. Ajoutez un ampèremètre au niveau de l’alimentation du moteur et visualisez l’intensité. Faites varier la masse et visualisez l’influence sur l’intensité (ajoutez une masse sans frottement s’il y a des problèmes de simulation). Démonstrations / SIMM / Exemples Livret / Exemple 16
  • 50. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE On constate ainsi qu’il est nécessaire de contrôler l’intensité du moteur pour gérer les accélérations de l’armature. C’est pourquoi par la suite, un asservissement d’intensité est mis en place, comme on le voit sur la figure suivante avec une correction unitaire. 140 120 100 80 60 40 20 0.1 0.08 0.06 0.04 0.02 mise en place de l’asservissement d’intensité du moteur Insérez une boucle de courant (comme pour la régulation de température) en prenant un correcteur de type PI proportionnel intégral MBC_PI (sous-palette Signaux / Continu). En pratique, la mesure de courant est réalisée par une résistance ou une sonde ampèremétrique de gain égal à 0.245 V.A-1. | 49 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 Vitesse moteur (rad/s) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 Vitesse chariot (m/s) Démonstrations / SIMM / Exemples Livret / Exemple 17
  • 51. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 50 | L’asservissement portant sur le couple, il faut imposer une intensité de consigne, soit U / R avec U la valeur maximale utilisée précédemment (vous pouvez aussi ajouter un gain comme sur la figure précédente). Le réglage du correcteur PI pour l’asservissement 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 l’instant. Remarquez que la vitesse n’est plus du tout la même car le moteur est piloté en intensité (donc à une intensité constante correspondra une vitesse linéaire de par l’équation de dynamique). Il est donc indispensable d’adapter la consigne d’intensité pour retrouver des niveaux de vitesse raisonnable. Changez la consigne (prendre 1.7 V par exemple ou 0.6 A). Observez ensuite l’influence du gain du correcteur sur l’intensité. Le choix final de la valeur du gain doit se faire en fonction de la tension du moteur qui ne peut pas dépasser physiquement 80 V (Cf. hacheur). Ajoutez un voltmètre aux bornes du moteur et visualisez la tension pour différents gains supérieurs à 1. Une valeur trop grande du gain entraînera nécessairement un dépassement de la tension maximale. On prendra par la suite un gain de 100. asservissement en vitesse La partie précédente a permis de montrer qu’il est nécessaire d’asservir en intensité un moteur pour contrôler les accélérations. Il est donc indispensable d’ajouter un contrôle de vitesse pour assurer la loi de consigne souhaitée. Pour simplifier la commande du moteur, on peut utiliser une source d’intensité pilotée MEAS_SignalCurrent (sous-palette Électrique / Sources) plutôt que l’asservissement d’intensité, ce qui revient à considérer cet asservissement comme parfait. Démonstrations / SIMM / Exemples Livret / Exemple 18
  • 52. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE L’asservissement de vitesse se fait en comparant la vitesse de rotation du moteur (capteur sur l’axe du moteur) à la vitesse de consigne (en trapèze). On utilise à nouveau un correcteur PI pour simplifier (gain 0.15, constante de temps 0.025 s). Le codeur incrémental monté sur l’axe moteur délivre une position en nombre de tops (informations binaires) et cette information de position est ensuite « dérivée » numériquement par différences finies. Le signal obtenu, image de la vitesse de rotation du moteur, est en général très bruité. Il faut donc adjoindre à cette mesure un filtre de constante de temps donné. Ce filtre est modélisable simplement par un bloc du premier ordre MBC_FirstOrder (sous-palette Signaux / Continu) de constante de temps 1 ms. Réalisez l’asservissement de vitesse suivant et configurez en entrée 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 paramétrer sont rappelés ci-dessous : désignation représentation Sous-palette SImm paramétrage | 51 Ramp Signaux / Sources / MBS_Ramp Amplitude : - 0.1 Durée : 0.15 s Décalage : 0.1 Temps de départ : 1 s Gain Signaux / Math / MBM_Gain 50/0.0318 Étude temporelle Utilitaires / Analyses / IREP_TEMP Durée : 2 s 2000 points Grille affichée : oui Afficher 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
  • 53. MODÉLISATIOn MULTI-PHYSIQUE ACAUSALE 52 | Vitesse moteur (rad/s) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 200 150 100 50 0 0.15 Vitesse chariot (m/s) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0.1 0.05 0 Intensité moteur (A) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 80 60 40 20 0 Démonstrations / SIMM / Exemples Livret / Exemple 19 On a montré à travers cette application la nécessité d’asservir en intensité (ou en couple) le moteur de manière à contrôler les accélérations. On parle, dans ces conditions, de pilotage en intensité du moteur. Il est alors indispensable d’asservir en vitesse le moteur pour obtenir un mouvement particulier du chariot respectant ainsi le cahier des charges initial. De nombreux axes linéaires (imprimante par exemple) utilisent ce type de commande (boucle d'intensité et de vitesse) pour contrôler précisément les mouvements. La suite de cette activité serait de modéliser les oscillations de l'armature en utilisant la sous-palette Mécanique / Plane et d’améliorer la commande pour supprimer les problèmes de résonance.
  • 54. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU L’exemple que nous allons traiter est le même que celui utilisé dans le chapitre précédent : l’angiographe. Le module CPGE permet de dimensionner les correcteurs à mettre en place dans le système par des analyses fréquentielles. Il nécessite des connaissances théoriques (transformée de Laplace, analyse fréquentielle, correcteur...) pour être utilisée efficacement. Son utilisation est donc plutôt orientée post-bac. Le cahier des charges du système est donc le même que dans le chapitre précédent, page 42. mISe en place d’un dIaGramme de moteur à courant contInu Dans cette première partie, nous allons construire le diagramme du moteur à courant continu (résistance Rm, inductance Lm, constante de couple Kt, constante de vitesse Ke et inertie équivalente rapportée à l’axe moteur Je). Ouvrez une nouvelle fenêtre d’édition Xcos. Positionnez les blocs suivants : | 53 3- modélISatIon et analySe de SyStèmeS à tempS contInu (module cpGe) désignation représentation Sous-palette cpGe paramétrage Échelon Entrées / STEP_FUnCTIOn Valeur finale : 0 Valeur finale : 80 Fonction de transfert continue Opérateurs linéaires / CLR numérateur : 1 Dénominateur : Lm*s + Rm Gain Opérateurs linéaires / GAInBLK_f Kt Ke Comparateur Opérateurs linéaires / BIGSOM_f Visualisation Sorties / SCOPE Intensité (A) Vitesse angulaire (rad / s) À noter Pour configurer 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 entrées).
  • 55. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 54 | Construire le modèle du diagramme du moteur à courant continu en reliant les différents blocs (après les avoir positionnés puis éventuellement orientés), sous la forme du diagramme ci-dessous : Pour définir les grandeurs de sortie (afin que les courbes obtenues soient ensuite repérables facilement), double-cliquez sur chacun des deux blocs SCOPE et configurez le nombre de courbes à superposer sur un même graphe (une seule dans notre cas) puis après avoir cliqué sur OK, entrez le nom du signal, à savoir une vitesse de rotation de l’axe du moteur (en rad.s-1) et l’intensité dans l’induit (en A). En double-cliquant sur un espace vierge du diagramme, il est possible d’insérer À noter du texte permettant d’améliorer la lecture globale. Dans l’image précédente, on Dans toutes les zones de a ainsi pu décrire à quoi correspondaient les deux échelons d’entrée et les deux texte, il est possible d’entrer du code LaTeX permettant, sorties. Il est également possible d’attacher une étiquette / texte à un bloc par un par exemple, d’insérer des simple clic droit sur le bloc, puis format / édition et de compléter la zone de texte. équations. En double-cliquant successivement sur les deux échelons d’entrée, configurez une tension de 80 V (tension nominale du moteur), un instant initial t = 0 s et un couple résistant nul à t = 0 s (le cas perturbé sera étudié par la suite). étude / Simulation Pour lancer une simulation, il est nécessaire de spécifier le type d’étude retenu (temporelle et / ou fréquentielle). Pour réaliser une étude temporelle, positionnez dans le diagramme un bloc REP_TEMP (sous-palette Analyses). En double-cliquant sur ce bloc, configurez une durée de simulation de 1 s et 500 points d’affichage. Lancez alors la simulation. Deux courbes s’affichent, représentant respectivement l’intensité et la vitesse angulaire. Démonstrations / CPGE / Exemples Livret / Exemple 1
  • 56. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 350 300 250 200 150 100 50 30 25 20 15 10 5 mISe en place d’un dIaGramme de commande en boucle ouverte En aval du moteur à courant continu se trouve une chaîne cinématique (réducteur à engrenages + système roue et vis sans fin + système pignon – crémaillère) de rapport de réduction Kch = 31.8.10-3 / 50 m.rad-1 permettant de transformer la rotation en une translation de l’axe linéaire. Afin de ne pas trop solliciter le moteur électrique, on l’alimente progressivement jusqu’à la valeur nominale (voir figure ci-contre) : on donne tm = 0.1 s (temps de montée) et U0 = 40 V (tension nominale). Ce signal peut classiquement être obtenu par soustraction d’une rampe de pente U0 / tm à l’instant t = 0 s et d’une rampe de même pente mais décalée dans le temps de tm secondes. Cependant, le module CPGE offre la possibilité de définir un signal trapèze dont nous n’exploiterons que la partie initiale (montée et maintien) en prenant un temps de maintien en position maximale très grand. Par ailleurs, un effort Fr = – 72 n est exercé sur la structure qui se translate à l’instant tr = 0.5 s. Cet effort est ressenti comme un couple résistant au niveau du moteur avec, si l’on suppose un rendement unitaire, un rapport de proportionnalité correspondant au gain de la chaîne cinématique. | 55 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 Vitesse de rotation (rad/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 Intensité (A) Um en V U0 t en s tm
  • 57. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 56 | Complétez le contexte avec les informations Kch = 31.8.10-3 / 50, tm, tr, U0 et Fr à la suite des précédentes puis ajoutez trois gains GAInBLK_f (sous-palette Opérateurs linéaires). Rajoutez également deux afficheurs SCOPE (sous-palette Sorties) pour le tracé de la tension d’alimentation et de la vitesse de déplacement. Remplacez l’échelon de tension par un bloc TRAPEZOID (sous-palette Entrées) et configurez l’amplitude, le temps de montée et prenez un temps de maintien de 10 (donc très supérieur au temps de simulation) sans modifier les autres paramètres. À partir du diagramme initial, créez alors le diagramme ci-dessous, correspondant à la commande en boucle ouverte du système (entrée : tension du moteur en V, sortie : vitesse de déplacement de l’axe en m.s-1 perturbation : force Fr à l’instant tr = 0.5 s). Un gain de 30 / π (qui s’écrit dans Scilab 30 / %pi) permet d’obtenir la vitesse de rotation en rad.s-1. Lancez la simulation. Quatre courbes s’affichent, représentant respectivement la tension d’alimentation en V, l’intensité dans l’induit en A, la vitesse angulaire en tours.min-1 et en rad.s-1. Analysez rapidement les courbes obtenues en les comparant à celles qui ont été obtenues par la simulation acausale. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.05 0 Vitesse de rotation (rad/s) 4 Intensité (A) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 0 1 500 Vitesse de rotation (tours/min) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 000 500 0 40 Tension d’alimentation (V) 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 20 0 Démonstrations / CPGE / Exemples Livret / Exemple 2
  • 58. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU préSentatIon de la Structure de l’aSServISSement en vIteSSe La structure de commande précédente n’est pas performante car elle est très sensible à la perturbation. Afin d’arrêter le déplacement de l’axe au niveau souhaité, il serait nécessaire de couper l’alimentation au bon moment (donc en tenant compte à la fois des perturbations et de l’inertie du système), ce qui est bien entendu illusoire. Pour maîtriser la vitesse de déplacement de l’axe et compenser les perturbations, il est donc nécessaire de passer à une structure asservie. Dans le cas du système étudié, ceci est réalisé par l’implantation d’un codeur incrémental sur l’axe moteur et l’adjonction d’un calculateur permettant de traiter les informations de manière numérique. nous introduisons les nouveaux blocs suivants : | 57 désignation représentation Sous-palette cpGe paramétrage Générateur de signal trapézoïdal Entrées / TRAPEZOID Amplitude : 0.1 Largeur : 10 Correcteur PI Opérateurs linéaires / PIcontrol Gain proportionnel : Kp La structure du diagramme est la suivante : Démonstrations / CPGE / Exemples Livret / Exemple 3 Dans ce diagramme, on note les évolutions suivantes : w Modification de la typologie de l’entrée pour réaliser une commande en trapèze 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 d’axe linéaire asservi,
  • 59. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 58 | w Ajout d’une observation de l’évolution de la tension d’alimentation du moteur, w Mise en place d’un soustracteur et d’un correcteur PI, PIcontrol (sous-palette Opérateurs linéaires). Modifiez le contexte en définissant la variable Kp=1. On utilise pour l'instant comme paramètres du correcteur PI, le gain proportionnel Kp et un gain intégral nul. Cette variable tient compte de l’ensemble correcteur + module d’amplification (hacheur) en amont de l’ensemble constitué du moteur et de la chaîne cinématique. 4 Intensité (A) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 0 Vitesse de rotation (tours/min) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 000 0 Consigne de vitesse (m/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.05 0 40 Tension d’alimentation (V) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 20 0 Vitesse déplacement (m/s) 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0.1 0.05 0 aSServISSement de vIteSSe et correctIon proportIonnelle nous allons, dans un premier temps analyser l’influence de la simple correction proportionnelle implantée sur le comportement temporel du système. Dans le contexte, la valeur de Kp est unitaire. La valeur n’a pas d’importance mais, pour être prise en compte, elle doit être définie. nous introduisons les nouveaux blocs suivants : désignation représentation Sous-palette cpGe paramétrage Variation paramétrique Analyses / PARAM_VAR Kp [0.5,1,5,10,100] Saturation non-linéarités / SATURATIOn 40 -40 Insérez un bloc PARAM_VAR (sous-palette Analyses) pour faire une étude paramétrique.
  • 60. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU À noter Le bloc PARAM_VAR permet de faire des études paramétriques sans avoir besoin de linéariser le système. Le diagramme peut donc utiliser n’importe quel type de blocs. Lancez la simulation et observez l’influence du gain du correcteur sur les performances en comparaison aux attentes du cahier des charges. | 59 La valeur de la tension d’alimentation doit physiquement être limitée à 40 V pour protéger le moteur. On constate cependant que, pour plusieurs valeurs de Kp, cette tension est dépassée. Pour améliorer le modèle, il est donc indispensable d’ajouter une non-linéarité physique : la saturation. Sélectionnez tous les blocs situés après le correcteur (les blocs sont mis en surbrillance) et déplacez un des blocs pour mouvoir l’ensemble. Insérez alors, entre le bloc correspondant à l’ensemble correcteur + hacheur et le moteur, un bloc SATURATIOn (sous-palette non-linéarités). Configurez la saturation avec les valeurs indiquées dans le tableau précédent (40 et -40). 4 Kp=0.5 Intensité (A) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 0 Kp=1 Intensité (A) Kp=5 Intensité (A) Kp=10 Intensité (A) Kp=100 Intensité (A) 1 500 Kp=0.5 Vitesse de rotation (tours/min) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 000 500 0 Kp=1 Vitesse de rotation (tours/min) Kp=5 Vitesse de rotation (tours/min) Kp=10 Vitesse de rotation (tours/min) Kp=100 Vitesse de rotation (tours/min) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.05 0 Kp=0.5 Consigne de vitesse (m/s) Kp=1 Consigne de vitesse (m/s) Kp=5 Consigne de vitesse (m/s) Kp=10 Consigne de vitesse (m/s) Kp=100 Consigne de vitesse (m/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 40 20 0 Kp=0.5 Tension d’alimentation (V) Kp=1 Tension d’alimentation (V) Kp=5 Tension d’alimentation (V) Kp=10 Tension d’alimentation (V) Kp=100 Tension d’alimentation (V) 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0.1 0.05 0 Kp=0.5 Vitesse déplacement (m/s) Kp=1 Vitesse déplacement (m/s) Kp=5 Vitesse déplacement (m/s) Kp=10 Vitesse déplacement (m/s) Kp=100 Vitesse déplacement (m/s)
  • 61. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 60 | Relancez la simulation et observez l’effet de la saturation sur la réponse obtenue, tant au niveau des grandeurs 4 Kp=0.5 Intensité (A) Kp=1 Intensité (A) électriques que sur le suivi de la consigne de vitesse en 2 Kp=5 Intensité (A) Kp=10 Intensité (A) 0 Kp=100 Intensité (A) trapèze. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Kp=0.5 Vitesse de rotation (tours/min) 1 000 Kp=1 Vitesse de rotation (tours/min) Afin d’analyser la capacité du système à suivre l’évolution Kp=5 Vitesse de rotation (tours/min) Kp=10 Vitesse de rotation (tours/min) Kp=100 Vitesse de rotation (tours/min) de la consigne, il est bien entendu possible de comparer la 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 réponse temporelle obtenue à la consigne en superposant 0.1 Kp=0.5 Consigne de vitesse (m/s) Kp=1 Consigne de vitesse (m/s) Kp=5 Consigne de vitesse (m/s) plusieurs courbes sur un même afficheur (SCOPE). 0.05 Kp=10 Consigne de vitesse (m/s) 0 Kp=100 Consigne de vitesse (m/s) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 40 Kp=0.5 Tension d’alimentation (V) Double-cliquez sur le bloc SCOPE de la vitesse de Kp=1 Tension d’alimentation (V) 20 Kp=5 Tension d’alimentation (V) déplacement et demandez deux courbes de noms « Vitesse Kp=10 Tension d’alimentation (V) Kp=100 Tension d’alimentation (V) 0 de déplacement (m.s-1) » et « Consigne de vitesse (m.s-1) » 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 Kp=0.5 Vitesse de déplacement (m/s) puis connectez la nouvelle entrée. Kp=1 Vitesse de déplacement (m/s) 0.05 Kp=5 Vitesse de déplacement (m/s) Kp=10 Vitesse de déplacement (m/s) Kp=100 Vitesse de déplacement (m/s) 0 Lancez la simulation et observez l’effet de la saturation pour 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 la valeur Kp = 100. aSServISSement de vIteSSe et correctIon proportIonnelle et IntéGrale Afin d’améliorer sensiblement la capacité du système à suivre la consigne de vitesse, il est nécessaire d’apporter un effet intégral à la correction. On choisit alors de renseigner le gain Ki du correcteur PI :
  • 62. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU Pour analyser l’influence des paramètres et le réglage du correcteur, on réalise une analyse fréquentielle en boucle ouverte. Pour réaliser cette analyse, il est nécessaire de linéariser le diagramme. normalement les blocs non-linéaires (type saturation) sont remplacés par des gains unitaires (sauf pour le retard qui peut être traité exactement en boucle ouverte). Supprimez le bloc REP_TEMP et remplacez-le par un bloc REP_FREQ (sous-palette Analyses) qui réalisera l’analyse fréquentielle. On peut cumuler la réponse temporelle et la réponse fréquentielle en laissant les deux blocs REP_ TEMP et REP_FREQ sur le schéma. Ajoutez également deux blocs GRAnDEUR_PHYSIQUE (sous-palette Analyses) qui sont utilisés pour définir les points d’entrée et de sortie de l’analyse fréquentielle. 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 désignation représentation Sous-palette cpGe paramétrage Analyse fréquentielle Analyses / REP_FREQ Points d’entrée / sortie Analyses / GRAnDEUR_PHYSIQUE Démonstrations / CPGE / Exemples Livret / Exemple 4
  • 63. À noter Plusieurs blocs REP_FREQ peuvent être introduits dans le diagramme, ce qui permet d’obtenir la réponse fréquentielle de la boucle ouverte et celle de la boucle fermée dans deux fenêtres graphiques séparées. Si l’on souhaite superposer deux réponses fréquentielles, il suffit de configurer les différentes entrées et sorties séparées par des points-virgules. Exemple : E1;E2 et S1;S2. On peut alors configurer, dans le bloc REP_FREQ, le type de diagramme fréquentiel (Bode, Black ou 40 nyquist), les points d’entrée et de sortie (référence 20 0 1 2 3 4 10 10 10 10 10 aux blocs GRAnDEUR_PHYSIQUE « E » et « S ») ainsi 0 que l’affichage ou non des marges de stabilité et −20 des asymptotes. Dans la fenêtre de configuration −40 −60 du bloc, il est possible de définir les pulsations minimale et maximale : prendre ici 1 et 10 000. Lancez une simulation (analyse fréquentielle seule) pour les paramètres par défaut du correcteur (Kp=1 dans le contexte et Ki=0). Visualisez alors les marges de gain et phase sur les diagrammes de Bode. Modifiez les valeurs pour voir leur impact sur le comportement fréquentiel de la boucle ouverte. Il est nécessaire de relancer une simulation à chaque fois. Vous pouvez également positionner un bloc PARAM_VAR pour voir l’influence des paramètres pour des jeux donnés en analyse fréquentielle. Attention, le calcul de marges n’est fait que pour une seule courbe (pas le tracé des asymptotes). Un réglage satisfaisant pour avoir une marge de phase de 45 ° environ est Kp=10 et Ki=0.1. Ajoutez le bloc REP_TEMP (durée 1 s, 200 points de tracés) et observez la réponse temporelle. Vous pouvez supprimer le bloc REP_FREQ pour n’observer que la réponse temporelle. On voit que ce réglage PI n’est pas idéal dans le cas d’étude car le moteur utilisé peine à entraîner de manière efficace le système avec cette structure série. Afin d’améliorer sensiblement les performances, on commande le moteur en courant c’est-à-dire que l’on ajoute une boucle de courant. Cette structure de commande est très classique de nos jours. La quasi-totalité des cartes de commande actuelles dispose de cette fonctionnalité que nous utilisons ici. Amplitude (dB) Pulsation (rad/s) Marge de gain infinie ; Marge de phase : 43.25° 10 0 10 1 10 2 10 3 10 4 0 −50 −100 −150 Phase (°) Pulsation (rad/s) Entrée : E Sortie : S MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU 62 |
  • 64. MODÉLISATIOn ET AnALYSE DE SYSTèMES À TEMPS COnTInU Le principe de la boucle de courant est simple. On vient, grâce à une structure adéquate, mesurer l’intensité au niveau de l’induit et alors modifier l’alimentation réelle du moteur après une correction le plus souvent de type PI comme le montre le diagramme suivant : Démonstrations / CPGE / Exemples Livret / Exemple 5 Dans ce diagramme, le retour de courant a été choisi unitaire car le gain du capteur (résistance de shunt ou capteur à effet Hall) est ici intégré dans le correcteur PI. Il est nécessaire de régler 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 filtre a été ajouté dans la boucle de retour tachymétrique pour être au plus prêt de la physique du système (mesure par codeur puis dérivation numérique bruitée). On voit qu’il est possible, en utilisant cette structure, d’atteindre des performances relativement importantes tout en ne modifiant ni la structure globale de l’asservissement (donc en gardant un codeur incrémental sur l’axe du moteur) ni le choix du moteur à courant continu, ce qui est toujours délicat (coût, implantation, etc.). | 63 10 0 10 1 10 2 10 3 10 4 400 300 200 100 0 −100 Amplitude (dB) Pulsation (rad/s) Marge de gain : 26.59dB ; Marge de phase : 59.91° 10 0 10 1 10 2 10 3 10 4 0 −50 −100 Phase (°) Pulsation (rad/s) −150 −200 −250 Entrée : E Sortie : S 10 0 10 1 10 2 10 3 10 4 20 10 0 −10 Amplitude (dB) Pulsation (rad/s) Marge de gain infinie ; Marge de phase : 109.86° 10 0 10 1 10 2 10 3 10 4 0 −50 −100 −150 Phase (°) Pulsation (rad/s) Entrée : Ei Sortie : Si
  • 65.
  • 66. ACQUISITIOn ET PILOTAGE DE MOTEUR | 65 4- acquISItIon et pIlotaGe de moteur (module arduIno) Cette activité expose les possibilités de simulation de type « hardware in the loop » (intégration de matériel physique dans une simulation logicielle) de Scilab / Xcos et du module Arduino couplés à une carte Arduino Uno. Le module Arduino permet, en effet, d’intégrer dans l’outil de simulation, la commande d’une carte Arduino Uno afin de faire de l’acquisition ou du pilotage de systèmes. Il est possible de réaliser les commandes suivantes : lecture / écriture d’une entrée / sortie logique, lecture / écriture d’une entrée / sortie analogique, commande d’un moteur à courant continu, d’un servomoteur et d’un moteur pas à pas. préSentatIon SuccIncte de la carte arduIno uno Sur la carte Arduino Uno, identifiez les ports (PInS en anglais) suivants : w 14 entrées / Sorties logiques (port ou « PIn Digital » de 0 à 13) : - Série 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 (utilisées pour le codeur en quadrature), - Sortie 13 couplée à une LED sur la carte. w 6 entrées analogiques (A0 à A5) : - La tension d’entrée doit nécessairement être inférieure à la tension de référence (5 V ou 1.1 V ou AREF : référence externe), - 6 CAn (Convertisseur Analogique numérique) 10 bits (plage de 1024) à 10 kHz maximum, - Ces entrées peuvent aussi fonctionner comme des Entrées / Sorties numériques. w 6 Sorties analogiques : 6 PWM sur les ports 3, 5, 6, 9, 10 et 11, construites sur les pins d’entrées / sorties logiques. USB Carte Arduino 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 15 16 17 18 19 Reset AREF +3V3 +5V 0V 0V 0V +Vin (7-12V) A0 A1 A2 A3 A4 A5 Analog SCK MISO MOSI / PWM SS / PWM PWM PWM PWM INT1 / PWM INTO TX RX La programmation de toutes les cartes de la famille Arduino, dont le modèle Uno, se fait dans un langage simplifié adapté du C / C++, basé sur l’utilisation de « classes » (ou macro-commandes) faciles à comprendre et à modifier, y compris par des personnes non-spécialistes de la programmation. Le projet « Open Source » Arduino a, en effet, initialement été créé pour la mise en oeuvre d’environnements sonores ou visuels à destination de créations artistiques. Il était donc indispensable que l’interface soit réduite à la mise en oeuvre séquentielle d’ordres simples et à l’acquisition de données analogiques ou numériques. Le logiciel de programmation, gratuit et utilisable sans installation sur l’ordinateur sur les environnements Windows, Mac OS X et Linux, est téléchargeable en ligne à l’adresse : http://arduino.cc/en/Main/Software Un guide d’installation est disponible à l’adresse : http://arduino.cc/en/Guide/HomePage À noter Comme les mémoires sont de type Flash, le programme reste « indéfiniment » en mémoire, même sans alimentation, après son implantation dans le microcontrôleur. Pour charger le programme, la liaison USB permet de communiquer avec le microcontrôleur en émulant une liaison série.
  • 67. ACQUISITIOn ET PILOTAGE DE MOTEUR 66 | utIlISatIon du module arduIno IntéGré à ScIlab / XcoS Pour faire fonctionner le module, il faut aussi charger un programme particulier (Toolbox_Arduino.ino) dans l’Arduino. Celui-ci est téléchargeable depuis le site http://atoms.scilab.org/toolboxes/arduino. Grâce au logiciel Arduino, ouvrez le fichier téléchargé puis téléversez-le après avoir choisi le port de communication dans le menu Outils / Port série (prendre le port différent du Com1) et le type de carte Arduino Uno. Véri fiez que le téléversement s’est bien terminé et quittez. La carte Arduino Uno est prête à être interfacée avec Scilab / Xcos grâce au module que nous allons maintenant étudier. Il ne sera plus nécessaire d’utiliser le logiciel Arduino par la suite. démarrage avec le module arduino : clignotement d’une led et entrées / sorties logiques Lancez Xcos. Pour vérifier le bon fonctionnement du module, nous allons faire clignoter la LED intégrée à la carte Arduino (PIn 13), ce qui correspond à l’exemple de base en programmation de microcontrôleurs. Le tableau ci-dessous résume l’ensemble des blocs à positionner et les paramètres à configurer : désignation représentation Sous-palette paramétrage Configuration Arduino Arduino / Configuration / ARDUInO_SETUP Port série : 5 Configuration simulation Arduino / Configuration / TIME_SAMPLE Écriture port digital Arduino / Digital / DIGITAL_WRITE_SB PIn digital : 13 Générateur d’impulsions CPGE / Entrées / PULSE_SC Retard : 0.1 Largeur de pulsations : 30 Période : 1 Amplitude : 1 Reliez l’entrée Pulse et la sortie logique puis lancez l’acquisition via le bouton de simulation. Les deux diodes Rx et Tx sur la carte doivent indiquer la communication série entre Xcos et l’Arduino tandis que la LED située à côté du PIn 13 doit clignoter.
  • 68. ACQUISITIOn ET PILOTAGE DE MOTEUR Vous pouvez également prendre une LED quelconque, lui associer une résistance judicieusement choisie et brancher une patte de la LED + résistance au PIn Gnd (« ground » pour masse) et l’autre extrémité à un PIn digital quelconque (différent de 0 et 1 - 5 sur le schéma ci-contre), puis configurer ce numéro de PIn dans le bloc DIGITAL_WRITE_SB du diagramme. À l’issue de ce premier essai, l’interfaçage des entrées / sorties logiques de l’Arduino avec Xcos a été mis en oeuvre. On peut maintenant passer à l’acquisition d’une grandeur analogique. acquérir une grandeur analogique Dans cette partie, nous allons utiliser un potentiomètre afin de générer une tension variant entre 0 V et 5 V (principe du pont diviseur de tension). On pourrait acquérir la tension de n’importe quel capteur analogique, mais il faut faire attention à ne pas l’alimenter à une tension supérieure à la tension de référence (5 V pour le modèle UnO ou 3.3 V suivant les modèles) supportée par les PInS de l’Arduino. L’acquisition analogique se fait grâce à un CAn (Convertisseur Analogique numérique) de 10 bits, c’est-à-dire que la plage 0 V – 5 V est convertie en 210 = 1024 nombres numériques, soit une plage allant de 0 à 1023. La résolution est donc de 4.9 mV. Branchez le potentiomètre comme suit : Patte extérieure à 0 V (masse ou PIn GnD), patte intérieure à 5 V et patte du milieu à relier à une entrée analogique quelconque notée Apin. Créez un diagramme avec un port analogique en lecture Analog_READ_SB (sous-palette Analog) et double-cliquez sur l’entrée analogique pour spécifier votre numéro de PIn. Ajoutez un afficheur ARDUInO_SCOPE (sous-palette Configuration). Lancez l’acquisition via le bouton de simulation et faites tourner le potentiomètre. On doit voir une courbe variant de 0 à 1023 selon l’angle du potentiomètre. | 67 Démonstrations / Arduino / Exemples Livret / Exemple 1