钢筋混凝土非对称配筋偏心受压截面计算C程序

更新时间:2023-05-20 14:08:05 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

钢筋混凝土在土木工程中应用非常多,其计算也是比较复杂,本文针对其中的非对称配筋偏心受压截面计算复杂的问题,运用C程序,只需输入各项参数,即可得出相应结果,简单有效。

钢筋混凝土非对称配筋偏心受压截面计算C程序

(说明:1、本程序适用于VC6.0软件,将以下代码复制到VC6.0中运行即可;

2、实际计算时的一些参数的替换:η、ξb、ζ1、ζ2、l0, ei,ea,e0 ,ρmin

分别用n,Eb,g1,g2,L0,ei,ea,e0,Pmin表示;as',fy'分别用as1,fy1表示;

3、本程序属原创,如转载或另发表,请予以说明。另:本程序有当中还有诸多不足,由于水平有限,还请谅解。)

#include<stdio.h>

#include<math.h>

void main()

{

double

M,Nj,Nu,L0,b,h,h0,as,as1,fc,fy,fy1,As,As1,Pmin,Eb,e0,ei,e,e1,ea,n,g1,g2,x; double sum,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9;

printf("please enter M,Nj,b,h,as,as1,fc,fy,fy1,As,As1,Eb,L0:");

scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",&M,&Nj,&b,&h,&fc,&fy,&fy1,&As,&As1,&Eb,&L0);

as=35;

as1=35;

Pmin=0.002;

h0=h-as;

if(h<=600) ea=20;

else ea=h/30;

g1=0.5*fc*b*h/Nj;

if(g1>1) g1=1;

g2=1.15-0.01*L0/h;

if(g2>1) g2=1;

if(M==0)

/*已知Nj,求Mu*/

{

x=(Nj+fy*As-fy1*As1)/(fc*b);

if(x<=2*as1) x=2*as1;

if(x>Eb*h0)

x=(Nj-fy1*As1-(0.8*fy*As/(Eb-0.8)))/(fc*b-fy*As/(h0*(Eb-0.8))); if(x>h) x=h;

e=(fc*b*x*(h0-0.5*x)+fy1*As1*(h0-as1))/Nj;

ei=e+as-h/2-h0*L0*L0*g1*g2/(1400*h*h);

M=(ei-ea)*Nj;

printf("x=%lf\n",x);

钢筋混凝土在土木工程中应用非常多,其计算也是比较复杂,本文针对其中的非对称配筋偏心受压截面计算复杂的问题,运用C程序,只需输入各项参数,即可得出相应结果,简单有效。

printf("Mu=%f\n",M);

}

else

{

e0=M/Nj;

ei=e0+ea;

n=1+h0*L0*L0*g1*g2/(1400*ei*h*h);

e=n*ei+h/2-as;

if(n*ei>0.3*h0)

/*大偏心受压*/

{

printf("large\n");

e1=n*ei-h/2+as1;

if(As==0)

{

if(As1==0)

/*As,As1均未知*/

{

x=Eb*h0;

As1=(Nj*e-fc*b*x*(h0-0.5*x))/(fy1*(h0-as1));

if(As1>=Pmin*b*h)

As=(fc*b*x+fy1*As1-Nj)/fy;

else

{

As1=Pmin*b*h;

sum1=h0*h0-2*(Nj*e-fy1*As1*(h0-as1))/(fc*b);

x=h0-pow(sum1,0.5);

if(x<2*as1) x=2*as1;

if(x>Eb*h0)

/*初判错误*/

{

printf("error,small\n");

e1=h/2-n*ei-as1;

sum2=h0*h0-2*(Nj*e-fy1*As*(h0-as1))/(fc*b); if(h0<sum2) x=h0+sum2;

else x=h0-sum2;

if(x>h) x=h;

As=((Nj-fc*x*b-fy1*As1)*(0.8-Eb)+0.8)*h0/(fy*As); }

As=(fc*b*x+fy1*As1-Nj)/fy;

}

}

else

钢筋混凝土在土木工程中应用非常多,其计算也是比较复杂,本文针对其中的非对称配筋偏心受压截面计算复杂的问题,运用C程序,只需输入各项参数,即可得出相应结果,简单有效。

/*As1已知,As未知*/

{

sum=h0*h0-2*(Nj*e-fy1*As1*(h0-as1))/(fc*b);

x=h0-pow(sum,0.5);

if(x<2*as1) x=2*as1;

if(x>Eb*h0)

/*初判错误*/

{

printf("error,small\n");

e1=h/2-n*ei-as1;

sum2=h0*h0-2*(Nj*e-fy1*As*(h0-as1))/(fc*b);

if(h0<sum2) x=h0+sum2;

else x=h0-sum2;

if(x>h) x=h;

printf("x=%lf",x);

As=((Nj-fc*x*b-fy1*As1)*(0.8-Eb)+0.8)*h0/fy; }

printf("x=%lf",x);

As=(fc*b*x+fy1*As1-Nj)/fy;

}

printf("As=%lf\n,As1=%lf\n",As,As1);

}

else

/*As已知,求Nu*/

{

sum3=(e-h0)*(e-h0)-2*(fy1*As1*e1-fy*As*e)/(fc*b);

x=h0-e+pow(sum3,0.5);

if(x<=2*as1) x=2*as1;

printf("x=%lf",x);

if(x<Eb*h0)

Nu=fy1*As1+fc*b*x-fy*As;

else

{

/*小偏心*/

e1=h/2-n*ei-as1;

sum4=h-e+fy*As*e/(fc*b*h0*(Eb-0.8));

sum5=fy1*As1*e1/(fc*b)-fy*As*e*0.8/(fc*b*(Eb-0.8)); sum6=pow(sum4,2)-2*sum5;

sum7=pow(sum6,0.5);

if(sum4>sum7)

x=sum4-sum7;

else

x=sum4+sum7;

if(x>h)

钢筋混凝土在土木工程中应用非常多,其计算也是比较复杂,本文针对其中的非对称配筋偏心受压截面计算复杂的问题,运用C程序,只需输入各项参数,即可得出相应结果,简单有效。

x=h;

printf("x=%lf",x);

Nu=fy1*As1+fc*b*x-fy*As*((x/h0-0.8)/(Eb-0.8)); }

printf("Nu=%f\n",Nu);

if(Nu>=Nj)

printf("Nu>=Nj,safe\n");

else

printf("Nu<Nj,danger\n");

}

}

else

/*小偏心受压*/

{

printf("small\n");

e1=h/2-n*ei-as1;

if(As1==0)

{

if(As==0)

As=Pmin*b*h;

sum8=fy*As*(h0-as1)/(fc*b*h0*(Eb-0.8))+as1; sum9=0.8*fy*As*(h0-as1)/((Eb-0.8)*fc*b)-Nj*e1/(fc*b); sum=sum8*sum8-2*sum9;

x=sum8+pow(sum,0.5);

if(x<=Eb*h0)

/*初判错误*/

{

printf("error,large\n");

e1=n*ei-h/2+as1;

sum9=as1*as1+(fy*As*(h0-as1)-Nj*e1)/fc*b;

x=as1+pow(sum9,0.5);

printf("x=%lf",x);

As1=(Nj+fy*As-fy1*As1)/fy1;

}

printf("x=%lf",x);

As1=(Nj+fy*As*((x/h0-0.8)/(Eb-0.8))-fc*b*x)/fy1; if(As1<Pmin*b*h) As1=Pmin*b*h;

printf("As=%f\nAs1=%f\n",As,As1);

}

else

{

/*As,As1已知,求Nu*/

sum6=e-h0-fy*As*e/(fc*b*h0*(Eb-0.8));

sum7=fy*As*e*0.8/(fc*b*(Eb-0.8))-fy1*As1*e1/(fc*b);

钢筋混凝土在土木工程中应用非常多,其计算也是比较复杂,本文针对其中的非对称配筋偏心受压截面计算复杂的问题,运用C程序,只需输入各项参数,即可得出相应结果,简单有效。

sum8=sum6*sum6-2*sum7;

sum9=pow(sum8,0.5);

x=-sum6+sum9;

if(x>h)

x=h;

printf("x=%lf\n",x);

if(x<=Eb*h0)

{

/*初判错误*/

printf("error,large\n");

sum5=(e-h)*(e-h)-2*(fy1*As1*e1-fy*As*e)/(fc*b); x=h-e-pow(sum5,0.5);

if(x<=2*as1) x=2*as1;

Nu=fy1*As1+fc*b*x-fy*As;

}

Nu=fy1*As1+fc*b*x-fy*As*((x/h0-0.8)/(Eb-0.8)); printf("Nu=%f\n",Nu);

if(Nu>=Nj)

printf("Nu>=Nj,safe\n");

else

printf("Nu<Nj,danger\n");

}

}

}

}

本文来源:https://www.bwwdw.com/article/cy44.html

Top