复杂产品通常涉及机械、控制、电子、液压、气动和软件等多学科领域,其设计过程需要进行仿真,以满足对成本、质量、性能等的要求。目前各个学科和领域都已经有了比较成熟的仿真软件,但大部分仿真软件仅适用于本学科领域,并在模型表述中采用自己专门的格式,而复杂产品的整体性能需要多个领域仿真软件的协同仿真,需要在多个仿真软件间进行大量的数据交换,并进行系统层面上的建模,单领域仿真建模工具很难满足要求。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仿真的更多相关文章

  1. OpenModelica 在特定目录下生成仿真结果文件

    OMEdit的仿真结果文件存放在:C:\Users\***\AppData\Local\Temp\OpenModelica\OMEdit 可以在仿真时设置仿真结果文件名,可使用用绝对路径或相对路径 使 ...

  2. OpenModelica中simulate的用法

    先把官网上的说明文档放上来: simulate simulates a modelica model by generating c code, build it and run the simula ...

  3. 基于modelsim-SE的专业进阶仿真流程

    基于modelsim-SE的专业进阶仿真流程 通过<基于modelsim-SE的简单仿真流程>和<调用altera IP核的仿真流程>是否感受到仿真流程中的繁琐步骤,特别是在m ...

  4. 调用altera IP核的仿真流程—下

    调用altera IP核的仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是 ...

  5. 调用altera IP核的仿真流程—上

    调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的 ...

  6. 基于modelsim-SE的简单仿真流程—下

    基于modelsim-SE的简单仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile A ...

  7. 基于modelsim-SE的简单仿真流程—上

    基于modelsim-SE的简单仿真流程 编写RTL功能代码 要进行功能仿真,首先得用需要仿真的模块,也就是RTL功能代码,简称待测试的模块,该模块也就是在设计下载到FPGA的电路.一个电路模块想要有 ...

  8. 室内定位系列(二)——仿真获取RSS数据

    很多情况下大家都采用实际测量的数据进行定位算法的性能分析和验证,但是实际测量的工作量太大.数据不全面.灵活性较小,采用仿真的方法获取RSS数据是另一种可供选择的方式.本文介绍射线跟踪技术的基本原理,以 ...

  9. lattice 与 modelsim 仿真 笔记

    对于 lattice  Diamond 与 modelsim 的联合仿真,我总结了一句话,那就是—— 难者不会,会者不难.  也许刚开始 觉得 摸不着 头脑,但是 一旦学会 感觉还是很简单和直观的. ...

随机推荐

  1. C# ASP.NET MVC 图片盗链 加水印 的问题

    ImageClass using System; using System.Collections; using System.IO; using System.Drawing; using Syst ...

  2. javascript中的对象,原型,原型链和面向对象

    一.javascript中的属性.方法 1.首先,关于javascript中的函数/“方法”,说明两点: 1)如果访问的对象属性是一个函数,有些开发者容易认为该函数属于这个对象,因此把“属性访问”叫做 ...

  3. Linux (Centos)操作MySql命令

    1.安装MySql服务端命令: yum install mysql-server yum install mysql-devel 2.安装MySql客户端 yum install mysql 3.启动 ...

  4. 闲说HeartBeat心跳包和TCP协议的KeepAlive机制

    很多应用层协议都有HeartBeat机制,通常是客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线,并传输一些可能必要的数据.使用心跳包的典型协议是IM,比如QQ/MSN/飞信等协议. ...

  5. Python3.4如何读写Excel

    在python3.x(散仙使用的版本是python3.4)里,我们应该如何操作excel. 首先在python3.4里,我们可以使用新的python类库,来支持3.x之后的读写excel 针对 03版 ...

  6. 代码review之 isInfoEnable()

    上周没事扫扫系统原来的代码,突然发现这样一段代码: if(log.isInfoEnable()) { log.info("ID"+userID+"pwd"+us ...

  7. cache与MMU与总线仲裁

    为了以合理的价格,设计容量和速度满足计算机系统的需求,计算机体系结构设计者设计出了存储器的层次结构. "Cache-主存"和"主存-辅存"是最常见的两种层次结构 ...

  8. Hash工具下载地址

    因为经常要在非常用电脑使用,这里放一个链接,方便下载: http://files.cnblogs.com/files/cxun/Hash.zip HASH计算工具,可计算MD5.SHA-1.CRC32 ...

  9. URL跳转的几种方式

    1.HTML: ①. <head> <!-- 以下方式只是刷新不跳转到其他页面 --> <meta http-equiv="refresh" cont ...

  10. FC400的PM2.5过滤效率测试。。

    今天北京雾霾爆表,拿空气堡在外面测试,达到600多,然后在新风风口测试,差不多60到80.可以得到效率只有85%到90%左右,这和销售说的数值差不多,肯定达不到手册上写的99%,那是实验值,骗人的. ...