Drehwertgeber / Drehwinkelgeber

Ersatz- und Fremdteile, Modifikationen, etc.
Special Hints - Spare- & foreign parts, Modifications, etc.

Moderator: Jan3D

Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von MasterOfGizmo » 24 Okt 2019, 13:04

juh hat geschrieben:
24 Okt 2019, 00:47
So, wie angekündigt hier noch das Design auf thingiverse:
Die für die Rastachse passenden Trimmer hat Reichelt nicht, oder? Wo kaufst Du die denn?

Und falls Du Lust hast, eine Version mit Bundhülsen zu machen würde ich Dir gerne ein Tütchen schicken. Meine Bundhülsen kommen aus einer anderen Quelle und sind wesentlich genauer gefertigt als die von ft. Daher sitzen die Stecker da auch immer sicher drin.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

juh
Beiträge: 904
Registriert: 23 Jan 2012, 13:48

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von juh » 24 Okt 2019, 17:33

MasterOfGizmo hat geschrieben:
24 Okt 2019, 08:29
Ja! Ein PID-Regler auf dem ftDuino. Genau dafür fehlte mir das Poti! Kannst Du Gedanken lesen?
Naja, manchmal liegen die Dinge ja auch einfach in der Luft. ;-) Nur Nebenbei: für PID gibt es doch auch viele andere Anwendungen, z.B. nutze ich gerade für meinen Linienverfolger die Differenz zweier Lichtsensoren als Input für den PID-Regler. Aufs Poti warten muss man da nicht zwangsläufig, oder hattest Du eine konkrete Anwendung im Sinn?
MasterOfGizmo hat geschrieben:
24 Okt 2019, 13:04
Die für die Rastachse passenden Trimmer hat Reichelt nicht, oder? Wo kaufst Du die denn?

Und falls Du Lust hast, eine Version mit Bundhülsen zu machen würde ich Dir gerne ein Tütchen schicken. Meine Bundhülsen kommen aus einer anderen Quelle und sind wesentlich genauer gefertigt als die von ft. Daher sitzen die Stecker da auch immer sicher drin.
Pollin hat die, auch mit anderen Widerstandswerten, meine kamen glaube ich von einem dt. ebay-Shop.

Natürlich wäre eine Lösung mit Bundhülsen noch ein Stück schicker, vielen Dank für das Angebot. Ich hätte aber selbst durchaus welche da, arbeite hier nur gerne nach dem KISS-Prinzip. Die Printbuchsen-Technik funktioniert für mich auch hier sehr gut, obwohl die Poti-Beinchen etwas schmaler und fragiler sind als Pin-Header, die sonst bei der Printbuchse zum Einsatz kommen.
PHabermehl hat geschrieben:
24 Okt 2019, 10:23
Yay, damit könnt' man mal eine pneumatische Positionsregelung basteln........
Ich fürchte mit den Potis wird das nichts werden. Wie schon geschrieben haben die einen erheblichen Reibungswiderstand, Pneumatik wird da zu schwach sein. Wenn man genau hinsieht, erkennt man das auch im Video: Bei zwei oder drei Stellen bleibt der Mini-Motor vor dem Ziel stecken. Das würde zwar vom I-Glied des Reglers irgendwann korrigiert, aber so richtig flüssig sieht das dann nicht mehr aus.

Ich denke, die Potis sind eine praktische, billige und sehr einfach anwendbare Möglichkeit, wenn ausreichend Kräfte am Wirken sind (wie z.B. bei NBGers Walker). Für alles andere warten wir mal, ob die mag(net)ische Alternative hält, was sie verspricht.

lg
Jan

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von MasterOfGizmo » 24 Okt 2019, 17:39

juh hat geschrieben:
24 Okt 2019, 17:33
Nur Nebenbei: für PID gibt es doch auch viele andere Anwendungen
Sicher. Aber wenig ist so offensichtlich wie diese Trimmer-Lösung. Das hier ist auch schön:

https://www.youtube.com/watch?v=fusr9eTceEo

Sowas hatte ich eigentlich vor.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

juh
Beiträge: 904
Registriert: 23 Jan 2012, 13:48

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von juh » 24 Okt 2019, 18:13

Ah, ok. Schönes Video, PID direkt sichtbar und damit leicht verständlich gemacht. "Anti-windup" war mir noch neu. Zuerst dachte ich, damit kann ich meine Ergebnisse vielleicht noch verbessern. Aber die PID library, die ich nutze, hat das eh schon per SetOutputLimits() implementiert. :-(

Gab es in der ftpedia eigentlich schon mal was über PID?

vg
Jan

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von steffalk » 24 Okt 2019, 18:15

Tach auch!
Gab es in der ftpedia eigentlich schon mal was über PID?
Nein, gab es leider noch nicht! Schreib gerne mal jemand darüber, damit ich das auch endlich verstehe! :-)

Gruß,
Stefan

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von MasterOfGizmo » 30 Okt 2019, 11:25

So, die Trimmer sind da. Dann wird nachher mal gedruckt.

Was mir vorschwebt (ohne bisher zu wissen, ob es auch nur ansatzweise geht) ist ein einziges Teil, in das ich drei Bundhülsen und den Trimmer einfach einschnappen lasse. Dafür habe ich auch ein paar Trimmer mit den gerade Beinchen, so dass die ganze Konstruktion mit etwas Glück innerhalb 15x15x15mm³ bleibt.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von PHabermehl » 30 Okt 2019, 12:42

juh hat geschrieben:
24 Okt 2019, 18:13
"Anti-windup" war mir noch neu. Zuerst dachte ich, damit kann ich meine Ergebnisse vielleicht noch verbessern. Aber die PID library, die ich nutze, hat das eh schon per SetOutputLimits() implementiert.

Hallo Jan,

eine Ausgangsbegrenzung als Anti-Windup-Maßnahme ist auch kein Allheilmittel.

Beispiel (die Wirkung von Proportional- und Differentialanteil eines PID lassen wir mal außer Acht):

Lageregelung - das zu positionierende Element ist mechanisch blockiert und der Integralregler erhöht die Stellgröße aufgrund der permanent bestehenden Regelabweichung immer weiter.

Im unbegrenzten Fall wächst der Reglerausgang theoretisch halt bis ins Unendliche, praktisch einfach durch die physikalischen Grenzen des Systems beschränkt, im Falle eines Software-Reglers also Variablenüberlauf oder sowas.

Begrenzt Du den Reglerausgang, so kann es sein, dass der Regler, obwohl noch Spielraum vorhanden wäre, große Regelabweichungen nicht ausgleichen kann - die Begrenzung sinnvoll auszulegen, ist nicht immer einfach.

Jetzt lösen wir die mechanische Blockade. Aufgrund des gesättigten Integrals, ob nun begrenzt oder nicht, kommt es zu einem heftigen Ausschlag mit Überschreiten der Zielposition. Nun muss der Integralregler gemäß der eingestellten Verstärkung erstmal wieder "runterrechnen", um die Sollposition zu erreichen.

Tritt nun noch ein Sprung der Sollposition auf, so wird das Ausregeln durch den bereits weit vertrimmten I-Anteil deutlich erschwert...

In der Praxis wird daher oft weniger auf eine Ausgangsbegrenzung beziehungsweise ein Einfrieren eines Reglers zurückgegriffen sondern stattdessen oder ergänzend diese Maßnahme mit einem Anti Windup Reset verbunden.

Dabei passiert nichts anderes, als dass der Regler bei einem großen Sollwert- (gelegentlich auch Istwert-) Sprung neu initialisiert wird. Der Integralausgang wird also z.B. zu Null, dem Ausgang eines Proportionalglieds oder einem anderen Vorgabewert gesetzt, und der Regler rechnet von diesem Startpunkt aus wieder neu...

So, und dann kann man unterstütztend noch eine Vorsteuerung ins Spiel bringen. Die Regelstrecke wird über den gesamten Sollwertbereich quasistatisch vermessen und eine Korellation zwischen Sollwert und Stellgröße erfasst. Erfolgt nun ein Sollwertsprung, so wird der Regler derart initialisiert, dass an seinem Ausgang der erwartete statische Stellwert anliegt. Die aktive Regelung muss nun lediglich die Abweichung zu diesem Erwartungswert, üblicherweise resultierend aus der Summe der Toleranzen der Regelstrecke, ausgleichen. Damit kann der Regler mit wesentlich kleineren Verstärkungen gefahren werden, wodurch sich die Stabilität des Regelkreises und die Einregelgeschwindigkeit verbessern.

Spannend wird das immer dann, wenn z.B. bei hoher Stellgeschwindigkeit ein Überschwingen nicht zulässig ist - Schweißroboter - Wenn der die Elektrode erstmal durch den Kotflügel durchdrückt und dann wieder zurückzieht, gibt das spätestens bei der Lackqualitätskontrolle Diskussionen...

Gruß
Peter

edit: sorry für's off-topic!
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

NBGer
Beiträge: 282
Registriert: 02 Aug 2013, 18:26
Wohnort: Nürnberg

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von NBGer » 30 Okt 2019, 13:38

Hallo Peter,

hab mich jetzt schon länger nicht mehr mit Reglern beschäftigt, aber du hast den Anti-Windup eigentlich ganz gut erklärt.
Du hast natürlich recht, eine Ausgangsbegrenzung hilft nichts, macht es ja eigentlich nur schlimmer. In der Praxis ist der Ausgang sowieso oft beschränkt...PWM mehr als 100% geht halt irgendwie nicht.
Deutlicher hervorheben sollte man vielleicht, dass der Anti-Windup auf den Regler-internen I-Wert wirkt, da dieser sich immer weiter aufsummiert, wenn die Mechanik dem Regler nicht folgen kann (wie eben z.B. bei einer Blockade).

Deinen zweiten Teil "Vorsteuerung" kannte ich bisher noch nicht...das muß ich mir erst mal in Ruhe "visualisieren". Aber hört sich interessant an!

juh
Beiträge: 904
Registriert: 23 Jan 2012, 13:48

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von juh » 30 Okt 2019, 13:40

@MoG: Das klingt ja mal interessant! Die Kontaktierung sollte schon mal klappen, im Prinzip wäre das der gleiche Mechanismus wie bei meiner Variante, nur dass hier nicht Poti-Bein und Stecker, sondern Poti-Bein und Hülse (und dann Stecker) durch mechanischen Druck der umschließenden Form verbunden werden. Das wird natürlich eng auf 15x15x15, v.a. wenn es dann wirklich ein Snap-in Mechanismus wird, was natürlich ein Traum wäre. Bin gespannt auf das Ergebnis. Kann es aber sein, dass Du dafür eher die liegende Variante mit geknickten Beinen im Auge hast?

@Peter: Vielen Dank. Ich merke, dass ich als Fachfremder noch ganz am Anfang stehe, PID zu begreifen. Brett Beauregard, dessen Library und Seiten ich im Übrigen exzellent finde, hat das Thema unter obigem Link offenbar etwas verkürzt behandelt. Wobei ich in meinem Fall glaube, dass die Ausgangsbegrenzung auf den max. möglichen PWM-Wert schon mal nicht so falsch ist.

@steffalk: Ich glaube, wir haben einen qualifizierten Autor für den PID-Artikel in der ftpedia gefunden! Jetzt müssen wir ihn nur noch überreden. ;-)

lg
Jan

juh
Beiträge: 904
Registriert: 23 Jan 2012, 13:48

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von juh » 30 Okt 2019, 13:43

NBGer hat geschrieben:
30 Okt 2019, 13:38
In der Praxis ist der Ausgang sowieso oft beschränkt...PWM mehr als 100% geht halt irgendwie nicht.
Moment, das verstehe ich nicht. Natürlich kann ich den Output auf den machbaren Bereich clippen, bevor ich den Motor damit ansteuere. Aber geht es hier nicht gerade darum, dem Controller genau das auch klar zu machen? Im Sinne von "weiter als so muss ich gar nicht regeln, weil das eh nicht umsetzbar ist?".
lg
Jan

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von PHabermehl » 30 Okt 2019, 13:48

juh hat geschrieben:
30 Okt 2019, 13:43
NBGer hat geschrieben:
30 Okt 2019, 13:38
In der Praxis ist der Ausgang sowieso oft beschränkt...PWM mehr als 100% geht halt irgendwie nicht.
Moment, das verstehe ich nicht. Natürlich kann ich den Output auf den machbaren Bereich clippen, bevor ich den Motor damit ansteuere. Aber geht es hier nicht gerade darum, dem Controller genau das auch klar zu machen? Im Sinne von "weiter als so muss ich gar nicht regeln, weil das eh nicht umsetzbar ist?".
lg
Jan
Exakt! Die Grenzen des PWM-Ausgangs sind eine physikalische Beschränkung innerhalb des Systems. Ein I-Regler würde, da ja weiterhin eine Regelabweichung vorliegt, fröhlich weiterintegrieren, bis dass das Bit kippt oder so. Er weiß ja nicht, dass der Ausgang schon am Anschlag ist.

In so einem Fall sollte man bei Erreichen von 100% PWM den Regler einfrieren - er würde so lange nicht mehr integrieren, bis die Stellgröße (bedingt durch die entsprechende Änderung des Sollwerts) wieder sinkt.

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von PHabermehl » 30 Okt 2019, 14:02

Nebenbei sei hier nochmal auf meinen startIDE-Artikel in ft:pedia 1/2018, S.102ff, verwiesen. Dort habe ich u.a. einen P-Regler in startIDE umgesetzt, der Quellcode ist der App sogar noch heute beigelegt. Die Resonanz motivierte allerdings nicht zu einer Vertiefung...

Gruß
Peter

So, jetzt aber Schluss mit OT hier.
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von MasterOfGizmo » 30 Okt 2019, 14:48

PHabermehl hat geschrieben:
30 Okt 2019, 14:02
Nebenbei sei hier nochmal auf meinen startIDE-Artikel in ft:pedia 1/2018, S.102ff, verwiesen. Dort habe ich u.a. einen P-Regler in startIDE umgesetzt, der Quellcode ist der App sogar noch heute beigelegt. Die Resonanz motivierte allerdings nicht zu einer Vertiefung...
Hmm ... startIDE in allen Ehren, aber ich bin mir nicht ganz sicher, ob die User-Gruppen "startIDE" und "PID" großartig überlappen. Ich befürchte mit PID landet man recht schnell so weit im technisch/mathematischen Bereich, dass die User dann eher in Python oder ähnlich denken möchten.

Edit: So OT finde ich das alles nicht. Irgendwie scheinen hier viele bei Poti gleich an PID zu denken.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

NBGer
Beiträge: 282
Registriert: 02 Aug 2013, 18:26
Wohnort: Nürnberg

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von NBGer » 30 Okt 2019, 15:02

ein eigener forum Thread wäre für PID-Regler doch nicht schlecht!

ich denke, für viele wäre das interessant. es existiert doch sehr viel Unwissen und Halbwissen (wobei ich mich selbst auch höchstens zu den Halbwissenden zähle)
und mit den ganzen Controllern und Programmieren wird das doch immer mehr zum Thema.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von MasterOfGizmo » 30 Okt 2019, 15:05

juh hat geschrieben:
30 Okt 2019, 13:40
@MoG: Das klingt ja mal interessant! Die Kontaktierung sollte schon mal klappen, im Prinzip wäre das der gleiche Mechanismus wie bei meiner Variante, nur dass hier nicht Poti-Bein und Stecker, sondern Poti-Bein und Hülse (und dann Stecker) durch mechanischen Druck der umschließenden Form verbunden werden.
Ich dachte an einen Block mit drei nach innen versetzen Löchern mit einem kleinen "Kanal" daneben in die man die Bundhülsen einsetzt, Poti oben drauf, dabei Potibeine jeweils lose neben die Bundhülse und dann einmal feste drücken, so dass die Bundhülsen mit dem Potibein daneben vom Poti fest in den Block gerdrückt werden ... klingt in der Theorie zumindest total simpel ... :D
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von MasterOfGizmo » 30 Okt 2019, 15:07

NBGer hat geschrieben:
30 Okt 2019, 15:02
ein eigener forum Thread wäre für PID-Regler doch nicht schlecht!
Also ein ftDuino-basierter "Segway"-Roboter mit dem ft-Orientierungssensor zur Lageerkennung lässt sich bestimmt pirma per PID-Regler machen ... das wär' schon fein
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

NBGer
Beiträge: 282
Registriert: 02 Aug 2013, 18:26
Wohnort: Nürnberg

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von NBGer » 30 Okt 2019, 15:13

neuer Thread für Thema PID:
viewtopic.php?f=15&t=5598

Jan3D
Beiträge: 64
Registriert: 07 Nov 2019, 13:33

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von Jan3D » 19 Nov 2019, 23:43

Ich glaube dieser Thread ist beim Erstellen des 3D-Unterforums aus Versehen mit verrutscht. Da es nur am Rande um 3D-Gehäuse geht, ist er bei den allgemeinen Tipps & Tricks wohl besser aufgehoben.

lgj
Moderator in den Foren "Tipps und Tricks" und "3D Druck"

juh
Beiträge: 904
Registriert: 23 Jan 2012, 13:48

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von juh » 20 Nov 2019, 00:24

juh hat geschrieben:
24 Okt 2019, 17:33
Für alles andere warten wir mal, ob die mag(net)ische Alternative hält, was sie verspricht.
Die magnetische Alternative war gestern in der Post, heute Abend konnte ich ein paar erste Tests mit den im Startbeitrag erwähnten AS5600 boards von ebay machen. Ein paar Beobachtungen, getestet mit einem 4x4mm diametral polarisierten Neodym-Magneten:

Der 3-pin Anschluss ist direkt benutzbar. Der als "PWM" markierte Ausgang liefert allerdings in der ausgelieferten Standardkonfiguration kein PWM, sondern ein Analogsignal im Bereich 0V bis VDD. PWM-Ausgabe müsste per I2C (Register "Output Stage") konfiguriert werden.

Mit analogRead() statt pulseIn() liefert der Sonsor dann keinen Datenmüll mehr, sondern butterweich übertragene exakte Winkelwerte in 360° als Analogwerte von 0...1023. Bei Stillstand wenig Jitter +/-1.

Mit dem verwendeten Magneten sind Abstände bis 3 mm kein Problem, ab ca. 4 mm wird nichts mehr erkannt. Die Erkennung klappt auch von der anderen, der Platinenunterseite aus, dann verringert sich der Abstand natürlich mindestens um die Platinendicke. Hier zeigt sich ein Designfehler des Boards: ähnliche Boards platzieren den Sonsor auf eine Platinenseite alleine.

VDD sind hier 5V, der Chip würde auch mit 3,3V gehen, braucht dann aber eine andere Grundbeschaltung.

Der 6-polige Anschluss ist offensichtlich für eine 6-polige JST SH (1,0mm Beinchenabstand) Verbindung gedacht. Die Buchse hat man sich bei der Bestückung dann wohl gespart. Hier sind I2C und zwei Konfigurationspins zugänglich, einer zum I2C-losen Konfigurieren des Winkelbereichs, einer zur Wahl der Impuls-Drehrichtung. Noch nicht weiter getestet.

Ich habe mal einen kurzen Video hier hochgeladen.

Erstes Fazit: Das Ding ist so genial wie erwartet. Auch ohne I2C oder sonstige Konfiguration sollte es für berührungslose Drehwinkelerfassung in ft-Modellen ideal geeignet sein. Ich warte jetzt erst mal auf die nachbestellten JST-Verbinder und werde mich parallel mit einem Gehäuse beschäftigen. Einziger Nachteil: Die Piher-Lösung wird damit relativ obsolet...

lg
Jan

NBGer
Beiträge: 282
Registriert: 02 Aug 2013, 18:26
Wohnort: Nürnberg

Re: Drehwertgeber / Drehwinkelgeber

Beitrag von NBGer » 20 Nov 2019, 08:30

juh hat geschrieben:
20 Nov 2019, 00:24
.... Der als "PWM" markierte Ausgang liefert allerdings in der ausgelieferten Standardkonfiguration kein PWM, sondern ein Analogsignal im Bereich 0V bis VDD. PWM-Ausgabe müsste per I2C (Register "Output Stage") konfiguriert werden.

Mit analogRead() statt pulseIn() liefert der Sonsor dann keinen Datenmüll mehr, sondern butterweich übertragene exakte Winkelwerte in 360° als Analogwerte von 0...1023. Bei Stillstand wenig Jitter +/-1.

lg
Jan
Hallo Jan,

das habe ich eigentlich genau so erwartet! Der Ausgang "zerhackt" doch per PWM die 5V. Damit ergibt sich dann effektiv eine Spannung zwischen 0..5V, welche man an einen Analog-Eingang anlegen muß. Hast du das Signal mal per Osci angeschaut?
Pulse zählen bzw Frequenz messen des PWM-Signals wäre doch viel zu kompliziert!

Antworten