Contenu principal

S-Function Builder

Intégrer du code C ou C++ pour créer des S-functions

  • S-Function Builder block

Bibliothèques :
Simulink / User-Defined Functions

Description

Le bloc S-function Builder intègre du code C ou C++ nouveau ou existant et crée une S-function C MEX (fonction système) à partir des spécifications que vous fournissez. Une S-function C MEX est une description d’un bloc Simulink® écrite en langage C ou C++. Les S-functions utilisent une syntaxe d’appel spéciale nommée API S-function permettant d’interagir avec le moteur Simulink. Cette interaction est très semblable à celle qui se produit entre le moteur et les blocs Simulink prédéfinis. Pour en savoir plus sur les S-functions C MEX, consultez What Is an S-Function?. Pour en savoir plus sur la création de S-Functions C MEX à l’aide du bloc S-function Builder, consultez Build S-Functions Automatically Using S-Function Builder. Pour obtenir un exemple avec une procédure détaillée, consultez Use a Bus with S-Function Builder to Create an S-Function.

Les instances du bloc S-Function Builder servent également de wrappers pour les S-functions générées dans les modèles Simulink. Lors de la simulation d’un modèle qui contient des instances d’un bloc S-Function Builder, Simulink appelle la S-function C MEX générée pour appeler votre code C ou C++ dans les instances des méthodes mdlStart, mdlOutputs, mdlDerivatives, mdlUpdate et mdlTerminate. Pour savoir comment le moteur Simulink interagit avec les S-functions, consultez Simulink Engine Interaction with C S-Functions.

Remarque

Le bloc S-Function Builder ne supporte pas le masquage. Toutefois, vous pouvez masquer un bloc Subsystem qui contient un bloc S-Function Builder. Pour plus d’informations, consultez Create Library Blocks Using Self-Modifiable Masks and Variant Blocks.

Exemples

Ports

Entrée(s)

développer tout

Le bloc S-Function Builder peut accepter des signaux réels et complexes, 1D ou 2D, ainsi que des bus non virtuels. Dans chacun de ces cas, les signaux doivent avoir un type de données supporté par Simulink.

Pour plus d’informations, consultez Data Types Supported by Simulink dans la documentation Simulink.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

Sortie(s)

développer tout

S-Function Builder peut produire des signaux réels et complexes, 1D ou 2D, ainsi que des bus non virtuels. Dans chacun de ces cas, les signaux doivent avoir un type de données supporté par Simulink.

Pour plus d’informations, consultez Data Types Supported by Simulink dans la documentation Simulink.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

Paramètres

développer tout

Utilisez l’éditeur S-Function Builder pour créer des paramètres définis par l’utilisateur. Pour plus d’informations sur la création de paramètres définis par l’utilisateur à partir de l’éditeur, consultez Specify Ports and Parameters for the S-Function.

Remarque

Vous n’avez pas besoin de définir les paramètres de bloc Simulink répertoriés pour ce bloc à l’aide de la boîte de dialogue des blocs. Les paramètres de bloc Simulink sont définis à l’aide des informations provenant de l’editeur S-Function Builder.

Utilisez ce paramètre pour spécifier le nom de votre S-function.

Utilisation programmatique

Pour définir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction set_param.

Paramètre : FunctionName
Valeurs : 'system' (par défaut) | S-function name in quotes

Spécifiez les paramètres supplémentaires de la S-function.

Vous pouvez les spécifier les paramètres de la fonction sous forme d’expressions MATLAB ou de variables séparées par des virgules. Par exemple :

A, B, C, D, [eye(2,2);zeros(2,2)]

Vous pouvez placer des paramètres individuels entre crochets mais la liste de paramètres ne doit pas être entre crochets.

Utilisation programmatique

Paramètre : Parameters
Valeurs : '' (par défaut) | S-function parameters in quotes

Ce paramètre n’est applicable que si ce bloc représente une S-function MEX C et que vous comptez utiliser le software Simulink Coder™ pour générer du code à partir du modèle qui contient le bloc. Si vous l’utilisez, lorsque vous êtes prêt à générer le code, vous devez forcer le codeur à reconstruire le modèle de plus haut niveau comme expliqué dans Control Regeneration of Top Model Code (Simulink Coder).

Pour plus d'informations sur l'utilisation de ce paramètre, voir Specify Additional Source Files for an S-Function (Simulink Coder).

Utilisation programmatique

Paramètre : SFunctionModules
Valeurs : '' (par défaut) | filenames in quotes

Caractéristiques des blocs

Types de données

Boolean | double | fixed point | integer | single

Traversée directe

non

Signaux multidimensionnels

oui

Signaux de taille variable

non

Détection des passages à zéro

non

Conseils

Une fois que vous avez créé la S-function à l’aide du bloc S-Function Builder, la fonction get_param renvoie des informations pour les paramètres suivants :

  • Parameters : paramètres supplémentaires de la S-function

  • SFunctionModules : fichiers supplémentaires pour la génération de code si le bloc représente une S-function C MEX

Capacités étendues

développer tout

Conversion en virgule fixe
Concevez et simulez des systèmes en virgule fixe avec Fixed-Point Designer™.

Historique des versions

Introduit avant R2006a