桁架结构优化设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
桁架结构优化设计
一般所谓的优化,是指从完成某一任务所有可能方案中按某种标准寻找最佳方案。结构优化设计的基本思想是,使所设计的结构或构件不仅满足强度、刚度与稳定性等方面的要求,同时又在追求某种或某些目标方面(质量最轻,承载最高,价格最低,体积最小)达到最佳程度。
对于图1-1的结构,已知L=2m,x b=1m,载荷P=100kN,桁架材料的密度r=7.7x10-5N/mm3,[δt]=150Mpa,[δc]=100Mpa,y b的范围:0.5m≦y b≦1.5m。
图1-1 桁架结构
设计变量与目标函数(质量最小)
预定参数(设计中已确定,设计者不能任意修改的量):L , x b ,P ,r ,[δt ] ,[δc ]
设计变量(可由设计者调整的量)y b ,A 1,A 2 约束条件(对设计变量的约束条件) (1) 强度条件约束(截面、杆件的强度) (2) 几何条件约束(B 点的高度范围) 目标函数:桁架的质量W (最小)
解:1. 应力分析
0sin sin 02112=--=∑θθN N F x
0cos cos 02112=---=∑P N N F
y
θθ
由此得:
)sin(sin 2111θθθ+=
p N )
sin(sin 212
2θθθ+-
=p N
由正弦定理得:
l
y l x p
N B B 2
1)
(2
-+=
l
y x p
N B
B 2
22
+=
由此得杆1和2横截面上的正应力
1
2
1)
(2
lA y l x p
B B -+=
σ
2
2
22
lA y x p
B B +=
σ
2.最轻质量设计
目标函数(桁架的质量)
))((2
2
2
1
2
2
B B y x A y l x A W B B ++-+=γ
(1-1)
约束条件
[][]⎪
⎪
⎭
⎪⎪
⎬⎫⎪⎪⎩
⎪⎪⎨⎧≤+≤-+c B t B lA y x p lA y l x p B B σσ2
2
1
2
22
)
( (1-2)
0.5≦y b ≦1.5(m ) (1-3) (于是问题归结为:在满足上述约束条件下,确定设计变量y b ,A 1,A 2,使目标函数W 最小。) 3.最优解搜索
采用直接实验法搜索。首先在条件(1-3)所述范围内选取一系列y b 值,由强度条件(1-2)确定A 1与A 2,最后根据式(1-2)计算相应W ,在y b -W 曲线中选取使W 最小的y b 与相应的A 1与A 2,即为本问题的最优解。 4.利用MA TLAB 编程 (1)分析目标函数和约束条件
由已知L=2m ,x b =1m ,载荷P=100kN ,桁架材料的密度r=7.7x10-5N/mm 3,[δt ]=150Mpa ,[δc ]=100Mpa ,y b 的范围:0.5m ≦y b ≦1.5m 。
利用约束条件(1-2)。可以分析最优解时:
A 1与A 2取最小面积时,约束条件即取等号。即(1-2)中两不等式取等号。如下
]
[]
[)
(2
2
2
1
2
2
c b b t b b lA y x p
lA y l x p
σσ=+=-+ (1-4)
代人已知条件得:
200
1300)
2(12
22
1b b y A y A +=
-+=
(1-5)
将(9-25)代人(9-21)得
)200
)1(300
)
)2(1((
107.72
2
4
b b y y W ++
-+⨯= (1-6)
0.5≦y b ≦1.5(m )
式(1-6)即为所求目标函数,求出其最小值,就是本问题的最优解。所以采样二次插值法求极值 (3) 流程图 如图1-2
图1-2二次插值法程序框图
(3)MA TLAB程序
程序中F为目标函数W,而x为y b。目标函数化为计算机认识的函数为:
F=256.66667*(5-4*x+x^2)^1.5+385*(1+x^2)^1.5;
利用二次插值法求极小值。
function eccz
syms x;%定义
f=256.66667*(5-4*x+x^2)+385*(1+x^2);%目标函数a1=0.5;a2=1.5;%区间0.5≦y b≦1.5
a3=1;%中间点
k=0;
while (abs(a3-a1)>1.0e-7)%精度为10-7
f1=subs(f,x,a1);%循环内为二次插值过程
f2=subs(f,x,a2);
f3=subs(f,x,a3);
C1=(f3-f1)/(a3-a1);
C2=((f2-f1)/(a2-a1)-C1)/(a2-a3);
ap=0.5*(a1+a3-C1/C2);
fp=subs(f,x,ap);
if ap>a2;
if f2>=fp
a1=a2;
f1=f2;
a2=ap;
f2=fp;
else
a3=ap;