APP下载

水稻浸种催芽箱温度传感器优化配置—基于遗传算法

2017-12-16李纯思衣淑娟

农机化研究 2017年6期
关键词:温度传感器排序遗传算法

李纯思,衣淑娟

(黑龙江八一农垦大学 工程学院,黑龙江 大庆 163319)



水稻浸种催芽箱温度传感器优化配置
—基于遗传算法

李纯思,衣淑娟

(黑龙江八一农垦大学 工程学院,黑龙江 大庆 163319)

利用改进的遗传算法作为水稻浸种催芽箱温度传感器数量和位置的优化算法,对传感器进行了优化配置。以传感器独立性及数据相关特性作为适应度函数,使用实测数据作为温度传感器优化配置的处理数据,最终得到10个传感器的优化配置。与逐步累积配置方法进行对比分析表明,遗传算法用于传感器优化配置可得到最优化结果。

水稻;浸种催芽;遗传算法;优化配置;温度传感器

0 引言

为使寒地水稻生长积温实现稳产高产的目标,黑龙江垦区采用温室集中浸种催芽方式进行育秧。控制浸种催芽箱内的温度适合于稻种的破胸发芽,最终实现水稻秧苗茁壮成长[1]。浸种催芽箱内的温度检测和控制是影响催芽效果的重要因素之一。如何使用尽量少的温度传感器获取种箱内温度分布并实现温度的精确监测,成为浸种催芽系统的一个主要研究方向。遗传算法作为一种广泛应用于优化设计的智能算法,用于种箱内温度传感器的优化配置,可将种箱内的温度信息准确快速采集,实现水稻浸种催芽过程的标准化和智能化[2]。

1 数据及适应度函数

应用于浸种催芽箱温度传感器优化配置的遗传算法原始数据来源于黑龙江省建三江分局前进农场。设置48个传感器于种箱内且采用ZigBee无线传输模式发送回控制中心。由于采集到温度数据较多,定时采集到的传感器数据并不能保证100%被智能控制中心接收到。原始数据示例如表1所示。

传感器优化配置是用尽可能少的传感器获得种箱内尽可能准确的温度分布;其次是可以实现部分温度模态的数据重点采集[3]。本文选用不同分布位置的温度传感器实测数据的线性相关系数作为适应度函数值。若设第i组和第j组模态向量分别为Φi和Φj,其相关系数的函数表示为

(1)

其中,Φi={φ1,φ2,…φn},Φj={φ1,φ2,…φn}分别表示不同传感器测得的两组温度数据;cov(Φi,Φj)=E(Φi-E(φi))E(Φj-E(φj)) 表示两个向量的协方差。σi和 σj分别为相应的标准差,具体表达式为

(2)

需要说明的是,由于向量的相关系数为两个向量的计算,所以每个向量的相关系数值为与另外一个向量所共有。

2 算例

本文采用MatLab7.0软件进行数据处理和计算,最终的数据存储于Microsoft Office Excel 2003表格中,由函数xlsread读取。本文将纯数据文件保存为cssj02.xls中,且保存在其sheet2页。所以,采用读取语句为:[NUM]=xlsread(’cssj02.xls’,2)。

由于每个传感器每隔1min便会从传感器传回1组数据,所以每个传感器采集到的数据成千上万。为了使数据的相关计算用时相对较少,采用MatLab语句截短数据,只取其中20个数据,并使用corrcoef(x)函数进行数据的相关计算。其中,x可以为行向量或列向量,也可以是m×n的矩阵。当为m×n矩阵时,corrcoef(x)函数计算每列数据间的相关系数,并将其存储于n×n矩阵形式。图1给出了传感器数据列向量的相关系数矩阵。行和列的标号1,2,3,…分别对应于传感器编号。从图1可以看到:每个传感器自相关系数为1,而互相关系数具有实对称性质,所以相关系数矩阵为实对称矩阵。

表1 原始温度传感部分数据

图1 传感器数据列向量的相关系数矩阵Fig.1 The sensor data correlation coefficient matrix of the columns

2.1 逐步累积法

采用逐步累积法进行传感器优化配置,第1步要选取最佳传感器[4]。由于相关系数计算是两个传感器温度数据的共同值,所以本论文通过sum()函数、min()函数和find()函数找到相关系数的最小值及最小值在相关系数矩阵中的位置,该最小值在系数矩阵中的行与列也关于对角线对称,即(行9,列23)和(行23,列9)两个。由于以相关值最小作为传感器优化配置的目标,所以通过计算每个传感器数据与其余47个传感器的相关系数之和最小,确定第9与第23号传感器哪一个为最佳传感器。该确定过程使用sort()函数和if语句实现。具体的程序段如下所示:

rela_min=min(min(corela));

[row,column]=find(corela==rela_min);

row=sort(row);

total_rela=sum(corela);

if total_rela(row(1))>=total_rela(row(2))

corela(row(2),:)=NaN;

corela(:,row(2))=NaN;

sensor1=row(2);

else

corela(row(1),:)=NaN;

corela(:,row(1))=NaN;

sensor1=row(1);

end

其中,if语句中的赋值NaN,表示在选择第i个传感器后,需要将第i个传感器与其它传感器的相关计算值在相关矩阵中抹去,剩余相关矩阵得到一次降维。降维后的矩阵用来选择下一个最佳传感器。在后面的操作中,将下一个最佳传感器加入到优化配置中。因为传感器数据按对温度分布状态的影响最佳程度进行逐个添加,从而实现传感器优化配置的逐步累积计算。

要从48个传感器中找到最佳温度传感器组合,就要对这些传感器进行适应度的排序。通过将所得到的传感器排序进行记录,最终得到48个位置传感器的排序,如表2所示。

表2 48个传感器位置排序表

2.2 遗传算法

每个传感器采集到的温度数据对温度场分布的贡献率事前先不能完全确定,为避免优化搜索过程的随机选择,只能以某种概率进行选择。这也是遗传算法有别于随机搜索算法的重要特征[5]。本文利用线性概率密度分布法实现遗传算法的选择操作。即若假设排序第1的传感器被选中的概率为c,第2的传感器被选中的概率为c(1-c),…,于是得到每个传感器选中概率为

pi=c(1-c)i-1

(2)

其中,i为个体的排序数。

若要使得概率分布在MatLab上实现,首先确定参数c;然后设计每个传感器的被选中概率值。MatLab中的rand函数用于在0~1之间按均匀概率产生数值。将0~1分为不同宽度的间隔,落在某个间隔内的概率即为本间隔对应的传感器的概率。具体程序如下:

for i=1:48

prob(i)=c*(1-c)^(i-1);

end

prob=cumsum(prob);

prob=prob/prob(48);

aa1=rand;

bb=48-sum(aa1<=prob)+1;

其中,for循环实现48个传感器对应的选中概率大小;cumsum(A)函数实现数组各行的累加值。对于prob的累加,使prob数组的每个值对应于0~1范围的数轴坐标,每两个坐标间的距离宽度即为被选中的概率;倒数第3句的作用是使得选中概率归一化。

交叉是选择操作之后的下一步操作。遗传算法中交叉点的选择可以有多种:一点交叉、两点交叉和一致性交叉[6]。但是,本文要研究48点温度传感器的优化配置,多基因片段的交叉可能会错过最优个体的选择,且类似于随机搜索的结果。所以,本文改进算法的交叉方式为定长基因交叉,即每次选中1个传感器与上一代个体进行交叉[6]。

变异操作的实现采用列举法,即选中1个传感器号逐次取代某代个体任意位置上的传感器号,然后对取代结果进行比较,选出最优传感器组合。

遗传算法对温度传感器进行优化配置,首先要产生初始群体。遗传算法作为一种概率性搜索算法,概率性在其计算过程中一直起着非常重要的作用,所以初始群体的产生也应该从概率的角度入手,得到传感器优化相近似的个体[7]。

假设传感器采集到的数据没有误差或误差很小,对遗传算法第1代个体间的相关系数影响较小的情况下可以不考虑误差,而认定数据具有绝对准确性[7]。根据传感器提供的误差说明可知,这种假设在实际应用的情况下是合理的。在无误差情况下,先对48个传感器采集到的数据进行相关计算,并对每一个个体与其它47个传感器的相关参数进行求和。大多数情况下,如果某个传感器与其它47个传感器的相关系数和最小,那么在选定10个传感器作为传感器优化配置的第1代时,它与其它9个传感器的相关系数和也可能较小,甚至达到最小。这样选择的第1代在实际遗传搜索时可以节省搜索的次数。本优化配置的温度传感器数据存储于cssj02.xls的excel工作薄的第2个工作中,采用MatLab语句实现数据的读取、截短、相关运算、相关系数求和等操作语句如下:

[NUM]=xlsread('cssj02.xls',2); %读取硬盘中的文件数据

x=NUM(1:20,:);

corela=corrcoef(x);%求得48个传感器的相关系数

sen_core=sum(corela);

xlsread(filename,sheet)函数是针对excel表格进行读取数据的函数。第1个参数filename指定文件名及文件夹的硬盘地址,在只填写文件名的情况下读取本文件内的excel工作薄数据。第2个参数sheet可以选择所在的工作表,当参数省略时读取工作薄的第1个工作表。corrcoef(x,y)函数的功能是完成两个向量或数列x和y的相关计算,形成2×2的矩阵,非对角线元素即为二者的相关系数,对角线元素为自相关系数1。当然,corrcoef函数的参数也可以是矩阵X,它将以X的每一列看作向量,对所有向量进行相关运算。若X是m×n的矩阵,则可产生一个n×n的相关系数矩阵,该矩阵为一对称矩阵。Sum(corela)函数是对corela的每一列的求和,是每一个温度传感器数据与所有传感器的相关系数之和。

对48个传感器的自相关系数和进行排序,即对每个传感器对所测得的温度分布的贡献大小进行排序。编写了排序函数ar_order,排序的方法是将传感器相关系数和按从小到大的顺序进行排列,最终的结果是得到相关系数和从小到大排列的传感器的编号的排序,将排序的结果赋给order_num参数。取order_num的前10个传感器数据组成第1组传感器配置方案,第11到第20号传感器组成第2组传感器配置方案。计算每组方案中的10个传感器之间的相关系数和,然后拿第2组的相关系数和与第1组中的各个传感器的相关系数和进行比较;若出现第2组中的相关系数和小于第1组某号传感器的情况,则进行替换,优化得第1组传感器配置方案的相关系数总和趋于最小。替换完后的第1组传感器配置方案才形成遗传算法的第1代。对于产生的第1代传感器优化配置的传感器贡献率进行排序,其目的是更加明确哪个传感器是最优的。使用的MatLab语句为:

order_num=ar_order(sen_core);%调用自己编写的ar_order函数实现排序功能

generic11=order_num(1:10,1);

generic12=order_num(11:20,1);

gene1=sum(corela(generic11,generic11));

gene2=sum(corela(generic12,generic12));

generic1=exchange_ge(gene1,generic11,gene2,generic12); %完成两个一代的交换

sum_ge1=sum(corela(generic1,generic1)); %新一代的相关系数,并已经求和

gen1=ar_order1(sum_ge1); %对它进行了排序,但是序号是1~10

将第1个传感器为温度检测最优传感器,并将它对温度检测的有效度定义为100%,其它传感器的有效度以第1个传感器数据的有效度为参考进行归一化处理,并将48个传感器的有效度绘于图2中。这样做图的目的是为了更加清晰地看出每个传感器的有效度变化规律,同时也能看到次优传感器的有效度逐渐下降的特性。从传感器有效度排序中可以很清楚地得到每个位置传感器对温度分布状态的影响顺序。由图2中可以看到:按平均下降方式来看,对温度分布模态贡献较大的前10个传感器有效度都大于50%(即0.5);若按自然对数下降方式来看,贡献较大的前15个传感器的有效度都大于exp(-1)。

图2 传感器有效度变化规律图Fig.2 Sensor effective degree change rule

从该角度来看,根据温度传感器对信息的表达精细程度的不同,传感器数量可以设置在10~15个之间,即可满足不同场合对温度传感器优化配置要求。本文的种箱温度传感器优化配置方面,10个传感器的优化配置不但精度较高且布点数较少,已经可以看作是种箱温度传感器配置中经济条件较宽裕情况下的优化配置方案。

3 逐步累积法和遗传算法的对比分析

使用逐步累积法实现了传感器优化配置,截短逐步累积法的温度传感器排序,使优化配置方案中的传感器数目为10。同时,利用遗传算法也进行了传感器数目为10的优化配置计算。首先列出由逐步累积法和遗传算法进行传感器优化配置的10个传感器位置编号,如表3所示。这里需要说明的是,没有对遗传算法的10个传感器的有效度进行排序。

表3 逐步累积法和遗传算法的优化传感器配置方案

Table 3 Cumulative method and genetic algorithm to optimize the sensor configuration scheme

序号逐步累积法遗传算法1938234936374323

续表3

由表3可以看出:逐步累积法对温度传感器的配置方案与遗传算法中温度传感器的编号不一致。其中,9、23、34、3、2、6等6个传感器编号相同,其余4个传感器配置不同。这是因为逐步累积法中的某传感器的选中是基于它与其余47个传感器的非相关度;而遗传算法则是对选中的10个传感器的非相关度进行的选择。从数学角度分析(即逐步累积法)一般不能得到最优解,只能得到次优解;而遗传算法由于加入了智能化搜索程序,一般可以达到配置的最优解。

图3给出了两种优化算法中10个传感器的相关系数关系图。

从图3中可以看到:逐步累积法中的传感器与其它传感器的相关数数高于遗传算法。相关系数表现了传感器间的关联性,相关系数高说明传感器的独立性较差。虽然使用逐步累积法进行优化的过程中,选择的第1个传感器为48个传感器中相关系数最小的一个,但是当它与其余9个被优化选出的传感器进行计算时,却不是最优的。这也说明了逐步累积法在传感器配置中有可能会得到局部最优解;而遗传算法的传感器优化针对于最终模式进行选择,得到的是全局最优解。

根据传感器优化配置结果,对传感器的所测温度分布结果的优劣进行了分析。若设优化配置的10个传感器对温度分布的遗传算法最优贡献率为100%,对每个传感器的贡献率进行计算,并且逐步累加得到两种优化配置的相对贡献率如图4所示。从图4中可以看到:第1个传感器的两种优化算法的温度分布测量贡献率是一致的;但是从第2个传感器到第10个传感器的累加过程中,贡献率发生差异,即逐步累积法的测温贡献率不如遗传算法贡献率。从10个传感器最终的累加结果可以看出:逐步累积法对最优测温的贡献率大约为遗传算法的58%。通过两种方法的对比,遗传算法所进行的温度传感器优化配置具有绝对优势。

图4 两种优化配置的相对贡献率Fig.4 The relative contribution rate of two kinds of optimal allocation

4 结论

通过与逐步累积法进行比较,发现遗传算法进行的温度传感器优化配置明显优于逐步累积法。通过对不同位置传感器的实测数据进行优化计算,改进的遗传算法可以对给定数量的传感器进行位置优化。结果分析表明:该方法为传感器数量与位置优化提供了理论依据,在传感器优化配置中具有很好的应用价值。

[1] 毛欣,衣淑娟.大型智能控温水稻集中浸种催芽设备的研制[J].黑龙江八一农垦大学学报,2011,23(1):28-30.

[2] 张宏伟, 徐世杰, 黄文虎. 作动器/传感器配置优化的遗传算法应用[J]. 振动工程学报,1999,12(4): 529-534.

[3] 许强.模态测试中传感器优化布设的初步研究[D].重庆:重庆交通大学,2007.

[4] 刘娟, 黄维平.传感器优化配置的修正逐步累积法[J].青岛海洋大学学报,2003,33(3):476-482.

[5] 张连振,黄桥,王朝海.基于多目标遗传算法的传感器优化布点研究[J].工程力学,2007,24(4):281.

[6] 梁艳春,冯大鹏,周春光.遗传算法求解旅行商问题时的基因片段保序[J].系统工程理论与实践,2000(4):7-12.

[7] 丁华福,刘晓璐,唐选新,等.面向旅行商问题的一种改进遗传算法[J].计算机技术与发展,2011,21(6):51-54.

Optimal Sensor Placement in Paddy Seeds Soaking Germination Device—Based on Genetic Algorithms

Li Chunsi, Yi Shujuan

(College of Engineering, Heilongjiang Bayi Agricultural University, Daqing 163319, China)

Using the improved genetic algorithm as a paddy seeds soaking germination device temperature sensor number and location of the optimization algorithm and optimize the configuration of sensor.Using sensor and data correlation characteristics of independence as a fitness function,using the measured data as a temperature sensor optimal allocation of processing data,finally got 10 sensor optimal allocation.And gradually accumulated configuration methods contrast analysis,show that genetic algorithm is used for sensor optimal allocation can get optimal results.

rice; soaking germination; genetic algorithms; optimal placement; temperature sensor

2016-07-06

李纯思(1986-),男(蒙古族),黑龙江肇源人,硕士研究生,(E-mail) 553078938@qq.com。

衣淑娟(1965-),女,山东栖霞人,教授,博士生导师,(E-mail)ndyishujuani@163.com。

S24

A

1003-188X(2017)06-0027-06

猜你喜欢

温度传感器排序遗传算法
气象用温度传感器检定结果的测量不确定度评定与应用
作者简介
使用冗余测量修正动态温场测量结果
恐怖排序
温度传感器DS18B20在温度计设计中的应用
基于遗传算法的智能交通灯控制研究
节日排序
XTR105电流变送器在温度传感器中的应用
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于改进的遗传算法的模糊聚类算法