|
|
|
ÄÁÅÙÃ÷ | contents |
|
|
½ºÅ͵ð | study |
|
|
|
|
|
|
|
|
BS5500 Vessel Thickness calcuationÁß C factor °è»ê ¾Ë°í¸®Áò |
|
|
±Û¾´ÀÌ : ¿î¿µÀÚ °íÀ¯ID : ¿î¿µÀÚ
³¯Â¥ : 00-00-00 00:00
Á¶È¸ : 11236
|
|
|
BS5500 code¸¦ ÀÌ¿ëÇÑ Flat Endplates ºÎºÐ Vessel sizing½Ã ÇÊ¿äÇÑ
C factor °è»ê ¾Ë°í¸®ÁòÀÔ´Ï´Ù. ÇÊ¿äÇϽŠºÐÀº ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.
* pow(x,y) ÇÔ¼ö´Â x^y ÀÔ´Ï´Ù.
#define Accuracy 0.999
/*******************************************************************
*
* BS5500: 1991
*
* Appendix R basis for calculation of C factor for Flat Endplates
* as per clause 3.5.5.2.1, from Fig 3.5.5(3)
*
* (C) I. W. Bird 17th August 1991
*
*******************************************************************/
double pow(double,double);
double sqrt(double);
double ApdxR_I(double a, double b)
{
double c1, c2;
double a3, ar, sqb;
a3 = a * a * a;
ar = 1.0 / a;
sqb = sqrt(b);
c1 = 2.943 * a3- 3.74 * a + pow(b,1.5) + 0.909 * a * b + 0.385 * b * ar;
c2 = 1.907 * a3 + 4.848 * a + 1.027 * ar +
2.667 * sqb + 5.875 * a * a / sqb;
return 0.5 + c1 / c2;
}
/********************************************************************
*
* This function returns a value of C from graph of Fig 3.5.5.3(c)
* given values of
* ecyl p
* ---- and -
* ecylo f Graphs have been plotted
* to check all possible values
*
********************************************************************/
double Fig3_5_5_3_C(double pf, double EcylEcylo)
{
double c1, c2;
double a2, a3, ar, sqb ,sqbrecip;
double e, Sr, q;
double emin, emax;
double Decyl,Decyl909, Decyl385, De15;
double SrA;
if(EcylEcylo > 5.0) /* Fig 3.5.5.3(c) limits EcylEcylo */
EcylEcylo = 5.0; /* to a maximum value of 5 */
else if(EcylEcylo < 1.0)
return -1.0; /* Error - Cylinder is too thin */
/* for internal pressure */
if(pf <= 0.0)
return -1.0;
else if(pf <1e-5) /* Small No., (insoluble for zero) */
pf = 1e-5;
Decyl = 2/(EcylEcylo * pf); /* Some factors taken out of */
Decyl909 = Decyl * 0.909; /* the loop to speed things up */
Decyl385 = Decyl * 0.385; /* */
sqb = sqrt(Decyl);
sqbrecip = 1.0 / sqb;
sqb *= 2.667;
De15 = pow(Decyl, 1.5);
SrA = Decyl * pf * 0.5 / 2.7; /* Figure limits stress to */
/* 2.7f (see Appdx R) */
/* emax will always be */
emax = 0.9 * sqrt(pf) * Decyl; /* less than this guess */
emin = 0.0;
e = (emax + emin) * 0.5; /* First guess of e */
while(1)
{
a2 = e * e;
a3 = e * a2;
ar = 1.0 / e;
c1 = 2.943*a3 - 3.74*e + De15 + e * Decyl909 + Decyl385 * ar;
c2 = 1.907*a3 + 4.848*e + 1.027*ar + sqb + 5.875 * a2 * sqbrecip;
Sr = (0.5 + c1 / c2) * SrA;
if(Sr <= 1.0 && Sr > Accuracy )
{
q = e * EcylEcylo * sqrt(pf) * 0.5;
if( q < 0.41)
q = 0.41;
return q;
}
if(Sr > 1.0)
emin = e;
else
{
emax = e;
if(emax <= 2 )
return 0.41;
}
e = (emin + emax) * 0.5;
}
}
|
|
|
|