上一次总结了利用变分法推导得到的典型情形下最优控制需要满足的必要条件,具体的推导在大部分最优控制教材中都可以找到,并且在这些教材中一般会将变分法、极小值原理和动态规划作为最优控制的三大理论支撑。事实上,变分法的历史要比最优控制久远许多,并非专门为最优控制而生,只是后来人们发现可以用变分法求解最优控制问题,因此也将其作为最优控制的理论支撑之一。

1.关于极小值原理

我们接下来看看极小值原理,它的核心在于放宽了变分法中Hamilton函数对控制量可微分的要求,将其替换为如下极值条件(采用上一篇博客中的符号):

最优控制u(t)∈Uu(t)\in Uu(t)∈U,对任意容许的控制变量u′(t)∈Uu'(t)\in Uu′(t)∈U,在几乎任意时刻t∈[t0,tf]t\in [t_0,t_\mathrm{f}]t∈[t0​,tf​](不用在意几乎这个词,我们不是数学系的):
H(x(t),u(t),λ(t),t)≤H(x(t),u′(t),λ(t),t)(1)H(x(t),u(t),\lambda(t),t)\leq H(x(t),u'(t),\lambda(t),t)\tag{1} H(x(t),u(t),λ(t),t)≤H(x(t),u′(t),λ(t),t)(1)

其中,H[x(t),u(t),λ(t),t]=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t]H[x(t),u(t),\lambda(t),t]=L[x(t),u(t),t]+\lambda^\mathrm{T}(t)f[x(t),u(t),t]H[x(t),u(t),λ(t),t]=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t]为Hamilton函数,也就是说最优控制使得Hamilton函数在容许控制范围内取最小值。极小值原理主要是用式(1)代替了变分法中的∂H∂u=0\frac{\partial H}{\partial u}=0∂u∂H​=0,其他必要条件则与变分法一样,因此极小值原理适用于控制幅值有限情形下的最优控制问题求解,比如典型的Bang-Bang控制等。极小值原理的证明非常复杂,在文献[1]中有详细介绍,一般来说我们只需要承认并且应用结论就好了。总之,对于最优控制,无论是变分法还是极小值原理都已经很成熟了,大多数时候我们是遇到一个最优控制问题,套用变分法和极小值原理得到的必要条件,然后想办法近似求解这组必要条件,只有在很特殊的情形下才能精确求解这组必要条件。此外,为什么说是必要条件,可类比在微积分课程中的可微分函数的最小值点或者最大值点处的微分必为零,而微分为零的却不一定是可微分函数的最小值点或者最大值点。对于最优控制,我们无法直接获得最优解的充分条件,只能先假设如果有最优解的话,那么最优解一定满足什么性质(比如性能指标的变分为0),然后定量描述这些性质,也就是说,最优解一定满足什么性质,但是满足这些性质的不一定是最优解,即获得了必要条件。对于大多数有实际背景的最优控制问题(如轨迹优化),求解必要条件就能够获得满足需求的解。

2.关于动态规划

前述主要是针对连续系统总结了最优解的必要条件,对于离散系统,利用变分法或者极小值原理也可以推导一组类似的必要条件,只是相对来说没有连续系统那样常用,离散系统的最优控制问题更多地是采用动态规划方法进行求解,并且考虑的前提条件是没有终端约束。具体来说,系统方程为
x(k+1)=fD(x(k),u(k),k),k=0,…,N−1(2)x(k+1)=f_D(x(k),u(k),k),~k=0,\ldots,N-1\tag{2} x(k+1)=fD​(x(k),u(k),k), k=0,…,N−1(2)

考虑对任意时刻k∈[0,N−1]k\in [0,N-1]k∈[0,N−1],k∈Nk\in\mathbb{N}k∈N和初始容许的状态x(k)x(k)x(k),最小化性能指标(与变分法和极小值原理不同,注意这里性能指标的求和部分计算起点是任意的x(k)x(k)x(k),可以认为是变分法和极小值原理中性能指标的推广)
J(u;x(k),k)=ΦD(x(N),N)+∑i=kN−1LD(x(i),u(i),i)(3)J(u;x(k),k)=\varPhi_D(x(N),N)+\sum_{i=k}^{N-1}L_D(x(i),u(i),i)\tag{3} J(u;x(k),k)=ΦD​(x(N),N)+i=k∑N−1​LD​(x(i),u(i),i)(3)

定义最优控制下最小化的性能指标
V(x(k),k)=defmin⁡u∈UJ(u;x(k),k)(4)V(x(k),k)\overset{\text{def}}{=}\min_{u\in U}J(u;x(k),k)\tag{4} V(x(k),k)=defu∈Umin​J(u;x(k),k)(4)

称其为最优控制问题的值函数,其本质上对应于强化学习中的状态值函数,并且有如下Bellman方程成立:
V(x(k),k)=min⁡u∈U{LD(x(k),u(k),k)+V(x(k+1),k+1)},k=0,…,N−1(5)\begin{aligned} &V(x(k),k)=\min_{u\in U}\{L_D(x(k),u(k),k)+V(x(k+1),k+1)\},\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad k=0,\ldots,N-1 \end{aligned}\tag{5} ​V(x(k),k)=u∈Umin​{LD​(x(k),u(k),k)+V(x(k+1),k+1)},k=0,…,N−1​(5)

边界条件为
V(x(N),N)=ΦD(x(N),N)(6)V(x(N),N)=\varPhi_D(x(N),N)\tag{6} V(x(N),N)=ΦD​(x(N),N)(6)

从式(5)可以看出,在利用Bellman方程求解离散系统最优控制问题时,适合采用倒推法,即从最后一步开始逐级往前倒推。

动态规划同样可用于连续系统的最优控制问题,假设没有终端约束,系统状态方程为
x˙(t)=f(x(t),u(t),t),t∈[t0,tf](7)\dot{x}(t)=f(x(t),u(t),t),~t\in[t_0,t_\mathrm{f}]\tag{7} x˙(t)=f(x(t),u(t),t), t∈[t0​,tf​](7)

以任意时刻t∈Rt\in\mathbb{R}t∈R为起点,任意容许的状态x(t)x(t)x(t)为初始状态,定义性能指标为(注意积分部分的下界)
J(u;x(t),t)=Φ(x(tf),tf)+∫tN−1L(x(τ),u(τ),τ)dτ(8)J(u;x(t),t)=\varPhi(x(t_\mathrm{f}),t_\mathrm{f})+\int_{t}^{N-1}L(x(\tau),u(\tau),\tau)\mathrm{d}\tau\tag{8} J(u;x(t),t)=Φ(x(tf​),tf​)+∫tN−1​L(x(τ),u(τ),τ)dτ(8)

定义最优控制下的性能指标为
V(x(t),t)=defmin⁡u∈UJ(u;x(t),t)(9)V(x(t),t)\overset{\text{def}}{=}\min_{u\in U}J(u;x(t),t)\tag{9} V(x(t),t)=defu∈Umin​J(u;x(t),t)(9)

称其为最优控制问题的值函数,若V(x(t),t)V(x(t),t)V(x(t),t)二阶连续可微,则有如下Hamilton-Jacobi-Bellman方程(简称HJB方程)成立:
−∂V∂t(x(t),t)=min⁡u(t)∈UH(x(t),u(t),∂V∂x(x(t),t),t),t∈[t0,tf](10)-\frac{\partial V}{\partial t}(x(t),t)=\min_{u(t)\in U}H\left(x(t),u(t),\frac{\partial V}{\partial x}(x(t),t),t\right),~t\in[t_0,t_\mathrm{f}]\tag{10} −∂t∂V​(x(t),t)=u(t)∈Umin​H(x(t),u(t),∂x∂V​(x(t),t),t), t∈[t0​,tf​](10)

边界条件为
V(x(tf),tf)=Φ(x(tf),tf)(11)V(x(t_\mathrm{f}),t_\mathrm{f})=\varPhi(x(t_\mathrm{f}),t_\mathrm{f})\tag{11} V(x(tf​),tf​)=Φ(x(tf​),tf​)(11)

其中,H[x(t),u(t),λ(t),t]=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t]H[x(t),u(t),\lambda(t),t]=L[x(t),u(t),t]+\lambda^\mathrm{T}(t)f[x(t),u(t),t]H[x(t),u(t),λ(t),t]=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t]为Hamilton函数。需要说明的是,此时HJB方程是最优控制的充分必要条件。此外,对比极小值原理和动态规划可以看出,所谓的协态变量λ(t)\lambda(t)λ(t)满足
λ(t)=∂V∂x(x(t),t)(12)\lambda(t)=\frac{\partial V}{\partial x}(x(t),t)\tag{12} λ(t)=∂x∂V​(x(t),t)(12)

HJB方程是关于值函数V(x(t),t)V(x(t),t)V(x(t),t)的偏微分方程,一般很难求解,如果是稳态系统,即状态方程和性质指标均不显含时间ttt,则此时HJB方程变为
0=min⁡u(t)∈UH(x(t),u(t),∂V∂x(x(t),t),t),t∈[t0,tf](13)0=\min_{u(t)\in U}H\left(x(t),u(t),\frac{\partial V}{\partial x}(x(t),t),t\right),~t\in[t_0,t_\mathrm{f}]\tag{13} 0=u(t)∈Umin​H(x(t),u(t),∂x∂V​(x(t),t),t), t∈[t0​,tf​](13)

式(13)是目前大部分控制学科里面研究强化学习的出发点,考虑到对于非线性系统,式(13)依然很难求解,因此采用神经网络等方式对值函数进行近似,这样可以通过近似求解式(13)来获得最优控制量,然后美其名曰强化学习,提升逼格。从这个角度看,控制学科似乎将强化学习认为是求解最优控制的一种方法了,有点小瞧的意思。

最后,前面说过,只有非常特殊的系统,利用变分法和极小值原理推导得到的条件才能精确求解,线性二次型(LQR)即属于此类特殊系统,此时用动态规划也能推导获得一样的条件,即Riccati方程,在任何一本最优控制书上都会介绍,在此不再赘述。对于大部分情形,必要条件是比较难以精确求解的,通常需要对系统方程或者必要条件进行一些近似,而且当约束条件比较多的时候,推导必要条件并不是一个好方法,此时更为合适的方式是对系统模型进行转换,利用非线性规划等数值方法进行求解,即所谓的直接法,而求解必要条件的方法相应地称为间接法。

参考文献

[1]张杰, 王飞跃. 最优控制: 数学理论与智能方法. 上册[M]. 清华大学出版社, 2017.

关于最优控制的一些总结3相关推荐

  1. 控制~线性二次型最优控制

    线性二次型最优控制           相当不错,讲得很透彻

  2. MIT科学家Dimitri P. Bertsekas最新2019出版《强化学习与最优控制》(附书稿PDF讲义)...

    来源:专知 摘要:MIT科学家Dimitri P. Bertsekas今日发布了一份2019即将出版的<强化学习与最优控制>书稿及讲义,该专著目的在于探索这人工智能与最优控制的共同边界,形 ...

  3. 【控制】《最优控制理论与系统》-胡寿松老师-第5章-线性最优状态调节器

    第4章 回到目录 第6章 <最优控制理论与系统>-胡寿松老师-第5章-线性最优状态调节器 第5章 线性最优状态调节器 5.1 线性二次型问题 5.2 状态调节器 5.2.1 有限时间状态调 ...

  4. 【控制】《最优控制理论与系统》-胡寿松老师-第2章-最优控制中的变分法

    第1章 回到目录 第3章 <最优控制理论与系统>-胡寿松老师-第2章-最优控制中的变分法 第2章 最优控制中的变分法 2.1 泛函与变分 2.1.1 线性赋范空间 2.1.2 泛函及其定义 ...

  5. 【控制】《最优控制理论与系统》-胡寿松老师-第1章-导论

    无 回到目录 第2章 <最优控制理论与系统>-胡寿松老师-第1章-导论 第1章 导论 1.1 引言 1.2 最有控制问题 1.2.1 最优控制实例 1.2.2 最优控制问题的基本组成 1. ...

  6. 【控制】《自动控制原理》胡寿松老师-第10章-动态系统的最优控制方法

    第9章 回到目录 无 第10章-动态系统的最优控制方法 10.1 最优控制的一般概念 10.2 最优控制中的变分法 10.3 极小值原理及其应用 10.4 线性二次型问题的最优控制 1. 线性二次型问 ...

  7. P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 13. 最优控制系统 13.1 Matlab ...

  8. matlab最优控制实验报告_第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt...

    第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt 综上所述可得结论:Q=diag(1,0,0),R=2时,系统各方面响应较好. 矩阵Q变大时,反馈矩阵变大: 当Q的对角线上第 ...

  9. 序列二次规划_最优控制与规划

    (以下内容均来源于 CS 294 Lecture 8) 首先我们假设环境是确定性的,即在某个状态执行某个动作之后,转移到的下一个状态是确定的,不存在任何随机性.而在这种情况下,我们想做的是在环境给了我 ...

  10. 用于最优控制的简单软件

    目录 介绍 问题陈述 线性动态系统 离散时间 线性案例的解决方案 线性案例解决方案的探讨 非线性系统 方法限制 不断反馈 软件的使用 数字示例 线性系统 范德波尔(Van der Pol)振荡器 具有 ...

最新文章

  1. thinkphp链接mssql以及查询中文乱码问题
  2. html 弹窗被拦截,window.open()弹窗被浏览器拦截的解决方法
  3. PHP学级与年级的转换函数_PHP addslashes()和stripslashes():字符串转义与还原
  4. 禾川触摸屏编程软件_汇川PLC编程PLC代写程序
  5. React开发(117):ant design 新方式
  6. java_数组插入001
  7. activex control test container 服务器正在运行中_Desktop Central服务器RCE漏洞在野攻击分析...
  8. CSE-CIC-IDS 2018数据集下载
  9. 车联网的麻烦和便利一样多 BAT们要治这种尴尬症
  10. html留言页面设计,html的留言板制作(js)
  11. Gitee-基于Git的代码托管和研发协作平台,JNPF快速开发框架源码目录截图
  12. php自学难_php难吗?自学要多久?需要报培训班吗?
  13. 开关电源环路学习笔记(3)-系统框图
  14. 人工智能知识全面讲解:生成对抗网络的应用
  15. 2021校招滴滴笔试sql
  16. 喜闻乐见的「手算题」技巧3:巧用 Python
  17. TypeError: xxx() missing 1 required positional argument: 'xxx'
  18. 经典战役—2004Nollelva之狭路相逢勇者胜
  19. 周大侠歌曲计算机,周大侠歌曲歌词
  20. 在 node 中使用 koa-multer 库上传文件详解

热门文章

  1. 现代通信领域不可不读的7本好书(内含超级赠书福利)
  2. 离散傅里叶变换的算法实现
  3. webM文件解析工具
  4. A+CLUB活动预告 | 2023年5月
  5. 【微信电子画册制作】名编辑电子杂志大师教程 | 给电子杂志设置背景图片
  6. Windows显示与隐藏文件扩展名
  7. 大学生bootstrap框架网页作业成品 web前端大作业期末源码 航海王html+jquery+bootstrap响应式网页制作模板 学生海贼王动漫bootstrap框架网站作品
  8. java struts2 漏洞_struts2漏洞列表
  9. fitnesse 新手入门
  10. 硬件测试之高低温测试