I understand there have been quite a few posts asking about the DC motor speed vs PWM duty cycle issues. However, I found those questions different from what I want to ask, so I have to ask this topic again.
I have designed a circuit to drive a small DC motor as shown below. The P channels in the H-bridge are either Full-ON or Full-OFF depending which direction the motor rotates and the corresponding N channel is given PWM drive signals. The PWM frequency is 20kHz, VDC is 7V, T1 and T2 are connected to the DC motor terminals and the gate resistors used are 10 ohms.
In my understanding, the DC motor speed is supposed to be proportional to the drive voltage applied. So, if VDC is fixed, IMHO, the motor speed is supposed to be proportional to the PWM duty cycle because the motor drive voltage is VDC*PWM_dutycycle.
However, this was far from the actual case. Below is the speed vs duty cycle curve I recorded (picture updated).
When I fixed the PWM duty cycle but changed the VDC value, however, the motor speed became proportional to VDC*PWM_dutycycle.
Would anyone please advise why VDC*PWM_dutycycle could have different effects on motor speed when changing VDC compared to changing PWM duty cycle?
[update]
I forgot to mention that the motor shaft was connected to a gearbox whose reduction ratio is 290, and the speed shown in the above plot is the motor speed, not the gearbox output speed.
I started to wonder if this speed vs duty cycle issue was caused by the gearbox friction, which acted as motor load.