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?
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.
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?
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,
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,
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
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,
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