Seite 2 von 27

Re: Dem Z-Wobble auf der Spur

Verfasst: Fr 18. Mai 2018, 17:34
von AtlonXP
Da das Thema große Begeisterung erweckt, möchte ich mich hier anschließen.
Peter hat es ziemlich auf den Punkt gebracht.

Hier ein paar Überlegungen meinerseits:
Ich glaube in Z wird sich das Wobbeln nur sehr gering bemerkbar machen, sonst hätten wir viel mehr Probleme.

Zur Vereinfachung des Denkmodels gehe ich davon aus, die Zapfen einer Spindel sind oben wie unten gleich versetzt (in der Flucht).
Dieser Exzenter ist in keinem Fall im Gegenlauf mit der zweiten Spindel. (Die Kräfte laufen gegenseitig auf)!
Sollte dies so sein, dann wird es unberechenbar, da sich die Kräfte gegenseitig beeinflussen.

Das Wobbeln entsteht weil die Druckplatte in X und oder Y verdrängt (verschoben) wird.
In diesem Fall würden wir in X, wie in Y, ein Wobbeln an der Außenfläche erkennen.
Dieser X und Y Versatz muss bei jeder Layerhöhe als Offset addiert oder subtrahiert werden.
Das Addieren oder subtrahiert wird vom Winkelmaß der Z Höhe bestimmt.
Bei einem Z Hub wird die Druckplatte einfach in X und Y um diesen Offset verschoben.
Alle 5 mm in Z wiederholt sich das ganze wieder.

Somit müsste im Hintergrund ein Berechnung laufen die über das Winkelmaß X und Y Offset neu berechnet.
Man könnte die Gesamthöhe der Z Spindel in Bereiche unterteilen ich sag mal einfach in 5.

Warum?
Am Anfang und am Ende der Spindel, ist das Wobbeln in der Regel weniger.
In der Mitte ist es meistens Stärker.
Aus diesem Grund benötigen wir einen Korrekturfaktor für die einzelnen Bereiche in Z.
Ich gehe davon aus, dass das Wobbeln an der gleichen Stelle in X und Y Position bleibt!

Der Ursprung des Winkelmaßes ist bei Homing Z = 0.
Man darf dann natürlich nicht mehr an der Z Schraube kurbeln. :-)

Ihr kennt meinen Umbau auf Lichtschranke, in diesem Fall wäre das Problem abgehakt.

Man benötigt also für die X- und Y- Achse einen Korrekturwert.
Des Weiteren, wo ist die Maximale Abweichung in jeder Achse?
Dies muss der Anwender mit Hilfe seines Testzylinders eingeben können.
Dann noch das Einteilen der Zonen und des Korrekturfaktors.

Vor etwa 30ig Jahren hatte ich eine Kreisberechnung etwa so wie wir sie brauchen Programmiert.
Leider war der gepimmte DX486 (100 MHz) so lahm, dass ich den Kaffee vorher getrunken hatte, bis der Rechner fertig war und das Quadrat sich um 360° gedreht hatte.

Vielleicht (wenn nötig) könnte man die Berechnung während des Druckstarts ausführen und im Speicher ablegen.
Wenn jetzt noch der Versatz der einzelnen Zapfen unterschiedlich ist, dann hat der Mathematiker ganz schön Arbeit und der Drucker erst recht bei der Berechnung.

@ Nibbels kriegst du das mit Peters Hilfe hin?

Ich bin ehrlich gespannt was unsere Hardware vom Drucker dazu meint.
Verbratet mir nicht zu viel Speicher, wir brauchen noch was für den Datenübertragungspuffer. ;-)

Viel Erfolg, ich drücke euch die Daumen und haltet uns auf dem Laufenden :-)

LG AtlonXP

Re: Dem Z-Wobble auf der Spur

Verfasst: Fr 18. Mai 2018, 17:47
von Nibbels
Das was ich als Zwischentasks meinte, muss ja sowieso gemacht werden. Ich würde damit anfangen. (Menü...)
Die Taylorreihe wär kein Problem, müsste dann nur schauen, was kleiner ist oder ob eben schon eine funktion da ist.

Wegen x und y. (?)
Das könnte bei meinem aktuellen stand des nachdenkens vieles sein.

Die muttern taumeln.
Der hebel, der so lang ist, wie der weg zwischen hotend und der ebene in der die spindeln sind ist zum glück immer gleichlang. Egal wie y steht.
Ideal: Beide muttern taumeln gleich. Ich habe also bei x=0 und x=240 denselben max hub.

Meinst du, dass wir 2 hub sinuse brauchen und zwischen x=0 und x=240 interpolieren müssten?
(atlon hat eben auch getippt, das muss ich erst lesen)
Lg

Re: Dem Z-Wobble auf der Spur

Verfasst: Fr 18. Mai 2018, 18:38
von PeterKa
Stefan, lass uns telefonieren :)

PeterKa

Re: Dem Z-Wobble auf der Spur

Verfasst: Fr 18. Mai 2018, 18:55
von Nibbels
AtlonXP hat geschrieben: Das Wobbeln entsteht weil die Druckplatte in X und oder Y verdrängt (verschoben) wird.
In diesem Fall würden wir in X, wie in Y, ein Wobbeln an der Außenfläche erkennen.
Aha. Nun geht mir eine weitere Frage durch den Kopf:

a) Reden wir von einer Art zyklischem Layershift in X-Y, weil die Drehachse nicht zentrisch in der Spindel sitzt? Also von einer Kompensation der X und Y-Koordinate?

b) Oder reden wir von einem Taumeln um die X-Achse herum, mit Drehpunkt Wellenmutter, welches durch den Hebel zwischen Düsenspitze und Welle (Sehr kurz!) entsteht?
Das könnte dann eine Stauchung und Steckung einzelner Layerhöhen verursachen, was aussen am Teil sichtbar wird.

Ich dachte immer an b).
@Peter_KA. Du hast ne PN mit meiner Nummer, falls die nicht mehr hast. Kannst jederzeit anrufen.

LG

Re: Dem Z-Wobble auf der Spur

Verfasst: Fr 18. Mai 2018, 19:36
von AtlonXP
Ich würde sagen, nach meinem Geschreibsel hier wird es wohl eher a.) sein. :coolbubble:

Wenn es b.) wäre, dann wäre meine Magische Kugel mit nur einer Layerhöhe von 0,04 mm nichts geworden!

Die wurde sogar noch mit einer FW gedruckt, da war der Rundungsfehler noch im Extruder vorhanden.

LG AtlonXP

Re: Dem Z-Wobble auf der Spur

Verfasst: Sa 19. Mai 2018, 23:46
von Nibbels
Ich hab jetzt mal etwas Code runtergeschrieben, das 3 Arten von Wobble simulieren also auch bekämpfen kann - aktuell gibts aber noch keinen Code-Upload davon.
Übrigens arbeitet hier nicht die Z-Compensation. Das würde nur in Z-Richtung klappen. Ich habe das in die Umrechnungsfunktion von GCode nach Steps als Zusatzoffset eingearbeitet.

Ich gehe nun davon aus, dass unser Bett eine Art Bauchtanz um die Spindeln veranstalten könnte.
Dagegen hilft ein Anti-Wobble in X und Y:
  • X-Richtung: Dieses Wobble ist entweder gleich oder gegenläufig. Dennoch immer gleich. Man stellt eben eine Amplitude ein.
  • Y-Richtung: Dieses Wobble ist gleich oder gegenläufig: Ich brauche hier 2 Amplituden, eine links an der Spindel eine rechts. Stimmt das?
Dann gibts noch meine viel zu komplizierte Anschauung, dass das Bett kippeln könnte. Das gibt mit einem kleinen Hebelarm von << 1cm evtl. einen leichten Hub in Z.
Aber eigentlich ist unsere X-Achse genau in der Ebene wo die Spindeln sind. Es kann konstruktiv diesen Z-Hub-Wobble kaum geben, oder sehe ich das falsch? Es könnte einen leichten Z-Hub geben, wenn die Alu-Platte immer leicht gebogen wird und darum das Bett hoch und runter wabbelt. Aber das wäre fast schon wieder ein anderes Problem. (??)

Nun ein kleines Video zum aktuellen Dev-Stand:


https://youtu.be/jJRspuYzeI0

(Hier läuft die XY-Wobble-Bauchtanz-Simulation nur in X aber in X mit einer Amplitude von knapp 1mm. Doch irgendwas stimmt noch nicht 100% oder ich muss noch ein wenig mehr drüber nachdenken.)

Dazu ein Bild:
DSC00221.JPG
:foto:

:muhaha:

Re: Dem Z-Wobble auf der Spur

Verfasst: So 20. Mai 2018, 00:10
von Digibike
Das sieht ja mal Cool aus - ich kann also mit meinem RF1000 dann auch "Bauchtanz"... :lol: :good:
Super Arbeit! Da kann man eventuelles "Eiern" ja eliminieren - einfacher als Spindeln Wechseln... :good:


Gruß, Christian

Re: Dem Z-Wobble auf der Spur

Verfasst: So 20. Mai 2018, 01:18
von Nibbels
Aaalso :D

Der Code scheint gepasst zu haben! 2mm sind einfach eine riesige Strecke, wenn man so genau draufschaut.
Screenshot_2.jpg
Screenshot_3.jpg
"Meine" Kippel-Z-Funktion habe ich vorerst der Einfachheit halber rausgenommen. Ich glaube nicht mehr dran. Ausser jemand von euch sagt mir das Gegenteil.
Ich sehe Z-Wobble nun zu 100% als Resultat von diesem Bauchtanz der Spindeln :D :silly: innerhalb der X-Y-Ebene.

Das Menü->Configuration->Kurts Wobblefix hat damit nur noch 4 Einträge.
Das Statusmenü ist ohne Z auch etwas aufgeräumter.
Diese 5 Byte Ram die diese Z-Funktion gebracht hätte bleibt frei ;)

Bei der Formel handelt es sich um einen Sinus. Ich habe einfach die sin()-Funktion aus Arduino verwendet.
Sinus heißt, dass bei 0%-Pi-Phase und Z=0 kein Offset vorhanden ist.
Man kann die Phase mit bis zu +-Pi einstellen, was +-100% entspricht. Ebenso kann man die Amplitude bis zu +-995um einstellen, was fast ein Millimeter ist. Das reicht ^^.

Weiterhin gibts für beide Spindeln in Richtung X genau einen Amplitudenwert und für die Richtung Y eben zwei Amplituden. Eine greift links am Bett an und eine rechts. Normalerweise stellt man hier genau das gleiche ein, ausser man merkt, dass sich die Spindeln gegeneinander bewegen.
(Ob die Gegeneinanderbewegung nicht sonstige Effekte zur Folge hätte?)

Eingestellte Werte bleiben durchs EEPROM erhalten. Diese Werte können aber nicht über die EEPROM-Funktion in Repetier-Host/-Server gesehen oder geändert werden. -> Könnte man machen. Aber im Menü sind die eigentlich gut aufgehoben.

Merke: Es gibt aktuell keinen GCode um die Wobble-Fix-Settings umzuschreiben. Könnte man machen.

Die neue Version der Firmware gibts hier: https://github.com/Nibbels/Repetier-Firmware und später wie immer hier https://github.com/RF1000community/Repe ... evelopment / https://github.com/RF1000community/Repe ... ity_stable

Um das Feature zu aktivieren:
Configuration.h ganz unten hat geschrieben:#define FEATURE_Kurt67_WOBBLE_FIX 1
Die spannende Stelle für alle, die die Formeln genau sehen wollen ist hier:
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L563

Code: Alles auswählen

    //vorausgerechnete konstanten.
    float zweiPi              = 6.2832f;   //2*Pi
    float hundertstelPi       = 0.031428f; //Pi/100
    float spindelSteigung     = 5.0f;      //[mm]
    
    //wobble durch Bauchtanz der Druckplatte
    //wobbleX oder wobbleY(x0) oder wobbleX(x245)
    if(Printer::wobbleAmplitudes[0] || Printer::wobbleAmplitudes[1] || Printer::wobbleAmplitudes[2]){
        float anglePositionWobble = sin(zweiPi*(z/spindelSteigung + (float)Printer::wobblePhaseXY * hundertstelPi ));
        //für das wobble in Richtung X-Achse gilt immer dieselbe Amplitude, weil im extremfall beide gegeneinander arbeiten und sich aufheben könnten, oder die Spindeln arbeiten zusammen.
        Printer::wobblefixOffset[X_AXIS] = Printer::wobbleAmplitudes[0] * anglePositionWobble;
        x += Printer::wobblefixOffset[X_AXIS]/1000;  //offset in [um] -> kosys in [mm]
        
        //gilt eher die Y-Achsen-Richtung-Amplitude links (x=0) oder rechts (x=achsenlänge)? (abhängig von der ziel-x-position wird anteilig verrechnet.)
        float xPosPercent = x/Printer::lengthMM[X_AXIS];
        Printer::wobblefixOffset[Y_AXIS] = ((1-xPosPercent) * Printer::wobbleAmplitudes[1] + (xPosPercent) * Printer::wobbleAmplitudes[2]) * anglePositionWobble;
        y += Printer::wobblefixOffset[Y_AXIS]/1000;  //offset in [um] -> kosys in [mm]
    }
Die Druckprofis mit Wobble können mal testen, ob es wirklich möglich ist den Wobble wegzubekommen bzw. den so auszumessen, dass man ihn eliminieren kann.
(Die Phase/der Sinus beginnt bei Z=0, man könnte also zum finden der Phase grob den ersten Bauch ab Druckplatte ausmessen ...)

Jetzt können wir weiterdiskutieren :D

Re: Dem Z-Wobble auf der Spur

Verfasst: So 20. Mai 2018, 01:44
von Digibike
Hättest früher dran gehen sollen - dann hätte sich Conrad vielleicht den Kulanz-Tausch von einigen Spindeln sparen können und manch einer das zerlegen und die "Böse" Überraschung (da gab´s ja einen Herstellerwechsel und die Aufnahme änderte sich bei den RF1000, was manch einem das Wechseln etwas erschwerte bis die neuen paßten...
Klar Kaschiert es ein Hardware-Problem Softwaremäßig und klar sollte es Hardwaremäßig stimmen und ebenso klar ist es nicht die
Intelligenteste Lösung bei der Konstruktion gewesen, die Spindeln auch die Führung übernehmen zu lassen - das ist Murks, aber
wenn´s die Software kann und das Endergebnis wieder paßt - ich erinner mich noch an die ersten Smart - die machten im Winter,
wenn es irgendwo in der Kurve etwas glatter war, sofort "Männchen" - Konstrukives Problem - bekamen dann ein nettes Software-Update
und seither hält die Elektronik die in der Spur... Muß mal schauen, ob ich dann mit meinem DGlass auch "Bauchtanz" nachher kann...
Legst ja immens viele Nachtschichten ein... :zwinkern: :good:
Ich glaube, wir sollten mal sammeln und mal ein oder zwei Rollen Filament oder so beim nächsten Stammtisch spendieren für die
immense Arbeit...

Gruß, Christian

Re: Dem Z-Wobble auf der Spur

Verfasst: So 20. Mai 2018, 04:40
von hal4822
Nibbels hat geschrieben: "Meine" Kippel-Z-Funktion habe ich vorerst der Einfachheit halber rausgenommen. Ich glaube nicht mehr dran. Ausser jemand von euch sagt mir das Gegenteil.


Jetzt können wir weiterdiskutieren :D
Unter #7 ist dieser Satz zu finden : "Weiterhin lässt sich das Umkehrspiel auch per CAM Software kompensieren. Das halte ich aber für eine ungeeignete Maßnahme, da hier zwangsläufig Ungenauigkeiten bei Kreisbahnen und unschöne Kanten auftreten werden."

Beim Drucker würde man das zwar nicht Umkehrspiel nennen, aber einen englischen Namen gibt´s dafür auch schon. Und mit Fotos von Absätzen in Folge solchen Spiels in vertikaler Richtung könnte ich dienen.