# Designing driving and control circuits of four-phase variable reluctance stepper motor using fuzzy logic control

## Abstract

Precise positioning and repeatability of movement for stepper motors require designing a robust control system. To achieve that, an analytical model of a four-phase variable reluctance stepper motor is presented. A proposed open-loop driving circuit is designed to control the motion of a variable reluctance stepper motor. The driving circuit has an ability to drive the motor into two-step angles, i.e. a full step (15\(^{\circ })\) and a half step (7.5\(^{\circ })\). The direction of movement can be either into clockwise or counterclockwise direction. The operation of the variable reluctance stepper motor in an open-loop control circuit has demonstrated disadvantages of an oscillation and a relatively high settling time. Therefore, a closed-loop control circuit has been introduced using fuzzy logic control to overcome the oscillation problem and to obtain on a precise positioning within a reasonable settling time. The fuzzy logic control is used to improve and enhance the behaviour of the step position response based on oscillatory response and hence to reduce the overshoot significantly. The comparisons between the open- and closed-loop circuits are presented to demonstrate the disparity between both control circuits. The simulation results of the open-loop and the closed-loop circuits show that the time responses have been improved using different loads conditions. The simulation experiments are conducted and investigated using MATLAB–SIMULINK software package.

## Keywords

Four-phase variable reluctance stepper motor Driving and control circuits Proportional derivative (PD) Fuzzy logic control (FLC) Step response Settling time and overshoot## List of symbols

- \(V_{a}\)
Voltage applied to phase A

- \(i_{a}\)
Current in phase A

- \(r_{a}\)
Resistant of phase A

- \(\lambda _{a}\)
Flux linkage of phase A

- \(l_{aa}\)
Self-inductance of phase A

- \(l_{ab}\)
Mutual inductance between phases A and B

- \(l_{ac}\)
Mutual inductance between phases A and C

- \(l_{ad}\)
Mutual inductance between phases A and D

## 1 Introduction

Stepper motors have various motion control applications in many systems such as industrial machines and electronics. Nowadays, they are used in a wide variety of applications that require a position driving system including computer peripherals and robotics. There are three main types of stepping motors, i.e. variable reluctance (VR), permanent magnet (PM), and hybrid stepper motors. Generally, stepper motors can be defined as an electro-mechanical device that converts a pattern of inputs and the rate of change of those inputs into a precise rotational motion [1, 2]. In the state of the art, many pieces of research have been reported to tackle the positioning control of PM stepper motor [3, 4, 5, 6] and hybrid stepper motors [7, 8]. The variable reluctance stepper motors have been around for a long time. Nonetheless, they have not been widely applied into real-world situations that demand a quite precise positioning. One of the major concerns regarding the influence for the response behaviour of the rotor position is the oscillatory response and the high overshoot and undershoot. It can be described as the variation of the rotor response to stationary poles. In fact, the construction of the VR stepper motor is much simpler than other types; hence, the complexity of control circuits can be minimised and cost can be reduced. As a result, a development of the VR stepper motor is needed to cope with the current limitations that imply with the operation of such type of motors.

Practically, a VR stepper motor has a number of functional differences when compared with a PM stepper motor. Because the rotor is not magnetised, it produces less torque rather than a similar sized PM stepper motor. In addition, it has no detent torque when there is no electrical power supply, which can be an advantage or disadvantage depending on required applications. Finally, because of the small step size and reduced detent torque, the VR stepper motor has more of a tendency to overshoot and the destination step might not be reached. The step position response in VR stepper motor demonstrates a poor damping characteristic, which in turn leads to generate a significant overshoot and extended settling time. In addition, resonance phenomenon may occur in such motors. These characteristics disturb the normal operation of the stepper motor under certain conditions in operation. This is a significant disadvantage when it occurs. In particular, if the VR motor is operated in an open-loop circuit. Moreover, in some applications related to a high-speed repetitive motion, it is essential to reduce the overshoot and settling time in order to guarantee that rotor attends a required step. Hence, this would positively increase the speed of the response and enhance the behaviour of the VR stepper motor. Furthermore, it is necessary to diminish significantly the oscillatory response and maintain zero tracking.

Previous studies demonstrated an application of robust nonlinear controller of the VR stepper motor. The control design had shown to be applicable to other motor models wherein the flux linkage was modelled as separable products of functions of the rotor position and winding currents [9]. Recently, many control circuits have been implemented to drive a stepper motor. For example, in reference [10], a driving system was designed for a stepper motor using an AT89C51 microcontroller. This driving system is to drive the stepper motor in an efficient manner so that the user has the provision to select the forward or reverse motions, full or half step, and speed or fixed number of steps of movement. In [11], a driving circuit was implemented using a switch mode H-bridge method to derive a stepper motor. However, the implemented circuit did not consider constructing a mathematical model for a specific type of stepper motors. Hence, it might not guarantee an accurate step response. In [12], an adaptive artificial neural network controller applied on a PM stepper motor for regulating its speed. The dynamic response of the PM stepper motor with the proposed controller was studied during the starting process under the full-load torque and under load disturbance. The stepper motor in an open-loop driving circuit presented in a reasonable performance [13].

In the state of the art, a few pieces of research have been introduced based on a fuzzy logic control to achieve an accurate position tracking of stepper motors. For instance, in reference [14], a simple transfer function based on second order was used to achieve the position tracking. Several limitations are observed in that work such as lacking of sequence stepping-based system behaviour. The motor was represented as single-loop electrical circuit. Hence, this does not reflect an accurate representation of the system modelling. In principle, that would be likewise to a direct current (DC) motor. Also, a driving circuit was given to drive the stepper motor based on specific sequences. Similarly, in reference [15], although the application of the fuzzy logic controller was demonstrated. However, some constraints are noticed such as a single step was only conducted without achieving further sequences to mimic the practical performance of stepper motors. In reference [16], another simplification of a stepper motor was conducted. The mathematical model was accomplished using so-called direct-quadrature (DQ) model to analyse a system. A linear representation of the model did not take into consideration the influence of nonlinearity for variables of stepper motor such as self and mutual inductance. Hence, it suffers from lacking of accuracy in a representation of the model.

In this paper, we have introduced a new approach based on a fuzzy logic controller. This controller will be integrated into a proposed open-loop driving circuit and a presented model of the VR stepper motor. Such controller is utilised due to its wide range of applications to control nonlinear systems. By using the FLC, the overshoot will be diminished dramatically and the settling time will be reduced. The contribution can be understood as follows: the mathematical model of the four-phase VR stepper motor is derived and analysed to provide a comprehensive and accurate modelling of the multiple-phase stepper motor. In addition, a thorough and diligent open-loop driving circuit is designed to drive the motion of stepping sequence. Finally, a closed-loop control circuit is proposed based on fuzzy logic controller to overcome the overshoot problem and reduce the settling time of a response. The position responses of the rotor using the open- and closed-loop circuits are conducted based on many operational scenarios. The simulation results are established under different load conditions starting from the no-load to full-load situation using MATLAB software package.

The rest of the paper is structured as follows; Sect. 2 studies the mathematical model of the four-phase VR stepper motor. Section 3 illustrates the design of open-loop driving circuit. The designing of the closed-loop PD fuzzy controller is presented in Sect. 4. The simulation results are reported and explained in Sect. 5. Finally, the conclusion is given in Sect. 6.

## 2 Mathematical model of a VR stepper motor

*R*’ can be conducted using the equation given below:

*n*’ represents the number of steps per revolution and can be calculated by the following equation:

Parameters of a single-phase variable reluctance stepper motor

Parameter | Definition | Value | Unit |
---|---|---|---|

| Applied phase voltage | 5 | V |

| Moment of inertia | \(3.677\times 10^{-6}\) | N ms\(^2\) |

\(r_\mathrm{a}\) | Motor phase resistance | 6 | \(\Omega \) |

| Viscous friction constant | \(3.5\times 10^{-3}\) | N ms |

\(K_{w}\) | Load torque constant | \(7\times 10^{-5}\) | N ms |

## 3 Design an open-loop driving logic circuit

The driving of the four-phase VR stepper motor requires designing a driving logic circuit. The main task of this design is to enable the rotor of the four-phase VR stepper of rotating in both directions clockwise (CW) and counterclockwise (CCW) with two steps: full step (15\(^{\circ })\) and a half step (7.5\(^{\circ })\). The presented driving circuit consists of two inputs and four outputs. The input layer is set by a human user. The output layer is obtained based on the internal interfacing among different components so that the needed phases will be energised. The general construction of proposed logic driving circuit is shown in Fig. 2. It demonstrates that the internal implementation of the driving circuit has three main parts, i.e. a decoding part, an encoding part, and a clocking part.

The angle (\(A_n\)) represents the required angular position, and it could take any real number. It is compared with the actual angular position taking into consideration both the magnitude and the direction. By this comparison, the required stepping direction and number of steps will be obtained. A full-step movement can be achieved when a single-phase excitation is used. The clockwise direction happens when the sequence of a single-phase excitation is ABCDA, whereas anticlockwise direction obtains when the sequence of switching ADCBA is applied. Similarly, the full-step movement can also be gained when double-phase excitation is applied. A clockwise stepping occurs when a sequence of AB–BC–CD–DA signals is supplied. Likewise, an anticlockwise stepping can be obtained when a sequence of AD–DC–CB–BA signals provided.

Truth table of decoding part of driving logic circuit

State | Inputs of control | Present state of counter | Next state of counter | Outputs of decoding part | Description of each state | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|

RI\(_2\) | | \(Q_3\) | \(Q_2\) | \(Q_1\) | \(Q_3{+}\) | \(Q_2{+}\) | \(Q_1{+}\) | \(D_3\) | \(D_2\) | \(D_1\) | ||

Single-phase excitation | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | A to B 15\(^{\circ }\) CW |

0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | B–C 15\(^{\circ }\) CW | |

0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | C–D 15\(^{\circ }\) CW | |

0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D–A 15\(^{\circ }\) CW | |

0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | A–D 15\(^{\circ }\) CCW | |

0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | D–C 15\(^{\circ }\) CCW | |

0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | C–B 15\(^{\circ }\) CCW | |

0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | B–A 15\(^{\circ }\) CCW | |

Single-phase-double-phase excitation | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | A–AB 7.5\(^{\circ }\) CW |

1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | AB–B 7.5\(^{\circ }\) CW | |

1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | B–BC 7.5\(^{\circ }\) CW | |

1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | BC–C 7.5\(^{\circ }\) CW | |

1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | C–CD 7.5\(^{\circ }\) CW | |

1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | CD–D 7.5\(^{\circ }\) CW | |

1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | D–DA 7.5\(^{\circ }\) CW | |

1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | DA–A 7.5\(^{\circ }\) CW | |

1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | A–AD 7.5\(^{\circ }\) CCW | |

1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | AD–D 7.5\(^{\circ }\) CCW | |

1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | D–DC 7.5\(^{\circ }\) CCW | |

1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | DC–C 7.5\(^{\circ }\) CCW | |

1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | C–CB 7.5\(^{\circ }\) CCW | |

1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | CB–B 7.5\(^{\circ }\) CCW | |

1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | B–BA 7.5\(^{\circ }\) CCW | |

1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | BA–A 7.5\(^{\circ }\) CCW | |

Double-phase excitation | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | AB–BC 15\(^{\circ }\) CW |

0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | BC–CD 15\(^{\circ }\) CW | |

0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | CD–DA 15\(^{\circ }\) CW | |

0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | DA–AB 15\(^{\circ }\) CW | |

0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | AD–DC 15\(^{\circ }\) CCW | |

0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | DC–CB 15\(^{\circ }\) CCW | |

0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | CB–BA 15\(^{\circ }\) CCW | |

0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | BA–AD 15\(^{\circ }\) CCW |

Truth table of encoding part of driving logic circuit

Case no. | The inputs of encoding part | The outputs of encoding part | ||||||
---|---|---|---|---|---|---|---|---|

Clock | \(Q_3\) | \(Q_2\) | \(Q_1\) | | | | | |

1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |

2 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |

3 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |

4 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |

5 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |

6 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |

7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |

8 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |

9 | 0 | x | x | x | 0 | 0 | 0 | 0 |

10 | 1 | x | x | x | 0 | 0 | 0 | 0 |

11 | 0 | x | x | x | 0 | 0 | 0 | 0 |

*S*/

*H*), and various logic circuits. The up-counting counter has two inputs, i.e. reset and clock. The counter can count from zero up to ‘126’ when the reset input is logic ‘0’ and goes to reset if it is logic ‘1’. The sample and hold (

*S*/

*H*) circuit’s outputs represent the temporary memory storage that will store the initial and the required angular positions. The

*s*-function block so-called step control is a MATLAB software program. It was coded for calculating the maximum number of steps (\(M_\mathrm{S})\), the step angle (

*R*), and the direction of stepping (

*D*).

The input count (*C*) is used when ‘RI\(_1\)’ equals ‘2’ and ‘\(A_{n}\)’ equals ‘7.5’ or the multiple of ‘7.5’. This will be utilised to convert the step angle from ‘15\(^{\circ }\)’ to ‘7.5\(^{\circ }\)’ for the final step of rotation. The maximum step (MS) used to specify the maximum number of steps during the rotation of the rotor. The direction (*D*) is used to specify the direction of rotation in CW or CCW (if \(D=0\), the motor will rotate in CW and it will rotate in CCW when \(D=1\)). The resolution indicator 2 (RI\(_2\)) on the output side of the step control function is employed to specify the step angle of the motor which is either ‘7.5\(^{\circ }\)’ or ‘15\(^{\circ }\)’. This can be specified when the resolution indicator 1 (RI\(_1\)) on the input side of the step control function is set to ‘2’. When the \(\mathrm{RI}_1=0\), the motor will rotate in ‘15\(^{\circ }\)’ step angle, and it will rotate in ‘7.5\(^{\circ }\)’ step angle if equals ‘1’ as aforementioned. However, choosing \(\mathrm{RI}_1=2\) will leave the driving circuit to decide and select which step angle is the best to be used in order to reduce the number of steps to reach a particular destination. Consequently, this will lead to reduce the required time to reach the target angle of the rotor’s position. The output (*R*) provides the value of the step angle which is either ‘7.5\(^{\circ }\)’ or ‘15\(^{\circ }\)’. The direction sign (DS) equals ‘−1’ if the motor rotates in CW, and equals ‘1’ when the motor rotates in CCW.

For investigation and validation of a full operation for the driving circuit, we introduced four examples of supplied pulses as depicted in Fig. 4 to show the motor input voltages obtained from the driving circuit under different cases. For instance, in Fig. 4a, when phase D winding is energised, the rotor moves to the first ‘15\(^{\circ }\)’. When phase D is de-energised and phase C is energised, the motor moves ‘15\(^{\circ }\)’ in CW direction. Next, de-energising phase C and energising phase B cause the rotor to move to a further ‘15\(^{\circ }\)’ in CW direction. Similarly, in Fig. 4b, when both phase A and phase D are energised at the same time, the rotor will move ‘7.5\(^{\circ }\)’. Next, when phase A is de-energised and phase D is energised, the rotor will move ‘7.5\(^{\circ }\)’ and so on until reaching the final position. The same rotation will be happening if and only if the same energising principle is applied. Another example is illustrated in Fig. 4c when different sequence of pluses are applied to inputs of the stepper motor. However, these sequences will lead to ‘15\(^{\circ }\)’ movement and later on ‘7.5\(^{\circ }\)’. This is due to the fact that RI\(_2\) is set to ‘2’ which means both of step angles could be utilised to complete the required angle.

## 4 Design closed-loop proportional derivative (PD) fuzzy logic control

*u*(

*t*) on one side, the error

*e*(

*t*), and its change \(\Delta e(t)\); on the other hand, in conventional case: \(u(t) = f(e(t), \Delta e(t))\), but in this design the effect of load torque constant (\(K_{w})\) is added in the structure of PD-like fuzzy controller. Therefore, the mapping now has an additional factor which is the load torque constant (\(K_{w})\). In the new considered case, the output can be given as: \(u(t) = f(e(t), \Delta e(t), K_{w})\). The rotor position error is used as an input signal to this controller. The output control signal of the FLC is a switching signal that will be supplied to the motor’s windings. The block diagram of this fuzzy controller is shown in Fig. 5. In this controller, the Sugeno fuzzy approach is used to obtain a single-tone output. The architecture of the closed-loop PD-like fuzzy controller for VR stepper motor is demonstrated in Fig. 6.

In order to implement the fuzzy controller, several parameters need to be defined such as memberships and rules of the inference engine. In this controller, the number of the inputs is three so it means that different memberships need to be chosen for these inputs. The choice of these memberships is set based on the expected values of the input that the memberships are set for. For instance, we set the error memberships between ‘−15’ to ‘15’ such as Negative (N), Zero (Z), and Positive (P) as this is the maximum and minimum values of the expected error. Also, the positive side of the error has been partitioned into another six small memberships to obtain a more accurate range of the positive error. In addition, three memberships such Positive High (PH), Positive Medium (PM), and Positive Low (PL) are added to each of the six positive memberships to cover the three corresponding load conditions. The membership functions for the error, the change in error, the load torque constant, and the output are shown in Fig. 8.

The rules of inference engine are presented for the error and the load torque constant in Table 4 and for the error and change in error are given in Table 5. The surface views that show the relationships between the inputs and the output are depicted in Fig. 9a, b.

## 5 Simulation results

To test the validation of the proposed driving circuit and fuzzy control, many simulation experiments have been carried out. Various step angles have been applied to verify the target reaching of the rotor position. The simulation results were investigated into three different cases of the applied load. In order to obtain an improvement in the step response of the VR stepper motor, i.e. the overshoot and settling time in the position angular response, the simulation results of the closed-loop control circuit are presented. The three case studies are introduced and explained as follows:

### 5.1 Case study I

Rules between the error and the load torque constant against the output

Error | Load torque constant \((K_{w})\) | ||
---|---|---|---|

High (H) | Medium (M) | Low (L) | |

Positive high 1 (PH1) | One | – | – |

Positive high 2 (PH2) | One | – | – |

Positive high 3 (PH3) | One | – | – |

Positive high 4 (PH4) | One | – | – |

Positive high 5 (PH5) | One | – | – |

Positive high 6 (PH6) | One | – | – |

Positive medium 1 (PM1) | – | One | – |

Positive medium 2 (PM2) | – | One | – |

Positive medium 3 (PM3) | – | One | – |

Positive medium 4 (PM4) | – | One | – |

Positive medium 5 (PM5) | – | One | – |

Positive medium 6 (PM6) | – | One | – |

Positive low 1 (PL1) | – | – | One |

Positive low 2 (PL2) | – | – | One |

Positive low 3 (PL3) | – | – | One |

Positive low 3 (PL3) | – | – | One |

Positive low 3 (PL3) | – | – | One |

Positive low 3 (PL3) | – | – | One |

Rules between the error and the change in error against the output

Error | Change in error \(\Delta e(t)\) | |
---|---|---|

Positive | Negative | |

Positive (P) | One | Zero |

Zero (Z) | One | One |

Negative (N) | Zero | One |

The new obtain value demonstrates a significant improvement for the rotor step response using the proposed fuzzy control technique. It can be clearly seen that the overshoot percentage is improved greatly by ‘60 %’ and the settling time is improved by ‘2 ms’. The obtained results can confirm the rotor reaching to its target without probability of losing the required step angle.

In Fig. 11, the rotor position rotates into CCW direction because the selected rotational angle is ‘\(-22.5^{\circ }\)’. To accomplish this response, the first step is ‘\(-15^{\circ }\)’ and the second step is ‘\(-7.5^{\circ }\)’. The RI\(_1\) equals ‘2’ in this experiment to enable the designed circuit the freedom of choosing the best step angle to reach the destination. In the closed-loop part, it can be clearly noticed that how the rotor response has been improved for both steps as shown below.

### 5.2 Case study II

Comparison of the overshoot and settling time between the open- and closed-loop circuits

Parameter | No load | Half load | Full load | |||
---|---|---|---|---|---|---|

Open loop without FLC | Closed loop using FLC | Open loop without FLC | Closed loop using FLC | Open loop without FLC | Closed loop using FLC | |

Overshoot (%) | 66.6 | 6 | 53.3 | 4.6 | 40 | 3.3 |

Settling time (ms) | 10 | 8 | 7 | 6 | 5 | 4 |

### 5.3 Case study III

Finally, in the case study, a full load has been applied to the VR stepper motor. This case allows to verify the tolerance of the response and shows how the rotor step response might be affected. We noticed that in this case the overshoot was reduced slightly compared to the previously conducted experiments. Figure 16 shows that the driving circuit has successfully guided the VR stepper motor to the required position and the step response has been improved successfully when the fuzzy technique is applied. The measured overshoot error is at a minimum which equals to 3.3% in case of using the proposed fuzzy controller. Also, the settling time is minimum and equals to ‘4 ms’.

The comparison for three load cases is summarised as in Table 6 taking into consideration the overshoot and the settling time in case of the open-loop and closed-loop circuits. The comparison is also depicted graphically to show the difference between each load for the settling time and overshoot as given in Figs. 17 and 18, respectively.

## 6 Conclusion

The simulation results have proved successfully that the designed driving logic circuit can effectively control the rotor angular position. In particular, the driving circuit is capable of rotating the rotor in clockwise and anticlockwise directions with two step angles by employing different stepping sequences. It has been observed that the step response of the VR stepper motor suffers markedly from the overshoot and oscillation. Therefore, the fuzzy control technique is introduced to improve the step position response. In addition, the proposed technique is conducted for the increments of the applied load based on three different conditions, i.e. no-load, half-load, and full-load condition. The overshoot has been greatly reduced to ‘3.3%’, and settling time is minimised to ‘4 ms’ at the full-load condition by using the proposed fuzzy technique. In all experiments, the oscillatory response is diminished significantly so that the resonance phenomenon is eliminated.

In the future work, other soft computing techniques such as neural networks and an adaptive neuro-fuzzy inference system can be introduced to compare the performance of the rotor step response with fuzzy control technique.

## References

- 1.Bandyopadhyay B, Thakar V (2004) Multirate output feedback sliding mode control of permanent magnet stepper motor using flatness property. In: International conference on control applications, pp 1370–1375Google Scholar
- 2.Mort N, Abbod M, Linkens D (1995) Comparative study of fuzzy DC servo motors and stepper motors for mechatronic systems. In: IEE colloquium on innovations in manufacturing control through mechatronics, pp 1–5Google Scholar
- 3.Elsodany NM, Rezeka SF, Maharem NA (2011) Adaptive PID control of a stepper motor driving a flexible rotor. Alex Eng J 50(2):127–136CrossRefGoogle Scholar
- 4.Kim W, Shin D, Lee Y, Chung CC (2016) Simplified torque modulated microstepping for position control of permanent magnet stepper motors. Mechatronics 35:162–172CrossRefGoogle Scholar
- 5.De Leon-Morales J, Castro-Linares R, Guevara OH (2005) Observer-based controller for position regulation of stepping motor. IEE Proc Control Theory Appl 152(4):465–476CrossRefGoogle Scholar
- 6.Harb AM, Zaher AA (2004) Nonlinear control of permanent magnet stepper motors. Commun Nonlinear Sci Numer Simul 9(4):443–458MathSciNetCrossRefzbMATHGoogle Scholar
- 7.Henke B, Sawodny O, Schmidt S, Neumann R (2013) Modeling of hybrid stepper motors for closed loop operation. In: 6th IFAC symposium on mechatronic systems and the international federation of automatic control, pp 177–183Google Scholar
- 8.Elksasy MSM, Gad HH (2010) A new technique for controlling hybrid stepper motor through modified PID controller. Int J Electr Comput Sci 10(02):28–35Google Scholar
- 9.Melkote H, Khorrami F, Jain S, Mattice MS (1999) Robust adaptive control of variable reluctance stepper motors. IEEE Trans Control Syst Technol 7(2):212–221CrossRefGoogle Scholar
- 10.Aranjo B, Soori PK, Talukder P (2012) Stepper motor drives for robotic applications. In: IEEE international power engineering and optimization conference, pp 361–366Google Scholar
- 11.Greenough N, Kung CC (2013) A new high-efficiency stepper motor driver for old technology stepper motors. In: The 25th symposium on fusion engineering, pp 1–4Google Scholar
- 12.Hasanien HM (2011) FPGA implementation of adaptive ANN controller for speed regulation of permanent magnet stepper motor drives. Energy Convers Manag 52(2):1252–1257CrossRefGoogle Scholar
- 13.Ghafari AS, Alasty A (2004) Design and real-time experimental implementation of gain scheduling PID fuzzy controller for hybrid stepper motor in micro-step operation. In: International conference on mechatronics, pp 421–426Google Scholar
- 14.Kabde AB, Savio AD (2014) Position control of stepping motor. Int J Adv Res Electr Electron Instrum Eng 3(4):8974–8981Google Scholar
- 15.Abdlaziz W, Salous S (2013) Comparison between PID and fuzzy logic control in the position of stepper motors. Eur J Sci Res 101(1):69–76Google Scholar
- 16.Ahmadi A, Sedehi MT, Yazdani AM, Haniff MF, Buyamin S, Rahim HA (2012) Designing an optimal fuzzy-PID controller for speed tracking of stepper motor. In: Symposium on industrial electronics and applications, pp 193–198Google Scholar
- 17.Athani VV (1997) Stepper motors: fundamentals, applications and design. New Age International Publisher, LondonGoogle Scholar
- 18.Kuo BC (1975) Theory and applications of step motors. West Publishing Company, EaganGoogle Scholar
- 19.Shakya R, Rajanwal K, Patel S, Dinkar S (2014) Design and simulation of PD, PID and fuzzy logic controller for industrial application. Int J Inf Comput Technol 4(4):363–368Google Scholar
- 20.Patel N, Nigam MJ (2013) Design of fuzzy PD controller for inverted pendulum in real time. In: International conference on advances in computing, pp 955–962Google Scholar
- 21.Ban X, Gao XZ, Huang X (2004) Design of a hybrid fuzzy-PD controller for inverted pendulum. In: International conference on systems, man and cybernetics, pp 2286–2291Google Scholar
- 22.Jantzen J (2013) Foundations of fuzzy control: a practical approach, 2nd edn. Wiley, New YorkCrossRefGoogle Scholar

## Copyright information

**Open Access**This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.