保证瞬态性能的机械臂伺服***死区补偿控制方法
技术领域
本发明涉及一种保证瞬态性能的机械臂伺服***死区补偿控制方法,特别是带有非线性输入死区的柔性机械臂伺服***自适应控制方法。
背景技术
机械臂伺服***在机器人、航空飞行器等高性能***中得到了广泛的应用,如何实现机械臂伺服***的快速精确控制已经成为了一个热点问题。其中,柔性机械臂由于用料少,重量轻,耗能低等优点受到越来越多的重视。然而,未知死区非线性环节广泛存在于机械臂伺服***中,往往会导致控制***的效率降低甚至是失效。因此,为提高控制性能,针对非线性死区的补偿和控制方法必不可少。传统的解决死区非线性的方法一般是建立死区的逆模型或近似逆模型,并通过估计死区的上下界参数设计自适应控制器,以消除死区非线性的影响。然而,在机械臂伺服***等非线性***中,死区的逆模型往往不易精确获得。对于***中存在的未知死区非线性输入,基于微分中值定理经行线性化,使其成为一个简单的线性时变***,避免了附加补偿,从而可以用一个简单神经网络逼近未知函数和未知参数。
针对机械臂伺服***的控制问题,存在很多控制方法,例如PID控制,自适应控制,滑模控制等。滑模控制在解决***不确定性和外部扰动方面被认为是一个有效的鲁棒控制方法。然而,滑模控制在本质上的不连续开关特性将会引起***的抖振,成为了滑模控制在实际***中应用的障碍。有人将反演法与滑模控制结合,但此方法也只能实现***的稳态控制,无法对***进行快速,完全的跟踪。因此,提出了一种保证瞬态性能的机械臂伺服***死区补偿控制方法,引入限定跟踪误差瞬态特性的界函数,通过误差转换方法,定义一个转换误差变量,将跟踪误差的保证瞬态特性问题转化为该误差变量的有界性问题。采用李亚普诺夫方法,设计***的虚拟控制量,并为避免反演复杂***度等问题,加入了一阶滤波器,从而保证转换误差变量的有界性和一致收敛性,得出***输出在整个区间的完全快速跟踪性能。
发明内容
为了克服现有的机械臂伺服***的死区非线性,模型参数不确定性,以及反演法带来的复杂度***等的不足,本发明提出了一种保证瞬态性能的机械臂伺服***死区补偿控制方法简化了控制器的设计结构,实现了带未知死区输入的机械臂***位置跟踪控制,保证***稳定快速瞬态跟踪。
为了解决上述技术问题提出的技术方案如下:
一种保证瞬态性能的机械臂伺服***死区补偿控制方法,所述控制方法包括以下步骤:
步骤1,建立机械臂伺服***的动态模型,初始化***状态、采样时间以及控制参数,过程如下:
1.1机械臂伺服***的动态模型表达形式为
其中,q和θ分别为机械臂连杆和电机的角度;I为连杆的惯量;J是电机的惯量;K为弹簧刚度系数;M和L分别是连杆的质量和长度;u是控制信号;v(u)为死区,表示为:
其中gl(u),gr(u)为未知非线性函数;bl和br为死区未知宽度参数,满足bl<0,br>0;
定义x1=q,x3=θ,式(1)改写为
其中,y为***输出轨迹;
1.2定义变量z1=x1,z2=x2, 则式(3)改写成
其中,
步骤2,根据微分中值定理,将***中的非线性输入死区线性近似为一个简单的时变***,推导出带有未知死区的机械臂伺服***模型,包括如下过程;
2.1对非线性未知死区进行线性处理
其中|ω(u)|≤ωN,ωN是未知的正数满足ωN=(g′r+g′l)max{br,bl}和
2.2根据微分中值定理,则
其中
其中
则
2.3由式(6)和式(9),将式(4)改写为以下等效形式:
其中,
步骤3,用神经网络逼近不确定性,过程如下:
定义连续函数为:
h(X)=W*Tφ(X)+ε(11)
其中W*T∈Rn1×n2是理想的权重矩阵,φ(X)∈Rn1×n2是理想的神经网络的函数,ε是神经网络的估计误差,满足|ε|≤εN,φ(X)函数形式为:
其中,a,b,c,d为合适的常数;
步骤4,计算***瞬态控制性能函数以及误差转换,过程如下:
4.1***瞬态控制中,控制器输入信号为:
u(t)=ρ(Fφ(t),ψ(t),||e(t)||)×e(t)(13)
其中,e(t)=y-yd,yd是理想的跟踪轨迹,e(t)为跟踪误差,ψ(t)是缩放因子,Fφ(t)是误差变量的边界,||e(t)||是欧几里德范数,为了保证e(t)演变在边界内,时变增益ρ(.)为:
4.2设计误差变量的边界为:
其中,是一个连续的正函数,对t≥0,都有则
Fφ(t)=δ0exp(-a0t)+δ∞(16)
其中δ0≥δ∞>0,且|e(0)|<Fφ(0);
4.3定义瞬态控制误差变量为:
步骤5,计算反演法中***瞬态性能控制虚拟变量,动态滑模面及微分,过程如下:
5.1定义瞬态控制虚拟变量及其微分:
定义误差变量:
e=y-yd(18)
其中,yd是该***的理想运动轨迹,y是实际***输出;
则,对式(15)求导得:
其中,φF=1/(Fφ-||e||)2;
5.2定义李亚普诺夫函数:
对V1求导得:
5.3设计虚拟控制量
其中,k1为常数,且k1>0;
5.4定义一个新的变量α1,让虚拟控制量通过时间常数为τ1的一阶滤波器:
5.5定义滤波误差则
5.6用神经网络来估计
其中
步骤6,针对式(4),设计虚拟控制量;
6.1定义误差变量
si=zi-αi-1,i=2,3(26)
式(15)的一阶微分为:
6.2设计虚拟控制量
其中,k2为常数且k2>0,是ε的估计值,是W1的估计值;
6.3设计虚拟控制量
其中,k3为常数且k3>0,是ε的估计值,是W2的估计值;
6.4定义一个新的变量αi,让虚拟控制量通过时间常数为τi的一阶滤波器:
6.5定义 则
6.6用神经网络来估计
其中,为理想权重Wi的估计值, 中;
步骤7,设计控制器输入,过程如下:
7.1定义误差变量
s4=z4-α3(34)
计算式(20)的一阶微分为:
7.2设计控制器输入u:
其中,为理想权重W3的估计值,k5≥1/n,是ε3的估计值;
7.3设计自适应率:
其中,Kj是自适应矩阵,vμ>0;
步骤8,设计李雅普诺夫函数,过程如下:
其中,W*是理想值;
对式(26)进行求导得:
如果则判定***是稳定的。
本发明在考虑输入未知死区情况下,设计一种保证瞬态性能的柔性机械臂伺服***死区补偿控制方法,,实现***的稳定快速跟踪,保证跟踪误差在有限时间收敛。
本发明的技术构思为:针对状态不可测,并且带有未知死区输入的机械臂伺服***,利用微分中值定理优化死区结构,使其成为一个简单的线性时变***。再结合神经网络、反演动态面滑模控制以及转换误差变量的瞬态性能控制,设计一种机械臂伺服***的死区补偿控制方法。通过微分中值定理,使死区连续可微,利用误差变换,得到新的误差变量,再通过反演法和滑模相结合来设计虚拟控制变量,为避免反演法所带来的复杂度***问题,加入一阶滤波器,并且利用神经网络来估计虚拟控制量的导数,实现***的位置瞬态跟踪控制。本发明提供一种能够有效避免反演法带来的复杂度***问题和死区输入对***的不良影响的补偿控制方法,实现***的稳定跟踪并提高瞬态性能。
本发明的有益效果为:避免死区求逆计算操作以及反演法固有的复杂度***问题,简化控制器结构,提高***瞬态跟踪性能并保证位置信号的稳定跟踪控制。
附图说明
图1为本发明的非线性死区的示意图;
图2为本发明的跟踪效果的示意图;
图3为本发明的跟踪误差的示意图;
图4为本发明的控制器输入的示意图;
图5为本发明的控制流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1-图5,一种保证瞬态性能的机械臂伺服***死区补偿控制方法,包括以下步骤:
步骤1,建立机械臂伺服***的动态模型,初始化***状态、采样时间以及控制参数,过程如下:
1.1机械臂伺服***的动态模型表达形式为
其中,q和θ分别为机械臂连杆和电机的角度;I为连杆的惯量;J是电机的惯量;K为弹簧刚度系数;M和L分别是连杆的质量和长度;u是控制信号;v(u)为死区,表示为:
其中gl(u),gr(u)为未知非线性函数;bl和br为死区未知宽度参数,满足bl<0,br>0;
定义x1=q,x3=θ,式(1)改写为
其中,y为***输出轨迹;
1.2定义变量z1=x1,z2=x2, 则式(3)改写成
其中,
步骤2,根据微分中值定理,将***中的非线性输入死区线性近似为一个简单的时变***,推导出带有未知死区的机械臂伺服***模型,包括如下过程;
2.1对非线性未知死区进行线性处理
其中|ω(u)|≤ωN,ωN是未知的正数满足ωN=(g′r+g′l)max{br,bl}和
2.2根据微分中值定理,则
其中
其中
则
2.3由式(6)和式(9),将式(4)改写为以下等效形式:
其中,
步骤3,用神经网络逼近不确定性,过程如下:
定义连续函数为:
h(X)=W*Tφ(X)+ε(11)
其中W*T∈Rn1×n2是理想的权重矩阵,φ(X)∈Rn1×n2是理想的神经网络的函数,ε是神经网络的估计误差,满足|ε|≤εN,φ(X)函数形式为:
其中,a,b,c,d为合适的常数;
步骤4,计算***瞬态控制性能函数以及误差转换,过程如下:
4.1***瞬态控制中,控制器输入信号为:
u(t)=ρ(Fφ(t),ψ(t),||e(t)||)×e(t)(13)
其中,e(t)=y-yd,yd是理想的跟踪轨迹,e(t)为跟踪误差,ψ(t)是缩放因子,Fφ(t)是误差变量的边界,||e(t)||是欧几里德范数,为了保证e(t)演变在边界内,时变增益ρ(.)为:
4.2设计误差变量的边界为:
其中,是一个连续的正函数,对t≥0,都有则
Fφ(t)=δ0exp(-a0t)+δ∞(16)
其中δ0≥δ∞>0,且|e(0)|<Fφ(0);
4.3定义瞬态控制误差变量为:
步骤5,计算反演法中***瞬态性能控制虚拟变量,动态滑模面及微分,过程如下:
5.1定义瞬态控制虚拟变量及其微分,
定义误差变量:
e=y-yd(18)
其中,yd是该***的理想运动轨迹,y是实际***输出;
则,对式(15)求导得:
其中,φF=1/(Fφ-||e||)2;
5.2定义李亚普诺夫函数:
对V1求导得:
5.3设计虚拟控制量
其中,k1为常数,且k1>0;
5.4定义一个新的变量α1,让虚拟控制量通过时间常数为τ1的一阶滤波器:
5.5定义滤波误差则
5.6用神经网络来估计
其中
步骤6,针对式(4),设计虚拟控制量,过程如下:
6.1定义误差变量
si=zi-αi-1,i=2,3(26)
式(15)的一阶微分为:
6.2设计虚拟控制量
其中,k2为常数且k2>0,是ε的估计值,是W1的估计值;
6.3设计虚拟控制量
其中,k3为常数且k3>0,是ε的估计值,是W2的估计值;
6.4定义一个新的变量αi,让虚拟控制量通过时间常数为τi的一阶滤波器:
6.5定义 则
6.6用神经网络来估计
其中,为理想权重Wi的估计值, 中;
步骤7,设计控制器输入,过程如下:
7.1定义误差变量
s4=z4-α3(34)
计算式(20)的一阶微分为:
7.2设计控制器输入u:
其中,为理想权重W3的估计值,k5≥1/n,是ε3的估计值;
7.3设计自适应率:
其中,Kj是自适应矩阵,vμ>0;
步骤8,设计李雅普诺夫函数
其中,W*是理想值;
对式(26)进行求导得:
如果则判定***是稳定的。
为验证所提方法的有效性,本发明给出了保证瞬态性能的机械臂伺服***死区补偿控制方法的跟踪性能和跟踪误差的图。***初始化的参数为:x1(0)=0,x2(0)=0,神经网络的参数为:K=0.1,a=2,b=10,c=1,d=-1,对瞬态性能控制的边界函数参数为:δ0=1,δ∞=0.2,a0=0.3,虚拟控制量的参数为:k1=1,k2=20,k3=20,k4=5,k5=1,一阶滤波器的时间常数参数为t2=t3=t4=0.02;***模型参数为Mgl=5,I=1,J=1,K=40,I=1;并且死区为:
跟踪yd=0.5(sin(t)+sin(0.5t))的信号,由图2可以看出,保证瞬态性能的机械臂伺服***死区补偿控制方法可以很好的追踪到运动轨迹;从图3可以看出,该方法的追踪误差很小,几乎为零。从图4可以看出,在带有死区输入控制器情况下,非线性死区限制较大,仍能实现***的稳定跟踪。因此,本发明提供一种能够有效补偿未知死区,避免反演法带来的复杂度***问题的证了***瞬态性能控制方法,实现***的稳定快速跟踪。
以上阐述的是本发明给出的一个实施例表现出的优良优化效果,显然本发明不只是限于上述实施例,在不偏离本发明基本精神及不超出本发明实质内容所涉及范围的前提下对其可作种种变形加以实施。