Field Oriented Control of Brushless Motors Using an ARM7 Processor

Publisher:和谐相处Latest update time:2012-11-13 Source: 21ic Keywords:ARM7 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
Any improvement in the efficiency of motor drives will save a lot of energy, which is part of the reason for the growing interest in advanced motor control algorithms. Three-phase brushless motors mainly refer to AC induction asynchronous motors and permanent magnet synchronous motors. These motors are known for their high energy efficiency, high reliability, low maintenance costs, low product costs and silent operation. Induction motors are already widely used in industrial applications such as pumps or fans, and are flooding the market with permanent magnet synchronous motors, such as home appliances, air conditioners, automobiles or servo drives. The main reasons for the development of three-phase brushless motors are: the price of electronic components has dropped, and it is possible to implement complex control strategies to overcome the inherent poor dynamic performance.

Take the asynchronous motor as an example. A simple design requires applying three 120° phase-shifted sinusoidal voltages to the stator, and the windings are arranged in a way that produces a rotating magnetic flux. Using the transformer effect, this flux induces a current in the rotor cage, which then produces rotor flux. It is the interaction of these two fluxes that produces the electromagnetic torque that makes the motor rotate.

The condition for inducing a current in the rotor is that the rotor speed is different from the stator flux frequency; if they are the same, the rotor will experience a constant flux and no induced current will be generated (Lenz's law). The small difference between the current frequency and the mechanical frequency it generates is the reason for the name of the asynchronous motor. The simplest way to achieve adjustable speed operation of a three-phase AC motor is to implement a so-called voltage/frequency control (or scalar control), which works by maintaining a constant ratio between the frequency and the motor current voltage. This method produces a constant stator flux and then the rated motor torque on the rotor shaft. This is a popular control method for low-cost drives with well-known application load characteristics and drives with low control bandwidth requirements, such as a small number of HP pumps and fans, washing machines, etc. An 8-bit microcontroller with a low MIPS and a reasonable peripheral interface, such as the ST7MC, can meet such application requirements and is also easy to program.

This approach does not guarantee the best motor characteristics (torque, efficiency) during transient operation. Furthermore, the time of the drive reaction force must be limited to prevent temporary demagnetization of the motor. To overcome these limitations, other control strategies have emerged on the market, taking into account the dynamic characteristics of the motor. Field-oriented control (also known as vector control) is the most widely used control algorithm, targeting applications such as belt conveyors, high-power water pumps, automotive exhaust emissions, and factory automation. This approach allows an AC motor to be controlled with two decoupled control variables (hereinafter referred to as Id and Iq) just like a DC motor with separate excitation. The excitation current Id generates the DC main flux, while Iq controls the torque, functioning like the armature current in a DC motor. When the load changes, field-oriented control allows precise speed control, very fast response, and even during transient operation, by keeping the stator and rotor fluxes orthogonal, it can optimize the motor efficiency. This approach allows position control schemes (through transient torque control) to release the full torque of the motor at low speeds.

The following is a brief introduction to the working principle of field-oriented control. The reference coordinate system is changed from the fixed stator coil to the moving rotor flux coordinate system using two well-known transformation algorithms: Clarke transformation and Park transformation. Clarke transformation converts the 120° phase-shifted three-axis coordinate system (Ia, Ib, Ic) into a two-axis rectangular coordinate system (Ia, Ib); Park transformation converts the fixed (Ia, Ib) coordinate system into a two-axis rotating coordinate system (Id, Iq) related to the rotor. The last two values ​​are DC or slowly changing values, and a simple PI controller method can be used to adjust these two values. Finally, the inverse transformation (Park and Clarke inverse transformation) is used to restore it to the fixed AC three-phase coordinate system, as shown in Figure 1.

How Field Oriented Control Works

Figure 1 Working principle of field-oriented control

Among the various vector control methods, we use an indirect field-oriented control method. The only motor model parameter measured and processed is the rotor time constant Lr/Rr (in the slip estimator module). If the motor is a permanent magnet synchronous motor, the block diagram and corresponding functions will be very similar. The slip estimator is no longer needed and the flux command can be set to zero (the magnets generate the flux themselves). The algorithm is only part of the job: once the voltage level is calculated, it must be converted into volts and amperes. Like in any modern power electronic system, this motor control system consists of muscles (power converters) and brains (microcontrollers). The driving power converter (commonly known as inverter) is driven by three PWM outputs. As can be seen from Figure 2, a powerful three-way buffer converts a 0-5V logic signal into a 0-300V square wave signal applied to the motor terminals. The motor winding inductance acts as a low-pass filter: it removes the carrier frequency and smoothes the current changes to form a sinusoidal current waveform, i.e. the waveform modulated by PWM.

Motor control system

Figure 2 Motor control system

Let's look at the overall requirements of an advanced motor drive system, starting with the CPU. The entire vector control algorithm must be continuously and repeatedly calculated at a speed between 1 and 10 kHz (1ms up to 100μs closed loop time, depending on the bandwidth of the final application). The system requires a lot of mathematical calculations (trigonometric functions, PID regulators, real-time flux and torque estimation based on motor parameters). In addition, there must be room for calculations for the rest of the application (communication, user interface, etc.). In order not to limit dynamic performance, the main control variables require a minimum of 16 bits of precision, and intermediate results require 32 bits of computing power. [page]

All these factors explain why vector control must use high-speed, high-performance processors. Existing products on the market include 16-bit or 32-bit microcontrollers, hybrid controllers or digital signal processors, which are usually directly related to advanced motor control. If you are not deliberately pursuing the fastest digital current control loop or the most accurate curve control, an ARM7 processor-based solution just meets the requirements of flux-oriented control. In addition to the core performance, if you want to minimize external components, you also need to be equipped with reasonable peripheral interfaces. This design can greatly simplify the design process, ensure cost-effectiveness and reliability (because the PCB design is simplified).


In terms of signal generation, general PWM channels are not suitable, and motor control-specific PWM signals must be used. Therefore, three pairs of synchronous complementary PWM channels must be used, with a dead time insertion function to prevent possible short-circuit faults in the half-bridge. For safety reasons, when a fault/error occurs in the power stage (overcurrent, high temperature), the six PWM channels must be turned off at the same time. The safety function is also equipped with a dedicated emergency fault input. The clock frequency of the timer (typical value >50MHz) and the triangular waveform of the PWM carrier frequency are the two factors that ensure the high accuracy of the sine waveform and the best noise-switching loss ratio, rather than the sawtooth waveform.

Analog signal acquisition is another major load of the MCU. Motor monitoring must control two types of signals: slowly changing signals such as DC bus voltage (containing 100Hz ripple voltage components) or potentiometer voltage; high dynamic frequency range of several Hz to hundreds of Hz motor current, which contains ripple current of PWM rate (typical value is higher than 10 kHz). Therefore, the speed of the analog-to-digital converter must be very fast (less than 5μs) to reduce the measurement of unsteady current when sampling the motor phases sequentially, saving the time consumed in the PWM interrupt service routine to wait for the analog-to-digital conversion results. In terms of converter accuracy, 10 bits are becoming the standard for converters. Although 8-bit converters are sufficient for most applications, applications with an expanded current range require more than 10-bit analog-to-digital converters to ensure sufficient resolution under various load conditions. In addition, the control accuracy is directly related to the quality of the analog-to-digital converter.

Finally, we must also deal with speed and/or position sensors. Incremental encoder position sensors require dedicated signal conditioning functions as an external clock with up and down counting functions to process two quadrature signal outputs. This function is handled by a timer with a dedicated encoder mode.

We have successfully implemented a sensored field oriented control (speed generator based) algorithm on a STR730 microcontroller based on an ARM7TDMI processor operating at 32MHz with embedded flash memory. The algorithm was developed entirely in C language without any deliberate code optimization. In the actual algorithm, the entire control loop takes 55μs to complete, with a CPU load of 17% at a sampling rate of 3kHz. When the core runs at 60MHz, the expected execution time is less than 20μs.

There are many advantages to implementing algorithms with an ARM7 processor. First, the ARM core is now a standard core, and its platform approach and the large number of development tools are key to saving costs. Second, if the next generation product design requires higher processing speed (MIPS), you can directly upgrade to an ARM9-based product. From an architectural point of view, the barrel shifter is very interesting, which allows the variable resolution to be optimized throughout the processing flow. You can change the format within a clock cycle to limit the processing time. In addition, it allows to save some multiplication operations by constants, for example, r0=(r1<<4) - r1 is equivalent to r0=15xr1, or even faster. Low-cost DSPs have 16-bit fixed-point cores. When the integral term of a PI regulator must be processed or the required precision range must be extended, the ARM7's 32-bit data path can avoid multiple 16-bit loads. When it comes to motor control signal processing, other important features of the DSP are not of much use, such as hardware closed loop and dual addressing modes. This explains to some extent why the ARM7 processor is described as such an optimized architecture.

Figure 3 shows a new STR7 product developed for ST's ARM7 processor-based product line that meets the system requirements outlined above. Key features include:

SPTimer synchronizes PWM timers to perform high-end PWM signal generation functions. Based on a 16-bit timer, the time resolution can be reduced to 16.6ns to achieve optimal voltage reconstruction.

Ability to generate center-centered or edge-aligned PWM patterns;

Internal programmable dead time signal generator and emergency fault protection required for inverter fault handling;

To simplify software handling tasks, multiple interrupt sources, a programmable reload rate, and "no smoking" protection are used to prevent software from modifying the configuration registers of important system peripherals due to uncontrolled operation.

New STR7 products

Figure 3 New STR7 products

This SPTimer can also be used as a general-purpose timer with two input capture pins, two output compare pins, and an encoder-specific mode that minimizes software overhead. This mode has x2 or x4 resolution, automatic direction management, and can program the number of lines of the selected encoder, so the rotor angle signal can be read directly from the count register. For the current measurement function, the new product has a built-in 3μs 10-bit analog-to-digital converter with automatic scanning function. The main peripheral interfaces include multiple timers, communication interfaces, etc. Considering the non-motor control tasks handled by the microcontroller, we have designed intelligent peripherals on the circuit board, such as connection terminals, power factor correction, energy-consuming braking, etc.

STMicroelectronics is focused on the motor control market and is one of the few suppliers in the world that can provide a complete motor control portfolio, ranging from fast diodes to processors, including high-voltage gate drivers and switches. To meet the needs of more energy-efficient "green" motors and high-performance drives, we have created a complete ARM-based product line to help designers unveil the mystery of vector control algorithms. This control method will soon make today's mainstream DSP-based control obsolete. Promote the application of a new control method: Since advanced motor control needs can be met using standard ARM-based microcontrollers, who is willing to spend time on proprietary architectures to implement advanced motor control?

Keywords:ARM7 Reference address:Field Oriented Control of Brushless Motors Using an ARM7 Processor

Previous article:Design of Distributed Remote Measurement and Control System Based on ARM7
Next article:Research on Embedded Gateway Based on ARM9

Recommended ReadingLatest update time:2024-11-16 17:33

Analysis and Optimization of ARM7 Interrupt Process under μC/OSII
introduction At present, among embedded processor chips, the processor with ARM7 as the core is the most widely used one. It has multiple working modes and supports two different instruction sets (standard 32-bit ARM instruction set and 16-bit Thumb instruction set). μC/OSII is a preemptive, multi-tasking real-
[Microcontroller]
Analysis and Optimization of ARM7 Interrupt Process under μC/OSII
ARM7 LPC2378 remote upgrade ---- PC, SP, LR registers
1. Program counter PC (register R15)     simple understanding: points to the address being fetched     Detailed analysis: The programs (instruction sequences) to be executed by the processor are all pre-stored in the computer's memory in the form of binary code sequences. The processor fetches these codes one by one i
[Microcontroller]
Development and application research of W90P710 evaluation board
Winbond W90P710/W90N745 adopts ARM's ARM7TDMI microprocessor core and 0.18μm process, with a standard operating frequency of up to 80 MHz, a built-in Ethernet MAC, and a 176/128-pin LQPF package, which has the advantages of power saving and low cost. In addition, W90P710/W90N745 also integrates USB 1.1 host/device c
[Microcontroller]
Development and application research of W90P710 evaluation board
Design of wireless endoscopy system based on ARM7
introduction At present, the research on micron and nanotechnology is very active, which has led to the rapid development of microtechnology and micro-mechanical electronic system (MEMS) technology, thus greatly promoting the miniaturization and micro-microscopicization of medical equipment, and the emergence
[Microcontroller]
Design of wireless endoscopy system based on ARM7
Design of Real-time Clock Display Based on ARM7
Introduction: After applying this project to the external memory of the development board based on LPC2294, it can run offline, the VFD real-time clock is fully lit, and the displayed time is correct. LPC2294 is suitable for the development of tax control equipment. There are many modules on the tax control equipment,
[Microcontroller]
Design of Real-time Clock Display Based on ARM7
Serial communication solution based on ARM7 and virtual instruments
Introduction         The LPC213X series is an embedded microcontroller developed by NXP based on the ARM7TDMI-S core and with the ARM architecture v4 version. Due to its excellent performance, it is widely used in automatic control, communications and other fields, and has gradually become a variety of instruments.
[Microcontroller]
Serial communication solution based on ARM7 and virtual instruments
ARM7 MCU (Learning) - (IV), Timer - 02
As long as you know the definition of the microcontroller clock in Startup.s~~ That is to say, when the external crystal frequency is 12MHz, the system clock is 60MHz and the peripheral clock is 15MHz~~ Invincible~~ I feel like I have learned a lot~~ But I'm still a little confused about the peripheral clock. Why is i
[Microcontroller]
ARM7 MCU (Learning) - (IV), Timer - 02
Oil tank area monitoring system based on GSM short message
1 Introduction The oil tank area monitoring system is a basic component of the oil depot reserve company. At present, most oil tank areas generally have problems such as backward technology, low automation level, and manual work. Therefore, in order to adapt to the requirements of market competition and improve the
[Microcontroller]
Oil tank area monitoring system based on GSM short message
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号