程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了最小化压力容器的总成本但答案不满足约束大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决最小化压力容器的总成本但答案不满足约束?

开发过程中遇到最小化压力容器的总成本但答案不满足约束的问题如何解决?下面主要结合日常开发的经验,给出你关于最小化压力容器的总成本但答案不满足约束的解决方法建议,希望对你解决最小化压力容器的总成本但答案不满足约束有所启发或帮助;

我编写了一个算法来解决压力容器设计问题。目标是最小化总成本,包括材料成本、成型成本和焊接成本。

该解决方案有四个值 x1x2x3x4,其中:
x1 是壳的厚度
x2 是头部的厚度
x3 是内半径 (R)
x4 是容器圆柱截面的长度。

这个问题的一个限制是,x1x2 应该是 0.0625 的整数倍。尽管获得了优异的结果,但我的算法不满足此约束。我在我的 MATLAB 代码中提供了目标函数和约束函数。如何在我的最终答案中满足这些约束?

最小化问题可以表述为:

function y = PrPf(X)
y = 0.6224*x(1)*x(3)*x(4)+1.7781*x(2)*x(3)^2+3.1661*x(1)^2*x(4)+19.84*x(1)^2*x(3);
@H_315_2@mATLAB 中的约束函数是:

function [g,geq]=consTraint(X)
%Inequality consTraints 
g(1)=-x(1)+0.0193*x(3);
g(2)=-x(2)+0.00954*x(3);
g(3)=-pi*x(3)^2*x(4)-(4/3)*pi*x(3)^3+1296000;
g(4)=x(4)-240;
% If no equality constraint at all,put geq=[] as follows
geq=[];

哪里:

0 <= x1 <= 99
0 <= x2 <= 99
10 <= x3 <= 200 
10 <= x4 <= 200 `

我的算法得到的结果是:

x1 = 0.8221372
x2 = 0.4063913
x3 = 42.59778
x4 = 170.5458

如您所见,x1x2 的值不是 0.0625 的倍数。查了这么多文章,发现很多方法都拿到了值:

x1 = 0.812500
x2 = 0.437500

0.0625 的倍数。需要做些什么来强制我的算法满足这些约束。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

@H_616_83@

大佬总结

以上是大佬教程为你收集整理的最小化压力容器的总成本但答案不满足约束全部内容,希望文章能够帮你解决最小化压力容器的总成本但答案不满足约束所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: