Sonntag, 24. Februar 2013

Concept and prototype

Since brushless motors have become a new standard in RC planes/copters/boats/cars, their price has dropped, and the user can choose among hundreds of different types optimized for whatever you need the most (speed, torque, power, ...).

In the past, I have equipped three mills with stepper motors, and made my own 3-axis 5A/winding motion control hardware (quite a nice piece, because it fits on a 100 x 80 mm board and requires nothing but a computer with a USB port and a potent power supply). Maybe I'll write a blog about it someday as well...

With the availablitiy of low-cost high-performance brushless motors, I decided to say goodbye to the stepper motor aera, and so I am now working on a closed loop brushless motor control. It should serve as a servo controller for my CNC machines, but with significantly improved dynamics in comparison with stepper motors. On my BF70 mill - for instance - I reach a maximum speed with stepper motors of about 3 mm/s. I intend to boost that to about 70 mm/s with the brushless motor control. Also I decided to make the hardware ready for advanced RC-users.

The (theoretic because yet untetsted) limits and specifications of the controller are:
  • 100 A peak motor current
  • 40 V DC supply (maximum of 100 V if different FETs are used)
  • SVPWM (Space-Vector-Pulse-Width-Modulation) of up to 100 kHz with 16 bits resolution
  • 10-bit current sensing at each driver (also of negative currents that will be conducted by the freewheeling diodes)
  • Hall-type angle sensing with (hopefully) 10 bit resolution (per turn)
  • End-/reference-switch(es) support
  • IIC bus for additional sensing/IO/control
  • SPI as a main control bus
  • USB (virtual COM-port) for secondary control, parameter setting, and debugging (on a separable doughter board)
The V1.0 PCBs are currently in production and have a size of 54 x 43 mm. Use of aluminum backed multi-layer PCB technology, which is necessarry for thermal reasons, is on the roadmap for V2.0.

Here is a snapshot of the layout. I do not plan to give out the layout or the schematics for free, so please do not ask unless you have a business model in mind.



Features I have implemented or plan to implement in software:
  • Motor current regulation
  • Closed-loop motion control - and yes, I mean by that positioning with an accuracy below 1°
  • Regulation algorithms starting with straightforward PID control
  • Self learning of the motor and drive train (number of poles, inductance, current, momentum of inertia, friction, ...)
  • Self configuring of the parameters of the motion controller
  • Motion trajectory generation (ramp-up/-down, ...)
  • RC-type interface (pulse-width) for speed control (drive train)
  • RC-type interface for positioning (using the BLDC-Motor as a servo