液压泵试验台测控系统的设计与实现
2016-11-17陈赞涛范蟠果
陈赞涛, 范蟠果,王 婷
(西北工业大学 自动化学院,西安 710129)
液压泵试验台测控系统的设计与实现
陈赞涛, 范蟠果,王 婷
(西北工业大学 自动化学院,西安 710129)
为测试液压泵性能参数,设计了以工业计算机和PCI数据采集卡为核心,LabWindows/CVI为软件开发平台的液压泵试验台测控系统;以多线程技术设计程序,采用线程安全变量同步线程;采集、分析、显示系统参数,并利用滞环控制算法将油温控制在35~45℃之间,利用遇限削弱积分PID算法实现出油口、回油口压力控制;设计了人性化的报警功能;通过ODBC接口,每隔1 s将系统运行参数存入数据库,以便分析故障;软件调试界面大大缩短现场调试时间;经过运行测试,系统满足设计要求。
液压泵;LabWindows/CVI;滞环控制;PID控制;数据库
0 引言
液压传动与控制技术以其结构小巧、可靠性高,控制精度高,输出功率大等优点,被广泛应用于工业中,包括机床、船舶、锻压、冶金、汽车、航空航天等领域。其中液压泵作为液压系统的动力元件,将机械能转化为液压能,向系统提供工作时所需的一定压力和流量的工作液体,使各液压执行部件完成各种规定的工作[1]。
液压泵性能的好坏,直接关系到液压系统的工作情况,因此有必要研制试验台对液压泵进行测试。对液压泵试验台的研究很早就已展开。文献[2-3]使用远程调压阀的方法手动调节泵出油口压力,属开环调节,简单实用,但是自动化程度低,效率低,精度差。文献[4]研究了基于LabVIEW平台的齿轮泵试验台,使用比例溢流阀调节出油口压力,但是未考虑油温上升问题,未对油温进行控制。另外,大部分的文献只考虑泵的出油口压力,对于回油口压力没有进行控制。
本文设计了基于LabWindows/CVI开发环境的液压泵测控平台,实现对系统压力、流量、油温以及压差发讯器状态的采集,对试验泵出油口压力、回油口压力进行闭环控制,紧急情况下产生报警,软件调试界面为PID参数的整定提供了方便。
1 液压泵试验台液压系统
试验台的液压系统如图1所示,主要有冷却油路、先导油路、出油口油路和回油口油路组成。
1)冷却油路:主要由冷却循环泵2、回油过滤器3.1、电磁阀4.1以及板式水冷却器5组成。采用外冷却方式,当油温>45℃时,电磁阀断电,液压油流过水冷却器,油温降低;当油温<35℃,电磁阀得电,液压油不经过水冷却器。过滤器滤除液压油中的杂质,杂质过多导致过滤器堵塞时,过滤器上的压差发讯器将输出一个数字信号。
2)先导油路:主要由先导泵7、比例溢流阀8.1、压力传感器9.1组成。先导油路的作用是为试验泵提供一定压力的液压油,通过调节比例溢流阀的输入电流控制试验泵的入油口压力。
3)出油口油路:主要由压力传感器9.3、过滤器3.3、电磁阀4.2、比例溢流阀8.3、溢流阀14.2、节流阀12.2、流量计13.2组成。液压泵的出油口压力由负载决定,比例溢流阀和溢流阀用于对试验泵加载,通过电磁阀可选择自动调压或者手动调压。
1-油箱;2-冷却循环泵;3.1、3.2、3.3-过滤器;4.1、4.2-电磁阀;5-板式水冷却器;6-温度传感器;7-先导泵;8.1、8.2、8.3-比例溢流阀;9.1、9.2、9.3-压力传感器;10.1、10.2、10.3-压力表;11-试验泵;12-节流阀;13.1、13.2-流量计;14.1、14.2-溢流阀图1 试验台液压系统原理图
3)回油口油路:主要由压力传感器9.2、过滤器3.2、比例溢流阀8.2、节流阀12.1、流量计13.1组成。通过比例溢流阀调节试验泵回油口的压力。
2 测控系统构成
液压泵试验台测控系统的构成如图2所示。采用工控机+PCI数据采集卡的组合方案,工控机作为人机交互界面,PCI数据采集卡需要以下通道:
1)6个数字量输出:控制3台泵、2个电磁阀和1个声光报警灯,声光报警灯用于系统故障时报警。
2)3个数字量输入:采集3个压差发讯器的输出,以此判断过滤器是否堵塞。
3)3个模拟量输出:控制3比例溢流阀,调节试验泵入油口、出油口和回油口的压力。选择ATOS公司生产的带压力传感器的比例溢流阀,调整压力与输入信号近似成正比,输入信号为4~20 mA。
4)6个模拟量输入:采集1个温度传感器、2个流量计、3个压力传感器。传感器的输出均为4~20 mA标准信号。
为简化设计,数字量输出通道选择继电器输出,模拟量输出通道选择0~20 mA输出,因此工控机的PCI插槽共插入3张PCI数据采集卡——数字量I/O卡PISO-P8R8U,具有8路隔离的数字量输入通道(逻辑1:DC 5~24 V,逻辑0:DC 0~1 V),8路继电器输出;模拟量输出卡PISO-P8R8U,具有4路模拟量输出,范围:0~20 mA;多功能卡PIO-821LU,用于采集6个传感器输出的4~20 mA电流经电阻转换后的电压。
图2 测控系统结构图
3 软件设计
3.1 软件总体设计
上位机以LabWindows/CVI为开发平台,通过调用PCI数据采集卡提供的驱动函数来操作数据采集卡。驱动函数的执行时间一般较长,特别是模拟量采集时,若在控件的回调函数中直接调用驱动函数,将使用户界面操作不流畅。为提高整个程序的效率和性能,本程序采用3个线程——主线程、次线程和异步定时器线程。
主线程用于响应用户界面操作,保证用户操作流畅。包括主函数和各个控件的回调函数,回调函数中不调用数据采集卡的驱动函数,仅仅是将某个控件的操作信息通过变量通知次线程,所有驱动函数的调用都放在次线程中。这样也可以避免不同线程同时操作同一张数据采集卡,造成资源竞争。
次线程实现试验台的主要功能,线程函数使用双重循环。启动系统后,程序进入内循环,不断扫描各个功能模块,执行用户操作,完成信号采集、处理和输出。温度、流量、压差发讯器的采集间隔为1 s,两个PID控制器的离散时间在调试界面上可调。停止系统后,退出内循环,只有关闭程序时才退出外循环。
图3 软件流程图
LabWindows/CVI中有两种定时器:基于Timer控件的同步定时器和基于多线程的异步定时器,其中异步定时器的实时性较好。程序中多处需要用到定时功能,本文使用异步定时器解决,设置异步定时器定时时间为100 ms,对100 ms进行软件分频,产生各种定时信号。例如温度的采集间隔为1 s,则定义tmpSampleInterval变量,异步定时器的回调函数中每隔1 s置位该变量,次线程每次循环时检测该变量,若为1,则采集温度,并复位tmpSampleInterval变量。
线程间的通信通过全局变量实现,每个线程都可以访问这些变量,当多个线程并发访问这些变量时,将会产生竞争,导致出错,因此必须加以保护。程序使用LabWindows/CVI提供的线程安全变量机制实现线程同步,线程安全变量的使用步骤如下:
1) 在头文件中使用DeclareThreadSafeScalarVar宏声明线程安全变量;
2) 使用DefineThreadSafeScalarVar宏定义线程安全变量;
3) 使用InitializeVarName函数初始化线程安全变量;
4) 使用GetPointerToVarName函数获得指向线程安全变量的指针;
5)对变量操作结束后使用ReleasePointerToVarName函数释放指针;
6) 退出程序前使用UninitializeVarName函数释放线程安全变量所占空间。
3.2 模拟量采集
模拟量采样率设为10 k,每次采集传感器信号时连续采集12个点,对12个采样值去极值后再求平均值,实现简单的数字滤波,即:
(1)
式中,value为滤波后的采样值,NUM为采样点数,ui为第i个采样值,umax为NUM个采样值中的最大值,umin为NUM个采样值中的最小值。程序片段如下:
MaxMin1D(u_i,NUM,& u_max, & u_max_index, & u_min, & u_min_index); //求最大值和最小值
Sum1D (u_i, NUM, &sum); //所有采样值求和
value=(sum - u_max - u_min)/(NUM-2); //去极
//值再求平均值
3.3 油温控制
为防止油温过高,需将油温控制在40℃附近。由于控制精度要求不高,因此可采用滞环控制方法,油温滞环控制结构图如图4所示。
图4 油温滞环控制结构图
e=tin-tout
(2)
式中,tin为期望温度40℃,tout为实测油温。电磁阀为执行机构,当e<-5,即油温>45℃时,电磁阀失电,液压油经水冷却器冷却;当e>5,即油温<35℃时,电磁阀得电,液压油不经水冷却器冷却。因此油温被控制在35~45℃之间。滞环控制程序如下:
if(temp>45)
{
DigitalOut(DIGITAL_OUTPUT_BORD_NUM,MAGNETIC_VALVE_COOL_CHANNEL,0);
//电磁阀失电,冷却
}
if(temp<35)
{
DigitalOut(DIGITAL_OUTPUT_BORD_NUM,MAGNETIC_VALVE_COOL_CHANNEL,1); //电磁阀得电,不冷却
}
3.4 压力控制
试验泵的入油口压力采用开环控制,直接控制比例阀的电流大小。而出油口和回油口的压力采用遇限削弱积分PID算法进行闭环控制,对出油口和回油口的控制可看做两个独立的单输入单输出回路。
PID算法以其结构简单、易于实现等优点在工业中广泛应用。计算机只能处理数字信号,因此需采用数字PID算法。位置式数字PID算法为:
(3)
式中,u(k)为第k次采样时刻的输出值,e(k)为第k次采样时刻的偏差值,KP为比例系数,KI为积分系数,KD为微分系数,T为采样周期。为便于控制器调参,不将KIT整体作为积分系数,因为T一般很小,KIT也很小,不便于调参。同理,KD/T很大,不将KD/T整体作为微分系数进行调参。
为防止积分饱和,减小超调量,使用改进型的PID算法——遇限削弱积分PID算法,其基本思想是:当控制器的输出超过执行机构的可调范围时,不再进行使积分项绝对值增大的运算,只执行积分项的削弱运算。即u(k-1)≥umax且e(k)≥0时,不进行积分累加;u(k-1)≤umin且e(k)≤0时,不进行积分累加;其余情况均进行积分累加。遇限削弱积分PID算法的流程如图5所示。
图5 遇限削弱积分PID算法流程图
出油口压力控制核心程序如下:
currentError3=desirePress3-currentPress3; //计算//偏差
array3[0]=Kp3*currentError3; //计算比例项
if(!((output3>=MAX_ANALOG_OUTPUT && currentError3>=0) || (output3<= MIN_ANALOG_OUTPUT && currentError3<=0))) //遇限削弱积分
{ errorSum3+=currentError3;}
array3[1]=Ki3*SAMPLE_T*errorSum3;//计算积//分项
if(lastError3>1000)
{ array3[2]=0; }//第一拍微分项不起作用
else
{array3[2]=Kd3*(currentError3-lastError3)/SAMPLE_T; }//计算微分项
lastError3=currentError3;
output3=array3[0]+array3[1]+array3[2]; //计算控//制量
//以下为输出限幅
if(output3>MAX_ANALOG_OUTPUT)
{ output3=MAX_ANALOG_OUTPUT;}
if(output3 { output3=MIN_ANALOG_OUTPUT;} AnalogOutput(ANALOG_OUTPUT_BORD_NUM,PROPORTIONAL_VALVE3_CHANNEL,output3); //输出控制量 3.5 报警设计 系统存在6个报警源:1)油温大于55℃时报警;2)出油口压力低于0.5 MPa或高于28 MPa时报警;3)回油口压力高于0.5 MPa时报警;4)3个滤油器任意一个堵塞时报警。每个报警源在软件界面上都有一个LED指示灯相对应,产生报警时,相应的LED指示灯亮,并且产生声光报警。从实际应用考虑,软件界面设置有声光报警解除按钮,该按钮仅仅解除当前声光报警,而相应的LED指示灯并不熄灭,只有故障真正解除时,LED指示灯才熄灭。解除声光报警并不影响之后新出现故障所产生的声光报警。 3.6 数据存储 软件每次启动时在已有Access数据库文件中新建一个数据表,且每隔1 s将系统的运行参数存入数据库中新建的数据表,作为历史记录,以便系统故障时分析原因。该模块在异步定时器线程中实现。 使用LabWindows/CVI访问数据库需要安装SQL Toolkit附加工具包。ODBC是一个标准的数据库访问接口,SQL Toolkit支持任何符合ODBC开发标准的数据库系统[6]。SQL Toolkit提供了许多高级的数据库访问函数,这些函数调用ODBC API,而ODBC驱动程序处理ODBC API的调用,并根据数据源提供的信息,建立与具体数据库的联系,关系如图6所示。 数据存储步骤如下: 1)使用DBConnect函数建立数据库连接; 2)使用DBPrepareSQL函数准备执行一条带参数的完成“插入”功能的SQL语句; 3)使用DBCreateParam...相关函数提供SQL语句的参数; 4)使用DBExecutePreparedSQL函数执行SQL语句; 5)使用DBDeactivateSQL释放SQL语句所占资源; 6)使用DBDisconnect断开数据库连接。 图6 SQL Toolkit访问数据库过程 3.7 软件界面 设计有主界面和调试界面,分别如图7、图8所示。主界面供用户使用;调试界面在现场调试时使用。调试界面可以显示出油口和回油口的压力变化曲线,也可以选择显示PID各分量的变化曲线;界面上开关拨向“停止调节”时,则断开闭环回路,使用开环调节。调试界面的设计为控制器参数整定提供了方便。 图7 主界面 图8 调试界面 压力、流量、温度传感器的输出为4~20 mA电流,因此使用标准电流源分别代替每个传感器进行数据采集实验。在每个传感器实验过程中,调节电流源输出4 mA、8 mA、12 mA、16 mA、20 mA,比较软件采集值和理论计算值。实验结果表明,软件采集值和理论计算值近似相等,说明压力、流量、温度测试正确。 为测试报警功能,但又不能使液压系统真正处于故障报警状态,因此,用标准电流源代替压力传感器产生高压或低压对应电流,用电流源代替温度传感器产生高温对应电流,用24 V电压源代替压差发讯器输出过滤器堵塞信号。实验结果表明报警功能符合设计要求。 对出油口压力控制进行了测试,首先使用调试界面整调节PID控制器参数。控制器应实现2~26 MPa的压力控制,设定压力从2 MPa逐渐增加到26 MPa,间隔2 MPa。结果表明出油口压力控制良好,控制范围达到要求,且精度在0.5%内。同样的方法对回油口压力控制进行了测试。 让系统长时间运行,油温逐渐升高,当油温超过45℃之后,油温开始下降;当油温低于35℃后,又开始升高。油温近似在35~45℃范围,说明油温得到正确控制。 本文设计了一种液压泵试验台测控系统。以LabWindows/CVI为开发平台,采用多线程技术,实现压力、流量、温度的测试,通过控制出油口压力,改变试验泵的负载,并将油温控制在35~45℃。实验结果表明,压力控制精度在0.5%之内,满足要求。在实际应用中,系统运行良好,能够实现液压泵性能参数测试试验。 [1] 李永堂,雷布芳,高雨茁. 液压系统建模与仿真[M]. 北京:冶金工业出版社,2003. [2] 潘 伟, 王汉功, 张 霞. 基于虚拟仪器技术的液压泵试验台自动测试系统设计[J]. 机床与液压,2004(10):230-232. [3] 阳宝元, 黄志坚, 何 曼. 液压泵试验台系统设计[J]. 液压气动与密封,2015(2):23-25. [4] 章宏义, 黄志坚, 侯小华, 等.基于LabVIEW的齿轮泵性能测试与分析[J]. 液压与气动,2012(2):116-118. [5] 陶永华. 新型PID控制及其应用[M]. 北京:机械工业出版社,2002. [6] 王建新,隋美丽. LabWindows/CVI虚拟仪器测试技术及工程应用[M]. 北京:化学工业出版社,2011. Design and Implementation of Measurement and Control System for Hydraulic Pump Test-bed Chen Zantao,Fan Panguo,Wang Ting (College of Automation, Northwestern Polytechnical University, Xi′an 710129, China) In order to test the performance parameters of hydraulic pump, a measurement and control system for hydraulic pump test-bed is designed, using industrial computer and PCI data acquisition card as its core, LabWindows/CVI as software development platform. Application is designed based on multithreading technology, and using thread safe variables to synchronize threads. The automatic collection,analysis and display of each parameter is realized. The temperature of oil is controlled between 35~45℃ using hysteresis control algorithm. The pressure control of the oil outlet and the oil return port is realized by advanced PID algorithm. Humanized alarm function is designed. Operational parameters are stored in the database per-second through ODBC interface, which can effectively resolve faults when it occur. The debugging interface save the site-testing time greatly. By experiment, the system satisfies design request. hydraulic pump; LabWindows/CVI; hysteresis control; PID control; database 2015-12-25; 2016-01-21。 陈赞涛(1991-),男,福建龙岩人,硕士研究生,主要从事计算机测试及自动控制方向的研究。 1671-4598(2016)06-0068-04 10.16526/j.cnki.11-4762/tp.2016.06.019 TP273.5 A4 实验结果
5 结语