-
-
Erfahrener Benutzer
Robotik Visionär
Der Sprung - in der Schüssel oder in den Überraum? ? ?
Für eine gute Regelung braucht man genaue Motordaten.
Zur Kontrolle der aktuellen Eigenschaften der Motoren vom MiniD0 bietet sich die Aufnahme der Sprungantwort an. Keine Frage. Die Sprungantwort hatte ich schon mal ermittelt. Schon damals war mir eine kurze, heftige Drehung in Richtung Motor34 des Gefährts aufgefallen - das ist in Fahrtrichtung eine linke Kurve, Motor 34 ist der Motor, der an den Ausgängen 3Y + 4Y des L293D hängt. Diese Drehung beim Start stellte ich dieser Tage wieder fest. Nachbesserungen am Motor und am Getriebe brachten keine merkliche Besserung, ein anderer Motor oder ein neues Getriebe waren auch etwa so gut oder so schlecht. Offensichtlich ist mein Motor12 eine optimale Ausnahme meines Motorenparks. Mehrere genaue Messungen der Sprungantwort zeigten dieselbe Tendenz: Der langsamere Motor läuft etwa 1 .. 3 ms später an als der schnelle. Dies wurde auch nach Tausch der Motoransteuerungen festgestellt - ein Softwareproblem wurde erstmal nicht vermutet.
................Bild hier
................Zeitabstände zwischen zwei Encoderinterrupts beim Anfahrvorgang beider Motoren. Aufnahme im Abstand von je 1/2 ms.
................Als Sprungfunktion wird 5 ms nach Start der Aufzeichnungen die Motor-PWM auf 255 gesetzt.
Vermutung: Die PWM läuft nicht simultan an.
Der deutliche Verzug beim Motorstart von Mot34 deutete darauf hin, dass die PWM für den Motor34 den übergebenen Wert (vorzugsweise) erst einen Zyklus nach der PWM für Mot12 übernahm: Die PWM wird zusammen mit anderen Initialisierungen gleich nach den Ports gestartet und auf "beide Motoren stop" gesetzt. Laut Atmel-doc gilt für OCR0x: "Update at Bottom" => damit können die beiden Werte für zwei aufeinanderfolgende PWM-Zyklen wirksam werden. Beim geltenden Prescaler sind das rund 1 ms Zyklusdauer. War hier doch die Softwarekonstruktion falsch?
Änderung: NUR für die Aufnahme der Sprungantwort wird OCR0x auf 255 gesetzt, BEVOR der PWM-Timer initialisiert wird. Jetzt starten beide Motoren "gleichzeitig" - das Ergebnis ist reproduzierbar gut.
................Bild hier
................Der höhere Endwert der Geschwindigkeit ist hier auf frisch geladene Akkus zurückzuführen.
Die Sprungfunktion wird für Messzwecke also im Rahmen des Möglichen simultan gestartet. Die Motorcharakteristiken bewirken trotzdem ein Nachhinken des Mot34 beim Anlauf, obwohl der Motor bei Maximaldrehzahl einen Tick schneller läuft. Beides ist aus dem zweiten Diagramm gut abzuleiten.
Bei Verwendung der Regelung wird hier vieles ausgeglichen, daher sind Auswirkungen nur in wenigen Sonderfällen markant, möglicherweise ein Grund für die mäßige Funktion des früher gezeigten Balancierers. Bei dem muss ja dauernd Fahrtrichtung gewechselt werden, da ist ein Versatz von einer Millisekunde schon erkennbar.
Erkenntnis: eine sehr schnelle PWM-Frequenz ist mit Blick auf die Regelung empfehlenswert. Bei meiner derzeitigen Auslegung ist eine schnellere PWM-Frequenz nicht mehr möglich. Am Timer0 hängt der Interrupt für die CIR-perei und die ADC-Messung sowie mit einem Prescaler die Regelung.
Ganz allgemein ist zu vermuten, das ähnliche Probleme bei ähnlichen Lösungen auftreten. Davon dürfte die genaue Funktion einer Odometrie beeinflusst werden.
Geändert von oberallgeier (17.10.2016 um 18:21 Uhr)
Grund: neuer bilderservo
Ciao sagt der JoeamBerg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen