Borrar filtros
Borrar filtros

Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Need some help with equation error, please.

1 visualización (últimos 30 días)
Aaron
Aaron el 3 de Oct. de 2013
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
I've set up the following two files to run an electrical potential problem and one of the variables that I'm using involves using a bvp4c boundary conditions. I have attached my project sheet for a little background on the problem.
If someone could show me why its incorrect and what I can do to repair it, I would greatly appreciate it. I'm sure that if and when it is corrected there may be other errors that arise but I guess I'll get to fixin' when that time comes.
Error:
Undefined function 'ya' for input arguments of type 'double'.
Error in MAE340_P1 (line 14)
Hs = c10*exp((-F/R*T)*ya(2));
Main Function:
function main
global Ckcl Rp pph pH
Ckcl = 10;
Rp = 40e-9;
pph = 3:0.2:9;
for i = 1:length(pph)
pH = pph(i);
sigma_pH(i)= MAE340_P1(Ckcl,pH,Rp)
end
plot(pph,sigma_ph)
Ckcl = 1:1:100;
pH = 6;
Rp = 40e-9;
for i = 1:length(Ckcl)
Ckcl = Ckcl(i) +1;
sigma_Ckcl(i) = MAE340_P1(Ckcl,pH,Rp)
end
plot(Ckcl,sigma_Ckcl)
Ckcl = 10;
pH = 6;
Rp = 10-e8:10e-9:10e-7;
for i = 1:length(Rp)
sigma_Rp = MAE340_P1(Ckcl,pH,Rp)
end
plot(Rp,sigma_Rp)
2nd Function:
function sigma_1 = MAE340_P1(Ckcl,pH,Rp)
global N F R T c10 c20 c30 c40 z1 z2 z3 z4 ka kb Ef lambda rlow rhigh sigma_2
z1 = 1;
z2 = 1;
z3 = -1;
z4 = -1;
T = 300;
R = 8.314;
F = 96490;
Ef = 7.08e-10;
N = 1.3285e-5;
ka = 10^-4.6;
kb = 10^2.9;
Hs = c10*exp((-F*ya(2)/R*T));
sigma_2 = -F*N*((ka-kb*Hs^2)/(ka+Hs+kb*Hs^2));
lambda = sqrt((Ef*R*T)/( (F^2)*(z1^2*c10+z2^2*c20+z3^2*c30+z4^2*c40)));
rlow = Rp;
rhigh =Rp+5*lambda;
if pH>= 7
c10 = 10^(-pH+3);
c20 = Ckcl;
c30 = Ckcl + 10^(-pH+3) - 10^-(14-pH)+3;
c40 = 10^-(14-pH)+3;
else
c10 = 10^(-pH+3);
c20 = Ckcl + 10^(-pH+3) - 10^-(14-pH)+3;
c30 = Ckcl;
c40 = 10^-(14-pH)+3;
end
solinit = bvpinit(linspace(rlow,rhigh,100),[1 0]);
sol = bvp4c(@bvp4ode,@bvp4bc,solinit);
xint = linspace(rlow,rhigh,20);
plot(xint,sxint(1,:));
function dydr = bvp4ode(r,y)
global N F R T c10 c20 c30 c40 z1 z2 z3 z4 ka kb Ef lambda rlow rhigh sigma_2 Rp
dydr = [y(2) -(1/r)*y(2)-(1/Ef)*F*(z1*c10^((z1*F)/(R*T))*y(1)+z2*c20^((z2*F)/(R*T))*y(1)+z3*c30^((z3*F)/(R*T))*y(1)+z4*c40^((z4*F)/(R*T))*y(1))];
function res = bvp4bc(ya,yb)
global N F R T c10 c20 c30 c40 z1 z2 z3 z4 ka kb Ef lambda rlow rhigh sigma_2 Rp
res = [ya(2)+(sigma_2/Ef) yb(1)];

Respuestas (1)

Cedric
Cedric el 4 de Oct. de 2013
Editada: Cedric el 4 de Oct. de 2013
As the error message says, you are using variable ya in function MAE340_P1 on line 14:
Hs = c10*exp((-F*ya(2)/R*T));
and it is defined nowhere before this line. The only place where you seem to define such a variable, is as a first input parameter of function bvp4bc.

La pregunta está cerrada.

Community Treasure Hunt

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

Start Hunting!

Translated by