...wobei Du bei Batteriebetrieb gleich 'nen vierten Regler zum Ausgleich der Versorgungsspannungsänderung einplanen kannst...
...sofern die Motorspannung nicht über 'nen Stabi vorher stabilisiert wird...
...wobei Du bei Batteriebetrieb gleich 'nen vierten Regler zum Ausgleich der Versorgungsspannungsänderung einplanen kannst...
...sofern die Motorspannung nicht über 'nen Stabi vorher stabilisiert wird...
Ich habe mit der PID-Regelung nun ein wenig herumgespielt. Vielleicht erwarte ich auch zuviel davon.
Im Grunde würde es mir ja schon reichen wenn das Fahrzeug auf einer geraden Strecke von A nach B fährt.
Ohne in diesen Regelkreis einzugreifen bekomme ich es nicht hin.
Damit meine ich: Ich muss mindestens die Regelung stoppen wenn das Ziel erreicht ist.
(Auf einer schiefen Ebene würde er dann gnadenlos herunter fahren)
Nur mal angenommen ich setze die Werte für KI und KD auf 0 und fange nun an KP hochzusetzen.
In meinem Fall fährt das Fahrzeug mit KP=0 quasi gar nicht, sondern zuckelt nur auf der Stelle.
Setze ich KP so hoch das das Fahrzeug fährt, schwingt er am Zielpunkt hin und her.
Es gibt keine Einstellung wo er nicht schwingt.
Ich weiß nicht ob das so sein soll???
Gruß, Andreas
Wahrscheinlich ist einfach die gewählte Strecke zu kurz, um alleine durch eine Proportionalregelung angesteuert werden zu können. Wenn Du die Strecke vergrößerst, muss doch das Ergebnis des P-Anteils auch wachsen und das Fahrzeug fährt los, idealerweise bis kurz vors Ziel. Die Strecke musst Du so wählen, dass der P-Anteil den PID-Regler bis in die Sättigung (also maximale Aussteuerung) treibt.
OK, wenn dem so ist, dann stell Dir vor, Du hast KP mit dem Zuckelwert für kurze Distanzen optimal eingestellt. Schwingen sollte es mit KP alleine auf keinen Fall, egal, bei welcher Strecke.
Dann nimm mal testweise etwas KI dazu, bis sich das Fahrzeug auch bei kurzen Distanzen bewegt. Auch der integrale Anteil sollte sich ja mit Annäherung ans Ziel verkleinern.
Schöner Beitrag!.. stell Dir vor, Du hast KP mit dem Zuckelwert für kurze Distanzen optimal eingestellt ..
Von Bedeutung ist gerade bei der digitalen Regelung natürliche zusätzlich der Vergleich der Motorzeitkonstanten, der Abtastrate und der Encoder-Tickrate (digital!!!). Die sollten schon in gleichen Größenordnungen liegen; leider stecke ich nicht so tief in Regelungstechnik drin, dass ich dazu sinnvolle Richtwerte angeben könnte. Aber wenn ich z.B. zehn Mal pro Minute regle und der Motor in zehn Millisekunden an die 90 % hochfahren kann - dann siehts schon düster aus. Wenn der Motor in einem Regelzyklus den Encoder grad mal ein, zwei Digits weiterdreht ist´s auch sehr suboptimal. Mein Grundsatz ist halt die Regelung schon aus Zeitgründen integer zu rechnen, dafür in einem Zeitraster der Motorzeitkonstanten oder schneller und mit Encoderticks pro Zyklus zwischen knapp zwanzig und weit über hundert. Zu letzterem habe ich aber bei 1440 Ips wenig Sorge (Irrtum vorbehalten :-/m). Aktuell regle ich (der Motorcontroller) Archie, etwa sechs bis sieben Kilo Gewicht, und die mikroskopische Coladose mit hundert Hertz.
Geändert von oberallgeier (17.10.2016 um 14:24 Uhr) Grund: Kilo allein ist missverständlich
Ciao sagt der JoeamBerg
Selber regeln fällt flach.
A) dieses Fahrzeug ist nur ein Testfahrzeug zum Erfahrung sammeln. Es macht keinen Sinn hierfür irendetwas zu basteln.
Mein eigentliches Projekt weicht stark in allen Belangen ab.
B) Und die Sensoren? Ich denke nicht das es eine triviale Sache ist das ans Laufen zu bekommen.
Die nutze ich. Trotzdem Danke für die Infos, diese Autotuning-Lib hatte ich übersehen
Dieser hier ist auch relativ "selten", die meisten BL-Motoren, sind sensorlos. Außerdem setze ich eher auf Außenläufer wegen der geringerer Drehzahl und dem besseren Anlaufverhalten.
Die Strecke sollte passen. Das Fahrzeug ist etwa 4-5 sekunden unterwegs und die Motorleistung ist PID-seitig auf etwa 5% begrenzt.
Eigentlich ist es erst schlecht geworden als ich auch negativwerte für den Motor zugelassen habe. Wenn ich nur vorwärts fahre sieht es besser aus.
Bei den tests mit KI und KD hatte ich nicht den eindruck das diese Werte überhaupt vorteilhaft sind. Also besser wurde es damit definitiv nicht.
Allerdings muss ich sagen, das ich einmal eine Situation auf einer schiefen Ebene hatte, wo das Fahrzeug (wenn es denn etwa 3Kg mehr wiegen würde) gehalten worden wäre.
Im Grunde wird es darauf hinaus laufen, das ich die Regelung bei erreichen des Endpunktes abschalten werde.
Wie ich schon schrieb ist das hier aktuell nur ein Testfahrzeug. Das Fahrzeug um was es letztendlich geht hat u.a. eine mechanische Motorbremse.
Die könnte ich einfallen lassen.
Was ihr da so schreibt ließt sich alles sehr speziell. Ich nehme daraus mit, das diese Werte und das drum herum doch sehr an das Fahrzeug und die Situation angepasst werden müssen.
Somit macht es nicht soviel Sinn an dem Testfahrzeug die Werte weiter zu optimieren wenn das eigentliche Fahrzeug doch so viel anders ist.
Das dürfte Daran liegen das der A.I. "BRUSHLESS (PRO) REVERSE" sich asymetrisch verhält.
1,5ms bis 2,0ms Vorwärts.
1,5ms bis z.B. 1,3ms EMK für vorwärts Drehung.
1,3ms bis 1,0ms Rückwärts.
Du könntest jetzt versuchen, mal das PWM vom Servo synchon mit dem DIR und PULS Signal das Du aus dem Enkoder generierst auszugeben (seriell Print).
Dann den den PID Regler bzw. die PWM Generierung so modifizieren das der EMK Bereich übersprungen wird.
Also 2,0 - 1,5ms Vorwärts und dann direkt von 1,5ms auf 1,3ms springen für 1,3 - 1,0ms für die Rückwärtsfahrt.
Den tatsächlichen Wert wo EMK aufhört und Rückwärts anfängt müsste man dann empirisch ermitteln.
Wenn Du schreibst, Du begrenzt per PID den Leistungsbereich auf 5%, muss ich mal nachhaken: Setzt Du jetzt nur noch Steuersignale zwischen 1,475 und 1,525 ms an den Motorregler ab?
Lesezeichen