Hallo liebes Forum! Ich will eine Lage mithilfe eines Servos über einen PID-Regler ausregeln. Zur Verfügung steht mir ein STK500. Allerdings ruckelt bzw. zittert der Servo stark. Wenn ich die jeweiligen Konstanten im Servo ändere, ändert sich das Zittern nicht wirklich. Nun habe ich schon ein bisschen recherchiert und herausgefunden, dass Kondensatoren da helfen könnten. Daraufhin habe ich an die Spannungsversorgung 5 Kondensatoren a 1000uf parallel angeklemmt (damit die Kapazität höher wird). Das hilft jedoch leider auch nicht wirklich :-(. Oder muss ich noch einen Kondensator in die Impulsleitung vom Board zum Servo klemmen? Könnt ihr mir helfen? (Bzgl. des Betreffs: ich bin am Ende meiner Bachelor-Thesis und deshalb sitzt mir die Zeit ein bisschen im Nacken :-)) Viele Grüße Bascompasstschon
:
Gesperrt durch Moderator
Füge mal in die Steuerleitung zum Servo einen Widerstand von ca. 200 Ohm ein. Ich hatte dieses Problem auch schon mal. Servos von unterschiedlichen Herstellern reagierten mit dem gleichen Programm "zittrig", andere nicht. MfG Paul
Hallo! Wenn Du diese Modelbauservos meinst und die 5V für die Versorgungsspannung aus dem STK500 beziehst kann der Spannungsregler nicht den benötigten Strom liefern. Dann tritt ebenfalls dieser effekt auf. gruß, Bjoern
Ok, ich werde jetzt mal einen Widerstand einlöten und dann berichten, danke für den Tipp! :-) @Tishima: ja es ist ein Modellbauservo, aber ich habe ein externes Netzteil, das STK500 geht aus, wenn ich den Servo dranklemme, weil der zu viel Strom zieht :-)
Ein analoges Servo zittert fuer gewoehnlich mit der Ansteuerfrequenz wenn es drehmoment abgeben muss, ein Digitalservo eigentlich nicht.
So, ich habe jetzt mal einen Widerstand eingelötet, aber er zittert immer noch, wenn er in einer ausgelenkten Lage verweilt. :-(
Der Servo ist ein Digitalservo und zittert nur, wenn ich den Regler implementiert habe. Steuern, das heißt bestimmte Positionen anfahren ist kein Problem. Ich habe das schonmal mit einem anderen Servo ausprobiert, bei dem ist das nicht aufgetreten (bei gleichem Regelalgorithmus).
WAS für ein Servo ist es denn überhaupt? Plastik-Modellbauservo oder ein dickes Industrieservo mit gigantischem Drehmoment oder was zwischen drin?
Das ist ein Servo von Modelcraft, der heisst Modelcraft MC-621. Anbei der Link http://www.conrad.de/ce/de/product/209067/DIGITAL-SPEED-SERVO-MC-621DMGHS
Oh man, das ist echt nervig, ich bin so kurz vorm Ziel und jetzt ruckelt der Servo so :-(((
Bascompasstschon schrieb: > Der Servo ist ein Digitalservo und zittert nur, wenn ich den Regler > implementiert habe. Steuern, das heißt bestimmte Positionen anfahren ist > kein Problem. Ich habe das schonmal mit einem anderen Servo ausprobiert, > bei dem ist das nicht aufgetreten (bei gleichem Regelalgorithmus). Wäre es dann nicht möglich dass der "gute" Servo einfach weniger schnell reagiert, und dann deine Regelung richtig funktioniert. Der Zitter-Servo fährt Sollpositionen vielleicht schneller an und deine Regelung gerät ins schwanken. Kannst du nicht probieren dein Regel-Algorithmus etwas "langsamer" zu gestalten? mfg
Aaa, ok, ja das werde ich mal probieren und gucken, wie sich der Servo verhält :-)
Das ruckeln von Modellbauservos in der Endlage, kann man abstellen wenn man nicht ganz bis zur Endlage verfährt. Bei meinen Tests hat sich gezeigt das die Analogservos leicht unterschiedliche Ansteuerungen benötigen. Das heißt der Impuls zum Ansteuern wird leicht verschoben. Normal ist 1ms - 2ms Angepasst z.B. 0,9ms - 1,9ms oder 1,1ms - 2,1ms
Wenn ich die Regelung etwas langsamer macher, dann ruckelt er immer noch, es sieht so aus, als ob der Servo pulsieren würde.
Mein Servo ist ein Digitalservo, er verhäkt sich bei der Steuerung sehr gut. Ich kann an die Endpositionen fahren und er verhält sich vollkommen ruhig :-). Allerdings macht er bei der Regelung Probleme :-(
Du musst das Problem gezielter angehen/beschreiben: Was meinst Du jetzt mit regeln und was mit steuern. Regeln würde bedeuten, dass Du einen IST-Wert vom Servo in Deine Steuerung/PID einbeziehst. Das Servo allerdings regelt sich doch selbst, Du gibst wahrscheinlich das Ergebnis einer PID-Regelung für irgendetwas an das Servo, OHNE ABER die Position des Servos in diese PID einzubeziehen, ist das so? DANN nämlich STEUERST Du das Servo und REGELST es nicht! Was dann passiert ist folgendes: (restliche) Regelschwingungen aus der PID-Regelung mischen/addieren sich mit dem Zittern, das ein einfaches Modellbauservo SOWIESO hat, und das ganze ergibt ein unseeliges Ergebnis. Joe
Ich habe das Sensorboard RAZOR 9dof und sende diese Werte zu meinem Mirkocontroller. Im Mikrocontroller ist mein Programm, was den Istwert mit dem Sollwert vergleicht. Die Regelabweichung durchläuft dann den PID-Regler, der ein Stellsignal daruas generiert und dieses an den Servo weiterleitet. Also, ich will meinen Servo regeln. Mit dem Ergebnis bin ich allerdings noch nicht so zufrieden :-(. Könnte das auch an der Baudrate liegen, mit der ich die Werte von RAZOR schicke bzw. dann empfange?
Hi >@Tishima: ja es ist ein Modellbauservo, aber ich habe ein externes >Netzteil, das STK500 geht aus, wenn ich den Servo dranklemme, weil der >zu viel Strom zieht :-) Netzteilmasse mit der Masse vom STK verbunden? MfG Spess
Immer noch nicht ganz richtig: Du bildest das Ergebnis der "Regelung von irgendwas" nur auf der Servo-Position ab! Aber Du "regelst" das Servo nicht! Das ist ein feiner aber ungeheuer wichtiger Unterschied! Wie ich eben schon schrieb bildest Du dann natürlich auch jeden Rest von Regelschwingung auf dem Servo ab, verschlimmert durch die naturgemäße leichte Wiederholungenauigkeit/Zittern des Servos. Joe
Ja, ok entschuldige, da hab ich die zuerst falsch verstanden. :-) Ich regel eine Position, um genauer zu sein, einen Winkel. Den Servo ansich regel ich nicht. :-) Er ist nur das Stellglied, Regelgröße ist der Winkel.
Mein Problem ist auch, dass ich nicht genau weiß, was die Fehlerquellen sein könnten.
Bascompasstschon schrieb: > Regelgröße ist der Winkel. Vermutlich brauchst Du einen Totbereich wenn das Ziel fast erreicht ist. Wegen Reibung ergibt sich vermutlich ein "slip stick" Effekt. Gruß Anja
A ich habe jetzt gelesen, was der Totbereich ist, das klingt interessant. Aber hast du eine Idee, wie ich das in den Griff bekommen könnte?
nachdenklicher schrieb: > Was dann passiert ist folgendes: > (restliche) Regelschwingungen aus der PID-Regelung mischen/addieren sich > mit dem Zittern, das ein einfaches Modellbauservo SOWIESO hat, und das > ganze ergibt ein unseeliges Ergebnis. Das wäre auch möglich. Um das auszuschliessen, könntest du vielleicht mal probieren ein kleines mechanisches Spiel in die Achse des Servos einzubauen, damit bei einer ganz kleinen Drehung des Servos noch keine Änderung des Sensorwertes erfolgt.
Bascompasstschon schrieb: > Was meinst du genau mit Totbereich? Du schaltest den Regler ab sobald die Winkelabweichung kleiner als der Fehler durch die Reibung ist. Also z.B. bei -1 .. 1 Grad Regeldifferenz wird der Wert "0" an den Regler weitergegeben oder der Regler (I-Anteil) eingefroren. Gruß Anja
Bascompasstschon schrieb: > Aber hast du eine Idee, wie ich das in den Griff bekommen > könnte? folgende Lösungsansätze sehe ich. - Verschiedene Reglerparameter Großsignal + Kleinsignalverhalten Umschaltung ab einer bestimmten Regelabweichung. (Z.B. reduzierter I-Anteil beim Kleinsignalverhalten). - Totbereich (ist nur letzter Ausweg) - Die letzten paar Grad nur noch gesteuert Verfahren und nicht geregelt. (Zielbremsung). Gruß Anja
Würde an Deiner Stelle ausschließen, daß es Probleme mit den Interrupts gibt. Wenn Du selbst Interrupts definiert hast, die lange dauern, oder auch Bascom Interrupts benutzt, wie z.B. eine gepufferte Serialin, so kann sich das u.U. mit dem Timer-Ovfl-Int in die Quere kommen, der die Servo-Geschichte erledigt. Dadurch kann ein Jitter im Servosignal entstehen, was dann zu der Ruckelei führt. Such' mal in diese Richtung.
> Würde an Deiner Stelle ausschließen, daß es Probleme
Du meinst aber doch eher, dass Du es NICHT ausschliessen würdest, oder?
Denkbar wäre es schon.
Auf jeden Fall wird der OP aber nicht weiterkommen, wenn er nicht
erstmal GENAU ermittelt, ob das Steuersignal überhaupt richtig "zur
Ruhe" kommt, oder ob da Regelschwingungen drauf sind.
Ohne diese Info/Messung bleibt es Raten...
Joe
MWS schrieb: > Würde an Deiner Stelle ausschließen, daß es Probleme mit den Interrupts Von der Beschreibung oben daß die Probleme nicht im gesteuerten Betrieb sondern nur im geregelten Betrieb auftreten würde Ich schließen daß die Interrupts keine tragende Rolle spielen. Was mich mehr beunruhigt ist die Frage nach der Sensor-Baudrate. Ich hoffe doch daß der angehende Bachelor nicht sämtliche regelungstechnischen Vorlesungen geschwänzt hat. Die Abtastrate des Sensors und Regelungsrate des Reglers sollten synchron und gleich sein. Und selbstverständlich sollte der Regler schnell genug das Servo regeln können. Üblicherweise nimmt man den Frequenzgang der Regelstrecke auf und berechnet danach die Regelparameter. Gruß Anja
Ne ne, Regelungstechnik habe ich gehört, allerdings hat mir das Fach für die praktische Umsetzung eines Regelalgorihtmus nicht sehr viel gebracht. Ich bin Maschinenbauer und deshalb war es doch nur sehr theoretisch :-) Ich versuche jetzt mal rauszufinden, wie sich das mit den Baudraten verhält!:-)
nachdenklicher schrieb: >> Würde an Deiner Stelle ausschließen, daß es Probleme > > Du meinst aber doch eher, dass Du es NICHT ausschliessen würdest, oder? > Denkbar wäre es schon. Damit war die Tätigkeit angesprochen etwas auszuschließen. Natürlich damit, daß alle anderen Interrupts versuchsweise deaktiviert werden. Ist einfach zu machen und gibt Aufschluss darüber, ob's da hakt.
Wackelt der Sollwert für den Servo oder wackelt der Drehwinkel des Servos bei konstanter Stellgröße?
Da ich selber nach sehr langem Gebrauch im harten Einsatz einige ruckelnde Servos hatte, wollte ich mich auf dieser Platform schlau machen. Wiederstand oder Diode in der Signal- Zuleitung, Entsrörkern mit 4 Windungen mit den drei Drähten, Stützkondensatoren und alle weiteren Versuche fruchteten nix. Ich öffnete ein HS55 und schraubte das Potentiometer heraus. Ich stellte fest, dass einer der beiden Schleiferkontakte "in der Luft" war. Spritzte Kontaktreiniger und enfernte Kohlesatub mit einem Ohrenstäbchen. Spannte beide Schleifer vorsichtig nach, polierte mit 600er Schleifpapier und montierte das Ganze. Problem gelöst. Vorsicht bei der Monrtage: das Gertriebe und das Potentiometer müssen exakt zentriert sein. Ansonsten läuft nix mahr. Auf diese Art habe ich drei ruckelnde Servos wiederbelebt. Bei einem Servo musste ich das Potentiometer auf der Gerteiebe- Seite heraudrücken. Der Feierabendflieger
Bei mir war in der PID Berechnung ein typecast Fehler, daher gab mein output zum Servo immer nur ganzzahlige Werte aus (PWM), daher kam das Ruckeln ;-) Maggus :-)
Da die ursprüngliche Frage mittlerweile mehr als 6 Jahre alt ist und der TO längst seinen Bachelor haben sollte, schließe ich den Thread.