gopal_amlekar
Junior Member level 1
- Joined
- Jun 14, 2009
- Messages
- 17
- Helped
- 2
- Reputation
- 4
- Reaction score
- 2
- Trophy points
- 1,283
- Location
- Pune, India
- Activity points
- 1,468
Hi,
I am doing a firmware for PIC16F72 based inverter. It is a 800VA pure sinewave inverter.
PWM frequency I am using is 6.4KHz. PWM is generated totally in software using two timers T0 and T1. There are 4 branches of 3 MOSFETs each (3 MOSETS in parallel in each branch). 4 PWM ouputs drive these MOSFETs.
I am stuck up in getting poor load regulation for the sinewave. I have tried two different techniques to get regulation.
1. Use a lookup table to get sine values. The values are initially too low. Multiply these values by some scaling factor to achieve 230V output. Then as load increases, the load voltage will fall down so scaling factor is increased by 1 and then load is checked again for 3 cycles. If it is still low, scaling is increased again and so on.
Now there is a limit on the scaling factor such that at maximum value of scaling factor, the ON time of a pulse is slightly less than the total period of the pulse. So if the period is 156usec, the maximum ON time is set to be 150usec.
Problem in this case is, to get 230V at the output, I need to increase the scaling factor to the maximum value. So if I slightly increase the scaling factor sinewave gets too much distorted since the ON time increases such that the center pulses short to each other and remain fully ON.
Multiplication is done in software using a fixed latency routine. The total overhead of the timer interrupt routine is little higher about 25usec. Still what I think is it should be possible to generate 230V at much smaller multiplication level so that there is room to further increase the voltage in case of load.
2. In the second technique I tried addition of scaling factor instead of multiplication. This technique gave little better results as I can scale up the voltage to higher levels to about 280V or so at no load. But the waveform gets distorted in such a way that it gets difficult to measure the peak. The sinewave top portion does not remain flat, rather it generates a very narrow peak on top of the flat portion. Due to this, it gets difficult to establish relationship between scaling factor and the measured load voltage.
Can you suggest me some clue to help solve this problem?
Sorry for a too long post..
Thanks a lot again..
I am doing a firmware for PIC16F72 based inverter. It is a 800VA pure sinewave inverter.
PWM frequency I am using is 6.4KHz. PWM is generated totally in software using two timers T0 and T1. There are 4 branches of 3 MOSFETs each (3 MOSETS in parallel in each branch). 4 PWM ouputs drive these MOSFETs.
I am stuck up in getting poor load regulation for the sinewave. I have tried two different techniques to get regulation.
1. Use a lookup table to get sine values. The values are initially too low. Multiply these values by some scaling factor to achieve 230V output. Then as load increases, the load voltage will fall down so scaling factor is increased by 1 and then load is checked again for 3 cycles. If it is still low, scaling is increased again and so on.
Now there is a limit on the scaling factor such that at maximum value of scaling factor, the ON time of a pulse is slightly less than the total period of the pulse. So if the period is 156usec, the maximum ON time is set to be 150usec.
Problem in this case is, to get 230V at the output, I need to increase the scaling factor to the maximum value. So if I slightly increase the scaling factor sinewave gets too much distorted since the ON time increases such that the center pulses short to each other and remain fully ON.
Multiplication is done in software using a fixed latency routine. The total overhead of the timer interrupt routine is little higher about 25usec. Still what I think is it should be possible to generate 230V at much smaller multiplication level so that there is room to further increase the voltage in case of load.
2. In the second technique I tried addition of scaling factor instead of multiplication. This technique gave little better results as I can scale up the voltage to higher levels to about 280V or so at no load. But the waveform gets distorted in such a way that it gets difficult to measure the peak. The sinewave top portion does not remain flat, rather it generates a very narrow peak on top of the flat portion. Due to this, it gets difficult to establish relationship between scaling factor and the measured load voltage.
Can you suggest me some clue to help solve this problem?
Sorry for a too long post..
Thanks a lot again..