Kennlinie der Motoren am TXT-Controller
Verfasst: 28 Dez 2022, 14:19
Hallo zusammen. Es ist ja bekannt, dass die FT-Motoren nicht linear zur eingestellten TXT-Geschwindigkeit laufen. Ich denke mal, dass das auch bei anderen Controllern so ist. Im Forum habe ich zum Thema "Kennlinie" nichts passendes gefunden. Ich habe mithilfe einer Küchenwage und einem am Motor angebrachten Hebel die Kennlinie bestimmt und schlage eine Kompensation vor, die einfach zu berechnen ist:
Motor: S-Motor
Controller: TXT
Ausgleichskurve: Kraft = (Wert/512) ^ alpha
alpha aus Messdaten: 0.8
Damit der Motor in beide Richtungen funktioniert, muss noch das Vorzeichen gesondert betrachtet werden. In Python sieht das dann z.B. so aus
Bei Bedarf könnte ich noch das Robopy-Programm und eine Tabelle bereitstellen, so dass wir auch andere Motoren und Controller durchmessen können.
Motor: S-Motor
Controller: TXT
Ausgleichskurve: Kraft = (Wert/512) ^ alpha
alpha aus Messdaten: 0.8
Damit der Motor in beide Richtungen funktioniert, muss noch das Vorzeichen gesondert betrachtet werden. In Python sieht das dann z.B. so aus
Code: Alles auswählen
import numpy as np
alpha = 0.8
def value_to_force(value):
value = np.clip(value/512, -1, 1)
return np.sign(value) * np.abs(value)**alpha
def force_to_value(force):
force = np.clip(force, -1, 1)
return 512 * np.sign(force) * np.exp(1/alpha * np.log(np.abs(force)+0.001))