Hallo zusammen In meiner Anwendung habe ich zwei Servos, welche stirnseitig gegenüber stehen. Es zeigt als die Nabe (Servohornaufnahme) von einen Servo auf die Nabe von zweiten Servo. Auf den Servohornaufnahmen ist ein gefräster Block aus Aluminium. Die Servos drehen den Block um 90° hin- und her. Gesteuert wird das Ganze von einem ATMEGA 2560. Problemstellung: In meiner Anwendung kann ich konstruktionsbedingt nicht sicherstellen, dass beide Servos immer plan aufliegen werden. Ein Servo wird immer ein paar Zentel Grad 'verdreht' sein. Somit kommt es immer in einer Endstellung zum typischen Servoknurren. Dabei zeigt sich ein Ruhestrom (oder eben nicht Ruhe) von fast 500mA - was zuviel ist. Die Servos sind auf Gummi gelagert, hilft aber nicht wirklich weiter. Lösungsansatz: Meine Idee wäre, eine Sekunde nachdem die Endposition erreicht ist, die Stromaufnahme von einem Servo zu messen. In einem Loop dann inkrementierend in Microsteps in eine Richtung drehen, und dabei feststellen, ob der Strom grösser oder kleiner wird. Fällt er unter den definierten Schwellwert, Stop, wird er grösser, Richtung ändern. Denkt ihr, ich bekomme das mit einem ACS712 hin, den Strom zu messen? Oder hat jemand grad eine bessere Idee, das Problem in den Griff zu bekommen? Gruss, Philipp
Philipp G. schrieb: > Auf den Servohornaufnahmen ist ein gefräster Block aus Aluminium. Die > Servos drehen den Block um 90° hin- und her. Warum 2?
Rainer U. schrieb: > Warum 2? Konstruktionsbedingt kommen nur Servos in der Standard '40mm' Grösse in der Frage, alles andere - ist zu gross. Warum zwei? Weil ich Drehmoment brauche. Es sind Savöx Full Metal Servos mit 350nCm Kraft. Also die beiden Zwerge heben fast 70kg Gewicht auf eine Länge von 10mm.
Mit Schaltern in der Endposition den Strom abschalten. Zum Wiedereinschalten die Schalter überbrücken.
Ritschard schrieb: > Mit Schaltern in der Endposition den Strom abschalten. Zum > Wiedereinschalten die Schalter überbrücken. Nu ja, das kann ich natürlich auch mit dem AVR. So ist es im Moment auch, nur dann habe ich keine Halteposition, sondern Spiel.
Wie erfolgt in den Servos die Erfassung der Ist-Position? Wenns ein poti ist, könnte man versuchen ein poti zu deaktivieren, und den Schleifer vom zweiten poti zu verwenden.
@Philipp Geiser (geiserp01) >Warum zwei? Weil ich Drehmoment brauche. Es sind Savöx Full Metal Servos >mit 350nCm Kraft. Was ist nCm für eine Einheit? >Also die beiden Zwerge heben fast 70kg Gewicht auf eine Länge von 10mm. Das macht 70kg * 9,81 m/s^2 * 0,1m / 2 = 343 Nm
Falk B. schrieb: > 0,1m 10mm != 0,1m :) somit sollte das Ergebnis 34,3Nm sein, was aber ebenfalls != 350Ncm ist
@Philipp Geiser (geiserp01) >Meine Idee wäre, eine Sekunde nachdem die Endposition erreicht ist, die >Stromaufnahme von einem Servo zu messen. Beiden. > In einem Loop dann >inkrementierend in Microsteps in eine Richtung drehen, und dabei >feststellen, ob der Strom grösser oder kleiner wird. Fällt er unter den >definierten Schwellwert, Stop, wird er grösser, Richtung ändern. Vom Prinzip her richtig. Man muss die Servoströme mittels überlagertem Regler ausgleichen. >Denkt ihr, ich bekomme das mit einem ACS712 hin, den Strom zu messen? Ja, aber warum so ein High Tec Teil? Man kann die Stervoströme auch mit einem billigen Shunt + OPV messen. Im einfachsten Fall nimmt man 2 Shunts mit vielleicht 100mV Vollausschlag und dahinter einen OPV, der das x50 auf 5V verstärkt. Das Ganze 2x und mittels ADC gemessen.
Ein Servo als Master. Der regelt die Position. Beim 2. Servo nur den Motor verwenden und den parallel zum Motor des 1. Servos schalten. Vermutlich wird der Servotreiber das schaffen.
Christian B. schrieb: > 10mm != 0,1m :) > somit sollte das Ergebnis 34,3Nm sein, was aber ebenfalls != 350Ncm ist 10mm = 1 cm, also passen die 343 Ncm schon
Loth schrieb: > Beim 2. Servo nur den Motor verwenden und den parallel zum Motor des 1. > Servos schalten. > Vermutlich wird der Servotreiber das schaffen. nein, eher nicht. das dürfte ein BLCD-Servo sein, da kannst du nicht einfach den zweiten Motor parallel schalten (Kommutierungs-erkennung)
Loth schrieb: > Ein Servo als Master. Der regelt die Position. > Beim 2. Servo nur den Motor verwenden und den parallel zum Motor des 1. > Servos schalten. > Vermutlich wird der Servotreiber das schaffen. Das waere auch meine erste Idee gewesen. Die zweite ist, die Servoelektronik gleich ganz rauszuwerfen und nur noch eines der Potis in den uC einzulesen und beide Motoren durch den uC zu steuern. Wobei mir da die Frage erscheint, ob die sich nicht auch dabei gegenseitig verspannen? wendelsberg
Loth schrieb: > Ein Servo als Master. Der regelt die Position. > Beim 2. Servo nur den Motor verwenden und den parallel zum Motor des 1. > Servos schalten. > Vermutlich wird der Servotreiber das schaffen. Das geht so nicht. Wenn, dann muss die 2. Position auch geregelt werden. Was wäre, wenn der zweite Motor, zB. durch eine längere Versorgungsleitung etwas langsamer dreht? Das wird sich alles verspannen. Wenn schon, dann muss das Signal des "Master-Potis" an die Steuerung des zweiten Servos. Dann sollten -bei baugleichen Servos- dieselben Positionen angefahren werden. Die Potis sind als "einstellbarer" Spannungsteiler geschaltet. Somit wäre es simpel den Mittelkontakt an die Steuerung des zweiten Servos zu legen. Gleiches GND vorausgesetzt. Viele Grüße
Ohne den genauen mechanischen Aufbau und die Anforderungen zu kennen würde ich eine Lösung vorschlagen, wie sie sich im Modellbau bewährt hat: das eine Servo bewegt eine Ende eines Hebelarms, das andere Servo das andere Ende dieses Hebelarms. In der Mitte des Hebels wird die Last angekoppelt. Das lässt sich sinngemäß auch für Drehbewegungen bauen.
Falk B. schrieb: > Das macht 70kg * 9,81 m/s^2 * 0,1m / 2 = 343 Nm Hm, Ncm: 350 Ncm sind 3.5Nm, und entspricht 35,69kg (kgf.cm) auf eine Länge von 10mm, grob 70kg. > Beiden. Warum? > Vom Prinzip her richtig. Man muss die Servoströme mittels überlagertem > Regler ausgleichen. Kannst Du mir das genauer ausführen? Michael R. schrieb: > nein, eher nicht. das dürfte ein BLCD-Servo sein, da kannst du nicht > einfach den zweiten Motor parallel schalten (Kommutierungs-erkennung) Das ist korrekt, es sind brushless Motoren, oder halt drei Phasen Assynchron Motoren ;) wendelsberg schrieb: > Das waere auch meine erste Idee gewesen. > Die zweite ist, die Servoelektronik gleich ganz rauszuwerfen und nur > noch eines der Potis in den uC einzulesen und beide Motoren durch den uC > zu steuern. > Wobei mir da die Frage erscheint, ob die sich nicht auch dabei > gegenseitig verspannen? Habe ich mir auch schon überlegt.. Servo schrieb: > Das geht so nicht. Wenn, dann muss die 2. Position auch geregelt werden. > Was wäre, wenn der zweite Motor, zB. durch eine längere > Versorgungsleitung etwas langsamer dreht? Das wird sich alles > verspannen. Ich verwende eine 'servo ease' library, welche die Servos schon sehr langsam drehen lässt (ca. 2 Sekunden von Pos - Pos [daher ist auch die Kraft nötig])
@ Philipp Geiser (geiserp01) >> Das macht 70kg * 9,81 m/s^2 * 0,1m / 2 = 343 Nm >Hm, Ncm: >350 Ncm sind 3.5Nm, und entspricht 35,69kg (kgf.cm) auf eine Länge von >10mm, grob 70kg. jaja, da ist der Faktor 10 Zuviel 8-0 >> Beiden. >Warum? Weil die die Last gleichmäßig auf beide verteilen willst. Du willst ja nicht den Strom eines Servos auf Null regeln, während der andere, der nicht gemessen wird, wie blöde ackern muss. Und du weißt u.a. nicht vorher, welcher durch die mechanische Unsymmetrie der höher belastete ist. >> Vom Prinzip her richtig. Man muss die Servoströme mittels überlagertem >> Regler ausgleichen. >Kannst Du mir das genauer ausführen? Hab ich das nicht schon? Du braucht einen Regelkreis, der die beiden Servoströme angleicht, die Differenz auf 0 regelt. Wenn einer mehr als der andere zieht, wird dessen Sollwert reduziert und anders herum. >Ich verwende eine 'servo ease' library, welche die Servos schon sehr >langsam drehen lässt (ca. 2 Sekunden von Pos - Pos [daher ist auch die >Kraft nötig]) Bestenfalls kann man noch über die Idee des gemeinsamen Potis nachdenken, wenn du das machen willst. Dazu mußt du aber die Servos aufschrauben und dranrumfummeln. Das ist nicht jedermans Sache. Die Reglung der Servoströme ist mal eine schöne Nebenaufgabe.
Philipp G. schrieb: > Das ist korrekt, es sind brushless Motoren, oder halt drei Phasen > Assynchron Motoren ;) OK also Servoelektronik beibehalten. :-( Beide Servos mit einem Poti anzusteuern, wenn die nicht exakt baugleich sind, hat man dasselbe Problem. HMMMMMMMMMMM, um das 2. Servo nach Stillstand auf minimalen Stromverbrauch zu stellen braucht man aber ein Signal, das die Richtung beinhaltet, nur der Stromverbrauch des Servos reicht nicht. Vertrackte Situation, im Moment fehlt mir eine Idee. wendelsberg
Falk B. schrieb: > Du braucht einen Regelkreis, der die beiden > Servoströme angleicht, die Differenz auf 0 regelt. Wenn einer mehr als > der andere zieht, wird dessen Sollwert reduziert und anders herum. Nein klappt nicht, das kann auch zur Erhoehung des Stroms fuehren, wenn die Richtung falsch ist. wendelsberg
Hallo Philipp, ich kann mir den Aufbau nicht wirklich vorstellen...würde aber grundsätzlich versuchen, das mit nur einem Servo zu lösen. Vielleicht kannst du ja mal ein Bild hochladen. Danke und Gruß, Rainer
@wendelsberg (Gast) >Beide Servos mit einem Poti anzusteuern, wenn die nicht exakt baugleich >sind, hat man dasselbe Problem. Nein, hat es nicht, denn die regeln BEIDE solange, bis Soll==Ist ist. Der IST-Wert ist gleich, der Sollwert auch, wenn sie digital und gleich kalibiert sind. Bei analogen kommt auch beim Sollwert wieder ein Fehler rein, der das Grundprinzip aushebelt. >Stromverbrauch zu stellen braucht man aber ein Signal, das die Richtung >beinhaltet, nur der Stromverbrauch des Servos reicht nicht. Man muss beide messen.
@ wendelsberg (Gast) >> Du braucht einen Regelkreis, der die beiden >> Servoströme angleicht, die Differenz auf 0 regelt. Wenn einer mehr als >> der andere zieht, wird dessen Sollwert reduziert und anders herum. >Nein klappt nicht, das kann auch zur Erhoehung des Stroms fuehren, wenn >die Richtung falsch ist. Glaub ich so spontan nicht.
Falk B. schrieb: >>Nein klappt nicht, das kann auch zur Erhoehung des Stroms fuehren, wenn >>die Richtung falsch ist. > > Glaub ich so spontan nicht. ??? Mal angenommen Servo2 ist zu weit und zieht zuviel Strom - Sollwert etwas verringern - OK. Mal angenommen Servo2 ist nicht weit genung und zieht zuviel Strom - Sollwert etwas verringern - Strom steigt weiter. wendelsberg
wendelsberg schrieb: > Mal angenommen Servo2 ist nicht weit genung und zieht zuviel Strom - > Sollwert etwas verringern - Strom steigt weiter. Es muss eben der Sollwert in die Richtung verändert werden, wo der Strom sinkt.
sumo schrieb: > wendelsberg schrieb: >> Mal angenommen Servo2 ist nicht weit genung und zieht zuviel Strom - >> Sollwert etwas verringern - Strom steigt weiter. > > Es muss eben der Sollwert in die Richtung verändert werden, wo der Strom > sinkt. was aber nicht ganz trivial ist.
sumo schrieb: > Es muss eben der Sollwert in die Richtung verändert werden, wo der Strom > sinkt. Stimmt. Aber ohne die fehlende Richtungsinformation bleibt da nur "ausprobieren" - eines Technikers unwuerdig. wendelsberg
wendelsberg schrieb: > Stimmt. Aber ohne die fehlende Richtungsinformation bleibt da nur > "ausprobieren" - eines Technikers unwuerdig. nicht nur unwürdig - je nach (dynamischer) Belastungssituation kann das fast unmöglich sein. Deswegen gefällt mir die Lösung von Stefan eigentlich am Besten: Stefan K schrieb: > Ohne den genauen mechanischen Aufbau und die Anforderungen zu kennen > würde ich eine Lösung vorschlagen, wie sie sich im Modellbau bewährt > hat: > > das eine Servo bewegt eine Ende eines Hebelarms, > das andere Servo das andere Ende dieses Hebelarms. > In der Mitte des Hebels wird die Last angekoppelt. > > Das lässt sich sinngemäß auch für Drehbewegungen bauen.
@ Michael Reinelt (fisa) >nicht nur unwürdig - je nach (dynamischer) Belastungssituation kann das >fast unmöglich sein. Wer sagt denn, daß das alles hochdynamisch ist? Malt doch mal nicht immer gleich den Teufel an die Wand! >Deswegen gefällt mir die Lösung von Stefan eigentlich am Besten: >> Das lässt sich sinngemäß auch für Drehbewegungen bauen. Nennt sich Differentialgetriebe, ist aber deutlich aufwändiger als eine einfache Kupplung.
Falk B. schrieb: > Nennt sich Differentialgetriebe, ist aber deutlich aufwändiger als eine > einfache Kupplung. Muss es nicht - die Servohörner um 180° versetzt montieren, und die Spitze des Horns (aber nur die Spitze - nicht das Zentrum) ebenfalls in zwei entsprechend versetzte Bohrungen des Alu-Blocks befestigen.
@Michael Reinelt (fisa) >> Nennt sich Differentialgetriebe, ist aber deutlich aufwändiger als eine >> einfache Kupplung. >Muss es nicht - die Servohörner um 180° versetzt montieren, und die >Spitze des Horns (aber nur die Spitze - nicht das Zentrum) ebenfalls in >zwei entsprechend versetzte Bohrungen des Alu-Blocks befestigen. [ ] Du hast Ahnung von Mechanik.
Auch wenns der TO nicht hören will: Sinnvoll wäre einen doppelt so starken Servo zu benutzen. Oder sich die ganze Mechanik des TOs mal anschauen. Das klingt mal wieder stark nach einer suboptimalen Lösung die man jetzt auf Biegen und Brechen irgenwie hinfriemeln will.
@Der Andere (Gast) >Sinnvoll wäre einen doppelt so starken Servo zu benutzen. Wenn der aber nicht verfügbar ist, hat man ein Problem. Natürlich ist die Symmetrierung von Antrieben ebenso wie von elektrischen Schaltern wie MOSFETs, Relais etc. immer ein Problem. Es kostet Aufwand. Und meistens ist die Gesamtbelastbarkeit KLEINER als die Summe der Einzelelemente. >Oder sich die ganze Mechanik des TOs mal anschauen. Das klingt mal >wieder stark nach einer suboptimalen Lösung die man jetzt auf Biegen und >Brechen irgenwie hinfriemeln will. Kann sein, muß nicht. Im einfachsten Fall braucht man die doppelte Hebelübersetzung. Dann ist es zwar nur noch halb so schnell, dafür reicht aber ein Servo. Ob das im Gesamptpaket akzeptabel ist, muss geklärt werden.
Falk B. schrieb: > Kann sein, muß nicht. Logisch ist das Spekulation, aber für mich klingt das wieder nach: Die vermeintliche Lösung beschrieben statt dem eigentlichen Problem. Ansonsten braucht man einen Regelkreis mit einer Istwerterfassung und Sollwertberechnung und muss dann beim 2. Servo dort steuern, wo eine Drehzahl oder ein Drehmoment vorgegeben wird. Bei DC Motoren und PWM wäre das einfach.
Prinzipiell würde ich sagen: "Das ist nicht möglich". Üblicherweise ist ein Servo eine Black Box. "In" die Box schickst Du einen Positionswert, Drehwinkel oder Ähnliches. Ob eine Digital übertragene Zahl oder ein Analogwert oder die Breite des Pulses, ist dabei egal. Die Black Box "betrachtet" dann ihre interne Positionsreferenz - fast immer ein Potentiometer - und richtet sich danach aus. Hier ist dann auch der Hund begraben. Die Positionsreferenzen sind, vor allem bei "günstigen" Systemen, mit richtig großen, absoluten Abweichungen versehen. Bei Potentiometern: Der Absolutwert, der Linearitätsfehler und ein, durch den Einbau bedingter, absoluter Versatz. Ein weiterer Pferdefuß liegt in der Referenzermittlung. Auch ein 100%-tig, genauer PWM-Wert will interpretiert werden. Eine Position als Zahl, will meist als Analogwert zum Vergleich herangezogen werden. Und, und, und. Das heißt, schon in der Erkennung der Sollposition sind ein paar Fehler möglich. Dann sind noch mechanische Toleranzen, in Lagern und Getrieben möglich. Fazit: Das einzige, was ich als sinnvoll erachte ist eine möglichst genaue Soll- Ist-Positionsmessung. Hierbei wird dann letztendlich eine Formel oder eine Tabelle mit Korrekturfaktoren angelegt. Servo_1 fährt dann z.B. auf 30° während Servo_2 auf 29.9° Fährt. Ganz genau wird das Ganze dann doch wieder nicht, weil immer noch kleine Differenzen bleiben und, an dieser Stelle, die nicht genau definierte interne Regelung ins Spiel kommt. Worst case: Kleine Differenz = Große Stromaufnahme. Den Weg über die "Reststromaufnahme" halte ich für Problematisch. Dadurch, dass fast immer eine H-Brücke im System ist, kann man zwar einen "Korrekturfaktor", aus der Stromaufnahme ermitteln, aber ohne eine Ahnung, von der Richtung, sieht es dunkel aus.
:
Bearbeitet durch User
Ich würde das auch über Stromregelung machen. Für Servos eine bestimmte Winkelgeschwindigkeit vorgeben und Servo 2 so regeln, dass Strom immer möglichst gleich ist. Wenn Strom von Servo 1 trotz Korrektur ansteigt, ist wohl die Drehrichtung falsch. mfg
Ich vergaß!
Viele der hier vorgeschlagenen Lösungen "klingen" recht gut!
... aber sie bedingen einen, z. T. weitreichenden, Eingriff in die
vorhandenen Servos.
Etwas was ich - vor allem wegen fehlender Unterlagen, und Gewährleistung
- ausgeschlossen habe.
Wie z.B. Felix F.
>Ich würde das auch über Stromregelung machen.
Falk B. schrieb: > [ ] Du hast Ahnung von Mechanik. Sicher nicht so viel wie du ;-) im Modellbau verwendet man nunmal oft solche "mechanischen" Lösungen, auch für ähnliche Probleme: An den Rudern eines größeren Kunstflug-Modells (>3m Spannweite, >20 kg, extrem übermotorisiert) hast du auch Kräfte, die ein Servo allein nicht mehr (verläßlich) schafft. Von daher ist "Servo-Knurren" und die Beseitigung desselben nichts wirklich neues...
Ok, jetzt sind einige ein bisschen übers Ziel hinausgeschossen. Aber zuerst mal zu Dir @Falk: >Weil die die Last gleichmäßig auf beide verteilen willst. Du willst ja >nicht den Strom eines Servos auf Null regeln, während der andere, der >nicht gemessen wird, wie blöde ackern muss. Und du weißt u.a. nicht >vorher, welcher durch die mechanische Unsymmetrie der höher belastete >ist. Nun, die Last ist immer auf beiden gleichmässig verteilt, da sich die mechanische Unsymmetrie sich auf beide auswirkt. Ich mach jetzt mal ein (Beispiel!) Bild damit sich jeder etwas vorstellen kann (Bild: Servo_coupling). Also: grün - zwei identische Servos orange - Aluminium 20mm, kraftschlüssig verbaut auf beide Achsen rot - 6mm Plexiglas So, nun stellen wir das ganze auf eine ebene Fläche, kalibrieren die Naben, hängen den AVR daran und lassen (orange) jeweils 90° vor- und zurück drehen. Das geht in beiden Richtungen. Sobald wir jedoch ein Ende von (rot) in die Luft heben, werden die Servos knurren, und zwar beide, weil beide versuchen die Soll Position wieder zu erreichen. Weitere Anforderungen: - Ausserhalb rot habe ich keinen Platz - Bauhöhe max ist die die max. Höhe der Servos (20mm) - Die Verwindungssteifigkeit von (rot) dermassen zu erhöhen das kein Verzug mehr möglich ist, stünde in keinem Verhältnis was ich mit dem AVR mit ein paar Zeilen Code machen kann - Ob die Endposition 89° oder 91° erreich ist in der Toleranz Mögliche Lösungen: 1)Da ist mir zwischenzeitlich was neues in den Sinn gekommen, probiere ich am Abend. Position anfahren, 100ms waren, dann PWM Signal auf Servo a abschalten, das andere kann dann drehen, muss jedoch genug Kraft haben sich durch das Servogetriebe von Servo b zu würgen. 2)Strom messen von einem Servo. Dummy Code iCurrent = 0; iPrevCurrent = 0; iMaxCurrent = 20; // mA i = 0; if EndposReached = true iPrevCurrent = iCurrent for i = 0 to 10 i++ if iPrevCurrent > iCurrent Servopos = Servopos + 1 end if iCurrent = Getcurrent(Servo(a)) if iCurrent <= iMaxCurrent exit for end if iPrevCurrent = iCurrent next end if .. und dann dasselbe in die andere Richtung mit einem Statusflag und einem Zähler. 3) Nächster Vorschlag von euch wäre nun ein Poti zu verwenden. 1) PWM Signal von Servo(a) nach Endposition erreich abschalten 2) Strommessung durch Coding 3) Nur ein Poti verwenden 4) ?? Gruss, Philipp
Mit beiden Servos die Sollposition anfahren. Bei erreichen der Sollposition 1 Servo abschalten. Das funktioniert nicht? mfg
@ Philipp Geiser (geiserp01) >Nun, die Last ist immer auf beiden gleichmässig verteilt, Das glaube ich nicht so ganz. >Sobald wir jedoch ein Ende von (rot) in die Luft heben, werden die >Servos knurren, und zwar beide, weil beide versuchen die Soll Position >wieder zu erreichen. Komisches Beispiel. >- Bauhöhe max ist die die max. Höhe der Servos (20mm) Dann brauchst du ein Planetendifferential mit 20mm Durchmesser und 350Ncm Drehmoment. Gib es sowas? Was kostet das? >- Die Verwindungssteifigkeit von (rot) dermassen zu erhöhen das kein >Verzug mehr möglich ist, stünde in keinem Verhältnis was ich mit dem AVR >mit ein paar Zeilen Code machen kann Vielleicht aber anders herum? Eine schwimmende Lagerung der Servos, sodaß sich der Verzug automatisch ausgleicht? So wie bei einer klassischen Felgenbremse? >Position anfahren, 100ms waren, dann PWM Signal auf Servo a abschalten, >das andere kann dann drehen, muss jedoch genug Kraft haben sich durch >das Servogetriebe von Servo b zu würgen. Klingt nicht gut. Ist so auch nicht nötig. Ich vermute mal, daß die Last immer nur in einer Drehrichtung wirkt. Damit hast du eine 1 Quadratenregelung. Das vereinfacht vieles. Damit ist auch die Balancierung der Servoströme leicht, wie ich es schon beschrieben habe. Der Servo-Stellwert wird mit dem überlagerten Balanceregler korrigiert und geht dann auf die PWM deines uCs. Und dieser Regler ist IMMER aktiv. Dabei reicht es, wenn der mit ca. 50 Hz läuft, denn öfter werden auch die Servopulse nicht generiert. Im Idealfall läuft er synchron zur Servopulserzeugeung.
@ Felix F. (wiesel8) >Mit beiden Servos die Sollposition anfahren. Bei erreichen der >Sollposition 1 Servo abschalten. Das funktioniert nicht? Dann müßte in der Sollposition das Lastmoment kleiner sein als das Drehmoment eines Servos. Aber der OP hat ja extra 2 Servos, um ein sehr großes Moment zu erzeugen.
>Sobald wir jedoch ein Ende von (rot) in die Luft heben, werden die >Servos knurren, und zwar beide, weil beide versuchen die Soll Position >wieder zu erreichen. Dieser Fall lässt sogar "echt" gleichlaufende Servos alt aussehen. Um das zu "regeln" müsstest Du den Hebewinkel erfassen und als Korrekturfaktor verwenden. Selbst bei 100%-tig korrekten Servos könnte hier Servo_1 = 30° und Servo_2 = 32°, korrekt sein. Kein Problem bei einem tiefen Eingriff in die Elektronik der beiden Servos, einer Erfassung der "Hebewinkel" mit Regelung der Positionsvorgaben oder der neuen, hellseherisch veranlagten Steuerung von der Firma IxYpsilonZett & Sohn. Vielleicht liefert der TO ja noch ein paar Bedingungen nach, die natürlich alle erfüllt werden sollen.
Philipp G. schrieb: > orange - Aluminium 20mm, kraftschlüssig verbaut auf beide Achsen > rot - 6mm Plexiglas Bis auf eine Mechanik, die im Inneren eines als Rohr ausgefuehrten "orange" eingebaut wird, faellt mir dazu nichts ein, was nicht zusaetzliche Sensorik oder Eingriffe in die Servos erfordert. Aber eine Walze, die gradgenau positioniert werden soll und dann auch noch 70 kg am Umfang ziehen koennen muss, bringt fuer mich auch nur Fragezeichen hervor. Was genau soll das werden? wendelsberg
Sebastian S. schrieb: > Vielleicht liefert der TO ja noch ein paar Bedingungen nach, die > natürlich alle erfüllt werden sollen. Gerne. die untere Platte (rot) gibt es zweimal, einmal unter dem Servos und einmal oberhalb der Servos. An Alu (orange) ist ein Display angeflanscht, welches die gesamte Breite von (orange) ausnutzt, sowie auch die maximal verfügbare Länge. Das Display ist fester Bestandteil von (orange). Im Display sind PCBs verbaut, also eine Blackbox die sich nicht verändern lässt. Sonst wäre es am einfachsten, wie @falk schrieb, ganz einfach ein Diff einzubauen. Der Platz steht mir nicht zur Verfügung. Die maximale Last haben die Servos, wenn diese das Display von liegender Position auf 90° stellen (linear zum Winkel abnehmend). Sebastian S. schrieb: > Kein Problem bei einem tiefen Eingriff in die Elektronik der beiden > Servos, einer Erfassung der "Hebewinkel" mit Regelung der > Positionsvorgaben oder der neuen, hellseherisch veranlagten Steuerung > von der Firma IxYpsilonZett & Sohn. Warum von Zettel Space X & Sohn? Servo a) aufschrauben, Strippe an mittleren Pin von Poti löten. Servo b) aufschrauben, mittlerer Pin trennen und Strippe von a) anlöten. Master Slave. Fertig. Softwaretechnische Lösungen hat ja schon @Falk präsentiert. >Aber eine Walze, die gradgenau positioniert werden soll und dann auch >noch 70 kg am Umfang ziehen koennen muss, bringt fuer mich auch nur >Fragezeichen hervor. Da kommt net Kette dran und dann werde ich damit die Titanic heben. Nein, wie gesagt, die Walze ist in Wirklichkeit ein Display.
:
Bearbeitet durch User
> Servo a) aufschrauben, Strippe an > mittleren Pin von Poti löten. Servo b) aufschrauben, mittlerer Pin > trennen und Strippe von a) anlöten. Master Slave. Fertig. LOL Auch ohne den Aschermittwoch als Ausrede zu nutzen.
@Philipp Geiser (geiserp01) >An Alu (orange) ist ein Display angeflanscht, welches die gesamte Breite >von (orange) ausnutzt, sowie auch die maximal verfügbare Länge. Also ein drehbares Display. Und wegen maximal schlechter Mechanik braucht man dort immenses Drehmoment. Finde den Fehler. Klingt so, als ob die Drehachse am Rand des Displays liegt und das Ding 80 Zoll hat ;-) Wenn es der Platz erlaubt, könnte man das Drehmoment mit einem Gegengewicht deutlich reduzieren. Ist halt nicht so sexy und deutlich größer.
:
Bearbeitet durch User
Philipp G. schrieb: > Sobald wir jedoch ein Ende von (rot) in die Luft heben, werden die > Servos knurren, und zwar beide, weil beide versuchen die Soll Position > wieder zu erreichen. Und welches Verhalten erwartest du von deinem Display? rot verdreht sich im 2°... Display 1°, oder schlicht egal? wer hebt überhaupt rot an? Kann man den eliminieren? ;-)
Falk B. schrieb: > Also ein drehbares Display. > > Und wegen maximal schlechter Mechanik braucht man dort immenses > Drehmoment. Finde den Fehler. Klingt so, als ob die Drehachse am Rand > des Displays liegt und das Ding 80 Zoll hat ;-) > > Wenn es der Platz erlaubt, könnte man das Drehmoment mit einem > Gegengewicht deutlich reduzieren. Ist halt nicht so sexy und deutlich > größer. Das ist völlig korrekt @Falk. Gegengewicht wäre ein möglicher Ansatz, aber viel Platz nach hinten ist nicht. Mechanisch optimal wären die Servos im Schwerpunkt vom Display angebracht, nun würde man dann dummerweise auch nur die Hälfte vom Display sehen. Michael R. schrieb: > Und welches Verhalten erwartest du von deinem Display? rot verdreht sich > im 2°... Display 1°, oder schlicht egal? Nun, wie erwähnt, ob Display 'ausgefahren' nun 89° oder 92° hat, das ist vernachlässigbar. Michael R. schrieb: > wer hebt überhaupt rot an? Kann man den eliminieren? ;-) Hm, der gute alte Newton halt. :) Konkret: Es sind vor allem thermische Einflüsse die rot anheben. rot ist in Tat und Wahrheit 2.5mm ABS Kunststoff. Ich kann in der Anwendung den 2.5mm Kunststoff weder verstärken noch garantieren, dass der Untergrund immer eben sein wird. Es geht hier auch nicht im Meter, ich habe bei Experimenten festgestellt, dass nur ein halber mm reicht um das Knurren hervorzurufen.
:
Bearbeitet durch User
Na dann bau die Regelung der Servoströme. Kostet kaum Hardware (2 Shunts, 1x Doppel-OPV) und nur bissel Software und Hirnschmalz. Die Regelung kann man ggf. sogar beim Positionswechsel inaktiv schalten und nur in der Endlage aktivieren.
Kann man evtl. ein Servo durch einen Kraftspeicher ersetzen (vulgo: Feder)? So bemessen, dass das Ein-/Ausklappen im Wesentlichen durch diese Feder passiert und der verbliebene Servo nur die Geschwindigkeit steuert, mit der das passiert? Ahoi, Martin
Das versuch ich @Falk. @docmartin: Eine Torsionsfeder? Ja, das würde der Bauraum zulassen.
Hallo! Hab' nicht alles durchgelesen, aber wie wäre es mit einer Schenkelfeder an der Welle zur Entlastung und nur 1 Servo? Max. Vorspannung bei liegendem Display bis 0 Vorspannung bei stehendem Display? Beispiel: https://www.federnshop.com/de/produkte/schenkelfedern.html MfG
Einen Servo mit soviel Spiel einbauen oder ankoppeln das der maximale Fehler ausgeglichen wird. Der zweite Servo unterstützt nur beim Drehen.
Falk B. schrieb: > @Philipp Geiser (geiserp01) > >>Warum zwei? Weil ich Drehmoment brauche. Es sind Savöx Full Metal Servos >>mit 350nCm Kraft. > > Was ist nCm für eine Einheit?
1 | 10^-9 Coulomb * Meter |
So schwer ist das doch nicht ;-) Das sollte man eigentlich in der Schule zumindest in Grundzügen mitgekriegt haben. https://de.wikipedia.org/wiki/Vors%C3%A4tze_f%C3%BCr_Ma%C3%9Feinheiten#SI-Pr%C3%A4fixe https://de.wikipedia.org/wiki/Internationales_Einheitensystem#SI-Basiseinheiten https://de.wikipedia.org/wiki/Internationales_Einheitensystem#Abgeleitete_SI-Einheiten_mit_besonderem_Namen
coulumb, ok dank diesem wertvollen Beitrag dürfte das Problem dauerhaft gelöst sein.
Ist das irgendwie sowas: http://c8.alamy.com/compde/k14bd6/in-einem-flugzeuginnen-ein-flugzeug-kabine-mit-monitor-fluglage-karte-anzeige-auf-dem-tv-bildschirm-zeigt-die-position-des-flugzeuges-uberuber-frankreich-k14bd6.jpg
reihaus schrieb: > Einen Servo mit soviel Spiel einbauen oder ankoppeln das > der maximale Fehler ausgeglichen wird. > Der zweite Servo unterstützt nur beim Drehen. Genau so. Und zwar mit einem Schlitz im Mitnehmer. Dann fährt der erste Servo in seine Sollstellung und der 2te kann noch etwas weiter. Beim Zurückfahren gibt es natürlich eine Hysterese, aber die sollte hier nicht weiter stören. Gruß Rainer
Na hoffentlich hat das Display einen Rahmen aus Flugzeug/Weltraum-Titan. Sonst wird der von dem Drehmoment verbogen. Viel Spass noch. wendelsberg
Hi, ohne jetzt das Rad neu erfinden zu wollen. Natürlich kann man durch Strommessung eine Gleichlaufregelung und Lagespielausgleiche programmieren. Anstöße wurden hier zuhauf gegeben und ich bin überzeugt das ist machbar. Wenn aber ein imens hohes Drehmoment selbst im Stillstand zur Lageregelung gebarucht wird, so hab ich im ersten Semester gelernt mit einer mechanischen Bremse zu arbeiten. Ist di zu können die Servos die Arbeit einstellen. Dann kann es maximal während der Bremsenschließzeit und Bremsenöffnungszeit "knurren". Das geht mechanisch nicht bei dir?
> Wenn aber ein imens hohes Drehmoment selbst im > Stillstand zur Lageregelung gebarucht wird, so hab ich im ersten > Semester gelernt mit einer mechanischen Bremse zu arbeiten. Ist di zu > können die Servos die Arbeit einstellen. Dann kann es maximal während > der Bremsenschließzeit und Bremsenöffnungszeit "knurren". Das geht > mechanisch nicht bei dir? Eine mechanische Bremse wäre Overkill. Es ist nicht so, dass es immer knurrt, meist eh nur in einer Richtung. Aber wenn ich schon nen AVR habe warum soll ich dann nicht gleich einen Lagerspielausgleich programmieren? Der kostet ausser ein paar Stunden Hirnschmalz nix.
OK - das funktioniert nun. Habe es auf einem Servo programmiert. Mit dem Drehmoment bin ich aber dennoch hart an der Grenze. Das Display welches ich über die beiden Servos bewege, ist 300g schwer, bei 180 x 105 x 40mm. Jetzt denkt ihr wohl, spinnt der? Das ganze tam tam für so ein mickriges Ding. Das Problem ist, dass die Kraft beim maximaler Stellzeit angegeben ist. Ich lasse das Display per Software langsam beschleunigen, bewege es, und bremse vor Anschlag wieder ab. Die Bewegung soll möglichst flüssig und harmonisch aussehen. Wenn ich das ganze auf 3000ms time fehlt den Servos die Kraft - selbst für das mickrige Ding. Bei 2500 geht es ganz gut.
@ Philipp Geiser (geiserp01) >OK - das funktioniert nun. Habe es auf einem Servo programmiert. Was hast du denn GENAU gemacht? >Mit dem Drehmoment bin ich aber dennoch hart an der Grenze. Das Display >welches ich über die beiden Servos bewege, ist 300g schwer, bei 180 x >105 x 40mm. >Jetzt denkt ihr wohl, spinnt der? Das ganze tam tam für so ein mickriges >Ding. In der Tat. 2x34Nm für ein 300g Display ist irgendwie ein ziemliches Mißverhältnis. Ich nehme mal an, daß die 105mm die Höhe sind und auch in der Ebene die Drehachse liegt. Sprich, die 300g greifen im Schwerpunkt bei ca. 0,05m an. Macht 3N * 0,05m = 0,15 Nm. Das ist eine ganz andere Liga. Warum brauchst du 2x34Nm? Da stimmt irgend was nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.