I have here a BLDC motor that is controllable with FOC and I already implemented a position controller. The next step is to implement a velocity controller, but I actually don't see how to control the velocity at very low speeds. The speed is proportional to the reference torque producing current i_d for FOC and so for low speeds, there is only a very low current and so nearly no power. This immediately can be seen, that the motor becomes bumpy for low speeds. The implemented speed controller looks like this and works fine for speeds around 50rpm or higher.
i_q_ref = i_q_ref_old + K_Perr_speed + K_Isum_err_speed
The speed measurement is pretty accurate.
What kind of other control structures can be used to achieve a velocity controller for low speeds with FOC?