Value Iteration Adaptive Dynamic Programming for Optimal Control of Discrete-Time Nonlinear Systems

Value Iteration Adaptive Dynamic Programming for Optimal Control of Discrete-Time Nonlinear Systems ,2016. Qinglai Wei, Member, IEEE, Derong Liu, Fellow, IEEE, and Hanquan Lin

对离散时间非线性系统,采用值迭代ADP算法,求解无限时域无折扣因子最优控制问题。初始值函数为任意半正定。提出新的收敛性分析方法,保证迭代值函数收敛到最优值函数。初始化不同值函数,可证明迭代值函数为单调不增,单调不减或不单调。由于迭代控制策略的可容许性不能仅靠收敛终止判据来保证,因此第一次提出值迭代算法的迭代控制策略的容许性,确定新的终止标准以保证迭代控制策略的有效性。神经网络近似迭代值函数和计算迭代控制策略。最后比较了与Policy Iteration Adaptive Dynamic Programming Algorithm for Discrete-Time Nonlinear Systems,策略迭代PI需要可容许的初始控制,本篇文章选取任意半正定初始值函数更具优势。

与传统的VI算法比较,如Discrete-Time Nonlinear HJB Solution Using Approximate Dynamic Programming: Convergence Proof 2008。实际系统中初始的值函数不为0,迭代算法必须在有限次结束,且传统的VI算法得到的控制策略不能保证稳定。
对初始值函数为任意半正定函数,不能采取上面文章的分析。

Theorem123分别以假定的不同常数δ,给出值函数与最优值函数的不等式关系。
Theorem4给出在上述的常数下都可使得迭代值函数收敛到最优值函数。不同初始值函数有不同的迭代值函数的收敛过程。
Theorem5给出 V 1 ( x k ) ≤ V 0 ( x k ) V_1(x_k) \le V_0(x_k) V1(xk)V0(xk),则迭代值函数为单调不增 V i + 1 ( x k ) ≤ V i ( x k ) V_{i+1}(x_k) \le V_{i}(x_k) Vi+1(xk)Vi(xk),同理Theorem6给出 V 1 ( x k ) ≥ V 0 ( x k ) V_1(x_k) \ge V_0(x_k) V1(xk)V0(xk),则迭代值函数为单调不减 V i + 1 ( x k ) ≥ V i ( x k ) V_{i+1}(x_k) \ge V_{i}(x_k) Vi+1(xk)Vi(xk)
Corollary3给出迭代值函数和迭代控制策略,当迭代值函数单调不增时,满足迭代值函数大于等于最优值函数。同理Corollary4给出当迭代值函数单调不减时,满足迭代值函数小于等于最优值函数。
但仅根据任意初始值函数与最优值函数关系,不能得出迭代值函数的单调性。需要两个初始条件,Lemma1给出初始值函数恒为0时,迭代值函数单调不减收敛到最优值函数。Definition1给出可容许控制,使得系统稳定,且代价函数有界。
Theorem7给出迭代值函数和迭代控制策略下,初始半正定函数满足
在这里插入图片描述
则迭代值函数是单调不增收敛到最优。当迭代次数i趋于无穷,迭代值函数才收敛到最优。实际情况下算法是终止在有限迭代次数,使迭代值函数逐渐趋近于最优值函数,迭代控制策略以控制系统。

传统的VI算法,收敛标准 ∣ V i + 1 ( x k ) − V i ( x k ) ∣ ≤ ε |Vi+1\left( xk \right) −Vi\left( xk \right) |≤\varepsilon Vi+1(xk)Vi(xk)ε
Theorem8给出满足收敛终止条件,有系统是一致最终有界UUB。由于迭代控制策略只能使非线性系统UUB,则迭代控制不能代替最优控制,算法也不能仅由上述终止条件收敛。Theorem9给出新的终止条件得到迭代控制策略是可容许的,称为可容许终止条件。Theorem10给出在有限次N迭代的可容许终止条件。
Theorem11给出迭代次数增加时,迭代控制的可容许性
VI值迭代算法的公式
Value Iteration Adaptive Dynamic Programming for Optimal Control of Discrete-Time Nonlinear Systems_第1张图片

Value Iteration Adaptive Dynamic Programming for Optimal Control of Discrete-Time Nonlinear Systems_第2张图片

matlab仿真:检验在任意半正定初始值函数下的VI值迭代的可行性

代码私聊

第一次迭代时只计算无控制输入下预训练数据的代价函数(值函数)。
动作网络更新
后续迭代中,状态数据为0时,控制输入设为0,不为0时则计算迭代性能指标函数,并求出迭代控制策略,计算使得迭代性能指标函数最小化时的控制策略,更新动作网络权重。
评价网络更新
每一次迭代动作网络更新完后,更新评价网络,计算下个时间状态和迭代值函数,并更新评价网络权重。
将每次更新权重记录下来。绘出迭代值函数更新过程。
比较该VI法与lqr下求解最优增益和黎卡提方程的解。

亦可选择非线性系统实现

Matlab代码优化改进,采用matlab自带的神经网络工具实现,改进于VI algorithm with initial zero value function

你可能感兴趣的:(学习,笔记)