主要内容GYDF4y2Ba

基于锥规划的分段线性质量弹簧系统能量最小化问题GYDF4y2Ba

这个例子展示了如何使用基于问题的方法来找到悬挂在两个锚定点上的质量-弹簧系统的平衡位置。弹簧具有分段线性张力。该系统包括GYDF4y2Ba NGYDF4y2Ba 二维质量,质量GYDF4y2Ba 我GYDF4y2Ba 它与弹簧相连GYDF4y2Ba 我GYDF4y2Ba 和GYDF4y2Ba 我GYDF4y2Ba +GYDF4y2Ba 1.GYDF4y2Ba .斯普林斯GYDF4y2Ba 1.GYDF4y2Ba 和GYDF4y2Ba NGYDF4y2Ba +GYDF4y2Ba 1.GYDF4y2Ba 也连接到单独的锚定点。在这种情况下,弹簧的零力长度GYDF4y2Ba 我GYDF4y2Ba 是一个正长度GYDF4y2Ba LGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba ,弹簧产生力GYDF4y2Ba KGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba QGYDF4y2Ba 当伸展到一定长度时GYDF4y2Ba QGYDF4y2Ba +GYDF4y2Ba LGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba . 问题是找到质量的最小势能结构,其中势能来自重力和拉伸非线性弹簧。平衡发生在最小能量配置下。GYDF4y2Ba

此图显示了悬挂在两个锚定点上的五个弹簧和四个质量块。GYDF4y2Ba

质量的势能GYDF4y2Ba MGYDF4y2Ba 在高处GYDF4y2Ba HGYDF4y2Ba 是GYDF4y2Ba MGYDF4y2Ba GGYDF4y2Ba HGYDF4y2Ba 哪里GYDF4y2Ba GGYDF4y2Ba 是地球上的引力常数,也是理想线性弹簧的势能GYDF4y2Ba KGYDF4y2Ba 拉长GYDF4y2Ba QGYDF4y2Ba 是GYDF4y2Ba KGYDF4y2Ba QGYDF4y2Ba 2.GYDF4y2Ba /GYDF4y2Ba 2.GYDF4y2Ba .在当前模型中,弹簧并不理想,但其静止长度非零GYDF4y2Ba LGYDF4y2Ba .GYDF4y2Ba

这个例子的数学基础来自Lobo、Vandenberghe、Boyd和LebretGYDF4y2Ba[1]GYDF4y2Ba。有关此示例的基于解算器的版本,请参见GYDF4y2Ba基于锥规划求解器的分段线性质量弹簧系统能量最小化GYDF4y2Ba.GYDF4y2Ba

数学公式GYDF4y2Ba

质量的位置GYDF4y2Ba 我GYDF4y2Ba 是GYDF4y2Ba xGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba ,具有水平坐标GYDF4y2Ba xGYDF4y2Ba 1.GYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba 和垂直坐标GYDF4y2Ba xGYDF4y2Ba 2.GYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba 大量GYDF4y2Ba 我GYDF4y2Ba 由于重力的作用,具有势能GYDF4y2Ba GGYDF4y2Ba MGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba xGYDF4y2Ba 2.GYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba .春天的势能GYDF4y2Ba 我GYDF4y2Ba 是GYDF4y2Ba KGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba (GYDF4y2Ba DGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba -GYDF4y2Ba LGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba )GYDF4y2Ba 2.GYDF4y2Ba /GYDF4y2Ba 2.GYDF4y2Ba 哪里GYDF4y2Ba DGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba 是弹簧在质量之间的长度GYDF4y2Ba 我GYDF4y2Ba 和质量GYDF4y2Ba 我GYDF4y2Ba -GYDF4y2Ba 1.GYDF4y2Ba .以锚固点1为质量0的位置,锚固点2为质量的位置GYDF4y2Ba NGYDF4y2Ba +GYDF4y2Ba 1.GYDF4y2Ba .前面的能量计算表明,弹簧的势能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 1.GYDF4y2Ba )GYDF4y2Ba ‖GYDF4y2Ba -GYDF4y2Ba LGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba )GYDF4y2Ba 2.GYDF4y2Ba 2.GYDF4y2Ba .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 1.GYDF4y2Ba )GYDF4y2Ba ‖GYDF4y2Ba -GYDF4y2Ba LGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba )GYDF4y2Ba 2.GYDF4y2Ba 2.GYDF4y2Ba .GYDF4y2Ba

让GYDF4y2Ba EGYDF4y2Ba 是单位列向量GYDF4y2Ba [GYDF4y2Ba 0GYDF4y2Ba 1.GYDF4y2Ba ]GYDF4y2Ba .那么GYDF4y2Ba xGYDF4y2Ba 2.GYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba =GYDF4y2Ba EGYDF4y2Ba TGYDF4y2Ba xGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba .问题变成了GYDF4y2Ba

闵GYDF4y2Ba xGYDF4y2Ba ,GYDF4y2Ba TGYDF4y2Ba (GYDF4y2Ba ∑GYDF4y2Ba 我GYDF4y2Ba GGYDF4y2Ba MGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba EGYDF4y2Ba TGYDF4y2Ba xGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba +GYDF4y2Ba ‖GYDF4y2Ba TGYDF4y2Ba ‖GYDF4y2Ba 2.GYDF4y2Ba )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 1.GYDF4y2Ba )GYDF4y2Ba ‖GYDF4y2Ba -GYDF4y2Ba LGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba ≤GYDF4y2Ba 2.GYDF4y2Ba KGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba TGYDF4y2Ba (GYDF4y2Ba 我GYDF4y2Ba )GYDF4y2Ba .GYDF4y2Ba (2)GYDF4y2Ba

目标函数的变量还不是线性的,这是GYDF4y2BaconeprogGYDF4y2Ba. 引入一个新的标量变量GYDF4y2Ba YGYDF4y2Ba .注意,不平等性GYDF4y2Ba ‖GYDF4y2Ba TGYDF4y2Ba ‖GYDF4y2Ba 2.GYDF4y2Ba ≤GYDF4y2Ba YGYDF4y2Ba 这相当于不平等GYDF4y2Ba

‖GYDF4y2Ba [GYDF4y2Ba 2.GYDF4y2Ba TGYDF4y2Ba 1.GYDF4y2Ba -GYDF4y2Ba YGYDF4y2Ba ]GYDF4y2Ba ‖GYDF4y2Ba ≤GYDF4y2Ba 1.GYDF4y2Ba +GYDF4y2Ba YGYDF4y2Ba . (3)GYDF4y2Ba

现在的问题是最小化GYDF4y2Ba

闵GYDF4y2Ba xGYDF4y2Ba ,GYDF4y2Ba TGYDF4y2Ba ,GYDF4y2Ba YGYDF4y2Ba (GYDF4y2Ba ∑GYDF4y2Ba 我GYDF4y2Ba GGYDF4y2Ba MGYDF4y2Ba (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 2.GYDF4y2Ba ≤GYDF4y2Ba YGYDF4y2Ba 因此,问题(4)等同于问题(1)。GYDF4y2Ba

问题(4)中的目标函数和锥约束适用于带GYDF4y2BaconeprogGYDF4y2Ba.GYDF4y2Ba

MATLAB®公式GYDF4y2Ba

定义六个弹簧常数GYDF4y2Ba KGYDF4y2Ba ,六个长度常数GYDF4y2Ba LGYDF4y2Ba 和五个群众GYDF4y2Ba MGYDF4y2Ba .GYDF4y2Ba

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

定义与数学问题变量对应的优化变量。为简单起见,请将锚点设置为两个虚拟质量点GYDF4y2Bax(1,:)GYDF4y2Ba和GYDF4y2Ba十(完:)GYDF4y2Ba.此公式允许每个弹簧在两个质量之间拉伸。GYDF4y2Ba

nmass=长度(m)+2;GYDF4y2Ba%k和l有nmass-1元素GYDF4y2Ba%m有nmass-2元素GYDF4y2Bax=optimvar(GYDF4y2Ba“x”GYDF4y2Ba,[nmass,2]);t=optimvar(GYDF4y2Ba“不”GYDF4y2Ba,nmass-1,GYDF4y2Ba“LowerBound”GYDF4y2Ba,0);y=optimvar(GYDF4y2Ba“是的”GYDF4y2Ba,GYDF4y2Ba“LowerBound”GYDF4y2Ba,0);GYDF4y2Ba

创建一个优化问题,并将目标函数设置为(4)中的表达式。GYDF4y2Ba

prob=optimproblem;obj=dot(x(2:(end-1),2),m)*g+y;prob.Objective=obj;GYDF4y2Ba

创建与表达式(2)相对应的圆锥体约束。GYDF4y2Ba

conecons=optimineq(nmass-1);GYDF4y2Ba对于GYDF4y2Baii=1:(nmass-1)conecons(ii)=范数(x(ii+1,:)-x(ii,:)-l(ii)<=sqrt(2/k(ii))*t(ii);GYDF4y2Ba结束GYDF4y2Baprob.Constraints.conecons=conecons;GYDF4y2Ba

指定定位点GYDF4y2Ba主播GYDF4y2Ba和GYDF4y2Ba主播GYDF4y2Ba.创建相等约束,指定两个虚拟端质量位于定位点处。GYDF4y2Ba

主播0=[05];主播=[5 4];锚链=最优等式(2,2);主播(1,:)=x(1,:)=0;锚点(2,:)=x(结束,:)==锚点;prob.Constraints.anchorcons=锚点;GYDF4y2Ba

创建与表达式(3)相对应的圆锥体约束。GYDF4y2Ba

ycone=norm([2*t;(1-y)])<=1+y;prob.Constraints.ycone=ycone;GYDF4y2Ba

解决问题GYDF4y2Ba

问题公式已完成。请致电解决问题GYDF4y2Ba解决GYDF4y2Ba.GYDF4y2Ba

[sol,fval,eflag,output]=求解(prob);GYDF4y2Ba
使用coneprog解决问题。找到了最优解。GYDF4y2Ba

绘制解决方案点和定位点。GYDF4y2Ba

绘图(sol.x(2:(nmass-1),1),sol.x(2:(nmass-1),2),GYDF4y2Ba“罗”GYDF4y2Ba)持有GYDF4y2Ba在…上GYDF4y2Ba图([sol.x(1,1),sol.x(end,1)],[sol.x(1,2),sol.x(end,2)],GYDF4y2Ba“ks”GYDF4y2Ba)图(sol.x(:,1),sol.x(:,2),GYDF4y2Ba“b——”GYDF4y2Ba)传奇(GYDF4y2Ba“计算点”GYDF4y2Ba,GYDF4y2Ba“锚定点”GYDF4y2Ba,GYDF4y2Ba“春天”GYDF4y2Ba,GYDF4y2Ba“位置”GYDF4y2Ba,GYDF4y2Ba“最好的”GYDF4y2Ba)xlim([sol.x(1,1)-0.5,sol.x(end,1)+0.5])ylim([min(sol.x(:,2))-0.5,max(sol.x(:,2))+0.5])保持GYDF4y2Ba关GYDF4y2Ba

图中包含一个Axis对象。Axis对象包含3个line类型的对象。这些对象表示计算点、锚定点和弹簧。GYDF4y2Ba

您可以更改参数的值GYDF4y2BaMGYDF4y2Ba,GYDF4y2BaLGYDF4y2Ba,及GYDF4y2BaKGYDF4y2Ba查看它们对解决方案的影响。您还可以更改质量数;代码从您提供的数据中获取质量数。GYDF4y2Ba

工具书类GYDF4y2Ba

[1] 二阶锥规划的应用GYDF4y2Ba线性代数及其应用GYDF4y2Ba284,第1-3号(1998年11月):193-228。GYDF4y2Bahttps://doi.org/10.1016/S0024-3795(98)10032-0GYDF4y2Ba.GYDF4y2Ba

另见GYDF4y2Ba

相关话题GYDF4y2Ba