8 0.1014 0.8433 0.017 0.6619 0.0952 0.3322 0.7779 0.6706 0.6655 0.1097 0 0 1 1
9 0.8923 0.433 0.7112 0.6605 0.9762 0.6439 0.1561 0.4911 0.5174 0.2633 0 1 0 0
10 0.2239 0.1792 0.684 0.2731 0.8615 0.0498 0.0294 0.6532 0.4189 0.9319 0 1 1 1
表5.5.1 RBF神经网络学习样本
第二步:利用newrb(P,T,Goal,Spread,MN,DF)建立径向基神经网络函数,其中,P为输入向量,T为目标向量,GOAL为圴方误差,默认为0,SPREAD为径向基函数的分布密度,默认为1,MN为神经元的最大数目,DF为两次显示之间所添加的神经元数目。在创建函数时,最重要的是,其中最重要的是径向基函数分布常数参数(spread)的选取。spread为径向基函数的扩展系数,默认值为1.0。如何选择spread的值非常重要,其值应该足够大,使径向基神经元能够对输入向量所覆盖的区间都产生响应,但也不要求大到所有的径向基神经元都如此,只要部分径向基神经元能够对输入向量所覆盖的区间产生响应就足够了。spread的值越大,其输出结果越光滑,但太大的spread值会导致数值计算上的困难。这里,通过枚举法,确定spread值为0.9。
第三步:判断哪个模块中发生了故障。
实验结果表明:第1组数据中机器人在模块2上发生了故障;第2组数据中机器人在模块1、模块3上发生了故障;第3组数据机器人在模块2上发生了故障;第4组数据机器人在模块1上发生了故障;第5组数据机器人没有发生故障;第6组数据机器人在模块1、模块2上发生了故障;第7组数据机器人在模块1上发生了故障;第8组数据机器人在模块2、模块3上发生了故障。
图5.5.1 RBF神经网络学习曲线
测试结果输出如下:Y= =
0 0
0.9237 1.0264
-0.0474 1.0164
-0.0135 1.0047
由2组数据可看出:第1组数据中机器人在模块2上发生故障;第2组数据机器人在模块1、模块2、模块3上发生的故障。这与实际实验所得数据相符。
第四步:判断机器人在各个模块上发生哪些故障
Fault-0:正常状态 没有发生任何状态
Fault-1:系统故障 模块内部出现故障
Fault-2:传感器故障 用于测量信息的传感器发生故障
Fault-3:混合故障 系统故障和传感器故障同时发生
由实验所得,各个模块的实验数据归一化整理之后得到下表: 基于神经网络的移动机器人的故障诊断方法研究(18):http://www.751com.cn/zidonghua/lunwen_2256.html