【Matlab】变分法求控制器(无约束)
在动态最优控制中,目标函数是一个泛函数,求解动态最优化问题可以看做是求泛函极值的问题,求解泛函极值有一个方法,即变分法,本文章便介绍有关变分法的一些自己的学习理解。
变分法的基本概念
泛函
如果一个因变量的宗量不是独立自变量,而是另一些独立自变量的函数,则称该因变量为这个宗量的泛函。
当然,单纯的从这个概念上可能不太好理解,其实可以对比函数的概念:
例如上述从P1点到P2点有不同的路径可以到达,每一个路径对应一个函数y,y的宗量是x,即y是x的函数,所有的路径y构成一个集合,即为泛函J
泛函的变分
当理解了泛函大概是什么东西之后,就可以类比微分的概念,即函数的增量按照微分的概念可以分为线性变化的部分与高阶无穷小。那么泛函的变分也可以类比微分,同样也由线性部分与高阶无穷小组成:
欧拉方程
欧拉方程时求泛函极值的必要条件,假定一个曲线x(t)的起始点为x0,重点为xf,则使其性能泛函取极值的必要条件为:x(t)是二阶微分方程的解,这个二阶微分方程便是欧拉方程:
基本上需要用的概念就是这些,有其他相关的概念可以自行搜索或者看控制之类的数据,我相信百度或者教科书的解释要比我专业的多。单纯的从上述的概念上实际是并不能很好的去理解这个算法,我们可以来个实际的例子来加深印象。
可以先尝试一些简单的,也就是本文章讨论的部分,泛函所依赖的函数没有约束条件
求解的步骤可以按照如下步骤:
1.先将微分方程带入性能泛函
2.写出泛函的线性部分L
3.列出欧拉方程并求解
4.根据高数中求微分方程的知识得出极值曲线x*
5.根据微分方程得出其极值曲线对应的控制曲线u*
【Matlab】变分法求控制器(无约束)相关推荐
- matlab中fminunc函数使用方法,[分享]无约束非线性规划函数\fminunc函数使用方法(MATLAB)...
[分享]无约束非线性规划函数\fminunc函数使用方法(MATLAB) 无约束非线性规划函数\fminunc函数使用方法(MATLAB) %用于求解无约束非线性规划的函数有:fminsearch和f ...
- MATLAB 无约束一维极值问题
无约束一维极值问题 极值问题表达式:min f(x) x,x[ x1 x2]; 一维极值的搜索方式包括线性搜索和非线性搜索,线性搜索包含黄金分割法.斐波那契法和牛顿法,非线性方法包含抛物线法 ...
- 利用 MATLAB 编程实现最速下降法求解无约束最优化问题
本文章包含以下内容 1.画出最速下降法的算法流程图: 2.MATLAB 编写用数值微分法的梯度计算函数(函数式 M 文件): 3.MATLAB 编写最速下降法求解无约束优化问题的函数,要求采用黄金分割 ...
- LQ优化控制Matlab,基于Matlab的LQ控制器的设计与仿真研究
第24卷第4期2010年7月甘肃联合大学学报(自然科学版) Jour nal of G ansu Lianhe U niver sity (N atural Sciences)V o l.24No.4 ...
- 优化工具包—无约束非线性优化求解器(fminsearch)
优化工具包-无约束非线性优化求解器(fminsearch) 原创不易,路过的各位大佬请点个赞 室内定位/导航/优化技术探讨:WX: ZB823618313 目录 优化工具包-无约束非线性优化求解器(f ...
- 无约束最优化方法-牛顿法
无约束最优化算法-Newton法原理及c++编程实现 2012-12-14 13:04 6536人阅读 评论(5) 收藏 举报 本文章已收录于: 分类: [算法](27) 作者同类文章X 版权声 ...
- 最优化算法python实现篇(4)——无约束多维极值(梯度下降法)
最优化算法python实现篇(4)--无约束多维极值(梯度下降法) 摘要 算法简介 注意事项 算法适用性 python实现 实例运行结果 算法过程可视化 摘要 本文介绍了多维无约束极值优化算法中的梯度 ...
- 最优化算法python实现篇(3)——无约束一维极值(黄金分割法)
最优化算法python实现篇(3)--无约束一维极值(黄金分割法) 算法适用问题 python实现 示例运行结果 算法适用问题 搜索给定单峰区间的极值问题,一般对凸优化问题比较适用. python实现 ...
- 最优化算法python实现篇(2)—无约束一维极值(二分法)
最优化算法python实现篇(2)--无约束一维极值(二分法) 算法适用问题 python实现 示例运行结果 算法适用问题 搜索给定单峰区间的极值问题,一般对凸优化问题比较适用. python实现 # ...
- 非线性规划(凸规划,无约束最优化方法,约束最优化方法)
非线性规划 非线性规划的最优解可能在可行域的任何地方取得. 一元函数:二阶导数>=0,曲线凹,即下凸. 二元函数:图解法 凸集:集合中任意取两个点x1和x2,若x1和x2之间的任意一个点都在该集 ...
最新文章
- jquery ajax跨域asp,jQuery跨域调用Asp.Net Web API
- maven和gradle中,dependency和plugin的区别
- linux命令学习之:curl
- Visual Studio 2017更新内容记录
- Python练习题 001:4个数字求不重复的3位数
- Java中集合的自定义运算符
- 如何编写一个python项目
- angularjs过滤器(number)
- go语言php编译,golang怎么编译
- 网络安全基础知识笔记
- python基础编程小实例11——房贷计算器
- mysql中将大写日期转为小写日期
- 串行通信又称为点对点通信(PtP),其中点对点如何理解
- 共轭转置matlab,何为共轭转置?
- C++知识整理系列(五)—— auto自动类型
- 谷歌发布 12 款 Chrome 新皮肤
- android喜马拉雅播放器,喜马拉雅车载播放器(随车听)-喜马拉雅FM车机版v2.0.0 安卓版-腾牛安卓网...
- 使用hive报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方法
- 曾经无数人在巴黎圣母院里祈祷, 如今轮到人们为她祈祷了…
- 建设智慧水利,水库水利在线监控系统解决方案