发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种基于数据驱动单网络结构的最优控制方法,以便满足复杂系统模型难以建立、控制器结构复杂等技术问题。
为实现以上技术目的,本发明将采取以下的技术方案:
一种基于数据驱动单网络结构的最优控制方法,包括以下步骤:
一种基于数据驱动单网络结构的最优控制方法,用于对满足利普希茨稳定的非线性系统进行控制,其特征在于:包括顺序执行的以下步骤:
步骤1、初始化:随机选择系统初始状态x0;选择半正定函数Q(x)≥0;选择对称正定矩阵R;选择LS-SVM逼近器的参数;设定训练样本集长度为L并随机选择训练样本加入训练样本集构成初始的训练样本集;设定新增样本集长度为l;设定阈值0<δ<1、容许逼近误差0<ε<1;设定样本采样周期T;
步骤2、选择一个初始稳定控制器作用于系统;
步骤3、实时检测系统当前t时刻系统状态变量xt与控制变量ut;
步骤4、在每个采样周期内,将采集到的((xt,ut),λt-1(x))作为该采样周期的样本,其中状态-动作对(xt,ut)作为LS-SVM逼近器的输入样本,正则函数λ(x)在前一采样周期t-1时刻的值λt-1(x)作为LS-SVM逼近器的输出样本;
步骤5、根据||λt-1(x)-λt-2(x)||≤δ判断本次采样周期的样本中的输出样本与前一个采样周期的样本中的输出样本是否相近,若上式成立则舍弃本次采样周期的样本,否则将本次采样周期的样本加入至新增样本集;
步骤6、判断新增样本集是否溢出,是则将新增样本集所有样本全部加入训练样本集,并从训练样本集中相应地移除相同规模的已存在的训练样本,移除时按照这些已存在的训练样本加入训练样本集的先后顺序遵循先进先出原则进行,否则继续步骤5;
步骤7、将步骤6中获得的训练样本集中的所有样本加入LS-SVM逼近器,得到LS-SVM逼近器的输出,即为正则函数λt(x);
步骤8、利用正则函数λt(x),通过表达式直接求解得到本次迭代周期的控制律ut+1(t),并作用于控制系统;上式中,g(x)为输入耦合矩阵,此处g(x)中的x为系统状态变量xt的缩写,T表示转置;
步骤9、根据||ut+1(t)-ut(t)||≤ε判断本次迭代周期的控制律ut+1(t)与前一次迭代周期的控制率ut(t)是否有明显变化,若上式成立则表示还未得到最优控制率,返回步骤3,否则将ut+1(t)作为最优控制律输出,学习结束。
有益效果:
与传统的actor-critic控制结构以及神经网络逼近器相比,本发明提出的基于数据驱动单网络结构的最优控制方法省去了控制器网络,从而减少了控制器网络造成的误差影响;本发明中的评价网络利用LS-SVM模型逼近系统的最优正则函数,而非最优代价函数。具体优点包括:
1、本发明提出的基于数据驱动单网络结构的最优控制方法不依赖于精确的数学模型,从而对环境具有更好的适应能力;
2、单网络结构省去了控制器网络,使得整体控制器结构变得更为简洁,且相应地省去了控制器网络造成的误差影响;
3、LS-SVM逼近器较神经网络逼近器具有全局最优、适应性强、计算简单、理论完善等优点;
4、基于数据驱动方式避免了权值自适应更新方式不易实现的缺点。
具体实施方式
下面结合附图对本发明作更进一步的说明。
本发明所研究的非线性系统可表述如下:
其中,x(t)是系统状态变量同下文中出现的xt,f(x(t))为系统内部动态特性,g(x(t))是输入耦合矩阵,u(t)为控制输入向量同下文中出现的ut。系统初始状态为x(0)=x0,且f(x(t))+g(x(t))u(t)满足利普希茨稳定。为了表达简洁,下文中会出现将x(t)缩写为x、u(t)缩写为u的情况。
定义最优控制性能指标函数为:
其中,r(x,u)=Q(x)+uTRu,上标T表示矩阵或向量的转置(下文相同),Q(x)≥0为半正定函数,输入权值矩阵R>0为对称正定矩阵。
根据最优控制理论,最优控制的目的是找到一个控制序列能使非线性系统渐进稳定且性能指标函数V(x)达到最小。
定义Hamiltonian方程为:
其中,▽Vx表示性能指标函数对系统状态变量x的偏导数,即
则最优性能指标函数可表示为:
其中,表示最优性能指标函数对系统状态变量x的偏导数,即
根据Bellman最优性原理可得,最优控制律u*(t)为:
其中,上标-1表示矩阵求逆(下同),则R-1表示输入权值矩阵R的逆矩阵。
相应的HJB方程为:
由于系统精确模型往往难以获得,即f(x)无法得到,且具有非线性且通常没有解析解,如此最优控制u*(t)便无法求解。因此,本发明提出一种基于数据驱动单网络结构的最优控制方法。
图1表示了本发明基于数据驱动单网络结构的最优控制方法流程图。该迭代最优控制方法通过数据驱动LS-SVM模型在线逼近而非逼近最优性能指标函数V*(x),然后通过最优控制律表达式直接计算得到,既省去了控制器网络,使结构更加简单,又避免了传统actor-critic结构中每次迭代都需要计算的计算负荷,有效地提高了执行速度。具体步骤表述如下:
步骤1、初始化。
随机选择系统初始状态x0;
选择半正定函数Q(x)≥0;
选择对称正定矩阵R;
设定训练样本集长度为L并随机选择训练样本加入训练样本集构成初始的训练样本集;
设定新增样本集长度为l;
设定样本采样周期T;
选择LS-SVM逼近器的参数:
这里选择高斯核函数作为LS-SVM模型中的核函数,x表示训练样本的集合,xi、xj表示训练样本集合中第i,j列,设定核函数中核宽度σ值;
设定LS-SVM模型中惩罚参数C值;
需要说明的是核宽度σ和惩罚参数C是非常重要的参数。σ取值过大会使模型过早收敛,达不到预测的目的。C取值较大,可以使训练样本数据和测试数据拟合的更好,但相应地会降低模型的适应能力;C取值较小可以提高训练模型的适应能力,但拟合精度会有所下降。在现有技术中,它们的选择可以根据经验、自举法、交叉验证等方法确定,其中,最常用的方法就是交叉验证法。
步骤2、选择一个初始稳定控制器,将其所具有的初始稳定控制律u(t0)作用于系统,其中t0表示初始时刻。初始稳定控制律不需要最优,可以是任意一种稳定的控制策略。在实际应用中,一个初始稳定的控制策略是很容易得到的,如常见的LQR、PID控制律等都可以作为初始稳定控制律。对于某些非线性系统,也许初始稳定控制律不易得到,但对于满足利普希茨稳定的控制系统,初始稳定控制律均可设定为u(t0)=0。
步骤3、检测系统当前t时刻系统状态变量xt与控制变量ut。
步骤4、在每个采样周期内,将采集到的((xt,ut),λt-1(x))作为该采样周期的样本,其中状态-动作对(xt,ut)作为LS-SVM逼近器的输入样本,正则函数λ(x)在前一采样周期t-1时刻的值λt-1(x)作为LS-SVM逼近器的输出样本;
具体为以下步骤:定义正则函数为采样周期T=0.1s,在每个采样周期内,由测量到的状态变量xt和控制变量ut构成输入样本(xt,ut),上一采样周期的正则函数构成输出样本λt-1(x),其中下标t表示当前t时刻,则每个采样周期内,系统采集到的样本可表示为((xt,ut),λt-1(x))。值得注意的是,传统actor-critic结构中,逼近目标函数为代价函数V(x),是一个标量。而本发明逼近目标函数为正则函数λ(x),是一个向量。
步骤5、判断本次采样周期的样本中的输出样本与前一个采样周期的样本中的输出样本是否相近,是则舍弃本次采样周期的样本,并返回步骤4继续采样,否则将本次采样周期的样本加入新增样本集。
上述做法是为了减轻LS-SVM逼近器的计算压力,所以在每个样本输入训练样本前,必须先对样本进行预处理,即判断该组样本是否与上一组样本接近。如果两组样本接近,则说明本次采样周期的样本不会对系统性能产生较大改进,属于无效数据,应该舍弃。如果两组样本相差较大,则本次采样周期的样本能够改进系统性能,即可加入新增样本集。本发明通过以下判断式来判断两组样本是否相近:
||λt-1(x)-λt-2(x)||≤δ
其中,δ为步骤1中预先设定的阈值。如果||λt-1(x)-λt-2(x)||≤δ成立,则说明两组样本相近,应当舍弃本次采样周期的样本;反之,应该将本次采样周期的样本加入新增样本集。
步骤6、判断新增样本集是否溢出,是则将新增样本集所有样本全部加入训练样本集,并相应地移除相同规模大小的原始训练样本,按照“先进先出”规则变化,否则继续步骤5。
具体做法如下:根据步骤1中预先设定的新增样本集长度l,如果新增样本集长度等于l,则将新增样本集所有样本全部加入训练样本集,同时,按照“先进先出”的原则,移除原训练样本集中前l长度的原始样本,以保证训练样本集的长度始终为L。因此,训练样本集中的样本是由过去L组数据组成,可表述为{(xi,ui),λi-1(x)|i=t-L,t-L+1,…,t-1},其中((xt-1,ut-1),λt-2(x))表示在t-1时刻的训练样本。
步骤7、将训练样本集所有样本加入LS-SVM逼近器,求解正则函数λt(x)。由LS-SVM模型可得,正则函数λ(x)可以表述为:
λ(x)=wTφ(x)+b
其中,x为输入样本,即状态-动作对(xt,ut),w为LS-SVM逼近器的权重向量,T表示转置,φ(x)为从输入空间到高维特征空间的一个非线性映射,b是偏移量。
因此,问题可以描述为下列优化问题:
s.t.λ(xi)=wTφ(xi)+b+ξi其中,i=t-L,t-L+1,…,t-1
其中,ξi为松弛变量,它们度量数据点与理想值之间的偏差程度,其中含有下标i的变量表示与过去第i时刻的训练样本相关的值;C表示惩罚参数,用来控制模型复杂度与经验误差之间的平衡。
对上述优化问题,构建拉格拉日函数:
其中,αi表示与过去第i时刻的训练样本相关的拉格拉日因子。
根据Karush-Kuhn-Tucker最优化条件,分别对w,b,ξi和αi求偏导数,并令其等于零,整理可得矩阵表达式:
其中,
I=[1,1,…,1]T,λ(x)=[λt-L(x),λt-L+1(x),…,λt-1(x)]T表示LS-SVM模型的输出,即正则函数;α=[αt-L,αt-L+1,…,αt-1]T,F∈RL×L表示L×L的实数矩阵,矩阵第i行第j列元素为Fij=φ(xi)·φ(xj)=K(xi,xj)(i,j=1,2,…,L),函数φ(·)表示从输入空间到高维特征空间的一个非线性映射,K(xi,xj)为核函数,一般选取为高斯核函数,xi表示训练样本集合中第i列,xj表示训练样本集合中第j列;
求解上述线性方程,可得LS-SVM逼近器的参数b和α。
步骤8、通过训练参数,得到逼近器的输出,即正则函数。即利用步骤7得到的LS-SVM逼近器,通过LS-SVM逼近器预测输出表达式,即核函数的加权线性和形式即可计算出正则函数λt(x)。
步骤9、利用正则函数,直接求解得到本次迭代控制律,并作用于控制系统。
在传统actor-critic结构中,通常利用以下两种方案求解最优控制律:第一种方案:采用两个神经网络结构,分别去逼近评价网络中的代价函数V(x)和控制网络中的控制律u(t)。这样设计必然会造成控制器结构的复杂,同时由于使用了两个逼近器,必然会造成最优控制器误差的加大。第二种方案:首先利用评价网络逼近器求得代价函数V(x),然后通过计算方可得到迭代控制律u(t)。这样做省去了控制网络逼近器,使得控制器结构简单,但在每一次迭代中,控制器都必须首先计算然后才能得到控制律,这必然增加了控制器计算负荷,尤其在工程应用中,计算微分更是不易实现。
因此,本发明避免了上述两种方案的缺点,采用基于数据驱动单网络结构的最优控制,直接去逼近正则函数λt(x),然后通过表达式即可计算出下一时刻的迭代控制律。
步骤10、判断相邻两个采样周期所对应产生的控制律是否有明显变化,是则表示还未得到最优解,则返回步骤3,继续训练。否则将本次采样周期所对应的控制律作为最优控制律输出,学习结束。判断相邻两个采样周期产生的控制律是否有明显变化的表达式如下所示:
||ut+1(t)-ut(t)||≤ε
其中,常数ε为容许误差。
经过上述步骤1~10后,得到的控制律和正则函数被认为是最优控制律和最优正则函数,由于故性能指标函数V(x)也是最优的。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。