分析使用半无限规划的不确定性的影响
这个例子展示了如何使用半无限规划研究的影响的模型参数优化问题的不确定性。我们将制定和解决使用函数的优化问题fseminf在优化工具箱™,半无限规划求解。
这个问题说明在这个例子中涉及的控制空气污染。具体来说,一组烟囱将建立在一个特定的地理区域。随着每个烟囱的高度增加,地面从堆栈中污染物的浓度降低。然而,每个烟囱的建筑成本增加与高度。我们将解决问题最小化累积烟囱的高度,因此工程造价,地面污染浓度不超过一个立法限制。这个问题在以下参考:
空气污染控制与半无限编程,A.I.F. Vaz提到过费雷拉,二十八Congreso Nacional de Estadistica e Investigacion Operativa, 2004年10月
在这个示例中,我们将首先解决这个问题在上面的文章发表<年代pan class="emphasis">最小的烟囱高度问题。这个问题的模型依赖于几个参数,其中两个是风速和风向。所有模型参数都认为是清楚在第一个问题的解决方案。
然后我们扩展原始问题通过允许风速和方向参数在给定的范围内变化。这将使我们能够分析这些参数的不确定性的影响这个问题的最优解。
最小的烟囱高度的问题
考虑一个20 km-by-20km地区,R,十个烟囱被放置。这些烟囱几个污染物释放到大气中,其中一个是二氧化硫。栈的x, y的位置是固定的,但栈的高度可以有所不同。
构造函数的栈想最小化栈的总高度,从而最大限度地减少建设成本。然而,这是平衡相互冲突的要求的浓度二氧化硫在任何时候在该地区R不得超过立法最大。
首先,让我们画出烟囱在他们最初的高度。注意,我们放大4 km-by-4km次区域的R包含烟囱。
h0 = (210; 210; 180; 180; 150; 150; 120; 120; 90; 90);plotChimneyStacks (h0<年代pan style="color:#A020F0">“烟囱栈的初始高度”);
在这个问题上有两个相关的环境参数,风的速度和方向。在这个例子中,我们将允许这些参数不同,但对于第一个问题我们将设置这些参数的典型值。
%风向的弧度theta0 = 3.996;<年代pan style="color:#228B22">%在米/秒风速情况= 5.64;
现在让我们画出地面浓度的二氧化硫(SO2)在整个区域R(记住,烟囱的情节是在一个较小的区域)。二氧化硫浓度计算了烟囱将他们最初的高度。
我们可以看到,二氧化硫的浓度变化对该地区的兴趣。有两个特性的二氧化硫图注:
二氧化硫浓度上升的左上角(x, y)飞机
二氧化硫浓度约为零的大部分地区
在非常简单的术语中,第一个功能是由于盛行风,吹的二氧化硫的左上角(x, y)飞机在这个例子。第二个因素是由于二氧化硫在运输通过扩散到地面。这是一个缓慢的过程与盛行风,因此二氧化硫只有到达地面的左上角感兴趣的地区。
更详细讨论大气色散的烟囱,查阅参考引用的介绍。
粉色飞机表明SO2的浓度<年代pan class="inlineequation">
。这是立法最大的二氧化硫浓度不得超过该地区r .它可以清楚地看到从图的二氧化硫浓度超过最大初始烟囱烟囱高度。
MATLAB文件检查concSulfurDioxide如何计算二氧化硫浓度。
plotSulfurDioxide (h0 theta0情况,<年代pan style="color:#0000FF">…二氧化硫浓度在初始堆栈高度的);
如何fseminf作品
在我们解决最小烟囱高度的问题之前,我们将概述如何fseminf解决了半无限问题。一般的半无限规划问题可以表示为:
这样
(线性不等式约束)
(线性等式约束)
(非线性不等式约束)
(非线性等式约束)
(范围)
和
,在那里<年代pan class="inlineequation">
为<年代pan class="inlineequation">
(非线性半无限约束)
该算法允许您指定必须满足约束的非线性优化问题在间隔的一个辅助变量,<年代pan class="inlineequation">
。请注意,对于fseminf,这个变量被限制为1或2每半无限空间约束。
这个函数fseminf解决了一般半无限问题通过从一个初始值,<年代pan class="inlineequation">
使用一个迭代过程,得到一个最佳的解决方案,<年代pan class="inlineequation">
。
算法的关键是处理“半无限”的约束,<年代pan class="inlineequation">
。在<年代pan class="inlineequation">
这是必需的<年代pan class="inlineequation">
在每一个值必须是可行的吗<年代pan class="inlineequation">
在这一期间<年代pan class="inlineequation">
。这个约束可以简化考虑所有的局部极大值<年代pan class="inlineequation">
关于<年代pan class="inlineequation">
在这一期间<年代pan class="inlineequation">
。原约束相当于要求的价值<年代pan class="inlineequation">
在上述每个当地maxima是可行的。
fseminf计算一个近似的每个半无限约束的局部极大值,<年代pan class="inlineequation">
。要做到这一点,fseminf首先计算每个半无限约束的网格<年代pan class="inlineequation">
值。然后使用一个简单的差分方案计算的局部极大值<年代pan class="inlineequation">
从评估半无限约束。
稍后我们将看到,你创建这个网约束函数。间隔应该使用<年代pan class="inlineequation">
坐标网格提供的约束函数fseminf。
在每一次迭代的算法,执行以下步骤:
评估<年代pan class="inlineequation">
在网<年代pan class="inlineequation">
使用当前的网格间距值<年代pan class="inlineequation">
协调。
计算一个近似的局部极大值<年代pan class="inlineequation">
使用的评价<年代pan class="inlineequation">
从步骤1。
替换每个<年代pan class="inlineequation">
一般的半无限问题组局部极大值在步骤1 - 2。现在的问题有一个有限数目的非线性约束。fseminf采用SQP算法所使用的fmincon采取一个迭代的步骤修改问题。
检查如果任何SQP算法的停止条件得到满足的新观点<年代pan class="inlineequation">
。如果任何标准满足算法终止;如果不是这样,fseminf继续第5步。例如,如果定义的问题的一阶最优值在步骤3中小于指定的公差fseminf将终止。
更新的评估中使用的网格间距在步骤1中半无限约束。
写作的非线性约束函数
之前我们可以称之为fseminf为了解决这个问题,我们需要编写一个函数来评估非线性约束这个问题。地面的约束实现二氧化硫浓度不得超过<年代pan class="inlineequation">
在每一个区域R。
这是半无限约束,约束函数的实现在本节说明。最小的烟囱高度的问题我们已经实现了MATLAB文件的约束airPollutionCon。
类型<年代pan style="color:#A020F0">airPollutionCon.m
函数[c,测查,K s] = airPollutionCon (h, s,θ,U)空气污染演示% % % airPollutionCon约束函数[c,测查,K s] = airPollutionCon (h, s,θ,U)计算空气污染的%约束优化工具箱(TM)演示。这个%函数首先创建一个网格(X, Y)点的使用提供的网格%间距,s .以下约束然后计算网格的每个点%:% %二氧化硫浓度在指定的风向,θ和%风速U < = 1.25 g / m ^ 3% %的军医看到MathWorks还污染%版权2008,Inc . %初始采样间隔如果输入参数个数< 2 | | isnan (s (1,1)) s = (1000 - 4000);结束%定义“无限”的网格约束将评估w1x = -20000: (1): 20000;w1y = -20000: s (1、2): 20000;(t1, t2) = meshgrid (w1x w1y);%最大允许二氧化硫maxsul = 1.25的军医;%计算网格的约束K = concSulfurDioxide (t1, t2, h,θ,U) - maxsul;%重新调节约束使其0 (1)K = 1 e4 * K;%没有有限约束c = [];测查= [];
这个函数说明了约束函数的一般结构为半无限规划问题。特别是,约束函数fseminf可以分成三个部分:
1。定义约束的初始网格大小的评估
回想一下,fseminf评估“半无限”约束的网格作为整体的一部分计算这些约束。当你的约束函数被调用fseminf,你应该使用网格间距是提供给你的函数。Fseminf最初将打电话给你和网格间距约束函数,年代,将南。这允许您初始化约束的网格大小的评估。在这里,我们有一个“无限”约束两个“无限”变量。这意味着我们需要初始化的网格大小1×2矩阵,在这种情况下,s = (1000 4000)。
2。定义约束的网格,将用于评估
一个网格,将用于约束评估需要创建。之后的三行代码评论”定义的网格”无限的“约束将评估”airPollutionCon对于大多数二维半无限规划问题可以修改。
3所示。计算网格的约束
一旦定义了网格,可以计算约束。这些约束然后返回fseminf从上面的约束函数。
注意,在这个问题上,我们还新约束,不同规模接近的目标函数。这可以帮助fseminf避免扩展问题相关的目标和约束条件,在不同的尺度上不同。
解决优化问题
现在我们可以打电话fseminf来解决这个问题。烟囱都必须至少10米高,我们使用指定的初始堆码高度。请注意,第三个输入参数fseminf下面(1)表明,只有一个半无限约束。
磅= 10 *的(大小(h0));[hsopt, sumh exitflag] = fseminf (@ (h)和(h), h0, 1,<年代pan style="color:#0000FF">…@ (h, s) airPollutionCon (h, s, theta0情况),[],[],[],[],磅);
局部最小值。约束满足。fseminf停止,因为预测目标函数的变化小于公差的值函数和约束满足约束的值公差内。
流(<年代pan style="color:#A020F0">“\ nMinimum计算累积烟囱的高度:% 7.2 f m \ n ',sumh);
最低计算累积烟囱的高度:3667.19米
最低高度累积计算fseminf大大高于最初的总高度的烟囱。我们将看到如何最小累积高度变化时参数不确定性是添加到问题在之后的例子。现在,让我们画出烟囱的最佳高度。
MATLAB文件检查plotChimneyStacks情节是如何生成的。
plotChimneyStacks (hsopt<年代pan style="color:#A020F0">“烟囱栈最佳高度”);
检查优化结果
回想一下,fseminf确定半无限约束满足各地通过确保离散约束的极大值低于指定的绑定。我们可以验证半无限约束满足各地通过绘制地面二氧化硫浓度的最佳堆码高度。
注意,二氧化硫浓度的最大可能值的左上角(x, y)平面,即x = -20000米,y = 20000米。这一点在下图的蓝点,验证了计算二氧化硫浓度。
MATLAB文件检查plotSulfurDioxide情节是如何生成的。
titleStr =<年代pan style="color:#A020F0">“最佳二氧化硫浓度和最大(蓝色)的;xMaxSD = (-20000 - 20000);情况,plotSulfurDioxide (hsopt theta0 titleStr, xMaxSD);
SO2Max = concSulfurDioxide (-20000、20000、hsopt theta0,情况);流(<年代pan style="color:#A020F0">的二氧化硫浓度x = -20000米,y = 20000米:% e g / m ^ 3 \ n ',SO2Max);
二氧化硫浓度x = -20000米,y = 20000米:1.250000 e-04 g / m ^ 3
考虑环境因素的不确定性
二氧化硫浓度取决于几个环境因素是固定值举行在上面的问题。两个环境因素的风速和风向。参阅参考资料介绍的更详细的讨论中提到的所有参数的问题。
我们可以研究系统行为的变化对风的速度和方向。在本节的例子中,我们要确保满足二氧化硫限制即使风向变化从3.82到4.18 (rad rad和平均风速变化之间的5和6.2 m / s。
我们需要实现一个半无限约束以确保二氧化硫浓度不超过区域r .这个约束的限制是需要可行的对风速和风向。
这种约束将有四个“无限”变量(风速和风向和地面的x - y坐标)。然而,任何半无限约束提供给fseminf可以有不超过两个“无限”变量。
在一个合适的形式实现这个约束fseminf,我们回忆起最佳烟囱高度的二氧化硫浓度在前面的问题。特别是,二氧化硫浓度的最大可能值x = -20000米,y = 20000米。减少“无限”变量,我们将假设SO2浓度还将其最大值在这一点上存在不确定性。然后,我们要求二氧化硫浓度低于<年代pan class="inlineequation">
对风速和风向。
这意味着这个问题的“无限”变量是风速和方向。看看这个约束已经实施,检查MATLAB文件uncertainAirPollutionCon。
类型<年代pan style="color:#A020F0">uncertainAirPollutionCon.m
函数[c,测查,K s] = uncertainAirPollutionCon (h, s)空气污染演示% % % uncertainAirPollutionCon约束函数[c,测查,K s] = uncertainAirPollutionCon (h, s)计算的%约束fseminf优化工具箱(TM)演示。这个%函数首先创建一个网格的风速/方向点使用%提供网格间距,然后计算% s以下约束每个网格点:% %二氧化硫浓度x = -20000米,y = 20000米< = 1.25 % g / m ^ 3% %的军医也看到AIRPOLLUTIONCON,污染% 2008年版权MathWorks, Inc . %最大允许二氧化硫maxsul = 1.25的军医;%初始采样间隔如果输入参数个数< 2 | | isnan (s (1,1)) s = (0.02 - 0.04);结束%定义“无限”的网格约束将评估/ w1x = 3.82:年代(1,1):4.18;%风向w1y = 5.0: s (1、2): 6.2;%风速(t1, t2) = meshgrid (w1x w1y);%我们假设最大的二氧化硫浓度(x, y) =(-20000、20000) %的风速、风向对。我们评估二氧化硫约束%(θ,U)网格。K = concSulfurDioxide (-20000、20000 h, t1, t2) - maxsul;%重新调节约束使其0 (1)K = 1 e4 * K; % No finite constraints c = []; ceq = [];
这个约束函数一样可以分为三个部分:
1。定义约束的初始网格大小的评估
评论“最初的采样间隔”后的代码初始化网格大小。
2。定义约束的网格,将用于评估
下一节的代码创建了一个网格(现在在风速和风向)使用一个类似的建筑中使用最初的问题。
3所示。计算网格的约束
代码的其余部分计算二氧化硫浓度每一点的风速、风向。这些约束然后返回fseminf从上面的约束函数。
现在我们可以打电话fseminf解决烟囱高度问题考虑环境因素的不确定性。
[hsopt2, sumh2 exitflag2] = fseminf (@ (h)和(h), h0, 1,<年代pan style="color:#0000FF">…@uncertainAirPollutionCon,[]、[][],[],磅);
局部最小值。约束满足。fseminf停止,因为预测目标函数的变化小于公差的值函数和约束满足约束的值公差内。
流(<年代pan style="color:#A020F0">“\ nMinimal计算累积烟囱的高度不确定性:% 7.2 f m \ n ',sumh2);
最小计算累积烟囱的高度不确定性:3812.13米
我们现在可以看看最低计算累积烟囱高度之间的差异的问题,没有参数的不确定性。你应该能够看到的最小累积高度增加当被添加到不确定性问题。这个预期增加高度允许SO2浓度仍低于的立法最大风速/方向对指定范围。
我们可以检查二氧化硫浓度不超过限制的地区利益通过检测二氧化硫的阴谋。对于给定的(x, y)点,我们把最大风速和风向的二氧化硫浓度的范围。注意,我们放大了左上角的x - y平面。
titleStr =<年代pan style="color:#A020F0">不确定性条件下的最优二氧化硫浓度的;thetaRange = 3.82:0.02:4.18;URange = 5:0.2:6.2;XRange = (-20000、-15000);YRange = (15000、20000);plotSulfurDioxideUncertain (hsopt2、thetaRange URange, XRange YRange, titleStr);
我们终于把烟囱的最佳高度时定义的不确定性问题。
plotChimneyStacks (hsopt2<年代pan style="color:#A020F0">“烟囱栈下最优高度不确定性”);
有很多选项可用于半无限规划算法,fseminf。咨询优化工具箱™用户指南的细节,在使用优化工具箱解决一章,在约束非线性优化:fseminf问题制定和算法。
相关的话题
这个例子展示了如何使用半无限规划研究的影响的模型参数优化问题的不确定性。我们将制定和解决使用函数的优化问题 这个问题说明在这个例子中涉及的控制空气污染。具体来说,一组烟囱将建立在一个特定的地理区域。随着每个烟囱的高度增加,地面从堆栈中污染物的浓度降低。然而,每个烟囱的建筑成本增加与高度。我们将解决问题最小化累积烟囱的高度,因此工程造价,地面污染浓度不超过一个立法限制。这个问题在以下参考: 空气污染控制与半无限编程,A.I.F. Vaz提到过费雷拉,二十八Congreso Nacional de Estadistica e Investigacion Operativa, 2004年10月 在这个示例中,我们将首先解决这个问题在上面的文章发表<年代pan class="emphasis">最小的烟囱高度 然后我们扩展原始问题通过允许风速和方向参数在给定的范围内变化。这将使我们能够分析这些参数的不确定性的影响这个问题的最优解。 考虑一个20 km-by-20km地区,R,十个烟囱被放置。这些烟囱几个污染物释放到大气中,其中一个是二氧化硫。栈的x, y的位置是固定的,但栈的高度可以有所不同。 构造函数的栈想最小化栈的总高度,从而最大限度地减少建设成本。然而,这是平衡相互冲突的要求的浓度二氧化硫在任何时候在该地区R不得超过立法最大。 首先,让我们画出烟囱在他们最初的高度。注意,我们放大4 km-by-4km次区域的R包含烟囱。 在这个问题上有两个相关的环境参数,风的速度和方向。在这个例子中,我们将允许这些参数不同,但对于第一个问题我们将设置这些参数的典型值。 现在让我们画出地面浓度的二氧化硫(SO2)在整个区域R(记住,烟囱的情节是在一个较小的区域)。二氧化硫浓度计算了烟囱将他们最初的高度。 我们可以看到,二氧化硫的浓度变化对该地区的兴趣。有两个特性的二氧化硫图注: 二氧化硫浓度上升的左上角(x, y)飞机 二氧化硫浓度约为零的大部分地区 在非常简单的术语中,第一个功能是由于盛行风,吹的二氧化硫的左上角(x, y)飞机在这个例子。第二个因素是由于二氧化硫在运输通过扩散到地面。这是一个缓慢的过程与盛行风,因此二氧化硫只有到达地面的左上角感兴趣的地区。 更详细讨论大气色散的烟囱,查阅参考引用的介绍。 粉色飞机表明SO2的浓度<年代pan class="inlineequation">
。这是立法最大的二氧化硫浓度不得超过该地区r .它可以清楚地看到从图的二氧化硫浓度超过最大初始烟囱烟囱高度。 MATLAB文件检查 在我们解决最小烟囱高度的问题之前,我们将概述如何
这样
(线性不等式约束)
(线性等式约束)
(非线性不等式约束)
(非线性等式约束)
(范围) 和
,在那里<年代pan class="inlineequation">
为<年代pan class="inlineequation">
(非线性半无限约束) 该算法允许您指定必须满足约束的非线性优化问题在间隔的一个辅助变量,<年代pan class="inlineequation">
。请注意,对于 这个函数 算法的关键是处理“半无限”的约束,<年代pan class="inlineequation">
。在<年代pan class="inlineequation">
这是必需的<年代pan class="inlineequation">
在每一个值必须是可行的吗<年代pan class="inlineequation">
在这一期间<年代pan class="inlineequation">
。这个约束可以简化考虑所有的局部极大值<年代pan class="inlineequation">
关于<年代pan class="inlineequation">
在这一期间<年代pan class="inlineequation">
。原约束相当于要求的价值<年代pan class="inlineequation">
在上述每个当地maxima是可行的。 稍后我们将看到,你创建这个网约束函数。间隔应该使用<年代pan class="inlineequation">
坐标网格提供的约束函数 在每一次迭代的算法,执行以下步骤: 评估<年代pan class="inlineequation">
在网<年代pan class="inlineequation">
使用当前的网格间距值<年代pan class="inlineequation">
协调。 计算一个近似的局部极大值<年代pan class="inlineequation">
使用的评价<年代pan class="inlineequation">
从步骤1。 替换每个<年代pan class="inlineequation">
一般的半无限问题组局部极大值在步骤1 - 2。现在的问题有一个有限数目的非线性约束。 检查如果任何SQP算法的停止条件得到满足的新观点<年代pan class="inlineequation">
。如果任何标准满足算法终止;如果不是这样, 更新的评估中使用的网格间距在步骤1中半无限约束。 之前我们可以称之为 这是半无限约束,约束函数的实现在本节说明。最小的烟囱高度的问题我们已经实现了MATLAB文件的约束 这个函数说明了约束函数的一般结构为半无限规划问题。特别是,约束函数 1。定义约束的初始网格大小的评估 回想一下, 2。定义约束的网格,将用于评估 一个网格,将用于约束评估需要创建。之后的三行代码评论”定义的网格”无限的“约束将评估” 3所示。计算网格的约束 一旦定义了网格,可以计算约束。这些约束然后返回 注意,在这个问题上,我们还新约束,不同规模接近的目标函数。这可以帮助 现在我们可以打电话 最低高度累积计算 MATLAB文件检查 回想一下, 注意,二氧化硫浓度的最大可能值的左上角(x, y)平面,即x = -20000米,y = 20000米。这一点在下图的蓝点,验证了计算二氧化硫浓度。 MATLAB文件检查 二氧化硫浓度取决于几个环境因素是固定值举行在上面的问题。两个环境因素的风速和风向。参阅参考资料介绍的更详细的讨论中提到的所有参数的问题。 我们可以研究系统行为的变化对风的速度和方向。在本节的例子中,我们要确保满足二氧化硫限制即使风向变化从3.82到4.18 (rad rad和平均风速变化之间的5和6.2 m / s。 我们需要实现一个半无限约束以确保二氧化硫浓度不超过区域r .这个约束的限制是需要可行的对风速和风向。 这种约束将有四个“无限”变量(风速和风向和地面的x - y坐标)。然而,任何半无限约束提供给 在一个合适的形式实现这个约束 这意味着这个问题的“无限”变量是风速和方向。看看这个约束已经实施,检查MATLAB文件 这个约束函数一样可以分为三个部分: 1。定义约束的初始网格大小的评估 评论“最初的采样间隔”后的代码初始化网格大小。 2。定义约束的网格,将用于评估 下一节的代码创建了一个网格(现在在风速和风向)使用一个类似的建筑中使用最初的问题。 3所示。计算网格的约束 代码的其余部分计算二氧化硫浓度每一点的风速、风向。这些约束然后返回 现在我们可以打电话 我们现在可以看看最低计算累积烟囱高度之间的差异的问题,没有参数的不确定性。你应该能够看到的最小累积高度增加当被添加到不确定性问题。这个预期增加高度允许SO2浓度仍低于的立法最大风速/方向对指定范围。 我们可以检查二氧化硫浓度不超过限制的地区利益通过检测二氧化硫的阴谋。对于给定的(x, y)点,我们把最大风速和风向的二氧化硫浓度的范围。注意,我们放大了左上角的x - y平面。 我们终于把烟囱的最佳高度时定义的不确定性问题。 有很多选项可用于半无限规划算法,最小的烟囱高度的问题
h0 = (210; 210; 180; 180; 150; 150; 120; 120; 90; 90);plotChimneyStacks (h0<年代pan style="color:#A020F0">“烟囱栈的初始高度”
%风向的弧度
plotSulfurDioxide (h0 theta0情况,<年代pan style="color:#0000FF">…
如何
fseminf
写作的非线性约束函数
类型<年代pan style="color:#A020F0">airPollutionCon.m
函数[c,测查,K s] = airPollutionCon (h, s,θ,U)空气污染演示% % % airPollutionCon约束函数[c,测查,K s] = airPollutionCon (h, s,θ,U)计算空气污染的%约束优化工具箱(TM)演示。这个%函数首先创建一个网格(X, Y)点的使用提供的网格%间距,s .以下约束然后计算网格的每个点%:% %二氧化硫浓度在指定的风向,θ和%风速U < = 1.25 g / m ^ 3% %的军医看到MathWorks还污染%版权2008,Inc . %初始采样间隔如果输入参数个数< 2 | | isnan (s (1,1)) s = (1000 - 4000);结束%定义“无限”的网格约束将评估w1x = -20000: (1): 20000;w1y = -20000: s (1、2): 20000;(t1, t2) = meshgrid (w1x w1y);%最大允许二氧化硫maxsul = 1.25的军医;%计算网格的约束K = concSulfurDioxide (t1, t2, h,θ,U) - maxsul;%重新调节约束使其0 (1)K = 1 e4 * K;%没有有限约束c = [];测查= [];
解决优化问题
磅= 10 *的(大小(h0));[hsopt, sumh exitflag] = fseminf (@ (h)和(h), h0, 1,<年代pan style="color:#0000FF">…
局部最小值。约束满足。fseminf停止,因为预测目标函数的变化小于公差的值函数和约束满足约束的值公差内。
流(<年代pan style="color:#A020F0">“\ nMinimum计算累积烟囱的高度:% 7.2 f m \ n '
最低计算累积烟囱的高度:3667.19米
plotChimneyStacks (hsopt<年代pan style="color:#A020F0">“烟囱栈最佳高度”
检查优化结果
titleStr =<年代pan style="color:#A020F0">“最佳二氧化硫浓度和最大(蓝色)的
SO2Max = concSulfurDioxide (-20000、20000、hsopt theta0,情况);流(<年代pan style="color:#A020F0">的二氧化硫浓度x = -20000米,y = 20000米:% e g / m ^ 3 \ n '
二氧化硫浓度x = -20000米,y = 20000米:1.250000 e-04 g / m ^ 3
考虑环境因素的不确定性
类型<年代pan style="color:#A020F0">uncertainAirPollutionCon.m
函数[c,测查,K s] = uncertainAirPollutionCon (h, s)空气污染演示% % % uncertainAirPollutionCon约束函数[c,测查,K s] = uncertainAirPollutionCon (h, s)计算的%约束fseminf优化工具箱(TM)演示。这个%函数首先创建一个网格的风速/方向点使用%提供网格间距,然后计算% s以下约束每个网格点:% %二氧化硫浓度x = -20000米,y = 20000米< = 1.25 % g / m ^ 3% %的军医也看到AIRPOLLUTIONCON,污染% 2008年版权MathWorks, Inc . %最大允许二氧化硫maxsul = 1.25的军医;%初始采样间隔如果输入参数个数< 2 | | isnan (s (1,1)) s = (0.02 - 0.04);结束%定义“无限”的网格约束将评估/ w1x = 3.82:年代(1,1):4.18;%风向w1y = 5.0: s (1、2): 6.2;%风速(t1, t2) = meshgrid (w1x w1y);%我们假设最大的二氧化硫浓度(x, y) =(-20000、20000) %的风速、风向对。我们评估二氧化硫约束%(θ,U)网格。K = concSulfurDioxide (-20000、20000 h, t1, t2) - maxsul;%重新调节约束使其0 (1)K = 1 e4 * K; % No finite constraints c = []; ceq = [];
[hsopt2, sumh2 exitflag2] = fseminf (@ (h)和(h), h0, 1,<年代pan style="color:#0000FF">…
局部最小值。约束满足。fseminf停止,因为预测目标函数的变化小于公差的值函数和约束满足约束的值公差内。
流(<年代pan style="color:#A020F0">“\ nMinimal计算累积烟囱的高度不确定性:% 7.2 f m \ n '
最小计算累积烟囱的高度不确定性:3812.13米
titleStr =<年代pan style="color:#A020F0">不确定性条件下的最优二氧化硫浓度的
plotChimneyStacks (hsopt2<年代pan style="color:#A020F0">“烟囱栈下最优高度不确定性”
相关的话题