基于模糊PID控制的节水灌溉智能控制系统设计
2020-05-25刘洪静高金辉
刘洪静,李 黎,高金辉
(1.河南师范大学电子与电气工程学院 增材智能制造河南省工程实验室, 河南 新乡 453007;2.新乡水文水资源勘测局, 河南 新乡 453000)
我国是一个农业大国,农业灌溉用水占比较大,传统的灌溉方式导致水资源的严重浪费[1],不符合我国农业节水灌溉的要求。为了解决这一问题需要发展一种较高水平的灌溉技术,以作物对水分的需求量为依据,适时适量灌溉,使作物生长在最佳状态。
由于农业灌溉对象是一个大惯性、 非线性和纯时延的系统,无法对其建立精确与统一的数学模型[2],传统的PID控制,理论成熟,参数调整方便[3],但控制精度达不到要求,存在超调的现象;模糊控制是一种非线性控制,不需要建立精确的数学模型,根据领域专家知识或操作人员的经验就可制定有效的控制策略,但其抗干扰能力欠佳[4]。
本文根据两者的优点设计了一种新的模糊PID控制方法,提高了控制精度和抗干扰能力;采用信电共线新的通讯方式,通过在2根低压供电总线上调制通讯控制信号(满幅电压发送,电流回传接收),系统无极性接线的方法替代传统供电和通讯分离的多线制电缆,克服了传统RS232、RS485有线通讯方式[5]传输距离有限、通讯线束多、接线复杂的问题。并利用Modbus通信协议、Simulink仿真和滴灌实验验证了其可行性,取得了较好的效果,实现了节水灌溉的智能控制,在可控范围内最大限度地减少灌溉用水的浪费[6],解决了我国灌溉水资源利用率低、管理水平滞后、劳动强度大、人机交互能力差等弊端。
1 系统总体设计方案
本系统由:模糊PID控制器、MCGS组态系统、信电共线主机模块、从机模块,土壤湿度传感器,水流传感器和电球阀组成。MCGS组态系统用于设定土壤湿度、显示各个分机和传感器状态,并能与主机模块通信,控制相应的从机。主机模块和从机模块之间通过Modbus协议进行通信。从机土壤湿度传感器采集土壤信息,并将信息通过主机模块反馈给模糊PID控制器,经算法运算处理后,将输出量通过组态系统反馈给主机模块,从而控制相应分机的电球阀的开闭,实现节水灌溉的智能控制。水流传感器检测水流流量及反馈电动球阀的开闭状态。系统总体结构如图1所示。
图1 系统总体结构图
2 信电共线硬件设计
2.1 主机核心电路设计
主机核心电路如图2所示,系统支持总线电压直流12~48 V,通过电压变化信号向从机发送控制信号。模块EV620通过485总线与MCGS组态屏通信,BRK为总线故障指示引脚。
图2 主机核心电路
当EV620接收到MCGS发来的串口信号,需要向从机发送信号时,通过控制引脚BH使总线输出脚L1的电压值在满足供电的前提下小范围内上下波动,从而使总线上形成规律性变化的电压信号,以供从机识别。
当EV620接收到从机发来的应答信号时,引脚BL检测总线上的电流变化,将电流信号转变为可识别的电压信号,通过串口发送给MCGS并显示。
2.2 从机核心电路设计
从机核心电路如图3所示,控制芯片PB331的PI引脚为信号输入端,检测主站发送来的电压信号,以识别主站发来的指令;PO引脚为信号输出端,通过控制T1的导通控制总线电流,向主机发送应答信号。MCU单片机为带有 flash的增强型8位8051内核微控制器,通过IO口读取传感器数值、电球阀状态,并控制电球阀运行。TR为土壤湿度传感器,SL为水流传感器,Valve为电球阀。
图3 从机核心电路
当PB331的PI引脚检测到主站发来的电压信号后,通过串口发送给MCU执行相关操作。
当PB331接收到MCU发送来的应答信号时,控制PO脚使T1导通或关闭,从而使总线上形成小范围规律性变化的电流信号,以供主机识别。
3 组态系统介绍及信协议设计
3.1 MCGS组态系统介绍
MCGS组态屏是一套以Cortex-A8 CPU为核心的高性能嵌入式一体化触摸屏[7],利用MCGS人机界面实时显示系统参数,进行系统参数设置和运行控制[8],其建立的组态系统工程由主控窗口、设备窗口、用户窗口、实时数据库及运行策略等5个部分构成。本组态系统设有登录界面、主界面、分组界面等若干界面,系统主界面如图4所示。
图4 组态系统主界面
3.2 通信协议设计
为了便于和MCGS组态系统通信,信电共线主、从机均采用Modbus-RTU通信协议[9,10],通过主机向从机发送请求,从机向主机响应的方式,实现数据交互。
本设计是一台主机对若干台从机进行监控,定义的分机寄存器地址如表1所示,并根据具体情况编写了两个控制指令:主机读取从机状态的命令和主机控制从机电球阀开关的命令。其控制格式如下。
主机检测灌溉状态,读取从机状态的命令格式:从机地址、0x04、0x00、0x04、0x00、0x05、低位CRC、高位CRC。第一个0x04为功能码:单个读;0x00、0x04为读取的第一个数据寄存器的地址, 0x00、0x05为读取的寄存器个数,即从寄存器0x04开始顺序读取5个寄存器的地址;高、低位CRC为校验码。
主机控制相应从机电球阀开关的命令格式:从机地址、0x06、0x00、0x04、0x00、0x01或0x00、低位CRC、高位CRC。0x06为功能码:单个写;0x00、0x04为电球阀状态寄存器地址;0x00、0x01为打开电球阀指令,0x00、0x00为关闭电球阀指令;高位、低位CRC为校验码。
表1 分机寄存器地址分配表
注:电球阀运行状态:开启时为1,关闭时为2,空闲时为0,动作超时为0xff。
4 模糊PID控制器设计
4.1 模糊PID控制器原理介绍
模糊PID 控制器原理[11]如图5所示。
图5 模糊PID 控制器原理图
控制器中,土壤湿度偏差e(k)由k时刻的土壤湿度设定值r(k)与实际检测值y(k)构成:
e(k)=r(k) -y(k)
(1)
偏差变化率ec(k) 由当前时刻误差e(k)与前一个时刻的误差e(k-1)构成:
ec(k)=e(k) -e(k-1)
(2)
输出变量为u(k),由e(k)、ec(k)及变量Kp、Ki、Kd构成:
(3)
通过偏差和变化率的输入,依据模糊规则得出相应的变化量ΔKp、ΔKi、ΔKd,并和原来设定的PID参数进行相加,得出需要传递给输出的变量Kp、Ki、Kd。
设置湿度偏差e(k)和偏差变化率ec(k)的基本论域分别为[-5,+5]和[-3,+3],对应的离散论域均为{-3,-2,-1,0,1,2,3},则量化因子Ke=3/5=0.8,Kec=3/3=1。设置输出量u基本论域为[0,30],由于输出量不存在负值,离散论域u设为{0,1,2,3,4,5},则比例因子Ku=30/5=6。湿度偏差e、湿度变化率ec和变量ΔKp、ΔKi、ΔKd均采用三角隶属度函数,函数曲线见图6。
4.2 模糊PID控制规则
本模糊控制规则建立的原则是在输入偏差e(k)变大的时候向误差减小的方向进行调整,当误差变小的时候要保持系统稳定,尽可能避免出现超调现象,具体规则如下,逻辑控制表见表2。
(1)当偏差e(k)较大时,代表土壤湿度相差较大,应该加快系统调节,加大ΔKp并减小ΔKd使系统快速到达预定的值。为防止系统产生超调,应当取较小的ΔKi值。
(2)当偏差e(k)适中时,代表土壤湿度在向设定湿度值靠近,变化范围不易过大,系统应尽量保持在一个相对稳定的状态下,应当把ΔKp向较小的方向调整,ΔKi、ΔKd取适中值即可。
(3)当偏差e(k)较小时,代表土壤湿度接近设定值,为了增加系统的容错性,应取较大的ΔKp、ΔKi值,为了避免系统发生振荡,ΔKd的取值尤为重要,一般取中等大小。
4.3 simulink仿真
根据所述的模糊PID控制器,运用 Simulink进行仿真,来验证其可行性。由于实际土壤水势曲线为非线性,土壤湿度受多种因素影响,经过查阅文献资料,采用土壤湿度基质变化率的公式来反映变化函数[12]:
Δy= 100 sin (2 πx/400)
(4)
式中:x为经过换算的开阀时间;Δy为土壤湿度变化率。
通过单独 PID 控制器仿真分析,Kp、Ki、Kd的初始值分别为13、0.5、0.1 且Kp取值在[8,18],Ki取值在[0,1],Kd取值在[0,0.2]时,系统的控制效果较好。因此输出比例因子ap=18 -13/10=0.5,ai=1 -0.5/10=0.05,ad=0.2 -0.1/10=0.01,变量Kp、Ki、Kd表达式如下:
Kp=0.5ΔKp+13
(5)
Ki=0.05ΔKi+0.5
(6)
Kd=0.01ΔKd+0.1
(7)
表2 模糊PID逻辑控制表
以设定湿度为30%为例,仿真结果如图7所示。发现经过48 s后湿度达到设定值并保持水平,超调量较小,响应时间短,效果优于单一的模糊控制器和PID控制器。
图7 simulink仿真结果
5 系统测试
5.1 系统通讯测试
以组1中关闭的2号从机为例。检测灌溉状态时,发送读取2号从机状态的指令为:
0x02、0x04、0x00、0x04、0x00、0x06、0x31、0xFA。调试工具返回值RX为:
0x02、0x04、0x0C、0x00、0x00、0x00、0x00、0x00、0x01、0x00、0x00、0x00、0x00、0x00、0x1C、0xC7、0xBF。
当土壤湿度值未达到设定值,需要灌溉时,发送开启2号从机电球阀的指令为:
0x02、0x06、0x00、0x04、0x00、0x01、0x09、0xF8。
调试工具返回值RX为:
0x02、0x06、0x00、0x04、0x00、0x01、0x09、0xF8。组态测试效果如图8所示。
图8 系统通讯测试图1
当土壤湿度值达到设定值,需要结束灌溉时,发送闭2号电球阀的指令为:
0x02、0x06、0x00、0x04、0x00、0x00、0xC8、0x38。
调试工具返回值RX为:
0x02、0x06、0x00、0x04、0x00、0x00、0xC8、0x38。组态测试效果如图9所示。
图9 系统通讯测试图2
5.2 节水灌溉测试
根据已搭建好的节水灌溉系统,设定土壤湿度为20%,采用滴灌的方式对某大型盆栽进行实验,土壤湿度传感器插入土壤深度为7 cm,秒表计时100 s,测得数据曲线如图10所示。实验结果表明该节水灌溉系统响应上升时间短,在误差允许范围内超调量较小,具有较强的稳定性和鲁棒性。
图10 土壤湿度测试图
6 结 语
本设计基于模糊PID算法,利用信电共线2线通讯方式和Modbus协议,结合MCGS组态系统,以设定的土壤湿度值作为灌溉的依据,研究并设计了一种节水灌溉智能控制系统。实验证明该系统具有设计合理、安全可靠、性能稳定、操作简单、实用性强等优点。解决了传统灌溉水资源浪费大、安全性差、人机交互能力不强的问题,达到了节水灌溉的目的,在灌溉领域具有一定的实际应用价值。