S1 is not axeptated by GUI

Hi - sorry for the delay in my response!

The original diagram, with the potentiometer, would definitely cause a ground loop and possible damage. I’d strongly recommend using the PT01A or something similar, as then you could wire the PWM output to the ODrive’s isolated IO, which will prevent a ground loop.

Ich möchte mein Projekt um 2 weitere Motore erweitern.
Die sind aber nicht auf der gleichen Achse, haben aber fast die gleiche Drehzahl mit en wenig Schlupf. wenn ich die Motore im Drehmoment Modus betreibe ist das Drehmoment nur noch halb so hoch. welche Einstellung sollte ich verändern?

odrv = odrv0
odrv.config.dc_bus_overvoltage_trip_level = 54
odrv.config.dc_bus_undervoltage_trip_level = 10.5
odrv.config.dc_max_positive_current = math.inf
odrv.config.dc_max_negative_current = -math.inf
odrv.config.brake_resistor0.enable = False
odrv.axis0.config.motor.motor_type = MotorType.PMSM_CURRENT_CONTROL
odrv.axis0.config.motor.pole_pairs = 14
odrv.axis0.config.motor.torque_constant = 0.103375
odrv.axis0.config.motor.current_soft_max = 30
odrv.axis0.config.motor.current_hard_max = 49
odrv.axis0.config.motor.calibration_current = 1
odrv.axis0.config.motor.resistance_calib_max_voltage = 2
odrv.axis0.config.calibration_lockin.current = 10
odrv.axis0.motor.motor_thermistor.config.enabled = False
odrv.axis0.controller.config.control_mode = ControlMode.TORQUE_CONTROL
odrv.axis0.controller.config.input_mode = InputMode.PASSTHROUGH
odrv.axis0.controller.config.vel_limit = 10
odrv.axis0.controller.config.vel_limit_tolerance = 10
odrv.axis0.config.torque_soft_min = -math.inf
odrv.axis0.config.torque_soft_max = math.inf
odrv.can.config.protocol = Protocol.NONE
odrv.axis0.config.enable_watchdog = False
odrv.axis0.config.encoder_bandwidth = 100
odrv.hall_encoder0.config.enabled = True
odrv.axis0.config.load_encoder = EncoderId.HALL_ENCODER0
odrv.axis0.config.commutation_encoder = EncoderId.HALL_ENCODER0
odrv.config.enable_uart_a = False

Kann ich odrv.axis0.controller.config.vel_limit = 10 mit PWM über GPIO8 regeln?

Entschuldige meine deutschen Fragen. aber ich habe festgestellt das bei Übersetzungen einige Fakten nicht korrekt sind.

You likely need to tune your velocity gain, as this is used for limiting torque as the motor approaches vel_lim. See here: Controller — ODrive Documentation 0.6.11 documentation

Yes, you can also use PWM to control vel_lim

Ja das hat funktioniert. aber das Drehmoment ist dann abhängig von vel_lim. ich suche eine Einstellung bei dem das Drehmoment unabhängig von der Drehzahl maximal bleibt und die Drehzahl der Motoren einen kleinen Schlupf zulässt.

You can increase vel_lim or further tune vel_gain. Note that the maximum stable vel_gain for velocity limiting in torque control mode will be the same maximum stable vel_gain as in normal closed-loop velocity control mode. So you can tune in velocity control then validate in torque control mode. If vel_gain is too high, there may be oscillations while approaching vel_lim.

Alternatively you can just disable velocity limiting in torque mode: odrv0.axis0.controller.enable_torque_mode_vel_limit = False

Habe ich schon probiert
Connected to ODrive S1 002190761B34 (firmware v0.6.11) as odrv0
In [1]: odrv0.axis0.controller.enable_torque_mode_vel_limit = False

AttributeError Traceback (most recent call last)
File :1
----> 1 odrv0.axis0.controller.enable_torque_mode_vel_limit = False

File ~\AppData\Local\Programs\Python\Python314\Lib\site-packages\odrive\sync_tree.py:28, in SyncObject.setattr(self, key, value)
26 exists = (key in self.class.dict) or (key in self.dict)
27 if not exists:
—> 28 raise AttributeError(f"Attribute {key} not found.")
29 object.setattr(self, key, value)

AttributeError: Attribute enable_torque_mode_vel_limit not found.

Sorry, it’s odrv.axis0.controller.config.enable_torque_mode_vel_limit = False

aber jetzt kann ich die Geschwindigkeit nicht mehr regulieren

kann ich im Drehzahl Modus ein Tonband einstellen um den schlupf auszugleichen?

Yes, you can set the torque limits while in velocity mode. However, velocity limited torque mode and torque limited velocity mode are very similar in performance. I would strongly recommend tuning the vel_gain. You can follow this guide: Tuning the Controller — ODrive Documentation 0.6.11 documentation

Ich habe bei Tuning the Controller verschiedene Varianten ohne erfolg Probiert. Ich möchte eine Steuerung wie bei einem allrad Auto bei dem alle räder be jeder Geschwindigkeit das maximale Drehmoment abgeben auch bei kurvenfahrt. die Geschwindigkeit soll aber nach oben begrenzt sein.

You’re just using hall sensors, right? That might be an issue, those are so low resolution that you can’t tune the vel_gain very well, which affects how well torque mode will work with velocity limiting. Are you able to add an external encoder?

experimentell kann ich da was basteln. bei meinem Projekt sehe ich keine Möglichkeit einen stabilen Encoder anzubringen.

Ich habe das mit


MKS FocEncoder
„001
M-O-X-X-02060
Probiert.
Die Ergebnisse sind ähnlich wie beim Drehzahlmodus.
Ich möchte gern eine Toleranz in der Geschwindigkeit der verschiedenen Motore.

Unbenannt
kann ich diese Werte auch erzielen wenn ich den Spinnout in den griff kriege?

mit hall Sensoren

der Drehmomentmodus ist für mich wahrscheinlich der richtige.