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.

DRV10983: Software current limit saturates current far below the set limit

Part Number: DRV10983

We are using DRV 10983 driver to drive a sensorless BLDC motor and have set the software current limit at 2.0 A. Data logs of the driver operation with software current limit disabled confirmed current drawn is less than 1.3 A, however the setting the software current limit at 2.0 A restricts current drawn to 1.0 A. Kindly evaluate as to why this could happen.

Note: The motor has been tuned as per the tuning guide available on TI website for the particular model and the above effect is observed only in some of the drivers, while the load on all the models have been tested and been confirmed to be the same.

  • Hi Jain,

    The reason why software current limit is not working as intended is because the acceleration current limit does not use a direct measurement of current. It uses the programmed motor phase resistance, programmed Kt and the software current limit threshold to limit the voltage applied to the motor as shown in below equation.

    ULIMIT = ILIMIT × RPH_CT + Speed × Kt. 

    Above equation holds good only when the BEMF voltage is aligned to the phase current. This can be verified by making sure the estimated Kt matches the programmed Kt. I believe in your case, the estimated Kt is different from programmed Kt and that's the reason why software current limit is not working correctly.

    Regards,

    Vishnu

  • Dear Vishnu,

    Thank You, for that clarification. We have an application where the speed varies constantly with command. Would the 'Dependent' setting for Lead Time Mode fix the issue of lead time alignment for us?

    Regards,

    Jain

  • Dear Vishnu,

    Also, how is the speed term in the equation for software current limit being calculated?

    Regards,

    Jain

  • Jain,

    We haven't seen any considerable amount of performance difference with the "dependent" feature enabled but you can try. Speed is calculated by calculating the inverse of motor period (consecutive rising edge zero crossings). 

    Regards,

    Vishnu 

  • Dear Vishnu,

    We would like update you on certain settings and observations and certain motor characteristics.

    1. The motor resistance (terminal to center) is actually 0.915 ohms, when we input this value the resistance automatically changes to 0.928 ohms in the DRV10983 GUI parameter settings and that is the current set value in the DRV10983 driver
    2. The BEMF constant according to the tuning guide calculations comes around to 52.17 mV/Hz but when we set the value the value changes to 51.3 automatically and that is the current set value in the DRV10983 driver
    3. With lead time mode set to 'Constant' the calculated BEMF constant changes from 36 to 60 mV/Hz in the GUI while running the motor in no load and varying the speed from 0 to max speed command, while the programmed BEMF constant is at 51.3 mV/Hz
    4. With lead time mode set to 'Dependent' the the calculated BEMF constant remains between 55 to 60 mV/Hz in the GUI while running the motor in no load and varying the speed from 0 to max speed command, while the programmed BEMF constant is at 51.3 mV/Hz
    5. The software current limit (S.C.L) is set at 2.0 A, but we see current being regulated to be below 1.2 A in both of the cases mentioned in step 3 and 4. This data is from an external micro-controller which logs the motor current register values according to the calculations mentioned in the driver datasheet

    Please confirm if the set values are right and if so, why the S.C.L restricts current under 1.2 A amperes instead of 2.0A?

    Based on the calculation equation in the datasheet for driver DRV10983

    ULIMIT = ILIMIT × RPH_CT + Speed × Kt.

    ULIMIT will increase with the Speed increase, if so, how will the speed saturate at any given speed command or is there a set speed value for each speed command which will be used in this equation ?

  • Jain,

    Thanks for the detailed explanation! If the device limits the current to 1.2A then it means that the applied voltage ULIMIT is lower. Can you try programming higher Kt? This should increase the ULIMIT and push more current into the motor. 

    Regards,

    Vishnu

  • Dear Vishnu,

    Yes we had tried increasing above the Kt above 51.3. The next value permitted by the GUI is 55 and when we did that the speed of the motor increased violently i.e at a motor speed command of 76 (15%) on GUI the motor started spinning at about 200 Hz ~ 12000 RPM.
    Also, ideally what is expected of calculated Kt? It is to stay constant even for varying speed if the lead time tuning is correct, right?

    Thanks,

    Jain

  • Jain,

    Yes, you're right. Estimated Kt should stay constant or close to the programmed/measured Kt at all speeds but we will see the Kt change with speed because we are keeping the lead time constant. Can you adjust the lead time after increasing the Kt and see if the increase in speed is gradual?

    Regards,

    Vishnu 

  • Vishnu,

    We have tried that before but when you select dependent mode changing lead times have no effect on the calculated BEMF or speed of the motor. However, in constant mode it does have an effect but the each lead time have an effect only for a specific speed, for all other speeds the calculated BEMF will be different than programmed BEMF.

    Regards,

    Jain

  • Jain,

    Do you mean dependent mode does not maintain constant Kt? If this is true, the only possible solution is to find out the best lead time at different speeds and change the lead time on the fly based on the motor speed. 

    Regards,

    Vishnu 

  • Vishnu,

    No, The dependent mode holds the Kt value constant, but while in dependent mode, changing the lead time does not have any effect on the Kt.

    Regards,

    Jain

  • Ok, so do you see any issues in dependent mode?

  • Vishnu,

    Yes, coming to that, the issue is as stated in the first message in this thread i.e, when the current limit set at 2.0 A, motor current register log shows current saturation at 1.16A even in dependent mode. However, the speed saturation seems to happen at a higher speed in dependent mode compared to constant mode. This disparity in current limit value set and actual current saturation values is the issue we are trying to understand here.

    Regards,

    Jain

  • Jain,

    I do not recommend using the motor current register to measure the phase current. Use a current probe to capture the actual current drawn by the motor.  

    Regards,

    Vishnu

  • Vishnu,

    Ok, so your opinion is the motor current registers cannot be entirely trusted for their accuracy.

    We will try to get the readings using a probe and then get back to you, but please do give us some time for this.

    Regards,

    Jain

  • Sure, thanks! I will keep this thread open.