4
LES FICHES TECHNIQUES Site officiel de Walter Nuninger URL: http://nuninger.free.fr - Page 1 Scilab & Ciscos Fiche n° 140 Objectif Cette fiche vous indique les notions principales pour utiliser Scilab & Ciscos Téléchargement du logiciel Scilab est un Opensource téléchargeable sur le site de l’éditeur : URL : http://www.scilab.org [en ligne], 01.2008 Généralités sur Scilab Il s’agit d’un logiciel de calcul numérique développé par l’INRIA depuis 1990. Il est adapté à la résolution de problèmes scientifiques (analyse numérique, statistiques, traitement du signal, automatique….) Il permet d'effectuer des calculs numériques, notamment matriciels, de visualiser les résultats sous forme graphique, la simulation de processus linéaire ou non. La formulation des problèmes s'apparente à la formulation mathématique des problèmes à résoudre. Figure 1 : fenêtre Scilab v1.4.2 ou supérieure, est constitué d’une fenêtre principale (exécution de commande), à laquelle est associé un espace mémoire contenant les variables utilisées. D’autres fenêtres sont disponibles : une console et l’éditeur SciPad() permettant le développement de ligne de code et l’exécution. L’utilisation du logiciel consiste à lancer des lignes de commandes (dans la fenêtre principale). Un éditeur intégré Scipad() permet de créer des programmes (fichier d’extension .sce) : succession de commandes spécifiques dont la conception s’apparente à la programmation en C (fonctionnellement). Figure 2 : édition d’un fichier .sce (des commandes unix sont acceptées) Associé à Scicos() (commande lancée sous Scilab), il devient un outil graphique (cf. Figure 3) très simple d’utilisation pour la simulation temporelle et fréquentielle des processus dynamiques (régis par des équations différentielles). La programmation (fichier d’extension .cos), soit la saisie du schéma synoptique, se fait par une interface graphique pilotée par souris : par ajout, copier/coller ou sélection/déplacement de blocs fonctionnels (dont on relie les entrées et les sorties) sur un plan de travail. L’analyse du modèle après saisie se fait par simulation qui s’appuie sur une discrétisation des signaux selon un pas d’échantillonnage suffisant au regard de la plus petite constante du système à étudier. De nombreuses bibliothèques de modèles (dites Palettes : sources, fonction de transfert en temps continu ou en temps discret) sont proposées immédiatement exploitables.

fiche scilab 140 ok - jl.domec.free.frjl.domec.free.fr/siteDjl_fichiers/scilab/fiche_scilab.pdf · simulation de processus linéaire ou non. La formulation des problèmes s'apparente

  • Upload
    leliem

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: fiche scilab 140 ok - jl.domec.free.frjl.domec.free.fr/siteDjl_fichiers/scilab/fiche_scilab.pdf · simulation de processus linéaire ou non. La formulation des problèmes s'apparente

LES FICHES TECHNIQUES Site officiel de Walter Nuninger URL: http://nuninger.free.fr N° - Page 1

Scilab & Ciscos Fiche n° 140 Objectif Cette fiche vous indique les notions principales pour utiliser Scilab & Ciscos Téléchargement du logiciel Scilab est un Opensource téléchargeable sur le site de l’éditeur : URL : http://www.scilab.org [en ligne], 01.2008 Généralités sur Scilab Il s’agit d’un logiciel de calcul numérique développé par l’INRIA depuis 1990. Il est adapté à la résolution de problèmes scientifiques (analyse numérique, statistiques, traitement du signal, automatique….) Il permet d'effectuer des calculs numériques, notamment matriciels, de visualiser les résultats sous forme graphique, la simulation de processus linéaire ou non. La formulation des problèmes s'apparente à la formulation mathématique des problèmes à résoudre.

Figure 1 : fenêtre Scilab v1.4.2 ou supérieure, est constitué d’une fenêtre principale (exécution de commande), à laquelle est associé un espace mémoire contenant les variables utilisées. D’autres fenêtres sont disponibles :

une console et l’éditeur SciPad() permettant le développement de ligne de code et l’exécution. L’utilisation du logiciel consiste à lancer des lignes de commandes (dans la fenêtre principale). Un éditeur intégré Scipad() permet de créer des programmes (fichier d’extension .sce) : succession de commandes spécifiques dont la conception s’apparente à la programmation en C (fonctionnellement).

Figure 2 : édition d’un fichier .sce (des commandes unix sont acceptées)

Associé à Scicos() (commande lancée sous Scilab), il devient un outil graphique (cf. Figure 3) très simple d’utilisation pour la simulation temporelle et fréquentielle des processus dynamiques (régis par des équations différentielles). La programmation (fichier d’extension .cos), soit la saisie du schéma synoptique, se fait par une interface graphique pilotée par souris : par ajout, copier/coller ou sélection/déplacement de blocs fonctionnels (dont on relie les entrées et les sorties) sur un plan de travail. L’analyse du modèle après saisie se fait par simulation qui s’appuie sur une discrétisation des signaux selon un pas d’échantillonnage suffisant au regard de la plus petite constante du système à étudier. De nombreuses bibliothèques de modèles (dites Palettes : sources, fonction de transfert en temps continu ou en temps discret) sont proposées immédiatement exploitables.

Page 2: fiche scilab 140 ok - jl.domec.free.frjl.domec.free.fr/siteDjl_fichiers/scilab/fiche_scilab.pdf · simulation de processus linéaire ou non. La formulation des problèmes s'apparente

LES FICHES TECHNIQUES Site officiel de Walter Nuninger URL: http://nuninger.free.fr N° - Page 2

Programmer sous Scilab L’intérêt de Scilab est de pouvoir travailler sur des fichiers d’extension « .sce » contenant des suites de commandes que l’on saisirait dans la Fenêtre principale. Le fichier est créé grâce à l’éditeur de texte de Scipad() sauvegardé dans le « Répertoire de travail » puis exécuté en saisissant simplement son nom dans la fenêtre principale, comme une commande. Commandes Scilab utiles La syntaxe générale d'appel d'une fonction est (cf. Figure 2) :

[s1, s2, ..., sn ] = nom_fonction(e1, e2, ..., ep) où les ei sont les paramètres d'entrée de la fonction nom_fonction et les sj les paramètres de sortie. // ligne de commentaire le point virgule ';' derrière une commande est facultatif ; il empêche l'affichage du résultat de celle-ci. whos donne la liste des variables déjà définies et leur taille help donne la liste de toutes les commandes (bibliothèques) help <commande> donne l’aide de la commande cherchée Commandes systèmes sont utilisables (ex. pwd ; ls ; etc… ) load(‘<fichier.dat>’,’var’) chargement des données de fichier.dat (voir aussi la fiche 132) save(‘<fichier.dat>’,var) sauvegarde la variable var (si elle existe) dans fichier.dat (binaire) clear <var> efface toutes la variable <var> disp('chargement '); affiche un commentaire à l'écran n=[2 1]; A=[1 2 ; 2 4] définition de vecteur (polynôme) ou matrice size(A) renvoie le nombre de ligne et de colonne de A A(i,j), renvoie l'élément de la ième ligne et de la jème colonne de A , A(:,2), A(1,:) renvoie la deuxième colonne de A , la première ligne de A eye(4,4) crée une matrice identité 4x4 zeros(1,4), ones(5,1) crée un vecteur ligne (1x4) de zéros ou vecteur colonne (5x1) de 1 diag(x) crée une matrice diagonale avec les éléments de x inv(A), A’, det(A) calcul l'inverse de A, de sa transposée de A, de son déterminant a=2+3*%i définie un nombre complexe (i tel que i*i=-1 est noté i) find(<condition_sur_x>) renvoie les indices des points de x vérifiant la condition (x>100, x==100 etc.) [y,m]=max(x) renvoie le maximum de x (y) et son indice (m) si x est un vecteur mean(x) , std(x) valeur moyenne de x et écart-type de x (standard deviation) diff(x,n) dérivée numérique d’ordre n pour un vecteur x x=poly(0,’x’) ; crée un polynôme de la variable x poly(A,’x’,’coef’) crée le polynôme de coefficients A=[ai] (classés par ordre croissant) M=inv(U)*Y Interpolation, calcul d'un polynôme M (coef.) de degré n, passant par les points : (x,y) horner(P,t) calcul des valeurs d'un polynôme P(x) défini par « poly » pour les valeurs de x (vecteur) M=U\Y (M modèle), lsq Approximation des moindres carrés U=[matrice des entrées] ; Y=[vecteurs mesures] xbasc(<numéro>) crée une nouvelle figure, et l’efface (voir aussi clf(<numero>) t=deb:pas:fin; crée un vecteur de points espacés de pas sur [deb,fin] (échantillonnage) w=logspace(-2,2,100); crée une échelle logarithmique de 100 points entre 0.01 et 100 subplot(<i><j><k>) permet de diviser la fenêtre graphique en ixj zones (ligne x colonne). Les différentes

zones sont repérées par <k> (cf. un tableau) plot2d(t,y) , plot tracé de y en fonction de t (tracé de 2 fonctions sur le même : répéter la commande) plot2d2(t,y) tracé de type échelon des signaux (discret), voir aussi : [xd,yd]=stairs(x,y) ; plot(xd,yd) xtitle('titre',’temps’,’y’) titre et étiquettes des abscisses et des ordonnées de la figure xgrid grille sur la courbe s=poly(0,'s'); n=3; d=s+1 définition d’un numérateur et d’un dénominateur p=s*(s+1) définition du produit de convolution sys=syslin(‘c’,n,d) permet de créer la fonction de transfert n/d ; accès : sys.den, sys.num etc. (continu ici) y=csim(u,t,sys); réponse indicielle (échelon) du système «sys », échelle de temps : t Sys=sys1 /. sys2 boucle fermée avec boucle ouverte (sys1) et chaîne de retour (sys2) et retour négatif bode(sys,fmin,fmax) Diagramme de Bode (gain/phase en échelle logarithmique (w) du système définit g_margin(sys), p_margin(sys) Marge de gain pour le système « sys » et marge de phase plot2d, Tracé en échelle log/log ou semi-log nyquist, rlocus Diagrammes de Nyquist et lieux d’Evans respectivement [K]=ppol(A,B,poles) calcul du gain k tel que les pôles de (A- Bk) soit poles (vecteur)

Page 3: fiche scilab 140 ok - jl.domec.free.frjl.domec.free.fr/siteDjl_fichiers/scilab/fiche_scilab.pdf · simulation de processus linéaire ou non. La formulation des problèmes s'apparente

LES FICHES TECHNIQUES Site officiel de Walter Nuninger URL: http://nuninger.free.fr N° - Page 3

Saisie d’un synoptique sous Scicos() Dans la fenêtre principale, tapez scicos(). Les palettes suivantes sont disponibles (cf. Figure 3) :

Sources créer les signaux excitateurs d’entrées (ex. échelon, sinus, bruits...) Sinks fichier .mat, variables du workspace, oscilloscope etc… récupérer les sorties Linear propose des modèles de fonctions de transfert analogiques (en p, Laplace) Nonlinear propose des non linéarités (zone morte, saturation…) Matrix fonctions mathématics Integer fonctions logiques Events blocks permettant de déclencher (par exemple l’enregistrement) Threshold, Others divers Branching pour connecter les blocs (multiplexeur, switch…) Electrical modèle des circuits électriques ThermoHydraulics modèle des circuits hydrauliques et thermiques

Figure 3 : Exemple de palette « sources » et Synoptique d’un système H(s)=num/den en Boucle ouverte

Pour générer le synoptique, il convient de créer un nouveau fichier (extension .cos). Sauvegardez ! Pour utiliser un modèle existant il suffit de sélectionner le modèle dans la palette à l'aide de la souris, de faire un copier/coller dans son espace de travail. L'utilisation des raccourcis Ctrl-C et Ctrl-V (copier/coller) est possible (cf. Figure 3). On note que pour définir les paramètres du modèle copié, il suffit de cliquer deux fois sur celui-ci. Une fenêtre de dialogue s'ouvre alors (cf. Figure 4). Vous devez remplir les informations nécessaires (variables numériques ou formelles) en respectant la syntaxe proposée. Les variables utilisées doivent être connues dans le workspace. Judicieusement (souplesse des modifications) on utilise un programme sce qui les définit (par exemple numérateur et dénominateur des fonctions de transfert). Les signaux de sortie sont récupérés dans des variables du Workspace, ou dans un fichier d’extension « .dat » ou encore visualisés à l’écran selon la « SINKS » choisie. Les connections entre les différents blocs se réalisent à la souris en cliquant sur la sortie d'un bloc et en tirant le fil ainsi créé jusqu'à l'entrée du bloc suivant. Pour modifier la position d'un fil, il suffit de le sélectionner en cliquant avec le bouton de gauche de la souris (la sélection est visualisée par un cercle). Simulation temporelle d’un modèle sous Scicos() Avant de simuler, assurez-vous que votre schéma comporte un signal d'entrée et un signal correspondant au temps de simulation (on ajoutera une Clock) Choix du signal d’entrée : il est fonction du type d’analyse que l’on souhaite : échelon pour l’analyse de la réponse indicielle ou encore fréquentielle etc.

Figure 4 : paramétrage d’un bloc de système 1er ordre

Page 4: fiche scilab 140 ok - jl.domec.free.frjl.domec.free.fr/siteDjl_fichiers/scilab/fiche_scilab.pdf · simulation de processus linéaire ou non. La formulation des problèmes s'apparente

LES FICHES TECHNIQUES Site officiel de Walter Nuninger URL: http://nuninger.free.fr N° - Page 4

Choix des signaux de sortie : il y a le temps et la/les sorties du systèmes mais aussi l’entrée à mémoriser, voire des mesures intermédiaires.

Figure 5 : paramétrage de la taille des variables

Il convient ensuite de fixer les paramètres de simulation en fonction du système étudié, soit : le choix de la méthode numérique de simulation (calcul), les durées de simulation (début/fin), l’échantillonnage. Dans le menu du synoptique, faire SIMULATE / SETUP

Figure 6 : accès aux paramètres de simulation

Dans l’onglet propriétés (figure 7) on choisit de manière spécifique si besoin (notamment sur les conditions d’échantillonnage). On lance la simulation en cliquant sur RUN du menu SIMULATE après validation. Vous pouvez ensuite utiliser les résultats. Attention, si vous simulez à nouveau, vous perdrez les anciens résultats. Remarques : On peut également simuler uniquement par ligne de commande csim avec une définition du système par syslin. On devra donner le signal d’entrée et l’échelle de temps (avec un pas adéquat).

Figure 7 : Paramétrage de simulation Réglages indicatifs pour un système 1er ordre : pour un système du premier ordre de constante de temps T, le temps de réponse est de l'ordre de 4 à 5 fois cette constante de temps. On choisit donc Stop-time >5T (durée de simulation). Par ailleurs, d’après Shannon, il faut Te<T/2. On prend généralement au moins 10 points par constante de temps, ce qui conduit à un pas de calcul Step-size < T/1. Réglages indicatifs pour un système d’ordre n : pour les systèmes d'ordre n de constantes de temps T1, T2, ..., Tn, on peut faire les choix suivants :

Stop time > 5.max(T1,..., Tn) et Step size < min(T1,..., Tn)/10.

Figure 8 : Exemples de code et de tracé associé

réponse indicielle d’un 1er ordre

Références Nuninger W., Importer et exporter des données sous Excel, Maple, Matlab, Scilab, Fiche technique n° 124, - Savoir utiliser

Scilab (premier pas), Fiche technique n° 57d-140 - Commandes Matlab et Scilab, Fiche technique n° 132, URL:nuninger.free.fr, [en ligne], 2008

Scilab, Site officiel, URL : http://www.scilab.org, fonctions, URL : http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm, librairies, URL : http://www.scilab.org/contrib/index_contrib.php?page=download.php [en ligne], consulté 10.07

Lerat J., Scilab, exemples URL : http://lerat.julien.free.fr/CONT_FR/SCILAB_FR.html, [en ligne], consulté 2008