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 by the author during his sophomore robomaster mecha masters. 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).

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.
Clone this wiki locally