lorenxjtu的个人博客分享 http://blog.sciencenet.cn/u/lorenxjtu

博文

[转载]学渣带你学modelica,第一发——“Hello world”

已有 372 次阅读 2019-10-11 14:14 |个人分类:modelica|系统分类:科研笔记|文章来源:转载

本人资深学渣,各种作业全靠大家,现在要自学modelica,三五十五真的好难呀....(开场就四押,掌声在哪里,( ̄▽ ̄)")

学渣学东西么,肯定不会老老实实看书、听课了,必须是能抄就抄,用最笨的脑子、做最少的努力、交最简单的作业、得最“精益”的分数(师傅饶命,别念紧箍咒了,下辈子我一定好好努力,○| ̄|_ ○| ̄|_ ○| ̄|_)

知识点:学渣三宝——笨、懒、能凑合。


学渣就是容易跑题,见谅见谅,下面开始抄袭,不对,开始学习......

首先呢,先自备一台电脑,装上一款能运行的modelica仿真平台,然后起码学学基本操作,这部分作业自己下去抄,就不带着大家一起抄了,毕竟那么多软件厂商,好多个课代表,选择困难症患者不知道应该抄谁的,见谅见谅。

上回书咱们说到model是modelica最小的可运行单元,那咱就先看一个简单的model,(该例抄于《Modelica By Example》,学渣么,鼠标能搞定的,咱就别麻烦键盘)。

求解微分方程:

编写代码如下:

    model DSolve1

        Real x;

    initial equation

        x=2;

    equation

        der(x) = 1-x;

    end DSolve1;

有了这么一串代码,编译、运行之后仿真结果就能够出来了,直接绘制x的时序曲线,基本上就是这样的:

这些都不重要,又没人在乎结果,不如回头看看代码都说了些啥。

首先,modelica建模本质就是描述问题的数学方程,描述完了,告诉软件,软件就直接给结果了,很像matlab,懒癌患者的福音,学渣最爱。modelica每份代码文件的开始和结束都要标明身份,告诉系统,“我是model,我叫DSolve1,我来了,作业是这,我完了,你来安排,see u”。

  要把问题说清楚,就需要变量和方程,大部分情况下,要获得准确结果,还需要初始值,所以modelica代码还必须包含三个最基本的代码段,变量声明、初始值定义、方程定义。

这么一看,搞一个modelica的仿真程序蛮简单的么,找个模板,改模型名称、改变量名称、改方程、改初始值,其它交给软件搞定,改一改就提交,好easy,跟抄作业完全没差。

知识点:model三宝——变量、方程、初始化


modelica的变量跟大多数语言一样都包含实数、整数、布尔数、字符串等形式,跟其它软件不同的是modelica的变量可以具有单位,这样就把单位变换的事儿交给后台去处理,用户只需要关注方程本身的正确性了,比较方便,尤其适合量纲变化都搞不清楚的学渣,感谢菩提祖师,不对,感谢modelica祖师。

        Real x (unit="kg");     //声明变量类型

方程不只包含待求解的变量,往往还包含方程参数,比如将前面的函数改成:

a=1的时候,两个方程是等价的,a等于其它值的时候,上式又可以表达其它方程,处理起来就会很方便,此时可在model文件中可定义parameter:

知识点:声明字段两个基本点——变量类型、变量属性


modelica初始值定义也支持多种形式,比如直接定义变量的初始值,也可以定义变量导数的初始值,也可以通过其它很多灵活的方程形式定义,这也是这个字段被叫做“initial equation”的原因。

至于函数字段,就是利用函数准确的描述数学问题,需要注意的事项;

  • 函数定义字段可以包括控制语句:if、when等;

  • 可以自定义equation,但需要在其它文件中单独定义;

  • model中可以包含其它model实例,通过connect联立不同model中的方程(后面再学这个);

  • 方程数要可解。

知识点:方程和初始化的一个中心:准确描述问题。


如果手上有本工具书,查查变量有哪些类型,方程有哪些定义方式、都有什么函数可以用、初始值都有哪些定义方法,简直可以千变万化,“五十六个民族、五十六朵花、五十六行代码没有啥,五十六个模型,汇成一句话,不是学渣,不是学渣,不是学渣~~”

本期完,下期再找个例子,看看modelica多个模型间是怎么串起来的,毕竟号称系统仿真工具,都写到一个界面里,算什么系统,垃圾分类系统吗?




http://blog.sciencenet.cn/blog-687103-1201521.html

上一篇:[转载]概述modelica
下一篇:[转载]跟学渣一起学Modelica,第二发——图形化拖拽建模

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-11-14 09:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部