OpenModelica模型导入Simulink运行的方法

  • 1、参考文献分析
  • 2 、实际操作
    • 2.1 modelica代码(参考文献1)
    • 2.2 利用OpenModelica导出FMU文件
    • 2.3 FMU文件导入simulink
    • 2.4 仿真对比
  • 3、后记

1、参考文献分析

1、modelica建模并导入simulink观察(机械实例)
2、FMI and TLM-Based Simulation and Co-simulation of External Models

文献1实现了OpenModelica模型导入Simulink运行的基本过程,但是存在两个问题,即JModelica已经不再开源。
windows用户还需要安装jmodellica-SDK才行,而安装这个还要填各种表。
用linux的话还得安装很多环境

因此这两个问题导致文献1的方法后续基本难以执行。不过观察文献1的方法,最终导入simulink的是FMU文件,那么最终只需要将modelica模型转化为FMU文件即可,因此问题变为如何转化为FMU文件。

文献2提到,可以用OpenModelica来生成FMU文件,可以采用命令行方法,也可以采用鼠标操作。因此文献1中问题解决。

2 、实际操作

2.1 modelica代码(参考文献1)

model SecondOrderSystemInitParams"A second order rotational system with initialization parameters"type Angle=Real(unit="rad");type AngularVelocity=Real(unit="rad/s");type Inertia=Real(unit="kg.m2");type Stiffness=Real(unit="N.m/rad");type Damping=Real(unit="N.m.s/rad");parameter Angle phi1_init = 0;parameter Angle phi2_init = 1;parameter AngularVelocity omega1_init = 0;parameter AngularVelocity omega2_init = 0;parameter Inertia J1=0.4 "Moment of inertia for inertia 1";parameter Inertia J2=1.0 "Moment of inertia for inertia 2";parameter Stiffness k1=11 "Spring constant for spring 1";parameter Stiffness k2=5 "Spring constant for spring 2";Damping d1=0.2 "Damping for damper 1";Damping d2=1 "Damping for damper 2";output Angle phi1 "Angle for inertia 1";output Angle phi2 "Angle for inertia 2";output AngularVelocity omega1 "Velocity of inertia 1";output AngularVelocity omega2 "Velocity of inertia 2";
initial equationphi1 = phi1_init;phi2 = phi2_init;omega1 = omega1_init;omega2 = omega2_init;
equationomega1 = der(phi1);omega2 = der(phi2);J1*der(omega1) = k1*(phi2-phi1)+d1*der(phi2-phi1);J2*der(omega2) = k1*(phi1-phi2)+d1*der(phi1-phi2)-k2*phi2-d2*der(phi2);
end SecondOrderSystemInitParams;

2.2 利用OpenModelica导出FMU文件

2.3 FMU文件导入simulink

FMU Import在Simulink Extras的FMU Import位置
初次导入会有FMU模式选择,是做Co-simulation还是Model Exchange,暂时选择Model Exchange。

2.4 仿真对比

FMU导入后能在simulink中运行,仿真曲线和在OpenModelica内仿真一致。

3、后记

最近也是在了解Modelica的优势,以及如何与simulink联合仿真。Modelica的优势在于利用非因果律建模,相当于实际的物理系统。simulink相当于因果律建模,实际上还是要先对实际物理系统抽象一次。2008年以来推出的simscape是参照Modelica进行非因果律建模,但是并不是文本形式建模,需要通过ssc语言转换成模型才能用,还是比较折腾。
后续考虑采用Modelica对模型建模,然后转化为FMU文件嵌入simulink中进行仿真。猜测到时候电机、电池等模型都用modelica写好,导入simulink后就全部为控制信号,不用考虑物理信号和控制信号转换的问题了。

OpenModelica模型导入Simulink运行的方法相关推荐

  1. 算法仿真时,将Excel中真实数据导入simulink中的方法

    方法比较有用,记录下来,自己以后还会用到:不然又要四处寻找方法. 模拟数据进行算法仿真可行后,需要用到大量的真实试验数据评测算法的可信度:如何将Excel数据导入到simulink中,在此介绍一下自己 ...

  2. adams怎么打开自带模型_3D模型导入ADAMS仿真

    最近有同事在学习ADAMS的使用,但是一直被一个问题困扰.就是如何将建立好的3D模型按自己希望的要求导入到ADAMS中.举个栗子说明便于大家理解. 如图三个部件p1,p2,p3. 我们已经事先建立好3 ...

  3. 将机器人3维模型导入至V-rep仿真软件的方法小结

    相关博客 在V-rep中通过D-H参数自动生成机械臂模型:https://blog.csdn.net/DoctorSRn/article/details/106852312 前言 首先介绍本篇博客的背 ...

  4. yolov2模型导入keras方法及问题

    yolov2模型导入keras方法及问题yolo是基于darknet框架开发.训练的模型,如果想通过keras进行使用, 需要进行模型数据的转换===============part 1======= ...

  5. IntellIJ IDEA 导入 Java 项目后无法运行 main 方法的解决方案

    问题描述: 使用 IDEA 导入一个普通的 Java 项目后,当需要运行项目中的一个类中的main方法时,但此时发现,鼠标右键发现菜单中没有 Run main 而且 main 函数前也没有出现可以运行 ...

  6. IDEA中导入项目运行失败提示Illeagle Arguement,访问404解决方法(Idea的Modules设置)

    文章目录 IDEA中导入项目运行失败提示Illeagle Arguement,访问404解决方法(Idea的Modules设置) 起因 尝试1:设置resources文件 尝试2:啃代码 尝试3:完全 ...

  7. dae怎么用草图大师打开_将草图大师su模型导入lumion的方法与步骤

    原标题:将草图大师su模型导入lumion的方法与步骤 sketchup模型怎么导入lumion?本文小编要和大家分享将草图大师su模型导入lumion的方法与步骤,还不知道草图大师模型如何导入lum ...

  8. Unity3d中模型导入轴向不对的解决方法

    Unity3d中模型导入轴向不对的解决方法 参考文章: (1)Unity3d中模型导入轴向不对的解决方法 (2)https://www.cnblogs.com/Sakya00/p/3231483.ht ...

  9. 【BIM入门实战】Revit模型导入到第三方软件方法汇总

    本文以案例的方式,汇总展示了Revit模型导入到ArcGIS Pro.3ds max.Navisworks.Lumion.InfraWorks等的方法. 文章目录 1. Revit导入ArcGIS P ...

  10. 工作总结-Icepak 19.0 CAD模型导入方法结

    原文:https://zhuanlan.zhihu.com/p/114468283 热仿真工作中,经常需要将简化后的产品3D图导入Icepak软件中. 模型导入方法很多,总结一下我导入CAD-3D模型 ...

最新文章

  1. ajax同步,异步简单的介绍
  2. 三维家导入户型镜像怎么使用_UG虎钳三维建模教学,认真看仔细学习了!
  3. WPF之依赖属性和附加属性
  4. BP contact search in Fiori ui
  5. 业务太复杂?教你如何降低软件的复杂性
  6. emmc linux 识别分区_EMMC芯片电视主板直写厂家引导程序
  7. 《Reids 设计与实现》第十一章 服务器
  8. ionic应用在mac上使用Xcode7.2(7C68)进行iphone真机测试
  9. git21天打卡day12切换分支修改文件
  10. 2.2 Java内存介绍-运行时数据区
  11. 解决办法:error: ‘unordered_map’ in namespace ‘std’ does not name a template type
  12. 值类型和引用类型小解
  13. 《Redis视频教程》(p17)
  14. GPT-3的最强落地方式?陈丹琦提出小样本微调方法,比普通微调提升11%
  15. c语言校时程序,我校C语言程序设计教与学的思考
  16. adobe photoshop cc 2014 安装失败
  17. 「为了孩子上海淀小学,我一周上七节课」
  18. html5/css登录注册网页模板
  19. qrc文件的使用方法
  20. 出现错误(已解决)RuntimeError: CUDA error: no kernel image is available for execution on the device CUDA ker

热门文章

  1. TF-IDF算法原理和公式
  2. 基于Python的FreeCAD二次开发
  3. 考研408(操作系统、计算机组成原理、数据结构、计算机网络)
  4. 软件下载页面php,PHP网页制作软件下载
  5. 计算机硬件关系密切,与计算机硬件关系最密切的软件是( ).
  6. 鸿蒙应用开发 | 时间选择器(TimePicker)的功能和用法
  7. NSA方程式工具利用与分析
  8. 使用ArcGIS生成栅格数据的等值线与数值标注
  9. ZYNQ飞控系统设计-PX的MAalefile解读
  10. 基于开源飞控系统和安卓系统的4g5g物联网无人机实现