通过PyFMI读取FMU文件及PyFMI的安装教程

1 篇文章 0 订阅
1 篇文章 0 订阅

通过PyFMI读取FMU文件及PyFMI的安装教程

一、fmu/fmi介绍

用于支持动态模型的交互以及联合仿真,解决模型相互操作问题

a)FMI

功能打样接口(functional Mock-up Interface)是一个工具独立的标准,通过xml文件与编译的c代码的融合来支持动态模型的交互和联合调试。

FMI的描述结构

b)FMU

FMU是一个压缩文件,包含了xml格式接口数据描述和功能,FMU就是采用FMI接口而开发的软件组织

fmu文件在解压后如下图:

fmu解压后截图

在文件夹中包含三个binaries、resources、sources三个文件夹,以及一个xml文件和一个.log文件。

二、使用PyFMI对fmu的读取

from pyfmi import load_fmu
import pandas as pd
import cufflinks as cf
import matplotlib.pyplot as plt

# 通过pyfmi读取fmu对象,将fmu文件放置于统一目录下
model = load_fmu('NewtonCooling.fmu')
# 获取模型中的变量,并打印出来
model.get_model_variables()
# 将模型中的第三个值设置为200,也可以使用 model.set('A', 0.1) 的方式来设置变量的值,其中'A'是变量名
model.set_real([3], [200])
# 对模型进行仿真,同时设置了仿真开始时间和结束时间
res = model.simulate(start_time=0, final_time=10)
# 获取变量c_p的值并打印
print(model.get('c_p'))
print(model.get_real([0, 1, 2, 3, 4, 5, 6, 7]))
print(res.final('T'))
# 结果图形的绘制
df_T = pd.DataFrame({"T": res["T"]}, index=res["time"])
print(df_T)
df_T.plot()
plt.show()

程序运行后的结果如下:

程序运行控制台输出 程序运行图形绘制

三、PyFMI包的安装教程

python的安装教程就不赘述了,在命令行中可以使用python命令就没有问题。

然后是安装PyFMI包的教程。

我在安装的过程中发现直接使用pip进行安装pyfmi包是不可取的,会弹出缺少很多东西,目前也没有成功使用pip安装这个包。

我使用的方法是通过anaconda安装pyfmi,首先是安装anaconda,记得中间选择配置进path,这样可以使用系统的cmd调用anaconda的命令。当然也可以不配置进入path,这样只能使用anaconda带的命令行进行命令的输入。

然后就是安装pyfmi了,在anaconda中输入conda install -c conda-forge pyfmi就可以完成安装了。

然后就是在pycharm中配置anaconda

a)第一步

选择新建项目,然后选择Pure Python

第一步

其中location是项目的保存地址,自行选择就可以

然后第二个红框内选择Previously configured interpreter,然后 点击后面的三点

b)第二步

选择Conda Environment,在conda中点击小三点

第二步1 第二步2

选择anaconda安装根目录下的python.exe,不要选错文件夹,这时候第二个文件夹选项中的路径应该为anaconda根目录\Scripts\conda.exe

然后点击ok,可以完成创建了。

ps

在项目如果用到什么包提示不存在,建议是在pycharm中使用pip进行安装第三方库,若该方法不成功,可以使用其他安装方法进行尝试。

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值