TI E2E Community
Motor Drivers Forum
I'm testing BLDC Motor with my own board and modified firmware from "Instaspin BLDC GUI Project".
The specification of BLDC Motor is as following,
- Rated Voltage / Power / RPM / # poles : 12V / 50Watt / 4000RPM / 8 poles
The speed controller is work well at no load condition ( the maximum rpm is 4,700RPM ), but at full load condition the regulated speed is 3,500RPM.
When I use the "DRV8301-HC_EVM RevC" the regulated speed is 3,500RPM at full load condition, but the other sensorless controller can regulate 3,700RPM.
In this case, what's the tuning points?
Have you tried the InstaSPIN-BLDC Lab or watched the video
video platformvideo managementvideo solutionsvideo player
You need to tune the commutation point first.
Then implement a speed loop if you want speed regulation.
The video is the first one (Piccolo) or second one (Stellaris)
Thank you for your reply. I have checked the following things to tune the controller well.
1. Voltage divider resistor(95.3Kohm, 4.99Kohm : 1%) and filtering capacitor(15nF) : Increase the cut-off frequency.
2. Threshold value : from 0 to 5 @ _iq format
3. Change the ADC Result for Phase Voltage : from ADCRESULTx << 0 to ADCRESULTx << 5
Currently, the maximum speed is 3,500RPM but the current waveform was imbalanced, that the 2 phases are quasi-sinusoidal or quasi-triangular waveform and remain phase have long off period. This phenomenon is not at a fixed phase, it happen randomly. The balanced current waveform was regulated up to 3,225RPM. Would please give to me an advice?
what is your Vth you use for commutation? Are you sure you are commutating correctly? Have you tried advancing the commutation (lowering the Vth) to boost speed?
what is the ouput of the speed PI controller. you would expect it to be saturated at .99999 if you are commanding a higher speed than you are reaching
I had reduced the Vth value to 0.05. This value is minimum one can start the motor. At this point, the speed was boosted and increased the input current, but the phase currents was imbalanced, that two phases are similar to quasi-sinusoidal or triangular waveform and remained one has very narrow turn-on period.
going back to your original problem:
The things that can affect max speed are
1. bus voltage (more V = more speed)
2. duty cycle (more duty = more average voltage applied)
3. commutation point
if you verify 1 and 2 are the same for both solutions, then you must need to tune your commutation point. I would do this w/o any speed regulation. Just use duty cycle mode to find and tune the max speed.
Thank you for your reply. I'll try find out optimal commutation point for my motor.
In addition, Would please explain to me the reason that the current waveform of two phases become quasi-sinusoidal or quasi-triangular and remain one have very short turn on period at low threshold value but the speed was increased and current was increased over rated value ?
This should not be occuring.
Have you made sure that the toggle switches are in the middle position? If they are not you could be resetting a phase, which will cause some VERY strange behavior.
It's also possible there is a HW issue....hard to debug over e2e. But from your description it seems like InstaSPIN-BLDC is measuring a back-emf value on one phase that is almost immediately over the threshold value that the other phases are commutating properly using.
I'd check this phase's back-emf reading and see if there is a HW issue.
We are using a DRV8301-HC-C2-Kit to drive a 24V, 6.5A, 2950RPM motor. However, after spending a lot of time tuning all the parameters on the GUI and in the firmware, the max speed is only 2700RPM. Can you offer some advise as to how we can increase the speed to 2950RPM? BTW, other controllers are able to achieve this speed at the same supply voltage.
my first thought goes to investigating the Bemf scaling. The DRV830x kits have a resistor divider to sense 66.32V and scale that to the 3.3V ADC. I would look at these Bemf readings. I supposed if you have a very large Bemf motor you could be saturating this value...but I doubt that is the case. On the other side, if you are only using the bottom 20V, it could be that you don't have enough resolution on the Bemf conversion as you near max speed.
Another possibility, though we haven't seen this with motors in the 3k RPM range:
The DRV8312, DRV8301/2, HVMTR hardware are also built for our FOC techniques which rely on specific filtering of the phase voltage signals
We tried changing C67,C68,C69 and managed to get marginal increase of about 50RPM. We had problem starting the motor if the capacitor is <5nF. Is there any firmware available for the DRV8301-HC-C2 kit that allows alternative type of control algorithm besides the "InstaSPIN BLDC"? I notice that the RDK-BLDC development uses zero crossing method. Thanks.
This kit is supported through controlSUITE and also includes a sensorless FOC project.
the similar DRV8312 also includes a hall BLDC and Bemf-ZC BLDC project
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.