Re: Wägezellen/DMS Unterstützung verbessern
Verfasst: So 24. Apr 2022, 22:08
Guten Abend
Gruß, zero K
womit AtlonXP nix anfangen kann
Ich glaub´ es funktioniert. Gruß, zero K
Stimmt. Knackpunkt war, die Genauigkeit des Ergebnisses ist deutlich höher als die Schrittweite des Scans, sehr wohl aber begrenzt durch etwagige Ungenauigkeiten der Positionierungen (wenn's blöd läuft auch schlechter als die Schrittungenauigkeit selbst).rf1k_mjh11 hat geschrieben:AtlonXPs Ausflug in die Schrittmotor- bzw. Treiberthematik hat nur sehr indirekt mit deinem Problem zu tun.
Genaugenommen ist das das Grundprinzip einer Wägezelle. Diese wird (in unserem Fall parallelogrammartig) deformiert, je stärker die Kraft ist, desto stärker die Deformation. Die Deformation wird dann über Dehnungsmessstreifen gemessen. Wir messen also strenggenommen gar keine Kraft, sondern wie weit sich die Wägezelle bewegt hat.Falls ich deinem Gedankengang folgen kann, versuchst du eine Kraft (die auf die DMS wirkt) einer Länge gleichzusetzen.
Das ist jetzt Einheits-Spielerei. Eine Schrittzahl ist nichts anderes als eine Längeneinheit. Am Ende wird die Z-Kompensation von einem existierenden Bed Mesh Modul vorgenommen, und das erwartet nun mal Millimeter als Einheit.Irgendwann später wirst du diese Länge wieder in Schritte umwandeln müssen (zur Z-Kompensation).
Deine Methode ist im Prinzip das, was wir aktuell machen (also in dem entscheidenden Punkt)Nach dieser Methode spare ich mir ein Kalibrieren der DMS.
Stimmt im Prinzip, wobei man nicht vergessen sollte, dass wir hier von der Person sprechen, die das System für ein neues Druckermodell einrichtet. Diese Person hat vermutlich vorher den Drucker umgebaut, so dass er überhaupt Wägezellen hat. Derjenige kann leicht im Datenblatt nachsehen, wie viel die Wägezellen ab können. Die andere Einschätzung in mm oder gar Schritten ist auch für den deutlich schwieriger zu treffen.Der User muss nicht wissen, was die Maximalkraft der DMS ist. Er/sie muss nicht wissen, wo der optimale Platz zwecks der Vermeidung des Durchfederns ist, usw.
Nee, mit der Unebenheit hat das gar nichts zu tun.Die dabei erhaltene Distanz (=Unebenheitswert)
Wieso ist das eigentlich so aufwändig? Man legt doch nur ein beliebiges Gewicht auf die DMS, oder klebt von mir aus das Gewicht mit Tesafilm an das Hotend. Anschließend legt man das gleiche Gewicht (ggf. mit dem benutzten Tesafilm, wenn man's ganz genau nehmen will) auf die Küchenwaage und fertig.die DMS aufwändig zu kalibrieren.
Das stünde übrigens weiterhin frei, dann wäre der Kalibrationsfaktor einfach 1/65536 bei 16 bit ADCs (wegen Normierung auf 1).Oder darauf großteils oder völlig zu verzichten.
Für den End-Nutzer ändert sich ohnehin nichts, außer dass er in eienm Fall irgendwelche arbiträren Einheiten angezeigt bekommt (so er sich die Messung auf dem Display anzeigen lässt), im andern Fall eine physikalische bedeutsame Zahl.Damit ändert sich für den User aber nichts.
Ich glaube es gibt ein Missverständnis. Diese einmalig bestimmte Federkonstante würde nicht dafür benutzt werden, um bei der Abtastung die Kraft in die Distanz umzurechnen. Das passiert weiterhin mittels linearer Regression. Dabei fällt quasi als Nebenprodukt ebenfalls die (lokal effektive) Federkonstante ab, nämlich in Form der Steigung der gefitteten Geraden. Diese kann bei jedem Messpunkt unterschiedlich sein eben genau wegen der beschriebenen Effekte. Daher wird sie aber gar nicht benutzt, denn wir interessieren uns nur für den Nulldurchgang (Position bei der die Kraft gerade 0 wird). An diesem Teil möchte ich gar nichts ändern. Das funktioniert aktuell bereits prima und wird so bleiben.Nehmen wir einen Extremfall:
[...]
* Nach dem Abtasten wird eine Matrix erstellt (die schief/schräg im Raum steht).
* Die Z-Kompensation wird vermutlich nicht optimal funktionieren.
Ja soll ich das jetzt wieder künstlich schlechter machen? Wir sind ja bereits auf einige wenige Mikrometer genau...Wie gesagt:Wenn ein User unbedingt die letzten 1/1000-stel Millimeter herausholen will, kann er/sie gerne die Firmware nach Herzenslust modden.zero k hat geschrieben:Das Ding so einfach wie möglich halten - ....
Allerdings setzt das System eine gewisse Steifigkeit der Hardware voraus. Da im Original kein Fit durchgeführt wird, sondern nur am Ende ein Schwellwert (mit einigen Tricks, so dass dieser recht niedrig sein kann) benutzt wird, bleibt immer ein gewisser Offset zum wahren Berührungspunkt übrig, denn der Schwellwert entspricht ja einer Kraft. Über die Federkonstante kann die Kraft nun in eine Distanz umgerechnet werden, das ist dann am Ende der Fehler des Ergebnisses. Da die Schwelle recht klein ist und unser Drucker recht stabil, funktioniert das ganz gut, denn der Offset ist ebenfalls klein und vor allem konstant. Bei einem einseitig aufgehängten Heizbett wird man am Ende einen variablen Offset bekommen, ganz wie du es oben beschrieben hast. Meine Methode hat dieses Problem nicht, denn ich berechne den Punkt, bei dem die Kraft gerade 0 ist.Übrigens:Das kommt daher, weil sich jemand (der große "C") um die Hardware gekümmert hat (DMS samt zugehöriger Schaltung) sowie die Firmware dafür erstellt hat (vermutlich unser vermisstes Forumsmitglied RF1000, selbst). Da schon beides vorhanden war/ist, wird das Ganze für uns als User praktisch Plug&Play.zero k hat geschrieben:Im Grunde finde ich das System von Conrad nicht schlecht - es ist einfach und wirkungsvoll.
Praktisch alle bezahlbaren Stepper sind unterhalb von 8 Microsteps oder so nicht mehr linear, d.h. egal ob 16 oder 128 Microsteps, die Genauigkeit wird nicht besser. Bei unseren sieht man das eben schon früher Aber das nur am Rande.AtlonXP hat geschrieben:Der Deltadrucker wird wohl unter 32 Mikrostepps nicht sauber arbeiten können.
Ja eben doch. Schau mal bitte dieses Bild an:Auf was ich genau hinaus wollte, ich glaube ohne eine feine Mikrostepp Unterteilung wird auch das Messen nicht funzen.
Tatsächlich bleibt das sehr lang ziemlich perfekt linear. Die geometrischen Effekte, auf die du anspielst, sind weitestgehend vernachlässigbar. Ich denke, vorher würde es andere Effekte geben wie unelastische Deformationen - dann sind die DMS oder ein anderes Bauteil aber anschließend hin. In der Praxis habe ich gelegentlich Effekte gesehen, bei denen ab einem gewissen Punkt die Steigung einen Knick macht, danach aber wieder linear bleibt. Das passiert bei meinem Heizbett, da ich eine Dauerdruckplatte aufliegen habe, die natürlich nicht perfekt flächig auf der Keramikkachel aufliegt. Wenn dann der Luftspalt weggedrückt ist, wird das System natürlich steifer. Abgesehen davon konnte ich bis 1000 oder 2000 Digits keine Nichtlinearitäten feststellen - weiter bin ich meiner Erinnerung nach lieber nicht gegangen...AtlonXP hat geschrieben:Man kann und sollte davon ausgehen können, dass bei kleinen Digits also annähernd null Kraft
und geringfügig darüber, der Fit linear verlaufen muss.
Bei größeren Kräften, würde dieser wohl in eine Parabel enden, wegen dem Durchbiegen der DMS.
Naja, so weit würde ich mich nicht mal aus dem Fenster lehnen wollen im Moment. Es gibt schließlich auch andere Beiträge wie z.B. ADC-Rauschen, mechanische Verspannungen etc. Tatsächlich könnte man aber mal versuchen, die selbe Messung an exakt den selben Positionen mehrfach aufzunehmen, um zu sehen, ob das reproduzierbar ist. Vielleicht noch mit kleineren Schritten, um zu sehen, ob das eine glatte Kurve ergibt oder eher ein Rauschen. Damit ließe sich das dann unterscheiden. Allerdings möchte ich mal an dieses Video erinnern, das ich vor einiger Zeit mal hier im Forum gepostet habe: https://www.youtube.com/watch?v=Pls0pCBMpT4 Das zeigt doch recht deutlich, in welchen Bereich man sich hier lieber nicht begeben möchte.Das was da vom fit abweicht, sind also ungleichmäßige Mikrostepps.
Das Diagramm wurde mit dem RF1000 erstellt. Da haben wir Vollschritte von 0.0125mm. Im Diagramm haben wir demnach ungefähr Halbschritte. Ich bin mir ziemlich sicher, dass die Genauigkeit auch mit Vollschritten immer noch völlig ausreichen würde.In deinem Diagramm arbeitest du im Hundertstell Bereich.
Nein. Du beschreibst ganz grob das Verfahren der Conrad-Firmware. Meines funktioniert anders. Ich habe das hier schon mal in Detail aufgeschrieben:zero K hat geschrieben:Also, du fährst in sicherer Höhe[...]
Nein, bei "deinem" Verfahren muss es einen Schwellwert geben, unter dem man beim wieder hochfahren den Messwert wieder als "0" interpretiert. Dieser Schwellwert ist zwar klein, aber nicht 0. Er entspricht also einer endlichen Kraft. Daraus resultiert eben genau jener quasi-statische Offset, von dem ich in meinem letzten Post schrieb. Die Conrad-Firmware ist nicht 100% offset frei!Cool, damit wird das Profil des unbelasteten Betts gemessen.
Nein, ich brauche hierfür nicht wirklich die "Federkonstante", es sei denn, ich möchte eben jenen verbleibenden Offset korrigieren. Genau das mache ich mit meinem Fit.Ich glaube auch dafür brauchst Du keine Maschinensteifigkeit.
Bei Klipper stimmt das so schon nicht. Da wird durch das Äquivalent zum Z-Offset-Scan gemessen, bei welcher realen Z-Koordinate sich der Endschalter befindet und das dann abgespeichert. Z=0 ist demnach immer genau auf dem Heizbett. (Ja das stimmt natürlich nur, wenn man sich einen festen Punkt aussucht in X/Y auf dem Bett, bei dem man diese Messung durchführt, wegen der Bettunebenheit...)AtlonXP hat geschrieben:Normaler weise sollte es so sein, dass wenn man den Homing Z- Endschalter anfährt,
der tatsächliche Maschinen Nullpunkt gesetzt wird. (Entspricht der Maschinen Norm).
Wer einem China-Kracher DMS verpassen kann, der kann auch einen anderen Z-Schalter verbauen.Bei manchen China Krachern ist es leider nicht möglich,
Logisch. Das ist ein fundamentales Problem. Das kann natürlich auch wieder wegkalibriert werden - der Z-Schalter befindet sich dann halt bei einer anderen Z-Koordinate, je nachdem ob die Dauerdruckplatte drauf ist oder nicht - aber man muss natürlich aufpassen, die richtige Kalibration zu verwenden.Da nun das Druckbett höher ist wird es zu einer Kollision kommen.
Das ist eigentlich nicht der Grund. Ich hatte mit einem Hall-Sensor als Z-Schalter experimentiert, was nicht gut funktioniert hat, und ich wollte aber nicht wieder zu der alten (ohnehin dauer-provisorischen) Lösung zurück. Seitdem benutze ich mehr aus Faulheit Z-Max. Funktioniert so gut, dass ich wohl vorerst dabei bleiben werde.@Martin, ich denke du kennst das Problem und fährst darum deinen Z- Max. Endschalter an.
Das ändert an dieser Problematik rein gar nichts, denn weiterhin ändert sich der Abstand zwischen Bettoberfläche und Z-Schalter. Ob der Z-Schalter bei Z=1mm oder Z=180mm ist, ist ja egal.Du hast deinen max. Wert genau definiert und somit weiß der Drucker wo er stehen sollte!
Jetzt wird's doch arg off-topic. Ich will darauf jetzt nicht im Detail eingehen, es sei nur gesagt, dass die Lösung für mich so extrem gut funktioniert. Die von dir beschriebenen Fehlerquellen sind also wohl in der Realität vernachlässigbar.Jetzt kommt aber der Pferdefuß bei dieser Geschichte:
Hm…mhier hat geschrieben:Jetzt wird's doch arg off-topic. Ich will darauf jetzt nicht im Detail eingehen, es sei nur gesagt, dass die Lösung für mich so extrem gut funktioniert. Die von dir beschriebenen Fehlerquellen sind also wohl in der Realität vernachlässigbar.Jetzt kommt aber der Pferdefuß bei dieser Geschichte:
Wie gesagt, das Thema ist komplett off-topic, denn für Klipper ist es egal, wo genau der Endschalter sitzt. Wichtig ist nur, dass man noch die Bett-Oberfläche erreichen kann.AtlonXP hat geschrieben:Das scheint ein volles Zehntel zu sein, bei einer Bauraum Temperaturänderung von nur 30 C°!