Modelica多领域物理系统建模入门与提高
内容简介
本书是Modelica语言学习的入门级读本。本书浅显易懂地介绍了Modelica语言本身所涉及的内容,结合语言的功能介绍了Modelica在化学、生物、机械、电气等不同物理领域的建模方法;同时结合实际介绍了Modelica语言的具体应用。
本书可作为Modelica语言初学者学习和参考使用,也可作为高等院校Modelica语言教学使用。
作者简介
从伊利诺伊大学机械工程专业。1995获得博士学位。他在福特公司动力总成研究部工作。他的工作重点是对发动机和传动系统的建模。获得8项专利。Tiller博士离开福特2005加入一家工程咨询公司,作为2010研发副总裁研发emmeskay建模。2011,加入总部在巴黎达索系统MES成为PLM系统的全球市场营销总监。2012年,他开始了自己的公司,xogeny,帮助企业加速他们的基于模型的系统工程过程的咨询工具的开发。自1999以来,Tiller博士参与了面向对象的建模语言Modelica研发,是Modelica协会董事会成员。
目录
第一部分 Modelica语言
第1章 简介
1.1什么是Modelica
1.2Modelica能干什么
1.3建模方式
1.3.1块图
1.3.2非因果建模
1.3.3对建模方式的进一步说明
1.4Modelica标准库
1.5基本术语
1.6小结
第2章 微分方程
2.1引言
2.2微分方程
2.2.1单摆的运动方程
2.2.2单摆的Modelica模型
2.3物理量的类型
2.3.1RLC的本构方程
2.3.2RLC的Modelica模型
2.4模型注释
2.4.1液压系统的本构方程
2.4.2液压系统的Modelica模型
2.5Modelica语言基础
2.5.1模型
2.5.2变量、参数和常量
2.5.3表达式
2.5.4方程式
2.5.5运算符
2.5.6属性
2.5.7物理类型
2.6练习
第3章 建立和连接组件
3.1概念
3.2连接器
3.3建立连接器及组件
3.3.1基于方程的方法
3.3.2基于组件的方法
3.3.3标准电气组件
3.4定义块
3.4.1基于方程的方法
3.4.2基于组件的方法
3.4.3标准块图组件
3.5MSL中的旋转组件
3.5.1连接器
3.5.2特殊模型
3.5.3连接针
3.5.4单一旋转系统
3.5.5创建更复杂的系统
3.6语言基础
3.6.1连接
3.6.2限定符
3.6.3更改默认参数值
3.6.4定义块
3.6.5发现和利用组件模型
3.7小结
3.8练习
第4章 组件重用
4.1概念
4.2公共代码开发
4.2.1识别和定义公共代码
4.2.2使用公共代码定义模型
4.3构建可重用的块
4.3.1建立控制器模型
4.3.2传递信息
4.3.3小结
4.4允许替换的组件
4.4.1通用控制器接口
4.4.2特定控制器模型
4.4.3使用可替换组件
4.4.4小结
4.5其他可替换的实体
4.6对灵活性的限制
4.7其他注意事项
4.7.1参数
4.7.2通用性
4.7.3注释
4.8语言基础
4.8.1模型的扩展
4.8.2简短定义
4.8.3子类型
4.8.4partial定义
4.8.5创建可替换的模型元素
4.8.6final类型组件
4.9练习
第5章 函数
5.1概念
5.2简介
5.2.1数组
5.2.2函数的鲁棒性
5.2.3函数主体部分
5.2.4函数的调用
5.3插值函数
5.3.1说明
5.3.2使用for循环
5.3.3具名自变量
5.4多重返回值
5.5自变量records
5.5.1创建record
5.5.2record中的变量
5.6使用外部子程序
5.6.1外部子程序
5.6.2相关说明
5.6.3调用外部子程序
5.7Modelica语言基础
5.7.1自变量
5.7.2局部变量
5.7.3运算法则
5.7.4分支语句
5.7.5循环语句
5.7.6调用函数
5.7.7内置函数
5.7.8外部子程序
5.8练习
第6章 数组
6.1概念
6.2组件数组应用示例:行星运动
6.2.1连接器
6.2.2三维空间中的物体定义
6.2.3万有引力
6.2.4多体仿真
6.3一个简单的一维热传递示例:变量数组的使用
6.3.1控制方程
6.3.2基于方程的方法
6.3.3基于组件的方法
6.3.4标准传热组件
6.3.5小结
6.4在化学系统模型中使用数组
6.4.1背景介绍
6.4.2化学反应
6.4.3基于数学方程
6.4.4基于基本化学模型的方法
6.4.5Oregonator模型
6.5语言基础
6.5.1信息隐藏
6.5.2数组
6.5.3循环和方程式
6.5.4高级的数组处理特征
6.5.5针对数组的内置函数
6.6练习
第7章 混合建模
7.1概念
7.2数字电路建模
7.2.1连接器
7.2.2组件
7.2.3简单的逻辑电路
7.2.4混合离散及其行为模拟
7.3弹球
7.4传感器模型
7.4.1简介
7.4.2理想情况
7.4.3采样与保持传感器
7.4.4量化
7.4.5周期测量传感器
7.4.6计数传感器
7.4.7对传感器模型的总结
7.5语言基础
7.5.1模型中的运算规则
7.5.2离散变量
7.5.3条件更改的反应
7.5.4混合系统中的内置函数和内置运算
7.5.5提出的问题
7.6练习
第8章 探索非线性行为
8.1概念
8.2理想二极管
8.2.1数学背景
8.2.2模型描述
8.2.3采样电路
8.3齿间隙
8.3.1非线性弹性方法
8.3.2补偿系数方法
8.3.3比对
8.3.4小结及展望
8.4热特性
8.4.1背景
8.4.2创建一个热性能模型
8.4.3非线性热电容建模
8.4.4凝固过程仿真
8.5神经元模型
8.5.1背景
8.5.2电路模型
8.6语言基础
8.6.1参数化公式
8.6.2行为更改
8.6.3不连续性
8.6.4隐式方程
8.6.5理想化
8.7练习
第9章 其他内容
9.1搜索规则
9.1.1静态范围
9.1.2动态作用域
9.2注释
9.2.1图形注释
9.2.2文档
第二部分有效的Modelica
第10章 多领域建模
10.1概念
10.2传送系统
10.2.1机械负载
10.2.2电动机
10.2.3控制系统
10.2.4完整的系统
10.3住宅供暖系统
10.3.1概述
10.3.2室内温度
10.3.3热炉
10.3.4温度控制器
10.3.5完整的系统
10.4车辆库
10.4.1简单轿车包
10.4.2发动机包
10.4.3变速箱包
10.4.4底盘包
10.4.5车辆包
10.4.6应用
10.4.7结束语
10.5小结
第11章 块图与非因果建模的比较
11.1面向对象
11.2块图
11.2.1问题陈述
11.2.2问题公式
11.2.3块图
11.2.4初始条件
11.2.5重用
11.2.6结论
11.3非因果方法
11.4小结
11.5练习
第12章 构建库
12.1目标
12.2分类
12.3组织结构
12.3.1类型
12.3.2接口
12.3.3函数
12.3.4传感器
12.3.5例子
12.3.6测试
12.3.7包的特定结构
12.3.8包的经典格式
12.4说明文档
12.5化重用
12.5.1包括局部定义
12.5.2使模型可替代
12.5.3包的粒度
12.6的鲁棒性
12.6.1使用声明及限制
12.6.2确定选择
12.6.3减少潜在的建模错误
12.7Modelica源代码的存储
12.8小结
第13章 初始条件
13.1目标
13.2数学规则
13.3使用属性
13.4开始仿真
13.5基于分析类型的初始化
13.6小结
第14章 效能
14.1目标
14.2使用方程
14.3阻止不必要的事件
14.4时间尺度
14.5为函数提供雅可比函数
14.6选择合适的积分程序
14.7容差
14.8变量消除
14.9小结
附录AModelica进化史
A.1Modeliica语言编著者
A.2Modeliaca标准库创建者
附录BModelica语法
附录CModelica标准库: 连接器
C.1电气
C.2块图
C.3直线运动
C.4旋转运动
附录DModelica标准库:通用单位
D.1时间和空间
D.2周期现象
D.3机械系统
D.4热力学
D.5电流
D.6物理化学
附录EModelica标准库: 常量
附录FModelica标准库:数学函数
F.1几何函数
F.2反函数
F.3双曲函数
F.4指数函数
词汇表
参考文献
前言/序言
随着信息技术与仿真技术的发展,基于模型的系统工程方法(Model Based System Engineering,MBSE)逐渐被用在工程领域开展研究和应用,基于模型的系统工程研发体系已逐步成为复杂产品研发的必然模式。MBSE方法通过数字化模型,描述从需求开始的所有研发对象和研发过程,并通过仿真对设计目标进行不断验证,它是支持产品正向设计和产品创新的有力工具和方法,已经在发达国家应用多年。MBSE实现了“基于模型”和“模型驱动”,通过模型使整个组织在产品研发过程中使各类专业工程和技术领域人员能够更加直观地理解和表达,确保在研发过程中各专业间传递和使用的模型统一协调;同时,确保在有任何需求或方案更改时,保证同一基线的其他关联模型同步修改,实现通过基于模型的仿真进行大系统综合设计和验证,实现复杂系统研发过程中设计的快速迭代和优化。MBSE的核心是模型,而对于多物理系统的建模与仿真(MBSE还包括需求模型、功能模型、架构模型等),Modelica已经逐渐成为其标准语言。
Modelica是一种开放的、面向对象的、以方程为基础的语言,它可以方便地实现包括机械、电子、电力、液压、热、控制及面向过程的子系统等物理系统的建模与仿真,利用计算机进行跨领域、跨学科物理系统的性能分析。Modelica是由非营利国际组织Modelica协会进行开发和维护的,并发布开源的标准库。目前,Modelica标准库已经包含多领域的920个元件模型,具有620种功能。目前众多行业均使用Modelica语言进行模型开发,许多商业化仿真软件或环境,如CATIA Systems、CyModelica、Dymola、LMS AMESim、JModelica.org、MapleSim、OpenModelica、SCICOS、SimulationX等均支持Modelica语言。同时,Modelica模型也可以通过像Dymola、MapleSim、SimulationX 以及 Vertex软件的导出功能方便地输入到Simulink等软件中,实现与实时仿真系统的集成。
翻译本书,旨在为广大工程技术人员系统地了解Modelica,夯实多物理建模与仿真的基础提供帮助,以期在推进MBSE过程中起到应有的作用。
本书在翻译过程中得到中航工业飞机设计研究院总师办、信息系统研究所和情报档案研究所的大力支持与帮助,在此表示特别感谢。本书的主要编译工作由信息系统研究所刘俊堂和郑党党负责,由于他们的辛勤工作才使得本书得以出版,同时非常感谢参与本书编译的吴颖、戴晶黎、董亮、李婷婷、关建锋、张石磊、李欢等同志。信息系统研究所张永辉所长及赵攀副所长也为本书的编写提供了重要的支持,在此也表示特别感谢。后续,我们将进一步跟踪研究Modelica建模与仿真方面的技术发展,适时编译相关方面的书籍报告,推动MBSE技术在型号研制中的深入应用。
前言:
写本书是想告诉从事物理系统仿真研究及工程应用的人们,物理系统建模是多么有趣、容易和有用。对于我本人而言,没有比用计算机来进行物理系统的性能分析更为有趣的事了。物理系统建模与仿真涉及电气工程、机械工程、化学和物理学等跨领域、跨学科物理系统的性能分析,多学科之间可以使用守恒定律建立联系,如热力学定律和质量守恒定律等。
本书重点描述使用Modelica语言进行物理系统建模与仿真的方法。Modelica建模语言在物理系统建模与仿真方面具有广阔的应用,它既可以用于仅有几个自由度的简单系统仿真,也可以用于由大量可重用组件构成(或子系统)的复杂系统的仿真。
本书分为两大部分。部分对Modelica语言进行了详尽的介绍,适合于对物理系统仿真具有浓厚兴趣、具备物理学和微积分基础知识但是对建模与仿真知之甚少的初学者,内容包括Modelica建模语言基础和简单例子,初学者读完本部分内容后就能用Modelica语言进行建模。
部分的各章以其涉及的重要概念作为引入,且把导入的新概念、新术语使用斜体字印刷,并归类到书后的术语表中,以方便查找。接着使用大量的案例帮助读者理解Modelica语言的功能。本人认为,案例是学习本部分内容的重要素材,我尽量避免使用自己设计的例子,而是采用我工作中经常碰到的实际案例,这也许对读者更有帮助。由于篇幅所限,使用真实案例带来的困难是无法对案例背景等进行详尽的介绍,而是尽量按本书编写的逻辑对案例进行描述。因此,在多个章中包含了语言基础一节的内容,以期达到使用案例介绍和学习概念的目的。如果读者认为已经掌握了相关概念,可以自由决定是否跳过这些内容。再次强调,本书的一个特点是,每个案例都会导入新概念。换句话说,当你掌握了某章节中的首个例子,并不代表你不值得研究一个章节中的其余例子。
本书的第二部分通过案例对Modelica语言进行了更深入的介绍。假设读者已经熟练掌握了部分的内容,也就是熟练掌握了Modelica语言基础,那么第二部分将介绍在此基础上怎样更有效地使用Modelica语言,并发挥它的强大作用。
本书几乎涵盖了Modelica语言的各个方面,然而,需要在高级应用中才能发挥其作用。读完本书的第1、第2、第3和第7章内容,就可以进行物理系统建模了,因此这几章是掌握基本建模方法的核心,在此基础上,读者可根据自身情况,熟练地掌握其他各章的内容。
Modelica语言内容丰富多彩,本书不可能尽其细微之处,但是,读者一旦掌握了全书内容,意味着你已经打开了使用Modelica进行物理系统建模与仿真的大门。要掌握Modelica语言所有的内容,读完本书后翻阅Modelica语言本身的资料就可以了。
总之,本书想在基于Modelica语言的物理系统建模与仿真方面尽其作用,既可适于初学者,也能为具有一定经验的读者提供尽可能多的帮助。