I am using the DRV8301-69M to drive a BLDC motor and have it working fine for generating the desired power output etc. However one thing I need is that after the motor has been ran I need for the motor to provide braking for a period of time. I am using speed control for the motor so the way I implemented the brake action was to set the speed reference to _IQ(0.00). This does work somewhat. You can tell that the current is flowing in the motor attempting to hold the speed at 0 RPM but it is noisy. The motor will slightly oscillate and/or start in one direction and then stop. I have changed the loop constants but this has not resulted in much improvement.
It occurs to me that one solution would be to simply connect all three phases to ground and this would be an effective brake. Is there a better solution to providing a brake? If I could force the PWM outputs to all turn on the three phases to ground that would seem also to work. Can someone provide some help in how I can implement a brake like this. I have a software timeout so that after 5 mins it turns off the PWM all together which is working fine. I just need the brake to be better controlled.
My project uses Lab 5b as a basis.