当前位置:首页 期刊杂志

基于FPGA的电机系统故障检测系统

时间:2024-08-31

胡秀琴, 康戈文

(电子科技大学自动化工程学院,四川成都 610054)

0 引言

现代机械设备的结构越来越复杂,故障诊断技术显得尤为重要,其意义在于能有效地遏制故障损失和降低设备维修费用[1]。本文设计了一套电机故障的信号采集与处理装置,将电机转轴的转速信号通过编码器转化为数字信号[2],并通过电路板上的数字频率计计算信号的频率,再将该计数结果输出给上位机做后续的信号分析,利用FFT得到信号的基频率[3],结合谐波小波包得到信号的细化频率[4],两个方法结合能更准确地判断电机故障。

1 测试系统总体方案设计

该检测系统的总体设计方案如图1所示,主要由信号采集、信号处理和通讯接口组成。其中信号采集系统是将光电编码器安装在高速转动轴上,并将其输出信号接入电路板。信号预处理部分包含低通滤波电路,放大和整流电路;信号处理部分由FPGA芯片及其外围的供电电路,存储电路和通信电路组成。将光电编码器安装在旋转轴上得到一圈的输入转动信息,该信号经过信号预处理滤波,放大和整流后变成矩形波信号进入FPGA,利用SOPC Builder与NIOS II IDE为主要的软件工具计算信号高电平的宽度,并将计数结果由串口传递给上位机,通过判断高电平宽度的变化分析信号的频率,从而判断出故障的类型。

图1 系统设计框图

2 硬件电路设计

该部分主要介绍测试系统中主要的硬件电路设计。本设计主要包括信号预处理模块及FPGA及其配置芯片电路设计。

2.1 信号预处理电路

由于输入信号是带有噪音的低频信号,因此需要对信号进行预处理。该预处理模块是由LM358和LM393组成的电路,其中LM358是由两个独立的、高增益内部频率补偿的运算放大器组成,其中一个运放用于低通滤波,另一个运放用于信号放大。LM393是双电压集成电路,用于信号的整流,将信号变为规则的矩形波信号,预处理电路如图2所示。

图2 信号预处理电路

2.2 FPGA及其配置芯片

本设计采用了Altera公司Cyclone系列的FPGA——EP1C12Q240C8。 图 3为 FPGA及 其外围芯片设计的详细框图,主要由电源、晶振、UART、LCD、复位按键、PIO、串行配置芯片、FLASH、SRAM、SDRAM和JTAG接口共计11个部分组成[5]。FPGA部分是本采集系统的核心器件,完成LCD显示,SDRAM存储器,FLASH存储器和接口等的控制,并嵌入NIOS II处理器,完成系统功能[6]。

图3 硬件设计框图

3 SOPC系统设计

SOPC片上系统设计是整个系统的核心。利用Altera公司的SOPC Builder开发工具,将Altera公司提供的一些模块如NIOS II processor, Memories,uart 及IO口等,集成到一个片上系统内,定制生成一个处理器[7]。再将这个处理器添加Quartus工程中,同时添加同步模块和其它的控制逻辑,将SOPC和各模块连接起来,通过编译就得到了SOPC片上系统[8]。

本文的SOPC片上系统主要由NIOS II处理器和FLASH控制器、LCD控制器、epcs_controller、sdram和sram控制器,三态桥、通用IO、I2C控制器以及串口构成。由于SDRAM和SRAM共用地址总线,所以需要添加三态桥锁存地址信号。在FPGA内部连接SOPC的模块电路主要由一个D触发器,计数器和数据锁存器构成。图4是本SOPC系统的主要外设模块图。

图4 SOPC片上系统框图

4 软件系统设计

在这个方案中采用了NIOS II软核处理器作为SOPC的处理器,总线采用AVALON总线的方式来实现计数器功能[9]。信号从PIO口输入作为NIOS II处理器的中断输入,计数器使能信号为高电平有效,当信号上升沿到来时触发NIOS处理器中断,处理器给出计数器清零端无效信号,计数器开始计数直到计数器;当下降沿到来时,由于计数使能信号为高电平,所以低电平时不计数,在信号的下一个高电平到来时,锁存计数结果并读取数据,将计数器清零,锁存信号置为无效,同时开始下一轮的计数。为方便后续的数据处理,所选择的光电编码器旋转一圈的脉冲数为1024,因此高速轴旋转一周可得到1024个计数值。计数数据通过UART输出,亦可通过高速USB输出给上位机做进一步的信号分析。这个方案的好处在于NIOS II处理器对数据的强大处理能力,保证了系统能完成比较复杂的数据处理任务。主要函数[10]如下:

中断函数:

static void cnt_plus_interrupts(void* context, alt_u32 id)

{

IOWR_ALTERA_AVALON_PIO_EDGE_CAP(COUNTER_DETECT_BASE,0x0); IOWR_ALTERA_AVALON_PIO_DATA(OEN_BASE,0x1);data[k]=IORD_ALTERA_AVALON_PIO_DATA(DATA_IN_BASE);//read data

k=k+1; IOWR_ALTERA_AVALON_PIO_DATA(CLEAR_BASE,0xf);//clear

IOWR_ALTERA_AVALON_PIO_DATA(OEN_BASE,0x0); IOWR_ALTERA_AVALON_PIO_DATA(CLEAR_BASE,0x0);

}

主函数:

int main(void)

{

while(1 )

{

if(k==number)

{

IOWR_ALTERA_AVALON_PIO_IRQ_MASK(COUNTER_DETECT_BASE,0x0);//关 中 断IOWR_ALTERA_AVALON_PIO_DATA(CLEAR_BASE,0xf);//clear

for(int i=0;i<number;i++)

{ uart_tx(data[i]);

printf("%x ",data[i]);

}

k=0;

}

}

return 0;

}

试验

由于系统时钟50MHz,具有极高的精度,本身就是良好的测试信号源。所以我们将50MHz时钟作为测试信号源.采用分频系统时钟的方法来获取各种频段下的测试信号源。分频器的分频因子不同,所得到的测试信号不同,为了验证本设计的正确性,设计了一个2分频的时钟分频器,分频器输出的不同位数就代表了不同的频率。本计数器的计数原理如下:系统的晶振为clkF=50MHz,作为分频器与计数器的时钟信号。分频器的输出信号Q[n]的频率为

计算高电平的宽度公式为

计数结果的输出形式为十六进制。表1为测试结果及误差分析,每个频率下任取10数据做误差分析。

表1 测试结果及分析

800,800,800,800,800,12.2K 800 800 0 800,800,800, 800,800 400,400,400,400,400,24.4K 400 400 0 400,400,400, 400,400 200,200,200,200,200,48.8K 200 200 0 200,200,200, 200,200

测试结果表明,低频段误差较大。随着待测信号频率的升高,误差不断地变小,当信号频率达到12kHz以上时,测试结果没有误差,对于高频信号,该系统具有很高的可靠性和高精度性。

5 结论

该测试系统是基于NIOSⅡ的高精度频率计,充分利了FPGA内部硬件资源,在FPGA内部构建SOPC片上系统,采用VHDL编写底层模块,C语言编写控制程序,大大降低了外围硬件电路的复杂性,使硬件结构更加简单,电路性能更加稳定可靠。由以上测试数据可知,该系统应用在高速转轴上的误差很小,通过在实验室电机的高速转轴上的实验,本测试系统已经在软件和硬件上得到了实现,验证了该测试装置的正确性。

[1]曹龙汉. 柴油机智能化故障诊断技术研究[D].重庆:重庆大学,2001.

[2]李秀娟.光电编码器信号处理及接口电路设计[J].南京航空航天大学学报,1993(25):130-134.

[3]吕武,申萍,王小方.FFT在机车故障检测记录系统中的应用[J].电力机车与城轨车辆,2006,29(1):38-40.

[4]李宏亮.谐波小波的时频特性分析及其在故障诊断中的应用[J].机械强度,2000(22):81-85.

[5]钟德胜.基于SOPC的TD-SCDMA同步时钟设计[D].成都:成都电子科技大学,2009.

[6]刘德亮,王竹林,尉广军. 基于FPGA高精度频率测量仪的设计[J]. 河北工业科技,2010,27 (1):29-31.

[7]李化,王永丽.NIOS系统与计算机串口通信的实现[J]. 西南民族大学学报,2008,43(4):864-867.

[8]杨秀增.基于Niosl l的自适应高精度频率计设计[J]. 动化与仪表,2009(7): 13-16.

[9]杨焕峥.嵌入式高精度数字频率计的设计[J].长沙航空职业技术学院学报,2007(9):64-67.

[10]周立功.SoPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2006.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!