The stepper motor is an open-loop control motor that converts electrical pulse signals into angular displacement or linear displacement. The total number of input pulses controls the total rotation angle of the stepper motor, and the speed of the motor is determined by the number of input pulses per second, so it is easy to achieve precise control of the mechanical position. In addition, due to the low price and strong controllability of stepper motors, they have been widely used in automatic control fields such as CNC machine tool transmission control. However, with the development of technology and the requirements of enterprise production, the traditional control system of stepper motors with microprocessors such as single-chip microcomputers as core units has exposed the following shortcomings: the single control strategy is not conducive to human-computer interaction, and the control circuit is complex, the control accuracy is low, the production cost is high, the system stability is insufficient, the step resolution is low, the flexibility is lacking, the oscillation and noise at low frequency are large, and due to the mechanical structure and space limitations of the stepper motor, the step angle of the stepper motor cannot be infinitely small, and it is difficult to meet the needs of high-precision open-loop control. Due to the simple programming method of FPGA, short development cycle and high reliability, its application in the field of industrial control is becoming more and more extensive. Based on the summary of FPGA frequency division technology and stepper motor subdivision control principle, this paper improves the resolution of stepper motor through PWM control technology. Simulation and experiments show that the measures taken in this paper can effectively realize efficient and precise control of stepper motor.
1 Stepper Motor Subdivision Control Principle
The working principle of the stepper motor is shown in Figure 1. For a four-phase stepper motor, the rotation of the motor can be controlled by energizing each phase winding in a certain order. For example, when switch B is connected to the power supply and other switches are disconnected, the magnetic poles of phase B and rotors 0 and 3 are aligned under the action of magnetic lines of force; when switch C is connected to the power supply and other switches are disconnected, the rotor rotates under the action of magnetic lines of force, and teeth 1 and 4 are aligned with the magnetic poles of phase C winding. Similarly, when power is supplied to the four-phase windings A, B, C, and D in sequence, the motor will rotate in the directions of A, B, C, and D.
In order to understand the shortcomings of stepper motors, it is also necessary to understand the step angle of stepper motors. The step angle is defined as:
In the formula: km is the working cycle coefficient of the stepper motor; zn is the number of teeth.
Limited by the number of beats and the number of teeth of the rotor of the stepper motor, the step angle of the stepper motor cannot be very small, that is, the rotation amount of each single step control is relatively large. In many fields of precision control, the function of the stepper motor cannot meet the use requirements. Therefore, in order to improve the resolution of the stepper motor, it is necessary to use subdivision control technology to optimize its control. Subdivision control is similar to interpolation. Its basic principle is to subdivide the current in the motor winding and add many intermediate currents between the two control currents, so that the stepper motor can work in many intermediate states, so that each step of the stepper motor is subdivided, its step angle is smaller, the resolution of the system is improved, and the performance is optimized. There are usually two subdivision methods for subdivision control. One is to subdivide the current according to the linear law, and the other is to subdivide according to the equal step angle. In order to compare the advantages and disadvantages of the two subdivision methods, it is also necessary to understand the static angle characteristics of the stepper motor when it is working.
Where: M is the electromagnetic torque; Mk is the maximum static torque at a certain winding current; for a reactive stepper motor, when the magnetic circuit saturation is not considered, Mk can be considered to be proportional to the square of the current i, and the negative sign indicates that there is a Lenz relationship between the electromagnetic torque and the stator magnetic field, that is, the electromagnetic torque always prevents the rotor from leaving the position of minimum magnetic resistance of the magnetic field.
Now let’s analyze the two subdivision methods using a three-phase reactive stepper motor.
When the three-phase windings of a three-phase reactive stepper motor are energized separately, their torque-angle characteristics are sinusoidal curves that differ by 120° electrical angle from each other, as shown in Figure 2.
When phases A and B are energized, the currents are assumed to be iA and iB respectively, and the corresponding static torques are MA and MB. Ignoring the influence between the magnetic circuits, the synthetic torque-angle characteristic is the superposition of the two, as shown in formula (3):
From formulas (3) and (4), it can be seen that when the current of the stepper motor changes according to a linear law, its step angle characteristic is shown in Figure 3(a). Since the characteristic amplitude of the step angle is different due to the different currents, the step angle of each subdivision cannot be kept consistent. The ideal subdivision current waveform should make the amplitude and shape of the step angle characteristic in each power-on state equal, as shown in Figure 3(b).
If the current distribution coefficient is strictly used to control each power-on state in the control circuit, the control accuracy of each small step after subdivision can be guaranteed to be equal. Therefore, this paper adopts the subdivision method based on equal step angle.
2 Implementation of stepper motor subdivision control hardware
In order to achieve equal step angle subdivision of stepper motor, this paper adopts pulse width modulation (PWM) to achieve it. PWM is to control the on and off of the switching device of the inverter circuit so that the output end can obtain a series of pulses with equal amplitude. These pulses can be combined to form equivalent sine waves, square waves and other expected waveforms. The quality of the equivalent output waveform is related to the step distance of the pulse, that is, the more PWM channels are output at the same time, the higher the pulse density, and the better the quality of the output equivalent waveform. The traditional stepper motor control system mostly uses a single-chip microcomputer as a microprocessor, and the single-chip microcomputer is a single-threaded microprocessor. It can only execute one command at the same time, that is, it can only generate one PWM signal at the same time. Therefore, the output waveform quality is poor, resulting in low control accuracy of the stepper motor. The computing speed of FPGA is much higher than that of the single-chip microcomputer, and through modular design, it can be put into multi-threaded working mode, that is, it can generate multiple PWM signals at the same time, which improves the quality of the output equivalent waveform. In this paper, the new Cyclone II series FPGA device launched by Altera in 2004 is selected as the development platform, which outputs 8 PWM signals at the same time to control the 16 subdivisions of the four-phase stepper motor. At the same time, the serial port module is used to connect to the host computer to realize human-computer interaction. The system schematic diagram is shown in Figure 4.
The control system adopts bus control mode, and uses chip select signals to control the on and off of 4 PWM latches in sequence, which can simplify the hardware circuit and software design. Taking phase A control as an example, when chip select A is high and the other chip selects are low, PWM latch A works while the other PWM latches are dormant. The subdivided current distribution coefficient is calculated according to formula (8), and then converted into the duty cycle of the control PWM signal. At the same time, several latches are turned on and the stepper motor is driven through the latch output.
3 Design of stepper motor subdivision control software
In this design, Quartus II software development platform and Verilog design language are used to design the control software. The system needs to use linear feedback shift registers (Linear Feedback Shift Registers) in FPGA to realize the generation of random numbers and control the random sampling rotation of the stepper motor. The core PWM control module design of this system is as follows:
4 System Testing
After the system design is completed, the entire system is tested and inspected.
The simulation result of the PWM control system is shown in Figure 5. By observing the simulation output waveform, it can be seen that the control pulse output is correct. After the program is solidified into the FPGA hardware, the controlled four-phase reactive stepper motor is connected, and the FPGA is connected to the host computer through the serial port. The host computer outputs commands to control the speed, direction, rotation angle, etc. of the stepper motor.
5 Conclusion
This paper proposes a design scheme for a stepper motor control system based on FPGA. This scheme takes advantage of the characteristics of FPGA such as fast control speed and strong reliability, and uses the principle of equal step subdivision and PWM control technology to design a stepper motor control system with high flexibility, human-computer interaction and high resolution. The verification results show that the control system realizes 16-level subdivision of the equal step angle of the stepper motor, and realizes the main technical indicators of arbitrarily changing the order of each phase through human-computer interaction, with high control accuracy and strong reliability. This confirms the feasibility of the scheme.
Previous article:Multi-core DSP power-on loading technology based on TMS320C6678
Next article:FPGA implementation of fixed-point square root based on Python
Recommended ReadingLatest update time:2024-11-15 10:15
- Popular Resources
- Popular amplifiers
- Analysis and Implementation of MAC Protocol for Wireless Sensor Networks (by Yang Zhijun, Xie Xianjie, and Ding Hongwei)
- MATLAB and FPGA implementation of wireless communication
- Intelligent computing systems (Chen Yunji, Li Ling, Li Wei, Guo Qi, Du Zidong)
- Summary of non-synthesizable statements in FPGA
- MathWorks and NXP Collaborate to Launch Model-Based Design Toolbox for Battery Management Systems
- STMicroelectronics' advanced galvanically isolated gate driver STGAP3S provides flexible protection for IGBTs and SiC MOSFETs
- New diaphragm-free solid-state lithium battery technology is launched: the distance between the positive and negative electrodes is less than 0.000001 meters
- [“Source” Observe the Autumn Series] Application and testing of the next generation of semiconductor gallium oxide device photodetectors
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- Will GaN replace SiC? PI's disruptive 1700V InnoMux2 is here to demonstrate
- From Isolation to the Third and a Half Generation: Understanding Naxinwei's Gate Driver IC in One Article
- The appeal of 48 V technology: importance, benefits and key factors in system-level applications
- Important breakthrough in recycling of used lithium-ion batteries
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- SimpleLink MCU code migration guide: CC1310 from VQFN48 (7×7) to VQFN32 (5×5) code migration process reference
- Welcome the new moderator of the "201420208012" eSports
- What is the difference between a servo motor and a brushless DC motor?
- [Raspberry Pi Pico Review] ADC External Benchmark vs. Onboard Benchmark
- Do DC powered devices have common mode interference?
- Allegro photo-painting problem
- The PCIE communication problem that has troubled me for three days - please help!
- Watch the live broadcast and win an oscilloscope | Today at 2 pm RIGOL live broadcast [Oscilloscope, programmable DC power supply, spectrum analyzer application...
- Typical Vacuum Cleaner/Robot Sweeper BMS Topology
- TI's crystal-free SimpleLink wireless MCU helps you easily achieve crystal-free