Grid Tie Inverter 300W Reverse Engineering

Ladeelektronik, Messgeräte, Steuerungen etc.

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon hammer2000 » Sa 9. Okt 2010, 11:31

Könnte es sein das es eine Tabelle für MPP ist.


Gruß Manuel
hammer2000
 
Beiträge: 108
Registriert: Do 29. Jul 2010, 08:03
Wohnort: Neumünster

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon bernhard8 » Sa 9. Okt 2010, 12:07

hammer2000 hat geschrieben:Könnte es sein das es eine Tabelle für MPP ist.
Gruß Manuel


@Manuel: dann wäre es wohl kein MPP :-)
Ich hab aber leider auch keine Erfahrung mit dem Assembler Code. Vermutlich wurde der Code ja ursprünglich in C geschrieben, dadurch ist er schon gar nicht lesbar in Assembler.

Ich hab kurz mal probiert wie effizient der Inverter ist. Habe eine Tabelle angefertigt (siehe Anhang).
GTI_300W_effizienz.pdf
Effizienz des Grid tie Inverters mit 300W
(54.33 KiB) 253-mal heruntergeladen


Unklar ist mir aber wie genau die Strommessung im 230V Zweig überhaupt ist.

Ausserdem habe ich bei der maximalen Eingangsspannung (etwa 28V) ein Oszi Bild von den Spannungsspitzen an den Drains der Eingangs-Mosfets angehängt. Hier sieht man klar die Grenzen. Die Mosfets sind für maximal 75V ausgelegt. Diese Spannung liegt in diesem Moment schon an.
grid-tie-inverter-300W-SpgSpitzen.JPG
Spannungsspitzen an den Drains der Eingangsmosfets bei etwa 28V Eingangsspannung
grid-tie-inverter-300W-SpgSpitzen.JPG (339.84 KiB) 11475-mal betrachtet
Zuletzt geändert von bernhard8 am Sa 9. Okt 2010, 12:11, 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: Grid Tie Inverter 300W Reverse Engineering

Beitragvon miniwindi » Sa 9. Okt 2010, 12:09

Hallo,
gebt doch Andreas noch mal ein wenig Zeit, bis er Code, Label und Tabellen wieder so weit hat, das beim Neucompilieren das Gleiche herauskommt. Dann kann man darüber nachdenken, was was wohl zu bedeuten hat und warum das so und nicht anders ist.
Ohne Schaltplan ist das auch nicht so ganz einfach.
Gruß Herbert
miniwindi
 
Beiträge: 529
Registriert: Fr 19. Jun 2009, 17:50
Wohnort: Niedersachsen

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon andreas » Sa 9. Okt 2010, 21:16

Hallo Bernhard,

ich schätze mal, daß der Code nicht aus einem C-Compiler stammt. Er ist an manchen Stellen schon so knapp und kurz, wie es besser nicht geht. Andererseits findet man auch wieder Stellen darin, die eine jede Optimierung gestrichen hätte, weil schlicht überflüssig. Beispiel:

Code: Alles auswählen
    ldi    r30,k00
    sts    D0204,r30
    sts    D0205,r30
    ldi    r30,k00        ; unnötig
    sts    D0208,r30
    sts    D0209,r30
    ldi    r30,k00        ; unnötig
    sts    D020A,r30
    sts    D020B,r30

Insofern denke ich, daß der Code tatsächlich in Asm geschrieben wurde. Ein normales C-Programm käme ja auch nie auf die Idee, simple Flags zur Programmsteuerung ausgerechnet auf dem Adreßregister des (unbenutzten) Eeproms zu speichern - hier hat man das so gemacht...

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

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon andreas » So 10. Okt 2010, 21:32

Hallo Allerseits,

mit dem Asm-Code vom Herbert (vielen Dank dafür!) bin ich nun soweit durch, als daß sich viele Dinge haben klären lassen. Bernhard hat die Eckwerte der Spannungen im Programm per PN bekommen und darf nun mal damit experimentieren.

Ansonsten ist mir aufgefallen, daß der Hersteller seiner Firmware offensichtlich selbst nicht traut. Dort läuft ein Watchdog mit, welcher nach einer Sekunde zuschlägt und den Controller neu starten läßt, sofern das laufende Programm den Watchdog nicht selbst beruhigt. Genug merkwürdige Stellen im Programm gibt es jedenfalls, an denen ich Fragezeichen als Kommentar setzen mußte.

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

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon bernhard8 » Mo 11. Okt 2010, 10:08

Hallo Andreas,

hab dir gerade auf deine Nachrichten geantwortet (hoffe sie sind angekommen weil sie in der Forensoftware nur im Postausgang "hängenbleiben"). Ich danke dir recht herzlich für die bisherige Arbeit! Ist einfach Spitze, hab leider keine Erfahrung im AVR-Assembler (und nur ganz ganz wenig überhaupt von Assembler).

Jedenfalls funktioniert das Ändern einer Schwelle. Es gibt aber noch ein Problem: vermutlich dürften einige Werte doppelt verwendet werden, man kann die nicht einfach ändern (zB K01), dann gibts schon einen Fehler beim assemblieren. Vermutlich sollten wir überhaupt neue Variablen einführen.

Falls meine Nachrichten nicht angekommen sind melde dich bitte an bernhard8@gmail.com .

PS: Herzlichen Dank auch an Herbert fürs Disassemblieren!

So wie es aussieht können wir bald die Spannungsgrenzen softwaremässig variieren. Natürlich muss die Hardware auch verbessert werden falls man mehr rausholen will.

lG
Bernhard
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon jb79 » Mo 11. Okt 2010, 15:22

So muß mich auch mal zu Wort melden, beobachte den Thread ja schon ne ganze Weile.

Ich finde es toll was ihr hier aufbaut, Reverse-Engineering ist schon ganz großes Kino. Auch wenn ich selbst Programme für PICs in Assembler schreibe, so ist das Ganze in umgekehrter Form schon die Steigerung (zumal in ASM keinerlei Kommentare des Programmautors vorhanden sind und man sich sozusagen selbst zusammenreimen muß, welchen Zweck jede einzelne Programmzeile hat.

Wünsche euch jedenfalls weiterhin viel Erfolg beim Verbessern des Gerätes.

@Andreas: Das mit dem Watchdog würde ich nicht als Mißtrauen des Programmierers in sein Programm deuten sondern als Sicherheitsfunktion. Es kann ja immerhin mal passieren daß der Mikroprozessor durch irgendwelche Strom/Spannungsspitzen mal falsch reagiert (ok Speicherüberläufe usw. sollten bei guter Programmierung nicht vorkommen), aber falls doch mal irgendwas unvorhergesehenes passiert, dann springt eben der Watchdog ein und resettiert das Ding. Bei Autos wird ja auch nix anderes gemacht, wenn Sensoren Werte liefern, die nicht stimmen können geht der Motor in Notlauf. Damit steht zwar nicht mehr die volle Leistung zur Verfügung, aber man bleibt wenigstens nicht gleich irgendwo liegen und schaffts noch bis zur nächsten Werkstatt.

Habt ihr eigentlich schon rausgefunden, wofür die sinusähnliche Kurve sein soll? Wenn das wirklich zur Nachbildung des Sinus auf der Netzseite da ist, dann sollte man die Tabelle mal verbessern, so daß der Sinus auch wie ein solcher aussieht.
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon bernhard8 » Mo 11. Okt 2010, 17:16

Ich muss mich als erstes mal bei Andreas bedanken. Erst seine Anlayse des Programmes hat die Veränderung des Codes ermöglicht. Ich hätte das nicht gekonnt.

Ich habe jetzt ein Assembler Programm mit veränderlichen Spannungs-Schwellen. Es gibt 4 wichtige Schwellen. Der Sinn einer weiteren Schwelle bei etwa 21V ist mir aber schleierhaft.

Jeweils gibt es zwei untere und zwei obere Schwellen die als Schmitt-Trigger arbeiten. In der Standard-Software bedeutet das:

Ab einer Eingangsspannung von 14V beginnt der Wechselrichter zu arbeiten. Falls die Spannung wieder unter 13V fällt wird abgeschaltet.
Die Spannung darf bis maximal 30V raufgehen. Darüber wird abgeschaltet. Sobald die Spannung dann wieder unter 29V gefallen ist wird wieder eingeschaltet.
Diese Funktion braucht man damit keine Schwingungen entsehen (ständiges ein/ausschalten).

Aktuell habe ich als Grenzwerte 11,5/14V und 29/31V drinnen. Dürfte alles ordnungsemäss arbeiten.

Was jetzt noch bleibt ist zu versuchen die Spannungsspitzen an den Drains der Eingangsmosfets zu verkleinern. Die sind das wirkliche Problem. Schon bei kleinen Leistungen stossen da die Mosfets an ihre Grenzen von aktuell 75V (siehe Oszi Bild weiter oben).

Der Wandler ist im Prinzip so aufgebaut:
http://de.wikipedia.org/w/index.php?tit ... eisung.svg

In jedem Zweig der Primärseite sind 2 Mosfets parallel geschaltet. Hat jemand eine gute Idee zur Senkung der Spannungsspitzen?
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon miniwindi » Mo 11. Okt 2010, 18:22

Hallo,

"Es gibt aber noch ein Problem: vermutlich dürften einige Werte doppelt verwendet werden, man kann die nicht einfach ändern (zB K01), dann gibts schon einen Fehler beim assemblieren. Vermutlich sollten wir überhaupt neue Variablen einführen."

Der Disassembler weiß doch nicht, ob

"k48 = 0x48 ; 'H'"

nun Binär im Sourcecode mal ein Wert für irgendwas war:

48 Hex
72 dez
01001000 binär
'H" ASCII
Offset auf eine Tabelle
...

Er findet im fertigen HEX File ja nur die 48 Hex.
Was das nun zu bedeuten hat, muß im Reverse Engineering ja erst wieder herausgefunden werden.
Er macht davon immer k48. Wenn das z.B. 11 x vorkommt, kann das folgendes bedeuten:

Beispiel:
3 x das ASCII 'H',
2 x 72 dez für eine Schleife, die läuft,
1 x vielleicht ein Wert für PWM,
4 x Maskierung beim Lesen von Ports,
1 x Offset, um einen anderen Wert aus einer Tabelle zu laden

Alles das ist natürlich rückwärts sehr schwer herauszubekommen. Insbesondere, was der "Echte" Programmierer sich dabei gedacht hat.
Darum kann man nicht einfach den Wert von k48 zu 0x50 ändern. Das ist dann vielleicht 2 x das was man ändern wollte, und 9 x was ganz anderes.

Das mit dem Watchdog hat Jürgen ja schon erklärt. Dem kann ich nur zustimmen.

@Bernhard: Wie wäre es die Spannungsspitzen mal mit RC Gliedern zu bekämpfen? Anderseits würde ich auch nie 75 Volt Typen einsetzten, wenn die gemessenen Spitzen diese Höhe erreichen. Aber irgendwie muß man ja als Hersteller auf den niedrigen Preis kommen.

Viele Grüße Herbert
miniwindi
 
Beiträge: 529
Registriert: Fr 19. Jun 2009, 17:50
Wohnort: Niedersachsen

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon hammer2000 » Mo 11. Okt 2010, 19:21

miniwindi hat geschrieben:@Bernhard: Wie wäre es die Spannungsspitzen mal mit RC Gliedern zu bekämpfen? Anderseits würde ich auch nie 75 Volt Typen einsetzten, wenn die gemessenen Spitzen diese Höhe erreichen. Aber irgendwie muß man ja als Hersteller auf den niedrigen Preis kommen.

Viele Grüße Herbert


Oder einen VDR parallel an die DS Strecke vom MOSFET ?


Gruß Manuel
hammer2000
 
Beiträge: 108
Registriert: Do 29. Jul 2010, 08:03
Wohnort: Neumünster

VorherigeNächste

Zurück zu Elektronik für Windkraftanlagen



Wer ist online?

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