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.

driving a three phase inverter using DSP f28335 C2000 Micro-controller



Hi, I'm new on dsp C2000 f28335 and I'm working on a project to implement a simple algorithm three phase sine wave pulse width modulation (SPWM) in order to control a three phase inverter plugged into an asynchronous machine. the purpose of this experiment is to vary the speed of the machine using the input frequency.


so I developed the whole system in Matlab/Simulink and then I generate the c code from the model to the DSP target.
but the machine won't work, the output voltage seems to be fine, but the current is too high, I thought first that it's a normal spike due to the high input speed reference, so I increase the speed gradually but the same thing happened again the current goes too high and the machine gives an alert beep.

  • Simao,

    There could be many reasons why your system is not working. I assume you are using scalar control and a simple speed control loop.

    I suggest you begin by modifying your model such that it runs open loop: just delivering fixed frequency sinewaves to the power stage and with a fixed voltage. Obviosly, choose frequency and voltage values below the rated maximum of the motor.

    Start by just looking at the device pins without the power stage connected, and check the F28335 is generating the right PWM output waveforms. If so, you can connect your power stage and motor, which should then turn at some steady speed depending on the load. If you have a speed transducer such as a tachomoter, you should check you are getting the expected feedback voltage and that the ADC is delivering numbers in the right range. All of this will be done open loop.

    This will tell you if you have a problem with the model, control loop, transducer etc. If everything looks good you can change the model and proceed to closed loop control, but start with a low controller gain.

    It's hard to give any more specific advice on the basis of your post, but I think these steps will move you in the right direction.

    Regards,

    Richard
  • Hi , Richard

    Thank you for your helpful suggestion, I think that the Simulink model work properly because I have already used it to generate code for dspace 1104, the machine worked fine and I was able to control the speed by adjusting the input frequency. the only thing that I changed from the model is the '' PWM block 1104" to '' ePWM for f28335".

    But when I display the PWM output signal from both targets (dspace 1104 and DSP f28335) I can see clearly that they are not identical and don't behave in the same way. I think that I made a mistake when I configured the ePWM block

    the simulink model is from here : http://www.mediafire.com/file/np2z0664e20jozn/inverter1.mdl

    NB : the maximum switching frequency of the IGBT is 12khz.

  • Simao,

    Yes, you are probably right.  I regret I cannot access the model (the site is blocked from where I am) but even if I could I'm not sure I could help much. 

    It looks to me as if the F28335 PWM block takes as its' input a 16-bit integer between 0 and whatever you have the period register set to.  Possibly this is one difference with your 1104 model. 

    Regards,

    Richard