- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过程序实现梁双向受弯承载力计算
以下内容包括三个部分:程序说明,源程序,例题计算。
本作业通过C++程序编写,首先是程序说明部分。
整个程序的运算可以实现截面上下排(单排)任意配筋的计算,(双排布筋未考虑);
根据混凝土受压区图形为三角形,四边形,五边形时,通过循环前进行判断,得出受压区具体的图形,从而进行计算;
程序一开始定义了一全局常量NUM=100,可以控制数组的大小,它表示最多布置钢筋数为100,实际工程中基本不会超过这个值,可以通过对它修改,实现对所有数组长度的修改;
一开始定义了在计算过程中需要的各种变量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],分别表示钢筋的面积,应变,力,应力,弹模,屈服强度,直径;
input()函数表示数据的录入,分别输入截面尺寸,材料常数等数据,在输入钢筋的特征常数时,考虑到经常一排钢筋采用相同的钢筋,所以设置了一个选项:是否需要单独输入每根钢筋的数据,是请输1,否请输2。在数据的录入过程中,长度均要求按mm输入,其他应按MPa输入,这在输入数据前都通过输出相关语句进行了提醒;
定义了一个float YLJS(float KX, float KY)函数,实现计算钢筋的应变,并返回所有钢筋的合力为函数值,方便了后面的计算;
定义了一个int SOLVE()函数,可以判断受压区图形形状,并通过循环计算出实际的中和轴位置,(得到符合题目要求的kx,ky的值);
在主函数中,首先调用input()函数,输入数据,通过一个for循环
for(int jj=0;jjn+m;jj++){
if(jj=n-1) X[jj]=tx+(b-2*tx)*jj/(n-1),Y[jj]=ty;
else X[jj]=tx+(b-2*tx)*(jj-n)/(m-1),Y[jj]=h-ty;
}
计算出各钢筋距离截面右上角的位置后,将得到的值放入X[]和Y[],其中n表示上排钢筋数,m表示下排钢筋数;
定义了一个整数c,通过它判断受压区的面积,为1时为三角形,2时为四边形,3时为五边形;
在调用SOLVE()函数时,会调用YLJS函数:
float YLJS(float KX, float KY){
float s=0;
for(int j=0;jn+m;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];
else Fs[j]=fy[j]*(-1);
}
else Fs[j]=L[j]*Es[j]; //压为正,拉为负
As[j]=3.14*R[j]*R[j]/4;
S[j]=Fs[j]*As[j];
s=s+S[j];
}
return s;
}
在函数的一开始s用来表示各个钢筋的合力,一开始赋初值0,通过循环叠加得到,钢筋的力通过应力乘以面积得到,应力则是根据应变得到,根据平截面假定,通过公式计算出,同时通过if语句,使得钢筋的应变不会超过它弹性的最大应变,最后函数返回值为s;
调用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时,则受压区面积为四边形;
当c=1时对应三角形,采用二分法进行循环,当最后的a3的绝对值小于 2MPa时,循环停止,得到对应的kx和ky;当c=2时为四边形的状态,根据kx和ky的大小,判断梯形的上下底边的方向,并通过对kx(或ky)递
文档评论(0)