Motorisierter Open-Source-XYZ-Mikromanipulator

Für Microcontroller und sonstige "echte" Technik-Themen, die sonst nichts mit ft zu tun haben
Everything technical that has nothing to do with ft
Forumsregeln
Bitte beachte die Forumsregeln!
atzensepp
Beiträge: 1221
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Motorisierter Open-Source-XYZ-Mikromanipulator

Beitrag von atzensepp » 13 Jun 2026, 17:51

Copilot schlug folgende Lösungen vor:
1. Verstärkungs-Kennfeld: Regelgrößen Kp, Ki, Kd in Abhängigkeit der Sollposition setzen
2. Kaskadierte Regelung mit unterlagerter Stromregelung
3. Vorsteuerung der Federkraft

Ich habe 3 ausprobiert und es funktioniert sehr gut: Die Idee ist, dass man zunächst die Auslenkungen je PWM-Wert ermittelt.
Da der Zusammenhang in erster Näherung linear ist. Rechnet man erst einen groben PWM-Wert aus, und addiert den Output-Wert vom PID-Regler. Da dieser nur eine kleine Korrektur ausgleichen muss, arbeitet man mit kleineren Regler-Werten.

atzensepp
Beiträge: 1221
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Motorisierter Open-Source-XYZ-Mikromanipulator

Beitrag von atzensepp » 14 Jun 2026, 18:09

Exzellente Ergebnisse habe ich jetzt mit einem Lautsprecher erzielt - ja, den hatten wir schon mal:
MM2.JPG
MM2.JPG (157.12 KiB) 731 mal betrachtet
Und in einer Copilot-Session eine optimierte PWM-Ansteuerung (>10 bit) mit fraktionaler PWM (Dithering) via IRQ und Auto-Calibration.
(Man sieht, ich bin der AI nicht grundsätzlich abgeneigt)

Der Lautsprecher (gewissermaßen echte Voice-Coil :) ) hat gegenüber der GeeTech-Voice-Coil den Vorteil, dass er keine Haftreibung hat und deutlich empfindlicher auf PWM bzw. Spannungsänderungen reagiert. Bei der Voice-Coil gibts eine Druckstange, die in einem Loch läuft. Diese Stange verhakt sich schon mal und man muss den PWM-Wert schon um einige Counts erhöhen, um die Coil in Bewegung zu setzen. Wenn sie das dann tut, sorgt ihre Massenträgheit dafür, dass sie etwas überschießt.

Beim Lautsprecher hatte ich mit reiner 10-Bit PWM-Ansteuerung bereits bei einer Wertänderung von 1 eine Änderung der Position um 100-150 Counts. Das ist schon sehr krass. Also Widerstand davor und dieses Dithering.

Für einen Nachbau ist der Lautsprecher deutlich besser geeignet als eine spezielle (teure) Voice-Coil. Und besser funktionierte es auch.


Jetzt könnte man, sofern Interesse besteht, noch Alles etwas "Fischertechnikisieren" und dann kann das jeder nachbauen.
Ach ja, die Linearisierung vom Magnetencoder fehlt noch und ein Detektor für Nullposition.

Was kann man damit machen? Z.B. einen Seismograph

Grüße
Florian

atzensepp
Beiträge: 1221
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Motorisierter Open-Source-XYZ-Mikromanipulator

Beitrag von atzensepp » 21 Jun 2026, 23:22

Inzwischen klappt es sowohl mit der Voice-Coil als auch mit dem Lautsprecher.
Hier eine Treiberschaltung mit Stromregelung über Opamp und n-Kanal Mosfet.
MM3.JPG
MM3.JPG (104.15 KiB) 462 mal betrachtet
Die erste Verstärkerstufe bildet einen Summationsverstärker (Nicht-invertierender Verstärker), der den Sollwert an die zweite Stufe leitet. An der ersten Stufe kann ein Offset addiert werden. Die PWM wird über einen Spannungsteiler eingeleitet.
Wichtig ist hier, dass ein Opamp mit Rail-to-Rail-Fähigkeit eingesetzt wird.
Die zweite Stufe arbeitet als Stromregler: Die Regelspannung wird am Source des Mosfet abgegriffen und dem invertierenden Eingang der zweiten Stufe über einen 220 Ohm Widerstand zugeführt. Steigt nun der Strom durch die Spule, nimmt die Spannung am - Eingang zu. Der Opamp regelt dann die Gate-Spannung herunter, wodurch der Strom durch die Spule wieder sinkt. Der 100 nF Kondensator soll Regelschwingungen verhindern.

atzensepp
Beiträge: 1221
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Motorisierter Open-Source-XYZ-Mikromanipulator

Beitrag von atzensepp » 25 Jul 2026, 16:34

Da 3D-Druck nicht jedermanns Sache ist, habe ich Versuche, mit einem Flexure aus Fischertechnik gemacht.
Als Aktuator setze ich einen 4 Watt-Lautsprecher ein, der das Shuttle über eine Rastachse drückt. Man beachte auch die seitlichen Stabilisatoren dieses Flexures. Sie sind unbedingt notwendig, um ungewollte parasitäre Bewegungen zu reduzieren.
Flex4.JPG
Flex4.JPG (187.69 KiB) 40 mal betrachtet
Für die Positionsmessung wird 21-Bit magnetischer Winkelencoder MT6835 mit einem Stapel von Zylindermagneten verwendet, der an der Unterseite des Shuttles montiert ist.
Flex5.JPG
Flex5.JPG (129.23 KiB) 40 mal betrachtet
Die Ansteuerung erfolgt diesmal nicht über PWM, sondern über einen 16-Bit-Digital-Analog-Wandler. (Hier ein DAC703, den ich noch aus Urzeiten übrig hatte; Das Ding braucht aber mindestens +/- 12V, um überhaupt zu funktionieren. Ein aktueller Arduino-kompatibler DAC wäre sicher angebracht. Das 16-Bit-Digitalwort wird dem DAC über zwei 8-Bit TTL-Latches 74LS374 übermittelt). Die Treiberschaltung ist die gleiche wie im vorigen Post beschrieben.
Die Kombination erreicht ebenfalls eine sehr gute Regelgenauigkeit von +/- 1 Counts, was für Fischertechnik unvorstellbar krass ist.

Als nächstes habe ich selber eine Aktuator-Spule mit 300 Windungen gewickelt. Im Kern befindet sich ein Stapel von Scheibenmagneten. Als "Joch" verwende ich ein Stück Eisenrohr, das von einem Tischbein übrig geblieben ist.
Flex2.JPG
Flex2.JPG (190.51 KiB) 40 mal betrachtet
Flex1.JPG
Flex1.JPG (199.09 KiB) 40 mal betrachtet
Meine Idee war es, die Reibung zu verhindern. Allerdings kommen jetzt Schwingungen zu Tage, die die Genauigkeit auf +/- 300 Counts begrenzen. Mit einer provisorischen Wirbelstromdämpfung oben, wird es geringfügig besser: +/- 100 Counts.
Aber leider wird die Spule (und der Steuertransistor) auch sehr heiß. Ich frage mich, wie ich den Aktuator besser hinbekommen könnte.
Die durch die Reibungsfreiheit dieses Antriebs ermöglichten mechanischen Schwingungen lassen einen darüber nachdenken, die Anordnung als Seismographen zu nutzen.
rechts: Aktuatorspule ohne Außenjoch; oben: Wirbelstromdämpfung mit Kupferrohrteilen und Magneten auf der Oberseite. Die Magneten müssen so nah wie möglich an die Kupferrohrstücke abgesenkt werden
rechts: Aktuatorspule ohne Außenjoch; oben: Wirbelstromdämpfung mit Kupferrohrteilen und Magneten auf der Oberseite. Die Magneten müssen so nah wie möglich an die Kupferrohrstücke abgesenkt werden
Flex3.JPG (116.67 KiB) 40 mal betrachtet

Antworten