What Is Field-Oriented Control?
Field-oriented control (FOC) or vector control is a control technique used to obtain good control capability over the full torque and speed range for various motor types, including induction machines, permanent magnet synchronous machines (PMSMs), and brushless DC (BLDC) motors. For speeds above rated speed field-oriented control with field weakening control is used.
The block diagram below shows a field-oriented control architecture that includes the following components:
- Current controller consisting of two proportional-integral controllers
- Optional outer-loop velocity controller and current reference generator
- Clarke, Park, and inverse Park transforms to convert between stationary and rotating synchronous frames
- A space vector modulator algorithm to transform vα and vβ commands into pulse-width modulation signals applied to stator windings
- Protection and auxiliary functions, including startup and shutdown logic
- Optional observer to estimate rotor angular position if sensorless control is desired
Motor control engineers designining a field-oriented control perform the following tasks:
- Develop controller architecture with two PI controllers for the current loop
- Develop PI controllers for the optional outer speed and position loops
- Tune the gains of all PI controllers to meet performance requirements
- Design a space vector modulator for control of PWM
- Design an observer algorithm to estimate rotor position and velocity if sensorless control is used
- Design maximum torque per Amp or field weakening control algorithms to generate optimal id_ref and iq_ref
- Implement computationally efficient Park, Clarke, and inverse Park transforms
- Design fault detection and protection logic
- Verify and validate controller performance across different operating conditions
- Implement a controller in fixed or floating point on a microcontroller or an FPGA
Field-oriented control design using Simulink lets you use multirate simulation to design, tune, and verify control algorithms and detect and correct errors across the complete operating range of the motor before hardware testing. You can reduce the amount of prototype testing and verify the robustness of control algorithms to fault conditions that are not practical to test on hardware.
Using simulation with Simulink, you can:
- Model various types of motors, including synchronous and asynchronous three-phase machines. You can create and switch between models of different levels of fidelity, from simple first-principle, lumped-sum models to high-fidelity, flux-based nonlinear models created by importing from FEA tools such as ANSYS® Maxwell®, JMAG® and Femtet®.
- Model current controllers, speed controllers, and modulators.
- Model inverter power electronics.
- Tune control system gains using linear control design techniques such as Bode plot and root locus and techniques such as automated PID tuning.
- Model startup, shutdown, and error modes and design derating and protection logic to ensure safe operation.
- Design observer algorithms for estimating rotor position and velocity.
- Optimize id_ref and iq_ref to ensure minimum power losses, operation above the rotor nominal speed, and correct operation under parametric uncertainties.
- Design signal conditioning and processing algorithms for the I/O channels.
- Run closed-loop simulations of the motor and controller to test system performance under normal and abnormal operating scenarios.
- Automatically generate ANSI, ISO, or processor-optimized C code and HDL for rapid prototyping, hardware-in-the-loop testing, and production implementation.
Examples and How To
Customer Stories
Software Reference
See also: Simscape Electrical, PID control, motor control design with simullink, power electronics control design with Simulink, motor control development, dc-dc converter control, MPPT algorithm, BLDC motor control, battery management system (BMS), Clarke and Park transforms, space-vector-modulation, field-weakening control, Induction Motor Speed Control, Sensorless Brushless Motor Control