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.

Adjust over-modulation value during run-time

Other Parts Discussed in Thread: TMS320F28027F

Hi,

     We are using TMS320F28027F developing sensorless 3 phases BLDC pump controller, can any expert here shows how to adjust the over-modulation value during run-time, because we found the over-modulation were declared in header file, that any changes need re-compile the header file.

    Thanks.

  • proj_lab10a shows how to do this. It uses
    CTRL_setMaxVsMag_pu(ctrlHandle,gMotorVars.OverModulation);

    you should use caution in trying to change this value while you are operating close to the existing limit though
  • Thanks for your reply.

    We have modified project lab03b as our pump controller, and found one typeof pump cannot be controlled with good stability, this type is of very low inertia. The original over modulation value was 1.15, and this type of motor have to set to 1 or below to achieve good stability. Is there anything we need to aware of for such kind of low inertia motor ?
  • you are probably running into current sampling issues.

    I would integrate the SVGENCURRENT over-modulation technique from proj_lab10a

    this should give you better stability to at least 1.15 (starting in MW 15 and 16 we changed the definition of modulation so everything is in half; in the latest releases you would use 0.575 as the equivalent; we also recommend using this over-modulation technique for any modulation over 1.0 or 0.5 in the new definition)

    I'd also recommend including the features from proj_lab05b that allow you to change the current and speed control gain (which are also included in proj_lab10a)

    if you are just using the default (especially for the speed controller) you aren't getting the best performance / stability that you could.

    I pretty much recommend to everyone to use proj_lab10a as the baseline (or proj_lab11a for advanced users).  If you need to pull in the CPU overhead (lab03), RsOnline (lab07), or field weakening (lab09) it's easy to do so starting with 10a.