基于扭矩信息的运动系统故障检测装置
while(1) {
if(URXD0Flag) {
for(j = 1; j = 100;j++) {
sl = signal[i] 0xff;
sh = (signal[i++] 0xff00)>>8;
Uart_SendByte(sl);
Uart_SendByte(sh);
}
URXD0Flag = 0;
}
if(i >= 5000)
break;
}
5 算法验证
这里以X-Y运动平台为实验对象,设计了系统故障实时检测实验,验证故障检测算法的有效性。首先通过实验得到X-Y平台正常工作时电机的电流信号TN,然后在平台运动过程中给平台施加一个额外的阻力(模拟故障发生的情况),得到电机输出电流信号为TF。通过对这两种情况下的电流偏差信号TE(TE=TN-TF)进行分析,可以从中提取出故障信号。
S3C44B0X通过ADC采集到的TN,TF信号,以及TE随时间的变化曲线分别如图2和图3所示。
图 2: TN,TF 变化曲线图 3: TE 随时间变化曲线
从图3可以看出,TE信号中存在较多的干扰信息,为了准确无误的检测出其中的故障信号,就应采用某种滤波算法对TE进行处理,从而将故障信号提取出来。图4和图5分别是采用NEO和多步SNEO(m=50,b=50)两种方法对TE进行处理,得到的信号曲线。
图 4: 利用NEO 对TE 进行处理的结果曲线图 5: 利用多步SNEO 对TE 进行处理的结果曲线
比较图4和图5可以看出,多步SNEO能够更好的消除干扰噪声的影响,将故障信息成功地提取出来。但是利用SNEO会引入一定的延时,从而造成故障被检测出时间的滞后。从式(5)和式(6)可知,当m=50,b=50,采样频率为500Hz时,滞后时间为:
6 结论
本文利用非线性能量算法对电机电流偏差信号进行分析,能够及时发现运动控制系统中发生的各种扭矩相关故障,从而提高系统故障检测环节的准确性和及时性。可以在此基础上设计系统容错环节,使系统的安全性和可靠性得到更好的保证。
评论