Energiehaushalt eines Hauses: Lastkollektive LKT: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 202: | Zeile 202: | ||
== Komponententest == | == Komponententest == | ||
Der Komponententest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe ISO ([[Benutzer:Nico Kasprik|Nico Kasprik]] und [[Benutzer:Jonas Loddenkemper|Jonas Loddenkemper]]) durchgeführt. Nachfolgend die Dokumentation dieser Tests: | Der Komponententest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe ISO ([[Benutzer:Nico Kasprik|Nico Kasprik]] und [[Benutzer:Jonas Loddenkemper|Jonas Loddenkemper]]) durchgeführt. Er umfasst den Test der Einzelnen Komponenten voneinander getrennt um die für sich stehende Funktionalität sicherzustellen. Nachfolgend die Dokumentation dieser Tests: | ||
=== Eigenschaften des Hauses === | === Eigenschaften des Hauses === | ||
Zeile 303: | Zeile 303: | ||
== Integrationstest == | == Integrationstest == | ||
Der Integrationstest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe ISO ([[Benutzer:Nico Kasprik|Nico Kasprik]] und [[Benutzer:Jonas Loddenkemper|Jonas Loddenkemper]]) durchgeführt. Er umfasst den Test der einzelnen Komponenten als Verbund in dem Model "LKT - Lastkollektive". So soll sichergestellt werden, dass sich aufeinander beziehende Komponenten im Verbund funktionieren und einen sinnvollen Output liefern. Nachfolgend die Dokumentation dieser Tests: | |||
{| 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 und Eingänge''' | |||
| 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''' | |||
| align="center" style="background:#39F;"|'''Kommentar''' | |||
|- | |||
|1000||Test auf Gesamtfunktion||xx||Parameter geladen||fortlaufende Simulation||Aufruf des Modells||Aufruf des Modells||i. O.|| | |||
|- | |||
|1100||Test des Input Bus||xx||Modell laden||fortlaufende Simulation||Konstanten werden im Modell weitergegeben||Konstanten werden im Modell an den richtigen Stellen benutzt||i. O.|| | |||
|- | |||
|1110||Konstante ESP_Verbrauch||xx||Konstante gesetzt||fortlaufende Simulation||Konstante = 5000||ESP_Verbrauch = 5000||i. O.|| | |||
|- | |||
|1120||Konstante EEZ_PVLeistungAC||xx||Konstante gesetzt||fortlaufende Simulation||Konstante = 2000||EEZ_PVLeistungAC = 2000||i. O.|| | |||
|- | |||
|1200||Test des Output Bus||xx||Modell laden||fortlaufende Simulation||Konstanten werden im Modell richtig verrechnet; plausible Output Ergebnisse||plausible Ouputs||i. O.|| | |||
|- | |||
||1210||LKT_Grundfaeche||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Grundfaeche = 100||plausible Ouput; LKT_Grundfaeche = 100||i. O.|| | |||
|- | |||
|1220||LKT_Deckenhoehe||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Deckenhoehe = 2.5||plausible Ouput; LKT_Deckenhoehe = 2.5||i. O.|| | |||
|- | |||
|1230||LKT_Etagen||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Etagen = 2||plausible Ouput; LKT_Etagen = 2||i. O.|| | |||
|- | |||
|1240||LKT_Fensterfläche||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Fensterfläche = 25||plausible Ouput; LKT_Fensterfläche = 25||i. O.|| | |||
|- | |||
|1250||LKT_Stromkosten||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Stromkosten = 1082||plausible Ouput; LKT_Stromkosten = 1082||i. O.|| | |||
|- | |||
|1260||LKT_PersonenZuhause||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_PersonenZuhause = wechselnde Personenanzahl über Jahresverlauf||plausible Ouput; LKT_PersonenZuhause = wechselnde Personenanzahl über Jahresverlauf||i. O.|| | |||
|- | |||
|1270||LKT_Wasserverbrauch||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Wasserverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel||plausible Ouput; LKT_Wasserverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel||i. O.|| | |||
|- | |||
|1280||LKT_Temperatur||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Temperatur = schwankenden Verlauf über Jahr||plausible Ouput; LKT_Temperatur = schwankenden Verlauf über Jahr||i. O.|| | |||
|- | |||
||1290||LKT_Simulationszeit||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Simulationszeit = stetig ansteigend||plausible Ouput; LKT_Simulationszeit = stetig ansteigend||i. O.|| | |||
|- | |||
|1211||LKT_Stromverbrauch||xx||Parameter und Inputs bekannt||fortlaufende Simulation||LKT_Stromverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel||plausible Ouput; LKT_Stromverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel||i. O.|| | |||
|- | |||
|} | |||
</div> | |||
[[Datei:Integrationstest Outputs.png|mini|800px|thumb|left|Abbildung 7: Integrationstest des Moduls "LKT - Lastkollektive" & die Outputs]] | |||
<br clear = all> | |||
== Systemtest == | == Systemtest == |
Version vom 4. Juli 2023, 10:54 Uhr
Autoren: Marvin Stute; David Schartner
Betreuer: Prof. Dr.-Ing. M. Göbel
→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses
Einleitung
Zielsetzung der Seminaraufgabe
V-Modell
Anforderungsdefinition: Lastenheft
Funktionaler Systementwurf
Der funktionale Systementwurf war im Sommersemester 2023 kein Bestandteil der Gruppenaufgabe und wurde von Prof. Dr. Göbel bereitgestellt.
Technischer Systementwurf
Komponentenspezifikation
Programmierung / Modellierung
In der Programmierung werden die Komponenten den zuvor festgelegten Spezifikationen entsprechend umgesetzt. Die Programmierung erfolgte auf Basis des im technischen Systementwurf entworfenen Simulink Modells. Neben dem Simulink Modell wurde außerdem eine Matlab-Datei mit Parametern entworfen. Diese wird beim Start des Programms aufgerufen, sodass die Parameter im Workspace gespeichert sind.
%**************************************************************** % Hochschule Hamm-Lippstadt * %**************************************************************** % Modul : parameter_LKT.m * % * % Datum : 22.05.2023 * % * % Funktion : Speichern der Parameter für die Last- * % kollektive des Haus-Modells im Workspace * % * % Implementation : MATLAB 2022a * % * % Req. Toolbox : - * % * % Req. Dateien : Temperaturdaten.mat * % * % Author : David Schartner; Marvin Stute * % * % Bemerkung : * % * % Letzte Änderung : 04.06.2023 * % * %***************************************************************/ load('Temperaturdaten.mat') PAR_LKT_Grundflaeche = 100; %in m^2 PAR_LKT_Deckenhoehe = 2.5; % in m PAR_LKT_Etagen = 2; % in Etagenanzahl PAR_LKT_Fensterflaeche = 25; % in Prozent PAR_LKT_Strompreis = 0.3606; % in €/kWh PAR_LKT_WasserverbrauchProPerson = 0.1230; % in m^3 für eine Person PAR_LKT_StromverbrauchProPerson = 6.8; % in kWh für eine Person PAR_LKT_zweiErwachsene = 2; % Anzahl Personen PAR_LKT_zweiKinder = 2; % Anzahl Personen PAR_LKT_Wochenendtag = 1; PAR_LKT_Urlaubstag = 0;
Im Folgenden sind die einzelnen Komponenten dargestellt:
Eigenschaften des Hauses
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Eigenschaften des Hauses". Diese ist in einem Simulink-Subsystem implementiert. Die Parameter werden direkt aus der Parameter-Datei ausgelesen und mit einem Bus Creator auf einem Bus gespeichert.
Daten
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Daten". Diese ist in einem Simulink-Subsystem implementiert. Die aktuelle Temperatur wird aus einem Lookup-Table ausgelesen. Dafür werden die Sekunden der Simulationszeit in Stunden bzw. Tage umgewandelt. Der Wasser- & Stromverbrauch wird auf Basis der Anzahl der Bewohner im Haus berechnet. Außerdem werden die Stromkosten über die Solarstromerzeugung und dem aktuellen Stromverbrauch bestimmt. Die vier Ausgänge gehen dann direkt aus dem Submodul heraus.
Code für die Funktion, die Strom-& Wasserverbrauch für die Urlaubstage reduziert:
function TageZuhause = fcn(aktuellerTag) % Die Funktion zieht die Tage von dem Tageszähler ab, an denen die Familie % außer Haus ist über den Sommer- bzw. Winterurlaub persistent TageAusserHausSommer TageAusserHausWinter ersterDurchlauf Sommerurlaub Winterurlaub if isempty(ersterDurchlauf) Sommerurlaub = [213 227]; Winterurlaub = [358 365]; TageAusserHausSommer = 0; % initialisiert den Zähler für Tage die Sie nicht zuhause sind TageAusserHausWinter = 0; ersterDurchlauf = 1; end if aktuellerTag>=Sommerurlaub(1) && aktuellerTag <= Sommerurlaub(2) TageAusserHausSommer = aktuellerTag - Sommerurlaub(1); end if aktuellerTag>=Winterurlaub(1) && aktuellerTag <= Winterurlaub(2) TageAusserHausWinter = aktuellerTag - Winterurlaub(1); end TageZuhause = aktuellerTag - TageAusserHausSommer - TageAusserHausWinter;
Szenarioermittlung
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Szenarioermittlung". Diese ist in einem Simulink-Subsystem implementiert. Die aktuelle Simulationszeit wird in den aktuellen Tag und die aktuelle Stunde aufgeteilt. Auf Basis der Stunde wird die aktuelle Zahl der Bewohner im Haus für jedes Szenario bestimmt. Auf Basis des aktuellen Tags wird das Szenario festgelegt. Anschließend wird die Anzahl der Personen im Haus ausgegeben.
Code für die Funktion die das aktuelle Szenario festlegt:
function LKT_PersonenZuhause = fcn(WochentagP, WochenendTagP, UrlaubstagP, aktuellerTag) LKT_PersonenZuhause = 0; % Initialisiert die Ausgangsvariable Sommerurlaub = [213 227]; % Tage in denen die Familie im Sommerurlaub ist Winterurlaub = [358 365]; % Tage in denen die Faimilie im Winterurlaub ist if aktuellerTag>=Sommerurlaub(1) && aktuellerTag <= Sommerurlaub(2) || aktuellerTag>=Winterurlaub(1) && aktuellerTag <= Winterurlaub(2) % Überprüft ob sich die Personen im Urlaub befinden und wählt falls es % der Fall ist das passende Szenario aus LKT_PersonenZuhause = UrlaubstagP; return end day = mod(aktuellerTag, 7); % Der Rest aus der Division mit 7 gibt an, welcher Wochentag aktuell ist (Zahl zwischen 0 - 6) if day == 5 || day == 6 % Die Tage 5 & 6 sind Samstag und Sonntag, also Wochenende weekend = true; else weekend = false; end % Überprüft ob Wochenende ist und wählt das passende Szenario aus if weekend == false LKT_PersonenZuhause = WochentagP; return elseif weekend == true LKT_PersonenZuhause = WochenendTagP; return end
Code für die PAR_LKT_Werktag Funktion.
function y = fcn(u) if u >= 0 && u < 8 y = 1; elseif u >= 8 && u < 14 y = 0; elseif u >= 14 && u < 18 y = 0.75; else y = 1; end
Datum und Tageszeit
Die nachfolgende Abbildung zeigt die Modellierung der Komponente "Daten und Tageszeit". Diese ist in einem Simulink-Subsystem implementiert. Sie gibt über den "Clock"-Block die Simulationszeit der gesamten Simulationszeit in Sekunden an.
Komponententest
Der Komponententest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe ISO (Nico Kasprik und Jonas Loddenkemper) durchgeführt. Er umfasst den Test der Einzelnen Komponenten voneinander getrennt um die für sich stehende Funktionalität sicherzustellen. Nachfolgend die Dokumentation dieser Tests:
Eigenschaften des Hauses
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Eigenschaft des Hauses" | xx | Parameter geladen; mit konstanten Werten | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i.O. | Daten werden an Bus und Ausgang weitergegeben |
020 | Ausgabe Grundfläche | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
030 | Ausgabe Deckenhöhe | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
040 | Ausgabe Etagen | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
050 | Ausgabe Fensterfläche | xx | Parameter geladen; Parameter konstant | Simulation eines Zeitschritts | Ausgabe der Parameter ohne Änderung | Parameter Ausgabe ohne Änderung | i. O. | Daten werden an Bus und Ausgang weitergegeben |
Daten
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Daten" | xx | Parameter geladen; mit konstanten und variablen Werten | Simulation eines Jahres | Ausgabe der Parameter mit korrekter Berechnung | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
020 | Ausgabe Strompreis | xx | Parameter geladen; mit konstanten Werten | Ein Zeitschritt Simuliert | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
030 | Ausgabe Wasserverbrauch | xx | Parameter geladen; Parameter variiert | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
040 | Ausgabe Anzahl Erwachsene | xx | Parameter geladen; Parameter konstant | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
050 | Ausgabe Anzahl Kinder | xx | Parameter geladen; Parameter konstant | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe erfolgt rechnerisch korrekt | i. O. | |
060 | Ausgabe Temperatur | xx | Parameter geladen; Parameter variiert | Simulation eines Jahres | korrektes Ergebnis als Ausgabe | Ausgabe innerhalb einen Jahres erfolgt korrekt, danach Abfall der Temperatur | siehe Kommentar | Für Simulationszeitraum von einem Jahr alles i.O., danach Wiederholung Look-Up-Table oder neue Daten notwendig |
Szenarioermittlung
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Szenario Ermittlung" | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Ausgabe varriert | Ausgabe erfolgt rechnerisch korrekt; Parameter in Parameterdatei fehlen | n. i. O. | PAR_LKT_Wochenendtag und PAR_LKT_Urlaubstag fehlen |
020 | Personenanzahl am Tag | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Personenanzahl unterscheidet sich nach Uhrzeit | Personenanzahl variiert innerhalb des Tages | i. O. | |
030 | Personenanzahl im Jahr | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Arbeitstage und Urlaubstage | In Urlaubszeit Anzahl Peronen = 0 | i. O. |
Datum und Tageszeit
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
010 | Test der gesamten Komponente "Datum und Tageszeit" | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Simulation des Tages | Zeit wird simuliert | i. O. | |
020 | Ausgabe der Clock | xx | Parameter geladen; über Simulationszeit | Fortlaufende Simulation | Simulation des Tages in Sekunden | Zeit wird in Sekunden simuliert | i. O. |
Integrationstest
Der Integrationstest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe ISO (Nico Kasprik und Jonas Loddenkemper) durchgeführt. Er umfasst den Test der einzelnen Komponenten als Verbund in dem Model "LKT - Lastkollektive". So soll sichergestellt werden, dass sich aufeinander beziehende Komponenten im Verbund funktionieren und einen sinnvollen Output liefern. Nachfolgend die Dokumentation dieser Tests:
Testfall-ID | Testfall-Name | Anforderungs-ID | Vorbedingungen und Eingänge | Aktionen | Erwartetes Ergebnis | Ergebnis | Bewertung | Kommentar |
1000 | Test auf Gesamtfunktion | xx | Parameter geladen | fortlaufende Simulation | Aufruf des Modells | Aufruf des Modells | i. O. | |
1100 | Test des Input Bus | xx | Modell laden | fortlaufende Simulation | Konstanten werden im Modell weitergegeben | Konstanten werden im Modell an den richtigen Stellen benutzt | i. O. | |
1110 | Konstante ESP_Verbrauch | xx | Konstante gesetzt | fortlaufende Simulation | Konstante = 5000 | ESP_Verbrauch = 5000 | i. O. | |
1120 | Konstante EEZ_PVLeistungAC | xx | Konstante gesetzt | fortlaufende Simulation | Konstante = 2000 | EEZ_PVLeistungAC = 2000 | i. O. | |
1200 | Test des Output Bus | xx | Modell laden | fortlaufende Simulation | Konstanten werden im Modell richtig verrechnet; plausible Output Ergebnisse | plausible Ouputs | i. O. | |
1210 | LKT_Grundfaeche | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Grundfaeche = 100 | plausible Ouput; LKT_Grundfaeche = 100 | i. O. | |
1220 | LKT_Deckenhoehe | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Deckenhoehe = 2.5 | plausible Ouput; LKT_Deckenhoehe = 2.5 | i. O. | |
1230 | LKT_Etagen | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Etagen = 2 | plausible Ouput; LKT_Etagen = 2 | i. O. | |
1240 | LKT_Fensterfläche | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Fensterfläche = 25 | plausible Ouput; LKT_Fensterfläche = 25 | i. O. | |
1250 | LKT_Stromkosten | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Stromkosten = 1082 | plausible Ouput; LKT_Stromkosten = 1082 | i. O. | |
1260 | LKT_PersonenZuhause | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_PersonenZuhause = wechselnde Personenanzahl über Jahresverlauf | plausible Ouput; LKT_PersonenZuhause = wechselnde Personenanzahl über Jahresverlauf | i. O. | |
1270 | LKT_Wasserverbrauch | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Wasserverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | plausible Ouput; LKT_Wasserverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | i. O. | |
1280 | LKT_Temperatur | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Temperatur = schwankenden Verlauf über Jahr | plausible Ouput; LKT_Temperatur = schwankenden Verlauf über Jahr | i. O. | |
1290 | LKT_Simulationszeit | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Simulationszeit = stetig ansteigend | plausible Ouput; LKT_Simulationszeit = stetig ansteigend | i. O. | |
1211 | LKT_Stromverbrauch | xx | Parameter und Inputs bekannt | fortlaufende Simulation | LKT_Stromverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | plausible Ouput; LKT_Stromverbrauch = steigender Verlauf;abhängig von Personenanzahl; Reset zum Jahreswechsel | i. O. |
Systemtest
Fazit
Literaturverzeichnis
→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses