Implementieren von MATLAB-Funktionen in Simulink mit MATLAB-Funktionsblöcken
MATLAB Function-Blöcke ermöglichen es Ihnen, in Simulink®-Modellen mithilfe von MATLAB® Programmcode benutzerdefinierte Funktionen festzulegen. 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-Funktionsblock
Dieses Beispiel beginnt mit einem Modell mit einem MATLAB-Funktionsblock und führt Sie durch die Anpassung des Blocks, um die mittlere Abweichung und Standardabweichung für einen Vektor aus Werten zu berechnen. Öffnen Sie das call_stats_block1
-Modell, um die Startblöcke anzuzeigen. Das Modell enthält einen leeren MATLAB Function-Block und die für das Beispiel benötigte Blöcke.
Programmieren des MATLAB-Funktionsblocks
Programmieren Sie den Block, um die mittlere Abweichung und Standardabweichung für einen Vektor aus Werten zu berechnen. Doppelklicken Sie auf den MATLAB-Funktionsblock, um 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 Eingangsargument vals
und zwei Ausgangsargumente, mean
und stdev
.
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
und stdev
entsprechen den Blockausgangs-Ports mean und stdev und der Funktionseingang vals
entspricht dem Block-Eingangsport vals.
Stellen Sie die Verbindungen zum MATLAB-Funktionsblock her.
Speichern Sie das Modell. Öffnen Sie das call_stats_block2
-Modell, um eine vollständige Version des Modells zu betrachten.
Überprüfen der Eigenschaften von MATLAB-Funktionsblockvariablen
Sie können die Eigenschaften von Variablen in MATLAB-Funktionsblö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-Funktionsblock. Öffnen Sie den Bereich Symbole und den Property Inspector. Klicken Sie auf der Registerkarte Funktion auf Daten bearbeiten.
Im Fensterbereich Symbole werden die Variablennamen in der Spalte Name angezeigt. In der Spalte Typ wird die Funktionsargument-Portzuweisung und deren Position in der Funktionsdeklaration festgelegt. In diesem Beispiel ist vals
einem Eingangsport zugewiesen. mean
und stdev
sind Ausgangsports zugewiesen. Wenn Sie den Eintrag Typ einer Variable ändern, ändert sich ebenfalls die Funktionsdeklaration.
Betrachten Sie die Eigenschaften von vals
. Klicken Sie im Fensterbereich Symbole auf die Zeile für vals
. Der Property Inspector wird aktualisiert und zeigt die Eigenschaften für vals
an. Die Eigenschaft Umfang entspricht der Spalte Typ.
Weitere Informationen zum Erstellen von Variablen im MATLAB-Funktionsblock und Festlegen von Eigenschaften finden Sie unter Create and Define MATLAB Function Block Variables.
Simulieren des Modells
Klicken Sie in Simulink auf Ausführen, um das Modell zu simulieren. Das Modell gibt die Daten der Funktion in die zwei Anzeigeblöcke aus.
Der Block plottet die Eingabedaten zudem in einem eigenen Fenster.
Siehe auch
MATLAB Function | MATLAB Function Block Editor | add_block
Themen
- Comparison of Custom Block Functionality
- Call MATLAB Function Files in MATLAB Function Blocks
- Configure MATLAB Function Blocks Programmatically