Scilab : de la théorie à la pratique

II. Modéliser et simuler avec Xcos

par

Yvon Degré

Serge Steer

Aperçu général de l'ouvrage

Le livre ou le module que vous avez sous vos yeux fait partie intégrante d'un ouvrage plus global intitulé Scilab : De la théorie à la pratique portant sur l'emploi de Scilab dans un contexte professionnel.

Pratique de Scilab validée par 

Scilab : de la théorie à la pratique - II. Modéliser et simuler avec Xcos

par Yvon Degré, Serge Steer

ISBN (EPUB) : 978-2-8227-0057-3

Copyright © 2014 Éditions D-BookeR

Tous droits réservés

Conformément au Code de la propriété intellectuelle, seules les copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées à une utilisation collective ainsi que les analyses et les courtes citations dans un but d'exemple et d'illustration sont autorisées. Tout autre représentation ou reproduction, qu'elle soit intégrale ou partielle, requiert expressément le consentement de l'éditeur (art L 122-4, L 122-5 2 et 3a).

Publié par les Éditions D-BookeR, 5 rue Delouvain, 75019 Paris

www.d-booker.fr

contact@d-booker.fr

Ce module fait partie de l'ouvrage global intitulé : Scilab : de la théorie à la pratique

ISBN (HTML) : 978-2-8227-0018-4

Les exemples (téléchargeables ou non), sauf indication contraire, sont propriété des auteurs.

Validation de la pratique de Scilab : Claude Gomez (Directeur général, Scilab Enterprises)

Conception de la couverture : d'après une création de Marie Van Der Marlière (www.marie-graphiste.com)

Mise en page : générée sous Calenco avec des XSLT développées par la société NeoDoc (www.neodoc.biz)

Date de publication : 06/2014

Édition : 1

Version : 1.01

À propos des auteurs

Yvon Degré

Après avoir travaillé pendant cinq ans dans l'industrie, Yvon Degré s'est orienté vers l'enseignement et devient en 1980 professeur agrégé de génie électrique. Il enseigne en BTS l’électrotechnique classique (machines et électronique de puissance), l’automatique (combinatoire, séquentielle et linéaire) puis en école d'ingénieur (ENSAIT puis ISMEP) où il assure les enseignements de génie électrique, de génie automatique et l’encadrement de projets multitechnologies.

Il utilise depuis plusieurs années Scilab-Xcos comme support d'enseignement, leur caractère libre et gratuit permettant à ses élèves d'accéder à des logiciels de qualité sans problèmes de licence et de disposer, sans frais, des mises à jour.

Serge Steer

Directeur de recherche à l'Institut National de Recherche en Informatique et en Automatique (INRIA), Serge est titulaire d'une thèse en Mathématiques et Automatique. Ses domaines de recherche sont la modélisation et le contrôle des systèmes dynamiques et l'algorithmique numérique.

Jusqu'en 2003, il a été l'un des principaux concepteurs et développeurs des logiciels Scilab et Scicos (aujourd'hui Xcos). Depuis, il intervient ponctuellement pour conseiller l'équipe de développement de ces logiciels. Il est co-auteur de deux livres sur Scilab et Scicos et assure de nombreuses formations pour l'usage de ces outils. Vous pouvez le contacter par courrier électronique aux adresses : serge.steer@inria.fr ou serge.steer@laposte.net.

Préface

par Claude Gomez

Directeur général de Scilab Enterprises

Bienvenue dans Scilab : De la théorie à la pratique.

Le logiciel de calcul et de simulation numérique Scilab est aujourd’hui la référence des logiciels libres du domaine. Il comprend plus de 1 600 fonctions mathématiques et graphiques et inclut Xcos pour la simulation des systèmes dynamiques hybrides. C’est dire que, malgré l’aide en ligne, il est souvent difficile pour l’utilisateur d’appréhender toutes ses fonctionnalités sans véritable support. Et comme les domaines concernés couvrent ceux de toutes les mathématiques appliquées, calcul matriciel, simulation, traitement du signal, statistiques, commande, etc., il faudrait un livre pour chacun. C’est ce que vous propose Scilab : De la théorie à la pratique , aborder progressivement tous ces domaines pour vous fournir une vue d’ensemble complète du logiciel Scilab. Le monde du logiciel est marqué par les mises à jour régulières et l’obsolescence rapide des supports traditionnels papiers, et l’originalité de D-BookeR est de vous permettre de consulter un livre toujours à jour à partir d’un site web.

Outil convivial et puissant, Xcos requiert pour être bien maîtrisé un apprentissage spécifique qui est décrit pas à pas dans ce manuel. De plus, il utilise le langage Modelica pour les systèmes physiques (mécanique, électrotechnique, hydraulique, thermique) permettant ainsi une description acausale et donc proche de la réalité de ces derniers. Cette utilisation importante pour le monde industriel est également abordée dans ce volume.

Je vous souhaite une bonne lecture et une bonne pratique de Scilab !

Paris, 4 juin 2014

Avant-propos

Modéliser et simuler avec Xcos constitue le deuxième volet de l'ouvrage plus général intitulé Scilab : De la théorie à la pratique.

Xcos est un module inclus dans Scilab, qui permet l'édition et la simulation de modèles de systèmes dynamiques pouvant inclure des composantes qui évoluent continûment en fonction du temps et des composantes qui n'évoluent qu'à certains instants périodiques ou non. S'il est assez facile de représenter et de simuler des systèmes purement en temps continu ou purement en temps discret dans Scilab, la réalisation de simulateurs pour les systèmes mixtes peut rapidement devenir extrêmement complexe et d'une mise au point difficile ; Xcos est un logiciel intégré dans l'environnement Scilab qui qui permet de représenter et de simuler ces systèmes de façon simple et flexible. En outre, même pour les systèmes homogènes, l'éditeur graphique de Xcos apporte une représentation visuelle qui facilite grandement la compréhension du modèle et de ses éventuelles adaptations.

1. Raccourcis-clavier

Nous nous sommes efforcés, en particulier dans le premier chapitre de prise en main, de vous fournir un ensemble de raccourcis-clavier pouvant simplifier l'édition des diagrammes. Par défaut, les raccourcis indiqués sont ceux qui fonctionnent sous Windows/Linux, les raccourcis Mac OS sont précisés entre crochets. D'une manière générale, retenez que vous pouvez passer de l'un à l'autre en remplaçant la touche PC Ctrl par la touche Mac Cmd.

2. Réglage de la largeur de l'écran

Vous trouverez de nombreux exemples de code, formatés dans une police à chasse fixe. Afin d'éviter des retours à la ligne inopportuns à l'intérieur d'une ligne de code, la longueur maximale des lignes de code a été fixée à 65 caractères, une valeur suffisamment basse pour être affichée sur la plupart des supports, tout en étant suffisante pour que le code puisse être correctement formaté.

Toutefois, il est possible que sur votre support la largeur maximale affichable soit inférieure à la limite fixée. Le paragraphe test ci-dessous permet de vérifier votre affichage. Il doit tenir sur deux lignes exactement :

00000000001111111111222222222233333333334444444444555555555566666
01234567890123456789012345678901234567890123456789012345678901234

Si ce n'est pas le cas, regardez si vous pouvez agrandir la taille de la fenêtre, diminuer la taille des marges ou diminuer la taille de la police d'affichage. Sur un téléphone portable, placez-le plutôt en mode paysage. Si vous n'y arrivez pas, ne vous inquiétez pas pour autant, la plupart des lignes de code sont inférieures à 65 caractères.

3. Affichage des équations MathML

Les équations de cet ouvrage ont été codées avec le standard MathML. Si vous lisez ce livre en ligne, assurez-vous de disposer d'un navigateur compatible. Vous pouvez vérifier son support du MathML avec cette page de test. Pour notre part, nous vous recommandons l'emploi de Firefox.

Dans un souci d'accessibilité, la version EPUB par défaut ne contient pas de MathML, les équations étant converties en images. Toutefois, si votre reader supporte le MathML, vous disposez aussi d'une version avec MathML afin de bénéficier d'un rendu optimal.

Note > Reportez-vous à la page de support du site des éditions D-BookeR pour plus d'informations.

4. Sources des exemples

Les sources des exemples sont téléchargeables sur la page de présentation du livre sur le site des éditions D-BookeR, à l'onglet Compléments.

5. Accès aux animations GIF

La version numérique du livre contient quelques illustrations sous forme d'animations GIF.

Les animations GIF sont embarquées dans les EPUB, cependant nombreuses liseuses ne vous permettront pas de les visionner. Consultez la page support du site des éditions D-BookeR pour plus d'informations à ce sujet. Dans ce cas, ou si vous lisez ce livre en version PDF, cliquez sur le picto accompagnant l'illustration, il vous redirigera vers la galerie en ligne des animations GIF.

1

Prise en main

Dans Xcos, les systèmes sont représentés graphiquement par des schémas blocs-diagrammes formés de blocs reliés par des liens. Les blocs représentent des sous-systèmes, et les liens peuvent selon les cas représenter les transferts de données et les dépendances d'ordonnancement ou encore des contraintes sur des grandeurs de blocs différents.

Une balle rebondissante modélisée par une équation différentielle caractérisant sa trajectoire entre ses impacts sur le sol et des transitions lors des chocs, un processus chimique contrôlé par un ordinateur, l'évolution d'une épidémie, un automate, sont des exemples de systèmes pouvant être décrits et simulés dans Xcos.

Dans ce chapitre, nous ne présenterons que les principaux aspects syntaxiques de l'éditeur Xcos : ses possibilités d'édition, d'annotation et de simulation des schémas. Nous aborderons la signification exacte de ces représentations graphiques et leur mode précis de fonctionnement dans le chapitre Signification des composants graphiques .

1. Se familiariser avec la fenêtre d'édition

Pour lancer Xcos, entrez l'instruction xcos(); dans la console de Scilab ou cliquez sur l'icône de la barre d'outils. Deux fenêtres s'ouvrent alors : le navigateur de palettes et la fenêtre d'édition (voir Figure 1.1 ).

Figure 1.1 : Vue de la fenêtre d'édition au lancement de Xcos

La fenêtre d'édition comporte une barre de menus, une barre d'outils ainsi que la zone d'édition proprement dite dans laquelle vous allez pouvoir assembler les composants de votre schéma bloc.

Astuce > La console Scilab reste active pendant le fonctionnement de Xcos. S'il n'en est, le plus souvent, pas besoin pour développer et simuler un schéma, elle peut néanmoins être utile pour réaliser de petits calculs.

Les différentes actions réalisables par l'intermédiaire de cette fenêtre d'édition peuvent être déclenchées à partir des menus accessibles dans la barre des menus de la fenêtre d'édition et de leurs sous-menus. Les actions les plus courantes sont aussi accessibles en cliquant sur les icônes de la barre d'outils, voire enfin pour une édition rapide via des raccourcis claviers. Enfin l'éditeur Xcos fournit des menus contextuels adaptés à chaque type de composants.

L'usage de ces menus sera illustré dans les sections suivantes qui montreront pas à pas comment réaliser, modifier, annoter et simuler des schémas.

1.1. Sauvegarde

La sauvegarde sur fichier d'un schéma (ou d'un sous-schéma) s'effectue en sélectionnant le menu Fichier/Enregistrer ou tout simplement en utilisant le raccourci clavier Ctrl+S [Cmd+S]. Le schéma est alors enregistré au format XML dans le fichier de nom <nom du schéma>.xcos ou au format XML compressé dans le fichier de nom <nom du schéma>.zcos. Le nom du schéma est par défaut Sans titre - <date >.zcos.

Astuce > Pour éviter les mauvaises surprises, n'hésitez pas à faire des sauvegardes fréquentes !

Si vous souhaitez attribuer vous-même un nom au fichier, utilisez le menu Fichier/Enregistrer sous, qui provoque l'ouverture d'une fenêtre de navigation et permet de renseigner le nom du fichier et le répertoire dans lequel il sera enregistré.

Figure 1.2 : La fenêtre de navigation

Il est possible par la suite de sauvegarder à nouveau le diagramme dans le même fichier en utilisant la méthode précédente.

Le menu Fichier/Ouvrir ou le raccourci clavier Ctrl+O [Cmd+O] permet naturellement de recharger une sauvegarde.

1.2. Aide en Ligne

L'aide en ligne est un auxiliaire précieux pour développer de nouveaux schémas. Elle fournit en particulier une description pour chacun des blocs. Le menu contextuel Aide du bloc ou le raccourci clavier Ctrl+H [Cmd+H] permet d'ouvrir la page d'aide du bloc sélectionné.

Le menu ?/Aide de Xcos auquel on accède par la barre de menus ou l'outil de la barre d'outils, permet d'ouvrir la page d'aide sur la fonction Scilab xcos.

1.3. Impression et export graphique

Le menu Fichier/Imprimer ou l'outil : permettent de faire imprimer le schéma sur l'imprimante de son choix avec la mise en page désirée.

Le menu Fichier/Exporter, permet de sauvegarder l'aspect graphique du schéma courant dans un fichier au format image WBMP, GIF, PNG, JPG, HTML, VML, SVG, etc.

2. Éditer un schéma bloc

Un schéma bloc est principalement constitué de blocs connectés par des liens. Les blocs représentent les sous-systèmes élémentaires. Ils peuvent représenter de simples fonctions, des équations différentielles, des équations récurrentes, etc. Les liens représentent les connections entre ces sous-systèmes. Une définition précise de ces composants sera donnée lors de la description de la sémantique des schémas Xcos (voir le chapitre Signification des composants graphiques ).

Dans la suite, nous allons montrer pas à pas comment construire un premier schéma très simple qui calcule, par intégration numérique, et visualise l'évolution de la fonction (MathML).

2.1. Les palettes

Pour construire un schéma, l'utilisateur se sert, le plus souvent, de blocs préalablement définis dans des palettes. L'accès à ces palettes s'effectue grâce au navigateur de palettes, qui se trouve dans le menu Affichage.

Nous allons tout d'abord ouvrir la palette Sources qui contient les blocs sources de signaux : générateurs de signaux, lecture sur fichiers.

Figure 1.3 : La palette Sources

Pour copier des blocs de la palette vers la fenêtre d'édition, pressez le bouton gauche de la souris lorsque le pointeur est sur le bloc choisi dans la palette et faites-le glisser dans la fenêtre d'édition en maintenant le bouton de la souris enfoncé jusqu'à l'emplacement désiré.

2.2. Les blocs

Pour débuter votre schéma, commencez par copier le bloc GENSIN_f . C'est un générateur de signaux sinusoïdaux fonctions du temps. Par défaut, il réalise la fonction (MathML), mais vous verrez par la suite que ce bloc peut, plus généralement, réaliser la fonction (MathML). Copiez ensuite le bloc CLOCK_c qui est un générateur d'événements périodiques encore appelé horloge.

Depuis la palette Sinks, qui contient les blocs réalisant les affichages, les écritures sur fichiers, etc., copiez le bloc CSCOPE . Ce bloc est un traceur de courbes, qui va permettre d'afficher la sortie du modèle au fur et à mesure de l'avancée de la simulation. Ouvrez ensuite la palette Systèmes à temps continu qui contient les blocs représentant les systèmes dynamiques en temps continu et copiez le bloc INTEGRAL_m qui est le bloc représentant l'équation différentielle ordinaire :

où u(t) est le signal d'entrée du bloc, y(t) le signal de sortie et x(t) la variable différentielle aussi appelée variable d'état. Il s'agit donc d'un bloc qui fournit sur sa sortie l'intégrale par rapport au temps du signal d'entrée. Par défaut, la valeur initiale (MathML) vaut zéro.

La zone d'édition contient alors les éléments suivants :

Figure 1.4 : La zone d'édition après copie des blocs

Astuce > Pour éviter les mauvaises surprises, n'hésitez pas à sauvegarder régulièrement le schéma à l'aide du menu Fichier/Enregistrer ou par un clic sur ou encore par un Ctrl+S [Cmd+S].

Les ports des blocs

Les petites flèches noires et rouges sur les bords des blocs représentent les entrées et les sorties des blocs aussi appelées ports. Les ports noirs, souvent placés sur les côtés gauche et droit du bloc représentent essentiellement les entrées et sorties de données, bien qu'on verra au chapitre Signification des composants graphiques  qu'ils peuvent aussi porter des signaux d'activation. Les ports rouges, souvent placés sur les côtés haut et bas représentent les entrées et sorties de signaux d'activation (aussi appelés événements). Les liens sont les lignes connectant les ports entre eux.

Figure 1.5 : Les ports des blocs

Les données connectées aux ports d'entrées ou de sorties peuvent être, selon le bloc considéré, soit des nombres (entiers ou flottants) soit des vecteurs de nombres, soit même des tableaux à deux dimensions. Le système vérifie la cohérence des connections au lancement de la simulation.

Sélectionner les objets

La plupart des fonctions d'édition agissent sur les objets sélectionnés. Pour sélectionner un objet, cliquez dessus avec le bouton gauche de la souris. Un bloc sélectionné est entouré de carrés verts :

Comme dans la plupart des éditeurs, il est possible de sélectionner plusieurs objets en maintenant enfoncée la touche Ctrl [Cmd] et en cliquant sur chacun des objets à sélectionner, ou encore en définissant un rectangle de sélection avec la souris. Pour cela, désignez un coin du rectangle de sélection en pressant le bouton gauche de la souris, puis étendez le rectangle en déplaçant la souris jusqu'à la position désirée pour le coin opposé du rectangle et enfin relâchez le bouton gauche.

Déplacer les blocs, aligner les blocs

Une fois sélectionné, un bloc ou un ensemble de blocs peuvent être déplacés dans la fenêtre. Pour cela, pressez le bouton gauche de la souris sur l'un de ces blocs, déplacez-la en maintenant le bouton enfoncé et relâchez à l'endroit désiré. Vous pouvez aussi utiliser les flèches directionnelles ↑ ↓ ← → pour effectuer de petits déplacements horizontaux et verticaux.

Pour les alignements fins des blocs, sélectionnez au préalable les blocs que vous souhaitez aligner. Par exemple, GENSIN_f  et INTEGRAL_m   puis sélectionnez le menu Format/Aligner les blocs depuis la barre de menus ou dans le menu contextuel qui s'ouvre d'un clic droit de la souris.

Si vous sélectionnez Milieu et que vous recommencez l'opération avec les blocs CLOCK_c  et CSCOPE  et le menu Centrer , vous obtiendrez le schéma de la Figure 1.6 .

Figure 1.6 : Le schéma avec les blocs alignés

2.3. Les liens

Les connections entrées/sorties s'appellent aussi les liens. Elles représentent à la fois le transfert de données et les dépendances d'ordonnancement.

La connexion des ports s'effectue simplement en positionnant le curseur sur l'un des ports que l'on souhaite connecter. Le port doit se mettre en surbrillance (), cliquez alors avec le bouton droit ou gauche de la souris et déplacez le curseur jusqu'au port de destination (il doit se mettre en surbrillance quand le curseur est correctement positionné). La connexion est effectuée lorsque vous relâchez le bouton de la souris.

Note > Il suffit de désigner le bloc de destination pour connecter un lien à son premier port d'entrée non connecté : c'est pratique et rapide.

Si vous souhaitez créer des points intermédiaires sur le lien, relâchez le bouton de la souris au point désiré et cliquez à nouveau pour fermer le segment et en initier un autre.

Note > Les liens connectant les ports d'activation se dessinent automatiquement en rouge.

Attention > Il n'est pas possible de démarrer plusieurs liens à partir du même port de sortie mais il est possible de démarrer un lien à partir d'un autre lien. Le plus simple est de double-cliquer sur le point du lien source pour initialiser le nouveau lien.

La connexion des ports réguliers représente un flot de données orienté du port de sortie vers le port d'entrée. Ces données transmises peuvent être des flottants, des entiers, des vecteurs, des matrices, etc. Mais ces liens entre ports réguliers représentent aussi la causalité indiquée par le sens des flèches des ports.

La connexion des ports d'activation indique la propagation d'un événement (ou signal d'activation) du port de sortie vers le port d'entrée. En particulier, la connexion de l'horloge au traceur de courbe va indiquer qu'à chaque top de l'horloge la valeur présente sur le port d'entrée régulier va être affichée.

Lorsque tous les liens ont été établis, on obtient un schéma complet tel que celui de la Figure 1.7.

Figure 1.7 : Le schéma complet

Encadré  : Les fonctionnalités de base de l'éditeur

L'éditeur de schéma de Xcos propose des outils d'édition standards tels que :

Annuler la dernière opération

Vous pouvez annuler la dernière opération d'édition par le menu Édition/Défaire ou à l'aide du bouton ou du raccourci-clavier Ctrl+Z [Cmd+Z]. Cette action peut être répétée pour remonter dans l'historique.

Rétablir la dernière opération annulée

Vous pouvez rétablir la dernière opération que vous avez annulée via le menu Édition/Rétablir, à l'aide du bouton ou du raccourci-clavier Ctrl+Y [Cmd+Y].

Couper les objets sélectionnés

Le menu Édition/Couper, le bouton ou le raccourci clavier Ctrl+X [Cmd+X] permettent de supprimer les objets sélectionnés du schéma tout en gardant une copie dans le presse-papier. Les liens reliant un objet sélectionné à l'extérieur de la sélection sont aussi supprimés mais ne sont pas copiés dans le presse-papier.

Copier les objets sélectionnés

Le menu Édition/Copier, le bouton ou le raccourci clavier Ctrl+C [Cmd+C] permettent de placer une copie des objets sélectionnés dans le presse-papier. Les liens reliant un objet sélectionné à l'extérieur de la sélection ne sont pas copiés.

Coller le contenu du presse-papier

Le menu Édition/Coller, le bouton ou le raccourci clavier Ctrl+V [Cmd+V] permettent de copier le contenu du presse-papier dans le schéma courant.

Supprimer les objets sélectionnés

Le menu Édition/Supprimer, le bouton ou le raccourci clavier Suppr [Fn+←] permettent d'effacer les blocs ou les liens sélectionnés. Quand vous effacez un bloc, toutes les liaisons qui lui sont connectées sont elles aussi effacées.

Sélectionner tout le schéma courant

Pour sélectionner tous les objets du schéma, vous pouvez utiliser le menu Édition/Tout sélectionner ou le raccourci clavier Ctrl+A [Cmd+A].

Inverser la sélection

Pour inverser la sélection courante utiliser le menu Édition/Inverser la sélection.

3. Simuler

Une fois le schéma complet, vous pouvez en lancer la simulation. Pour cela, sélectionnez le menu Simulation/Démarrer ou le bouton . Le bloc traceur de courbes provoque alors l'ouverture d'une fenêtre où le signal va s'afficher au fur et à mesure de l'avancée de la simulation avec si nécessaire un rafraîchissement périodique de la fenêtre graphique. Par défaut, le rafraîchissement s'effectue toutes les 30 unités de temps de simulation.

Figure 1.8 : Visualisation du résultat de la simulation

Par défaut la simulation s'effectue pendant 100 000 unités de temps. Vous pouvez à tout moment interrompre la simulation d'un simple clic sur le bouton ou par le menu Simulation/Arrêter. Nous verrons à la Section 5.3, Les paramètres du simulateur comment spécifier le temps final.

4. Spécifier les paramètres des blocs

Jusque-là nous avons utilisé les blocs tels qu'ils se trouvent dans les palettes. La plupart d'entre eux sont paramétrables. Pour modifier les paramètres d'un bloc, double-cliquez dessus (ou cliquez droit et sélectionnez l'entrée Paramètres du bloc... dans le menu contextuel).

Par exemple, si vous souhaitez modifier les bornes pour le graphique, double-cliquez sur le bloc traceur de courbes. La fenêtre de dialogue ci-dessous s'ouvre :

Figure 1.9 : Paramètres du traceur de courbes

Vous pouvez alors modifier les bornes des ordonnées du graphique en spécifiant Ymin : -0.5, Ymax : 2.5 et l'intervalle de temps pour le rafraîchissement de la fenêtre graphique Refresh period : 300. Précisez aussi le label de l'afficheur Name of Scope, qui définit le nom qui sera affecté à la fenêtre graphique, et validez ces choix en cliquant sur le bouton OK.

Si vous relancez alors la simulation, vous obtiendrez le graphique de la Figure 1.10  (la simulation a été interrompue au bout de 250 unités de temps).

Figure 1.10 : Nouvelle visualisation de la simulation

5. Compléter le schéma

Nous allons modifier le schéma précédent pour comparer la sortie du bloc intégrateur avec la solution théorique y(t) = 1−cos(t).

5.1. Dupliquer un bloc

De même que vous pouvez copier un bloc à partir d'une palette, vous pouvez aussi dupliquer un bloc déjà contenu dans un schéma en le sélectionnant (clic gauche), puis en le copiant dans le presse-papier (à l'aide du menu contextuel Copier ou du raccourci Ctrl+C [Cmd+C]). Collez ensuite le contenu du presse-papier dans la fenêtre à l'aide du raccourci Ctrl+V [Cmd+V] ou du menu contextuel Coller, et positionnez-le à l'endroit désiré avec la souris.

Astuce > Il est aussi possible et plus rapide de réaliser une copie d'un bloc présent dans le schéma en procédant de la même façon que pour déplacer le bloc (voir section Déplacer les blocs, aligner les blocs) mais en pressant le bouton Ctrl avant de relâcher le bouton de la souris à la position désirée.

Un bloc est copié avec tous ses paramètres courants. Dans le cas présent, nous avons copié le bloc générateur de sinusoïdes et modifié la valeur de la phase (0 remplacé par (MathML)) dans ses paramètres pour obtenir un bloc dont la sortie est −cos(t).

Figure 1.11 : Paramètres du bloc générateur de sinusoïdes

Astuce > Les paramètres des blocs, comme ici la phase, peuvent être renseignés par toute expression Scilab générant un résultat du type et de la dimension attendus.

Copions le bloc sommateur SUMMATION de la palette Opérations mathématiques et le bloc générateur de constante CONST_m de la palette Sources.

Le bloc sommateur permet de générer un signal de sortie égal à la somme de ses signaux d'entrées éventuellement changés de signe. Le nombre de signaux d'entrées et leur signe respectif sont spécifiés par les paramètres du bloc. Pour notre schéma, le bloc a été paramétré pour réaliser la somme de ses deux entrées :

Figure 1.12 : Paramètres du bloc sommateur

Le bloc générateur de constante génére un signal de sortie constant. Ce signal peut être un scalaire ou plus généralement un tableau selon le paramètre spécifié par l'utilisateur. Pour notre schéma, le bloc est paramétré pour générer la constante 1.

Figure 1.13 : Paramètres du bloc générateur de constante

5.2. Insérer un bloc sur un lien

Pour comparer le résultat de l'intégration numérique avec le résultat théorique, nous allons faire dessiner les deux signaux dans un même traceur de courbes.

Pour ce faire, nous insérons en amont du bloc de visualisation un bloc multiplexeur MUX de la palette Routage de signal. Ce bloc permet de construire une sortie vectorielle à partir de ses entrées.

Attention > Pour insérer ce bloc, vous devez d'abord détruire le lien entre le bloc intégrateur et le bloc de visualisation : sélectionnez le lien par un clic gauche puis pressez la touche Suppr [Fn+←] du clavier, ou ouvrez le menu contextuel du lien (clic droit) et choisissez Supprimer.

Astuce > Vous aurez peut-être besoin d'augmenter l'espace pour pouvoir insérer le bloc multiplexeur et ses connections. Sachez que vous pouvez déplacer un ensemble de blocs en les sélectionnant puis en les déplaçant à la souris ou avec les flèches directionnelles ↑ ↓ ← →. Privilégiez cette dernière solution si vous voulez garder l'horizontalité et la verticalité des liens.

Une fois les blocs connectés, on obtient le schéma de la Figure 1.14 .

Figure 1.14 : Le schéma complété

Note > Le bloc de visualisation s'adapte automatiquement à son entrée vectorielle.

La simulation montre alors deux courbes quasiment superposées. Si vous effectuez un zoom sur la partie haute de la courbe, vous constaterez une légère erreur.

Figure 1.15 : Visualisation du résultat de la simulation et agrandissement

5.3. Les paramètres du simulateur

Du fait de la présence du bloc INTEGRAL_m   la simulation de ce modèle est réalisée par un intégrateur numérique d'équations différentielles. Le petit écart entre la valeur simulée et le résultat théorique mis en évidence à la Figure 1.15  provient des tolérances de l'intégrateur numérique chargé de calculer les évolutions des équations différentielles. Le menu Simulation/Configurer ouvre une fenêtre de dialogue qui permet de modifier les paramètres du simulateur (voir Figure 1.16 ) et en particulier de spécifier la Tolérance absolue de l'intégrateur ainsi que la Tolérance relative de l'intégrateur qui conditionnent la précision des résultats. Ces tolérances contrôlent en particulier le pas d'intégration. Le pas de temps spécifié par l'horloge CLOCK_c ne spécifie dans ce schéma que les instants d'observation des signaux.

Figure 1.16 : Les paramètres du simulateur

En affectant des tolérances plus strictes, les courbes issues de la simulation se confondront.

Le champ Temps d'intégration final permet de spécifier la durée totale de la simulation, tandis que le champ Mise à l'échelle temps réel permet d'associer les paramètres de durée et de fréquence au temps effectif. Plus concrètement, si l'utilisateur demande une durée de simulation de 30 unité de temps et qu'il spécifie un facteur de mise à l'échelle temps réel de 1, alors la durée effective de la simulation sera de 30x1 secondes, pour autant que l'effort de calcul requis pour réaliser la simulation soit inférieur à 30 secondes.

5.4. Fonder les paramètres d'un schéma sur des variables

Le schéma que nous avons construit est paramétré pour un signal d'amplitude 1 et de pulsation 1 rd/s. Pour modifier les valeurs de ces paramètres, il faudrait rééditer chacun des blocs et entrer de nouvelles valeurs.

Vous pouvez éviter cette tâche fastidieuse et source d'erreurs en utilisant des variables plutôt que des valeurs dans les dialogues des blocs. Les variables peuvent être définies dans l'environnement Scilab, mais cette solution est à éviter dans la mesure où elle ne rend pas le schéma autonome. Utilisez de préférence le menu Simulation/Modifier le contexte qui permet de définir des variables en utilisant la syntaxe de Scilab tout en stockant les valeurs dans la structure de données du schéma. Ces variables pourront ensuite être utilisées dans la définition des paramètres des blocs.

Les variables ainsi définies constituent ce que l'on appelle les variables de contexte ou plus simplement le contexte du schéma.

Figure 1.17 : La boîte de dialogue de l'éditeur de contexte

Attention > Si les instructions fournies dans cette boîte de dialogue sont incorrectes un message d'erreur est envoyé dans la console Scilab et peut de ce fait passer inaperçu. Il est donc préférable de tester ces instructions au préalable dans Scilab.

Nous allons appliquer ce procédé à notre schéma pour qu'il fonctionne pour une entrée sinusoïdale de la forme A sin(wt). Notons qu'alors la valeur théorique de l'intégrale est (A/w)*(1−cos(wt)).

Dans la fenêtre de dialogue, entrez les instructions permettant de définir les variables A et w contenant respectivement les valeurs de l'amplitude et de la pulsation. L'amplitude et la phase du bloc générateur de sinusoïdes en amont du bloc intégrateur peuvent être définies respectivement par A et w. La valeur du bloc constante, par A/w. L'amplitude et la phase du second bloc générateur de sinusoïdes, respectivement par A/w et w. La période de l'horloge, par 40*w/(2*%pi) pour avoir 40 points d'affichage par période. Enfin, les bornes du graphique, par ymin : -0.5 et ymax : 0.5+2*A/w.

Ainsi, il suffira par la suite de modifier la définition de la pulsation w et/ou de l'amplitude A dans le contexte pour que le schéma s'adapte automatiquement aux nouvelles valeurs.

Attention > Les variables doivent être définies dans le contexte avant de pouvoir être référencées dans les blocs.

6. Vérifier le schéma

L'éditeur graphique de Xcos permet de créer facilement un schéma formé de blocs connectés par des liens, mais ce schéma n'est ni plus ni moins qu'un programme. Et comme tout programme, vous devez veiller à ce que sa syntaxe soit valide. Celle-ci est vérifiée par le compilateur de Xcos, qui signale les éléments non valides par des messages d'erreur.

L'éditeur interdit, par exemple, de réaliser des constructions illicites telles que connecter deux ports de sorties, connecter un port régulier avec un port d'activation, etc. Cependant il est malaisé voire impossible de détecter, avant que le schéma ne soit complété, des erreurs telles que :

l'existence d'un ou plusieurs ports d'entrées non connectés à un bloc amont ;

des spécifications des dimensionnalités ou de types incompatibles pour des ports reliés par un lien ;

l'existence de boucles algébriques. On appelle boucle algébrique dans un schéma une suite de connections telle que l'entrée d'un bloc dépend instantanément d'une de ses sorties. Par exemple un bloc sommateur SUMMATION dont la sortie est directement connectée à l'une de ses entrées.

Ces vérifications sont réalisées par le compilateur de Xcos. La première erreur détectée est rapportée par un message d'alerte et par des petits drapeaux clignotants situés à proximité des blocs en cause. Comme dans l'exemple ci-dessous (Figure 1.18 ) où le signal issu du bloc multiplexeur MUX est un signal vectoriel à deux composantes alors que le bloc intégrateur n'admet en entrée qu'un signal scalaire.

Figure 1.18 : Signalement d'une erreur de syntaxe

7. Présenter le schéma

7.1. La grille

Par défaut, les positions dans la zone d'édition sont quantifiées c'est-à-dire que les coins des blocs, les ports, les cassures des liens etc., se positionnent sur une grille matérialisée par les lignes de points horizontaux et verticaux de la zone d'édition. Il est ainsi facile d'aligner les blocs et les ports pour obtenir des schémas lisibles. Vous pouvez cependant désactiver cette quantification des positions à l'aide du menu Format/Grille.

7.2. Ajouter des annotations

...