Hi,
we are trying to identify and run one hobby motor. It is 12pole very low speed outrunner, 41rpm/V with huge RS something around 22.4Ohm line to line. We are unable to keep motor running during Flux and LS identification phase and identification always fail. Also RoverL phase set RoverL to infinity. Cause it is hobby motor I don't have any specific data about it so only link to this motor: www.hobbyking.com/.../__53939__Turnigy_HD_3508_Brushless_Gimbal_Motor_BLDC_EU_Warehouse_.html
I tried to play a lot with USER_MOTOR_RES_EST_CURRENT, USER_MOTOR_IND_EST_CURRENT, USER_MOTOR_MAX_CURRENT and USER_MOTOR_FLUX_EST_FREQ_Hz. During RampUp motor is rotating just fine, but I am not able to achieve more than 60Hz for stable rotation. I am little bit lost in this so any help will be fine. We are using our own proven HW.
Some parameters of HW:
#define USER_IQ_FULL_SCALE_FREQ_Hz (800)
#define USER_IQ_FULL_SCALE_VOLTAGE_V (36.0)
#define USER_ADC_FULL_SCALE_VOLTAGE_V (30.3)
#define USER_IQ_FULL_SCALE_CURRENT_A (16.5)
#define USER_ADC_FULL_SCALE_CURRENT_A (33.0)
#define USER_VOLTAGE_FILTER_POLE_Hz (795.96)
My second question is about Current reconstruction algorithm, different and well known motor than in issue above. I was playing with variable minWidth_microseconds and I set it to value 3.5us, which was fine and current reconstruction works well until motor suddenly stop spinning. PWM stuck at last value so motor windings was still energized, mainISR interrupt stop working. Find out that current reconstruction algorithm set compare register to bigger value than period register of PWM, which was finally caused by large value of variable minWidth_microseconds .
Is this expected behavior, or is this a bug?
I can't find any note or warning that minWidth_microseconds is untouchable and change can cause motor and HW damage. Now I use this workaround in the end of HAL_setTrigger function.
if (pwm1->CMPB >= pwm1->TBPRD) pwm1->CMPB = pwm1->TBPRD/2;
We are using MotorWare 15.
Regards,
Jozef