Give away medical masks when you place an order. learn more
Field-Oriented Control (FOC) is an important technology for motor systems, particularly those using permanent magnets (PM). In general, FOC provides an efficient way to control a synchronous motor in adjustable speed drive applications that have quickly changing loads, and can improve the power efficiency of an AC induction motor, especially at lower speeds. For this reason, some designers mistakenly associate FOC for use only with AC motors. While it is true that today’s brushless DC (BLDC) motors tend to very efficient, up to 96 percent even without FOC, the value FOC brings to these systems is reduced torque ripple, resulting in smoother motor performance and quieter operation.
For example, introducing FOC to an automobile’s fan controller will allow the fan to move air efficiently without disturbing the driver with the whine of the motor. The result is a quieter driving experience. From a cost and manufacturing perspective, introducing FOC to a BLDC-based system requires no hardware changes on the part of the motor. All that is needed is an MCU with enough MIPS to support FOC processing within the motor control loop.
FOC improves performance by decoupling flux and torque components so they can be controlled independently. For motors using magnetics, there is no need to control the flux, so developers only need to control the torque. FOC is effective across a wide range of speeds, including high speeds where field weakening is required. Providing a relatively simple control method, it is possible to provide closed loop control using FOC without adversely increasing system cost.
In simple terms, FOC is a motor control technique where the system is trying to orient the stationary or “stator” flux vector to a specific degree relative to the rotor flux vector (see Figure 1). The optimal degree of orientation depends upon what characteristic of the motor needs to be maximized. The most common use of FOC is to maximize the motor’s torque per amp. This is achieved when the stator flux vector is 90 degrees to the rotor flux vector unless the motor has a variable reluctance, such as a motor with a magnet buried inside it. In this case, the degree of orientation is typically 115 to 120 degrees.
Figure 1: Field-oriented control techniques orient the stator flux vector to a specific degree relative to the rotor flux vector. (Source: Texas Instruments. Used with permission.)
In reality, every motor control algorithm works on the principle of FOC. Brush and commutation-based motors, for example, have worked this way for over a century. FOC is not specifically called out as a technique in these applications because the commutator performs this orientation mechanically. The stators themselves are stationary, and thus, so is their flux. The commutator’s job is to cycle the current so that the rotor flux is effectively stationary, as well.
However, when designing a motor control system without a commutator, there is no automatic alignment of the stator and rotor flux. In fact, both of them are rotating, so their orientation must be manually managed. Consider a BLDC motor where when the motor is commutated. The system measures the angle of the rotor and then tries to turn on the appropriate stator coils so the orientation between the rotor and stator is as close to 90 degrees as possible. However, the motor only has six commutation intervals and as such, precision is at best limited to +/- 30 degrees. As the rotor enters a new commutation zone, there is a +30 degree error. In the middle of the commutation zone, the rotor is perfectly aligned at the optimal orientation with no error; then. As the rotor passes out of the commutation zone, and into the next one, the error increases to -30 degrees.
This process of shifting error introduces torque ripple into the system. For some applications, such as an HVAC system where the motor is spinning a fan, the system tends to be forgiving and the impact on performance is minimal. For an application such as power steering, however, a driver can feel the effect of torque ripple through the steering wheel. Torque ripple also increases the audible noise the system produces.
FOC works best on motors which exhibit a sinusoidal back EMF waveform such as AC induction motors, Permanent Magnet Synchronous Motors (PMSM), and many BLDC motors. Note that FOC is a torque control algorithm, not a speed control algorithm. Speed can be controlled by wrapping a speed loop around an FOC loop and appropriately feeding its output into the FOC loop.
Again, the primary difference between a brushed DC motor and an AC motor with FOC is that the rotor and stator angles are automatically maintained in a brushed DC motor, and the FOC-based motor has to assume responsibility for maintaining the angles itself. FOC is not a fancy new way of controlling a motor. It is really the way motors want to be controlled.
Breaking down FOC
Certainly, FOC-based control is more complex and harder to understand than simple commutation. However, once all the equations and mystery are set aside, FOC can be seen as four straightforward steps (see Figure 2). (1) The system measures the current already flowing in the motor. (2) This is then compared to the desired current and (3) the resulting differential or error signal is amplified to generate a correction voltage. (4) Finally, the correction voltage is modulated onto the motor terminals. This process is repeated, depending upon the application, thousands of times per second.
Figure 2: FOC can be implemented as four straightforward steps. (Source: Texas Instruments. Used with permission.)
For example, with an FOC-based AC motor system, the system must determine the angle of the rotor flux either using a sensor or a sensorless implementation. Then the system must measure the three currents of the three-phase motor. These currents flow in coils, which ideally creates a current vector 90 degrees to the rotor vector (or whatever is the optimal orientation angle). Since the rotor is moving, this vector will likely be slightly off and needs to be corrected. The rotor angle is measured, usually with a resolver or encoder. After determining the appropriate error vector, the system calculates three new currents to reposition the current vector with respect to the rotor flux. Note that a Forward Clark Transformation can be used to convert the three-phase current vectors into two orthogonal vectors which yield the same net vector. In this way, the system only has to regulate two currents, rather than three.
Developers have a number of options for sensing the phase currents. To keep costs down, a shunt can be positioned in the inverter. More accurate options will tend to be more expensive. For example, a LEM sensor is a magnetic-based sensor placed in-line with the motor phases to get a more accurate reading than is possible with a shunt.
The integrity of current measurements is critical to FOC performance, and capturing the sensor reading requires an ADC on the control MCU. Today, a 10-bit ADC often provides sufficient accuracy for most applications. Many vendors, however, prefer to use a 12-bit ADC to be able to achieve higher resolution. This higher resolution gets rid of quantization errors in the output and results in a smoother waveform.
The precision FOC brings to an application is dependent upon how tightly the error signal is maintained; i.e., the accuracy of the alignment angle is based on how frequently the system is updated. For a typical application, a control loop operating at 10 kHz provides sufficient responsiveness. For applications which can benefit from greater precision, 20 kHz is a common frequency. The primary trade-off is that as the operating frequency is increased, the number of MCU MIPS required increases as well.
For example, Texas Instrument’s C2806 Piccolo™ MCU, operating at 80 MHz, can execute an entire FOC calculation in 15 to 20 μs, depending upon what other control functions are being performed at the same time. Even with a PWM period of 40 μs, this still leaves at least half the bandwidth of the C2806 for other system tasks (check a sensor, blink an LED, send a message over the CAN port, etc.). A general rule of thumb is to use no more than 50 to 60 percent of the MCU’s capacity for FOC; because of interrupts, the system will not have enough capacity for the rest of the application.
Developers also have the option of implementing sensorless FOC. Shaft angle sensors can be quite expensive, depending upon the application. In such cases, angle measurements can be made much more cost-effectively in software by increasing the FOC frequency by a factor of three times to enable calculation of the rotor flux angle. This requires from 40 to 60 μs per FOC iteration and requires a more expensive MCU with sufficient bandwidth. Note that because FOC requires all of the motor phases to be driven continuously, sensorless techniques used with BLDC motors will not work with FOC since one phase must be unpowered to read the back EMF signal. However, other algorithms are available which will read the motor flux angle with high accuracy, within a few degrees, without requiring a shaft sensor or having an unpowered phase.
Overcoming cost barriers
One of the original barriers to implementing FOC was cost. Commutative control-based systems are simple in comparison, given the number of calculations required for FOC, and even though it provides smoother operation, the added system cost of FOC was too much for many applications, especially in automotive and appliance systems.
Over the past few years, however, the dropping cost of processing technology has significantly brought down the price of FOC. Since a system only needs a larger MCU to provide the processing resources to perform FOC, introducing FOC to a system could cost as little as 50 cents. When compared to the cost of the rest of the motor system, FOC represents only two to three percent of the total BOM.
At this price, FOC becomes feasible to add to a great variety of systems. For example, many washer and dryer manufacturers are moving to FOC in systems based on either AC induction or permanent magnet synchronous motors (PMSM). Reducing the torque ripple enables these appliances to operate much more quietly. They are also able to run more smoothly, resulting in less vibration on the gear train and extending the reliable operating life of appliances. Alternatively, manufacturers can leverage the smoother operation afforded by FOC to redesign the gear train and reduce overall system cost instead.
FOC is also being implemented in industrial and consumer-based HVAC systems. For example, air conditioning systems have two motors – one for the fan and one for the compressor. To increase the operating life of the compressor, HVAC systems are moving to FOC. Many of these systems are also adding FOC to the fan controller at the same time. Again, the primary benefit is smoother and quieter operation given the characteristic of vents to amplify vibration.
The third major application space impacted by the availability of low-cost FOC control is automotive. As would be expected, traction control in hybrid vehicles is improved through FOC. For conventional vehicles, FOC is the foundation for significantly improving gas efficiency through electric power steering. Hydraulic-based power steering requires the constant operation of a hydraulic pump, even when the driver is not using the steering system very much, such as when driving down the highway at 65 MPH. In contrast, an electrically-based power steering system based on FOC can be operated on-demand, enabling substantially greater efficiency. When the estimated savings are measured in terms of gas efficiency – an impressive 1 to 3 MPH – the incentives to move to power steering with FOC are nothing short of compelling.
Introducing FOC to motor control systems
Many silicon companies offer a diverse set of tools for jumpstarting the design of FOC-based systems. Several development platforms are available for different types of motors and applications. For example, TI offers developers its C2000™ Motor Control and PFC Developer’s Kit (TMDS1MTRPFCKIT) to implement FOC of one motor with integrated power factor correction (PFC) using a single Piccolo F28035 MCU. A dual motor kit (TMDS2MTRPFCKIT) is also available for controlling two motors with FOC and integrated PFC.
TI’s controlSUITE™ software includes a variety of reference designs to offer developers a starting point for their own designs. The controlSUITE application is also self-updating so that developers always have access to the latest software. FOC support is available across the C2000 MCU families, including the C2802x, C2803x, and C2806x devices. The C2802x architecture operates at up to 60 MHz. The C2803x is utilized in more complex applications and includes TI’s Control Law Accelerator (CLA), an integrated floating-point processor that runs independently of the C2000 core. The C2806x is TI’s most recent controller, operating at up to 80 MHz and features several enhancements for motor control, including new complex math instructions and a DMA controller to offload the CPU when moving data from the ADC or communications peripherals to RAM.
Both the C2803x and C2806x controllers are also well-suited for safety applications. The CLA is separate from the CPU (i.e., an asymmetrical processor), so it can be used to meet safety regulations for verifying accurate and uninterrupted operation of the CPU by performing operations such as checking calculations of the CPU and confirming that the voltage outputs are correct.
The future of motor control
The greatest change over the next few years will be brought about not by improvements in FOC control algorithms, but rather by the introduction of new design methodologies that abstract the complexities of FOC implementation. For example, TI has several motor control design offerings, including the Simulink development environment offered by MATLAB and VisSim available from Visual Solutions. Developers can use these tools to create a model of their motor control system in software. By running simulations with this model, developers can then adjust the system to operate as required for a particular application. Once the model is complete, the tools automatically generate C source code for the control loop. Developers can then tune the generated code and integrate it into the overall system.
The use of C provides several benefits to developers’ abstracts code away from processor-specific implementations, both to make it easier for developers to understand code, as well as to facilitate migration of code between processors and applications. Using C, however, does come at the expense of some loss of efficiency. However, while FOC-based motor control is complex to understand, it is a fairly consistent technology to implement and, given a set of operating parameters, creating the appropriate processing code is relatively straightforward. In addition, continuing investment in compiler technology is narrowing the performance gap between assembly and generated C code. Visual Solutions, for example, estimates that their tools achieve within five to ten percent of the efficiency of hand-coding. The -tradeoff is that developers can design in a more intuitive development mind space – e.g., creating a model of the motor – rather than have to think in terms of an MCU’s architecture and assembly instruction format. In this way, developers can focus on application performance, not implementation details. The result is a more efficient design and faster time-to-market.
Tools like Simulink and VisSim have the potential to completely change how motor control systems are designed. As these tools become more proficient at accurately generating control loop software, motor control systems engineers will no longer need to look at C source code. In fact, the need to write software for motor control may completely disappear. Motor control is a well-understood problem and, if companies like TI, MATLAB, and Visual Solutions are right, FOC and motor control in general will become a parameter-based function within the next five to ten years.
While the benefits of FOC – improved efficiency, smoother operation, and lower noise – have been known for some time, many manufacturers have considered FOC to be out of reach, given the added system complexity and cost. With continuing innovation in MCU technology, FOC has become affordable and is being introduced into a wide range of applications, including appliances, automotive, HVAC, and other industrial and consumer markets. Through the use of advanced modeling tools, developers can design, optimize, and bring to market a complete and robust motor control system with minimal software development and cost, therefore bringing the performance benefits of FOC to a wide range of new appliances.
Special thanks to Dave Wilson, team lead for Motor Control at Texas Instruments, for his contributions to this article.