Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/04/11 06:03
Read: times


 
#180993 - Re: Sine feedback for inverter
Responding to: ???'s previous message
Raj Nambiar said:
These days, everyone tracks the waveform in real time. You also need to track the mosfet/IGBT drop in real time. Both these waves are compared with the drive to correct the wave form. Without this correction, it is almost impossible to have a decent waveform, especially if you have mixed load running. Earlier, it used to be just RMS correction. These days, most of the inverters available in the market do both waveform correction and RMS correction.

Raj, Thanks for reply. I will elaborate my situation little more here:
My hardware is already fixed, I am only doing the firmware part.
It uses a PIC16F72 running at 20MHz(Instruction cycle = 200nsec at 1/4th fosc).
Sinewave output is fed back to ADC input of 16F72, via an OP-AMP so as to generate a 2.5V centered sine wave.
PWM output is 6.4KHz, thus period is 156usec per pulse. There are total 64 values per half cycle. I am using two timers to generate the PWM - Timer 0 running at 156usec continuously while Timer 1 running at ON period as per sine table.
My algorithm is:
At the first occurrence of timer 0 interrupt, start ADC acquisition.
On next timer 0 interrupt, the acquisition is completed, so start conversion and enable ADC interrupt.
When ADC interrupt occurs, read ADC value, add it to Sum (Variable initialized to zero).
This repeats for one half cycle and I get 32 values summed.
At the crossover point i.e. when the next cycle begins, I calculate average of all these summed values and using this value as the feedback representing the sine wave amplitude. The sum is then initialized to zero again.
If this feedback is lesser than THRESHOLD_LOW, then multiplier is increased and if this feedback is higher than THRESHOLD_HIGH, then multiplier is decreased.

You can say it is a layman's method for closed loop control and I am myself not satisfied with the results yet.

I would like to go for waveform adjustment but not having any idea how to do that. For e.g. I can store these 32 readings in an array and then compare it with a stored array of 32 values representing ideal sinewave. If I find that some particular value is higher than the stored value then that particular pulse width will be reduced. Is it the way to do waveform adjustment? It does not involve multiplier adjustment? Moreover, when the waveform gets clipped, if we increase the pulse width, the waveform will get more clipped. How to achieve control over that then?

Pleas advise me.

Mahmood Elnasser said:
What you should do is divide the output AC waveform by resistors and make full wave rectifier by op-amp. Then read ADC for each sample in your timer interrupt for feedback.

Mahmood, Thanks for your reply. Rectification doesn't produce linearly varying values for clipped sinewave. Will use of op-amp help here?
Mahmood Elnasser said:
I found the PIC16F family good only for simple sinusoidal PWM inverters without output ac feedback.

This particular inverter uses PIC16F72 with AC feedback. It is a 800VA domestic use inverter.

List of 15 messages in thread
TopicAuthorDate
How to measure a clipped and non-clipped sinewave accurately            01/01/70 00:00      
   peak voltages does not represent RMS if distorted curve            01/01/70 00:00      
      RE: How to measure a clipped and non-clipped sinewave            01/01/70 00:00      
         Still can't look at a single point in time            01/01/70 00:00      
            RE: Still can't look at a single point in time            01/01/70 00:00      
      peak-to-RMS relation In general            01/01/70 00:00      
   I have posted this thread on some other forum            01/01/70 00:00      
      Sine feedback for inverter            01/01/70 00:00      
         Absolutely            01/01/70 00:00      
         Re: Sine feedback for inverter            01/01/70 00:00      
            hints            01/01/70 00:00      
               Waveform comparison            01/01/70 00:00      
                  What if?            01/01/70 00:00      
                     Drive and table            01/01/70 00:00      
                  Re: Waveform comparison            01/01/70 00:00      

Back to Subject List