Verfasst am: 21.11.2016, 00:20
Titel: Problem bei Finite Differenzen Methode Code bitte Hilfe
Hallo meine Damen und Herren,
ich bin neu bei Matlab. Ich habe ein Code, welche die Instationäre Wärmeleitung in einem Zylinder mit mehreren Schichten beschreibt. Ich bekomme aber immer die Fehlermeldung (Assignment has more non-singleton rhs dimensions than non-singleton subscripts)
mein Code
Code:
%Eigenschaften Glas
lambda_glas=1.38;
rho_glas=2201;
r_glas=1052;
l_glas=0.0002;
%Dirichlet-Randbedingen (Sprunghafte Temperaturänderung am Rand)
T(1,j) =0.5*( T_rand-T(2,j));
%Eigenschaften sind ortsabhängig
if i<=N1
rho=rho_CFK;
c=c_CFK;
k=lambda_CFK;
DELTA_r=DELTA_r1;
r=r1;
elseif i<=N2 and i>N1
rho=rho_PI;
c=c_PI;
k= lambda_PI;
DELTA_r=DELTA_r2;
r=r2;
elseif i<=N3 and i>N2
rho=rho_glas;
c=c_glas;
k= lambda_glas;
DELTA_r=DELTA_r3;
r=r3;
elseif i<=N4 and i>N3
rho=rho_luft;
c=c_luft;
k= lambda_luft;
DELTA_r=DELTA_r4;
r=r4;
end
%Fourrier-Gleichung-in-Zylinderkoordinaten
T(i,j+1)=T(i,j)+(k*DELTA_t./(rho*c*DELTA_r^2))*(T(i-1,j)+T(i+1,j)-2*T(i,j))+(T(i-1,j)-T(i+1,j))*(1./r)* (DELTA_t./(rho*c.*DELTA_r^2));
end
%Neumann-Randbedingung im Zentrum =0, für Symmetrie
T(N-1,j)=T(N-2,j);
Der Fehler kommt in der länglichen Zeile 105. Debuggen kann man z.B. indem man Teile die Zeile in mehrere Zeilen aufteilt und dann irgendwann den Fehler versteht. Ich guck mal ein paar Minuten rein
Ich vermute, dass ein grosser Teil des Fehlers daher rührt, dass in dieser Zeile (1./r) ein unerwartetes Ergebnis hat, nämlich "1×0 empty double row vector".
r ergibt sich zumindest beim fehlerhaften Durchlauf aus r1 und r1 ist
Mit den gegeben Werten ist das ein leerer Vektor, weil der Startwert (1) schon grösser ist als der Endwert 2e-4. Das sollte also geeignet geändert werden.
Aber ich kann nur weiterhelfen, wenn ich den aktuellen Code habe. Außerdem kann mein Hinweis zur Hilfe zur Selbsthilfe verstanden werden und das Problem auf 2 Zeilen reduziert werden - eine mit der Zuweisung der Daten und eine mit der fehlerauslösenden Zeile.
Andreas
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.