当前位置:文档之家› 混凝土结构M-N关系图计算机数值分析C++编程

混凝土结构M-N关系图计算机数值分析C++编程

练习2:一、题目钢筋混凝土矩形截面:b=300mm ,h=600mm ,h 0=560mm ,a s ’=25mm ,a s =40mm ,A s ’=157mm2,A s =804mm2,f y ’=280MPa ,f y =280MPa ,E s =200GPa ,E c =25.5GPa ,f c =13.4MPa ,f t =1.54MPa ,ε0=0.002,εcu =0.0038,εs u ≤10%=0.10。

.利用数值方法计算截面的M~N 关系,并附简化计算结果N u 。

b=300mm2Φ10h=600mm4Φ16二、简单分析:本次作业是在上一次作业的基础上继续进行其他计算。

主要任务是利用计算机软件来计算特定截面偏心受压情况下的纵向压力与弯矩的关系。

可参考第一次作业的程序,做适当的修改即可。

混凝土应力—应变曲线采用的是R üsch 建议的曲线。

曲线的上升段采用抛物线形式,下降段为斜直线。

R üsch 建议的曲线:当0εε≤时,'2002[()]c cf εεσεε=-当0cu εεε<≤时,'c c f σ=根据《高等钢筋混凝土结构学》提供的公式: 由平衡条件:0N =∑,0M =∑可知,''0()()d x c ci s s s sN b y y A A σεσσ=+-⎰0'''00000()()()(+)d ()x s c ci i s s s N e y b y h x y y A h a σεσ+=-+-⎰对于离纵向力较远钢筋应力的取值可参照以下情况:平衡破坏:即受压边缘混凝土应变恰好达到极限应变时,受拉钢筋刚好达到屈服强度280MPa 。

受拉破坏:荷载偏心较大时,钢筋先屈服(达到280MPa ),经过一个过程后,混凝土达到极限压应变。

受压破坏:荷载偏心较小时,构件产生受压破坏。

受压破坏是指受压较大一侧的混凝土达到极限压应变,而离纵向力较远一侧的钢筋可能受拉或者受压但都不屈服。

此时钢筋应力可用以下代替:(1)s s s cu sh E E x σεε==-轴心受压时,e0=0,全截面受压且破坏时压应变均为0.0038,两侧钢筋均受压屈服,代入上式中可以得到'''13.43006002801572808072681.92c s y s y N b h A f A f kNσ=⨯⨯+⨯+⨯=⨯⨯+⨯+⨯='''00()()2242.60c s y s s h b h h A f h a y Nmmσ⨯⨯⨯-+⨯⨯-==. 由c++最终计算的数据所得到的N-M 图如下图所示。

计算出来的纯弯弯矩为近似等于121.731kN·m与手算结果120.89kN·m结果吻合。

实际上c++计算时,得到的轴心受压极限纵向力以及纯弯的极限弯矩其分别对应的弯矩和纵向力并不为0,只是值很小接近0。

所以这种计算只是近似计算。

x的步长越小所得的结果就越精确。

平衡破坏时,弯矩为266.485kN·m,纵向压力为1068.62kN。

轴压破坏时极限压力为2683.49kN与理论计算结果2687.92kN吻合。

三、程序设计#include<iostream>#include<math.h>#include<fstream>using namespace std;int main(){cout<<"设计中As=804mm2,As'=157mm2,fy=280MPa,fy'=280MPa,Es=200GPa,Ec=25.5GPa"<<endl;cout<<endl;cout<<"fc=13.4MPa,ft=1.54MPa,ε0=0.002,εcu=0.0038,εsu<=0.1"<<endl;cout<<endl;//给出题目的基本信息double b,h,as2,as1,x0,c,t,N,h0,x1,q,delta_epsilon_cc,delta_epsilon_cs,p;doublek,epsilon_ss,epsilon_sc,epsilon_cu,sigma_ss,sigma_sc,M,epsilon_c,m0, epsilon_c1,epsilon_cs,epsilon_c2;ofstream outfile;b=300;h=600;as1=40;as2=25; h0=h-as1; epsilon_cu=0.0038;//给出题目相关参数,as1为受拉区的钢筋保护层厚度,as2为受压区钢筋保护层厚度。

outfile.open("data.txt");//建立数据输出文件for(x0=0.0;x0<=10000;x0+=1){epsilon_sc=epsilon_cu/x0*(x0-as2);epsilon_ss=epsilon_cu/x0*(h0-x0 );//根据几何关系求出受压区和受拉区钢筋的应变。

下面可得相应应力sigma_sc=200*epsilon_sc*1000;sigma_ss=200*epsilon_ss*1000;if(sigma_ss>280)sigma_ss=280;if(sigma_ss<-280)sigma_ss=-280;if(sigma_sc>280)sigma_sc=280;p=0.0;m0=0.0;k=0.0;N=0;M=0;if(x0>600)//受压区高度超过梁高情况下应力分布,以及纵向力和弯矩求解{ for(int i=0;i<=1000;i++){ epsilon_c1=600*epsilon_cu/x0;epsilon_c=epsilon_c1*i/1000+epsilon_cu-epsilon_c1;if(epsilon_c<=0.002){k=13.4*(1000*epsilon_c-epsilon_c*epsilon_c/0.000004); }else k=13.4; //求出不同应变时受压区各个位置的压应力大小p=p+k*b*h/1000;m0=m0+k*b*h/1000*(h*(i+0.5)/1000-as1);}//受压区混凝土对离纵向受拉区钢筋取弯矩,不过此时受拉区钢筋也受压N=p+sigma_sc*157-sigma_ss*804;M=m0+sigma_sc*157*(h0-as2)-N*242.60;if(N>=0&&M>=0)//对N和M进行筛选,并存入txt文件里outfile<<N/1000<<" "<<M/1e+06<<endl;//统一成kN,m单位}epsilon_c2=(h-x0)*epsilon_cu/x0;epsilon_cs=1.54/25.5/1000;//受拉混凝土弹性极限应变if(x0<=600)//受压区高度未超过梁高情况应力分布,以及纵向力和弯矩求解{if(epsilon_c2>epsilon_cs)//用来判断是否开裂,此时开裂。

{x1=epsilon_cs*x0/epsilon_cu;for(int i=0;i<=1000;i++){ delta_epsilon_cc=epsilon_cu*(i+0.5)/1000;if(delta_epsilon_cc<=0.002){k=13.4*(1000*delta_epsilon_cc-delta_epsilon_cc*delta_epsilon_cc/0.000004);} else {k=13.4;}//求出不同应变时受压区各个位置的压应力大小delta_epsilon_cs=epsilon_cs*(i+0.5)/1000;q=delta_epsilon_cs*25.5*1000;p=p+k*b*x0/1000-q*b*x1/1000;m0=m0+k*b*x0/1000*(x0*(i+0.5)/1000+h0-x0)-q*b*x1/1000*(-(i+0.5)*x1/ 1000)+h0-x0;}//对纵向受拉钢筋求矩N=p+sigma_sc*157-sigma_ss*804;M=m0+sigma_sc*157*(h0-as2)-N*242.60;if(N>=0&&M>=0)//对N和M进行筛选,并存入txt文件里outfile<<N/1000<<" "<<M/1e+06<<endl;}//统一成kN,m单位if(epsilon_c2<epsilon_cs)//未开裂{for(int i=0;i<=1000;i++){ delta_epsilon_cc=epsilon_cu*(i+0.5)/1000;if(delta_epsilon_cc<=0.002){k=13.4*(1000*delta_epsilon_cc-delta_epsilon_cc*delta_epsilon_cc/0.000004);} else {k=13.4;}//求出不同应变时受压区各个位置的压应力大小delta_epsilon_cs=epsilon_c2*(i+0.5)/1000;q=delta_epsilon_cs*25.5*1000;p=p+k*b*x0/1000-q*b*(h-x0)/1000;m0=m0+k*b*x0/1000*(x0*(i+0.5)/1000+h0-x0)-q*b*(h-x0)/1000*(-(h-x0)* (i+0.5)/1000+h0-x0);}//对受压区受拉区应力零点求弯矩N=p+sigma_sc*157-sigma_ss*804;M=m0+sigma_sc*157*(h0-as2)-N*242.60;}if(N>=0&&M>=0)//对N和M进行筛选,并存入txt文件里outfile<<N/1000<<" "<<M/1e+06<<endl;//统一成kN,m单位}}outfile.close();system("pause");return 0;//程序结束}。

相关主题