Change the parameter value for iteration

clc;clear;close;
zz0=xlsread('w700.xlsx','Sheet1','A1:ALL1');
zz=xlsread('w700.xlsx','Sheet1','A1:ALL1');
w1=xlsread('winit.xlsx','Sheet1','A1:ALL1');
bheta=75e-06;
Ep=200e09;
H=1.3e09;%GPa
we=((0.94*H/Ep)^2)*bheta;
wp=54*we;
Ft=85;%kNfor initial number
Fie=0;
Fip=0;
Fiep=0;
gamma_2new=10;
b=1;
error=1;
iter=0;
R=0.00968;%m
cP=13.95;
nyu0=cP*0.001;%Pas
U = 11.1;%m/s
alpha=(0.6+0.965*log10(cP))*10^(-8);
W=Ft/(Ep*R*bheta);
Ue=(nyu0*U)/(Ep*R);
G=alpha*Ep;
Hri=3*(W*(Ue^-0.5))^-1;
Hei=2.621*(W*(Ue^-0.5))^-0.2;
Hrp=1.287*(G*Ue^-0.25)^(2/3);
Hep=1.311*(W*Ue^-0.5)^(-1/8);
zz2=zz.^2;
ys=(sqrt(sum(zz2)/1000)/4);
hc=0.5e-06;
fc_2=0;
while error>0.00005
w=w1;
gamma_2=gamma_2new;
while b<1000
if w(1,b)<0
w(1,b)=0;
else
w(1,b)=w(1,b);
end
if w(1,b)< we Fie=Fie+(4/3)*Ep*(bheta^0.5)*(w(1,b)^0.5);
zz(1,b)= zz(1,b);
elseif w(1,b)>wp
Fip=Fip+(H*2*pi()*bheta*w(1,b));
zz(1,b)= zz(1,b)- w(1,b);
elseif w(1,b)>0
Fiep=Fiep+(H-(0.6*H*((log(wp))-(log(w(1,b))))/((log(wp))-(log(we)))))*(pi()*bheta*w(1,b)*(1-(2*((w(1,b)-we)/(wp-we))^3)+(3*((w(1,b)-we)/(wp-we))^2)));
zz(1,b)= zz(1,b)- w(1,b);
else
end
b=b+1;
end
fc_2=Fie+Fip+Fiep;
gamma_2new=Ft/fc_2;
gamma_1=1/(1-(1/gamma_2new));
s=1/5*(7+exp(-(2*(gamma_1^(-2/5))*Hei)/Hri));
Hc=(gamma_1^(s/2)*(Hri^(7/3)+((gamma_1^(14/15))*(Hei^(7/3))))^(3*s/7)+(gamma_1^(-s/2)*(Hrp^(-7/2)+(Hep^(-7/2)))^(-2*s/7)))^(1/s)*(gamma_1^(1/2));
hc=Hc*R/(Ue^-0.5);
w1=zz-hc+ys;
error=abs((1/gamma_2new)-(1/gamma_2)/(1/gamma_2));
iter=iter+1;
end

댓글 수: 5

I already run the progrem, but it seems that it will not converge. I wonder I should have make mistake on the loop process. I attached the flow chart.
Thank you for helping!
KALYAN ACHARJYA
KALYAN ACHARJYA 2020년 12월 23일
Can you elaborate this question with example?
Make sure, in each iteration, that the error is increasing, have you checked?
error=abs((1/gamma_2new)-(1/gamma_2)/(1/gamma_2));
The error not increasing but show the same value.
In this program, I want the number of w is change until the gamma value has small error. and I can get the gamma_2 and the final w value as the result.
I attached the result I get. But in this result, the iteration hasn't stopped.
KALYAN ACHARJYA
KALYAN ACHARJYA 2020년 12월 23일
편집: KALYAN ACHARJYA 2020년 12월 23일
Store the error data in an array (each iteration), please check it again

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

질문:

2020년 12월 23일

편집:

2020년 12월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by