Hauptinhalt

S-Function Builder

Integrieren von C oder C++ Code zum Erstellen von S-Functions

  • S-Function Builder block

Bibliotheken:
Simulink / User-Defined Functions

Beschreibung

Der Block S-function Builder integriert neuen oder bestehenden C oder C++ Code und erstellt eine C MEX S-Function (system-function) aus den von Ihnen angegebenen Spezifikationen. Eine C MEX S-Function ist eine computersprachliche Beschreibung eines Simulink®-Blocks in C oder C++. S-Funktionen verwenden eine spezielle Aufrufsyntax, die S-Funktions-API, die Ihnen die Interaktion mit der Simulink-Engine ermöglicht. Diese Interaktion ist der Interaktion zwischen der Engine und den integrierten Simulink-Blöcken sehr ähnlich. Weitere Informationen über C MEX S-Functions finden Sie unter What Is an S-Function?. Weitere Informationen über das Erstellen von C MEX S-Functions mithilfe des Blocks S-function Builder finden Sie unter Build S-Functions Automatically Using S-Function Builder. Ein Beispiel mit einem Schritt-für-Schritt-Verfahren finden Sie unter Use a Bus with S-Function Builder to Create an S-Function.

Instanzen des Blocks S-Function Builder können zudem als Wrapper für generierte S-Functions in Simulink-Modellen fungieren. Wenn ein Modell simuliert wird, das Instanzen eines Blocks S-Function Builder enthält, ruft Simulink die generierte C MEX S-Function ab, um Ihren C oder C++ Code in den Instanzen von mdlStart-, mdlOutputs-, mdlDerivatives-, mdlUpdate- und mdlTerminate-Methoden aufzurufen. Weitere Informationen zur Interaktion der Simulink-Engine mit S-Functions finden Sie unter Simulink Engine Interaction with C S-Functions.

Hinweis

Der Block S-Function Builder unterstützt kein Masking. Sie können jedoch einen Subsystem-Block maskieren, der einen Block S-Function Builder enthält. Weitere Informationen finden Sie unter Create Library Blocks Using Self-Modifiable Masks and Variant Blocks.

Beispiele

Ports

Eingabe

alle erweitern

Der Block S-Function Builder kann reale und komplexe 1-D- oder 2-D-Signale und nicht virtuelle Busse akzeptieren. In diesen Fällen müssen die Signale einen von Simulink unterstützten Datentypen aufweisen.

Weitere Informationen finden Sie unter Data Types Supported by Simulink in der Simulink-Dokumentation.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

Ausgabe

alle erweitern

S-Function Builder kann reale und komplexe 1-D- oder 2-D-Signale und nicht virtuelle Busse erzeugen. In diesen Fällen müssen die Signale einen von Simulink unterstützten Datentypen aufweisen.

Weitere Informationen finden Sie unter Data Types Supported by Simulink in der Simulink-Dokumentation.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

Parameter

alle erweitern

Verwenden Sie den S-Function Builder Editor, um benutzerdefinierte Parameter zu erstellen. Weitere Informationen zum Erstellen benutzerdefinierter Parameter mit dem Editor finden Sie unter Specify Ports and Parameters for the S-Function.

Hinweis

Sie müssen diese aufgeführten Simulink-Blockparameter für diesen Block nicht über den Blockdialog einstellen. Die Simulink-Blockparameter werden mithilfe der Informationen aus dem S-Function Builder Editor festgelegt.

Verwenden Sie diesen Parameter, um den Namen Ihrer S-Funktion anzugeben.

Programmatische Verwendung

Um den Wert des Blockparameters programmatisch festzulegen, verwenden Sie die Funktion set_param.

Parameter: FunctionName
Werte: 'system' (Standardeinstellung) | S-function name in quotes

Geben Sie die zusätzlichen S-Funktions-Parameter an.

Die Funktionsparameter können als MATLAB-Ausdrücke oder als durch Kommas getrennte Variablen angegeben werden. Beispiel:

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

Auch wenn einzelne Parameter in Klammern gesetzt werden können, darf die Liste der Parameter nicht in Klammern gesetzt werden.

Programmatische Verwendung

Parameter: Parameters
Werte: '' (Standardeinstellung) | S-function parameters in quotes

Dieser Parameter ist nur relevant, wenn dieser Block eine C MEX S-Funktion darstellt und Sie die Software Simulink Coder™ verwenden möchten, um Code aus dem Modell zu generieren, das den Block enthält. Wenn Sie sie verwenden, müssen Sie, wenn Sie bereit sind, Code zu generieren, den Codierer zwingen, das Top-Modell neu zu erstellen, wie in unter Control Regeneration of Top Model Code (Simulink Coder) erläutert.

Weitere Informationen zur Verwendung dieses Parameters finden Sie unter Specify Additional Source Files for an S-Function (Simulink Coder).

Programmatische Verwendung

Parameter: SFunctionModules
Werte: '' (Standardeinstellung) | filenames in quotes

Blockeigenschaften

Datentypen

Boolean | double | fixed point | integer | single

Direct Feedthrough

nein

Mehrdimensionale Signale

ja

Signale mit variabler Größe

nein

Erkennung von Nulldurchgängen

nein

Tipps

Haben Sie die S-function mit dem Block S-Function Builder erstellt, gibt die get_param-Funktion Informationen über diese Parameter zurück:

  • Parameters – Zusätzliche S-function-Parameter

  • SFunctionModules – Zusätzliche Dateien für die Codegenerierung, wenn der Block eine C MEX S-Function darstellt

Erweiterte Fähigkeiten

alle erweitern

Festkommakonvertierung
Entwerfen und Simulieren von Festkommasystemen mit Fixed-Point Designer™.

Versionsverlauf

Eingeführt vor R2006a