Main Content

Ein einfaches Modell erstellen

Mit Simulink® können Sie ein System modellieren und dann das dynamische Verhalten dieses Systems simulieren. Die grundlegenden Verfahren, die Sie in diesem Tutorial zum Erstellen eines einfachen Modells verwenden, sind die gleichen wie bei komplexeren Modellen. In diesem Beispiel wird die vereinfachte Bewegung eines Autos simuliert. Ein Auto ist in der Regel in Bewegung, wenn das Gaspedal betätigt wird. Wird das Pedal losgelassen, rollt das Auto aus und kommt zum Stillstand.

Ein Simulink-Block ist ein Modellelement, das eine mathematische Beziehung zwischen seiner Eingabe und Ausgabe definiert. Um dieses einfache Modell zu erstellen, benötigen Sie vier Simulink-Blöcke.

Name des BlocksZweck des BlocksZweck für das Modell
Pulse GeneratorEin Eingangssignal für das Modell generierenDas Gaspedal darstellen
GainDas Eingangssignal mit einem konstanten Wert multiplizierenBerechnen, wie sich das Betätigen des Gaspedals auf die Beschleunigung des Autos auswirkt
Second-Order IntegratorDas Eingangssignal zweimal integrierenPosition aus Beschleunigung ableiten
OutportEin Signal als Ausgabe des Modells kennzeichnenDie Position als Ausgabe des Modells kennzeichnen

A Simulink model with Pulse Generator, Gain, Second-Order Integrator block, and two Outport blocks.

Beim Simulieren dieses Modells wird ein kurzer Puls zweimal integriert, um einen Anstieg zu erhalten. Die Ergebnisse werden in einem Scope-Fenster angezeigt. Der Eingangspuls stellt eine Betätigung des Gaspedals dar: 1, wenn das Pedal betätigt wird, und 0, wenn nicht. Der Anstieg am Ausgang ist die zunehmende Entfernung vom Startpunkt.

Neues Modell öffnen

Verwenden Sie den Simulink Editor, um Ihre Modelle zu erstellen.

  1. Starten Sie MATLAB®. Klicken Sie in der MATLAB-Symbolleiste auf Simulink .

    The Simulink start page has two tabs, New and Examples, from which you can open a new template or an example.

  2. Klicken Sie auf die Vorlage Blank Model.

    Der Simulink Editor wird geöffnet.

    Um Shadowing zu verhindern, prüft der Simulink Editor die geladenen Modelle und Dateien auf dem Pfad und erstellt ein Modell mit dem nächsten verfügbaren Namen untitled, untitled1, untitled2 usw.

    Empty Simulink Editor

  3. Klicken Sie auf der Registerkarte Simulation auf Save > Save as. Geben Sie im Textfeld File name einen Namen für Ihr Modell ein. Beispiel: simple_model. Klicken Sie auf Save. Das Modell wird mit der Dateierweiterung .slx gespeichert.

Simulink Library Browser öffnen

Simulink stellt mehrere Blockbibliotheken bereit, die im Library Browser nach Funktionalität geordnet sind. Die folgenden Bibliotheken finden bei den meisten Workflows Anwendung:

  • „Continuous“: Blöcke für Systeme mit stetigen Zuständen

  • „Discrete“: Blöcke für Systeme mit diskreten Zuständen

  • „Math Operations“: Blöcke, die algebraische und logische Gleichungen implementieren

  • „Sinks“: Blöcke, die die Signale, die an sie angeschlossen sind, speichern und anzeigen

  • „Sources“: Blöcke, die die Signalwerte generieren, die das Model ansteuern

Zum Öffnen des Library Browser klicken Sie auf der Simulink-Symbolleiste auf der Registerkarte Simulation auf Library Browser.

Library Browser

Um die Blockbibliotheken zu durchsuchen, erweitern Sie im Bibliotheksverzeichnis eine Kategorie und dann einen Funktionsbereich.

Um alle verfügbaren Blockbibliotheken zu durchsuchen, geben Sie einen Suchbegriff ein.

Beispiel: Sie suchen den Block Pulse Generator. Geben Sie im Suchfeld den Text pulse ein und drücken Sie dann die Eingabetaste. Die Software durchsucht die Bibliotheken nach Blöcken mit dem Text pulse im Namen oder in der Beschreibung und zeigt diese Blöcke dann auf der Registerkarte Search Results des Library Browser an.

Tipp

Sie können das Bibliotheksverzeichnis erneut durchsuchen, indem Sie auf Library Tab klicken.

The Simulink Library Browser displays the results for the search term pulse, which include Pulse Generator and Continuous Pulse Generator blocks.

Rufen Sie detaillierte Informationen über einen Block ab. Klicken Sie auf der Registerkarte Search Results mit der rechten Maustaste auf den Pulse Generator-Block und wählen Sie dann Help for the Pulse Generator block aus. Der Hilfe-Browser öffnet die Referenzseite für diesen Block und zeigt diese an.

Blöcke besitzen in der Regel mehrere Parameter. Sie können auf alle Blockparameter zugreifen, indem Sie auf den Block doppelklicken.

Blöcke zu einem Modell hinzufügen

Um mit dem Erstellen des Modells zu beginnen, durchsuchen Sie die Bibliothek und fügen die Blöcke hinzu.

  1. Ziehen Sie den Pulse Generator-Block aus der Bibliothek Sources zum Simulink Editor. In Ihrem Modell wird eine Kopie des Pulse Generator-Blocks mit einem Textfeld für den Wert des Parameters Amplitude angezeigt. Geben Sie 1 ein.

    The Pulse Generator block with a value of 1 entered in the text box prompt to specify the Amplitude parameter.

    Parameterwerte bleiben während der Simulation erhalten.

  2. Fügen Sie mit derselben Methode diese Blöcke zu dem Modell hinzu.

    BlockBibliothekParameter
    GainSimulink/Math Operations

    „Gain“ (Verstärkung): 2

    Second-Order IntegratorSimulink/Continuous

    „Initial condition“ (Anfangsbedingung): 0

    OutportSimulink/Sinks

    „Port number“ (Portnummer): 1

    Fügen Sie einen zweiten Outport-Block hinzu, indem Sie mithilfe von Tastenkombinationen den vorhandenen Block kopieren und an einer anderen Stelle einfügen.

    Jetzt enthält Ihr Modell die Blöcke, die Sie benötigen.

  3. Ordnen Sie die Blöcke nach Bedarf an, indem Sie sie einzeln mit der Maus anklicken und verschieben. Um die Größe eines Blocks zu ändern, ziehen Sie eine Ecke.

    Arranged blocks from left to right.

Blöcke verbinden

Verbinden Sie die Blöcke, indem Sie Linien zwischen Eingabeports und Ausgabeports erstellen.

  1. Klicken Sie auf den Ausgabeport an der rechten Seite des Pulse Generator-Blocks.

    Der Ausgabeport und alle Eingabeports, die für eine Verbindung geeignet sind, werden durch ein blaues Winkelsymbol port hint symbol angezeigt.

    Five unconnected blocks include, from left to right, a Pulse Generator block, a Gain block, a Second Order Integrator block, and two Outport blocks. The output port of the Pulse Generator block and the input ports of the other blocks display blue chevron port hint symbols.

  2. Zeigen Sie auf port hint symbol, um den Verbindungshinweis zu sehen.

    A connection cue is displayed between the Pulse Generator block and the Gain block.

    Klicken Sie auf den Hinweis, um die Blöcke mit einer Linie und einem Pfeil, der die Richtung des Signalflusses angibt, zu verbinden.

    An arrow represents the connection between the Pulse Generator block and the Gain block.

  3. Verbinden Sie den Ausgabeport des Gain block mit dem Eingabeport am Second-Order Integrator-Block.

  4. Verbinden Sie die zwei Ausgänge des Second-Order Integrator-Blocks mit den zwei Outport-Blöcken.

  5. Speichern Sie Ihr Modell. Klicken Sie auf der Registerkarte Simulation auf Save.

    All the blocks are connected.

Signal Viewer hinzufügen

Damit die Simulationsergebnisse angezeigt werden, verbinden Sie den ersten Ausgang mit einem Signal Viewer.

Klicken Sie auf das Signal. Klicken Sie auf der Registerkarte Simulation unter Prepare auf Add Viewer. Wählen Sie Scope aus. Danach wird ein Viewer-Symbol am Signal angezeigt und ein Scope-Fenster geöffnet.

A viewer icon appears on the signal between the Second-Order Integrator block and Outport block for output 1.

Sie können das Scope jederzeit öffnen, indem Sie auf dieses Symbol doppelklicken.

Simulation ausführen

Geben Sie den Endzeitpunkt für die Simulation ein. Simulieren Sie im Anschluss das Modell.

  1. Legen Sie auf der Registerkarte Simulation den Endzeitpunkt der Simulation fest. Geben Sie den Wert auf der Simulink-Symbolleiste auf der Registerkarte Simulation in das Feld Stop Time ein.

    Simulation stop time is displayed on the Simulation tab of the toolstrip

    Der Standardwert 10.0 für den Endzeitpunkt ist für dieses Modell geeignet. Dieser Zeitwert hat keine Einheiten. Die Zeiteinheit in Simulink hängt von der Konstruktion der Gleichungen ab. In diesem Beispiel wird die vereinfachte Bewegung eines Autos über einen Zeitraum von 10 Sekunden simuliert. In anderen Modellen könnten Millisekunden oder Jahre als Zeiteinheiten verwendet werden.

  2. Um die Simulation auszuführen, klicken Sie auf Run .

Die Simulation wird ausgeführt und erzeugt die Ausgabe im Scope Viewer.

A scope viewer shows the output of the simulation.

Modell verfeinern

Blockparameter ändern

In diesem Beispiel wird das vorhandene Modell moving_car.slx verwendet und basierend auf diesem Bewegungsmodell ein Näherungssensor modelliert.

In diesem Szenario misst ein digitaler Sensor die Entfernung zwischen dem Auto und einem 10 m (30 Fuß) entfernten Hindernis. Das Modell gibt die Sensormessung und die Position des Autos aus, wobei es die folgenden Bedingungen berücksichtigt:

  • Wenn das Auto das Hindernis erreicht, kommt es abrupt zum Stillstand.

  • In der Realität misst ein Sensor die Entfernung ungenau, was zu numerischen Zufallsfehlern führt.

  • Ein digitaler Sensor arbeitet mit festen Zeitintervallen.

Öffnen Sie zuerst das Modell moving_car. Geben Sie auf der MATLAB-Befehlszeile den folgenden Befehl ein:

open_system('moving_car.slx');

Sie müssen zuerst den abrupten Stillstand modellieren, wenn das Auto die Position 10 erreicht. Der „Integrator, Second-Order-Block“ besitzt einen Parameter für diesen Zweck.

  1. Doppelklicken Sie auf den „Integrator, Second-Order“-Block. Das Dialogfeld „Block Parameters“ wird angezeigt.

  2. Wählen Sie Limit x aus und geben Sie 10 für Upper limit x ein. Die Hintergrundfarbe für den Parameter ändert sich, um eine Änderung anzuzeigen, die nicht auf das Modell angewendet wurde. Klicken Sie auf OK, um die Änderungen anzuwenden und das Dialogfeld zu schließen.

Neue Blöcke und Verbindungen hinzufügen

Fügen Sie einen Sensor hinzu, der die Entfernung zum Hindernis misst.

  1. Modifizieren Sie das Modell. Erweitern Sie das Modellfenster, damit es die neuen Blöcke aufnehmen kann.

    • Ermitteln Sie die tatsächliche Entfernung. Um die Entfernung zwischen der Position des Hindernisses und der Position des Fahrzeugs zu ermitteln, fügen Sie den Subtract-Block aus der Bibliothek Math Operations hinzu. Fügen Sie auch den Constant-Block aus der Bibliothek Sources hinzu, um den konstanten Wert 10 für die Position des Hindernisses festzulegen.

    • Modellieren Sie die ungenaue Messung, die für einen echten Sensor typisch ist. Verwenden Sie den Band-Limited White Noise-Block aus der Bibliothek Sources, um weißes Rauschen zu generieren. Legen Sie den Parameter Noise power auf 0.001 fest. Verwenden Sie einen Add-Block aus der Bibliothek Math Operations, um das Rauschen zur Messung hinzuzufügen.

    • Modellieren Sie einen digitalen Sensor, der alle 0,1 Sekunden auslöst. In Simulink ist für die Abtastung eines Signals in einem bestimmten Intervall das Abtasten und Halten erforderlich. Fügen Sie den Zero-Order Hold-Block aus der Bibliothek Discrete hinzu. Nachdem Sie den Block zum Modell hinzugefügt haben, legen Sie den Parameter Sample Time auf 0.1 fest.

    • Fügen Sie einen weiteren Outport-Block für die Verbindung mit dem Sensorausgang hinzu. Lassen Sie den Wert des Parameters Port number unverändert.

  2. Verbinden Sie die neuen Blöcke. Der Ausgang des Second-Order Integrator-Blocks ist bereits mit einem anderen Port verbunden. Um in diesem Signal eine Verzweigung zu erstellen, klicken Sie mit der linken Maustaste auf das Signal, um die für die Verbindung infrage kommenden Ports hervorzuheben, und klicken dann auf den entsprechenden Port.

    With the signal between the Second-Order Integrator block and the Outport block selected, the software suggests connecting the signal line to the minus input port of the Subtract block.

Signale kommentieren

Fügen Sie Signalnamen zum Modell hinzu.

  1. Doppelklicken Sie auf das Signal und geben Sie den Signalnamen ein.

    Highlighted signal is called pedal position

  2. Zum Beenden brauchen Sie nur auf eine Stelle außerhalb des Textfeldes zu klicken.

  3. Wiederholen Sie diese Schritte, um die Namen gemäß der Abbildung hinzuzufügen.

    Model with named signals. The signal between Pulse Generator block and the gain block is called pedal position. The signal between the Gain block and the Integrator, Second-Order block is called acceleration. The signal between two Subtract blocks is called actual distance. The signal between the Zero-Order Hold block and the Outport block is called measured distance.

Mehrere Signale vergleichen

Vergleichen Sie das Signal actual distance mit dem Signal measured distance.

  1. Erstellen Sie einen Scope Viewer und verbinden Sie ihn mit dem Signal actual distance. Klicken Sie mit der rechten Maustaste auf das Signal und wählen Sie Create & Connect Viewer > Simulink > Scope aus. Der Name des Signals wird im Viewer-Titel angezeigt.

  2. Fügen Sie demselben Viewer das Signal measured distance hinzu. Klicken Sie mit der rechten Maustaste auf das Signal und wählen Sie Connect to Viewer > Scope1 aus. Stellen Sie sicher, dass Sie die Verbindung zu dem Viewer herstellen, den Sie im vorherigen Schritt erstellt haben.

    Window after right clicking a signal. Scope 1 is selected.

  3. Simulieren Sie das Modell. Im Scope Viewer werden die zwei Signale angezeigt: actual distance in Gelb und measured distance in Blau.

    The scope viewer shows the actual distance and the measured distance values.

  4. Vergrößern Sie das Diagramm, um den Effekt von Rauschen und Abtasten zu beobachten. Klicken Sie auf Zoom. Klicken Sie mit der linken Maustaste und ziehen Sie ein Feld um den Bereich, den Sie näher betrachten möchten.

    A rectangular box in the scope viewer window shows the region selected to zoom.

    Sie können diesen Schritt so oft wie nötig wiederholen, um die Details genauer zu betrachten.

    The zoomed region in the scope viewer

Im Diagramm wird sichtbar, dass die Messung um bis zu 0,3 m vom tatsächlichen Wert abweichen kann. Diese Information ist beim Entwickeln von Sicherheitsfunktionen, wie einer Kollisionswarnung, von Nutzen.

Siehe auch

Blöcke

Verwandte Themen