前言
在土木工程领域,桁架结构无处不在,从宏伟的体育馆屋顶到复杂的桥梁骨架,都离不开它的身影。工程师们一直在追求一个目标:用最少的材料,造出最稳固的結構。这不仅能大幅降低建造成本,也符合可持续发展的理念。
这就引出了结构优化设计中的经典问题——桁架杆件问题(Truss Problems, TPs)。其目标通常是在满足应力、位移和频率等约束条件下,最小化结构的重量。
传统方法面对桁架优化这种多约束、非线性难题,既求不了导,又容易卡在局部最优里出不来。而优化算法不需要梯度信息,能全局搜索,还能灵活处理应力、位移、频率这些复杂约束。
正文
本期选择几个2026年最新推出的新算法,在桁架****杆件问题上进行一个大比拼!就选择最近给大家分享的这四个2026新算法吧:
12种桁架****杆件问题介绍:
首先给出参考文献:
Öztürk H T, Kahraman H T. Meta-heuristic search algorithms in truss optimization: Research on stability and complexity analyses[J]. Applied Soft Computing, 2023, 145: 110573.
12种桁架****杆件问题包括:
平面桁架问题:17杆、18杆、200杆
空间桁架问题:25杆、72杆、120杆、942杆
频率约束问题(最难):10杆、37杆、52杆、600杆、1410杆
(1)17杆平面桁架
17杆桁架系统如下图[42]。该问题以结构重量最小化为目标,对17根杆件的截面进行优化搜索。由于各杆件截面相互独立、不进行分组,因此设计变量共有17个。截面面积的下限为0.1 平方英寸(0.645 平方厘米),上限为50.0 平方英寸(322.58 平方厘米)。搜索在这一范围内以连续变量形式进行。
如图所示,节点9处承受100 千磅(444.82 千牛)的荷载。该桁架系统在节点1和节点2处为铰支座连接。杆件材料的单位重量为0.268 磅/立方英寸(74.508 千牛/立方米),弹性模量为30,000 千磅/平方英寸(206,842.71 兆帕)。问题中包含应力和位移约束。杆件中的最大拉应力和压应力极限均为50 千磅/平方英寸(344.73 兆帕),所有节点的位移极限均为± 2.0 英寸(± 5.08 厘米)。
(2)18杆平面桁架
18根杆件的桁架系统,如图所示。
该问题优化搜索的目标是最小化结构重量,其设计变量包括分组的杆件横截面(分为4组)以及节点3、5、7和9的竖直和水平位置。总共有12个设计变量,包含横截面和节点位置。杆件分为四组,详见下表。
杆件横截面积这一设计变量的下限为3.5 平方英寸(22.581 平方厘米),上限为18.0 平方英寸(116.129 平方厘米)。作为几何设计变量的节点坐标的上下限在表3中给出。在这些区间内,使用连续变量进行搜索。如图中所示,节点1、2、4、6和8承受-20 千磅(88.96 千牛)的载荷。系统在节点10和11处与铰接支座连接。杆件材料的单位重量为0.1 磅/立方英寸(27.801 千牛/立方米),弹性模量为10,000 千磅每平方英寸(68,947.573 兆帕)。问题中包含了应力和位移约束。杆件中的最大拉应力和压应力限值为20 千磅每平方英寸(137.895 兆帕),所有节点的位移限值为±1.0 英寸(±2.54 厘米)。此外,杆件中的欧拉屈曲压应力通过公式(6)计算。
σᵇ = -kEA / L² (6)
其中,k是一个取决于截面几何形状的系数。在本研究中,k取常数值4。此外,E、A和L分别表示材料的弹性模量、杆件的横截面积和杆件的长度。
(3)200杆平面桁架
200根杆件的桁架系统,如图所示。
在该问题中,200个杆件单元被划分为29个不同的横截面组。因此,问题需要优化搜索29个不同的杆件横截面积,以最小化结构的重量。横截面积的下限为0.1 平方英寸(0.645 平方厘米),上限为20.0 平方英寸(129.032 平方厘米)。在此范围内使用连续变量进行搜索。结构承受三种不同的载荷工况,并检查每种工况下是否满足应力限制。这三种载荷工况在表5中给出。该系统在节点76和77处与铰接支座连接。杆件材料的单位重量为0.283 磅/立方英寸(78.678 千牛/立方米),弹性模量为30,000 千磅每平方英寸(206,842.71 兆帕)。该问题仅包含应力约束。杆件中的最大拉应力和压应力限值为10 千磅每平方英寸(68.947 兆帕)。
(4)25杆空间桁架
25杆桁架系统属于空间结构。
在该问题中,25根杆件按照下表给出的方式被划分为8个不同的截面组。因此,优化目标是搜索这8个不同的杆件截面积,以使结构重量最小化。
截面面积的下限为0.01 平方英寸(0.0645 平方厘米),上限为3.4 平方英寸(21.9354 平方厘米)。搜索在这一范围内以连续变量形式进行。该结构承受两种不同的荷载工况,每种工况下都需要检查是否满足应力限制。该桁架系统在节点7、8、9和10处为铰支座连接。杆件材料的单位重量为0.1 磅/立方英寸(27.801 千牛/立方米),弹性模量为10,000 千磅/平方英寸(68947.573 兆帕)。该问题仅包含应力约束。杆件的最大拉应力极限为40 千磅/平方英寸(275.790 兆帕)。对于每组杆件的压应力极限,在表中分别给出。
(4)120杆空间桁架
120杆桁架系统也属于空间结构。
在该问题中,120根杆件按照图给出的方式被划分为7个不同的截面组,目标是搜索这9个不同的杆件截面积,以使结构重量最小化。截面面积的下限为0.775 平方英寸(5 平方厘米),上限为20 平方英寸(129.032 平方厘米)。搜索在这一范围内以连续变量形式进行。在结构中,节点1处施加13.49 千磅(60 千牛)的荷载,节点2至14处施加6.744 千磅(30 千牛)的荷载,其余自由节点在负Z方向上施加2.248 千磅(10 千牛)的荷载。该桁架系统在节点38至49处为铰支座连接。杆件材料的单位重量为0.288 磅/立方英寸(80.067 千牛/立方米),弹性模量为30,450 千磅/平方英寸(209,945.36 兆帕)。问题中包含应力和位移约束。自由节点的位移被限制在± 0.1969 英寸(± 0.50 厘米)范围内。拉应力极限由如下公式计算。
其他没涉及到的衔架这里就不再一一赘述,代码做了很好的集成,将所有问题统一了接口函数:
.rtcContent { padding: 30px; } .lineNode {font-size: 10pt; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
%% Settings
% Select Problem
% 1 : 17 Bar Planar Truss Problem
% 2 : 18 Bar Planar Truss Problem
% 3 : 200 Bar Planar Truss Problem
% 4 : 25 Bar Space Truss Problem
% 5 : 72 Bar Space Truss Problem
% 6 : 120 Bar Space Truss Problem
% 7 : 10 Bar Truss Problem with Frequency Constraint
% 8 : 37 Bar Truss Problem with Frequency Constraint
% 9 : 52 Bar Truss Problem with Frequency Constraint
% 10 : 942 Bar Space Truss Problem
% 11 : 600 Bar Truss Problem with Frequency Constraint
% 12 : 1410 Bar Truss Problem with Frequency Constraint
problem_type = 10;
switch problem_type
case 1
ObjectiveFunction = @(Indi) Truss_analysis_17bar(Indi);
case 2
ObjectiveFunction = @(Individual) Truss_analysis_18bar(Individual);
case 3
ObjectiveFunction = @(Individual) Truss_analysis_200bar(Individual);
case 4
ObjectiveFunction = @(Individual) Truss_analysis_25bar(Individual);
case 5
ObjectiveFunction = @(Individual) Truss_analysis_72bar(Individual);
case 6
ObjectiveFunction = @(Individual) Truss_analysis_120bar(Individual);
case 7
ObjectiveFunction = @(Individual) Truss_modal_analysis_10bar(Individual);
case 8
ObjectiveFunction = @(Individual) Truss_modal_analysis_37bar(Individual);
case 9
ObjectiveFunction = @(Individual) Truss_modal_analysis_52bar(Individual);
case 10
ObjectiveFunction = @(Individual) Truss942ObjFnManual(Individual);
case 11
ObjectiveFunction = @(Individual) Truss_modal_analysis_600bar(Individual);
case 12
ObjectiveFunction = @(Individual) Truss_modal_analysis_1410bar(Individual);
end
算法对比
在12种问题上,运行4个算法,结果如下:
波动光学优化算法(WOO)、强化量子天鹰优化器(RLQFAO)、侦探行为算法(DBA)、牛顿下山优化算法(NDO)
代码目录如下:
有两个脚本可以运行,main_compare_Singlequestion.m一个是单独跑每一个问题的,run_all_problems.m是一键运行所有问题的。其他都是属于函数,无需更改!
代码获取
点击下方阅读原文跳转链接。
或者直接复制下方链接跳转: