# Optimization of X-axis servo drive performance using PSO fuzzy control technique for double-axis dicing saw

### Extracting basic data for ADT-8230

In the process of processing semiconductor chips, dicing error in the micron range is necessary. X-axis is a long-stroke axis, and it carries different speeds for different materials. It brings vibration and response speed, and the size of the speed control range directly affects the dicing quality and processing efficiency. Therefore, in order to ensure the high-speed stability of the linear axis of the machine tool, the servo system is required to have a fast response, a large speed range and a small position tracking error.

The X-axis servo drive and motor are selected from Yaskawa Servo, and the mathematical modelling is mainly based on PMSM. The X-axis servo system adopts three-loop control, and the motion controller is not involved in motion-related instructions, and the three-loop controllers are all in the Yaskawa servo drive. The current loop parameters are not adjustable, and both the velocity and position loops use traditional PI controllers. When the motor is selected, the user does not know the motor’s built-in armature resistance and armature inductance. Therefore, RLC bridge measurements are required to derive this value. After calculating the inertia ratio, speed and torque, the X-axis motor power is 400 W, the encoder is a 24-bit linear encoder and the motor is a three-phase AC PMSM.

### Dynamic behavior of PMSM

The three-phase permanent magnet synchronous motor is a strongly coupled, complex nonlinear system, and it is particularly important to establish a suitable mathematical model in order to be able to better design advanced PMSM control algorithms. In this paper, a three-phase PMSM mathematical model is established in a synchronous rotating coordinate system.

The mathematical model of PMSM can be written in the following form: the stator voltage equation is

$$ U_d = Ri_d + L_{d}\frac{d}{dt}i_{d} – \omega _{e}L_{q}i_{q} $$

(1)

$$ U_{q} = Ri_{q} + L_{q}\frac{d}{dt}i_{q} – \omega _{e}(L_{d}i_{d} + \varphi _{f}) $$

(2)

where, \(U_{d},\;U_{q}\) are the d-q components of the stator voltage; \(I_{d},\;I_{q}\) are the d–q axis components of the stator current; \(R\) is the resistance of the stator; \(\omega e\) is the electric angular velocity; \(L_{d},\;L_{q}\) are the d–q axis components of the inductance; \(\varphi _{f}\) represents the permanent magnet magnetic chain.

The stator electromagnetic torque equation is

$$ T_{e} = 1.5p_{n}i_{q}(i_{d}(L_{d} – L_{q}) + \varphi _{f}) $$

(3)

where, \(p_{n}\) stands for polarity logarithm.

Transforming the synchronous rotating coordinate system d-q to the natural coordinate system ABC, the variables have the following relationships:

$$ \left[ {\begin{array}{*{20}c} {f_A} & {f_B} & {f_C} \\ \end{array} } \right]^{T} = Tc\left[ {\begin{array}{*{20}c} {f_{d}} & {f_{q}} & {f_{0}} \\ \end{array} } \right]^{T} $$

(4)

$$ Tc = \left[ {\begin{array}{*{20}c} {\cos \theta _{e}} & { – \sin \theta _{e}} & {1/2} \\ {\cos (\theta _{e} – 2\pi /3)} & { – \sin (\theta _{e} – 2\pi /3)} & {1/2} \\ {\cos (\theta _{e} + 2\pi /3)} & { – \sin (\theta_{ e} + 2\pi /3)} & {1/2} \\ \end{array} } \right] $$

(5)

where, \(Tc\) is the coordinate transformation matrix.

### PMSM conventional three-loop control model

The X-axis in this study uses the Yaskawa Σ-7 servo drive system, which has an auto-tuning function. Tuning is a function that optimises the responsiveness of the servo unit, and the responsiveness depends on the servo gain set in the servo unit. In general, for machines with high rigidity, responsiveness can be improved by increasing the servo gain. However, for machines with low rigidity, increasing the servo gain may cause vibration and therefore will not improve responsiveness. Servo gain is set by a combination of parameters that interact with each other. The block diagram of the PMSM three loop control is shown in Fig. 2.

The working principle of conventional three-loop control is explained as follows.

First, the upper computer gives the command pulse signal, and the difference between it and the feedback signal is the position error signal. The position loop uses a PI controller, which processes the given error and sends it to the speed loop PI controller. Finally, the signal is transmitted to the current controller for processing to drive the motor rotation. The motor feeds the position signal through a 24-bit linear encoder.

### The scheme of optimization

In this paper, PSO or GA is combined with fuzzy control, mainly considering the following aspects: First, PSO and GA as optimisation algorithms can help the fuzzy control system to perform parameter optimisation and find the best parameter combinations to improve the control effect. Second, PSO and GA can adapt to the characteristics of complex and nonlinear systems to find better control strategies and improve system performance through the global search capability^{33}. Third, PSO and GA are adaptive and robust and can adjust the search strategy to maintain system stability in the face of system parameter changes and external disturbances^{34}. Fourth, PSO and GA are suitable for multi-objective optimisation problems, and the optimal solution of the system can be obtained through the appropriate objective function trade-off. Therefore, combining PSO or GA with fuzzy control can fully exploit the capability of optimisation algorithms, improve the performance of fuzzy control systems, and adapt to the needs of complex and nonlinear systems^{35}.

### Presentation of fuzzy controller design technique

Fuzzy control technology broadly consists of three parts: fuzzification, fuzzy rules (knowledge base and fuzzy inference), and defuzzification^{36}. The hybrid structure of the fuzzy position controller is shown in Fig. 3. In Fig. 3, \(K_{e}\), \(K_{d}\), \(\alpha\) and \(\beta\) denoting the scaling factors associated to the inputs and outputs of this hybrid structure. The Membership function editor defines the shape of all the membership functions associated with each variable (Fig. 4). Surface Viewer is used to seeing the dependency of one of the outputs on any one or two inputs. It generates and draws the output surface mapping of the system. (Fig. 5). The fuzzy rule list is given in Tables 1 and 2.

The fuzzy control has two inputs and two outputs; the two inputs are the error and the rate of change of the error. The outputs are \(K_{p}\) and \(K_{i}\). The inputs and outputs are represented as follows.

$$ e

(6)

$$ e_{c}

(7)

$$ u = \alpha K_{p} + \beta K_{i} $$

(8)

The fuzzy subset and its theoretical domains need to be determined based on the rectification of the conventional PI parameters. The empirical adjustment method is usually used for the traditional PI parameter tuning: First, the adjustment is made in pure proportional action until the system is completely stable. Second, gradually adjust the integration time until stabilization.

The two outputs are \(K_{p}\) and \(K_{i}\) parameters, respectively. Error \(e\) and error rate of change \(e_{c}\) can be taken as 7 linguistic variables (NL, NM, NS, ZE, PS, PM, PL) corresponding to negative large, negative medium, negative small, zero, positive small, positive medium, positive large, and the theoretical domain can be determined as \(e \in ( – 6,6)\), \(e_{c} \in ( – 6,6)\), according to the conventional PI parameter rectification. The theoretical domain of \(K_{p}\), \(K_{i}\) can be set as \(K_{p} \in (0,6)\), \(K_{i} \in (0,0.1)\).

\(K_{e}\), \(K_{d}\), \(\alpha\) and \(\beta\) denoting the scaling factors associated to the inputs and outputs of this hybrid structure. Determine the argument domain, the quantisation factor and the scaling factor. Let the fundamental domains of \(e\),\(e_{c}\) be \(\left[ { – x_{e} ,x_{e} } \right]\),\(\left[ { – x_{ec} ,x_{ec} } \right]\); the fundamental domains of \(\Delta K_{p}\), \(\Delta K_{i}\) be \(\left[ { – y_{p} ,y_{p} } \right]\),\(\left[ { – y_{i} ,y_{i} } \right]\); the fuzzy domains of \(e\),\(e_{c}\) be \(\left[ { – m,m} \right]\), \(\left[ { – n,n} \right]\); and the fuzzy domains of \(\Delta K_{p}\), \(\Delta K_{i}\) be \(\left[ { – u_{p} ,u_{p} } \right]\), \(\left[ { – u_{i} ,u_{i} } \right]\). Then, the quantisation factor \(K_{e}\) of \(e\), the quantisation factor \(K_{d}\) of \(e_{c}\), and the scaling factors \(\alpha\) and \(\beta\) of the output control quantities can be obtained from the following equation:

$$ \left\{ \begin{gathered} K_{e} = \frac{m}{{x_{e} }} \hfill \\ K_{ec} = \frac{n}{{x_{ec} }} \hfill \\ \alpha = \frac{{u_{p} }}{{y_{p} }} \hfill \\ \beta = \frac{{u_{i} }}{{y_{i} }} \hfill \\ \end{gathered} \right. $$

(9)

The establishment of fuzzy rules is essential. Fuzzy rules are derived from expert knowledge, experience, etc. It is essentially a rule lookup table in the form of “if … and … then …”, and given \(e\), \(e_{c}\) yields 49 different outputs \(K_{p}\), \(K_{i}\); the key to fuzzy control is rule base, which establishes the rules of fuzzy control, membership function, and fuzzy inference. The minimum operation (Mamdani), which takes the minimal value of the membership function. The membership function using trimf, the output of \(K_{p}\) and \(K_{i}\) in NL adopts zmf, PL adopts smf, the Mamdani method is used for fuzzy inference, and the center of gravity method is used for defuzzification.

### GA-based fuzzy-PI controller tunning

Because the quantization factor \(K_{e}\), \(K_{d}\) size on the dynamic performance of the control system has a great impact. \(K_{e}\) selected large, the system overshoot is also larger, the transition process is longer, but it can make the rise time shorter; \(K_{d}\) selection of the larger, the system overshoot is smaller, but the response speed of the system will be slower, at the same time, \(K_{e}\), \(K_{d}\) both also interact with each other. \(\alpha\), \(\beta\) selection of the small will make the system dynamics of the process will be longer, too large and will lead to increased system oscillation, so the determination of the quantisation factor is a cumbersome process. Determining the quantisation factor is therefore a tedious process. Therefore, an optimisation algorithm is introduced to adjust each parameter of the fuzzy control. The fuzzy controller still adjusts the PID parameters \(\Delta K_{p}\), \(\Delta K_{i}\); the optimisation algorithm optimises the proportionality and quantisation factors of the fuzzy controller. Finally, through the objective function can calculate the adaptation value F, the adaptation value is to judge the current output of the optimisation algorithm PID control parameters is good or bad only standard, through the continuous adjustment of the output PID control parameters, used to reduce the output value of the objective function, so as to achieve the purpose of the optimisation system. The search process for the optimal solution in GA is implemented by using genetic operators that mimic the evolutionary process of living organisms. That is, selection operator, crossover operator, and variation operator^{37}. The proportional method of fitness values proposed by Holland^{38} is one of the first selection methods proposed in genetic algorithms. It is a proportional-based selection. If the fitness of an individual \(i\) is \(f_{i}\)_{,} The population size is \(N_{p}\)_{,} Then the probability of it being selected is expressed as

$$ p_{i} = f_{i}/\sum\limits_{i = 1}^{N_{p}} {f_{i}(i = 1,2,…,N_{p})} $$

(10)

In order to select crossover individuals, multiple rounds of selection are required to select enough individuals to reach the population size. Generate a uniform random number \(r\) within [0,1] in each round. Use \(r\) as a selection pointer to determine the selected individual. If \(r \le q_{i}\)_{,} then individual \(i\) is selected; If \(q_{k} – 1 < r \le q_{k}(2 \le k \le N_{p})\)_{,} then individual \(i(i = k)\) is selected. The calculation formula is shown below

$$ q_{i} = \sum\limits_{j = 1}^{i} {p_{j}} (i = 1,2,…,N_{p}) $$

(11)

where, \(qi(i = k)\) is called the accumulation probability of individual \(i\).

In this paper, ITAE and is used as a performance index to evaluate the merits of fuzzy controllers, where ITAE is the time multiplied by the integral of the absolute value of the error, expressed as

$$ f

(12)

The search range for each parameter is;\(Ke \in [0,150];Kd \in [0,180];\alpha \in [0,250];\beta \in [0,250]\). Figure 6 shows the flowchart for GA-fuzzy-PI structure.

### PSO-based fuzzy-PI controller tunning

In the process of finding the optimal values, the update rate and position solution of each particle are given by

$$ v_{k} + 1 = w \cdot v_{k} + c1 \cdot (pbest_{k} – x_{k}) + c_{2} \cdot (gbest_{k} – x_{k}) $$

(13)

$$ x_{k} + 1 = x_{k} + v_{k} + 1 $$

(14)

where \(v_{k}\) is the velocity vector of the particle, \(x_{k}\) is the position of the particle, \(pbest_{k}\) is the optimal solution position found by the particle itself, and \(gbest_{k}\) is the optimal solution position currently found by the whole population. \(w\) is the inertia weight. \(c_{1}\) and \(c_{2}\) are two learning factors, called the “self-knowledge factor” and “social-knowledge factor” of the particle, respectively. These two factors are used to adjust the strength of \(pbest_{k}\) and \(gbest_{k}\) on particle attraction. \(c_{1}\) and \(c_{2}\) are in the range of [0,2]. \(v_{k}\), \(pbest_{k} – x_{k}\) and \(gbest_{k} – x_{k}\) are used as the sum of vectors, which is denoted by \(v_{k} + 1\). The maximum value of particle velocity in each dimension is less than \(v_{max}\). Due to the PSO algorithm has fallen into a local optimal solution. Shi and Eberhart^{39} introduced the inertia weight formula

$$ w = w_{\max} – (w_{\max} – w_{\min} )g/G $$

(15)

where \(g\) generation index represents the current number of evolutionary generations, and \(G\) is predefined maximum number of generations. The search range for each parameter is consistent with GA. The flowchart of the PSO-fuzzy-PI structure is shown in Fig. 7.

### Comparison of algorithms

In order to find the optimal algorithm, we selected four sets of test functions to test these two algorithms^{40}, the table of test functions is shown in Fig. 9. For both algorithms we set the same number of iterations (1000) and population size (50). In the PSO algorithm the weight factor W was set to 0.6 and the speed factors C1 and C2 were set to 1.414 and 1.632 respectively. In the GA algorithm, the crossover probability, the variation probability and the number of elites were set to 0.6, 0.2 and 5, respectively. The test results are shown in Fig. 8. From the figure we can see that PSO converges faster than GA under either kind of test function, and the time spent.