Problem mit ode45 solver - verstehe die error nicht
Dennis M.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.04.2015, 17:55
Titel: Problem mit ode45 solver - verstehe die error nicht
Hallo ich arbeite an einem Uni-Project zum Reaktordesign. Ich arbeite zum ersten mal mit dem ode solver und bin auch sonst recht neu mit dem Umgang mit Matlab. Ich habe einen Hauptcode und einen Funktionscode geschrieben. Bei der Ausführung kommen folgende Fehlermeldungen, die wie ich denke mit der Art zu tun haben wie Matlab den Code verarbeitet bzw. funktionen ausführt.:
Error in pr1fct (line 4)
P_0=1;
Error using feval
Output argument "pr1fct" (and maybe others) not assigned during call to "C:\Users\Dennis\Documents\Bogazici\reactor
design\RD_Project 1\pr1fct.m>pr1fct".
Error in odearguments (line 87)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Und hier meine codes: (sorry für die langen codes, aber ich denke besser ausführlich als etwas wegzulassen)
Hauptcode:
Code:
%ChE 642 Catalytic Reactor Analysis and Design
%Project 1: Kinetic study of the catalytic carbon dioxide reforming of
%methane to synthesis gas over Ni-K/CeO2-Al2O3 catalyst
% ode45 solver (w and y represents catalyst weight and flow rates, temperature and CH4 conversion) [w,y] = ode15s(@pr1fct, [w_i w_f], [F0_CH4 F0_CO2 000 F0_N2 T_i 0]);
% Graph of flow rates and temperature with respect to catalyst weight plot(w,y(:,1),w,y(:,2),w,y(:,3),w,y(:,4),w,y(:,5),'linewidth',2) legend('CH4','CO2','H2','H2O','CO') xlabel('Catalyst Weight (Kg)') ylabel('Flow Rate (mol/s)') figure plot(w,y(:,7),w,y(:,8), 'linewidth',2) xlabel('Catalyst Weight (Kg)','FontSize',14) ylabel(hAx(1),'Temperature (K)','FontSize',14) ylabel(hAx(2),'CH4 Conversion (-)','FontSize',14)
%Heats of formation at 298 K,(J/mol)
Hf_CH4=-74520;
Hf_CO2=-393509;
Hf_H2=0;
Hf_H2O=-241818;
Hf_CO=-110525;
% Enthalpy of reaction at 298 K, (J/mol)
delta_Hrxn=(Hf_H2+Hf_H2O+3*Hf_CO)-(Hf_CH4+2*Hf_CO2);
% Reference temperature, (K)
T0=298;
% For initial system temperature to reference temperature
Tau_i=T_i/T0;
% For temperature at some catalyst weight to reference temperature
Tau_f=y(7)/T0;
% Constant change for reaction
delta_constants=H2+H2O+3*CO-2*CO2-CH4;
% Initial enthalpy change from initial system temperature to reference temperature
delta_Hinitial=delta_constants(1)*T0*(Tau_i-1)+(delta_constants(2)/2)*(T0^2)*((Tau_i^2)-1)+(delta_constants(3)/3)*(T0^3)*((Tau_i^3)-1);
% Final enthalpy change from reference temperature to the temperature at some catalyst weight
delta_Hfinal=delta_constants(1)*T0*(Tau_f-1)+(delta_constants(2)/2)*(T0^2)*((Tau_f^2)-1)+(delta_constants(3)/3)*(T0^3)*((Tau_f^3)-1);
% Enthalpy change in the system for reaction
delta_H=delta_Hrxn+R*delta_Hfinal+R*delta_Hinitial;
bitte code umgebung verwenden wenn du code postest.
habs jetzt nicht laufen lassen aber du hast funktionsnamen und ausgabevariable vertauscht. das fällt mir jedenfalls so auf die schnelle auf.
_________________
Danke, das hat mein Problem gelöst. Manchmal sieht man den Wald vor lauter Bäumen nicht.
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.