RC混凝土弯矩曲率关系全过程数值分析-C++编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习1:
钢筋混凝土矩形截面:b=300mm,h=600mm,h0=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~Φ关系,并附简化计算结果M u。
2Φ10
h=600mm
4Φ16
将程序计算出的结果导入excel生成如下表格:
图1.纯弯构件截面曲率phi随弯矩M加载曲线
图2.纯弯构件截面受压区高度x0随弯矩M加载曲线
纯弯构件M-phi曲线数值分析程序(C++)
#i#include
#include
#include
#include
using namespace std;
int main()
{cout<<"设计中As=804mm2,As'=157mm2,fy=280MPa,fy'=280MPa,Es=200GPa,Ec=25.5GPa"< cout< cout<<" fc=13.4MPa,ft=1.54MPaε0=0.002,εcu=0.0038,εsu<=0.1"< cout< inti; double b,h,as0,as1,x0,c,t,p1,p2,p3,h0,x01,x02,d,f; double k,k1,k2,ms0,ms1,mc,f1,f2,M,sc,m1,m2,m3,mc1,e1,sc1,sc2,q; ofstreamoutfile; b=300;h=600;as0=40;as1=40; h0=h-as0; //给出题目相关参数 outfile.open("data.txt");//建立数据输出文件 for(mc=0.00000001;mc<=0.0038;mc=mc+0.00001) { x01=0.0;x02=600.0; for(x0=0;;) {x0=0.5*(x01+x02); ms1=mc/x0*(x0-25);ms0=mc/x0*(h0-x0 );//求出钢筋应变 f2=200*ms1*1000;//受压区钢筋应力 f1=200*ms0*1000;//受拉区钢筋应力 if(f1>280) { f1=280;} if(f1<-280) {f2=-280;} if(f2>280) {f2=280;}//εsu<=0.1是达不到的,必定小于0.1 p1=0.0;m1=0.0; p2=0.0;m2=0.0;p3=0.0;m3=0.0; for( i=0;i<=1000;i++) {sc=mc*(i+0.5)/1000; if(sc<0.002) {k=13.4*(1000*sc-sc*sc/0.000004);} if(sc>=0.002&&sc<=0.0038) {k=13.4;} p1=p1+k*300*x0/1000; m1=m1+k*300*x0/1000*(x0*(i+0.5)/1000);}//受压区混凝土 mc1=(600-x0)*mc/x0;e1=1.54/25.5/1000;//对受拉区最下缘做出判断的两个数据 if(mc1<=e1)//未开裂情况下受拉区混凝土,f2受压区钢筋f1受拉区钢筋 {d=600-x0; for(int j=0;j<=1000;j++) {sc1=mc1*(j+0.5)/1000; k1=25.5*sc1*1000; p2=p2+k1*300*d/1000; m2=m2+k1*300*d/1000*(d*(j+0.5)/1000);} t=f1*804+p2;c=f2*157+p1;//此种情况下全结构的压力C和拉力T M=m1+f2*157*(x0-25)+m2+f1*804*(560-x0);//此种情况下的弯矩 } if(mc1>=e1)//开裂情况下的受拉区混凝土,f2受压区钢筋f1受拉区钢筋 {d=e1*x0/mc; for(int r=0;r<=1000;r++) {sc2=e1*(r+0.5)/1000; k2=25.5*sc2*1000; p3=p3+k2*300*d/1000; m3=m3+k2*300*d/1000*(d*(r+0.5)/1000);} t=f1*804+p3;c=f2*157+p1;//此种情况下全结构的压力C和拉力T M=m1+f2*157*(x0-25)+m3+f1*804*(h0-x0);}//此种情况下的弯矩 f=(c-t)/c;q=mc/x0;//f为压力和拉力之间的误差比,q为曲率 if(fabs(f)<0.01) {outfile< if(t { x02=x0;x01=x01;} else { x01=x0;x02=x02;}}} outfile.close(); system("pause"); return 0; //程序结束} }