Skip to content

Project Overview

Lao·Zhu edited this page Aug 23, 2021 · 5 revisions

Preface

    This project is an open source derivative version of the FOC driver developed when the author participated in the Robomaster competition in his second year of university. It has the characteristics of low cost and high performance of the original driver. This project uses LCEDA to draw schematic and PCB, and uses gcc-arm-none-eabi compilation tool chain to realize firmware compilation. These tools adopt free or open source licenses and can work across platforms.

Resources Introduction

The project will provide the following documents / files for everyone to learn and use.

  1. miniFOC demonstration circuit schematic diagram, PCB source file and manufacturing file.
  2. miniFOC sensor board is based on the author's test platform - 2808 BLDC Motor with the schematic diagram, PCB source file and manufacturing.
  3. All program source files of miniFOC demonstration circuit (based on GD32F130G6U6 microcontroller).
  4. The compiled program firmware (hex format) adapted to the miniFOC demonstration circuit.
  5. miniFOC demonstration circuit and sensor board circuit and program description document.
  6. miniFOC circuit and program migration documents.
  7. Video Explanation of FOC related theories (Undetermined).

    Using the above information we provide, you can manufacture a FOC driver consistent with the samples we provide. However, it should be noted that the pole pairs of the brushless motor you use should be consistent with the samples we provide, that is, 7 pairs. In addition, due to the different kV values, pole pairs, permanent magnet magnetic field strength and permanent magnet shape of different BLDC motors, we can not guarantee that the control effect of each motor can reach the level consistent with our samples. If the control effect is poor, the developer needs to adjust the parameters in the configuration file to find the most suitable value for the motor you choose. Do not use the power supply exceeding the voltage and current limits given by us on the development board of the demonstration circuit, which will cause direct damage to the development board. After learning the documents provided by us, you can migrate to your platform to achieve better performance.

Main Technology

    The main technologies involved in minifoc are given below, and the explanation of this technology in Wikipedia is excerpted.

  1. FOC: field-oriented control (FOC), is a variable-frequency drive (VFD) control method in which the stator currents of a three-phase AC or brushless DC electric motor are identified as two orthogonal components that can be visualized with a vector. One component defines the magnetic flux of the motor, the other the torque. The control system of the drive calculates the corresponding current component references from the flux and torque references given by the drive's speed control. Typically proportional-integral (PI) controllers are used to keep the measured current components at their reference values. The pulse-width modulation of the variable-frequency drive defines the transistor switching according to the stator voltage references that are the output of the PI current controllers. FOC is used to control AC synchronous and induction motors. It was originally developed for high-performance motor applications that are required to operate smoothly over the full speed range, generate full torque at zero speed, and have high dynamic performance including fast acceleration and deceleration. However, it is becoming increasingly attractive for lower performance applications as well due to FOC's motor size, cost and power consumption reduction superiority.It is expected that with increasing computational power of the microprocessors it will eventually nearly universally displace single-variable scalar volts-per-Hertz (V/f) control.
  2. SVM: Space vector modulation (SVM) is an algorithm for the control of pulse width modulation (PWM). It is used for the creation of alternating current (AC) waveforms; most commonly to drive 3 phase AC powered motors at varying speeds from DC using multiple class-D amplifiers. There are variations of SVM that result in different quality and computational requirements. One active area of development is in the reduction of total harmonic distortion (THD) created by the rapid switching inherent to these algorithms.
  3. Cross compiler: A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on Android smartphone is a cross compiler. A cross compiler is necessary to compile code for multiple platforms from one development host. Direct compilation on the target platform might be infeasible, for example on embedded systems with limited computing resources. Cross compilers are distinct from source-to-source compilers. A cross compiler is for cross-platform software generation of machine code, while a source-to-source compiler translates from one programming language to another in text code. Both are programming tools.
  4. Continuous integration: In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.