- Labornetzteil AliExpress         
Ergebnis 191 bis 200 von 246

Thema: Autonom in kleinen Dosen: R2_D03 + Nachfolger R3D01

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    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
  •  

12V Akku bauen