Part Number: TMS320F28069F
Other Parts Discussed in Thread: DRV8301, CSD18533Q5A
Dear Community,
I am working for half a year now with instaspin and it worked fine for me so far. I read a lot of posts here about current scaling but couldn't find the same problem i have.
My hardware is a custom pcb with a DRV8301 gate Driver with 3mR Rsense and im using the following FET's
BUK7Y4R8-60E

CGD and CGS are a bit high but 60kHz or 45kHz should work fine. it is planed to change them to TI-Fet's because of a lower RDSON and lower Gatecharge
I am using a Hub-Motor from China. The datasheet says "17A max Current" at 11,4NM max Torque.
I first was wondering which current is meant here. Iq current? DC-Bus current? Rms-Current of the Phase?
As Iq is my Torque-generation current i assumed this can be compare with the 17A needed for the 11Nm.
In my software I am setting the PID_spd max output according to this Value and following i'll print my user.h to understand my current scaling.
CTRLSetMinMax(ctrlHandle,_IQ(-5.0), _IQ(Tmot_des_A)); // The -5A limit is wanted here, only max shall be set.
Tmot_des_A is calculated: Tmos_des_A = (maxCurrent/((float)iqFullScaleCurrent_A)) //maxCurrent = 17A (motordatasheet)
according to user.h this is a pu-Value of 0.261
#define USER_IQ_FULL_SCALE_VOLTAGE_V (52) // V_Nom is 25.2V but FW and OverMod are used
#define USER_ADC_FULL_SCALE_VOLTAGE_V (52.899) // 75k and 5k
#define USER_IQ_FULL_SCALE_CURRENT_A (65.0) // shall be half of ADC or more (instaspin manual) should work fine as such a high current is not expected
#define USER_ADC_FULL_SCALE_CURRENT_A (110.0) // 3mOhm Gain=10
Current-Controller-Settings: (Calculated using the Formulas from the labs)
gMotorVars.Kp_Idq = _IQ(2.32);
gMotorVars.Ki_Idq=_IQ(0.0193);
gMotorVars.Kp_spd = _IQ(8);
gMotorVars.Ki_spd= _IQ(0.0193);
CTRL_setKp(handle,CTRL_Type_PID_Id,gMotorVars.Kp_Idq);
CTRL_setKi(handle,CTRL_Type_PID_Id,gMotorVars.Ki_Idq);
CTRL_setKp(handle,CTRL_Type_PID_Iq,gMotorVars.Kp_Idq);
CTRL_setKi(handle,CTRL_Type_PID_Iq,gMotorVars.Ki_Idq);
CTRL_setKp(handle,CTRL_Type_PID_spd,gMotorVars.Kp_spd);
CTRL_setKi(handle,CTRL_Type_PID_spd,gMotorVars.Ki_spd);
The maximum output setting of the speed-controller works fine.
I am running this setup on an Testbench, where Instaspin and a bigger Motor is used to apply a Load (Torque).
So as i set my Speed_out_max to 17A i expect a Torque of 11.4NM. Also i expected that either DC-current or RMS-Current of a Phase musste be in the Range of 17A.
BUT I am not reaching 11Nm. Testbench and Motorcontroller measure a Torque of about 5-6Nm before Motor is stalling, which is a half of 11.4Nm.
Also my current measurements are surprising to me.
On the Load of 5Nm i am measuring an RMS current of 8A on my Phases and a DC-Current of about 6A. 8A also seems to to be nearly the half of the expected 17A.
For me it seemed like everthing showes the half of the wanted values.
So i doubled the max Current to 34A (0.52pu).
The Torque is Increasing now and also the currents show better values. But when i try to reach the max load, at some point suddenly the motor is turning off (only sometimes). Shortly before it seems like the currrent limit function on the DRV start working because the current is oscillating and the torque is oscillating what you also can hear as a "roaring"-sound.
But why??? Rms current on the phase is not even 17A and i already tried to increase the VDS level to 1.34V which should be far enough as my RdsOn is ~3.4mOhm. ->3.4mOhm*17*sqrt(2)=0,0817V
also my DC current is still below 10A.
Does anybody see a failure in my settings? Did i understand the Currents wrong? I also observed that torque-measurement is oscillating between zero and and xNm is this normal or should this value be stable? Is it a problem that the analog-signal lines of the current and phase measurments are longer that 20mm?
Summarized my problem is that i can't reach the max Load of the motor and it starts to make "tocking" sounds with a high frequency on high Load. Also the power consumption is less than expected.
Tomorrow i hope i can built up a working prototype to test in the real world. I just want to be sure that the testbench is not the problem here.