减少能源使用锥分段线性弹簧质点系统的编程,Solver-BasedgydF4y2Ba
这个例子展示了如何找到质量弹簧系统的平衡位置挂着两个锚点。弹簧的分段线性拉伸力。该系统由gydF4y2Ba 大众在二维空间中。质量gydF4y2Ba 连接到温泉gydF4y2Ba 和gydF4y2Ba 。弹簧gydF4y2Ba 和gydF4y2Ba 也连接到单独的锚点。在这种情况下,弹簧的长度不受力gydF4y2Ba 是一个积极的长度gydF4y2Ba ,弹簧产生力gydF4y2Ba 当拉伸长度gydF4y2Ba 。问题是要找到最小势能的配置质量,势能从哪里来的重力和非线性弹簧的拉伸。平衡发生在最低能量配置。gydF4y2Ba
这幅图显示了五个弹簧和四个群众暂停两个锚点。gydF4y2Ba
大量的势能gydF4y2Ba 在高度gydF4y2Ba 是gydF4y2Ba ,在那里gydF4y2Ba 是地球上重力常数。此外,理想的线性弹簧与弹簧的势能不变gydF4y2Ba 拉伸长度gydF4y2Ba 是gydF4y2Ba 。当前的模型是,春天是不理想的,但有一个非零长度gydF4y2Ba 。gydF4y2Ba
这个例子来自Lobo的数学基础,范登堡,博伊德和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 ,6个长度常量gydF4y2Ba 群众,5gydF4y2Ba 。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
为优化变量的十个组件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 d向量gydF4y2Ba 。gydF4y2Bav (17)gydF4y2Ba
对应于标量变量gydF4y2Ba 。gydF4y2Ba
使用这些变量,创建相应的目标函数向量gydF4y2BafgydF4y2Ba
。gydF4y2Ba
f = 0(大小(m));f = [f, g * m];f = f (:);f = [f; 0(长度(k) + 1, - 1));f(结束)= 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 (3 [1]) = [1];A2 = circshift (Asc, 1);Asc = (Asc; A2);毫升=长度(m);数据库= 2 * ml;二元同步通信= (0,0);gydF4y2Ba为gydF4y2Ba我= 2毫升γ= - l (i);dsc = d;dsc(数据库+ i) =√2 / k (i));conecons (i) = secondordercone (Asc, bsc、dsc、伽马);Asc = circshift (Asc 2 2);gydF4y2Ba结束gydF4y2Ba
创建锥约束对应于弹簧最终质量和锚点之间通过锚点位置的最终质量,在前面的代码。gydF4y2Ba
x0 = (0; 5);xn = (5; 4);Asc = 0(大小(Asc));Asc (1 (dbase-1)) = 1;Asc(数据库)= 1;二元同步通信= xn;γ= - l (ml);dsc = d;dsc(数据库+ ml) =√2 / k (ml));conecons (ml + 1) = secondordercone (Asc, bsc、dsc、伽马); 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
向量对应的常数1项gydF4y2Ba
。的gydF4y2BadscgydF4y2Ba
向量,当乘以gydF4y2BavgydF4y2Ba
,返回gydF4y2Ba
。和gydF4y2BaγgydF4y2Ba
=gydF4y2Ba
。gydF4y2Ba
Asc = 2 *眼(长度(f));Asc(1:数据库:)= [];Asc(结束,结束)= 1;二元同步通信= 0(大小(Asc, 1), 1);二元同步通信(结束)= 1;dsc = d;dsc(结束)= 1;γ= 1;conecons (ml + 2) = secondordercone (Asc, bsc、dsc、伽马);gydF4y2Ba
最后,创建相应的下界gydF4y2Ba 和gydF4y2Ba 变量。gydF4y2Ba
磅=无穷(大小(f));磅(数据库+ 1:结束)= 0;gydF4y2Ba
解决问题和策划解决方案gydF4y2Ba
制定完成的问题。通过调用解决问题gydF4y2BaconeproggydF4y2Ba
。gydF4y2Ba
[v, fval、exitflag、输出]= coneprog (f conecons[]、[][],[],磅);gydF4y2Ba
找到最优解。gydF4y2Ba
解决方案分和锚的阴谋。gydF4y2Ba
页= v (1:2 * ml);页=重塑(pp、2、[]);页= 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米格尔·苏萨,列文Vandenberghe斯蒂芬·博伊德,Herve Lebret。“二阶锥规划的应用”。gydF4y2Ba线性代数及其应用gydF4y2Ba284年,没有。1 - 3(1998年11月):193 - 228。gydF4y2Bahttps://doi.org/10.1016/s0024 - 3795 (98) 10032 - 0gydF4y2Ba
。gydF4y2Ba
另请参阅gydF4y2Ba
coneproggydF4y2Ba
|gydF4y2BasecondorderconegydF4y2Ba