MPC的终结——二次规划求解约束极值问题

Posted Jeossirey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MPC的终结——二次规划求解约束极值问题相关的知识,希望对你有一定的参考价值。

  • 约束极值问题的定义及优化方法

带有约束条件的极值问题称为约束极值问题,也叫规划问题。
求解约束极值问题要比求解无约束极值问题困难得多。为了简化其优化工作,可采用下面两种方法:
1.将约束问题转化为无约束问题;
2.将非线性规划问题转化为线性规划问题。

什么样的目标函数可以用二次规划求解呢?
1.非线性规划的目标函数为自变量x的二次函数
2.约束条件是线性的

  • 二次规划数学模型


其中,H是实对称矩阵;f,b,beq,lb,ub是列向量;A,Aeq是相应维数的矩阵。
Matlab中求解二次规划的命令:
[x,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
返回值x是决策向量x的值,返回值fval是目标函数在x处的值。

  • 二次规划求解的例子

Example:

编写程序如下:
H=[4,-4;-4,8];
f=[-6;-3];
A=[1,1;4,1];
b=[3,9];
[x,fval]=quadprog(H,f,A,b,[ ],[ ],zeros(2,1))
这里x1和x2有下界,没有上界,所以根据第三个约束,lb为两行一列的0矩阵,上界为空。
求解得:x1=1.9500,x2=1.0500,minf(x)=-11.0250

点击下方卡片,加入会员全年无限制学习后台(MPC各矩阵的底层逻辑、MPC纵向控制、模型验证、MPC自适应巡航控制、非线性系统如何线性化及MPC动力学跟踪任何轨迹、约束添加及新求解器的求解、轨迹规划、纵向规划等80个系列)会员专享爆品课程及资源,同时获得分佣资格,可赚回自己的学费!

以上是关于MPC的终结——二次规划求解约束极值问题的主要内容,如果未能解决你的问题,请参考以下文章

备战数学建模48-数学规划模型终结篇(全)(攻坚战13)

优化问题及KKT条件

用Java实现 遗传算法解带约束的多元函数极值问题

Python数模笔记-模拟退火算法约束条件的处理

LINGO 线性规划模型求解

R语言-运筹学非线性规划实例