PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Weglaufen der Mittelstellung bei Servohack



Searcher
13.09.2011, 08:43
Hallo,

ich habe mein ersten Servohack mit einem "modelcraft ES-05" nach folgender Methode durchgeführt: Elektronik im Servo belassen. Das 5kΩ Potentiometer entfernt und durch zwei 2,2kΩ Widerstände ersetzt. Anschlag für das Servohornzahnrad entfernt.

Damit bin ich zu einem Getriebemotor gekommen, der sich durch die Pulsweite der Servopwm in Drehrichtung und Geschwindigkeit steuern läßt. Stillstand des Motors stellt sich bei mir bei etwa 1370µs Pulsweite ein.

Eigentlich prima aber leider habe ich festgestellt, daß die Mittelstellung (1370µs) sich mit der Laufzeit des Motors verändert und sich erst nach nach einigen Sekunden bis Minuten Stillstand wieder einstellt. Ich nehme an, daß das durch Temperatureinflüsse (Erhitzung des Chips in der Servoelektronik) verursacht ist.

Meine Vorstellung, daß man einfach durch Einstellen der einen richtigen Pulsweite den Motor gezielt in den Stillstand bringen kann, hat sich damit wohl erledigt:(


Habt ihr das auch festgestellt?

Ist das Weglaufen der Mittelstellung ein allgemeines Phenomen oder tritt das nur bei Billigservos wie den ES-05 auf?

Hat schon jemand einen nach o.g. Methode gehackten Servo sinnvoll eingesetzt und wenn ja, wie?


Gruß
Searcher

radbruch
13.09.2011, 09:35
Hallo

Das "Weglaufen" der Mittelstellung ist nach meiner Erfahrung zumindest bei den ES-05 und den RS-2 normal und betrifft nicht nur gehackte Servos. Bei ungehackten Servos verschieben sich dadurch die Positionen mit der Erwärmung und, passend in diesem Zusammenhang, sind diese Servos auch alles andere als Linear. Das wirkt sich bei gehacken Servos besonders bei Impulslängen nahe der Nulldrehzahl aus. Abhilfe schafft eine kurze Warmlaufphase zu Beginn des Programms (z.B. ein kurzes Demo) um dann vom Start weg eine gute Wiederholgenauigkeit bei Greifern oder Roboterarmen zu erreichen. Oder man kann den ungefähren kalt zu warm Offset ermitteln und diesen zu Beginn des Programms mit den Impulslängen verrechnen.

Ich habe bei allen meinen gehackten Servos (allerdings keine zwergigen ES-05er) das Poti beibehalten und von außen zugänglich angebaut:

probot: http://www.youtube.com/watch?v=Z7VJT-kw9VQ
Handybot: http://www.youtube.com/watch?v=bm9Udc27jQA
JBL-Racer: http://www.youtube.com/watch?v=Q2tggwy7uhU
Interroller: http://www.youtube.com/watch?v=wIwsT-f-TYU
Mecanum: http://www.youtube.com/watch?v=5kzZEld3ZlM

Außer den Nullpunkt zu kalibrieren kann man so auch mal schnell die Funktion testen ohne die Impullänge zu ändern und die Bereiche für Links- oder Rechtslauf unsymetrisch verteilen.

Gruß

mic

oberallgeier
13.09.2011, 14:01
... Mittelstellung ... mit der Laufzeit des Motors verändert ... Habt ihr das auch festgestellt ...Ja, hatte ich auch festgestellt. Deswegen und wegen geringer Haltbarkeit begann mit meinen Servos eine kurze Ära mit Temperaturstudien , siehe hier. (https://www.roboternetz.de/community/threads/32293-DC-Kleinstmotor-mit-Getriebe-Drehsensor-5V-510-Upm) Diese Phase wurde abrupt beendet, weil ich eine wirklich sinnvolle, automatisierte Abhilfe nur durch Aufbau einer ordentlichen Regelung gesehen hatte. Das war der Grund dafür, dass im eben verlinkten Thread weiter unten eine Drehzahlmessung ein- und die "Normalelektronik" ausgebaut wurde.

So laufen meine Blackboxen, die in ihrem früheren Leben ES 05 gewesen sind, "immer" ziemlich genau nach Plan.

Searcher
14.09.2011, 08:04
Hallo,
danke euch für eure Erfahrungen und Tipps.

@radbruch: obwohl ich schon einige Deiner Projekte gesehen hatte, bin ich immer wieder platt, was Du schon alles aufgebaut hast. Ich hatte früher schon bemerkt, daß der ungehackte Servo nicht ganz ideal allen Steuerpulsen folgt; die Temperaturabhängigkeit von der selbst erzeugten Wärme war mir neu.

@oberallgeier: bisher hab ich mich immer um eine Regelung herumgedrückt. Keine Ahnung ob das noch notwendig wird da ich noch beim Ausloten und Ausprobieren von Möglichkeiten bin - ohne festes Projekt vor Augen.

Mal sehen, was ich nun mit dem Teil anfange. Vielleicht verlängere ich die Drähte zum Motor und versuche die Elektronik außerhalb des Servogehäuses mit Kühlkörper zu kühlen um die Mittelstellung wieder einzufangen :-) Ist eben so schön kompakt aufgebaut und ich würde gerne noch mit der Ansteuerung experimentieren.

Vielleicht kennt noch jemand ein nicht so temperaturabhängiges Modellbauservo im Hobbybereich?


Gruß
Searcher

oberallgeier
14.09.2011, 08:55
... Servohack ... nach folgender Methode ... Elektronik im Servo belassen. Das 5kΩ Potentiometer entfernt ...Schade, dass das Poti entfernt wurde. Da könnte man nämlich evtl. eine gewisse "Stillstandsanalyse" bauen. Das eingebaute und von der Elektronik abgeklemmte Poti als Spannungsteiler an einen ADC anklemmen. Dort wird dann in einem gewissen Zeitraster in einer ISR der aktuelle Wert gemessen, insbesondere dann, wenn auf "Stillstand" gefahren werden soll. Driftet der Spannungswert zu weit in einer zu kurzen Zeit, dann dreht der Servo eben. Das ist ne Krückenlösung, klar, es funktioniert natürlich im "Übergangsbereich" - dem verbotenen Potibereich wo der von Null auf Maxiumum springt - nur mit etwas trickigem Grips. Aber dazwischen - wäre es eine interessante Lösung. Ausserdem könnte man das auch dauernd abfragen und so ne gewisse Geschwindigkeitsmessung durchführen. Wie gesagt - die verbotene Zone : wenn einer der beiden Messwerte > MaxPoti oder <MinPoti, müsste besonders behandelt werden .

Searcher
14.09.2011, 16:57
Schade, dass das Poti entfernt wurde...

Kein Problem. Ist nicht entsorgt und kann ganz einfach durch einklipsen zurückgebaut werden. Die Achsverlängerung vom Zahnrad zur Betätigung ist auch noch da.

@oberallgeier: Klasse Ideen zu weiteren Versuchen. Die gefallen mir gut und sollten sich durchführen lassen, da das Poti selbst keinen Anschlag besitzt. Mal sehen, was ich draus machen kann.

Gruß
Searcher

oberallgeier
14.09.2011, 17:11
... Ideen zu weiteren Versuchen ... sollten sich durchführen lassen ...Dir ist ja sicher klar, dass diese Krückenlösung eine Krückenlösung ist unter Anderem deswegen, weil ein Poti ein Verschleißteil ist. Wenn das dauernd rundumfährt - dann wird es abgenutzt. Das ist natürlich auch seine Entwurfsgrundlage. Trotzdem: ewig wird so etwas nicht funktionieren, jedenfalls nicht so lange wie (m)eine berührungslos arbeitende Gabellichtschranke. Aber ich bin gespannt, was Du damit zauberst.

Viel Erfolg

Searcher
14.09.2011, 17:22
Dir ist ja sicher klar, dass diese Krückenlösung ... Aber ich bin gespannt, was Du damit zauberst. Viel Erfolg

Ja, ist klar. Es muß ja kein Dauerläufer werden und falls sich Messungen über das Poti als zu unkomfortabel oder zu aufwendig erweisen, wird eben was anderes gemacht. Ich bin selbst auch gespannt, was da raus kommt. Mir gefällt die Idee halt, weil es mal was anderes ist.

Danke und Gruß
Searcher

Klebwax
14.09.2011, 22:30
Vielleicht kann ja mal jemand, der sich mit Simulationen auskennt, die Reglung in einem Servo mal simulieren. Dann den Regelkreis aufbrechen, d.h. Poti und Achse entkoppeln, und mal melden, wie stabil das System dann ist.

MfG Klebwax

oberallgeier
15.09.2011, 08:33
... Reglung in einem Servo mal simulieren ... Poti und Achse entkoppeln ... wie stabil ...Das wäre sicher interessant. Ob es annähernd realistisch wird, glaube ich eher nicht. Zumindest bei den Billigservos - Searcher verwendet den "modelcraft ES-05" - ist das Getriebespiel beachtlich und ich kann mir nicht vorstellen, dass die Oberklasse verspannte Getriebe hat. Dazu kommt das Spiel zwischen Poti und Abtriebsachse und schließlich noch die Tatsache, dass der Abnehmer des Potentiometers bestimmt nicht punktförmig auf einem streng monoton steigenden Widerstand schleift. Wie, ob und dass man das in ne Simulation einbringen kann wäre aber vielleicht interessant.

Klebwax
15.09.2011, 15:49
Ich dachte da mehr an die P,I,D Anteile und so Dinge wie Antiwindup und Deadband.

MfG Klebwax

Searcher
15.09.2011, 16:11
Ich dachte da mehr an die P,I,D Anteile und so Dinge wie Antiwindup und Deadband.

Naja, soweit bin ich noch nicht;) Hab jetzt erstmal die Elektronik aus dem Servogehäuse rausgeholt und einen kleinen Maschinenschraubstock eingespannt. Drähte vom Motor zur Elektronik gelegt und einen Kühlkörper mit etwas Wärmeleitpaste auf den Chip gelegt.

Dramatische Verbesserung:
20 Sekunden Lauf ohne Last, max. Geschw., ohne Kühlkörper - Abweichung der Neutralstellung ca.46µs
20 Sekunden Lauf ohne Last, max. Geschw., mit Kühlkörper - praktisch keine Abweichung mehr.

Hab das gleich mit einer Aluminiumplatte (20mm x 20mm x 1,5mm) wiederholt. Schon Abweichung von ca 6µs feststellbar, die sich aber sehr schnell (ca 5s ) zurückgestellt hat

Der Chip wird bei Lauf mit maximaler Geschwindigkeit schon ohne Last so heiß, daß man den Finger kaum drauf lassen kann.

Gruß
Searcher

oberallgeier
15.09.2011, 16:12
... mehr an die P,I,D Anteile und so Dinge wie Antiwindup und Deadband ...Aha, die "richtige" Theorie. Mit Simulation habe ich in diesem Fall nix am Hut. Aber reale Messungen könntest Du Dir ansehen. Hier, (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=421502&viewfull=1#post421502) eine weitere hier, (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=422091&viewfull=1#post422091) und in diesem Posting noch ein paar. (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=429579&viewfull=1#post429579) Der Thread ist voll mit Messdiagrammen für elektroniklose "modelcraft ES-05" in einer realen Anwendung.

PICture
15.09.2011, 16:35
Hallo!

Die Ursache der Unstabilität des gehakten Servos scheint mir zu geringe bzw. keine Hysterese in der Steuerelektronik zu sein.

Searcher
15.09.2011, 16:50
Die Ursache der Unstabilität des gehakten Servos scheint mir zu geringe bzw. keine Hysterese in der Steuerelektronik zu sein.

Hallo PICture :Strahl,

weis jetzt nicht genau, welche Hysterese Du meinst. Es gibt eine Zeitspanne von ungefähr 12µs in der sich die Pulsweite in der Neutralstellung (Motor dreht nicht) verändern kann, ohne das sich der Motor beginnt zu drehen. Auch wenn sich die Neutralstellung durch Wärme verändert hat, ist die Zeitspanne in etwa gleich.

Für mich ist der Servo einfach nicht für diese Anwendung als Getriebemotor gebaut. Darüber hinaus ist es auch ein sehr günstiges Modell und wie es aussieht nicht temperaturstabilisiert.

Gruß
Searcher

oberallgeier
15.09.2011, 17:02
... Kühlkörper mit etwas Wärmeleitpaste auf den Chip ... praktisch keine Abweichung mehr ...Das hättste Dir jetzt patentieren lassen sollen. Der Präzisions-Servo mit heat pipe *ggg*. Ich finde Deine Tests Klasse! Und ich Dummer bin mit der Temperaturmessung auf den Motor fixiert geblieben.

PICture
15.09.2011, 17:19
Na ja, wer kann, der kann. Ohne Versuchen, geht's leider kaum. :lol:

PICture
15.09.2011, 17:31
Hallo Searcher ! :cool:


... wes jetzt nicht genau, welche Hysterese Du meinst.

Die interne von Steuerelektronik beim Vergleich Istwert = Sollwert. ;)

radbruch
15.09.2011, 17:34
"Es gibt eine Zeitspanne von ungefähr 12µs in der sich die Pulsweite in der Neutralstellung (Motor dreht nicht) verändern kann, ohne das sich der Motor beginnt zu drehen."

Auch das ist normal. Dieser Bereich wird u.a. Totbereich genannt:

http://www.google.de/search?q=servo+totbereich

Echt spannend wie sich der Thread entwickelt. :)

Erste Umsetzung der Erkenntnisse wären wohl Belüftungslöcher in den Servogehäusen. Das Thema wird für mich akut weil ich grad mit 18 ES-05ern rumspiele...


Gruß

mic

Searcher
16.09.2011, 18:31
Hallo,


Das hättste Dir jetzt patentieren lassen sollen
Verdam..., hoffentlich noch nicht zu spät :-)


Erste Umsetzung der Erkenntnisse wären wohl Belüftungslöcher in den Servogehäusen
Wenn die Servos dauernd mit Höchstgeschwindigkeit laufen kann ich eigentlich nur sagen: je mehr Kühlung desto besser. Hab den Servo noch nicht unter Normalbedingungen, also den Servo als Servo unter die Lupe genommen. Aber auch da könnte ich mir Wärmeeinflüsse vorstellen (und hast Du ja auch schon bestätigt), besonders, wenn er mit Belastung läuft.

@PICture: ich werd weiter nach der Hysterese Ausschau halten:cool:


Damit man das Zustandekommen der Testergebnisse besser einschätzen kann, ein Bild der Testumgebung und das Servotesterprogramm auf einem ATtiny24 mit 16 Bit Timer. Rechts unten im Bild kann man die im Schraubstock eingespannte, jedoch von der mit Wärmweleitpaste angeklebten Aluplatte verdeckten Servoelektronik erkennen. Ein größerer "echter" Kühlkörper brachte viel bessere Ergebnisse. Rechte Seite des Steckbretts dient nur der Ausgabe der Meßwerte ;) Versorgungsspannung des Ganzen: 5 Volt

Bestimmung der Zeiten geschah durch Justieren des Potis, Horchen auf Motorgeräusche und Ablesen der Pulsweite - also keine Präzisonsmessungen :-) Tendenz ist aber eindeutig.


'################################################# ##
'File: servo_hack_01.bas
'IDE: BASCOM-AVR DEMO Version 2.0.5.0
'
'Servotester mit Servopulseinstellung über Potentiometer
'Servopuls Auflösung ist 2µs im Bereich 500 - 2546µs bei 50Hz
'
'ATtiny24
'PA0 : ADC0, Eingang vom Poti
'PA6 : OC1A, Servosignal - Ausgang zum Servo
'PB0 : SW UART #1 , für Ausgabe der Pulsweite an 4 fach 7-Segmentanzeige
'################################################# ######

$regfile = "attiny24.dat"
$framesize = 32
$swstack = 32
$hwstack = 36
$crystal = 8000000 'internal Oscillator
Osccal = &H8E 'trim internal oscillator close to real 8MHz

'##### Definitionen und Initialisierung für 7segment ausgabe ######
Dim Number_string As String * 6
Dim Digits(5) As Byte
Dim X As Byte
Dim Y As Byte
Dim Idx As Byte
Dim Num_to_disp As Word
Declare Sub Display_value(num_to_disp As Word)
Open "comb.0:115200,8,n,1" For Output As #1 'comb.0 -> TX ist Pin PB0
Y = &B11111101 'segment g
For X = 1 To 5 : Put #1 , Y : Next '7 segment initialisieren
'#### Ende Definitionen und Initialisierung für 7 Segmentausgabe #######

Dim Adc_result As Word
Dim Timer1_overflows As Byte
Timer1_overflows = 0

Porta = Porta Or &B10111110 'all Pullups on at porta , exept PA6, PA0
Portb = Portb Or &B11111110 'all Pullups on at portb , exept PB0 - TX
Config Porta.6 = Output 'servo at oc1a

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Set Tccr1a.wgm11 : Set Tccr1b.wgm12 : Set Tccr1b.wgm13 'fast pwm - icr1 as top
Icr1 = 19999 ' :-) 50 Hz for Servo PWM
Set Tccr1a.com1a1 'clear oc1a on compare match
Ocr1a = 1500 '1,5ms pulse - Servo neutral position
Set Tccr1b.cs11 'timer1 on, prescaler 8 - 1Mhz at 8MHz systemclock

On Timer1 Isr_show_pulsewidth
Enable Timer1 'overflow interrupt enable

Enable Interrupts

Do
Adc_result = Getadc(0) 'read potentiometer position at ADC0 (PA0)
Shift Adc_result , Left 'multiply by 2
Adc_result = Adc_result + 500 'add offset for pulses from 500 till 2546µs
Ocr1a = Adc_result 'assign pulsewidth to compare register
Loop

Isr_show_pulsewidth: 'isr may take time - no problem here
Incr Timer1_overflows
Timer1_overflows = Timer1_overflows And &B00001111 'display update about 3 times a second
If Timer1_overflows = 0 Then Call Display_value(ocr1a) 'display actual pulsewidth
Return

'############ Folgende Zeilen bis zum Ende nur zur Datenausgabe über 7 Segmentanzeige #############
Sub Display_value(num_to_disp As Word) 'gibt Dezimalzahlen bis 9999 aus
Number_string = Str(num_to_disp) 'Zahl in String geben
Str2digits Number_string , Digits(1) 'Ziffern im String in Byte Array geben
X = Digits(1) + 1 'in Digits(1) befindet sich Anzahl der Ziffern der Zahl
For Idx = 5 To 2 Step -1
If X < Idx Then
Put #1 , &HFF 'Leerstellen dunkel schalten
Else
Y = Lookup(digits(idx) , Pattern) 'Segmentpattern aus Tabelle fischen
Put #1 , Y 'Segmentpattern senden
End If
Next
End Sub

Pattern: 'darzustellende Zeichen (hex 0..F...)
'Segmente abcdefg: ' ":" = Doppelpunkt in der Mitte
Data &B00000011 'Ziffer "0", 0 = segment ein, 1 = aus
Data &B10011111 'Ziffer "1"
Data &B00100101 'Ziffer "2"
Data &B00001101
Data &B10011001
Data &B01001001
Data &B01000001
Data &B00011111
Data &B00000001
Data &B00001001
Data &B00010001
Data &B11000001
Data &B01100011
Data &B10000101
Data &B01100001 'Ziffer "E"
Data &B01110001 'Ziffer "F"
Data &B11111111 'dunkel
Data &B11111101 'nur Segment g eingeschaltet (-)

'########### ENDE US-Meßprogramm_ICP.bas ##############################################

Gruß
Searcher

oberallgeier
16.09.2011, 18:46
Bravo, bravo! (Das zweite Mal wegen der besonderen Güte, nicht wegen der 15-Zeichen-Mindestgrenze!)

Searcher
16.09.2011, 19:00
@all: bitte, Bitte, BItte, BITte, BITTe, BITTE kein Lob mehr. Sonst fühl ich mich genötigt weiterzumachen ;):):-):lol: *schwitz*

Gruß
Searcher

oberallgeier
17.09.2011, 08:31
... Sonst fühl ich mich genötigt weiterzumachen ;):):-):lol: *schwitz* ...Kommt nicht infrage, denn wenn Du nicht schwitzt - müssen wir das selber machen - und selber schwitzen.

Manf
17.09.2011, 08:55
Tolle Sachen die da wieder im Gange sind.

20 Sekunden Lauf ohne Last, max. Geschw., ohne Kühlkörper - Abweichung der Neutralstellung ca.46µs


Das Servo ist gehackt, also ist ein fester Spannungsteiler auf dem Spannungseingang, der Vergeleichswert ist die Zeit und das Ganze driftet über der Temperatur.

Es driftet hier um 46µs und das entspricht 4,6% der Impulsdauer?
Entspricht das dann auch 4,6% der Spanung von 5V ?
Kann man dem Spannungsteiler eine thermische Komponente geben?
...eine Diode auf den Chip kleben oder einen KTY oder erfordert es einen NTC der besonders empfindlich ist?

So wurde ja früher kompensiert als noch nicht alles per SW ging.
Man kann alternativ die Temperatur messen und in den Nullpunkt des PWM Wertes einrechnen.

Searcher
19.09.2011, 18:27
Hallo,

weis nicht, ob es sich wirklich empfiehlt, das gehackte ES-05 mit der Originalelektronik zu betreiben. Das IC wird im Dauerbetrieb sehr heiß. Auf der anderen Seite der Platine befinden sich noch zwei Transistoren, die sich auch noch wirklich heiß anfühlen. Ich würde mich nicht trauen es über Minuten im Dauerbetrieb mit maximaler Geschwindigkeit laufen zu lassen. Bisher hatte ich es auch noch nicht unter Last betrieben.


Kann man dem Spannungsteiler eine thermische Komponente geben?

Aber noch ein paar Messungen:
An die originalen Potianschlüsse wieder ein Poti (4,7k Trimmer) angeschlossen.
Spannung über dem 4,7k Widerstand: 1922mV
Schleifer auf den halben Spannungswert (961mV) eingstellt.
Servo mit Servotester zum Stillstand gebracht - 1350µs Pulsweite
Pulsweite um früher beobachtete Hitzeabweichung von 46µs verstellt und Spannungsteilerpoti nachgezogen bis Servo wieder zum Stillstand kam - 45mV Unterschied

Die Totzeit erschwert eine genaue Festlegung von Meßzeitpunkten. Grob würd ich aber sagen, daß 1µs Abweichung einer Verschiebung von 1mV am Spannungsteiler entspricht.

Das Verhalten wird unlinearer, je mehr man sich von der Mitte des Spannungsteilers fortbewegt.

Es hat sich während der Versuche immer mal wieder eine andere Neutralstellung eingestellt - ca +-4µs. Bin noch nicht dahinter gekommen, woran das liegt. Temperatur könnte ich in dem Fall fast ausschließen.

Gruß
Searcher

PICture
19.09.2011, 18:37
Hallo Searcher ! :D


Temperatur könnte ich in dem Fall fast ausschließen.

Ich würde das bezweifeln, da der IC, wo angeblich der steuernde Controller sitzt und der Servopoti, bleiben doch nicht "cool". ;)

Searcher
19.09.2011, 19:03
Ich würde das bezweifeln, da der IC, wo angeblich der steuernde Controller sitzt, bleibt doch nicht "cool". ;)
Hallo PICture,
ja, ich weiß. Im allgemeinen konnte ich Temperaturveränderungen auch Abweichungen zuordnen. Es treten aber Fälle auf wo das nicht geht. Bei meinem doch recht primitiven Meßaufbau traten noch weitere myteriöse Erscheinungen auf. Messungen mit Oszi am Spannungsteiler führten z.B. zu Vor- und Zurücklaufen des Servos im vielleicht 2 Sekunden Takt. Hab dann mit einem DMM gemessen.

Die Testschaltuing wird über ein getaktetes Netzteil mit 5 Volt versorgt.

Eine weitere Beobachtung, die mich als bisherigen nur Servonutzer überrascht hat: Die Motoren werden mit der gleichen PWM Frequenz angesteuert, die auch das Servosteuersignal hat. Vielleicht trivial aber für mich erwähnenswert.

Gruß
Searcher

PICture
19.09.2011, 19:14
Die Testschaltuing wird über ein getaktetes Netzteil mit 5 Volt versorgt.

Ich würde es testweise mit analogen Netzteil bzw. Akkus ersetzen (zumindest für die Steuerung) um mögliche Störungen auszuschliessen. ;)

radbruch
19.09.2011, 19:25
Die Motoren werden mit der gleichen PWM Frequenz angesteuert, die auch das Servosteuersignal hat.Das ist auch normal für analoge Servos:
http://www.rn-wissen.de/index.php/Servos#Unterschied_zwischen_Digital-_und_Analogservos
http://www.flugleiter.de/rc/servo/analog-digital

Deshalb werden analoge Servos "aggressiver", wenn man die Wiederholfrequenz des Signals erhöht. Andererseits werden sie auch deutlich träger, wenn die 20ms verlängert werden.

btw. werden die Minimotoren auch sehr heiß. Spannende Grundlagenforschung. :)

Gruß

mic

oberallgeier
19.09.2011, 19:25
... konnte ich Temperaturveränderungen auch Abweichungen zuordnen ...In meinem Thread zum Servoumbau/-hacking hatte ich mit Temperaturmessungen angefangen - allerdings am Motor. Wenns Dich interessiert - hier. (https://www.roboternetz.de/community/threads/32293-DC-Kleinstmotor-mit-Getriebe-Drehsensor-5V-510-Upm?p=316156)

PICture
19.09.2011, 19:38
Interessant wäre, ob genau die gleiche Position bei beiden Richtungen angefahren wird. Daraus sollte sich die Hysterese abschätzen lassen.

Searcher
19.09.2011, 20:07
Dank euch allen für den Input. Einiges kannte ich schon, anderes nicht.

Obwohl ich nicht mehr so recht dran glaube, daß ich den auf diese Art und Weise gehackten Servo wie ursprünglich gedacht verwenden kann (gereicht hätte Stillstand bei einmal bestimmter Pulsweite), werde ich wohl noch ein bißchen an dem Testaufbau arbeiten (Stichwort: unzweifelhafte Stromversorgungen). Hatte auch schon festgestellt, daß sich der Steckbrettaufbau bei höheren Strömen schlecht eignet.

Vielleicht mach ich noch einen Abstecher über Temperaturmessung mit 1N4148 Diode.

@radbruch: sollte zusätzlich noch die Erwärmung des Motors in Betracht ziehen. Mal sehen ob ich eine simple Temperaturmeßmethode hinbekomme.

@oberallgeier: bin versucht, mich Deinem Fazit aus Deinem letzten Link anzuschließen. Schöne Doku!

@PICture: Hysterese würd ich erstmal mit der Totzeit gleichsetzten und hatte ich grob mal bei 12µs beobachtet. Bei den Meßergebnissen hatte ich versucht die Totzeit zu berücksichtigen. Wie schon gesagt, alles keine Präzisionsmessungen.

Die Versuche sind jedoch so interessant, daß ich wohl noch ein bißchen rumprobiere.

Gruß
Searcher

oberallgeier
19.09.2011, 22:53
... Vielleicht mach ich noch einen Abstecher über Temperaturmessung mit 1N4148 Diode ...Wollte ich auch mal machen. ABER.

3tens habe ich wirklich keine sinnvolle Anwendung bei mir gesehen. 2tens habe ich ein Messgerät (4-Kanal-Temperatur + Logger) mit und für Thermoelemente (siehe meine Temperaturmessungen). 1stens habe ich die Eichkurve (https://www.roboternetz.de/community/threads/32920-Low-Cost-Temperatursensor?p=311385&viewfull=1#post311385) angesehen, die s.o. gemacht hat (danke dafür) - grob gerechnet 1 mV pro K im Bereich 20 bis 50 °C. Wenn ich da Störungseinflüsse und Bauteiltoleranzen dazu rechne, wird das ein ziemliches Schätzeisen. Ich wills nicht schlecht machen - für höhere Temperaturen im Bereich >> 100 °C sicher sehr gut, weil die Diode aus Glas ist mit entsprechender Temperaturfestigkeit. Und s.o. hat, soviel ich weiß, die Dioden zur Temperaturmessung für einen Pizzaofen (als Reflow) oder ein Laminiergerät benutzt. Also: höherer Temperaturbereich und nicht notwendigerweise Auflösung und Reproduzierbarkeit im Grad-Bereich.

Für Deine Anwendung ist die 4148 wegen der Größe der Pille sicher nicht optimal. Ich vermute, dass hier die Abstrahlung und die Ableitung der Messpille, also der Diode, so groß ist, dass das Messergebnis einer schwachen Wärmequelle schon verfälscht wird. Ich hatte ja bei meinen Temperaturmessungen auch kein Mantelthermoelement verwendet sondern diesen mässigen Trick mit dem doppelten Tesa: der leitet "innen" halbwegs gut von der Quelle und strahlt wenig ins Freie.

PICture
19.09.2011, 23:39
Sorry für die blöde Frage, aber was macht das gehakte Servo, wenn keine Impulse bekommt ? :o

oberallgeier
20.09.2011, 10:58
Sorry für die blöde Frage, aber was macht das gehakte Servo, wenn keine Impulse bekommt ? :oDa gäbs mehr Fälle. Trivial: keine Impulse und keine Spannungsversorgung: nix ;-). Mit Spannungsversorgung : Hack1 (Elektronik ist drin) - kommt auf den Servo an, manche (die meisten) bleiben dann stehen - kommt ein bisschen auf die Last an, Hack 2 (Elektronik komplett weg) - der Servo ist ja nun wirklich nur noch DC-Motor - und läuft. VERMUTLICH ist es bei Hack1 mit Spannungsversorgung aber so, dass er die vorher gewählte Geschwindigkeit beibehält .

Übrigens gibt es bei verschiedenen Servos (ungehackt) ziemliche Unterschiede im Stromverbrauch wenn kein Signal ansteht. Meine ES-05 verbrauchen dann - unbelastet - fast nix, ein Microservo bei mir frisst dann immer noch so etwa die Hälfte.

ranke
20.09.2011, 11:15
Bei meinem doch recht primitiven Meßaufbau traten noch weitere myteriöse Erscheinungen auf. Messungen mit Oszi am Spannungsteiler führten z.B. zu Vor- und Zurücklaufen des Servos im vielleicht 2 Sekunden Takt.


Wenn Deine PWM-Ansteuerung mit etwa 50 Hz erfolgt (aber nicht Netzsynchron), dann könnte vielleicht über die Tastspitze eingekoppelte (netzsynchrone) Brummspannung eine mögliche Erklärung für dieses Mysterium sein?

PICture
20.09.2011, 16:05
Danke sehr füe Eure Erklärungen, weil ich selber bisher keine Servos benutzt habe.

Searcher
20.09.2011, 19:52
Wenn Deine PWM-Ansteuerung mit etwa 50 Hz erfolgt (aber nicht Netzsynchron), dann könnte vielleicht über die Tastspitze eingekoppelte (netzsynchrone) Brummspannung eine mögliche Erklärung für dieses Mysterium sein?

:) An eingekoppelte Störspannungen hatte ich auch gedacht. Die Wechselwirkung mit den 50Hz der Servopwm ist eine tolle Erklärung und wieder ein Aha-Effekt für mich. Danke! Hab auch gleich eine Schreibtischlampe mit Energiesparleuchte über dem Testaufbau geschwenkt. Einfluß auf die Drehgeschwindigkeit ist unverkennbar. Dann auch nochmal der Versuch, die Frequenz des Hin- und Herdrehens des Servos zu bestimmen. Ist nicht sehr gut reproduzierbar, liegt nicht bei zwei sondern meistens so um 25 Sekunden vom Stillstand über Linksdrehung - Stillstand - Rechtsdrehung und wieder Stillstand.

Werde bestimmt noch die Servopwm Frequenz variieren und dabei auch diesen Effekt im Auge behalten.

Gruß
Searcher