python调用fmu
Python的软件包PyFMI支持加载和执行FMU,与Assimulo和Scipy结合用于执行参数估计。
python调用fmu文件
- 安装pyfmi
- 利用OpenModelica创建模型并导出fmu文件
- 在python里加载并执行fmu文件
安装pyfmi
在anaconda里安装pyfmi
conda install -c conda-forge pyfmi
利用OpenModelica创建模型并导出fmu文件
用OpenModelica创建了一个简单的物理模型:
model NewtonCoolingparameter Real T_inf=25"ambient temperature";parameter Real T0=90"initial temperature";parameter Real h=0.7 "convective cooling coefficient";parameter Real A=1.0 "surface area";parameter Real m=0.1 "Mass of thermal capacitance";parameter Real c_p=1.2 "specific heat";Real T;
initial equationT = T0;
equationm * c_p * der(T) = h * A * (T_inf - T);
end NewtonCooling;
在python里加载并执行fmu文件
from pyfmi import load_fmu
model = load_fmu('NewtonCooling.fmu')
获取model的所有参数;如果取特定的参数则可以输入(Real:0, Int:1, Bool:2, String:3, Enumeration:4)
model.get_model_variables()
#输出如下
#OrderedDict([('T', <pyfmi.fmi.ScalarVariable2 at 0x2a4e74355e8>),
# ('der(T)', <pyfmi.fmi.ScalarVariable2 at 0x2a4e7435708>),
# ('A', <pyfmi.fmi.ScalarVariable2 at 0x2a4e7435768>),
# ('T0', <pyfmi.fmi.ScalarVariable2 at 0x2a4e74357c8>),
# ('T_inf', <pyfmi.fmi.ScalarVariable2 at 0x2a4e7435828>),
# ('c_p', <pyfmi.fmi.ScalarVariable2 at 0x2a4e7435888>),
# ('h', <pyfmi.fmi.ScalarVariable2 at 0x2a4e74358e8>),
# ('m', <pyfmi.fmi.ScalarVariable2 at 0x2a4e7435948>)])
设置数值
#设置数值
model.set_real([3], [200])
#或者
model.set('A', 0.1)
模拟
res = model.simulate(start_time=0, final_time=10)
#输出如下
#Final Run Statistics: --- # Number of steps : 507
# Number of function evaluations : 515
# Number of Jacobian evaluations : 9
# Number of function eval. due to Jacobian eval. : 0
# Number of error test failures : 1
# Number of nonlinear iterations : 512
# Number of nonlinear convergence failures : 0
# Number of state function evaluations : 0
#
#Solver options:# Solver : CVode
# Linear multistep method : BDF
# Nonlinear solver : Newton
# Linear solver type : DENSE
# Maximal order : 5
# Tolerances (absolute) : 1e-08
# Tolerances (relative) : 1e-06#Simulation interval : 0.0 - 10.0 seconds.
#Elapsed simulation time: 0.017241800000000085 seconds.
获取运行结果
model.get('c_p')
#1.2
model.get_real([0, 1, 2, 3, 4, 5, 6, 7])
#array([ 2.55124535e+01, -2.98931187e-01, 1.00000000e-01, 2.00000000e+02,
# 2.50000000e+01, 1.20000000e+00, 7.00000000e-01, 1.00000000e-01])
res.final('T')
#25.512453462694374
作图
import pandas as pd
import cufflinks as cf
cf.set_config_file(offline=True)df_T = pd.DataFrame({"T" : res["T"]}, index=res["time"])
df_T.iplot()
python调用fmu相关推荐
- 提供一个python和pyfmi编写的实时调用fmu模型运行的代码案例
这是一个使用 pyfmi 模块实时调用 FMU 模型的示例代码: import pyfmi# Load the FMU fmu = pyfmi.load_fmu('MyModel.fmu')# Cre ...
- python 图表_Python入门学习系列——使用Python调用Web API实现图表统计
使用Python调用Web API实现图表统计 Web API:Web应用编程接口,用于URL请求特定信息的程序交互,请求的数据大多以非常易于处理的格式返回,比如JSON或CSV等. 本文将使用Pyt ...
- python调用cmd命令会弹出黑框_python 调用cmd,不显示cmd黑框
python 调用系统命令的方式有很多 1.1 os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准 ...
- python调用js库中的函数_Python 调用JS文件中的函数
Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...
- python 调用 javascript函数
python 调用 javascript函数 # pip install pyexecjs import execjs # 直接执行 print('execjs.eval:', execjs.eval ...
- python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call
python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call ...
- Windows使用MSVC,命令行编译,链接64位dll,Python调用
文章目录 代码 编译 链接 Python调用 前一篇博客: Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序 代码 mylib.h代码如下: #ifndef MY ...
- python调用脚本或shell的方式
python调用脚本或shell有下面三种方式: os.system() 特点: (1)可以调用脚本. (2)可以判断是否正确执行. (3)满足不了标准输出 && 错误 command ...
- python 调用 c 生成数组_python调用c++传递数组的实例
如下所示: input = c_int * 4 # 实例化一个长度为2的整型数组 input = input() # 为数组赋值(input这个数组是不支持迭代的) input[0] = 11 inp ...
最新文章
- 《ABAQUS 6.14超级学习手册》——1.2 ABAQUS分析模块
- 人工智能产业发展深度报告:格局、潜力与展望
- 为什么要继承Serializable类?
- 前后端分离项目后端向前端返回压缩包的方法实现java版
- Jerry 的 SAP 技术交流群里讨论的技术问题都会同步到这个帖子里
- docker常用命令_docker常用命令整理
- oracle 赋予dorp,oracle表空间(tablespace)的增删改查(create/drop/rename,move/select)
- C++ 点(.)操作符和箭头(->)操作符
- 基于CCII+的电流模式二阶带通滤波器仿真
- scrapy 官方文档(入门必备)
- 树莓派第一次使用WIN10电脑远程连接(无显示器)
- 关于 nor it's doXxx() equivalent is defined in action class 的问题解决办法
- 深度学习图像数据库总结(收藏用)
- 讯飞星火 VS 文心一言:谁是中文大语言模型的TOP1?
- 【后端教程】京东API网关实践之路!
- 《Composing Programs》学习笔记(1.1)开始(关键词:软件工程/抽象/函数)
- 消防设备电源监控系统在高层民用建筑内的应用
- 新版导航条stacknavigator
- 【框架学习】XML四种解析方案
- Windows以服务方式运行Java程序
热门文章
- 10.3国庆作业(UART实验)
- 开启定位权限还是定位失败
- input标签checkbox选中触发事件的方法
- pdf转txt java_pdf转换txt怎么操作?pdf文件可以转换成txt文件吗?
- 你想要的宏基因组-微生物组知识全在这(2020.02)
- xshell6 强制更新的问题(转载、亲测有效)
- 国内oschina Maven公共仓库
- 学习Oracle Applications 相关文档
- 九龙证券|次新股叠加智慧交通+信创+数字经济概念,开盘冲涨停!
- python读取word图片_python 如何提取 word 内的图片