BLDC motor control for respirators


BLDC motor control for respirators

Steve Taranovich – February 12, 2013

Using high-speed sensorless BLDC motor control in medical devices


Brushless DC (BLDC) motors are widely used in medical devices due to their high reliability, high efficiency, low maintenance and many other advantages.

One of the most popular applications is a sleep apnea machine. 

For people who suffer from sleep apnea, the most common treatment is the use of a continuous positive airway pressure (CPAP) device, which “splints” the patient’s airway open during sleep by means of a flow of pressurized air into the throat.

The patient usually wears a plastic facial mask, which is connected by a flexible tube to a small CPAP machine.

Advanced models may warm or humidify the air and monitor the patient’s breathing to ensure proper treatment. For pressuring the air, a small and usually very-high-speed BLDC or PMSM motor is used.

Application Requirements
The motor controls in the sleep apnea machine have very complex requirements.

A first important requirement is MCU power.

The dedicated MCU performs many other algorithms, so the motor control part should not consume more than 20 percent of total controller power.

In addition to motor control, the controller should perform:

• Display control

• Communication

• Air humidity control

• Air temperature control

• Recording data to allow doctors to verify adequacy of treatment or adjust required pressure

• Safety algorithms

If we look more closely at this application, we can see that the motor control requirements are also very strict.

Reliability: As sleep apnea machines are medical devices, reliability is first placed on the motor to start and operate with 100 percent reliability in any condition. That means the motor is already spinning in a forward or backward direction just before startup.

Pressure control: The difference with standard BLDC applications is that a fan is typically controlled according to required pressure not by required speed. The machine must generate the pressure according to pre-defined ramps and patient requirements.

High-speed operation and wide speed range: For small dimensions to allow enough airflow, the speed must be increased. On the other hand, when the high-speed operation is used it is easier to achieve the required air pressure.

The maximal speed typically ranges from 30,000 to 60,000 RPM. In minimal speed mode, the motor should operate from 1500 RPM. That equals roughly 2.5 to 5 percent of maximum speed. This is very complicated from the PI controller setting point of view due to the very wide range of speed. In the high-speed region, it is also very difficult to determine commutation instance, as only a few samples of BEMF are measured between commutations. For high-speed operation, a very fast and precise ADC converter is required.

Low noise: A quiet motor makes sleep more comfortable for patients and their sleeping partners. Noise can be generated by the mechanical part of the fan, but it can also be caused by motor torque ripple.

High accelerations and braking: The motor usually has small diameter lightweight impellers which provide lower inertia. This allows the system to operate with very high dynamics, such as acceleration and braking near 200,000 RPM per second. This dynamic is required to achieve the requested pressure in a very short time.

Current control as an inner loop: To achieve such a high dynamic, the application must be equipped with a current controller. Otherwise, the motor can be overloaded by exceeding maximal motor current. The current control also has additional noise reduction. Small, high-speed BLDC motors usually have very low inductance compared to a conventional BLDC motor. In this case, the bipolar PWM cannot be used. A solution can be achieved with higher frequency, unipolar PWM strategy, or a power stage with input DC-DC converter to change motor supply voltage according to the motor speed.

Memory footprint and MCU performance: All previous requirements must be met to achieve 20 percent power consumption.

Application Concept

The application concept is a pressure closed-loop BLDC drive using a sensorless back EMF integration technique with current control inert loop. FlexTimer, PDB and ADC modules in sensorless BLDC motor drives offer typical usage examples. The FlexTimer simplifies calculation of PWM signals using the automatic complementary signal generation and dead time insertion. It significantly increases the safety of PWM generation and the complete application. The PDB offers precise timing of the ADC sampling event.

This increases precision of the measured back EMF voltage. For this sensorless BLDC application, it is necessary to sense the following parameters during the application run:

• DC bus voltage

• DC bus current

• Phase A, B and C back EMF voltages

The commutation time and period are calculated from these measured parameters. Precise computation of a commutation instance is one of the most important aspects of the application. In the very high speed region, only a few samples of BEMF voltages are measured, and one of the following methods should be used to achieve sufficient accuracy.

• Multisampling of BEMF voltage during one PWM period

• Increase of PWM frequency to achieve more samples

• Software zero cross approximation

• Usage of analog comparators

Implementation of Freescale MCUs

The hardware abilities of the peripheral modules on the Kinetis K60 MCU significantly reduce the CPU load on the user software and enable precise high-speed sensorless BLDC motor control.

The Kinetis K60 MCU is based on the ARM Cortex-M4 core with pulse width modulation (PWM), 2 x 16-bit ADCs with ADC to PWM synchronization, programmable delay block, analog comparators, up to four fault inputs for global fault control, Ethernet controller, PGA, DAC, USB, up to 1 MB of internal flash and up to 128 KB of SRAM.

It also contains the mask and invert control registers with hardware and software triggers for simplified 6-step control.

These modules reflect specific requirements of the motor control application that ensure safe PWM signal generation with minimal MCU intervention.

There are three FlexTimers modules (FTM) on the K60 device.

FTM0 is an eight-channel timer, while FTM1 and FTM2 are twochannel timers.

Each FTM module is a timer that supports input capture, output compare and PWM signal generation that control electric motor and power management applications.

Performance Data

• Supply voltage: 24 V

• Supply current: 3.5 A

• Max speed: 30,000 RPM

• Dynamics: 200,000 RPM per second

• ROM: 6, 2 KB

• RAM: 390 bytes

• Processor load 16% (96 MHz)

Freescale Enablement

For more information about Kinetis MCUs, visit

For more information about the Freescale Tower System, visit

For more information about the Freescale FreeMASTER runtime debugging tool, visit

See also design reference manuals: DRM135, DRM078, DRM086, DRM128, DRM117 and application notes: AN4142, AN4376, AN4254 and AN1914, which are available at



發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *