我们在这里使用二次规划(QP)的方法解一个五次多项式形式的曲线的cost function minimization的问题。二次规划的标准形式如下:

在之前的讨论的五次多项式的方法中,我们在采用空间上依旧有时间T信息,在这里时间T没有办法放进来,因此只适用于求解空间曲线,或者时间国定曲线的问题。
标准的无阶多项式及其一阶导数,二阶导数的表达式如下:

代价函数cost function中,我们只考虑横向偏移,以及jerk的大小:(当然我们还可以把比如横向速度和加速度考虑进来)

那么写成矩阵形式为:

对于jerk项也是一样:

H matrix为两项之和:

等式约束为起点的位置,速度,加速度,终点的速度,加速度,注意终点的位置被放在的不等式约束中。

写成矩阵形式:

合并后为:

不等式约束仅仅约束终点的位置(当然我们还可以把横向速度和横向加速度的限制考虑进来):

写成矩阵形式:

为了简单验证可以使用matlab quadprog求解:
将对应的matrix形式写出来然后带入标准格式中可得

options = optimoptions('quadprog',...'Algorithm','interior-point-convex','OptimalityTolerance',1e-4);[x,fval,exitflag,output,lambda] =  quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
output = struct with fields:message: '↵Minimum found that satisfies the constraints.↵↵Optimization completed because the objective function is non-decreasing in ↵feasible directions, to within the value of the optimality tolerance,↵and constraints are satisfied to within the value of the constraint tolerance.↵↵<stopping criteria details>↵↵Optimization completed: The relative dual feasibility, 1.504029e-13,↵is less than options.OptimalityTolerance = 1.000000e-04, the complementarity measure,↵7.016640e-05, is less than options.OptimalityTolerance, and the relative maximum constraint↵violation, 1.504029e-13, is less than options.ConstraintTolerance = 1.000000e-08.↵↵'algorithm: 'interior-point-convex'firstorderopt: 5.5478e-04constrviolation: 1.6116e-15iterations: 2linearsolver: 'dense'cgiterations: []lambda = struct with fields:ineqlin: [2×1 double]eqlin: [5×1 double]lower: [6×1 double]upper: [6×1 double]Elapsed time is 0.080802 seconds.

使用QP方法解基于五次多项式形式的cost function minimization问题相关推荐

  1. 自动驾驶——基于五次多项式螺旋线方程的换道曲线规划

    1.BackGround 已知:换道初始纵坐标y0(横向距离),换道初始航向角tan0,换道时间t,换道结束纵坐标yf,换道结束航向角tanf,车速VehSpd,曲线中点曲率q且曲率变化率为0.求解期 ...

  2. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  3. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  4. python元组读取到列表_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  5. matlab 混沌信号,基于五维混沌系统的图像加密方法

    大家都知道混沌信号作为加密信号源,可以应用于图像加密,文本文件加密,语音加密,系统加密等诸多领域,那么接下来,我给大家介绍一种基于五维混沌系统的图像加密方法,该方法不仅可以实现对图像加密,而且与其它加 ...

  6. PullScrollView详解(五)——完全使用listview实现下拉回弹(方法二)

    前言:当你感到不舒服的时候就是成长的时候.入职阿里时学长跟我说的这句话,一直记得.到死时,人们往往不会因为自己做过什么而后悔,而常常会因为没做什么而后悔.趁你还有激情,加油! 相关文章: 1.< ...

  7. 基于matlab编程方法实现模糊推理及解模糊的方法研究,基于Matlab编程方法实现模糊推理及解模糊的方法研究.doc...

    基于Matlab编程方法实现模糊推理及解模糊的方法研究 基于M a tlab 编程方法实现模糊推理及解模糊的方法研究 王海江, 陈 瑾, 徐卫忠 (中船重工集团 第七一一研究所 上海 200090) ...

  8. python selenium爬虫_详解基于python +Selenium的爬虫

    详解基于python +Selenium的爬虫 一.背景 1. Selenium Selenium 是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,支持chrome.firefox等主 ...

  9. 算法经典“钓鱼”问题详解 基于贪心算法 C语言描述

    算法经典"钓鱼"问题详解 基于贪心算法 初始条件 在一条水平路边,有 n 2 ≤ n ≤ 25个钓鱼池,从左到右编号为1.2.3.--.n.小明有H1 ≤ H ≤ 16个小时的空余 ...

最新文章

  1. 斐波那契数列性质【记住】
  2. 「完结」总结12大CNN主流模型架构设计思想
  3. 为什么watch机制不是银弹?
  4. 中间件业务在网易轻舟容器平台的性能调优实践
  5. oracle中ocr和asm的关系,迁移OCR和VotingDisk并删除原ASM磁盘组
  6. signature=9e6873686326b073f8f457fa0e6c2f70,Signature required
  7. oracle varchar2改成大字段类型clob,读取大字段内容
  8. hadoop 自定义分区
  9. 关于爬虫本地JS Hook的研究
  10. [冲啊!!!!!]小白SLAM相关基础知识
  11. WP7开发平台介绍及开发注意事项【WP7学习札记之二】
  12. java短信接口代码_java调用短信接口代码
  13. Windows超级管理器绿色单文件版V9.41下载 | 电脑任务管理器损坏可予以替代 | Windows超级管理器下载
  14. win10 1073linux密码,Linux Bash on Win10 忘记密码解决
  15. 冒泡排序java实现和分析
  16. C# winform程序调用Console控制台办法
  17. goland编译时提示\go-build\exe\a.out.exe: The process cannot access the file because it is being used
  18. 2023年网络安全比赛--Web综合渗透测试中职组(超详细)
  19. mac下安装redis 和 redis可视化工具rdm并且连接redis
  20. 关于mysql国庆头三天近一周的数据查询题目

热门文章

  1. c语言 指针_初识C语言指针
  2. 笔记本电脑5年没清灰了_返利网5年估值腰斩,没了P2P六亿对赌难完成
  3. python中文字体怎么设置_python matplotlib 中文字体设置
  4. 一份完整的问卷模板_如何写出一份优秀的个人简历?
  5. python 关闭 定时开启_Python爬虫邮箱定时自动发送
  6. flex 瀑布流 (多列样式column布局内容被截断)
  7. (82)zabbix如何选择适合的监控类型
  8. Hibernate(7)关联关系_单向1对n
  9. dijkstra堆优化(multiset实现-大大减小代码量)
  10. POJ - 2559 Largest Rectangle in a Histogram(单调栈)