Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

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.

The starting model. The model contains a MATLAB Function block in the center, a Constant block that has a vector with four values to the left, and two Display blocks to the right. The blocks are not connected.

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.

This image shows the MATLAB Function Block Editor after it has been opened from the call_stats_block1 model. It includes a default function.

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:

The MATLAB Function Block Editor showing the final version of the code. It includes the code from the previous steps.

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.

This shows the outline of the block without connections between the blocks.

Stellen Sie die Verbindungen zum MATLAB-Funktionsblock her.

This shows the connected signals between the blocks established in the previous image.

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.

The Function tab in the Simulink Editor while the MATLAB Function block Editor is open. The Edit Data button on the left is enclosed in a red box.

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.

The Property Inspector and the Symbols pane. The vals input variable is selected, and the Property Inspector displays the variable properties.

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.

The Display blocks show the simulation results of the model. The first Display block shows 3.5 and the second shows 1.118.

Der Block plottet die Eingabedaten zudem in einem eigenen Fenster.

A plot of the input values and a line drawn through the values. The line is blue.

Siehe auch

| |

Themen

Externe Websites