1 引 言
某型导弹舵机系统是在导弹飞行过程主动段的执行机构,当导弹在主动段飞行时,在控制系统的控制下,舵机带动燃气舵偏转,改变主发动机喷出的燃气偏转方向,产生控制力矩,控制导弹按照预订的弹道飞行。该舵机为电动液压式舵机,是集精密机械、电子、液压、自动控制等技术于一体的复杂设备,其输入的信号有俯仰、偏航和滚动控制信号,由于其复杂的逻辑控制电路,信号交叉传输,转换节点繁杂,加上设备经常处于运输颠簸野战状态,工作环境恶劣,因而设备较容易出现各种故障。目前常用的舵机检测手段都是传统的手动方式对舵机的基本状态参数进行检测,由于检测仪通常采用性能单一的电路结构,功能单一,通用性差,操作繁琐,易人为出错,而且检测项目十分有限,也不具备故障诊断功能,难以满足战场快速检测和维修的需求,要完成此项工作通常还需配备其他的检测仪器,如示波器等设备。为此,设计开发一种小型、通用和智能的,能对舵机系统进行全面故障检测与诊断,适合野外条件下使用的测试仪具有十分重要的意义。
该系统采用嵌入式计算机PC/104,PC/104与PC/AT体系结构完全兼容,大小只有90mm×96mm,但它几乎集成了普通台式PC机的所有功能,并与之兼容,因此在PC机上开发的程序可以直接在PC/104 CPU模块上运行,与单片机系统相比省去了专用的开发工具,而且维护方便。PC/104采用模块化设计,硬件电路设计简单,减少了开发周期。因此在本系统中我们采用嵌入式计算机PC/104,与普通的工业控制机相比,PC/104具有如下特点[1]:
● PC/104模块与PC机软、硬件完全兼容,可以利用现有的较丰富和成熟的硬件、软件开发工具及方法、设计知识等资源,开发周期短,成本低。
● PC/104模块体积小,功耗低,无需散热,可层叠,具有系统级的性能,芯片级的大小。
● 模块之间采用独特的纵向层叠或侧向接插的结合方式,模块层叠后四角还有支柱和螺钉固定,可靠性高,配置灵活方便,便于故障的排除和修理。
● 外围模块齐全,用户可以选择各种不同的功能模块,设计满足不同需要的专用系统。
● 工作温度范围宽,一般在0~70度。
● 大多数模块采用单+5V电源,降低了系统对电源的要求。
2故障诊断测试仪实现功能
该测试仪具有以下功能:
(1)测试功能
可对舵机系统的性能进行综合测试,测试内容包括综合测试、单项测试内容。可根据需要进行连续测试或单步测试;对测试结果可进行自动诊断判别;对测试数据可显示、打印记录,或存入数据库以便对舵机系统进行质量监控。
(2)自检功能
系统具有自检功能,自检范围覆盖全部测试通道。
(3)自诊断功能
系统具有自诊断功能,主要故障可判断到电路单板。
(4)开发功能
设备具有良好的开发功能,经开发可完成对通用舵机系统的性能测试。
3 系统硬件设计
3.1硬件框图[4],如图1所:
图1 系统硬件组成原理框图
系统核心模块采用SBS公司的SCM/SuperPT2,它采用Geode™ MMX™ with I/O Companion CX5530A™的CPU,16 KB L1反写缓存;两个串口,波特率可由软件控制,其中COM2可设置为RS-485方式;一个并口;硬件平台关键是PC/104总线的扩展,通过数据缓冲和相应的逻辑控制,扩展出符合PC/AT协议的PC/10总线,它是扩展其他外设的基础。系统在PC/10总线基础上扩展了2M Flash、键盘接口、并口、显示屏和通用串行码采集接口。采集模块选用SBS公司的SysExpanModule/ADT600,此模块具有12位的分辨率,最大100KHz的采样率,模拟输入共有16通道,最大±10V输入;4通道模拟输出;24通道TTL/CMOS兼容I/O;3个16位、最大10MHz的定时/计数器;信号条理部分主要是将待测试信号变换成适合ADT600采集的信号[2]。
3.1.1 定时/计数器的配置
系统要求输出频率为5~13Hz的信号,则周期为200ms到80ms左右,如果采取1ms定时进行D/A转换的办法,最小的一个周期输出80个点,经过实际测试,能够满足测试对象对模拟激励信号的要求;另外在采集测试对象执行机构的控制信号时采用1ms定时采集的办法,也能满足最后数据判断的要求,因此定时器定时时间为1ms(即定时器的输出时钟为1KHz)。
3.1.2 D/A模块
在本设计中,我们选择SBS公司的SysExpanModule/ADT600数模转模块[2]。它是一种双12位电流输出的DACS(数据收集与控制系统),具有以下特点:较宽的工作电压(12V~15V);抗电源电压干扰性能好;紧凑的封装形式;低增益误差。它可以和大多数的微处理器配合使用,能够兼容TTL、CMOS电平。通过独立的参考电压和反馈电阻,还能够提供四象限的乘法器功能。其内部主要包括三个部分:控制逻辑电路、A路数模转换电路和B路数模转换电路。其中逻辑控制电路通过简单的三个控制信号:CSA,CSB及WR来选择相应的模数转换器,同时锁存需要转换的数据。A路数模转换电路的基本控制原理为:通过CSA与WR控制信号,将12位的转换数据一次锁存入A路转换电路的数据寄存器中,A路转换电路开始进行数模转换,将转换后的模拟量输出。B路转换电路的控制原理与A路类似。
3.1.3 A/D模块
A/D模块将舵机测试仪检测装置输出的反馈信号转化为数字量以便于计算机进行处理。系统的控制精度在很大程度上取决于检测反馈装置的精度。根据检测的反馈参数和系统性能指标要求,本设计中采用SBS公司的SysExpanModule/ADT600模数转换模块[2]。它是一个12位逐次逼近型快速A/D转换器,转换速度最大为15微秒。ADT600片内配有三态输出缓冲器电路,因而可以直接与各种典型的8位或16位处理器相连,而无须附加逻辑接口电路,且能与CMOS及TTL电平兼容。
3.1.4 俯仰、偏航和滚动控制信号测试
舵机测试中的最重要内容就是看执行俯仰、偏航和滚动控制信号测试的结果是否与理论的控制结果一致。导弹在主动段飞行过程中执行俯仰、偏航和滚动修正的是通过两对电动机的控制开关来改变姿态控制发动机的喷出燃气方向,所以该系统就必须采集4路电机开关的控制信号。ADT600集成了uPD71055可编程外围接口,用PA0~3来采集电动机的开关信号,采用1ms中断采集一次信号,最后将采集的控制信号与标准的控制信号进行比较,找出在切换时是否存在超前或滞后问题,以此来决定舵机性能的好坏。
3.1.5 RS-485通信
本测试系统要与测试对象进行通信,为保证数据传输的可靠性,我们采用RS-485通信。系统在设计中采用两个串口COM1、COM2,其中COM2可通过跳线设置为RS485方式[3],其应用电路如图2所示。
图2 485通讯等效电路
4 系统软件设计
系统测控软件完成下述功能:
(1)控制测试系统进行自检和故障诊断;
(2)控制数字I/O卡、A/D采样卡等进行数据采集;
(3)输出供测试用的控制信号、时钟信号、模拟信号;
(4)对舵机系统进行测试,并对测试结果进行分析判定,将测试数据与判定结果写入测试表格或数据文件中,同时在屏幕上显示;
(5)故障诊断
由于舵机系统的复杂性以及修理人员对其认识有限,性能检测完毕,修理人员也很难确定故障部位。为此特别增加了此项功能,充分利用自检的信息,准确地提示故障部位,将故障部位缩小到板级甚至主要元器件上,为用户提供了极大便利。
(6)提供打印、浏览测试文件功能,以便测试结果可永久保存和随时查阅。
系统测控软件是在Windows98环境下运行由Borland C++ Builder6.0语言编写,测控软件由主菜单程序、自检程序和测试应用程序组成。该软件采用模块化结构,各程序块之间相互独立、自成系统。其软件模块组成如图2所示。
图3 系统软件模块组成
单项测试、综合测试管理模块主要负责对智能数据采集卡和通用信号测试卡(板)等控制使用管理,用来测试舵机的各种性能指标参数、波形及时序,并实现对测试信号的记忆和分析。
诊断信息获取管理模块由数据采集,征兆数据库和交互获取三部分组成,它通过各种方式获取与诊断推理有关的信息,如自动获取、交互获取等。有些信息可通过自动测试平台自动获取,而另一些难于获得或需经过专家分析后才能获得的信息则必须通过交互方式得到[4]。
故障诊断模块由框架推理、模型推理和规则推理三部分组成。它根据获得的故障信息首先进行框架推理,启动故障征兆对应的框架,然后启动相应的故障搜索树模型框架,进而进行规则推理,直至将故障定位到可更换的单元。
数据库管理模块主要是将每次故障诊断与维修的结论生成维修情况报告表,如果故障征兆数据库中没有本次故障征兆,则将本次故障作为事例存入事例数据库。
由于系统采用的是主要由软件来控制的方式,因此这部分是此次设计的重点。进行软件控制的方式好处是易于修改,出现问题后易于发现与解决,从而具有较高的应用前景。系统的软件流程如图4 所示。
4 程序流程图
以下是Windows98环境下运行由Borland C++ Builder6.0语言编写源程序的主要部分:
以其中舵机安控特性测试为例,主要程序如下:
//-----------------------------------------------------------------------
void __fastcall TAnkong::TestClick(TObject *Sender)
{
char buf[20];
Test->Enabled=false;
RichEdit1->Clear();
this->Refresh();
Ankongtest();*--------安控特性测试-------*/
sprintf(buf,"1舵: %7.3f deg",OneAngel);
RichEdit1->Lines->Add(buf);
sprintf(buf,"2舵: %7.3f deg",TwoAngel);
RichEdit1->Lines->Add(buf);
sprintf(buf,"3舵: %7.3f deg",ThreeAngel);
RichEdit1->Lines->Add(buf);
sprintf(buf,"4舵: %7.3f deg",FourAngel);
RichEdit1->Lines->Add(buf);
if(DJNumber>4)
{
sprintf(buf,"5舵: %7.3f deg",FiveAngel);
RichEdit1->Lines->Add(buf);
sprintf(buf,"6舵: %7.3f deg",SixAngel);
RichEdit1->Lines->Add(buf);
}
Test->Enabled=true;
}
//-----------------------------------------------------------------------
软件的实现界面如图5所示:
图5 软件实现界面
5 结束语
本文作者创新点:首先、成功采用了嵌入式计算机PC/104设计故障诊断测试仪,系统结构小巧紧凑,性能稳定可靠,控制简单高效,人机界面友好;其次、设备的模块化特点可以实现快速故障检测和诊断功能;第三、开放式设计可以具有良好的通用性和扩展性,能方便地推广到其他舵机上使用。
参考文献:
[1] SCM-SPPERPT2 技术手册[M] SBS科技 http//:www.sbs.com.cn
[2] SysExpanModule/ADT600 技术手册[M] SBS科技 http//:www.sbs.com.cn
[3] 郑辛等.平台惯导系统故障诊断专家系统研究[J] 北京:战术导弹技术,2003,No1:20-24
[4] 夏万林、李擎等.基于嵌入式计算机PC/104的某火箭弹自动测试仪[J] 北京:微计算机信息,2006,No2: 109-110