引入物理量

从下列例子讲述如何引入物理量并介绍modelica的语法:

model NewtonCoolingWithTypes "Cooling example with physical types"type Temperature = Real(unit="K",min=0);type ConvectionCoefficient = Real(unit="W/(m2.K)",min=0);type Area = Real(unit="m2",min=0);type Mass = Real(unit="kg",min=0);type SpecificHeat = Real(unit="J/(K.kg)",min=0);parameter Temperature T_inf=298.15 "Ambient temperature";parameter Temperature T0=363.15 "Initial temperature";parameter ConvectionCoefficient h=0.7 "Convective cooling coefficient";parameter Area A=1.0 "Surface area";parameter Mass m=0.1 "Mass of thermal capacitance";parameter SpecificHeat c_p=1.2 "Specific heat";Temperature T "Temperature";initial equationT = T0 "Specify initial value for T";equationm*c_p*der(T) = h*A*(T_inf-T) "Newton’s law of cooling";
end NewtonCoolingWithTypes;

物理单位unit

模型应包含各自对应于现实世界体系中各个属性的物理参数,可以通过在每个变量的声明部分都包含与变量相关联的物理单元文本(unit=”…”)来实现。这些附加文本的作用是为了指定与变量相关联的unit(物理单位)属性值。属性是每个变量所具有的特质。变量的属性集取决于变量的类型。
设置unit(单位)属性实际上有两个原因。第一个原因是,Modelica 语言规范定义了所有标准国际单位属性之间的关系(例如K、kg、m)。这包括由其他基本单位构成的复杂单位类型(例如N)。
另一个原因是,Modelica 语言还规定了如何进行复杂数学表达式单位计算的规则。在这种方式下,Modelica 语言标准定义了所有与单位属性检查相关的规则,以便检测Modelica 模型中单位属性的错误或不一致。这对模型开发者来说是一个巨大的优势,因为添加物理单位属性不仅使得模型结构更清晰,而且还提供了出现错误情况下更好的诊断方法。

派生定义

Modelica 语言允许定义derived types(派生类型),其可以避免对每个变量的unit 属性重复定义。另外,”Temperature” 比单一字母K 更具有描述性。
类型的定义type Temperature=Real(unit=”K”, min=0);。其意思是“定义一个新类型Temperature。这是内置Real 类型的一个特例。其物理单位为开尔文(K)。最小可能值则为0”。
从这个例子中,可以看到,一旦定义了一个物理类型比Temperature,可以使用它为多个变量(例如T、T_inf 和T0)进行声明,而无需为每一个变量指unit(单位属性)或min(最小值属性)。另外,我们可以使用所熟悉的名字Temperature 来代替国际单位K。

关键字parameter

关键字parameter 用于表明变量的值是先验已知的,也可以说成是是用于指定变量的可变性,在这里可以认为是个必须提供赋值的变量。
这里具有五个参数:T_inf 、T0 、h 、A 、m 以及c_p。需要费心的去解释这些变量的含义,因为模型本身已经为每个变量添加了描述性的字符串。
在关键字parameter 后面的变量都有了确定值

equation 部分

这个例子有两个equation部分。
第一个是initial equation 区域。该部分指定变量T 如何进行初始化。从上面initial equation 区域可以清楚的看到,变量T 的初始值是由参数T0 决定的,因此可以为它赋任何初值。
另一条方程是关于参数T 的微分方程。数学上,可以用以下方程进行描述:
在modelica中表示为

m*c_p*der(T) = h*A*(T_inf-T)

值得注意的是:
在Modelica中,没有必要去明确某个方程是哪个单一变量的确定方程。一个公式可以在等号的两边包含任意表达式。通过确定如何使用这些方程,然后求解包含在等式中的变量是编译器的工作。
该模型看起来只有两个等式(initial equation和equation),但是initial equation区域不能算作方程,所以从概念上讲,该模型包含7个未知量和7个方程(6 个方程是对parameter 中变量的初始化,另一个在方程区域)。

modelica学习笔记4相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

  10. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

最新文章

  1. python多维字符数组_python多维数组内找指定字符串
  2. 关于对cpu的理解和kvm虚拟机到物理cpu的绑定
  3. ABAP中使用浏览器打开网页
  4. 1.5 matlab常量与变量
  5. Dreamoon and Ranking Collection CodeForces - 1330A (贪心)
  6. AT2363-[AGC012C]Tautonym Puzzle【构造】
  7. springboot编写自定义过滤器
  8. 【引用】jQuery 选择器
  9. 使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础
  10. 修改Tomcat欢迎界面为自己项目界面
  11. c语言回调函数构架程序,c语言函数回调函数回调
  12. java this() super(),Java super()和this()的区别用法及代码示例
  13. 转: 技巧/诀窍:在ASP.NET中重写URL
  14. 【WPF/WAF】使用System.Windows.Interactivity交互事件
  15. 软件设计师(中级)历年真题与知识点总结(更新中...)
  16. Windows Server 2019 如何安装IIS 服务
  17. R语言 聚类分析代码 系统聚类 K均值聚类 可视化
  18. 怎么样学习Java?
  19. 英语模板作文,词组,句子,句型,开头
  20. 我在知乎上关于Laser200/310电脑的文章。

热门文章

  1. OSI网络七层协议以及每层的作用
  2. ToLua 入门04_CallLuaFunction
  3. 8位PCM编码转换16位PCM
  4. 注册表REG文件编写大全
  5. opencv学习笔记(三)颜色转换 cvtColor
  6. 完成一个个人博客,博客头像可上传本地图片;部分图片实现点击看大图功能
  7. kafka集群搭建超详细教程
  8. 【视频音效素材】火遍全网的2000款热门短视频搞笑剪辑素材+经典音效包素材来了
  9. 电影片段素材网,自媒体必备素材网站推荐,视频素材免费下载网站
  10. 萤石云 android,Android-再次解读萤石云视频