OpenModelica仿真
复杂产品通常涉及机械、控制、电子、液压、气动和软件等多学科领域,其设计过程需要进行仿真,以满足对成本、质量、性能等的要求。目前各个学科和领域都已经有了比较成熟的仿真软件,但大部分仿真软件仅适用于本学科领域,并在模型表述中采用自己专门的格式,而复杂产品的整体性能需要多个领域仿真软件的协同仿真,需要在多个仿真软件间进行大量的数据交换,并进行系统层面上的建模,单领域仿真建模工具很难满足要求。Modelica语言就是在这一背景下推出的一种面向对象的非因果关系的仿真建模语言。它的目的是为动态系统建立一种标准的基于方程模型的仿真语言,使得仿真建模与具体的仿真工具分离,实现仿真建模的标准化。
用Modelica语言建模可以采用两种方式,一种是使用图形建模工具,通过拖放模型库中的标准部件、绘制部件间的连接、给出部件的参数,来建立系统的模型组成。另一种方式是用Modelica语言的文本方式。
求解方程时不需考虑信号的传输方向,因此不必像其他仿真软件那样分析模块间的因果关系,大大降低了建模的难度,这与Simulink不同,Simulink本质上是一种赋值运算,由其方框图描述的系统是因果的
下面是一个RLC 电路图,要仿真电阻两端电压随时间变化的暂态过程。
OpenModelica是一个开源的基于Modelica语言的建模和仿真环境,用于工业界和学术界研究。长期由非赢利组织Open Source Modelica Consortium (OSMC) 开发。在OpenModelica中新建一个类,命名为RLC1,在库中选择Electrical/Basic/Analog中的电容、电阻、电感以及大地模块和Source中的恒定电压源模块,将其拖入组件视图中,设定好参数后,将其连接。
设置仿真时间为1s,然后开始仿真,输出曲线如下图所示。
以电阻两端电压Uo作为输出,根据电阻、电容、电感的特性和基尔霍夫电压定律,可以列出系统的2阶微分方程:
$$LC\frac{d^2u_0}{dt^2}+\frac{L}{R} \frac{du_0}{dt}+u_0=u_i$$
则系统传递函数为:
$$\frac{U_o(s)}{U_i(s)}=\frac{1}{LCs^2+\frac{L}{R} s+1}$$
在MATLAB/Simulink中仿真二阶系统的阶跃响应
可以得到相同的结果:
参考:
OpenModelica仿真的更多相关文章
- OpenModelica 在特定目录下生成仿真结果文件
OMEdit的仿真结果文件存放在:C:\Users\***\AppData\Local\Temp\OpenModelica\OMEdit 可以在仿真时设置仿真结果文件名,可使用用绝对路径或相对路径 使 ...
- OpenModelica中simulate的用法
先把官网上的说明文档放上来: simulate simulates a modelica model by generating c code, build it and run the simula ...
- 基于modelsim-SE的专业进阶仿真流程
基于modelsim-SE的专业进阶仿真流程 通过<基于modelsim-SE的简单仿真流程>和<调用altera IP核的仿真流程>是否感受到仿真流程中的繁琐步骤,特别是在m ...
- 调用altera IP核的仿真流程—下
调用altera IP核的仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是 ...
- 调用altera IP核的仿真流程—上
调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的 ...
- 基于modelsim-SE的简单仿真流程—下
基于modelsim-SE的简单仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile A ...
- 基于modelsim-SE的简单仿真流程—上
基于modelsim-SE的简单仿真流程 编写RTL功能代码 要进行功能仿真,首先得用需要仿真的模块,也就是RTL功能代码,简称待测试的模块,该模块也就是在设计下载到FPGA的电路.一个电路模块想要有 ...
- 室内定位系列(二)——仿真获取RSS数据
很多情况下大家都采用实际测量的数据进行定位算法的性能分析和验证,但是实际测量的工作量太大.数据不全面.灵活性较小,采用仿真的方法获取RSS数据是另一种可供选择的方式.本文介绍射线跟踪技术的基本原理,以 ...
- lattice 与 modelsim 仿真 笔记
对于 lattice Diamond 与 modelsim 的联合仿真,我总结了一句话,那就是—— 难者不会,会者不难. 也许刚开始 觉得 摸不着 头脑,但是 一旦学会 感觉还是很简单和直观的. ...
随机推荐
- React Native IOS源码初探
原文链接 http://www.open-open.com/lib/view/open1465637638193.html 每个项目都有一个入口,然后进行初始化操作,React Native 也不例外 ...
- NSUserDefaults存取失败
解决办法: 1.存储NSUserDefaults时,强制NSUserDefault存入沙盒 [[NSUserDefaults standardUserDefaults] setObject:sAcco ...
- String转json
一.下载json 具体到http://www.json.org/上找Java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 转载地址:http://blog.csdn.net/tax ...
- Nodes “-1” are listed in ADOP_VALID_NODES table but not in FND_NODES table
While trying to apply patches to upgrade to 12.2.4, adop failed due to the below errors. Validating ...
- C#数组的声明
C#一维数组的声明方式 int[] myArray; string[] myStrArr; 但是在访问数组之前必须初始化. C#数组的初始化方式有两种,第一种是在声明数组的时候为数组的元素赋初值: i ...
- bzoj3884 上帝与集合的正确用法
a^b mod P=a^(b mod phi(p)) mod p,利用欧拉公式递归做下去. 代码 #pragma comment(linker,"/STACK:1024000000,1024 ...
- Python __builtins__模块拾穗
1.isinstance函数:除了以一个类型作为参数,还可以以一个类型元组作为参数. isinstance(obj,basestring)===isinstance(obj,(str,unicode) ...
- EF并非我们想象的那么智能
我之前在项目中用EF读取一个视图的数据,页面展示出现重复数据,当时百思不得其解,跟踪代码,数据读取时取到的数据并不是重复,为什么在前台显示就有重复了呢,我当时就在业务层将数据去重,但取到的数据跟数据库 ...
- 初试Node —— node.js的安装
可以在这里查看最新版本: http://nodejs.org/download/ 在Mac下安装相当简单,只需要下载Mac OS X Installer (.pkg),然后一路下一步即可. 在Linu ...
- Thinkphp批量添加数据
//新建规格public function construction(){ $id = $_GET['id'];//dump($id);die; $this->assign('id', $id) ...