双向板的弹性计算法Word文档下载推荐.docx
- 文档编号:16867273
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:24
- 大小:708.02KB
双向板的弹性计算法Word文档下载推荐.docx
《双向板的弹性计算法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《双向板的弹性计算法Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
3.62=3.15KN.m
My=0.0137×
3.62=1.14KN.m
Mx0=0.0793×
3.62=6.58KN.m
My0=0.0571×
3.62=4.74KN.m
由式
(2)、(3)得跨中弯矩设计值
Mx(u)=0.315+
×
1.14=3.34KN.m
My(u)=1.14×
×
3.15=1.67KN.m
配筋计算见表1。
表1板的配筋计算
截面
跨中
支座
l1方向
l2方向
l1方向
l2方向
M(KN.m)
3.15
1.14
6.58
4.74
(mm)
4.86
1.72
10.59
7.45
(mm2)
222.17
78.63
484.11
340.57
选配钢筋
Ø
6@120
6@200
8@100
8@140
实配面积(mm2)
236
141
503
359
(2)多跨连续双向板的计算
多跨连续双向板按弹性理论的精确计算十分复杂,在实用计算时通常以上述单跨板内力计算为基础,假定板在梁上可以自由转动,并略去梁的竖向变形,这样将梁视为板的不动铰支座,从而使计算简化。
计算多跨连续双向板的最大弯矩时,也需考虑活荷载的最不利布置。
1)求跨中最大正弯矩
当求跨中最大正弯矩时,其活荷载的最不利位置为如图2所示的棋盘式布置。
为便于利用区格板的表格,可将图2a所示计算简图上的荷载(恒载g和活荷载q)分解为满布于各跨的g+q/2和隔跨交替布置的±
q/2两部分(图2b、c)。
当各区格满布g+q/2时(图2b),由于区格板支座两边结构对称,且荷载对称,可将各支座视为不转动,于是可近似地将区格板看成四边固定的双向板,并利用附表,求出其跨中弯矩。
当所求区格作用+q/2,相邻区格作用﹣q/2(其余区格均间隔布置,图2c)时,可近似看作承受反对称荷载±
q/2的连续板,此时中间支座的弯矩为零或很小,故内区格的跨中弯矩近似地按四边简支的双向板计算。
(a)
(b)
(c)
(a)恒载的分布及活荷载的不利布置(b)正对称荷载分布(c)反对称荷载分布
图2多跨连续双向板计算简图
在上述两种荷载情况下的边区格板,其外边界的支座按实际情况考虑,而内边界的支座则按相应荷载情况考虑为固定或简支。
最后,将所求区格在这两种荷载作用下的跨中弯矩叠加,即求得该区格的跨中最大正弯矩。
2)支座最小负弯矩
当板面上全部满布恒载及活荷载时,支座弯矩最大。
所以对所有中间区格均可按四边固定的双向板(图1f)计算。
边区格的内支座取相邻两区格板在该支座上弯矩的平均值。
边区格计算时,其外边支承条件按实际情况考虑。
3)双向板配筋计算要点
①双向板若短跨方向跨中截面的有效高度为h01,则长跨方向截面的有效高度h02=h01–d,d为板中受力钢筋直径,若两向钢筋直径不同时,取其平均值。
②若板与支座为整体连接并按弹性理论方法计算双向板内力时,应采用支座边缘处的弯矩值为计算弯矩。
③对于四边与梁整体连接的板,不论按何种方法分析内力,均应考虑周边支承梁对板产生水平推力的有利影响,因此,设计时应将计算所得弯矩值根据下列情况予以减少。
对中间跨的跨中截面及中间支座截面减少20%;
对边跨的跨中截面及楼板边缘算起的第二支座截面:
当
<
1.5时,减少20%,当1.5≤
≤2时,减少10%(l01——垂直于楼板边缘方向的计算跨度,l02——沿楼板边缘方向的计算跨度);
对于楼板的角区格不应减少。
附表:
通过程序实现梁双向受弯承载力计算
以下内容包括三个部分:
程序说明,源程序,例题计算。
一.本作业通过C++程序编写,首先是程序说明部分。
1.整个程序的运算可以实现截面上下排(单排)任意配筋的计算,(双排布筋未考虑);
2.根据混凝土受压区图形为三角形,四边形,五边形时,通过循环前进行判断,得出受压区具体的图形,从而进行计算;
3.程序一开始定义了一全局常量NUM=100,可以控制数组的大小,它表示最多布置钢筋数为100,实际工程中基本不会超过这个值,可以通过对它修改,实现对所有数组长度的修改;
4.一开始定义了在计算过程中需要的各种变量b,h,kx,ky,tx,ty,Tan,fc,BETA,Cc分别表示截面的宽度b,高度h,混凝土受压区边长比例kx,ky,中和轴同y轴夹角大小Tan,混凝土圆柱体抗压强度fc,混凝土受压区高度修正系数BETA,混凝土受压区合力Cc;
同时还定义了一系列数组用于储存钢筋的相关值:
As[NUM],L[NUM],S[NUM],Fs[NUM],Es[NUM],fy[NUM],R[NUM],分别表示钢筋的面积,应变,力,应力,弹模,屈服强度,直径;
5.input()函数表示数据的录入,分别输入截面尺寸,材料常数等数据,在输入钢筋的特征常数时,考虑到经常一排钢筋采用相同的钢筋,所以设置了一个选项:
"
是否需要单独输入每根钢筋的数据,是请输1,否请输2"
。
在数据的录入过程中,长度均要求按mm输入,其他应按MPa输入,这在输入数据前都通过输出相关语句进行了提醒;
6.定义了一个floatYLJS(floatKX,floatKY)函数,实现计算钢筋的应变,并返回所有钢筋的合力为函数值,方便了后面的计算;
7.定义了一个intSOLVE()函数,可以判断受压区图形形状,并通过循环计算出实际的中和轴位置,(得到符合题目要求的kx,ky的值);
8.在主函数中,首先调用input()函数,输入数据,通过一个for循环
for(intjj=0;
jj<
n+m;
jj++){
if(jj<
=n-1)X[jj]=tx+(b-2*tx)*jj/(n-1),Y[jj]=ty;
elseX[jj]=tx+(b-2*tx)*(jj-n)/(m-1),Y[jj]=h-ty;
}
计算出各钢筋距离截面右上角的位置后,将得到的值放入X[]和Y[],其中n表示上排钢筋数,m表示下排钢筋数;
9.定义了一个整数c,通过它判断受压区的面积,为1时为三角形,2时为四边形,3时为五边形;
10.在调用SOLVE()函数时,会调用YLJS函数:
floatYLJS(floatKX,floatKY){
floats=0;
for(intj=0;
j<
j++){
L[j]=0.003*(1-X[j]/(KX*b)-Y[j]/(KY*h));
//计算钢筋应变
if(fabs(L[j])>
=fy[j]/Es[j]){
if(L[j]>
=0)Fs[j]=fy[j];
elseFs[j]=fy[j]*(-1);
}
elseFs[j]=L[j]*Es[j];
//压为正,拉为负
As[j]=3.14*R[j]*R[j]/4;
S[j]=Fs[j]*As[j];
s=s+S[j];
}
returns;
}
在函数的一开始s用来表示各个钢筋的合力,一开始赋初值0,通过循环叠加得到,钢筋的力通过应力乘以面积得到,应力则是根据应变得到,根据平截面假定,通过公式计算出,同时通过if语句,使得钢筋的应变不会超过它弹性的最大应变,最后函数返回值为s;
11.调用SOLVE()函数,在SOLVE函数中首先定义了a1,a2,a3,a4四个变量,用来方便后面计算中中间数据的存贮,首先分别计算出当受压区面积恰好为最大三角形和最大四边形时候混凝土的压力Cc和钢筋的力S[];
因为kx大于ky和kx小于ky时候,计算不一样,所以通过if语句,分开讨论,此处a3对应最大三角形状态时钢筋合力,a4和Cc分别对应最大四边形时钢筋和混凝土合力;
接着计算俩种状态下的钢筋和混凝土的合力之和,分别储存到a3和a4中,当a3大于0时,说明混凝土受压区面积过大,则受压区图形必为三角形,当a4小于0时,则说明受压区面积过小,受压区图形必为五边形,当a3*a4小于0时,则受压区面积为四边形;
12.当c=1时对应三角形,采用二分法进行循环,当最后的a3的绝对值小于2MPa时,循环停止,得到对应的kx和ky;
当c=2时为四边形的状态,根据kx和ky的大小,判断梯形的上下底边的方向,并通过对kx(或ky)递增的思想得到对应的值;
当c=3时,思想同上;
13.返回c值为SOLVE的函数值,继续主函数,定义了重心坐标和俩个方向的弯矩;
通过c的不同,计算四种图形对应的重心坐标;
14.分别计算每根钢筋俩个方向的弯矩,通过叠加得到最终截面能承受的弯矩Mux和Muy,输出结果。
二.函数源程序代码
#include<
iostream.h>
math.h>
constintNUM=100;
//定义一全局常量用来控制数组的容量;
floatb,h,kx,ky,tx,ty,Tan,fc,BETA,Cc;
//Tan表示中和轴和y轴夹角的正切值,BETA即为混凝土受压区高度修正系数,Cc为混凝土的合力
floatAs[NUM],L[NUM],S[NUM],Fs[NUM],Es[NUM],fy[NUM],R[NUM];
//L表示钢筋的应变,S[]表示钢筋的力,Fs表示钢筋应力,ES表示钢筋弹模,fy表示钢筋屈服强度,R表示钢筋直径
intn,m;
//分别表示上下排钢筋的根数
floatX[NUM],Y[NUM];
//表示钢筋的位置
voidinput();
//数据输入函数声明;
floatYLJS(float,float);
//计算钢筋的应力;
intSOLVE();
intmain(){
input();
//数据的录入;
for(intjj=0;
jj++){
if(jj<
elseX[jj]=tx+(b-2*tx)*(jj-n)/(m-1),Y[jj]=h-ty;
}//计算各钢筋的位置(距离右上角点)
intc;
c=SOLVE();
floatxx,yy,Mux,Muy;
if(c==1){//通过c判断受压区面积的形状,并计算各自重心
xx=BETA*kx*b/3;
yy=BETA*ky*h/3;
}
elseif(c==2&
&
kx>
=ky){
xx=(BETA-1/kx+BETA/(3*kx))*b/(2*BETA-1/kx);
yy=ky*h*((BETA-1/kx)*(BETA-1/kx)+BETA*BETA/kx-2*BETA*BETA/(3*kx*kx))/(2*BETA-1/kx);
elseif(c==2&
kx<
ky){
xx=kx*b*((BETA-1/ky)*(BETA-1/ky)+BETA*BETA/ky-2*BETA*BETA/(3*ky*ky))/(2*BETA-1/ky);
yy=(BETA-1/ky+BETA/(3*ky))*h/(2*BETA-1/ky);
else{
xx=b*(1-(1-ky*BETA+ky/kx)*(1-kx*BETA+kx/ky)*(2+kx*BETA-kx/ky)/3)/(2-(1-ky*BETA+ky/kx)*(1-kx*BETA)+kx/ky);
yy=h*(1-(1-ky*BETA+ky/kx)*(1-kx*BETA+kx/ky)*(2+ky*BETA-ky/kx)/3)/(2-(1-ky*BETA+ky/kx)*(1-kx*BETA)+kx/ky);
floatMxs=0,Mxx=0,Mys=0,Myx=0;
//Mxs,Mys,Mxx,Myx分别表示上部钢筋和下部钢筋x和y方向的和弯矩;
for(inti=0;
i<
n;
i++){
Mxs=Mxs+S[i]*(h-Y[i]);
Mys=Mys+S[i]*(b-X[i]);
m;
Mxx=Mxx+S[n+j]*(h-Y[n+j]);
Myx=Myx+S[n+j]*(b-X[n+j]);
Mux=Cc*(h-yy)+Mxs+Mxx;
Muy=Cc*(b-xx)+Mys+Myx;
cout<
<
xx="
xx<
mm"
yy="
yy<
endl;
Mux="
Mux/1e6<
KNm"
Muy="
Muy/1e6<
return0;
voidinput(){//数据输入函数;
NUM;
i++){//数组初始化;
As[i]=0;
L[i]=0;
S[i]=0;
Fs[i]=0;
Es[i]=0;
fy[i]=0;
R[i]=0;
X[i]=Y[i]=0;
请依次输入梁截面宽度b和高度h(单位mm)"
cin>
>
b>
h;
b="
b<
h="
h<
请依次输入钢筋x方向和y方向外排钢筋重心距离边缘厚度tx和ty(单位mm)"
tx>
ty;
tx="
tx<
ty="
ty<
请输入截面x方向和y方向的弯矩比值Tan"
Tan;
Tan="
Tan<
请输入混凝土抗压强度设计值fc(单位MPa)"
fc;
fc="
fc<
MPa"
梁上下截面均只考虑单排配筋的情况"
请输入上排钢筋的根数"
intY;
Y;
if(Y==1){
for(intj=1;
=n;
请从右往左依次输入上排第"
根钢筋的弹性模量Es(单位MPa)屈服强度fy(单位MPa)和直径R(单位mm)"
cin>
Es[j-1]>
fy[j-1]>
R[j-1];
cout<
上排第"
根钢筋的Es="
Es[j-1]<
fy="
fy[j-1]<
R="
R[j-1]<
elseif(Y==2){
请依次输入上排钢筋的弹性模量Es(单位MPa)屈服强度fy(单位MPa)和直径R(单位mm)"
Es[0]>
fy[0]>
R[0];
for(intj=1;
Es[j-1]=Es[0];
fy[j-1]=fy[0];
R[j-1]=R[0];
cout<
上排钢筋的Es="
Es[0]<
fy[0]<
R[0]<
else{
输入错误,请重新开始"
请输入下排钢筋的根数"
=m;
请从右往左依次输入下排第"
Es[n+j-1]>
fy[n+j-1]>
R[n+j-1];
下排第"
Es[n+j-1]<
fy[n+j-1]<
R[n+j-1]<
elseif(Y==2){
请依次输入下排钢筋的弹性模量Es(单位MPa)屈服强度fy(单位MPa)和直径R(单位mm)"
Es[n]>
fy[n]>
R[n];
Es[n+j-1]=Es[n];
fy[n+j-1]=fy[n];
R[n+j-1]=R[n];
下排钢筋的Es="
Es[n]<
fy[n]<
R[n]<
if(fc<
=27.6)BETA=0.85;
//1psi=0.0069MPa
elseBETA=0.85-0.05*(fc-27.6)/(6.9);
//返回值为所有钢筋的合力
intSOLVE(){
floata1,a2,a3,a4;
if(kx>
=ky){
a3=YLJS(1/BETA,b/(BETA*Tan*h));
a4=YLJS(Tan/BETA,b/(BETA*h));
Cc=0.425*fc*ky*h*(2*BETA-1/kx)*b;
else{
a3=YLJS(Tan/BETA,b/(h*BETA));
a4=YLJS(1/BETA,b/(h*BETA*Tan));
Cc=0.425*fc*BETA*kx*b*(2*BETA-1/ky)*h;
a3=a3+0.425*fc*BETA*ky*h*BETA*kx*b;
a4=a4+Cc;
intc=a3*a4;
if(c>
=0&
a3>
=0){
c=1;
混凝土受压区面积为三边形"
elseif(c>
a4<
0){
c=3;
混凝土受压区面积为五边形"
c=2;
混凝土受压区面积为四边形"
if(c==1){
a1=0,a2=0.5;
kx=0.5;
do{
a3=0;
kx=kx+a2*a1;
a2=a2*0.5;
ky=kx*b/(h*Tan);
Cc=0.425*fc*BETA*ky*h*BETA*kx*b;
a3=Cc+YLJS(kx,ky);
if(a3>
=0)a1=-1;
elsea1=1;
a3=a3/1000;
}while(fabs(a3)>
=2&
1);
return1;
elseif(c==2){
a1=0;
if(kx>
kx=(Tan/BETA+1/BETA)*0.5;
ky=kx*b/(Tan*h);
do{
kx=kx+0.001*a1;
=2);
else{
ky=(1/(BETA*Tan)+1/BETA)*0.5;
kx=ky*Tan*h/b;
a1=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双向 弹性 算法