迪克逊准则matlab,浙江科技学院学报

引言

传统的农业栽培需要遵循季节性及周期性的栽培规律,受外界环境的影响较大,相应的栽培技术无法得到良好的栽培结果[1]。而温室大棚通过环境控制器调节温室环境,为作物提供了合适的生长环境。因此,它在农业领域的应用越来越广泛,温室环境控制系统的研究成为人们关注的热点[2-5]。韩毅[6]提出了一种温湿度变结构模糊控制方法,将控制过程分为“快速控制”和“精细调节”两个过程,以改善控制系统稳态性能; 左志宇等[7]提出了一种基于光照的温室加热系统模糊PID控制(proportional-integral-derivative conrtol,比例-积分-微分控制)方法,利用自然光对温度进行调节,以提高控制系统的动静态性能。但温室各环境因子相互影响,以上两种对单一对象的控制方法均无法达到最优的控制效果。王宪磊等[8]提出了一种基于模糊控制专家系统的智能温室控制方法,结合多信息融合的原理,提高温室环境参数测控的决策准确性; 邢希君等[9]提出了一种基于双模糊控制器的智能控制方法,加入分段控制以实现温室内全天候自适应智能控制。但这两种方法中的传感器在采集数据时存在故障及数据失真等问题,而系统并未对采集数据进行处理,易影响控制的效果。在上述研究的基础上,本文采用狄克逊准则(Dixon Criterion)及改进型自适应加权融合算法对采集的环境因子数据进行预处理,利用模糊控制方法,以温室内环境因子偏差值作为输入,温室环境控制器信号作为输出,研究数据融合及模糊控制方法在温室大棚中的应用,以提高数据的可靠性、稳定性及系统的响应速度。1 系统整体设计

1c3a612e817994d74439ab346dfd2815.png

图1 温室大棚控制系统整体结构

Fig.1 Architecture of greenhouse control system

温室大棚控制系统主要由数据采集、数据传输及数据决策3个部分组成,其整体结构如图1所示。系统由终端传感器采集温室内温度、湿度、光照强度3个环境因子的数据,并无线发送至ZigBee协调器; ZigBee协调器通过WiFi将采集到的数据上传到控制中心; 控制中心采用数据融合及模糊控制方法对3个环境因子数据进行融合判断,若3个环境因子数据不在设定值范围内,则向环境控制器发送控制命令,以达到调节温室环境的目的。2 数据融合

温室环境受多种因素影响,单一传感器测量数据存在监测不全面、准确度低等问题[10],多传感器数据融合对待测的多源信息进行融合,与单一传感器的测量结果相比,能获得更高的检测精度[11]。因此,本研究采用2级数据融合方案:第1级采用狄克逊准则,克服粗大误差(即出现明显超出规定条件下预期的误差),提高数据的可靠性; 第2级采用改进型自适应加权的融合算法,提高数据的准确度。2.1 狄克逊准则

在测量过程中,疏忽误差的存在将使得数据可靠性降低,导致控制出现偏差。格拉布斯准则(Grubbs Criterion)适合测量次数偏小的情况,一次只能剔除一个误差,拉伊达准则(Pauta Criterion)适合测量次数趋于无穷大的情况,而狄克逊准则通过极差比判定、剔除异常数据,不用计算均值与方差,可一次性剔除多个异常值,方法更为简便[12],具体过程如下。

将采样数据v(n)按值的大小排成顺序统计量,n(3≤n≤7)为采样点个数。当v(n)服从正态分布时,统计量

γ10=(v(n)-v(n-1))/(v(n)-v(1));

γ'10=(v(2)-v(1))/(v(n)-v(1))。

设D(α,n)为狄克逊检验的临界值,取显著水平α为0.01,当γ10>γ'10、γ10>D(α,n)时,v(n)为异常值; 当γ10D(α,n)时,则v(1)为异常值; 否则没有异常值。重复以上过程,直到没有异常值。剔除异常值后对余下数据进行算术平均法融合,融合后的数据作为此次采集的最终结果。2.2 改进型自适应加权融合算法

将某时刻的采样数据平均分为6组,一共有n个数据,其中第k组为Xk1,Xk2,…,Xknk(k=1,2,…,6,∑6k=1nk=n),分为以下2个步骤:

1)计算每组的算术平均值Xk和标准误差σk,得

a089fc38c29ed484ccabe62bdfe45dc3.png

根据统计学中分批估计理论[13-14],将6组数据平均分为3组,其中第j组的融合值方差Dj、数据融合值Tj分别为

Dj=(σ22jσ22j-1)/(σ22j-1+σ22j)(j=1,2,3);(1)

Tj=(σ22jX2j-1+σ22j-1X2j)/(σ22j+σ22j-1)。(2)

2)因不同分批数据融合值对应不同的权值,以权值最优分配原则对式(1)~(2)所得出的方差Dj、融合值Tj进行自适应加权,得到最小总均方差,以提高数据融合精度。

引入加权因子wk(∑3k=1wk=1,k=1,2,3),计算数据融合值

X=∑3k=1wkTk。

计算总均方误差

σ2=∑3k=1w2kσ2k。

由多元函数求极值理论,计算得

w'k=1/(δ2k∑nk=11/(δ2k)),

取得最小值,此时最优的融合结果

X=w'kTk。2.3 数据采集及分析

记录温室大棚内某次由温度传感器采集并上传的温度值,采用狄克逊准则进行第1级数据处理并分成6组,每组4个数据,结果见表1。

9d338d691feeb7767612ca004bf70ab8.png

表1 温室大棚6组温度采集数据

Table 1 Six sets of temperature data collected in greenhouse

3b9d58d0957025e0962f0cf0ae843eb6.png

表2 3种算法融合结果对比

Table 2 Comparison of fusion results of three algorithms

对表1中的数据进行第2级融合,此时对应的融合值X=26.23,方差σ2=0.001。分别用算术平均法、自适应加权算法及本文算法对表1数据进行处理,得到的融合值及方差见表2。

由表2可知,本文所使用的数据融合算法方差最小,因此准确度最高。3 模糊控制

利用MATLAB软件的模糊逻辑工具箱设计模糊控制器,将传感器采集的环境因子值与设定的目标值进行比较,得出差值后经过模糊化转换成模糊量,通过模糊规则将模糊输入量进行模糊推理后,得出模糊输出控制量,最后对模糊输出控制量进行反模糊化处理得到精确量并发送至环境控制器,以达到控制温室环境的目的。温室环境控制模型如图2所示,系统以温室内的温度、湿度、光照度3个环境因子作为输入量,以对输入量影响程度较大的遮光帘、加热器、天窗、加湿器、LED补光灯及通风机作为输出量,建立3输入、6输出的模糊控制系统。

9087862d6790663562099fb8ccabea9d.png

图2 温室环境控制模型

Fig.2 Model of greenhouse environmental control

3.1 模糊化

记温度、湿度、光照度的设定值与检测值的相对误差分别为eT、eH、eL,定义eT、eL的论域为[-5,5],eH的论域为[-10,10],eT、eH的语言变量选择为NB(极小)、NS(偏小)、ZO(适中)、PS(偏大)、PB(极大),选择三角形隶属函数,eL的语言变量选择为N(暗)、ZO(适中)、P(亮),选择三角形和梯形相结合的隶属函数。

温室环境控制器的输出通过控制相应设备的运行时间来实现开度的控制。定义遮光帘(U1)、加热器(U2)、天窗(U3)、加湿器(U4)、LED补光灯(U5)及通风机(U6)的论域为[0,3],语言变量为A(全开)、B(半开)、C(关闭),选择三角形隶属函数。以温度和遮光帘为例,隶属函数图像如图3所示。

9ebbc6e8c60c1771ecbb18938ab5eb39.png

图3 隶属度函数

Fig.3 Membership function

3.2 模糊规则

模糊规则一般为专家及工作人员经过长时间总结的实践经验形成的模糊条件语句,结合本文系统控制的要求,我们将环境控制器对环境因子的影响程度进行合理度划分,制定模糊控制规则。模糊语句共有5×5×3=75条,其中部分模糊规则控制见表3。

e11b7d810d77f79bb6102770f9e80bb4.png

表3 部分模糊规则控制表

Table 3 Partial fuzzy rule control table

3.3 模糊推理

模糊推理根据模糊控制器的输入和模糊控制规则,得到输出变量加热器、通风机及补光灯等多个环境控制器模糊控制的结果,由于环境控制设备可调节,因此本文使用Mamdani型推理方法[15-16]。对多输入、多输出系统的模糊推理转化为多输入、单输出系统的模糊推理,即对每个环境设备控制器的输出单独进行分析[17]。

通过模糊推理得到的结果为一个模糊向量,不能直接使用,需要进行解模糊,转化为实际值。本文采用加权平均法以得到实际输出值

U=(∑ni=1u(Ui)Ui)/(∑ni=1u(Ui))。4 试验及分析

根据实际温室大棚的特点,我们设计了温室试验模型。首先对无线通信模块供电,传感器采集节点合理布置,然后对室内的温度、湿度和光照强度等参数值进行采集。为了验证本文方法的有效性,设定温室目标温度为25 ℃、湿度为60 RH%、光照度为1 500 lx,每隔1 min采集1次数据,采用2级数据融合对数据进行预处理后,利用模糊控制算法进行决策控制,控制过程中,将3个环境参数的变化值用MATLAB软件绘制成相应曲线,如图4所示。

1409a49216d55343909d8dab11a419ca.png

图4 温室环境因子变化曲线

Fig.4 Curve of changes in environmental factors in greenhouse

由图4可知,3个环境因子均在10 min内接近设定值,其中,温度的相对最大波动值为2.1%,湿度的相对最大波动值为2.54%,光照强度的相对最大波动值为2.36%,数据处于稳定时波动范围较小。由此可见,相比较于文献[9]中使用的方法,本文采用的2级数据融合处理方法测量数据的准确度更高,因此更能反映温室内的真实环境状况,更有利于提高控制精度。5 结 语

温室环境具有参数多、滞后性强、外界干扰大等特点,难以对其建立精确的数学模型进行控制[18]。本文针对当前温室大棚控制系统存在的不足提出了数据融合及模糊控制方法,试验结果表明,采用2级数据融合算法对数据进行预处理提高了数据的可靠性及数据融合的精度; 采用模糊控制方法能使温室环境快速接近设定值并维持在稳定状态,可满足温室环境的控制要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linq表达式和Lambda表达式用法对比

什么是Linq表达式&#xff1f;什么是Lambda表达式&#xff1f;前一段时间用到这个只是&#xff0c;在网上也没找到比较简单明了的方法&#xff0c;今天就整理了一下相关知识&#xff0c;有空了再仔细研究研究 public Program() { List<Student> allStudent new List<…

使用FlexDeploy对融合中间件应用程序进行自动化软件测试

自动化软件测试是任何软件组织都应执行的强制性活动之一&#xff0c;以保证其产品质量。 但是&#xff0c;此过程通常变得非常复杂&#xff0c;尤其是涉及由多个不同部分组成的现代复杂系统的自动化测试时。 所有这些部分都基于不同的技术&#xff0c;显然&#xff0c;应该使用…

uploadify插件的使用

插件&#xff1a; uploadify.css jquery.uploadify.js bootstrap html代码&#xff1a; <input type"file" name"uploadify_coverimg" id"uploadify" /> <div id"the_coverimg"></div> js代码&#xff1a; $("…

wxlogin php,wxlogin.php

if($_GET[echostr]){echo $_GET[echostr];die();}/*** 开发规范&#xff1a;* 1.不同版本不同控制器以及模板* 2.不同版本不同数据库&#xff0c;但是对应数据表表结构必须一致* 3.不同版本共用service层&#xff0c;所以修改表结构必须所有版本统一*/// ---------------------…

关于人生倒计时的一个小玩意,纯属业余

人生倒计时 人生倒计时 出生年份&#xff1a; 出生月份&#xff1a; <!DOCTYPE html> <html id"spLianghui"> <head><meta http-equiv"Content-Type" content"text/html; charsetgb2312" /><title>人生倒计时<…

java 反编译项目_Java 7 –反编译项目硬币

java 反编译项目大家好&#xff0c;该是从2012年开始写作的时候了。正如您在其他博客中可能已经看到的那样&#xff0c;有一些更改可以使您使用Java编程时的开发人员生活变得更加轻松&#xff1a;Diamond运算符&#xff0c;Switchs中的Strings&#xff0c;尝试使用资源&#xf…

日期格式无法识别 oracle,Oracle时间统计 - 不以物喜-不以己悲的个人空间 - OSCHINA - 中文开源技术交流社区...

select count(*) from Member_user where to_char(CREATEDATE,yyyy-mm-dd)to_char(sysdate,yyyy-mm-dd); --今天select count(*) from Member_user where to_char(CREATEDATE,dd)to_char(sysdate,dd); --当天&#xff0c;所有月份的这个号select count(*) from Member_user whe…

JavaOne 2015继续,Java将永远存在(……也许是长篇大论)

好的。 也许我的标题太夸张了。 我确实相信Java&#xff0c;生态系统&#xff0c;社区&#xff0c;虚拟机和母编程语言将会存在很长一段时间。 有什么可以偏离的&#xff1f; 假设在我的酒店房间中花费大量时间&#xff0c;在我的演讲中增加技巧之间&#xff0c;我认为这将是一…

生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间

首先在oracle中查询表空间的使用情况&#xff0c;确认是哪个表空间不足。select df.tablespace_name “Tablespace”,df.bytes/(1024*1024) “Total Size(MB)”, sum(fs.bytes)/(1024*1024) “Free Size(MB)”, round(sum(fs.bytes)*100/df.bytes) “% Free”, round((df.bytes…

VC包含目录、附加依赖项、库目录及具体设置

包含目录&#xff1a;#include <headerfile.h>中headerfile.h的搜索目录。如果有XXX.h找不到&#xff0c;设置这个目录可以解决。附加依赖项&#xff1a;C的库会把函数、类的声明放在*.h中&#xff0c;实现放在*.cpp或*.cc中。编译之后&#xff0c;*.cpp&#xff0c;*.cc…

oracle catalog命令,db2 catalog tcpip 命令咨询?

使用 CLP 从客户机编目 TCP/IP 节点编目 TCP/IP 节点会在描述远程节点的 DB2 客户机节点目录添加一个条目。此条目指定客户机用来访问远程主机所选择的别名(node_name)、hostname(或 ip_address)和 svcename(或 port_number)。必须具有“系统管理”(SYSADM)或“系统控制器”(SY…

Java 9代码工具:使用Java微型基准测试工具的实践会话

用肉眼看&#xff0c;基准测试似乎只是确定执行某些代码需要花费多长时间的简单问题。 但是通常&#xff0c;这是幼稚的方法。 提供具有准确和可重复结果的有意义的基准并非易事。 在本文中&#xff0c;我们想向您介绍OpenJDK代码工具项目&#xff0c;尤其是JMH。 Java Microb…

Quartz 第六课 CronTrigger(官方文档翻译)

CronTriggers使用的频率比SimpleTrigger跟高。如果需要schedule 中触发Job的方式类似于日历的形式而不是一个确定的是时间间隔&#xff0c;那就需要使用CronTrigger。 对于CronTrigger&#xff0c;你可以触发Schedule&#xff0c;例如每个周五中午或者每个工作日的下午9:30或者…

centos 6.6 oracle 10g,centos 6.2 安装 oracle 10g 问题

问题一&#xff1a;正在启动 Oracle Universal Installer...正在检查安装程序要求...检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1or asianux-2未通过<<<<正在退出 Oracle Universal Installer。您可以在/tmp/OraInstall2002-…

查看本地文档的一些方法

1. 某目录下临时开web服务器 cd some_dir python -m SimpleHTTPServer 9090 9090手动指定的端口&#xff0c;然后使用http://localhost:9090来访问。下同&#xff0c;不赘述。 2. python文档 pydoc -p 9090 3. matlab文档 cd %MATLAB_DIR%\help # e.g. G:\soft\MATLAB\R2016a\…

oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办

在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办?1、MSSQL: ISNULL()语法ISNULL ( check_expression , replacement_value )参数check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时…

SQL入门语句之LIKE、GLOB和LIMIT

一、SQL入门语句之LIKE LIKE用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配&#xff0c;LIKE 运算符将返回真&#xff08;true&#xff09;&#xff0c;也就是 1。这里有两个通配符与 LIKE 运算符一起使用,百分号&#xff08;%&#xff09;代表零个、一个或多…

vaadin_在Vaadin和JSF之间选择

vaadin随着最新版本的Primefaces 3.0的发布&#xff0c;JSF终于达到了前所未有的成熟度和实用性&#xff0c;使其与其他流行的Rich Internet Applications&#xff08;RIA&#xff09;选项面对面&#xff0c;例如Google Web Toolkit&#xff08;GWT&#xff09;&#xff0c;Ext…

windows server 2008 oracle 10g,一次不太愉快的Windows Server 2008 R2 SP1上安装ORACLE 10G经历...

华为服务器型号RH5885 V3&#xff0c;安装windows server 2008 r2, oracle 10g1、安装包要使用10204_vista_w2k8_x64_production_db.zip&#xff0c;不用102010_win64_x64_database.zip&#xff1b;2、DBCA创建数据库之前&#xff0c;关闭BIOS中Hyper-Threading [ALL] - [Disab…

通过OmniFaces缓存组件以编程方式缓存PrimeFaces图表

在这篇文章中&#xff0c;您将看到如何结合PrimeFaces和OmniFaces获得可缓存的图表。 为了使事情变得简单&#xff0c;我们将使用PrimeFaces 折线图。 对于这种图表&#xff0c;我们可以在页面中使用<p&#xff1a;chart />标记和一个简单的托管bean。 因此&#xff0c;在…