彎矩曲率計算程序_第1頁
彎矩曲率計算程序_第2頁
彎矩曲率計算程序_第3頁
彎矩曲率計算程序_第4頁
彎矩曲率計算程序_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、彎矩.曲率計算程序#include<stdio.h>#include&比math.h>floatabstr(float);/*定義名為abstr的函數(shù),其功能是求絕對值*/intsign(float);/*定義名為sign的函數(shù),其功能是獲取數(shù)值的正負號*/voidmain(void)floatm300,c300,p300,d300;/*定義一維單精度浮點型變量數(shù)組,數(shù)組長度為300,m:彎矩;c:曲率;p:外力;d:撓度*/floatmom100,coc100;/*定義一維單精度浮點型變量數(shù)組,數(shù)組長度為300,mom:縱梁方向距梁端n*da

2、處彎矩;coc:對應曲率*/inti;/*定義為整型變量*/for(i=0;i<300;i+)/*為數(shù)組m,c,p,d,mom,coc賦初值0*/mi=0.0;ci=0.0;pi=0.0;di=0.0;for(i=0;i<100;i+)momi=0.0;coci=0.0;/*EnterDataToStoreInInput.dat*FILE*file1,*file2,*file3,*file4;floatfy,es,esh;/*定義鋼筋屈服強度,鋼筋彈性模量,鋼筋的極限拉應變*/floatfc,fct;/*定義混凝土抗壓強度,抗拉強度*/floatas1,as;/*定

3、義抗壓鋼筋面積,抗拉鋼筋面積*/floatl,a,h,b;/*定義梁跨長,作用點到左端距離,截面寬、高*/floatao2;/*抗壓和抗拉鋼筋中心到梁頂距離*/intsn,ln,st;/*定義截面劃分條帶數(shù),a長度上的分段數(shù),鋼筋型號*/file1=fopen("input.dat","r");/*從input.dat中讀取相應數(shù)據(jù)*/fscanf(file1,"%f%f%f",&fy,&es,&esh);fscanf(file1,&

4、;quot;%f%f",&fc,&fct);fscanf(file1,"%f%f",&as1,&as);fscanf(file1,"%f%f%f%f",&l,&a,&h,&b);fscanf(file1,"%f%f",&ao0,&ao1);fscanf(file1,"%d%d%d&quo

5、t;,&sn,&ln,&st);fclose(file1);/*EndofInputingData*floatdc=0.0000002,de=0.00005,ee,em;/*定義曲率增量,應變增量,截面中間處應變,應變的中間變量*/floatsf1=0.0,sf2=0.0,dsf;floatffc=0.0,fs=0.0;floatmi=0.0,mic,mis;截面鋼筋合彎矩*/*定義截面合力sf1,sf2,截面合力修正值dsf*/*定義混凝土合力,鋼筋合力*/floatz,e,s,r;力*/*定義條帶到截面中間的距離,應變,應力,反/*定義某一條

6、帶的彎矩,混凝土截面內(nèi)的合彎矩,floateo,eu,cc=0.0;/*定義混凝土達到極限強度時的應變,破壞時的應變,cc為計算撓度時曲率變量,只對cc賦初值0.0*/floatlp,hh,hn,aas,etop;/*塑性較長度的一半,分成sn個條帶后每條帶的高度,鋼筋面積的中間變量,梁頂混凝土應變*/floatesy,da;后每段長度*/floatdd,dsn,dl;floatmm,mo,co,dp,tan;/*定義鋼筋的屈服應變,梁縱向彈性區(qū)段分段ln/*均為撓度中間變量*/*彎矩中間變量,外力作用點處彎矩,對應曲,外力變化量,屈服點處彎矩與曲率的比值*/intj,k,n,ii,jj;in

7、tjmax1=500,jmax2=0,jmax3=0;/*定義jmax1,jmax2,jmax3三個整型變量并賦初值*/esy=fy/es;/*計算鋼筋的屈服應變*/hn=h/sn;/*計算h高度的截面所分成的sn條帶時,每條帶的高度hn*/eu=-0.004;/*定義混凝土破壞時的應變?yōu)?0.004*/eo=-0.002;/*給條帶應變賦初值*/ee=-0.0001;/*給截面中間處應變賦初值*/j=0;ii=0;do/*do-while循環(huán),用于將曲率與計算截面的彎矩對應*/j+;ii=0;/*監(jiān)測程序運行的整個過程發(fā)現(xiàn)ii增長的不健康,無法給sf1動態(tài)賦值,因而在這里加一個ii=0*/c

8、j=cj-1+dc;do/*do-while循環(huán),計算某一曲率下的混凝土與鋼筋的合彎矩,并保證鋼筋混凝土截面內(nèi)合力為0*/ii+;mic=0.0;mis=0.0;/*給混凝土和鋼筋的彎矩賦初值為0*/*CalculateTheForceOfConcrete*ffc=0.0;/*給混凝土合力賦初值為0*/for(i=0;i<sn;i+)/*for循環(huán),用于各條帶混凝土產(chǎn)生的合力與合彎矩*/z=h/2-i*hn-hn/2;/*求每一條帶到截面中間的距離*/e=ee+z*cj;/*以截面中間處應變?yōu)榛鶞视嬎忝恳粭l帶中心處應變,原代碼左端為"ee"有誤

9、*/if(e>0.00015)s=0.0;/*if語句,用來判斷每一條帶中心處應變所在范圍,從而選擇對應公式計算該處應力*/elseif(e>0.0001)s=fct;elseif(e>0.0)s=(2*fct*e)/(e+0.0001);elseif(e>eo)s=-0.85*fc*(2*e/eo-(e/eo)*(e/eo);elseif(e>eu)s=-0.85*fc*(1-100*(eo-e);elses=0.0;ffc=ffc+s*b*(h/sn);/*將每一條帶中心的混凝土受力疊加求合力*/mic=mic+s*b*

10、z*(h/sn);/*將每一條帶中心的混凝土彎矩疊加求合彎矩*/*CalculateTheForceOfSteel*fs=0.0;/*鋼筋合力初值為0.0*/for(k=0;k<2;k+)/*計算截面鋼筋的合力和彎矩*/z=aok-h/2;/*鋼筋距上邊緣的距離*/e=ee+z*cj;/*截面曲率為cj時鋼筋的應變,其中ee為截面中心的應變,為保證截面合力為0,會做調(diào)整*/if(abstr(e)<=esy)s=e*es;/*彈性階段鋼筋應力的計算*/elseif(abstr(e)<=esh)s=sign(e)*fy;/*屈服階段鋼筋應力的計算,其中si

11、gn是根據(jù)應變的符號確定應力符號的函數(shù)*/elses=sign(e)*(fy+0.01*es*(abstr(e)-esh);/*鋼筋硬化后鋼筋應力的計算*/if(z<0.0)aas=as1;/*把受壓鋼筋的截面面積賦給變量aas*/elseaas=as;/*把受拉鋼筋的截面面積賦給變量aas*/if(abstr(e)>esy)dc=0.0000003;/*鋼筋屈服后的曲率增量*/fs=fs+s*aas;/*截面鋼筋合力*/mis=mis+s*aas*z;/*截面鋼筋合彎矩*/if(ii=1)/*從此處到計算mm之前,是在計算判斷賦給截面中心應變的增量是多少時,截面的

12、合力接近0*/sf1=ffc+fs;/*截面合力*/ee=ee+de;/*第一次計算截面內(nèi)力后給ee一個增量,然后再次計算得到截面內(nèi)力,用兩次的計算結(jié)果計算ee的合理增量*/em=de;)else(sf2=ffc+fs;dsf=sf2-sf1;em=-sf2*em/dsf;時的ee增量*/if(dsf=0.0)em=de;合理的*/ee=ee+em;sf1=sf2;力sf1*/)mm=mic+mis;/*把初定的變量de賦2eem,參與后邊的計算*/*用ee+de計算的截面合力*/*兩次計算的截面合力差*/*計算合理的ee增量,也就是使截面合力趨近0/*如果計算的增量為0,則第一次賦給ee的增

13、量是/*計算合理的截面中心處的應變*/*將最后一次計算的合力sf2賦給上一次計算的合while(abstr(sf2)>=0.1);截面的合力*/if(e>=esy)(if(j<=jmax1)jmax1=j;筋屈服時,將曲率增加次數(shù)賦給/*當截面合力的誤差大于/*如果在曲率增加次數(shù)小于jmax1*/0.1時重新再次計算500并且底部受拉鋼/*截面合彎矩*/*頂部條帶中心的最大應變*/etop=ee-(h/2-hn/2)*cj;mj=mm;/*把合彎矩賦給數(shù)組mj*/if(mj>=mi)/*如果彎矩一直增大,則把彎矩賦給mi,用于下一次比較,

14、同時將j賦名jmax2*/(mi=mj;jmax2=j;/*頂部應變的代數(shù)值不小于1.2*eu時,增加/*曲率增加的總次數(shù)j賦名jmax3*/while(etop>=1.2*eu);曲率,進行下一次計算*/jmax3=j;/*PutOutTheAnswerofMomentAndCurvature上述過程建立了控制界面曲率與彎矩的對應關(guān)系*/file2=fopen("out1.dat","w");for(j=0;j<=jmax3;j+)/*打印計算出的彎矩和對應的曲率*/(fprintf(file

15、2,"%18.8g,%18.8gn",cj,mj);)fclose(file2);if(st=1)lp=0.35*h;if(st=2)lp=0.5*h;tan=mjmax1/cjmax1;da=a/ln;dc=0.00000022;/*鋼筋類型為1時,塑性較一半的長度*/*鋼筋類型為2時,塑性較一半的長度*/*彎矩曲率圖斜率*/*長度為a的梁分成ln段后每段的長度*/*計算荷載-撓度關(guān)系時的曲率增量*/j=0;docc=cc+dc;j=j+1;if(cc<=cjmax1)作用的荷載及相應截面的撓度*/*截面計算曲率小于鋼筋屈服前的曲率時,計算i

16、=-1;do矩*/*當滿足條件i<=jmax1+1時計算曲率對應的彎i+;if(ci<=cc)&&(cc<ci+1)/*判斷截面計算曲率在已經(jīng)求出的曲率列表中的位置*/mm=mi+(cc-ci)*(mi+1-mi)/(ci+1-ci);/*假設(shè)彎矩曲率在相鄰值間是線性變化的,求該曲率對應的彎矩*/)while(i<=jmax1+1);性階段的關(guān)系*/r=mm/a;pj=(mm*l)/(a*(l-a);for(n=1;n<=ln;n+)momn=r*n*da;jj=-1;do/*此條件表示的意思

17、是彎矩曲率關(guān)系要是處在彈/*計算支座反力*/*根據(jù)合彎矩計算作用的集中荷載*/*采用共輪梁法計算撓度*/*當計算長度為n*da時,計算截面的彎矩*/*當計算長度為n*da時,計算截面的曲率*/jj+;if(mjj<=momn)&&(momn<mjj+1)/*判斷計算截面的彎矩在彎矩列表中的位置*/*計算截面的曲率*/cocn=cjj+(momn-mjj)*(cjj+1-cjj)/(mjj+1-mjj);)while(jj<jmax1);系要是處在彈性階段的關(guān)系*/dd=cocn*da*(n*da-da/2);dj=dj+

18、dd;)/*此條件表示的意思是彎矩曲率關(guān)/*共輾梁法計算計算截面的撓度*/*撓度疊加后寫到撓度數(shù)組中*/elseif(cc<=cjmax2)算作用的荷載及相應截面的撓度*/dsn=0.0;i=-1;do的彎矩*/i+;if(ci<=cc)&&(cc<ci+1)士中的位置*/*截面計算曲率小于鋼筋最大應變曲率時,計/*定義dsn初始等于0*/*當滿足條件i<=jmax1+1時計算曲率對應/*判斷截面計算曲率在已經(jīng)求出的曲率列)while(i<=jmax2+1);但是力還處于上升階段*/r=mm/

19、a;pj=(mm*l)/(a*(l-a);da=(a-lp)/ln;長度*/for(n=1;n<=ln;n+)momn=r*n*da;for(jmm=mi+(cc-ci)*(mi+1-mi)/(ci+1-ci);/*假設(shè)彎矩曲率在相鄰值間是線性變化的,求該曲率對應的彎矩*/*此條件表示的意思是此時已經(jīng)出現(xiàn)塑性較,/*計算支座反力*/*根據(jù)合彎矩計算作用的集中荷載*/*減去塑性較的一半以后a長度上的每一小段的/*采用共輪梁法計算撓度*/*當計算長度為n*da時,計算截面的彎矩*/j=0;jj<=jmax2;jj+)/*計算除了塑性較區(qū)域后的撓度*/if(mjj&

20、;lt;=momn)&&(momn<mjj+1)/*判斷計算截面的彎矩在彎矩列表中的位置*/cocn=cjj+(momn-mjj)*(cjj+1-cjj)/(mjj+1-mjj);/*計算截面的曲率*/)dd=cocn*da*(n*da-da/2);/*共輪梁法計算計算截面的撓度*/dsn=dsn+dd;/*撓度疊加后得到最后值即為除塑性較區(qū)域的撓度*/)mo=r*a;/*截面彎矩*/for(jj=jmax1;jj<=jmax2;jj+)/*計算塑性較區(qū)域的撓度*/if(mjj<=mo)&&amp

21、;(mo<mjj+1)/*判斷計算截面的彎矩在彎矩列表中的位置*/co=cjj+(mo-mjj)*(cjj+1-cjj)/(mjj+1-mjj);/*計算截面的曲率*/dl=co*lp*(a-lp/2);/*塑性較區(qū)域的撓度*/dj=dsn+dl;/*塑性較區(qū)域和非塑性較區(qū)域撓度的疊加*/elsedsn=0.0;/*定義初始值為0*/i=-1;do/*計算到了下降段以后的彎矩撓度*/i+;if(ci<=cc)&&(cc<ci+1)/*判斷計算截面的曲率在曲率列表中的位置*/mm=mi+(cc-ci)*(mi+1-mi)/(ci+1-ci);/*計算截面的彎矩*/while(i<jmax3);r=mm/a;pj=(mm*l)/(a*(1-a)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論