I designed different speed controllers for PMSM and BLDC motors yet, but I never tried to control the velocity of a brushed DC motor. So I gave it a try and didnt expect any difficulties, but it is harder than I tought.
So what I have done is pretty similar to a PMSM motor, I have a speed controller (1000kHz) and an underlying current controller (30kHz), which is actually a PI controller, that transforms the current into a duty cycle for the PWM signals.
Now I feel the motor cogging at very low speed pretty hard and I tought if I can compensate it with a feed forward term like for PMSM, but I could not achieve that, or at least only a bit. Is it possible, that the cogging at low speed of a brushed DC motor cannot be compensated, since I cannot commutate the stator myself like for a PMSM and so this bumps are switching of the poles?