Python 还原控制SCI论文算法系列1: 基于策略迭代的自适应最优控制器设计

Python 还原控制SCI论文算法系列1: 基于策略迭代的自适应最优控制器设计

0.前言

经过前两个文章的基本铺垫,

Python解决微分方程-状态方程求解作图问题

Python解决线性连续系统最优控制状态反馈问题

从本系列开始,我将把写作重心倾向于复现目前所研究的SCI科研论文提出的控制算法。本文将关注强化学习与最优控制领域的经典控制文章:

D.Vrabie, O.Pastravanu, M. Abu-Khalaf, F.L. Lewis. Adaptive optimal control for continuous-time linear systems based on policy iteration, Automatica, 2009(45): 477-484

文章将描述Lewis团队所提出的策略迭代算法相比于传统最优控制算法的创新点,并通过python编程将策略迭代控制算法程序化,通过文章中的例子实现算法复现,最后根据复现过程中发现的数值精度问题, 提出本文中算法执行时还存在什么样的问题。

1.研究问题的描述

1.1 经典线性系统最优控制器设计问题

对于线性系统:
x ˙ = A x + B u ( 1 ) \dot{x} = A x + B u (1) x˙=Ax+Bu1
问题的核心是求一个最优控制器 u ∗ = − K ∗ x u^{*} = -K^{*} x u=Kx,使得:

(i)系统的状态能够在反馈控制作用下收敛到平衡点;

(ii)系统的价值函数:
J = ∫ t 0 ∞ x T ( τ ) Q x ( τ ) + u T ( τ ) R u ( τ ) d τ ( 2 ) J = \int^{\infin}_{t_0} x^T(\tau)Qx(\tau) + u^T(\tau)Ru(\tau)d\tau (2) J=t0xT(τ)Qx(τ)+uT(τ)Ru(τ)dτ2
在控制器作用下值取到最小。

传统的求解方法即只需解出经典的代数黎卡提方程的解P即可:
A T P + P A − P B R − 1 B T P + Q = 0 ( 3 ) A^TP+PA-PBR^{-1}B^{T}P+Q = 0 (3) ATP+PAPBR1BTP+Q=03
对应的最优控制器 u ∗ u^{*} u可以表示为:
u ∗ = − K ∗ x = − R − 1 B T P x ( 4 ) u^{*} = - K^* x = -R^{-1}B^TPx (4) u=Kx=R1BTPx4

1.2 策略迭代问题的提出

从式(3)可以很明显的看出,如果要求出代数黎卡提方程的解P,则必须知道系统矩阵A,控制矩阵B和价值函数中的Q与R的精确值,从而进一步由(4)推导得到最优控制器。如果系统矩阵A未知时,那么很明显,直接使用代数黎卡提方程(3)来求解P将变的无法进行。因此,必须要寻找到一种新的算法,能够解决系统矩阵A不精确已知时最优控制器的求法。这就是上述论文需要核心解决的问题。

2. 论文所提的策略迭代控制算法详解

2.1 idea1: 将部分价值函数等效成Lyapunov函数增量

目前我们已知了最优控制器的结构为(4)式,唯一需要解决的是 P ∗ P^{*} P的值。因此,可以考虑用P的迭代值来代替精确值,保证迭代足够多次后,P能够收敛到精确值 P ∗ P^{*} P

为此,假设存在一个K能够保证A -BK为Hurwitz矩阵,即特征值实部为负,且满足
V ( t ) = x T ( t ) P x ( t ) = ∫ t ∞ x T ( τ ) Q x ( τ ) + x T ( τ ) K T R K x ( τ ) d τ ( 5 ) V(t) = x^T(t)Px(t) = \int^{\infin}_{t}x^T(\tau)Qx(\tau)+x^T(\tau)K^TRKx(\tau)d\tau (5) V(t)=xT(t)Px(t)=txT(τ)Qx(τ)+xT(τ)KTRKx(τ)dτ5
P为Lyapunov方程的解,即
( A − B K ) T P + P ( A − B K ) = Q + K T R K ( 6 ) (A-BK)^TP+P(A-BK) = Q + K^TRK (6) (ABK)TP+P(ABK)=Q+KTRK6

那么,可以将价值函数进行如下等效变换:
V ( t ) = ∫ t t + T x T ( τ ) ( Q + K T R K ) x ( τ ) d τ + V ( t + T ) ( 7 ) V(t) =\int^{t+T}_{t} x^T(\tau)(Q + K^TRK) x(\tau)d\tau + V(t + T) (7) V(t)=tt+TxT(τ)(Q+KTRK)x(τ)dτ+V(t+T)7
结合(5)式,可得
x T ( t ) P x ( t ) − x T ( t + T ) P x ( t + T ) = ∫ t t + T x T ( τ ) ( Q + K T R K ) x ( τ ) d τ ( 6 ) x^T(t)Px(t) - x^T(t+T)Px(t+T) = \int^{t+T}_{t}x^T(\tau)(Q+K^TRK)x(\tau)d\tau (6) xT(t)Px(t)xT(t+T)Px(t+T)=tt+T

作为有效的智能控制方法之一,迭代学习控制的基本机理是利用系统当前次的跟踪误差补偿其控制输入以产生系统下次运行的控制输入,使得系统输出逐渐逼近理想轨线,直到达到完全跟踪。随着信息技术的不断发展,迭代学习控制可网络化实现,称之为网络化迭代学习控制。然而,在网络化迭代学习控制执行过程中,数据通过网络传输时可能会发生丢包或时延现象。为了确保系统的正常运行,我们必须对丢包数据做适当估计。本文利用函数逼近方法对丢包数据进行估计,分析网络化迭代学习控制系统的跟踪性能。 首先,本文阐述了迭代学习控制及网络控制的基本概念和原理,分析了其优越性,列举了它们在工程领域的重要应用,阐明了迭代学习控制策略在网络化实现过程中产生数据丢包的原因及其严重影响,指出了对丢包数据进行估计的必要性。为了便于分析问题,本文给出了网络丢包数据的函数逼近策略的数学描述,分析了各种逼近方法的优劣性。分析表明,三次样条插值和最小二乘拟合逼近策略更适合于实际控制问题。 其次,论文引入矩阵级数的概念,利用向量和矩阵范数理论,推演了经典的PD-型迭代学习控制律施加于无直馈线性离散时不变系统的收敛性,并分析了经典的P-型和PD-型迭代学习控制律施加于具有直馈线性离散时不变系统的的收敛性,得到了系统输出和理想轨线的关系式。 再次,本文分别就前述三种收敛情形,在网络数据发生丢包的前提下,分析了基于函数逼近的P-型和PD-型网络化迭代学习控制律的跟踪性能;此外,本文对网络化迭代学习控制系统进行了超向量形式表示,分析了网络化梯度型和广义梯度型迭代学习律的收敛性态,比较了两种学习律的收敛速度。之后给出了以上几种网络化迭代学习律的渐近跟踪误差的上极限与丢包率和逼近误差的关系式。数值仿真进一步验证了基于函数逼近方法对丢包数据进行估计的有效性。 最后,论文总结了本文的主要工作,提出了可利用提高网络通讯质量和数据估计精度以改进系统跟踪性能的建议,并展望了进一步的研究工作。 本资源包含1片论文,供大家学习参考。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值