基于锥规划的分段线性质量-弹簧系统能量最小化方法gydF4y2Ba
这个例子展示了如何找到悬挂在两个锚点上的质量-弹簧系统的平衡位置。弹簧具有分段线性拉伸力。该系统包括gydF4y2Ba 二维的质量。质量gydF4y2Ba 连接到弹簧gydF4y2Ba 而且gydF4y2Ba .弹簧gydF4y2Ba 而且gydF4y2Ba 也连接到单独的锚点。在这种情况下,弹簧的零力长度gydF4y2Ba 长度是正的gydF4y2Ba ,弹簧产生力gydF4y2Ba 当拉伸到一定长度时gydF4y2Ba .问题是找到质量的最小势能结构,其中势能来自重力和非线性弹簧的拉伸。平衡发生在最小能量结构。gydF4y2Ba
这幅图显示了五个弹簧和四个物体悬挂在两个锚点上。gydF4y2Ba
质量的势能gydF4y2Ba 在高度gydF4y2Ba 是gydF4y2Ba ,在那里gydF4y2Ba 是地球上的引力常数。同样,具有弹簧常数的理想线性弹簧的势能gydF4y2Ba 拉长gydF4y2Ba 是gydF4y2Ba .目前的模型是弹簧不理想,但有一个非零的静息长度gydF4y2Ba .gydF4y2Ba
这个例子的数学基础来自Lobo, Vandenberg, Boyd和LebretgydF4y2Ba[1]gydF4y2Ba.有关此示例的基于问题的版本,请参见gydF4y2Ba基于问题的圆锥规划最小化分段线性质量-弹簧系统能量gydF4y2Ba.gydF4y2Ba
数学公式gydF4y2Ba
质量的位置gydF4y2Ba 是gydF4y2Ba ,为横坐标gydF4y2Ba 纵坐标gydF4y2Ba .质量gydF4y2Ba 的重力有势能吗gydF4y2Ba .春天的势能gydF4y2Ba 是gydF4y2Ba ,在那里gydF4y2Ba 弹簧的长度在质量之间吗gydF4y2Ba 和质量gydF4y2Ba .设锚点1为质量0的位置,锚点2为质量的位置gydF4y2Ba .由前面的能量计算可知,弹簧的势能gydF4y2Ba 是gydF4y2Ba
.gydF4y2Ba
将势能问题重新表述为二阶锥问题需要引入一些新的变量,如Lobo中所述gydF4y2Ba[1]gydF4y2Ba.创建变量gydF4y2Ba 等于这项的平方根gydF4y2Ba .gydF4y2Ba
让gydF4y2Ba 是单位列向量gydF4y2Ba .然后gydF4y2Ba .问题变成了gydF4y2Ba
(1)gydF4y2Ba
现在考虑gydF4y2Ba 作为一个自由向量变量,不是由前面的方程给出的gydF4y2Ba .结合之间的关系gydF4y2Ba 而且gydF4y2Ba 在新的锥约束集合中gydF4y2Ba
(2)gydF4y2Ba
目标函数的变量还不是线性的,如所要求的gydF4y2BaconeproggydF4y2Ba
.引入一个新的标量变量gydF4y2Ba
.注意这个不等式gydF4y2Ba
等于这个不等式吗gydF4y2Ba
.(3)gydF4y2Ba
现在的问题是最小化gydF4y2Ba
(4)gydF4y2Ba
受锥上的约束gydF4y2Ba 而且gydF4y2Ba (2)和附加锥约束(3)。锥约束(3)确保gydF4y2Ba .因此,问题(4)等价于问题(1)。gydF4y2Ba
问题(4)中的目标函数和锥约束适用于求解gydF4y2BaconeproggydF4y2Ba
.gydF4y2Ba
MATLAB®配方gydF4y2Ba
定义六个弹簧常数gydF4y2Ba ,六个长度常数gydF4y2Ba ,和五个质量gydF4y2Ba .gydF4y2Ba
K = 40*(1:6);L = [1 1/2 1 2 1 1/2];M = [2 1 3 2 1];gydF4y2Ba
定义地球上的近似引力常数gydF4y2Ba .gydF4y2Ba
G = 9.807;gydF4y2Ba
优化的变量是10个组成部分gydF4y2Ba
向量的六个分量gydF4y2Ba
向量,而gydF4y2Ba
变量。让gydF4y2BavgydF4y2Ba
是包含所有这些变量的向量。gydF4y2Ba
(v (1), (2))gydF4y2Ba
对应于二维变量gydF4y2Ba .gydF4y2Ba(v (3), (4))gydF4y2Ba
对应于二维变量gydF4y2Ba .gydF4y2Ba(v (5), (6)]gydF4y2Ba
对应于二维变量gydF4y2Ba .gydF4y2Ba(v(7)、(8)]gydF4y2Ba
对应于二维变量gydF4y2Ba .gydF4y2Ba(v(9)、(10))gydF4y2Ba
对应于二维变量gydF4y2Ba .gydF4y2Ba[v (11): v (16))gydF4y2Ba
对应于6维向量gydF4y2Ba .gydF4y2Bav (17)gydF4y2Ba
对应于标量变量gydF4y2Ba .gydF4y2Ba
使用这些变量,创建相应的目标函数向量gydF4y2BafgydF4y2Ba
.gydF4y2Ba
F = 0 (size(m));F = [F;g*m];F = F (:);F = [F; 0(长度(k)+1,1)];F (end) = 1;gydF4y2Ba
创建与质量(2)之间的弹簧相对应的锥约束gydF4y2Ba
.gydF4y2Ba
的gydF4y2BaconeproggydF4y2Ba
求解器对变量向量使用锥约束gydF4y2Ba
在表格中gydF4y2Ba
.gydF4y2Ba
在下面的代码中,gydF4y2BaAscgydF4y2Ba
矩阵表示项gydF4y2Ba
,gydF4y2Ba二元同步通信gydF4y2Ba
=gydF4y2Ba(0, 0)gydF4y2Ba
.锥变量gydF4y2BadscgydF4y2Ba
=gydF4y2Ba
和相应的gydF4y2BaγgydF4y2Ba
=gydF4y2Ba
D = 0(1,长度(f));Asc = d;Asc([1 3]) = [1 -1];A2 = circshift(Asc,1);Asc = [Asc;A2];Ml =长度(m);Dbase = 2*ml;BSC = [0;0];gydF4y2Ba为gydF4y2BaI = 2:ml gamma = -l(I);DSC = d;Dsc (dbase + i) =√(2/k(i));conecons(i) = secondordercone(Asc,bsc,dsc,gamma);Asc = circshift(Asc,2,2);gydF4y2Ba结束gydF4y2Ba
通过使用末端质量位置的锚点,创建与末端质量和锚点之间的弹簧相对应的锥约束,如前面的代码中所示。gydF4y2Ba
X0 = [0;5];Xn = [5;4];Asc = 0 (size(Asc));Asc(1,(dbase-1)) = 1;Asc(2,dbase) = 1;BSC = xn;Gamma = -l(ml);DSC = d;Dsc (dbase + ml) =√(2/k(ml));conecons(ml + 1) = secondordercone(Asc,bsc,dsc,gamma); Asc = zeros(size(Asc)); Asc(1,1) = 1; Asc(2,2) = 1; bsc = x0; gamma = -l(1); dsc = d; dsc(dbase + 1) = sqrt(2/k(1)); conecons(1) = secondordercone(Asc,bsc,dsc,gamma);
创建圆锥约束(3)对应于gydF4y2Ba 变量gydF4y2Ba
通过创建矩阵gydF4y2BaAscgydF4y2Ba
乘以什么gydF4y2BavgydF4y2Ba
向量,给出了向量gydF4y2Ba
.的gydF4y2Ba二元同步通信gydF4y2Ba
向量对应于项中的常数1gydF4y2Ba
.的gydF4y2BadscgydF4y2Ba
向量乘以gydF4y2BavgydF4y2Ba
,返回gydF4y2Ba
.和gydF4y2BaγgydF4y2Ba
=gydF4y2Ba
.gydF4y2Ba
Asc = 2*眼(长(f));Asc(1:dbase,:) = [];Asc(end,end) = -1;bsc = 0 (size(Asc,1),1);Bsc (end) = -1;DSC = d;Dsc (end) = 1;Gamma = -1;conecons(ml+2) = secondordercone(Asc,bsc,dsc,gamma);gydF4y2Ba
最后,创建对应于gydF4y2Ba 而且gydF4y2Ba 变量。gydF4y2Ba
Lb = -inf(size(f));Lb (dbase+1:end) = 0;gydF4y2Ba
解决问题并设计解决方案gydF4y2Ba
问题的公式是完整的。打电话解决问题gydF4y2BaconeproggydF4y2Ba
.gydF4y2Ba
[v, fval、exitflag、输出]= coneprog (f, conecons ,[],[],[],[], 磅);gydF4y2Ba
找到最优解。gydF4y2Ba
画出解决点和锚点。gydF4y2Ba
Pp = v(1:2*ml);Pp =重塑(Pp,2,[]);Pp = Pp ';情节(pp(: 1)、pp (:, 2),gydF4y2Ba“罗”gydF4y2Ba)举行gydF4y2Ba在gydF4y2BaXx = [x0,xn]';情节(xx (: 1), xx (:, 2),gydF4y2Ba“ks”gydF4y2Ba) xlim ((x0 (1) -0.5, xn (1) + 0.5]) ylim ([min (pp(:, 2)) -0.5,马克斯(x0 (2), xn (2)) + 0.5]) xxx = [x0; pp; xn);情节(xxx (: 1) xxx (:, 2),gydF4y2Ba“b——”gydF4y2Ba)传说(gydF4y2Ba“计算点”gydF4y2Ba,gydF4y2Ba“锚点”gydF4y2Ba,gydF4y2Ba“泉”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba
您可以修改参数的值gydF4y2Ba米gydF4y2Ba
,gydF4y2BalgydF4y2Ba
,gydF4y2BakgydF4y2Ba
看看它们是如何影响解的。你也可以改变质量的数量;该代码从您提供的数据中获取质量数。gydF4y2Ba
参考文献gydF4y2Ba
[1] Lobo, Miguel Sousa, Lieven Vandenberghe, Stephen Boyd和Hervé Lebret。二阶锥规划的应用gydF4y2Ba线性代数及其应用gydF4y2Ba284年,没有。1-3(1998年11月):193-228。gydF4y2Bahttps://doi.org/10.1016/s0024 - 3795 (98) 10032 - 0gydF4y2Ba
.gydF4y2Ba
另请参阅gydF4y2Ba
coneproggydF4y2Ba
|gydF4y2BasecondorderconegydF4y2Ba