Warum Closed Loop wenn man auch Servos haben kann....

Motioncontroller, Endstufen, mechanische/induktive Endschalter etc.
jpk
Beiträge: 24
Registriert: 11.05.2018, 18:16

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von jpk » 07.12.2018, 10:34

Stud54 hat geschrieben:
06.12.2018, 18:34
Schau mal....ob dein Riemen immer und überall parallel zu deiner Führung läuft oder ob er irgendwo einen Winkel beschreibt.
Ja, ist parallel: aber wie hängt das mit dem Problem zusammen, dass die Motoren sich gegenseitig in den Alarm regeln?
django013 hat geschrieben:
07.12.2018, 08:31
Dort sieht man sehr deutlich, dass der passiver Riemen heftigst durchhängt.
Habe nachgemessen, an der am stärksten durchhängenden Stelle sind es 1.35mm, die er tiefer hängt als er sollte. Ich kann den Riemen stärker spannen, das Durchhängen wird aber nie völlig verschwinden, dazu ist die Strecke zu lang und der Riemen zu schwer...
django013 hat geschrieben:
07.12.2018, 08:31
Die Durchhängung bei Eurem Versuch zeigt, dass Ihr entweder den Riemen nicht richtig gespannt habt, oder aber dass die Trägheitskraft deutlich höher ist, als veranschlagt.
Ich verstehe noch nicht ganz, wie diese Dinge damit zusammen hängen, dass die Motoren sich gegenseitig in den Alarm regeln? Ich dachte, das wäre ein reines Problem der Parametrisierung der Motoren und hat im Grunde nichts damit zu tun, ob die beiden Motoren nun über einen durchhängenden oder einen geraden Riemen miteinander verbunden sind...?

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von django013 » 07.12.2018, 11:20

Moin Fremdling,
Habe nachgemessen, an der am stärksten durchhängenden Stelle sind es 1.35mm, die er tiefer hängt als er sollte.
nachmessen kannst Du ja nur statisch. Im Video sieht es stärker aus. Keine Ahnung, ob ich 1mm Durchhängung bei den Proportionen sehen würde. Kann ich mir schlecht vorstellen.
Ich verstehe noch nicht ganz, wie diese Dinge damit zusammen hängen, dass die Motoren sich gegenseitig in den Alarm regeln?
Na, Du hast jetzt 2 Encoder auf einem Zahnriemen. Das ist "überbestimmt".
Jeder Motor mit Encoder-Regelung ist ein hochdynamisches System, das durch kleinste Fehler zum Schwingen kommen kann.
Im Betrieb ist soviel Dehnung im Zahnriemen, dass jeder Motor machen kann, was er will. Wenn das System zur Ruhe kommt, geht die Dehnung im Riemen zurück und das könnte dazu führen, dass einer der Motoren eine Position anfahren will, für die er jetzt keine Kraft mehr hat (ein Servo hat mehr Kraft bei höheren Geschwindigkeiten, ein Stepper hat sein Kraftmaximum im Stillstand). Das bedeutet, einer der Servos wird in eine fehlerhafte Position gezwungen - ergo geht der Treiber in Fehler.
Für mich völlig logisch :)

Deshalb wäre mein Ansatz: einen Encoder aus dem System zu entfernen und den zweiten Motor mit dem Encoder des ersten zu regeln. Damit wären die Signale wieder eindeutig und es könnte weder im Betrieb noch im Stillstand zum Fehler kommen.
Noch besser würde ich ein System finden, bei dem beide Motoren auf die gleiche Achse wirken (z.B. durch zwei Kupplungen). Den Encoder würde ich dann auch mit der Achse verbinden. Somit würde sich eine hohe Dynamik ergeben, ohne das System zu überbestimmen.
Bei den gewünschten Beschleunigungen könnte man die Umschlingung des Antriebszahnrades noch durch eine zusätzliche Andruckrolle vergrößern. Das würde die Zähne schonen.

Gruß Reinhard

jpk
Beiträge: 24
Registriert: 11.05.2018, 18:16

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von jpk » 07.12.2018, 15:35

django013 hat geschrieben:
07.12.2018, 11:20
Moin Fremdling
Nennt mich einfach "Jascha" 8-)
(Dein Name gefällt mir - ich bin auch Musiker...)
django013 hat geschrieben:
07.12.2018, 11:20
Im Betrieb ist soviel Dehnung im Zahnriemen, dass jeder Motor machen kann, was er will. Wenn das System zur Ruhe kommt, geht die Dehnung im Riemen zurück und das könnte dazu führen, dass einer der Motoren eine Position anfahren will, für die er jetzt keine Kraft mehr hat (ein Servo hat mehr Kraft bei höheren Geschwindigkeiten, ein Stepper hat sein Kraftmaximum im Stillstand). Das bedeutet, einer der Servos wird in eine fehlerhafte Position gezwungen - ergo geht der Treiber in Fehler.
Für mich völlig logisch :)
Für mich nicht :? , obwohl ich Deinem Gedanken gut folgen kann... Aber nehmen wir mal folgenden Ablauf an: Systemstart (beide Motoren sind "zufrieden"), dann fährt jeder Motor mit eigenem Regler dieselbe Anzahl an Schritten (ich steuere sie mit PULS/DIR an), wobei sich der Riemen dehnt (Stichwort Trägheit usw.) und jeder Motor das nach eigenem Ermessen versucht, aus zu regulieren. Dann: erneut Stillstand, der Riemen verliert seine Dehnung (genau wie von Dir beschrieben). Da beide Motoren exakt dieselbe Anzahl an Schritten gefahren sind, befindet sich nun der Riemen genau im selben Zustand wie zu Beginn, nur ein paar Zähne weiter transportiert. Wenn mein Gedankengang stimmt, verstehe ich nicht, woher nun eine Rest-Spannung im Riemen kommen soll, die einen der Motoren in eine falsche Position zwingt: das würde ja bedeuten, dass Schrittverluste aufgetreten sein müssen, und im Monitor der Parametrier-Software würde ich das dann sehen, oder liege ich falsch?
django013 hat geschrieben:
07.12.2018, 11:20
Deshalb wäre mein Ansatz: einen Encoder aus dem System zu entfernen und den zweiten Motor mit dem Encoder des ersten zu regeln.
Leuchtet mir sehr ein: diese Möglichkeit merke ich mir auf jeden Fall vor.
django013 hat geschrieben:
07.12.2018, 11:20
Bei den gewünschten Beschleunigungen könnte man die Umschlingung des Antriebszahnrades noch durch eine zusätzliche Andruckrolle vergrößern. Das würde die Zähne schonen.
Sieht man im Video schlecht, ist aber so gelöst wie auf diesem Diagramm:
Riemenführung.jpg

Stud54
Beiträge: 831
Registriert: 15.02.2018, 16:19

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von Stud54 » 07.12.2018, 15:44

Du lebst aber in deiner Beschreibung in der perfekten Welt, wo es keine Wärmeausdehnung gibt, es keine Schleppfehler gibt, Riemenräder exact rund laufen und alles schön rosarot ist...:)

Fakt ist doch...2 Motoren gekoppelt sind eigentlich kein Ding, 2 Meßsysteme hingegen schon.

Wenn es so einfach wäre, dann müsste man im Maschinenbau, besonders bei Gantrysystemen, nicht so nen riesen Aufwand betreiben. Da gibt es nämlich immer einen Master, dem der Slave folgt.
Das Meßsystem des Masters gibt die Position vor, der andere Motor folgt nur. Dessen Meßsystem dient nur der Kontrolle und nicht der Positionsregelung.

Mein Tipp....bau dir nen 400W JMC an eine Seite und gut ist.

Gruß

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von django013 » 07.12.2018, 16:45

Moin Jascha,

whow - den Namen höre ich zum ersten Mal :)
ich bin auch Musiker...
In jungen Jahren habe ich die Saiten gestrichen, gezupft und geschlagen, inzwischen spiele ich nur noch Radio ;)

Wenn Du aus dem benachbarten Ausland kommst, dann habe ich schon früh von Eurem Projekt gehört. Bin erstaunt, dass es noch läuft, aber wie heißt es so schön: gut Ding will Weile haben :)
Für mich nicht :? , obwohl ich Deinem Gedanken gut folgen kann... Aber nehmen wir mal folgenden Ablauf an: Systemstart (beide Motoren sind "zufrieden"), dann fährt jeder Motor mit eigenem Regler dieselbe Anzahl an Schritten (ich steuere sie mit PULS/DIR an), wobei sich der Riemen dehnt (Stichwort Trägheit usw.) und jeder Motor das nach eigenem Ermessen versucht, aus zu regulieren. Dann: erneut Stillstand, der Riemen verliert seine Dehnung (genau wie von Dir beschrieben). Da beide Motoren exakt dieselbe Anzahl an Schritten gefahren sind, befindet sich nun der Riemen genau im selben Zustand wie zu Beginn, nur ein paar Zähne weiter transportiert.
Auch wenn es sich nach perfekter Welt anhört, bei dem Tempo, das die Motoren an den Tag legen, könnte ich mir schon vorstellen, dass der Riemen alleine durch die Dehnung erwärmt wird. Je nachdem welchen Encoder Ihr habt, bzw. mit welcher Auflösung Ihr fahrt, kann die Temperaturänderung schon zu einer Längenänderung führen, die zur Folge hat, dass nicht mehr die gleichen Schritte zum Stillstand angefahren werden.

Abgesehen davon ist mir noch ein zweiter Umstand aufgefallen (in Deinem ersten Beitrag):
Du schreibst davon, dass Du einen 74HCT125 einsetzt - vermutlich um die Schrittpulse zu duplizieren. Leider haben die 125er keine exakte Schaltflanke, was durchaus zu unterschiedlichen Schritten (zeitlich gesehen) führen kann.
Besser wäre der Einsatz eines 74VHC04 - der hat definierte Schaltflanken (Schmitttrigger) und wird erfolgreich zur Systemtakterzeugung bei hochwertigen Audio-Samplern o.ä. eingesetzt.
Schaltung ungefär so, dass das Schrittsignal auf einen Eingang gelegt wird und dessen Ausgang auf zwei weitere Eingänge (desselben Chips) gelegt wird. Dann hat jeder Stepper einen eigenen Treiber und es ist gewährleistet, dass die Pulse zeitgleich erfolgen.
Sieht man im Video schlecht, ist aber so gelöst wie auf diesem Diagramm
Auch wenn es nur eine minimale Änderung ist, ich würde die Andruckrolle zwischen Wagen und Servo entfernen. Dafür die andere Andruckrolle höher ziehen. Wenn man das auf beiden Seiten macht, ist schon die zu beschleunigende Masse reduziert worden.
Wie gesagt, wenn der Riemen sich beim Beschleunigen längt (also mehr durchhängt) dann ist er zu schwach ausgelegt worden. Euer Projekt dürfte auch für Riemenhersteller wie Conti oder Optibelt interessant sein. Wendet Euch doch mal an die Hersteller. Vielleicht gibt es Unterstützung?
Es gibt auch spezielle Riemen gerade für hochdynamische Anwendungen. Das wisst Ihr vermutlich aber schon.

Bei der Umstellung auf eine Antriebachse könnte man das Zahnriemenrad noch vergrößern. Evtl. größer als das, was es zu kaufen gibt. In der Dingsbums-Welt gibt es nette Generatoren, die ganz gut funktionieren. Habe damit schon etliche Zahnriemenräder gedruckt. Gibt auch neuere Generatoren. Einfach mal nach "parametric pulley" suchen.
Mit den erzeugten STLs könnte man sich auch Zahnriemenräder aus Metall erstellen, oder aus CFK fräsen lassen :D

Was die Frage der Leistung der Motoren angeht: Du schriebst, dass Du 3 Größen gekauft hast. Weiß jetzt nicht, welche bei dem Test im Einsatz sind, ob Du evtl. schon welche mit 400W hast?
Bei den größeren Motoren steigt ja nicht nur die Leistung, sondern auch das Trägheitsgewicht des Rotors. Gilt also sorgsam abzuwägen, was Sinn macht. Könnte also durchaus sein, dass zwei kleinere mehr Schmackes auf die Welle bringen, als ein großer ;)

Gruß Reinhard

jpk
Beiträge: 24
Registriert: 11.05.2018, 18:16

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von jpk » 08.12.2018, 01:11

django013 hat geschrieben:
07.12.2018, 16:45
Wenn Du aus dem benachbarten Ausland kommst, dann habe ich schon früh von Eurem Projekt gehört. Bin erstaunt, dass es noch läuft, aber wie heißt es so schön: gut Ding will Weile haben :)
:dh
django013 hat geschrieben:
07.12.2018, 16:45
Du schreibst davon, dass Du einen 74HCT125 einsetzt - vermutlich um die Schrittpulse zu duplizieren.
Nein, nur als Leitungspuffer, um die Pulse über die Leitungen bis zu den Eingängen der Servos zu übertragen. Die Pulse generiere ich mit einer Library namens TeensyStep auf einem Teensy3.6, die kommen zeitgleich von den Pins des Teensy zum HCT125 (für jedes Signal separat) und von dort weiter zu den Endstufen (im Fall der iHSV57 zu den integrierten Endstufen). Soweit ich beurteilen kann (u.a. mit meinem 4kanal Oszi), klappt diesbezüglich alles einwandfrei: die Signale gehen zeitgleich raus, haben maximal 52kHz und werden auch richtig erkannt - Probleme mit mehrdeutigen Flanken sind mir bisher keine aufgefallen, werde aber nochmal auf die Jagt gehen.
django013 hat geschrieben:
07.12.2018, 16:45
Auch wenn es nur eine minimale Änderung ist, ich würde die Andruckrolle zwischen Wagen und Servo entfernen. Dafür die andere Andruckrolle höher ziehen. Wenn man das auf beiden Seiten macht, ist schon die zu beschleunigende Masse reduziert worden.
Danke für den Tipp, werde ihn beherzigen!
django013 hat geschrieben:
07.12.2018, 16:45
Was die Frage der Leistung der Motoren angeht: Du schriebst, dass Du 3 Größen gekauft hast. Weiß jetzt nicht, welche bei dem Test im Einsatz sind, ob Du evtl. schon welche mit 400W hast? Bei den größeren Motoren steigt ja nicht nur die Leistung, sondern auch das Trägheitsgewicht des Rotors. Gilt also sorgsam abzuwägen, was Sinn macht. Könnte also durchaus sein, dass zwei kleinere mehr Schmackes auf die Welle bringen, als ein großer ;)
Das war einer der Gründe, warum ich 2 kleine Servos vorgesehen habe. Ich habe damals 110W, 140W und 180W bestellt und hier die kleinsten, also 2x 110W verbaut. Das Drehmoment sollte, sofern meine Berechnungen nicht völlig daneben liegen, locker genügen (ich glaube sogar, ich könnte mit einem dieser kleinen Dinger auskommen). Meine damaligen Recherchen hatten ergeben, dass es möglich sein sollte, 2 Servos auf einer Achse laufen zu lassen, insbesondere wenn sie nicht über eine starre mechanische Verbindung miteinander "streiten" können - sofern man sie mit geeigneten Parametern füttert.

Ich glaube, ich werde erstmal folgende Punkte abklären:

* ob ich mit einem Motor auskomme
* Konfiguration der Andruckrollen
* Riemen (Dimensionierung, Spannung, Durchhängen, Dehnung...)
* Störungen auf der Puls-Leitung

Vielen Dank für die wertvollen Hinweise!
Grüße aus dem benachbarten Ausland ;)

KarlG
Site Admin
Beiträge: 4390
Registriert: 22.12.2015, 22:17

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von KarlG » 08.12.2018, 01:15

jpk hat geschrieben:
08.12.2018, 01:11
insbesondere wenn sie nicht über eine starre mechanische Verbindung miteinander "streiten" können
Das "Streiten" wird um so kritischer, je "flexibler" diese Verbindung ist. Die starre Verbindung ist schon nicht einfach, aber alles andere ist schwieriger....

jpk
Beiträge: 24
Registriert: 11.05.2018, 18:16

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von jpk » 09.12.2018, 23:35

KarlG hat geschrieben:
08.12.2018, 01:15
Das "Streiten" wird um so kritischer, je "flexibler" diese Verbindung ist. Die starre Verbindung ist schon nicht einfach, aber alles andere ist schwieriger....
Danke! Verstehe. Ich hatte es umgekehrt in Erinnerung... Worauf kommt es aber generell beim Parametrieren an, wenn man tatsächlich 2 Servos mit eigenen Decodern auf einer (möglichst steifen) Axe hat?

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von django013 » 10.12.2018, 05:08

Worauf kommt es aber generell beim Parametrieren an, wenn man tatsächlich 2 Servos mit eigenen Decodern auf einer (möglichst steifen) Axe hat?
Hm, eigentlich keine Chance! Es gilt wie beim Tanzen: es kann nur einer führen.
Zudem sind Servos hochdynamische Systeme, die sehr schwer (ohne die Hilfe von Autotuning-Software) zu bändigen sind. Zwei Servos mit einem Encoder könnte machbar sein, zwei Servos mit separaten Encodern artet schon eher in Glückssache aus.

Gruß Reinhard

KarlG
Site Admin
Beiträge: 4390
Registriert: 22.12.2015, 22:17

Re: Warum Closed Loop wenn man auch Servos haben kann....

Beitrag von KarlG » 10.12.2018, 08:53

jpk hat geschrieben:
09.12.2018, 23:35
Worauf kommt es aber generell beim Parametrieren an, wenn man tatsächlich 2 Servos mit eigenen Decodern auf einer (möglichst steifen) Axe hat?
Ich würde versuchen, sowas zu vermeiden und es anders lösen...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste