Main Content

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

Ein System in Simulink entwerfen

Model-Based Design ist ein Paradigma, in dessen Zentrum Modelle physischer Komponenten und Systeme stehen, die als Grundlage für Aktivitäten im Zusammenhang mit Entwurf, Test und Implementierung dienen. In diesem Tutorial wird eine entworfene Komponente einem vorhandenen Systemmodell hinzugefügt.

Systemmodell öffnen

Das Modell ist ein flacher Roboter, der sich mithilfe zweier Räder fortbewegen oder drehen kann, ähnlich einem Saugroboter für den Haushalt. Öffnen Sie das Modell, indem Sie auf der MATLAB®-Befehlszeile Folgendes eingeben:

open_system('system_model.slx')

In diesem Tutorial wird dieses System analysiert und ihm Funktionalität hinzugefügt.

Entworfene Komponenten und Entwurfsziele identifizieren

Die Festlegung der Entwurfsziele ist ein entscheidender erster Schritt beim Entwurf. Auch bei einem einfachen System kann es mehrere und sogar konkurrierende Entwurfsziele geben. Berücksichtigen Sie für das Beispielmodell die folgenden Ziele:

  • Entwurf eines Controllers, der die zugeführte Kraft so variiert, dass sich die Räder mit der gewünschten Geschwindigkeit drehen.

  • Entwurf von Eingaben, die bewirken, dass sich das Gerät auf einem vorbestimmten Pfad fortbewegt.

  • Entwurf eines Sensors und Controllers, die ermöglichen, dass das Gerät einer Linie folgt.

  • Entwurf eines Planungsalgorithmus, der ermöglicht, dass das Gerät einen bestimmten Punkt auf dem kürzesten Pfad erreicht und dabei Hindernissen ausweicht.

  • Entwurf eines Sensors und Algorithmus, die ermöglichen, dass das Gerät einen bestimmten Bereich überquert und dabei Hindernissen ausweicht.

In diesem Tutorial wird ein Warnsystem entworfen. Sie bestimmen die Parameter für einen Sensor, der die Entfernung zu einem Hindernis misst. Ein perfekter Sensor misst die Entfernung zu einem Hindernis genau. Ein Warnsystem tastet diese Messungen in festen Intervallen ab, damit die Ausgabe immer um weniger als 0,05 m von der Messung abweicht. Das System generiert rechtzeitig eine Warnung, damit der Roboter zum Stillstand kommt, bevor er auf das Hindernis trifft.

Mit Simulation das Systemverhalten analysieren

Beim Entwurf der neuen Komponente muss die Linearbewegung des Roboters analysiert werden, um Folgendes zu bestimmen:

  • Wie weit der Roboter bei Höchstgeschwindigkeit fahren kann, wenn die Stromzufuhr zu den Rädern unterbrochen wird

  • Die Höchstgeschwindigkeit des Roboters

Simulieren Sie das Modell mit einem Krafteingangssignal, das den Roboter in Bewegung versetzt, wartet, bis er eine konstante Geschwindigkeit erreicht, und dann die Kraft auf null setzt:

  1. Doppelklicken Sie im Modell auf das Subsystem Inputs.

  2. Löschen Sie die vorhandene Schritteingabe und fügen Sie einen Pulse Generator-Block hinzu.

  3. Legen Sie die folgenden Parameter für den Pulse Generator-Block fest:

    • „Amplitude“: 1

    • „Period“ (Periode): 20

    • „Pulse Width“ (Pulsbreite): 15

    Diese Parameter sind so gestaltet, dass die Höchstgeschwindigkeit sicher erreicht wird. Sie können die Parameter auch ändern, um ihren Effekt zu beobachten.

  4. Simulieren Sie das Modell für einen Zeitraum von 20 Sekunden.

    Zur Analyse der Simulationsergebnisse lassen Sie sich die mit den Floating Scopes verbundenen Signale im Modell anzeigen.

    Das erste Scope zeigt, dass die Geschwindigkeit des Roboters schnell abnimmt, nachdem der Puls, der die Eingangskraft darstellt, innerhalb einer Simulationszeit von 3 Sekunden auf null abfällt. Die Geschwindigkeit nähert sich asymptotisch dem Wert null, ohne ihn tatsächlich zu erreichen. Die akkurate Modellierung der Dynamik bei niedrigen Geschwindigkeiten ohne externe Kräfte erfordert eine weitaus komplexere Darstellung des Systems. Für das hier festgelegte Ziel ist diese nur näherungsweise korrekte Darstellung des Systems jedoch ausreichend.

    The scope shows the speed of the robot over the 20 second simulation.

    Das zweite Scope zeigt die Position des Roboters im Verlauf der Simulation. Zu Beginn verändert sich die Position schneller. Bei einer Simulationszeit von etwa 3 Sekunden verändert sich die Position langsamer, während die Geschwindigkeit des Roboters abnimmt.

    The scope shows the position of the robot over the 20 second simulation.

Zoomen Sie das Scope-Diagramm, das die Roboterposition zeigt, heran. Zum Zeitpunkt 3 befindet sich der Roboter ungefähr an Position 0.55 m. Am Ende der Simulation befindet sich der Roboter ungefähr an Position 0.7 m. Da die Geschwindigkeit des Roboters zum Ende der Simulation sehr nah bei null liegt, zeigen die Ergebnisse, dass sich der Roboter weniger als 0.16 m bewegt, nachdem die externe Kraft auf null abgefallen ist.

The scope shows a closer view of the robot position over the 20 second simulation. The maximum value on the y-axis is 0.7.

So lässt sich die Höchstgeschwindigkeit ermitteln:

  1. Zoomen Sie die flache Region des Geschwindigkeitssignals im Zeitbereich von 1 s bis 3 s heran.

  2. Verlassen Sie den Zoom-Modus, indem Sie noch einmal auf die Zoom-Schaltfläche klicken.

  3. Klicken Sie auf „Cursor Measurements“ .

  4. Bewegen Sie den zweiten Cursor in die Region, in der die Geschwindigkeitskurve flach ist.

    The scope shows a closely zoomed view of the robot speed in the part of the simulation where the pulse signal is high. The cursor measurements panel is shown in the Scope window to the right of the plot.

In der Spalte Value im Bereich Cursor Measurements ist angegeben, dass die Höchstgeschwindigkeit des Roboters 0.183 m/s beträgt. Um die Zeit, die der Roboter für eine Strecke von 0,05 m benötigt, zu berechnen, dividieren Sie 0,05 m durch 0,183 m/s. Das Ergebnis lautet 0,27 s.

Komponenten entwerfen und Entwurf überprüfen

Der Sensorentwurf besteht aus den folgenden Komponenten:

  • Messung der Entfernung zwischen dem Roboter und dem Hindernis: In diesem Beispiel wird angenommen, dass die Messung perfekt ist.

  • Das Zeitintervall zwischen allen vom Warnsystem ausgeführten Entfernungsmessungen: Um den Messfehler unter 0,05 m zu halten, muss das Abtastintervall kleiner als 0,27 s sein. Verwenden Sie 0,25 Sekunden.

  • Die Entfernung, bei der der Sensor eine Warnung ausgibt: Die Analyse zeigt, dass der Abbremsvorgang beginnen muss, wenn sich der Roboter in einer Entfernung von ca. 0,16 m zum Hindernis befindet. Bei der tatsächlichen Warnentfernung muss auch der Fehler der diskreten Messungen, der 0,05 m beträgt, berücksichtigt werden.

Entworfene Komponente hinzufügen

Erstellen Sie den Sensor:

  1. Erstellen Sie ein Subsystem mit vier Eingabeports und einem Ausgabeport. Das Subsystem erhält Eingaben für die x- und y-Koordinaten des Roboters und für die x- und y-Koordinaten des Hindernisses. Das vom Sensor erzeugte Warnsignal stellt eine Verbindung zum Ausgabeport her.

    The view of the sensor subsystem in the parent diagram shows the input and output ports.

  2. Konstruieren Sie das Subsystem für die Entfernungsmessung. Verwenden Sie im Subsystem Sensor model den Block Subtract, den Block Math Function mit der Funktion magnitude^2, den Block Sum und den Block Sqrt, um die Entfernungsberechnung zu implementieren. Beachten Sie, dass innerhalb des Subsystems die Anordnung der Eingabeports nicht mit der Anordnung der Ports in der Schnittstelle des Subsystem-Blocks übereinstimmen muss.

    Blocks inside the subsystem that represents the sensor implement the distance calculation.

  3. Zum Modellieren der Abtastung fügen Sie dem Subsystem einen Zero-Order Hold-Block aus der Bibliothek „Discrete“ hinzu und legen Sie den Parameter Sample time für den Block auf 0.25 fest.

  4. Verbinden Sie das Ergebnis der Entfernungsberechnung mit dem Eingang des Zero-Order Hold-Blocks.

  5. Zum Modellieren der Warnlogik fügen Sie einen Compare to Constant-Block aus der Bibliothek „Logic and Bit Operations“ hinzu und legen Sie die folgenden Block-Parameter fest:

    • Operator: <=

    • Constant Value: 0.21

    • Output data type: boolean

    Mit diesen Parameterwerten beträgt der Ausgabewert des Blocks 1, wenn der Eingabewert kleiner oder gleich 0.21 ist.

  6. Verbinden Sie den Ausgang des Zero-Order Hold-Blocks mit dem Eingang des Compare to Constant-Blocks.

  7. Verbinden Sie abschließend den Ausgang des Compare to Constant-Blocks mit dem Outport-Block Alert.

    The block diagram shows the contents of the subsystem that models the sensor.

Entwurf überprüfen

Testen Sie den Entwurf mit einem Hindernis an der Position X = 0.65, Y = 0 unter Verwendung von Constant-Blöcken als Eingaben für das Sensormodell-Subsystem. Bei diesem Test wird die Funktionalität des Entwurfs in X-Richtung überprüft. Sie können ähnliche Tests für andere Pfade erstellen. Dieses Modell generiert lediglich eine Warnung. Der Roboter wird nicht gesteuert.

  1. Legen Sie die Position des Hindernisses fest. Fügen Sie zwei Constant-Blöcke aus der Bibliothek „Sources“ hinzu, um die konstanten Werte auf 0.65 und 0 festzulegen. Verbinden Sie die Positionsausgänge des Roboters mit den Eingängen des Sensors.

  2. Fügen Sie ein Scope zum Ausgang „Alert“ hinzu.

    The view of the top model shows the floating scope added to the Alert output of the subsystem that represents the sensor.

  3. Simulieren Sie das Modell.

Das Diagramm zur Position des Roboters im Scope sieht genauso aus wie beim vorherigen Durchgang.

The scope shows the position of the robot over the 20 second simulation.

Das mit dem Warnsignal verknüpfte Scope zeigt, dass der Wert des Warnsignals 1 wird, wenn sich der Roboter auf 0.21 m dem Hindernis nähert. Damit ist die Entwurfsanforderung für diese Komponente erfüllt.

The scope shows the value of the alert signal over the 20 second simulation.

Für reale Systeme mit komplexen Komponenten und formalen Anforderungen enthält die Produktfamilie Simulink® zusätzliche Tools zum Verfeinern und Automatisieren des Entwurfsprozesses. Die Requirements Toolbox™ enthält Tools zum formalen Definieren von Anforderungen und zum Verknüpfen dieser Anforderungen mit Modellkomponenten. Simulink Control Design™ kann den Entwurf erleichtern, wenn Sie einen Controller für diesen Roboter erstellen möchten. Simulink Verification and Validation™-Produkte bilden ein formales Framework für den Test von Komponenten und Systemen.

Verwandte Themen