优化算法发文必读!——12种桁架杆件问题优化

9 阅读8分钟

前言

在土木工程领域,桁架结构无处不在,从宏伟的体育馆屋顶到复杂的桥梁骨架,都离不开它的身影。工程师们一直在追求一个目标:用最少的材料,造出最稳固的結構。这不仅能大幅降低建造成本,也符合可持续发展的理念。

这就引出了结构优化设计中的经典问题——桁架杆件问题(Truss Problems, TPs)。其目标通常是在满足应力、位移和频率等约束条件下,最小化结构的重量。

传统方法面对桁架优化这种多约束、非线性难题,既求不了导,又容易卡在局部最优里出不来。而优化算法不需要梯度信息,能全局搜索,还能灵活处理应力、位移、频率这些复杂约束。

正文

本期选择几个2026年最新推出的新算法,在桁架****杆件问题上进行一个大比拼!就选择最近给大家分享的这四个2026新算法吧:

2026年1月最新一区优化算法——波动光学优化算法

2026年1月最新一区优化算法——强化量子天鹰优化器

2026年2月最新优化算法——侦探行为算法

2026年2月最新优化算法——牛顿下山优化算法

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-familyMenloMonacoConsolas"Courier New", monospace; font-style: normal; font-weight: normal; }
%% SettingsSelect Problem1 : 17  Bar Planar Truss Problem2 : 18  Bar Planar Truss Problem3 : 200 Bar Planar Truss Problem4 : 25  Bar Space Truss Problem5 : 72  Bar Space Truss Problem6 : 120 Bar Space Truss Problem7 : 10  Bar Truss Problem with Frequency Constraint8 : 37  Bar Truss Problem with Frequency Constraint9 : 52  Bar Truss Problem with Frequency Constraint10 : 942 Bar Space Truss Problem11 : 600 Bar Truss Problem with Frequency Constraint12 : 1410 Bar Truss Problem with Frequency Constraint
problem_type = 10;
switch problem_type
    case 1
        ObjectiveFunction = @(IndiTruss_analysis_17bar(Indi);
    case 2
        ObjectiveFunction = @(IndividualTruss_analysis_18bar(Individual);
    case 3
        ObjectiveFunction = @(IndividualTruss_analysis_200bar(Individual);
    case 4
        ObjectiveFunction = @(IndividualTruss_analysis_25bar(Individual);
    case 5
        ObjectiveFunction = @(IndividualTruss_analysis_72bar(Individual);
    case 6
        ObjectiveFunction = @(IndividualTruss_analysis_120bar(Individual);
    case 7
        ObjectiveFunction = @(IndividualTruss_modal_analysis_10bar(Individual);
    case 8
        ObjectiveFunction = @(IndividualTruss_modal_analysis_37bar(Individual);
    case 9
        ObjectiveFunction = @(IndividualTruss_modal_analysis_52bar(Individual);
    case 10
        ObjectiveFunction = @(IndividualTruss942ObjFnManual(Individual);
    case 11
        ObjectiveFunction = @(IndividualTruss_modal_analysis_600bar(Individual);
    case 12
        ObjectiveFunction = @(IndividualTruss_modal_analysis_1410bar(Individual);
end

算法对比

在12种问题上,运行4个算法,结果如下:

波动光学优化算法(WOO)、强化量子天鹰优化器(RLQFAO)、侦探行为算法(DBA)、牛顿下山优化算法(NDO)

代码目录如下:

有两个脚本可以运行,main_compare_Singlequestion.m一个是单独跑每一个问题的,run_all_problems.m是一键运行所有问题的。其他都是属于函数,无需更改!

代码获取

点击下方阅读原文跳转链接。

或者直接复制下方链接跳转:

mbd.pub/o/bread/YZW…