könntet Ihr bitte mal einen Blick auf mein nachfolgendes Programm, zur Berechnung der instationären Wärmeleitung durch eine mehrschichtige Wand, werfen.
Musste leider feststellen, dass das Programm nicht so funktioniert wie gewuenscht. Es gibt immer wieder groessere Abweichungen. Bin mit der Lösung der if-Schleife im letzten Teil nicht zufrieden und denke auch hier liegt der Fehler.
Wäre super, wenn mir jemand helfen könnte eine bessere Lösung zu finden. Bin nicht gerade der Profi in Matlab und es ist auch nicht gerade mein Fachgebiet.
Ueber sonstige Hinweise zum Code wäre ich Euch natuerlich auch sehr dankbar.
%-----------------------------Time stepping--------------------------------
% Setup time steps
M=81; % number of time steps
t=40;
DELTA_t=t/(M-1); % time step duration(s) for j=1:M
time(j)=(j-1)*DELTA_t;
end
%-----------------------------Grid-----------------------------------------
%Setup grid
N1=10; % number of nodes 1.Layer
N2=15; % number of nodes 2.Layer
L=L1+L2; % complete lenght (m)
N=N1+N2; % complete number of nodes
DELTA_x1=L1/(N1); % distance between adjacent nodes 1.Layer(m)
DELTA_x2=L2/(N2-1); % distance between adjacent nodes 2.Layer(m)
x1=0:DELTA_x1:L1; % position of each node 1.Layer(m)
x2=L1+DELTA_x2:DELTA_x2:L1+L2; % position of each node 2.Layer(m)
x=[x1 x2]; % position of each node(m)
Natürlich wäre es einfacher pdepe zu benutzen, aber wahrscheinlich widerspricht das der Aufgabenstellung.
Im Mittelteil verwendest du rho1,cp1 und k1 statt rho cp und k. An der 2 Grenze stehen ebenfalls die falschen Konstanten (rho1,k1,cp1 statt rho2,k2,cp2). Außerdem ist die Berechnung des Wärmestroms an der Grenze zwischen den beiden Schichten so nicht ganz korrekt.
Da muss sowas wie
k1*(T(i-1) - T(i)) + k2(T(i+1) - T(i))
stehen.
Fuer die falschen Konstanten muss ich mich entschuldigen, dies hatte ich beim präparieren des Codes fuers Forum uebersehen. Natuerlich muessen diese so wie Du geschrieben hast gesetzt werden.
Wie Du schon richtig erkannt hast, wiederspricht die Nutzung von pdepe der Aufgabenstellung.
Der Tipp fuer die Berechnung des Wärmestroms an der Grenze zwischen den beiden Schichten stimmt natuerlich, daran hatte ich ueberhaupt nicht gedacht.
Allerdings bin ich gerade ziemlich ratlos, wie ich dies in meinen Code einbinden könnte. Wobei ich wieder bei dem Problem mit der if-Schleife wäre.
Hättest Du hier evtl. auch noch einen Tipp fuer mich.
Besten Dank bereits im Voraus.
Vor allem der zweite Hinweis hat mich jetzt ein ganzes Stueck weiter gebracht.
Damit möchte ich diesen Beitrag beendet.
Beste Gruesse
Kojote
Einstellungen und Berechtigungen
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
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.