LabVIEWForum.de - Simulation einer Inselanlage

LabVIEWForum.de

Normale Version: Simulation einer Inselanlage
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Labview Gemeinde,

ich habe ein Problem. Diesmal poste ich mein gesamtes Programm, wo ich schon einigen Monaten dran arbeite. Die Inselanlage soll aus einem Dieselgenerator(en), einer PV Anlage und einer Batterie, sowie Verbrauchern bestehen. Das Programm ist in mehreren Ebenen aufgebaut.
1 Ebene (Startprogramm) Eingabeparameter unter dem Reiter: "Anlagenparameter" für die Lastprofile und Batteriegrößen. Habe alle Eingabeparameter als Standardwert gesetzt. Am besten den Ordner auf dem Desktop entzippen, dann müsste er alle hinterlegten Profile finden (zu mindestens wenn eure Hauptpartition c:// ist)
2 Ebene in 1 Ebene (vgl. Screenshot) Beinhaltet die Berechnung für den ganzen Simulationszeitraum (Lastprofillänge). Dort sind zudem Anzeige Elemente vorgesehen, die für jeden Wert des Lastprofils z.b. den Autarkiegrad, Verbrauch oder PV Einspeisung darstellen etc.
3 Ebene in 2 Ebene (vgl. Screenshot) Beinhaltet die Batterie, den Dieselgenerator, sowie die Auswahl des optimalen Kombination zwischen den einzelnen Dieselgeneratoren. Soweit zur groben Programmstruktur.

Jetzt zu meinem Problem. Durch Anlaufverluste kann der Autarkiegrad bei der momentan eingegebenen Kombination nicht die notwendigen 100 % erreichen. Diese möchte ich durch die Batterie abfangen und somit einen 100 %igen Autarkiegrad erreichen. Dafür sollen die Prioritäten folgendermaßen gesetzt werden. Der Verbrauch wird mit der Einspeisung der PV Anlage verrechnet, dann wird entschieden, ob die Batterie entladen werden darf, dafür wird der Iterationschritt Nr. 1 angesehen und die Menge an Energie die die Batterie beinhalten muss, um den Anlauf aus Iterationsschritt Nr.1 decken zu können. Für die 0 Iteration ist das Schiebregister mit dem Batterieladezustand am Anfang initialisiert. Im folgendem wird überprüft, ob der Dieselgenerator in dieser Iteration die Batterie für die nächste Iteration laden soll, da dort durch den Anlauf eines Generators Fehlmenge an Energie entsteht. Danach erfolgt die Optimale Auswahl der Dieselgeneratoren und die entsprechende Ansteuerung dieser. In nächsten Rahmen der Sequenz wird die Fehlmenge des Generators mit der Batterie verrechnet und diese wird entladen. Im Idealfall sollte jetzt eine Fehlmenge von 0 kWh raus kommen. Die letzte Sequenz dient den Ausgabenparameter.

Das Problem ist, dass der Autarkiegrad oft über 100 % und auch unter 100 % und ich seit mehreren Wochen versuche den Fehler zu finden, diesen aber einfach nicht finde.
Der Erste Fehler ist bereits im Autarkiegrad Array der 2 Ebene bei i = 0 zu sehen.
Über Tipps und Ratschläge zur Fehlerbehebung wäre ich sehr Dankbar. Vielleicht idt mein gewählter Ansatz auch falsch oder zu kompliziert Gedacht.

Grüße
David

EDIT jg: LabVIEW Version: lv13_img, die automatische Erkennung beim RAR-File ist fehlerhaft.
[attachment=49818]
(24.05.2014 19:11 )David_Lab schrieb: [ -> ]Das Problem ist, dass der Autarkiegrad oft über 100 % und auch unter 100 % und ich seit mehreren Wochen versuche den Fehler zu finden, diesen aber einfach nicht finde.
Logisch, bei dem Spaghetti Code & riesigen Blockdiagrammen verliere ich ebenfalls die Übersicht. Ich weigere mich deshalb auch, irgendetwas zu analysieren.
(24.05.2014 19:11 )David_Lab schrieb: [ -> ]Über Tipps und Ratschläge zur Fehlerbehebung wäre ich sehr Dankbar.
Blockdiagramme aufräumen (vgl. LV-Styleguide), SubVIs verwenden, nach Möglichkeit 4-2-2-4 Pattern bei SubVIs verwenden, VIs dokumentieren, ein LabVIEW-Projekt File anlegen (anstatt nur 1 Main-VI), wiederholte Vorgänge in Schleifen abarbeiten nicht parallel, die vielen "Default-Ausgänge" an Case-Strukturen, an denen du gerne mal leere Arrays weitergibst, überprüfen, etc. etc. etc.

Gruß, Jens
Referenz-URLs