Energiehaushalt eines Hauses: Lastkollektive LKT
Autoren: Marvin Stute; David Schartner
Betreuer: Prof. Dr.-Ing. M. Göbel
→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses
Einleitung
Im Studiengang Business and Systems Engineering wird von den Studierenden in der Lehrveranstaltung Systems Design Engineering ein technisches System anhand des V-Modells entwickelt. Im Sommersemester 2023 wurde der Energiehaushalt eines Hauses simuliert, indem das Gesamtsystem in einzelne Module aufgeteilt und in Gruppen realisiert wurde. Dieser Artikel stellt die Lastkollektive (LKT) vor.
Zielsetzung der Seminaraufgabe
Ziel dieses Seminars ist es, das V-Modell auf das Projekt der Simulation des Energiehaushaltes eines Hauses anzuwenden. In kleinen Gruppen werden einzelne wichtige Teilmodule erarbeitet und dem kompletten Entwicklungsprozess unterzogen, vom Entwurf über die Implementierung bis hin zur Validierung. Nach dem Test der Teilmodule der einzelnen Gruppen werden diese in ein Gesamtsystem integriert und einem Systemtest unterzogen. Dieses Gesamtsystem stellt das Projektergebnis dar und ermöglicht die Simulation des Energiehaushaltes eines Hauses.
V-Modell
Das V-Modell ist ein Projektmanagementansatz, welcher den Ablauf eines Projekts in verschiedene Phasen unterteilt und einen parallelen Testprozess umfasst. Das Modell bildet die Form eines "V" ab, wobei auf der linken Seite die Anforderungen, von groben Systemanforderungen bis hin zur spezifischen Architektur und den Komponenten, beschrieben werden. Im Anschluss dazu werden auf der rechten Seite Tests wie der Systemtest, Integrationstest und Komponententest durchgeführt, um die Validierung sicherzustellen. An der Spitze des "V" erfolgt die Implementierung des Systems.[2]
Abbildung 2 zeigt das V-Modell des Seminars. Es gibt eine Unterteilung in folgende Schritte und den dazugehörigen Arbeitsergebnissen:
1. Anforderungsdefinition → Lastenheft 2. Funktionaler Systementwurf → Funktionaler Systemplan 3. Technischer Systementwurf → Technischer Systemplan 4. Komponentenentwurf → Komponentenspezifikation 5. Programmierung/Modellierung → Matlab-Parameterdatei/Simulinkmodell 6. Komponententest → Testbericht 7. Integrationstest (Modultest) → Testbericht 8. Systemtest → Testbericht 9. Abnahme → Finale Abgabe des Modells/Artikel im Wiki
Anforderungsdefinition: Lastenheft
Im ersten Schritt des V-Modells, der Anforderungsdefinition, wird ein Lastenheft erstellt, welches als Kommunikationsmittel zwischen Auftraggeber und Auftragnehmer dient und die Grundlage zur Projektumsetzung darstellt. Das Teilprojekt Lastkollektive setzt sich zusammen aus den Kapiteln Rahmenbedingungen, Schnittstellen, Standort/Umgebung, Grundriss, Verbrauch, Szenarien und Dokumentation. Diese müssen berücksichtigt werden, um eine grundsätzliche Basis zu bilden, von der aus Schnittstellen in die anderen Teilprojekte geschlossen werden können. Die Lastkollektive definieren die Eigenschaften des Hauses und die Szenarien im Hinblick auf die Bewohner des Hauses.
ID | "Typ (I = Info, A = Anforderung, E = Einleitung)" | Kapitel | Inhalt | Ersteller | Datum | Durchsicht von | am | Status Auftraggeber | Kommentar Auftraggeber | Status Auftragnehmer | Kommentar Auftragnehmer |
---|---|---|---|---|---|---|---|---|---|---|---|
001 | I | 1 | Rahmenbedingungen | David S. & Marvin S. | 4/14/23 | ||||||
002 | A | Matlab 2022a nutzen | David S. & Marvin S. | 4/14/23 | was für Daten (Beispiele!) | Akzeptiert | |||||
003 | A | Die ermittelten Wetter- / Stromdaten müssen variabel und realistisch sein | David S. & Marvin S. | 4/14/23 | |||||||
006 | Für Automatisierungen sollte minimaler Nuzerinput notwendig sein | David S. & Marvin S. | 4/14/23 | ||||||||
007 | I | 2 | Schnittstellen | David S. & Marvin S. | 4/14/23 | ||||||
008 | A | "Bestimmung Wettertdaten & Kommunikation in "Echtzeit"" | David S. & Marvin S. | 4/14/23 | Sie geben das Wetter vor (über Parameter)! | Akzeptiert mit Einschr. | In Realität werden die Daten vorgegeben, sie werden aber in der Simulation als Messdaten gehandhabt | ||||
009 | A | Kommuniaktion externer Energiebedarf | David S. & Marvin S. | 4/14/23 | |||||||
010 | A | Muss mit Energieerzeugern Echtzeit-kommunizieren | David S. & Marvin S. | 4/14/23 | |||||||
Weiterführende Sensordatenkommunikation wo notwendig | David S. & Marvin S. | 4/14/23 | |||||||||
011 | I | 3 | Standort / Umgebung | David S. & Marvin S. | |||||||
012 | A | "Ermittlung Wetterdaten - Temperatur für das ganze Jahr "in Echtzeit"" | David S. & Marvin S. | 4/14/23 | |||||||
013 | A | Strompreis | David S. & Marvin S. | 4/14/23 | |||||||
014 | I | 4 | Grundriss | David S. & Marvin S. | 4/14/23 | ||||||
Grundfläche quadratisch & Flachdach | |||||||||||
015 | A | Definiton Gegebenheiten Haus: Grundfläche (100m²) / Deckenhöhe (2.5m) / Etagen (2) /Fensterfläche von der gesamten Wandfläche (25%) | David S. & Marvin S. | 4/14/23 | Bitte mit Gruppe ISO abstimmen | offen | |||||
Was ist das? Skizze des Hauses? | Genau, Größe relevant bspw. für Isolierung / Heizung | ||||||||||
022 | I | 5 | Verbrauch | David S. & Marvin S. | 4/14/23 | ||||||
027 | A | Stromversorgung: Projektion Verbrauch & Kosten | David S. & Marvin S. | 4/23/23 | |||||||
Wasserverbrauch des Haushaltes | David S. & Marvin S. | 4/23/23 | |||||||||
028 | I | 6 | Szenarien | David S. & Marvin S. | 4/14/23 | "und Szenarien wie ""Urlaub"", ""Heimarbeit"", ""tagsüber außer Haus""" | Akzeptiert | Kapitel Szenarien hinzugefügt | |||
029 | I | 1. 4P Hauhalt: 2 Erwachsene/2 Kinder | David S. & Marvin S. | 4/14/23 | |||||||
030 | I | 2. 2P Hauhalt: 2 Erwachsene | David S. & Marvin S. | 4/14/23 | |||||||
033 | I | Werktag/Urlaubstag/Wochenendtag | David S. & Marvin S. | 4/22/23 | |||||||
034 | I | 7 | Dokumentation | David S. & Marvin S. | 4/14/23 | ||||||
035 | A | Erstellung des Wiki-Artikels | David S. & Marvin S. | 4/14/23 | |||||||
036 | A | Schrittweise beschreibung der Modellierung | David S. & Marvin S. | 4/14/23 | |||||||
037 | A | Beschreibung der Programmierung inkl. Funktionsweise | David S. & Marvin S. | 4/14/23 |
Funktionaler Systementwurf
Der funktionale Systementwurf war im Sommersemester 2023 kein Bestandteil der Gruppenaufgabe und wurde von Prof. Dr. Göbel bereitgestellt, welcher in Abbildung 3 dargestellt wird.
Technischer Systementwurf
Im technischen Systementwurf werden die Schnittstellen festgelegt und die Komponenten definiert. Es stellt die Vorbereitung zur Komponentenspezifikation dar. Das Teilmodul Lastkollektive besitzt vier Komponenten, wie das Simulink-Modell in Abbildung 4 zeigt:
- Eigenschaften des Hauses
- Daten
- Szenarioermittlung
- Datum und Tageszeit
Die Komponente "Eigenschaften des Hauses" gibt über Parameter beispielsweise die Deckenhöhe oder die Grundfläche an. Bei der Komponente "Daten" wird mit Hilfe der Simulationszeit sowohl die Temperatur angegeben, als auch der Stromverbrauch und der Wasserverbrauch berechnet. Außerdem werden mit Hilfe der Eingänge "EEZ_PVLeistungAC" des Teilbereiches Energieerzeugung und "ESP_Verbrauch" des Teilbereiches Energiespeicher die Stromkosten berechnet. Die "Szenarioermittlung" berechnet, wie viele Personen zu einem simulierten Zeitpunkt zu Hause sind und die Komponente "Datum und Uhrzeit" gibt die exakte Uhrzeit und das Datum der Simulationszeit an.
Komponentenspezifikation
Die Komponentenspezifikation beschreibt detailliert die einzelnen Komponenten des Teilprojektes, alle Ein- und Ausgänge sowie alle Parameter, die verwendet werden. Außerdem werden die Spezifikationen der Komponenten in einer Tabelle festgehalten, anhand welcher die Implementierung erfolgen soll.
Durch [Ausklappen] der einzelnen Komponenten werden die detaillierten Beschreibungen tabellarisch dargestellt.
Eigenschaften des Hauses
In dieser Komponente werden die Eigenschaften des Hauses als Parameter definiert und in einer matlab.m Datei angelegt.
Ausgänge
Ausgänge | Beschreibung | Einheit |
LKT_Eigenschaften_des_Hauses | Bus mit den vier relevanten Eigenschaften des Hauses | - |
Parameter
Parameter | Beschreibung | Einheit | Wert |
PAR_LKT_Grundflaeche | Größe der Grundfläche | m² | 100 |
PAR_LKT_Deckenhoehe | Höhe der Decke | m | 2,5 |
PAR_LKT_Etagen | Anzahl der Etagen | - | 2 |
PAR_LKT_Fensterflaeche | Prozentanteil der Fensterfläche von der Gesamtfläche der Wand | % | 25 |
Spezifikationen
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | Rahmenbedingungen | David Schartner & Marvin Stute | 08.05.2023 | |
111 | Die Definitionen der Parameter erfolgt in einer Matlab.m Datei | David Schartner & Marvin Stute | 08.05.2023 | |
112 | Die Parameter werden in einem Bus zusammengefasst | David Schartner & Marvin Stute | 08.05.2023 |
Daten
Die Komponente Daten berechnet die Stromkosten und den Wasserverbrauch des Haushaltes. Für die Berechnung der Stromkosten wird der Stromverbrauch von der Energieerzeugung abgezogen und das Ergebnis mit dem Strompreis multipliziert. Um den Wasserverbrauch zu bestimmen, wird der durchschnittliche Wasserverbrauch einer Person mit der Anzahl der Personen, die im Haus wohnen, multipliziert. Außerdem bestimmt die Komponente die Wetterdaten, welche mit Hilfe von einem Lookup Table ausgelesen werden.
Eingänge
Eingänge | Beschreibung | Einheit |
LKT_Simulationszeit | Vergangegene Simulationszeit in Sekunden | s |
EEZ_PVLeistungAC | Selbst erzeugte Energie | kWh |
ESP_Verbrauch | Stromverbrauch | kWh |
LKT_PersonenZuhause | Status, der angibt, wie viele Personen aktuell zu Hause sind | - |
Ausgänge
Ausgänge | Beschreibung | Einheit |
LKT_Temperatur | Temperaturdaten | °C |
LKT_Stromkosten | Berechnete Stromkosten | € |
LKT_Wasserverbrauch | Wasserverbrauch des Haushaltes | m³ |
Parameter
Parameter | Beschreibung | Einheit | Wert |
PAR_LKT_Temperatur | Temperatur | °C | |
PAR_LKT_Strompreis | Strompreis | €/kWh | 0,3606 |
PAR_LKT_Wasserverbrauch/Person | Durchschnittlicher Wasserverbrauch für vier Personen pro Stunde | m³ | 0,123 |
Spezifikationen
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | Rahmenbedingungen | David Schartner & Marvin Stute | 08.05.2023 | |
211 | Die Wetterdaten werden in Verbindung mit dem aktuellem Datum aus einem Lookup Table ausgelesen. | David Schartner & Marvin Stute | 08.05.2023 | |
212 | Für die Stromkosten werden die Eingänge Energieerzeugung und Stromverbrauch herangezogen. | David Schartner & Marvin Stute | 08.05.2023 | |
2 | Berechnung | David Schartner & Marvin Stute | 08.05.2023 | |
221 | Für die Berechnung der Stromkosten wird der Stromverbrauch von der Energieerzeugung abgezogen. Das Ergebnis wird mit dem Strompreis multipliziert. | David Schartner & Marvin Stute | 08.05.2023 | |
222 | Für die Berechnung des Wasserverbrauchs wird der aktuelle Status mit dem durchschnittlichen Wasserverbrauch pro Person multipliziert. | David Schartner & Marvin Stute | 08.05.2023 |
Szenarioermittlung
Diese Komponente bestimmt anhand der vergangenen Simulationszeit das aktuelle Simulationsszenario. Es gibt die Möglichkeit, dass den ganzen Tag im Urlaub niemand zu Hause ist oder am Wochenende den ganzen Tag alle zu Hause sind. An Werktagen ist vormittags niemand im Haus und danach befinden sich bis zum Abend drei Personen zu Hause, von insgesamt vier möglichen Personen. Die Anzahl der Personen, die im Haus leben, kann über Veränderung des entsprechenden Parameters variiert werden.
Eingänge
Eingänge | Beschreibung | Einheit |
LKT_Simulationszeit | Vergangegene Simulationszeit in Sekunden | s |
Ausgänge
Ausgänge | Beschreibung | Einheit |
LKT_PersonenZuhause | Status, der angibt, wie viele Personen aktuell zu Hause sind | - |
Parameter
Parameter | Beschreibung | Einheit | Wert |
PAR_LKT_Werktag | Szenario, bei dem alle Bewohner von 8 bis 14 Uhr nicht zu Hause sind und von 14 bis 18 Uhr 3 Bewohner zu Hause sind | ||
PAR_LKT_Urlaubstag | Szenario, bei dem keine Bewohner zu Hause sind | 0 | |
PAR_LKT_Wochenendtag | Szenario, bei dem alle Bewohner zu Hause sind | 1 | |
PAR_LKT_zweiKinder | 2 Kinder als Rolle für ein Szenario | 2 | |
PAR_LKT_zweiErwachsene | 2 Erwachsene als Rolle für ein Szenario | 2 |
Spezifikationen
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | Rahmenbedingungen | David Schartner & Marvin Stute | 08.05.2023 | |
411 | Überprüfung/Auswahl der Bewohneranzahl. | David Schartner & Marvin Stute | 08.05.2023 | |
412 | Bei einer Bewohneranzahl von 4 Personen werden 2 Erwachsene und 2 Kinder gezählt. | David Schartner & Marvin Stute | 08.05.2023 | |
413 | Bei einer Bewohneranzahl von 2 Personen werden nur Erwachsene gezählt. | David Schartner & Marvin Stute | 08.05.2023 | |
414 | Annhame, dass bei einem Werktag von 8 bis 14 Uhr niemand zu Hause ist und von 14 bis 18 Uhr 3 Personen zu Hause sind | David Schartner & Marvin Stute | 08.05.2023 | |
415 | Annhame, dass bei einem Urlaubstag niemand zu Hause ist. | David Schartner & Marvin Stute | 08.05.2023 | |
416 | Annahme, dass bei einem Wochenendtag alle zu Hause sind. | David Schartner & Marvin Stute | 08.05.2023 | |
2 | Berechnung | David Schartner & Marvin Stute | 08.05.2023 | |
421 | Die Bewohneranzahl wird mit dem Wert des Szenarios multipliziert und gibt so an, wie viele Personen aktuell zu Hause sind. | David Schartner & Marvin Stute | 08.05.2023 | |
422 | Die Multiplikation wird durch einen Product-Block durchgeführt. | David Schartner & Marvin Stute | 08.05.2023 | |
423 | In Verbindung mit dem aktuellem Datum, wird ermittelt wie viele Personen sich zu einem bestimmten Tag und Uhrzeit im Haus befinden. | David Schartner & Marvin Stute | 08.05.2023 |
Datum und Tageszeit
Die Komponente gibt anhand der Simulationszeit das Datum und die Uhrzeit an.
Ausgänge
Ausgänge | Beschreibung | Einheit |
LKT_Simulationszeit | Vergangegene Simulationszeit in Sekunden | s |
Parameter
Parameter | Beschreibung | Einheit | Wert |
PAR_LKT_Simulationszeit | Vergangene Zeit seit dem Simulationsstart | s | - |
Spezifikationen
ID | Kapitel | Inhalt | Ersteller | Datum |
1 | Rahmenbedingungen | David Schartner & Marvin Stute | 08.05.2023 | |
311 | Der Clock-Block gibt die Simulationszeit in s unter LKT_Simulationszeit aus. | David Schartner & Marvin Stute | 08.05.2023 |
Programmierung / Modellierung
In der Programmierung werden die Komponenten den zuvor festgelegten Spezifikationen entsprechend umgesetzt. Die Programmierung erfolgte auf Basis des im technischen Systementwurf entworfenen Simulink Modells. Neben dem Simulink Modell wurde außerdem eine Matlab-Datei mit Parametern entworfen. Diese wird beim Start des Programms aufgerufen, sodass die Parameter im Workspace gespeichert sind.
%**************************************************************** % Hochschule Hamm-Lippstadt * %**************************************************************** % Modul : parameter_LKT.m * % * % Datum : 22.05.2023 * % * % Funktion : Speichern der Parameter für die Last- * % kollektive des Haus-Modells im Workspace * % * % Implementation : MATLAB 2022a * % * % Req. Toolbox : - * % * % Req. Dateien : Temperaturdaten.mat * % * % Author : David Schartner; Marvin Stute * % * % Bemerkung : * % * % Letzte Änderung : 04.06.2023 * % * %***************************************************************/ load('Temperaturdaten.mat') PAR_LKT_Grundflaeche = 100; %in m^2 PAR_LKT_Deckenhoehe = 2.5; % in m PAR_LKT_Etagen = 2; % in Etagenanzahl PAR_LKT_Fensterflaeche = 25; % in Prozent PAR_LKT_Strompreis = 0.3606; % in €/kWh PAR_LKT_WasserverbrauchProPerson = 0.1230; % in m^3 für eine Person PAR_LKT_StromverbrauchProPerson = 6.8; % in kWh für eine Person PAR_LKT_zweiErwachsene = 2; % Anzahl Personen PAR_LKT_zweiKinder = 2; % Anzahl Personen PAR_LKT_Wochenendtag = 1; PAR_LKT_Urlaubstag = 0;
Im Folgenden sind die einzelnen Komponenten dargestellt:
Eigenschaften des Hauses
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Eigenschaften des Hauses". Diese ist in einem Simulink-Subsystem implementiert. Die Parameter werden direkt aus der Parameter-Datei ausgelesen und mit einem Bus Creator auf einem Bus gespeichert.
Daten
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Daten". Diese ist in einem Simulink-Subsystem implementiert. Die aktuelle Temperatur wird aus einem Lookup-Table ausgelesen. Dafür werden die Sekunden der Simulationszeit in Stunden bzw. Tage umgewandelt. Der Wasser- & Stromverbrauch wird auf Basis der Anzahl der Bewohner im Haus berechnet. Außerdem werden die Stromkosten über die Solarstromerzeugung und dem aktuellen Stromverbrauch bestimmt. Die vier Ausgänge gehen dann direkt aus dem Submodul heraus.
Code für die Funktion, die Strom-& Wasserverbrauch für die Urlaubstage reduziert:
function TageZuhause = fcn(aktuellerTag) % Die Funktion zieht die Tage von dem Tageszähler ab, an denen die Familie % außer Haus ist über den Sommer- bzw. Winterurlaub persistent TageAusserHausSommer TageAusserHausWinter ersterDurchlauf Sommerurlaub Winterurlaub if isempty(ersterDurchlauf) Sommerurlaub = [213 227]; Winterurlaub = [358 365]; TageAusserHausSommer = 0; % initialisiert den Zähler für Tage die Sie nicht zuhause sind TageAusserHausWinter = 0; ersterDurchlauf = 1; end if aktuellerTag>=Sommerurlaub(1) && aktuellerTag <= Sommerurlaub(2) TageAusserHausSommer = aktuellerTag - Sommerurlaub(1); end if aktuellerTag>=Winterurlaub(1) && aktuellerTag <= Winterurlaub(2) TageAusserHausWinter = aktuellerTag - Winterurlaub(1); end TageZuhause = aktuellerTag - TageAusserHausSommer - TageAusserHausWinter;
Szenarioermittlung
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Szenarioermittlung". Diese ist in einem Simulink-Subsystem implementiert. Die aktuelle Simulationszeit wird in den aktuellen Tag und die aktuelle Stunde aufgeteilt. Auf Basis der Stunde wird die aktuelle Zahl der Bewohner im Haus für jedes Szenario bestimmt. Auf Basis des aktuellen Tags wird das Szenario festgelegt. Anschließend wird die Anzahl der Personen im Haus ausgegeben.
Code für die Funktion, die das aktuelle Szenario festlegt:
function LKT_PersonenZuhause = fcn(WochentagP, WochenendTagP, UrlaubstagP, aktuellerTag) LKT_PersonenZuhause = 0; % Initialisiert die Ausgangsvariable Sommerurlaub = [213 227]; % Tage in denen die Familie im Sommerurlaub ist Winterurlaub = [358 365]; % Tage in denen die Faimilie im Winterurlaub ist if aktuellerTag>=Sommerurlaub(1) && aktuellerTag <= Sommerurlaub(2) || aktuellerTag>=Winterurlaub(1) && aktuellerTag <= Winterurlaub(2) % Überprüft ob sich die Personen im Urlaub befinden und wählt falls es % der Fall ist das passende Szenario aus LKT_PersonenZuhause = UrlaubstagP; return end day = mod(aktuellerTag, 7); % Der Rest aus der Division mit 7 gibt an, welcher Wochentag aktuell ist (Zahl zwischen 0 - 6) if day == 5 || day == 6 % Die Tage 5 & 6 sind Samstag und Sonntag, also Wochenende weekend = true; else weekend = false; end % Überprüft ob Wochenende ist und wählt das passende Szenario aus if weekend == false LKT_PersonenZuhause = WochentagP; return elseif weekend == true LKT_PersonenZuhause = WochenendTagP; return end
Code für die PAR_LKT_Werktag Funktion.
function y = fcn(u) if u >= 0 && u < 8 y = 1; elseif u >= 8 && u < 14 y = 0; elseif u >= 14 && u < 18 y = 0.75; else y = 1; end
Datum und Tageszeit
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Datum und Tageszeit". Diese ist in einem Simulink-Subsystem implementiert. Sie gibt über den "Clock"-Block die Simulationszeit der gesamten Simulationszeit in Sekunden an.
Komponententest
Der Komponententest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe Isoliereigenschaften des Hauses ISO (Nico Kasprik und Jonas Loddenkemper) durchgeführt. Er umfasst den Test der einzelnen Komponenten voneinander getrennt, um die für sich stehende Funktionalität sicherzustellen. Nachfolgend die Dokumentation dieser Tests:
Eigenschaften des Hauses
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Eigenschaft des Hauses" | xx | Parameter geladen; mit konstanten Werten | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i.O. | Daten werden an Bus und Ausgang weitergegeben |
020 | Ausgabe Grundfläche | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
030 | Ausgabe Deckenhöhe | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
040 | Ausgabe Etagen | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
050 | Ausgabe Fensterfläche | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
Daten
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Daten" | xx | Parameter geladen; mit konstanten und variablen Werten | Simulation eines Jahres | Ausgabe der Parameter mit korrekter Berechnung | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
020 | Ausgabe Strompreis | xx | Parameter geladen; mit konstanten Werten | Ein Zeitschritt Simuliert | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
030 | Ausgabe Wasserverbrauch | xx | Parameter geladen; Parameter variiert | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
040 | Ausgabe Anzahl Erwachsene | xx | Parameter geladen; Parameter konstant | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
050 | Ausgabe Anzahl Kinder | xx | Parameter geladen; Parameter konstant | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
060 | Ausgabe Temperatur | xx | Parameter geladen; Parameter variiert | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe innerhalb einen Jahres erfolgt korrekt, danach Abfall der Temperatur | siehe Kommentar | Für Simulationszeitraum von einem Jahr alles i.O., danach Wiederholung Look-Up-Table oder neue Daten notwendig |
Szenarioermittlung
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Szenario Ermittlung" | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Ausgabe varriert | Ausgabe erfolgt rechnerisch korrekt; Parameter in Parameterdatei fehlen | n. i. O. | PAR_LKT_Wochenendtag und PAR_LKT_Urlaubstag fehlen |
020 | Personenanzahl am Tag | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Personenanzahl unterscheidet sich nach Uhrzeit | Personenanzahl variiert innerhalb des Tages | i. O. | |
030 | Personenanzahl im Jahr | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Arbeitstage und Urlaubstage | In Urlaubszeit Anzahl Peronen = 0 | i. O. |
Datum und Tageszeit
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Datum und Tageszeit" | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Simulation des Tages | Zeit wird simuliert | i. O. | |
020 | Ausgabe der Clock | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Simulation des Tages in Sekunden | Zeit wird in Sekunden simuliert | i. O. |
Integrationstest
Der Integrationstest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe Isoliereigenschaften des Hauses ISO (Nico Kasprik und Jonas Loddenkemper) durchgeführt. Er umfasst den Test der einzelnen Komponenten als Verbund in dem Modell "LKT - Lastkollektive". So soll sichergestellt werden, dass sich aufeinander beziehende Komponenten im Verbund funktionieren und einen sinnvollen Output liefern. Nachfolgend die Dokumentation dieser Tests:
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
1000 | Test auf Gesamtfunktion | xx | Parameter geladen | fortlaufende Simulation | Aufruf des Modells | Aufruf des Modells | i. O. | |
1100 | Test des Input Bus | xx | Modell laden | fortlaufende Simulation | Konstanten werden im Modell weitergegeben | Konstanten werden im Modell an den richtigen Stellen benutzt | i. O. | |
1110 | Konstante ESP_Verbrauch | xx | Konstante gesetzt | fortlaufende Simulation | Konstante = 5000 | ESP_Verbrauch = 5000 | i. O. | |
1120 | Konstante EEZ_PVLeistungAC | xx | Konstante gesetzt | fortlaufende Simulation | Konstante = 2000 | EEZ_PVLeistungAC = 2000 | i. O. | |
1200 | Test des Output Bus | xx | Modell laden | fortlaufende Simulation | Konstanten werden im Modell richtig verrechnet; plausible Output Ergebnisse | plausible Ouputs | i. O. | |
1210 | LKT_Grundfaeche | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Grundfaeche = 100 | plausible Ouput; LKT_Grundfaeche = 100 | i. O. | |
1220 | LKT_Deckenhoehe | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Deckenhoehe = 2.5 | plausible Ouput; LKT_Deckenhoehe = 2.5 | i. O. | |
1230 | LKT_Etagen | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Etagen = 2 | plausible Ouput; LKT_Etagen = 2 | i. O. | |
1240 | LKT_Fensterfläche | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Fensterfläche = 25 | plausible Ouput; LKT_Fensterfläche = 25 | i. O. | |
1250 | LKT_Stromkosten | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Stromkosten = 1082 | plausible Ouput; LKT_Stromkosten = 1082 | i. O. | |
1260 | LKT_PersonenZuhause | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_PersonenZuhause = wechselnde Personenanzahl über Jahresverlauf | plausible Ouput; LKT_PersonenZuhause = wechselnde Personenanzahl über Jahresverlauf | i. O. | |
1270 | LKT_Wasserverbrauch | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Wasserverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | plausible Ouput; LKT_Wasserverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | i. O. | |
1280 | LKT_Temperatur | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Temperatur = schwankenden Verlauf über Jahr | plausible Ouput; LKT_Temperatur = schwankenden Verlauf über Jahr | i. O. | |
1290 | LKT_Simulationszeit | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Simulationszeit = stetig ansteigend | plausible Ouput; LKT_Simulationszeit = stetig ansteigend | i. O. | |
1211 | LKT_Stromverbrauch | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Stromverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | plausible Ouput; LKT_Stromverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | i. O. |
Systemtest
Der Systemtest ist der letzte Schritt in der Testphase des V-Modells. Hier werden alle Komponenten und Submodule zu einem System integriert und dann im Verbund getestet. Dies stellt das erste Mal dar, dass das System als ein Ganzes getestet wird. Um zu überprüfen ob die Outputs Sinn ergeben, muss daher eine Vielzahl einzelner Signale überprüft werden. Dazu wurde der Bus mit allen Outputs des Systems in drei Kategorien aufgeteilt: Temperaturen, Leistung und Verschiedene. In dem Temperaturen-Bus finden sich die Signale: ISO.ISO_temp; LKT.LKT_Temperatur; EXP.ESP_Warmwassertemperatur; HZR.HZR_Solltemperatur. In dem Leistung-Bus finden sich die Signale: HZT.HZT_VerbrauchteLeistung; HZR.HZR_Warmwasserheizleistung_Waermepumpe; HZR.HZR_Warmwasserheizleistung; HZR.HZR_Heizleistung; HZT.HZT_Warmwasserspeicher_verbrauchte_Leistung; EEZ.EEZ_PVLeistungAC; ESP.ESP_Warmwassertemperatur. In dem Verschiedene-Bus finden sich nur die Signale LKT.LKT_Stromverbrauch sowie LKT.LKT_Wasserverbrauch.
Mithilfe dieser Signale wurde das System durch die Gruppe LKT getestet. Im Anschluss die Dokumentation der Ergebnisse dieses Systemtests:
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
001 | Test auf Funktionalität | Parameter geladen. | Simulation eines Zeitschritts | Simulation kompiliert | Simulation kompiliert | i. O. | ||
002 | Funktioniert die Heizleistung im Winter | Parameter geladen. | Vergleich LKT-Temperatur & Heizleistung | Bei niedrigerer Außertemperatur mehr Heizleistung | Heizleistung springt | n. i. O. | Heizleistung vorhanden, springt aber zwischen Maximal -& Minimalleistung | |
003 | Verhält sich die PV_Leistung an einem Wintertag angemessen | Parameter geladen. / Simulation bis Tag 1 | Vergleich PV_LeistungAC mit Sommertag | Höhere PV_Leistung im Sommer | Höhere PV_Leistung im Sommer | i. O. | ||
004 | Wie verhält sich die PV_Leistung an einem Sommertag angemessen | Parameter geladen. / Simulation bis Tag 200 | Vergleich PV_LeistungAC mit Wintertag | Niedrigere PV-Leistung im Winter | Niedrigere PV-Leistung im Winter | i. O. | ||
005 | Wird das Haus im Winter geheizt? | Parameter geladen. / Simulation bis Tag 1 | Vergleich ISO_IstTemp & HZR_Solltemperatur | ISO_IstTemp folgt der HZR_Solltemperatur | ISO_IstTemp folgt der HZR_Solltemperatur | siehe Kommentar | HZR_Solltemperatur springt bis 30, meistens aber nur 15 Grad Celsius | |
006 | Wird das Haus im Sommer gekühlt? | Parameter geladen. / Simulation bis Tag 200 | Vergleich ISO_IstTemp & HZR_Solltemperatur | ISO_IstTemp folgt der HZR_Solltemperatur | ISO_IstTemp folgt der HZR_Solltemperatur | siehe Kommentar | HZR_Solltemperatur springt aber nur 15 Grad Celsius |
Fazit
Das Ziel der Seminaraufgabe im Sommersemester 2023 war die Simulation des Energiehaushaltes eines Hauses. Zu Beginn des Semesters wurde hierzu eine Vorgehensweise nach dem V-Modell ausgewählt. In dem V-Modell werden zu Beginn in dem Lastenheft, dem Systementwurf sowie der Komponentenspezifikation die Anforderungen an das Endprodukt beschrieben, welche Schritt für Schritt an Detail gewinnen. In der Programmierungsphase werden die beschriebenen Anforderungen dann umgesetzt. Dies geschah hier mit MATLAB Simulink. In der anschließenden Validierungsphase wird das Produkt getestet, sodass es im letzten Schritt abgenommen werden kann. Um eine vollständige Funktionalität nach den Tests sicherzustellen wurde zunächst ein Komponententest, dann ein Integrationstest und zuletzt ein Systemtest durchgeführt. So kann das Produkt zunehmend näher an seinem finalen Zustand getestet werden. Da die Modellierung des Energiehaushaltes eines Hauses sehr umfangreich ist, wurden sechs Gruppen gebildet (Lastkollektive, Energieerzeugung, Energiespeicher, Heizungsreglung, Heizung-& Klimatechnik & Isoliereigenschaften des Hauses). Jede Gruppe modellierte ihr jeweiliges Teilgebiet und testete anschließend die Ergebnisse einer anderen Gruppe. Die Gruppe LKT wurde beispielsweise durch die Gruppe ISO getestet. So konnten Kommunikationsfehler oder Unstimmigkeiten verbessert und gelöst werden. Durch den Kurs konnte anhand eines praxisnahen Beispiels die Projektabwicklung nach dem V-Modell geübt werden. So wurde das gesamte V-Modell mit allen Schritten einmal durchlaufen. Schlussendlich konnte das gesamte Haus mit allen Submodulen integriert werden und bildete ein lauffähiges Projekt. Die Ergebnisse sind trotz einiger Unregelmäßigkeiten größtenteils sinnvoll und können somit genutzt werden, um den Energieverbrauch sowie die Effizienz eines Hauses mit Wärmepumpe, Solaranlage und Batteriespeicher zu simulieren.
Arbeitsergebnisse
Die erarbeiteten Ergebnisse und Dokumentationen des Teilmoduls Lastkollektive befinden sich in SVN im Ordner LKT_Lastkollektive. Das fertige Projekt zur Simulation des Energiehaushaltes eines Hauses befindet in dem Ordner Software und kann getestet werden.
Für den Nachbau des Projektes sind sämtliche Dateien nochmals in dieser zip-Datei angehängt:
Literaturverzeichnis
→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses
- ↑ https://www.herold.at/blog/passivhaus-was-bringt-es-vorteile/
- ↑ https://asana.com/de/resources/v-model
- ↑ Erstellt von Prof. Dr. Ing. Mirek Göbel
- ↑ Erstellt von Prof. Dr. Ing. Mirek Göbel