基于RBF网络的机械手Matlab仿真实验
利用matlab的机器人试验仿真

选择MATLAB2016a版,高版本不能安装。
安装好按照下面的操作做出来,然后截图做成Word文档发给我。
MATLAB2016a版同学们网上下载安装,安装方法网上随便可找到。
机器人工具箱我发给你们。
一、将文件夹放到MATLAB安装文件夹指定目录下放到安装目录的toolbox文件夹下,如下图是笔者的电脑的位置,其中那个installation address是我自己取得名字,英语不好,不要见怪。
三、打开MATLAB软件,进行手动启动(1)打开matlab,依次点击file(文件)-setpath(设置路径)-add with subfolder (添加子文件夹),然后选择这个rvctools文件夹就好了,然后save(保存)-close (关闭)(2)在命令行窗口输入startup_rvc,回车,如图,显示了一段英语,我恩可以看到,版本是9.10。
本文主要是给大家一个系统的概念,如何用Matlab实现六轴机器人的建模和实现轨迹规划。
以后将会给大家讲解如何手写正逆解以及轨迹插补的程序。
程序是基于Matlab2016a,工具箱版本为Robotic Toolbox 9.10。
1.D-H建模三个两两相互垂直的XYZ轴构成欧几里得空间,存在六个自由度:沿XYZ 平移的三个自由度,绕XYZ旋转的三个自由度。
在欧几里得空间中任意线性变换都可以通过这六个自由度完成。
Denavit-Hartenberg提出的D-H参数模型能满足机器人学中的最小线性表示约定,用4个参数就能描述坐标变换:绕X轴平移距离a;绕X轴旋转角度alpha;绕Z轴平移距离d;绕Z轴旋转角度theta。
2.标准D-H模型和改进D-H模型对比来看参数并没有改变,标准的D-H 模型是将连杆的坐标系固定在该连杆的输出端(下一关节),也即坐标系i-1与关节i对齐;改进的D-H模型则是将坐标系固定在该连杆的输入端(上一关节),也即坐标系i-1与关节对齐i-1。
RBF神经网络:原理详解和MATLAB实现

RBF神经⽹络:原理详解和MATLAB实现RBF神经⽹络:原理详解和MATLAB实现——2020年2⽉2⽇⽬录RBF神经⽹络:原理详解和MATLAB实现 (1)⼀、径向基函数RBF (2)定义(Radial basis function——⼀种距离) (2)如何理解径向基函数与神经⽹络? (2)应⽤ (3)⼆、RBF神经⽹络的基本思想(从函数到函数的映射) (3)三、RBF神经⽹络模型 (3)(⼀)RBF神经⽹络神经元结构 (3)(⼆)⾼斯核函数 (6)四、基于⾼斯核的RBF神经⽹络拓扑结构 (7)五、RBF⽹络的学习算法 (9)(⼀)算法需要求解的参数 (9)0.确定输⼊向量 (9)1.径向基函数的中⼼(隐含层中⼼点) (9)2.⽅差(sigma) (10)3.初始化隐含层⾄输出层的连接权值 (10)4.初始化宽度向量 (12)(⼆)计算隐含层第j 个神经元的输出值zj (12)(三)计算输出层神经元的输出 (13)(四)权重参数的迭代计算 (13)六、RBF神经⽹络算法的MATLAB实现 (14)七、RBF神经⽹络学习算法的范例 (15)(⼀)简例 (15)(⼆)预测汽油⾟烷值 (15)⼋、参考资料 (19)⼀、径向基函数RBF定义(Radial basis function——⼀种距离)径向基函数是⼀个取值仅仅依赖于离原点距离的实值函数,也就是Φ(x)=Φ(‖x‖),或者还可以是到任意⼀点c的距离,c点称为中⼼点,也就是Φ(x,c)=Φ(‖x-c‖)。
任意⼀个满⾜Φ(x)=Φ(‖x‖)特性的函数Φ都叫做径向基函数。
标准的⼀般使⽤欧⽒距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。
在神经⽹络结构中,可以作为全连接层和ReLU层的主要函数。
⼀些径向函数代表性的⽤到近似给定的函数,这种近似可以被解释成⼀个简单的神经⽹络。
径向基函数在⽀持向量机中也被⽤做核函数。
常见的径向基函数有:⾼斯函数,⼆次函数,逆⼆次函数等。
MATLAB机器人仿真程序

附录MATLAB 机器人工具箱仿真程序:1)运动学仿真模型程序(Rob1.m)L1=link([pi/2 150 0 0])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})=’MOTOMAN-UP6’ % 模型的名称>>drivebot(r)2)正运动学仿真程序(Rob2.m)L1=link([pi/2 150 0 0])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})=’MOTOMAN-UP6’t=[0:0.01:10];%产生时间向量qA=[0 0 0 0 0 0 ]; %机械手初始关节角度qAB=[-pi/2 -pi/3 0 pi/6 pi/3 pi/2 ];%机械手终止关节角度figure('Name','up6机器人正运动学仿真演示');%给仿真图像命名q=jtraj(qA,qAB,t);%生成关节运动轨迹T=fkine(r,q);%正向运动学仿真函数plot(r,q);%生成机器人的运动figure('Name','up6机器人末端位移图')subplot(3,1,1);plot(t, squeeze(T(1,4,:)));xlabel('Time (s)');ylabel('X (m)');subplot(3,1,2);plot(t, squeeze(T(2,4,:)));xlabel('Time (s)');ylabel('Y (m)');subplot(3,1,3);plot(t, squeeze(T(3,4,:)));xlabel('Time (s)');ylabel('Z (m)');x=squeeze(T(1,4,:));y=squeeze(T(2,4,:));z=squeeze(T(3,4,:));figure('Name','up6机器人末端轨迹图'); plot3(x,y,z);3)机器人各关节转动角度仿真程序:(Rob3.m)L1=link([pi/2 150 0 0 ])L2=link([0 570 0 0])L3=link([pi/2 130 0 0])L4=link([-pi/2 0 0 640])L5=link([pi/2 0 0 0 ])L6=link([0 0 0 95])r=robot({L1 L2 L3 L4 L5 L6})='motoman-up6't=[0:0.01:10];qA=[0 0 0 0 0 0 ];qAB=[ pi/6 pi/6 pi/6 pi/6 pi/6 pi/6]; q=jtraj(qA,qAB,t);Plot(r,q);subplot(6,1,1);plot(t,q(:,1));title('转动关节1');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,2);plot(t,q(:,2));title('转动关节2');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,3);plot(t,q(:,3));title('转动关节3');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,4);plot(t,q(:,4));title('转动关节4');xlabel('时间/s');ylabel('角度/rad' );subplot(6,1,5);plot(t,q(:,5));title('转动关节5');xlabel('时间/s');ylabel('角度/rad');subplot(6,1,6);plot(t,q(:,6));title('转动关节6');xlabel('时间/s');ylabel('角度/rad');4)机器人各关节转动角速度仿真程序:(Rob4.m)t=[0:0.01:10];qA=[0 0 0 0 0 0 ];%机械手初始关节量qAB=[ 1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t);Plot(r,q);subplot(6,1,1);plot(t,qd(:,1));title('转动关节1');xlabel('时间/s');ylabel('rad/s');subplot(6,1,2);plot(t,qd(:,2));title('转动关节2');xlabel('时间/s');ylabel('rad/s');subplot(6,1,3);plot(t,qd(:,3));title('转动关节3');xlabel('时间/s');ylabel('rad/s');subplot(6,1,4);plot(t,qd(:,4));title('转动关节4');xlabel('时间/s');ylabel('rad/s' );subplot(6,1,5);plot(t,qd(:,5));title('转动关节5');xlabel('时间/s');ylabel('rad/s');subplot(6,1,6);plot(t,qd(:,6));title('转动关节6');xlabel('时间/s');ylabel('rad/s');5)机器人各关节转动角加速度仿真程序:(Rob5.m)t=[0:0.01:10];%产生时间向量qA=[0 0 0 0 0 0]qAB =[1.5709 -0.8902 -0.0481 -0.5178 1.0645 -1.0201]; [q,qd,qdd]=jtraj(qA,qAB,t);figure('name','up6机器人机械手各关节加速度曲线');subplot(6,1,1);plot(t,qdd(:,1));title('关节1');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)');subplot(6,1,2);plot(t,qdd(:,2));title('关节2');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)');subplot(6,1,3);plot(t,qdd(:,3));title('关节3');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,4);plot(t,qdd(:,4));title('关节4');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,5);plot(t,qdd(:,5));title('关节5');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')subplot(6,1,6);plot(t,qdd(:,6));title('关节6');xlabel('时间 (s)');ylabel('加速度 (rad/s^2)')如有侵权请联系告知删除,感谢你们的配合!。
MATLAB在RBF神经网络模型中的应用

MATLAB 在RBF 神经网络模型中的应用高宁1,张建中2(1.安徽农业大学信息与计算机学院,安徽合肥230036;2.安徽建筑工业学院电子与信息工程学院,安徽合肥230022)摘要:本文介绍了RBF 神经网络的基本原理及主要特点,并举例说明了基于MATLAB 神经网络工具箱建立RBF 神经网络模型及实现仿真的方法。
关键词:仿真;MATLAB 神经网络工具箱;RBF 神经网络中图分类号:TP399文献标识码:A文章编码:1672-6251(2009)02-0110-02Application of RBF neural network model based on MATLABGAO Ning 1,ZHANG Jan-zhong 2(1.College of Information and computer,Anhui Agriculture University,Hefei 230036,China;2.College of Electronics and Information Enginner,Anhui Architecture University,Hefei 230022,China)Abstract:In this paper,the principle and characteristic of RBF neural network are explained,and the method of building and simulating RBF neural network model is introduced.Key words:Simulation;MATLAB neural network toolbox;RBF neural network人工神经网络具有大规模并行处理能力、分布式存储能力、自适应(学习)能力等特征,神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法的缺陷,已广泛应用于模式识别、信号处理等各种应用领域。
基于MATLAB五自由度机械手运动学仿真分析

基于MATLAB五自由度机械手运动学仿真分析五自由度机械手是一种具有五个独立自由度的机械装置,可以实现复杂的姿态和路径规划。
为了研究其运动学特性,可以使用MATLAB进行仿真分析。
本文将基于MATLAB对五自由度机械手的运动学进行仿真分析,包括直接运动学和逆运动学。
首先,我们需要定义机械手的结构和参数。
五自由度机械手通常由五个关节连接而成,每个关节的旋转角度可以通过电机控制。
我们可以使用DH参数建立机械手的运动学模型,在MATLAB中定义每个关节的DH参数。
DH参数包括关节的长度、偏移、旋转角度和连接方式等。
在定义了机械手的结构和参数之后,我们可以进行直接运动学分析。
直接运动学是指根据机械手的关节角度计算末端执行器的位置和姿态。
在MATLAB中,可以使用正运动学算法根据给定的关节角度计算末端执行器的位置和姿态。
这个过程可以通过建立运动学模型和坐标变换矩阵实现,在MATLAB中可以使用符号计算工具箱对模型进行符号计算,得到末端执行器的位置和姿态的闭式解。
接下来,我们可以进行逆运动学分析。
逆运动学是指根据机械手的末端执行器位置和姿态计算关节角度。
在MATLAB中,可以使用逆运动学算法根据给定的末端执行器的位置和姿态计算关节角度。
这个过程通常需要使用数值方法进行迭代求解,MATLAB提供了多种数值求解方法,如牛顿法和Levenberg-Marquardt算法等。
我们可以使用这些算法对逆运动学进行求解,得到关节角度的解。
在进行仿真分析之前,我们还需要定义机械手的工作空间。
工作空间是机械手可以达到的位置和姿态的集合。
对于五自由度机械手,可以使用三维空间中的一个区域表示其工作空间。
在MATLAB中,可以定义一个三维空间的体积,在此体积内的点被认为是机械手的工作空间。
在MATLAB中进行仿真分析时,可以使用图形界面工具进行交互式仿真分析。
MATLAB提供了多种可视化和动画功能,可以实时显示机械手的运动过程和工作空间。
基于MATLAB的机器人柔性手臂控制系统设计与仿真【毕业作品】

任务书设计题目:基于MATLAB的机器人柔性手臂控制系统设计与仿真1.设计的主要任务及目标学生应通过本次毕业设计,综合运用所学过的基础理论知识,在深入了解反馈控制系统工作原理的基础上,掌握机械系统建模、分析及校正环节设计的基本过程;初步掌握运用MATLAB/Simulink相关模块进行控制系统设计与仿真的方法,为学生在毕业后从事机械控制系统设计工作打好基础。
2.设计的基本要求和内容(1)根据已有的机器人柔性手臂系统相关资料,对其结构特点及工作原理进行分析;(2)建立柔性手臂系统的数学模型;(3)应用极点配置对系统进行状态反馈设计;(4)运用MATLAB/SIMULINK对系统进行仿真计算;(5)通过动态仿真设计优化系统参数,对反馈系数K进行确定;3.主要参考文献[1] 刘白燕等编,机电系统动态仿真-基于MATLAB/SIMULINK[M].北京:机械工业出版社,2005.7[2] 王积伟,吴振顺等著,控制工程基础[M].北京:高等教育出版社2001.8[3] (日)末松良一. 机械控制入门[M].北京:科学出版社,2000[4] 徐昕等著. MATLAB工具箱应用指南.北京:电子工业出版社,2000 4.进度安排基于MATLAB的机器人柔性手臂控制系统设计与仿真摘要:机械臂未来的发展趋势是高速、高精度和轻型化、操作灵活的柔性机械臂。
柔性机械臂系统的动力学特点是大范围刚体运动的同时,伴随着柔性臂杆的小幅弹性运动。
柔性臂杆的弹性振动将极大地影响机械臂末端的定位精度。
本设计结合机器人柔性手臂的结构特点,对机器人柔性手臂进行了受力分析,建立了柔性手臂系统的集中参数模型。
对柔性手臂系统的特性、系统的可控制性和可观测性进行了分析,用极点配置求取状态反馈系数K对系统进行反馈。
使柔性手臂系统的振动快速达到稳态,用MATLAB仿真确认控制效果。
关键词:柔性机械臂,控制系统,MATLAB仿真Design and simulation system for flexible manipulator control basedon MATLABAbstract:The trend of the development of mechanical arm is high speed, high precision and light-duty, flexible operation of the flexible manipulator. The dynamics of flexible manipulator system is characterized by a wide range of rigid motion at the same time, with flexible arm slightly elastic movement. The elastic vibration of flexible arm will greatly influence the mechanical arm at the ends of the positioning accuracy. This design with the structure characteristics of a flexible robot arm, has carried on the stress analysis of flexible robot arms, established the lumped parameter model of the flexible arm system. Characteristics of the flexible arm system, system controllability and observability are analyzed, using pole assignment for state feedback coefficient K to feedback system. To make the vibration of the flexible arm system to reach steady state quickly, MATLAB simulation confirm the control effect.Key words:Flexible manipulator, Control system, MATLAB simulation目录1概述 (1)1.1引言 (1)1.2研究目的及意义 (2)1.3国内外柔性机械臂的研究现状 (3)1.3.1柔性臂动力学建模的研究现状 (3)1.3.2柔性机械臂的主动控制 (4)2柔性手臂的建模过程 (5)2.1柔性手臂对机器人的重要性 (5)2.2柔性手臂的试验模型 (6)2.3状态方程的建立 (8)2.3.1集中参数模型 (8)2.3.2系统参数和变量的定义 (8)2.3.3数学模型 (10)3系统的特性分析 (13)3.1实验参数 (13)3.2比例变换 (14)3.3系统矩阵的特征值和手臂的振型 (15)3.4可控制性和可观测性 (20)4用极点配置法进行设计和仿真 (22)4.1状态反馈设计 (22)4.2控制系统设计方法选择 (22)4.3利用仿真确认控制效果 (24)5控制系统的实现 (26)总结 (27)参考文献 (29)致谢 (30)附录 (31)1 概述1.1 引言随着人类科技水平的不断进步,机器人的应用越来越广泛。
6.3 基于RBF神经网络的辨识 [系统辨识理论及Matlab仿真]
![6.3 基于RBF神经网络的辨识 [系统辨识理论及Matlab仿真]](https://img.taocdn.com/s3/m/41e3af4aa216147916112830.png)
RBF网络特点
(1) RBF网络的作用函数为高斯函数,是局部 的,BP网络的作用函数为S函数,是全局的;
(2) 如何确定RBF网络隐层节点的中心及基宽 度参数是一个困难的问题;
(3) 已证明RBF网络具有唯一最佳逼近的特性, 且无局部极小[1]。
RBF网络结构 RBF网络是一种三层前向网络,由于输入
到输出的映射是非线性的,而隐含层空间到 输出空间的映射是线性的,从而可以大大加 快学习速度并避免局部极小问题。
RBF网络结构图1所示。
图1 RBF网络结构
2、RBF网络的逼近
采用RBF网络逼近一对象的结构如图2所 示。
图2 RBF神经网络逼近
在RBF网络结构中,X x1,x2,....xnT 为网络的输入
m
wjhj
j 1
c1 j x1 b2j
其中取 x1 u(k) 。
3、RBF网络逼近仿真实例
使用RBF网络逼近下列对象:
y(k)
u(k
)3
1
y(k 1) y(k 1)2
• RBF网络逼近程序见chap6_4.m
参考文献
[1] J.Park, I.W.Sandberg, Universal approximation
6.3 基于RBF神经网络的辨识
1、RBF神经网络 径向基函数(RBF-Radial Basis Function)神经 网络是由J.Moody和C.Darken在80年代末提出的 一种神经网络,它是具有单隐层的三层前馈网络 。由于它模拟了人脑中局部调整、相互覆盖接收 域(或称感受野-Receptive Field)的神经网络结 构,因此,RBF网络是一种局部逼近网络,已证 明它能任意精度逼近任意连续函数[1]。
采摘机械臂的PSO-RBF神经网络自适应控制

1 机械臂系统问题描述
由于机械臂的每个关节就是一个输入ꎬ也是一个输
出ꎬ而且关节与关节之间又存在着扰动ꎬ耦合关系复杂ꎮ
由于径向基神经网络结构简单ꎬ具有较强的泛化性
能ꎬ近年来ꎬ很多人对 RBF 神经网络在机械臂控制的方
向进行了研究ꎬ极大地推动了机械臂的 RBF 神经网络控
制发展的进程ꎮ 一些研究人员运用 RBF 神经网络的特
子规模ꎮ
来决定下一步运动速度和位置ꎮ 基本 PSO 算法的粒子位
τ = M 0( q) ( q-k v e-k p e) +C0( qꎬq ) q +G0( q) -f( ) (3)
其中:k p = êê
法ꎬ第 t1 次迭代时ꎬ粒子将根据自身的经验和同伴的经验
(7)
(8)
其中 f ∗( )= w ∗ T h( x) ꎬw ∗ 表示 f( ) 的最佳逼近权值
( 期望) 的角度、角速度、角加速度指令ꎮ
在实际工程中ꎬf( ) 通常是未知的ꎬ需要估计 f( )
并对其补偿ꎮ 利用 RBF 神经网络逼近任意非线性函数的
特性逼近 f( ) ꎬ并对其进行补偿ꎬ就可以达到想要的控
制效果ꎮ
2 PSO -RBF 神经网络
采用 RBF 网络逼近 f( ) ꎬ其算法为
adaptive control method is designedꎬ with which a radial basis function neural network is used to approximate and compensate for
system model errorsꎬ and particle swarm optimization is applied to optimize RBF weight parameters to ensure better PSO - RBF
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作空间中机械手的神经网络自适应控制学院:自动化信息与工程学院班级:研1509姓名:陈维多学号:2150321271工作空间中机械手的神经网络自适应控制摘要本设计为一个基于神经网络自适应控制的机械手运动模型的MATLAB仿真实验。
以平面二关节机械手为控制对象,以一圆为目标轨迹。
先得到机械手的运动方程的形式,用RBF径向基神经网络对方程式中的系统的各个参数进行建模,利用每个时刻的估计状态和理想状态的误差,通过梯度下降法对网络参数进行修正,在若干次修正后,神经网络模型所得的状态跟踪到理想状态。
关键词:二关节机械手;神经网络;RBF一、概述1.1研究背景经过几十年的努力,工业机器人(机械手)的控制领域出现了很多成果,控制方法也多种多样,例如最经典成熟的PID控制在一些简单系统中仍然广泛应用,但对于复杂系统显示出了不太好的动态性能;还有计算力矩控制,鲁棒控制等,在调节时间、超调量方面都有非常不错的品质,共性缺点是对机械手数学模型方面的参数有依赖性。
他们都需要一个精确的机械手的数学模型,或系统边界的不确定性是给出的。
然而现实是,机械手在操作过程中伴随着不完整的信息和不精确定义的参数,以及外部因素干扰等,这些控制方法对缺少的传感器信息、未规划的偶然事件的发生非常敏感,这就导致了常规的基于模型的机器人控制方法不能保证系统在实际不可预知环境下的鲁棒性。
为此,有必要采用新的混合控制方法来解决类似问题。
神经网络自适应算法在机械手控制中的应用是非常广泛的,尤其是在机械手实时轨迹跟踪方面,此种算法有很强的自学习特性、并行处理能力、非线性映射能力以及容错性,可以非常好的满足机械手在轨迹跟踪方面要求。
1.2神经网络特点(1)神经网络可利用少量先验知识,进行自我学习,具备自学习能力。
这种特质对繁复的数学计算来说是一种解放,在涉及到理论计算的控制领域,可发挥其强大的作用。
一般的控制算法需要大量的模型先验信息来设计控制方案,例如需要建立被控对象的数学模型。
而利用自学习特性,控制器不需要太多系统的模型和参数信息,因此,神经网络控制可以广泛用于解决具有不确定模型的控制问题。
(2)由于某些单一控制方法对非线性系统束手无策,而神经网络隐含层传递函数的设计形式有很多,可采用非线性函数达到非线性映射功能,所以结合神经网络为解决非线性控制问题提供了有效的途径。
(3)神经网络的分布式结构,以及并行的计算方法使其具有容错性的优点,某些少量的连接错误对整个系统的影响不是很大,甚至没有影响。
1.3RBF径向基神经网络本文用到的算法是径向基函数神经网络(RBFNN)算法。
模式识别技术带动了RBF网络的发展,RBF网络在各个领域正在得到愈来愈广泛的应用,并成为多层前向网络的主要竞争者。
与多层前馈网络(MFN)相比,RBF神经网络具有更好的泛化能力,而且网络结构相对简单,避免了不必要和冗长的计算。
关于RBF网络的研究表明了此种网络能够在一个紧凑集合下,逼近任何非线性函数。
RBFNN是一种三层前向网络。
RBF网络的拓扑结构如下图所示。
图1.1径向基网络图中,,为输出层权向量,y=f(X)为RBF网络的输出,表示隐含层的第i个径向基函数,表达式为2exp i i i X c h ⎛⎫-= -⎪ ⎪⎝⎭(1.1)其中为第i 个隐节点的置信域中心点向量,为置信域的宽度。
在图3-4中,网络的输入层是由实际系统已知的参数组成的。
中间层为隐含层,其神经元个数的确定也是根据实际模型的需要而定。
最后一层是输出层,主要是根据输入量,通过中间层的映射,得出所需要的量。
此网络结构具有这样的特性,即输入空间至隐含层空间的信息传递为非线性的,而隐含层到输出层的传递方式为线性。
RBF 网络是基于BP 神经网络改进二来的,它的指标函数以及权值矫正算法和BP 网络基本一致。
RBF 网络性能指标函数为21(()())2m J y k y k =-(1.2)根据梯度下降法,输出权值、置信域中心点以及置信域宽度的迭代算法如下()(()())j m i k y k y k h ωλ∆=-(1.3)22()(1)()((1)(2))()(()())()(1)((1)(2))()(()())()(1)()((1)(2))i i i i i j i m i i i i i i i i i ijij m i i ij ij ij ij ij k k k k k X C b k y k y k h b k b k b b k b k x c c k y k y k b c k c k c k c k c k ωωωαωωλωαλωα=-+∆+----∆=-=-+∆+----∆=-=-+∆+---(1.4)式中,λ为学习速率,α为动量因子。
RBF 神经网络的工作方式,先给输出权值、置信域中心点以及置信域赋宽度给初值,计算网络输出,判断性能指标函数的值是否符合要求,如不符合,择用上述公式对输出权值、置信域中心点以及置信域宽度进行矫正,在计算下一次的网络输出;若能指标函数的值符合要求,则停止工作。
二、机械手的神经网络建模2.1工作空间直角坐标与关节角位置的转换将工作空间中的关节末端节点直角坐标()转为二关节关节角位置()的问题,即机器人的逆向运动学问题。
根据图2.1可得:图2-1二自由度机械手(2.1)(2.2)将(2.1)的平方加上式(2.2)的平方,可得:+(2.3)从而可以得到:(2.4)取,,则(2.5)2.2被控对象神经网络建模考虑一个刚性n 关节机械手,其动态特性为:(2.6)其中是表示关节变量的向量,是执行机构施加的关节扭矩向量,为对称正定惯性矩阵,为哥氏力和离心力向量,为重力向量。
机械手动态方程具有下面特性:特性1惯性矩阵对称正定;特性2矩阵是斜对称的采用神经网络建模,则机械手在工作空间中的动态方程可写为:()(,)()D q q C q q q G q τ++=(2.7)其中其中,,为矩阵Dx ,Cx ,Gx 中的元素。
写成矩阵形式()[{}{()}]T x D q q =Θ⋅Ξ(,)[{}{()}]T x C q qZ z =A ⋅ ()[{}{()}]T x G q B H q =⋅三、控制器的设计设是在工作空间中的理想轨迹,则和分别是理想的速度和加速度。
定义(2.8)(2.9)(2.10)其中是一个正定矩阵。
根据式(2.7)控制器取:[{}{()}][{}{()}][{}{()}]T T T x r r F q x Z z xB H q Kr =Θ⋅Ξ+A ⋅+⋅+ 如图2-2神经网络控制的过程。
将控制对象初值赋给运动方程,每经过时间t 神经网络模型就会得到一个新的状态。
将该状态和理想状态作比较,按照(2.8)(2.9)(2.10)所示误差模型计算误差,用误差对网路的权值进行矫正,得到新的系统参数Dx ,Cx ,Gx ,再带入神经网络模型,计算下一次的状态。
如此循环,达到控制目的。
图2-2神经网络控制过程四、仿真实例使用平面二关节机械臂模型进行仿真,机械臂动力学方程为()(,)()D q q C q q q G q τ++= (4.1)123223223222cos cos ()cos m m m q m m q D q m m q m +++⎡⎤=⎢⎥+⎣⎦3223122312sin ()sin (,)sin 0.0m q q m q q q C q q m q q --+⎡⎤=⎢⎥⎣⎦41512512cos cos()()cos()m g q m g q q G q m g q q ++⎡⎤=⎢⎥+⎣⎦上式中i m 值由式l M P p L =+给出,有[]12345T M m m m m m =[]12345T P p p p p p =22121212T L l l l l l l ⎡⎤=⎣⎦其中l p 为负载,1l 和2l 分别为关节1和关节2的长度,p 是机器人自身的参数向量。
机械臂实际的参数为[]121.660.420.63 3.75 1.25,1TP l l ===。
为了测试控制器对载荷扰动的抑制能力,在t=4.0时载荷l p 的值从0变道0.5。
在笛卡尔空间中的理想跟踪轨迹取12() 1.00.2cos()() 1.00.2sin()d d x t t x t t ππ=+=+(4.2)该轨迹为一个半径为0.2,圆心在(1.0 1.0)的圆。
初始条件时,机械臂末端的执行器在圆的中心(1.0 1.0)。
由于跟踪轨迹为工作空间中的直角坐标系,而不是关节空间的角位置,应按照第一部分的式子将工作空间中的关节末端直角坐标转()12x x 为二关节空间中关节角的角位置()12q q 。
对应于机械臂动力学方程,雅各比矩阵为1121221211212212sin()sin()sin()()cos()cos()cos()l q l q q l q q J q l q l q q l q q --+-+⎡⎤=⎢⎥+++⎣⎦(4.5)则112122121112122122122122212212cos()cos()cos()()sin()sin()sin()cos()cos()sin()sin()l q l q q l q q J q q l q l q q l q q l q q l q q q l q q l q q --+-+⎡⎤=⎢⎥--+-+⎣⎦-+-+⎡⎤+⎢⎥-+-+⎣⎦ (4.6)控制器取式()(,)()x x x x D q x C q q x G q F ++=,针对Dx ,Cx 和Gx 的每一个元素的逼近,公设计10个RBF 网络。
对Dx 和Gx ,网络输入为q ,分别使用7个隐含层节点的静态RBF 神经网络,而对Cx 中的元素,网络输入为()q q ,分别使用7个隐含层节点的动态RBF神经网络。
所有RBF 网络的隐含层节点的高斯参数中心适量值分别按照输入值的有效范围来取,即针对输入为q 时,取值范围为[0.25,1.75],针对输入为q 的导数时,取值范围为[-1.5,1.5],基宽向量取10。
控制器的增益选为3030K ⎡⎤=⎢⎥⎣⎦,k=0.5,1515⎡⎤Λ=⎢⎥⎣⎦。
仿真结果如图所示:图4-1末关节节点的位置跟踪图4-2末关节节点的速度跟踪图4-3系统参数DCG的2范数如图4-1为末关节节点的位置跟踪,图中红线为理想位置,蓝线为神经网络模型下得到的位置,可以看出,在不到2s的时间内,神经网络模型就很好地跟踪到理想轨迹上;如图4-2为末关节节点的速度跟踪,图中红线为理想速度,蓝线为神经网络模型下得到的速度,同样在不到2s的时间内,神经网络模型就很好地跟踪到理想速度;图4-3为系统参数D、C、G的对比,红色线为由模型(4-1)得到的系统参数,蓝色为由神经网络模型得到的系统参数,网络在经过5s左右时间的矫正,和理想的系统参数基本保持一致。