Energiehaushalt eines Hauses: Lastkollektive LKT: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
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:


=== Eigenschaften des Hauses ===
{| 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'''
|-
| 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
|-
|}
</div>
=== Daten ===
{| 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'''
|-
|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
|-
|}
</div>
[[Datei:Innerhalb 1 Jahr.png|mini|links|Abbildung 7: Ausgabe Temperaturdaten innerhalb eines Jahres]]
[[Datei:Nach einem Jahr.png|mini|rechts|Abbildung 7: Ausgabe Temperaturdaten nach mehr als einem Jahr]]
[[Datei:Wasserverbrauch.png|mini|zentriert|Abbildung 7: Ausgabe Wasserverbrauch]]
<br clear = all>
=== Szenarioermittlung ===
{| 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'''
|-
|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.||
|-
|}
</div>
[[Datei:Anwesende Personen über Jahr.png|mini|links|Abbildung 7: Anzahl der Personen über ein Jahr dargestellt von 0-4]]
<br clear = all>
=== Datum und Tageszeit ===
{| 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'''
|-
|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.||
|-
|}
</div>
== Integrationstest ==
== Integrationstest ==





Version vom 4. Juli 2023, 10:30 Uhr

Abbildung 1: Symbolbild der Seminaraufgabe [1]

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

Abbildung. 2: 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.

Abbildung 7: Modellierung der Komponente "Eigenschaften des Hauses"


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.

Abbildung 7: Modellierung der Komponente "Daten"


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.

Abbildung 7: Modellierung der Komponente "Szenarioermittlung"


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.

Abbildung 7: Modellierung der Komponente "Datum und Tageszeit"


Komponententest

Der Komponententest der Gruppe "Lastkollektive LKT" wurde durch die Gruppe ISO (Nico Kasprik und Jonas Loddenkemper) durchgeführt. 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
Abbildung 7: Ausgabe Temperaturdaten innerhalb eines Jahres
Abbildung 7: Ausgabe Temperaturdaten nach mehr als einem Jahr
Abbildung 7: Ausgabe Wasserverbrauch


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.
Abbildung 7: Anzahl der Personen über ein Jahr dargestellt von 0-4


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

Systemtest

Fazit

Literaturverzeichnis


→ zum Hauptartikel: Systems Design Engineering - Seminaraufgabe SoSe 2023: Energiehaushalt eines Hauses