Motor Control Library is an open-sourced library written in C/C++ for accelerating developments of motor control applications. It now covers four algorithm-level L1 APIs including FOC, SVPWM_DUTY, PWM_GEN and QEI. Operator-level APIs, such as Clarke transform and its inverse transform, Park transform and its inverse transform, and PID are also implemented. The use of ap_fixed data types makes the code easy to understand and further develop. A virtual motor model is provided for doing the verifications for 8 modes of FOC solely in the AMD Vitis |trade| environment. The following is a short description 4 algorithm-level APIs:
- FOC: The API is for sensor based field-orientated control (FOC). The eight control modes it supports cover basic speed and torque control modes, as well as field-weakening control. Besides signal ports, AXI-Lite interface is provided for system control and monitor.
- SVPWM_DUTY: The API is the front-end for Space Vector Pulse Width Modulation (SVPWM) to calculate ratios. Besides signal ports, AXI-Lite interface is provided for system control and monitor.
- PWM_GEN: The API is the back-end for Space Vector Pulse Width Modulation (SVPWM) to generate output signals based on ratios. Besides signal ports, AXI-Lite interface is provided for system control and monitor.
- QEI: The API is for quadrature encoder interface(QEI). Besides signal ports, AXI-Lite interface is provided for system control and monitor.