Définir les signaux d’entrée d’un modèle Simulink

Je me souviens de mes premiers pas avec Simulink et tout particulièrement des questions que je me suis posées à propos des entrées du modèle: d’où sortaient les signaux utilisés pour les calculs?

Voilà donc le point de départ : comment spécifier les signaux d’entrée d’un modèle? Lister toutes les possibilités prendrait bien trop longtemps et plus d’un billet de blog, je vais donc me limiter dans ce billet à la manière qui me semble la plus facile et la plus élégante à mettre en place.

Tout d’abord, il faut spécifier les entrées du modèle en utilisant des blocs In1 que l’on peut trouver dans la bibliothèque Simulink/Sources. Pour que ce bloc définisse une entrée du modèle il faut qu’il se trouve au niveau racine du modèle (pas dans un sous-système).

Remarquez que chaque bloc In1 du modèle contient un numéro correspondant à l’ordre des entrées, cela aura toute son importance lorsqu’il faudra associer des données à ces entrées.

Les valeurs des signaux d’entrée doivent être stockées dans le workspace de base de MATLAB.
Ces signaux se composent de 2 parties: un vecteur temps et un vecteur de données. Chacun des vecteurs doit être en colonne. Je vous conseille de créer un vecteur temps (on l’appellera t) et autant de vecteurs de données (qu’on appellera u1,u2,…) qu’il y a d’entrées dans votre modèle.

Il ne reste plus qu’à associer ces données aux entrées du modèle.
Cette opération s’effectue grâce à l’interface « Configuration Parameters » du modèle, accessible via le menu « Simulation/Configuration Parameters » ou grâce au raccourci Ctrl+B.
Il faut aller dans l’onglet « Data Import/Export » et cocher la checkbox « Input » qui se trouve dans le panel nommé « Load data from workspace » pour signifier au modèle qu’il doit aller chercher les signaux d’entrée dans le workspace de MATLAB.
Le champ d’édition « Input » est maintenant activé (par défaut il contient la chaîne « [t,u]« ), il suffit de lister les vecteurs de données entre crochets. Le premier vecteur doit être le vecteur temps et il doit y avoir autant de vecteurs de données qu’il y a de ports d’entrée.
Pour un modèle avec 3 entrées, voici ce qu’on pourrait écrire : « [t,u1,u2,u3]« .

Et voilà les signaux d’entrée sont définis dans MATLAB et associés au modèle, vous pouvez exécuter la simulation.

Nouveau format SLX pour les modèles Simulink

Si vous avez eu l’occasion d’utiliser Simulink r2012b, vous avez sans doute remarqué que l’extension utilisée pour les fichiers Simulink a changé de .mdl à .slx

Pour information, depuis la version r2012a vous avez la possibilité d’enregistrer les modèles au format SLX mais celui-ci n’est devenu le format par défaut qu’avec la version r2012b.

Quel est l’intérêt de ce nouveau format ?
D’une part, le format SLX est conforme à la norme Open Packaging Conventions qui est utilisée entre autre par la suite Office depuis 2007 avec les formats xlsx ou docx.
D’autre part, le format SLX est un format binaire alors que le format MDL est un format texte et la principale conséquence est que la taille des fichiers est réduite.

Sur un modèle simple, pour un fichier MDL de 40Ko le fichier SLX ne fait que 15Ko.

Bien entendu le format MDL sera toujours supporté dans les prochaines versions mais les nouvelles fonctionnalités de Simulink ne pourront être utilisées qu’avec le format SLX.

Ajouter sa propre bibliothèque au Simulink Library Browser

Si vous êtes un utilisateur averti de Simulink, vous vous êtes sans doute déjà posés la question: « Puis-je ajouter ma propre bibliothèque au Simulink Library Browser? ». La réponse est bien évidemment oui, et en plus la méthode est simple.

Il n’y a qu’un seul nom à retenir : slblocks.m. Il s’agit du fichier que vous devez créer à côté de votre bibliothèque pour qu’elle apparaisse dans la bibliothèque Simulink.

Que mettre dans cette fonction slblocks? La page de documentation associée (Add Libraries to the Library Browser), que vous pouvez trouver facilement en cherchant slblocks, contient un exemple de code :

function blkStruct = slblocks
  % Specify that the product should
  % appear in the library browser
  % and be cached in its repository
  Browser.Library = 'mylib';
  Browser.Name    = 'My Library';
  blkStruct.Browser = Browser;

Copiez-collez ce code dans votre fichier slblocks.m.

Modifiez le contenu de la variable Browser.Library en remplaçant ‘mylib’ par le nom de votre bibliothèque (sans extension ni chemin).

Remplacez la chaîne de caractères ‘My Library’ par le nom que vous voulez voir apparaître dans le Simulink Library Browser.

Si votre bibliothèque n’apparaît pas encore, pas de panique, il vous suffit d’utiliser le menu « View->Refresh Tree View » pour mettre à jour l’affichage du Simulink Library Browser.

Voilà c’est fini.

Bienvenue !

Bienvenue sur le blog de l’équipe MATLAB de Developpez.com

Nous partagerons avec vous nos expériences sur MATLAB et Simulink.

Les billets couvriront bien sûr l’actualité, mais aussi des sujets variés comme des trucs et astuces, les bonnes pratiques d’écriture de code, l’interfaçage de MATLAB avec d’autres langages, l’utilisation de Toolbox ou encore la présentation d’outils méconnus.

N’hésitez pas à nous laisser vos commentaires à la suite de vos lectures.

Bon voyage… vers MATLAB et au delà !