连续梁弯矩图的计算

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

结力大作业报告连续梁的矩阵位移计算
水工81
2008010226
彭慧民
2010-10-30
结力大作业报告
1、问题描述
通过矩阵位移法计算连续梁的杆端弯矩,画出弯矩图。

报告通过用matlab编程序,实现了连续梁杆端弯矩的计算机计算,并且输出弯矩图。

2、知识介绍
矩阵位移法的要点是先将结构整体拆开,分解成若干个单元,然后再将这些单元通过定位向量集合成整体,包括单元分析和集合成整体两部分。

单元分析中,要建立单元刚度方程,形成单元刚度矩阵;整体分析中,要将单元集合成整体,由单元刚度矩阵按照刚度集成规则形成整体刚度矩阵,建立整体结构的位移法方程,从而求出解答。

计算连续梁的杆端弯矩的步骤如下:
➢将连续梁的结点和位移进行编号,写出定位向量;
➢对应于连续梁的单元刚度矩阵是
42
24
EI EI
l l
EI EI
l l
⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭

根据连续梁上的实际情况,分别写出每一段的单元刚度矩阵;
➢根据定位向量,写出整体刚度矩阵;
➢根据外加荷载,求等效结点荷载;
➢解方程组,求位移;
➢根据单元刚度矩阵和定位向量,求出杆端弯矩;
➢画出弯矩图。

3、程序代码
>> L=[4,6,8];%定义梁长度的数组,L(1)=4M,L(2)=6M,L(3)=8M
>> EI=[1,1.5,2];%定义梁刚度,EI(1)=EI,EI(2)=1.5EI,EI(3)=2EI
>> P=[40,50,80];%定义跨中荷载的大小,P(1)=40,P(2)=50,P(3)=80 >> q=[15,30,20];%定义跨上的连续荷载大小,q(1)=15,q(2)=30,q(3)=20
>> n=5;
>> rEI=[EI(1),EI(3),EI(1),EI(1),EI(2)];
>> rL=[L(1),L(2),L(3),L(2),L(1)];
>> ri=[rEI(1)/rL(1),rEI(2)/rL(2),rEI(3)/rL(3),rEI(4)/rL(4),rEI(5)/rL(5)];
>> %下面是固端荷载
>> outerP=[0,P(3),0,P(2),0];
>> outerQ=[q(2),0,q(2),0,0];
>> direct=zeros(n,2);
>> for i=1:n
direct(i,1)=i-1;
direct(i,2)=i;
end %输入定位向量和连续梁的数据
>> element=zeros(2*n,2);
for i=1:n
element(2*i-1,1)=4*ri(i);
element(2*i-1,2)=2*ri(i);
element(2*i,1)=2*ri(i);
element(2*i,2)=4*ri(i);
end %单元刚度矩阵
>> structure=zeros(n,n);
for i=1:(n-1)
structure(i,i)= structure(i,i)+element(2*i,2)+element(2*i+1,1);
structure(i,i+1)= structure(i,i+1)+element(2*i+1,2);
end
>> structure(n,n)= structure(n,n)+element(2*n,2);
>> %这是整体刚度矩阵
>> for i=2:n
structure(i,i-1)=structure(i-1,i);
end
>> %得到对称的整体刚度矩阵
>> %下面是结点固端荷载
P=zeros(1,n);
for i=1:(n-1)
P(i)=P(i)+(1/8)*outerP(i)*rL(i)+(1/12)*outerQ(i)*rL(i)*rL(i)-(1/8)*outerP(i+1)*rL(i+1)-(1/12)*outerQ( i+1)*rL(i+1)*rL(i+1);
end
>> P(n)=P(n)+(1/8)*outerP(n)*rL(n)+(1/12)*outerQ(n)*rL(n)*rL(n);
>> P=-P;
>> P=P';
>> %下面解方程组,求位移向量
>> X=structure\P;
>> %下面求杆端弯矩
>> F=zeros(2*n,1);
>>
F(1:2)=element(1:2,:)*[0,X(1,1)]'+[-(1/8)*outerP(1)*rL(1),(1/8)*outerP(1)*rL(1)]'+[-(1/12)*outerQ( 1)*rL(1)*rL(1),(1/12)*outerQ(1)*rL(1)*rL(1)]';
>> for i=2:n
F((2*i-1):(2*i))=element((2*i-1):(2*i),:)*X((i-1):i)+[-(1/8)*outerP(i)*rL(i),(1/8)*outerP(i)*rL(i)]'+[-(1/ 12)*outerQ(i)*rL(i)*rL(i),(1/12)*outerQ(i)*rL(i)*rL(i)]';
end
>> %下面开始画弯矩图
>> line=zeros(1,2*n+1);
>> for i=2:(2*n+1)
line(i)=line(i-1)+(1/2)*rL(floor(i/2));
end
>> torque=zeros(1,2*n+1);
>> torque(1)=-F(1);
>> torque(2*n+1)=-F(2*n);
>> for i=1:(n-1)
torque(2*i+1)=F(2*i);
end
>> for i=1:n
torque(2*i)=(1/2)*(torque(2*i-1)+torque(2*i+1))-(1/8)*outerQ(i)*rL(i)*rL(i)-(1/4)*outerP(i)*rL(i); end
>> plot(line,torque,'r*');
>> hold on, z=0*line;plot(line,z),hold off;
程序说明:
➢可以改变输入的n值,相应地改变输入的连续梁各跨的长度、EI、i,可以改变相应向量的维数,但是维数必须等于每次输入的n;
➢输入好数据之后,将以上代码粘贴到matlab里面,就可以输出弯矩图了,输出的弯矩图是散点图,可以自己根据实际作用的外加荷载,将散点连接起来。

4、运行结果
结点弯矩值如下:
-46.5600
26.8800
-26.8800
152.4802
-152.4802
118.0996
-118.0996
-1.9383
1.9383
-0.0000
弯矩图:
5、总结和感想
➢通过编程,更加熟悉了矩阵位移法的步骤和思想;
➢学习了matlab的使用,提高了编程能力;
➢领悟到,不管问题多么复杂,都应该试图尝试一下,遇到问题不要轻易放弃。

相关文档
最新文档