宋 涛, 姜周曙, 黄国辉
(杭州电子科技大学 能量利用系统与自动化研究所,浙江 杭州 310018)
在工业控制领域,工业系统越复杂,模型建立越困难,控制算法应用到工业对象验证的代价越高。一般采用MATLAB仿真的方法完成此类实验,但仿真实验并不能很好地体现工业控制过程。三容水箱实验控制系统作为计算机控制实验系统的典型代表,为控制算法实验提供了验证对象,解决了仅有理论分析、仿真计算而缺乏实验验证的问题。许多工业系统中的控制对象都可以抽象成三容水箱控制模型,该实验系统可被用来研究控制算法的可行性和有效性,之后再将算法还原于工业现场验证其实际控制效果[1]。三容水箱实验控制系统具有柔性化特点,可通过对阀门和水泵的灵活控制组合成多种过程状态,可构建复杂的多输入、多输出控制回路[2],对液位、温度等多种参数进行监测与控制,具有良好的可观性,可以模拟复杂的工业控制过程[3],与实际工业领域结合紧密,具有很高的研究意义与应用价值。
李志军等人[4]使用西门子S7—300PLC,结合用于过程控制的OLE(object linking and embedding for process control,OPC)技术设计了可控制液位的四容水箱实验系统;冯晓会[5]利用西门子S7—300PLC研制了可对液位、温度等参量进行监测与控制的三容水箱实验装置;蒋建波等人[6]以西门子S7—300PLC为控制器设计了仿真与实验相结合的三容水箱实验装置。目前大部分多容水箱实验系统以可编程逻辑控制器(programmable logic controller,PLC)为主控装置,与采集控制模块无法集成到一块电路板中,接线繁杂且可靠性不高;多数实验系统仅能进行液位控制,功能较为单一;阀门大多需要手动调节开度,操作繁琐且不准确。
本文以一种自主研制的三容水箱系统为研究对象。该三容水箱实验系统功能较为完备,但仍有其局限性:原系统主控芯片采集数据精度不高,软件中单位时间内分时采样,采集数据量少,导致阶跃响应曲线的绘制不精确进而影响系统辨识;原系统电动阀通过计时控制阀门开度,导致控制误差较大,影响算法控制的准确性与快速性;原系统采集控制板中传感器与执行器接口布局混乱,易产生电磁干扰,检修困难等。针对以上问题,本研究对该三容水箱实验系统进行了优化与设计。
优化后的三容水箱实验控制系统主要由数据采集模块、执行器控制模块、电源管理模块和上位机监控模块四部分组成,其功能框图如图1所示。采集控制板设计为4层电路板,采用负片的设计方式将模拟电路和数字电路分开,将地层与电源层合理分割,提高了系统稳定性与抗干扰能力。主控芯片为ADuCM360芯片,该芯片的内核为ARM Cortex—M3,通过芯片内集成的两个24位高精度ADC,来采集3路液位、1路压力、1路温度信号,相比之前的16位ADC,采集精度大幅提高,并且可同时开启多路采样通道。2路流量信号的采集借助芯片内的计数器,通过计算单位时间内获取到的电压脉冲频率来完成。另外,需要将采集到的数据存储至FLASH/EE数据存储器以进行校准与标定。
图1 三容水箱实验控制系统功能框图
采集到的各项数据通过RS—232串口上传至上位机监控系统,通信协议采用MODBUS-RTU,实现双向数据交互[7]。同时对控制指令进行了循环冗余校验(cyclic redundancy check,CRC)[8]。上位机通过对采集到的数据进行算法分析,以下发相应的控制指令使相关执行器完成指定动作,从而满足目标要求。通过数模转换器(digital to analog converter,DAC)和脉宽调制(pulse width modulation,PWM)完成对水泵、循环泵和加热器的控制,使用I2C总线完成对进水电磁阀和电动阀的开度控制。通过对220 V交流电整流滤波转换为24 V直流电,为电磁阀和水泵供电,之后通过LM2575_12芯片降为12 V给电动阀供电,同时通过B2405S芯片降为5 V给各传感器供电,最后通过ADP1720ARMZ_3.3芯片降为3.3 V给主控芯片供电。
图2所示为部分硬件电路设计。
图2 部分电路
1)最小系统模块:主控芯片为ADuCM360,外接频率为32.768 kHz的晶振,以此产生芯片工作所需的时钟频率。ADC数据采集使用REF3125芯片产生的2.5 V电压作为基准电压。系统上电后通过ADM809芯片实现自动复位功能。其最小系统电路如图2(a)所示。
2)液位采集模块:液位值的获取通过液位传感器输出电压由ADC采集后经信号调理与相关公式转换得到[9]。液位采集模块电路如图2(b)所示,由于该电路属于模拟电路部分,因此采用模拟电源AVDD经电容器C1,C2组成的滤波电路后为其供电[10]。另外,由于ADuCM360芯片的最高输入电压为3.96 V,而液位传感器采集到的电压实测值最高可达5 V,所以采集到的电压信号必须经过降压滤波电路,然后输入到主控芯片中。采集到的电压信号首先经过电阻R49与R50分压,再经电阻器R13与电容器C45滤波后,得到转换后的电压为采样值的1/2,所以最高输出电压为2.5 V,属于主控芯片输入电压的安全范围。
3)流量采集模块:流量的采集通过对流量传感器输出的电压脉冲信号频率进行捕获得到。流量采集模块电路图如图2(c)所示,该电路属于数字电路部分,因此采用数字电源DVDD为其供电。由P0.5引脚控制光耦隔离器件AQY210KS的导通,进而控制流量信号的采集。采集到的流量信号首先需要经过1 kΩ上拉电阻,将流量传感器采集到的信号进行放大,但由于放大后的信号不稳定,且流量为零时电压脉冲信号的实测峰值电压为5 V,流量不为零时电压降至2.5~2.8 V,因此,需要将电压脉冲信号稳定在一个易于捕获且安全的数值。流量信号经过光耦器件后,首先由RC滤波电路进行信号滤波处理,之后经过LM258双运算放大器,配以合适的比较电路[11],最后再经过滤波电容器C56,以防止脉冲信号中毛刺噪声的出现,以此便可得到稳定的电压脉冲方波。
采用模块化编程思想,程序包括主函数模块、采集与执行模块、指令控制模块、串口通信模块、CRC校验模块、FLASH标定模块等。在压力、液位和温度信号采集方面,由分时采样优化为实时采样,增加了单位时间内采集的数据量,同时采集精度提高到24位。通过限幅滤波的方法剔除了采集数据中的坏点。在CRC校验模块中采用了16位的循环冗余校验码,确保控制指令的正确性[12]。当系统上电后,首先进行对各模块的初始化工作,包括串口波特率选择、ADC采样通道的选择、定时器定时周期的确定等。然后系统自动进入到数据采集状态,采样周期为0.5 s,该采样周期先由芯片内部16 MHz高频振荡器经过256分频后,再通过定时器预装载值与定时时间之间的关系式得到。另外,当完成一个周期的采样过程后,系统在清除定时器溢出中断标志位的同时,会驱动采集控制板上的LED闪烁,以提示正在进行数据采集。程序流程图如图3所示。
图3 程序流程图
其中,在液位采集过程中,传感器输出电压实测值为0~5 V,经降压滤波电路后为0~2.5 V。利用液位与输出电压的关系式
Vout=(9.8H+1 000)±75
(1)
式中Vout为传感器输出电压,mV;H为液位高度,mm;最大误差为±75 mV。转换为对应的AD值为
(2)
式中Vout值取1/2是因为输入到主控芯片的电压为传感器输出电压值的1/2,后半部分表示1 mV电压对应的AD值。由于ADC是24位采样,所以对应的最大值为224,另外,输入到主控芯片的电压最大值为2 500 mV。所以得到液位的表达式为
(3)
另外,通过公式计算得到,流量传感器输出的每个电压脉冲对应的流量为0.336 5 mL/s[13]。温度的采集借助于Pt100铂热电阻器来完成,其电阻值与温度的变化关系基本呈线性,且稳定性较高[14]。在0 ℃时对应的阻值为100 Ω,温度每升高1 ℃电阻值相应地增加0.385 Ω[15]。
由于ADuCM360的GPIO端口数量有限,因此不能同时满足5个电动阀的控制。首先借助于I2C总线将控制信号串行输入至锁存器74HC595,再并行输出至驱动芯片ULN2003,最后输出的驱动信号可直接控制电动阀阀门开度。
改变阀门控制方式后,选取了电动阀的10个不同开度进行放水用时测试。测试的液位分别为100,200,300 mm,经计算水箱底面积为6 047.565 8 mm2,因此测试的放水量为604.76,1 209.51,1 814.27 mL。由测试所得数据拟合出放水用时变化曲线如图4(a)所示。由于在测试过程中存在一些误差,导致数据略有偏差,但从图4(a)可以看出,这三条拟合曲线的变化趋势基本相同。由于阀门开度超过60 %之后曲线基本保持水平,所以不具有明显的可控性;另外,阀门开度不足10 %时放水效果不明显,所以图中没有显示。现针对拟合曲线变化较为明显的一部分进行分析,选取了阀门开度20 %~45 %,并增加了一些测试点。以放掉液位为100 mm的水为例,得到放水流量与阀门开度的曲线如图4(b)所示。从图4(b)可以看出,在一定的误差范围内,可采用分段控制的策略,求得电动阀的放水流量。
图4 实验结果
将阀门开度划分为3段式控制,表达式为
(4)
式中Q为放水流量,mL/s;x为阀门开度,%。在不同开度范围内选择不同的控制策略,可以实时控制放水流量。再由流量采集模块测得进水流量,根据物料平衡原理,可提高三容水箱实验系统模型精度,达到优化模型的目的。
基于系统特性测试得到的各项数据,根据物料平衡原理,利用MATLAB建立二阶串级系统数学模型,得到传递函数为
(5)
采用动态矩阵控制(dynamic matrix contorl,DMC)-PID串级控制算法,通过MATLAB进行仿真[16]。其结构框图如图5所示。
图5 DMC-PID串级控制结构框图
主回路采用DMC控制,可实现较好的跟踪性能,增强了系统的鲁棒性,副回路的PID控制可有效克服系统中的扰动。外环DMC选取截断点N=3 500,采样周期0.5 s,内环PID选取KP=500,KI=10。设定期望液位100 mm,给定阶跃信号。改变预测时域P和控制时域M的值,得到的算法仿真图如图6(a)所示。从图6(a)可以看出,在控制时域M值不变的情况下,增大预测时域P值,系统响应快速性有所下降,但稳定性好;反之,系统的鲁棒性和稳定性会变差,所以P值一般选择近似于阶跃响应的上升时间。保持预测时域P值不变,增大控制时域M值,可以看到系统的稳定性有所降低,所以控制时域M值选择要兼顾系统的时效性与稳定性,且M≤P。P值与M值的选取对系统控制性能有很大影响,现选取预测时域P=410,控制时域M=20,得到算法控制效果如图6(b)所示。在2 200 s时增加30 mm扰动,得到扰动下算法控制效果如图6(c)所示。从图中可以看出该系统响应速度快,超调小,过渡过程较为平缓。由于系统中各水箱串联控制,耦合性较强,故调节时间相对较久。整体而言优化后的系统可控性较好,稳定性高,抗干扰能力强。
图6 仿真实验结果
针对一种自主研制的三容水箱实验控制系统存在的缺陷,本文从硬件和软件两方面进行了优化设计。提高了数据采集的精确度与单位时间内采集的数据量,采集控制板优化设计为四层电路板,提高了系统的稳定性与抗干扰能力[17]。提高了电动阀的可控性,并且在一定开度范围内可直接求得放水流量,间接提高了模型精度,改善了算法控制实验的效果。优化后的三容水箱实验控制系统为科研人员提供了更加准确可靠的实验平台,可进行多种算法的验证与工业生产过程的研究。