Forum: Mikrocontroller und Digitale Elektronik Welche PWM-Frequenz für wechselrichter ?


von Sebastian N. (exl)


Lesenswert?

Guten tag,

Ich will mir einen Wechselrichter (eingang 320VDC Ausgang 230V AC)
bauen. (so ~6kW)

Ich habe schon alles so gut am laufen das ich mit meinem Atmega8
eine 320V Rechteckspannung erzeugen kann mit genau 50Hz

Jetzt will ich das ganze mit PWM auf eine Schöne Sinus Kurfe bringen.

Welche PWM Frequenz soll ich dazu nehmen ?
Ich habe schon überall rumgeschaut aber nirgends eine genaue 
Frequenzempfehlung gefunden.

Was genau ist eigentlich die PWM Frequenz?
Man schaltet ja manchmal halb an also ___---___---___---___---
manchmal nur ein bischen              _____-_____-_____-_____-
manchmal ganz .  .   .       .        ------------------------
manchmal garnicht                     ______________________
Bezeiche ich jetzt als PWM Frequenz (1/Periodendauer) davon
oder ist die periodendauer das doppelte der zeit des kürzest möglichen 
impulses (also bei meiner zeichnung 1/6 der gesamtperiodendauer)

Vielen dank im Vorraus

von Martin (Gast)


Lesenswert?

Eine im nicht hörbaren Bereich sonst gibt es unliebsame Töne.

http://www.ismet-ag.com/download/Katalogtechnik_7.pdf

Zitat aus dem PDF: "Die Frequenz[...]kann einige kHz betragen, 
gewöhnlich 2-20 kHz".

Kommt auch darauf an Was Deine Schaltung noch schalten kann.

Achja und Filter nicht vergessen.

Gute Nacht

Martin

von Christian -. (kakuijin)


Lesenswert?

Sebastian N. schrieb:
> Guten tag,
>
> Ich will mir einen Wechselrichter (eingang 320VDC Ausgang 230V AC)
> bauen. (so ~6kW)

6KW, das ist etwas viel für normale Bauten. Also.. garantiert nichts für 
Anfänger im SMPS gebiet.

>
> Ich habe schon alles so gut am laufen das ich mit meinem Atmega8
> eine 320V Rechteckspannung erzeugen kann mit genau 50Hz

Für was brauchst du die 320V@50Hz???

> Welche PWM Frequenz soll ich dazu nehmen ?
> Ich habe schon überall rumgeschaut aber nirgends eine genaue
> Frequenzempfehlung gefunden.

Die Frequenz richtet sich nach deinem Transformator.
( http://schmidt-walter.eit.h-da.de/smps/smps.html )
Dabei bestimmt auch diese Frequenz den Ausgang, du müsstest also das 
ganze nochmal Gleichrichten und zu 50Hz Wandeln.

Bei 6KW bietet sich eigentlich nur eine Vollbrücke an.
Und keine Normale, Man muss schon die FETS/IGBT's Paralell betreiben.

lg

von Sebastian N. (exl)


Lesenswert?

ok, danke,
dan nehm ich 20khz

ich nehm mal an das die PWM Frequenz = 1/Periodendauer der pulse ist.

ich habe gerade mal mit meinem tiny auf dem versuchsboard was 
programmiert

es ist nur zum testen was geht, ich hab einen zähler der bis 256 zählt
ich lese aus einem array die werte aus wie das verhältnis zu puls/pause 
ist.
vergleiche das mit dem zähler und gebe das aus.
danach wird ein neuer sinusvergleichsert geladen.
1
  while(1)
2
  {  
3
         //läuft für einen pwm puls 256* durch
4
        //es gibt pro periode x sinus werte auf die geändert werden muss
5
        //es wird einmal pro periode der ausgang umgeschaltet
6
        
7
        if(pwmcount>sinwert[sincount])
8
        {
9
            PORTD&=~(1 << selausgang); // gewählten ausgang abschalten
10
        }else
11
        {
12
            PORTD|=(1 << selausgang);// gewählten ausgang einschalten
13
        }
14
            
15
        pwmcount++;
16
        
17
        
18
        if(pwmcount>=255)//am ende nächsten sinus wert laden
19
        {
20
            pwmcount=0;
21
            sincount++;
22
            sincount++;//überspringe einen wert
23
            sincount++;//überspringe einen wert
24
25
            if(sincount>50)
26
            {
27
                sincount=0;
28
                PORTD&=~((1 << 5)|(1 << 6)); // alle ausgänge abschalten bevor gewächselt wird
29
                //if (selausgang ==5)selausgang++;
30
                //else selausgang --;
31
                selausgang = 5+(6 - selausgang); // zum ausgang wählen
32
                //wechselt immer zwischen ausgang 5 und 6
33
                //selausgang = 1 - selausgang; // wechselt immer zwischen ausgang 0 und 1
34
            }
35
        }
36
        //timer wird mit n facher pwm frequenz ausgeführt um an n stellen ein an oder ausschalten zu ermöglichen    
37
38
  }

... der µC läuft auf 8Mhz...
diese methode ist auf jedenfall zu langsam für 20khz PWM

kann jemand einen tipp geben wie ich das mit den timer pwm machen könnte 
?
das problem ist halt das ich 2 unterschiedliche ausgänge brauche
(einen für die positiven igbts und einen für die negativen)

von Sebastian N. (exl)


Lesenswert?

Also mal meine gedanken:
Für einen schönen sinus breuchte man 100Werte / Periode (=>50 
Gespeicherte Werte,einmal positiv einmal negativ)
Also müsste ich an meinem PWM 100*50Hz also 5000mal pro sekunde was 
ändern.
=> Ich werde einen Timer für das ändern brauchen
=> 8Bit Timer der alle (8000000/5000)=1600 takte einen interupt auslöst
=> Prescaler auf 8 und bis 200 Zählen

PWM soll ja mit 20kHz laufen, also brauche ich dafür einen timer
der 20000 mal in der sekunde bis zu meiner gewünschten genauigkeit zählt
also angenommen ich habe 8MHz Quarz:
8000000/20000 => bis 400 Müsste ein Timer ohne Prescaler zählen damit 
ich
20KHz PWM habe => geht nur mit 16 bit timer.
Ich müsste afaik sowieso den 16bit Timer verwenden da die 8Bit Timer ja 
nur entweder bis zu einer grenze zählen und dan wieder bei 0 anfangen 
oder ab einer stelle Toggeln.

von Michael W. (retikulum)


Lesenswert?

Oder einen 8 Bit Timer mit Vorteiler nehmen.

Michael

von Sebastian N. (exl)


Lesenswert?

ja, aber wie mache ich mit meinem 8bit timer + vorteiler die genauen 
20000PWM Perioden ?
beim 16bit timer wird ja der Timer-Endstand durch das Register ICR1 
festgelegt.
Weiters wird die Funktion des OC1A Pins so festgelegt, dass der Pin bei 
einem Timer Wert von 0 auf 1 gesetzt wird und bei Erreichen des im OCR1A 
Registers festgelegten Wertes auf 0 gesetzt wird.
Das gleiche für OCR1B.

Ein 8 Bit timer hat aber das ICR1 Register nicht.

von Sebastian N. (exl)


Lesenswert?

Habe ich das überhaupt richtig verstanden, das ich mit einem
Timer1 die beiden ausgänge OC1A und OC1B mit PWM Bedienen kann,
und zwei eigene register für das Toggeln Habe ?

auf 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR
finde ich kein wort dadrüber
aber aus dem datenblatt hab ich das imo so erlesen

von Uwe (Gast)


Lesenswert?

Hi!
>Habe ich das überhaupt richtig verstanden, das ich mit einem
>Timer1 die beiden ausgänge OC1A und OC1B mit PWM Bedienen kann,
>und zwei eigene register für das Toggeln Habe ?

Ja, und mit CTC(Mode12) kannste im IC1 Int. die Ausgänge OC1A/B mit
FOC1A/B toggeln. Damit bist du mit der Freq. recht frei

Viel Erfolg, Uwe

von Sebastian N. (exl)


Lesenswert?

ich hab grad mal noch weng überlegt,
wenn der OC1A Kommt dann darf auf keinen fall der OC1B kommen (=> sonst 
kurzschluss)

deshalb hab ich mal ausprobiert was passiert wenn ich beim timer1
OCR1BH/L = 0x00 setze,
das problem ist jetzt das der ausgang OC1B Trotzdem einen minnimalen 
impuls macht.

Wie kann ich das verhindern ?

von Sebastian N. (exl)


Lesenswert?

gut, hab das problem gelöst,
ich hab den pwm timer einfach so programmiert das er mit aus anfängt,
und ab einen wert den er nie erreicht erst ein schaltet

von Sebastian N. (exl)


Lesenswert?

ok, hab das ding jetzt am laufen.
jetzt brauch ich noch ein gutes Filter

(der wechselrichter hat übrigens 40kW)

reicht es wenn ich da ein einfaches LC Tiefpass filter nehme ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.