Appliance manufacturers today are adopting variablespeed permanentmagnet (PM) synchronous motors to improve energy efficiency and to add product features. Industrial drive makers have long recognized the high efficiency and high powertoweight ratio of the PM motor, but a recent advance in control electronics is enabling their widespread adoption by appliance makers.
Fieldoriented control (FOC) using only dclink current feedback provided from a single shunt resistor minimizes system costs, making it attractive for appliance drives. Sinusoidal control of the motor generates a smooth torque output that generates low acoustic noise. These results make FOC applicable to fans, pumps, washers and dryers where low noise and high efficiency are important.
Several appliances such as airconditioning and washerdryer units must independently control the speed of two motors to optimize their performance. The traditional approach for such systems is to use separate motorcontrol processors with a serial communications link for synchronization.
However, significant simplification of hardware and system design is possible if one device can control both motors. A recently introduced appliancecontrol platform simultaneously controls two PM ac motors using only dclink current feedback. It is equipped with an IC that has an embedded FOC algorithm that minimizes development time and enables rapid adoption by appliance makers.
Sensorless Motor Control
FOC is common in industrialdrive systems, which typically measure the rotor position using encoders or resolvers. The closedloop currentcontrol algorithm uses the rotor's angular position to align the motor currents with the rotor flux, maximizing torque production. Advanced rotorposition estimation algorithms^{[1]} (Fig. 1) in appliancecontrol systems eliminate the need for highresolution position sensors.
The estimation algorithm derives the PM's rotorflux position based on a motor model using the winding voltage and current information. This approach is appropriate because the magnets on the rotor determine the position of the rotor flux. The winding current measurements derived from the dclink current, which is captured through the appropriate analogtodigital control (ADC) sample timing based on knowledge of the power inverter's state.
The Fig. 1 system block diagram shows that the winding current measurements and the winding drive output voltages are inputs to a rotorflux model that calculates the rotor's angular position and velocity. The torque and fluxcontrol loops maximize torque production in the lower speed range, but also enable highspeed operation using field weakening.
A combination of analog and digital components provided these functions in firstgeneration FOC motordrive systems. Today, the majority of these motordrive systems use highspeed DSPs or RISC processors to implement the algorithm on a single IC. The transition to software implementations provided the advantages of flexibility and hardware simplicity, but also introduced a significant softwaredevelopment task for the drivesystem developer.
There are a number of steps in generating software code for the control algorithm. As a first step, a systems engineer translates the control schematic into a set of difference equations representing each control function. In the next step,a software engineer translates the difference equations into C code that defines the instructions running on the processor. This process is prone to errors, adding to the development time and, unless the code is well structured and documented, has longterm software maintenance ramifications.
The RISC processor and DSP suppliers support motordrive companies by providing a full suite of sample FOC software to help speed the development process. This is possible because FOC control technology is quite mature, and so the algorithm structure is well defined. However, now there is no particular advantage in a software implementation, because flexibility in the algorithm structure is no longer necessary.
Controlsystem designers can implement the FOC algorithm in hardware using digital ASIC or FPGA technology. The development process is not very different from the software approach in the first step. Instead of using C code, a hardware engineer translates the difference equations into Verilog code that defines the logicgate interconnections.
Such a design defines and stores systemcontrol parameters in control registers for development flexibility, but hardwires the algorithm structure in the digital ASIC. This approach is common in telecommunication systems where highprocessing speed is required. A number of motorcontrol ASICs implement FOC and other motioncontrol functions. The advantage in this approach is not only increased execution speed, but also significantly reduced system development time.
An alternative approach that a motioncontrol engine (MCE) provides combines the highspeed performance of dedicated ASIC hardware and the flexibility of a programmable processor.^{[2]} This is particularly effective because the FOC algorithm uses a number of standard functions such as error amplifiers, proportionalplusintegral (PI) compensators and vector rotators that appear multiple times in the control schematic. The MCE consists of a library of hardware motorcontrol functions that a motioncontrol sequencer effectively interconnects by assigning input and outputmemory addresses to the corresponding system variables.
The controlsystem engineer does not need to translate the control schematic into a set of difference equations because a fully optimized ASIC implementation is available in the MCE library. Instead, he uses a schematicediting tool to define the control schematic graphically by interconnecting standard functions from the motioncontrol library. A graphical compiler translates the control schematic into MCE sequencer commands that interconnect the hardware control functions. The compiler assigns an address in the MCE's shared RAM area to each algorithm variable that the control nodes define. The MCE sequencer commands define each controlfunction block along with the memory addresses for the input and output variables. Because the MCE stores these commands in memory, it has the same flexibility as a RISC processor or DSP.
The PWM switching frequency sets the algorithmexecution timing, the ADC's sampling rate and the rate at which the output voltage is updated. MCE library components represent the spacevector modulator and the ADC inputs, but they appear only once in the control schematic because they correspond to physical input and output pins.
On the other hand, MCE library control functions such as the vector rotator or the PI compensator can appear multiple times in the control algorithm because the MCE stores their inputs and outputs in data memory. Each instantiation of a library function consumes datamemory space for variables and MCE instructions, so memory size limits the complexity of the algorithm. Each library function consumes a certain number of system clock cycles every time it executes, so the total number of clock cycles that the control loop consumes must be less than the number of clock cycles in the PWM cycle.
The rotorangle estimator and currentcontrol loops consume about 1400 cycles of the system clock, corresponding to 11 µs at the maximum system clock of 128 MHz. Thus, it is feasible to control two motors at the same time with a PWM period of 50 µs, corresponding to a 20kHz switching frequency.
Of course, to control two motors the IC needs two sets of spacevector PWM modulators and an extra analog input for current sampling of the additional dc link. Fig. 2 shows a dual motorcontrol IC with the embedded MCE and an 8bit MCU core for applicationlayer code. The advantage of this approach is that it decouples the execution of the slow systemlevel functions on the microcontroller from the highspeed motorcontrol algorithms that the MCE executes.
MCE Library Functions
The key to the high execution speed of the control algorithm is the efficiency of the ASIC's implementations of the MCE library functions. Two important feedback control elements — the PI control compensator and the vectorrotation block — exemplify the library functions. The ASIC implementations need to optimize silicon real estate as well as clockcycle usage without sacrificing robustness and reliability.
The ASIC implementation of the wellknown PI control compensator (Fig. 3) is based on a continuous timedomain transfer function:
Transformation of this expression to the discrete time domain yields a set of difference equations that define the ASIC implementation:
The summation unit for the integral term has 32bit resolution to maintain accuracy for low input levels but rescales the output to a 16bit variable. The antiwindup blocks prevent saturation of the integration term once the output reaches the system's physical limits.
The vectorrotation block is a 2D matrix function that transforms voltages between the rotating and stationary reference frames. The forward rotation has sine and cosine terms:
Various trigonometric identities can reduce the calculation of the sine and cosine terms to a single sinefunction calculation over the range 0 degrees to 90 degrees. However, the calculation of this term will vary depending on the available hardware. In some microcontroller implementations, the lack of a fast multiplication function forces the software developer to rely on simple lookup tables. In the case of DSP or RISC processors with a singlecycle multiply instruction, a Taylor expansion calculates the sine function.
A vectorrotation function, known as the CORDIC algorithm, has been developed specifically for an ASIC implementation that relies on a series of add, subtract and shift functions that yield 12bit accuracy in 13 cycles (Fig. 4).^{[3]} This calculation is 10 times faster than the calculation using the Taylor expansion on a 32bit RISC processor.
Simplifying Motor Control
While many configurations are possible, Fig. 5 illustrates the savings that are possible when a singlecontrol IC operates a dualmotor platform. In addition to eliminating the unnecessary overcapacity resulting from the use of a second IC dedicated to the control of a second motor, extremely complicated interfacing between the two motors is possible. For example, in the event of a fault in one motor, such as a short or lockup, the second motor could almost instantaneously be deenergized in a reflexlike action that would preclude the delays associated with the communications interface to the host control system.
In addition to eliminating the unnecessary complexity of using a second IC dedicated to the control of a second motor, extremely complicated interfacing between the two motors is possible. In an airconditioner application, for example, the speed of the compressor motor and the evaporator fan need to track each other to optimize the operating efficiency. The control system sets the motor speeds by writing to MCE registers directly and avoids complex communications between multiple ICs.
References

Murray, Aengus, “Sensorless Motor Control Simplifies Washer Drives,” Power Electronics Technology, June 2006, pp. 1416, 18, 2021.

Takahashi, Toshio, “Motion Control Engine for Advanced Motion Control Application — A New Architecture Microcontroller Proposal.”

Andraka, R., “A Survey of CORDIC Algorithms for FPGA Based Computers,” proceedings of ACM/SIGDA 6^{th} International Symposium on FPGAs, 1998, Monterey, Calif.