Posts

Interactive Controller for Brushless Motors

Recently I was working on a test bench for brushless motors based on Allegro A4960 BLDC controller – a device capable of driving motors while giving interactive read-write access to A4960 configuration registers and allowing changing motor driving parameters (such as phase advance, BEMF window, startup ramp, etc.) when motor is running. The circuit and accompanying code finally reached alpha stage, meaning the electronic is more or less finalized and the code is more or less working. I shot a short video demonstrating the capabilities of the device, please take a look at the video above.

The controller was built free hand, no documentation is available at this time. I will start capturing schematic tomorrow and make it available on github together with source code as soon as it’s ready – stay tuned! [EDIT: github repo here ]

2 comments to Interactive Controller for Brushless Motors

  • chrisg

    The Quantum-Leaps QM modeling tool looks cool! It kind of reminds me of Simulink (or Octave/FlowDesigner in the gnu world).

    I currently have a 3-phase cd-rom motor, no hall or encoder sensors, that I’m hoping to run with a PIC, but there’s so many cool low-cost boards that I’m thinking of starting with one of those instead (STMicro’s P-NUCLEO-IHM001, International Rectifier IRMCK099, Cypress’ CY8CKIT-042 , etc).

    Are you using any sensors (hall, or encoders) or completely sensorless?

    What kind of motor control algorithm are you running? Field-Oriented-Control? 6-Step/Block/Trapezoidal commutation commonly used in BLDC (Zero Crossing Detection, Back-Emf Integration)? 3-phase Sinusoidal commonly used in PMSM?

    FOC seems like it’s very computational intensive, and it still seems like a bit of black magic how it can be done using a single shunt instead of measuring at least TWO phase currents.
    https://www.youtube.com/watch?v=VI7pdKrchM0

    BLDC via 6-step seems easier to implement, and lots of great open source and app notes available.. ex:
    https://github.com/lgbeno/BLDC-Booster

    PMSM Simultatenous 3-phase driving might be a good improvement, especially for producing constant torque:
    http://www.berryjam.eu/2015/04/driving-bldc-gimbals-at-super-slow-speeds-with-arduino/

    Do you recommend any books on motor control? I picked up a decent one written by Roland Büchi, but leaves me with a bit more questions than it answers! For example, according to this
    http://www.crr.vutbr.cz/system/files/prezentace_09_1106.pdf

    the way you perform the pwm switching (bipolar/unipolar) will determine what direction the motor spins, and can even regenerate energy back into vbus! How 4 Quadrant works in relationship to the the duty cycle is still very confusing!