基于Matlab温室模糊控制的自动施肥策略研究*
2021-05-10周亮亮张国青程立艳汪甜甜
周亮亮, 张国青, 程立艳, 汪甜甜
(池州学院机电工程学院,安徽 池州 247000)
0 引 言
传统的温室种植基本上以人力为主、管理粗放、自动化程度不高,对水和肥的利用率较低[1,2]。造成了水资源浪费和环境的污染,党的十九大报告明确提出了对环境保护的具体纲领和规划路线,对未来的社会发展指明了方向。提高水和肥的利用效率最有效直接的方式就是采用自动精准灌溉和施肥技术,国外一些发达国家如以色列、荷兰等国,由于水资源的严重缺乏,他们很早就投入这方面的研究,现已形成温室配套装备齐全和柔性生产自动控制一体化的产业模式[3,4]。随着人工智能和物联网技术的进步,我国也开始在温室中逐渐采用自动生产控制技术,由于基础环节薄弱,加上外界技术的封锁,我国的温室灌溉施肥技术和生产管理目前还是处于小规模的生产试验当中[5]。基于以上原因,设计了一套以模糊控制策略思想的温室灌溉施肥系统。
1 灌溉施肥结构及工作原理
灌溉施肥机结构组成图如图1所示,主要由供水模块,供肥模块,肥液在线混合模块,灌溉施肥回路模块,控制模块等部分组成。
①供水模块
供水模块由蓄水箱,水泵,过滤器,水表,压力传感器,浮球水动阀等组成。当温室作物需要灌溉或施肥时PLC控制水泵启动,水流经过过滤器、水表、压力传感器、浮动开关到达混肥罐,当混肥罐中水位上升到一定高度时,浮球水动阀动作开启,供水模块中水压超过设定值,PLC控制水泵停止运行,供水结束。
②供肥模块
供肥模块由肥料ABC,酸碱罐,过滤器,电磁阀,文丘里施肥器等组成,当灌溉回路中电导率EC值和酸碱度PH值未达到设定值,PLC控制电磁阀10动作开启,肥料液和酸碱液通过文丘里施肥器吸入混合罐17中,肥料ABC提供农作物的氮、磷、钾等营养成分,酸碱液调配混合罐中的酸碱度,使农作物达到最佳生长状态。其中文丘里施肥器的工作原理:当文丘里管中有水流流过,由于喉部细两头粗,根据流体力学原理,喉部会产生负压,从而无需提供动力就可以吸取肥料[6]。
③肥液在线混合模块
供水模块的水与供肥回路的肥料在混合罐中在线混合,当混合罐中水位超过一定高度时,通过PLC控制电机带动叶片轮使肥料、酸碱度和水充分混合,增加叶片轮的目的是提高肥液混合效率,以减少EC/PH传感器检测误差和系统的延迟性,提高系统的控制精度。
图1 灌溉施肥控制系统构成
1.蓄水箱 2.水泵 3/9/18.过滤器 4.水表 5.压力传感器
6.浮球水动阀 8.酸碱罐 10.电磁阀 11.文丘里施肥器
12.EC/PH传感器 13.压力表 14.稳压阀15.施肥泵
16.叶片轮 17.肥料混合罐 19.电磁阀 20.PC/PlC控制器
21.滴灌支管 22.农作物 23.滴头
④灌溉施肥回路模块
灌溉施肥回路模块由施肥泵,稳压阀,压力表,EC/PH传感器,电磁阀,滴灌支管、滴头等组成。PLC控制施肥泵向管网中提供肥液,只要管网中的压力值超过设定值,稳压阀自动溢流到混合罐中,保证了灌溉施肥管网中恒定的压力,使滴头处在最佳工作状态。本系统也可以只灌溉不施肥,只需把肥料回路中的电磁阀关闭即可。
⑤控制模块
控制模块由下位机PLC和上位机PC组成,PLC接受压力传感器、EC/PH传感器等信号通过模糊控制算法输出控制施肥电磁阀开闭时间,以达到系统施肥平衡。通过组态王设计上位机监控系统,用户可以通过PC界面直观监控系统运行状态。
2 水肥混合的模糊控制器设计
本系统的控制量为供肥模块的电磁阀开启时间,因本系统中进水流量,进肥量、水肥混合效率以及出水流量和压力值都是不确定的,尤其进肥流量是取决于管道中的压力值,而管道中的压力值是随时变化的,加上采集的电导率和酸碱度存在延时,从而无法建立起电磁阀开启时间和灌溉回路中电导率的传递函数,系统又存在滞后和惯性大的特点[7],所以本系统采用模糊控制。 本文采用典型的Mamdani型二输入一输出模糊控制[8]。原理如图2所示,以温室番茄种植为例,选取混合罐中的电导率Ec值作为被控对象,与系统设定的番茄适宜生长浓度比较,计算误差E值和误差变化Ec值,作为模糊控制器的输入,经过模糊决策输出控制量U值,后换算为电磁阀开启时间以吸取母液罐的肥料,从而控制混合罐中的电导率值。
图2 模糊控制原理
图3 E的隶属度函数
2.1 确定输入和输出量的论域离散点以及量化因子和比例因子
本算法控制器的输入分别为电导率误差和电导率误差的变化。电导率误差,其中s为温室番茄适宜的生长电导率值,为期望输出值。电导率误差变化为,输出量为电磁阀开启时间,它们的变化范围根据实际情况确定如下:
电导率误差E的确定:
温室番茄理想的适宜生长电导率值为2100us/cm,也就是2.1ms/cm,根据实际的检测电导率在1.7 ms/cm~2.5 ms/cm之间,我们制定其电导率控制范围为[2.1-0.4,2.1+0.4],设2.1为混合罐电导率给定值,取其论域为:{-4,-3,-2,-1,0,1,2,3,4};离散点数为9,则其量化因子可定位k1=4/0.4=10,因此实际误差与离散点的对应关系为
误差(ms/cm):{-0.4 -0.3 -0.2 0.1 0 0.1 0.2 0.3 0.4}
对应的离散点: { -4 -3 -2 -1 0 1 2 3 4}
电导率误差Ec的确定:
根据简易模型的实时监测,确定在一个采样周期内的误差变化范围为[-0.2,0.2],其论域也取为{-4,-3,-2,-1,0,1,2,3,4},即量化为9个等级,其量化因子为k2=4/0.2=20
实际的误差变化与离散点的对应关系为
误差变化(ms/cm):{-0.2 -0.15 -0.1 0.05 0 0.05 0.1 0.15 0.2}
对应的离散点: { -4 -3 -2 -1 0 1 2 3 4}
表1 输入和输出变量的模糊子集参数设定值
输出控制量U的确定:
经过A/D转换后,PLC用以控制电磁阀开启的时间,输出范围为[0 40s],其论域也取为{-4,-3,-2,-1,0,1,2,3,4},比例因子为ku=4/20=0.2
电磁阀开启时间(s):{0 5 10 15 20 25 30 35 40}
对应的离散点: {-4 -3 -2 -1 0 1 2 3 4}
2.2 模糊子集的选取与模糊赋值
对于电导率误差及误差变化,在它们的论域上定义模糊子集为NB(负大)、NS(负小)、ZE(零)、PS(正小)、PB(正大)。
控制输出量的模糊子集为zero time(零时)、short time(短时)、middle time(中时)
Medium long time(较长时)、long time(长时)。
常用的隶属度函数有三角型、高斯型、钟型等[9],本模糊控制输入选择高斯型隶属度函数,输出选择三角型隶属度函数。输入输出隶属度函数参数设定如表1所示:
2.3 建立控制规则
根据理论分析及实际操作人员的经验,并经过一定的试验,分析总结得出如表2所以的规则集。
表2 电导率模糊控制规则
对于表中所示的模糊规则,可以写成一系列的if-then语句,由于e、ec各有5个语言输入值,故共有5x5=25条if-then语句。
如规则If e=NB and ec=NB then u=long time;
假定某一时刻检测到电导率值为1.8,与设定值2.1差值为-0.3,乘以比例因子10为-3,与理想设定值差得很多,大概率为NB,若误差还是很快速率向更低值变化,误差变化大概率为NB,意思此时与理想值差的很多,而且还会继续很快变小,所以模糊控制决策告诉PLC要长时间打开电磁阀吸取肥料。
3 Matlab模糊控制器实现
进入Matlab主界面后输入fuzzy即可出现模糊控制(FIS)编辑器,打开FIS编辑器后,选择Edit(编辑)选项下的Add Variable(增加变量),系统默认的是mamdani控制类型,
图4 U的隶属度函数
图5 模糊控制规则
图6 mamdani型FIS文件
图7 模糊控制的输入和输出图
双击输入变量,出现输入变量的对话框,增加5个语言变量,选择gaussmf(高斯型)隶属度函数,根据表1中参数修改输入变量e和ec的隶属度函数,Ec和E的参数一致,E的隶属度函数如图3所示。同样道理修改输出u的隶属度函数,选择trimf(三角型)隶属度函数,如图4所示。接着制定模糊控制规则,双击中间的白色图案,出现模糊控制规则编辑器,根据表2建立的模糊控制规则如图5所示。这样就建立起了二输入单输出的mamdani型FIS文件,如图6所示。
表3 电导率模糊控制表
去模糊化方法选择centroid(重心法),借助matlab规则计算,四舍五入后得到电导率的模糊控制表3,把模糊控制表中的数据存储到PLC中。
图8 电导率仿真波形
图9 simulink环境下的电导率模糊控制模型
如此设计的模糊控制器的输入和输出的关系曲面如图7所示,从图中可以看出控制曲面都成非线性,对于非线性控制问题,很难建立起输入输出之间的传递关系,采用模糊控制将很好地模拟人的控制习惯,解决温室自动灌溉施肥问题。
4 Matlab下Simulink仿真实现
对于前面建立的模糊控制规则,将搭建仿真测试输入输出平台验证其有效性,我们用Matlab下的Simulink对其进行仿真,simulink中有专门的“Fuzzy Logic Toolbox”控制模块,从中选择Fuzzy Logic Controller模块,修改其与存入workspace的FIS文件名称相同。首先对系统进行辨识,得出阶跃响应曲线,根据切线法得出传递函数为:,把其他需要的模块移至模型编辑器中,搭建的simulink模型如图9所示,设定好模型的仿真时间和步长等参数后,仿真结果如图8所示,从图中可以看出70s左右系统趋于稳定,控制比较平稳。
5 结 语
设计的一套温室灌溉施肥系统,采用水和肥在混合罐充分混合,同时利用施肥泵输送到灌溉管网供温室作物生长吸收。由于无法建立起作物吸收养分的电导率指标和电磁阀开启时间的函数关系,本文采用了模糊控制规则,利用Matlab模糊控制器模块,建立起模糊控制规则,计算出电导率模糊控制规则表,最后利用Simulik对其模型进行仿真,仿真结果表明,控制平稳,满足温室灌溉施肥控制要求。