李国军王 亢卢甜甜董齐芬陈东杰
(1.浙江警察学院公共基础部,浙江杭州 310053;2.浙江工业大学信息工程学院,浙江杭州 310023;3.浙江警察学院计算机与信息安全系,浙江杭州 310053)
对于可重复作业的场合,迭代学习控制(iterative learning control,ILC)能够展现较好的跟踪性能.ILC通过先前的试验或迭代来改进当前的控制输入,改善输出性能,以便快速跟踪上期望轨迹[1–2].由于设计简单、应用方便、在线计算量小等特点,所以ILC被应用于化工间歇过程控制,注塑机控制,工业机器人控制以及电路稳定性控制等场合.应用ILC方法时,一般要求每次试验时初始定位相同(即初态偏差相同),对高阶系统而言,如果跟踪对象从静止状态开始,容易做到速度偏差为零,但由于测量误差、试验环境等因素,每次试验或迭代时很难让位移偏差相同或等于零.因此,任意初值条件下的迭代学习控制问题引起了学者们的关注.重复学习控制放松了对初始定位的要求,但其只能在无限区间上实现渐近跟踪[3].
在迭代学习控制初态偏差问题的研究过程当中,成果较为丰硕.文献[4]引入边界层,并使边界层随时间单调收敛至零,由于控制误差受边界层限定,所以控制误差渐近收敛至零,但该方法只能达到渐近跟踪,不能达到完全跟踪.对于二阶系统而言,如果只存在位移偏差,文献[5–6]在滑模误差中引入吸引子函数进行修正,经过预设的修正时间以后达到了精确跟踪.针对位移和速度均存在初始偏差的情形,文献[7]在文献[5–6]的基础上进行了改进并达到了完全跟踪.文献[5–7]方法的本质都是在预设区间内通过不断迭代逐渐逼近相应微分方程的解,并最终达到完全跟踪.在系统输入增益已知的情形下,文献[8]利用滑模控制的思想和Lyapunov函数分析法,经过预设时间以后,随着迭代次数的增加实现了精确跟踪.文献[9–11]通过改变期望轨迹的方式,实现了在预设时间以后的精确跟踪.对于系统参数沿迭代轴可变的不确定系统,在初始定位满足一定规律的前提下,文献[12]利用内模控制方法确保系统收敛.文献[13]针对任意初态下的非线性离散系统,实现了逐点跟踪.文献[14]在初态可学的条件下设计的分布式模糊自适应控制律实现了对多智能体的控制.在压缩映射方法研究过程中,对于高阶多智能体系统,如果系统初态固定不变,文献[15]提出了的修正方法,能够确保系统在预设时间以后达到精确跟踪.在系统信息精确已知的条件下,文献[16]能够处理任意初态下的线性系统的精确跟踪问题.对于一阶非线性连续系统的任意初态问题,文献[17]提出的设计方法在跟踪时存在稳态误差.到目前为止,对迭代学习控制而言,采用压缩映射方法来应对任意初态问题仍无较好方案.
自适应控制能够修正自身特性来适应被控对象的动态变化,其基本思想可以归纳为:当系统参数未知时或者对被控对象的本身特性了解不多时如何设计控制律使得系统能够根据实际情况自动调节控制律并跟踪上被控对象,达到人们期望的结果[18–19].目前自适应控制在电力电机系统[20]、石油化工[21]、航天[22]等诸多领域都得到了广泛应用.自20世纪90年代以来,自适应方法陆续应用于迭代学习控制或重复控制中,并取得了一定的进展.Sadegh等人较早的将自适应控制的方法应用于重复控制的控制器设计[23],并引入Lyapunov泛函进行收敛性分析.文献[24]针对机器人系统,设计了基于线性反馈和学习前馈的控制律,并利用Lyapunov来分析系统稳定性.文献[25]将经典自适应控制的一些设计方法引入到迭代学习控制中,并证明了系统误差L2收敛.对于可参数化非线性系统,文献[26]引入复合能量函数,方便了迭代学习控制的收敛性分析.文献[27]针对分散自适应神经网络系统,利用Backstepping方法,实现了系统的全局稳定.对于含有时变参数的时滞非线性系统,文献[28]用自适应迭代学习控制方法实现了系统的稳定.针对非线性多智能体系统,文献[29]用无模型自适应迭代学习控制方法达到了一致性跟踪.这些文献为自适应方法在迭代学习控制中得到更广泛的应用提供了参考.
其实,在自适应迭代学习控制中,系统参数虽然在某次迭代过程中随着时间的变化而变化,但是如果沿着迭代轴来看,在某个固定的时刻,系统参数其实是常量,这也是自适应控制能够在迭代学习中被广泛应用的前提条件.从某种意义上来说,迭代学习控制中的自适应学习其实学的就是这种不变性.如果在某个过程中,系统参数的界是一个常量,即具有不变性,这种情形下就可以借助迭代学习控制的思想进行控制律设计.
本文将自适应迭代学习控制方法应用于非重复场合,虽然控制过程并不满足可重复性或周期性,并且在控制过程中系统参数随时间的变化而变化,但系统参数的界存在,并且小于某个常数.针对这一点,本文在进行控制律设计时,利用迭代学习控制及其初始修正的思想,提出了一种新的自适应控制方法,并且该方法能够使得系统快速收敛.最后,通过计算机仿真验证了该算法的有效性.
考虑以下的二阶系统[30]:
其中:t ∈[0,T];x1(t),x2(t)∈R为系统的状态变量;u(t)∈R为系统的控制输入(前述变量相应可以简写为x1,x2,u);J(t)为系统未知的转动惯量,且J(t)>0,J(t)∈[Jmin,Jmax](其中Jmin,Jmax为已知常数,J(t)可以是常数也可以是变量);d(t)为系统内部和外部扰动作用的总和,且有界,即|d(t)|≤D(D为已知量).
xd(t)(简写为xd)是给定的期望信号.根据期望信号,可以定义如下的角度位置跟踪误差:
假设1初始状态x1(0),x2(0)是任意值但不是无限大,也就是说,系统初始误差e(0),˙e(0)可以是任意值但有界,并且状态x1(t),x2(t)可测.
假设2˙J(t)有界,即|˙J(t)|<β,但β不能精确已知.
为了便于后续收敛性分析,采用下面的形式来描述系统(1):
其中:t ∈[0,h)为有限时间;k1,2,……,N(N为正整数)表示第k个过程,并且h和N满足(N −1)h 由于系统(1)和系统(3)描述的是同一个对象,所以它们是等价的,因此有下式成立: 同理,Jk(t),xk,d(t),˙xk,d(t),xk,2(t),ek(t),˙ek(t)也具有上述性质. 注1式(4)中的xk,1(t)以及xk,2(t),xk,d(t),ek(t),Jk(t),只是采用了迭代学习或重复学习中变量的描述方式,其实并不满足迭代学习或重复学习的要求,因为被跟踪对象的轨迹并不满足重复性或周期性,实际上,式(4)只是将一个过程进行了分段描述而已,式中的k并不是迭代次数,只是第k个时间段而已.本文方法并不要求在控制过程中区间有限,如果控制过程区间有限,只是将被控过程分成有限个子过程,即k为有限值;如果控制过程区间无限,则要求系统(3)中的k →∞.系统(3)在控制过程中将整个过程分成k个子过程的目的只是让每一个子过程(第1个子过程除外)都可以学习前一子过程的信息而已.在控制过程中进行子过程切分时,必须要求子过程区间长度相等(当然,最后一个过程除外),目的是为了让系统(3)在相邻区间上学习时能够实现一一对应,比如uk+1(t0)和uk(t0)对应. 文献[5]中定义:如果使得χ(t)0,t>t1,其中t1<∞,则称χ(t)为有限时间吸引子.本文在该定义的基础上进行适当的修改和延伸. 定义1如果 其中:χ(t),r(t)∈R,a是常数,如果能够使得当t>t1,有χ(t)0成立,则称r(t)为一阶吸引子初始修正函数;如果只能使得0,称r(t)为零阶吸引子初始修正函数. 式(5)中,按如下方式选择r(t): 其中exp表示以自然常数为底的指数函数.对式(5)进行微分方程求解,可得 对χ(t)进行求导可得 当t≥t1时,如果要使得0,χ0,ζ(t)必须满足 注2式(9)的第2个等式是确保当t=t0时,式(7)的左、右两侧都等于χ(t0),式(8)的左右两侧都等于目的是与微分方程的初始值保持一致;式(9)的第3个等式是确保当t=t1时,χ(t)=0,目的是让函数r(t)同时修正和χ(t)的偏差. 特别地,式(5)中当a0时,则式(5)简化为 通过上述的定义和求解过程中可知,χ(t)的连续性和可导性严格依赖于ζ(t),所以在设计时不仅要让ζ(t)连续,还要让其光滑. 为了便于后面的收敛性分析,引入文献[5]中的定义和引理. 定义2设饱和函数定义如下: 引理1设a为实变量,并令a那么 证当ap,易证上面的引理成立. 当a 当a>p时,证明方法和a 后续本文将设计包含合适的一阶吸引子修正函数和零阶吸引子修正函数的两种控制器(简称为一阶吸引子控制器和零阶吸引子控制器),并通过收敛性分析证明两种控制器皆能使得系统达到渐近跟踪的效果. 定义3引入滤波误差函数 其中:t>0;h的定义和前述相同;c21;c1是Hurwitz多项式系数,并且 式中ζ(t)按如下定义给出: 为了将σ(t),r(t),ζ(t)的形式和ek(t),的形式统一,分别用如下的σk(t),rk(t),ζk(t)来描述σ(t),r(t),ζ(t): 其中t ∈[0,h),并且 式中ζk(t)中的参数需要满足式(9)的要求,因此 求解上述方程组可得 注3从上面的定义可知,式(10)中σk(t)并不满足周期性,也不满足可重复性,它只是将σ(t)换了一种描述而已,并不改变其本身.从ζk(t)的表达式中可以看出,不同区间的ζk(t)函数是不同的,因为ζk(t)函数的参数a,p,q与每个子过程的初态误差ek(0),有关,并且当ek(0)=0,时,相应就有a=0,p=0,q=0,也就是说,如果每个子过程的初态误差为零,则在跟踪过程中修正函数不起作用.修正函数rk(t)更不满足周期性,因为修正函数中不仅包含了包含ζk(t),而且还包括了一个非周期的指数函数exp(−c1(t −(k −1)h)+ek(0)). 在等式(10)的两侧同时求导 其中φk(t)(相应可以简写为φk). 选择下面的正定函数: 注4在σk(t)函数中引入误差修正函数rk(t)主要有两个作用,首先是使得Vk(t)函数满足Babalat引理中的一个条件:即Vk(0)=0,继而能够证明确保系统收敛;其次,引入修正rk(t)函数能够让系统在控制过程中不断修正误差,从而促使系统快速收敛. 对Vk进行求导,可以得到 根据上面的推导,使用下面的控制律来完成跟踪任务: 在控制过程中,虽然Jk和都是变量,无法估计.但是Jmax和可以是固定量,所以在控制过程中,使用来对Jmax,进行估计.如果Jk是一个常量,则0,此时还可以用下面的控制律来完成跟踪任务: 其他参数的学习律及变量的含义与式(15)和式(16)中相同. 对于上一节设计的控制律和更新律,有如下的收敛性定理.为了方便书写,在证明过程中变量都用相应的简写形式来替代. 定理1如果系统(3)满足假设1 和2,并且当k →∞时控制律(15)和参数更新律(16)能够让系统(3)中的滑模误差函数σk及能量函数Vk在区间[kh,(k+1)h)上一致收敛于零. 证考虑下面的Lyapunov-like函数: 根据引理1可得 利用式(16)和式(22),式(21)可化为 利用同样的方法,可以得到 将式(14)(23)和式(24)代入式(20): 将式(15)代入上式并根据参数学习律(16)可得 对于反正切函数arctanz,如果ε>0,则有|z|−zarctan(εz)≤由于|dk|≤D,上式可以进一步化简为 根据参数更新律可得 进一步化简可得 根据式(25)和式(26)可知,如果增大c1的值,不仅可以加快收敛速度,还可以减小跟踪误差.由ζk(t)的表达式可知,当ek(t),˙ek(t)都趋于零时,修正作用并不明显. 在设计控制器之前先做如下定义. 定义4 其中∆是事先指定的一个常数,并且0<∆ 定义5引入误差函数 同样,式中的c21,c1是Hurwitz多项式系数,并且 从上面的定义可知,rk,1(t)和rk,2(t)分别具有如下性质: 注6根据σk(t),rk,1(t)和rk,2(t)的定义可知,在第k个过程中,式(28)中误差函数σk(t),t ∈[0,h)包含了两个子过程.第1个子过程为σk(t)=Ek,2(t)+rk,2(t),t ∈[0,∆);第2个子过程为σk(t)=c1Ek,1(t)+c1rk,1(t),t ∈[∆,h).在控制过程中,第1个子过程修正x2,k(t)的状态误差,在第1个子过程操作完成以后立即开始第2个子过程操作.第2个子过程主要是修正x1,k(t)的状态误差,当第k个过程完成以后,进入第k+1个过程.同样第k+1个过程也分为两个子过程,如此往复,最后达到完全跟踪. 根据式(27)和式(30)中Ek,i(t)和rk,i(t)(i1,2)的定义,当t ∈[0,∆)时,对式(28)中的σk(t)进行求导可得 其中φk(t) 同样选择下面的正定函数: 本节提出与上节式(15)–(16)相似的控制律和学习律来完成跟踪任务,唯一不同的是φk(t)所包含的内容和上一节有区别. 在限幅条件下,所有参数的估计通过下面的更新律给出: 控制律和学习律中相关变量的定义和前述相同. 同样,如果Jk是一个常量,此时还可以应用类似于式(17)(18)的控制律和更新律来完成跟踪任务. 当t ∈[∆,h)时, 当t ∈[∆,h)时,因为当t ∈[∆,h)时,Ek,2(t)0,Ek,1(t)ek(t).此时不包含所以需要对再求一次导数.由于0,所以 其中φk(t) 选择下面的正定函数: 对Vk进行求导可得 根据上面的推导,提出下面的控制律来完成跟踪任务: 在限幅条件下,所有参数的估计通过下面的更新律给出: 如果Jk是一个常量,同样还可以应用下面的控制律和学习律来完成跟踪任务: 对于上一节设计的控制律和更新律,有如下的收敛性定理: 定理2如果系统(3)满足假设1和2,并且当k→∞时控制律(34)(38)和参数更新律(35)(39)能够让系统(3)中的误差函数ek(t),滑模误差函数σk及能量函数Vk在区间[0,h)上一致收敛于零. 证当k →∞时,运用控制律(34)和参数更新律(35)能够证明滑模误差函数σk及能量函数Vk在区间[0,∆)上一致收敛于零,证明方法同定理1,故此处省略. 同样,当k →∞时,运用控制律(38)和参数更新律(39)能够证明滑模误差函数的导数以及相应的能量函数Vk在区间[∆,h)上一致收敛于零,证明方法同定理1,故此处省略. 也就是说,当k→∞时,在区间[0,∆)一致趋于0. 另一方面,在[∆,t)上对式(41)两边同时积分可得 根据rk,1(t)的定义可知 因此,在区间[∆,h)上,当k →∞时,rk,1(t)一致为0.所以根据式(43)有 证毕. 注7对于零阶吸引子控制器而言,每一个子过程都分为两个阶段:在第1阶段系统通过控制算法使得σk(t)=0,即+rk,2(t)=0;在第2阶段系统通过控制算法目的是让=0,可以看出零阶吸引子控制器在控制过程中用到的误差量其实只有一个,即只是在控制过程中,让rk,2(t)和交互作用,分别修正和ek(t),当时间趋向无穷时,误差也相应趋于零.在进行控制律切换时,为了防止控制器出现颤振,需要满足即在进行控制器设计时,让目的是让=0;而让rk,1(∆)=−ek(∆),目的是为了消除ek(∆)的影响,继而使得ek(t)沿着rk,1(t)的路径到达零. 注8本节中无论是采用一阶吸引子控制器,还是采用零阶吸引子控制器,系统最后都是通过相应算法使得σk(t)=0或者是对于两种吸引子控制器而言,根据σk(t)的定义可知,σk(t)=0或者=0其实都是一个一阶微分方程,所以系统的跟踪误差一定是满足这个微分方程的一个解. 注9对于更高阶的系统,比如n阶系统,如果设计滑模误差函数 当σk(t)=0时,即有 很明显,这是一个高阶非齐次微分方程,其特征方程为cnL(n−1)+cnL(n−2)+……+c1=0,设特征方程的特征根为λ1,λ2,……,λn−1(皆具有负实部),那么原来的高阶非齐次微分方程即具有如下形式的特解: 此情形下,很难设计一个r(t),使得r(t)成为n−1阶吸引子,让同时为零.针对更高阶的系统,如果使用零阶吸引子,依次修正反而更容易实现. 假定系统(1)中的参考信号为xd(t)0 ≤t≤4,伺服系统的摩擦系数µ−0.2,扰动d(t)0.1rand(rand 表示0到1之间的随机数),系统初态随机,时间间隔h0.2.本节当中系统分别采用一阶吸引子控制器和零阶吸引子控制器进行仿真. 系统的转动惯量J是变量,并且J2+0.2 sint,系统的初态x1,0(0)0.2,仿真过程中,滑模误差函数中的c130,修正函数rk(t)中的参数a,p,q可以根据式(12)计算.控制器增益b15.参数更新律(16)中,γ15,γ25;参数更新律中的上限为6,下限为2.5;参数的上限为−0.1,下限为−0.3;参数的上限为2,下限为1.仿真结果如图1–9所示. 图1 实际轨迹x1(t)和期望轨迹xd(t)Fig.1 Actual trajectory x1(t)and desired trajectory xd(t) 图2 跟踪误差e(t)Fig.2 Tracking error ek(t) 图3 实际状态x2(t)和期望状态˙xd(t)Fig.3 Actual state x2(t)and desired state ˙xd(t) 图4 状态误差(t)Fig.4 State error (t) 图5 滑模误差函数σ(t)Fig.5 Sliding-mode error σ(t) 图6 控制输入u(t)Fig.6 Control input u(t) 图7 参数Fig.7 The parameter 图8 参数Fig.8 The parameter 图9 参数Fig.9 The parameter 从图1和图3中可以看出,系统在区间[0,0.2)上并没有跟踪上期望轨迹xd和期望状态经过若干个周期的状态偏差修正以后,xk,1和xk,2才基本达到期望轨迹xd和期望状态由于跟踪误差ek(t)与状态误差和修正函数ζk(t)有关,即ek(0)和决定后续跟踪误差走势.根据前面的分析可知,跟踪误差ek(t)和状态误差无限逼近式(25)和式(26).从图2和图4的放大图当中也能看出,后期的误差走势虽有不同,但幅度都在减小. 由于控制器(15)的修正周期为0.2 s,并且每个周期的初始时刻都要求σk(0)0,直接导致了图5和图6中的变量在前期每隔0.2 s会有一个微小的凸起,实际上并不是凸起,而是因为但σk(0)0.也就是说,每隔0.2 s会有一个类似于复位的操作.当基本跟踪上目标轨迹以后,这个复位操作的影响就不明显了,相应的凸起逐渐消失.而且从图6中还可以看出,如果要求在很短的时间内修正较大的初态偏差,则要求必须提供较大的控制量.所以在实际中考虑到控制量的限制时,如果状态偏差较大,一般要求修正时间不能太短. 虽然系统(1)中的Jmax,µ和β都是常量,但由于在控制过程中进行了不断的学习,所以从图7–9中反映出来的并不是常量,但随着时间的延长,和会趋于稳定. 将本文方法和文献[30]中的方法进行对比可知,当初态偏差不明显时,两种方法的差异较小,当初态偏差较大时,对比结果体现了本文方法中误差修正项的作用.对比过程中,本文设置的初态为 其他参数分别与仿真1和文献[30]中的参数相同.图10的上半部分表示本文方法的跟踪误差曲线;下半部分表示文献[30]方法的误差曲线.为了方便比较,只显示e(t)在0到1之间的部分曲线. 图10 位置跟踪误差对比Fig.10 Comparison of position errors 本节中系统的转动惯量J是常量,并且J2,系统的初态x1,0(0)0.1,仿真过程中,滑模误差函数中的c11,修正函数rk(t)中的参数∆0.1.控制器增益b15.参数更新律(35)和(39)中的γ1和γ2保持一致,γ115,γ215;参数更新律中的上限为2.5,下限为1.5;参数的上限为−0.1,下限为−0.3.仿真结果如图11–18所示. 图11 实际轨迹x1(t)和期望轨迹xd(t)Fig.11 Actual trajectory x1(t)and desired trajectory xd(t) 图12 跟踪误差e(t)Fig.12 Tracking error e(t) 图13 实际状态x2(t)和期望状态d(t)Fig.13 Actual state x2(t)and desired stated(t) 图14 状态误差(t)Fig.14 State error (t) 图15 滑模误差函数σ(t)Fig.15 Sliding-mode error σ(t) 图16 控制输入u(t)Fig.16 Control input u(t) 图17 参数Fig.17 The parameter 图18 参数Fig.18 The parameter 和上一节相似,系统在经过多个子过程的状态偏差修正以后,x1和x2基本能够到达期望轨迹xd和期望状态从图12和图14的放大图当中,跟踪误差和状态误差呈现明显的规律性,根据上一节的收敛性分析可知,状态误差在相应子过程内无限逼近下面的表达式. ek(t)是在相应区间上的积分.当ek(∆)和都趋于零时,则相应的ek(t)和也趋于零. 两种控制器中,如果增大b,γ1,γ2的值,缩短修正时间,也会加快收敛速度.从理论上说,如果不考虑控制量的限制,两种控制器都能在较短的时间内将跟踪误差减小到一定范围内,实现精确跟踪. 上述仿真结果表明本文所设计的两种学习控制器可用于解决不确定系统任意初态偏差的修正,而且这种方法设计的控制器具有较快的收敛速度和较高的控制精度,体现了该方法的有效性. 本文研究了一类二阶系统在任意初态偏差下的自适应控制问题,提出了两种带有修正状态偏差功能的自适应学习控制策略:一阶吸引子控制器和零阶吸引子控制器.和传统自适应控制不同的是本文中的两种控制器都运用了学习控制及其初始修正的思想,将整个控制过程分成若干等长时间的子过程,在每个子过程中控制算法都会在前一子过程的基础上进行参数学习,并对当前子过程的初态偏差进行修正,直到子过程的初态误差为零为止.当时间趋向无穷时,两种算法都能使得系统达到完全跟踪.并且两种控制器在控制过程中,都利用反正切函数对控制量进行连续化处理,基本解决了控制过程中的颤振问题.最后,通过两个算例验证了两种算法的有效性.3 一阶吸引子控制器
3.1 控制器设计
3.2 收敛性分析
4 零阶吸引子控制器
4.1 控制器设计
4.2 收敛性分析
5 数值仿真
5.1 一阶吸引子控制律
5.2 零阶吸引子控制律
6 结论