Main Content

Definition und Layout eines Systems

Das Systemlayout oberster Ebene eines Simulink®-Modells ist ein gemeinsamer Kontext, den viele Entwicklungsteams verwenden können, und bildet die Grundlage für viele Aufgaben im Paradigma des Model-Based Design: Analyse, Entwurf, Test und Implementierung. Sie definieren ein System auf der obersten Ebene, indem Sie die Struktur und die einzelnen Komponenten identifizieren. Anschließend organisieren Sie Ihr Modell in einer hierarchischen Form, die den Komponenten entspricht. Danach definieren Sie Schnittstellen für jede Komponente und die Verbindungen zwischen Komponenten.

Das in diesem Tutorial vorgestellte Modell ist ein flacher Roboter, der sich mithilfe zweier Räder fortbewegen oder drehen kann, ähnlich einem Saugroboter für den Haushalt. In diesem Modell wird angenommen, dass der Roboter zwei Möglichkeiten der Fortbewegung hat:

  • Linearbewegung: Beide Räder drehen sich mit derselben Geschwindigkeit in dieselbe Richtung und der Roboter bewegt sich auf einer Linie.

  • Rotationsbewegung: Die Räder drehen sich mit derselben Geschwindigkeit in entgegengesetzte Richtungen und der Roboter dreht sich auf der Stelle.

A flat circular robot is shown from the top. The center of the circular robot perimeter is the origin of the polar coordinate system. The direction of motion is indicated by the angle theta, which is marked as about 30 degrees above the horizontal axis pointing right. The wheel axis is perpendicular to the direction of motion. The wheels are lined up parallel to the direction of motion.

Die Bewegung beginnt immer in einem Ruhezustand, das heißt, sowohl die Rotationsgeschwindigkeit als auch die Lineargeschwindigkeit ist null. Mit diesen Voraussetzungen können die Komponenten für die Linear- und die Rotationsbewegung separat modelliert werden.

Modellierungsziele bestimmen

Vor dem Entwurf eines Modells sollten Sie Ihre Ziele und Anforderungen festlegen. Die Ziele bedingen sowohl die Struktur als auch den Detaillierungsgrad für das Modell. Wenn das Ziel lediglich darin besteht, herauszufinden, wie schnell sich der Roboter fortbewegen kann, ist die Modellierung für die Linearbewegung ausreichend. Wenn das Ziel darin besteht, eine Reihe von Eingaben zu entwerfen, die bewirken, dass sich das Gerät auf einem bestimmten Pfad fortbewegt, dann ist die Komponente für die Rotationsbewegung erforderlich. Wenn ein Ziel darin besteht, Hindernissen auszuweichen, dann benötigt das System einen Sensor. In diesem Tutorial wird ein Modell mit Sensor erstellt. Das Ziel besteht darin, die Sensorparameter so zu gestalten, dass der Roboter rechtzeitig anhält, wenn er ein Hindernis auf seinem Weg erkennt. Um dieses Ziel zu erreichen, muss das Modell:

  • Bestimmen, wie schnell der Roboter zum Stillstand kommt, wenn die Motoren abgeschaltet werden

  • Eine Folge von Befehlen für die Linear- und die Rotationsbewegung bereitstellen, mit deren Hilfe sich der Roboter in einem zweidimensionalen Raum fortbewegen kann

Das erste Modellierungsziel ermöglicht Ihnen, die Bewegung zu analysieren, damit Sie den Sensor entwerfen können. Das zweite Ziel ermöglicht Ihnen, den Entwurf zu testen.

Systemkomponenten und Schnittstellen identifizieren

Sobald Sie Ihre Modellierungsanforderungen kennen, können Sie die Komponenten des Systems identifizieren. Das Identifizieren von einzelnen Komponenten und deren Beziehungen in einer Struktur oberster Ebene hilft, ein potenziell komplexes Modell systematisch zu erstellen. Diese Schritte führen Sie außerhalb von Simulink durch, bevor Sie mit dem Erstellen Ihres Modells beginnen.

Im Rahmen dieser Aufgabe müssen die folgenden Fragen beantwortet werden:

  • Welche Komponenten sind die Struktur- und Funktionskomponenten des Systems? Ein Layout, das die physische und funktionale Struktur abbildet, hilft Ihnen, das System zu verstehen, zu erstellen, darzustellen und zu testen. Dies wird noch wichtiger, wenn Teile des Systems in verschiedenen Phasen des Entwurfsprozesses implementiert werden sollen.

  • Welche Eingaben und Ausgaben müssen bei einer Komponente berücksichtigt werden? Zeichnen Sie ein Bild, das die Verbindungen zwischen Komponenten zeigt. Dieses Bild hilft Ihnen, den Signalfluss innerhalb des Modells zu visualisieren, die Quelle und die Senke jedes Signals zu identifizieren und zu bestimmen, ob alle notwendigen Komponenten vorhanden sind.

  • Welcher Detaillierungsgrad ist erforderlich? Nehmen Sie die wichtigen Systemparameter in Ihr Diagramm auf. Ein Abbild des Systems kann Ihnen dabei helfen, die Teile, die für das von Ihnen gewünschte Verhalten unbedingt erforderlich sind, zu identifizieren und zu modellieren. Alle Komponenten und Parameter, die zum Modellierungsziel beitragen, müssen im Modell dargestellt werden. Allerdings gibt es einen Zielkonflikt zwischen Komplexität und Lesbarkeit. Die Modellierung kann ein iterativer Prozess sein. Sie können mit einem allgemeinen Modell mit wenigen Details beginnen und dann bei Bedarf allmählich die Komplexität erhöhen.

Oft ist es von Vorteil, die folgenden Punkte zu berücksichtigen:

  • Welche Teile des Systems müssen getestet werden?

  • Welche Testdaten und Erfolgskriterien müssen berücksichtigt werden?

  • Welche Ausgaben sind für Analyse- und Entwurfsaufgaben erforderlich?

Komponenten für die Fortbewegung des Roboters identifizieren

Das System in diesem Tutorial definiert einen Roboter, der sich mit zwei elektrisch angetriebenen Rädern im zweidimensionalen Raum fortbewegt. Die Bestandteile sind:

  • Linearbewegung mit bestimmten Merkmalen

  • Rotationsbewegung mit bestimmten Merkmalen

  • Transformationen zum Bestimmen der Position des Systems in zwei Dimensionen

  • Ein Sensor zum Messen der Entfernung des Roboters zu einem Hindernis

The block diagram lists these components from left to right: force inputs, left wheel, right wheel, rotation computation, coordinate transformation, sensor.

Das Modell für dieses System enthält zwei identische Räder, zugeführte Kräfte, die auf die Räder ausgeübt werden, Rotationsdynamik, Koordinatentransformation und einen Sensor. Zum Darstellen einer Komponente verwendet das Modell ein Subsystem:

  1. Öffnen Sie ein neues Simulink-Modell. Siehe Neues Modell öffnen.

  2. Öffnen Sie den Library Browser. Siehe Simulink Library Browser öffnen.

  3. Fügen Sie Subsystem-Blöcke hinzu. Ziehen Sie fünf Subsystem-Blöcke aus der Bibliothek Ports & Subsystems zum neuen Modell.

  4. Klicken Sie auf ein Subsystem. Klicken Sie auf der Registerkarte Format auf die Dropdown-Liste Auto. Deaktivieren Sie das Kontrollkästchen Hide Automatic Block Names.

    The Auto drop-down list is expanded. The Hide Automatic Block Names check box is cleared.

  5. Ordnen Sie die Subsystem-Blöcke gemäß der Abbildung an und benennen Sie sie entsprechend um. Zum Ändern des Namens eines Blocks müssen Sie lediglich auf ihn doppelklicken und können dann den Text bearbeiten.

    Five Subsystem blocks have the names: Inputs, Left Wheel, Right Wheel, Rotation, and Coordinate Transformation.

Schnittstellen zwischen Komponenten definieren

Identifizieren Sie die Verbindungen zwischen den Aus- und Eingängen der Subsysteme. Während einer Simulation ändern sich die Eingabe- und Ausgabewerte dynamisch. Linien, die Blöcke verbinden, stellen eine Datenübertragung dar. Die folgende Tabelle enthält die Eingaben und Ausgaben für die einzelnen Komponenten.

BlockEingabeAusgabeZugehörige Informationen
InputsKeine

Auf das rechte Rad ausgeübte Kraft

Auf das linke Rad ausgeübte Kraft

Entfällt
Right WheelAuf das rechte Rad ausgeübte KraftGeschwindigkeit des rechten RadesGerichtet (unidirektional), negatives Vorzeichen bedeutet Richtungsumkehr
Left WheelAuf das linke Rad ausgeübte KraftGeschwindigkeit des linken RadesGerichtet (unidirektional), negatives Vorzeichen bedeutet Richtungsumkehr
Rotation Geschwindigkeitsdifferenz zwischen rechtem und linkem RadDrehwinkelGegen den Uhrzeigersinn gemessen
Coordinate Transformation

Normalgeschwindigkeit

Drehwinkel

Geschwindigkeit in X-Richtung

Geschwindigkeit in Y-Richtung

Entfällt
Sensor

X-Koordinate

Y-Koordinate

KeineKein Block für Modellierung erforderlich

Einige Block-Eingaben stimmen nicht exakt mit Block-Ausgaben überein. Deshalb muss durch das Modell zusätzlich zur Dynamik der einzelnen Komponenten Folgendes berechnet werden:

  • Eingabe für die Rotationsberechnung: Subtraktion der Geschwindigkeiten der zwei Räder und Division durch zwei.

  • Eingabe für die Coordinate Transformation (Koordinatentransformation): Bildung des Durchschnitts der Geschwindigkeiten der zwei Räder.

  • Eingabe für den Sensor: Integration der Ausgaben von Coordinate Transformation (Koordinatentransformation).

Die Geschwindigkeiten der Räder sind betragsmäßig immer gleich groß und die Berechnungen sind unter dieser Voraussetzung genau.

Fügen Sie die erforderlichen Komponenten hinzu und stellen Sie die Verbindungen fertig:

  1. Fügen Sie jedem Subsystem die erforderlichen Eingabeports und Ausgabeports hinzu. Doppelklicken Sie auf einen Subsystem-Block.

    An Inport block named In1 connects to an Outport block named Out1.

    Jeder neue Subsystem-Block enthält einen Inport-Block (In1) und einen Outport-Block (Out1). Diese Blöcke definieren die Signalschnittstelle mit der nächsthöheren Ebene in einer Modellhierarchie.

    Jeder Inport-Block erstellt einen Eingabeport am Subsystem-Block und jeder Outport-Block erstellt einen Ausgabeport. Im Modell werden die Namen dieser Blöcke durch die Namen der Eingabe- und Ausgabeports dargestellt. Fügen Sie weitere Blöcke für zusätzliche Eingangs- und Ausgangssignale hinzu. Klicken Sie auf der Symbolleiste im Simulink Editor auf die Schaltfläche Navigate Up To Parent , um zur obersten Ebene zurückzukehren.

    Fügen Sie für jeden Block weitere Inport- und Outport-Blöcke hinzu und benennen Sie sie um.

    The five Subsystem blocks are shown with previews of the subsystem contents visible. In the Subsystem block named Inputs, Outport blocks named Left force and Right force are visible.

    Verwenden Sie beim Kopieren eines Inport-Blocks zum Erstellen eines neuen Blocks die Option Paste (Strg+V).

  2. Berechnen Sie aus der Geschwindigkeit des linken Rades und der Geschwindigkeit des rechten Rades die erforderlichen Eingaben für die Subsysteme Coordinate Transform und Rotation.

    1. Berechnen Sie die Lineargeschwindigkeit als Eingabe für das Subsystem Coordinate Transform. Fügen Sie einen Add-Block aus der Bibliothek „Math Operations“ hinzu und verbinden Sie ihn mit den Ausgängen der zwei Rad-Komponenten. Fügen Sie einen „Gain“-Block hinzu und legen Sie den Verstärkungsparameter auf 1/2 fest. Verbinden Sie den Ausgang des Add-Blocks mit diesem Gain-Block.

    2. Berechnen Sie die Geschwindigkeitsdifferenz als Eingabe für das Subsystem Rotation. Fügen Sie einen Subtract-Block aus der Bibliothek „Math Operations“ hinzu. Verbinden Sie die Geschwindigkeit des rechten Rades mit dem Eingang + und die Geschwindigkeit des linken Rades mit dem Eingang -. Verbinden Sie die Ausgänge der zwei Rad-Komponenten. Fügen Sie einen „Gain“-Block hinzu und legen Sie den Verstärkungsparameter auf 1/2 fest. Verbinden Sie den Ausgang des Subtract-Blocks mit diesem Gain-Block.

      The Subsystem block named Left Wheel is above the Subsystem block named Right Wheel. The input port of both blocks is named Force, and the output port is naemd Speed. Both output port connect to an Add block that connects to a Gain block with the value of 1/2. Both output ports also connect to a Subtract block that subtracts the speed of the left wheel from the speed of the right wheel and then connects to a Gain block with a value of 1/2.

  3. Berechnen Sie aus der Geschwindigkeit in X-Richtung und der Geschwindigkeit in Y-Richtung die X- und die Y-Koordinate. Fügen Sie zwei Integrator-Blöcke aus der Bibliothek „Continuous“ hinzu und verbinden Sie sie mit den Ausgängen des Coordinate Transform-Blocks. Lassen Sie bei den Integrator-Blöcken die Anfangsbedingung 0 unverändert.

    The Subsystem named Coordinate Transform has two input ports, named Linear speed and Angle, and two output ports named X speed and Y speed. Both output ports connect to an Integrator block.

  4. Vervollständigen Sie die Verbindungen für das System.

    In the completed model, the Subsystem block named Subsystem connects to the Subsystem blocks named Left Wheel and Right Wheel. The wheel subsystems connect to an Add block that connects to a Gain block with the value of ½ that connects to the Subsystem block named Coordinate Transform. The wheel subsystems also connect to a Subtract block that subtracts the left wheel speed from the right wheel speed and connects to a Gain block with the value of ½. The Gain block connects to the Subsystem block named Rotation that connects to the Subsystem block named Coordinate Transform. Both of the output ports of the Coordinate Transform subsystem connect to an integrator block.

Parameter und Daten

Bestimmen Sie die zum Modell gehörigen Parameter und ihre Werte. Verwenden Sie Modellierungsziele, um zu bestimmen, ob diese Werte immer fest sind oder sich von Simulation zu Simulation ändern. Für Parameter, die zum Modellierungsziel beitragen, muss das Modell eine entsprechende explizite Wiedergabe enthalten. Die folgende Tabelle soll Ihnen helfen, beim Modellieren der einzelnen Komponenten den Detaillierungsgrad zu bestimmen.

ParameterBlockSymbolWertTyp
Masse

Left Wheel

Right Wheel

m2,5 kg Variable
Rollwiderstand

Left Wheel

Right Wheel

k_drag30 Ns2/mVariable
RoboterradiusRotationr0,15 mVariable
AnfangswinkelRotationKeine0 radFest
Anfangsgeschwindigkeiten

Left Wheel

Right Wheel

Keine

0 m/s

0 m/s

Fest
Anfangskoordinaten (X, Y)IntegratorKeine(0, 0) mFest

Simulink verwendet den MATLAB®-Workspace zum Auswerten der Parameter. Legen Sie im MATLAB-Befehlsfenster die folgenden Parameter fest:

m = 2.5;
k_drag = 30;
r = 0.15;

Verwandte Themen