To reduce velocity variation due to nonlinear dynamic effect in mechanisms, passive devices such as the mechanical flywheel is usually used. The velocity variation can also be suppressed by precise control of the power source. In this paper, a learning control algorithm is developed for velocity control of non-linear power transmission mechanisms. The algorithm is separated into two versions. In the first version, the reference velocity is designed such that at steady state, the nonlinear dynamic effect is periodic in time. In such case, only one functional has to be learned to control the velocity. The second version of the controller extends the first one to deal with the reference velocity which results in an aperiodic dynamic effect at steady state.