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.

Instaspin BLDC

Other Parts Discussed in Thread: INSTASPIN-BLDC, DRV8301, DRV8312, CONTROLSUITE

Hi all,

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 

    <img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://c.gigcount.com/wildfire/IMP/CXNID=2000002.11NXC/bT*xJmx*PTEzMzE4NjQ*ODkwODAmcHQ9MTMzMTg2NDQ5NTk1NSZwPSZkPSZnPTImbz1kY2YyYWM5NWZmNGM*Y2MyODVkMmU5MDVm/NzNhNmNhMiZvZj*w.gif" /><object name="kaltura_player_1331864488" id="kaltura_player_1331864488" type="application/x-shockwave-flash" allowScriptAccess="always" allowNetworking="all" allowFullScreen="true" height="330" width="400" data="http://www.kaltura.com/index.php/kwidget/wid/0_6uuqb3mg/uiconf_id/48502"><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#000000" /><param name="movie" value="http://www.kaltura.com/index.php/kwidget/wid/0_6uuqb3mg/uiconf_id/48502"/><param name="flashVars" value=""/><a href="http://corp.kaltura.com">video platform</a><a href="http://corp.kaltura.com/video_platform/video_management">video management</a><a href="http://corp.kaltura.com/solutions/video_solution">video solutions</a><a href="http://corp.kaltura.com/video_platform/video_publishing">video player</a></object>

    You need to tune the commutation point first.

    Then implement a speed loop if you want speed regulation.

  • Hi Chris,

    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

  • Dear Chris,

    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:

    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.

    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.

  • Dear Chris,

    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.

  • HI,

    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.

     

    Thanks

    KKM

     

  • kuan,

    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

    •This phase voltage filtering is a NEGATIVE for InstaSPIN-BLDC
    • For many motors it will never be noticed
    • For smaller, lower inductance motors at HIGH SPEED (~15kRPM+) it will matter (and limit max RPM)
    –Also note that these types of motors typically require VERY low Vth values, be sure to use small Vth values at start-up
    –If it is a high current motor you will also probably benefit from using the Advanced Start-up features
    –These motors also typically need much higher PWM switching frequencies to try to deal with very large current ripples
    •By changing the capacitors to 10nF you will see an immediate improvement in performance
    –DRV8312: C50, 55, 56; Currently 47nF, change to 10nF
    –DRV830x: C67, C68, C69; Currently 100nF, change to 10nF

     

  • Hi,

    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.

    C:\ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_v104\PM_Sensorless

    the similar DRV8312 also includes a hall BLDC and Bemf-ZC BLDC project

    C:\ti\controlSUITE\development_kits\DRV8312-C2-KIT_v128