本文着重介绍一种了基于英飞凌XC164单片机和PI控制算法的电子压力控制器,以及借助此装置对实现精密压力控制的探索。
自动选择系统组成与实现
电子压力控制系统由供气设备、控制器、阀门、储气设备、传感器单元等部分构成。电子压力控制器的作用是保持输出气压与输入信号成比例。为了达到对储气装置气压的精确控制,需要用两个高频电磁阀的开、关来调节输出压力。系统采用闭环PI控制,压力由两路压力传感器获得,即用户处和控制器处的压力传感器。图1是系统的方块图,从中可以看出,压力传感器和PI控制器构成了系统的闭环反馈部分。
图1 电子压力控制器结构图
控制系统精度分析
在电子压力控制系统中,影响到控制精度的主要模块是ADC、压力传感器和阀门。电子压力控制器正常工作气压为0~100psi,而传统的8位ADC精度太低,为了达到1%精度,需要选择10位ADC(单位采样值0.09psi)。电子压力控制器对传感器提出很多要求,如高精度、线性度好、温度稳定性好、使用寿命长等,因此选用Honeywell公司的SX系列压力传感器。其测量压力范围为0~150psi,精度达0.3mV/psi,足以满足本控制器的精度要求。电磁阀的开关速度也将成为一个重要指标。但是为了延长阀门寿命,应尽可能的减少阀门开关次数。
实际的控制系统总是要跟踪输入信号或是克服搅动信号的干扰。所以,有必要对系统的动态误差做出分析。设误差的传递函数为,将其在s=0处展开成泰勒级数:
式中,是系统的开环传递函数。
在任意输入函数作用下,系统的动态误差的拉氏变换级数在s=0的邻域内是收敛的,所以,当s趋于0即t大的时候有:
e(t)=C0r(t)+C1r(t)+C2r/2!+…
式中,e(t)是系统的动态误差;C0,C1,…是动态误差系数。
当s→0时,
由此可见,通过求取动态误差系数,就可以将跟踪误差与系统的开环传递函数直接联系起来,根据对系统的精度要求来设计传递函数了;或是根据辨识对象的输入输出数据,通过辨识得到相关的模型,并将模型转换为传递函数或状态空间模型,进而用上述方法分析系统的理论误差。
电子压力控制器硬件结构与软件实现
该电子压力控制器输入电压为24V,正常工作气压为0~100psi。用户可选择控制信号(0~10V或0~5V、4~20mA、8位数字信号)对气压进行控制。输入电压24V经电源模块转换成5V和2.5V供给单片机,同时经过电源基准模块输出10V基准电压供给传感器使用。用户给定的控制信号经过放大器放大后输出至单片机的ADC,或者经过数据锁存器输出给单片机I/O口读取,以给出压力设定值。传感器输出信号经放大电路输给单片机采样,同时在LCD上显示出来。用户可以使用按键实现对阀门的控制。此外,控制器和计算机之间的通信由串口来实现。控制器硬件结构框图如图2所示。
图2 硬件结构框图
软件设计基于DAVE和KEIL软件编写。系统启动时将保存在FLASH中的标定值读出。在执行PI运算前要完成A/D采样和对A/D采样值的处理,所以A/D采样周期不能太长,否则无法反应系统的瞬时值。LCD显示程序应采用查询的方式,尽量避免重复书写。单片机属于快速设备,而LCD属于低速设备,所以要保证LCD的指令有充分的延时时间,否则也会出现错误。为了显示压力变化的曲线和更加方便的进行标定或指令控制,控制器借助Modbus协议通过PC界面加以控制。为了实现对传感器的标定值存储,控制器程序使用在应用中编程技术(In-Application Programming)。PI运算的结果被用来产生PWM信号,控制进/排气阀的通断,从而达到对气压的精密控制。
PI控制算法
PID控制主要是通过微处理器来比较给定的压力设定值和传感器反馈回来的实际压力值,利用其偏差值来控制阀门的进气量和排气量,从而达到精确控制阀门气压的目的。当反馈回来的实际压力和指定值的偏差在一定范围内以后,停止进气阀和排气阀的动作,压力容积室的压力达到平衡。
离散PID算法的一般形式是:。 Kp、KI、KD分别表示比例系数、积分系数、微分系数,根据被控对象的不同,可以对其进行调整。该算法简单,参数也易于调整,所以获得广泛应用。笔者程序中只用到了PI控制,下面简单加以介绍。
比例系数:增大比例系数Kp,可以使系统动作灵敏、反应速度加快;但是Kp偏大,会导致震荡次数加多,调节时间加长;Kp过大,系统不稳定。需要注意,增大Kp只能减小误差,不能完全消除稳态误差。
积分系数:积分系数KI能消除系统的稳态误差,挺高控制系统的精度。
图3 PI控制算法结构图
图4 控制器在不同压力设定值下的响应曲线
值得注意的是,为了提高控制的响应速度,最好给积分赋予一个不为零的初始值。由于进气和排气的速度不同,所以最好给与进气和排气不同的初始值,以提高快速性和准确性。
系统中加入积分校正后,会产生饱和效应,超调量可能过大,因此引入了积分分离式算法。为了减少积分校正对控制系统动态性能的影响,需要在控制开始阶段或是大幅值变化时,取消积分校正;而当实际压力值与设定值的误差小于一定值时,恢复积分校正作用,以消除稳态误差。积分分离式算法可以保持积分的作用,同时减小超调量,改善控制系统的性能。
控制算法的方框图如图3所示。
图4是控制器在不同压力设定值下的响应曲线。因为系统漏气或者用户使用气压的缘故,伴随设定值的增加,压力波动值增大,达到稳态的时间会变长。
图5 有无积分初始值时响应曲线的对比
图5是有无积分初始值时响应曲线的对比。此图中,采样时间为1s,采样点数115个。从图可得,有积分初始值的响应进入稳态的时间明显短于无积分初始值。
PWM控制
PI运算的结果被用于产生PWM信号。利用英飞凌捕捉/比较单元(CAPCOM1/2)产生PWM信号,在定时寄存器产生的溢出中断里调用PI算法,从而得到比较寄存器的数值。
PWM的执行周期要给与合适的选择。周期太短,也许会导致阀门的频繁开关,会缩短阀门使用寿命,同时可能造成对阀门的过度控制;周期太长,也就无法做到对气压的及时调节,无法掌握控制精度。程序中PWM的周期为10ms(阀门导通时间仅为3.4ms)。