Energiehaushalt eines Hauses: Lastkollektive LKT

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

Integrationstest

Systemtest

Fazit

Literaturverzeichnis


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