弯矩曲率程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

float abstr(float); /*定义名为abstr的函数,指定功能在代码最后*/

int sign(float); /*定义名为sign的函数,指定功能在代码最后*/

void main(void)

{

float m[300],c[300],p[300],d[300]; /*定义一维单精度浮点型变量数组,数组长度为300,m:弯矩;c:曲率;p:外力;d:挠度*/

float mom[100],coc[100]; /*定义一维单精度浮点型变量数组,数组长度为300,mom:纵梁方向距梁端n*da处弯矩;coc:对应曲率*/

int i; /*定义为整型变量*/

for(i=0;i<300;i++) /*为数组m,c,p,d,mom,coc赋初值0*/

{m[i]=0.0;

c[i]=0.0;

p[i]=0.0;

d[i]=0.0;

}

for(i=0;i<100;i++)

{mom[i]=0.0;

coc[i]=0.0;

}

//*****Enter Data To Store In Input.dat*****

FILE *file1,*file2,*file3;

float fy,es,esh; /*定义钢筋屈服强度,钢筋弹性模量,钢筋的极限拉应变*/

float fc,fct; /*定义混凝土抗压强度,抗拉强度*/

float as1,as; /*定义抗压钢筋面积,抗拉钢筋面积*/

float l,a,b,h; /*定义梁跨长,作用点到左端距离,截面宽、高*/ float ao[2]; /*钢筋中心到梁顶距离*/

intsn,ln,st; /*定义截面划分条带数,a长度上的分段数,钢筋型

号*/

file1=fopen("input.dat","r"); /*从input.dat中读取相应数据*/

fscanf(file1,"%f%f%f",&fy,&es,&esh);

fscanf(file1,"%f%f",&fc,&fct);

fscanf(file1,"%f%f",&as1,&as);

fscanf(file1,"%f%f%f%f",&l,&a,&h,&b);

fscanf(file1,"%f%f",&ao[0],&ao[1]);

fscanf(file1,"%d%d%d",&sn,&ln,&st);

//*****End of Inputing Data*****

float dc=0.0000002,de=0.00005,ee,em; /*定义曲率增量,应变增量,截面中间处应变,应变

的中间变量*/

float sf1=0.0,sf2=0.0,dsf; /*定义截面合力sf1,sf2,截面合力修正值dsf*/

float ffc=0.0,fs=0.0; /*定义混凝土合力,钢筋合力*/

float mi=0.0,mic,mis; /*定义某一条带的弯矩,混凝土截面内的合弯矩,截面钢筋合弯矩*/

float z,e,s,r; /*定义条带到截面中间的距离,应变,应力,反力*/ float eo,eu,cc=0.0; /*定义混凝土达到极限强度时的应变,破坏时的应变,cc为计算挠度时曲率变量,只对cc赋初值0.0*/

float lp,hh,hn,aas,etop; /*塑性铰长度的一半,hh未定义,分成sn个条带后每条带的高度,钢筋面积的中间变量,梁顶混凝土应变*/

float esy,da; /*定义钢筋的屈服应变,梁纵向弹性区段分段ln后每段长度*/

float dd,dsn,dl; /*均为挠度中间变量*/

float mm,mo,co,dp,tan; /*弯矩中间变量,外力作用点处弯矩,对应曲率,

外力变化量,屈服点处弯矩与曲率的比值*/ intj,k,n,ii,jj;

int jmax1=500,jmax2=0,jmax3=0; /*定义jmax1,jmax2,jmax3三个整型变量并赋初

值*/

esy=fy/es; /*计算钢筋的屈服应变*/

hn=h/sn; /*计算h高度的截面所分成的条带数*/

eu=-0.004; /*定义混凝土破坏时的应变为-0.004*/

e=-0.002; /*给条带应变赋初值*/

ee=-0.0001; /*给截面中间处应变赋初值*/

j=0;

ii=0;

do /*do-while循环,用于将曲率与算得的截面和弯矩一一对应*/

{j++;

c[j]=c[j-1]+dc;

do /*do-while循环,计算某一曲率下的混凝土与钢

筋的合弯矩,并保证钢筋混凝土截面内合力为0*/ {ii++;

mic=0.0;

mis=0.0; /*给混凝土和钢筋的弯矩赋初值为0*/

//*****Calculate The Force Of Concrete*****

ffc=0.0; /*给混凝土合力赋初值为0*/

for(i=0;i

*/

{z=h/2-i*hn-hn/2; /*求每一条带到截面中间的距离*/

e=ee+z*c[j]; /*以截面中间处应变为基准计算每一条带中心处

应变,原代码左端为"ee"有误*/

if(e>0.00015) s=0.0; /*if语句,用来判断每一条带中心处应变所在范围,从而选择对应公式计算该处应力*/

else if(e>0.0001) s=fct;

else if(e>0.0) s=(2*fct*e)/(e+0.0001);

else if(e>eo) s=-0.85*fc*(2*e/eo-(e/eo)*(e/eo));

相关文档
最新文档