- Labornetzteil AliExpress         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 38

Thema: Weglaufen der Mittelstellung bei Servohack

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Anzeige

    Praxistest und DIY Projekte
    Ich dachte da mehr an die P,I,D Anteile und so Dinge wie Antiwindup und Deadband.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Klebwax Beitrag anzeigen
    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
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #13
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.677
    Zitat Zitat von Klebwax
    ... 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, eine weitere hier, und in diesem Posting noch ein paar. Der Thread ist voll mit Messdiagrammen für elektroniklose "modelcraft ES-05" in einer realen Anwendung.
    Ciao sagt der JoeamBerg

  4. #14
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Die Ursache der Unstabilität des gehakten Servos scheint mir zu geringe bzw. keine Hysterese in der Steuerelektronik zu sein.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von PICture Beitrag anzeigen
    Die Ursache der Unstabilität des gehakten Servos scheint mir zu geringe bzw. keine Hysterese in der Steuerelektronik zu sein.
    Hallo PICture ,

    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
    Geändert von Searcher (15.09.2011 um 17:56 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #16
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.677
    Zitat Zitat von Searcher Beitrag anzeigen
    ... 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.
    Ciao sagt der JoeamBerg

  7. #17
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Na ja, wer kann, der kann. Ohne Versuchen, geht's leider kaum.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  8. #18
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo Searcher !

    Zitat Zitat von Searcher Beitrag anzeigen
    ... wes jetzt nicht genau, welche Hysterese Du meinst.
    Die interne von Steuerelektronik beim Vergleich Istwert = Sollwert.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  9. #19
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    "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
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #20
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,

    Zitat Zitat von oberallgeier
    Das hättste Dir jetzt patentieren lassen sollen
    Verdam..., hoffentlich noch nicht zu spät

    Zitat Zitat von radbruch
    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


    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.

    Code:
    '###################################################
    '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
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Testumgebung.jpg  
    Geändert von Searcher (16.09.2011 um 20:58 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. Servo in Mittelstellung Bring
    Von manhunt im Forum Motoren
    Antworten: 14
    Letzter Beitrag: 08.05.2008, 21:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress