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值迭代算法的公式
matlab仿真:检验在任意半正定初始值函数下的VI值迭代的可行性
代码私聊
第一次迭代时只计算无控制输入下预训练数据的代价函数(值函数)。
动作网络更新
后续迭代中,状态数据为0时,控制输入设为0,不为0时则计算迭代性能指标函数,并求出迭代控制策略,计算使得迭代性能指标函数最小化时的控制策略,更新动作网络权重。
评价网络更新
每一次迭代动作网络更新完后,更新评价网络,计算下个时间状态和迭代值函数,并更新评价网络权重。
将每次更新权重记录下来。绘出迭代值函数更新过程。
比较该VI法与lqr下求解最优增益和黎卡提方程的解。
亦可选择非线性系统实现
Matlab代码优化改进,采用matlab自带的神经网络工具实现,改进于VI algorithm with initial zero value function