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.

Maximum switching frequency

Other Parts Discussed in Thread: TMS320F28069

Hello,

We want to develop an inverter  (35kW output power) using MOSFET modules for a motor drive application. We have previously successfully used sensorless Instaspin running on a TMS320F28069 at 40kHz (switching frequency) and we were wondering if we could use it again for a much higher switching frequency application (above 100 kHz). If I remember correctly there is a decimation value that allows you to set the frequency of the main ISR with respect to the switching frequency but I don't know if you can increase that value as far a you want to or there is some other physical limit.

If it is possible to run at 100-200 kHz, is there anything else we should take into account? 

Regards,

  • using the HW decimation you are limited to a max of /3
    //! Note: Valid values are 1, 2 or 3 only
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)

    So, practically for MIPS purposes you are limited to somewhere in the 60-90 KHz rate for
    #define USER_PWM_FREQ_kHz (10.0)
    (I've never run faster than 90 KHz PWM)

    however, if you don't need to do motor ID, you can also use the SW decimation during run-time
    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1)
    which can keep the CTRL rate lower and allow you to increase the PWM

    EX: PWM = 150 KHz, ISR = 50 KHz, CTRL = 25 KHz

    and you may be able to decimate the CTRL, CURRENT, and EST to a lower rate. You only need these to be ~10x your maximum motor frequency.

    So if your motor frequency is only 800 Hz max you should be able to keep the rates to 8 - 10 KHz instead of 25 KHz.
  • Hi Chris,

    Thanks for the quick reply.

    The motor we want to run is a 2kHz one (120 krpm, 1 pole pair). We don't need to ID it so for what you are saying I guess I could do:

    #define USER_PWM_FREQ_kHz (150.0) 

    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)

    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (2) 

    to have: PWM= 150kHz, ISR= 50kHz, CTRL = 25kHz (>10x the motor electrical frequency)

    right?

    Thanks again,

  • that's correct. We've never run it like that, but see if it works. You may want to use proj_lab03 to see the CPU loading as I suspect it is going to be quite high

    are you using low side shunt current measurements? what is the current of your motor?
  • ok. Thank you.

    we are probably going to use hall effect sensors on the motor phases. The maximum current that we expect to see is about 130 Apeak
  • that is a good idea. it will be very challenging to get good low side current measurements with that level of current and such a low inductance motor.