Other Parts Discussed in Thread: MOTORWARE, BOOSTXL-DRV8305EVM
Hi
I am using this chipset and Motorware software to acheive a product design. I have done all the exercises through lab11a to understand the scope.
The motor I am trying to use is a 3-phase brushless sensorless PM motor with 700uH for Ls_d and Ls_q, 0.2406 Ohm Rs and 0.118 as the rated flux as identifed by the labs. The motor is rated @ 24V and peak current of 15.6A. The custom board is exactly as BOOSTXL-DRV8305EVM and has the same sense resistors and gains. The motor is rated at a max no load speed of 3500 rpm @ 24V, max torque of 100Ncm.
The application requires the motor to operate from 50rpm @ continuous torque of 40Ncm and peak torque of 65Ncm with increasing speed and lower torque to the top end of 2500rpm with a continuous torque of 38Ncm and peak of 50Ncm.
Issues noticed
1. I followed through the excel spread sheet to evaluate USER_IQ_FULL_SCALE_FREQ_Hz and it came out to 91.6 however any less than 400 does not make the motor spin.
2. I did manage to get the labs going with PI for current and speed loops through lab 7. Using lab 7 characterization, the motor tuning works very well, It can start with a cogging load (hysteresis brake) of over 65Ncm no issues, it does do a little initial overshoot at this load but that is no concern. The issue is that it does not reach 2500rpm at 50Ncm. I pursued the field weakening lab9 and overmodulation lab 10, however, the moment I load Lab 9 which is sequentially next with the InstaSPIN for the device, the speed control goes unstable. I tried to incorporate field weakening using lab 7 but had link errors which tells me the object files for Lab 7 and Lab 9 are different and therefore I cannot use lab 7 with field weakening or overmodulation.
3. Using the same parameters and following through the labs into lab11a which as advised by the instaspin labs document suggest as a baseline for application development, I cannot tune the motor the way i can in lab 7. Everything beyond lab 7 does not even get the motor started at 60rpm with 65Ncm load at lower loads the loop is unstable. I used the same constant for the current and speed control as lab 7 detailed below. the kp_Idq and KI_Idq are calculated using the excel spreadsheet. The Ki_idq was identical the kp_Idq calculated is 2.338 and the lab computed is 1.97 and the former makes a positive difference using lab7 object code.
gMotorVars.Kp_Idq = _IQ(2.3338); //CTRL_getKp(ctrlHandle,CTRL_Type_PID_Id);
gMotorVars.Ki_Idq = _IQ(0.0229); //CTRL_getKi(ctrlHandle,CTRL_Type_PID_Id);
gMotorVars.Kp_spd = _IQ(9.89); //CTRL_getKp(ctrlHandle,CTRL_Type_PID_spd);
gMotorVars.Ki_spd = _IQ(0.0156); //CTRL_getKi(ctrlHandle,CTRL_Type_PID_spd);
I use the kp/ki_Idq for both PID[1] and PID[2] and the Kp/i_spd for the PID[0]. I tried to tweak the spd controller gains for a varied values but cannot get the same response as seen using the lab7.
Questions
1. what am i missing. Is this behavior expected?
2. Given the motor parameters, is it possible to achieve the rpm and torque required?
Kindly advise.
Regards,
Gmali