Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

S-Function Builder

Integrare codice C o C++ per creare S-function

  • S-Function Builder block

Librerie:
Simulink / User-Defined Functions

Descrizione

Il blocco S-function Builder integra codice C o C++, nuovo o esistente, e crea una C MEX S-Function (funzione di sistema) a partire dalle specifiche fornite dall'utente. Una C MEX S-Function è una descrizione in linguaggio informatico di un blocco Simulink® scritto in C o C++. Le S-function utilizzano una sintassi di chiamata speciale denominata API della S-function che consente di interagire con il motore di Simulink. Questa interazione è molto simile a quella che avviene tra il motore e i blocchi Simulink integrati. Per saperne di più sulle C MEX S-function, vedere What Is an S-Function?. Per saperne di più sulla costruzione di C MEX S-function utilizzando il blocco S-function Builder, vedere Build S-Functions Automatically Using S-Function Builder. Per un esempio di una procedura passo-passo, vedere Use a Bus with S-Function Builder to Create an S-Function.

Le istanze del blocco S-Function Builder servono inoltre come wrapper per le S-function generate nei modelli di Simulink. Quando si simula un modello che contiene istanze di un blocco S-Function Builder, Simulink invoca la C MEX S-Function generata per chiamare il codice C o C++ nelle istanze dei metodi mdlStart, mdlOutputs, mdlDerivatives, mdlUpdate e mdlTerminate. Per scoprire come il motore di Simulink interagisce con le S-function, vedere Simulink Engine Interaction with C S-Functions.

Nota

Il blocco S-Function Builder non supporta il mascheramento. Tuttavia, è possibile mascherare un blocco Subsystem che contiene un blocco S-Function Builder. Per ulteriori informazioni, vedere Create Library Blocks Using Self-Modifiable Masks and Variant Blocks.

Esempi

Porte

Input

espandi tutto

Il blocco S-Function Builder può accettare segnali reali e complessi, monodimensionali o bidimensionali e bus non virtuali. Per ciascuno di questi casi, i segnali devono avere un tipo di dati supportato da Simulink.

Per ulteriori informazioni, vedere Data Types Supported by Simulink nella documentazione di Simulink.

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

Output

espandi tutto

S-Function Builder Può produrre segnali reali e complessi, monodimensionali o bidimensionali e bus non virtuali. Per ciascuno di questi casi, i segnali devono avere un tipo di dati supportato da Simulink.

Per ulteriori informazioni, vedere Data Types Supported by Simulink nella documentazione di Simulink.

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

Parametri

espandi tutto

Utilizzare l'Editor di S-Function Builder per creare parametri definiti dall'utente. Per ulteriori informazioni sulla creazione di parametri definiti dall'utente dall'Editor, vedere Specify Ports and Parameters for the S-Function.

Nota

Per questo blocco, non è necessario impostare i parametri del blocco Simulink elencati utilizzando la finestra di dialogo del blocco. I parametri del blocco Simulink vengono impostati utilizzando le informazioni dell'Editor di S-Function Builder.

Utilizzare questo parametro per specificare il nome della S-function.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Parametro: FunctionName
Valori: 'system' (predefinito) | S-function name in quotes

Specificare ulteriori parametri della S-function.

I parametri della funzione possono essere specificati come espressioni di MATLAB o come variabili separate da virgole. Ad esempio:

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

Sebbene i singoli parametri possano essere racchiusi tra parentesi, l'elenco dei parametri non deve esserlo.

Utilizzo programmatico

Parametro: Parameters
Valori: '' (predefinito) | S-function parameters in quotes

Questo parametro si applica solo se il blocco rappresenta una C MEX S-Function e si intende utilizzare il software Simulink Coder™ per generare codice dal modello contenente il blocco. Se lo si utilizza, quando si è pronti a generare il codice, si deve forzare il codificatore a ricostruire il modello superiore, come spiegato in Control Regeneration of Top Model Code (Simulink Coder).

Per ulteriori informazioni sull'utilizzo di questo parametro, vedere Specify Additional Source Files for an S-Function (Simulink Coder).

Utilizzo programmatico

Parametro: SFunctionModules
Valori: '' (predefinito) | filenames in quotes

Caratteristiche del blocco

Tipi di dati:

Boolean | double | fixed point | integer | single

Passaggio diretto

no

Segnali multidimensionali

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Suggerimenti

Dopo aver costruito la S-function con il blocco S-Function Builder, la funzione get_param restituisce le informazioni per questi parametri:

  • Parameters: parametri supplementari della S-function

  • SFunctionModules: file supplementari per la generazione di codice se il blocco rappresenta una C MEX S-function

Funzionalità estese

espandi tutto

Conversione a virgola fissa
Progetta e simula sistemi a virgola fissa con Fixed-Point Designer™.

Cronologia versioni

Introduzione prima di R2006a