《9.7 机器人神经网络自适应控制.doc》由会员分享,可在线阅读,更多相关《9.7 机器人神经网络自适应控制.doc(14页珍藏版)》请在金锄头文库上搜索。
1、声明:应部分读者的要求,本书第9章增加“机器人神经网络自适应控制”一节,图序、公式序顺延。9.7 机器人神经网络自适应控制机器人学科是一门迅速发展的综合性前沿学科,受到工业界和学术界的高度重视。机器人的核心是机器人控制系统,从控制工程的角度来看,机器人是一个非线性和不确定性系统,机器人智能控制是近年来机器人控制领域研究的前沿课题,已取得了相当丰富的成果。机器人轨迹跟踪控制系统的主要目的是通过给定各关节的驱动力矩,使得机器人的位置、速度等状态变量跟踪给定的理想轨迹。与一般的机械系统一样,当机器人的结构及其机械参数确定后,其动态特性将由动力学方程即数学模型来描述。因此,可以采用自动控制理论所提供的
2、设计方法,采用基于数学模型的方法设计机器人控制器。但是在实际工程中,由于机器人是一个非线性和不确定性系统,很难得到机器人精确的数学模型。采用神经网络,可实现对机器人动力学方程中未知部分的精确逼近,从而实现无需建模的控制。本节讨论如何利用神经网络控制和李雅普诺夫(Lyapunov)方法设计机器人轨迹跟踪控制的问题,以及如何分析控制系统的稳定性和收敛性。9.7.1 机器人动力学模型及其结构特性关节机械手动态方程可表示为: (9.30)其中,为关节转动角度向量,为维正定惯性矩阵,为维向心哥氏力矩,为维惯性矩阵,为维摩擦力,为未知有界的外加干扰,为各个关节运动的转矩向量,即控制输入。机器人动力学系统具
3、有如下动力学特性:特性1:惯量矩阵是对称正定阵且有界;特性2:矩阵有界;特性3:是一个斜对称矩阵,即对任意向量,有 (9.31)特性4:未知外加干扰满足,为正常数。9.7.2 传统控制器的设计及分析 定义跟踪误差为: (9.32) 定义误差函数为: (9.33)其中。则 (9.34)其中,为包含机器人模型信息的非线性函数。表示为 (9.35)在实际工程中,和往往很难得到精确的结果,导致模型不确定项为未知。为了设计控制器,需要对不确定项进行逼近,假设为的逼近值。设计控制律为 (9.36)将控制律式(9.36)代入式(9.34),得 (9.37)其中为针对的逼近误差,。如果定义Lyapunov函数
4、 (9.38)则这说明在固定条件下,控制系统的稳定依赖于,即对的逼近精度及干扰的大小。9.7.3 基于RBF神经网络逼近的机器人控制1基于RBF网络的逼近算法已经证明,采用RBF网络可以实现对任意连续函数的精确逼近。因此,可以采用RBF网络实现对不确定项的逼近。在RBF网络结构中,取为网络的输入向量。设RBF网络的径向基向量,其中hj为高斯基函数:. (9.39)其中网络第个结点的中心矢量为,。假设存在权值,逼近函数的理想RBF网络输出为: (9.40)其中网络的权向量,为逼近误差,。考虑式(9.35),针对中包含的信息,逼近函数的RBF网络输入取: (9.41)2基于RBF网络的控制器和自适
5、应律设计 定义RBF神经网络的实际输出为: (9.42) 取 (9.43) 控制律和自适应律设计为: (9.44) (9.45)其中为对称正定阵,。 将式(9.40)、式(9.42)和式(9.44)代入式(9.34),得 (9.46)其中,为用于克服神经网络逼近误差和干扰的鲁棒项。将鲁棒项设计为: (9.47)其中为符号函数。 (9.48)3. 稳定性及收敛性分析针对个关节的神经网络控制,定义Lyapunov函数为: (9.49)其中为矩阵的迹,其定义为:设是阶方阵,则称的主对角元素的和为的迹,记作。则将式(9.46)代入上式,得 (9.50)将式(9.31)和式(9.45)代入上式,得下面分
6、两种情况进行讨论。(1)不考虑鲁棒项,取,则如果要使,则需要满足: (9.51)如果满足,由于,且有界,则由表达式可知,、和都有界。由有界可知,跟踪误差及其导数都有界,从而和有界,且跟踪误差及其导数的收敛值随神经网络逼近误差上界和干扰上界的增大而增大,并可通过增大的值达到任意小。(2)考虑鲁棒项,取式(9.47),则由于,且有界,则、和为有界。由于,又由于式(9.46)的右边信号都有界,则有界,有界,则根据Barbalat引理,趋近于零,即趋近于零,从而可得出和趋近于零。9.7.4 仿真实例选二关节机器人力臂系统,其动力学模型为: (9.52)其中,。取。RBF网络高斯基函数参数的取值对神经网
7、络控制的作用很重要,如果参数取值不合适,将使高斯基函数无法得到有效的映射,从而导致RBF网络无效。故按网络输入值的范围取值,取,网络的初始权值取零,网络输入取。系统的初始状态为,两个关节的位置指令分别为,控制参数取,在鲁棒项中,取,。采用Simulink和S函数进行控制系统的设计,M=1时为不考虑鲁棒项,仿真结果如图9-25、图9-26和图9-27所示。图9-25 关节1和关节2的位置跟踪(M=1)图9-26 关节1和关节2的控制输入(M=1)图9-27 函数及其逼近(M=1)仿真程序Simulink主程序:chap9_5sim.mdl位置指令子程序:chap9_5input.mfunctio
8、n sys,x0,str,ts = spacemodel(t,x,u,flag)switch flag,case 0, sys,x0,str,ts=mdlInitializeSizes;case 1, sys=mdlDerivatives(t,x,u);case 3, sys=mdlOutputs(t,x,u);case 2,4,9 sys=;otherwise error(Unhandled flag = ,num2str(flag);endfunction sys,x0,str,ts=mdlInitializeSizessizes = simsizes;sizes.NumContState
9、s = 0;sizes.NumDiscStates = 0;sizes.NumOutputs = 6;sizes.NumInputs = 0;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 1;sys = simsizes(sizes);x0 = ;str = ;ts = 0 0;function sys=mdlOutputs(t,x,u)qd1=0.1*sin(t);d_qd1=0.1*cos(t);dd_qd1=-0.1*sin(t);qd2=0.1*sin(t);d_qd2=0.1*cos(t);dd_qd2=-0.1*sin(t);sys
10、(1)=qd1;sys(2)=d_qd1;sys(3)=dd_qd1;sys(4)=qd2;sys(5)=d_qd2;sys(6)=dd_qd2;控制器子程序:chap9_5ctrl.mfunction sys,x0,str,ts = spacemodel(t,x,u,flag)switch flag,case 0, sys,x0,str,ts=mdlInitializeSizes;case 1, sys=mdlDerivatives(t,x,u);case 3, sys=mdlOutputs(t,x,u);case 2,4,9 sys=;otherwise error(Unhandled f
11、lag = ,num2str(flag);endfunction sys,x0,str,ts=mdlInitializeSizesglobal node c b Fainode=7;c=0.1*-1.5 -1 -0.5 0 0.5 1 1.5; -1.5 -1 -0.5 0 0.5 1 1.5; -1.5 -1 -0.5 0 0.5 1 1.5; -1.5 -1 -0.5 0 0.5 1 1.5; -1.5 -1 -0.5 0 0.5 1 1.5;b=0.20;Fai=5*eye(2);sizes = simsizes;sizes.NumContStates = 2*node;sizes.Nu
12、mDiscStates = 0;sizes.NumOutputs = 3;sizes.NumInputs = 11;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 0;sys = simsizes(sizes);x0 = zeros(1,2*node);str = ;ts = ;function sys=mdlDerivatives(t,x,u)global node c b Faiqd1=u(1);d_qd1=u(2);dd_qd1=u(3);qd2=u(4);d_qd2=u(5);dd_qd2=u(6);q1=u(7);d_q1=u(8);q
13、2=u(9);d_q2=u(10);q=q1;q2;e1=qd1-q1;e2=qd2-q2;de1=d_qd1-d_q1;de2=d_qd2-d_q2;e=e1;e2;de=de1;de2;r=de+Fai*e;qd=qd1;qd2;dqd=d_qd1;d_qd2;dqr=dqd+Fai*e;ddqd=dd_qd1;dd_qd2;ddqr=ddqd+Fai*de;z=e;de;qd;dqd;ddqd;for j=1:1:node h1(j)=exp(-norm(z(1)-c(:,j)2/(b*b); h2(j)=exp(-norm(z(2)-c(:,j)2/(b*b);endF=25*eye(2);for i=1:1