Single phase inverter on TI renewable energy kit

Hi,

I'm working on a TI renewable energy kit with a F2808 control card. How can I modify the existing project of a three phase inverter to get the single phase inverter? Is it enough to delete the other two phases? (but then it will be a half-bridge, in theory there are 2 pairs of switches for a single phase and 3 pairs of switches for a three phase inverter). Also I would like to implement phase shifting and changing the amplitude of the AC output voltage considering the grid AC voltage (for a power flow purpose between the kit and the grid). Could I do it by changing the amplitude and phase of the sin waveform before the generation of the PWMs for the inverter? I'm a beginner in VisSim and I would be grateful for any help.

Best regards, Goran

Thank you very much for the

Thank you very much for the diagram. I have modified it and now I have phase and amplitude changing, and the enabling pulse for the ePWMs (attached diagram, everything works in real time). I think that now I should just use the ZCD signal of the grid from GPIO24 (if it's there) instead of the zeroCroos "virtual" grid in your diagram?

Best regards, Goran

I have tried the phase

I have tried the phase shifting simply using the time delay block and it works in real time. The phase can be shifted between 0-90° (example attached). I have noticed that changing the frequency also works in real time, which can be used for sync the output waveforms to the mains voltage (slight fluctuations in frequency). Now I have to use the ZCD signal from GPIO24 for calculating the period and trigger the generating of the sinwave signals feeding the ePWMs. How?

Best regards, Goran

Goran, I would use two phases

Goran, I would use two phases with 180 deg separation. Yes, you can change the amplitude and phase of the waveform feeding the PWM. The signal feeding the PWM is valued between 0 and 1 (0 gives 0 percent duty cycle, .5 gives 50%, 1 gives 100%). You want both outputs to be at 50% duty at zero output. As you increase output amplitude, the sin will oscillate about the .5 mark. In the existing example diagram under Examples > Digital Power Systems > renewableKit-f28069 the PWM output is fixed at 60 HZ and each sin is 120 deg out of phase but offset to oscillate about the .5 mark. You can use a variable freq sin with 90 deg phase separation. You can find a variable freq sin under Diagrams > Toolbox > Fixed Point > VariableFrequencyRamp32. To sync with mains, you can detect a zero cross of the mains analog sensor on the kit. There is an example of a zero cross detection in the first "0->1" compound that is connected to the "3-phase Sin Waveform" block.

Anders89, Thank you very

Anders89,

Thank you very much for your help. I have some other questions. You wrote: "The signal feeding the PWM is valued between 0 and 1 (0 gives 0 percent duty cycle, .5 gives 50%, 1 gives 100%). You want both outputs to be at 50% duty in In the existing example...". Is this already made in the "0->1" compound (there is a 0.5 gain block in it) or where? Should I change something in the two 280x ePWM block properties (their properties are not the same)? I have modified the example and now I can change amplitude (between 0 and 1.5 of the original sin waveform) and the phase (+-90 degrees) of the waveforms feeding the PWMs (second sin waveform phase is shifted for 180 degrees).

Best regards, Goran

Yes, you are on the right

Yes, you are on the right track. The existing "0->1" blocks create a nominal output of .5 as you guessed. The main difference between unit 1 and unit 2 ePWM is that unit 1 is set to send a phase sync output pulse on event TBCTR = 0 , unit 2 is set to use unit 1's sync pulse (SYNCI) to reset the unit 2 TBCTR to zero to synchronize the 2 ePWM units. The next thing you need to do is sync the output waveforms to the mains voltage. This will require determining the mains zero cross and period as there can be slight fluctuations in frequency.

Thank You again. There should

Thank You again. There should be a digital zero crossing detection signal on the GPIO24 of the microcontroller and an analog line magnitude signal on the ADC-B6. How could I use it to trigger the ePWMs for syncronization with the grid? Also I have a problem with the phase shifting of the signal feeding the ePWMs, it doesn't work in real time mode (example file attached), any ideas why? Could I do the phase changing in real time with the time base options of the ePWMs "change period dynamically" or "change phase dynamically"?

Best regards, Goran

Here, use this attached

Here, use this attached diagram to sync with mains using a cross detect signal. It's generating a 3-phase output, but you already know how to convert it to 2-phase. There is no need for phase or period change in the PWM itself. What you need to do though, is add an enable pin to the PWMs and only enable them after the first cross detect sync pulse has been received to avoid an initial phase mismatch on startup.

Thank you very much for the

Thank you very much for the diagram. I have modified it and now I have phase and amplitude changing, and the enabling pulse for the ePWMs (attached diagram, everything works in real time). I think that now I should just use the ZCD signal of the grid from GPIO24 (if it's there) instead of the zeroCroos "virtual" grid in your diagram?

Best regards, Goran

Goran, Do not use the "time

Goran, Do not use the "time Delay" block for phase control unless necessary. It buffers the entire input wave form for a variable time input. It works well for simulation but is very slow on an embedded system. It is much more efficient to simply add the required phase offset to the input signal to the sin block as done in the attached diagram. You are correct to use the sensed zero cross signal from mains in place of the virtual zero cross from the diagram. This can be either a GPIO or ADC. If you use ADC, be sure to offset it so it runs +.5 to -.5 peak to peak. See attached.

Thanks You very much for all

Thanks You very much for all your help. I have worked in the past days on it and I think it works right but little slow sometimes and I'm not sure why (too much data for the JTAG perhaps).

Best regards, Goran Vidakovic