首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的机械振动台自动定中系统

基于FPGA的机械振动台自动定中系统

 0 引言

  在力学环境试验中,振动试验应用最为广泛,尤其是国防科技应用中的火药装填,即通过一定的振级和时间将火药填实,其工作过程为将火药罐体固定于机械振动台上,然后设定相应的振动频率及振动幅度,当到达设定的振动条件后,火药便通过导向槽向罐体内充填。此后,随着时间的增加,振动上火药加罐体的重量随之增加,而机械台台面安装于空气弹簧上,它随着台面上的重量的增加会下降,如果下降超过机械台所能要求的能力,就可能出现事故,因此要求有一套自动定中系统,在机械台静态和振动状态均能自动保持中间位置。

  1 总体方案


  要满足机械台台面静态和振动状态均能自动保持中间位置,用分立器件判断台面极限位置的方法往往难以适应。解决此问题的方案有两种:一是采用单片机系统,二是采用嵌入式系统。单片机系统虽然价格低廉,使用方便,但是程序容易跑飞,且编程及修改较为麻烦;而嵌入式系统中,基于CPU的嵌入系统价格较贵。为此,本文选用了可编程逻辑器件(FPGA),由于FPGA具有丰富的可编程性与丰富的I/O引脚,因而其在数字系统中的应用越来越广泛。如同自行设计集成电路一样,利用FPGA可节省电路开发的费用与时间,因此,本文提出了一套基于FPGA的嵌入系统来实现自动定中,其系统方案如图1所示。

  图中,光纤一和光纤二将振动的位置信号传递给系统,然后由系统判定台面是处于静态还是动态,再判定台面偏高还是偏低,分别处理,最后通过两个电磁阀来对机械台进行充气或放气。

  2 电路组成


  系统运行时,会有以下几种情况:一是在系统正常振动时,光纤一和光纤二输出的波形为占空比为50%且方向相反的一对方波信号;二是当台面位置发生变化后,振动时两个光纤输出的脉冲占空比会发生变化。当台面静止或台面受到其他因素而低于4 Hz振动时,两个光纤输出的脉冲几乎为一个恒定的电平。因此,需要系统根据脉冲情况自动分辨,本文在FPGA内设计了三个模块,即分频模块,信号触发模块,信号比较及输出模块。

  2.1 分频模块


  分频模块共输出四种分频信号:参考时钟、预读信号、锁存信号、触发信号。其中参考时钟用于信号触发模块中信号占空比的测量计数,考虑到计数器的容量,我们取参考时钟为100 kHz。预读信号read用于启动比较模块中静态还是动态信号的判定。锁存信号lock用于对比较模块输出的继电器控制状态信号的锁存,并将其保持到下一次比较,以使模块输出不同的继电器控制状态信号。触发信号trig用于启动触发模块及对信号比较模块中的计数器清零,以判定一定间隔时间后的台面状态变化情况。其时序如图2所示。

  2.2 信号触发模块


  台面位置发生变化后,在振动时,两个光纤输出的脉冲占空比就会发生变化。因此需要测量两路信号在一个振动周期内的高电平宽度,其测量电路如图3所示,其中上半部分用于脉冲串一的高电平测量,下半部分用于脉冲串二的高电平测量。

  信号触发模块工作流程是在触发信号trig上升沿到来时打开触发器,以等待两路待测信号上升沿到来;当任意一路信号(假设第一路信号signall先到来)的上升沿到来后,将该路计数允许与门打开,并将参考时钟传递给下一级(即比较模块),然后将该路触发器关闭,同时打开第二路信号的关断触发器。因此,当第一路信号signall的高电平过去后,随着第二路信号signal2上升沿的到来,系统将关断第一路计数允许与门,停止计数,同时打开第二路计数允许与门,开始第二路信号的高电平宽度测量。第二路测量原理同第一路,最后再输出两路信号高电平宽度测量完成信号。由于触发器的关断,每次触发仅将一个振动周期内的两路信号的高电平宽度转换为参考时钟个数,从而保证了计数的准确性。

  2.3 信号比较模块


  信号比较模块的作用是判定台面是处于静态还是动态,以便根据相应的计数值来输出控制字。当台面处于振动时可以通过信号触发模块来比较两路信号的高电平宽度,但是,当台面处于静止状态时,光纤就没有脉冲信号输出,也就没有上升沿允许计数,计数值也就为零。因此,可以在下一次触发信号trig到来前一个参考时钟时设计一个预读信号read,并用它的高电平来取出计数值。如果两个计数器均为零,那么台面处于静止,此时可根据两个光纤的高低电平来判断台面高度是否合适。反之,如果不为零,则通过两路高电平宽度测量完成信号状态及计数值来判定控制状态字。其关键代码如下:

  2.4 输出模块


  在预读信号read到来前一个参考时钟时,通过锁存信号lock可将比较模块输出的继电器控制状态字锁存,然后通过3-8译码器得到需要控制输出的继电器动作信号,以保持电磁阀到下一次比较模块输出不同的继电器控制状态字时再动作。其中,out3[1]为高电平时,继电器控制充气电磁阀动作,out3[2]为高电平时,继电器控制放气电磁阀动作。其电路图如图4所示。


  3 系统仿真


  图5为系统静止时,台面偏向一边时的动作状态情况仿真波形。当台面负载加重被压低后,CLK1呈现高电平,CLK2呈现低电平,此时系统充气电磁阀进行充气。

  图6为系统振动时,台面偏向一边时的动作状态情况仿真波形。当台面负载减轻被气囊抬高后。CLK1呈现30%高电平,70%低电平,CLK2则正好相反。此时系统放气电磁阀动作,进行放气。



  4 结束语


  通过实际带载测试表明,此设计方案与预期要求基本一致。由于可编程逻辑器件(FPGA)具有丰富的可编程性与丰富的I/O引脚,因此,本系统可方便的进行在线修改而不需改动硬件电路,同时具有较高的灵活性、可靠性及稳定性,而且价格低廉。 (编辑:chiying)

记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表