一种带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法
技术领域
本发明涉及一种带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法,特别是带有未知死区输入以及***未知动态参数的机械臂伺服***控制方法。
背景技术
机械臂伺服***作为一种高度自动化设备,在机器人、航空飞行器等高性能***中得到了广泛的应用,如何实现机械臂伺服***的快速精确控制已经成为了一个热点问题。然而,未知死区输入广泛存在于机械臂伺服***中,往往会导致控制***的效率降低甚至是失效。针对机械臂伺服***的控制问题,存在很多控制方法,例如PID控制,自适应控制,滑模控制等。
滑模控制在解决***不确定性和外部扰动方面被认为是一个有效的鲁棒控制方法。滑模控制方法具有算法简单、响应速度快、对外界噪声干扰和参数摄动鲁棒性强等优点。因此,滑模控制方法被广泛应用于各个领域。对比传统线性滑模控制,终端滑模控制的优越性在于他的有限时间收。然而,终端滑模控制在本质上的不连续开关特性将会引起***的抖振,成为了终端滑模控制在实际***中应用的障碍。为了解决这一问题,许多改进的方法相继被提出,例如高阶滑模控制方法,观测器控制方法。在这些方法中,滑模面的选取都是根据理想***参数降阶而得到的。最近,一种全阶滑模控制方法被提出,这种方法在***的响应中很好的避免了抖振问题并且使***输入信号更加平滑。
然而,在上述提出的方法中,机械***的动态模型参数都必须提前已知。因此,***的不确定因素以及未知死区输入会影响机械臂伺服***的直接应用。众所周知,由于神经网络在一个紧集的任意精度中逼近任何光滑函数的能力,因此它已被广泛应用于处理***未知性以及非线性问题。基于上述原因,许多自适应神经网络控制方法被用来控制高度非线性以及含有未知死区输入的机械臂***。
发明内容
为了克服现有的机械臂伺服***无法避免死区输入对***影响以及存在滑模控制抖振问题的不足,本发明提供一种带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法,实现了对未知死区的有效补偿,改善了***的抖振问题以及奇异问题,保证***快速稳定收敛。
为了解决上述技术问题提出的技术方案如下:
一种带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法,包括以下步骤:
步骤1,建立机械臂伺服***的动态模型,初始化***状态、采样时间以及控制参数,过程如下:
1.1机械臂伺服***的动态模型表达式为:
其中,q,和分别为机械臂关节的位置,速度和加速度;MH,CH以及DH分别表示每个关节的对称正定惯性矩阵,离心科里奥利矩阵以及阻尼摩擦系数的对角正定矩阵;GH代表重力项;τ是控制信号;T(τ)为死区,表示为:
其中,gr和gl分别代表死区的左斜率和右斜率;br和bl代表死区的未知宽度参数,满足gr>0,gl>0,br>0,bl<0;
1.2将式(2)表示为:
T(τ)=g(t)τ+b(t)(3)
其中, 以及
1.3通过式(2)和(3),定义:
B(t)=(g(t)-gl(t))τ+b(t)(4)
则式(3)被表示为:
T(τ)=gl(t)τ+B(t)(5)
因此,得到关系式||B(t)||≤BM=max((2*gl+gr)br,(2*gl+gr)bl);
1.4由于存在测量噪声,负荷变化以及外界干扰的影响,式(1)中的***参数并不能准确的获得,因此将实际的***参数改写为:
其中,估计值以及代表已知部分;ΔMH(q),ΔDH以及ΔGH(q)代表***未知项;
步骤2,基于含有未知死区输入以及未知参数的机械臂伺服***,设计所需的神经网络,过程如下:
定义θ*为理想权重系数矩阵,则非线性不确定函数f被逼近为:
f=θ*Tφ(x)+ε(7)其中,代表输入矢量;φ(x)=[φ1(x),φ2(x),…φm(x)]T是神经网络的基函数;ε代表神经网络的逼近误差且满足||ε||≤εN,εN则是一个正的常数;φi(x)被取为以下高斯函数:
其中,ci代表高斯函数的核参数;σi则表示了高斯函数的宽度;
步骤3,计算***跟踪误差,设计全阶滑模面,过程如下:
3.1定义***跟踪误差为
e=qd-q(9)
其中,qd为二阶可导期望轨迹;那么式(9)的一阶微分和二阶微分被表示为:
3.2因此,为了避免奇异问题,全阶滑模面将定义为:
其中,c1和c2是一个正的常数,它的选择是保证多项式p2+c2p+c的全部特征根在复平面的左半部分以保证***的稳定性;α1和α2的选取则是通过以下多项式:
其中,αn+1=1,αn=α,α∈(1-ε,1)以及ε∈(0,1);
步骤4,基于含有未知死区输入的机械臂***,根据全阶滑模以及神经网络理论,设计神经网络全阶滑模控制器,过程如下:
4.1考虑式(1),神经网络全阶滑模控制器被设计为:
v=-(kd+kT+η)sgn(s)(17)
其中,ci和αi是常数,i=1,2,已在式(12)中被定义;kd,kT和η都是常数,并且将在之后给予说明;
4.2设计神经网络权重系数矩阵的调节规律:
其中,Γ是一个正定的对角矩阵;
4.3将式(14)带入(1)中得到如下等式:
其中,代表神经网络的权重估计误差;代表***扰动项,并且是有界的,那么假定d(q,t)≤ld并且其中ld是一个有界的常数;KT的选取是在K>0时满足kT≥Tld;
通过式(1),式(12),式(14)-式(17)以及式(19),全阶滑模面被表示成如下等式:
s=d(q,t)+un(20)
将式(17)带入式(16)中得到:
在un(0)=0的情况下,得到如下等式:
kT≥Tld≥T|un(t)|max≥T|un(t)|(22)
4.4设计李亚普诺夫函数:
对式(12)进行求导得:
将式(16)带入式(24)中得到:
对式(23)进行微分得到:
将式(22)带入式(26)中,如果则判定***是稳定的。
本发明基于未知死区输入以及未知非线性因素,全阶滑模和神经网络,设计带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法,实现***稳定控制,改善滑模控制的抖振,保证***快速稳定收敛。
本发明的技术构思为:针对含有动态执行机构,并且带有未知死区输入的机械臂伺服***,利用全阶滑模控制方法,再结合神经网络,设计一种带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法。将死区转换成为一个线性时变***,再通过神经网络逼近未知函数,补偿了传统未知死区的附加影响以及***的未知参数。另外,全阶滑模面的设计是为了保证***的快速稳定收敛,并且通过在实际的控制系中避免出现微分项来改善抖振以及奇异问题。本发明提供一种能够改善滑模面的抖振问题以及解决奇异问题,并且能有效补偿***未知动态参数以及未知死区输入的控制方法,实现***的快速稳定控制。
本发明的优点为:补偿***未动态参数以及未知死区输入,改善抖振问题,实现快速稳定收敛。
附图说明
图1(a)为本发明关节一的位置跟踪效果示意图。
图1(b)为本发明关节一的位置跟踪误差示意图。
图2(a)为本发明关节二的位置跟踪效果示意图。
图2(b)为本发明关节二的位置跟踪误差示意图。
图3(a)为本发明关节一的控制器输入示意图。
图3(b)为本发明关节二的控制器输入示意图。
图4为本发明的控制流程示意图。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1-图4,一种带有死区补偿的机械臂伺服***神经网络全阶滑模控制方法,包括以下步骤:
步骤1,建立机械臂伺服***的动态模型,初始化***状态、采样时间以及控制参数,过程如下:
1.1机械臂伺服***的动态模型表达式为:
其中,q,和分别为机械臂关节的位置,速度和加速度;MH,CH以及DH分别表示每个关节的对称正定惯性矩阵,离心科里奥利矩阵以及阻尼摩擦系数的对角正定矩阵;GH代表重力项;τ是控制信号;T(τ)为死区,表示为:
其中,gr和gl分别代表死区的左斜率和右斜率;br和bl代表死区的未知宽度参数,满足gr>0,gl>0,br>0,bl<0;
1.2将式(2)表示为:
T(τ)=g(t)τ+b(t)(3)
其中, 以及
1.3通过式(2)和(3),定义:
B(t)=(g(t)-gl(t))τ+b(t)(4)
则式(3)被表示为:
T(τ)=gl(t)τ+B(t)(5)
因此,得到关系式||B(t)||≤BM=max((2*gl+gr)br,(2*gl+gr)bl);
1.4由于存在测量噪声,负荷变化以及外界干扰的影响,式(1)中的***参数并不能准确的获得,因此将实际的***参数改写为:
其中,估计值以及代表已知部分;ΔMH(q),ΔDH以及ΔGH(q)代表***未知项;
步骤2,基于含有未知死区输入以及未知参数的机械臂伺服***,设计所需的神经网络,过程如下:
定义θ*为理想权重系数矩阵,则非线性不确定函数f被逼近为:
f=θ*Tφ(x)+ε(7)
其中,代表输入矢量;φ(x)=[φ1(x),φ2(x),…φm(x)]T是神经网络的基函数;ε代表神经网络的逼近误差且满足||ε||≤εN,εN则是一个正的常数;φi(x)被取为以下高斯函数:
其中,ci代表高斯函数的核参数;σi则表示了高斯函数的宽度;
步骤3,计算***跟踪误差,设计全阶滑模面,过程如下:
3.1定义***跟踪误差为
e=qd-q(9)
其中,qd为二阶可导期望轨迹;那么式(9)的一阶微分和二阶微分被表示为:
3.2因此,为了避免奇异问题,全阶滑模面将定义为:
其中,c1和c2是一个正的常数,它的选择是保证多项式p2+c2p+c的全部特征根在复平面的左半部分以保证***的稳定性;α1和α2的选取则是通过以下多项式:
其中,αn+1=1,αn=α,α∈(1-ε,1)以及ε∈(0,1);
步骤4,基于含有未知死区输入的机械臂***,根据全阶滑模以及神经网络理论,设计神经网络全阶滑模控制器,过程如下:
4.1考虑式(1),神经网络全阶滑模控制器被设计为:
v=-(kd+kT+η)sgn(s)(17)
其中,ci和αi是常数,i=1,2,已在式(12)中被定义;kd,kT和η都是常数,并且将在之后给予说明;
4.2设计神经网络权重系数矩阵的调节规律:
其中,Γ是一个正定的对角矩阵;
4.3将式(14)带入(1)中得到如下等式:
其中,代表神经网络的权重估计误差;代表***扰动项,并且是有界的,那么假定d(q,t)≤ld并且其中ld是一个有界的常数;KT的选取是在K>0时满足kT≥Tld;
通过式(1),式(12),式(14)-式(17)以及式(19),全阶滑模面被表示成如下等式:
s=d(q,t)+un(20)
将式(17)带入式(16)中得到:
在un(0)=0的情况下,得到如下等式:
kT≥Tld≥T|un(t)|max≥T|un(t)|(22)
4.4设计李亚普诺夫函数:
对式(12)进行求导得:
将式(16)带入式(24)中得到:
对式(23)进行微分得到:
将式(22)带入式(26)中,如果则判定***是稳定的。
为了得到式(2)中的相应***参数值,我们给出如下两个关节的机械臂伺服***表达式:
其中,a11=(m1+m2)r1 2+m2r2 2+2m2r1r2cos(q2)+J,a12=m2r2+m2r1r2cos(q2),a22=m2r2 2+J2,b12=m2r1r2sin(q2),c1=(m1+m2)r1cos(q2)+m2r2cos(q1+q2),c2=m2r2cos(q1+q2),
为了验证所提方法的有效性,本发明给出了以下三种方法进行对比:
S1:不带死区补偿的神经网络全阶滑模控制方法;
S2:带死区补偿的神经网络全阶滑模控制方法;
S3:带有死区补偿的神经网络有限时间控制:方法进行。
为了更有效的进行对比,***所有的参数都是一致的,即:q1(0)=0.5,q2(0)=0.5,Jm=diag(0.67×10-4,0.42×10-4),Dm=diag(0.21,0.15),N=diag(9,1),并且给定***扰动为:***控制信号参数为:Kτ=diag(19/40,19/80),Γ=diag(50,50),α1=13/27,α2=13/27,c1=100,c2=40,T=1;机械臂实际参数为:r1=0.2,r2=0.18,m1=2.3,m2=0.6,J1=0.02,J2=0.003,g=9.8,令k=kd+kT+η=10;神经网络包含15个节点,即n=15;神经网络宽度为:σi=4,i=1,2,…,15;死区参数为:br=0.8,bl=-0.5,gr=1.2,gl=0.5;并且跟踪信号为:yd1=yd2=0.5(sin(2πt)+cos(πt))。
从图1我们看出,由于存在死区输入的影响,S1方法在关节一的跟踪效果上最差,也存在最大的跟踪误差,S3方法要比S1方法具有更好的跟踪效果,而S2方法具有最好的跟踪效果。对于关节2,由于死区的存在导致式(1)中MH存在奇异现象,因此使S1方法失效;从图2中我们得到,同样S2方法要比S3方法具有更好的跟踪效果以及更小的跟踪误差。从图3可以看出,S3方法有明显的抖振现象,然而S2方法则有效的改善了这一抖振现象。
以上阐述的是本发明给出的一个实施例表现出的优良优化效果,显然本发明不只是限于上述实施例,在不偏离本发明基本精神及不超出本发明实质内容所涉及范围的前提下对其可作种种变形加以实施。