Energiehaushalt eines Hauses: Heizungsregelung HZR: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(43 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
→ zum Hauptartikel: [[Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses | Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses]]
→ zum Hauptartikel: [[Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses | Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses]]


[[Kategorie:BSE/SDE-EnergieHaus]]


<!-- Dies hier wird nicht angezeigt -->
<!-- Dies hier wird nicht angezeigt -->
Zeile 9: Zeile 10:


== Einleitung ==
== Einleitung ==
Kommunikation und Organisation sind ein sehr wichtiger Grundpfeiler eines jeden Projektes, insbesondere wenn das Projekt und insbesondere die Entwicklung von mehr als einer Person durchgeführt wird.  
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.  
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.
Aus diesem Grund haben wir in diesem Seminar die modellbasierte Entwicklung geübt.


== Zielsetzung der Seminaraufgabe ==
== 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.
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.  
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.
Wir haben uns mit der Simulation der Heizungssteuerung für das Haus beschäftigt.
Zeile 28: Zeile 28:
*'''Funktionaler Systementwurf'''
*'''Funktionaler Systementwurf'''
*'''Technischer Systementwurf'''
*'''Technischer Systementwurf'''
*'''Komponentenentwurf'''
*'''Komponentenspezifikation'''
*'''Programmierung/Modellierung'''
*'''Programmierung/Modellierung'''
*'''Komponententest'''
*'''Komponententest'''
*'''Integrationstest'''
*'''Integrationstest'''
*'''Systemtest'''
*'''Systemtest'''
Der 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 offensichtlich werden oder aber feststellt, das zB 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.
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.


[[Datei:V-Modell.png|500px|thumb|left|Absatz|Abbildung. 2: V-Modell ]]
[[Datei:V-Modell.png|500px|thumb|left|Absatz|Darstellung des V-Modells]]
<br clear = all>
<br clear = all>


== Anforderungsdefinition: Lastenheft ==
== 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 durch das Lastenheft zu gehen und zu sagen, welche Anforderungen erfüllt wurden und welche nicht.
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.


Lorem Ipsum
=== Lastenheft Heizungssteuerung ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''ID'''
| align="center" style="background:#39F;"|'''Inhalt'''
| align="center" style="background:#39F;"|'''Ersteller'''
| align="center" style="background:#39F;"|'''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
|-
|}
</div>


== Funktionaler Systementwurf ==
== 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.
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 Teilafgabe zu komplex würde und es eine weitere Ebene zur klaren Zerlegung der Aufgabe benötigt.
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.
Der funktionale Systementwurf war im Sommersemester 2023 kein Bestandteil der Gruppenaufgabe und wurde von Prof. Dr. Göbel bereitgestellt.


== Technischer Systementwurf ==
== 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 und Signale und eine klar definierte Aufgabe.
[[Datei:Funktionsplan Heizungsregelung.jpg|mini]]
 
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:
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 zu erstellen und diese an die Heizungstechnikgruppe zu geben.
*'''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 '''PLACEHODLER'''gruppe und gibt eine Energieanforderung an die Heizungstechnik weiter.
*'''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.


== Komponentenentwurf ==
== Komponentenspezifikation ==
Der Komponentenentwurf ist die genaue Aufstellung, wie die einzelnen Komponenten eines Moduls aufgebaut und verknüpft werden sollen.
Die Komponentenspezifikation ist eine genaue Aufstellung, wie die einzelnen Komponenten eines Moduls aufgebaut und verknüpft werden sollen.
Das Ergebnis ist die Komponentenspezifikation, welche angibt, welche Komponenten wo im Modul vorhanden sein müssen und wie diese mit anderen Komponenten interagieren müssen um die Aufgabe des Moduls zu erfüllen.
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.
Anhand der Angaben in der Komponentenspezifikation wird später die Implementierung des Moduls durchgeführt.


Lorem Ipsum
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.
 
[[Datei:Komponentenplan HZR.jpg|thumb|left|300px|Komponentenplan für die Heizungssteuerung]]
<br clear=all>
[[Datei:Komponentenplan HZR Warmwasser.jpg|thumb|left|500px|Komponentenplan für die Warmwassersteuerung]]
<br clear=all>


== Programmierung / Modellierung ==
== 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.
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.
Das Ergebnis dieses Abschnittes ist die Implementierung des Moduls.


Lorem Ipsum
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.
 
[[Datei:Implementierung HZR .png|thumb|left|600px|Imolementierung der Heizungssteuerung mittels PID-Regler in Simulink]]
<br clear=all>
[[Datei:Implementierung 2.png|thumb|left|600px|Implementierung der Warmwassersteuerung mittels Hysterese in Simulink]]
<br clear=all>


== Komponententest ==
== 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, di 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.  
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.
 
[[Datei:EEZ Komponententest.png|thumb|left|600px|Ein Komponententest mit einer Komponente der Gruppe EEZ]]
<br clear=all>
 
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 ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''Testfall-ID'''
| align="center" style="background:#39F;"|'''Testfall-Name'''
| align="center" style="background:#39F;"|'''Anforderungs-ID'''
| align="center" style="background:#39F;"|'''Vorbedingungen'''
| align="center" style="background:#39F;"|'''Aktionen'''
| align="center" style="background:#39F;"|'''erwartetes Ergebnis'''
| align="center" style="background:#39F;"|'''Ergebnis'''
| align="center" style="background:#39F;"|'''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.
|-
|}
</div>
 
 
=== EEZ Komponententest Solarstrahlung ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''Testfall-ID'''
| align="center" style="background:#39F;"|'''Testfall-Name'''
| align="center" style="background:#39F;"|'''Anforderungs-ID'''
| align="center" style="background:#39F;"|'''Vorbedingungen'''
| align="center" style="background:#39F;"|'''Aktionen'''
| align="center" style="background:#39F;"|'''erwartetes Ergebnis'''
| align="center" style="background:#39F;"|'''Ergebnis'''
| align="center" style="background:#39F;"|'''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
|-
|}
</div>
 
 
=== EEZ Komponententest Warmwasserkollektor ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''Testfall-ID'''
| align="center" style="background:#39F;"|'''Testfall-Name'''
| align="center" style="background:#39F;"|'''Anforderungs-ID'''
| align="center" style="background:#39F;"|'''Vorbedingungen'''
| align="center" style="background:#39F;"|'''Aktionen'''
| align="center" style="background:#39F;"|'''erwartetes Ergebnis'''
| align="center" style="background:#39F;"|'''Ergebnis'''
| align="center" style="background:#39F;"|'''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.
|-
|}
</div>
 


Wir haben die Komponenten der Gruppe Energieerzeugung getestet.
=== EEZ Komponententest Wechselrichter ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''Testfall-ID'''
| align="center" style="background:#39F;"|'''Testfall-Name'''
| align="center" style="background:#39F;"|'''Anforderungs-ID'''
| align="center" style="background:#39F;"|'''Vorbedingungen'''
| align="center" style="background:#39F;"|'''Aktionen'''
| align="center" style="background:#39F;"|'''erwartetes Ergebnis'''
| align="center" style="background:#39F;"|'''Ergebnis'''
| align="center" style="background:#39F;"|'''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.
|-
|}
</div>


== Integrationstest ==
== Integrationstest ==
Lorem Ipsum
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.
 
[[Datei:EEZ Integrationstest.png|thumb|left|600px|Ein Komponententest mit einer Komponente der Gruppe EEZ]]
<br clear=all>
 
Auf diese Weise wurden weitere Testfälle durchgeführt und miteinander auf plausible Ausgangswerte verglichen. Diese sind in folgender Tabelle aufgeführt.


Lorem Ipsum
=== EEZ Integrationstest ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''Testfall-ID'''
| align="center" style="background:#39F;"|'''Testfall-Name'''
| align="center" style="background:#39F;"|'''Anforderungs-ID'''
| align="center" style="background:#39F;"|'''Vorbedingungen'''
| align="center" style="background:#39F;"|'''Aktionen'''
| align="center" style="background:#39F;"|'''erwartetes Ergebnis'''
| align="center" style="background:#39F;"|'''Ergebnis'''
| align="center" style="background:#39F;"|'''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
|-
|}
</div>


== Systemtest ==
== Systemtest ==
Lorem Ipsum
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 ===
{| class="wikitable mw-collapsible mw-collapsed"
| align="center" style="background:#39F;"|'''Testfall-ID'''
| align="center" style="background:#39F;"|'''Testfall-Name'''
| align="center" style="background:#39F;"|'''Anforderungs-ID'''
| align="center" style="background:#39F;"|'''Vorbedingungen'''
| align="center" style="background:#39F;"|'''Aktionen'''
| align="center" style="background:#39F;"|'''erwartetes Ergebnis'''
| align="center" style="background:#39F;"|'''Ergebnis'''
| align="center" style="background:#39F;"|'''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.
|-
|}
</div>
 
 
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.
 
[[Datei:Systemtest 1.png|thumb|left|600px|Das Temperaturverhalten der Soll- und Isttemperaturen im Gesamtsystem]]
<br clear=all>
 
In diesem Scope sind weitere Leistungen zu erkennen, welche sinnvoll und je nach Bedarf durch das System errechnet und ausgegeben werden.
 
[[Datei:Systemtest 2.png|thumb|left|600px|Weitere Leistungen im System]]
<br clear=all>
 
Ebenso lassen sich daran Kosten und Verbräuche errechnen:
[[Datei:Systemtest 3.png|thumb|left|600px|Weitere Leistungen im System]]
<br clear=all>
 
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 ==
== Fazit ==
Lorem Ipsum
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 ==
== Literaturverzeichnis ==

Aktuelle Version vom 13. Juli 2023, 12:12 Uhr

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.

Darstellung des V-Modells


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.

Komponentenplan für die Heizungssteuerung


Komponentenplan für die Warmwassersteuerung


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.

Imolementierung der Heizungssteuerung mittels PID-Regler in Simulink


Implementierung der Warmwassersteuerung mittels Hysterese in Simulink


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.

Ein Komponententest mit einer Komponente der Gruppe EEZ


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.

Ein Komponententest mit einer Komponente der Gruppe EEZ


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.

Das Temperaturverhalten der Soll- und Isttemperaturen im Gesamtsystem


In diesem Scope sind weitere Leistungen zu erkennen, welche sinnvoll und je nach Bedarf durch das System errechnet und ausgegeben werden.

Weitere Leistungen im System


Ebenso lassen sich daran Kosten und Verbräuche errechnen:

Weitere Leistungen im System


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

  1. "V-Modell" V-Modell