Hallo!
Ich will den Linienfolger meines Asuros etwas aufpäppeln. Die 1. Version funktioniert zwar, ist aber nur mit einem einfachen P-Regler ausgeführt. Ich fragte mich, ob es nicht mit einem anderen Reglertyp (PI, PD, PID) besser gehen könnte. Dazu musste ich mich etwas in die Thematik einarbeiten. Ich habe zwar genügend Erfahrung mit Regelschleifen in der Elektronik, aber ein gemischtes System mit Mechanik und digital war auch für mich Neuland. Aus den vielen Nachfragen hier im Board, wie man eine klassische Regelung realisiert die über einen normalen P-Regler hinaus geht, weiss ich um den Wissensbedarf und habe mich entschlossen meine Erkenntnisse hier weiter zu geben. Das Projekt ist zwar noch nicht fertig, ich lege aber trotzdem schon mal los, weil ich sonst vielleicht einige Details wieder vergesse. Ausserdem können von Euch noch Anregungen kommen, die das Projekt in eine andere Richtung bringen. Ich habe zwar im Titel schon den PD-Regler vorweggenommen weil sich der nach einer 1. Analyse als sinnvoll herausstellte. Aber das heisst jetzt nicht, dass damit der PD-Regler schon als beste Lösung zementiert ist. Es kann sich durchaus im Laufe des Projekts ein anderer Reglertyp als bessere Lösung ergeben. Möglicherweise endet es sogar in einem Fuzzy-Regler. Wir werden sehen.
Wer jetzt in Kürze schon einen funktionierenden Code erwartet, den muss ich enttäuschen, das wird noch eine Weile dauern. Zuerst muss einmal der Iststand aufgenommen werden, danach folgt dann die Analyse, Optimierung und Umsetzung. Für manche wird es zu sehr ins Detail gehen, für andere aber zu wenig. Bei der grossen Bandbreite an Lesern hier im Forum ist es wohl schwierig den Bedarf jedes Einzelnen genau zu treffen. Man möge mir das nachsehen, Wissensbegierige können ja nachfragen.
Das Ziel ist klar: Die Regelung soll so optimiert werden, dass sie möglichst schnell und trotzdem stabil ist.
Die Vorgehensweise:
1. Analyse der Regelstrecke und Modellierung
2. Auswahl des Reglertyps
3. Simulation und Optimierung des Reglerentwurfs
4. Parametrierung des Reglers und Umsetzung in Code
5. Praxistest und Nachoptimierung
Los geht's mit der Analyse der Regelstrecke!
Die Regelstrecke enthält den Liniensensor, PWM-Steller, Motor und Getriebe. Der Liniensensor reagiert auf Abweichungen von der Linie, also auf Streckenänderungen. Damit ist schon einmal klar, dass es sich hierbei um eine Positionsregelung handelt. Das macht es für mich auch etwas leichter, da die Positionsregelung in der Literatur bereits vielfach abgehandelt wurde. Mit dem Motor lässt sich mittels PWM die Geschwindigkeit steuern. Es fehlt also noch ein Glied in der Kette um von Geschwindigkeit auf Wegstrecke zu kommen. Das ist der Integrator. Ein Integrator wird für die Modellierung gebraucht, weil die Wegstrecke das Integral der Geschwindigkeit über der Zeit ist. In der Mechanik gibt es noch mehr Beispiele mit Integralverhalten, wie z.B.:
Schub -> Beschleunigung -> Geschwindigkeit -> Weg
Als nächstes betrachten wir das Zeitverhalten der einzelnen Elemente. Der Liniensensor wird mit einem AD-Wandler ausgelesen. Das dauert etwas. Dafür müssen wir eine Verzögerung berücksichtigen. Weil dabei die Amplitude unverfälscht bleibt, ist es ein Verzögerungsglied 0. Ordnung. Der Einfachheit halber packen wir auch gleich die Rechenzeit des Prozessors da mit hinein. Es gibt auch Verzögerungsglieder höherer Ordnung, das werden wir gleich am Beispiel des Motors sehen. Ein Motor lässt sich nicht in beliebig kurzer Zeit beschleunigen, denn die Masse des Rotors hat eine Trägheit. Die physikalische Grösse dafür ist das Trägheitsmoment. Wenn man eine Spannung an einen Motor anlegt, dann beschleunigt der in einer e-Funktion, das ist wie bei einem RC-Glied, also wie ein Verzögerungsglied 1.Ordnung (PT1). Da das Trägheitsmoment bei Rotationsbewegungen äquivalent ist zur Masse bei geradliniger Bewegung kann man die Masse des Asuros auch gleich damit hinein packen. Damit hätten wir alle Elemente der Regelstrecke charakterisiert und können ein Modell der gesamten Regelschleife zeichnen (siehe Bild).
Im Blockschaltbild ist der Regler noch eine Blackbox, den wollen wir ja herausfinden. Der nächste Block ist das Verzögerungsglied PT1, das stellt den Motor mit seinem Trägheitsmoment incl. Getriebe und Masse des Asuros dar. Die Schnittstelle zwischen PT1 und dem Integrator ist die Geschwindigkeit "v". Der Integrator errechnet daraus die Wegstrecke. Im Rückwärtszweig ist das Verzögerungsglied "delay", welches den Liniensensor und die AD-Wandlung modelliert. Danach steht der Istwert zur Verfügung. Der Istwert wird mit dem Sollwert verglichen (Subtraktion) und auf den Regler gegeben. Damit ist die Regelschleife geschlossen. Der Sollwert ist in unserem Fall 0, weil der Asuro möglichst ohne Abweichung der Linie folgen soll.
Das reicht vorerst, ist genügend Stoff zum Verdauen. Eine Fortsetzung folgt, da werden dann die Kennwerte der einzelnen Blöcke (Liniensensor, Motor usw.) ermittelt.
Gruss Waste
Lesezeichen