Error using fzero function
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have problem with this code it returns the following error "Error using fzero Initial function value must be finite and real" in the linen where yp0= fzero( @(yp0) B(0, y0, yp0), 0);
h1 = [0 1 4 6 8 15 25];
A1 = [50 55 58 67 75 85 125];
%Valeurs numériques
d = 0.500;
L = 35.0;
wv = 33200;
etha = 5.00;
rho = 1000;
H = 10.0;
nu = 0.000001;
g = 9.81;
%On interprète: l'aire au fond de la retenue est de 50 m^2, et l'aire à la
%surface quand la retenue est pleine est de 125 m^2
%Fonction qui donne la surface de la retenue en fonction de la hauteur
%d'eau
A = @(h) interp1(h1,A1,h);
%On utilise l'equation de Bernoulli générale entre la surface de la retenue
%et la sortie de la turbine
v = @(h,hp) -4*hp.*A(h)./pi*d^2; %vitesse dans le tuyau
ps = @(h,hp) etha*0.5*hp.^2.*A(h).^2/(pi*(d/2)^2)^2; %perte de charge singulière dans le tuyau
pr = @(h,hp) 0.316.*(v(h,hp).*d/nu).^(-0.25)*L/d*0.5.*v(h,hp).^2; %perte de charge régulière dans le tuyau
B = @(t,h,hp) 0.5*hp.^2 + g*(H+h) -wv/rho -0.5.*v(h,hp).^2 -ps(h,hp) -pr(h,hp);
tspan = [0 1500];
y0 =24.0;
yp0 = fzero( @(yp0) B(0, y0, yp0), 0);
[t y] = odei15(B, tspan, y0,yp0);
plot(t,y);
0 Kommentare
Antworten (1)
Torsten
am 11 Mai 2022
Bearbeitet: Torsten
am 11 Mai 2022
I changed
v = -4*hp.*A(h)./pi*d^2; %vitesse dans le tuyau
to
v = -4*hp.*A(h)./(pi*d^2); %vitesse dans le tuyau
For better debugging, try
tspan = [0 1500];
y0 =24.0;
yp0 = fzero( @(yp0) B(0, y0, yp0), -0.0001)
[t y] = ode15i(@B, tspan, y0,yp0);
plot(t,y)
function res = B(t,h,hp)
h1 = [0 1 4 6 8 15 25];
A1 = [50 55 58 67 75 85 125];
%Valeurs numériques
d = 0.500;
L = 35.0;
wv = 33200;
etha = 5.00;
rho = 1000;
H = 10.0;
nu = 0.000001;
g = 9.81;
%On interprète: l'aire au fond de la retenue est de 50 m^2, et l'aire à la
%surface quand la retenue est pleine est de 125 m^2
%Fonction qui donne la surface de la retenue en fonction de la hauteur
%d'eau
A = interp1(h1,A1,h);
%On utilise l'equation de Bernoulli générale entre la surface de la retenue
%et la sortie de la turbine
v = -4*hp.*A./(pi*d^2); %vitesse dans le tuyau
ps = etha*0.5*hp.^2.*A.^2/(pi*(d/2)^2)^2; %perte de charge singulière dans le tuyau
pr = 0.316.*(v.*d/nu).^(-0.25)*L/d*0.5.*v.^2; %perte de charge régulière dans le tuyau
res = 0.5*hp.^2 + g*(H+h) -wv/rho -0.5.*v.^2 -ps -pr;
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Nonlinear Optimization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!