1
$\begingroup$

I would like to implement the Field Oriented Control (FOC) algorithm on my STM32 board for controlling a 3 phases sensorless BLDC motor.

By googling I found a very interesting Application Note from Texas Instruments which explains very clearly how to apply the FOC algorithm for driving a sensorless 3 phase BLDC.

On page 10 of the application note, there is a block diagram of the algorithm and there is a block called Sliding-Mode Based Rotor Position Estimator.

Block diagram on page 10 of application note

Since in my application I have an IMU (Inertial Measurment Unit) fixed on the shaft of the BLDC motor, I can get both rate and acceleration data.

Once combined the data into my Kalman Filter (outputs a quaternion), I have both speed and position information of the rotor.

  1. Can I use IMU's data for the rotor position, instead of estimating as shown?
  2. Is it correct considering the rotor angle got from the IMU for closing the loop?
$\endgroup$
2
  • $\begingroup$ Not familiar with an IMU, but if you can get the position from it, then the answer is simply yes. $\endgroup$
    – WG-
    Commented Nov 22, 2016 at 17:51
  • $\begingroup$ I can get quaternions evaluated with my Kalman Filter and I can transform the quaternions into Euler angles (roll pitch and yaw) with a precision of 3 degrees. Is it enough for applying the FOC algorithm? $\endgroup$
    – starScream
    Commented Nov 22, 2016 at 20:12

0