Der heutige Tag endet mit der Erkenntnis:
Ich hab zwar keine Lösung aber ich bewundere das Problem...
Habe die oben beschriebene Funktion zur Einstellung folgender Werte und Ausgabe über das LCD zum laufen gekriegt:
P, I, D Werte
Startspeed
Delay (nach Abarbeitung der Reglerfunktion)
Strecke in cm
Am Ende kann ich nun mit den voreingestellten Werten per Druck auf den linker oder rechten Bumper mit den voreingestellren Werten die entsprechende Strecke vorwärts oder rückwärts fahren.
Nach Beendigung der Fahrt zeigt mir das LCD außerdem diese Werte:
-berechnete Soll-Encoderticks gem. Strecke
-durchschnittliche IST-Encoderticks berechnet aus (Encoderticks links+rechts)/2
-IST-Encoderticks links und rechts
-Abweichung von IST-Encoderticks links und rechts zu SOLL-Encoderticks als Absolut- und Prozentwert.
Hat sich insofern schon mal gelohnt, als dass ich dabei viel gelernt habe im Hinblick auf eine spätere Menüführung über das LCD (Case Abfragen, Variablen als Flags setzen um das LCD zu löschen, Ausgabe von Variablen auf dem LCD etc.)
Allerdings bin ich bei der Einstellung der PID-Parameter nun mehr als ratlos und muss wohl meinen Reglercode bzw. die Radencoder in Frage stellen. Folgende (paradoxe) Entdeckung hab ich nämlich gemacht:
Das Delay habe ich testweise auf 0 gelassen. D.h. wenn die Regelschleife abgearbeitet ist, fängt sie direkt wieder von vorne an.
PID-Werte=0
Abweichung zwischen SOLL und IST-Ticks (links bzw. rechts) beträgt laut Auswertung bei 200cm Strecke und Vollspeed grade mal +0,04%, auch unter Last.
Allerdings fährt der bot eine Bananengrade...
PID-Werte ungleich 0
Sobald ich beginne die Reglerwerte hochzufahren entsteht bei den linken IST-Ticks eine gemessene Abweichung von +3 bis 10%.
Bei den rechten IST-Ticks verhält es sich anders herum, hier ist die Abweichung -3 bis 6%.
Jedoch fährt der Bot unter Last nun mehr oder weniger grade.
Sobald ich den I-Anteil erhöhe fängt der Bot an immer kleinere Kreise zu drehen. Das bedeutet doch eigtl. das der I-Anteil immer größer wird und der Regler dadurch übersteuert?
Hat jmd. einen Tipp für mich, wo ich mit der fehlersuche beginnen sollte?
Werde die Tage mal meinen Reglercode von "Altlasten" befreien und hier posten. Hoffe irgendwo steckt einfach nur ein dummer Denk- oder Programmierfehler der hier direkt jmd. ins Auge sticht... :-/
Lesezeichen