主要内容gydF4y2Ba

减少能源使用锥分段线性弹簧质点系统的编程,Solver-BasedgydF4y2Ba

这个例子展示了如何找到质量弹簧系统的平衡位置挂着两个锚点。弹簧的分段线性拉伸力。该系统由gydF4y2Ba ngydF4y2Ba 大众在二维空间中。质量gydF4y2Ba 我gydF4y2Ba 连接到温泉gydF4y2Ba 我gydF4y2Ba 和gydF4y2Ba 我gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba 。弹簧gydF4y2Ba 1gydF4y2Ba 和gydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba 也连接到单独的锚点。在这种情况下,弹簧的长度不受力gydF4y2Ba 我gydF4y2Ba 是一个积极的长度gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ,弹簧产生力gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 问gydF4y2Ba 当拉伸长度gydF4y2Ba 问gydF4y2Ba +gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。问题是要找到最小势能的配置质量,势能从哪里来的重力和非线性弹簧的拉伸。平衡发生在最低能量配置。gydF4y2Ba

这幅图显示了五个弹簧和四个群众暂停两个锚点。gydF4y2Ba

大量的势能gydF4y2Ba 米gydF4y2Ba 在高度gydF4y2Ba hgydF4y2Ba 是gydF4y2Ba 米gydF4y2Ba ggydF4y2Ba hgydF4y2Ba ,在那里gydF4y2Ba ggydF4y2Ba 是地球上重力常数。此外,理想的线性弹簧与弹簧的势能不变gydF4y2Ba kgydF4y2Ba 拉伸长度gydF4y2Ba 问gydF4y2Ba 是gydF4y2Ba kgydF4y2Ba 问gydF4y2Ba 2gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba 。当前的模型是,春天是不理想的,但有一个非零长度gydF4y2Ba lgydF4y2Ba 。gydF4y2Ba

这个例子来自Lobo的数学基础,范登堡,博伊德和LebretgydF4y2Ba[1]gydF4y2Ba。具体问题具体分析版本的这个例子中,看到的gydF4y2Ba减少能源使用锥分段线性弹簧质点系统编程的,具体问题具体分析gydF4y2Ba。gydF4y2Ba

数学公式gydF4y2Ba

质量的位置gydF4y2Ba 我gydF4y2Ba 是gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ,水平坐标gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 和垂直坐标gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。质量gydF4y2Ba 我gydF4y2Ba 重力势能的吗gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。在春天的势能gydF4y2Ba 我gydF4y2Ba 是gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba (gydF4y2Ba dgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba - - - - - -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba ,在那里gydF4y2Ba dgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 是弹簧的长度之间的质量gydF4y2Ba 我gydF4y2Ba 和质量gydF4y2Ba 我gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba 。以锚点1为大规模0的位置,质量和锚点2的位置gydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba 。前面的能量计算表明,春天的势能gydF4y2Ba 我gydF4y2Ba 是gydF4y2Ba

EgydF4y2Ba ngydF4y2Ba egydF4y2Ba rgydF4y2Ba ggydF4y2Ba ygydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba =gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba (gydF4y2Ba 为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba - - - - - -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba 。gydF4y2Ba

调整这种潜在的能源问题作为一个二阶锥问题需要引入一些新的变量,如Lobo所述gydF4y2Ba[1]gydF4y2Ba。创建变量gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 等于根号gydF4y2Ba EgydF4y2Ba ngydF4y2Ba egydF4y2Ba rgydF4y2Ba ggydF4y2Ba ygydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba =gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba (gydF4y2Ba 为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba - - - - - -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba 。gydF4y2Ba

让gydF4y2Ba egydF4y2Ba 是单位的列向量gydF4y2Ba (gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba 。然后gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba =gydF4y2Ba egydF4y2Ba TgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。这个问题变得gydF4y2Ba

最小值gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba (gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba egydF4y2Ba TgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba +gydF4y2Ba 为gydF4y2Ba tgydF4y2Ba 为gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba (1)gydF4y2Ba

现在考虑gydF4y2Ba tgydF4y2Ba 作为一个免费矢量变量,而不是由前面的方程gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。整合之间的关系gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 和gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 在新的锥约束gydF4y2Ba

为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba - - - - - -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ≤gydF4y2Ba 2gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba (2)gydF4y2Ba

目标函数是没有线性的变量,如所需gydF4y2BaconeproggydF4y2Ba。介绍一个新的标量变量gydF4y2Ba ygydF4y2Ba 。注意,不平等gydF4y2Ba 为gydF4y2Ba tgydF4y2Ba 为gydF4y2Ba 2gydF4y2Ba ≤gydF4y2Ba ygydF4y2Ba 相当于不平等吗gydF4y2Ba

为gydF4y2Ba (gydF4y2Ba 2gydF4y2Ba tgydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba ygydF4y2Ba ]gydF4y2Ba 为gydF4y2Ba ≤gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba ygydF4y2Ba 。(3)gydF4y2Ba

现在的问题是减少gydF4y2Ba

最小值gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba egydF4y2Ba TgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ygydF4y2Ba )gydF4y2Ba (4)gydF4y2Ba

锥约束gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 和gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 在(2)和额外的上市锥约束(3)。(3)确保锥约束gydF4y2Ba 为gydF4y2Ba tgydF4y2Ba 为gydF4y2Ba 2gydF4y2Ba ≤gydF4y2Ba ygydF4y2Ba 。因此,问题(4)相当于问题(1)。gydF4y2Ba

目标函数和锥约束问题(4)适合的解决方案gydF4y2BaconeproggydF4y2Ba。gydF4y2Ba

MATLAB®配方gydF4y2Ba

定义六弹簧常数gydF4y2Ba kgydF4y2Ba ,6个长度常量gydF4y2Ba lgydF4y2Ba 群众,5gydF4y2Ba 米gydF4y2Ba 。gydF4y2Ba

k = 40 * (1:6);l = [1 1/2 1 2 1 1/2];m = (2 1 3 2 1);gydF4y2Ba

定义近似地球引力常数gydF4y2Ba ggydF4y2Ba 。gydF4y2Ba

g = 9.807;gydF4y2Ba

为优化变量的十个组件gydF4y2Ba xgydF4y2Ba 向量,六个组成部分gydF4y2Ba tgydF4y2Ba 向量,gydF4y2Ba ygydF4y2Ba 变量。让gydF4y2BavgydF4y2Ba是包含所有这些变量的向量。gydF4y2Ba

  • (v (1), (2))gydF4y2Ba对应于二维变量gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

  • (v (3), (4))gydF4y2Ba对应于二维变量gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

  • (v (5), (6)]gydF4y2Ba对应于二维变量gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 3gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

  • (v (7)、(8)]gydF4y2Ba对应于二维变量gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 4gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

  • (v (9)、(10))gydF4y2Ba对应于二维变量gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 5gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

  • [v (11): v (16))gydF4y2Ba对应6 d向量gydF4y2Ba tgydF4y2Ba 。gydF4y2Ba

  • v (17)gydF4y2Ba对应于标量变量gydF4y2Ba ygydF4y2Ba 。gydF4y2Ba

使用这些变量,创建相应的目标函数向量gydF4y2BafgydF4y2Ba。gydF4y2Ba

f = 0(大小(m));f = [f, g * m];f = f (:);f = [f; 0(长度(k) + 1, - 1));f(结束)= 1;gydF4y2Ba

创建锥约束对应于群众之间的弹簧(2)gydF4y2Ba

为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba - - - - - -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ≤gydF4y2Ba 2gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 。gydF4y2Ba

的gydF4y2BaconeproggydF4y2Ba解算器使用锥约束变量向量gydF4y2Ba vgydF4y2Ba 在表单中gydF4y2Ba

为gydF4y2Ba 一个gydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba ⋅gydF4y2Ba vgydF4y2Ba - - - - - -gydF4y2Ba bgydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba 为gydF4y2Ba ≤gydF4y2Ba dgydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba TgydF4y2Ba vgydF4y2Ba - - - - - -gydF4y2Ba γgydF4y2Ba 。gydF4y2Ba

在以下代码中,gydF4y2BaAscgydF4y2Ba矩阵表示这个词gydF4y2Ba 为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba ,gydF4y2Ba二元同步通信gydF4y2Ba=gydF4y2Ba(0,0)gydF4y2Ba。锥变量gydF4y2BadscgydF4y2Ba=gydF4y2Ba 2gydF4y2Ba /gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 和相应的gydF4y2BaγgydF4y2Ba=gydF4y2Ba - - - - - -gydF4y2Ba lgydF4y2Ba (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 ygydF4y2Ba 变量gydF4y2Ba

为gydF4y2Ba (gydF4y2Ba 2gydF4y2Ba tgydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba ygydF4y2Ba ]gydF4y2Ba 为gydF4y2Ba ≤gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba ygydF4y2Ba

通过创建矩阵gydF4y2BaAscgydF4y2Ba,乘以吗gydF4y2BavgydF4y2Ba向量,给出了向量gydF4y2Ba (gydF4y2Ba 2gydF4y2Ba tgydF4y2Ba - - - - - -gydF4y2Ba ygydF4y2Ba ]gydF4y2Ba 。的gydF4y2Ba二元同步通信gydF4y2Ba向量对应的常数1项gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba ygydF4y2Ba 。的gydF4y2BadscgydF4y2Ba向量,当乘以gydF4y2BavgydF4y2Ba,返回gydF4y2Ba ygydF4y2Ba 。和gydF4y2BaγgydF4y2Ba=gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba 。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 tgydF4y2Ba 和gydF4y2Ba ygydF4y2Ba 变量。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

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表点,计算锚点、弹簧。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

|gydF4y2Ba

相关的话题gydF4y2Ba