主要内容

利用遗传算法求解一个混合整数工程设计问题

这个例子展示了如何使用遗传算法(ga)求解器在全局优化工具箱。

在这个例子中所说明的问题涉及到一个阶梯悬臂梁的设计。特别地,梁必须能够承受规定的端荷载。在各种工程设计约束下,我们将解决一个最小化梁体积的问题。

在本例中,我们将解决[1]中发布的问题的两个有界版本。

阶梯悬臂梁设计问题

一端支承阶梯式悬臂梁,自由端施加荷载,如下图所示。金宝app梁必须能够承受给定的载荷,金宝app$P$,在一个固定的距离1美元$的支持。金宝app梁的设计者可以改变梁的宽度(b_i美元)身高($h_i$)。我们假设悬臂的每个部分都有相同的长度,1美元$

射束体积

光束的体积,五美元,是各部分体积的总和

$ $ V = l (b_1h_1 + b_2h_2 + b_3h_3 + b_4h_4 + b_5h_5) $ $

设计约束:1 -弯曲应力

考虑一个悬臂梁,其中心位于其自由端的横截面中心处,一点处的弯曲应力。(x, y, z)美元在梁中,由以下等式给出

$ $ \ sigma_b = M (x) y /我$ $

在哪里M (x)美元弯矩为x美元,x美元距离终端负载和的距离$I$是梁的面积惯性矩。

现在,在图中所示的阶梯式悬臂梁中,梁各截面的最大弯矩为$PD_i$,在那里d1美元为到端荷载的最大距离,$P$,用于梁的每一段。因此,最大应力为我美元-梁的第四部分,$\sigma\u i$,由

$$\sigma\u i=PD\u i(h\u i/2)/i\u i$$

最大应力出现在梁的边缘,$y=h_i/2$.面积惯性矩我美元梁的截面为

$ $ $ $ I_i = b_ih_i ^ 3/12

将其代入方程中$\sigma\u i$给了

$ $ \ sigma_i = 6 pd_i / b_ih_i ^ 2 $ $

悬臂各部分的弯曲应力不应超过最大许用应力,$\sigma_{max}$.因此,我们最终可以陈述五个弯曲应力约束(悬臂的每一步一个)

$ $ \压裂{6 pl} {b_5h_5 ^ 2} \ leq \ sigma_{马克斯}$ $

$$\frac{6P(2l)}{b_4h_4^2}\leq\sigma_{max}$$

$ $ \压裂{6 p l (3)} {b_3h_3 ^ 2} \ leq \ sigma_{马克斯}$ $

$$\frac{6P(4l)}{b_2h_2^2}\leq\sigma_{max}$$

$$\frac{6P(5l)}{b_1h_1^2}\leq\sigma_{max}$$

设计约束:2 -端部挠度

悬臂梁的端部挠度可以使用Castigliano第二定理计算,该定理指出

$$ {/ * * * * * * * * * * * * * * * * * * *

在哪里$\delta$为梁的挠度,你美元为由于施加的力而存储在光束中的能量,$P$

储存在悬臂梁中的能量为

$$U = \int_0^L \!M^2/2EI \, \ mathm {d} x$$

在哪里百万美元$作用力的力矩是在x美元

考虑到$M=Px$对于悬臂梁,我们可以把上面的方程写成

# e $ e $ e $ e $ e[(x + 4 l) ^ 2 / I_1 \ & # xA;+ (x + 3 l) ^ 2 / I_2 \ & # xA;+ l (x + 2) ^ 2 / I_3 \ & # xA;+ (x + l) ^ 2 / I_4 \ & # xA;+ x^2/I_5]\, \ mathm {d} x$$

在哪里$I\n$面积的转动惯量是$n$-悬臂的一部分。对这个积分求值得到下面的表达式你美元

$$U=(P^2/2)(l^3/3E)(61/I_1+37/I_2+19/I_3+7/I_4+1/I_5)$$

应用卡斯蒂利亚诺定理,给出了梁的端部挠度

$ $ \δ= Pl ^ 3/3E (61 / I_1 + 37 / I_2 + 19 / I_3 + 7 / I_4 + 1 / I_5) $ $

现在,悬臂的末端挠度,$\delta$,应小于最大允许挠度,$ \ delta_{马克斯}$,这给了我们以下约束条件。

$ $ Pl ^ 3/3E (61 / I_1 + 37 / I_2 + 19 / I_3 + 7 / I_4 + 1 / I_5) \ leq& # xA; \ delta_{马克斯}$ $

设计约束:3 -长宽比

对于悬臂的每一步,长宽比不得超过最大允许的长宽比,美元现代{马克斯}$.也就是说,

$h_i/b_i\leq a{max}$对于$i=1,…,5$

描述优化问题

我们现在能够陈述问题,以找到最优参数的阶梯式悬臂梁给定的约束条件。

x_1 = b_1美元,x_2 = h_1美元,$x_3=b_2$,x_4 = h_2美元,x_5 = b_3美元,x_6 = h_3美元,$x_7=b_4$,x_8 = h_4美元,x_9 = b_5美元美元间{10}= h_5 $

减少:

$ $ V = l (x_1x_2 + x_3x_4 + x_5x_6 + x_7x_8 + x_9x_ {10}) $ $

主题:

$$\frac{6Pl}{x_9x{10}^2}\leq\sigma{max}$$

$$\frac{6P(2l)}{x_7x_8^2}\leq\sigma{max}$$

$ $ \压裂{6 p l (3)} {x_5x_6 ^ 2} \ leq \ sigma_{马克斯}$ $

$$\frac{6P(4l)}{x_3x_4^2}\leq\sigma_{max}$$

$ $ \压裂{6 p (5 l)} {x_1x_2 ^ 2} \ leq \ sigma_{马克斯}$ $

$$\frac{Pl^3}{E}(\frac{244}{x_1x_2^3}+\frac{148}{x_3x_4^3}+&xA;\frac{76}{x_5x_6^3}+\frac{28}{x_7x_8^3}+&xA x#x#x#x#x#x{5x#u6^3}+\frac{max}$$

$ $ x_2 / x_1 \ leq 20 $ $ $ $ x_4 / x_3 \ leq 20 $ $ $ $ x_6 / x_5 \ leq 20 $ $ & # xA; $ $ x_8 / x_7 \ leq 20 $ $ $ $间{10}/ x_9 \ leq 20 $ $

横梁的第一步只能加工到最近的厘米。也就是说,x_1美元x_2美元必须是整数。其余的变量是连续的。变量的边界如下:-

$$1 \leq x_1 \leq 5$

$$30\leq x_2\leq 65$$

$$2.4 \leq x_3, x5 \leq 3.1$$

$$45 \leq x4, x6 \leq 60$$

$$1 \leq x_7, x_9 \leq 5$$

$30 \leq x8, x_{10} \leq 65$

这个问题的设计参数

对于本例中我们要解决的问题,梁必须支撑的端部荷载为金宝app$ p = 50000 n $

梁的长度和最大端部挠度为:

  • 梁的总长度,$L = 500 cm$

  • 梁的个别截面,$l = 100 cm$

  • 最大梁端挠度,$\delta_{max} = 2.7 cm$

梁每一步的最大允许应力,$\sigma_{max}=14000 N/cm^2$

梁每一步的杨氏模量,$E = 2 × 10^{7} N/cm^2$

求解混合整数优化问题

我们现在解决中描述的问题描述优化问题

定义适应度和约束函数

检查MATLAB文件悬臂体积,mcantileverConstraints.m查看适应度和约束函数是如何实现的。

关于线性约束的一个注意事项:当线性约束指定为ga,通常通过A.,B,Aeq贝基输入。在这种情况下,我们通过非线性约束函数来指定它们。这是因为在这个例子的后面,一些变量将变成离散的。当问题中存在离散变量时,在非线性约束函数中指定线性约束要容易得多。另一种方法是修改线性约束矩阵,使其在变换的变量空间中工作,这不是平凡的,也许是不可能的。同样,在混合整数中ga求解器中,线性约束与非线性约束没有任何区别,不管它们是如何指定的。

设置范围

创建包含下限的向量()及上限约束(乌兰巴托).

lb=[1302.4452.445130130];ub=[5653.1603.160565565];

设置选项

为了得到更精确的解,我们增加PopulationSize,最大世代选项的默认值,并减少EliteCount功能公差选项。这些设置会导致ga使用更大的填充(增加PopulationSize),增加设计空间的搜索(减少EliteCount),并一直进行,直到其最佳成员的变化非常小(小功能容忍度)。我们还指定一个plot函数来监视惩罚函数的值为ga进步。

注意,有一个限制的集合ga解决混合整数问题时可用的选项-有关详细信息,请参阅全局优化工具箱用户指南。

选择= optimoptions (@ga,...“人口规模”, 150,...“MaxGenerations”, 200,...“精英账户”10...“FunctionTolerance”,1e-8,...“PlotFcn”, @gaplotbestf);

调用ga解决问题

我们现在可以打电话了ga解决问题。在问题陈述中x_1美元x_2美元是整数变量。我们通过传递下标向量来指定它(1 2)ga在非线性约束输入之后,在期权输入之前。我们还在这里播种和设置随机数生成器以保证重现性。

rng (0,“龙卷风”);[xb, fb, exitflag] = ga (@cantileverVolume 10 , [], [], [], [],...lb, ub, @ cantileconstraints, [1 2], opts);
优化已终止:超过最大生成数。

分析结果

如果问题有整数约束,ga哈贝马斯在内部。特别地,问题中的适应度函数被处理约束的惩罚函数所代替。对于可行种群成员,惩罚函数与适应度函数相同。

解决方案从ga如下所示。请注意,距离支撑最近的截面被约束为具有宽度(金宝appx_1美元)身高(x_2美元),它是一个整数值,该约束已被GA遵守。

显示(xb);
xbest =列1至7 3.0000 60.0000 2.8326 56.6516 2.5725 51.4445 2.2126列8至10 44.2423 1.7512 34.9805

我们也可以问ga以返回光束的最佳体积。

fprintf('\nCost函数由ga = %g\n'返回、fb);
由ga = 63196.6返回的代价函数

添加离散非整数变量约束

工程师们现在被告知,悬臂的第二和第三个台阶的宽度和高度只能从标准设置中选择。在本节中,我们将展示如何将这个约束添加到优化问题中。注意,添加了这个约束后,这个问题与[1]中解决的问题是相同的。

首先,我们陈述将添加到上述优化中的额外约束

  • 横梁第二步和第三步的宽度必须从以下设置中选择:-[2.4,2.6,2.8,3.1]cm

  • 横梁第二步和第三步的高度必须从以下设置中选择:-[45,50,55,60]cm

为了解决这个问题,我们需要能够指定变量x_3美元,x_4美元,x_5美元x_6美元离散变量。指定一个组件x_j美元从集合中获取离散值$ S = {v_1, \ ldots v_k} $、优化与x_j美元取值范围为1到1的整数变量$k$,并使用$S(x_j)$作为离散值。指定范围(1到$k$),设1为下界和$k$作为上限。

首先,我们转换离散变量的上下限。每个集合有4个成员,我们将离散变量映射到[1,4]范围内的整数。为了把这些变量映射成整数,我们把每个变量的下界设为1上界设为4。

lb=[13013130];ub=[56544565];

的转换(整数)版本x_3美元,x_4美元,x_5美元x_6美元将被传递到适应度和约束函数,当ga解算器。为了正确计算这些函数,x_3美元,x_4美元,x_5美元x_6美元需要转换为这些函数中给定的离散集合中的一个元素。要了解这是如何完成的,请检查MATLAB文件cantileverVolumeWithDisc.m,cantileverConstraintsWithDisc.mcantileverMapVariables.m

现在我们可以调用ga解决离散变量问题。在这种情况下$x_1,…,x_6$都是整数。这意味着我们传递了下标向量1:6ga定义整数变量。

rng (0,“龙卷风”);[xbestDisc, fbestDisc, exitflagDisc] = ga(@悬臂volumewithdisc,...10、[]、[]、[]、[]、[]、lb、ub、@悬臂约束带圆盘,1:6,选项);
优化已终止:超过最大生成数。

分析结果

xbestDisc(三6)是回来ga作为整数(即处于转换状态)。我们需要反转转换以检索其工程单位中的值。

xbestDisc = cantileverMapVariables (xbestDisc);显示(xbestDisc);
xbestDisc =列1至7 3.0000 60.0000 3.1000 55.0000 2.8000 50.000 2.3036列8至10 43.6153 1.7509 35.0071

和以前一样,解决方案返回ga尊重x_1美元x_2美元是整数,我们也可以看到x_3美元,x_5美元从一套[2.4,2.6,2.8,3.1]厘米和x_4美元,x_6美元从一套[45,50,55,60]厘米中选择。

回想一下,我们在变量上添加了额外的约束x(3),x(4),x (5)x(6)。正如预期的那样,当这些变量上存在额外的离散约束时,最优解的最小体积更大。进一步注意,[1]中报告的解的最小体积为$64558厘米^3$我们找到了一个近似于[1]的解。

fprintf('\nCost函数由ga = %g\n'返回,fbestDisc);
ga返回的成本函数=65226.5

总结

这个例子演示了如何使用遗传算法求解器,ga,求解具有整数约束的非线性优化问题。这个例子也显示了如何处理离散变量的问题,在问题的公式化。

参考文献

[1] 结构设计离散变量优化综述,P.B.Thanedar,G.N.Vanderplaats,J.Struct.Engine.,121(3),301-306(1995)

相关的话题