Discrete-time internal model control with disturbance and vibration rejection. (January 2017)