Verfasst am: 23.03.2012, 13:20
Titel: nur gepunktete linie im plot
WEnn ich das folgende Skript durchlaufen lasse, bekomme ich keine gescheiten plotts hin.
Code:
clearall
cp_l = 1493; % specific heat constant liquid [13 bar, 40°C] [J/(Kg*K]
cp_g = 1096; % specific heat constant liquid [13 bar, 80°C] [J/(Kg*K]
dH = 177500; % enthalpy of condensation [J/Kg]
P1 = 15;
T1 = 70;
T2 = 40; % should temperature [°C] % m = 1.9; % massflow [kg/s]
m = 0.05:0.001:0.2;
Q_cmax = 30000; % max power of condenser [W]
Ts_c = temperature(P1); % boiling temperature at pressure P1 [°C]
x1 = m*cp_g*(T1-Ts_c); % used power from input to start boiling [W] if Q_cmax>x1
x2 = m*cp_g*(T1-Ts_c)+m*dH; % uses power from input to end boiling [W] if Q_cmax>x2
Q_c = m*cp_g*(T1-Ts_c)+m*dH+m*cp_l*(Ts_c-T2); % used power from input to should temperature [W] if Q_c<=Q_cmax
strQ_c = ['Q_c: ', num2str(Q_c),'[W]'];
disp(strQ_c)
T2 = (Ts_c+273)-Q_c./(m*cp_l)+((cp_g*(T1-Ts_c)+dH)/cp_l); % output temperature [K]
T2 = T2-273; % output temperature [°C] else
strQ_cmax = ['Q_cmax: ', num2str(Q_cmax),'[W]'];
disp(strQ_cmax)
T2 = (Ts_c+273)-Q_cmax./(m*cp_l)+((cp_g*(T1-Ts_c)+dH)/cp_l); % output temperature [K]
T2 = T2-273; % output temoperatrue [°C] end else
Q_c = Q_cmax;
T2 = Ts_c; % output temperature [°C] disp('VAPOR! liquid and vapor');
strQ_cmax = ['Q_cmax: ', num2str(Q_cmax),'[W]'];
disp(strQ_cmax) end else
Q_c = Q_cmax;
T2 = (T1+273)-Q_c./(m*cp_g); % output temperature [K]
T2 = T2-273; % output temperature [°C] disp('VAPOR! just vapor');
strQ_cmax = ['Q_cmax: ', num2str(Q_cmax),'[W]'];
disp(strQ_cmax) end
Jetzt macht er zwar die Linie, aber es dürfte eigentlihc keine Linie sein (zumindestens nicht von 0 an).
am anfang müsste es eine Steigung geben. und die wird nicht abgebildet
da dein code bei mir ja so nicht lauffähig ist kann ich das problem ja nicht nachbilden. und mit "dürfte eigentlich" kann ich das problem nicht lösen ^^
setz mal den debugger vor dem plot und guck dir die werte an. warum da eine steigung seihen soll kann ich auhc nicht nachvollzihenen. y siht bei mir wie ein konstanter wert aus.
war nciht wirklich eine Lösung. Ich glaube, dass bei einer if-Abfrage nur der Letzte Wert des Vektors m abgefragt wurde, Und dann alle Parameter mit der Formel gerechnet wurden.
(Danke für den Tip mit dem Debugger)
Also habe ich eine for-Schleife gemacht, in der jetzt jeder Wert kontrolliert wird.
Allerdings habe ich jetzt ein anderes Problem.
(ein ausdruck aus dem Skript):
Code:
if x3<=Q_cmax
Q_c(i) = m*cp_g*(T1-Ts_c)+m*dH+m*cp_l*(Ts_c-T2(1));
T2(i) = (Ts_c+273)-Q_c(i)/(m*cp_l)+((cp_g*(T1-Ts_c)+dH)/cp_l); % output temperature [K]
T2(i) = T2(i)-273; % output temperature [°C]
aber das finde ich nicht so gut, da es alles noch unübersichtlicher macht.
Und Warum ist der Hinweis nicht unter ' Q_c(i)'?
Aber ansonsten funktioniert jetzt alles so wie es soll.
steht schon in der fehler beschreibung wie du das beheben kannst. du sollst den vektor vorher schonmal anlegen. also vor deiner schleife.
wenn du weist bist wohin i geht kannst du einfach
machen. dann sollte die wellenlinie weg sein.er meckert halt rum weill er bei jedem durchlauf deiner schleife sonst einen neuen vektor erstellen muss der ein wenig größer ist als der alte und den inhalt des alten vektors in den neuen kopieren muss. das kostet ne menge zeit.
aha, werde es mal ausprobieren.
leider weiß ich mein imax aber nicht (oder ist immer verschieden) auch gebe ich einen Wert für T2 vor. aber das probiere ich erst einmal selber aus, wie ich das hinbekommen kann.
aber schon einmal besten dank
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.