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
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
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
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)
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.
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.
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
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
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 ?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.