Ich habe ein einfaches Servosystem, das einen PID-Regler verwendet, der in einer MCU implementiert ist, um die Rückmeldung durchzuführen. Die Eigenschaften des Systems ändern sich jedoch dynamisch, sodass die PID-Parameter niemals für alle Fälle angepasst werden können.
Mein Roboter ist ein leichter Arm mit von hinten antreibbaren Elektromotoren, ähnlich wie dieser:
Der Arm führt verschiedene Aufgaben aus, darunter das Aufnehmen schwerer Gewichte, das Schieben und Ziehen von Gegenständen über den Schreibtisch. Jede dieser Aufgaben erfordert unterschiedliche PID-Einstellparameter, die ich nicht leicht vorhersagen kann.
Was ich wirklich gerne hätte, ist eine Funktion auf höherer Ebene, die die Parameter sorgfältig an das Verhalten des Arms anpassen kann. Wenn es zum Beispiel bemerkt, dass der Arm schwingt, kann es P verringern und D erhöhen. Oder wenn es bemerkt, dass der Arm sein Ziel nicht erreicht hat, kann es I erhöhen.
Gibt es solche Algorithmen? Ich würde mich freuen, auch wenn der Algorithmus die Parameter nicht sofort perfektioniert. ZB konnte der Arm einige Male oszillieren, bevor die Parameter auf ihre neuen Werte eingestellt wurden.
Ein guter Ansatz für ein solches Problem heißt adaptive Steuerung. Kurz gesagt handelt es sich um eine Kontrollmethode, bei der davon ausgegangen wird, dass das Modell bekannt ist, die Parameter des Modells (Masse, Trägheit usw.) jedoch nicht. Es ist Aufgabe, die unbekannten Parameter abzuschätzen. Eine kurze Einführung finden Sie auf Wikipedia . Der Text Robotics: Modeling, Planning and Control von Siciliano et al. Behandeln Sie das Thema genauer.
Bearbeiten als Antwort auf die @Rocketmagnets-Abfrage:
Kurz gesagt, Sie müssen ein mathematisches Modell Ihres Systems haben, dh die Gleichungen, die beschreiben, wie sich Ihr System im Laufe der Zeit entwickelt, wenn es gezwungen wird oder auf andere Weise, aber Sie müssen keine dynamischen Parameter wie die Masse der verschiedenen Komponenten, ihre Trägheit usw. Kennen Es ist die Aufgabe des adaptiven Reglers, diese Parameter abzuschätzen. Sie müssen jedoch für jeden der unbekannten Parameter eine erste Vermutung anstellen. Während der Ausführung des Systems werden dann die Steuersignale, die Ausgangssignale und eine Methode wie lineare Regression oder Gradientenabsenkung verwendet, um die unbekannten Parameterwerte zu aktualisieren. Mit der Zeit konvergieren die Parameter zu Werten, die zu einem stationären Zustand führen, obwohl sie möglicherweise nicht mit den tatsächlichen Parametern übereinstimmen, dh die Masse kann falsch sein, der Wert funktioniert jedoch weiterhin.
Von hier aus würde ich raten, sich auf einen Text zu beziehen, der die Methode beschreibt. Ich habe zum Beispiel gerade bemerkt, dass Dr. Marc Bodson eine Kopie seines Textes Adaptive Control: Stabilität, Robustheit und Konvergenz in PDF-Form auf seiner Website anbietet .
quelle
Der von Ihnen beschriebene Prozess wird als adaptive PID bezeichnet.
Es scheint eine Art Overkill. Ich habe festgestellt, dass PID im Umgang mit externen Störungen recht robust ist und die von Ihnen beschriebenen Aufgaben nicht über die Möglichkeiten einer einzelnen Reihe von Verstärkungen hinausgehen.
quelle