Next Article in Journal
Feedback Linearization of Inertially Actuated Jumping Robots
Previous Article in Journal
A Neural Network Based Dynamic Control Method for Soft Pneumatic Actuator with Symmetrical Chambers
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

FPGA-Based Hybrid Stepper Motor Drive System Design by Variable Structure Control

Department of Electrical Engineering, National Chin-Yi University of Technology, Taiping Dist., Taichung 411030, Taiwan
*
Author to whom correspondence should be addressed.
Submission received: 18 April 2021 / Revised: 23 May 2021 / Accepted: 25 May 2021 / Published: 28 May 2021
(This article belongs to the Section Control Systems)

Abstract

:
A stepper motor is usually operated in position open-loop control for simplicity. However, in order to improve the transient and steady-state performances of the stepper motor-based drive system, a high performance stepper motor drive system is usually designed to feed the encoder signal back to form a closed-loop system such as a general servo motor drive, and high-performance position and speed loop controller can then be used to overcome the nonlinear characteristics of the motor, such as the cogging force and impacts from external load. On the other hand, the existed cogging force of the hybrid stepper motor must be solved to increase the positioning precision. The variable structure control (VSC) is insensitive to the bounded uncertainty and load disturbance, and has been known as a high-performance controller. A predefined sliding surface is used to shape the system performances, and incorporate with switching control to achieve the robustness property. Thus, we applied the VSC to implement the stepper motor drive system about the position and speed control, and the switching control is used to overcome the cogging force. The field programmable gate array (FPGA) is a good alternative to be used to realize a motor drive system by considering its programmable ability and diverse designing environment. It is easily developed as an intellectual property (IP) for future use or combined as a part of a large control system. This paper showed the procedures to develop the hardware circuits for the variable structure controller, and applied it to stepper motor position and velocity control. Functions such as PI controllers, dq-axis transformation and two-phase space vector space vector modulation (SVPWM) designed for the stepper motor drives are also shown in the paper. The system simulation and hardware circuit realization are based on MATLAB/Simulink, and realized on Altera FPGA. Simulations on MATLAB/Simulink with trapezoidal velocity profile command, and experiments with and without the load added are shown to demonstrate the hardware performances and correctness.

1. Introduction

Considering the advantages of low cost, high precision, and high torque output, stepper motors are frequently used in the field of high-precision control. Traditional open-loop control can lead to momentary step loss or position error when the load changes. As a result, the stepper motor drive system for position and speed control loops has been gradually enhanced as a closed-loop control [1,2,3,4,5]. In Ref. [1], PI controllers are applied for the current and speed closed-loop control, and P control for the position control loop. For Ref. [2], the closed-loop control structure and PI controllers with motor parameter identification are applied to the current and position control of a two-phase bipolar hybrid stepper motor. Furthermore, feedforward compensation is used for the damping control such that the motor can be operated at a high speed range. The authors of Ref. [3] adopted the fuzzy-sliding mode observer to estimate the motor velocity and fed it back as a speed closed-loop system. In that system, PI controllers are used for the stationary A–B phase current control. In Ref. [4], the authors proposed a wide speed range closed-loop-control drive system, and implemented by a field programmable gate array (FPGA) chip. For low-speed operation, the speed control loop is bypassed, and for the high-speed operation, the field-weaken vector control is used to reach the desired performance. Regarding Ref. [5], it proposed a simple torque control method with shaft-position feedback to correct the load angle, and was also realized by FPGA. In Ref. [6], the PID controller and feedforward control are applied to the stepper motor current control to guarantee the desired current response.
For most of the AC motor drive systems, such as induction motor (IM) and permanent magnet synchronous motor (PMSM)-based systems, vector control is widely used. For such systems, a three-phase modulator is usually used to generate the desired d-axis and q-axis voltages. Clarke and inverse Clarke matrices are used for the transformation between the three-phase and two-phase systems. For a two-phase hybrid stepper motor, it only needs a two-axis modulator mainly made by two H-bridge inverters to convert the DC bus voltage into a pair of quadrature voltages for the two stator coils. Thus, the stepper motor drive system can be operated without executing the conversion of a three-phase stationary (a-b-c) coordinate system into two-phase stationary ( α , β ) coordinate system. Regarding the vector control for the stepper motor drive system, for the implementation of the vector control in the stepper motor, only Park and inverse Park matrices are required.
The cogging force of the hybrid stepper motor affects the accuracy of positioning. Moreover, for the vector control protocol, the coordinate transformation requires the position feedback to convert the stationary α β -axis signals into synchronous rotary dq-axis signals. For a closed-loop stepper motor drive system, a high-precision incremental encoder can be used to improve the positioning accuracy. However, the coordinate transformation performs the sin/cos calculation. This requires the position feedback, and the resolution of the sin/cos table holds the precision of the transformation. Additionally, a high-resolution position feedback by incremental encoder is hard to produce the same resolution of voltage generation because of the precision limitations of the space vector pulse width modulation (SVPWM) hardware system, and that leads the current control to not be as precise as the position control loop. As a result, a high-performance variable structure controller is used to improve the positioning accuracy regarding the existence of the problems mentioned above. The variable structure control (VSC) has the advantages of insensitivity to parameter changes, external interference suppression and fast dynamic response [7]. The VSC or sliding mode control (SMC) has been widely applied to single-motor drive design [8,9,10], or designed for a system such as Ref. [11] which is applied to the balance control of a two-wheel vehicle system. For systems controlled by VSC, some steps are included into the design procedure. First, a mathematic model for the control system is presented. Second, a sliding surface or switching surface which dynamics is equivalent to the desired system performances is made. Third, a control law to guarantee the existence of the sliding mode is made. Sometimes, a VSC system exists in the reaching phase and sliding phase, and the system performance is guaranteed on its sliding phase but not on its reaching phase [7,8]. Furthermore, finding an easy way to shape the desired system dynamics is also important for VSC systems. Thus, for the proposed algorithm, the design procedure of a stepper motor drive system is demonstrated step by step. The controlled system is first represented into state space form, and the linear state feedback control method is applied to find the desired system dynamics and switching surface. Finally, a control law which combines the linear control and VSC is designed to make the sliding condition occur.
Hardware circuits realized by field programmable gate array (FPGA) have the benefit of fast prototyping with digital structure, verified with ease. In addition to associating with some of the high-level programming languages, such as C/C++ or MATLAB/Simulink, control systems designed and represented by hardware description language (HDL) are easily achieved. Furthermore, owing to the development of high-density and high-performance FPGA [12,13,14], hardware controllers implemented by FPGA are widely obtained. Some examples include the design of velocity estimation [15], virtual anemometer [16], PID controller [17] and fuzzy controller [18]. FPGA is also suitable for the control system realization of power electronic circuits [19]. In this paper, we first constructed the mathematical model of a hybrid stepper motor and its drive control system in Simulink [4,9]. Next, the models of the controllers were then digitized to be converted into Verilog HDL codes to meet the requirements of hardware design resources. Finally, the designed hardware circuit was used to implement the position, speed and current control to illustrate the correctness of the hardware circuit design and the performance of the variable structure controller. The performances are mainly demonstrated by a 4-ch digital oscilloscope with logical input. The main contributions of the proposed model are based on the state space motor model to the position and speed control, and the applied variable structure controller reaching the desired position and speed performance. The current loop is based on a two-phase vector control strategy where the d- and q-axis loops are controlled separately. The designed system was successfully implemented on FPGA and evaluated by hybrid stepper motor control platform.
The further contents of the paper are as follows: in Section 2, the modeling of the hybrid stepper motor is shown, and the variable structure controller for position/speed control is introduced. Section 3 gives the position variable structure controller design. The simulations on MATLAB/Simulink platform of the proposed are given in Section 4. The experimental setup and results are shown in Section 5. Finally, Section 6 contains the conclusions.

2. The Modeling of Two-Phase Hybrid Stepper Motor and Variable Structure Control

2.1. Mathematic Model of Two-Axis Hybrid Stepper Motor

The electrical circuit equivalent for the two-phase hybrid stepper motor is:
v a = R i a + L d i a d t K e ω m sin ( N r θ m )
v b = R i b + L d i b d t + K e ω m cos ( N r θ m )
where v a is the voltage of the coil a, v b is the voltage of the coil b, i a is the current of the coil a, i b is the current of the coil b, R is the coil resistance, L is the coil inductance, K e is the motor back-EMF constant, ω m is the mechanical speed of the motor, N r is the number of rotor teeth, and θ m is the rotor position. The equivalent circuit of the two-phase hybrid stepper motor is shown in Figure 1.
The generated torque output without considering the component of cogging torque is:
T e = K m [ i a sin ( N r θ m ) + i b cos ( N r θ m ) ] F c sin ( 4 N r θ m ) = T e F c sin ( 4 N r θ m )
where K m is the motor torque constant, F c is the cogging force constant, and T e is defined as:
T e = K m [ i a sin ( N r θ m ) + i b cos ( N r θ m ) ] ,
which is the generated torque by the stator coil currents, i a and i b . The mechanical dynamic equation is:
d ω m d t = 1 J m ( B m ω m T L + T e F c sin ( 4 N r θ m ) )   = 1 J m ( B m ω m T L + T e )
where J m is the inertia of the motor, B m is the viscous friction coefficient of the motor, T L is the load torque, and T L = T L + F c sin ( 4 N r θ m ) is the lumped total load for the dynamical control system.
To construct the mathematical model of the hybrid stepper motor with MATLAB/Simulink, Equations (1) and (2) can be rewritten as:
d d t i a = R L i a + K e L ω m sin ( N r θ m ) + v a L
d d t i b = R L i b K e L ω m cos ( N r θ m ) + v b L
From Equations (4)–(7), the built models by MATLAB/Simulink are shown in Figure 2, where the blocks “Ia” and “Ib” are equivalent to Equations (6) and (7); cos_sin block is used to generate the sine and cosine functions, and the blocks “Te” and “Wm” are used to realize Equations (4) and (5).

2.2. Variable Structure Control

In the following, the variable structure controller will be used as the main controller for the position and speed control.
A single-input linear system under nominal condition is expressed in a controlled canonical form as:
x ˙ = A x + b u ,
where x is the system state, u is the scalar control input, and A and b are with the appropriate range matrices. The control law u by variable structure system can be divided into two parts: the linear part u L and the VSC part u V S C . First, let the nominal system be under linear state feedback control; we can easily have the control gain, k T to complete the feedback control.
u L = k T x ,   k T = [ k 1 ,   k 2 ,   ,   k n ]
Some techniques such as the pole placement or linear quadratic method can be used to determine the value of k . Under the condition of a closed loop control, from [7], (8) can be expressed as:
x ˙ = [ A b k T ] x = A c x
Next, the sliding surface of the variable structure controller is defined as:
σ ( x , t ) = c T [ x x 0 ] c T A c 0 t x ( τ ) d τ ,
and c is a constant vector.
For the closed-loop system (10) under nominal conditions, for any initial value x 0 , σ ( x ,   t ) = 0 for t 0 ; i.e., the system states are initially on the sliding surface and will stay on it for all the next proceeding time. However, for a perturbed system, the linear control element (9) may not make the sliding condition exist. We require additional control to make and keep the states on the sliding surface. The additional control law is defined as:
u V S C = q sgn ( σ )
where sgn ( ) is the sign function, and q is a positive scalar constant. Then, the combined control law for the designed system is:
u = u L + u V S C = k T x q sgn ( σ )
To determine the quantity of q , it must be chosen to satisfy the sliding condition,
σ σ ˙ < 0
Thus, the desired closed-loop dynamics for the perturbed system can be obtained even though the perturbations exist.

3. Position Control by State Feedback and Variable Structure Control

The vector control methodology is used for the motor drive system design, the Park transformations between the stationary reference frame to synchronous rotation reference frame for winding voltages and currents are, respectively, defined by:
[ v d v q ] = [ cos ( N r θ ) sin ( N r θ ) sin ( N r θ ) cos ( N r θ ) ] [ v a v b ]
and
[ i d i q ] = [ cos ( N r θ ) sin ( N r θ ) sin ( N r θ ) cos ( N r θ ) ] [ i a i b ]
where v d , v q , i d and i q are direct voltage, quadrature voltage, direct current, and quadrature current in synchronous rotation reference frame. Applying Park transformation to the state-space equation yields new state-space equation as follows:
d d t i d = 1 L ( v d R i d + N r L ω m i q )
d d t i q = 1 L ( v q R i q N r L ω m i d K e ω m )
With the vector control assumed, the instant motor generated torque by stator coil current can be expressed as:
T e = K m i q
Applying the state feedback position controller design, the system model is first described in the state variable form, as shown in (20):
[ θ ˙ m ω ˙ m ] = [ 0 1 0 B m / J m ] [ θ m ω m ] + [ 0 1 / J m ] ( T e T L )
For a desired rotor position θ d , we first define two new variables, z 1 and z 2 as:
{ z 1 = θ m θ d z 2 = ω m ,
where z 1 is the position error, and z 2 is its derivative. Substituting (19) and (21) into (20), the dynamic error equation for position control can be obtained as (22):
[ z ˙ 1 z ˙ 2 ] = [ 0 1 0 a ] [ z 1 z 2 ] + [ 0 b ] i q [ 0 1 / J m ] T L ,
where a = B m / J m and b = K m / J m , the matrix A and vector b of (8) are:
A = [ 0 1 0 a ] ,   b = [ 0 b ]
The pole placement method is used to design the position control system characteristics. At first, we do not have to consider the uncertainty and interference. The feedback gain k of (9) is selected for the nominal condition system. The desired system characteristic equation is shown in (24),
s 2 + ( a + b k 2 ) s + b k 1 = 0
where a and b are defined in (23), in which case the poles of the system are located at:
s 1 , 2 = ( a + b k 2 ) ± ( a + b k 2 ) 2 4 b k 1 2
At first, by appropriately selecting k 1 and k 2 in (24) to meet the requirements, such as the damping ratio, ξ , and rise time, t r [20]. Second, the sliding surface can be yielded by Equation (11). The matrix A c in (11) is the equivalent system matrix under linear state feedback control gain k . The constant vector c T can be simply determined by choosing c T b = 1 . Since the matrix b of the two-phase hybrid stepper motor system is b T = [ 0 b ] , c can thus be set as:
c T = [ 0 1 / b ]
The VSC compensation part, q sgn ( σ ) , is used to overcome the parameters’ uncertainties and external interferences, including the load and cogging torque. For a motor position control system, the form of the total disturbance p is p T = [ 0 p ] , so the value of q should be set to satisfy the requirement:
q > | p | max
where | p | max is the upper bound of total perturbation. Note that, with the constraint of (27), the designed system is stable and robust to a bounded uncertainty and load.

4. Computer Simulation and Results

Simulations are based on MATLAB/Simulink platform to verify the system performance. The parameters of the two-phase hybrid stepper motor used in the simulation are listed in Table 1. Two kinds of command are assumed: (a) position step input, (b) motion control with trapezoidal speed profile limitation. The step input command is 0.628 radian. The motion command includes the acceleration segment, deceleration segment and constant speed, and total angular displacement 0.628 radian in the duration time 0.7 s. Substituting the parameters shown in Table 1 into (22), the control gain k T = [ k 1 k 2 ] = [ 15 0.4 ] is chosen such that the resulting second-order system (23) possesses the performances of damping ratio 0.707 and rising time 0.05 s. Thus, the linear control law u L and sliding surface σ are determined as:
u L = k T x = [ 15 0.4 ] [ z 1 z 2 ]
and
σ [ x ( z 1 , z 2 ) , t ] = 0.000273   z 2 + 0 t ( 15 z 1 + 0.4 z 2 ) d τ
According to (28) and (29), and with the setting,
q = q 0 + q 1 | ω m | ,
where q 0 and q 1 are two positive constants for the VSC control part. The schematic block diagram of the Simulink model of the variable structure controller and the structure of the drive system are shown in Figure 3.
The system shown in Figure 3 includes the linear state feedback and variable structure control for the position/speed loops, and the inner d- and q-axis current control loops are dominated by two PI controllers. As shown in Figure 3, the command of q-axis current control loop is from the output of the variable structure controller, and the command of the d-axis current control loop is set as 0. The sampling time for the current and speed/position control loops are set as 0.05 ms and 0.5 ms, respectively.
A typical trapezoidal speed profile with a displacement 0.628 radian, as shown in Figure 4, is used as the command input. The following simulated responses, including the position, speed, current and sliding surface σ , will be shown for with and without load conditions, which are defined dependent on whether or not the disk load axis connected. The speed profile of Figure 4 is made with the time constraints of acceleration period 0.2 s, constant speed period 0.3 s and deceleration period 0.2 s, and the variable structure control part (29) is set as:
q = q 0 + q 1 | ω m | = 0.05 + 0.1 | ω m |
In (31), q 0 is mainly used to reduce the steady-state error coming from the dead-band, backlash, cogging torque, or other nonlinear part of the system, and make the sliding condition exist. The second part of (31), whereby magnitude is proportional to the motor speed, is designed to guarantee the system states follow the desired trajectory defined in matrix A c .
First, the responses of step position command input are shown in Figure 5. There is no speed restriction on the response, and the speed and position are controlled by the equivalent system matrix A c . Figure 6, Figure 7 and Figure 8 are the position, speed and current response under the no-load condition. In Figure 6, we can see that the feedback has reached the target position of 0.628 radians at the time of about 0.7 s. The simulation shows that the drive system with variable structure control can ensure the performance of the position control. The speed response displayed on Figure 7 shows that the acceleration segment, constant speed and deceleration are near to the desired speed command profile. From Figure 7, the speed at the run segment is about 1.256 rad/s. Due to the chatter control of VSC and the low-speed operation, there is a little ripple in the speed response. The current response is shown in Figure 8, in which the magnitude is small because a no-load condition is asserted.
Figure 9 is the response of the sliding surface σ , which shows that the system enters the sliding surface once the motor starts, and it can be used to verify the correctness of the proposed variable structure control. Sometimes, the motion control is shown running forward and backward, as Figure 10 displays. In it, the position tracking error is defined as the difference between position command and position feedback. Next, the simulation under the load condition is shown; the command used is the same as the no-load condition. For this condition, the inertia and the friction of the rotor are assumed by 10 times and twice the origin, respectively. The simulated results are shown in Figure 11, Figure 12 and Figure 13.
Figure 11, Figure 12 and Figure 13 are the position, speed and current responses with load. The position response in Figure 11 is almost the same as the response without load of Figure 6; that is what the VSC control wants. However, because the connected flywheel load makes the system with 10 times the inertia as compared to the unload condition, which reduces the system bandwidth and presents small speed ripples. Since the control law of VSC part is used to make sure the system states keep the sliding condition, it is looking forward to a larger q-axis current for load condition. However, since the system has the same setting for both the unload and load conditions, the current response is nearly the same for both cases, as Figure 8 and Figure 13 have shown. Next, Figure 14 displays the response of σ with load. As the speed ripple of Figure 12 is smaller than Figure 7, the ripple of σ in Figure 14 is smaller than Figure 9, and the system also stays on the sliding phase from the beginning.

5. Experimental Setup and Results

To practically evaluate the actual performance of the proposed control scheme, the experimental setup is shown in Figure 15a, which includes the FPGA board, power board, DC power supply, hybrid stepper motor, motor load and digital oscilloscope with logic analyzer. On the FPGA board, it includes the Altera Cyclone III FPGA with type EP3C16E144C8N, 12-bit serial analog to digital converter (ADC) AD7866 made by Analog Devices and 12-bit digital to analog converter (DAC) TLV5618 made by Texas Instruments. In the power board, there are two H-bridge circuits used to transfer the DC power to the stepper motor, and two Hall current sensors are set to detect the motor stator currents. The EP3C16E144C8N chip has 84 I/O pins, 15,408 logic elements, 516,096 bits RAM, 56 18 × 18 multipliers and 4 PLLs [21], and is clocked by 20 MHz. The FPGA chip is used to develop the hardware control system, which includes the coordinate transformation, variable structure controller, PI controllers, 4X quadrature encoder counter, two-phase SVPWM, and the series/parallel conversions for the ADC and DAC converters. A non-optimized usage report about the proposed drive system is shown in Table 2. ADC and DAC are serial type 12-bit converters clocked by 20 MHz. ADC is used to obtain the analog current of phases A and B detected by Hall sensors, and works with a 20 kHz trigger signal. DAC is used to output the corresponding analog voltage signals of the controlled variables such as the rotor position, speed, and sliding surface σ to be checked and compared, and those signals are shown on the digital oscilloscope. DAC is worked with a 2 kHz trigger signal since it is used to demonstrate the mechanic signals. The sampling times for the current control loop and position/speed control loops are, respectively, 0.05 ms and 0.5 ms. The built functions of the FPGA chip and the signal flow diagram out of the FPGA of the experimental system are shown in Figure 16, and signal flow of the blocks inside the FPGA can be found in Figure 3. Logic analyzer, which is built in the digital oscilloscope, is used to capture and display the digital signal outputs from the FPGA. In here, the logical analyzer is used to display the position tracking error of the position control loop. The stepper motor is a hybrid one with 50 rotor teeth, rated current 2 A, and is powered by DC bus voltage 24 V. Additionally, it is equipped with a 5000 p/rev incremental encoder for the position/speed feedback. The load system for the experiment is shown in Figure 15b; it is a flywheel-type load, and counterweights can be used to change the inertia on the rotor. For the comparison purpose, the desired speed waveform and angular destination of the experimental system are the same as the simulated system.
The experimental results with step position command input are shown in Figure 17. The system takes about 100 ms to reach its steady-state value as simulated, and the speed response is not so sharp as the simulation.
Figure 18 gives the position and speed responses with the 0.628 radian position command. The time base of Figure 18 is 200 ms/DIV. According to the description about the pulse generator, the amounts of total generated pulse are 2000 within the duration [0 s, 0.7 s]. For the position and speed responses, they fit the requirements about the position and speed constraints. To check the position response precisely, we sent the position error in digital format with 8 bits to the output port of the FPGA, and captured them by the logic analyzer. In Figure 18, it displays that the bit D0 is switching between 0 and 1, and the other bits, D1-D7, stay at 0. Thus, the position error in the steady-state condition is about one encoder pulse. Figure 19 is the zoomed plot to the steady-state condition. Figure 20 is the result with running forward and backward.
Figure 21 and Figure 22 are, respectively, the stator current and sliding surface σ . Since the system is with a trapezoidal velocity profile command input, the current response is requested to respond to the similar profile as the speed response. In Figure 22, the sliding surface is always kept at a quite low value since the system enters the sliding phase from starting.
Next, we are going to display the test with load. The motor is connected to a disk load, as shown in Figure 15b, and four counterweights are added to increase the rotor inertia to about 10 times the case without them, and two-time frictions are assumed. Figure 23, Figure 24 and Figure 25 are the results of load conditions.
Figure 23 shows the position and speed responses under the load condition. The speed response is obedient to follow the speed profile as the no-load condition. Since the tested load is constructed by increasing the rotor inertia and friction, more generated torque is needed to overcome the variations as the evidence that the stator current was increased to about 0.35A peak to peak value as shown in Figure 24, and its magnitude is greater than the one without load connected. Comparing the two sliding surface responses of Figure 22 and Figure 25, they show that the ripple of the load condition is greater than the case without load. On the contrary, in the steady-state duration, the system speed is almost zero, and the increased inertia and friction lead to the reduction of system bandwidth. Thus, the magnitude of the ripple about σ for the load condition is smaller than the unload condition at the steady-state duration. It can also be seen from the steady-state digital tracking error where the load condition is not so active compared to the no-load condition.

6. Conclusions

As we can see in this paper, the stepper motor drive system with a variable structure controller implemented on an FPGA chip has been successfully realized. The system was first designed and simulated on the MATLAB/Simulink platform to evaluate the performance of the inner loop vector current control and outer loop position/speed variable structure control. It has been shown to be able to overcome the nonlinear characteristics of the fourth harmonic cogging torque and external load; the positioning error is about one bit. The hardware system implemented on FPGA for the variable structure controller and PI controller are verified by practical experiment for the stepper motor drive system with the trapezoidal velocity profile constraint, and the drive system is completed operated on the predefined profile. With the results, it shows that a DSP- or microprocessor-based control system can be replaced by a hardware controller realized by FPGA. Furthermore, as the results show in Figure 9 and Figure 14, the system is initially in the sliding surface and the following successive time. It means that the system’s characteristics are completely matched to the designed equivalent system matrix, A c .
In the simulated speed responses of Figure 7 and Figure 12, the speed ripples are obviously different, and no load condition is bigger than with the load condition. An estimator to dynamically determine the magnitude of q 0 and q 1 in (30) and (31) is going to be designed to reduce the chattering.

Author Contributions

Conceptualization, C.-K.L. and H.-Y.L.; methodology, C.-K.L., B.-W.L. and H.-Y.L.; software, C.-K.L., B.-W.L. and G.-Y.C.; validation, C.-K.L., B.-W.L. and G.-Y.C.; formal analysis, C.-K.L., B.-W.L.; investigation, C.-K.L., B.-W.L. and G.-Y.C.; resources, C.-K.L. and H.-Y.L.; data curation, B.-W.L. and G.-Y.C.; writing—original draft preparation, B.-W.L. and G.-Y.C.; writing—review and editing, C.-K.L. and H.-Y.L.; visualization, C.-K.L., B.-W.L. and G.-Y.C.; supervision, C.-K.L. and H.-Y.L.; project administration, C.-K.L.; All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Lu, W.; Wang, Q.; Ji, K.; Dong, H.; Lin, J.; Qian, J. Research on Closed-loop Drive System of Two-phase Hybrid Step Motor Based on SVPWM. In Proceedings of the IEEE Vehicle Power and Propulsion Conference (VPPC), Hangzhou, China, 17–20 October 2016. [Google Scholar]
  2. Le, K.M.; Van Hoang, H.; Jeon, J.W. An Advanced Closed-Loop Control to Improve the Performance of Hybrid Stepper Motors. IEEE Trans. Power Electron. 2017, 32, 7244–7255. [Google Scholar] [CrossRef]
  3. Wang, C.; Cao, D. New Sensorless Speed Control of a Hybrid Stepper Motor Based on Fuzzy Sliding Mode Observer. Energies 2020, 13, 4939. [Google Scholar] [CrossRef]
  4. Lai, C.K.; Ciou, J.S.; Tsai, C.C. The Modelling, Simulation and FPGA-Based Implementation for Stepper Motor Wide Range Speed Closed-Loop Drive System Design. Machines 2018, 6, 56. [Google Scholar] [CrossRef] [Green Version]
  5. Ricci, S.; Meacci, V. Simple Torque Control Method for Hybrid Stepper Motors Implemented in FPGA. Electronics 2018, 7, 242. [Google Scholar] [CrossRef] [Green Version]
  6. Lee, Y.; Shin, D.; Chung, C.C. PID controller with Feedforward Low Pass Filters for Permanent Magnet Stepper Motors. In Proceedings of the 12th International Conference on Control, Automation and Systems, Jeju Island, Korea, 17–21 October 2012. [Google Scholar]
  7. Shyu, K.K.; Hung, J.C. Totally invariant variable structure control systems. In Proceedings of the 23rd International Conference on Industrial Electronics, Control, and Instrumentation, New Orleans, LA, USA, 14 November 1997. [Google Scholar]
  8. Defoort, M.; Nollet, F.; Floquet, T.; Perruquetti, W. Higher order sliding mode control of a stepper motor. In Proceedings of the 45th IEEE Conference on Decision & Control, San Diego, CA, USA, 13–15 December 2006. [Google Scholar]
  9. Chen, M.; Kong, H.-T.; Liu, H. Conventional and Second Order Sliding Mode Control of Permanent Magnet Synchronous Motor Fed by Direct Matrix Converter: Comparative Study. Energies 2020, 13, 5093. [Google Scholar] [CrossRef]
  10. Xia, X.; Zhang, B.; Li, X. High Precision Low-Speed Control for Permanent Magnet Synchronous Motor. Sensors 2020, 20, 1526. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  11. Lin, C.-H.; Hsiao, F.-Y. Proportional-Integral Sliding Mode Control with an Application in the Balance Control of a Two-Wheel Vehicle System. Appl. Sci. 2020, 10, 5087. [Google Scholar] [CrossRef]
  12. Chen, T.-C.; Su, Y.-C. High Performance Algorithm Realization on FPGA for Stepper Motor Controller. In Proceedings of the SICE Annual Conference 2008, The University Electro-Communications, Chofu, Japan, 20–22 August 2008. [Google Scholar]
  13. Zhang, C.; Wu, X.; Zuo, X. FPGA Soft-Core Based Step Motor Driving. In Proceedings of the 2010 International Conference on Electrical and Control Engineering, Wuhan, China, 25–27 June 2010. [Google Scholar]
  14. Cerezo, J.O.; Morales, E.C.; Plaza, J.M.C. Control System in Open-Source FPGA for a Self-Balancing Robot. Electronics 2019, 8, 198. [Google Scholar] [CrossRef] [Green Version]
  15. Hace, A. The Improved Division-Less MT-Type Velocity Estimation Algorithm for Low-Cost FPGAs. Electronics 2019, 8, 361. [Google Scholar] [CrossRef] [Green Version]
  16. la Tona, G.; Luna, M.; di Piazza, M.C.; Pucci, M.; Accetta, A. Development of a High-Performance, FPGA-Based Virtual Anemometer for Model-Based MPPT of Wind Generators. Electronics 2020, 9, 83. [Google Scholar] [CrossRef] [Green Version]
  17. Kocur, M.; Kozak, S.; Dvorscak, B. Design and Implementation of FPGA-Digital Based PID Controller. In Proceedings of the 15th International Carpathian Control Conference (ICCC), Velke Karlovice, Czech Republic, 28–30 May 2014. [Google Scholar]
  18. Kung, Y.-S.; Tsai, M.-H. FPGA-Based Speed Control IC for PMSM Drive with Adaptive Fuzzy Control. IEEE Trans. Power Electron. 2007, 22, 2476–2486. [Google Scholar] [CrossRef]
  19. Siwakoti, Y.P.; Town, G.E. Design of FPGA-Controlled Power Electronics and Drives Using MATLAB Simulink. In Proceedings of the 2013 IEEE ECCE Asia Downunder, Melbourne, VIC, Australia, 3–6 June 2013. [Google Scholar]
  20. Kuo, B.C. Automatic Control System, 4th ed.; Prentice-Hall, Inc.: Englewood Cliffs, NJ, USA, 1982. [Google Scholar]
  21. Cyclone III Device Handbook; Altera Corporation: San Jose, CA, USA, August 2012; Volume 1. Available online: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyc3/cyc3_ciii5v1.pdf (accessed on 10 May 2021).
Figure 1. The equivalent stator circuit of two-phase hybrid stepper motor.
Figure 1. The equivalent stator circuit of two-phase hybrid stepper motor.
Actuators 10 00113 g001
Figure 2. The complete stepper motor module.
Figure 2. The complete stepper motor module.
Actuators 10 00113 g002
Figure 3. The schematic block diagram of VSC-based stepper motor drive system.
Figure 3. The schematic block diagram of VSC-based stepper motor drive system.
Actuators 10 00113 g003
Figure 4. The position command and speed command profiles.
Figure 4. The position command and speed command profiles.
Actuators 10 00113 g004
Figure 5. The position and speed response with step input command.
Figure 5. The position and speed response with step input command.
Actuators 10 00113 g005
Figure 6. The position command and position response without load.
Figure 6. The position command and position response without load.
Actuators 10 00113 g006
Figure 7. The speed response without load and speed command profile.
Figure 7. The speed response without load and speed command profile.
Actuators 10 00113 g007
Figure 8. The current response without load.
Figure 8. The current response without load.
Actuators 10 00113 g008
Figure 9. The response of sliding surface σ without load.
Figure 9. The response of sliding surface σ without load.
Actuators 10 00113 g009
Figure 10. The simulated position, speed and position tracking error.
Figure 10. The simulated position, speed and position tracking error.
Actuators 10 00113 g010
Figure 11. The position response with load.
Figure 11. The position response with load.
Actuators 10 00113 g011
Figure 12. The speed response with load.
Figure 12. The speed response with load.
Actuators 10 00113 g012
Figure 13. The current response with load.
Figure 13. The current response with load.
Actuators 10 00113 g013
Figure 14. The response of sliding surface σ with load.
Figure 14. The response of sliding surface σ with load.
Actuators 10 00113 g014
Figure 15. The setup and load for experiment. (a) The FPGA board, power board and stepper motor; (b) stepper motor and flywheel load.
Figure 15. The setup and load for experiment. (a) The FPGA board, power board and stepper motor; (b) stepper motor and flywheel load.
Actuators 10 00113 g015
Figure 16. The built functions of FPGA and signal flow diagram of experiment system.
Figure 16. The built functions of FPGA and signal flow diagram of experiment system.
Actuators 10 00113 g016
Figure 17. The experimental responses of position and speed response with step command input.
Figure 17. The experimental responses of position and speed response with step command input.
Actuators 10 00113 g017
Figure 18. The experimental responses of position and speed without load.
Figure 18. The experimental responses of position and speed without load.
Actuators 10 00113 g018
Figure 19. The experimental position steady-state error without load.
Figure 19. The experimental position steady-state error without load.
Actuators 10 00113 g019
Figure 20. The responses of run forward and backward with trapezoidal velocity profile. (a) position and position tracking error; (b) speed.
Figure 20. The responses of run forward and backward with trapezoidal velocity profile. (a) position and position tracking error; (b) speed.
Actuators 10 00113 g020
Figure 21. The current response without load.
Figure 21. The current response without load.
Actuators 10 00113 g021
Figure 22. The sliding surface σ without the load added.
Figure 22. The sliding surface σ without the load added.
Actuators 10 00113 g022
Figure 23. The position and speed responses with load.
Figure 23. The position and speed responses with load.
Actuators 10 00113 g023
Figure 24. Current response with load.
Figure 24. Current response with load.
Actuators 10 00113 g024
Figure 25. The sliding surface with load.
Figure 25. The sliding surface with load.
Actuators 10 00113 g025
Table 1. The parameters of the simulated motor.
Table 1. The parameters of the simulated motor.
Rated Voltage3.6 V
Rated current2.0 A
Coil resistance ( R )1.6 Ω
Coil inductance ( L )0.0063 H
Rotor inertia ( J m ) 4.93 × 10 5   N m / s 2
Coefficient of friction ( B m ) 4.93 × 10 6   N m / s
Torque constant ( K m ) 0.18   N m / A
Back EMF ( K e ) 0.18   V / r a d s 1
Cogging torque constant ( F c ) 0.006   N m
Table 2. The usage of chip to realize the drive system.
Table 2. The usage of chip to realize the drive system.
FamilyCyclone III
DeviceEP3C16E144C8
Total logic elements5481/15,408 (36%)
Total combinational functions5153/15,408 (33%)
Dedicated logic registers1881/15,408 (12%)
Total registers1881
Total pins42/85 (49%)
Total virtual pins0
Total memory bits155,648/516,096 (30%)
Embedded Multiplier 9-bit elements64/112 (57%)
Total PLLS0/4 (0%)
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Lai, C.-K.; Lin, B.-W.; Lai, H.-Y.; Chen, G.-Y. FPGA-Based Hybrid Stepper Motor Drive System Design by Variable Structure Control. Actuators 2021, 10, 113. https://0-doi-org.brum.beds.ac.uk/10.3390/act10060113

AMA Style

Lai C-K, Lin B-W, Lai H-Y, Chen G-Y. FPGA-Based Hybrid Stepper Motor Drive System Design by Variable Structure Control. Actuators. 2021; 10(6):113. https://0-doi-org.brum.beds.ac.uk/10.3390/act10060113

Chicago/Turabian Style

Lai, Chiu-Keng, Bo-Wei Lin, Hsiang-Yueh Lai, and Guan-You Chen. 2021. "FPGA-Based Hybrid Stepper Motor Drive System Design by Variable Structure Control" Actuators 10, no. 6: 113. https://0-doi-org.brum.beds.ac.uk/10.3390/act10060113

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop