Open-Loop-Simulation am Beispiel der Geschwindigkeits-Nachbearbeitung SenVx

Aus HSHL Mechatronik
Version vom 6. Juni 2023, 23:40 Uhr von David Weigt (Diskussion | Beiträge) (Beschreibung des SenVx Modells und der späteren Simulation, sowie ein Fazit)
Zur Navigation springen Zur Suche springen

→ zurück zum Hauptartikel: Praktikum SDE

→ zurück zur Liste der Spezialthemen: SDEP_Spezialthemen


Autor: David Weigt

Einleitung

Im nachfolgenden Artikel soll anhand eines Modells des CaroloCupFahrzeuges gezeigt werden, wie eine Open-Loop-Simulation in Matlab Simulink funktioniert.
Dazu wird in den nächsten Abschnitten das Funktionsprinzip einer Open-Loop erklärt und nach einer Beschreibung des SenVx Modells, dieses in einer Open-Loop Simuliert. Zuvor ist allerdings zu klären, welchen Nutzen man aus einer solchen Simulation zieht.

In einem Entwicklungsprozess einer Software kommt es nach einer erfolgreichen Umsetzung der Problemlösung zu dem Punkt, dass die Software getestet werden muss oder einer Optimierung bedarf.
Um diesen Prozess nicht in ständigen Echtzeiterprobungen durchführen zu müssen, was einen erheblichen Zeitaufwand und hohe Kosten mit sich bringen würde, versucht man diesen zu Simulieren. Dazu wird entweder die Erprobungsumgebung Simuliert oder die gemessenen
Parameter einer Echtzeiterprobung für weitere Simulationen genutzt.


Aufbau Open-Loop

Damit der Aufbau einer Open-Loop-Simulation verstanden werden kann, ist die vorherige Eingangssituation der Software zu betrachten.
Ein Einsatz eines solchen Systems(Software) ist in Abb 1 zu sehen. Die Abbildung zeigt in diesem Fall ein System welches über Eingangswerte, bestimmte Ausgangswerte bestimmt.
Diese Eingangswerte können dabei unterschiedlicher Herkunft sein. So kann z.B. das System nur ein Teilsystem sein und von vorgeschalteten Teilsystemen Werte empfangen und auswerten.
Außerdem können die Eingangswerte von verwendeten Sensoren stammen, die eine bestimmte physikalische Größe messen.
Wichtig ist hierbei nur, dass bei einer Open-Loop-Simulation nur Ausgangswerte betrachtet werden, die sich abhängig der Eingangswerte verändern. Einem anderen Zweck dient dieses Verfahren nicht.

Abb 1: System Grundaufbau


Soll nun eine Open-Loop-Simulation das System prüfen bzw. seinen Einsatz Simulieren, dann wird wie in Abb 2 zwischen zwei Ausgangssituationen unterschieden.
Der erste Weg die Simulation durchzuführen ist es, die Echtzeiterprobung zu Simulieren. Dazu werden die Simulierten Daten dem System übergeben und die Ausgaben mit einem Soll-Wert verglichen.
Dabei ist zu beachten, dass sich dieses Verfahren mehr für die Überprüfung der Funktionalität der Software lohnt. Spätere detaillierte Analysen sollten dann eher über das andere Verfahren getätigt werden.
Der zweite Weg ist es die zuvor gemessenen Daten der Echtzeiterprobung dem System zu übergeben und die gemessenen Ausgaben mit den berechneten Ausgaben zu vergleichen.

Abb 2: System mit Open-Loop-Simulation


Geschwindigkeits-Nachbearbeitung SenVx

Abb 3: SenVx Modell

Als Beispiel für eine Open-Loop-Simulation soll in diesem Artikel das SenVx Modell (Abb 3) dienen, welches ausführlich in einem anderen Artikel beschrieben wird.
In diesem Modell werden über die Eingangswerte Geschwindigkeit und Fahrtrichtung eine gefilterte Geschwindigkeit generiete. Das Modell dient also der Aufbereitung der zuvor gemessenen Geschwindigkeit. Dabei wird zu Begin die Geschwindigkeit und die Beschleunigung begrenzt. Darauf Folgend legt das Fahrtrichtungsbit die Fahrtrichtung fest und ein PT1 Filter filtert die zuvor bearbeitete Geschwindigkeit. Alle anderen Eingänge werden zwar von dem Modell erfasst, fließen aber nicht mit in die Berechnung ein und werden somit nicht vom System verändert.


Open-Loop Simulation an SenVx

Aufbau des Simulationsmodells

Abb 5: Load from Workspace Block

Für die Simulation des SenVx Modells muss zu Begin das Modell angepasst werden. Zudem müssen die gemessenen Echtzeitdaten in den Matlab Workspace geladen werden. Dies kann durch ein einfaches Skript erfolgen. Um nun die Daten aus dem Workspace in die Simulation zu laden, kann man die dafür vorgesehenen Simulink Funktion "Load from Workspace" verwenden; hier in Abb 5 zu sehen. Mit diesem Block können nun die benötigten Eingangsgrößen geladen werden. In diesem Fall handelt es sich um die Strecke, die ungefilterte Geschwindigkeit und das Fahrtrichtungsbit. Die sich ergebenen Ausgangsgrößen wurden in diesem Beispiel mit einem Scope Block verglichen und visualisiert. Es ist zu sehen, dass auch die Zwischengrößen in diesem Modell betrachtet werden. Dies dient dazu im Verlauf der Berechnungen, einzelne Ergebnisse sich erkennbar zu machen und so Fehlerquellen besser zu erkennen und zu verstehen.

Abb 5: System mit Open-Loop-Simulation


Fehleranalyse

Abb 6: Geschwindigkeitsmessung mit Referenzwert
Abb 7: Streckenmessung mit Fernbedienung

Bei der Simulation des Modells, in Abb 6 und Abb 7 gezeigt, sind zwei signifikate Fehler zu erkennen.

Fehler Beschreibung Mögliche Ursache
Tabelle 1: Fehler Tabelle
1. Fehler Der Wert der zurückgelegten Strecke ist negativ gezählt. Dies ist aus Abb 7 zu erkennen. Durch einen einen invertierten Wert in der Berechnung kommt es zur negativen Zählung.
2. Fehler Die Ausgabe der Geschwindigkeit ist zu stark gefiltert und weißt einen groben Verlauf auf. Dies ist in Abb 6 sehr gut zu erkennen. Hier ist der erst und letzte Plot im Vergleich sehr stark abgeflacht. Durch eine zu hoch gewählte Konstante im PT1 Filter, glättet dieser das Ausgangssignal zu stark ab.


Fazit

Aus diesem Beispiel wird deutlich, welchen Nutzen die Open-Loop-Simulation für die Entwicklung vor Software hat. Eine einfache Anpassung des Modells ermöglicht es das Verhalten des Modells nachzuvollziehen und gegebenenfalls Änderungen vor zu nehmen
Eine ständige Echtzeitanalyse an dem Versuchsfahrzeug währe in diesem Fall viel zu aufwändig. Zudem bietet die Simulation ein schnelles Verständnis über den internen Ablauf zu gewinnen.