I’m trying to achieve rapid accelerations on multirotor motor. The motor is a 28 magnetic pole and thus needed electrical radians per mechanical rotation is higher. That causes that I cannot get idle speed over 680rpm (min.eangvel = 1000) for example. The startup starts the motor nicely most of the times, but sometimes it needs rather long time and current to make motor start. I couldn’t make it work better.
I have done “full” motor identification and motor runs nicely on full speed curve as long as there is no rapid accelerations. When there is high accelerations, the motor starts to twitch on low speeds quite often.
Control mode is RPM control mode.
I have tried several different parameter combinations but haven’t found suitable ones yet
eangvel_ctl_kp = 0.012
eangvel_ctl_ki = 0.005
m.eangvel_rampup = 15 000 -> very slow acceleration
m.eangvel_rampdn = 5 000 -> very slow deceleration
These accelerations on this motor would be suitable for plane, but not for multirotor. Then i tried following.
m.eangvel_rampup = 80 000 -> Acceptable acceleration
m.eangvel_rampdn= 40 000 -> Acceptable deceleration
But this causes the motor controller to twitch the motor and give following message:
Telega: IRQ: CONTROL RUNAWAY
eangvel_ctl_kp causes the motor to twitch too. What other parameters could help me to achieve similar accelerations that are possible with other “normal” BLDC controllers?
I have set the PWM control so that the bot and mid are both 1000us. Is this same as the bot (reverse rotation) would be disabled?