智慧农业精准环境监控体系建设及环境综合评价模型

1. 精准环控体系建设框架
在智慧农业建设过程中首先想到的恐怕就是针对整个农业覆盖区的环境进行监控,而这也是极有必要的。舒适的环境有利于作物、畜禽的生长及繁殖,尤其是对于畜禽养殖来说,不适的环境极易引发疾病、厌食、腹泻等问题,进而影响养殖场的生产效率及提升养殖成本。
可以这么说,随着国家信息化建设的大规划、大支持,在农业领域物联网系统的建设已经逐步成熟。在传感器的发展、控制策略的研究及相关数据的分析上有了长足的进步。但是在实际的运用中存在不少问题,如控制策略失效、数据分析缺失、环境数据与生产数据脱节等问题,鉴于此,本博客针对在推进智慧农业工作中出现的一些问题进行总结,提出建设精准环控体系的思路和一些启示。
总体而言,一个较好的精准环控体系(以生猪养殖场的环境控制为例)应该包含以下模块:监测系统、控制系统、数据挖掘分析三个模块。

精准环控整体框架

  • 监测系统
    监测系统应包括养殖生产区、员工生活区、场区及废水处理区的环境数据监控。栋舍内主要监控温湿度、有害气体(氨气、硫化氢等),员工生活区及场区的环境指标主要集中在对区域内的空气质量进行监控,废水处理集中在针对废水处理的效果监控,一般主要为COD、BOD、氨氮、总磷、pH等。视频监控系统主要出于安防的考虑一般会布置在养殖场区,大体来说,像阿里云所述的基于机器视觉的生猪养殖系统基本出于研究阶段,而且由于成本等考虑,一般生产企业是不会考虑的。
    监测系统主要获取养殖场内的环境基础数据,作为设备控制、环境—生产数据分析的基础数据来源。目前来说,环境监控系统比较成熟,在市面上基本上可以找到覆盖以上指标监测的设备供应商。特别提出的是针对养殖生产区的环境监控设置预警还是很有必要的,以下生产指标的标准来时国家标准(GBT17824.3-2008规模猪场环境参数及环境管理):
    在这里插入图片描述
  • 控制系统
    在生产区内一般可控制的设备主要有:风机、湿帘、 冷风机、灯光照明、分娩舍保温箱等。目前限于成本考虑,大多数生产企业还没有做到指标——设备之间的智能化控制,所谓智能化控制即是根据环境参数的变化而智能调节设备的运行状况;况且在华南区域,设备即是开启到最大档,温度依然降不到猪只舒适的范围。目前能做的基本上是远程控制设备的开关状态。
    设备的智能化控制策略依然处于研究阶段,控制策略、控制设备等依然需要耗费大量的物力财力来探索。
  • 数据挖掘分析
    数据的挖掘主要集中在环境质量分析、环控模型、环境数据与生产数据的关联分析。
    环境质量分析通过聚类分析、分类分析,综合评估养殖环境质量,成为控制系统的基础。因为养殖环境是一个相对复杂的环境体系,温湿度、有害气体等是其中最重要的指标,评价体系若以一种或两种指标为基准是不适宜的。以下将提供一种综合评价生猪养殖环境质量的模型供参考。
    环控模型,最简单的即是P-I-D控制,但是该种控制策略没有综合考虑环境内多种因素,属于古典的控制算法。理想化的想法应是根据综合环境评价体系的控制,建立的应是风机、湿帘、冷风机等等的综合控制策略。
    环境数据与生产数据的关联分析,基于物联网采集的环境数据建立相应的精准环控数据库,并建立环境数据与其他生产数据的关联分析。比如环境与饲喂数据的关联分析:猪只一段时间内饲喂行为的变化与环境数据的关联,可以得出对应猪只饲喂对环境的最适性;环境与育种数据的关联分析:母猪繁殖性能的变化及群体母猪繁殖性能的总体分析与环境数据的关联分析,可以得出对应母猪繁殖性能对环境的最适性;环境与疫病数据的关联分析:疫病发生的风险跟环境因素是紧密相关的,通过长期的关联分析可以得出疫病风险—环境的预警模型,进而在环境发生变化之前得出疫病发生的风险等级,提前做好防控措施。

2、生猪养殖环境综合评价模型
1)背景:猪舍是一个由多个环境因素之间相互影响、相互制约的复杂、非线性的系统,不可能有一个或者几个因素来评价其环境的适宜性。另一方面当猪舍环境质量变的不适宜猪只生活时,多因素的综合调控策略不容易实现,实际生产中往往只能实现个别重要因素的调控。本模型旨在构建一个猪舍环境综合评价模型,一方面可以综合评价猪舍环境的适宜性,另一方面可以用于今后设计调控策略时各因素的调整权重;
2)方法:多层次法二元比对确定各因素的权重、模糊理论构建各因素的隶属度函数、基于MATLAB平台实现模型;
3)评价模型的流程框架
在这里插入图片描述

  • 隶属度函数确定:
    隶属度函数:用取值于区间(0,1)的隶属函数A(x)表征x 属于A的程度高低。
    举例:温度为26.7时,温度的隶属度为:
    rt1=(27-26.7)/(27-23)=0.075; rt2=1; rt3=0.
    由此构建隶属度矩阵R;

  • 构造判断矩阵,得到因素权重值
    采用层次分析法构建判断矩阵,得到各因素的权重值W;
    在这里插入图片描述

  • 综合评价指数
    综合评价模型为B=W*R;
    评价原则:评价矩阵B={适宜、较为适宜、不适宜};三个维度的数值最大者即为评价结果。当综合评价结果为不适宜时,可以通过查看矩阵R的三个纬度值,确定具体那个因素的值不合理,为后续设备调控策略作参考;

  • MATLAB代码实现

%%育肥舍环境质量评价模型
%%输入环境参数:温度、湿度、风速、氨气、二氧化碳、硫化氢;
ZSHJCS=xlsread('文件名.xlsx');%写入猪舍环境参数数据;
ZS1=ZSHJCS(1,2:7);%调取某一时刻的环境参数数据
T=ZS1(:,1);
H=ZS1(:,2);
V=ZS1(:,3);
N=ZS1(:,4);
C=ZS1(:,5);
S=ZS1(:,6);
%%构建指标体系的权重(采用多层次法)
%%温度、湿度、风速、氨气、二氧化碳、硫化氢
 A=[1 4 2 5 5 4;1/4 1 2 2 3 2;1/2 1/2 1 3 3 3;1/5 1/2 1/3 1 2 2;1/5 1/2 1/3 1/2 1 1/2;1/4 1/2 1/3 1/2 2 1];
[v,d]=eig(A);%特征向量矩阵、特征值
 
d=eig(A);%特征值
 
max1=max(d);
 
n=find(d==max1);%查找
 
w1=v(:,n);
 
w=w1/sum(w1)%一致性指标,权重矩阵
W=w';
 
CI=(max1-6)/5;
 
RI=1.24;
 
CR=CI/RI
 
if CR<0.1
 
    fprintf('通过一致性检验\n');
 
else 
 
    fprintf('重新赋值因为一致性不被接受\n');
 
end
 
%%构建个指标体系的隶属度函数(针对育肥猪)
%%1、构建温度的隶属度
 
r1=smf(T,[23 27]);
if T<=23
    Rt1=1;  Rt2=0; Rt3=0;
else if 23<T<27
    Rt1=r1 ; Rt2=1 ;Rt3=0;
    else if T>=27
     Rt1=0 ; Rt2=0; Rt3=1;
        end
    end
end
%%2、构建湿度的隶属度

r2=smf(H,[65 75]);
if H<=65
    Rh1=1;  Rh2=0; Rh3=0;
else if 65<H<75
    Rh1=r2 ; Rh2=1 ;Rh3=0;
    else if H>=75
     Rh1=0 ; Rh2=0; Rh3=1;
        end
    end
end
%%3、构建风速的隶属度
 %冬季0.1~0.3;夏季1~1.5
%冬季
r3=smf(V,[0.1 0.3]);
if V<=0.1
    Rv1=1;  Rv2=0; Rv3=0;
else if 0.1<V<0.3
    Rv1=r3 ; Rv2=1 ;Rv3=0;
    else if V>=0.3
     Rv1=0 ; Rv2=0; Rv3=1;
        end
    end
end
%夏季
r4=smf(V,[1 1.5]);
if V<=1
    Rv1=1;  Rv2=0; Rv3=0;
else if 1<V<1.5
    Rv1=r4 ; Rv2=1 ;Rv3=0;
    else if V>=1.5
     Rv1=0 ; Rv2=0; Rv3=1;
        end
    end
end
%%4、构建氨气的隶属度
 
r5=smf(N,[10 25]);
if N<=10
    Rn1=1;  Rn2=0; Rn3=0;
else if 10<N<25
    Rn1=r5 ; Rn2=1 ;Rn3=0;
    else if N>=25
     Rn1=0 ; Rn2=0; Rn3=1;
        end
    end
end
%%5、构建二氧化碳的隶属度
 
r6=smf(C,[1300 1500]);
if C<=1300
    Rc1=1;  Rc2=0; Rc3=0;
else if 1300<C<1500
    Rc1=r6 ; Rc2=1 ;Rc3=0;
    else if C>=1500
     Rc1=0 ; Rc2=0; Rc3=1;
        end
    end
end
%%6、构建硫化氢的隶属度
 
r7=smf(S,[6 10]);
if S<=6
    Rs1=1;  Rs2=0; Rs3=0;
else if 6<S<10
    Rs1=r7 ; Rs2=1 ;Rs3=0;
    else if S>=10
     Rs1=0 ; Rs2=0; Rs3=1;
        end
    end
end
%%隶属度矩阵
R=[Rt1 Rt2 Rt3;Rh1  Rh2  Rh3;Rv1 Rv2 Rv3;Rn1 Rn2 Rn3;Rc1 Rc2 Rc3;Rs1 Rs2 Rs3];
%%评价矩阵
B=W*R
%%综合评价环境质量
[b n]=max(B);
for i=1:3
    switch n
        case 1
            EVALUATION='适宜';
        case 2
            EVALUATION='较适宜';
        case 3
            EVALUATION='不适宜';
    end
end
fprintf('当前猪舍环境:\n',EVALUATION);%输出综合评价结果
x=10;%10点时刻评价结果
plot(x,B(:,1),'o',x,B(:,2),'s',x,B(:,3),'d');
xlabel('时间');
ylabel('估值');
legend('适宜','较适宜','不适宜');

3.基于K—means的环境聚类分析
另一种场区空气质量的分析可以采用聚类分析的方式把一段时间的空气质量进行分类分析,如下代码将空气质量分成4类;
数据来源于http://archive.ics.uci.edu/ml/datasets.php?format=&task=&att=mix&area=&numAtt=&numIns=&type=&sort=nameUp&view=table

import xlrd
import numpy as np
from sklearn.cluster import KMeans
from sklearn import preprocessing
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']#解决绘图时中文显示乱码


#读入数据
Q_air_file = xlrd.open_workbook(r'C:\Users\Liu di\Desktop\数据统计分析\数据集\AirQualityUCI\AirQualityUCI.xlsx')
Q_air = Q_air_file.sheets()[0]
nrows = Q_air.nrows
ncols = Q_air.ncols
c1 = np.arange(0,nrows,1)
Q_air_mat = np.zeros((nrows,ncols))

for x in range(ncols):
    cols = Q_air.col_values(x)
    Q_air_mat[:,x]= np.matrix(cols)


#数据预处理
data_array = np.array(Q_air_mat[:,2:14])
min_max_scaler = preprocessing.MinMaxScaler()
data_scaler = min_max_scaler.fit_transform(data_array)

#构建模型
k = 4
interation = 100
model = KMeans(n_clusters = k, max_iter = interation)
model.fit(data_scaler)

#输出
label_col = model.labels_
cluster_data = np.column_stack((data_array,label_col))#带标签的矩阵

#绘图
a = np.sum(label_col == 0)
b = np.sum(label_col == 1)
c = np.sum(label_col == 2)
d = np.sum(label_col == 3)
number = [a,b,c,d]

name_list = ["0","1","2","3"]
plt.bar(range(len(number)),number,fc='b',tick_label=name_list)
plt.xlabel('类别')
plt.ylabel('数量')
plt.title('2004/03-2005/04空气质量分类结果')
for j,i in zip(range(len(number)),number):
    plt.text(j+0.5,i+0.5,'%.2f'%i,ha='center',va='bottom')#添加数据标签
plt.show()
  • 运行结果
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值