Part Number: DRV8301-69M-KIT
I have a need to position the shaft to a specific position and put a small force to hold it there. Is there a way I can turn on a fixed current through the motor windings to hold that position?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: DRV8301-69M-KIT
I have a need to position the shaft to a specific position and put a small force to hold it there. Is there a way I can turn on a fixed current through the motor windings to hold that position?
What motor control algorithm are you using? InstaSPIN-FOC? or others? Which lab are you using if it's InstaSPIN-FOC?
I am using InstaSPIN-FOC. The project is based on Lab5b and uses a BLDC motor with no encoder. What I am trying to do is to let the motor run and then stop. Where ever it stops I would like to hold that position for a short time. I have an 11 pole pair motor so if I could send some current through 1 or 2 windings it would seem it would pull the motor shaft to the nearest pole alignment and hold it there. I would like to turn on a static current to hold it in that position. I don't need a lot of holding power and I realize the motor would have to dissipate the energy but it is a very hearty motor. It would need to hold this position for a short time (few minutes) and then the firmware would timeout or the operator could decide to restart the motor to move to another position. How can I turn on a static current similar to this or is there no such way within the TI firmware?
Do you need to stop and hold the motor at a precise position? And need to stop and brake the motor immediately when it's running at a high speed? If yes, it's not easy and it's very complex to implement this function in lab05b if the motor has a large inertia.
If you just want to hold the motor when it stops, you might try to disable the speed loop and set a positive Id reference current as below codes.
// set the enable controller flag to false
CTRL_setFlag_enableCtrl(ctrlHandle,false);
// Set the Iq reference that use to come out of the PI speed control
CTRL_setId_ref_pu(handle, id_ref);
No I do not need it to be in a precise position or to actually stop the motor. The mechanical load will stop the motor just fine when the speed is set to zero but once it is stopped I need some force to keep it from moving. Not a lot but some. Do you have a starting point for what current value to try for id_ref?
That depends on your motor and system. You might try to set 10% of the rated current of the motor first, if not enough, you can increase it till the motor can be held or pulled to the position.