Perfecting BLDC performance

Something cool is under development relating to BLDC (brushless DC) motors. BLDC is similar technology to sinusoidal AC motors but with trapezoidal voltage waveform. This makes BLDC little bit smaller and usually cheaper than AC motor.

BLDC torque simulation with FEMM

While I’m typing this, in running a FEM simulation of outrunner BLDC motor to optimize the electrical commutation phase angle for such motor. Iterative simulation takes some 20 hours to compute.

Finding optimum commutation angle makes it possible to implement MTPA (maximum torque per amp) drive algorithm for such engines. Such efficiency boost might be very beneficial especially in battery powered applications such as multicopters, but of course it also will benefit  squeezing more out of the existing motors. More about that later!

SimuCUBE – the force feedback controller from the future announced

I’m happy to reveal the details of the upcoming force feedback controller – SimuCUBE! The hardware design is now complete for prototyping and we will get prototypes in the lab in the next month. SimuCUBE has a STM32F4 microcontroller that is compatible to a popular STM32F4 Discovery board. The plan is to start an open source firmware project for this board.

SimuCUBE will change the way simulators are built. Click to enlarge.

SimuCUBE will change the way simulators are built. Click to enlarge.

Brilliant hardware design & image render by Aki.

Peak power limit feature is coming

Today’s development on IONI Pro has revolved around the development of feature called Peak power limit. With that, user can set the exact amount of Watts that drive is allowed to transfer from PSU to motor.

This may be useful when using drive from a switch mode power supplies that normally shut down on overload condition. With this parameter, one can set exact amount of power that is available from PSU to prevent overloads. This also helps to save money on power supply as there is less need oversize the PSU in order to handle the highest load peaks.

IONI firmware 1.4.0 gets floating point precision

To celebrate the new year 2016, we have released a new IONI firmware version 1.4.0. It includes rewritten torque controller that uses 32 bit floating point precision arithmetics instead of integer arithmetics. As IONI has hardware FPU, it yielded faster code execution time as well. This makes more room for the new upcoming features.

  •  Improvements
    • IONI Pro HC model maximum output current in AC/BLDC/Stepper modes increased to 25A (was 23A)
    • Re-implemented torque controller using 32 bit floating point arithmetics instead of integer arithmetics (at least theoretical precision improvement)
    • DC motor mode no longer requires parallel connection of drive output phases if current is at most 50% of drive’s maximum output current capability (sensitivity of overcurrent fault with Fault ID 440219 is greatly reduced).
  • Fixes
    • Changed limit switch polarity: earlier limit switches needed to be normally open (NO), while drive specifications say that they are normally closed type (NC). Now limit switchers are NC (switch conducting -> motion allowed, switch open -> motion stops).
    • Fix an issue where AC/BLDC motor initialization could become incorrectly phased when Hall sensors are enabled
    • Address an issue where torque was 5% lower than setpoint with TBW parameter value of 4700 Hz

Get it from here.

Motor torque cogging & uniformity compensation

Development today focused on improving torque smoothness of motors. Some motors, especially cheaper ones and stepping motors, suffer from cogging torque:

Cogging torque of electrical motors is the torque due to the interaction between the permanent magnets of the rotor and the stator slots of a Permanent Magnet (PM) machine. It is also known as detent or ‘no-current’ torque. This torque is position dependent and its periodicity per revolution depends on the number of magnetic poles and the number of teeth on the stator.”

This can be compensated by modulating motor current to counter the motor cogging. The firmware under development adds options to adjust compensation current by few new parameters.

Perfecting motor with cogging and uniformity compensations

Perfecting motor with cogging and uniformity compensations

In addition to cogging torque, the new feature allows compensating also nonuniformity of torque production. I.e. if motor torque setpoint is kept constant and motor is being turned, it may produce variable amount of torque due to same reasons than cogging. Nonuniformity compensation will modulate the torque setpoint by a selected sine or cosine function and amplitude.

The new feature beta will become available for IONI Pro in the soon upcoming FW release. We hope that this will bring cost of any motor control system down as cheaper motor could achieve nearly same smoothness as expensive ones.

SinCos encoder support in IONI Pro

The new IONI firmware version has been released! It adds long awaited SinCos encoder support to the drive.

See the video below as comparison of SinCos and incremental encoder. The main advantages of SinCos are: silent (no dither), more stiffness and more precision. The only drawbacks are the availability and price of such encoders.

The other added features include application specific functionality for torque mode. This includes rotation limit (added safety) and torque setpoint scaling by analog input. These may be useful especially for OpenSimWheel project builders.

SinCos encoder support

Last days we have been working on supporting SinCos encoders. SinCos encoder is exactly like standard incremental encoder, except it has sinusoidal analog outputs instead of digital quadrature waveforms.

SinCos encoder signals vs digital incremental encoder signals

SinCos encoder signals vs digital incremental encoder signals

The beauty of this is that the analog waveform can provide infinite position resolution when the phase angle of signals are calculated. The latest prototype firmware of IONI Pro now supports SinCos interpolation which increases the resolution that we would get from digital counting by the factor of 16, 64 or 256 times. I.e. a 1000 pulse (or cycle) per revolution analog encoder with 256X interpolation yields resolution equal to 256 000 quadrature pulses per revolution (PPR) or 1 024 000 counts/per revolution (actual position resolution of motor).

SinCos encoder interpolation: the first graph shows position counter in digital mode, the middle shows interpolated angle from sine and cosine signals and the last image shows the combination of these two.

SinCos encoder interpolation: the first graph shows position counter in digital mode, the middle shows interpolated angle from sine and cosine signals and the last image shows the combination of these two to form the high resolution position count.

Very high resolution helps especially to make motion smoother, quieter and stiffer. The initial tests show amazing smooth performance of the motor in velocity and position modes. There was no dithering or groaning noise from the motor and at same time the motor position holding stiffness was jaw dropping. It felt like the motor was physically jammed as the eye, hand or ear can’t notice any movement.

IONI now measures motor resistance and inductance

IONI drive firmware release 1.1.0 brings a new useful feature that automatically measures motor characteristic resistance and inductance and completely takes the guesswork out of torque controller tuning.

Now it takes single click to auto-set resistance and inductance

It takes single click to auto-set resistance and inductance

The equation that defines inductor

The definition of inductance

Using automatic measure is the new recommended approach to set MR and ML parameters accurately even when motor data sheet would provide these values. This is because many data sheets unfortunately provide inaccurate values. Some manufacturers have apparently characterized motor inductance at high frequency range (hundreds of kHz) which typically gives a value more than 50% off from the real inductance.

Having accurate values also opens doors for sophisticated stepping motor control features such as advanced vibration damping which rely on accurate motor characteristics. This is a subject for another update!

IONIZER – an external power stage board

We have been quietly experimenting on a special IONI motherboard that has discrete power stage to extend IONI power capability. We already have a proof-of-concept board that is equipped with leftover VSD-E mosfets (61A 200V rated). After couple of weeks of use, we could not tell the difference between integrated and external power stage by observing motor control performance and smoothness.

IONIZER early proof-of-concept board

IONIZER proof-of-concept board

IONIZER bottom side showing the discrete power MOSFETs

Bottom side showing the discrete power MOSFETs

IONIZER has been considered to be available as DIY board (bare PCB) and a reference design where users could modify it to match virtually any power need. However, it’s not ready and many changes are needed to have our approval (such as galvanic isolation of all I/O, short circuit protection and switch to PCI-E 8x socket for newer IONI). Finishing this might be a subject for another crowd funding project.

Some pros are:

  • Can be made to virtually any power
  • Not highly expensive

And cons:

  • If built with assembly errors, can be hazardous
  • Some safety & protection features add complexity on circuity (STO, over temperature & short circuit protections)
  • Industrial manufacturing may not be cost effective (more complex solution than Argon)

Tell me in the comments how useful do you see IONIZER and which voltage & current range would be your preference :)