Quadenc - die Herausforderung
von
am 15.02.2016 um 12:52 (1728 Hits)
Mittlerweile ist der Quadenc über die selbstgebaute Infrarot RC5-Fernbedienung wie der Steppende Linienfolger fernsteuerbar. Allerdings ist es ungleich schwerer ihn kontrolliert über ein Terrain zu bewegen.
Es ist im Augenblick eine Minimalregelung programmiert. Von der Fernbedienung wird eine Geschwindigkeit in Form einer Fahrstufe von 0 bis 63 vorgegeben. Soll der Quadenc Fahrt aufnehmen, wird das Tastverhältnis der PWM für die Motore in "Häppchen" erhöht, solange bis die Mausencoder genügend Impulse melden, die der vorgegebenen Geschwindigkeit entsprechen. Ist Quadenc zu schnell, wird Tastverhältnis häppchenweise verringert. Je weiter Sollgeschwindigkeit und Istgeschwindigkeit auseinander liegen, desto größer sind die "Häppchen". Die Abhängkeit ist simpel: Häppchen = Sollgeschwindigkeit - Istgeschwindigkeit. zB.
Sollgeschwindigkeit = 10, Istgeschwindigkeit = 5, Häppchen = +5;
Sollgeschwindigkeit = 10, Istgeschwindigkeit = 7, Häppchen = +3;
Sollgeschwindigkeit = 10, Istgeschwindigkeit = 12, Häppchen = -2.
Geschwindigkeitsmessungen über die Mausencoder werden zur Zeit alle 20ms vorgenommen. Das ist schon alles an Regelung.
Gelenkt wird, indem nur ein Antriebsrad verlangsamt wird. Das andere Antriebsrad behält seine Drehzahl, die es bei Geradeausfahrt hätte, bei. Wird von einer Kurve in eine entgegengesetzte Kurve gefahren, wird das langsamer drehende Rad auf Geradeausfahrtdrehzahl gebracht. Gleichzeitig wird das andere Rad verlangsamt um den Quadenc gesund durch die entgegengesetzte Kurve zu bringen. Bin mir nicht sicher, ob dies eine gute Lösung ist - jedenfalls recht einfach zu programmieren.
Beim Lenken habe ich noch wie beim Steppenden Linienfolger in Ansätzen, das Feature "Schneckenkreiseln" möglich gemacht: Wird der Lenkeinschlag immer weiter vergrößert, bleibt das kurveninnere Rad irgendwann stehen und beginnt dann andersherum zu drehen. Das geht soweit, daß der Quadenc um den Mittelpunkt der Achse zwischen den beiden Antriebsrädern kreiseln kann - beide Antriebsräder drehen sich dann gleichschnell in engegengesetzter Richtung. Nicht zu verwechseln mit einfacher harter Drehrichtungsumschaltung eines Motors bei Geradeausfahrt da dieses Schneckenkreiseln durch kontinuirliches immer schärferes Einlenken auf einer Schneckenlinienbahn erreicht werden kann. Da man dann auch noch durch Knopfdruck die Drehrichtung beider Motore gleichzeitig ändern kann (Vor-/Rückwärtsfahren), ergaben sich während der Testphase mit noch nicht gezähmter Minimalregelung und anderen Bugs im Programm überaus interessante Verhaltens- und Bewegungsmuster.
Leider habe ich verpaßt, davon ein Video zu machen
Eigentlich gefällt mir das Erreichte bis jetzt recht gut. OK, die schlecht ansprechende Lenkung ist aufgrund der langsamen Regelung und anscheinend nichtlinearen Wirkung gewöhnungsbedürftig. Den gegenwärtigen Regelungsalgorithmus
darf ich aber nicht schärfer einstellen, da das Ding sonst ins Schwingen gerät. Da der Quadenc aufgrund der Motore und der Getriebuntersetzung am besten bei hohen Geschwindigkeiten reagiert (möglich ist bis max. ca. 55, 60cm/s), ist wegen der Lenkung dann vorausschauendes Fahren gefragt. Trotzdem ist der Quadenc nun viel besser beherrschbar als ohne Regelung. Vor allem auch weil die beiden Antriebsstränge vom Motor über Getriebe bis Abtriebswelle unterschiedliche Wirkungsgrade haben und auch noch innerhalb einer Umdrehung unterschiedliche Reibungen -die man bei extremer Langsamfahrt bemerkt- aufweisen.
Schon bekannte HW-Designmängel werden die Fertigstellung eines perfekt geregelten Quadenc schwer und für mich wahrscheinlich unmöglich machen. Mal sehen, wie weit ich dennoch Verbesserungen erreichen kann trotz:
-Schwacher Motore an geringer Getriebeuntersetztung haben bei geringer Geschwindigkeit zu wenig Drehmoment um gut auf PWM-Tasverhältnisänderungen zu reagieren.
-Wenig Selbsthemmung über Getriebe und Motor. Keine elektrische Bremse (durch Kurzschluß der Motorwicklung) über Motortreiber.
-Spielbehaftete Kopplung der Encoderscheiben an den Motor.
-Möglicherweise versuchshalber Zwischenschalten von Schmittriggern (74HC14) zwischen Phototransistoren und µC Input notwendig. Würde aber gerne noch vorher irgendwie herausfinden, wie zuverlässig der gegenwärtige Aufbau ist. Ist jedenfalls schon mal zu gebrauchen.
-Eventueller Umstellung der jetzigen interruptbasierten Encoderauswertung auf pollingbasierte Auswertung.