版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include<stdio.h>#include<math.h>#include<stdlib.h>#define M 5int n,nc,nn,m,e,f;/節(jié)點(diǎn)總數(shù),固定節(jié)點(diǎn)數(shù),自由度數(shù),桿件數(shù)int io,jo;/單根桿對(duì)號(hào)指示數(shù)int ihlM,ihrM;/桿件左右節(jié)點(diǎn)號(hào)double aM;/各桿截面積double mmM;/桿件質(zhì)量double eaM;/桿件EA的值double xM,yM;/節(jié)點(diǎn)坐標(biāo)double dpM;/總體系下的節(jié)點(diǎn)載荷double t2;/0,1分別為坐標(biāo)轉(zhuǎn)換矩陣的cos(),sin()double c22;/總體系下的
2、單剛double clxy3;/0,1,2分別為桿長(zhǎng),正弦,余弦double hM;/桿件軸力double rMM;/總剛度陣double rd;/桁架軸力桿局部系單剛double uM;/桁架節(jié)點(diǎn)位移double v2;/存放節(jié)點(diǎn)位移差double dM;/LDLT分解時(shí)的D矩陣的對(duì)角線元素double lMM;/LDLT分解時(shí)的D矩陣的對(duì)角線元素double fdpM;/總體系下支座反力void iojo(int k)/計(jì)算對(duì)號(hào)指示數(shù) io,jo int i,j; i=ihlk-1;/k號(hào)桿左節(jié)點(diǎn)號(hào)進(jìn)入i j=ihrk-1;/k號(hào)桿節(jié)點(diǎn)右號(hào)進(jìn)入i io=2*(i-nc-1);/uxi前未知
3、位移的個(gè)數(shù) jo=2*(j-nc-1);/uyi前未知位移的個(gè)數(shù)void ch(int k)/計(jì)算桿長(zhǎng)與方向余弦函數(shù) int i,j; i=ihlk-1;/k號(hào)桿左節(jié)點(diǎn)進(jìn)入i j=ihrk-1;/k號(hào)桿右節(jié)點(diǎn)進(jìn)入j clxy1=xj-1-xi-1;/k號(hào)桿x坐標(biāo)差 clxy2=yj-1-yi-1;/k號(hào)桿y坐標(biāo)差 clxy0=sqrt(clxy1*clxy1+clxy2*clxy2);/k號(hào)桿長(zhǎng) clxy1=clxy1/clxy0;/k號(hào)桿件x軸余弦 clxy2=clxy2/clxy0;/k號(hào)桿件y軸余弦void stif(int k)/計(jì)算k號(hào)桿件總體系下的單元?jiǎng)偠汝?int i,j; ch
4、(k);/調(diào)用ch(),計(jì)算k號(hào)桿件桿長(zhǎng)與余弦 t0=clxy1; t1=clxy2; rd=eak-1/clxy0; for(i=0;i<2;i+) for(j=0;j<2;j+) cij=ti*tj*rd; void dor()/總體系下的總剛度陣的組集 int i,j,k;for(i=0;i<nn;i+) for(j=0;j<nn;j+) rij=0.0;/總剛度陣清0 for(k=1;k<=m;k+) iojo(k);/調(diào)用k的對(duì)號(hào)指示函數(shù),從而確定組集位置 stif(k);/第k號(hào)桿件的總體系下的單剛if(io>=0) for(i=io+1;i&l
5、t;=io+2;i+) for(j=io+1;j<=io+2;j+) ri-1j-1+=ci-io-1j-io-1;/在r中io+1,io+2行以及io+1,io+2列位置累加k的單剛 for(j=jo+1;j<=jo+2;j+) ri-1j-1-=ci-io-1j-jo-1;/在r中io+1,io+2行以及jo+1,jo+2列位置累加k的負(fù)單剛 rj-1i-1=ri-1j-1; for(i=jo+1;i<=jo+2;i+) for(j=jo+1;j<=jo+2;j+) ri-1j-1+=ci-jo-1j-jo-1;/在r中jo+1,jo+2行以及jo+1,jo+2列位
6、置累加k的單剛 else if(jo>=0)/如果io<0,即左節(jié)點(diǎn)為固定節(jié)點(diǎn),jo>=0,右端為可動(dòng)節(jié)點(diǎn),則只在jo+1,jo+2對(duì)角分塊位置累加 for(i=jo+1;i<=jo+2;i+) for(j=jo+1;j<=jo+2;j+) ri-1j-1+=ci-jo-1j-jo-1;/在r中jo+1,jo+2行以及jo+1,jo+2列位置累加k的單剛 void choldlt()/總剛度陣的LDLT分解 int i,j,k; double m,tMM; for(i=0;i<nn;i+) lii=1.0; d0=r00;/d0=r00 for(i=1;i&
7、lt;nn;i+) for(j=0;j<i;j+) m=0.0; for(k=0;k<j;k+) m+=tik*ljk; tij=rij-m; lij=tij/dj; /計(jì)算lij m=0.0; for(k=0;k<i;k+) m+=tik*lik; di=rii-m; /計(jì)算di lji=lij; void trildlt()/回代求節(jié)點(diǎn)位移 int i,k; double m,yM; y0=dp0; for(i=1;i<nn;i+) m=0.0; for(k=0;k<i;k+) m+=lik*yk; yi=dpi-m; /計(jì)算yi unn-1=ynn-1/dn
8、n-1; for(i=nn-1;i>=0;i-) m=0.0; for(k=i+1;k<nn;k+) m+=lki*uk; ui=yi/di-m; /計(jì)算ui void doh()/計(jì)算桿件的軸力 int i,k; for(k=1;k<=m;k+) iojo(k);/調(diào)用第k號(hào)桿件的左右端點(diǎn)的位移指示數(shù) for(i=0;i<2;i+)/計(jì)算每個(gè)節(jié)點(diǎn)2個(gè)自由度循環(huán) if(io<0)/把右節(jié)點(diǎn)的2個(gè)位移存入v0,v1 vi=ujo+i; else/把右節(jié)點(diǎn)的2個(gè)位移存入v0,v1 vi=ujo+i-uio+i; stif(k);/計(jì)算第k號(hào)桿件總體系單剛,存入2 hk
9、-1=0.0;/數(shù)組hk-1清零 for(i=1;i<=2;i+)/對(duì)兩個(gè)位移循環(huán) hk-1=hk-1+ti-1*vi-1*rd;/軸力存入hk-1 void dowt() /考慮自重,且規(guī)定y軸豎直向上int k,ko,i;double g; /g為重力printf("請(qǐng)輸入桿件質(zhì)量:n");for(i=0;i<m;i+) /各桿件質(zhì)量值輸入printf("mm%d=",i+1);scanf("%lf",&mmi);for(k=1;k<=m;k+) /對(duì)桁架桿件循環(huán)iojo(k); /調(diào)用函數(shù)ch(k);g
10、=mmk-1*9.80665; /重力計(jì)算公式if(io>=0) /左節(jié)點(diǎn)為自由節(jié)點(diǎn)dpio+1=dpio+1-(g/2); /左節(jié)點(diǎn)的y軸荷載減少二分之一重力dpjo+1=dpjo+1-(g/2); /右節(jié)點(diǎn)的y軸荷載減少二分之一重力else if(jo>=0) /若右節(jié)點(diǎn)為自由節(jié)點(diǎn),則僅有右節(jié)點(diǎn)做如下處理ko=io+2*nc; /定義反力指示數(shù)ko等于2*(固定節(jié)點(diǎn)號(hào)-1)dpjo+1=dpjo+1-(g/2);fdpko+1=fdpko+1-(g/2); /支座反力疊加重力的一半void dofanli() /計(jì)算反力int k,ko;for(k=1;k<=m;k+)
11、/對(duì)桿件循環(huán)iojo(k); /引用函數(shù)ch(k);ko=io+2*nc; /記錄左節(jié)點(diǎn)if(io<0) /左節(jié)點(diǎn)為固定節(jié)點(diǎn)fdpko=fdpko-hk-1*clxy1; /為第i個(gè)節(jié)點(diǎn)x軸向力加桿件軸力反力fdpko+1=fdpko+1-hk-1*clxy2; /為第i個(gè)節(jié)點(diǎn)y軸向力加桿件軸力反力void verify() /強(qiáng)度校核函數(shù)int k,i;double sigema,sigema0,sigema1; /定義應(yīng)力,拉伸許用應(yīng)力,壓縮許用應(yīng)力 printf("請(qǐng)輸入各桿截面積:n"); /截面面積輸入for(i=0;i<m;i+)printf(&qu
12、ot;a%d=",i+1);scanf("%lf",&ai);printf("請(qǐng)輸入桿件拉伸許用應(yīng)力:n"); /桿件拉伸許用應(yīng)力輸入scanf("%lf",&sigema0);printf("請(qǐng)輸入桿件壓縮許用應(yīng)力(輸入正數(shù)):n"); /桿件壓縮許用應(yīng)力輸入scanf("%lf",&sigema1);for(k=1;k<=m;k+) /對(duì)桿件循環(huán)sigema=hk-1/ak-1; /計(jì)算公式軸力與面積之商if(sigema>sigema0|sig
13、ema<-1*sigema1) /對(duì)應(yīng)力,許用應(yīng)力進(jìn)行比較(注:壓應(yīng)力為負(fù)值,所以不小于壓縮許用應(yīng)力)printf("第%d根桿件超過許用應(yīng)力,為危險(xiǎn)桿件,請(qǐng)?jiān)黾訖M截面積或更換其他材料n",k);void assemble() /裝配應(yīng)力計(jì)算int k,ko;double l; /定義桿件被拉長(zhǎng)lprintf("請(qǐng)輸入存在裝配應(yīng)力的桿件號(hào):n");scanf("%d",&k);printf("請(qǐng)輸入桿件裝配時(shí)的拉長(zhǎng)長(zhǎng)度:n");scanf("%lf",&l);iojo(k)
14、; /引用函數(shù)ch(k);hk-1=hk-1+eak-1*l/clxy0; /儲(chǔ)存裝配桿件的應(yīng)力值if(io>=0)dpio=dpio+eak-1*l*clxy1/clxy0; /左節(jié)點(diǎn)x軸方向附加載荷增加P=l*EA/l乘其方向余弦dpio+1=dpio+1+eak-1*l*clxy2/clxy0; /y軸方向同上操作dpjo=dpjo-eak-1*l*clxy1/clxy0; /注:右節(jié)點(diǎn)與左節(jié)點(diǎn)附加裝配應(yīng)力相反 dpjo+1=dpjo+1-eak-1*l*clxy2/clxy0;elseko=io+2*nc; dpjo=dpjo-eak-1*l*clxy1/clxy0; /注:右節(jié)
15、點(diǎn)與左節(jié)點(diǎn)附加裝配應(yīng)力相反 dpjo+1=dpjo+1-eak-1*l*clxy2/clxy0;printf("%f,%fn",dpjo,dpjo+1);fdpko=fdpko+eak-1*l*clxy1/clxy0; /固定節(jié)點(diǎn)ihl反力疊加裝配應(yīng)力fdpko+1=fdpko+1+eak-1*l*clxy1/clxy0;void tem() /計(jì)算溫度應(yīng)力int k,ko;double t0,arf,t1,t2,detal; /定義變量,溫差,熱膨脹系數(shù),初始溫度,最終溫度,溫變引起的長(zhǎng)度變化printf("請(qǐng)輸入初始溫度n"); /變量輸入scanf
16、("%lf",&t1);printf("請(qǐng)輸入最終溫度n");scanf("%lf",&t2);printf("請(qǐng)輸入桿件的熱膨脹系數(shù)n");scanf("%lf",&arf);t0=t2-t1;for(k=1;k<=m;k+)iojo(k); /引用函數(shù)ch(k);detal=-1*arf*t0*clxy0; /等效為裝配應(yīng)力桿件受壓 hk-1=hk-1+eak-1*detal/clxy0;if(io>=0)dpio=dpio+eak-1*detal*clx
17、y1/clxy0; /左節(jié)點(diǎn)x軸方向附加載荷增加P=l*EA/l乘其方向余弦dpio+1=dpio+1+eak-1*detal*clxy2/clxy0; /y軸方向同上操作dpjo=dpjo-eak-1*detal*clxy1/clxy0; /注:右節(jié)點(diǎn)與左節(jié)點(diǎn)附加溫度應(yīng)力相反 dpjo+1=dpjo+1-eak-1*detal*clxy2/clxy0;elseko=io+2*nc; dpjo=dpjo-eak-1*detal*clxy1/clxy0; /注:右節(jié)點(diǎn)與左節(jié)點(diǎn)附加溫度應(yīng)力相反 dpjo+1=dpjo+1-eak-1*detal*clxy2/clxy0;fdpko=fdpko+ea
18、k-1*detal*clxy1/clxy0; /固定節(jié)點(diǎn)ihl反力疊加溫度應(yīng)力fdpko+1=fdpko+1+eak-1*detal*clxy1/clxy0;int main() int i; printf(" *求解平面桁架節(jié)點(diǎn)位移與桿端力程序*nn");printf("n -輸入數(shù)據(jù)時(shí)請(qǐng)用空格或回車符間隔-n"); printf("nn請(qǐng)輸入桁架節(jié)點(diǎn)總數(shù)n,固定節(jié)點(diǎn)數(shù)nc,桿件數(shù)m:n"); scanf("%d,%d,%d",&n,&nc,&m); nn=2*(n-nc); printf
19、("請(qǐng)輸入節(jié)點(diǎn)坐標(biāo):n"); for(i=0;i<n;i+) printf("x%d=",i+1); scanf("%lf",&xi); printf("y%d=",i+1); scanf("%lf",&yi); printf("輸入桿件左右節(jié)點(diǎn)號(hào):n"); for(i=0;i<m;i+) printf("ihl%d=",i+1); scanf("%d",&ihli); printf("ih
20、r%d=",i+1); scanf("%d",&ihri); printf("請(qǐng)輸入桿件的EA值ea:n"); for(i=0;i<m;i+) printf("ea%d=",i+1); scanf("%lf",&eai); printf("請(qǐng)輸入節(jié)點(diǎn)載荷dp:n"); for(i=0;i<nn;i+) printf("dp%d=",i+1); scanf("%lf",&dpi); dor(); choldlt();printf("是否需要考慮自重,需要請(qǐng)輸入1,不需要請(qǐng)輸入0。n");scanf("%d",&e);if(e=1)dowt();e=0;printf("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源電動(dòng)汽車充電樁安裝承包合同4篇
- 2025年度磚廠設(shè)備更新與承包合同4篇
- 二零二五年度高校講師聘請(qǐng)合同(含教學(xué)與科研)2篇
- 二零二五版場(chǎng)地綠化調(diào)查與規(guī)劃服務(wù)合同模板3篇
- 2025版民辦醫(yī)療機(jī)構(gòu)設(shè)備采購(gòu)與維修服務(wù)合同4篇
- 二零二五版過敏性疾病患者個(gè)性化治療方案合同3篇
- 2024預(yù)包裝食品倉(cāng)儲(chǔ)物流服務(wù)外包合同范本2篇
- 食堂就餐環(huán)境優(yōu)化合同(2025年度)3篇
- 2025年度交通運(yùn)輸履約保函服務(wù)標(biāo)準(zhǔn)3篇
- 二零二五年度二零二五智能城市建設(shè)項(xiàng)目合作協(xié)議4篇
- 天津市武清區(qū)2024-2025學(xué)年八年級(jí)(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產(chǎn)5000噸硅樹脂項(xiàng)目環(huán)境影響評(píng)價(jià)
- 高端民用航空復(fù)材智能制造交付中心項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 量子醫(yī)學(xué)成像學(xué)行業(yè)研究報(bào)告
- DB22T 3268-2021 糧食收儲(chǔ)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評(píng)定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
- GB 30254-2024高壓三相籠型異步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 高中語(yǔ)文新課標(biāo)必背古詩(shī)文72篇
評(píng)論
0/150
提交評(píng)論