Energiehaushalt eines Hauses: Heizungsregelung HZR
Autoren: Florian Pichmann; Nils Betten
Betreuer: Prof. Dr.-Ing. M. Göbel
→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses
Einleitung
Kommunikation und Organisation sind ein sehr wichtiger Grundpfeiler eines jeden Projektes, insbesondere wenn das Projekt und vor allem die Entwicklung von mehr als einer Person durchgeführt wird. Damit diese Organisation gleichbleibend und wiederholbar abläuft, sind definierte Entwicklungsprozesse und -modelle erforderlich, damit ein Team mit immer gleichen, strukturierten Arbeitsabläufen reproduzierbar gute Ergebnisse abliefern kann und auch neue Mitglieder des Teams die Abläufe schnell verstehen und sich einarbeiten können. Aus diesem Grund haben wir in diesem Seminar die modellbasierte Entwicklung geübt.
Zielsetzung der Seminaraufgabe
Der Sinn dieser Aufgabe ist es, den vollständigen Ablauf des V-Modells als ein industrierelevantes Modell kennenzulernen und als Gruppe durchzuführen, um zu üben, wie man als Gruppe zusammenarbeiten und kommunizieren muss. Um dies zu üben haben wir als Kurs den Energiehaushalt eines Hauses recherchiert und danach simuliert. Um dies zu erfüllen haben wir insgesamt sechs Gruppen gebildet, in denen wir einzelne Teilbereiche dieser Aufgabe bearbeitet haben.
Wir haben uns mit der Simulation der Heizungssteuerung für das Haus beschäftigt.
V-Modell
Wir haben im Rahmen dieses Projektes das V-Modell[1] zur Organisation der Entwicklung unseres Projektes eingesetzt. Das V-Modell zeichnet sich insbesondere dadurch aus, dass jeder Phase in der Konzeptionierung und Implementierung des Projektes eine entsprechende Testphase gegenübersteht, was dazu führt dass nach diesem Modell entwickelte Projekte sehr gut getestet und dokumentiert werden. Die einzelnen Schritte des V-Modells umfassen:
- Anforderungsdefinition
- Funktionaler Systementwurf
- Technischer Systementwurf
- Komponentenspezifikation
- Programmierung/Modellierung
- Komponententest
- Integrationstest
- Systemtest
Ein Vorteil des V-Modells ist, dass man aus einer Stufe immer noch die Ergebnisse einer vorherigen Stufe korrigieren kann, falls bei der detaillierteren Umsetzung noch bessere/einfachere Wege, oder auch Fehler, offensichtlich werden oder aber feststellt, das zum Beispiel eine bestimmte Anforderung in der Form gar nicht erfüllbar ist. Dann wird dies in den bereits fertiggestellten Dokumenten und Plänen korrigiert und per Versionsverwaltung allen zur Verfügung gestellt.
Anforderungsdefinition: Lastenheft
In der Anforderungsdefinition werden alle Anforderungen des Auftraggebers, bzw. Stakeholders, in einem Dokument in einzelnen Stichpunkten aufgeführt und sind dort bewertbar formuliert, damit es später eindeutig möglich ist, das Lastenheft zu prüfen und zu ermitteln, welche Anforderungen erfüllt wurden und welche nicht.
Unsere Anforderungen sind gegliedert in Aufbau der Software, Anforderungen, Schnittstellen, Softwarewerkzeuge und Dokumentation. Die einzelnen Anforderungen enthalten das zugehörige Kapitel, die konkrete inhaltliche Anforderung, den Ersteller, das Datum der Erstellung, den akzeptiert/abgelehnt Status und eventuelle Kommentare des Auftraggebers. Die folgende Tabelle enthält einen Ausschnitt des Lastenheftes und beschränkt sich auf die Spalten ID, Inhalt, Ersteller und Datum.
Lastenheft Heizungssteuerung
ID | Inhalt | Ersteller | Datum |
010 | Aufbau | Florian P / Nils B | 13.04.2023 |
011 | Die Software muss ausreichend verständlich dokumentiert sein | Florian P / Nils B | 13.04.2023 |
012 | Alle Kabel sowie Ein- und Ausgänge müssen für eine einfache Bedienung beschriftet werden. | Florian P / Nils B | 13.04.2023 |
020 | Anforderungen | Florian P / Nils B | 13.04.2023 |
021 | Die Steuerung muss das Haus in mindestens 90% der Fälle über einer einstellbaren Temperatur von x°C halten | Florian P / Nils B | 20.04.2023 |
022 | Die Steuerung muss das Haus in mindestens 90% der Fälle unter einer einstellbaren Temperatur von x°C halten | Florian P / Nils B | 20.04.2023 |
023 | Die Steuerung darf das Haus nicht weiter aufheizen, wenn eine einstellbare Temperatur von x°C in dieser Zone überschritten wird. | Florian P / Nils B | 20.04.2023 |
024 | Die Steuerung darf das Haus nicht weiter kühlen, wenn eine einstellbare Temperatur von x°C in dieser Zone unterschritten wird. | Florian P / Nils B | 20.04.2023 |
025 | Das System muss das gesamte Haus als eine Zone steuern können. | Florian P / Nils B | 20.04.2023 |
026 | Fehlerhafte Sensorerkennung war optional, nicht integriert | Florian P / Nils B | 13.04.2023 |
027 | Der Sollwert der Innentemperatur muss eingestellt werden können | Florian P / Nils B | 13.04.2023 |
028 | Der Sollwert der Innentemperatur ist per Smart Home änderbar | Florian P / Nils B | 13.04.2023 |
029 | Sollwerte können anhand von Zeitprogrammen geändert werden (zB Nachtabsenkung) | Florian P / Nils B | 20.04.2023 |
030 | Das System muss den Warmwasserspeicher innerhalb eines einstellbaren Intervalls um eine einstellbare Solltemperatur halten können | Florian P / Nils B | 24.04.2023 |
040 | Schnittstellen | Florian P / Nils B | 13.04.2023 |
041 | Es müssen Eingänge für bis zu 3 Temperatursensoren vorhanden sein | Florian P / Nils B | 13.04.2023 |
042 | Es muss ein Eingang für die Ist-Temperatur des Warmwasserspeichers vorhanden sein | Florian P / Nils B | 24.04.2023 |
043 | Die Soll-Leistung der Heizung wird in Watt ausgegeben | Florian P / Nils B | 20.04.2023 |
044 | Die Ist-Leistung der Heizung wird in Watt empfangen | Florian P / Nils B | 20.04.2023 |
045 | Die einstellbaren Soll-Temperaturen werden in °Celsius eingegeben | Florian P / Nils B | 20.04.2023 |
046 | Die Ist-Innentemperaturen werden in °Celsius empfangen | Florian P / Nils B | 20.04.2023 |
047 | Die einstellbare Soll-Temperatur und das umgebende Intervall des Warmwasserspeichers wird in °Celsius eingegeben | Florian P / Nils B | 24.04.2023 |
048 | Für das Heizen des Warmwasserspeichers wird ein Signal mit Status 1 ON und 0 OFF herausgegeben | Florian P / Nils B | 24.04.2023 |
049 | Ein zweites Ausgangssignal gibt an, wie viel der benötigten Leistung, von einer Waermepumpe gefordert wird, indem die aktuelle Leistung der Solaranlage vorher subtrahiert wird. | Florian P / Nils B | 05.06.2023 |
050 | Das Gerät muss über Status-LEDs für "Normalbetrieb" und "Störung" verfügen | Florian P / Nils B | 13.04.2023 |
051 | Störung(026) melden, optional, nicht integriert | Florian P / Nils B | 13.04.2023 |
052 | Die Kommunikation mit der Heizungstechnik erfolgt mit einer Taktung von mindestens 10s und maximal 30s | Florian P / Nils B | 13.04.2023 |
060 | Software / Werkzeuge | Florian P / Nils B | 13.04.2023 |
061 | Das Modell muss mit Simulink erstellt werden, Matlab 2022a | Florian P / Nils B | 13.04.2023 |
062 | Das Modell muss parametrisiert arbeiten und diese Parameter aus einem m-Skript einlesen | Florian P / Nils B | 13.04.2023 |
070 | Dokumentation | Florian P / Nils B | 13.04.2023 |
071 | Das Steuergerät muss dokumentiert werden mit dem Mindestinhalt:
- Beschreibung des Aufbaus - Beschreibung der Simulation (Programmstruktur, Schnittstellen etc)||Florian P / Nils B||13.04.2023 | ||
072 | Wiki Artikel muss erstellt werden und eine nachvollziehbare Dokumentation enthalten | Florian P / Nils B | 13.04.2023 |
Funktionaler Systementwurf
Der funktionale Systementwurf ist der logische Aufbau des Systems aus logischen Komponenten, die eine sinnvolle Trennung nach logischer Funktionalität berücksichtigt und anhand dessen eine Trennung in verschiedene Blöcke des Systems, sogenannte Module, vorgenommen wird. Falls nötig, ist es auch an dieser Stelle möglich, ein Modul in weitere Untermodule zu gliedern, falls eine Teilaufgabe zu komplex würde und es eine weitere Ebene zur klaren Zerlegung der Aufgabe benötigt.
Der funktionale Systementwurf war im Sommersemester 2023 kein Bestandteil der Gruppenaufgabe und wurde von Prof. Dr. Göbel bereitgestellt.
Technischer Systementwurf
Der technische Systementwurf nimmt ein einzelnes Modul aus dem funktionalen Systementwurf, in diesem Fall die Heizungsregelung(HZR), und definiert die noch abstrakte Funktion des Moduls in einzelnen Komponenten, falls nötig auch in einer feineren Untergliederung des Moduls in mehrere Komponenten. Die einzelnen Komponenten haben am Ende des technischen Entwurfes klar definierte Ein- und Ausgabeparameter, Signale und eine klar definierte Aufgabe.
Für die HZR wurden zwei Komponenten geschaffen:
- Heizungsregelung: Diese Komponente hat die Aufgabe die aktuelle Temperatur des Hauses als Input von der Isolierungsgruppe auszulesen und daraus in einer Regelung eine Energieanforderung in Form einer ausgegebenen Leistung zu erstellen und diese an die Heizungstechnikgruppe zu geben.
- Warmwasserspeicher: Diese Komponente erhält die Temperatur des Warmwassers von der ESP Gruppe und gibt eine Energieanforderung, ebenfalls in Form einer Leistungsausgabe, an die Heizungstechnik weiter.
Komponentenspezifikation
Die Komponentenspezifikation ist eine genaue Aufstellung, wie die einzelnen Komponenten eines Moduls aufgebaut und verknüpft werden sollen. Das Ergebnis dieser gibt an, wie und an welcher Stelle die Komponenten im Modul vorhanden sein müssen und wie diese mit anderen Komponenten interagieren müssen, um die Aufgabe des Moduls zu erfüllen. Anhand der Angaben in der Komponentenspezifikation wird später die Implementierung des Moduls durchgeführt.
Wir haben uns Gedanken über eine Funktionsstruktur gemacht und diese in den Komponentenplänen für die Heizungssteuerung und die Warmwassersteuerung niedergeschrieben. Ein großer Punkt beim Erstellen dieser Ablaufpläne war immer der Punkt, mittels if-Abfragen herauszufinden, wo im Tag oder im Regelzyklus wir gerade stehen, um die entsprechenden Parameter zu laden, da z.B. nachts weniger stark geheizt wird als tagsüber.
Programmierung / Modellierung
In diesem Abschnitt, der auch den längsten Zeitabschnitt haben sollte, werden alle vorher erarbeiteten Ergebnisse, wie zum Beispiel die Komponentenspezifikation und der technische Systemplan, in der Programmierung bzw. Implementierung umgesetzt. Hier entsteht der Code oder das Simulink-Modell oder was auch immer in dem aktuellen Projekt entwickelt wird. Alle Teilgruppen des Teams arbeiten gleichzeitig an ihren jeweiligen Modulen was dazu führt, dass danach alle gleichzeitig fertig sein sollten und in die Tests übergehen können. Das Ergebnis dieses Abschnittes ist die Implementierung des Moduls.
Die im Modell blau markierten Konstanten sind die Parameter aus den vorangegangenen Plänen, diese sind in einer separaten .m Datei definiert. Diese befindet sich ebenfalls im SVN des Projektes.
Komponententest
Der Komponententest ist die erste Teststufe innerhalb des V-Modells, in welcher die einzelnen Komponenten in einem Modul auf ihre Funktionsfähigkeit getestet werden. Die Tests führt immer eine andere Gruppe durch als die, die das Modul implementiert hat, da diese ihre eigenen Fehler in den meisten Fällen nicht sehen würde. Zuerst werden dafür Testfälle aufgestellt, die sich an den Anforderungen im Lastenheft richten, weshalb diese anfangs auch überprüfbar formuliert werden sollten. Für die Tests werden die Komponenten isoliert und durch Testsoftware mit bestimmten Eingangsparametern und -werten versorgt. Anhand der Ausgangswerte lässt sich dann entscheiden ob ein Testfall bestanden oder durchgefallen ist.
Wir haben das Modul der Gruppe Energieerzeugung getestet, welches sich aus den Komponenten Photovoltaik, Solarstrahlung, Warmwasserkollektor und dem Wechselrichter zusammensetzt. In der folgenden Tabelle ist beispielhaft die Testumgebung für den Warmwasserkollektor zu sehen. Die Parameter der Gruppe wurden vorab geladen. Die Eingänge wurden durch Konstanten ersetzt, welche sich leicht verändern lassen, um verschiedene Testszenarien zu durchlaufen. Ausgänge wurden mit einem Display versehen, damit die errechneten Werte auf Plausibilität überprüft werden können. In diesem Szenario wird zum Beispiel bei geladenen Parametern und einer Globalstrahlung von 200 W/m^2 eine Warmwasserleistung von ca. 611 Watt ausgegeben, was durchaus realistisch ist.
Analog zu diesem Test wurden weitere Testfälle bei dieser und den anderen Komponenten durchgeführt und können in den folgenden Tabellen betrachtet werden. Zu einigen Testfällen wurden erweiterte Kommentare, die sich direkt an die getestete Gruppe richteten, verfasst. Diese sind in allen folgenden Testtabellen nicht implementiert.
EEZ Komponententest PV
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen | Aktionen | erwartetes Ergebnis | Ergebnis | Bewertung |
001 | Test Berechnung Gesamtfläche PV | 1 | Parameter geladen | Simulation eines Zeitschrittes | Gesamtfläche=16,63m | Gesamtfläche=16,63m | i.O. |
002 | Test Berechnung Gesamtfläche PV | 1 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15 | Simulation eines Zeitschrittes | Gesamtfläche=44,9m | Gesamtfläche=44,9m | i.O. |
003 | Test Berechnung Leistung ohne Neigungswinkel, Eingang_Sonne=0 | 2 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,19 | Simulation eines Zeitschrittes | Leistung=0 | Leistung=0 | i.O. |
004 | Test Berechnung Leistung ohne Neigungswinkel, Eingang_Sonne=200 | 2 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,19 | Simulation eines Zeitschrittes | Leistung=1706 | Leistung=1706 | i.O. |
005 | Test auf Wirkungsgrad | 2 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,25 | Simulation eines Zeitschrittes | Leistung=2245 | Leistung=2245 | i.O. |
006 | Test Berechnung Leistung mit Neigungswinkel, Eingang_Sonne=0 | 4 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,19 | Simulation eines Zeitschrittes | Leistung=0 | Leistung=0 | i.O. |
007 | Test Berechnung Leistung mit Neigungswinkel, Eingang_Sonne=200 | 1 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,19 | Simulation eines Zeitschrittes | Leistung<1706 | Leistung=1517 | i.O. |
008 | Test auf Begrenzung max. Leistung, Eingang_Sonne=1000 | 3 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,19 | Simulation eines Zeitschrittes | Leistung im relaistischen Bereich einer PV Anlage | Leistung ca. 1MW | n.i.O. |
009 | Test auf negativen Eingang, Eingang_Sonne=-1000 | Parameter geladen, AnzahlModule_W=5, AnzahlModule_O=7, AnzahlModule_S=15, Wirkungsgrad=0,19 | Simulation eines Zeitschrittes | Fehlermeldung oder 0 | negativer Wert | n.i.O. |
EEZ Komponententest Solarstrahlung
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen | Aktionen | erwartetes Ergebnis | Ergebnis | Bewertung |
001 | Test Ausgabe Globalstrahlung | 1 | Parameter geladen | Inf-Simulation mithilfe des Clock-Bausteins | Globalstrahlung > 0 zur Tageszeit | Globalstrahlung = 116 W/m^2 bei Stunde 9; steigt ab hier und fällt später wieder | i.O. |
002 | Test Ausgabe Globalstrahlung an Tagen im selben Monat unterschiedlich | 2 | Parameter geladen | Simulation zu unterschiedlichen Zeitpunkten: T1: 820800s (nach 10d, 12h), T2: 1684800s (nach 20d, 12h) | Globalstrahlung(T1) <> Globalstrahlung(T2) | Globalstrahlung(T1): 191 W/m^2, Globalstrahlung(T2): 191 W/m^2 | n.i.O., jeder Tag im Monat ist gleich |
003 | Test Ausgabe Globalstrahlung abhängig von Stunden | 3 | Parameter geladen | Simulation zu unterschiedlichen Zeitpunkten: T1: 820800s (nach 10d, 12h), T2: 835200s (nach 10d, 16h) | Globalstrahlung(T1) <> Globalstrahlung(T2) | Globalstrahlung(T1): 191 W/m^2, Globalstrahlung(T2): 22 W/m^2 | i.O. |
004 | Test Bestimmung aktueller Monat | 4 | Parameter geladen | Simulation zu unterschiedlichen Zeitpunkten: T1: 820800s (nach 10d, 12h), T2: 6883200 (nach 80d, 12h, März) | Monat(T1)=1 (Januar), Monat(T2)=3 (März) | Monat(T1)=1 (Januar), Monat(T2)=3 (März) | i.O. |
005 | Test Bestimmung aktuelle Stunde | 5 | Parameter geladen | Simulation zu unterschiedlichen Zeitpunkten: T1: 820800s (nach 10d, 12h), T2: 835200s (nach 10d, 16h) | Stunde(T1)=12, Stunde(T2)=16 | Stunde(T1)=12, Stunde(T2)=16 | i.O. |
006 | Test Ausgabe Globalstrahlung stetig, nicht stufig | 6 | Parameter geladen | Simulation zu unterschiedlichen Zeitpunkten: T1: 820800s (nach 10d, 12h), T2: 822600s (nach 10d, 12,5h) | Globalstrahlung(T1) <> Globalstrahlung(T2) | Globalstrahlung(T1): 191 W/m^2, Globalstrahlung(T2): 191 W/m^2 | n.i.O., es wird auf Stunden gerundet |
EEZ Komponententest Warmwasserkollektor
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen | Aktionen | erwartetes Ergebnis | Ergebnis | Bewertung |
001 | Test Berechnung Gesamtfläche Warmwasserkollektor | 1 | Parameter geladen | Simulation eines Zeitschrittes | Gesamtfläche=4,89m | Gesamtfläche=4,89m | i.O. |
002 | Test Berechnung Gesamtfläche PV | 1 | Parameter geladen, AnzahlModule_W=5, PAR_EEZ_WWKModullaenge_f64 = 2 m, PAR_EEZ_WWKModulbreite_f64 = 1,5 m | Simulation eines Zeitschrittes | Gesamtfläche=15m | Gesamtfläche=15m | i.O. |
003 | Test Berechnung Leistung ohne Neigungswinkel, Eingang EEZ_Globalstrahlung=0 | 2 | Parameter geladen | Simulation eines Zeitschrittes | Leistung=0 | Leistung=0 | i.O. |
004 | Test Berechnung Leistung ohne Neigungswinkel, Eingang EEZ_Globalstrahlung=200 | 2 | Parameter geladen | Simulation eines Zeitschrittes | Leistung=734,8 | Leistung=734,8 | i.O. |
005 | Test auf Transmissionskoeffizient, Eingang EEZ_Globalstrahlung=200 | 2 | Parameter geladen, PAR_EEZ_WWKTransmissionskoefffizient_f64 = 0.5 | Simulation eines Zeitschrittes | Leistung=459,15 | Leistung=459,19 | i.O. |
006 | Test auf Absorptionskoeffizient, Eingang EEZ_Globalstrahlung=200 | 2 | Parameter geladen, PAR_EEZ_WWKAbsorptionskoefffizient_f64 = 0.8 | Simulation eines Zeitschrittes | Leistung=625,28 | Leistung=625,28 | i.O. |
007 | Test Berechnung Leistung mit Neigungswinkel, Eingang EEZ_Globalstrahlung=0 | 4 | Parameter geladen, PAR_EEZ_WWKNeigungswinkel_f64 = 35 | Simulation eines Zeitschrittes | Leistung=0 | Leistung=0 | i.O. |
008 | Test Berechnung Leistung mit Neigungswinkel, Eingang EEZ_Globalstrahlung=200 | 4 | Parameter geladen, PAR_EEZ_WWKNeigungswinkel_f64 = 35 | Simulation eines Zeitschrittes | Leistung<734,8 | Leistung=718,4 | i.O. |
009 | Test Begrenzung maximale Leistung, Eingang EEZ_Globalstrahlung=1000000 | 3 | Parameter geladen | Simulation eines Zeitschrittes | Leistung im realistischen Bereich eines Warmwasserkollektors | Leistung ca. 360kW | n.i.O. keine Begrenzung |
010 | Test auf negativen Eingang, EEZ_Globalstrahlung=-1000 | Parameter geladen, PAR_EEZ_WWKNeigungswinkel_f64 = 35 | Simulation eines Zeitschrittes | Fehlermeldung oder 0 | negativer Wert | n.i.O. |
EEZ Komponententest Wechselrichter
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen | Aktionen | erwartetes Ergebnis | Ergebnis | Bewertung |
001 | Test Eingang=0 | 1 | Parameter geladen | Simulation eines Zeitschrittes | Leistung Wechselrichter=0 | Leistung Wechselrichter=0 | i.O. |
002 | Test Eingang=200 | 1 | Parameter geladen | Simulation eines Zeitschrittes | Leistung Wechselrichter=190 | Leistung Wechselrichter=190 | i.O. |
003 | Test Eingang=200 | 1 | Parameter geladen, PAR_EEZ_DCACWirkungsgrad = 0.9 | Simulation eines Zeitschrittes | Leistung Wechselrichter=180 | Leistung Wechselrichter=180 | i.O. |
004 | Test Eingang=-200 | Parameter geladen, PAR_EEZ_DCACWirkungsgrad = 0.9 | Simulation eines Zeitschrittes | Leistung Wechselrichter=0 oder Fehler | Leistung Wechselrichter=-180 | n.i.O. |
Integrationstest
Die Integrationstests sind die nächste Teststufe nachdem sichergestellt ist, dass alle Komponenten korrekt und innerhalb ihrer Spezifikationen arbeiten. Hier geht es um das korrekte Zusammenspiel der Komponenten innerhalb eines Moduls, also ob die korrekten Signale übergeben werden oder ob Edgecases zu Problemen führen. Auch hier testet nicht die Gruppe ihr eigenes Modul, da auch hier wieder die Gefahr von Annahmen und Betriebsblindheit zu groß ist. Es werden erneut Testfälle mit dem entsprechenden, zu erwartenden Ergebnis anhand des Lastenheftes definiert. Auch hier wird mit einer Testumgebung gearbeitet, diese Mal testet diese jedoch das gesamte Modul. Die Testfälle können erneut entweder bestanden oder durchgefallen sein, woraufhin das Team das dieses Modul implementiert hat nacharbeiten muss.
Wir haben erneut die EEZ Gruppe getestet. Auch hierzu wurde eine eigene Testumgebung erstellt, um die Ausgangswerte des Moduls nachzuvollziehen und zu prüfen. Hier ist eine Rückkopplung erforderlich, da der einzige Eingang die Simulationszeit ist, welche innerhalb des Moduls abgefragt wird. Die Simulationszeit entspricht der abgelaufenen Zeit im Jahr in Sekunden. In der folgenden Abbildung ist ein Testszenario nach 4,8*10^7 Sekunden zu sehen, was einem Zeitpunkt von 12 Uhr am 191 Tag des Jahres (Mitte Juli) entspricht. In diesem Fall erscheinen die ausgegebene Leistungen realistisch, womit dieses Testszenario bestanden ist.
Auf diese Weise wurden weitere Testfälle durchgeführt und miteinander auf plausible Ausgangswerte verglichen. Diese sind in folgender Tabelle aufgeführt.
EEZ Integrationstest
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen | Aktionen | erwartetes Ergebnis | Ergebnis | Bewertung |
001 | Test auf alle Eingänge 0 | Parameter geladen | Simulation eines Zeitschrittes | Simulationszeit=1, alle anderen Ausgänge=0 | Simulationszeit=1, alle anderen Ausgänge=0 | i.O. | |
002 | Test auf Leistungsausgabe bei Nacht | 017 des Lastenheftes | Parameter geladen | Simulationsstopp bei T1 (um 1 Uhr nachts, des zweiten Tages im Jahr), T1: 90.000s | Simulationszeit = 9e4; EEZ_PVLeistungAC = 0; EEZ_Warmwasserleistung = 0 | Simulationszeit = 9e4; EEZ_PVLeistungAC = 0; EEZ_Warmwasserleistung = 0 | i.O. |
003 | Test auf Leistungsausgabe bei Tag im Winter | 017 des Lastenheftes | Parameter geladen | Simulationsstopp bei T2 (um 12 Uhr mittags, des zweiten Tages im Jahr), T2: 1296.000s | Simulationszeit = 1296e5; EEZ_PVLeistungAC > 0; EEZ_Warmwasserleistung > 0 | Simulationszeit = 1296e5; EEZ_PVLeistungAC > 1634; EEZ_Warmwasserleistung > 701,7 | i.O. |
004 | Test auf Leistungsausgabe bei Tag im Sommer | 017 des Lastenheftes | Parameter geladen | Simulationsstopp bei T3 (um 12 Uhr mittags, des 191 Tages im Jahr(mitte Juli)), T3: 16.459.200s | Simulationszeit = 1646e7; EEZ_PVLeistungAC > 1634; EEZ_Warmwasserleistung > 701,7 | Simulationszeit = 1646e7; EEZ_PVLeistungAC = 2823; EEZ_Warmwasserleistung = 1212 | i.O. |
005 | Test auf Leistungsausgabe bei Tag im Sommer genau ein Jahr später, um Simulationszeit über ein Jahr hinaus zu prüfen | 017 des Lastenheftes | Parameter geladen | Simulationsstopp bei T4 (um 12 Uhr mittags, des 191 Tages im zweiten Jahr), T4: 47.995.200s | Simulationszeit = 1646e7; EEZ_PVLeistungAC = 2823; EEZ_Warmwasserleistung = 1212 | Simulationszeit = 4,8e7; EEZ_PVLeistungAC = 2823; EEZ_Warmwasserleistung = 1212 | i.O. |
006 | nachvollziehbare Kommentierung | 027 des Lastenheftes | Betrachtung Modul | Verständnis des Moduls durch nachvollziehbare Kommentare | Kommentare nur zum Teil ausreichend | Kommentierung( z.B. anhand von Bereichen) auf Modulebene könnte ausführlicher sein |
Systemtest
Der Systemtest ist die letzte interne Teststufe, hier wird nun das gesamte System betrachtet, also die Summe aus allen Modulen, ob diese korrekt miteinander funktionieren und kommunizieren. Auch hier werden Testfälle anhand der Anforderungen an das gesamte System definiert und überprüft, ob das gesamte System lauffähig ist und korrekt funktioniert. Hier wird in der Regel keine ausgefeilte Testumgebung mehr benötigt, da das System auch für sich funktionieren soll.
Auch hier wurden verschiedene Testszenarien erstellt, welche in folgender Tabelle aufgelistet sind.
Systemtest
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen | Aktionen | erwartetes Ergebnis | Ergebnis | Bewertung |
001 | Test auf sauberes Starten der Simulation aus start.m | Laden und Starten der start.m | alle Pfade gesetzt und verknüpft, alle Parameter geladen, Haus.slx ohne Fehler geöffnet und startbereit | alle Pfade gesetzt und verknüpft, alle Parameter geladen, Haus.slx ohne Fehler geöffnet und startbereit | i.O. | ||
002 | Test auf fehlerfreies Starten der Haus.slx | alle Parameter geladen | Simulation starten | Simulation läuft bis zum gewünschten Zeitpunkt | Simulation läuft bis zum gewünschten Zeitpunkt | i.O. | |
003 | Test auf Temperaturverhalten | alle Parameter geladen, HZR_P = 0.001, HZR_I = 0.005, HZR_D = 0 | 5 Tage Simulation | Solltemperatur wechselt zwischen Tag/Nacht, Ist_Temperatur folgt dem Verhalten | Ist_Temp. Folgt der, Solltemp., Solltemp. Hat sprunghafte Ausreißer (vgl. Screenshot) | n.i.O. | |
004 | Test auf Leistungsverhalten | alle Parameter geladen | 5 Tage Simulation | 1. PVLeistung und Warmwasserleistung(Solar) schwankt tageszeitabhängig, 2. Heizleistung Warmwasser wechselt zwischen an (200W) und aus (0W), 3. Verbrauchte Leistung steigt an | 1. PVLeistung und Warmwasserleistung(Solar) schwankt tageszeitabhängig, 2. Warmwasserheizleistung konstant an (200W), siehe Kommentar, 3. Verbrauchte Leistung schwankt stark | 1. i.O.; 2. 200W reichen vielleicht nicht aus um Warmwasser zu heizen (vgl. Testfall 005); 3. Schwankungen resultieren sehr wahrscheinlich aus Fehler in Testfall 003 | |
005 | Test auf Warmwassertemperaturverhalten (wegen auffällig konstantem Leistungsverbrauch) | alle Parameter geladen | 5 Tage Simulation | Warmwassertemperatur schwankt in der Nähe der eingestellten Hysterese | Warmwassertemp. Fällt bis weit unter -1500°C | n.i.O. | |
006 | Test auf Verbräuche | alle Parameter geladen | 5 Tage Simulation | Verbräuche steigen stetig an | Verbräuche steigen stetig an | i.O. | |
007 | Test auf Kosten | alle Parameter geladen | 5 Tage Simulation | Kosten positiv bei Verbrauch, negativ bei Energiegewinn | Kosten positiv bei Verbrauch, negativ bei Energiegewinn | i.O. |
Für den Test wurden die verschiedenen Ausgänge Scopes zugeordnet, um die Signale über die Laufzeit der Simulation zu betrachten und zu analysieren. Grundsätzlich funktioniert das System weitestgehend sinnvoll, jedoch sind kleine Fehler aufgefallen.
Im folgenden Scope ist zum Beispiel das Regelverhalten anhand von Solltemperatur (grün) und Isttemperatur (gelb) zu sehen. Zu einigen Zeitpunkten ist zu erkennen, dass beide Temperaturen synchron über die Solltemperatur hinaussteigen. Dieser Fehler konnte aber im weiteren Verlauf durch weitere Tests und Einstellen der Reglerparameter P, I, und D behoben werden.
In diesem Scope sind weitere Leistungen zu erkennen, welche sinnvoll und je nach Bedarf durch das System errechnet und ausgegeben werden.
Ebenso lassen sich daran Kosten und Verbräuche errechnen:
Der Systemtest erfüllt also seinen Zweck und zeigt, dass die gesamte Haussimulation mit all ihren Modulen und Komponenten lauffähig ist und auch sinnvolle Ergebnisse produziert. Ebenso fallen aber auch Fehler auf, welche zum Beispiel durch das Zusammenspiel aller Module entstehen und dann im Nachhinein durch gute Kommunikation zwischen den Teams und erneute Lösungsfindung behoben werden können.
Fazit
Wir haben in diesem Modul gelernt und geübt, wie wir als Gruppe zusammenarbeiten und anhand des V-Modells modellbasierte Produktentwicklung betreiben. Das Endergebnis ist ein funktionsfähiges System zur Simulation der Energieflüsse in einem Haushalt, welches auch problemlos weiterentwickelt und z.B. für eine Masterthesis verwendet werden könnte.
Wir persönlich haben gelernt, dass Kommunikation ein integraler Bestandteil der Teamarbeit ist, sowohl innerhalb der eigenen Teilgruppe zum Verständnis und zur Implementierung sowie in der gesamten Projektgruppe zur Abstimmung von Signalen und Schnittstellen oder ähnlichem.
Alle Dateien zu diesem Projekt befinden sich im SVN des Kurses Systems Design Engineering (SDE) des Sommersemesters 2023.
Literaturverzeichnis
→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses