测得左右两边PWM输入值为如下:
图4.1 左轮PWM波形
图4.2 左轮PWM数据
图4.3 右轮PWM波形
图4.4 右轮PWM波形
众所周知,脉宽调制是指用改变电机电枢电压接通与断开时间的占空比来控制电机转速的方法。当然改变占空比有很多方法,但是最重要的还是改变电压的平均值,以上两张图都有可能进行使用,一般而言采用第一种方法有上升也有下降即导通后关断有反向电压阻拦,但是第二种方法是导通后直接关断,导致了第二种的平均电压比第一种的平均电压略高,也就意着电机转速更加快速,这才导致了左右轮的不平衡。最终通过检测正常运行的移动机器人的运动波形,获取得到第二张图为故障状态。主要故障情况经过多方检测和判断,认为是由于二极管的反向导通故障导致左右两轮产生了不同的波形。
4.3 基于灰色关联性的Matlab
4.3.1 Matlab程序框图
图4.5 matlab程序框图
4.3.2 Matlab程序
请见附录三
Wyfinal需要一个输入变量,为2*N的矩阵,即为移动机器人左轮和右轮转速。将把数据与数据库的变量一起进行灰色关联理论计算。根据计算出的结果,选取其中最大的关联系数,认为移动机器人处于该状态下。程序基本如下:
首先获取矩阵的长度和宽度,判断是否为2*N的矩阵,如果不符合矩阵特性,提醒输入函数错误,并且中断程序。
其次根据数据需要比对的数组的长度,循环比对。首先是使用第一行的数据作为模板,第2,3,4行与第一行的差值进行比对,之后获取差值的最小最大值,获取一张列表数据。
最后通过公式 获取不同状态下的关联系数,并且根据关联度的数据的直接判断出移动机器人状态。
4.3.3 Matlab在实际中的应用结果
通过之前采集得到的数据,使用MATLAB编程实现灰色关联性的判断,具体步骤请参考4.1节。由于左右两轮的数据具有非线性的状态,与正常直线运动时的状态有很大的区别,可以通过采集得到的左右两路的数据来判断机器人是否是故障状态。
在程序中数据通过滤波化处理,使得曲线更加趋于平缓,左右轮的差值更为明显,并且保持一种几乎恒定的数值。如下图所示:
图4.6 滤波化后得到的参数图形
同时在矢量化的时候采取左右轮的最小值数据作为矢量,更加能够体现出左右轮之间的差值变化量。
经过不断地验证数据都可以判断系统是否为故障状态,详细结果如下。
不走直线时的一种标准故障状态模型数据如下:
表4.1 不走直线的故障状态数据(x(1)和x(2)的单位为cm/s*10^-4)
序号 1 2 3 4 5 6 7 8 9 10
X(1) 45468 45551 45633 45799 45799 45799 45633 45551 45633 45633
X(2) 43563 43480 43480 43480 43563 43563 43563 43646 43480 43729
序号 11 12 13 14 15 16 17 18 19 20
X(1) 45882 45633 45799 45716 45882 45633 45633 45551 45633 45716 Matlab基于灰色关联理论的移动机械人故障诊断方法研究(18):http://www.youerw.com/zidonghua/lunwen_825.html