Orifice Bore size:
function FindOrificeBoreSizewithsecant
clc
clear all
% global D density v DeltaP l1 l2 Q kk P L1 L2
D = input ('D[=]in=')
if isempty(D)
D=6
end
D=D*2.54/100; % m
disp('Please type the fluid type gas or liquid ')
disp('If you dont identify the fluid type the defult fluid is liquid ')
fluid= input ('fluid(gas or liquid)=')
if isempty(fluid)
disp('Defult fluid is liquid ')
fluid= 'liquid'
else
Z= input ('Z factor=')
end
T= input ('Temperature[=]K =')
if isempty(T)
T=292 % [=] K
end
P= input(' input pressure[=]atm=')
if isempty(P)
switch fluid
case 'gas'
P=24 % [=] bar
case 'liquid'
P=5 % [=] bar
end% [=] bar
end
P=P*101325; % [=] pa
DeltaP= input(' alowable DeltaP[=]mH2O=')
if isempty(DeltaP)
DeltaP=2.5 %[=] m H2O
end
DeltaP=DeltaP*101325/10; % [=] pa
Qv = input ('Q[=]m3/hr=')
if isempty(Qv)
switch fluid
case 'gas'
Qmax=pi*D^2/4*15; % velocity = 15[=] m3/s
Qmin=pi*D^2/4*10; % Velocity = 10 [=] m3/s
Qv=(Qmax+Qmin)/2*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv % [=] m3/hr
%%%%%%%%%%%%%%%% for gas %%%%%%%%%%
disp('fluid flow [=] MMSCFD')
Qst=288*P*Qv/(Z*101325*T)*24*35.3146667*1e-6 % MMSCFD
Qmaxst=288*P*Qmax/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
Qminst=288*P*Qmin/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
case 'liquid'
Qmax=pi*D^2/4*3; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*0.5; % Velocity = 1 [=] m3/s
Qv=(Qmax+Qmin)/2*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv
end
else
switch fluid
case 'gas'
Qmax=pi*D^2/4*15; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*10; % Velocity = 1 [=] m3/s
disp('fluid flow [=] m3/hr')
Qperhour=Qv % [=] m3/hr
disp('fluid flow [=] MMSCFD')
Qst=288*P*Qv/(Z*101325*T)*24*35.3146667*1e-6 % MMSCFD
Qmaxst=288*P*Qmax/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
Qminst=288*P*Qmin/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
case 'liquid'
Qmax=pi*D^2/4*3; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*0.5; % Velocity = 1 [=] m3/s
disp('fluid flow [=] m3/hr')
Qperhour=Qv
end
end
Q=Qv/3600; % [=] m3/s
density= input ('density[=]kg/m3=')
if isempty(density)
switch fluid
case 'gas'
density=18.7 % [=] kg/m3
case 'liquid'
density=840 % [=] kg/m3
end
end
viscosity= input ('viscosity[=]cpoise=')
if isempty(viscosity)
switch fluid
case 'gas'
viscosity=1.172e-2 % [=] cpoise
case 'liquid'
viscosity=0.63 % [=] cpoise
end
end
viscosity=viscosity/100*0.1 % [=]kg/m.s
dynamic_viscosity=viscosity/density;
v=dynamic_viscosity % [=] m2/s
% d0= input( 'guss orifice bore [=] in =')
% if isempty(d0)
% dmin=0.1*D % [=] m
% dmax=0.75*D % [=] m
% d0=(dmin+dmax)/2 % [=] m
% end
% d0=d0*2.54/100; % m
kk= input( 'Cp/Cv=')
if isempty(kk)
switch fluid
case 'gas'
kk=1.36
case 'liquid'
kk=1.007
end
end
disp('please identify tapping type , corner tapping (1), flange tapping (2), D and D/2 tapping (3)')
tapping= input ('tapping=')
if isempty(tapping)
tapping= 1;
end
switch tapping
case 1
L1=0
L2=0
case 2
L1=0.0254/D
L2=0.0254/D
case 3
L1=1
L2=0.47
end
dmin=0.1*D % [=] m
dmax=0.75*D % [=] m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ReD=4*Q/(v*D*pi);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% plot %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp ('uncertainity expansibility factor (epsil)')
uncertainityexpanfactor=3.5*DeltaP/(kk*P)
P2=P-DeltaP;
i=1;
QD(i)=Qmin;
while QD(i)<=Qmax
j=1;
db(j)=dmin;
while db(j)<=dmax
Beta(j)=db(j)/D;
M2=2*L2/(1-Beta(j));
Pratio=(P2-101325)/(P-101325);
if Pratio < 0.75
epsil(j)=1;
else
epsil(j)=1-(0.351 + 0.256 *Beta(j)^4 +0.93*Beta(j)^8)*(1-(P2/P)^(1/kk));
end
% epsil(j)=1;
Re(i)=4*QD(i)/(v*D*pi);
A=(19000*Beta(j)/Re(i))^0.8;
if D<0 .0712="" p=""> Cc(j,i)= 0.5961+ 0.0261*Beta(j)^2- 0.216*Beta(j)^8 + 0.000521* (1e6*Beta(j)/Re(i))^0.7 + (0.0188 +0.0063*A)*(1e6/Re(i))^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta(j)^4/(1-Beta(j)^4)-0.031*(M2-0.8*M2^1.1)*Beta(j)^1.3;
if Beta(j)>=0.1 && Beta(j) <0 .2="" p=""> Cuncertain(j,i)=(0.7-Beta(j))+0.9*(0.75-Beta(j))*(2.8-D/25.4);
elseif Beta(j)>=0.2 && Beta(j)<=0.6
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=0.5+0.9*(0.75-Beta(j))*(2.8-D/25.4)+0.5;
else
Cuncertain(j,i)=0.5+0.9*(0.75-Beta(j))*(2.8-D/25.4);
end
elseif Beta(j)>=0.6 && Beta(j)<=0.75
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.9*(0.75-Beta(j))*(2.8-D/25.4)+0.5;
else
Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.9*(0.75-Beta(j))*(2.8-D/25.4);
end
elseif Beta(j)>0.75
Cuncertain(j,i)=1;
end
else
Cc(j,i)=0.5961+ 0.0261*Beta(j)^2- 0.216*Beta(j)^8 + 0.000521* (1e6*Beta(j)/Re(i))^0.7 + (0.0188 +0.0063*A)*(1e6/Re(i))^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta(j)^4/(1-Beta(j)^4)-0.031*(M2-0.8*M2^1.1)*Beta(j)^1.3 +0.011*(0.75-Beta(j))*(2.8-(D)/0.0254); % D shod be mm
if Beta(j)>=0.1 && Beta(j) <0 .2="" p=""> Cuncertain(j,i)=(0.7-Beta(j));
elseif Beta(j)>=0.2 && Beta(j)<=0.6
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=0.5+0.5;
else
Cuncertain(j,i)=0.5;
end
elseif Beta(j)>=0.6 && Beta(j)<=0.75
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.5;
else
Cuncertain(j,i)=(1.667*Beta(j)-0.5);
end
elseif Beta(j)>0.75
Cuncertain(j,i)=1;
end
end
Pressloss(j,i)=(sqrt(1-Beta(j)^4*(1-(Cc(j,i))^2))-Cc(j,i)*Beta(j)^2)/(sqrt(1-Beta(j)^4*(1-(Cc(j,i))^2))+Cc(j,i)*Beta(j)^2)*DeltaP;
PresslossCoef(j,i)=(sqrt((1-Beta(j)^4*(1-Cc(j,i)^2))/(Cc(j,i)*Beta(j)^2))-1)^2;
result(j,i)= QD(i)-epsil(j)*Cc(j)/(sqrt(1-Beta(j)^4))*pi/4*db(j)^2*sqrt(2*DeltaP/density);
db(j+1)=db(j)+(dmax-dmin)/10;
j=j+1;
end
QD(i+1)=QD(i)+(Qmax-Qmin)/10;
i=i+1 ;
end
%--------------------------last ------------
dd=db(1:j-1);
QQ=QD(1:i-1);
Result=result(1:j-1,1:i-1);
CC=Cc(1:j-1,1:i-1);
Epsil=epsil(1:j-1);
BB=Beta(1:j-1);
PPressloss=Pressloss(1:j-1,1:i-1);
PPresslossCoef=PresslossCoef(1:j-1,1:i-1);
Ccuncertain=Cuncertain(1:j-1,1:i-1);
%------------------------------------------------------------------
CC;
QQ;
Result;
Re;
dd;
PPressloss;
PresslossCoef;
diameteritre=length(dd);
flowiter=length(QQ);
length(CC);
i;
j;
figure('name','Diameter versus Discharge coefficient')
for ii=1:i-1
plot(dd*100/2.54,CC(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
b(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on
end
legend(b);
xlabel({'Diameter'})
ylabel({'Discharge coefficient'})
figure('nam', 'Diameter versus (Qideal-Qactual)')
for ii=1:i-1
plot(dd*100/2.54,Result(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
plot(dd*100/2.54,0,'--rs')
xlabel({'Diameter'})
ylabel({'(Qideal-Qactual)'})
figure('nam', 'Diameter versus Pressure loss')
for ii=1:i-1
plot(dd*100/2.54,PPressloss(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
% plot(dd*100/2.54,0,'--rs')
% ----
xlabel({'Diameter'})
ylabel({'Pressure loss'})
figure('nam', 'Diameter versus Pressure loss Coeficient')
for ii=1:i-1
plot(dd*100/2.54,PPresslossCoef(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
xlabel({'Diameter'})
ylabel({'Pressure loss Coeficient'})
figure('nam', 'Diameter versus uncertainity of discharge coefficient')
for ii=1:i-1
plot(dd*100/2.54,Ccuncertain(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient'})
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure('name', 'Diameter versus Error and uncertainity of discharge coefficient')
Beta
i=1;
error=10;
d(i)=dmin; % Guss 1
db=d(i);
Beta=db/D;
M2=2*L2/(1-Beta);
Pratio=(P2-101325)/(P-101325);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
% epsil(j)=1;
RRe=4*Q/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
end
F(1)=Q- epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
subplot(2,1,1)
plot(db*100/2.54,error,'*')
hold on
xlabel({'Diameter'})
ylabel({'Error'})
subplot(2,1,2)
plot(db*100/2.54,Cuncertain,'*')
hold on
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient%'})
d(2)=dmax; % Guss2
db=d(2);
Beta=db/D;
M2=2*L2/(1-Beta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*Q/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
end
F(2)=Q - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
subplot(2,1,1)
plot(db*100/2.54,error,'*')
hold on
xlabel({'Diameter'})
ylabel({'Error'})
subplot(2,1,2)
plot(db*100/2.54,Cuncertain,'*')
hold on
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient%'})
% figure('name', 'Diameter versus Error and uncertainity of discharge coefficient')
i=2;
while error>0.0001
d(i+1)=d(i)-F(i)*(d(i)-d(i-1))/(F(i)-F(i-1));
db=d(i+1);
Beta=db/D
M2=2*L2/(1-Beta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*Q/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
end
F(i+1)=Q - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
error= abs(d(i)-d(i-1));
i=i+1;
subplot(2,1,1)
plot(db*100/2.54,error,'*')
hold on
xlabel({'Diameter'})
ylabel({'Error'})
subplot(2,1,2)
plot(db*100/2.54,Cuncertain,'*')
hold on
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient%'})
end
RRe
db
CALCULATION_ERROR=error
Pressloss=(sqrt(1-Beta^4*(1-(Ccc)^2))-Ccc*Beta^2)/(sqrt(1-Beta^4*(1-(Ccc)^2))+Ccc*Beta^2)*DeltaP;
PresslossCoef=(sqrt((1-Beta^4*(1-Ccc^2))/(Ccc*Beta^2))-1)^2;
volumeflow=epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density)*3600;
ORIFICEDIAMETER_in=db*100/2.54
BETA_RATIO=Beta
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check uncertainity for calculated beta in different Q
figure('name', 'Diameter versus uncertainity of discharge coefficient for constant calculated Beta in different Q')
M2=2*L2/(1-Beta);
QD=Qmin;
while QD<=Qmax
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QD/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
FF=QD - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
QD=QD+(Qmax-Qmin)/10;
subplot(2,1,1)
plot(QD*3600,FF,'*')
hold on
xlabel({'FLOW'})
ylabel({'Error'})
subplot(2,1,2)
plot(QD*3600,Cuncertain,'*')
hold on
xlabel({'FLOW'})
ylabel({'uncertainity of discharge coefficient%'})
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check uncertainity diffrent beta for constant flow
figure('name', 'Diameter versus uncertainity of discharge coefficient for constant calculated Beta in different Q')
QD=volumeflow;
dd=dmin;
while dd<=dmax
Beta=dd/D;
M2=2*L2/(1-Beta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QD/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
FF=QD - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
dd=dd+(dmax-dmin)/10;
plot(dd*100/2.54,Cuncertain,'marker','^')
hold on
xlabel({'diameter'})
ylabel({'uncertainity of discharge coefficient%'})
end
end
function FindOrificeBoreSizewithsecant
clc
clear all
% global D density v DeltaP l1 l2 Q kk P L1 L2
D = input ('D[=]in=')
if isempty(D)
D=6
end
D=D*2.54/100; % m
disp('Please type the fluid type gas or liquid ')
disp('If you dont identify the fluid type the defult fluid is liquid ')
fluid= input ('fluid(gas or liquid)=')
if isempty(fluid)
disp('Defult fluid is liquid ')
fluid= 'liquid'
else
Z= input ('Z factor=')
end
T= input ('Temperature[=]K =')
if isempty(T)
T=292 % [=] K
end
P= input(' input pressure[=]atm=')
if isempty(P)
switch fluid
case 'gas'
P=24 % [=] bar
case 'liquid'
P=5 % [=] bar
end% [=] bar
end
P=P*101325; % [=] pa
DeltaP= input(' alowable DeltaP[=]mH2O=')
if isempty(DeltaP)
DeltaP=2.5 %[=] m H2O
end
DeltaP=DeltaP*101325/10; % [=] pa
Qv = input ('Q[=]m3/hr=')
if isempty(Qv)
switch fluid
case 'gas'
Qmax=pi*D^2/4*15; % velocity = 15[=] m3/s
Qmin=pi*D^2/4*10; % Velocity = 10 [=] m3/s
Qv=(Qmax+Qmin)/2*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv % [=] m3/hr
%%%%%%%%%%%%%%%% for gas %%%%%%%%%%
disp('fluid flow [=] MMSCFD')
Qst=288*P*Qv/(Z*101325*T)*24*35.3146667*1e-6 % MMSCFD
Qmaxst=288*P*Qmax/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
Qminst=288*P*Qmin/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
case 'liquid'
Qmax=pi*D^2/4*3; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*0.5; % Velocity = 1 [=] m3/s
Qv=(Qmax+Qmin)/2*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv
end
else
switch fluid
case 'gas'
Qmax=pi*D^2/4*15; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*10; % Velocity = 1 [=] m3/s
disp('fluid flow [=] m3/hr')
Qperhour=Qv % [=] m3/hr
disp('fluid flow [=] MMSCFD')
Qst=288*P*Qv/(Z*101325*T)*24*35.3146667*1e-6 % MMSCFD
Qmaxst=288*P*Qmax/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
Qminst=288*P*Qmin/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
case 'liquid'
Qmax=pi*D^2/4*3; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*0.5; % Velocity = 1 [=] m3/s
disp('fluid flow [=] m3/hr')
Qperhour=Qv
end
end
Q=Qv/3600; % [=] m3/s
density= input ('density[=]kg/m3=')
if isempty(density)
switch fluid
case 'gas'
density=18.7 % [=] kg/m3
case 'liquid'
density=840 % [=] kg/m3
end
end
viscosity= input ('viscosity[=]cpoise=')
if isempty(viscosity)
switch fluid
case 'gas'
viscosity=1.172e-2 % [=] cpoise
case 'liquid'
viscosity=0.63 % [=] cpoise
end
end
viscosity=viscosity/100*0.1 % [=]kg/m.s
dynamic_viscosity=viscosity/density;
v=dynamic_viscosity % [=] m2/s
% d0= input( 'guss orifice bore [=] in =')
% if isempty(d0)
% dmin=0.1*D % [=] m
% dmax=0.75*D % [=] m
% d0=(dmin+dmax)/2 % [=] m
% end
% d0=d0*2.54/100; % m
kk= input( 'Cp/Cv=')
if isempty(kk)
switch fluid
case 'gas'
kk=1.36
case 'liquid'
kk=1.007
end
end
disp('please identify tapping type , corner tapping (1), flange tapping (2), D and D/2 tapping (3)')
tapping= input ('tapping=')
if isempty(tapping)
tapping= 1;
end
switch tapping
case 1
L1=0
L2=0
case 2
L1=0.0254/D
L2=0.0254/D
case 3
L1=1
L2=0.47
end
dmin=0.1*D % [=] m
dmax=0.75*D % [=] m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ReD=4*Q/(v*D*pi);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% plot %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp ('uncertainity expansibility factor (epsil)')
uncertainityexpanfactor=3.5*DeltaP/(kk*P)
P2=P-DeltaP;
i=1;
QD(i)=Qmin;
while QD(i)<=Qmax
j=1;
db(j)=dmin;
while db(j)<=dmax
Beta(j)=db(j)/D;
M2=2*L2/(1-Beta(j));
Pratio=(P2-101325)/(P-101325);
if Pratio < 0.75
epsil(j)=1;
else
epsil(j)=1-(0.351 + 0.256 *Beta(j)^4 +0.93*Beta(j)^8)*(1-(P2/P)^(1/kk));
end
% epsil(j)=1;
Re(i)=4*QD(i)/(v*D*pi);
A=(19000*Beta(j)/Re(i))^0.8;
if D<0 .0712="" p=""> Cc(j,i)= 0.5961+ 0.0261*Beta(j)^2- 0.216*Beta(j)^8 + 0.000521* (1e6*Beta(j)/Re(i))^0.7 + (0.0188 +0.0063*A)*(1e6/Re(i))^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta(j)^4/(1-Beta(j)^4)-0.031*(M2-0.8*M2^1.1)*Beta(j)^1.3;
if Beta(j)>=0.1 && Beta(j) <0 .2="" p=""> Cuncertain(j,i)=(0.7-Beta(j))+0.9*(0.75-Beta(j))*(2.8-D/25.4);
elseif Beta(j)>=0.2 && Beta(j)<=0.6
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=0.5+0.9*(0.75-Beta(j))*(2.8-D/25.4)+0.5;
else
Cuncertain(j,i)=0.5+0.9*(0.75-Beta(j))*(2.8-D/25.4);
end
elseif Beta(j)>=0.6 && Beta(j)<=0.75
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.9*(0.75-Beta(j))*(2.8-D/25.4)+0.5;
else
Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.9*(0.75-Beta(j))*(2.8-D/25.4);
end
elseif Beta(j)>0.75
Cuncertain(j,i)=1;
end
else
Cc(j,i)=0.5961+ 0.0261*Beta(j)^2- 0.216*Beta(j)^8 + 0.000521* (1e6*Beta(j)/Re(i))^0.7 + (0.0188 +0.0063*A)*(1e6/Re(i))^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta(j)^4/(1-Beta(j)^4)-0.031*(M2-0.8*M2^1.1)*Beta(j)^1.3 +0.011*(0.75-Beta(j))*(2.8-(D)/0.0254); % D shod be mm
if Beta(j)>=0.1 && Beta(j) <0 .2="" p=""> Cuncertain(j,i)=(0.7-Beta(j));
elseif Beta(j)>=0.2 && Beta(j)<=0.6
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=0.5+0.5;
else
Cuncertain(j,i)=0.5;
end
elseif Beta(j)>=0.6 && Beta(j)<=0.75
if Beta(j) >0.5 && Re(i)<10000 p=""> Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.5;
else
Cuncertain(j,i)=(1.667*Beta(j)-0.5);
end
elseif Beta(j)>0.75
Cuncertain(j,i)=1;
end
end
Pressloss(j,i)=(sqrt(1-Beta(j)^4*(1-(Cc(j,i))^2))-Cc(j,i)*Beta(j)^2)/(sqrt(1-Beta(j)^4*(1-(Cc(j,i))^2))+Cc(j,i)*Beta(j)^2)*DeltaP;
PresslossCoef(j,i)=(sqrt((1-Beta(j)^4*(1-Cc(j,i)^2))/(Cc(j,i)*Beta(j)^2))-1)^2;
result(j,i)= QD(i)-epsil(j)*Cc(j)/(sqrt(1-Beta(j)^4))*pi/4*db(j)^2*sqrt(2*DeltaP/density);
db(j+1)=db(j)+(dmax-dmin)/10;
j=j+1;
end
QD(i+1)=QD(i)+(Qmax-Qmin)/10;
i=i+1 ;
end
%--------------------------last ------------
dd=db(1:j-1);
QQ=QD(1:i-1);
Result=result(1:j-1,1:i-1);
CC=Cc(1:j-1,1:i-1);
Epsil=epsil(1:j-1);
BB=Beta(1:j-1);
PPressloss=Pressloss(1:j-1,1:i-1);
PPresslossCoef=PresslossCoef(1:j-1,1:i-1);
Ccuncertain=Cuncertain(1:j-1,1:i-1);
%------------------------------------------------------------------
CC;
QQ;
Result;
Re;
dd;
PPressloss;
PresslossCoef;
diameteritre=length(dd);
flowiter=length(QQ);
length(CC);
i;
j;
figure('name','Diameter versus Discharge coefficient')
for ii=1:i-1
plot(dd*100/2.54,CC(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
b(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on
end
legend(b);
xlabel({'Diameter'})
ylabel({'Discharge coefficient'})
figure('nam', 'Diameter versus (Qideal-Qactual)')
for ii=1:i-1
plot(dd*100/2.54,Result(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
plot(dd*100/2.54,0,'--rs')
xlabel({'Diameter'})
ylabel({'(Qideal-Qactual)'})
figure('nam', 'Diameter versus Pressure loss')
for ii=1:i-1
plot(dd*100/2.54,PPressloss(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
% plot(dd*100/2.54,0,'--rs')
% ----
xlabel({'Diameter'})
ylabel({'Pressure loss'})
figure('nam', 'Diameter versus Pressure loss Coeficient')
for ii=1:i-1
plot(dd*100/2.54,PPresslossCoef(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
xlabel({'Diameter'})
ylabel({'Pressure loss Coeficient'})
figure('nam', 'Diameter versus uncertainity of discharge coefficient')
for ii=1:i-1
plot(dd*100/2.54,Ccuncertain(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient'})
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure('name', 'Diameter versus Error and uncertainity of discharge coefficient')
Beta
i=1;
error=10;
d(i)=dmin; % Guss 1
db=d(i);
Beta=db/D;
M2=2*L2/(1-Beta);
Pratio=(P2-101325)/(P-101325);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
% epsil(j)=1;
RRe=4*Q/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
end
F(1)=Q- epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
subplot(2,1,1)
plot(db*100/2.54,error,'*')
hold on
xlabel({'Diameter'})
ylabel({'Error'})
subplot(2,1,2)
plot(db*100/2.54,Cuncertain,'*')
hold on
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient%'})
d(2)=dmax; % Guss2
db=d(2);
Beta=db/D;
M2=2*L2/(1-Beta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*Q/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
end
F(2)=Q - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
subplot(2,1,1)
plot(db*100/2.54,error,'*')
hold on
xlabel({'Diameter'})
ylabel({'Error'})
subplot(2,1,2)
plot(db*100/2.54,Cuncertain,'*')
hold on
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient%'})
% figure('name', 'Diameter versus Error and uncertainity of discharge coefficient')
i=2;
while error>0.0001
d(i+1)=d(i)-F(i)*(d(i)-d(i-1))/(F(i)-F(i-1));
db=d(i+1);
Beta=db/D
M2=2*L2/(1-Beta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*Q/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
end
F(i+1)=Q - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
error= abs(d(i)-d(i-1));
i=i+1;
subplot(2,1,1)
plot(db*100/2.54,error,'*')
hold on
xlabel({'Diameter'})
ylabel({'Error'})
subplot(2,1,2)
plot(db*100/2.54,Cuncertain,'*')
hold on
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient%'})
end
RRe
db
CALCULATION_ERROR=error
Pressloss=(sqrt(1-Beta^4*(1-(Ccc)^2))-Ccc*Beta^2)/(sqrt(1-Beta^4*(1-(Ccc)^2))+Ccc*Beta^2)*DeltaP;
PresslossCoef=(sqrt((1-Beta^4*(1-Ccc^2))/(Ccc*Beta^2))-1)^2;
volumeflow=epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density)*3600;
ORIFICEDIAMETER_in=db*100/2.54
BETA_RATIO=Beta
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check uncertainity for calculated beta in different Q
figure('name', 'Diameter versus uncertainity of discharge coefficient for constant calculated Beta in different Q')
M2=2*L2/(1-Beta);
QD=Qmin;
while QD<=Qmax
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QD/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
FF=QD - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
QD=QD+(Qmax-Qmin)/10;
subplot(2,1,1)
plot(QD*3600,FF,'*')
hold on
xlabel({'FLOW'})
ylabel({'Error'})
subplot(2,1,2)
plot(QD*3600,Cuncertain,'*')
hold on
xlabel({'FLOW'})
ylabel({'uncertainity of discharge coefficient%'})
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check uncertainity diffrent beta for constant flow
figure('name', 'Diameter versus uncertainity of discharge coefficient for constant calculated Beta in different Q')
QD=volumeflow;
dd=dmin;
while dd<=dmax
Beta=dd/D;
M2=2*L2/(1-Beta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *Beta^4 +0.93*Beta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QD/(v*D*pi);
A=(19000*Beta/RRe)^0.8;
if D<0 .0712="" p=""> Ccc= 0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3;
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta)+0.9*(0.75-Beta)*(2.8-D/25.4);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*Beta-0.5)+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
else
Ccc=0.5961+ 0.0261*Beta^2- 0.216*Beta^8 + 0.000521* (1e6*Beta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*Beta^1.3 +0.011*(0.75-Beta)*(2.8-(D)/0.0254); % D shod be mm
if Beta>=0.1 && Beta <0 .2="" p=""> Cuncertain=(0.7-Beta);
elseif Beta>=0.2 && Beta<=0.6
if Beta >0.5 && RRe<10000 p=""> Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif Beta>=0.6 && Beta<=0.75
if Beta >0.5 && RRe<10000 p=""> Cuncertain=(1.667*Beta-0.5)+0.5;
else
Cuncertain=(1.667*Beta-0.5);
end
elseif Beta>0.75
disp('Beta is more than 0.75')
end
FF=QD - epsil*Ccc/(sqrt(1-Beta^4))*pi/4*db^2*sqrt(2*DeltaP/density); % [=] m3/s
dd=dd+(dmax-dmin)/10;
plot(dd*100/2.54,Cuncertain,'marker','^')
hold on
xlabel({'diameter'})
ylabel({'uncertainity of discharge coefficient%'})
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%
function Findorificeflowratewithsecant
clc
clear all
% global D density v DeltaP l1 l2 Q kk P L1 L2
D = input ('D[=]in=')
if isempty(D)
D=6
end
D=D*2.54/100; % m
disp('Please type the fluid type gas or liquid ')
disp('If you dont identify the fluid type the defult fluid is liquid ')
fluid= input ('fluid(gas or liquid)=')
if isempty(fluid)
disp('Defult fluid is liquid ')
fluid= 'liquid'
else
Z= input ('Z factor=')
end
disp('Beta should be less than 0.75')
BBeta=input( 'orifice bore Ratio =')
if isempty(BBeta)
BBeta=0.6
end
d= BBeta*D
dinch=d*100/2.54 %m
T= input ('Temperature[=]K =')
if isempty(T)
T=292 % [=] K
end
P= input(' input pressure[=]bar=')
if isempty(P)
switch fluid
case 'gas'
P=24 % [=] bar
case 'liquid'
P=5 % [=] bar
end% [=] bar
end
P=P*101325; % [=] pa
DeltaP= input(' alowable DeltaP[=]mH2O=')
if isempty(DeltaP)
DeltaP=2.5 %[=] m H2O
end
DeltaP=DeltaP*101325/10; % [=] pa
switch fluid
case 'gas'
Qmax=pi*D^2/4*50; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*2; % Velocity = 1 [=] m3/s
Qv=(Qmax+Qmin)/2*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv % [=] m3/hr
disp('fluid flow [=] MMSCFD')
Qst=288*P*Qv/(Z*101325*T)*24*35.3146667*1e-6 % MMSCFD
Qmaxst=288*P*Qmax/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
Qminst=288*P*Qmin/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
case 'liquid'
Qmax=pi*D^2/4*5; % velocity = 3 [=] m3/s
Qmin=pi*D^2/4*0.5; % Velocity = 1 [=] m3/s
Qv=(Qmax+Qmin)/2*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv
end
Q0=Qv/3600; % [=] m3/s
density= input ('density[=]kg/m3=')
if isempty(density)
switch fluid
case 'gas'
density=18.7 % [=] kg/m3
case 'liquid'
density=840 % [=] kg/m3
end
end
viscosity= input ('viscosity[=]cpoise=')
if isempty(viscosity)
switch fluid
case 'gas'
viscosity=1.172e-2 % [=] cpoise
case 'liquid'
viscosity=0.63 % [=] cpoise
end
end
viscosity=viscosity/100*0.1 % [=]kg/m.s
dynamic_viscosity=viscosity/density;
v=dynamic_viscosity % [=] m2/s
kk= input( 'Cp/Cv=')
if isempty(kk)
switch fluid
case 'gas'
kk=1.36
case 'liquid'
kk=1.007
end
end
disp('please identify tapping type , corner tapping (1), flange tapping (2), D and D/2 tapping (3)')
tapping= input ('tapping=')
if isempty(tapping)
tapping= 1;
end
switch tapping
case 1
L1=0
L2=0
case 2
L1=0.0254/D
L2=0.0254/D
case 3
L1=1
L2=0.47
end
dmin=0.1*D % [=] m
dmax=0.8*D % [=] m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ReD=4*Q/(v*D*pi);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% plot %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp ('uncertainity expansibility factor (epsil)')
uncertainityexpanfactor=3.5*DeltaP/(kk*P)
P2=P-DeltaP;
i=1;
QD(i)=Qmin;
while QD(i)<=Qmax
j=1;
db(j)=dmin;
while db(j)<=dmax
Beta(j)=db(j)/D;
M2=2*L2/(1-Beta(j));
Pratio=(P2-101325)/(P-101325);
if Pratio < 0.75
epsil(j)=1;
else
epsil(j)=1-(0.351 + 0.256 *Beta(j)^4 +0.93*Beta(j)^8)*(1-(P2/P)^(1/kk));
end
% epsil(j)=1;
Re(i)=4*QD(i)/(v*D*pi);
A=(19000*Beta(j)/Re(i))^0.8;
if D<0 .0712="" div="">
Cc(j,i)= 0.5961+ 0.0261*Beta(j)^2- 0.216*Beta(j)^8 + 0.000521* (1e6*Beta(j)/Re(i))^0.7 + (0.0188 +0.0063*A)*(1e6/Re(i))^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta(j)^4/(1-Beta(j)^4)-0.031*(M2-0.8*M2^1.1)*Beta(j)^1.3;
if Beta(j)>=0.1 && Beta(j) <0 .2="" div="">
Cuncertain(j,i)=(0.7-Beta(j))+0.9*(0.75-Beta(j))*(2.8-D/25.4);
elseif Beta(j)>=0.2 && Beta(j)<=0.6
if Beta(j) >0.5 && Re(i)<10000 div="">
Cuncertain(j,i)=0.5+0.9*(0.75-Beta(j))*(2.8-D/25.4)+0.5;
else
Cuncertain(j,i)=0.5+0.9*(0.75-Beta(j))*(2.8-D/25.4);
end
elseif Beta(j)>=0.6 && Beta(j)<=0.75
if Beta(j) >0.5 && Re(i)<10000 div="">
Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.9*(0.75-Beta(j))*(2.8-D/25.4)+0.5;
else
Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.9*(0.75-Beta(j))*(2.8-D/25.4);
end
elseif Beta(j)>0.75
Cuncertain(j,i)=1;
end
else
Cc(j,i)=0.5961+ 0.0261*Beta(j)^2- 0.216*Beta(j)^8 + 0.000521* (1e6*Beta(j)/Re(i))^0.7 + (0.0188 +0.0063*A)*(1e6/Re(i))^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*Beta(j)^4/(1-Beta(j)^4)-0.031*(M2-0.8*M2^1.1)*Beta(j)^1.3 +0.011*(0.75-Beta(j))*(2.8-(D)/0.0254); % D shod be mm
if Beta(j)>=0.1 && Beta(j) <0 .2="" div="">
Cuncertain(j,i)=(0.7-Beta(j));
elseif Beta(j)>=0.2 && Beta(j)<=0.6
if Beta(j) >0.5 && Re(i)<10000 div="">
Cuncertain(j,i)=0.5+0.5;
else
Cuncertain(j,i)=0.5;
end
elseif Beta(j)>=0.6 && Beta(j)<=0.75
if Beta(j) >0.5 && Re(i)<10000 div="">
Cuncertain(j,i)=(1.667*Beta(j)-0.5)+0.5;
else
Cuncertain(j,i)=(1.667*Beta(j)-0.5);
end
elseif Beta(j)>0.75
Cuncertain(j,i)=1;
end
end
Pressloss(j,i)=(sqrt(1-Beta(j)^4*(1-(Cc(j,i))^2))-Cc(j,i)*Beta(j)^2)/(sqrt(1-Beta(j)^4*(1-(Cc(j,i))^2))+Cc(j,i)*Beta(j)^2)*DeltaP;
PresslossCoef(j,i)=(sqrt((1-Beta(j)^4*(1-Cc(j,i)^2))/(Cc(j,i)*Beta(j)^2))-1)^2;
result(j,i)= QD(i)-epsil(j)*Cc(j)/(sqrt(1-Beta(j)^4))*pi/4*db(j)^2*sqrt(2*DeltaP/density);
db(j+1)=db(j)+(dmax-dmin)/10;
j=j+1;
end
QD(i+1)=QD(i)+(Qmax-Qmin)/10;
i=i+1 ;
end
%--------------------------last ------------
dd=db(1:j-1);
QQ=QD(1:i-1);
Result=result(1:j-1,1:i-1);
CC=Cc(1:j-1,1:i-1);
Epsil=epsil(1:j-1);
BB=Beta(1:j-1);
PPressloss=Pressloss(1:j-1,1:i-1);
PPresslossCoef=PresslossCoef(1:j-1,1:i-1);
Ccuncertain=Cuncertain(1:j-1,1:i-1);
%------------------------------------------------------------------
CC;
QQ;
Result;
Re;
dd;
PPressloss;
PresslossCoef;
diameteritre=length(dd);
flowiter=length(QQ);
length(CC);
i;
j;
figure('name','Diameter versus Discharge coefficient')
for ii=1:i-1
plot(dd*100/2.54,CC(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
b(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on
end
legend(b);
xlabel({'Diameter'})
ylabel({'Discharge coefficient'})
figure('nam', 'Diameter versus (Qideal-Qactual)')
for ii=1:i-1
plot(dd*100/2.54,Result(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
plot(dd*100/2.54,0,'--rs')
xlabel({'Diameter'})
ylabel({'(Qideal-Qactual)'})
figure('nam', 'Diameter versus Pressure loss')
for ii=1:i-1
plot(dd*100/2.54,PPressloss(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
% plot(dd*100/2.54,0,'--rs')
% ----
xlabel({'Diameter'})
ylabel({'Pressure loss'})
figure('nam', 'Diameter versus Pressure loss Coeficient')
for ii=1:i-1
plot(dd*100/2.54,PPresslossCoef(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
xlabel({'Diameter'})
ylabel({'Pressure loss Coeficient'})
figure('nam', 'Diameter versus uncertainity of discharge coefficient')
for ii=1:i-1
plot(dd*100/2.54,Ccuncertain(:,ii),'linestyle','-','marker','^','markeredgecolor',[rand(1,3)],'markersize',5)
a(1,ii)={['qq=',num2str(QQ(ii)*3600)]};
hold on;
end
legend(a)
xlabel({'Diameter'})
ylabel({'uncertainity of discharge coefficient'})
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure('name', 'Diameter versus Error and uncertainity of discharge coefficient')
i=1;
d
error=10;
switch fluid
case 'gas'
Q(1)=pi*D^2/4*5; % Guss 1
case 'liquid'
Q(1)=pi*D^2/4*0.5; % Guss 1
end
QB=Q(i);
M2=2*L2/(1-BBeta);
Pratio=(P2-101325)/(P-101325);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *BBeta^4 +0.93*BBeta^8)*(1-(P2/P)^(1/kk));
end
% epsil(j)=1;
RRe=4*QB/(v*D*pi);
A=(19000*BBeta/RRe)^0.8;
if D<0 .0712="" div="">
Cc= 0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3;
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta)+0.9*(0.75-BBeta)*(2.8-D/25.4);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
else
Cc=0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3 +0.011*(0.75-BBeta)*(2.8-(D)/0.0254); % D shod be mm
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.5;
else
Cuncertain=(1.667*BBeta-0.5);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
end
F(1)=Q(i)- epsil*Cc/(sqrt(1-BBeta^4))*pi/4*d^2*sqrt(2*DeltaP/density); % [=] m3/s
subplot(2,1,1)
plot(QB*3600,error,'*')
hold on
xlabel({'FLOW'})
ylabel({'Error'})
subplot(2,1,2)
plot(QB*3600,Cuncertain,'*')
hold on
xlabel({'FLOW'})
ylabel({'uncertainity of discharge coefficient%'})
switch fluid
case 'gas'
Q(2)=pi*D^2/4*10; % Guss 1
case 'liquid'
Q(2)=pi*D^2/4*1; % Guss 1
end
QB=Q(2);
M2=2*L2/(1-BBeta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *BBeta^4 +0.93*BBeta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QB/(v*D*pi);
A=(19000*BBeta/RRe)^0.8;
if D<0 .0712="" div="">
Cc= 0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-Beta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3;
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta)+0.9*(0.75-BBeta)*(2.8-D/25.4);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
else
Cc=0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3 +0.011*(0.75-BBeta)*(2.8-(D)/0.0254); % D shod be mm
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.5;
else
Cuncertain=(1.667*BBeta-0.5);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
end
F(2)=Q(2) - epsil*Cc/(sqrt(1-BBeta^4))*pi/4*d^2*sqrt(2*DeltaP/density); % [=] m3/s
subplot(2,1,1)
plot(QB*3600,error,'*')
hold on
xlabel({'FLOW'})
ylabel({'Error'})
subplot(2,1,2)
plot(QB*3600,Cuncertain,'*')
hold on
xlabel({'FLOW'})
ylabel({'uncertainity of discharge coefficient%'})
% figure('name', 'Diameter versus Error and uncertainity of discharge coefficient')
i=2;
while error>0.0001
Q(i+1)=Q(i)-F(i)*(Q(i)-Q(i-1))/(F(i)-F(i-1));
QB=Q(i+1);
BBeta
M2=2*L2/(1-BBeta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *BBeta^4 +0.93*BBeta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QB/(v*D*pi);
A=(19000*BBeta/RRe)^0.8;
if D<0 .0712="" div="">
Cc= 0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3;
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta)+0.9*(0.75-BBeta)*(2.8-D/25.4);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
else
Cc=0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3 +0.011*(0.75-BBeta)*(2.8-(D)/0.0254); % D shod be mm
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.5;
else
Cuncertain=(1.667*BBeta-0.5);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
end
F(i+1)=Q(i+1) - epsil*Cc/(sqrt(1-BBeta^4))*pi/4*d^2*sqrt(2*DeltaP/density); % [=] m3/s
error= abs(Q(i)-Q(i-1));
i=i+1;
subplot(2,1,1)
plot(QB*3600,error,'*')
hold on
xlabel({'FLOW'})
ylabel({'Error'})
subplot(2,1,2)
plot(QB*3600,Cuncertain,'*')
hold on
xlabel({'FLOW'})
ylabel({'uncertainity of discharge coefficient%'})
end
CALCULATION_ERROR=error;
Pressloss=(sqrt(1-BBeta^4*(1-(Cc)^2))-Cc*BBeta^2)/(sqrt(1-BBeta^4*(1-(Cc)^2))+Cc*BBeta^2)*DeltaP;
PresslossCoef=(sqrt((1-BBeta^4*(1-Cc^2))/(Cc*BBeta^2))-1)^2;
volumeflow=epsil*Cc/(sqrt(1-BBeta^4))*pi/4*d^2*sqrt(2*DeltaP/density)*3600;
ORIFICEDIAMETER_in=d*100/2.54
BETA_RATIO=BBeta
% Flowrate=Q(i-1)
switch fluid
case 'gas'
Qv=QB*3600 ; %[=] m3/hr
disp('fluid flow [=] m3/s')
Qpersecond=QB
disp('fluid flow [=] m3/hr')
Qperhour=Qv % [=] m3/hr
disp('fluid flow [=] MMSCFD')
Qst=288*P*Qv/(Z*101325*T)*24*35.3146667*1e-6 % MMSCFD
Qmaxst=288*P*Qmax/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
Qminst=288*P*Qmin/(Z*101325*T)*24*35.3146667*3600*1e-6 % MMSCFD
case 'liquid'
Qmaxperhour=pi*D^2/4*5*3600 % velocity = 3 [=] m3/hr
Qminperhour=pi*D^2/4*0.5*3600 % Velocity = 1 [=] m3/hr
Qv=QB*3600; %[=] m3/hr
disp('fluid flow [=] m3/hr')
Qperhour=Qv
disp('fluid flow [=] m3/s')
Qpersecond=QB
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check uncertainity for beta in different Q
figure('name', 'Diameter versus uncertainity of discharge coefficient for constant calculated Beta in different Q')
M2=2*L2/(1-BBeta);
QD=Qmin;
while QD<=Qmax
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *BBeta^4 +0.93*BBeta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QD/(v*D*pi);
A=(19000*BBeta/RRe)^0.8;
if D<0 .0712="" div="">
Cc= 0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3;
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta)+0.9*(0.75-BBeta)*(2.8-D/25.4);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
else
Cc=0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3 +0.011*(0.75-BBeta)*(2.8-(D)/0.0254); % D shod be mm
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.5;
else
Cuncertain=(1.667*BBeta-0.5);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
FF=QD - epsil*Cc/(sqrt(1-BBeta^4))*pi/4*d^2*sqrt(2*DeltaP/density); % [=] m3/s
QD=QD+(Qmax-Qmin)/10;
subplot(2,1,1)
plot(QD*3600,FF,'*')
hold on
xlabel({'FLOW'})
ylabel({'Error'})
subplot(2,1,2)
plot(QD*3600,Cuncertain,'*')
hold on
xlabel({'FLOW'})
ylabel({'uncertainity of discharge coefficient%'})
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% check uncertainity diffrent beta for constant flow
figure('name', 'Diameter versus uncertainity of discharge coefficient for constant calculated Beta in different Q')
QD=volumeflow;
dd=dmin;
while dd<=dmax
BBeta=dd/D;
M2=2*L2/(1-BBeta);
if Pratio < 0.75
epsil=1;
else
epsil=1-(0.351 + 0.256 *BBeta^4 +0.93*BBeta^8)*(1-(P2/P)^(1/kk));
end
RRe=4*QD/(v*D*pi);
A=(19000*BBeta/RRe)^0.8;
if D<0 .0712="" div="">
Cc= 0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + (0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3;
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta)+0.9*(0.75-BBeta)*(2.8-D/25.4);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=0.5+0.9*(0.75-Beta)*(2.8-D/25.4);
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4)+0.5;
else
Cuncertain=(1.667*BBeta-0.5)+0.9*(0.75-BBeta)*(2.8-D/25.4);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
else
Cc=0.5961+ 0.0261*BBeta^2- 0.216*BBeta^8 + 0.000521* (1e6*BBeta/RRe)^0.7 + (0.0188 +0.0063*A)*(1e6/RRe)^0.3 + ...
(0.043 + 0.08 *exp(-10*L1)-0.123*exp(-7*L1))*(1-0.11*A)*BBeta^4/(1-BBeta^4)-0.031*(M2-0.8*M2^1.1)*BBeta^1.3 +0.011*(0.75-BBeta)*(2.8-(D)/0.0254); % D shod be mm
if BBeta>=0.1 && BBeta <0 .2="" div="">
Cuncertain=(0.7-BBeta);
elseif BBeta>=0.2 && BBeta<=0.6
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=0.5+0.5;
else
Cuncertain=0.5;
end
elseif BBeta>=0.6 && BBeta<=0.75
if BBeta >0.5 && RRe<10000 div="">
Cuncertain=(1.667*BBeta-0.5)+0.5;
else
Cuncertain=(1.667*BBeta-0.5);
end
elseif BBeta>0.75
disp('Beta is more than 0.75')
end
FF=QD - epsil*Cc/(sqrt(1-BBeta^4))*pi/4*d^2*sqrt(2*DeltaP/density); % [=] m3/s
dd=dd+(dmax-dmin)/10;
plot(dd*100/2.54,Cuncertain,'marker','^')
hold on
xlabel({'diameter'})
ylabel({'uncertainity of discharge coefficient%'})
end
end