lundi 5 septembre 2016

premiers pas avec Xcos

Dans le monde de l’ingénierie Matlab est  considéré comme un outil incontournable entre autre par ce qu'il intègre un outil de modélisation de systèmes complexes appelé Simulink. Ce type de logiciel permet, par exemple, de créer virtuellement  un circuit électronique en assemblant  sur un diagramme des composants de base (résistances, diodes, transistors, voltmètres oscilloscopes  ... tous appelés "blocs" )   pour ensuite simuler son  fonctionnement . Scilab possède lui aussi son éditeur de Blocs-Diagrammes,   nommé XCOS, qui permet de simuler  toute sorte de circuits et de faire ses premiers pas en électronique.



Pour donner une petite idée de ce que permet de faire Xcos je vais prendre un exemple très simple et fondamental en électronique : Le transistor de type NPN. 

 source : wikipédia
source : wikipédia

pour faire simple   ce composant est formé de 3  connexions :
  • le collecteur C, l’émetteur  E et la base B
 et dans l'idéal son fonctionnement est le suivant
  • si la base B  est alimentée  le courant peut passer entre le collecteur et l'émetteur , sinon le courant ne passe pas


Pour tester  son fonctionnement il suffit d'insérer les bornes C et E  d'un transistor entre une source de courant continu et un récepteur (diode, moteur, résistance avec voltmètre en parallèle , pour visualiser le passage ou non du courant ...) puis de relier la base B au pôle + de la source de courant via un interrupteur. On pourra ainsi vérifier  que le courant passe ou pas dans le récepteur suivant que la position de l'interrupteur.


Pour construire le schéma de ce circuit dans Xcos il faut :
  • commencer par lancer scilab 
  • puis démarrer l'éditeur Xcos (depuis la barre de menu  scilab "application->Xcos" ou lancer la commande xcos dans la console)
  • puis ouvrir le navigateur de palette  (depuis la fenêtre Xcos "vue->navigateur de palettes" )

démarrage de Xcos  et son navigateur de palettes

ensuite vous pouvez sélectionner les composants dont vous avez besoin dans le navigateur de palette et les placer dans Xcos par glisser/déposer (ou copier coller aussi)   :

une source, un transistor, un interrupteur et une résistance



Pour placer les composants dans une position correspondant à votre circuit vous pouvez les faire tourner sur eux même via le menu contextuel  ou depuis le clavier en tapant CTRL+R . Ensuite il faut relier les composants entre eux,  c'est à dire tracer un lien  entre les bornes + (plot noir) et -  (plot blanc)  des composants  :




 pour  relier les composants on procède comme suit :
  • on clique sur le port d'un composant, puis on déplace le curseur (en maintenant le clic droit enfoncé) un "fil" bleu apparaît
  • on amène ensuite ce "fil"  jusqu'au port qu'on veut connecter en déplaçant la souri (on peut faire des clics intermédiaires pour faire une ligne brisée)
  • la ligne se termine quand on clique sur un port libre d'un composant ou sur un autre "fil"
on a obtenu un premier circuit  correspondant bien au circuit décrit mais ... totalement inutile! En effet il n' y a rien à observer dans ce système, pour ça il faut rajouter  des instruments de mesure (voltmètre, ampèremètre)  et de visualisation (oscilloscope = composant CMSCOPE) et les relier  au circuit suivant ce que l'on veut mesurer :


ici on a mis un voltmètre en parallèle de la résistance et un ampèremètre en série, les deux sont reliées aux ports noirs de l'oscilloscope  pour visualiser les mesures. Mais là encore  ce schéma n'est pas utilisable : tant que les ports de certains composants ne sont pas connecté un schéma  n'est pas fini! Il vous faudra certainement lire la documentation scilab des composants pour comprendre le rôle des ports non connectés. Par exemple dans le cas de l'oscilloscope, pour afficher un résultat  il doit être connecté à une horloge (composant CLOCK_c)  qui lui dicte à quelle fréquence afficher les mesures :


de même l'interrupteur  doit recevoir un ordre pour savoir s'il est ouvert/fermé, pour cela on peut utiliser  on composant  délivrant un signal constant (c>0 pour "fermé", ou c <= 0 pour "ouvert") mais ici j'ai préféré utiliser un générateur de signal carré périodique (délivrant les valeurs +M ou -M) pour simuler le changement de position de l'interrupteur. Le port rouge de ce composant  doit lui aussi être relié à une horloge pour savoir quand se fait la commutation.

Vous pouvez maintenant modifier les caractéristiques des composants : tension de la source, valeur de la résistance , fréquence d'affichage de l'horloge qui contrôle l'oscilloscope ...  Pour cela vous devez faire un clic droit sur le composant  et sélectionner "paramètres du bloc" .

modifier les propriétés d'un bloc

 de la même manière vous pouvez modifier certains paramètres global, comme par exemple la durée de la simulation. Pour cela cliquez sur "simulation-> configuration". Je vous conseil de réduire le temps d'intégration final qui est par défaut de 10⁵ (ça fait très long!) avant de lancer votre simulation .
configuration générale du schéma
maintenant qu'on a un schéma complet on peut le simuler  en cliquant   sur la flèche dans la barre de menu de Xcos. Une fenêtre "info" confirmera que le schéma est correct (dans le cas contraire il y aura une erreur) puis une fenêtre graphique s'ouvrira pour afficher les informations envoyées à l'oscilloscope . Ici  la tension et le courant affiche un signal en forme de créneau correspondant  à l'ouverture/fermeture de l'interrupteur :

compilation et exécution

on peut ensuite modifier la fenêtre graphique (titre des figures, légendes des axes  en ouvrant l'éditeur d'entités graphiques :


Maintenant il ne reste plus qu'à construire  réellement ce circuit! Pour ceux qui souhaitent aller plus loin  je vous conseille vivement l'excellent livre de Yvon Degré  et Serge Steer  paru aux éditions Dbooker  dans la même collection que mon livre d'introduction à scilab :

Si vous n'avez pas tout compris vous pouvez aussi regarder commet construire ce schéma en vidéo  :






1 commentaire:

Pour écrire des formules mathématiques vous pouvez utiliser la syntaxe latex en mettant vos formules entre des "dollars" $ \$....\$ $ par exemple :
- $\sum_{n=1}^\infty {1\over n^2}={\pi^2\over 6}$ s'obtient avec \sum_{n=1}^\infty {1\over n^2}={\pi^2\over 6}
- $\mathbb R$ s'obtient avec {\mathbb R} et $\mathcal D$ s'obtient avec {\mathcal D}
- pour les crochets $\langle .,. \rangle$ dans les commentaires utilisez \langle .,. \rangle
vous pouvez écrire du html dans les commentaires :
- italique <i> ... </i> gras <b> ... </b>
- lien <a href="http://adresse "> .... </a>