Neue Software für Grid Tie Inverter

Ladeelektronik, Messgeräte, Steuerungen etc.

Neue Software für Grid Tie Inverter

Beitragvon bernhard8 » So 12. Dez 2010, 14:39

Grüß euch,

ich habe gestern begonnen ein neues Programm für den Mikrocontroller am Grid Tie Inverter zu schreiben. In Grundzügen funktioniert das ganze schon, aber noch sehr schlecht. Ich habe die aktuelle Version hier angehängt. Für Vorschläge zur Verbesserung bin ich dankbar!

Die Idee hinter meiner Software:
Timer2 löst alle 128µs einen Interrupt aus. Das ist schnell genug um den Netzsinus mit 50Hz (20ms) oft genug abzutasten. Vom Timer2 werden auch noch andere Intervalle abgeleitet (100ms, 10ms und 1ms). Derzeit benutze ich nur das 100ms Intervall.

checkNetSine() sucht nach den Maxima und Minima im Sinus. Sobald diese vorhanden sind wird stateSineMaximum auf 1 gesetzt (als bei Zeiten wo der Netzsinus weit genug von der Nullinie entfernt ist). Jedesmal wenn das zutrifft wird cntSineMaxima erhöht. Da cntSineMaxima alle 100ms wieder gelöscht wird sollte dieser Zählerwert im Normalfall irgendwas zwischen 100 und 1000 beinhalten (wenn Netz vorhanden). Sonst nicht. Als Schwellwert habe ich 50 festgelegt. Das funktioniert recht zuverlässig.

Timer1 arbeitet als PWM Generator. Die Frequenz ist fix mit 50kHz eingestellt. Die Puls/Pausenzeit wird durch Verändern des Wertes OCR1A eingestellt.

doMPP() sollte die MPP Regelung durchführen.

Nun zu den auftretenden Problemen:

*) die ADC Wandlungen funktionieren recht unzuverlässig finde ich. Ich habe eine Mittelung mit dem vorhergehenden Messwert implementiert. Es gibt aber trotzdem noch relativ viele Fehlmessungen.

*) die MPP Regelung ist viel zu sprunghaft und flippt manchmal aus.

*) Debugging ist schwierig weil kein Display vorhanden ist und keine Verbindung zum PC zum Debuggen besteht.

Vielleicht hat von euch jemand Verbesserungsvorschläge. Zumindest in Grundzügen arbeitet das Programm aber schon.
Dateianhänge
gti-bernhard-20101212.zip
(4.6 KiB) 448-mal heruntergeladen
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Neue Software für Grid Tie Inverter

Beitragvon andreas » So 12. Dez 2010, 15:24

Hallo Bernhard,

zur Messung habe ich Dir mal eine Routine geschickt, die ständig mißt, jede Wandlung per Interrupt verarbeitet und eine größere Anzahl von Meßwerten mittelt. Das hat hier ein sehr ruhiges Signal ergeben, wo auch kurze Störungen sauber ausgeblendet werden.

Die Pwm-Nachregelung wird vermutlich sehr träge sein, da sie nur alle Zehntelsekunde reagiert und dann auch nur einen einzigen Schritt zur Nachregelung ausführt. Ich halte es für günstiger, die Leistungsdifferenz zwischen dem letzten Regelschritt und dem aktuellen zu ermitteln und danach die Schrittweite der Regelung zu bestimmen.

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Neue Software für Grid Tie Inverter

Beitragvon bernhard8 » So 12. Dez 2010, 16:12

@andreas: ich werd mir das mit den AD Wandlungen nochmal anschauen. Vielleicht sollte ich noch mehr Werte mitteln. Bisher hatte das aber immer gereicht.

den 100ms Takt hatte ich absichtlich langsam gewählt. Ich möchte ja mal eine funktionierende Version finden. Die darf ruhig zu langsam sein.

Das Problem ist hauptsächlich dass der MPP Algorithmus oft wo "festhängt". Speziell wenn man es zu flott angeht.
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Neue Software für Grid Tie Inverter

Beitragvon andreas » So 12. Dez 2010, 17:16

Hallo Bernhard,

das kann so nicht spielen:

Code: Alles auswählen
   if (curVal > 712 || curVal < 312) {
      stateSineMaximum = 1;
      cntSineMaxima++;
   } else
   
   if (curVal > 312 || curVal < 712) {
      stateSineMaximum = 0;
   }


Die zweite Bedingung ist immer wahr, sie gehört mit && verknüpft.

MfG Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Neue Software für Grid Tie Inverter

Beitragvon bernhard8 » So 12. Dez 2010, 19:00

danke, das stimmt. Es machte aber insofern nix weil es sich um den else Zweig handelt. Ich hab das if überhaupt rausgeschmissen.
// prüft ob Netzsinus anliegt
void checkNetSine() {
int curVal = ADC_Read(2);

if (curVal > 712 || curVal < 312) {
stateSineMaximum = 1;
cntSineMaxima++;
} else {
stateSineMaximum = 0;
}
}


Nun mittle ich 10 ADC Werte und das Ergebnis ist bedeutend besser. Allerdings hakts noch am Entscheidungs-Algorithmus selbst.
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Neue Software für Grid Tie Inverter

Beitragvon andreas » So 12. Dez 2010, 19:54

Hallo Bernhard,

wie hast Du den Adc-Takt berechnet? Der Quarz hat ja wohl 16 MHz. Mit dem gewählten Teiler von 8 ergibt sich ein Adc-Takt von 2 MHz. Das halte ich für zu hoch. Das Datenblatt des Atmega8 empfielt eine Taktrate von 50 bis 200 kHz für eine hohe Auflösung über alle zehn Bit. Bei 16 MHz vom Quarz her täte ich sogar den maximalen Teiler von 128 ansetzen; das ergibt immer noch 125 Khz Takt für den Adc.

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Neue Software für Grid Tie Inverter

Beitragvon bernhard8 » So 12. Dez 2010, 21:05

Hallo Andreas,

das versuche ich auch noch. Ich habe mittlerweile eine relativ gute Lösung gefunden. Siehe Anhang.

Ich glaube die entscheidende Änderung war folgende: ich schraube mehr rauf als runter. Im Falle des Falles probiere ich 5 Schritte raufzugehen, sonst wieder einen runter. Ich habe noch ziemlich viel geändert, aber ich glaube damit bin ich am Weitesten gekommen.

Aktuell folgt der Wandler meinem Netzgerät extrem schnell (unter einer Sekunde wenn ich an der Eingangsspannung drehe).

Ich hoffe dass ich keinen gröberen Fehler mehr drinnen habe, ich hab mir heute schon 3 Mosfets geschossen mit der Probiererei. Meist passiert das wenn die Netzspannung unter grosser Last weggeschaltet wird (entweder ausstecken oder Primärsicherung fliegt). Ich erkenne den Netzausfall vermutlich erst mehr als 100ms später, bis dorthin gibts eine Überspannung an den Mosfets am Ausgang und sie sterben. Das Problem hatte der Wandler aber im Originalzustand auch schon. Hier könnte möglicherweise ein VDR helfen?

Ich hab ein Demonstrationsvideo gemacht:


Links wird der aufgenommene Strom angezeigt, rechts die Spannung (an der ich drehe). Man sieht dass bei schnellem Erhöhen der Spannung der Strom auch relativ flott folgt. Bei der Originalsoftware wurde der Strom pro Sekunde nur etwa um 100mA verändert. Viel zu langsam für ein Windrad.

Ich habe einen 1,6Ohm Leistungswiderstand zwischen Netzgerät und Wechselrichter. Damit sind die Tests etwas sicherer und ich kann sofort sehen ob ich den MPP Punkt treffe (maximal ist ja Leistungsanpassung möglich). Im Endeffekt simuliere ich so den Innenwiderstand meines Generators.
Dateianhänge
gti-bernhard20101212v2.zip
(3.49 KiB) 287-mal heruntergeladen
Zuletzt geändert von bernhard8 am Di 14. Dez 2010, 18:44, insgesamt 1-mal geändert.
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Neue Software für Grid Tie Inverter

Beitragvon andreas » So 12. Dez 2010, 21:31

Hallo Bernhard,

ein Vdr kann eine sehr schnelle Begrenzung von Spitzen vornehmen. Ich habe damit schon ansonsten völlig unsinnige Dinge realisiert, wie z.B. das primärseitige Dimmen oder Anfahren von belasteten und unbelasteten Trafos im einstelligen kW-Bereich. Als Schutz für nicht zu knapp ausgelegte Halbleiter taugt er allemal. Natürlich hat so ein Teil gewisse Streuungen in der Ansprechschwelle, dennoch hilft es sehr gut.

Zum neuen Programm: Der Watchdog braucht eine bestimmte Sequenz mit knappem Timing (also Interrupts dabei abschalten) zum Sperren, ein einzelner Befehl reicht da nicht aus. Schau ins Datenblatt oder andere Quellen, dort ist das zu sehen. Das Auslesen der Adc-Werte würde ich sogar in die ms-Routine packen, alle ms einen der Adc auslesen (per Zähler ringsherum gehen). Wenn genug Werte erreicht sind (ein binärer Zählwert wäre ideal), mit wenigen Shifts das Mittel herstellen und damit dann erst rechnen.

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Neue Software für Grid Tie Inverter

Beitragvon bernhard8 » So 12. Dez 2010, 21:49

Ich habe gerade gesehen dass schon ein VDR dran ist. Bezeichnung: TVR14431.
Kann es sein dass der kaputt ist? Wie verhalten sich die Varistoren wenn sie kaputt sind? (hochohmig?)

Welchen Typ würdest du mir empfehlen? (Ansprechspannung bzw. genauer Typ)
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Neue Software für Grid Tie Inverter

Beitragvon andreas » So 12. Dez 2010, 22:17

Hallo Bernhard,

das ist ein Vdr für Netzspannung, das Datenblatt für die Serie gibt es hier oder hier. Dessen Werte sehen soweit passend aus. Welche Fets (primär/sekundär/Typ) sterben bei Dir?

Kaputte Varistoren zerlegt es gewöhnlich schon sichtbar mechnisch bei Überlast. Sie können für Sekundenbruchteile immense Leistungen aufnehmen, aber natürlich keine Dauerlast - das halten sie schon thermisch nicht aus.

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Nächste

Zurück zu Elektronik für Windkraftanlagen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

cron