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 inductance 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
Go from basic tasks to more advanced maneuvers by walking through interactive examples and tutorials.
Explore the Power Electronics Control Community
The MathWorks community for students, researchers, and engineers using Simulink to apply power electronics control to Electric Vehicles, Renewable Energy, Battery Systems, Power Conversion, and Motor Control.