I am currently working on a system with a BLDC motor attached to a non linear spring on which a user can apply a force. Meaning the torque applied on the motor's output is most of the time unknown.
What matters for my application currently is the position of the motor regarding its reference. I control this motor using a DRV8323 chip and a single PWM as input to this chip. The driver chip is doing the phase commutation itself thanks to Hall sensors.
The control strategy that I currently use is the following :
- Given a reference position as input to a PID
- The PID compute the position error and gives as output the duty cycle of the PWM send to the DRV8323 chip. (here there is an implicit conversion from position to speed but it works)
It happened to me already that the motor coils burnt because of current going crazy because of bad configuration or mechanical problems. Also, I saw in a lots of article that BLDC motor are most of the time control with nested position > speed > current loops.
So my question are the following :
- What would be the benefits of implementing this full nested control architecture for the control compared to my current implementation ? Taking into consideration that what I want to control is the motor position but overshoot, acoustic noise and heat generation are also a concern.
- Could a simple if condition on a specific current thresold would be enough to protect the hardware from overccurent accident ?
Thank you in advance for your help !!