# Vibration Suppression of Collaborative Robot Servo with Dual Encoders
## 7 Control Principle of Dual Encoder Vibration Suppression  
### The System Transfer Function  
Figure 7 shows the system transfer function. \(\theta^{*}\) is the position setpoint from the main controller. \(\omega^{*}\) is the output of the position control loop. \(\mathrm{I_{q}}^{*}\) is the output of the speed control loop, and \(\mathrm{U_{q}}^{*}\) is the output of the current control loop. \(\mathrm{U_{q}}\) is the output voltage of the inverter, and \(\mathrm{I_{q}}^{*}\) is the output of the servo motor unit. \(\mathrm{T_{e}}\) is the electromagnetic torque of the motor. \(\mathrm{T_{d}}\) is the load torque, \(\omega_{\mathrm{d}}\) is the speed on the reducer side, and \(\omega_{\mathrm{m}}\) is the speed on the motor side. \(\theta\) is the position feedback through sampling by the motor encoder. \(\omega 1\) is the speed calculated by the motor side encoder, and \(\omega 2\) is the speed calculated by the reducer encoder. \(\mathrm{T_{s}}\) is the torque generated by the deformation of the load connector. The principle of suppressing vibration in the frequency domain using dual encoders is shown in Figure 7. In particular, \(\mathrm{C_{p}(s)}\) is a position regulator, which is a proportional controller with a transfer function of proportional gain [22]. \(\mathrm{K_{pp}}\) is the proportional gain coefficient. Hence, its formulation is expressed as  
\[\mathrm{C_{p}(s)}=\mathrm{K_{pp}} \tag{1}\]  
Figure 6: Encoder data reading circuit (one encoder). C\({}_{\rm v}\)(s) is the velocity regulator with a transfer function of PI control. The proportional gain and integral time constant are denoted as K\({}_{\rm vp}\) and T\({}_{\rm vi}\), respectively [23]. Therefore, its expression can be formulated as  
\[\rm C_{v}(s)=K_{vp}(1+\frac{1}{T_{vi}s}) \tag{2}\]  
C\({}_{\rm I}\)(s) represents the current regulator, with a transfer function of PI control. The proportional gain and integral time constant are denoted as K\({}_{\rm lip}\) and T\({}_{\rm II}\), respectively. Hence, its expression can be written as  
\[\rm C_{I}(s)=K_{\rm IP}(1+\frac{1}{T_{\rm II}s}) \tag{3}\]  
C\({}_{\rm U}\)(s) represents the inverter unit, where the transfer function needs to consider switch action delays, dead zone effects, and power device gains. Here, T\({}_{\rm pwm}\) is the switch period, T\({}_{\rm dt}\) is the deadband time, and K\({}_{\rm pwm}\) is the power device gain coefficient. Therefore, its expression can be formulated as  
\[\rm C_{U}(s)=\frac{K_{pwm}}{T_{pwm}s+1}\frac{1}{T_{dt}s+1} \tag{4}\]  
C\({}_{\rm m}\)(s) represents the servo motor unit. Since this is the transfer function from the q-axis current to the q-axis voltage, the influence of the rotating voltage is neglected. If the back electromotive force is ignored, the motor model is equivalent to a series connection of resistance and inductance. Here, R\({}_{\rm s}\) is the winding resistance of the motor, and L\({}_{\rm q}\) is the quadrature-axis inductance of the motor. Therefore, its expression can be written as  
\[\rm C_{m}(s)=\frac{1/R_{s}}{L_{q}/R_{s}s+1} \tag{5}\]  
Here, Kt is the motor torque constant, Np is the number of motor pole pairs, and \(\rm\varphi_{r}\) is the permanent magnet flux. Since the system employs a coordinate transformation system with constant amplitude, the Iq here represents the line current amplitude. Therefore, the torque constant expression is  
\[\rm K_{t}=\frac{3}{2}N_{p}\varphi_{r} \tag{6}\]  
C\({}_{0}\)(s) is the flexible torque function, where K\({}_{\rm s}\) is the torsional stiffness. Therefore, C\({}_{0}\)(s)'s expression is  
\[\rm C_{0}(s)=\frac{K_{s}}{s} \tag{7}\]  
C\({}_{1}\)(s) represents the motor speed function, where J\({}_{1}\) is the motor's moment of inertia. Its expression is  
\[\rm C_{1}(s)=\frac{1}{J_{1}s} \tag{8}\]  
C\({}_{2}\)(s) represents the load speed function, where J\({}_{2}\) is the load's moment of inertia.