# Robust Speed Tracking of Induction Motors: An Arduino-Implemented Intelligent Control Approach +
## 4 Experimental Study
### Experimental Setup  
For the V/f controller in Figure 1, the parameter values are set as follows: \(K_{vf}=4.073\), \(K_{m}=0.09\) and \(V_{0}=22\). In accordance with the information in the specification and instruction manual of the Nikki Denso NA21-3F 0.14-hp induction motor, the motor parameter values in Equations (4) and (9) are given by \(J_{m}=1.5\times 10^{-4}\) (kg\(\cdot\)cm\(\cdot\)s\({}^{2}\)), \(B_{m}=0.4\) (g\(\cdot\)cm/rpm), \(L_{r}=L_{s}=0.196\) (H) and \(R_{r}=11\) (\(\Omega\)). To obtain various speed controllers, we use the Matlab/Simulink software and the system functional structure in Figure 1 to develop a computer simulation model in which the three-phase induction motor is used with parameters provided as above, and no external load torque is applied. To obtain a Z-N PID and a modified Z-N PID, we first employ a linear proportional speed controller in the simulation model. Next, a step input is applied, and the proportional gain is adjusted until the system reaches the stability limit. However, no critical oscillation takes place at the system output; only system output divergence can occur. Therefore, we adapt the design steps described in [29] and in Section 3.1 to obtain the critical gain and the critical time period. In practice, we increase the gain, and get the approximate critical gain \(K_{c}=2.2\) with which the system diverges immediately at the approximate time 0.049 s. Then, we take \(t_{c}=0.049\). This together with the formula in [27], the Z-N PID is given by \(1.29(1+\frac{1}{0.00355}+0.006125\) s). Moreover, based on Equations (10)-(12) with \(r=0.5\) and \(\theta=-135^{\circ}\), the modified Z-N PID is given by \(0.77(1+\frac{1}{0.003748}+0.00931\) s). To obtain a desirable FLC for the modified Z-N PID+Fuzzy, we first heuristically set the parameter values \(\alpha=4\) and \(K_{2}=0.01\). Next, we use Equations (14)-(23) and adjust the values of the parameters \(K_{1}\) and \(K_{3}\) until closed-loop system responses of the Matlab/Simulink computer simulation model under no torque disturbance are satisfactory. As a result, we get \(K_{1}=0.05\) and \(K_{3}=20\). The experimental tests are carried out using the PC-based and the Arduino-based control schemes. In addition, all speed controllers obtained above are employed in the experimental tests. Figure 6 shows the block diagram of the functional implementation structure of the Matlab/Simulink on the PC and the Arduino. The details of those modules and connections can be referred to in Figure 1 and Equations (1)-(3), (5)-(10) and (14)-(23). Figure 7 displays the PC-implemented induction motor control system. The real-time implementation of the control system employs the MRC-6810 AD/DA servo control card as the interface between software and hardware. The MRC-6810 card resides in the PC and is directly connected to the block diagram of the multi-channel AD/DA converter of the Matlab/Simulink on the  
PC to send and receive signals. The voltage drive circuit residing in PC yields adequate voltage signals based on signal outputs from the Matlab/Simulink on the PC to the PWM inverter via the D/A channel of the MRC-6810 card. The motor speed is sensed by the speed encoder mounted on the rotor shaft. The encoder produces a pulse signal, and then the frequency (F) of the pulse signal is converted into a voltage signal (V) by the DSP TMS320F240. The voltage signal is fed back to the Matlab/Simulink on the PC via the A/D channel of the MRC-6810 card to complete the speed feedback action. Figure 6: Functional implementation structure of PC (Matlab/Simulink) and Arduino. Figure 7: PC-implemented speed tracking of the V/f controlled IM. (**a**) Schematic diagram; (**b**) Realistic experimental setup. Figure 8 shows the Arduino-implemented induction motor control system. The Arduino model UNO--a single-chip microcomputer--is used. It provides the simplicity of operating its I/O interface, and a user-friendly Java programming development environment. It has the built-in A/D operation but has no D/A function.