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 的联合仿真,我总结了一句话,那就是—— 难者不会,会者不难. 也许刚开始 觉得 摸不着 头脑,但是 一旦学会 感觉还是很简单和直观的. ...
随机推荐
- Java语言程序设计(基础篇) 第三章 选择
第三章 选择 3.8 计算身体质量指数 package com.chapter3; import java.util.Scanner; public class ComputeAndInterpret ...
- .html(),.text()和.val()的差异总结:
.html(),.text()和.val()的差异总结: 1.html(),.text(),.val()三种方法都是用来读取选定元素的内容:只不过.html()是用来读取元素的html内容(包括htm ...
- JFinal学习
1 jfinal-1.9-bin.jar 2 继承Controller编写控制器 public void sendJPushToXXX() { String userId = getPara(&quo ...
- JAVA:通过poi读取excel
POI是一个apache开源的jar包,可以通过搜索 java POI找到官网,并下载开发包. 包含的功能: 可以读取excel2003,2007,2010等. 读取excel2007/2010的代码 ...
- Add&Delete WindowService
Part One-Add: Step4: Add the new service to windows service: $commandLine = 'D:\IMS\2.16.0.42-DataSe ...
- Leetcode: Heaters
Winter is coming! Your first job during the contest is to design a standard heater with fixed warm r ...
- web前端基础知识 Dom
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...
- ThroughRain第一次冲刺(每天更新)
第一次冲刺时间: 11月14-11月23 第一次冲刺目标及分配: 1.注册登录界面 认领:王大华 2.界面跳转 认领:梁仕标 3.点餐界面 ...
- HDU5870 Alice's Adventure in Wonderland
大概做法是这样的 考虑最朴素的做法,预处理出1到所有点的最短路数组dis1和方案数数组cnt1,和预处理出n到所有点的最短路数组dis2和方案数数组出cnt2,然后暴力枚举点对(A,B),如果A和B之 ...
- js字符串和正则表达式中的match、replace、exec等函数详解
正则并不是经常使用,而正则和字符串之间的函数关系又错综复杂,谁是谁的函数,又是怎么样的一种结果,往往我们是看一遍忘一遍,对此我是头疼不已,感觉自己是个笨蛋^_^. 为了以后不再查文档,特此把常用的函数 ...