Part Number:BOOSTXL-DRV8301
I am using the BOOSTXL-DRV8301 REVB on a LAUNCHXL-F28069M to use the motor "RoboDrive ILM25x 04".
I have tried identifying the motor following the instructions for Lab2c. At the beginning the Ls values were completely wrong and the motor didn't run properly. I adjusted some critical parameters as adviced in "GUI Quick Start Guide: InstaSPING UNIVERSAL" (qsg_gui_universal) and managed to get the right indetification (the values are similar to those on the datasheet) and the motor runs perfectly during the first part of the identification (RampUp). As soon as the Ls calculation starts, the motor starts making noise. When the identificaion process ends, the Rs and Ls parameters are similar to those found in the datasheet, but the motor does not run smoothly. In fact, at a very low speed it changes its spin direction. The higher the speed, the louder the noise and the vibrations.
I don't know what parameters I should change next. I have followed the "qsg_ui_universal" guide and I have used the "motorware_selecting_user_variables" spreadsheet. The maximum speed I want to achieve is 6000 RPM.
What should I change to make the motor run properly?
I attach the "userh.txt" file, which is a copy of the "user.h" file with the parameters that gave the best result, as I explained before. The parameters I changed are these:
#define USER_IQ_FULL_SCALE_FREQ_Hz (770.0) // 800 Example with buffer for 8-pole 6 KRPM motor to be run to 10 KRPM with field weakening; Hz =(RPM * Poles) / 120
#define USER_IQ_FULL_SCALE_VOLTAGE_V (24.0) // 24.0 Example for boostxldrv8301_revB typical usage and the Anaheim motor
#define USER_ADC_FULL_SCALE_VOLTAGE_V (26.314) // 26.314 boostxldrv8301_revB voltage scaling
#define USER_IQ_FULL_SCALE_CURRENT_A (18.0) // 20.0 Example for boostxldrv8301_revB typical usage
#define USER_ADC_FULL_SCALE_CURRENT_A (33.0) // 33.0 boostxldrv8301_revB current scaling
#define USER_PWM_FREQ_kHz (60.0) //30.0 Example, 8.0 - 30.0 KHz typical; 45-80 KHz may be required for very low inductance, high speed motors
#define USER_MOTOR_TYPE MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (7)
#define USER_MOTOR_Rr (NULL)
#define USER_MOTOR_Rs (0.25)
#define USER_MOTOR_Ls_d (85e-6)
#define USER_MOTOR_Ls_q (85e-6)
#define USER_MOTOR_RATED_FLUX (0.0)
#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
#define USER_MOTOR_RES_EST_CURRENT (0.5)
#define USER_MOTOR_IND_EST_CURRENT (-0.5)
#define USER_MOTOR_MAX_CURRENT (3.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (70.0)
#define IPD_HFI_EXC_FREQ_HZ (750.0) // excitation frequency, Hz
#define IPD_HFI_LP_SPD_FILT_HZ (35.0) // lowpass filter cutoff frequency, Hz
#define IPD_HFI_HP_IQ_FILT_HZ (100.0) // highpass filter cutoff frequency, Hz
#define IPD_HFI_KSPD (15.0) // the speed gain value
#define IPD_HFI_EXC_MAG_COARSE_PU (0.13) // coarse IPD excitation magnitude, pu
#define IPD_HFI_EXC_MAG_FINE_PU (0.12) // fine IPD excitation magnitude, pu
#define IPD_HFI_EXC_TIME_COARSE_S (0.5) // coarse wait time, sec max 0.64
#define IPD_HFI_EXC_TIME_FINE_S (0.5) // fine wait time, sec max 0.4
#define AFSEL_FREQ_HIGH_PU (_IQ(15.0 / USER_IQ_FULL_SCALE_FREQ_Hz))
#define AFSEL_FREQ_LOW_PU (_IQ(10.0 / USER_IQ_FULL_SCALE_FREQ_Hz))
#define AFSEL_IQ_SLOPE_EST (_IQ((float)(1.0/0.1/USER_ISR_FREQ_Hz)))
#define AFSEL_IQ_SLOPE_HFI (_IQ((float)(1.0/10.0/USER_ISR_FREQ_Hz)))
#define AFSEL_IQ_SLOPE_THROTTLE_DWN (_IQ((float)(1.0/0.05/USER_ISR_FREQ_Hz)))
#define AFSEL_MAX_IQ_REF_EST (_IQ(0.6))
#define AFSEL_MAX_IQ_REF_HFI (_IQ(0.6))
#define USER_MOTOR_FREQ_LOW (10.0) // Hz - suggested to set to 10% of rated motor frequency
#define USER_MOTOR_FREQ_HIGH (100.0) // Hz - suggested to set to 100% of rated motor frequency
#define USER_MOTOR_FREQ_MAX (120.0) // Hz - suggested to set to 120% of rated motor frequency
#define USER_MOTOR_VOLT_MIN (3.6) // Volt - suggested to set to 15% of rated motor voltage
#define USER_MOTOR_VOLT_MAX (24.0) // Volt - suggested to set to 100% of rated motor voltage
(Please visit the site to view this file)
#define USER_IQ_FULL_SCALE_FREQ_Hz (770.0) // 800 Example with buffer for 8-pole 6 KRPM motor to be run to 10 KRPM with field weakening; Hz =(RPM * Poles) / 120
#define USER_IQ_FULL_SCALE_VOLTAGE_V (24.0) // 24.0 Example for boostxldrv8301_revB typical usage and the Anaheim motor
#define USER_ADC_FULL_SCALE_VOLTAGE_V (26.314) // 26.314 boostxldrv8301_revB voltage scaling
#define USER_IQ_FULL_SCALE_CURRENT_A (18.0) // 20.0 Example for boostxldrv8301_revB typical usage
#define USER_ADC_FULL_SCALE_CURRENT_A (33.0) // 33.0 boostxldrv8301_revB current scaling
#define USER_PWM_FREQ_kHz (60.0) //30.0 Example, 8.0 - 30.0 KHz typical; 45-80 KHz may be required for very low inductance, high speed motors
#define USER_MOTOR_TYPE MOTOR_Type_Pm#define USER_MOTOR_NUM_POLE_PAIRS (7)#define USER_MOTOR_Rr (NULL)#define USER_MOTOR_Rs (0.25)#define USER_MOTOR_Ls_d (85e-6)#define USER_MOTOR_Ls_q (85e-6)#define USER_MOTOR_RATED_FLUX (0.0)#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)#define USER_MOTOR_RES_EST_CURRENT (0.5)#define USER_MOTOR_IND_EST_CURRENT (-0.5)#define USER_MOTOR_MAX_CURRENT (3.0)#define USER_MOTOR_FLUX_EST_FREQ_Hz (70.0)
#define IPD_HFI_EXC_FREQ_HZ (750.0) // excitation frequency, Hz#define IPD_HFI_LP_SPD_FILT_HZ (35.0) // lowpass filter cutoff frequency, Hz#define IPD_HFI_HP_IQ_FILT_HZ (100.0) // highpass filter cutoff frequency, Hz#define IPD_HFI_KSPD (15.0) // the speed gain value#define IPD_HFI_EXC_MAG_COARSE_PU (0.13) // coarse IPD excitation magnitude, pu#define IPD_HFI_EXC_MAG_FINE_PU (0.12) // fine IPD excitation magnitude, pu#define IPD_HFI_EXC_TIME_COARSE_S (0.5) // coarse wait time, sec max 0.64#define IPD_HFI_EXC_TIME_FINE_S (0.5) // fine wait time, sec max 0.4#define AFSEL_FREQ_HIGH_PU (_IQ(15.0 / USER_IQ_FULL_SCALE_FREQ_Hz))#define AFSEL_FREQ_LOW_PU (_IQ(10.0 / USER_IQ_FULL_SCALE_FREQ_Hz))#define AFSEL_IQ_SLOPE_EST (_IQ((float)(1.0/0.1/USER_ISR_FREQ_Hz)))#define AFSEL_IQ_SLOPE_HFI (_IQ((float)(1.0/10.0/USER_ISR_FREQ_Hz)))#define AFSEL_IQ_SLOPE_THROTTLE_DWN (_IQ((float)(1.0/0.05/USER_ISR_FREQ_Hz)))#define AFSEL_MAX_IQ_REF_EST (_IQ(0.6))#define AFSEL_MAX_IQ_REF_HFI (_IQ(0.6))
#define USER_MOTOR_FREQ_LOW (10.0) // Hz - suggested to set to 10% of rated motor frequency#define USER_MOTOR_FREQ_HIGH (100.0) // Hz - suggested to set to 100% of rated motor frequency#define USER_MOTOR_FREQ_MAX (120.0) // Hz - suggested to set to 120% of rated motor frequency#define USER_MOTOR_VOLT_MIN (3.6) // Volt - suggested to set to 15% of rated motor voltage#define USER_MOTOR_VOLT_MAX (24.0) // Volt - suggested to set to 100% of rated motor voltage