马志航,虎恩典,毛 令,朱兆元,刘融宇
(北方民族大学 计算机科学与工程学院,银川 750021)
国外智能阀门定位器发展比较成熟,以德国西门子SIPATT PS2系列为代表,其核心部件铸造高标准,国内铸造工艺水平难以达到要求。国内生产的一些智能阀门定位器多数采用16位低功耗微处理器,它们在抗干扰、响应速度、稳定时间等方面表现优秀,但在控制精度方面仍表现不足。一些国产阀门阀位在调节的过程中往往会出现往复抖动的现象[1],长期使用的情况下控制精度进一步下降。
本设计选用意法半导体超低功耗芯片STM32L152芯片为控制系统核心,以红外遥控、霍尔按键、4~20 mA电流信号发生器配合定制显示屏实现人机交互,不同的操作方法任意切换,采用自适应模糊免疫PID控制算法实现参数自整定有效提高了控制系统的动态性能和稳态性能。设计菜单式操作模式,可以查看当前报警信息、阀门开度、温度和压力等。另外,预留主控制器接口为以后升级拓展做好准备。
二线制工业电流信号不仅作为阀门的定位信号,同时也是控制器的供电电源[2]。4~20 mA电流信号经过信号转换电路转换为电压信号,控制器采样计算后线性化为阀门开度,4 mA对应阀门开度的0%,20 mA对应阀门开度的100%。使用人机交互模块进行阀体工作状态的显示。阀门在运行过程中开启自检,若当前有故障发生则报警灯亮起,经过8 s延时后阀门自动回到全关位置;若无故障发生默认进入4~20 mA电流信号发生器直接控制阀门开度模式。控制器对4~20 mA电流信号和位置传感器反馈的信号进行采样处理,将得到的数字量做减法得到偏差,偏差值经自适应模糊免疫PID算法处理输出PID值产生PWM波控制电磁阀的动作,在此过程中位置传感器不断检测位置信号返回控制器中,构成了闭环控制系统。
以超低功耗芯片STM32L152CBT6芯片为控制核心,该芯片采用Cortex-M3 32位RISC内核,创新自主平台工艺,具有电压调节、低功耗模式、超低功耗模式。集成了高达24路12位模拟量输入通道,2个12位DAC通道。芯片内置LCD驱动,最高支持8×40笔段,可以简化显示部分软件设计。芯片最高支持36 MHz工作频率,且它在低功耗模式运行的同时性能不会降低。
图1 系统总体结构图
二线制定位器电源和信号线共用两根导线,供电完全从定位信号中抽取。三端稳压器选用LTC1474-3.3,其转换率可超过92%,拥有极低的待机电流同时也可以保持电压输出,满足低功耗的设计要求。电源模块的信号源端电压在8~12 V的范围内,为了保证系统在最低电流信号输入时维持正常运行,采用一个12 V稳压管。由于输入的电流信号值大小会产生一定误差,为保证系统正常运行留有5%的裕量,则在输入电流信号最小为4 mA时系统允许消耗的最大电流为3.8 mA。电源模块电路如图2所示,输入4 mA电流经过整流滤波后,通过三端稳压器LTC1474-3.3转化成了3.3 V的直流电,此时整个控制系统的功耗约为33 mW,满足了人机交互模块的功耗需求[3]。
图2 电源模块
开度/位移信号转换电路中运算放大器选用LM158。该放大器具有高增益,低功耗,3~30 V宽电压供电的特点。定位信号(4~20 mA电流)经过两个100 Ω并联电阻采样后转变为负电压,输入到LM158第一路放大器的负端,其输出端接入控制器PA1引脚。位移传感器反馈信号经过电阻采样后输入到第二路放大器的正端,其输出端接入控制器PA2引脚。为了避免低电压采样出错,将控制器的基准电压设置为2.5 V。这两种信号经过采样转化后在控制器中模拟量化为12位的数字量。信号转换模块电路如图3所示。
图3 信号转换模块图
本设计以3种方式控制阀门的工作:1)通过安装在电路板上的6个霍尔按键;2)使用红外遥控器;3)直接使用4~20 mA电流信号发生器。这3种方式都需要配合LCD显示屏进行操作。
如图4所示,LCD显示屏主要用于人机交互界面内容显示,它整合了段码屏和点阵屏,内部集成驱动芯片ST7567,稳定性高,显示内容丰富。点阵屏部分显示滚动式菜单,段码屏部分显示阀门开度设定值、阀门开度实际值、电量图标、阀门开合图标、手型操作图标、远程操作图标及故障图标。在使用过程中两部分显示屏同时显示,工人可以直观地获取阀体工作状态和阀门开度;按动霍尔按键对其输入磁信号,霍尔元件内部触发器会发生翻转,输出电平信号也随之由高变低。当主控制器检测到下降沿时,会根据具体的IO口执行不同的指令,指令包括:切换操作方式为红外遥控/远程控制、增大/减小阀门开度、暂停/中断运行;红外遥控发出脉冲串信号,由安装在电路板上的红外接收器接收,控制器解码。红外遥控输出方式为按下按键后发送一帧数据,如果不松开则一直重复发送。红外遥控控制方式具有霍尔按键控制方式的全部功能,且增加了阀门阀位点动/连动运行功能;4~20 mA电流信号发生器只具有增大/减小阀门开度的功能,信号发生器输出的电流每变化0.01 mA就会引起阀门动作。3种不同的操作方式在一定程度上方便了工人对阀体的操作,同时也提高了阀体的工作效率,大大满足了复杂多变的工业环境。
图4 人机交互模块
为了减少芯片拓展和降低误码率,上位机与下位机的通讯方式采用SPI接口实现。通信模式为全双工,将下位机配置为主机,上位机配置为从机。上位机仅仅用于读取下位机当前的操作码和阀门工作状态数据。每次进行通信时,上位机都向下位机发送一帧8位的空数据,下位机返回实际数据。这样做的目的是防止数据交换时系统卡死。另外,设计了RS232接口电路用于完成控制器与PC间的通讯。
为了能够验证不同控制算法对系统的控制效果,在本节中将建立起控制系统的广义传递数学模型。G1为反馈杆的数学模型,G2为气动执行器的数学模型,G3为电气转换调节阀的数学模型,H为反馈环节的数学模型[4]。
(1)
(2)
(3)
(4)
免疫系统是生物体内所必备的一套特征生理反应防御机制,用于保护自己的身体免受自然界中各种病毒、微生物与细菌的侵害。对我们来说,一系列具有免疫功能的特异淋巴细胞,包括吞噬细胞、B细胞和T细胞就共同组成了保护人体的免疫系统。
如图5所示,可以看出存在两条反馈回路:(1)免疫反应的初期,病毒和细菌等抗原侵入,吞噬细胞为了得到正确的抗原信息会将其吞噬并分析,之后会产生特异Th细胞和Ts细胞。这时B细胞在Th细胞和Ts细胞的共同作用下就会产生出相应的特异抗体用来消灭抗原。免疫系统刚开始作用时,体内的抗原浓度较高,Ts细胞数量较少,使得Th细胞能够起到促进作用,刺激B细胞活化,以产生更多的抗体去消灭入侵的抗原。(2)到免疫反应的末期,抗原被抗体逐渐消灭,浓度减小,此时体内的Ts细胞就会对Th细胞和免疫B细胞起到抑制作用,减少抗体的生成,使得人体在经过一段时间后,免疫反馈系统会逐渐恢复到平衡状态。
图5 免疫反馈过程
将入侵的抗原的第k代时的数量假设为ε(k),Th细胞和Ts细胞在受到免疫反应刺激后的输出设为Th(k)和Ts(k),将B细胞在两种T细胞的共同作用下受到的影响设为S(k),受到影响的变化率为ΔS(k),则有:
S(k)=Th(k)-Ts(k)
(5)
在式(5)中:
Th(k)=k1ε(k),Ts(k)=k2f(S(k),ΔS(k))ε(k)。不妨在设计控制系统时,将系统偏差e(k)等同于第k代抗原的数量ε(k),系统的输入u(k)等同于B细胞所受到的总影响S(k),则可以总结出如下的反馈控制公式:
S(k)=k1ε(k)-k2f(S(k),ΔS(k))ε(k)
(6)
可写作:
S(k)=K(1-ηf(S(k),ΔS(k))ε(k)=KP1e(k)
(7)
在式(7)中,Kp1=K(1-ηf(u(k),Δu(k))),K=k1为控制系统反应速度参数,η=k2/k1为控制系统稳定效果的参数。选定一个非线性函数f(·),则:
f(·)=f(u(k),Δu(k))
(8)
如此,就可以将上式(7)视作是一个非线性的P控制器,而其P控制器的比例系数Kp1=K(1-ηf(u(k),Δu(k)))就会随着控制器的输出u(k)变化而变化。其中K为比例系数,可以通过增大它的值来避免系统响应速度过慢,但同时也要注意增大K值带来超调量和控制曲线更加波动的问题;η为抑制系数,其大小决定了控制系统对控制过程的抑制作用。
根据增量式PID的公式:
u(k)=u(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+
Kd[e(k)-2e(k-1)+e(k-2)]
(9)
将公式中的Kp用Kp1所代替,就可以的得到一个免疫非线性的PID控制器:
u(k)=u(k-1)+Kp1[e(k)-e(k-1)] +
Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]
(10)
从3.3中可以看出,能否设计出一个合适的非线性函数f(·)对于系统的控制性能会产生很大的影响。可采用的设计方式有:基于函数模型和基于模糊推理规则逼近两种[5]。由于模糊控制作为一种新型的控制方式不需要确定被控对象的精确数学模型,在面对非线性控制对象时也能体现出很好的鲁棒性和适应性而被广泛运用于现在的控制系统当中[6]。因此,采用模糊推理规则逼近的方式来获得非线性函数会是比较好的选择。
将第一个模糊控制器的输入量定为系统的控制量u和控制量的变化率Δu,输出为f(·)。两个输入量由正、负两个模糊子集模糊化,输出量由正、零和负3个模糊集模糊化。u、Δu和f(·)基本论域均为[0,1],各模糊变量的隶属度函数图如图6所示。
图6 u、Δu、f(·)的隶属度函数图
根据“细胞收到的刺激越大,抑制能力越小;细胞受到的刺激越小,抑制能力越强”的免疫过程的原则来设计模糊规则,可以得到如表1所示模糊规则[7]。
表1 f(u(k),Δu(k))的模糊控制规则
将第二个模糊控制器的输入量定为控制误差e(k)和控制误差的变化率Δe(k),输出为ΔKi和ΔKd。这4个量都是由负小、负中、负大、零、正小、正中和正大7个模糊子集来模糊化。e(k)和Δe(k)的基本论域均为[-3,3],ΔKi的基本论域为[-0.06,0.06],ΔKd的基本论域为[-0.3,0.3],各模糊变量的隶属度函数图如图7所示。
图7 e、ec、Ki、Kd的隶属度函数图
ΔKi、ΔKd模糊控制规则如表2~3所示。
表2 ΔKi的模糊控制规则表
以上两个模糊控制器模糊化方法均采用Mamdani模糊推理机制AND操作,解模糊化方法采用重心法。
表3 ΔKd的模糊控制规则表
控制网络框图如图8,由控制论可知在一定范围内增大比例系数可以加快系统的响应;增强积分环节的作用可以消除静差,提高系统无差度;引入微分环节系统可以产生早期修正信号,减少调节时间,引入模糊控制对PID参数进行整定,可以使得被控对象具有良好的静态特性和动态特性,从而实现系统自适应控制[8]。
图8 控制网络框图
使用MDK5开发平台基于STM32芯片库函数对系统软件进行开发,直接在固件库中调用所需函数,这在很大程度上降低了程序开发的难度[9]。控制系统需要用到的片上资源有:SPI,定时器TIME,ADC,DAC,外部中断EXIT等。开发软件内容主要包括:霍尔按键子程序,红外信号接收子程序,点阵与段码显示子程序,位移、温度、压力采集子程序,通讯子程序,PID自整定子程序,报警子程序等。系统的主要功能由控制器的外部中断和串口中断实现。系统上电运行后,首先对各个模块进行初始化,然后进入死循环[10]。在死循环中默认进行的是4~20 mA电流信号发生器直接控制阀门开度操作,按动霍尔按键切换到按键操作或者红外遥控操作,整个过程调用显示子程序,实时显示当前阀门的状态。
图9 主程序流程图
为克服偶然因素引起的高频干扰波动,采用中值滤波的方法对采样信号进行处理,连续采集13个信号,将之形成有序数据,取中间值作为本次的有效值,并对其进行归一化处理。经过处理后的采样信号分别作为阀位的输入值和输出值,若当前需要进行参数自整定则调用自适应模糊免疫PID算法整定PID参数输出PWM波驱动电磁阀。
图10 自适应模糊免疫PID算法流程图
根据上文所得到的数学模型,建立起相应的自适应模糊免疫控制系统、传统的模糊PID控制系统和常规PID控制系统。仿真时间取5 s,采样时间为0.01 s,设定输入值为10,Kp1=2(1-1.69f(·))。通过仿真来得到3个系统的响应曲线并比较它们的控制效果。结果如图11(第3 s时施加扰动):
图11 施加扰动下的控制系统仿真曲线
根据图11从响应时间来看,3种控制算法中自适应模糊免疫PID算法要优于模糊PID算法,但比常规PID算法要差;从超调量来看,常规PID算法的超调量为12.3%,自适应模糊免疫PID算法和模糊PID算法基本可以实现无差调节;从调整时间来看,常规PID算法为2.988 s,模糊PID算法为1.4 s,自适应模糊免疫PID算法为0.8 s;从抗扰动来看,自适应模糊免疫PID算法性能最好。
阀门阀位行程数据如表4所示。在3种控制算法下对整个系统进行联机调校,开度设置为从0%到100%,整个过程中记录阀门行程数据。其中,使用自适应免疫模糊PID算法进行参数自整定。可以看出,自适应免疫模糊PID算法能够最快达到目标值。通过仿真与实测对比,自适应模糊免疫PID算法性能最优。既避免了阀位抖动,又实现了无差调节,这对阀门长时间地稳定运行起着关键的作用[11]。
表4 阀门阀位行程数据表
提出一种以超低功耗芯片STM32L152芯片为核心的阀门定位器。硬件设计部分以低功耗为依据对外围电路器件进行选型,为以后升级开发留下电源利用空间。软件设计部分以自适应模糊免疫PID算法作为参数整定策略,依据实验结果该控制算法提高了系统的动态性能和稳态性能,特别是提高了阀门阀位控制精度和避免了阀位抖动问题。对阀门的操作方法进行了一定创新,多种操作方法为工业生产带来了便利性,满足了设计初衷。实践表明,控制系统在给定开度为100%时不到1.25 s输出达到目标值;低电流维持正常运行时功率仅为33 mW。