MAX_LINEAR_VELOCITY verhältnis zu SCALE
Ich bin immer noch beim Verständnis eines Schrittmotors einzurichten.
Angenommen:
Schritte pro Umdrehung: 400 (entspricht 1/2 Schritt)
Maximaler Speed: sollen 100rpm sein
# RPM * (Schritte pro Umdrehung) / 60 Sekunden
# 100 x 400 / 60 = 666,66666667
[TRAJ]MAX_LINEAR_VELOCITY = 666,66666667
[JOINT_0]MAX_VELOCITY = 666,66666667
[AXIS_X]MAX_VELOCITY = 666,66666667
Wenn ich nun einen Faktor einbaue [JOINT_0]SCALE und ich mit Höchstgeschwindigkeit mich bewegen möchte muss ich, [TRAJ]MAX_LINEAR_VELOCITY * [JOINT_0]SCALE rechnen um auf die Schritte pro Sekunde zu kommen?
Zur Machbarkeit des Schrittmotors Treibers berechne ich:
[JOINT_0]STEPLEN = 5000
[JOINT_0]STEPSPACE = 5000
# Machbar_Schritt_Treiber = 1 Sekunde in Nanosekunden / ([JOINT_0]STEPLEN + [JOINT_0]STEPSPACE)
# Machbar_Schritt_Treiber = 1000000000/(5000 + 5000)
# Machbar_Schritt_Treiber = 100.000 Schritte pro Sekunde
# Das ist der Wert den der Treiber kann mit den Einstellungen.
Das wäre also OK
[JOINT_0]MAX_VELOCITY * [JOINT_0]SCALE < Machbar_Schritt_Treiber
Das würde zu einem Fehler führen?
[JOINT_0]MAX_VELOCITY * [JOINT_0]SCALE > Machbar_Schritt_Treiber
Stimmt das so was ich mir da zusammen gereimt habe?
oder bin ich auf dem Holzweg? und habe einen Denkfehler in meinem Aufbau?
Gruß Mücke
Please Log in or Create an account to join the conversation.
- strahlensauger
- Offline
- Elite Member
- Posts: 195
- Thank you received: 65
du musst also die Steigung deiner Spindel berücksichtigen, oder die Zähne am Zahnriemen, ggf die Getriebeübersetzung. Wenn du eine KUS mit 10mm Steigung hast, dann hast du für eine Umdrehung einen Weg von 10mm.
wenn du 50 Umdrehungen pro min schaffst wären das 50×10=500mm/min als max lineargeschw.
Bei höherer Drehzahl eben mehr...
Please Log in or Create an account to join the conversation.
Mein Aufbau:
Motor (Zahnriemenscheibe 20 Erhöhungen) <
> Linearführung (Zahnriemenscheibe 40 Erhöhungen)
Das macht bei mir ein Verhältnis von 1:2 oder 0,5:1
Demnach müsste mein Faktor also 2 sein?
Hmm, dann muss ich auch die Exakten Durchmesser wissen meines Antriebsrades, damit ich die Wegstrecke einer Umdrehung kenne.
Ich habe daher den Wert von [JOINT_0]SCALE = 1.00000000gesetzt.
Und folgendes gemessen und berechnet:
Soll: 50 mm
Ist: 7,18 mm
[JOINT_0]SCALE = 1
Neuer Faktor: 6,96378830083566
Soll: 20 mm
Ist: 2,99 mm
[JOINT_0]SCALE = 1
Neuer Faktor: 6,68896321070234
Soll: 10mm
Ist: 1,49mm
[JOINT_0]SCALE = 1
Neuer Faktor: 6,71140939597315
Soll: 5mm
Ist: 0,74mm
[JOINT_0]SCALE = 1
Neuer Faktor: 6,75675675675676
Faktor Berechnen:
Neuer Faktor = ([JOINT_0]SCALE * Soll Fahren [mm])/ Ist gefahren [mm]
Ich habe den Eindruck das meine Messschieber digital nicht so ganz genau ist.
Wobei ich eine Reproduzierbarkeit von nahezu 0 habe, nach 30 bis 40 vor und zurück habe ich ein abweichen von 0,01mm.
Ich sollte mir wohl eine Messuhr zulegen um den Korrekten [JOINT_0]SCALE zu errechnen.
Muss ich bei der Auswahl einer Messuhr, auf was spezielles achten?
Das sind noch ein Paar Bilder dazu.
Attachments:
Please Log in or Create an account to join the conversation.
Ich bin auch demnächst am Durchdreht, ich mache und Tue, und denke die ganze zeit das kann nicht sein ich muss das noch mal versuchen zu verstehen denn es kommt nicht das richtige Ergebnis raus, und jetzt stellt sich raus das die Riemenscheibe nicht richtig befestigt ist.
Ergo, zuerst um diese Problem kümmern bevor ich weiter machen kann. das wird dann morgen erledigt.
Please Log in or Create an account to join the conversation.
Ich werde nun die Befestigung der Riemenscheibe verändern das dauert jedoch etwas.
Da ich hierfür Infos gebraucht habe war ich beim Hersteller auf der Seite und habe da ein Info gefunden, mit der ich bisher noch nichts anfangen konnte jetzt aber glaube ich für die Berechnung ganz wichtig ist.
[Motor] zur [Zahnriemen 2 zu 1 untersetzt] zur [Linearführung 120 mm / Umdrehung]
Damit auch ich das alles verstehe und besser nach vollziehen kann habe ich mir das alles aufgezeichnet und dazu geschrieben.
Jetzt dachte ich mir das ich gerne 3 Einstellungen testen möchte.
1) 1/2 Schritt (Größer kann der Treiber nicht)
= 400 Schritte / Umdrehung
2) 1/32 Schritt
= 6.400 Schritte / Umdrehung
3) 1/256 Schritt
= 51.200 Schritte / Umdrehung
Doch wie berechne ich nun den Richtigen Faktor je Einstellungen 1-3?
Nebenfrage: Wenn sich die gesamten Werte wie z.B. MAX_LINEAR_VELOCITY nicht auf die Schritte des Motors beziehen sondern schon mit dem Faktor müsste ich je Einstellung nur den Faktor ändern und alles andre bleibt gleich?
Habe ich das so richtig in meinem Kopf zusammen gebaut?
Berechnung:
1)
* Motor = 400 Schritte
* Übersetzung (2:1)
* Linearisierung (1200mm / Umdrehung)
[JOINT_N]SCALE = (Motor * Übersetzung) / Linearisierung
[JOINT_N]SCALE = (400 * 2) / 120
[JOINT_N]SCALE = (800) / 120
[JOINT_N]SCALE = 6,66666667
6,66666667 Schritt am Motor sind demnach 1 mm.
Man ist das eine Doofe zahl.
2)
* Motor = 6.400 Schritte
[JOINT_N]SCALE = (6.400 * 2) / 120
[JOINT_N]SCALE = 106,6666666667
3)
* Motor = 51.200 Schritte
[JOINT_N]SCALE = (51.200 * 2) / 120
[JOINT_N]SCALE = 853,3333333333
Und hier stellt sich dann noch die Frage auf wie viel Nachtkomma stellen arbeitet LinucCNC und Mesa bei float Variablen?
Attachments:
Please Log in or Create an account to join the conversation.
- strahlensauger
- Offline
- Elite Member
- Posts: 195
- Thank you received: 65
Ich würde ruhig 7 oder 8 Nachkommastellen mitnehmen,
ich bin mir nicht sicher wieviele Nachkommastellen LCNC verarbeiten kann, aber mehr Stellen sollten kein Hindernis sein.
Ansonsten messen, du kannst ja 120 mm abfahren und schauen wieviele Umdrehungen dabei gemacht werden...
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Attachments:
Please Log in or Create an account to join the conversation.
- strahlensauger
- Offline
- Elite Member
- Posts: 195
- Thank you received: 65
Ich habe in Linuxcnc nichts dazu gefunden, einiges interessantes jedoch zu python:
py-tutorial-de.readthedocs.io/de/python-3.3/floatingpoint.html
Please Log in or Create an account to join the conversation.
in der INI unter dem Punkt
[DISPLAY]INCREMENTS
ich habe mich schon die gesamte zeit über gefragt warum man hier Brüche angeben kann, im zweifel hat man ja ein Unendliche nachkomme zahl.Defines the increments available for incremental jogs. The INCREMENTS can be used to override the default. The values can be decimal numbers (e.g., 0.1000) or fractional numbers (e.g., 1/16), optionally followed by a unit (cm, mm, um, inch, in or mil). If a unit is not specified the machine unit is assumed. Metric and imperial distances may be mixed: INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry.
ich teste das später mal ob man das auch beim wert SCALE machen kann.
Please Log in or Create an account to join the conversation.