Well, I'll take a whack at this.
When you drive a motor with PWM, the motor is acting like a filter. Think about how a low-pass filter works with a resistor and inductor. As each pulse turns on, the inductor "resists" the flow of current temporarily, and the current ramps up, and then shuts off rapidly, wherein the field collapses when the pulse ends.
This creates an overall averaging effect on the current flow, and the motor turns at a speed proportional to this average current
as long as the pulses come along quickly enough to turn the motor back on before it completely collapses, and
not so quickly that the current is constantly ramping up and down before it has a chance to reach the point where the motor can actually move. How long it takes for the current flow to ramp up on each pulse depends on the motor's
time constant.
- If the frequency is too high, the current through the motor may change too fast for that "inductor" to ever stablize at a current high enough to turn the motor.
- At lower speeds, the PWM duty cycle is so short, that this only exacerbates the problem.
- High frequency = lots of pulses in a period of time, and low duty cycle = each pulse is on for a very short time.
We seem to have settled on frequencies anywhere from 12kHz to 20 kHz, from what I've seen, in PWM controllers for model train motors. But that might be too high for this motor.
So by reducing the frequency, you have gotten the current into a good zone, especially at lower speeds, where that 3-pole motor can start moving. At higher speeds, the PWM duty cycle more and more approximates DC and it probably doesn't even matter what the frequency is, so you are getting good overall running.
Here's a great discussion of this, including graphs:
https://cdn-learn.adafruit.com/downloads/pdf/improve-brushed-dc-motor-performance.pdfParticularly note the part on page 14 titled "PWM Frequency" for a discussion of what happens at low speeds if the frequency is too high.
------