필터 지우기
필터 지우기

Why am I getting Undefined function or variable 'kp' despite having defined it in the code?

조회 수: 1 (최근 30일)
function dAdT = polyadiabatic(T,A)
dAdT = zeros(2,1);
% Kinetics
Rp = (kp).*rho.*A(1).*((2.*ki.*((rho.*A(1).^3)))./ktc).^0.5;
% Formulae
ki = 2.019.*10.*exp(-13810./A(2)); % m6/kg.s
kp = 1.009.*(10.^5).*exp(-3557./A(2)); % m3/kg.s
%kp = 100900;
ktc = 2.205.*(10.^7).*exp(-844./A(2)).*exp(-2.*((A1.*wp)+(A2.*(wp.^2))+(A3.*(wp.^3)))); % m3/kg.s
A1 = 2.57-((5.05.*0.001).*A(2));
A2 = 9.56-((1.76.*0.01).*A(2));
A3 = -3.032+((7.85.*0.001).*A(2));
rho = 845-(A(2)-353)+((200+(A(2)-353)).*wp); % kg/m3
wp = 1-A(1);
% Parameters
deltaH = -6.7.*(10.^5); % J/kg
cp = 1.884.*1000; % J/kg.K
% Mass balance
dAdT(1) = -(Rp./rho);
% Energy balance
dAdT(2) = -(Rp.*deltaH)./(cp.*rho);
end
To call the function:
function [T,A] = call_polyadiabatic()
tspan = [0 40000];
% Initial conditions
A1_0 = 1;
A2_0 = 360;
[T,A] = ode45(@polyadiabatic,tspan,[A1_0 A2_0]);
End
Error:
call_polyadiabatic
Undefined function or variable 'kp'.
Error in polyadiabatic (line 5)
Rp = (kp).*rho.*A(1).*((2.*ki.*((rho.*A(1).^3)))./ktc).^0.5;
Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in call_polyadiabatic (line 9)
[T,A] = ode45(@polyadiabatic,tspan,[A1_0 A2_0]);

채택된 답변

Aquatris
Aquatris 2018년 7월 20일
편집: Aquatris 2018년 7월 20일
Becuase you define "kp" variable a little late. From your polyadiabatic function;
% Kinetics
Rp = (kp).*rho.*A(1).*((2.*ki.*((rho.*A(1).^3)))./ktc).^0.5; % THIS REQUIRES kp VARIABLE
% Formulae
ki = 2.019.*10.*exp(-13810./A(2)); % m6/kg.s % HERE IS WHERE YOU DEFINE kp VARIABLE
kp = 1.009.*(10.^5).*exp(-3557./A(2)); % m3/kg.s
You will get a similar error for A1, A2, A3, and wp variables as well. Put them in the beginning of the function, before you use them.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by