Field Oriented Control (FOC) as a Hardware Building Block
Field oriented control (FOC), also called vector control, uses current control to manage the torque of 3-phase motors and stepper motors with high accuracy and bandwidth. FOC uses orthogonal applied current to drive electrical motors. It is the most efficient way to control permanent magnet synchronous motors such as 3-phase BLDC motors or 2-phase stepper motors.
Servo controllers are key in industry-leading applications with synchronous drives. By integrating FOC into hardware, ADI Trinamic™ technology gives engineers the building blocks to reduce servo controller design time and complexity.
Why Use FOC?
To generate a precise amount of torque , it’s not enough to control the amount of current needed to generate the specific target torque; it’s also necessary to phase the magnetic field of the magnets in the rotor. Applying current in phase to the magnetic field does not generate torque, but orthogonal applied current does. FOC answers this challenge by using orthogonal applied current to drive electric motors with maximum efficiency using real-world current and rotor position information.
How Does FOC Work?
Imagine that you are trying to lead a donkey. You could use a leash to get the donkey moving in roughly the right direction. Or you could steer the donkey with much greater precision by dangling a carrot in its path and adjusting it step by step. The placement of the carrot will guide the next step based on the current position of the donkey.
In a FOC-driven electrical motor, the donkey is the rotor and its exact position determines the orthogonal current IQ (the carrot) that must be applied to accurately control the next step. In other words, the orthogonal current IQ controls the motor by knowing the exact position of the rotor.

Finding Vectors for FOC
Field-oriented control is also called vector control because it can be used to obtain IQ and provide simple-to-use control values in a single vector. Rotors are controlled by applying voltages to three sinusoidal motor current phases or in the case of stepper motors by applying voltage to two sinusoidal motor current phases. The applied voltages result in a current flow through the motor, generating a magnetic field and therefore attracting the magnetic rotor into the desired position. FOC simplifies this approach by transforming currents and voltages.

The result is a representation of the current as a single vector that is defined by the orthogonal components IQ and ID. Two mathematical transformations called Clarke and Park are used to find this vector by transforming the actual phase currents from stator-fixed to field-synchronous coordinate systems.
Using Vectors for Servo Motor Control
With FOC, two PI current controllers can be used to control both aspects of the motor current vector separately. One current controller (IQ) is used to control the motor’s torque and is thereby called the torque controller; the other one (ID) controls the magnetic flux inside the motor. Transformations are based on the actual rotor angle, which is acquired by position sensors like Hall sensors or encoders. The magnetic flux is mainly generated by the rotor, so its target value is usually zero.
Servo control adds speed and position controllers to this architecture to make it fully functional for positioning applications. All controllers require proper feedback to work at high dynamics and to compensate for unknown load forces. For current controllers, this means that the coil currents need to be measured. Position can be measured with encoders or roughly with Hall sensors. As velocity sensors are not common, the velocity of the motor is often computed by differentiation of the position signal.