FAQ SimulinkConsultez toutes les FAQ
Nombre d'auteurs : 5, nombre de questions : 20, dernière mise à jour : 25 juin 2013
- Qu'est-ce que le format de modèle SLX ?
- Quel est l'intérêt du nouveau format SLX ?
- Comment gérer les variables MATLAB dans Simulink ?
- Comment créer une structure MATLAB avec Simulink ?
- Comment choisir le répertoire de stockage des fichiers de compilation (mex, slprj, rtw ....) ?
- Comment remettre le répertoire par défaut de stockage des fichiers de compilation (mex, slprj, rtw ....) ?
- Quels sont les répertoires utilisés pour le cache de simulation et la génération de code ?
C'est le nouveau format d'enregistrement des modèles Simulink. Il remplacera à terme le format historique MDL.
Disponible depuis la version R2012a, celui-ci n'est devenu le format par défaut qu'avec la version R2012b.
D'une part, le format SLX est conforme à la norme OpenDocument qui est utilisée entre autres 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.
En lecture, il y a trois façons de procéder :
- le bloc Simulink/Sources/Constant vous permet de récupérer la valeur de la variable directement depuis le workspace MATLAB ;
- le bloc Simulink/Sources/From Workspace qui permet de définir une série de valeurs en fonction de l'instant dans la simulation ;
- dans le top-level, il est possible d'utiliser un bloc Simulink/Source/In pour représenter les vecteurs d'entrée définis dans la configuration du modèle.
En écriture, le bloc Simulink/Sinks/To Workspace vous permet d'enregistrer l'évolution d'une valeur au fil de la simulation.
Donner un nom à chaque signal à être enregistrer (double clic sur le fil) ;
Créer des bus par groupe correspondant à une sous structure ;
Créer des bus de bus jusqu'à n'avoir qu'une structure générale ;
Double cliquer sur le dernier fil : signal properties → enable data log après une simulation la structure est dans le workspace MATLAB, il faut la faire sortir de la variable "logsout" en tapant :
logsout.unpack("systems");
La structure est maintenant dans le workspace MATLAB. Des get(structure) permettent de passer du format Simulink au format MATLAB si besoin.
Utile si on utilise les modes accélérés, des blocs stateflows ou embedded, si on fait de la génération de code
%
repertoire
principal
du
projet
racine = fileparts(mfilename('
fullpath
'
));
%
répertoire
cache
(slprj)
de
simulation
Simulink.fileGenControl('
set
'
,'
CacheFolder
'
,fullfile(racine,'
tmp
'
));
%
répertoire
pour
la
génération
de
code
(mex,
RTW..)
Simulink.fileGenControl('
set
'
,'
CodeGenFolder
'
,fullfile(racine,'
work
'
));
alternatives avec set (non testé, mais vu dans la doc)
set_param(0, '
CacheFolder
'
, fullfile('
C:
'
,'
tmp
'
))
Il est conseillé de mettre ces deux lignes dans un script startup.m que l'on appellera avant de lancer la simulation (idéalement au début du script de lancement de la simulation).
Remettre le répertoire par défaut de stockage des fichiers de compilation Simulink (mex, slprj, rtw ....) ?
Simulink.fileGenControl('
reset
'
);
%
Ou
Simulink.fileGenControl('
reset
'
, '
keepPreviousPath
'
, true)
Pour garder les répertoires cache de simulation et répertoire de génération de code précédemment configurés dans le PATH MATLAB
(ils sont dans le MATH mais les nouveaux fichiers générés le seront dans les répertoires par défaut, c'est-à-dire le répertoire courant).
Il est conseillé de le mettre dans un script cleanup.m du répertoire courant du projet, script qui s'exécute automatiquement lorsque l'on
quitte MATLAB.
Il est également conseillé d'appeler ce script à la fin du script de lancement du projet, au cas où on saute d'un projet à l'autre
sans quitter MATLAB.
cfg = Simulink.fileGenControl('
getConfig
'
);
myCacheFolder = cfg.CacheFolder;
myCodeGenFolder = cfg.CodeGenFolder;