智能控制实验报告-北航研究生课程-机械臂回零+神经网络+模糊控制
更新时间:2024-03-17 13:49:01 阅读量: 综合文库 文档下载
- 智能控制技术实验报告推荐度:
- 相关推荐
成 绩
智能控制实验
实验报告
院(系)名称 专学学
业名称 生生
学姓
号 名
2016年11月28日
实验一机械臂运动控制及基本操作
一、 实验准备
1、 描述机械臂坐标空间的定义
机械臂通常有两种坐标空间:关节坐标空间和直角坐标空间。
关节坐标空间定义:机械臂的空间坐标直接由各个关节的坐标来确定,所有关节变量构成一个关节矢量。所有关节矢量构成的空间称为关节坐标空间。因此关节坐标空间运动运动就是直接操作各个关节的运动来完成机械臂的运动。下图是关节坐标空间的定义。
图1 机械臂关节坐标空间
直角坐标空间定义:机械臂末端的位置和方位通常是在直角坐标空间中描述。当进行机械臂操作任务时,通常采用直角坐标空间更为直观和方便。下图是直角坐标空间的定义。
图2 机械臂直角坐标空间
2、 机械臂各轴的最大运动范围、最大运动速度、最大展开半径都是多少?并把最大运动范围各量换算为对应的脉冲数(写出转换公式)。 以上参数查看技术手册可得: 最大运动范围: 关节 1 0 -200 度 关节 2 0 -100 度 关节 3 0 -100 mm 关节 4 0 -360 度
最大运动速度: 关节 1 1.57 rad/s 关节 2 3.14 rad/s 关节 3 10 mm /s 关节 43.14 rad/s 最大展开半径:396mm
将最大运动范围各量换算为对应的脉冲数如下:
增量式编码器为2500P/r,即电机每转一圈为2500个脉冲,GT400-SG运动控制卡有4倍频,故下发10000个脉冲电机转动一周。
脉冲数=关节转动角度*(编码器每转对应脉冲**4倍频)*减速器倍率/360 脉冲数=关节移动距离*(编码器每转对应脉冲**4倍频)*减速器倍率/导程 1关节的谐波齿轮减速器比率为100:1;关节2的谐波齿轮减速器比率为99:1,关节3减速比为1.1175,关节4减速比为800。
关节1、关节2、关节4分别转动200、100、360度所对应的脉冲数为: Pulse1=200*10000*100/360=555555.56 Pulse2=100*10000*99/360=275000 Pulse4=360*10000*800/360=8000000 关节3下移100mm对应的脉冲数为: Pulse3=100* 10000* 1.1175/2. 5=447000
3、 为什么要进行机器人回零?如何通过机械臂标定框进行回零校正?
对进行机械臂进行回零的原因:因为机器人测量关节的编码器是增量式而不是绝对式的,因此在每次调用程序时首先必须进行机器人回零。为了在关节坐标空间与直角坐标空间进行转。
通过机械臂标定框进行回零校正的操作:
①机器人初始回零,假设回零角度分别为α1,α2,定义此时的关节1、2的关节坐标为(0°,0°);
②动作关节1、关节2,使其末端位于工作基础平台的机器人标定方框(200,200)
,,(?,?)12处,此时的关节坐标理论上应为(0°,90°),,记录实际的关节坐标为; ,,③修正回零角度分别为:?1??1?0?,?2??2?90?;
④重新进行机器人回零,定义此时的关节1、2的关节坐标为(0°,0°).
4、为什么要进行视场标定?
为了标定视场位置与机械臂坐标的对应关系。
二、实验结果、数据
1、进行多次机器人标定,记录关节1、关节2回零角度,判断机器人控制效果。填写下表:
标定次数 1 2 3 关节1回零角度 10.88388 8.70461 11.46472 关节2回零角度 9.928738 12.48513 10.34421 控制效果 关节1、2基本在在同一轴线 轴2略偏离X轴 关节1、2基本在在同一轴线 关节1回零角度对应的脉冲数=30233 关节2回零角度对应的脉冲数=27304
2、记录视场标定结果
坐标轴 X Y 工作台原点 -62.5 342.5 工作台定点 52.5 267.5 视场原点 227 173 视场定点 447 307 Kx =0.568182 ;Ky= 0.559701
3、运动控制卡编程及回零操作
运动控制卡编程的说明
GT-400是用户可编程运动控制器,提供了一套四轴运动控制器及用C和C++语言编写的用户接口函数库。
控制轴GT-400运动控制器具有四个步进电机控制通道,可同时控制四个步进电机进行运动,这四个控制通道简称为四个控制轴。
命令返回值
命令与库函数运动控制器是按照主机发送的运动控制命令工作的。运动控制器配套有C 语言函数库(DOS 环境)和动态连接库(Windows 环境)。用户通过在主机编制程序调用相应的库函数,也就是向运动控制器发出运动控制命令(简称命令)。
对于用户通过主机发送的命令,运动控制器在检查、校验后,会给出一个反馈。这个反馈就是命令(库函数)的返回值。
每一条库函数指令都会返回一个值,便于用户进行调试。 如:rtn=GT_Open( );
目前,已有的人工神经网络模型至少有几十种,其分类方法也有多种。例如:
1)按网络拓扑结构可分为层次型结构和互连型结构
2)按信息流向可分为前馈型网络与有反馈型网络;
3) 按网络的学习方法可分为有教师的学习网络和无教师的学习网络; 4) 按网络的性能可分为连续型网络与离散型网络,或分为确定性网络与
随机型网络;
神经元的模型确定之后,一个神经网络的特性及能力主要取决于网络的拓扑结构及学习方法。
人工神经网络的拓扑结构:建立人工神经网络的一个重要步骤是构造人工神经网络的拓扑结构,即确定人工神经元之间的互连结构。根据神经元之间连接的拓扑结构,可将神经网络的互连结构分为层次型网络和互连型网络两大类。层次型网络结构又可根据层数的多少分为单层、两层及多层网络结构。
简单单级网络
人工神经网络的运行一般分为学习和工作两个阶段。人工神经网络的学习过程就是它的训练过程。神经网络训练的实质是通过对样本集的输入/输出模式反复作用于网络,网络按照一定的学习算法自动调节神经元之间的连接强度(阈值)或拓扑结构,当网络的实际输出满足期望要求,或者趋于稳定时,则认为学习圆满结束。
人工神经网络的学习算法:神经网络学习算法有很多,大体可分为有导师学习(Supervised Learning)、和无导师学习(Unsupervised Learning)两大类,另外还有一类死记式学习。
(2)BP神经网络的组成
BP模型利用输出后的误差来估计输出层的直接前导层的误差,再利用这个误差估计更前一层的误差。如此下去,获得所有其他各层的误差估计。形成将输出表现出来的误差沿着与输入信号传送相反的方向逐级向网络的输入端传递的过程,因此称为后向传播(B-P)算法。
基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。
?1 a1 ?x1 … 输入变量 ? … o1 ??i … ak wki 输出xj … ? wij … ? ok变量 ?… ?q ?aL 输出层 xM 输入层 ? 隐含层 oL ?
图中:
xj表示输入层第j个节点的输入,j=1,…,M;
wij表示隐含层第i个节点到输入层第j个节点之间的权值;
?i表示隐含层第i个节点的阈值;
?(x)表示隐含层的激励函数;
wki表示输出层第k个节点到隐含层第i个节点之间的权值,i=1,…,q;
ak表示输出层第k个节点的阈值,k=1,…,L;
??x?表示输出层的激励函数;
表示输出层第k个节点的输出。 (1)信号的前向传播过程 隐含层第i个节点的输入neti:
okneti??wijxj??ij?1M (3-1)
隐含层第i个节点的输出yi:
yi??(neti)??(?wijxj??i)j?1M (3-2)
输出层第k个节点的输入netk:
netk??wkiyi?ak??wki?(?wijxj??i)?aki?1i?1j?1qqM (3-3)
输出层第k个节点的输出ok:
M?q?ok??(netk)??(?wkiyi?ak)????wki?(?wijxj??i)?ak?i?1j?1?i?1? (3-4)
q(2)误差的反向传播过程
误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。
对于每一个样本p的二次型误差准则函数为Ep:
1LEp??(Tk?ok)22k?1 (3-5)
系统对P个训练样本的总误差准则函数为:
1PLE???(Tkp?okp)22p?1k?1 (3-6)
根据误差梯度下降法依次修正输出层权值的修正量Δwki,输出层阈值的修正量Δak,隐含层权值的修正量Δwij,隐含层阈值的修正量??i。
?wki????E?wki?ak???;
?E?ak?wij???;
?E?wij??i???;
?E??i (3-7)
输出层权值调整公式:
?wki????E?E?netk?E?ok?netk???????wki?netk?wki?ok?netk?wki (3-8)
输出层阈值调整公式:
?ak???隐含层权值调整公式:
?E?E?netk?E?ok?netk???????ak?netk?ak?ok?netk?ak (3-9)
?wij???隐含层阈值调整公式:
?E?E?neti?E?yi?neti???????wij?neti?wij?yi?neti?wij (3-10)
??i???又因为:
?E?E?neti?E?yi?neti????????i?neti??i?yi?neti??i (3-11)
PL?E????(Tkp?okp)?okp?1k?1 (3-12)
?netk?yi?wki?neti?netk?neti?xj?1?1?w?a??ijki,,, (3-13)
PL?E????(Tkp?okp)??'(netk)?wki?yip?1k?1 (3-14)
?yi???(neti)?neti (3-15)
?ok??'(netk)?netk所以最后得到以下公式:
(3-16)
?wki????(Tkp?okp)??'?netk??yip?1k?1LPL (3-17)
?ak????(Tkp?okp)??'?netk?p?1k?1PLP (3-18)
?wij????(Tkp?okp)??'?netk??wki???(neti)?xjp?1k?1P (3-19)
??i????(Tkp?okp)??'?netk??wki???(neti)p?1k?1L (3-20)
2、如何避免BP网络训练时陷入局部最小?
BP算法因其简单、易行、计算量小、并行性强等优点,目前是神经网络训练采用最多也是最成熟的训练算法之一。其算法的实质是求解误差函数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值,因而通常存在以下问题: (1) 学习效率低,收敛速度慢
(2) 易陷入局部极小状态
有以下改进措施: ①附加动量法
附加动量法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响。在没有附加动量的作用下,网络可能陷入浅的局部极小值,利用附加动量的作用有可能滑过这些极小值。
该方法是在反向传播法的基础上在每一个权值(或阈值)的变化上加上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来产生新的权值(或阈值)变化。
带有附加动量因子的权值和阈值调节公式为:
?wij(k?1)?(1?mc)??ipj?mc?wij(k) ?bi(k?1)?(1?mc)??i?mc?bi(k)
其中k为训练次数,mc为动量因子,一般取0.95左右。
附加动量法的实质是将最后一次权值(或阈值)变化的影响,通过一个动量因子来传递。当动量因子取值为零时,权值(或阈值)的变化仅是根据梯度下降法产生;当动量因子取值为1时,新的权值(或阈值)变化则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分则被忽略掉了。以此方式,当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时,?i将变得很小,于是?wij(k?1)??wij(k),从而防止了?wij?0的出现,有助于使网络从误差曲面的局部极小值中跳出。
根据附加动量法的设计原则,当修正的权值在误差中导致太大的增长结果时,新的权值应被取消而不被采用,并使动量作用停止下来,以使网络不进入较大误差曲面;当新的误差变化率对其旧值超过一个事先设定的最大误差变化率时,也得取消所计算的权值变化。其最大误差变化率可以是任何大于或等于1的值。典型的取值取1.04。所以,在进行附加动量法的训练程序设计时,必须加进条件判断以正确使用其权值修正公式。
训练程序设计中采用动量法的判断条件为:
E(k)?E(k?1)*1.04?0?mc??0.95E(k)?E(k?1), E(k)为第k步误差平方和。
?mc其它?
②自适应学习速率
对于一个特定的问题,要选择适当的学习速率不是一件容易的事情。
通常是凭经验或实验获取,但即使这样,对训练开始初期功效较好的学习速率,不见得对后来的训练合适。为了解决这个问题,人们自然想到在训练过程中,自动调节学习速率。通常调节学习速率的准则是:检查权值是否真正降低了误差函数,如果确实如此,则说明所选学习速率小了,可以适当增加一个量;若不是这样,而产生了过调,那幺就应该减少学习速率的值。下式给出了一个自适应学习速率的调整公式:
?1.05?(k)E(k?1)?E(k)??(k?1)??0.7?(k)E(k?1)?1.04E(k), E(k)为第k步误差平方和。
??(k)其它?初始学习速率?(0)的选取范围可以有很大的随意性。
③动量-自适应学习速率调整算法
当采用前述的动量法时,BP算法可以找到全局最优解,而当采用自适应学习速率时,BP算法可以缩短训练时间, 采用这两种方法也可以用来训练神经网络,该方法称为动量-自适应学习速率调整算法。
二、实验结果、数据
1、设计BP神经网络完成对不同形状工件进行识别
建立一个三层前馈BP神经网络: 输入量:选择对输出影响大且能够观测的变量;各输入量之间互不相关或相关性很小;输入量一般要通过信号处理或特征提取技术提取参数。
训练样本集:训练样本数是网络连接权总数的5-10倍;样本要有代表性,样本类别均衡,不同类别的样本交叉输入,进行训练测试;
初始权值:取足够小的初始权值;使初始值为+1和-1的权值数相等。
具体设计的BP神经网络训练程序参数如下: 输入层节点数为8*16=128; 隐含层数目为10; 输出层节点数为4;
训练步长(学习效率)0.015; 最小均方误差0.001; 相关系数定为0;
样本数量为10,如下所示:
2、程序的主要部分及运行结果
BP神经网络流程图
(1)附上BP神经网络部分补充的主要程序(基于模板test/BP.C Haeder File):
/*** 随机初始化权值 ***/
void bpnn_randomize_weights(double **w, int m, int n) { int i, j; for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { w[i][j] = dpn1(); } }
}
/*** 0初始化权值 ***/
void bpnn_zero_weights(double **w, int m, int n) { int i, j; for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { w[i][j] = 0.0; } } }
/*********前向传输*********/
void bpnn_layerforward(double *l1, double *l2, double **conn, int n1, int n2) { double sum; int j, k; /*** 设置阈值 ***/ l1[0] = 1.0; /*** 对于第二层的每个神经元 ***/ for (j = 1; j <= n2; j++) { /*** 计算输入的加权总和 ***/ sum = 0.0; for (k = 0; k <= n1; k++) { sum += conn[k][j] * l1[k]; } l2[j] = squash(sum); } }
/* 输出误差 */
void bpnn_output_error(double *delta, double *target, double *output, int nj) { int j; double o, t, errsum; errsum = 0.0; for (j = 1; j <= nj; j++) {
o = output[j]; t = target[j]; delta[j] = o * (1.0 - o) * (t - o); } }
/* 隐含层误差 */
void bpnn_hidden_error(double* delta_h, int nh, double *delta_o, int no, double **who, double *hidden) { int j, k; double h, sum, errsum; errsum = 0.0; for (j = 1; j <= nh; j++) { h = hidden[j]; sum = 0.0; for (k = 1; k <= no; k++) { sum += delta_o[k] * who[j][k]; } delta_h[j] = h * (1.0 - h) * sum; } }
/* 调整权值 */
void bpnn_adjust_weights(double *delta, int ndelta, double *ly, int nly, double** w, double **oldw, double eta, double momentum) { double new_dw; int k, j; ly[0] = 1.0; for (j = 1; j <= ndelta; j++) { for (k = 0; k <= nly; k++) { new_dw = ((eta * delta[j] * ly[k]) + (momentum * oldw[k][j])); w[k][j] += new_dw; oldw[k][j] = new_dw; } }
}
实验结果:经过对10个样本的训练,最小均方误差满足了低于给定值0.001的要求,根据归一化最小均方误差准则可知该神经网络效果良好。并通过测试,准确的识别出了如下两个工件的形状。
三、结果分析及讨论
通过对老师给的BP神经网络教学程序的学习,对于BP神经网络的人工智能训练过程有了初步的理解和体会,在此基础上对BP神经网络在MATLAB中用于实现对字符识别等方面的应用进行了较为详尽的学习。其中应用较为成熟有手写体字符识别以及车牌号码识别等。
快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手段。Matlab神经网络工具箱的出现,更加拓宽了神经网络的应用空间。神经网络工具箱将很多原本需要手动计算的工作交给计算机,一方面提高了工作效率,另一方面,还提高了计算的准确度和精度,减轻了工程人员的负担。
神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一。它以人工神经网络理论为基础,利用MATLAB编程语言构造出许多典型神经网络的框架和相关的函数。这些工具箱函数主要为两大部分。一部分函数特别针对某一种类型的神经网络的,如感知器的创建函数、BP网络的训练函数等。而另外一部分函数则是通用的,几乎可以用于所有类型的神经网络,如神经网络仿真函数、初始化函数和训练函数等。这些函数的MATLAB实现,使得设计者对所选定网络进行计算过程,转变为对函数的调用和参数的选择,这样一来,网络设计人员可以根据自己的的需要去调用工具箱中有关的设计和训练程序,从烦琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。
基于 BP 神经网络实现字符识别,主要分为以下几步,第一,首先对目标图像进行识别前预处理。包括灰度图像二值化、图像孤立像素滤波、图像膨胀、腐蚀、按字母最小行分割、按字母最小列分割、图像紧缩、归一化等;第二,用处理好的多个样本进行BP神经网络训练。包括BP网络参数的选择、目标结果构建、输入到结果的映射即用样本库进行神经网络学习机的训练;第三,待测字母的识别。包括对图像预处理、字符提取、归一化和送入已训练好的BP网络进行识别。
以下介绍基于MATLAB的BP神经网络对带噪的十六进制字符的识别: 以下是程序:
可见,该BP神经网络的识别率非常高。 对BP神经网络的应用前景的展望分析:
近年来, 人工神经网络无论在理论研究上, 还是在实际应用中, 都取得了突飞猛进的发展。但必须清醒地认识到,人工神经网络只是对人脑的简单模拟, 尚有许多问题有待解决。为了改善人工神经网络的应用, 解决各学科中存在的大量不确定性和模糊性问题, 可以采取以下3 条途径:
1)与专家系统相结合, 实现符号处理与数值处理相结合, 使知识的提取、存储、推理和解释更接近人脑;
2)把不同类型的人工神经模型以不同形式组合在一起, 构成一个新的综合性人工神经系统;
3)将模糊数学、数理逻辑、拓扑数学等结合到人工神经网络的学习规则中, 使其具有求解不确定性、模糊性和似然性推理等问题的能力。
此外, 研究人工神经网络硬件芯片以提高运行速度也是有待解决的重要问题。随着大规模集成电路、光学与分子器件的发展、人工神经计算机的研制, 人工神经网络必将会得到越来越广泛的应用和迅猛发展。
体会及建议
智能控制实验这门课老师首先是通过给我们讲解平面关节机器人的工作台的相关原理,然后是现场实验的实际操作,让我们真正体会到了什么叫智能控制。紧接着就是回零程序的编制,尽管不懂的东西很多,但是在老师的指导下,还是真正意义上体验了控制卡片的编辑,了解对机构实现智能控制的程序设计思路。
后来的两次实验课分别是实现模糊控制和基于BP神经网络的图像识别。作为一名非自动化专业、非计算机类专业的学生,在没有接触过这些知识的背景下去完成这样的任务是有难度的。花了不少时间,基本把这两块的知识脑补了,但是还是没能很好地实现设计过程,更多的是进行参考和修改。尤其是BP 神经网络的图像识别,到现在原理还是没能真正明白,今后需要花时间去把它真正地理解才能在以后的科研和工作中派上用场。
总而言之,刘中老师的智能控制实验这门课给我带来了前所未有的体验,锻
炼了自己自主学习的能力,更重要的是通过这门课拓展了自己的视野。
整个课程的模块设置都很棒,没有什么建议。再次感谢刘老师带领我们了解了智能控制领域多彩的世界!
正在阅读:
智能控制实验报告-北航研究生课程-机械臂回零+神经网络+模糊控制03-17
三聚磷酸钠食品添加剂07-28
基于网络的切换系统综述04-14
《归去来兮辞》详细教案 - (1)09-29
初中英语家庭作业设计的理论基础及原则10-26
【完整版】2022-2025年中国电梯门及控制系统行业市场深度评估及04-11
微机原理复习03-29
我爱家乡的秋水湖作文450字07-11
人教版小学语文四年级下册第五单元练习题10-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 神经网络
- 智能控制
- 北航
- 模糊
- 研究生
- 课程
- 实验
- 控制
- 报告
- 机械
- 天堂伞市场分析
- 介绍讲师的主持词
- 2018年八年级科学下册期末复习第2章专题复习有关化学式的计算技
- 如何写好听课记录
- 电路图练习题II(经典练习题)
- 初三语文教案-九年级语文复习作文结构完整 精品
- 2、联合工艺在焦化LPG脱硫中技术-王义锋
- 2017-2022年中国废纸浆行业监测及投资决策咨询报告 - 图文
- 毛概期末考试复习资料
- 大型卖场数据库商函
- 2012年上海高考数学(理科)试卷(全Word版,填空、选择完美解析
- 室外活动游戏
- 心理健康与情修炼商
- 第3章作业参考答案
- 西门子6SE70系列变频器维修实例
- 初中地理图像教学策略研究报告
- 《运动生理学》试题库
- 银行实习报告2013年
- 网络舆论监督问题
- 小学数学口算题卡100以内的加法和减法练习100道及答案