史宏亮 张 东 刘春来
(北京自动测试技术研究所 100088)
20世纪60年代以来,国内外学者已对模拟电路故障诊断提出了传统故障诊断方法和现代故障诊断方法两大类诊断办法。传统电路故障诊断通常利用电路原理分析及相应物理量的计算,通过电路对正弦信号、阶跃信号、方波信号等典型信号的暂态响应或稳态响应的情况分析诊断可能存在的故障[1]。传统模拟电路故障诊断方法主要有:故障字典法,元件参数辨识法,故障验证法等;现代模拟电路故障诊断方法主要是模式识别法,不需要对电路原理进行分析,采用的技术包括神经网络故障诊断法、专家系统故障诊断法、模糊故障诊断法、小波变换故障诊断法等[2]。
采用如神经网络、模糊、小波变换等故障诊断方法,在MATLAB仿真环境中对其算法进行设计和研究是比较方便的,而从算法到实际代码的生成还有一个中间过程,这个代码如要开发人员自己编写的话,其工作量是比较大的,首先要求开发者对算法自身的理解要有一定深度,那么在这一由理论到实际的过程中,近年来出现的一种叫做快速原型方法,是算法在仿真环境中进行快速验证的很好解决方案。
快速原型(Rapid Control Prototyping,RCP),即控制系统的快速功能原型测试。是指在产品开发的初期,将工程师开发的算法下载到计算机硬件平台中,通过实际I/O与被控对象实物连接,用实时仿真机来模拟控制器与实物相连进行实时仿真,检测与实物相连时控制算法的性能,并在控制算法不理想的情况下可以进行快速反复设计以找到理想的控制方案;在确定控制方案后,通过代码的自动生成及下载到硬件系统上,形成最终的控制器产品,并通过对这个功能原型装置的实物实验来检验和修改设计。快速原型仿真与半实物仿真(HILS)这两方面应用的区别是:前者的仿真对象是控制器,实现了控制器的功能;而后者仿真对象是设备或环境,实现了某一设备或整个外环境的功能。快速原型系统真正使设计人员不必为研发各阶段的功能检测实验环境而烦恼,减少设计过程中信息交流和共享中存在的困难,可以将精力更多集中在产品功能和品质的研究上,而不是枯燥的手工编码工作上[3]。
实时混合仿真平台是结合 MATLAB 实时仿真机制RTW(Real-Time Workshop)工具箱,并在 RTWT (Real-Time Windows Target)工具箱提供的实时内核的支持下,实现的实时仿真。
RTW是MATLAB图形建模、仿真和样机开发环境Simulink的一个重要功能补充模块,是基于Simulink的代码自动生成环境。它能直接从Simulink的模型中产生优化的、可移植的和个性化的C代码,并根据目标配置自动生成多种环境下的程序,在硬件上运行动态系统模型,同时还支持基于模型的调试。当用户在Simulink环境下建模,并得到较满意的仿真结果后,可利用RTW针对某种目标机来创建整个系统或是部分子系统可下载执行的C代码, 并结合一个快速原型化目标(例如RTWT目标)与用户的物理系统连接在一起,使用Simulink模型作为连接物理目标的接口,利用生成的代码在实时环境中测试与验证自己的设计。
RTWT是MATLAB 提供和发行的一个基于RTW体系框架的附加产品,它可将PC机转变为一个实时系统,其目的是引入一种快速原型设计的方法,用于控制器的实时测试和开发[4]。在这个环境里,一台PC机既作为宿主机,又作为目标机存在。RTWT应用一个实时内核来保证应用程序的实时运行,实时内核运行在CPU的最高优先级,利用PC的内部时钟作为自己的时间信号源。由于目标应用程序被编译为具有平面存储模式(flat memory model)Windows NT应用程序,提供了完全的32位功能,无须在16位内存段与DOS扩展器间进行切换,因而执行效率高,具有相当快的运算速度,这样就可以在较短的时间内计算仿真模型,从而可以满足实时系统对时间的要求。对于较小的Simulink模型,其采样频率可以达到10KHz。
RTWT支持多种做作的驱动程序库,从Simulink移植到外部硬件的参数可以在系统运动过程中进行在线调整,所以用其进行实时控制系统开发时,周期短、费用低、效率高。RTW和RTWT的关系以及工作原理如图1所示。
图1 实时窗口目标工作原理框图
系统中虚拟控制器部分由 MATLAB 结合 Simulink 工具箱实现,以Simulink模型作为连接物理目标的接口。Simulink的外部模式与 RTWT 结合提供了一个图形用户接口。.利用RTW将搭建好的Simulink模型自动转换为C代码并编译成可Windows NT可执行程序,在底层运行,与RTWT通过对应的驱动程序连接,完成系统的实时采集和故障诊断工作。
PCB故障检测系统主要包括主控IPC、测试仪器(硬件模块构成)、系统软件、测试连接装置等部分。系统整体框图如图2所示。
图2 功能测试系统硬结构框图
PCB故障检测系统的硬件平台由主控计算机、测试仪器、通用测试接口连接装置等部分构成。主控计算机完成测试控制、故障诊断、控制用户界面、和数据显示系统管理等任务。测试仪器通过测试总线与主控计算机连接,在主控计算机的控制下完成测试任务。通用测试接口连接装置由通用接口电路、接口适配电路和连接装置构成,通过信号转接等将被测电路板的信号接入测试系统,必要时还需要对信号进行调理、变换。
在故障诊断算法设计和仿真验证阶段,则主要利用MATLAB的快速控制原型RCP方式来实现算法参数的不断优化和调试,以达到更好的诊断效果。其中最主要用到的工具箱就是RTW和RTWT对象。
Simulink 提供了各种各样的模块集合,在 Simulink 提供的图形用户界面上,只要进行简单拖拉操作,就可利用这些模块集合构造出复杂的控制器模型。此外 Simulink 还提供了诸如模糊逻辑工具箱与神经网络工具箱之类的高级算法控制工具箱,利用这些工具箱,结合其他模块,可搭建出各种与之相关的故障诊断算法,如模糊诊断方法、神经网络诊断等。利用工具箱的图形用户界面编辑控制器,可方便地设计故障诊断器的框图式系统,这使系统的算法设计过程图形化,更为简单和直接。
(1)在Windows 2000下安装RTW 5.0需要系统首先安装MATLAB 6.5.1和Simulink 5.1,还要安装RTWT需要的首先安装Watcom C编译器,并在定义Watcom环境变量,定义Watcom环境变量的方法是在autoexec.bat中加入如下设置:
set WATCOM=<编译器安装路径>
重启计算机后在MATLAB命令行窗口键入mex–setup,根据提示设置Watcom C编译器为默认编译器。
(2)在MATLAB命令行窗口键入rtwintgt–setup,对于“是否安装RTWT内核”问题,键入Y;
(3)再次打开MATLAB,打开Simulink,并新建一模型文件,保存为PCBtest.mdl;
(4)在模型库中找到Real-Time Windows Target,将Analog Output、Analog Input和Scope拖到新建的模型文件中;
(5)双击Analog Input,在弹出的窗口中点“Install new board”按钮,找到所用采集卡的驱动程序,确认后,出现采集卡输入端口调整窗口,可以调整和确认采集卡的地址和各通道的输入电压范围;例如对于NI公司的板卡,驱动选择过程如图3所示。
图3 RTWT下NI板卡驱动安装示例
(6)在PCBtest.mdl模型文件的菜单中选择Simulation→Simulation Parameters→Solver→Solver options中Type对应的下拉框中选择定步长(Fixed-step),定步长大小设置为0.001,模式选择为单任务(Single Tasking);
(7)Tools→RTW Options中系统目标文件,利用浏览(Browse)按钮选择实时视窗目标所对应的rtwin.tlc;
(8)按下Tools→RTW Build按钮,进行代码生成和目标文件的创建;
(9)在Simulation菜单选择External;
(10)在Simulation菜单下,确认Connect to target选项;
(11)在Simulation菜单下,单击Start real-time code。即开始快速控制原型法对系统进行测试。
本文提出一种将快速控制原型应用到PCB故障诊断系统中的方法,利用实时视窗目标(RTWT)可方便完成诊断算法的验证。确定好相应的诊断策略后,还可利用RTW自动生成代码,将控制器对应的代码嵌入到用C/C++编写的故障诊断软件中,进而完成快速原形化控制和设计到代码的自动化。
[1]万喜新.基于信息融合技术的模拟电路故障诊断方法研究[D].湖南大学,2006.
[2]王启宁,李永红.基于人工智能算法的印刷电路板测试与诊断系统研究[J].山西电子技术,2011,(1):85-87.
[3]许志,唐硕.基于RTX实时环境的快速原型系统设计[J].西北工业大学学报,2010,28(2):176-181.
[4]李永富,杨鹏,张燕等.基于MATLAB的高级过程控制实时混合仿真平台[J].系统仿真学报,2007,19(18):4150-4153.