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.
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
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 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 durch das Lastenheft zu gehen und zu sagen, 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.
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 und 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 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 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 ist die Komponentenspezifikation, welche angibt, 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, 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.
Wir haben das Modul der Gruppe Energieerzeugung getestet, welches sich aus den Komponenten Photovoltaik, Solarstrahlung, Warmwasserkollektor und dem Wechselrichter zusammensetzt. In der folgenden 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.
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.
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
Das 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 ans 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 ja für sich auch funktionieren soll.
Auch hier wurden verschiedene Testszenarien erstellt, welche in folgender Tabelle aufgelistet sind.
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 in Nachhinein dann 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.