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.

Need +/- 2.5% speed regulation with DRV10983 on a fractional motor liquid pump.

Other Parts Discussed in Thread: DRV10983

Hi,

I need +/- 2.5% speed regulation with  DRV10983 on a fractional motor liquid pump. We are pumping a liquid with variable viscosity and we need to estimate the pumped liquid volume using the motor speed. How do you suggest this can be done?

  • Hi Michel,

    Our experts have been notified and should reply soon.
  • Michel,

    To estimate the pumped liquid, do you have any other controller in your system ?

    If you have , that controller can read FG for speed and control the PWM input to change the speed and the controller will decide the speed regulation.

    DRV10983 does not support speed control loop .

    Thanks,

    Jasraj

  • Jasraj,

    We do have another controller supervising the values of this motor driver. This should provide proper speed regulation. However the instruction talks about open and close loop operation. I though that close loop was indirectly related for speed regulation?

    Thanks,

    Michel
  • Michel,

    Sensor less BLDC motor drive works with estimating rotor position because hall sensor feedback is not present.
    The term open and close loop is defined in that context here. While starting since we don't have back emf to estimate the rotor position we have to spin in open loop. Once we gain speed, back emf is available and then we can accurately predict the rotor position which referred as closed loop.

    The speed close loop needs to be implemented externally. Your controller will be able to realize this.

    Thanks
    Jasraj
  • Jasraj,

    In this case, I assume it is normal for motor to slow down under load? Is it possible to establish a load-speed relationship?

    Is it possible to know the power, torque or current injected into the motor from the motor drive?

    Thanks,

    Michel

  • Michel,

    Motor will definitely slow down under load. By how much, largely depends on the complete system and load (including inertia, electrical power input, motor efficiency etc). You can establish this relationship by running load tests with the drive. If the relationship is linear across all the variations (like input voltage, loads) you can drive is with x duty cycle for y output.

    From DRV10983, You can read the speed directly (on FG pin or I2C register). The current is measured inside the device (for algorithm and protection) but is not given out to user.

    Thanks,

    Jasraj

     

  • Hi Jasraj,

    The speed values we are getting from I2C seems coarse. Since we are using the motor in the lower speed range of the available speed, is it possible to rescale the speed read from I2C and get a better speed resolution?

    Regards,
  • Hi Michel,

    I don't think that is possible with this part. What electrical speed are you running your motor?

    Regards,
    Krushal
  • Hi Krushal,

    The motor speed is about 300 RPM.

    Thanks,

    Michel

  • Michel,

    What are the number of poles for the motor?
    DRV10983 will measure the time between the two commutation instances for calculating speed which means it is going to read the electrical speed.
    For speed measurement, MotorPeriod Register information will be more accurate than MotorSpeed.

    Thanks,
    Jasraj
  • Hi Jasraj,

    It is a one pole pair motor.  The motor is 20W, 24 volts.

    Here are the motor parameters load into the driver.  Do you see any improvement that can be done?

    Kind regards

    /*0x20*/ 0x3DU, // phase resistance 1 Ohm; PWM freq 25 kHz (unused)
    /*0x21*/ 0x39U, // full cycle adjustment; Kt = 66 mV/Hz
    /*0x22*/ 0x3BU, // fixed time commutation; 220us
    /*0x23*/ 0x00U, // disable Initial Speed Detect
    /*0x24*/ 0x50U, // Open Loop current 0.4A; rate 1.5 VCC/s; break disable
    /*0x25*/ 0xFBU, // Control coeficiant 1; OpenL acc 1st 9.2 Hz/s; 2nd 0.22 Hz/s2
    /*0x26*/ 0x6AU, // Open-close L th 10.4Hz; Align Time 1.3s
    /*0x27*/ 0xA0U, // no motor (en); abnormal Kt (dis); abnormal speed(en);
    // current limit lock (dis); Inductive AVS disable;
    // mechanical AVS disable
    /*0x28*/ 0xDFU, // acceleration current 2.6A, lock current limit 3.2A (unused)
    /*0x29*/ 0xD7U, // lock stuck in closed loop (en); ClosedL acc 0.19Vcc/s
    /*0x2A*/ 0x09U, // Initial Position detection (disable); lock open loop stuck (en)
    // Buck regulator 5V; IPDClk 24Hz (unused)
    /*0x2B*/ 0x0CU // FG outputs in open and closed loop (FG pin unused);
    // FG cycle 1 pulse per cycle (FG pin unused);
    // abnormal Kt th 3/2Kt-3/4Kt (unused)
    // speed input analog (unused); Closed loop enabled

  • Jasraj,

    We need to improve our settings. At 100RPM we are getting alternate messages lock_error/operating_normally for about 30 seconds then the motor runs normally. With same operating conditions, at 200RPM, the motor runs without lock error.

    What do you suggest?

    Kind regards,
  • Michel,

    With One pole pair, the electrical speed is at 5 Hz, accurate measurement of this kind of small speed with this device is difficult.
    For the Settings, I hope you have followed www.ti.com/.../slou395c.pdf
    For Lock, which lock bit is being set ? That would help to understand the problem.

    Thanks,
    Jasraj
  • Jasraj,

    The rotor speed is 20Hz not 5Hz as I previously posted. Sorry, I am taking over the code maintenance.

    Using the Period instead of Speed is more precise even at 20Hz, so we will use it instead.

    I was revisiting my Phase Resistance and the leaflet does not specify if it is the Phase to Phase value or Phase to neutral. The manufacturer in our case gives a Phase to Phase of 1.5 to 2.0 Ohms. Can you be more specific on this?

    If a range of winding resistance is given by the manufacturer, what is preferable to set the resistance value in the code. The highest, lowest or mid range?

    I will come back to my lock error later once the winding resistance has been answered.

    Regards

    Michel
  • Michel,

    Section 2.2 is Tuning Guide explains R calculations. We need Rph-ct value.

    For star connection motor, if you measure R ph to ph, you can just divide it by 2. You can put the nominal value of Resistance. Also, Please note the GUI will take nearest value of resistance for appropriate digital value. 

    Thanks,

    Jasraj

  • Jasraj,

    I implemented an updated value for the winding resistance.

    Back to the error, I get Lock Detection current limit and Kt abnormal. I get those values at low speed i.e. 6 rev/sec. About current limit, I will recheck the motor parameters.

    As for Kt, is it normal to get abnormal kt at low speed, or is possible to fine tune the value?

    Regards

    Michel

  • Jasraj,

    My learned Kt is 190, read from running the motor at speed 16 and 22 rev/sec. My implemented Kt is 66. Can I use the learned Kt (190) to run the motor instead?

    Kind regards

    Michel
  • Michel,

    Was there any specific reason for putting the data which is so off? Ideal number is the one which comes after observing the back emf waveform and calculating thereby if the designed number (of back emf constant) is unknown.

    Jasraj
  • Jasraj,

    There is no documentation in my code as to why 66mv/Hz was chosen instead of 190mv/Hz.

    I implemented Kt=190mv/Hz and the motor cannot get up to speed. I revert back to 66mv/Hz.

    I looked at the manual slou395c and I could not find any reference to the use of the learned Kt received from the driver. What is learned Kt used for and what can I do with it?

    Regards

    Michel

  • Hi,

    I just want to make sure that I understand this correctly.

    The DRV10983 does not have an internal controller for the Speed/RPM of the connected motor. The same SpeedCtrl1&2 value for different motor loads will lead to different RPMs.

    We would have to design our own controller (ex. PI) which has to read MotorSpeed1&2 and then adjust the SpeedCtrl1&2 value.

    Is this right?

    Thanks.

  • Hi,

    Yes it can be done externally, but I think finding the threshold speed at which motor will switch to close loop speed control from open loop control would be challenging. It will vary as load varies.

    Once in close loop then I think speed can be regulated using PI controller.  

    Thanks