# Robust Speed Tracking of Induction Motors: An Arduino-Implemented Intelligent Control Approach +
## 3 Proposed Intelligent Speed Controller
### Development of an FLC  
The FLC consists of fuzzification and defuzzification. It is noted that we take into account not only \(f(t)\) but also its one-step difference variation \(\Delta f(t)=f(t)-f(t-1)\). This is to make the FLC adaptive to the PID output and its variation. We employ the proportional gains of \(f(t)\) and \(\Delta f(t)=f(t)-f(t-1)\), i.e., \(g(t)=K_{1}\cdot f(t)\) and \(\Delta g(t)=K_{2}\cdot\Delta f(t)\) as inputs of membership functions. In the fuzzification process, trapezoidal-shape and triangular-shape membership functions are used since are used they are computationally simple and straightforward to design and interpret membership grades. Conventionally, a membership function is trapezoidal-shape for both intervals \((-\infty,0]\) and \((0,\infty)\) while it is triangular-shape for any finite interval. For any \(g(t),\ \Delta g(t)\in N\), where \(N\) stands for the interval \((-\infty,0]\), the related linguistic value for their membership functions is '\(N\)'. For any \(g(t),\ \Delta g(t)\in P\), where \(P\) denotes the interval \((0,\infty)\), the related linguistic value for their membership functions is '\(P\)'. For any \(g(t)\in Z\), where \(Z\) represents a given interval \([-\alpha,\alpha]\), the related linguistic value for its membership function is '\(Z\)'. Since \(\Delta g(t)\) is a variation value, we set the interval \([-0.25\alpha,\ 0.25\alpha]\) not larger than \([-\alpha,\alpha]\) for its membership function to be triangular-shape. Certainly, the value \(0.25\) is set heuristically and can be replaced by other positive value less than \(1\). For any, \(\Delta g(t)\in Z\), where \(Z\) represents the interval \([-0.25\alpha,\ 0.25\alpha]\), the related linguistic value for its membership function is '\(Z\)'. Accordingly, the two membership functions are given by  
\[\mu_{N}(g(t))=\left\{ \begin{array}{ll}1&\mbox{if }g(t)\leq-2.25\cdot\alpha \\ \frac{-g(t)}{25\cdot\alpha}&\mbox{if }-2.25\cdot\alpha<g(t)\leq 0\\ 0&\mbox{otherwise,}\end{array} \right. \tag{14}\]  
\[\mu_{Z}(g(t))=\left\{ \begin{array}{ll}\frac{g(t)+\alpha}{\alpha}&\mbox{if }- \alpha<g(t)\leq 0\\ \frac{-\alpha-g(t)}{\alpha}&\mbox{if }0<g(t)\leq\alpha\\ 0&\mbox{otherwise,}\end{array} \right. \tag{15}\]  
\[\mu_{P}(g(t))=\left\{ \begin{array}{ll}1&\mbox{if }2.25\cdot\alpha\leq g(t) \\ \frac{g(t)}{25\cdot\alpha}&\mbox{if }0<g(t)\leq 2.25\cdot\alpha\\ 0&\mbox{otherwise.}\end{array} \right. \tag{16}\]  
\[\lambda_{N}(\Delta g(t))=\left\{ \begin{array}{ll}1&\mbox{if }\Delta g(t)\leq-0.75\cdot \alpha\\ \frac{-\Delta g(t)}{0.75\cdot\alpha}&\mbox{if }-0.75\cdot\alpha<\Delta g(t)\leq 0\\ 0&\mbox{otherwise,}\end{array} \right. \tag{17}\]  
\[\lambda_{Z}(\Delta g(t))=\left\{ \begin{array}{ll}\frac{\Delta g(t)+0.25 \cdot\alpha}{0.25\cdot\alpha}&\mbox{if }-0.25\cdot\alpha<\Delta g(t)\leq 0\\ \frac{0.25\cdot\alpha-g(t)}{0.25\cdot\alpha}&\mbox{if }0<\Delta g(t)\leq 0.25\cdot \alpha\\ 0&\mbox{otherwise,}\end{array} \right. \tag{18}\]  
\[\lambda_{P}(\Delta g(t))=\left\{ \begin{array}{ll}1&\mbox{if }0.75\cdot\alpha \leq\Delta g(t)\\ \frac{\Delta g(t)}{0.75\cdot\alpha}&\mbox{if }0<\Delta g(t)\leq 0.75\cdot\alpha\\ 0&\mbox{otherwise.}\end{array} \right. \tag{19}\]  
Correspondingly, the membership functions in Equations (14)-(16) and (17)-(19) are depicted in Figure 3.  
The fuzzy inference engine is derived from the input fuzzy sets together with expert's experience. It makes decisions by using adequate IF-THEN rules in the knowledge base as well as yields an implied output fuzzy set \(u\). In this study, we use the proposed IF-THEN fuzzy rule base in Figure 4 and \(u(i,j)\) given by  
\[u(i,j)=\left\{ \begin{array}{ll}\alpha&\mbox{if }j=N\mbox{ or }(i=P\mbox{ and }j=Z)\\ 0&\mbox{if }(i=Z\mbox{ and }j=Z)\\ -\alpha&\mbox{if }j=P\mbox{ or }(i=N\mbox{ and }j=Z).\end{array} \right. \tag{20}\]In addition, the Mamdani-type min operation is adopted for fuzzy inferences. In the defuzzification process, the implied output fuzzy set \(u\) is mapped into a crisp output \(\Delta T_{e}(t)\) by using the 'center of mass' defuzzification method.