Was ich hier vorhabe ist einen PID Regler zu implementieren, der bei einem Flugzeug (in einer PC Simulation) die gewünschte Höhe hält. Der PID an sich ist nicht das Problem. Das Problem ist folgendes: Ich regle die Höhe über das Anstellen der Höhenruder. D.h. die Höhe ist mein Sollwert/Führungsgröße und der Winkel des Höhenruders ist meine Stellgröße. Aber der Antellwinkel des Höhenruders hat ja leider noch eine andere Wirkung als nur die Höhe zu ändern: Das Flugzeug hebt oder senkt dabei die Nase, was bei einer größeren Regelabweichung durch den über eine Zeit anliegenden Anstellwinkel irgendwann zum Ströhmungsabriss oder dem gegenteiligen Effekt führen kann. Das heißt ich muss jetzt also den maximalen Pitch relativ zum Horizont begrenzen den das Flugzeug einnehmen darf. Und da ist der Knackpunkt: Der absolute Pitch ist ja kein Teil der Regeltrecke. Es ist nur eine Abhängigkeit die meinen Flieger in Schwierigkeiten bringen kann, wenn sie nicht betrachtet wird. Was ich aktuell mache ist, bei Erreichen des von mir vorgegebenen Maximal-Pitches den Stellwert zu invertieren und um einen gewissen Faktor abzuschwächen. Oder anders gesagt: Ich lasse den Flieger den Anstellwinkel an der Pitch-Grenze umdrehen, um wieder in den erlaubten Pitch Bereich zu kommen. Nur hat das dann leider zur Folge, dass der Flieger zwar die Höhe einigermaßen hält, dabei ammer ständig am "Nicken" ist. Nase hoch bis zur Begrenzung -> Nase runter bis zur Begrenzung. Das führt dann zu großen Schwankungen in der Höhe um den Sollwert herum die ich bisher mit keiner Regler-Einstellung vermeiden oder vermindern konnte. Aber der Regler kann da ja auch nicht wirklich was dafür... Wie implementiert man einen Regler, wenn man wie im o.g. Beispiel eine abhängige äußere Größe beeinflusst, die nicht zum Regelkreis gehört? Kann man dieses Pitch-"Fenster" auch in dem vorhandenen Regler oder ggf. einem eigenen Regler abbilden, so das alles korrekt zusammenspielt? Wie sind da die Ansätze?
Du kannst vieles Rechnen, und auch etwas erhalten. Eine Fliegersimulation ist etwas komplzierter wie ein PID Regler... Ein PID tut nicht, weil das Problem sehr nichtlinear ist. Man kann nun fuer jeden Betriebspunkt die Parameter neu finden/suchen, oder ein besseres Modell rechnen.
Wenn du den Pitch so begrenzen kannst, hast du anscheinend schon einen zuverlässigen Sensor dafür. Rein physikalisch ist es doch so, dass in der Regelstrecke der Höhenruderausschlag den Pitch bewirkt und dieser wieder die Flughöhe. Eigentlich ein guter Kandidat für eine Kaskadenregelung. Da kann man dann auf den Ausgang des Höhenreglers (der ja die Führungsgröße für den Pitchregler wird) noch einen Maximalwert aufzwingen. Nur aufpassen, dass das nicht zum Windup für den Höhenregler führt (evtl. Logik nach dem Motto: Wenn Führungsgröße für den Pitchregler in der Begrenzung, darf der Höhenregler seinen I-Anteil nicht weiter erhöhen).
Wie der Mechatroniker schon schrieb ist die Hoehenaenderung ja vom Pitch abhaengig und nicht (direkt) von der Stellung des Hoehenruders. Stellung Hoehenruder proportional Pitchaenderung. Pitch proportionanl Hoehenaenderung.
Nebenbei : wie wird der Pitch gemessen ? Aber nicht mit dem 3D-Beschleunigungssensor ? So einfach ist es dann nicht.
Naja, die Simulation hat direkte Möglichkeiten den absoluten Pitch zu messen. Und noch jede Menge andere Parameter. Da kann ich aus dem Vollen schöpfen. Ich hab das jetzt erstmal so gemacht, dass ich den Regler sehr viel träger ausgelegt hab und die ziemlich grobschlächtige "Rücklenkung" an den Pitch-Limits ebenfalls experimentell nahe an das nötigen Minimum gefahren hab. Somit macht der Flieger jetzt statt total nervösem hoch- und runter-bewegen eine ruhige Oszillation wie man sie bei einem austarierten Flieger ohne Eingriff immer ein bisschen hat. "Phugoid" Effekt nennt Wikipedia das. (Nur das meiner etwas erzwungen ist.) Allerdings ist das Fenster in dem er seine Höhe ändert immer noch recht groß. Ca. +/- 50m sind es grade. Und das Teil ist kein Jumbo-Jet... Ich würde am liebsten den Flieger komplett stabilisieren mit der Höhe, so dass er "metergenau" seine Höhe hält im eingeschwungenen Zustand. Das sollte sich mit weiterem Parameter-Tweaking eigentlich noch verbessern lassen. Das Problem mit den Pitch-Grenzen ist kniffliger. Im Prinzip muss ich dafür sorgen, dass er nicht "mit Karacho" in die Begrenzung fährt wenn die Höhe stark abweicht vom Soll und dann wieder zurückprallt. So eine Art Regler für die Pitch-Grenzen der im richtigen Moment Vorrang bekommt und die Nase bei starker Höhenabweichung am jeweiligen Limit hält und beim Überschreiten sanft ans Limit zurückholt. Aber dabei nicht verhindert, dass der Regler bei Erreichen der Soll-Höhe die Nase wieder in die Mitte zieht. Das übersteigt allerdings mein Grundwissen in Regelungstechnik. Ich hab da bis jetzt nur theoretische Kenntnisse die schon etwas eingerostet sind seit der Uni... "Trimm-Kaskadenregler" ist da vermutlich das richtige Stichwort. Das muss ich mir mal anschauen ob ich das übertragen kann auf mein Problem.
Nicht vergessen. Nicht nur der Auftrieb ist abhaengig vom Anstellwinkel, sondern auch der Luftwiderstand.
Markus H. schrieb: > Naja, die Simulation hat direkte Möglichkeiten den absoluten Pitch zu > messen. Geht es nur um die Simulation mit allen Fakes oder soll daraus was reales werden? Der Regelungstechniker würde jetzt sagen: Modelliere erst mal die Strecke. Der Amateur sagt dir: Das ist eine komplexe nichtlineare Mehrgrößenregelung, denn ausser der Höhe und dem Anstellwinkel geht da mindestens noch die Fluggeschwindigkeit ein. Lösung klassisch über mehrere gekoppelte und geschachtelte Regelkreise. Ob das jetzt PID oder PI Regler sind muss man dann sehen.
Bestudiere dich mal die Fuzzy Logic reglung statt PI(D). Basis-Implementierung von Fuzzy Logic engine ist schwieriger als PID aber wenn man die basis hat, kann mann einfacher mehrere variabelen und wenn noetig auch mehrere outputs implementieren
Markus H. schrieb: > Was ich aktuell mache ist, bei Erreichen des von mir vorgegebenen > Maximal-Pitches den Stellwert zu invertieren und um einen gewissen > Faktor abzuschwächen. Das ist der Fehler. Warum Invertierst du den Wert? Setze Ihn auf 0!, dann wird er weniger stark nicken. Wenn du dann noch Kp, Ki und kd richtig einstellst sollte es laufen. Markus H. schrieb: > Nur hat das dann leider zur Folge, dass der Flieger zwar die Höhe > einigermaßen hält, > dabei ammer ständig am "Nicken" ist. Nase hoch bis zur Begrenzung -> > Nase runter bis zur Begrenzung.
Der Andere schrieb: > Markus H. schrieb: >> Naja, die Simulation hat direkte Möglichkeiten den absoluten Pitch zu >> messen. > > Geht es nur um die Simulation mit allen Fakes oder soll daraus was > reales werden? > Es wird bei der Simulation bleiben. Das ist nur ein Teil eines meiner Hobbies. Und ich will auch keine Doktorarbeit darüber schreiben. Ich suche nur nach Wegen die jetzige "80% Lösung" weiter zu verbesern, weil es noch nicht so läuft wie ich es ursprünglich hinbekommen wollte. Karl schrieb: > Markus H. schrieb: >> Was ich aktuell mache ist, bei Erreichen des von mir vorgegebenen >> Maximal-Pitches den Stellwert zu invertieren und um einen gewissen >> Faktor abzuschwächen. > > Das ist der Fehler. Warum Invertierst du den Wert? Setze Ihn auf 0!, > dann wird er weniger stark nicken. Wenn du dann noch Kp, Ki und kd > richtig einstellst sollte es laufen. Nicht vergessen: Mein Stellwert ist der Winkel vom Höhenruder und (leider) nicht der absolute Pitch. D.h. der absolute Pitch (Winkel der Nase überm/unterm Horizont) ändert sich dabei leider nicht abrupt, sondern nur über die Zeit in der der Anstellwinkel vom Ruder anliegt. Wenn ich den Stellwert nur kurz auf 0 setze an der Grenze, wird der Regler ihn beim nächsten Lauf sofort wieder mit seinem (Maximal-)Wert überschreiben, weil die Höhe ggf. noch lange nicht erreicht ist. Der Pitch rennt mir dann unrettbar davon bis der Flieger schließlich abschmiert. Deswegen übersteuere ich momentan den Regler an den Pitch-Grenzen eher unsanft, um die Nase wieder in den erlaubten Bereich zu bekommen, damit der Regler wieder übernehmen kann. Das führt dann aber leider zur noch bestehenden Unschönheit, das der Flieger im Steig- oder Sinkflug "wippt". Und wie schon erwähnt ist das aktuell gerade nur die grobschlächtige Übergangslösung, für die ich noch eine bessere ausarbeiten muss. Der Ansatz der hier erwähnt wurde, mit dem zweiten Regler eine Kaskadenregelung zu bauen (um zusätzlich den absoluten Pitch zu regeln), hört sich für mich schlüssig an. Das werd ich mir auf jeden Fall anschauen.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.