Hallo Miteinander.
Bei uns in der Abteilung steht die Aufgabe an, die PID-Regelung für
einen Galvoscanner zu entwickeln.
Der Fall:
Angesteuert wird mit der Regelung ein 1-Achsen Galvoscanner (z.B.
Scanlab, Camebridge etc.). Die PID-Regelung muss 500 mal in der Sekunde
(500 Hz) den Winkel des Galvos so einstellen, dass er auf 0,25° genau
den vorgegeben Winkel trifft. Die einzustellenden Winkel liegen bei
einem Schritt eng beieinander (genaue Werte können wir nicht nennen, da
je nach Drehmoment des Galvos eine unterschiedliche Performance erreicht
werden kann). Da sich das Verhalten des Galvos mit der Zeit auch
verändert (mechanische Alterung), wäre eine selbstlernende PID-Regelung
super.
Die Reglerkarten der Hersteller von Galvos schaffen oben genannte
Anforderungen problemlos zu lösen, kosten aber auch demendsprechend viel
Geld, da sie viel Funktionen bereitstellen, die wir für unsere Anwendung
nicht benötigen.
Jetzt die Frage an euch: Gibt es Setups, mit denen es kostengünstig
möglich ist diese Anforderungen zu erfüllen? Mit kostengünstig meine
ich, die genannten Anforderungen zum günstigsten Preis zu erfüllen. Ich
bin auch über günstige Standardlösungen froh, wo die Leistungsbauteile
schon integriert sind.
Eine schöne Adventszeit und liebe Grüße,
wünscht Stefan
Vermutlich hast Du bereits recherchiert und nichts entsprechend Deiner
Vorstellungen gefunden?
Falls Dein Post eine Anfrage sein soll, so wäre wenigstens das
Hinterlegen von einer Kontaktmöglichkeit (zB mittels Anmeldung im Forum)
günstig.
Ebenso könntest Du konkretisieren was genau Du suchst bzw. selbst
kannst. Ich rate einmal: Leistungsbauteile und Sensorik beherrscht Ihr?
Welche? Und Du suchst ein FPGA-Design?
Grüße,
Lars
Hallo Lars.
Vielen Dank für deine Antwort. Also wir sind Physiker. Wir selbst sind
jetzt komplett neu auf dem Gebiet, aber in Kürze bekommen wir einen
Elektroniker zur Unterstützung. Weil das ganze aber (wahrscheinlich) mit
ziemlich großen Investitionen verbunden ist, wollte ich mich noch hier
im Forum umhören.
Bezüglich deiner Anfrage:
Die Sensorik ist relativ einfach, es handelt sich dabei lediglich um
einen digitalen Encoder der den aktuellen Winkel des Galvos an unsere
Steuerung senden würde.
Ob wir uns die Leistungsbauteile selber zusammenbauen, kommt ganz darauf
an was es vorgefertigt gibt. Aber bis jetzt schaut es so aus, als ob wir
uns das selber bauen müssen.
Bezüglich elektronischen Bauteilen (FPGA oder andere Komponenten) sind
wir ganz frei, falls es leistungsfähige µCs gibt die diese Aufgabe
erledigen können, sind wir heilfroh, weil das leichter zu programmieren
ist (keiner von uns kann zur Zeit VHDL).
Beste Grüße,
Stefan
Mit 500 Updates pro Sekunde bist du locker im Bereich von
Mikrocontrollern und brauchst dir um FPGAs eigentlich keine Sorgen
machen. Vermutlich tuts ein kleiner STM32 ganz gut, die haben naemlich
sehr ausgefeilte PWM Hardware die man gut zur Motoransteuerung benutzen
kann. Bei den paar Updates kannst du das ganze wsl sogar in float
rechnen und sparst dir die fixpunktarithmetik.
Vielen Dank für eure Antworten.
Also die PID sollte den Motor so steuern, dass 500 mal pro Sekunde ein
Fehler von 0,25° unterschritten wird. Ich denke, dass die
Kontrollstruktur da sicher im zweistelligen kHz bereich getaktet werden
muss. Geht das mit einem leistungsfähigen µC?
Liebe Grüße,
Stefan
Stefan L. schrieb:> Vielen Dank für eure Antworten.>> Also die PID sollte den Motor so steuern, dass 500 mal pro Sekunde ein> Fehler von 0,25° unterschritten wird. Ich denke, dass die> Kontrollstruktur da sicher im zweistelligen kHz bereich getaktet werden> muss. Geht das mit einem leistungsfähigen µC?>
Mit einem Blackfin DSP geht sowas locker, um 500 Hz vermutlich auch mit
einem STM32, wenn er deine Feedback-Werte abrissfrei per DMA reinkriegt.
Ich würde da auch nicht mit dem FPGA draufhauen, inzwischen ist wohl
auch ein DSP überdimensioniert. Frühe zu fällende Entscheidung ist
allerdings float (bequem, ev. lahm) versus fixpunkt
(stabil/fehlerkontrolle)
Ist ja eigentlich nur ein digitaler Lock-in, der nicht sonderlich viele
Operationen verbrät, der grösste Kuchen wäre wohl das Interface und eine
clever aufgesetzte DMA-Verarbeitungskette. Beim STM32 habe ich
allerdings mit schnellem DMA-Dateneinzug keine Erfahrung.
Guest schrieb:> Mit 500 Updates pro Sekunde bist du locker im Bereich von> Mikrocontrollern und brauchst dir um FPGAs eigentlich keine Sorgen> machen. Vermutlich tuts ein kleiner STM32 ganz gut, die haben naemlich> sehr ausgefeilte PWM Hardware die man gut zur Motoransteuerung benutzen> kann.
(genaue) Galvanometer sind keine Motoren im eigentlichen Sinne und
werden daher eher selten per PWM gesteuert, da ist eher ein
DigitalAnalog-Wandler zwischen Controller und Galvo geschaltet. Eure
Anwendung klingt überschlagsweise nach 11 bit Minimum (0,25°
Genauigkeit auf 360° Auslenkung), also sollte es ein controller sein der
11bit auf einmal setzen kann. Bei 500 Hz und 20 MHz µC Clock habt ihr
ein paar zehntausende Operation per Position, das sollte auch für einen
kleinen µC locker schaffbar sein.
Die Alterung kann man ausrechnen, in dem man die Geschwindigkeit des
Galvos ermittelt (die Ist-Position sollte vom Galvo latenzstabil
zurückgemeldet werden). Diese Werte kann man im EEPROM ablegen oder on
the Fly ermitteln. Das stellt einie Anforderungen an das IRQ-System des
controllers und/oder die Genauigkeit der internen Zählers, sollte aber
auch im Bereich des üblichen liegen. Bei ARM's mit nested IRQs sollte
man aber vielleicht mal einen Fachmann fragen, wie genau man die Zeit
zwischen zwei ereignissen (Soll-Position über DA an Galvo; stabile
IST-POS über AD von Galvo messen kann.
Ggf, kann man die on-board AD DA-Wandler des µC nutzen.
C. A. Rotwang schrieb:> 0,25°> Genauigkeit auf 360° Auslenkung
Das Galvo mit 360 Grad Auslenkung möchte ich sehen.
Mein Hauptgeschäft sind seit 30 Jahren Galvoscanner und das
360Grad-Galvo wäre die Weltsensation.
Praktisch laufen die Galvos zwischen 40 und 80 Grad Auslenkung optisch.
Optisch heisst, die mechanische Auslenung ist die Hälfte (20-40 Grad).
0,25 Grad auf egal 40 oder 80 Grad sind ja gar nichts! Was soll denn
damit gescannt werden? Das sind schlechter als 4 Millirad und das müsste
eigentlich der schlechteste und billigste Chinascanner auch ohne
spezielle Regelung und Alterungskompensation hinbekommen.
Einen Cambridge oder Scanlab dafür zu missbrauchen wäre schon fast ein
Sakrileg :-)
In der Praxis sind 12 bis 16 Bit Auflösung "normal", also eher 0,001
Grad Auflösung oder ein paar Zehn-Mikrorad.
Und genaus das (die nötige Auflösung von 16 Bit) macht diese ganzen
schnellen Digitalregler dann auch ganz schnell ganz teuer und aufwändig.
Daher werden die Galvos meistens per analogen Regler mit vorgeschaltetem
DAC zur Softwaresteuerung betrieben. Die kosten dann nur einen Bruchteil
und laufen zuverlässig.
Ihr meintet doch sicher 0,25 Millirad anstatt Grad, oder?
Gruß
Joachim
Joachim schrieb:> C. A. Rotwang schrieb:>> 0,25°>> Genauigkeit auf 360° Auslenkung>> Das Galvo mit 360 Grad Auslenkung möchte ich sehen.> Mein Hauptgeschäft sind seit 30 Jahren Galvoscanner und das> 360Grad-Galvo wäre die Weltsensation.
Den unrealistischen Vollkreis-Galvo habe ich bewußt in der Abschätzung
eingesetzt um die Physiker mal zum Nachdenken und genaueren Beschreibung
ihrer Anordnung zu bewegen. Das sollte doch auch ohne Unterstützung
durch einen Elektroniker möglich sein.
> 0,25 Grad auf egal 40 oder 80 Grad sind ja gar nichts! Was soll denn> damit gescannt werden? Das sind schlechter als 4 Millirad und das müsste> eigentlich der schlechteste und billigste Chinascanner auch ohne> spezielle Regelung und Alterungskompensation hinbekommen.> Einen Cambridge oder Scanlab dafür zu missbrauchen wäre schon fast ein> Sakrileg :-)> In der Praxis sind 12 bis 16 Bit Auflösung "normal", also eher 0,001> Grad Auflösung oder ein paar Zehn-Mikrorad.
Genau, die Bitbreite der AD/DA-Wandler ist entscheidend so wie die
Samplingdauer. Für Integrierten µC-Wandler ist schnell bei 8/10 bit
(Portbreite) Schluß, von messzeiten von SigmaDelta Wandlern garnicht
erst zu Reden.
> Und genaus das (die nötige Auflösung von 16 Bit) macht diese ganzen> schnellen Digitalregler dann auch ganz schnell ganz teuer und aufwändig.
Das mit dem "Ganz teuer" sollte man mal hinterfragen, vom Materialpreis
finde ich persönlich für einen kleinen FPGA und 12 bit 50 MS/s
DA-Wandler (grob geschätztz beides zusammen 40€) für einen Laserscanner
im Gesamtpreis eher mariginal (im Vergleich zu Optik,
Mechanik,Laserquelle).
Was den Aufwand betrifft ist natürlich die Entwurfserfahrung
entscheidend. Wer seit Jahrzehnten schnell Messschaltung baut, ist da
nach ein paar Wochen schon mit einem Prototypen weit, während ein
Arduino-Geschlagener noch an der Lernkurve Digitale Signal Verarbeitung
sitzt.
> Daher werden die Galvos meistens per analogen Regler mit vorgeschaltetem> DAC zur Softwaresteuerung betrieben. Die kosten dann nur einen Bruchteil> und laufen zuverlässig.
C. A. Rotwang schrieb:> Das mit dem "Ganz teuer" sollte man mal hinterfragen, vom Materialpreis> finde ich persönlich für einen kleinen FPGA und 12 bit 50 MS/s> DA-Wandler (grob geschätztz beides zusammen 40€) für einen Laserscanner> im Gesamtpreis eher mariginal (im Vergleich zu Optik,> Mechanik,Laserquelle).
12 Bit sind aber für einen Galvoregler wie gesagt schon Untergrenze.
Es gibt ja schon lange zahlreiche Digitalregler für Galvos auf dem
Markt.
Aber niemand würde einen relativ teueren Regler entwickeln, der dann im
Vergleich zu einem Analogtreiber derart schlechte Daten hat. Den würde
niemand kaufen.
In der Praxis werden die Galvos für die etwas anspruchsvolleren Aufgaben
mit 14 bis 16 Bit angesteuert. 12 Bit ist in der Unterhaltungsbranche
(Lasershow) gängig, wo es nicht so darauf ankommt.
Um den Scanner aber seitens der Applikation auf 16Bit genau zu
positionieren muss die erzielbare Reglerauflösung höher liegen, sonst
macht das ja keinen Sinn. In der Industrie werden die Scanner schon oft
mit 18 Bit angesteuert und die Regelauflösung geht hin bis zu 24Bit.
"Materialpreis" ist in der Elektronik nur bei größeren Stückzahlen ein
Problem. Und ja, ob der Regler nun 200,- oder 1000,- Euro kostet, bei
oftmals Zehntausenden Euro teueren Lasern, ist für EINE spezielle
Anwendung vielleicht auch egal. Stimmt.
Aber das Bauteil selbst (Mikrokontroller oder FPGA) ist auch selten das
Problem.
Ich kaufe einen Mikrokontroller für 10,- Euro und entwickle für 10.000,-
oder 30.000,- Euro die Firmware. Wo liegen also jetzt die Kosten?
Wer natürlich in ein paar Tagen einen fertigen FPGA-basierten
Galvoregler entwickelt, der darf sich ganz ganz schnell bei mir melden
;-)
Firmen wie Cambrigde, GSI oder auch Pangolin (ScannerMax) haben Jahre
daran herumgewerkelt und viele sind bis heute immer noch nicht fertig
bzw. die Regler haben immer noch Kinderkrankheiten.
Und viele der Digitalregler sind "Hybride", d.h. die Digitaltechnik wird
nur für die Userschnittstelle benutzt und im Hintergrund arbeitet ein
alter bewährter analoger Regler.
Ich möchte auch erinnern dass der TO einen "günstigen Preis" erwähnt
hat.
Analogregler dagegen sind seit 40 Jahren gängig. Die Schaltung ist
bekannt und es ist keine Raketentechnik dafür nötig. Die Entwicklung
beschränkt sich auf ein sauberes Platinenlayout und die Regleranpassung.
Materialpreis ab 20,- Euro. Fertige Treiber gibt es von unter 100,- bis
300,- Euro zu kaufen.
Natürlich sind die dann äußerlich nicht so toll mit zig LEDs, Anzeigen,
Softwareschnittstelle und Firmwareupdatefuntkion. Aber sie verrichten
ihren Job.
Gruß
Joachim