Hallo,
also ich hab das mal ausprobiert mit prescaler 64 im Example_05_Move_01 und komme zu etwas unerwarteten Ergebnissen.
Der Bot neigt nun im Leerlauf aufgebockt dazu, "zu schwingen" .. das heist die Drehzahl beider Ketten steigt... sinkt.. steigt sinkt.. etwa im 2 Sekundentakt und unabhängig von einander, manchmal bleiben sie kurz ganz stehen und schwingen dann auch nach "oben" in der Drehzahl aus. Es gibt aber auch Phasen, wo sich die Drehzahlen auf einen kontinuierlichen Wert einpendeln. Bremst man eine Kette mit dem Finger, neigt sie beim loslassen zum heftigen überschwingen als wenn ein Gummizug darin verbaut wäre. Lässt man den Bot auf dem Boden fahren, ist von Spurtreue bzw. "gradeausfahren" keine Rede... er zieht einen recht engen Kreis von ca. 1 m Durchmesser.
Is schon witzig alles... und nur weil das PWM Timing verändert ist. Man hört auch tatsächlich einen leisen PWM Ton bei ca. 300 Hz.
Mir ist klar das dies alles letztlich von vielen Aspekten abhängt... das ganze RP6 Motorsystem ist ja ein (eigentlich 2 unabhängige) klassisch rückgekoppeltes Regelsystem mit Lautzeiteigenschaften usw..
Aber das es wegen Timings so drastisch aus der Bahn kommt, hätte ich nicht für möglich gehalten und Suche noch nach einer sinnvollen Erklärung.
Denn es werden hier genau so viele ISRs aufgerufen wie in der 19KHz Version den die sind abhänig von den Achsdrehungen bzw. Lichtschranken dort...
Es müssten auch sonst alle Timings gleich sein... bis auf die PWM Frequenz halt. Da die TIMER1_OVF_vect derzeit keinen Code enthält, sollte dies auch kein Einfluß haben.
Ich kann mir jedoch beim besten Willen nicht vorstellen, das es nur wegen der 19Khz->300Hz Umstellung zu solch massivem Nachlaufen der Reglerstellglieder kommt, das sogar das System zu schwingen beginnt. Der Vergleich hinkt etwas aber Phasenanschnittsteuerungen arbeiten ja üblicher Weise bei weit geringeren Frequenzen auch noch stabil.
So ist das jedenfalls nicht zu gebrauchen... auch wenn das Einhängen der ISR (TIMER1_OVF_vect) damit nun wunderbar klappt.
Vielleicht hat ja jemand eine Idee?
Ich hab eben was interssantes im c'T-Bot Projekt unter http://www.heise.de/ct/projekte/ct-b...8c-source.html gefunden...
00094 #ifdef SPEED_CONTROL_AVAILABLE
00095 _BV(CS10); // Prescaler = 1 => 31.2 kHz
00096 #else
00097 _BV(CS12); // Prescaler = 256 => 122 Hz
00098 #endif // SPEED_CONTROL_AVAILABLE
Dazu http://www.heise.de/ct/projekte/mach...are-Aktuatoren
und https://www.roboternetz.de/community...-PI-PID-Regler
Also über das Thema auf dem RP6 basierend kann man wohl sicherlich noch einige Doktorarbeiten schreiben...
LG Rolf
Lesezeichen