This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Sliding Mode Rotor Position Observer - docs/code out of sync?

Other Parts Discussed in Thread: CONTROLSUITE

Documentation about Sliding Mode Observer says that "Z" is calculated as:

Z=K*sign(Iest-I)

and that should be a bang-bang control.

However, the code look like this:

_iq E0 =_IQ(0.5);

 if (_IQabs(v.IalphaError) < E0)                  \
     v.Zalpha = _IQmpy(v.Kslide,_IQmpy(v.IalphaError,invE0));          \
 else if (v.IalphaError >= E0)                  \
  v.Zalpha = v.Kslide;                   \
 else if (v.IalphaError <= -E0)                  \
  v.Zalpha = -v.Kslide; 

So, if difference between estimated and measured current is less than 0.5, this behaves as linear multiplication, and not like bang-bang (sign operator).

I tried to plot Z on scope, and expected to see -K/+K steps, but I got continuous sine waves...  

What am I missing here?

 

  • John,

    Did you ever get any resolution to this problem?  I am having problems getting the sensorless control to work well.  I have posted questions and gotten no response.  Please let me know if you got anywhere with this.

    Thanks,

    Brad Mularcik

  • Brad,

    unfortunately, I never really considered this a problem, because I only tried sensorless control on devkit with example code, and it did seem to work ok. After that, I moved to sensored/encoder control because my application was some sort of servo controller and couldn't work sensorless anyway.

    Probably not much of a help, but I think you should be aware what limitiations sensorless control have. First of all, it is just an estimation, it does use back-emf, so it can't work properly on low speeds. Estimation is based on current measurement, so accurate and low noise current measurement is important. It's also kinda slow, so any abrupt change in load or speed will give you false rotor position, which will most likely result in rotor lock.

  • John,

    You can try both the pure bang bang controller or linear multiplication.

    Both will work ok accept the pure bang bang estimation will have more noise on it due to limited incremental change.

     

    Regards

    Bill

  • Brad,

    You are right, low speed operation not easy to manage without sensor. The current measurement should be as accurate as possible. HVDMC kit rev 6 will have some improvements regarding this. In addition deadband should be compensated, the parameter deviations and the voltage drop on the motor parameters should be taken care ..etc. The controlsuite projects provide very basic level support to the customers to reduce the development time and emphasize the device features for motor control.

    Regards

    Bill