La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Implémenter des fonctions MATLAB dans Simulink avec des blocs MATLAB Function
Les blocs MATLAB Function vous permettent de définir des fonctions personnalisées dans des modèles Simulink® en utilisant le code MATLAB®. Utilisez ces blocs dans les cas suivants :
Vous disposez d'une fonction MATLAB existante qui modélise les fonctionnalités personnalisées, ou bien vous pouvez facilement créer une telle fonction.
Votre modèle nécessite une fonctionnalité personnalisée qui n'est pas ou ne peut pas être capturée dans le langage graphique Simulink.
Il est plus facile de modéliser une fonctionnalité personnalisée en utilisant une fonction MATLAB qu'en utilisant un schéma bloc Simulink.
La fonctionnalité personnalisée que vous souhaitez modéliser ne comprend pas d'états dynamiques continus ou discrets. Pour modéliser des états dynamiques, utilisez des S-functions. Consultez la rubrique Créer des blocs avec les fonctions S-functions MATLAB.
Calculer la moyenne et l'écart-type avec un bloc MATLAB Function
Sur la base d’un modèle qui comprend un bloc MATLAB Function, cet exemple vous explique comment personnaliser le bloc afin de calculer la moyenne et l'écart-type d'un vecteur de valeurs. Ouvrez le modèle call_stats_block1
pour voir les blocs de départ. Le modèle comprend un bloc MATLAB Function vide et les blocs dont vous avez besoin pour l'exemple.
Programmer le bloc MATLAB Function
Programmez le bloc pour qu'il calcule la moyenne et l'écart-type d'un vecteur de valeurs. Pour ouvrir MATLAB Function Block Editor, double-cliquez sur le bloc MATLAB Function. Une fonction par défaut apparaît dans le MATLAB Function Block Editor avec deux variables : un argument d'entrée et un argument de sortie.
Définissez les entrées et les sorties de la fonction en modifiant l’instruction de la fonction :
function [mean, stdev] = stats(vals)
Cette instruction définit une fonction du nom de stats
avec trois variables. L'instruction définit un argument d'entrée, vals
, et deux arguments de sortie, mean
et stdev
.
Sur une nouvelle ligne, après l’instruction de la fonction, effacez le code existant et ajoutez le code suivant :
% Calculates a statistical mean and a standard % deviation for the values in vals. len = length(vals); mean = avg(vals,len); stdev = sqrt(sum(((vals-avg(vals,len)).^2))/len); plot(vals,"-+"); function mean = avg(array,size) mean = sum(array)/size;
Le code final se présente de la manière suivante :
Quittez le bloc. Le bloc met à jour les noms des ports. Les sorties de fonction mean
et stdev
correspondent aux ports de sortie de bloc mean et stdev, et l'entrée de fonction vals
correspond au port d'entrée de bloc vals.
Complétez les connexions au bloc MATLAB Function.
Enregistrez le modèle. Pour visualiser une version finalisée de ce modèle, ouvrez le modèle call_stats_block2
.
Vérifier les propriétés des variables du bloc MATLAB Function
Vous pouvez vérifier et gérer les propriétés des variables dans les blocs MATLAB Function. Dans cet exemple, vérifiez que l'argument d'entrée vals
hérite de ses propriétés de type et de taille. Double-cliquez sur le bloc MATLAB Function. Ouvrez le volet Symbols et le Property Inspector. Dans l’onglet Function, cliquez sur Edit Data.
Le volet Symbols affiche les noms des variables dans la colonne Name. La colonne Type détermine l'affectation du port de l'argument de la fonction et l'endroit où il apparaît dans l’instruction de la fonction. Dans cet exemple, vals
est affecté à un port d'entrée. mean
et stdev
sont affectés à des ports de sortie. Si vous modifiez l'entrée Type pour l'une des variables, l’instruction de la fonction change également.
Vérifiez les propriétés de vals
. Dans le volet Symbols, cliquez sur la ligne de vals
. Le Property Inspector procède à une mise à jour afin d’afficher les propriétés de vals
. La propriété Scope correspond à la colonne Type.
Pour plus d’informations sur la création de variables dans le bloc MATLAB Function et la définition des propriétés, voir Create and Define MATLAB Function Block Variables.
Simuler le modèle
Dans Simulink, cliquez sur Run pour simuler le modèle. Le modèle transmet les données de la fonction aux deux blocs Display.
Le bloc trace également les données d’entrée dans une fenêtre distincte.
Voir aussi
MATLAB Function | MATLAB Function Block Editor | add_block
Rubriques
- Comparison of Custom Block Functionality
- Call MATLAB Function Files in MATLAB Function Blocks
- Configure MATLAB Function Blocks Programmatically