PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Servo mit externem Potentiometer zittert



Lukas.
28.05.2012, 11:43
Hi,
ich hab grad ein ziemlich großes Problem.

Ich bin zur Zeit in Australien und schreib meine Bachelorarbeit bzw. mache ein final year project, dass mir dann als equivalent anerkannt wird.
Das Projekt umfasst das Design und die simple Ansteuerung eines 4 Achsen Roboterarms der an einen autonomen Roboter montiert wird und Gesten zur Interaktion mit Menschen erlauben soll. Die komplexe Ansteuerung inkl. Kinematik etc. übernimmt dann jemand anders in einem neuen Projekt. Soweit passt das auch alles, ich hatte 4 Hitec HS805BB Servos zur Verfügung, die schon modifiziert waren (externes Poti, von Servocity).

Für das Ellenbogen Gelenk hab ich mir Hitec HS645MG Servos gekauft, da das Drehmoment ja nicht mehr so groß sein muss wie am Schulter Gelenk. Da hab ich auch das Poti abgelötet und einen Stecker für ein neues drangelötet. Jetzt wollte ich heute die Kennlinie (PWM zu Winkel) messen und musste feststellen, dass die Servos zu zittern anfangen sobald sie sich der angepeilten Stellung nähern. Wenn ich das Poti selbst verstelle kann ich genau sehen wie sie zuerst langsamer werden und dann anfangen zu zittern. Ich hab erst gedacht das kommt davon, dass ich zu lange brauche um das Poti einzustellen und deswegen mal mit Getriebe getestet. Genau das gleiche Spiel, bevor das Servo zu nahe an die gesetzte Position kommt fängt es an zu zittern (So +- 10°).

Ich hab das PWM Signal schon geprüft, das ist 1A (aus einem SSC-32). Wenn ich mit dem Oszi das PWM direkt an der H-Brücke messe sieht das auch gut aus, bis eben das Zittern kommt, das Signal sieht dann logischerweise nach Chaos aus.

Mein größtes Problem ist jetzt aber, dass ich schon ewig auf die Teile aus der Werkstatt gewartet hab und deswegen ziemlich unter Zeitdruck steh.

Hat einer von euch das schonmal gehabt oder eine Idee wovon das kommen könnte? Ich hoffe mal, dass ich den IC auf der Platine nicht gekillt hab aber dann dürfte es ja eigentlich garnicht mehr funktionieren, vor allem nicht das langsamer werden bis zu einem gewissen Punkt.

Vielen Dank schonmal,
Lukas

ranke
28.05.2012, 12:32
In diesem (https://www.roboternetz.de/community/threads/56785-Wie-kann-man-Servos-vom-Zittern-in-Ruheposition-abhalten?highlight=servo+zittern) Thread werden eigentlich die wesentlichen Aspekte angesprochen. Ist es sicher, dass es daran liegt, dass das Poti extern gelegt wurde?

Lukas.
29.05.2012, 09:19
Hi,
danke für den Link.
Hab das mal durchgelesen und danach verschiedene Netzteile probiert. Daran lags aber nicht.

Hab jetzt grad durch Zufall entdeckt wie ich das ganze reproduzieren kann. Es tritt nicht immer auf,
sondern nur wenn ein Servo am SSC-32 hängt. Dann zappelt es wie verrückt sobald ich das Poti annähere.
Wenn ich ein zweites Servo dazu stecke, egal ob es läuft oder nicht, beruhigt sich das andere sofort und tut was es soll.

Ich grad auch mal testweise ein originales HS645MG getestet, das funktioniert auch alleine einwandfrei. Wenn ich aber die letzte Getriebestufe entferne und somit das Poti selbst verstellen kann tritt genau das gleiche Problem auf. Da scheint wohl der Regelkreis in irgend einer Weise sehr empfindlich zu sein wenn das Poti sich zu langsam annähert. Wenn es über ein Getriebe angebunden ist und somit genau die gleiche Reaktion zeigt wie im eingebauten Zustand nur eben langsamer (1:6 in dem Fall), dann führt das zum gleichen Problem.

Ich werde immer mehrere Servos am SSC-32 haben also passt das soweit, aber rein aus Interesse, hat jemand ne Idee woran das liegen könnte und wie man es beheben kann?

Cheers,
Lukas

ranke
29.05.2012, 12:33
Der Regelkreis des Servos ist darauf ausgelegt, dass er bei der Originalkonfiguration und den zu erwartenden Lasten so gut wie möglich funktioniert. Wenn man das mechanische Übersetzungsverhältnis zum Poti um den Faktor 6 ändert, dann stimmt diese Abstimmung nicht mehr. Der Regler stoppt den Motor viel zu früh, weil er glaubt, dass er schon fast am Sollwert ist (und mit dem Schwungmoment des Motors diesen ziemlich genau erreicht), in Wirklichkeit stimmt das aber nicht, dann versucht er (wenn er einen I-Anteil hat) stückchenweise nachzuregeln (auch hier natürlich viel zu schwach, weil er nicht überschwingen will). Das Ergebnis könnte das von Dir beschriebene Zittern sein. Um das Problem sauber zu lösen, müsste man die Regelparameter des Servos ändern können.
Warum es aber funktioniert, wenn man ein weiteres Servo ansteckt bleibt aber noch unklar.

Lukas.
29.05.2012, 14:46
Ich hab jetzt grad mal einen 470uF Elko direkt an die Pins vom SSC-32 gehalten und das Zittern hat deutlich nachgelassen.
Ich bin ziemlich sicher, dass das Netzteil das packt, ist ein TTi 420W NT, das laut Angabe 20A packt und die zieht das Servo bei weitem nicht. Wenn das Zittern auftritt gibt's an der Spannungsversorgung Spikes von ca +- 1V, die bügelt der Elko ganz gut weg. Man hört auch, dass es sich ähnlich anhört und nur nicht so weit ausschlägt. So lässt sich das Poti bis zur gesetzten Position bewegen und das Servo gibt Ruhe. Die Spannungsausschläge sind dann auch deutlich kleiner. Wenn ich das 2. Servo mit dazu stecke sieht das ganze am Oszi genau aus, wie ein Servo mit Elko.

Eine Lösung hat ich somit, aber mich würde immer noch interessieren woher das kommt oder warum ein Elko Abhilfe schafft. Wäre gut wenn ich dazu was in meiner Bachelor's Thesis schreiben kann ;)

Danke schonmal für die Hilfe soweit!

Cheers,
Lukas

ranke
29.05.2012, 15:56
Ich bin ziemlich sicher, dass das Netzteil das packt, ist ein TTi 420W NT, das laut Angabe 20A packt und die zieht das Servo bei weitem nicht. Wenn das Zittern auftritt gibt's an der Spannungsversorgung Spikes von ca +- 1V

Womit bewiesen wäre dass das Netzteil das nicht packt (oder zumindest nicht in der geforderten Dynamik).
Der Elko schafft Abhilfe indem er aus seiner Ladung kurzfristig die Leistung zur Verfügung stellt, die das Netzteil offensichtlich nicht liefern kann. Das muss nicht die Schuld des Netzteils sein. Eine lange Zuleitung mit hohem Innenwiderstand und Induktivität, Übergangswiderstände an Klemmen, Sicherungen etc. können auch der Grund sein.
220uF ist wahrscheinlich noch etwas wenig, eine Low-ESR Ausführung kann auch nicht schaden und keine zu langen Leitungen zwischen Elko und Servo. Möglicherweise ist im zweiten Servo schon so ein Elko drin, dann wäre das große Rätsel (warum hilft Einstecken des zweiten Servos) auch schon gelöst.

Lukas.
29.05.2012, 16:27
Hm ok, ich dachte vielleicht kommen die Spannungsspitzen von induzierten Ströme oder ähnlichem, aber so genau kenn ich mich mit Elektrotechnik nicht aus.
Das Problem tritt aber unabhängig bei jedem Servo (von 4) auf und jedes beliebige andere beseitigt es wenn mans dazu steckt. Naja ich denke wenn ich ein paar vom Fotos vom Oszi mit und ohne Elko in die Arbeit einfüge und dann dazu schreib ich hab n Elko reingebaut, der das glättet dann sollte das genügen.

ranke
29.05.2012, 20:47
Induzierte Ströme ist wahrscheinlich schon zu kompliziert gedacht. Elektrisch (bezogen auf die Anschlüsse der Betriebsspannung) kann man ein Servo wahrscheinlich ganz gut als Widerstand mit wechselndem Wert ansehen. Bei Stillstand ohne Last ist der Widerstand recht hoch, bei schneller Beschleunigung unter Last eher niedrig. Eine Rückspeisung von Strom in die Betriebsspannung dürfte kaum vorkommen. Je nach Innenwiderstand der Spannungsquelle bricht die Spannung durch den wechselnden Widerstand mehr oder weniger ein.
Möglicherweise hat jedes Servo schon intern einen - schon aus Platzgründen - knapp bemessenen Kondensator, der die Spannung etwas (aber nicht ausreichend) puffern kann. Wenn man mehrere Servos ansteckt sind die Kondensatoren alle parallel geschaltet. Der Fall, dass alle Servos gleichzeitig viel Strom brauchen ist aber unwahrscheinlich - also verbessert sich die Spannungsversorgung für das einzelne Servo durch die Kondensatoren der anderen Servos.
Ein zusätzlicher dicker Elko kann sicher nützlich sein, vielleicht sollte man auch mal suchen, woher der offensichtlich zu hohe Widerstand in der Spannungsversorgung kommt.

Lukas.
30.05.2012, 03:36
Das klingt eigentlich ziemlich logisch, Danke. Ich werd nachher mal schaun ob auf der Platine Kondensatoren drauf sind.
Das einzige was mich dann noch wirklich wundert ist, warum die Spannung sowohl positiv als auch negativ ausschlägt.

Wenn das Servo rattert, dann bricht die Spannung nicht einfach ein sondern hat Spikes nach oben und unten. Kommt das vielleicht vom Netzteil, dass dann kurz überkompensiert?

ranke
30.05.2012, 08:58
... sondern hat Spikes nach oben und unten. Kommt das vielleicht vom Netzteil, dass dann kurz überkompensiert?

Glaube ich eher nicht. Wenn nur das Servo und das Oszilloskop dranhängt und das Servo wechselt von niederohmig auf hochohmig dass könnte schon die Induktivität der Leitung zwischen Netzteil und Servo für kleine Spikes nach oben genügen. Da steckt zwar nicht viel Energie drin, aber durch den hochohmigen Abschluss kann die Spannung auch nicht abfließen.
Wenn Du Lust und Zeit hast das näher zu untersuchen, dann könntest Du folgendes probieren:
1. Einen zusätzlichen, konstanten Lastwiderstand (Größenordnung 1kOhm - 100 Ohm, Vorsicht, bei 100 Ohm und 6V fällt schon 0,36W ab, das ist für kleine Widerstände schon zuviel, oder man brennt sich die Finger daran) an die Betriebsspannung anschließen. Durch diesen Widerstand sollten die positiven Spikes abfließen können (die negativen sollten sich wenig beeinflussen lassen).
2. Statt direkt am Servo, direkt am Netzteil messen. Wenn es Überkompensation ist, sollten hier die positiven Spikes mindestens genauso stark sein wie am Servo, wenn es die Zuleitungsinduktivität ist, sollten die positiven Spikes nicht mehr da sein.

Lukas.
30.05.2012, 09:52
Wow, danke für den Input. Wieder einiges gelernt.
Ich habs grad probiert, wenn ich direkt am Netzteil messe ändert sich scheinbar nichts.