(1)风向及风力因素影响
考虑除比较因素外,其他因素大致相同,我们选取了具有比较性的两天,进行风向及风力的比较。
1月20日与1月16日比较: 2014年1月1611℃ / 晴 /多云 东风 ≤3级 /北风 ≤3级 日 0℃ 2014年1月2011℃ / 多云 /多云 西北风 3-4级 /北风 4-5级 日 -2℃ (如何得到的下边的两个图?)
图5.3.1 1月16日PM2.5分布图(无风) 图5.3.2 1月20日PM2.5分
布图(有风)
通过上边两图对比明显发现在杭州地区的PM2.5等值线往东南方向移动,结合风向及风力的比较这也证明了(PM2.5)确实受到西北风及北风(风向及风力)的影响。(注释:对于1月16日临平镇无PM2.5值的数据,我们采用插值法,将杭州各个监测站地区按国家环境保护部的标准分为两类,对比1月14与16日同等类别地区的pm2.5值得变化,估计临平镇1月16日PM2.5的值。)(注释能不能融到方法里边描述) (2)相对湿度的影响
相对湿度的影响相对湿度和PM2.5的含量两者呈正相关,这主要是因为空
气中相对湿度增大,有利于大气中的气体物质转化成为二次粒子,且一些极细的颗粒由于吸湿使本身含液量增加,粒子涨大从爱根核模态转化为积聚核模态,造成空气中PM2.5的质量浓度增加。(原因和结果的叙述要尽量保持先分析原因再得到结果的顺序) (3)风速的影响
在无沙尘暴的情况下,PM2.5质量浓度随风速的增大而降低,这是因为风速越大,大气湍流强度越大,对污染物扩散稀释的能力越强,导致PM2.5质量浓度下降,反之则浓度上升。然而当速度大于某一值时,风可能卷起更多沉积于城市
11
地表的颗粒物,甚至有可能因高风速使得颗粒物相互碰撞加剧,裂变为细一级的粒子,使得PM2.5质量浓度增大,此时风速与细粒子质量浓度表现出正相关。总的来说,风速低于某一阈值时,PM2.5的质量浓度与其呈负相关,反之则呈正相关。
(4)降水的影响
同理,进行定性分析,我们选取了三天具有可比性的不同天气的数据: 2014年3月10晴 /晴 日 2014年3月11晴 /阵雨 日 2014年3月12小雨 /小雨 日 15℃ / 5℃ 18℃ / 11℃ 17℃ / 6℃ 东风 ≤3级 /东南风 ≤3级 东南风 ≤3级 /西南风 3-4级 南风 ≤3级 /北风 4-5级 对该三天的PM2.5的数据进行统计处理,得到PM2.5的空间分布如下图:
图5.3.3 3月10日PM2.5值空间分布图 图5.3.4 3月11日PM2.5值空间分布图
图5.3.5 3月12日PM2.5值空间分布图
12
因其(其是啥)质量和粒径都很小,PM2.5在大气中停留的时间较长。细粒子的去除主要通过湿沉降,干沉降作用很小,因此上面三幅图可以发现一次降水过程能明显降低空气中PM2.5的浓度。 5.3.2模型建立 (1) 模型考虑因素
对于本文模型的建立,由于数据难以收集,本文只考虑到浙江的天气( x1) 、最高温度( x2) 、最低温度( x3) 以及与PM2. 5 关联性强的二氧化硫( x4) 、二氧化氮( x5) 、一氧化碳( x6) 、可吸入颗粒物( x7) ,总共7 个变量,见附录。其中对天气( 晴、多云、阴、雨、雪) 进行量化得到天气的量化值,如表5.5所示。
表5.5 天气种类量化表 天气种类 晴 多云 阴 雨 雪 霾 量化 1 2 3 4 (2) 发生演化模型的建立 BP ( Back Propagation) 神经网络由输入层、隐含层、输出层组成,其基本原理是输入矢量( 训练样本) 经过隐含层的一系列变换,然后得到输出矢量,从而实现输入与输出间的一个映射关系。BP 算法根据模型输出与期望输出值之间的误差来修改各神经元连接的连接权系数,其目的是使输出误差达到预计范围内。三层BP 前馈网络可以逼近任意的连续函数,但是困难在于不知如何确定合理的结构以及权值,由于权值的任意设置可能导致模型的不精确,所以本文提出用遗传算法与BP 神经网络相结合的方法。
基于遗传算法的神经网络模型框架与实现流程采用遗传算法来设计网络权值,即将遗传算法的全局寻优能力与BP 算法的指导性搜索结合起来,先用遗传算法在随机点集中遗传出优化的网络结初值,再用BP 算法对网络进行训练学习至收敛。
图5.3.6 为遗传算法与BP 神经网络结合的模型
13
(3) 模型的具体设计
在进行BP 神经网络模型设计时,主要考虑网络的层数和每层中神经元的个数以及激活函数。 a. 网络层数
BP 神经网络是通过输入层到输出层的计算来完成的。多于一层的隐含层能在速度上提高网络的训练,但需要较多的训练时间。在应用BP 神经网络进行预测时,本文采用Matlab 2012 软件提供的神经网络工具箱建立2 个隐含层的三层BP 神经网络。
b. 网络各层中神经元的个数
根据PM2.5 的历史数据,确定输入层神经元数为7,即输入变量为西安市2013 年1 月到2013 年4月这4 个月的7 项指标( x1 ~ x7) ; 输出层神经元数为1,即输出变量为相应的PM2. 5 的值。在BP 神经网络中,隐含层节点的个数对结果的精度会产生较大的影响。如果隐含层神经元数目过多,则会增加网络的迭代次数,从而延长网络的训练时间,同时也会降低网络的泛化能力,导致预测能力下降; 如果数目过少,网络很难识别样本,难以完成训练,并且网络的容错性也会降低。通用的隐含层神经元数的确定经验公式为:
i = ( 1)
其中i 为隐含层神经元的个数,n 为输入层神经元的个数,m 为输出层神经元的个数,a 为常数且1 < a <10。本文首先根据经验公式,求出隐含层的个数。通过试验对比发现当隐含层的神经元数分别为15、14时,模型具有良好的效果。因此,本文隐含层的神经元个数设置为15、14。 c. 确定激活函数
BP 神经网络的传递函数通常采用log-sigmoid 型函数、logsig、tan- sigmoid 型函数tansig 以及纯线性函数purlin。如果BP 神经网络的最后一层是S ( Sigmoid)型函数,那么整个网络的输出就限定在一个较小的输出范围; 如果采用纯线性函数purelin,那么整个网络的输出可以去任意值,故而本文BP 神经网络的最后一层采用purelin 函数。前馈型网络的隐含层通常采用S 型函数,在本文中隐含层均采用tansig 函数。综上所述,本文采用3 层BP 神经网络模型,具体结果如图5.3.7所示。输入变量为7 个( x1 ~ x7) ,1个输出变量。隐含层均采用tansig 作为激活函数,最后一层采用purelin 函数。
图5.3.7 三层BP 神经网络模型
(4) 发生演化模型的训练和测试 a. 样本的选取和预处理
在所给数据中必须保证各项指标数据完整,因此指标数据不完整的日数据进行剔除。同时,为了保证数据为同一数量级,首先需要对神经网络的输入和输出
14
数据进行一定的预处理: 即原数据范围限定在(-1,1) 之间。因为某些数据对结果是很重要的,但是它相对其它的值来说,太小了,则在网络训练过程中,它的影响力就会很小,所以必须要把数据归一化,统一数据的数量级。
数据归一化处理代码:
%-----------------数据归一化---------- for i=1:7
dmin(i)=min(data(i,:)); dmax(i)=max(data(i,:)); end
dymin=min(datay); dymax=max(datay); for i=1:length(datay)
datay1(i)=(datay(i)-dymin)/(dymax-dymin); end
for i=1:7
for j=1:54
data1(i,j)=(data(i,j)-dmin(i))/(dmax(i)-dmin(i)); end end
b. 模型的训练和实现结果
如下所示为构建的BP 神经网络模型代码: %% ----- 模型建立-------------- net=newff(minmax(trainP),[15 14
1],{'tansig','tansig','purelin'},'traingdm'); net.trainParam.epochs=10000; net.trainParam.goal=0.001; net.trainParam.show=50; net.trainFcn = 'trainlm'; net.trainParam.lr=0.05;
net=train(net,trainP,trainT);
其中目标训练误差为0. 001,最大训练次数为10000 次,2次显示之间的训练步数为50,学习步长为为0.05。如图4 所示为原始数据曲线与本模型预测曲线的对比,其中实线为原始数据曲线,“圆圈+ 星号”部分为模型预测曲线。
15