收藏 分享(赏)

六跨连续梁内力计算程序程序.doc

上传人:HR专家 文档编号:11577942 上传时间:2020-07-05 格式:DOC 页数:12 大小:228.50KB
下载 相关 举报
六跨连续梁内力计算程序程序.doc_第1页
第1页 / 共12页
六跨连续梁内力计算程序程序.doc_第2页
第2页 / 共12页
六跨连续梁内力计算程序程序.doc_第3页
第3页 / 共12页
六跨连续梁内力计算程序程序.doc_第4页
第4页 / 共12页
六跨连续梁内力计算程序程序.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、六跨连续梁内力计算程序说明文档一 程序适用范围本程序用来解决六跨连续梁在荷载作用下的弯矩计算。荷载可以是集中力Fp(作用于跨中)、分布荷载q(分布全垮)、集中力偶m(作用于结点)的任意组合情况。端部支承可为铰支或固支。二 程序编辑方法使用Turbo C按矩阵位移法的思路进行编辑,用Turbo C中的数组来完成矩阵的实现,关键的求解K=P的步骤用高斯消元法。三 程序使用方法运行程序后,按照提示,依次输入结点编号,单元编号,单元长度,抗弯刚度(EI的倍数),集中力,均部荷载,集中力偶,各个数据间用空格隔开,每一项输入完毕后按回车键,所有数据输入完毕后按任意键输出结果。输出结果中包括输入的数据(以便

2、校核),角位移的值(以1/EI为单位)以及每个单元的左右两端弯矩值。四 程序试算1 算例1算力图示:输入数据:结点:1 2 3 4 5 6 0;单元:1 2 3 4 5 6;长度:4 6 6 8 4 6;EI:1 1.5 1 2 1 1.5;Fp:0 12 8 0 6 0;q:8 0 0 4 0 6;m:0 0 -8 0 10 0 0运行程序如下:结果为:角位移为:单元编号123456左端弯矩0.00000-14.92439-7.30243-12.37565-8.16809-7.95197右端弯矩14.92439-0.6975712.3756518.168097.9519723.02401弯矩

3、图如下:2 算例2算例图示:输入数据:结点:0 1 2 3 4 5 6;单元:1 2 3 4 5 6;长度:4 6 6 8 4 6;EI:1 1.5 1 2 1 1.5;Fp:0 12 8 0 6 0;q:8 0 0 4 0 6;m:0 0 -8 0 10 0 0运行程序如下:结果为:角位移为:单元编号123456左端弯矩-9.82331-12.35339-7.76314-12.55393-6.58562-14.10360右端弯矩12.35339-0.2368612.5539316.5856214.103600.00000弯矩图如下:3 算例3算例图示:输入数据:结点:0 1 2 3 4 5

4、0;单元:1 2 3 4 5 6;长度:4 6 6 8 4 6;EI:1 1.5 1 2 1 1.5;Fp:0 12 8 0 6 0;q:8 0 0 4 0 6;m:0 0 -8 0 10 0 0运行程序如下:结果为:角位移为:单元编号123456左端弯矩-9.83978-12.32059-7.87793-12.19318-8.21722-7.93794右端弯矩12.32059-0.1220712.1931818.217227.9379423.03103弯矩图如下:4 算例4算例图示:输入数据:结点:1 2 3 4 5 6 7;单元:1 2 3 4 5 6;长度:4 6 6 8 4 6;EI:

5、1 1.5 1 2 1 1.5;Fp:0 12 8 0 6 0;q:8 0 0 4 0 6;m:0 0 -8 0 10 0 0运行程序如下:结果为:角位移为:单元编号123456左端弯矩-0.00000-14.25984-7.18863-12.73600-6.53707-14.11573右端弯矩14.95284-0.8113712.7360016.5370714.115730.00000弯矩图如下:五源程序#include#include定义变量int joint7; 结点编号int unit6; 单元编号float length6; 长度float EI6; 抗弯刚度float P6; 集中

6、力float q6; 均部荷载float m7; 集中力偶double I6; 线刚度int number=7,i,j;double K77=0; 整体刚度矩阵double k622; 单元刚度矩阵double MP62,Mq62,Mlast62,M7=0,tatleM7,mm7,Mqueue7=0,antiM7=0;依次为:集中力、均布荷载引起的固端弯矩,最终杆端弯矩,全部荷载引起的弯矩,总的结点荷载,按结点编号排列的结点集中力偶,按结点编号排列的固端弯矩,等效结点弯矩double angle7=0; 角位移void input(); 输入函数void solve(); 求解函数void o

7、utput(); 输出函数void Gauss(); 高斯消元法void main() input(); solve(); output();void input() clrscr(); printf(Please input data.nnThe joint number:); for(i=0;i7;i+) scanf(%d,&jointi); printf(nThe unit number:); for(i=0;i6;i+) scanf(%d,&uniti); printf(nThe length:); for(i=0;i6;i+) scanf(%f,&lengthi); printf(n

8、The EI:); for(i=0;i6;i+) scanf(%f,&EIi); printf(nThe Fp:); for(i=0;i6;i+) scanf(%f,&Pi); printf(nThe q:); for(i=0;i6;i+) scanf(%f,&qi); printf(nThe m:); for(i=0;i6;i+) scanf(%f,&mi);void solve() for(i=0;i7;i+)if(jointi=0) number-=1; for(i=0;i6;i+) MPi0=-Pi*lengthi/8;MPi1=Pi*lengthi/8; for(i=0;i6;i+)

9、 Mqi0=-qi*lengthi*lengthi/12;Mqi1=qi*lengthi*lengthi/12; for(i=1;i6;i+) Mi=MPi-11+MPi0+Mqi-11+Mqi0; M0=MP00+Mq00; M6=MP51+Mq51; if(joint0=0)j=1;else j=0; for(i=j;i=1;i+) Mqueuejointi-1=Mi; mmjointi-1=mi; for(i=0;i7;i+) antiMi=-Mqueuei; for(i=0;i7;i+) tatleMi=antiMi+mmi; for(i=0;i6;i+) Ii=(EIi/length

10、i); if(joint0=0) Kjoint1-1joint1-1+=4*I0; if(joint6=0) Kjoint5-1joint5-1+=4*I5; for(i=0;i=1&jointi+1=1&i6;i+) Kjointi-1jointi-1+=ki00; Kjointi-1jointi+1-1+=ki01; Kjointi+1-1jointi-1+=ki10; Kjointi+1-1jointi+1-1+=ki11; getch();void output() clrscr(); printf(The data you put in:ntjoint :); for(i=0;i7;

11、i+) printf(t); printf(%d,jointi); printf(nntunit :); for(i=0;i6;i+) printf(t); printf(%d,uniti); printf(nntlength :); for(i=0;i6;i+) printf(t); printf(%1.0f,lengthi); printf(nntEI :); for(i=0;i6;i+) printf(t); printf(%1.1f,EIi); printf(nntFp :); for(i=0;i6;i+) printf(t); printf(%1.0f,Pi); printf(nnt

12、q :); for(i=0;i6;i+) printf(t); printf(%1.0f,qi); printf(nntm :); for(i=0;i6;i+) printf(t); printf(%1.0f,mi); Gauss(); for(i=0;i6;i+) Mlasti0=ki00*anglejointi-1+ki01*anglejointi+1-1+MPi0+Mqi0; Mlasti1=ki10*anglejointi-1+ki11*anglejointi+1-1+MPi1+Mqi1; printf(n-); printf(nThe angle(1/EI):nn); for(i=0

13、;inumber;i+) printf(%12.6f,anglei); printf(n-); printf(nunit number); for(i=0;i6;i+) printf(%6d ,uniti); printf(nnleft M t); for(i=0;i6;i+) printf(%12.5f,Mlasti0); printf(nnright Mt); for(i=0;i6;i+) printf(%12.5f,Mlasti1); getch();void Gauss() int l,m;double box; double BOX7=0;for(j=0;j(number-1);j+

14、) for(i=j;inumber;i+) if(Kij!=0) for(m=0;mnumber;m+) BOXm=Kim;Kim=Kjm;Kjm=BOXm; box=tatleMi;tatleMi=tatleMj;tatleMj=box; break; for(m=j+1;mnumber;m+) Kjm/=Kjj; tatleMj/=Kjj; Kjj=1; for(l=j+1;l=j;m-) Klm+=-Kjm*Klj; tatleMnumber-1/=Knumber-1number-1; Knumber-1number-1=1; for(i=0;i=0;i-) for(j=number-1;ji;j-) anglei=anglei-Kij*anglej;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 高中教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报