系统动力学建模软件的图形化实现硕士学位论文Word文档格式.docx
《系统动力学建模软件的图形化实现硕士学位论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《系统动力学建模软件的图形化实现硕士学位论文Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
while
thevigorousdevelopmentof
variousfields,
which
presentedaseriesof
complexissues
suchas
therelationshipbetweenurban
developmentandsoilerosion,andtherelationshipbetweenenvironmentand
corporation.
Thesesystemdynamicsissuesneedmodelingandanalysis,which
isboundto
takeadvantageof
easy
andefficient
modelingsoftware
toassistin
modelingand
analysisofthese
issues.
Butnowinthemarket,SystemDynamics
ModelingSoftware
isalmostmonopolizedby
manyforeigncompanies,
intellectualpropertyrights
belongto
ourown
SystemDynamics
are
few.
Underthebackgroundofglobalization,ifwecan
develop
such
a
ModelingSoftwarewhichiseasytouseandfeaturerich,
thiswillhaveimportant
significanceinthedevelopmentof
oursystem
dynamics.
Therefore,thistopicbasedontheresearchofSystemDynamicsModelingSoftware,andfocusesonanalyzingthefunctionsofSystemDynamicsModelingSoftware,andimplementgraphiccapabilitiesinstages.Theresearchofthisthesismainlyincludes:
1.AnalyzedandresearchedSystemDynamicandthefunctionsandfeaturesofModelingSoftware.Accordingtotherealityofproject,implementthebasicgraphicmodelingfunction.
2.Intherealizationofprocess,analyzedandresearchedcompliertheory,thendesignedandimplementeditinthegraphicimplementedprocess.
3.Analyzedandresearchedthefeaturesofseveralgraphicaltechniques(JUNG,JHotDraw,JGraph,etc),accordingtopractical,selectedJHotDrawasthetechniqueofgraphicalmodel,andthestoragemodelthroughSerialization.
4.Usingtwokindsofoutputmodes,textmodeandgraphicalmode.TextmodeisformatoutputasCSV(CommaSeparatedValue),eachrowshowsthecomputedresultspreperiod.GraphicalmodeislinegraphwhichisgeneratedbyJFreeChart,itcanshowthechangeofeachvariableintuitively.
Keywords:
SystemDynamic,GraphicalModel,JHotDraw,compliertheory
目录
摘要i
Abstractii
图目录III
表目录IV
第1章绪论1
1.1论文研究背景1
1.2国内企业及机构对系统动力学建模软件的需求和面临的问题1
1.3论文的研究内容与意义2
1.3.1研究课题的来源2
1.3.2论文的研究内容2
1.3.3论文的研究意义3
1.4研究的方法3
1.5论文的组织结构4
1.6本章小结4
第2章系统动力学建模软件及相关技术分析6
2.1系统动力学图形建模软件的发展6
2.1.1系统动力学概述6
2.1.2系统动力学图形建模软件概述7
2.1.3系统动力学图形建模软件的功能特点8
2.2编译原理概述9
2.2.1词法分析、语法分析和语义分析10
2.2.2源代码优化、中间代码生成和目标代码生成13
2.2.3符号表管理和错误处理机制13
2.3图形化相关技术分析15
2.3.1JUNG,JHotDraw及JGraph技术概述及分析15
2.3.2JFC/Swing与AWT技术概述及分析18
2.3.3JFreeChart技术概述及分析20
2.4对象序列化存储技术21
2.5本章小结22
第3章系统动力学建模软件图形化的体系结构23
3.1系统的功能模块23
3.1.1计算模块23
3.1.2图形模块24
3.1.3存储模块25
3.2系统的工作总流程25
3.3本章小结26
第4章图形化的设计27
4.1计算模块的设计27
4.2图形模块的设计28
4.3存储模块的实现30
4.4本章小结31
第5章系统实现的成果展示与分析32
5.1已完成的功能展示32
5.2系统成果分析35
5.3本章小结36
第6章总结与展望37
6.1本文完成的主要研究工作37
6.2未来的工作37
参考文献39
作者简历41
致谢42
图目录
图2.1DYNAMO模型中常用的流图符号8
图2.2编译器的各个阶段10
图2.3流程图语句Flow=Initial+Rate*60的语法树11
图2.4表达式的注释树13
图2.5最短路径算法示例16
图2.6JFreeChart生成的图表示例21
图3.1计算模块组成结构23
图3.2系统流程图26
图4.1计算模块的类图27
图4.2子模块关系图28
图4.3子模块关系图29
图4.4XML文档的部分结构图30
图5.1程序主界面32
图5.2结点属性输入界面33
图5.3结果图输出界面34
图5.4CSV结果界面35
表目录
表3.1数学函数表24
第1章绪论
1.1论文研究背景
这些系统动力学方面的问题都需要进行建模分析,这就势必要利用到易用且有效的建模软件来协助建模和分析这些问题,系统动力学图形建模软件就成为了这门学科重要的工作之一。
而且系统动力学这门学科已经引入我国有将近几十年了,与这门学科相关的理论和研究工作都已硕果累累,为我国的建设和发展做出了重大的贡献。
它的作用不只是局限于某个领域,而是已经深入到了各种领域,它已经发展的相当成熟,因此与它相关的建模软件已经有不少如Vensim,Stella,iThink等。
然而这些建模软件几乎都是国外公司开发出来的产品,它们拥有知识产权并不是开源软件,对于一些需要使用这类产品的企业及研究机构来说,带来了诸多不便及知识产权方面的纠纷。
基于此,本文主要结合其中现有的图形建模软件,研究其实现原理,及探讨如何实现图形化。
1.2国内企业及机构对系统动力学建模软件的需求和面临的问题
随着系统动力学的不断研究与发展以及它分析复杂系统时所展现的能力,使得越来越多的企业与机构开始利用该学科所获得的对各种复杂系统研究方法。
而想要更加有效的运用这些研究方法,就必须利用先进的建模软件来协助分析与处理各种复杂问题。
而当今的系统动力学建模软件在其与系统动力学一起不断成长,不少公司开发出了功能越来越强大,分析问题的真实性和合理性越来越高的该类软件。
虽然市面上存在不少该类软件的免费版,但与收费版比起来功能上相差甚远。
这些免费版只适合初学者一开始的学习之用,对于真正实际中的复杂问题的分析,还是需要功能更强大的版本的支持。
现在,这类软件的开发公司一般都是国外公司,并且对知识产权的保护意识比较强,这也就意味着一些试图使用该类盗版的建模软件的企业或机构,难保不会在未来面临该类建模软件公司的起诉与索赔。
对于知识产权有所理解的人应该知道,国外是很重视对知识产权的保护的,因此为了能使用这些建模软件里一些所需的高级功能,一些企业和机构必须购买正版软件以及这些软件公司的授权,以避免产生法律上的纠纷,从而增加了生产成本,这无疑制约着我国系统动力学领域的发展。
1.3论文的研究内容与意义
1.3.1研究课题的来源
从2010年5月开始,本人开始参加实习工作,在实习期间由于选定的研究内容与另一位同学有所冲突,经与导师商量研究,需选择其它内容进行研究。
后来由一位学习系统动力学的同学建议,可以对系统动力学建模软件进行研究。
后经由导师讨论和确认后,开始对此课题进行研究。
本文结合国外优秀系统动力学建模软件,对其进行分析、研究,目标是为了确定图形化实现所需采用的技术和功能特点,以及作为图形化实现的参考依据。
1.3.2论文的研究内容
针对要实现的功能和特点,本文首先通过对文献资料及相关系统动力学图形建模软件对系统动力学图形建模软件的功能进行分析。
再结合实际实现的目标功能,剖析和总结与该图形建模软件的相关技术如图形化的相关技术(JUNG,JHotdraw,JGraph等)。
具体研究内容包括以下四个方面:
1.系统动力学及其图形化建模软件的研究
通过对系统动力学以及其现有图形化建模软件的学习与分析。
深入了解系统动力学基本概念及相关图形化建模软件的功能等。
在阅读国内外相关的文献、书籍和材料的基础上,结合实际对系统动力学的相关理论及相关图形化软件进行总结与归纳,以便于为今后开发这类软件的人员提供一些借鉴材料。
2.图形化相关技术的研究
分析和研究几种图形化相关技术(JUNG,JHotDraw,JGraph等)及模型存储技术。
在阅读相关的中外文献、书籍和材料基础上,深入了解这些技术的理论,结合实际需要,选取相关技术应用于图形化的实现及模型存储功能的实现。
3.编译原理的研究
在实际实现过程中,将通过应用编译原理的相关知识实现模型结果的计算,通过语法树建造整个模型结构,通过词法分析、语法分析及语义分析对表达式和整个模型进行控制和错误处理。
4.结果输出方面的研究
在结果输出方面,采用两种输出模式,分别是文本模式及图形模式。
文本模式是以CSV(CommaSeparatedValue逗号分隔型取值)格式输出的,每一行代表每个时间周期下的计算结果。
本文将通过对相关的理论进行研究,并结合实际实现,对结果输出技术进行总结和归纳。
1.3.3论文的研究意义
对于一些国家级的研究机构或大型企业来说,他们需要分析和处理大量实际中的复杂系统。
然而不通过简单方便的建模软件来帮助他们的话,这看起来似乎令人不可想象,这需要花费太多人力与精力在建模与计算之上,而且人为的差误经常存在,直接或间接的影响分析结果。
1.由于建模在仿真分析中的重要性,虽然现有的国外相关的系统动力学图形建模软件已经比较优秀且功能较完备,然而使用国外软件有一定局限性,故参考当前国外优秀的同类产品,实现图形化功能,为开发出拥有自主知识产权的系统动力学图形建模软件提供参考和依据,有助于国内系统动力学建模软件领域的发展。
2.在国外,与系统动力学方面相关的产品一直受到重视,因此能使这门学科得到不断的发展,由于国外软件的价格问题等原因限制了该类软件功能的广泛应用,本课题的研究成果可以帮助在国内该类软件的发展。
3.目前,据本人所知,在国内没有一款与系统动力学图形化建模相关软件来辅助有需要的企业或机构进行分析和研究相关的问题。
如果能开发出属于我国自己知识产权的系统动力学建模软件,打破国外软件的垄断地位,对我国系统动力学的发展将会有重要意义。
1.4研究的方法
本文的研究方法主要根据三个过程:
相关理论及技术知识的搜集、对可能应用到技术知识进行分析和将需要用到技术知识应用到编码的实现。
首先根据此软件的实际,充分搜集与系统动力学建模软件相关的材料和文献,并通过与熟悉这些理论和软件的人员进行交流,研究其可能的实现原理。
其实这可以说是了解整个系统动力建模软件需求的过程,此间涉及到相关工具使用及与有关人员的讨论等等,目的是为了充分论证该软件实现的可行性。
接下来对现有的系统动力学建模软件进行参考分析,确定图形化实现的模块范围。
最后,有选择性的选用利于实现的相关技术,如JHotDraw,编译原理,JFreeChart等,编码和实现整体目标。
1.5论文的组织结构
本文共分为六章,具体的章节安排如下:
第一章介绍了论文的研究背景、研究课题的来源、研究内容、研究意义和研究方法等等。
第二章介绍了系统动力学建模软件图形化实现的相关技术,并对图形化实现中采用到的编译原理以及对实现图形的技术进行了简单介绍,最后分析及介绍了需要用到存储技术。
第三章从整体介绍了系统动力学建模软件图形化实现的体系结构,并划分了实现所需的主要功能模块,对各个功能模块的作用做了介绍,并提出了系统的工作总流程。
第四章主要是图形化的设计与实现部分,结合实际的项目,分别给出了计算层,图形层及存储层的设计思想,通过类图,设计图以及XMLSchema来详细介绍各个模块的设计和实现。
第五章对系统动力学建模软件图形化实现后的成果应用过程中的几个关键技术进行了更进一步的详细分析,得到这些技术在具体应用的一些经验总结。
第六章对研究内容进行了总结,以及对所做的工作进行提炼和归纳,并分析取得的成果和所需要改进的不足之处,同时交待了研究工作的局限性和程序需要完善及更新的功能,最后对将来的要进行的工作做计划和展望。
1.6本章小结
本章总体介绍了系统动力学软件的发展现状,提出了全文研究的背景。
以笔者实现的程序作为研究成果,结合图形化的相关技术及编译原理等,探讨如何实现系统动力学建模软件的图形化。
这一章提出了本文研究的对象、目标、研究方法以及论文的组织结构,为全文的展开定下了方向。
第2章系统动力学建模软件及相关技术分析
2.1系统动力学图形建模软件的发展
2.1.1系统动力学概述
系统动力学(SystemDynamics),是一门分析研究信息反馈系统的控制原理的学科,也是一门认识系统问题以及解决系统问题的交叉综合性学科。
现今它即是管理科学的一个重要的一部分,又是系统科学的一部分[1]。
系统动力学出现于1956年,创始人是美国麻省理工学院(MIT)的福瑞斯特(J.W.Forrester)教授,它是根据反馈的控制原理为基础,利用计算机模拟,一般被用于复杂的社会经济系统。
福瑞斯特教授在1958年为了分析与解决生产及库存管理等企业问题时,提出了系统仿真方法即现在的系统动力学。
它一开始主要被用于市场股票与市场增长的不稳定性,工业企业的生产及库存管理,以及员工波动情况等问题,因此该学科的早期被叫作“工业动力学”。
之后,系统动力学的应用不断扩大到各类系统,处理各个领域内的问题,如资源问题,犯罪问题,甚至于城市发展的决策问题等,“工业动力学”的命名已无法满足该学科的范畴,所以一个更适合的名字“系统动力学”代替了它。
在20世纪中期,也就是系统动力学刚刚发展的初期,有很多的研究成果与水平的著作问世。
作为系统动力学创始人的福瑞斯特教授通过对一系列的社会经济问题进行了创造性的研究。
在1958年,他发表了一篇论文《工业动力学—决策的一个重要突破口》,第一次在工业研究中运用了系统动力学;
福瑞斯特教授在1961年发表了系统动力学方面的经典著作《工业动力学》(Industrialdynamics);
在1965年,他发表的论文《企业的新设计》,使得系统动力学在工业中的应用进一步的深化;
在1968年,他出版了《系统原理》(PrinciplesofSystems)这一著作,该著作全面的论述了系统动力学的基本原理与方法,这使得系统动力的理论在基本完成;
1971年,他又把研究的对象延伸到了世界范围,出版《世界动力学》(WorldDynamics)一书,提出了研究全球发展问题的“世界模型”(WorldModel)。
在20世纪70年代初,罗马俱乐部(TheClubofRome)曾经探讨过人类目前和未来将要面临的人口增长与资源不断枯竭等等的情况,而且他们还提出了一个概念“增长的极限”。
他们利用当时的工具想尽办法来研究这个复杂问题,结果他们发现问题太复杂,需要更好的工具去分析它。
后来福瑞斯特教授应用系统动力学理论,通过以五个重要因素建立了系统动力学模拟的“世界模型Ⅱ”雏形,俱乐部的成员非常的感兴趣。
于是俱乐部提供财力在麻省理工学院成立了以福瑞斯特教授的弟子梅多斯(DennisMeadows)为首的一个国际研究小组,这个小组的任务主要是负责对世界模型的研究。
之后该小组发表了《增长的极限》(TheLimitstoGrowth),《趋向全球的均衡》(TowardGlobalEquilibrium)等系统动力学方面的著作,其中还提出了一个更为细致的“世界模型Ⅲ”。
这两个模型在世界范围内引起了非常大的反响。
在“世界模型”提出之后,福瑞斯特和弟子们又开始对美国“国家模型”研究,整个研究过程历时十多年,通过运用他的方法,得到的研究成果为宏观经济学和微观经济学搭起了桥梁。
2.1.2系统动力学图形建模软件概述
在系统动力学产生至今,它所涉及的领域已非常广泛,为分析和处理各种复杂问题做出了汗马功劳。
而作为系统动力学发展至今一直是帮助处理问题的强有力的工具更确切的说是伙伴的DYNAMO功劳不可忽视。
DYNAMO是DynamicModels(动态模型)的缩写,是一种计算机模拟语言系列。
它的作用,顾名思义,是在于建立一个真实系统的模型,然后藉助计算机对系统功能、结构以及动态行为进行模拟。
由于系统动力学的不断发展,目前基于DYNAMO的图形建模软件也在不断发展,相关的系统动力学图形建模软件的功能也不断丰富和完善。
目前使用比较普遍的系统动力学图形建模软件主要有美国的iThink、Vensim、STELLA系列及英国的DYSMAP[2]。
而在DYNAMO模型中有六种单位,分别是:
源与漏(Source&
Sink),状态变量(Level),速率变量(Rate),辅助变量(Auxiliary),常量(Constant),表函数(Lookup)。
图2.1为系统动力学模型中各种变量与方程图形表示的通用符号。
图2.1DYNAMO模型中常用的流图符号
2.1.3系统动力学图形建模软件的功能特点
当前,应用于各领域中的系统动力学图形建模软件一般都拥有以下的几个功能特点:
1.利用图形化编程建立模型。
在这类软件中,“编程”实际上并不存在,其实只有建模的概念。
只要在模型建立窗口画出系统流图,再通过输入方程和参数,就可以直接进行系统的模拟了。
2.数据共享性强,提供了丰富的输出信息及灵活的输出方式。
由于这类软件采用了多种分析方法,因此利用它得出的输出信息是非常丰富的。
其输出兼容性也相对较好。
一般的模拟结果,除了即时显示在该软件窗口外,还提供保存文件和复制的能力。
例如建立好的模型可以直接复制到MS
Word的编辑文件中。
3.对模型提供多种分析方法
这类软件一般还提供了对模型的结构进行分析和数据集进行分析的能力。
其中结构分析包括原因树分析(逐层列举作用于指定变量的变量)、结果树分析(逐层列举该变量对于其它变量的作用)和反馈列表。
模型运行后,可进行数据集分析。
对指定变量,可以给出它随时间的变化图,列出数据表;
可以给出原因图分析,列出所有作用于该变量的其它变量随时间变化的比较图;
可以给出结果图分析,列出该变量与所有它作用的变量随时间变化的比较图;
同时可以将多次运行的结果进行比较。
作为最终结果的图形分析和输出,它不但可以列举多个变量随时间的变化图,而且可以列举变量之间的关系图。
4.真实性检验对于所研究的系统,对于模型中的一些重要变量,依据常识和一些基本原则,我们可以预先提出对其正确性的基本要求。
这些假设是真实性约束。
将这些约束加到建好的模型中,专门模拟现有模型在运行时对于这些约束的遵守情况或违反情况,就可以判断模型的合理性与真实性,从而调整结构或参数。
在Vensim软件中的真实性检验功能是Ventana公司的专利方法,