李 锋,杨军锋,徐 建
(中国华阴兵器试验中心,华阴 714200)
武器装备从生产、运输、装卸到储存、使用整个过程中都经历着各种复杂的自然环境和诱发环境,只有能经受各种恶劣环境条件考验的产品才是合格的产品,也才能发挥其应有的效能[1]。高温湿热模拟试验是在人工模拟的湿热环境条件下以考核试品对高温湿热环境的适应性,是武器装备必须通过的考核项目。
温度-湿度实验箱(简称湿热箱)可以很好地模拟湿热环境,其主体为一个密封金属罐,通过外围设备可以模拟真实环境中温度、湿度等环境条件。GJB150A对武器装备在湿热环境考核中的温、湿度控制精度提出了严格的要求,这就对测控系统的硬件要求相当高,既要达到要求的精度,又要及时反映系统的真实情况,同时升降温速率的要求使得实验舱内温度变化必须能够实现线性控制,这是整个测控系统中的难点[2]。基于此,设计和实现了一套用于湿热箱的湿热环境过程控制的测控系统。
测控系统硬件设计结构如图1所示。系统采用现场级响应、下位级控制、上位级管理以及远程级监控的分布式测控系统,以工业控制计算机为核心,配合以单元组合仪器及微处理器,对试验系统进行集中管理分散控制[3-4]。
图1 测控系统结构图Fig.1 Structure diagram of measurement and control system
湿热测控系统现场级由温度、湿度、转速等传感变送器组成,变送后的信号传送至下位机的智能仪表进行测量与控制。
同为现场级的还有执行机构,包括电加热器、涡轮等,它们均由下位控制级根据当前状态与设定状态的关系,以一定的算法来进行控制。
下位控制级由智能调节控制仪组成,完成对现场级执行机构的控制。智能仪表可以同时显示所控制状态参量的当前值,通过(4~20)mA的信号输出控制执行机构,达到控制的目的。
下位机同时与上位机通过RS485串口(半双工通信模式)与上位机通信,既可以将测量结果传给上位机,又可以接收上位机传输来的命令,无扰实现上下位机控制的转换。下位机同时具有硬件报警功能,当有参数报警时,可以通过硬件电路的切断保护设备。
上位管理级为工控机,工控机通过串口与下位机通信,实现数据采集与系统控制。工控机PCI插槽同时插有DI、DO、AD板,测量数字量输入、输出,以及通过AD板卡采集数据[5]。同时还可以动态监控试验状况,管理试验数据,生成各种报表、曲线以及向远程监控计算机发送实验数据。
远程监控级由局域网内远程监控计算机组成,试验过程中,作为客户端,可以接收从上位机传送过来的数据,实时监控试验的状态。
系统软件采用VC++6.0开发,功能模块均封装成特定的动态链接库或者用ActiveX控制,方便以后不需重新编译便可以升级软件功能。软件整体结构如图2所示。
图2 测控系统软件结构图Fig.2 Software structure diagram of measurement and control system
软件分为4个界面:流程图界面、实时数据界面、曲线界面以及历史数据表格界面。
流程图界面绘制了整个系统的流程,在流程图上相应的设备处显示当前的状态参数值,让使用者可以一目了然地明白整个系统的工作状况,而且还可以在本界面上实现上位机与下位机的通信,控制整个系统。
实时数据界面实时显示了系统所有状态参数当前的值。正常情况下数据以黑色显示。当有状态参数处于报警状态时,此数据以红色显示,可以很清楚看出报警的变量。
曲线界面可以绘制任一参数从开始实验到当前状态的曲线图。曲线的参数范围可以任意调节,横坐标默认是时间,也可以改为其它的参数,观察2个参数之间的函数关系。
历史数据表格界面保存了从实验开始的每个周期所有参数的值,当在实验过程中需要查询之前的任一周期的状态值时,均可从此表格中读出参数的具体数值。
采集控制模块负责与下位机通信,对下位机发送控制信号并从下位机读取测量值,主要完成串口通信部分的设计。
数据处理模块对采集的数据进行一定的处理,如对受到干扰的数据进行数据滤波,把采集到的相关数据经过运算后得到一项综合实验参数等。此模块还负责数据存盘的工作,在每个周期采集到数据的同时,通过SQL语句操作数据库实现数据的存储。当实验过程中需要查阅历史数据时,还可以从数据库中调取需要的数据。
使用socket套接字,通过UDP技术将上位机的实验数据发送至远程监控计算机。
任务调度模块负责各个模块(线程)间的同步问题。采用事件变量调度各个模块,提高系统运行效率,并通过设置临界区变量,实现对数据区的安全读写。
为了满足GJB150A中对环境试验控制精度的要求,并且对于无自平衡能力的系统,要防止超调现象的发生,本文运用专家PID温度控制策略。专家PID控制算法是建立在经典PID控制算法基础上的一种控制算法。其实质是基于受控对象和控制规律的各种知识并以智能的方式利用这些知识来设计控制器。根据偏差及其变化,可设计专家PID控制器。本文提出的控制器按以下6种情况进行设计:
①当∣e(k)1∣>M1时,说明误差的绝对值比较大。此时,应考虑较强的控制作用,即控制器的输出应该按最大或最小方向输出,以达到迅速调整误差的目的,使误差绝对值以最大速度减小。M1为设定的误差界限。
②当 e(k)Δe(k)≥0 时,说明误差在朝误差绝对值增大方向变化,或误差为常值,未发生变化。如果此时∣e(k)∣≥M2,说明误差也较大,可考虑由控制器实施较强的控制作用。如果∣e(k)∣<M2,则说明尽管误差朝绝对值增大的方向变化,但误差绝对值本身并不很大,可实施一般的控制作用。M2为设定的误差界限。
③当 e(k)Δe(k)<0、Δe(k)Δe(k-1)>0 时,说明误差在朝减小的方向变化。此时比例作用应该同步减小,微分作用应该加强,从而使控制器提前作用,以抑制系统的超调。
④当 e(k)Δe(k)<0、Δe(k)Δe(k-1)<0 时,说明误差处于极值状态,对于温控系统这类时滞慢过程来说有很大的影响,若∣e(k)∣≥M2,则采用较强的比例微分控制作用。反之则采用较弱的控制作用。
⑤当∣e(k)∣<ε,ε为任意小的正数。说明此时误差的绝对值很小,可考虑加入积分环节,减少稳态误差。
⑥当e(k)=0时,说明系统已经达到平衡状态,此时可考虑维持当前控制量不变。
上位机通过串口与智能仪表,温度采集模块、湿度采集模块等进行通信,串口通信部分是软件的重要组成部分[6-7]。
首先选择串口通信的接口方式,现在主要有RS232,RS422,RS485 三种工作方式[4]。 RS232 采用三线半双工工作方式,由于总线不能并联,只能单台点对点工作,因此在此不能采用。RS422用差动两线发送,两线接收的四线全双工工作方式,RS485是RS422的变型,采用差动两线发送,两线接收的双向数据总线两线制半双工工作方式。这里RS485通信速度可达到要求,所以采用更为简便的RS485接口。
串口通信软件设计主要有2种办法:一种是使用MSComm控件,虽简单易用,但是这个控件较大,使用时会同时加入许多并不需要的功能,存有实时性不高、高速通信时准确率较差和处理速度较慢等问题,而且一个控件只能进行一个串口操作,这样很不方便,故一般不采用这种方法。
第二种是使用Windows API函数的方法[5],以文件方式来进行串口的读写操作,具有很强的灵活性。与仪表进行通信,要采集它的数据,对其发送控制量和设定值等,对温度采集模块也要读取它的数值,若每次通信都要再写串口通信代码,这样非常不方便。为了使用方便,可以把与串口通信有关的操作全部封装到一个类中,在类中把通信的功能全部实现,这样在每次使用时就很方便了。经过封装的串口通信类如下(参数均略去):
class CCommunicate:public CObject
{
public:
BOOL ReadADAM();//读取 ADAM 模块
BOOL SetPID();//设置仪表 PID 参数
BOOL SetCommStates();//设置通信状态
BOOL SetToAuto();//仪表设为自动控制
BOOL SetToMan();//仪表设为手动控制
BOOL CloseCom();//关闭串口
void GetValue();//读取仪表测量值
BOOL GetStatus();//获取仪表状态
BOOL WriteCom();//写串口
BOOL CtrlValue();//发送控制量
BOOL SetValue();//发送设定值
BOOL SetToLocal();//设置仪表本地状态
BOOL InitCom();//初始化串口
CCommunicate();//构造函数
virtual ~CCommunicate();//析构函数
HANDLE m_hComm;//串口句柄
DCB m_dcb;//DCB 结构体
char m_ComOut[100];//发送命令数组
char m_ComIn[100];//接收数据数组
};
本系统是一个比较复杂的多变量系统,并且具有滞后性和耦合性等特点,通过联调联试,确定了PID控制器的比例系数Kp、积分时间Ti、微分时间Td和采样周期Ts的数值等参数。图3为按照国军标150A中规定的湿热曲线运行效果图。
图3 温湿度试验曲线Fig.3 Temperature and humidity test curves
目前,测控系统已经调试完毕,正式投入使用。从使用情况来看,该测控系统具有响应速度较快,控制精度高,串口通信误码率低等特点,很好地满足了高速率数据采集的要求。系统还具有一定的通用性,经过少量的修改后便可以应用于同类的测控系统中。
[1]GJB150.7A-2009军用设备环境试验方法[S].国防科学技术工业委员会,2009.
[2] 马利英,任庆昌,李建维.温湿度解耦在变露点控制中的应用研究[J].建筑热能通风空调,2008,27(6):41-42.
[3] 卢祖炎.基于PLC的环境模拟试验控制系统研究[D].南京理工大学硕士论文,2013:7-15.
[4] 周洪煜,彭其润,田彬.基于PLC与专家PID控制器的电解槽预焙烧控制系统[J].计算机测量与控制,2004,12(12):1175-1177.
[5] 刘彪.基于WinCC的环境模拟试验监控系统设计与实现[D].南京理工大学硕士论文,2013:9-18.
[6] 王建文,任庆昌.串级控制在空调水系统控制中的应用研究与仿真[J].自动化技术与应用,2010,20(1):60-62.
[7] 宋艳苹,蒋建飞,王万召.DMPIC-PID串级过热汽温控制系统[J].河南城建学院学报,2009,18(5):45-48. ■