Main Content

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.

  1. 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.

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

  2. 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.

  3. 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.

  4. Verlassen Sie den Block. Der Block aktualisiert die Portnamen. Die Funktionsausgänge mean und stdev entsprechen den Blockausgängen mean und stdev und der Funktionseingang vals entspricht dem Block-Eingangsport vals.

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

  5. Stellen Sie die Verbindungen zum MATLAB Function-Block her.

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

  6. 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.

  1. Doppelklicken Sie auf den MATLAB Function-Block.

  2. Öffnen Sie den Bereich Symbols und den Property Inspector. Klicken Sie auf der Registerkarte Function auf Edit Data.

    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 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 und stdev sind Ausgangsports zugewiesen. Wenn Sie den Eintrag Type einer Variable ändern, ändert sich ebenfalls die Funktionsdeklaration.

  3. Betrachten Sie die Eigenschaften von vals. Klicken Sie im Fensterbereich Symbols auf die Zeile für vals. Der Property Inspector wird aktualisiert und zeigt die Eigenschaften für vals an. Die Eigenschaft Scope entspricht der Spalte Type.

    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 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.

This shows connected signals between the blocks and the simulation results in the Display blocks.

Der Block plottet die Daten zudem in einem eigenen Fenster.

This shows a plot of the input values and a line drawn through the values.

Siehe auch

| |

Verwandte Themen

Externe Websites