|
|
Modellbildung - BHKW mit Peripherie |
|
B.O.D |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 22.06.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.06.2015, 21:27
Titel: Modellbildung - BHKW mit Peripherie
|
|
|
|
|
Hallo Forumsgemeinde,
ich bin relativ unerfahren im Umgang mit Scilab/Xcos. In Scilab kann ich Berechnungen durchführen, nun möchte ich jedoch Xcos verwenden, um nach und nach ein BHKW mit unterschiedlicher Systemperipherie in einem Modell abzubilden. Um den Umgang mit Xcos zu üben, möchte ich hier bei Fragen auf euch zukommen.
Vorerst soll das System durch drei Komponenten abgebildet werden: BHKW, Pufferspeicher und Verbraucher. Es soll die wärmegeführte Betriebsweise simuliert werden, wobei nur die thermische Seite betrachtet werden soll.
Den thermischen Verbrauch lade ich mit einem 1-min-Intervall ein (realer Tageslastgang). Den Wärmeinhalt des Pufferspeichers definiere ich zu Beginn, der anschließend pro Zeitintervall neu berechnet wird. Beim Abfallen des Pufferspeichers unter eine untere Grenze wird die Leistung auf die Sollleistung gesetzt, bis der Speicher voll ist.
Ich stehe derzeit vor zwei Problemen:
1. Die Definition des Anfangswertes (in Matlab IC-Block, in Xcos bin ich noch nicht fündig geworden) für den Wärmeinhalt und die anschließende Schleife.
2. Ein Block, der die Entscheidungskriterien für die Wärmeführung beinhaltet. Ist da ein eigener Block mit if-then-else-Abfragen sinnvoll, oder gibt es was besseres?
Ich reiche ein Beispiel nach.
Guten Abend!
|
|
|
|
|
B.O.D |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 22.06.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.06.2015, 09:37
Titel:
|
|
So, hier nun mein erstes noch unfertiges Modell.
Die Schalter dienen der Betreibsführung: Solange der Pufferspeicher geladen ist und entladen wird, wird die Leistung mit dem Faktor 0 multipliziert. Andernfalls wird auf 1 gesetzt, bis der Speicher voll ist. Ich könnte mir vorstellen, das die Lösung einfacher sein kann.
Was hier fehlt ist wie gesagt der Eingangswert für den Puffer sowie die Schleife für den Wärmeinhalt nach einer Zeitperiode. Letztere möchte ich bei der Addition vom Wärmebedarf und der th. Leistung hinzufügen.
Über Anregungen, Meinungen und Hinweise bin ich froh.
Beschreibung: |
|
Download |
Dateiname: |
Modell_1.jpg |
Dateigröße: |
33.87 KB |
Heruntergeladen: |
789 mal |
|
|
|
B.O.D |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 22.06.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.06.2015, 08:14
Titel:
|
|
Bei den Blöcken Switch2_m hab den Eingang falsch gelegt. Das System funktioniert jetzt, ich bin aber noch auf der Suche nach einer Lösung, wie ich Eingangswerte einlese.
Ich werde berichten.
|
|
|
B.O.D |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 22.06.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.06.2015, 13:06
Titel:
|
|
So, das mit den Eingangswerten ist auch gelöst. Aktuell nutze ich für das Auslesen den Block "from workspace" und multipliziere den Wert mit einer Step_function, wobei diese für die Initialisierung den Wert 1, ansonsten 0 annimmt.
|
|
|
B.O.D |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 22.06.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2015, 13:46
Titel:
|
|
So, ich stehe wieder vor einem Problem, dass ich nicht lösen kann. Ich möchte einen Betriebsstundenzähler implementieren, der die Laufzeit pro Start zählt und zurückgibt.
Mein Signal ist eine 1 für den BHKW-Betrieb, sodass ich diese pro Zeiteinheit hochzählen kann.
Hat jemand eine Idee, wie ich einen Start erkenne und die Laufzeit dessen bestimmen kann?
Guten Tag, B.O.D
|
|
|
B.O.D |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 22.06.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2015, 11:28
Titel:
|
|
Ich hab es gelöst.
Den Startzeitpunkt und die Anzahl der Starts berechne ich durch eine Schleife über mein Signal (0/1), das entsprechend bei dem Wechsel von 0 auf 1 die Starts zählt und den Zeitpunkt zurückgibt.
Für meinen Betriebsstundenzähler pro Start summiere ich das Signal auf, setze die Summe auf 0, wenn der Wechsel von 1 auf 0 kommt. Dadurch ergibt sich die kumulierte Laufzeit pro Start. Im Skript ermittele ich die Maxima ihrer Reihe nach, sodass ich jedem Start einen Zeitpunkt und Laufzeit zuordnen kann.
Wie ich das in Xcos umgesetzt habe, ist angehängt (Als Hilfe für andere und Diskussionsgrundlage hier im Thread)
Beschreibung: |
|
Download |
Dateiname: |
LaufzeitProStart.jpeg |
Dateigröße: |
11.03 KB |
Heruntergeladen: |
738 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|