I am seeking assistance for a project involving the synchronization of brushless DC motors driven by Odrive with stepper motors controlled by another system, specifically for torque measurement purposes.
My goal is to implement a control scheme akin to position control mode, where the DC motor’s torque increases as it deviates further from a designated reference point. At this reference point, the torque output of the stepper motor is ideally not externally displayed. This setup would facilitate torque measurement of the stepper motor using encoder readings or exploring alternative torque measurement methods.
I would greatly appreciate any insights, suggestions, or guidance on how to realize this control scheme within the Odrive framework. Additionally, if there are alternative torque measurement solutions compatible with Odrive that you would recommend, I am eager to explore those options as well.
Thank you in advance for your valuable assistance and expertise.
This should be fairly straightforward! If you set vel_integrator_gain to zero, then the motor will output a torque equal to deviation * pos_gain * vel_gain, where deviation is in units of revolutions.
You can also just directly command a torque to the motor and see when it overcomes the stepper’s holding torque.
Note all of this requires the motor’s torque_constant to be accurate – you can estimate this fairly well from the motor’s KV (kt = 8.27/kv), though for applications like this it can be helpful to calibrate this using an external torque transducer.
Would definitely recommend an ODrive S1/Pro for this - their current (and thus torque) control is more accurate than the v3.6’s.
I believe I omitted a crucial point in my previous message. Brushless motors do not directly resist the stepper motor; rather, they resist it through the combination of the stepper motor and the output shaft of the reduction gear. Therefore, attempting to utilize ODrive to drive a brushless motor to overcome the holding torque of the stepper motor may lead to inaccurate results. Regarding the proposal to gradually increase the output torque of ODrive until the stepper motor stalls and then record the torque at that point, I would like to inquire about its feasibility.
Furthermore, regarding the occurrence of abnormal motor heating during my practical testing with the ODrive 3.6 56V version, it’s essential to note that this issue manifested on several occasions, primarily during position control in closed-loop mode. In these instances, the brushless motor suddenly lost control, failing to maintain a consistent position. It became effortlessly manipulable by hand and sometimes even started rotating unexpectedly after manual intervention. Consequently, rapid motor heating ensued. Due to the alarming rate of temperature increase, I was compelled to swiftly turn off the power switch to prevent potential damage to the motor. As a result, it has been challenging to pinpoint the exact cause of the problem. This situation has raised concerns regarding safety. Could you kindly provide insights into the typical occurrence and potential causes of this phenomenon? Furthermore, guidance on how to diagnose and prevent it would be greatly appreciated.
Your assistance in addressing these concerns would be greatly appreciated.
Not exactly sure what you’re referring to with “the combination of the stepper motor and the output shaft of the reduction gear”. Do you mean the BLDC is connected to the stepper through a gear? If you’re just testing stepper torque, why not directly shaft couple them?
Nine times out of ten, the sort of erratic motor heating you’re describing is an encoder issue - usually the encoder slipping relative to the motor shaft, or calibration having been done under load.
Thank you for your suggestion regarding the project I’m working on, which focuses on measuring the torque of the finished actuator to ensure it functions correctly. The aim is specifically to assess the actuator, distinguishing from assessing the stepper motor’s torque. The actuator comprises a stepper motor and a gear reduction assembly, thereby connecting the brushless motor to the stepper motor through reduction gears. Moreover, concerning your mention of a potential encoder issue, I indeed faced a situation where my encoder short-circuited and burned out during subsequent testing, which I suspect was due to the supply voltage. I have now acquired a new encoder and will continue testing to determine if the same problem occurs again. I appreciate your support and the valuable advice provided through the community. As I am not fluent in English, there may be some inaccuracies in my expressions that could lead to confusion, for which I hope you can understand.