基于智能计算的影响河流水质的因素分析验收材料Word文档下载推荐.docx
- 文档编号:21817029
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:10
- 大小:24.30KB
基于智能计算的影响河流水质的因素分析验收材料Word文档下载推荐.docx
《基于智能计算的影响河流水质的因素分析验收材料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于智能计算的影响河流水质的因素分析验收材料Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
学院名称:
物联网工程学院填写日期:
2011年8月
项目编号
项目组成员
姓名
学号
承担工作量(%)
本人签字
备注
负责人
成员1
成员2
成员3
成员4
指导教师
指导教师1
指导教师2
一、研究成果简介
项目小组成员分工学习主成分分析法、BP神经网络和遗传算法,阅读了大量文献和论文,经过近9个月的共同努力和多次在matlab上的实验,构建出了主成分分析法、BP神经网络和遗传算法相结合的智能预测模型,基于该模型,项目小组完成了《基于智能计算的影响河流水质的分类预测》论文一篇,并于2011年7月10日投稿至《计算机应用研究》,现处于审稿阶段。
论文提及的模型,核心是采用BP神经网络,利用太湖某断面的水质指标的实测数据进行训练和仿真。
而水质检测是多要素的复杂系统,在进行水质系统分析时,多变量问题是经常会遇到的。
变量太多,无疑会增加分析问题的难度与复杂性,而且在许多实际问题中,多个变量之间是具有一定的相关关系的。
因此,在BP网络训练前,采用主成分分析法,进行降维处理,即用较少的几个综合指标来代替原来较多的变量指标,而且使这些较少的综合指标既能尽量多地反映原来较多指标所反映的信息,同时它们之间又是彼此独立的。
在BP网络训练时,采用遗传算法优化神经网络权值和阈值,能使网络跳出局部最优,找到全局最优,并且提高网络预测率。
实验过程是:
将现有的268组原始样本数据转化为对应的268组综合指标样本数据,每组数据的23个指标被压缩为15个主成分指标,将其为BP网络的输入神经元,以对应时间的河流是否被污染作为BP网络的输出(1为污染,0为未污染),即,输出神经元个数为1,建立BP网络。
将对应的268组综合指标样本数据分为两部分,随机取100组(污染和非污染数据随机均匀选取)用于BP神经网络的训练,遗传算法用于优化BP神经网络的参数,另168组用于预测检验。
最后,研究结果表明:
1)23个指标因素可压缩为15个综合指标;
2)未污染水质的仿真个数为124,预测正确为100,准确率为80.65%;
3)污染水质的仿真个数为44,预测正确为41,准确率为93.18%。
总体预测率约为83%。
另外,根据自己小组论文《基于智能计算的影响河流水质的分类预测》中的思想和理论,经过近一个学期的功能点测试,于2011年8月15日自主研发完成了基于matlab和C#技术,关于BP神经网络和遗传算法的预测软件《智能水质预测系统》,并撰写了关于《智能水质预测系统》的操作手册,计划于近期申请软件著作权。
编写该软件的最初想法是:
希望将书面的理论模型转化为实际预测系统,并且尽可能降低使用软件的知识门槛。
所以,在设计本软件时,本项目小组坚持“界面友好美观,操作方便简单”的原则,并且,自行设计快速原型,并对其进行改进,最后完成的软件,呈现给用户的显示界面,过滤掉了智能算法复杂的中间过程,而是简单地显示输入数据和预测结果,使用户无需掌握matlab的操作和相关智能算法的原理,就能简单操作本软件。
二、成果特色及创新点:
由于影响水体水质的因素众多以及BP网络存在局限性,本小组在论文《基于智能计算的影响河流水质的分类预测》中提出的水质预测模型,是将主成分分析法(PCA)、BP神经网络、遗传算法(GA)相结合。
利用BP神经网络模型对水质的分类预测进行研究,能够克服传统评价方法工作量大,而且主观性较强的不足,具有客观性、通用性和实用性。
在BP网络训练前,采用PCA,进行降维,把多指标转化为少数几个综合指标,在原始数据信息损失不多的情况下,使输入数据减少,消除由于BP网络输入数据太多而影响数据处理速度的缺陷;
并用GA对网络参数进行优化,可以有效防止搜索过程收敛于局部最优解,优化出全局最优的网络参数,进而显著提高水质预测分析的精度。
本模型是利用各算法的优势和特点,使得改进的BP神经网络方法应用于水质检测预测中取得了良好的效果。
同时,经过小组的不懈努力,将自己论文中的理论,转化为了实际应用软件。
该软件有颇多创新点。
现罗列主要创新点。
1完成了C#和matlab关于BP神经网络的混合编程。
C#为了编写友好的软件界面,matlab则是为了智能计算。
由于C#是近年兴起,另外BP神经网络在matlab中涉及比较复杂的工具箱函数。
目前,在网上,C#和matlab关于BP神经网络的有价值参考资料几乎没有。
小组成员在设计matlab组件时,遇到了诸如修改配置文件、添加哪些BP神经网络方法函数、传递参数类型的困难。
经过小组的不懈努力,已一一攻克。
本软件可作为现有关于C#和matlab涉及BP神经网络混合编程参考资料的有力补充。
本软件也能用于科学研究和智能算法学习。
2采用Excel+内存数据库的方法取代SQLServer,使软件能在没有安装任何数据库的情况下运行,扩大了软件的使用人群。
仿真预测的数据采用的都是Excel数据的副本,也保证了数据的原始性。
采用内存数据库,则使数据读取、修改、删除等操作响应更加快速。
并且应用LINQ技术,完成了将数据快速从Excel导入至软件的功能。
另外自行编写了数据过滤算法,能讲无关紧要的指标过滤掉,亦能将Excel数据中可能存在的空行检测出来,防止软件将空行误读为零,将空行巧妙过滤掉。
3同时将matlab中的智能算法编译成.Net组件,让C#进行调用,使软件能够在没有安装matlab软件的计算机上运行,减少了使用者额外安装其他软件的麻烦。
同时通过编译出的应用程序扩展,完成软件的无缝升级和还原。
将自己项目小组完成论文中提及的新型模型通过matlab编译成组件,成功导入到软件之中,完成智能预测。
动态地根据仿真结果,为污染
和非污染的水质指标表上鲜明的颜色,使用户对仿真结果一目了然。
4实践了诸多软件工程核心思想。
软件编写采用了“自顶而下”和“自底而上”相结合的设计思路,软件框架的构建采用“自顶向下”的方法,便于各个功能点模块无缝接入。
各个子模块则采用“自底向上”的方法,将复杂的功能分散程逐个简单的子模块,将子模块遇到的困难一一攻克,调试成功后将其集成至软件框架之中。
另外还实践了软件工程中模块的功能内聚的思想,将自动导入数据仿真和手动输入数据仿真的操作内聚到一个模块之中。
将7个智能预测按钮事件全都继承到了一个功能模块之中,是原本冗余的代码立刻瘦身,同时增强了代码的健壮性。
编程过程中,也完成了诸多功能和特效:
(1)实现同步窗体,同时实现子窗体的透明效果;
调用API实现打开和关闭窗体的动画效果,增加点击按钮、打开窗体和关闭窗体的音效;
添加皮肤引擎,使软件的界面更加美观大方。
(2)在传统软件针对button(按钮)千篇一律添加Click事件的规律下,本软件还为button(按钮)添加了MouseEnter和MouseLeave事件,使按钮操作更加生动、灵活。
(3)软件实现了文件操作。
能将仿真后的结果,从软件中导出到Excel文档中。
同时也实现了文件到文件夹的拷贝功能,实现规范指标变量的导出。
(4)软件采用backgroundWorker控件(这个控件一般只会在EffectiveC#书籍中才会提及),实现了异步操作,成功解决了在智能预测时,调用matlab组件会出现界面“假死”的现象。
三、成果形式及数量:
■文献综述1份;
□专利个;
□调研报告份;
■软件1件;
□设计作品份;
□图纸套;
■实验记录5份;
■论文1篇;
□制作实物件:
□课件件;
■心得体会1份;
□其它。
四、指导教师意见:
该大学生创新训练计划的课题是江苏省环境监测科研基金项目,课题组成员经过9个月的努力,终于圆满的完成了项目要求的主要任务。
在这个过程中,项目组负责人朱磊同学表现出非凡的领导能力和科研能力。
在他的领导下,课题组每周向我汇报前一周的科研进展并讨论下周的科研任务,并将科研任务合理的分配给项目组成员;
项目组成员之间能够协调合作,相互学习,相互促进。
在他们的共同努力下,项目成果显著,撰写论文一篇并投稿到《计算机应用研究》上,编写软件一个(正在申请软件著作权)和软件使用说明书一份。
签名:
年月日
五、验收专家组意见:
1、专家组意见:
2、专家组建议:
□推荐参加竞赛;
□推荐省级创新训练计划项目
□推荐国家级创新性实验计划项目
□希望进一步产品化;
□申请专利;
□发表论文;
□推荐参加成果展示
专家组成员签字:
六、学院意见:
验收结论:
□通过□不通
负责人签字:
学院盖章
七、学校意见:
负责人(签名):
盖章:
年月日
大学生创新训练计划
《基于智能计算的影响河流水质的因素分析》
成果精粹
XX大学
二○一一年八月
水资源不仅是一种控制生态环境的基础自然资源和一切社会发展的物质基础,而且是一种战略性的经济资源,是一个国家综合国力的有机组成部分。
随着经济的快速发展,水质污染问题日益严重。
为了有效的防治水污染,最近年来在很多重要区域建立了水质自动监测站。
但由于水质参数在线监测技术的限制,水质变化趋势的在线预测依旧难以实现。
水质预测可用于随机性非点源污染的监控和防治,所以在建立水质自动监测站的同时,增加水质预测系统,对保护水资源和水环境的安全具有十分重要的意义。
由于影响水体水质的因素众多以及BP网络存在局限性,我们小组在论文《基于智能计算的影响河流水质的因素分析》中提出了基于主成分分析法、BP神经网络和遗传算法的水质分类预测模型。
实际工作中,由于参与的评价指标众多,并且与水质检测结果之间存在的是非常复杂的非线性关系,所以用主成分分析法作为前处理过程进行样本集的优化与选择。
另外,BP神经网络中非线性传递函数有多个局部最优解。
寻优的过程与初始点的选取关系很大,初始点如果更靠近局部最优点,而不是全局最优点,会导致多层网络无法得到最优解。
而遗传算法不受搜索空间的限制性假设的约束,不要求连续性,能以很大的概率从离散的、多极值的、含有噪声的高维问题中找到全局最优解。
因此,论文中提出将主成分分析法、BP神经网络算法和遗传算法结合,构造出基于水质分类预测的智能计算模型。
该模型既能在一定程度上提高处理速度,又能确保水质预测的精度。
该模型利用太湖某断面的水质指标的实测数据进行训练和仿真。
模型是利用各算法的优势和特点,使得改进的BP神经网络方法应用于水质检测预测中取得了良好的效果。
由于神经网络方法通用性强,所以该方法也可以应用于除水质检测预测外其他的环境质量评价中,其研究领域广阔,并且BP神经网络方法自身的一些改进也是水质检测预测方法研究的发展方向。
本小组在完成项目论文的同时,根据实验中构建的模型和论文中提出的思想,开发了《智能水质预测系统》软件,迈出了从理论到实际应用的重要一步。
2010年10月,我们项目小组在项目申请书中的预期成果是:
(1)通过主成份分析法确定影响河流水质的关键因素
(2)利用智能算法构建适合水质预测的预测系统
(3)撰写发表论文1篇
2011年3月中旬,项目小组已经成功通过主成分分析法确定了影响河流水质的关键因素。
COD、NH3-N、TN、CODmn、TP、BOD5、F--、电导率在主成分载荷中占较大比重,即这些因素对水质影响较大。
2011年5月下旬,项目小组将主成分分析法、BP神经网络和遗传算法相结合,构建了适合水质预测的预测系统模型。
2011年6月下旬,项目小组已完成论文《基于智能计算的影响河流水质的因素分析》的初稿,可以说,随着预期成果的一一实现,项目也可以算是马上完成了。
此时,项目小组经过讨论和权衡,最终做出了一个决定:
在完成项目申请书中承诺的项目成果后,利用离结题时间还剩余的近3个月的时间,开发一个基于我们小组研究成果的智能水质预测系统。
小组初步达成了将水质预测模型从实验室带到实际应用场合的意愿。
项目小组很快确定了以C#语言编写软件界面,以matlab构建水质预测模型。
因为我们项目小组研究的是主成分分析法、BP神经网络和遗传算法这些比较抽象的智能算法,在matlab强大的工具箱函数的调用下,能比较方便地调用这些智能算法的方法,但是matlab作为学术研究软件,功能强大之余,界面美观不足。
而C#依托强大的VisualStudio开发环境,能快捷地开发出美观的界面,但如果将水质预测模型也用C#编写,这无疑是给整个软件制作增加无法想象的难度,所以权衡之下,决定C#做界面,matlab做模型,最后通过C#和matlab混合编程的理论,实现软件的运行。
鉴于绝大多数关于C#和matlab涉及BP神经网络等智能算法的混合编程论文,也仅仅停留在书面理论上,并没有通过实际开发的软件给予论文有力的支持。
而网上关于C#和matlab涉及BP神经网络的混合编程的参考代码也是完全没有。
通过论坛,我们发现,和我们有一样想法的不少,但他们尝试混合编程时,都出现了关于BP神经网络函数的调用异常。
出现这样的原因是:
关于matlab涉及BP神经网络的混合编程,很多经典的例子都是国外高手编写的,但用的基本都是VC++编的,而C#语言是随着VisualStudio2005的面世,于今年才兴起的最新编程语言,这也是导致基本现在网上没有C#方面的资料。
另一方面,BP神经网络、遗传算法,这些方法本身就是很复杂的算法,研究者中大多数数学很好,但还精通计算机编程的就相对很少了。
我们平时在matlab中运用很方便,但这是依托matlab强大的工具箱函数。
也就是说,平时在matlab中一句简单的BP神经网络训练函数,可能就要依赖matlab工具箱数十个函数支撑才能运行。
而这当中哪些复杂难懂的中间过程,matlab通过简单的结果显示,将其过滤掉了,而许多使用者却没有感受到这一点。
这也造成了混合编程中经常会遇到函数调用异常的出现,究其原因,无非是智能算法中的一些“隐藏”的函数,我们没有将其加载到matlab组件中,自然在C#调用时,出现诸多异常。
眼前,似乎困难重重。
但是,我们项目小组通过分析总结,觉得采用C#编程是能够最终完成预测软件的。
原因是:
有过许多VC++和matlab涉及BP神经网络的案例,而C#作为更高级的语言,理论上应该完成起来比VC++更加便捷,编程的人都知道一个道理:
越是高级的语言,越是简单,因为涉及底层硬件的编程越少。
还有一个原因:
既然C#和matlab涉及BP神经网络现在还没有经典案例,小组认为,一旦编写成功,作为这个方面成功先行者,是很值得自豪的,并且能作为非常有帮助的案例参考,解决很多还没解决的这方面问题的人提供成功的方案。
在此大背景下,小组成员众志成城,先后攻克了关于C#和matlab涉及BP神经网络的混合编程中的重大难题,总结出了3条心得:
(1)在matlab编译组件(给C#程序调用)时,要添加非常用工具箱的函数。
要找出这些函数,可采用先编译没有添加调用函数的组件,将其加载至C#中,调用时必然出现函数调用异常,通过调用异常的提示,反过来从matlab工具箱中认真阅读调用函数的底层方法,从中查找出这些需要加载的调用函数。
(2)通过参考相当多的资料和经过多次失败的实验,我们小组发现了matlab基本上能和VC++无缝地进行混合编程,而C#的运行环境(最新的VS2010默认是.NetFramwork4.0)相对于VC++(一般是.NetFramwork2.0)来说要高。
原来VC++和matlab能运行,因为它们配置都能兼容。
但是,C#相对于VC++默认运行环境版本要高,也就是比原来能和VC++能兼容的matlab配置要高,这也会造成组件调用的异常,所以需要在C#的程序中,修改配置文件,一般配置文件都只有默认的配置,此时要添加一些能兼容低版本的配置,这样就能使C#和matlab能够兼容了。
关于配置文件这一点,很容易被忽略。
(3)在混合编程中,往往C#程序中会有很多数据,将其存放在数组之中,在进行智能预测时,把数组中的数据作为参数传递给matlab组件,进行智能预测,预测完毕后,将给过返回给C#程序。
混合编程中,类型要相互转换,将C#中定义的数据类型,强制转化为matlab组件能识别的类型。
通过许多次的测试,我们小组发现,如果作为数组传递数据,C#中数组类型定义必须是double型,因为在matlab中,可以观察一下,不难发现所有数值数据都是double型的。
只要遵循以上总结的3点,基本上能解决所有混合编程中关于函数调用异常的问题。
为了使软件操作更加便捷,显示更加富有人性化,增加软件可移植性和鲁棒性,小组成员也在软件开发中引入了很多比较先进的技术。
诸如:
采用LINQ技术并且编写了过滤算法,成功地完成了将数据从Excel导入至内存数据库之中,使Excel中可能存在的空行能成功过滤掉,以“Excel+内存数据库”取代“SQLServer”,实现数据输入的便捷(可以直接在Excel中输入数据),数据的操作更加快速(内存数据库的响应时间比SQLServer数据库快几个数量级);
采用BackgroundWorker组件(该组件只在EffectiveC#书籍中才会提及),实现了异步操作,防止了软件在调用matlab组件时会出现的“假死”现象。
诸多软件的亮点和特色,也已在《江南大学大学生创新训练计划项目结题验收表》中的“成果特色及创新点”一栏中详细介绍,在此不再一一赘述。
小组在完成既定成果的同时,额外开发了一个智能水质预测软件,大家感觉也是挺自豪的,同时也感觉到创新项目让大家充分挖掘了自身潜能,拓展了知识面,可以说是“受益匪浅”。
由于,项目小组开发的软件有诸多特色和创新点,计划为其申请软件著作权,我们也是对此信心满满。
成果佐证材料
一、文献综述1篇
二、撰写论文1篇(还在审稿阶段,故暂提供论文)
三、软件的使用说明书1份(软件还在申请阶段,故暂提供说明书)
四、
五、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 智能 计算 影响 河流 水质 因素 分析 验收 材料