www.mikrocontroller.net

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


Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian --- (kakuijin)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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.
  while(1)
  {  
         //läuft für einen pwm puls 256* durch
        //es gibt pro periode x sinus werte auf die geändert werden muss
        //es wird einmal pro periode der ausgang umgeschaltet
        
        if(pwmcount>sinwert[sincount])
        {
            PORTD&=~(1 << selausgang); // gewählten ausgang abschalten
        }else
        {
            PORTD|=(1 << selausgang);// gewählten ausgang einschalten
        }
            
        pwmcount++;
        
        
        if(pwmcount>=255)//am ende nächsten sinus wert laden
        {
            pwmcount=0;
            sincount++;
            sincount++;//überspringe einen wert
            sincount++;//überspringe einen wert

            if(sincount>50)
            {
                sincount=0;
                PORTD&=~((1 << 5)|(1 << 6)); // alle ausgänge abschalten bevor gewächselt wird
                //if (selausgang ==5)selausgang++;
                //else selausgang --;
                selausgang = 5+(6 - selausgang); // zum ausgang wählen
                //wechselt immer zwischen ausgang 5 und 6
                //selausgang = 1 - selausgang; // wechselt immer zwischen ausgang 0 und 1
            }
        }
        //timer wird mit n facher pwm frequenz ausgeführt um an n stellen ein an oder ausschalten zu ermöglichen    

  }  

... 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)

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael W. (retikulum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder einen 8 Bit Timer mit Vorteiler nehmen.

Michael

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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-Tu...
finde ich kein wort dadrüber
aber aus dem datenblatt hab ich das imo so erlesen

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian N. (exl)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.