Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Plot über einen Zeitraum

 

Reinhard

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2018, 11:13     Titel: Plot über einen Zeitraum
  Antworten mit Zitat      
Hey,

ich möchte eine Leistung (Q_Verlust) über einen Zeitraum von 30 Tagen mit einer Zeitschrittweise von 120 Sekunden darstellen und auch die Gesamtleistung in diesem Zeitraum berechnen.
Ich habe dafür eine Vorlage wo allerdings nur die Leistung berechnet wird jedoch ohne Zeitraum.

Code:
clear all;              % gesamter Arbeitsspeicher wird gelöscht
clc;                    % Befehlsfenster wird gelöscht;
close all;              % alle Figures bzw. Diagramme werden geschlossen

%####################################################################
% EINLESEN VON MESSDATEN, Simulationsdaten etc.
% vorliegende TXT-Datei hat als Spalten-Trennzeichen einen Tabulator
% Dezimaltrennzeichen ist der Punkt!!
% erste Zeile beinhaltet die Spaltenüberschrift
Data=dlmread('TWW_Profil_userdefined.txt','\t',1,0);
time_TWW=3600*Data(:,1);
TWW_Bedarfsprofil=Data(:,2);
Wasserbedarf=240;   % l bzw. kg
V_dot_TWW=Wasserbedarf.*TWW_Bedarfsprofil./(1000*3600);
%####################################################################

%####################################################################
% Angabe für die instationäre Betrachtung der homogenen Speichertemperatur
t = max(time_TWW);      % s  % [0:10:48*3600]';
P_elek_NENN = 2000;     % W
rho_w = 1000;           % kg/m³
c_w = 4200;             % J/kgK
T_KW = 10;              % °C
V_SP = 0.5;             % m³
T_SP_0 = 65;            % °C
%####################################################################

%####################################################################
% weitere Angaben, wie der Zusammenhang zur Berücksichtigung der
% Speicherverluste und der Schaltdifferenz des 2-Punkt-Reglers zum
% aktivieren oder deaktivieren der Heizpatrone
phi_t=0.16*sqrt(V_SP*1000);
T_umg=15;       % Umgebungstemperatur
g_o=60;         % Ausschaltwert der Heizpatrone
g_u=45;         % Einschaltwert der Heizpatrone
%####################################################################

%####################################################################
% numerische Lösung
delta_t=300;            % s
t_numerisch=(0:delta_t:max(t))';
V_dot_TW = interp1(time_TWW,V_dot_TWW,t_numerisch,'previous'); % Interpolation entsprechend der Vorgabe "Stufenprofil"

T_Sp_numerisch(1,1)=T_SP_0;
Q_dot_Verl(1,1)=phi_t*(T_Sp_numerisch(1,1) - T_umg);
P_elek(1,1)=0;
for i=2:size(t_numerisch,1)
    if T_Sp_numerisch(i-1,1)>g_o        % Wenn Speichertemp. über dem Ausschaltwert liegt, wird die Heizpatrone abgeschalten
        P_elek(i,1)=0;
    elseif T_Sp_numerisch(i-1,1)<g_u    % Wenn Speichertemp. unter dem Einschaltwert liegt, wird die Heizpatrone eingeschalten
        P_elek(i,1)=P_elek_NENN;
    else
        P_elek(i,1)=P_elek(i-1,1);                  % Ansonsten behält die Heizpatrone ihren aktuellen Zustand bei (entweder bleibt sie ein- oder ausgeschalten)
    end
       
    T_Sp_numerisch(i,1)=T_Sp_numerisch(i-1,1) + (P_elek(i,1) - Q_dot_Verl(i-1,1) + ...
                                      V_dot_TW(i,1)*rho_w*c_w*(T_KW-T_Sp_numerisch(i-1,1)))/ ...
                                      (V_SP*rho_w*c_w)*delta_t;  
    Q_dot_Verl(i,1)=phi_t*(T_Sp_numerisch(i,1) - T_umg);            % Berechnung der Speicherverluste mit der aktuellen Speichertemperatur
end  
 

%% Darstellung        
figure('Position',[100 100 900 700],'Color',[0.92 0.92 0.92]);
subplot(8,1,1:5);
box on;
hold on;
grid on;
set(gca,'FontSize',14,'xminorgrid','on','yminorgrid','on');
p1=plot(t_numerisch/3600,T_Sp_numerisch,'Color',[1 0 0 0.35],'LineWidth',2,'DisplayName',['numerische Lösung: \Deltat=' num2str(delta_t) 's']);
p2=plot([0 max(t_numerisch/3600)],[g_o g_o],'-.k','DisplayName','Aus- und Einschaltwert');
p3=plot([0 max(t_numerisch/3600)],[g_u g_u],'-.k','DisplayName','Aus- und Einschaltwert');
xlim([0 720]);
set(gca,'xtick',[0:72:720]);
xlabel('Zeit t in h');
ylabel({'Homogene Speichertem-';'peratur T_{SP} in °C'});
legend([p1 p2],'Location','North','Orientation','horizontal');   % nur die ersten zwei Linien werden in der Legende angezeigt!

% Darstellung der Hilfsgitternetzlinien
ax=gca;
ax.XAxis.MinorTickValues = ax.XAxis.Limits(1):24:ax.XAxis.Limits(2);
ax.YAxis.MinorTickValues = ax.YAxis.Limits(1):1:ax.YAxis.Limits(2);


subplot(8,1,7:8);
box on;
hold on;
grid on;
set(gca,'FontSize',14,'xminorgrid','on','yminorgrid','on');
plot(t_numerisch/3600,(P_elek>0),'Color',[1 0 0 0.35],'LineWidth',2,'DisplayName',['OnOff-Heizpatrone: \Deltat=' num2str(delta_t) 's']);
xlim([0 720]);
ylim([-0.2 1.2]);
set(gca,'xtick',[0:72:720],'ytick',[0 1]);
xlabel('Zeit t in h');
ylabel({'Einschaltsignal';'Heizpatrone'});
LG=legend('show','Location','North','Orientation','horizontal');   % nur die ersten zwei Linien werden in der Legende angezeigt!
LG.Position(2)=1.2*LG.Position(2);

% Darstellung der Hilfsgitternetzlinien
ax=gca;
ax.XAxis.MinorTickValues = ax.XAxis.Limits(1):24:ax.XAxis.Limits(2);
ax.YAxis.MinorTickValues = ax.YAxis.Limits(1):1:ax.YAxis.Limits(2);



Bin leider ein vollkommener Neuling - das Plot hab ich mittlerweile und weiß auch wie ich die Leistung darstelle allerdings bekomme ich es mit der Zeit nicht hin.


Vielen Dank für jede Hilfe.


Jan S
Moderator

Moderator


Beiträge: 10.800
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.12.2018, 14:40     Titel: Re: Plot über einen Zeitraum
  Antworten mit Zitat      
Hallo Reinhard,

Das ist eine Menge Code. Welchen Teil davon betrifft Deine Frage?
Zitat:
allerdings bekomme ich es mit der Zeit nicht hin.

Das ist zu allgemein, um beantwortet zu werden. Beschreibe bitte genauer, was Du womit nicht hinbekommst und was Du erreichen möchtest.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.



goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2019 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.