Implementieren von MATLAB-Funktionen in Simulink mit MATLAB Function-Blöcken
MATLAB Function-Blöcke ermöglichen es Ihnen, in Simulink®-Modellen mithilfe der Programmiersprache MATLAB® benutzerdefinierte Funktionen zu definieren. Verwenden Sie diese Blöcke, wenn:
Eine bestehende MATLAB Funktion vorliegt, die benutzerdefinierte Funktionalität modelliert oder Sie eine derartige Funktion einfach erstellen können.
Ihr Modell benutzerdefinierte Funktionalität benötigt, die mit der grafischen Programmiersprache von Simulink nicht dargestellt werden kann.
Die Modellierung einer benutzerdefinierten Modellfunktionalität Ihnen mit einer MATLAB-Funktion leichter fällt als mit einem Simulink-Blockdiagramm.
Die benutzerdefinierte Funktionalität keine kontinuierlichen oder diskreten dynamischen Zustände umfasst. Verwenden Sie S-Functions, um dynamische Zustände zu modellieren. Siehe Entwickeln von Blöcken mithilfe von MATLAB S-Functions.
Berechnen der mittleren Abweichung und Standardabweichung mit einem MATLAB Function-Block
Dieses Beispiel beginnt mit einem Modell mit einem MATLAB Function-Block und führt Sie durch die Anpassung des Blocks, um die mittlere Abweichung und Standardabweichung für einen Vektor aus Werten zu berechnen.
Öffnen des Modells
Das Modell call_stats_block1
enthält einen leeren MATLAB Function-Block und die für das Beispiel benötigte Blöcke. Öffnen Sie das Modell.
Programmieren des MATLAB Function-Blocks
Programmieren Sie den Block, um die mittlere Abweichung und Standardabweichung für einen Vektor aus Werten zu berechnen.
Doppelklicken Sie auf den MATLAB Function-Block, um den MATLAB Function Block Editor zu öffnen. Im MATLAB Function Block Editor wird eine Standardfunktion mit zwei Variablen angezeigt: einem Eingang- und einem Ausgangsargument.
Definieren Sie die Eingänge und Ausgänge der Funktion, indem Sie die Funktiondeklaration bearbeiten:
function [mean, stdev] = stats(vals)
Dieser Ausdruck definiert eine Funktion namens
stats
mit drei Variablen. Der Ausdruck definiert ein Eingangsargumentvals
und zwei Ausgangsargumente,mean
undstdev
.Löschen Sie in der Zeile nach der Funktionsdeklaration den bestehenden Code und fügen Sie den folgenden Code hinzu:
% 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;
Der endgültige Code sieht folgendermaßen aus:
Verlassen Sie den Block. Der Block aktualisiert die Portnamen. Die Funktionsausgänge
mean
undstdev
entsprechen den Blockausgängen mean und stdev und der Funktionseingangvals
entspricht dem Block-Eingangsport vals.Stellen Sie die Verbindungen zum MATLAB Function-Block her.
Speichern Sie das Modell als
call_stats_block2
.
Überprüfen der Eigenschaften von MATLAB Function-Blockvariablen
Sie können die Eigenschaften von Variablen in MATLAB Function-Blöcken überprüfen und verwalten. Verifizieren Sie in diesem Beispiel, dass das Eingangsargument vals
die Typ- und Größen-Eigenschaften erbt.
Doppelklicken Sie auf den MATLAB Function-Block.
Öffnen Sie den Bereich Symbols und den Property Inspector. Klicken Sie auf der Registerkarte Function auf Edit Data.
Im Fensterbereich Symbols werden die Variablennamen in der Spalte Name angezeigt. In der Spalte Type wird die Funktionsargument-Portzuweisung und deren Position in der Funktionsdeklaration festgelegt. In diesem Beispiel ist
vals
einem Eingangsport zugewiesen.mean
undstdev
sind Ausgangsports zugewiesen. Wenn Sie den Eintrag Type einer Variable ändern, ändert sich ebenfalls die Funktionsdeklaration.Betrachten Sie die Eigenschaften von
vals
. Klicken Sie im Fensterbereich Symbols auf die Zeile fürvals
. Der Property Inspector wird aktualisiert und zeigt die Eigenschaften fürvals
an. Die Eigenschaft Scope entspricht der Spalte Type.
Weitere Informationen zum Erstellen von Variablen im MATLAB Function-Block und Festlegen von Eigenschaften finden Sie unter
Simulieren des Modells
Klicken Sie in Simulink auf Run, um das Modell zu simulieren. Das Modell gibt die Daten der Funktion in die zwei Display-Blöcke aus.
Der Block plottet die Daten zudem in einem eigenen Fenster.
Siehe auch
MATLAB Function | MATLAB Function Block Editor | add_block
Verwandte Themen
- Specify MATLAB Function Block Properties
- Comparison of Custom Block Functionality
- Call MATLAB Function Files in MATLAB Function Blocks
- Configure MATLAB Function Blocks Programmatically