图形化建模软件SimuBlocks的研发及其应用毕业论文
2020-04-09 15:22:12
摘 要
Abstract Ⅱ
第1章 绪论 1
1.1 图形化建模与仿真的意义 1
1.2 国内外研究现状 2
第2章 建模与仿真的形式化理论 4
2.1 建模与仿真概述 4
2.2 离散事件系统规范DEVS 4
2.3 DEVS形式化描述 5
2.3.1 模型 5
2.3.1.1原子模型 5
2.3.1.2耦合模型 6
2.3.2 仿真器 7
2.3.3 实验框架 7
2.4 DEVS封闭性证明 8
2.5 DEVS仿真算法 8
2.6 本章小结 10
第3章 SimuBlocks软件设计 11
3.1 SimuBlocks软件概述 11
3.2 图形化建模与界面设计 11
3.2.1 图形化建模 11
3.2.2 软件界面 12
3.3 仿真核心设计 13
3.3.1 仿真模型 13
3.3.1.1 模型的结构 13
3.3.1.2 模型的计算 14
3.3.2 仿真模块 16
3.3.2.1 基础模块 16
3.3.2.2 可编程模块 17
3.3.2.3 子系统模块 18
3.3.3 模型管理器 18
3.4 仿真模型的存储与载入 19
3.5 本章小结 20
第4章 SimuBlocks软件实现与应用 21
4.1 图形化与界面的实现 21
4.2 仿真核心程序的实现 29
4.2.1 仿真模块的封装 29
4.2.1.1 基础模块 31
4.2.1.2 可编程模块 31
4.2.1.3 子系统模块 31
4.2.2 模型管理器的实现 37
4.2.3 模型的计算 39
4.3 模型文件存储与载入的实现 42
4.4 软件应用实例 45
4.4.1 基本功能界面展示 45
4.4.2 求解洛伦兹气象方程组 47
4.4.3 求解质量-弹簧-阻尼系统的状态空间方程 49
4.4.4 利用可编程模块实现频谱分析 50
4.5 本章小结 56
第5章 总结与展望 57
参考文献 58
致谢 59
附录 60
摘 要
建模与仿真对于科学研究和工业生产都具有重要意义。随着各领域对复杂系统的研究或制造需求不断增加,系统规模和复杂度日益增大,传统的建模与仿真技术的工作效率、准确度与可重用性等已显得不足,建模与仿真开始向数字化、模块化与图形化方向发展,一些专业的系统仿真软件如simulink已经带来了巨大的生产力,协助科研人员完成了许多复杂系统的研究。因此,对图形化建模与仿真软件的研究是应用系统仿真技术的基础,具有更重要的价值。
论文对图形化建模与仿真软件的相关理论做了较详细的研究,包括国内外系统仿真软件发展现状、建模与仿真的形式化理论、关键模块的设计与实现方法和软件开发相关的计算机技术等。结合上述理论,使用Visual C 实现了一个图形化建模与仿真软件SimuBlocks,它具有图形化建模、连续系统仿真与简单的后处理功能,并支持用Lua语言自定义功能模块,还可以将子系统封装成新的模块。
论文记录了完整的研发过程以展现图形化建模软件的实现细节,可为相关软件的开发提供更实际而生动的参考。此外,采用了一些数学和工程模型来验证此软件,这些应用示例也在文中做了展示。
关键词:图形化建模;计算机仿真;软件开发
Abstract
Modeling and simulation are of great importance to scientific research and industrial production.As the study of complex systems or manufacturing demandcontinues to increase in all areas, system scale and complexity are increasing, the working efficiency, accuracy and reusability of the traditional modeling and simulation technology has seem to be insufficient, the modeling and simulation began to develop in the direction of digital, modular and graphical, some professional system simulation software such as simulink, has brought huge productivity and assisted researchers completed the research of many complex systems.Therefore, the study of graphical modeling and simulation software is the basis of the application of system simulation technology, and has more important value.
In this paper, we have done a detailed research on the theory of graphical modeling and simulation software, including the system simulation software development situation at home and abroad, the formal theory of modeling and simulation, design and realization method of key modules, and the software implementation related computer technology, etc. Combining the above theory, using Visual C implements a graphical modeling and simulation software SimuBlocks, it has the graphical modeling, continuous system simulation and simple post-processing function, and support custom functional modules in the Lua language, subsystems can also be encapsulated into a new module.
This paper records the complete research and development process to show the implementation details of graphical modeling software, which can provide more practical and vivid references for the development of related software.In addition, some mathematical and engineering models are used to verify the software, and these application examples are also shown in this paper.
Key Words:graphical modeling;computer simulation;software development
第1章 绪论
1.1 图形化建模与仿真的意义
随着制造技术和信息技术的发展,无论是工业生产还是科学研究,都朝着大规模、超精密方向迈进,各个领域对复杂系统的研究或制造需求不断增加。另一方面,随着人们对自然认识的深入,任何一个高端应用或研究必然是跨学科、综合的系统工程,正如物理学家惠勒坚信科学理论是互相联系的一个整体,只有融会贯通综合应用,才可以取得巨大进步。在设计构建一个复杂系统时,需要预先研究其运行规律从而优化结构与参数,同时考虑到风险和成本等因素,进行仿真验证是必不可少的。根据仿真载体的不同,仿真方法可以分为实体仿真(物理效应仿真)、数字仿真(计算机仿真)和实体-数字混合仿真,其中最高效灵活的当属计算机仿真尤其图形化仿真,有如下几个方面的原因:
一是绝大多数复杂系统都是非线性的,而且难以建立数学模型直接求解。例如存在复杂相互作用的一个粒子系统,无法用一个含时间的显式表达式描述,从而无法立即确定系统某一刻的状态,只能一步一步地演算。这样的仿真过程可以类比为一个状态机的运行,因此在现代计算机上,利用图灵机的完备性,我们可以模拟大量的系统,它们对应的状态机是图灵机的子集或等效的图灵机。采用图结构能自然和形象地表达这些系统,因此在数字仿真的基础上引入一个图形化建模界面,让设计人员能方便地搭建和调整系统结构,相比数学模型或文本程序能更广泛、直观地表达各类系统;
二是复杂系统的许多部件是可重用的。例如频谱分析、传递函数或其他计算功能等,设计者没有必要重复编写这类部件,因此建立一个通用仿真模块库是必要的,它必然包含大量常用功能部件,如果系统建模采用文本编程,这些模块只能由标识符引用,但记忆这些标识符将降低建模效率;另外直接编程连接各个模块,这种描述方法对于大型系统是弊大于利的,使用者难以调试和修改;
三是采用符号编程构建的系统,其稳定性和准确性难以保证——任何人在编写一个大型程序时,都难以避免隐性的错误,也无法在短期测试验证其稳定性,同时一个设计师对某个模块的数值计算编写并不一定准确,这本应交给更专业的人去做。因此,基于模型的设计(model based design)思想应运而生,对于数字仿真来说,按此思想可将系统仿真的工作分为三层——第一层由专业的计算机科学家与软件工程师设计开发一个框架,他们保证框架运行的稳定性,它最好是可扩展的微内核结构,方便后续升级和插件开发,它的计算核心能够解析和驱动一个图结构,至于每个节点模块的功能,则交给上层实现,本层只完成模块的抽象设计,包括可编程模块等;第二层是由专业的计算科学家和行业专家设计研发的各类基础模块,他们保证这些模块的计算准确性和运行效率;第三层面向系统设计者,他们只用考虑系统的逻辑结构——即模型,根据这个模型在软件中组建模块网络,仿真软件能对其进行早期验证如形式化分析(可以类比文本编程时的语法检查),通过后就可以稳定而准确地模拟系统运行(所谓准确,是在一定容差范围内),至于模型是否正确或最优,则由设计者根据仿真结果去检验和调整。很显然,对基于模型的设计,采用图形化建模是最自然的——明确清晰,便于交流和维护。
正是这样,如无特别说明,在后文中如提到“系统仿真软件”就是指“图形化系统建模软件”,我们默认图形化是必要的。另外本文重点面向连续系统仿真,所以“建模”一词并不涵盖任意模型,例如对某公司某产品审核流程的建模,这实际上属于流程图模拟软件的功能,虽然我们的仿真软件稍加改动也可以实现此功能。值得强调的是,系统仿真软件不同于组态软件,从形式上看其图形界面是相似的,都是由模块连成的网络,但是标准的组态软件实际上是一个模块化的集散控制系统(DCS),它面向工业现场设备的数据采集、检测和控制,即它是由实体驱动的,如果一个图形化建模软件含有各类通信模块(如串口、网络接口等),并可选择模型的计算驱动模式,那么它也完全支持组态功能,这时它既可以用来监控设备,也能用于实体-数字联合仿真。
1.2 国内外研究现状
现有的图形化建模与仿真软件并不多,尤其是功能丰富、稳定高效的系统仿真软件,更是屈指可数。下面是具有一定规模并获得广泛应用的若干商业软件:
产品名称 | 公司 | 功能与特点 |
Simulink | MathWorks | 动态系统建模与仿真,提供各个领域的模块库 |
LabView | NI | 图形化编程与虚拟仪器,提出了图形化源代码的概念,即G语言 |
SPSS,AMOS | IBM | 面向数据分析和建模等 |
SimuWorks | 大风科技 | 多领域系统仿真,如动力系统,电站,化工流程等 |
在上述产品里,SimuWorks是目前国内仅有的大型系统仿真软件,在电力系统设计、船舶动力设计和化工生产等方面得到了实际应用,但相比Simulink这样的仿真软件,在广度和深度上仍有差距。但使用国外的软件,也存在一些问题——第一是Simulink等大型软件目前处于垄断地位,其正版授权非常昂贵,如果大量采购应用于生产,将流失不少资金;第二是国内众多研究机构,包括军用研究都需要这类软件辅助,对于这种庞大的闭源仿真软件,很难检验其安全性,在危机时刻难以避免被窃取研究资料的风险。因此自主研发一个开源的图形化建模软件,是必要而且有重要意义的。
当前国内的图形化建模软件及系统仿真行业缺乏竞争,同时在国际市场上竞争力又不强,从这个方面也说明了研发这类软件的必要性,百家争鸣、百花齐放,势必能推动系统建模与仿真软件各层技术(如前述的三层架构)的创新和成熟,甚至出现新的计算模型或仿真架构。
在理论研究方面,由于成熟的系统仿真软件大多是商业化闭源的,因此直接相关的高级技术资料或研究论文是较少的,但对于建模与仿真的形式化描述及交互操作标准方面,已有较为成熟的理论和规范,如Zeigler提出的离散事件系统规范DEVS[15][24][25],仿真互操作标准组织(SISO)提出的HLA、RTI和BOM等设计思想及规范[14][16][17][27]。应该承认的是,目前国外相关的理论技术积累是领先我们的,但我国也一直在进行数字仿真的研究,并取得了一定成果[3][5][7][12],只是软件规模较小,多数停留在实验室阶段,且大多只支持离散系统仿真,缺少成熟的离散-连续混合系统仿真技术。但是间接的理论研究,国内外均有大量实用成果,例如仿真计算核心,可部分参考DAG图的计算理论[4](但对于有环的系统结构,仅用拓扑排序是不行的),也可参考DEVS理论中基于模型与事件的算法[15],同时国内外对离散-连续混合系统仿真方法也有研究[19][29];数值计算模块可以参考数值分析理论[2]来实现;领域相关的模块则参考这个领域的专业理论;代码自动生成可参考图理论和编译理论等。从上述分析也可以看出,系统仿真软件的制作本身也是一个跨学科的综合应用,同时设计思想和实现途径很丰富,虽然可供参考的直接资料并不多,但也不必局限于某个现有的框架设计,先做出一个有效的仿真框架和部分基础模块,并对一些简单模型进行仿真验证,然后逐步优化设计,同时和各领域用户进行合作,不断扩大模块库——依靠用户来迭代壮大工具库,是很多可扩展软件的常用方法。我们的任务主要是保证框架的稳定性和计算的准确性,领域相关的事情由更专业的人去做,这也提高了开发效率,能在短期扩大到一定规模。
第2章 建模与仿真的形式化理论
2.1 建模与仿真概述
世间万物都可以看作是一个系统,任取一部分是系统,组合几部分也是系统。系统的组成部件相互作用,发生变化,系统状态也随之不同。一个部件是影响系统行为的基本单位,是研究系统的基本对象,我们称之为模块。模块的选取不是绝对的,例如一个生物系统,模块既可以选为各个器官,也可以是一个个细胞,甚至是更小的分子和原子等,这取决于我们想研究哪一层的运行规律,而且研究的模块越靠近底层或越微观,得到的系统行为也就越准确和丰富,因此它是随研究目标和精确度而定的。这种相对性所蕴含的正是模块的耦合关系,若干小模块可以耦合成一个大模块,在本章最后一节,将证明这种耦合运算是封闭的。
在概括了系统与模块后,我们希望能找到表达系统的方法,进而模拟系统的运作。所谓建模,就是从系统的表象中建立其抽象的模型,这个过程可以有删繁就简,也可以引入新的环节,但应保证等效的系统行为。所谓仿真,就是用数字或物理方法,模拟系统的变化。图形化建模与仿真,是其中的一种具体方法,它采用交互操作建立起表达系统的结构图,使用数字仿真模拟系统的行为。
但在具体的方法之外,我们更需要建立一种形式化理论来描述建模与仿真,因为它能指导仿真程序的设计和优化,也利于对系统行为做理论分析,不妨把它称为建模与仿真的元理论。文献[15]中提到,当前建模与仿真领域积累了大量知识,但缺乏系统的梳理,由于急迫的应用需求,国内仿真界长期以来把重心放在应用上而不是理论研究上,虽然本学科的形式化理论问题常被提及,但深入的研究工作却长期被忽略。当需要建立完善的建模与仿真学科、面对复杂的大规模系统仿真时,我们不得不重视建模与仿真的理论问题。
建模与仿真的形式化是指采用数学语言来描述模型结构和仿真器等。形式化要考虑如何产生模型中变量的新值和确定新值起作用的时间,模型之间的联系与耦合等问题。有了形式化描述,就可以进行数学分析,从而利于模型的早期验证和优化,指导仿真方法从理论转向实践应用。综上所述,建模与仿真的形式化理论是深入研究系统仿真的有力工具,无论是对系统分析还是指导仿真,都有重要的意义。因此本章将介绍一种成熟的形式化理论DEVS,作为建模与仿真的理论基础。
2.2 离散事件系统规范DEVS
离散事件系统在工程、社会、经济和军事等领域十分常见,这类系统的状态会在一些不均匀的离散时刻上发生变化, 而且状态变换的机制比较复杂, 一般无法用数学方程来描述。1976年,亚利桑那大学的Zeigler教授提出了一种描述离散事件系统形式化的方法──离散事件系统规范(Discrete EVent System Specifications, DEVS)。DEVS 是建立在系统论基础上的, 可用于状态转换表、图描述的离散事件系统,微分方程描述的连续状态系统,以及连续系统和离散系统构成的混合系统。可以粗略地认为连续系统只是离散事件系统的特殊形式,更何况计算机求解连续系统时,也不得不做离散化。
值得说明的是, SimuBlocks的研发并没有完全参考DEVS的模型-事件算法,但正如上文所述,建模与仿真的形式化描述至关重要,因此它为本软件提供了重要的理论指导与设计思想,例如DEVS 的面向对象思想,耦合模型的构造过程,模型之间的消息传递等,都值得借鉴。正是这样,本章将详细介绍DEVS的关键理论,作为建模与仿真软件的理论基础。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: