Verwendung eines genetischen Algorithmus zum Einstellen von Controllern


9

Ich habe einige Artikel zur Steuerung nichtlinearer Systeme (z. B. nichtlineares Pendel) gelesen . Es gibt verschiedene Ansätze für das Targeting nichtlinearer Systeme. Die gebräuchlichsten sind Rückkopplungslinearisierungs- , Rückschritt- und Gleitmodusregler .

In meinem Fall habe ich die theoretischen und praktischen Teile der Steuerung des nichtlinearen Modells eines einfachen Pendels sowie anderer Manipulatorprobleme in C ++ ausgeführt. Für das Pendel habe ich einen Rückschrittregler verwendet, um die Verfolgungsaufgabe für die Winkelverschiebung und Geschwindigkeit zu lösen. Die Ergebnisse sind

θ¨+(k/.m)θ˙+(G/.L.)Sündeθ=u

wobei und g = 9,81 .m=0,5,k=0,0001,L.=.2G=9.81

Grafik 1

Grafik 2

Die Ergebnisse sind gut. Das Einstellen des Controllers ist jedoch zeitaufwändig. Die meisten Artikel verwenden genetische Algorithmen zur Optimierung ihrer Regler wie PD-, PID- und Backstepping-Regler. Ich bin auf diesem Gebiet ahnungslos und hoffe, dass jemand etwas Licht in dieses Konzept bringt, vorzuziehen, wenn es eine MATLAB-Probe gibt, um zumindest ein einfaches Pendel zu steuern.

Bisher habe ich eine einfache GUI in C ++ / Qt entworfen, um den Controller manuell einzustellen. In der folgenden Abbildung die Reaktion der Steuerung auf die Schrittfunktion.

Screenshot der GUI der Controller-Tuning-Anwendung

Antworten:


1

Die Verwendung von evolutionären Methoden (GA ist eine davon) zur Parametereinstellung ist in der Tat eine gängige Methode [1] im Kontrollbereich. Insbesondere für nichtlineare Systeme kann es schwierig sein, analytische Lösungen für optimale Parameter zu finden. Evolutionäre Methoden sind eine Möglichkeit, eine Suche nach nahezu optimalen Parametern effizient durchzuführen.

Eine sehr erfolgreiche und universelle Methode, die weit verbreitet ist, ist CMA-ES . Es gibt eine große Anzahl von Implementierungen , auch für MATLAB. Ich weiß, dass der Polausgleich in seinen verschiedenen Formen oft als Benchmark verwendet wird.

Die Anwendung des Algorithmus ist normalerweise nicht so schwierig. Die Bewertung der Leistung Ihres Ergebnisses - dies wird in EA als Fitnessfunktion bezeichnet - ist normalerweise der am meisten involvierte Teil.

[1] PJ Fleming, RC Purshouse, Evolutionäre Algorithmen in der Steuerungstechnik: eine Umfrage, Control Engineering Practice, Band 10, Ausgabe 11, November 2002, Seiten 1223-1241, ISSN 0967-0661, http: //dx.doi. org / 10.1016 / S0967-0661 (02) 00081-3 .


Haben Sie ein gutes Buch gefunden, von dem Sie glauben, dass es sich lohnt, über GA zu lesen?
CroCo

8

Genetische Algorithmen sind eine maschinelle Lerntechnik, mit der ein Benutzer die Feinabstimmung eines Systems überflüssig machen und stattdessen einem Computer die Möglichkeit geben muss, das System zu optimieren. Der Vorteil dieses Ansatzes besteht darin, dass er den Forschern / Benutzern Zeit spart und häufig zu einem System führt, das besser abgestimmt ist als das, was der Forscher / Benutzer selbst hätte erreichen können.

Die allgemeine Idee der Verwendung eines genetischen Algorithmus würde einem grundlegenden Kontrollfluss folgendermaßen folgen:

Create_X_Number_Of_Random_Controllers()
while (Not_Yet_Satisfied_With_tuning)
    Score_Each_Controller_Based_On_Performance()
    Remove_Lowest_Performing_Controllers()
    Create_New_Controllers_By_Mixing_Best_Performers()
    Add_Slight_Randomness_For_Evolution()
Display_Top_Performer()

Das beste Beispiel, das ich in der Praxis leicht für dieses Prinzip zeigen kann, ist dieses „Spiel“, bei dem mithilfe der genetischen Evolution Fahrzeuge entwickelt werden, die über einen Kurs fahren können. Die gleiche Idee gilt für jedes System, das Sie fein einstellen möchten, ohne dass Sie selbst eine Einstellung vornehmen müssen. Beispiel: http://rednuht.org/genetic_cars_2/


Wenn @CroCo dies mit einem genetischen Algorithmus meinte, wäre die Ziegler Nichols-Methode zur Optimierung ein großartiger Kandidat für die Implementierung, da sie gut prozedural ist.
SteveO

Ich kann nicht sehen, was @CroCo sonst noch bedeutet hätte, aber das Problem bei Ziegler Nichols ist, dass Sie immer noch eine der Komponenten abstimmen müssen, bei der Sie wie bei einem genetischen Algo jeden Aspekt des Systems ändern können und es sich "weiterentwickelt". zu passen, ohne dass der Entwickler irgendeine brutale Arbeit machen muss
beeedy

1
Diese Antwort ist immer noch der allgemeine Prozess, um dies zu erreichen. Genetische Algorithmen sind ein ganzes Forschungsgebiet und viel zu komplex. Um sie jedoch in einer kurzen Antwort zu erklären, empfehle ich, sie zu lesen, wenn Sie daran interessiert sind, sie zur Optimierung Ihrer Modelle zu verwenden!
Beeedy

2
Ich stelle mir einen schlecht begrenzten genetischen Algorithmus vor, der beim Überstimmen ziemlich glücklich die Saite reißt.
Ramrod

1
Wie @octopus bereits erwähnt hat, ist dies mit tatsächlichen physischen Geräten nur schwer zu erreichen, wenn Sie bereit sind, einen langen Zeitraum einzuräumen, damit der Computer das Gerät, das Sie einstellen möchten, physisch steuern kann. Selbst dann benötigen Sie ein „Guardian“ -Programm, das überwacht und bewertet jeden Controller anhand seiner Leistung und stellt sicher, dass die Maschine nicht beschädigt wird. Alles in allem ist dies eine relativ komplexe Aufgabe, deren Implementierung viel Lesen genetischer Algorithmen erfordert. Dies ist keine kleine Aufgabe.
Beeedy

2

Ich bin verwirrt von dem, was Sie einen genetischen Algorithmus nennen. Die PD-, PID- usw. Regler sind weder heuristische noch stochastische Methoden und basieren nicht auf evolutionären Algorithmen. Sie sind stattdessen deterministische Algorithmen, die die Platzierung von Polen und Nullen einer Systemantwort ermöglichen sollen, um die gewünschte Leistung zu erzielen (Fehlerminimierung, Reaktionsgeschwindigkeit, Einschwingzeit, Stabilität und Störungsunterdrückung). Eine gute Lernreferenz ist meiner Meinung nach das Buch Automatic Control Systems von Kuo . Eine weniger strenge Behandlung finden Sie in Raven's Automatic Control Engineering- Buch.


Ich bin mit dem genetischen Algorithmus (GA) nicht vertraut. Ich habe gerade einige Zeitungen gesehen, die behaupteten, dass der Tuning-Teil ihrer Controller mit GA durchgeführt wurde. Keine weiteren Details in ihren Papieren zu diesem Thema. Ich weiß nicht, was zum Teufel GA ist und wie ich es nutzen kann.
CroCo

Die Verwendung evolutionärer Methoden zur Parametereinstellung ist eine sehr verbreitete Technik. Ich würde es als alternative Methode zu den von Ihnen beschriebenen analytischen Ansätzen betrachten.
Jakob
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.