Ubuntu 18.04中Python 3环境中的PyFMI

简佩特

我的目标是能够在Ubuntu 18.04中运行OpenModelica生产的FMU,然后在Python 3环境中使用PyFMI运行它们。

我在这里https://jmodelica.org/pyfmi/installation.html遵循PyFMI安装的概述

到目前为止,我已经使用Conda设法安装了Python3,Numpy,Scipy,lxml和其他一些软件包,并使其与我的一些Python示例一起使用。但我希望您能获得一些详细的建议

  1. 安装FMI库-我不知道如何设置标志fmil-home
  2. 安装Assimulo

之后,我想我们已经准备好从安装概述“ python setup.py install —fmil-home = / path / to / fmil”中进行安装

赞赏一些基本建议!

简佩特

在这里,我总结了有关如何使用OpenModelica在Xubuntu 18.04上设置PyFMI的良好信息。输入来自Modelon的Christian Winther和LiU的Adrian Pop,为此感到高兴。

安装遵循https://jmodelica.org/pyfmi/installation.html并作了一些说明。

OpenModelica是在Linux上的VM上安装的,您可以从这里获得https://openmodelica.org/download/virtual-machine我所了解的都是64位软件。

如下所示,使用conda进行安装比使用pip更为方便:

在此处下载适用于Python 3的Miniconda,网址https://docs.conda.io/en/latest/miniconda.html

安装Miniconda3,并获得Python 3.7和一些软件包。好的更新conda

$conda update conda

现在,只需通过以下命令即可完成PyFMI的安装:

$conda config --add channels conda-forge
$conda install pyfmi

在此安装过程中,还将安装以下密钥包:NumPy,Scipy,Lxml,Matplotlib。根据上面提到的PyFMIs主页,安装wxpython也很有趣,但这不是必需的。如果已安装,也应使用conda进行。

我们可以通过Python脚本以不同的方式与FMU进行交互。

a)将从OpenModelica(或从其他Ubuntu环境)生成的FMU与运行FMU并绘制结果的Python脚本simu_FMU一起放在文件夹FMU_test中。进入文件夹“ FMU_test”。以下命令运行FMU并绘制结果

$python3 simu_FMU.py

b)可以通过以下方式安装与流行的Jupyter笔记本电脑交互的框架:

$conda install ipython
$conda install jupyter

然后要启动笔记本,请从文件夹FMU_test中执行以下命令

$jupyter notebook

然后打开网络浏览器,您可以从一个单元运行python脚本,还可以直接与FMU交互并更改参数等。每个单元可以完成几个python命令。单元格的结果显示在输出单元格中。Jupyter笔记本专注于研究仿真模型的一种顺序方法。图中的所有仿真必须在一个单元中执行。

c)具有IPython的交互式框架也将很有趣。通过这种方式,可以实现一种更加迭代的仿真方法。诸如模拟,更改某些参数,再次模拟并在与以前相同的图中进行绘制。

使用交互式Python窗口,从以下命令开始

$ipython --pylab

需要设置命令“ locale”应如何读取文本文件

$import numpy as np
$import matplotlib.pyplot as pli
$from pyfmi import load_fmu

$import locale
$locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’)

$model = load_fmu(”FMU_example.fmu”)

在FMU中如何表示模型以及OpenModelica生产的模型包含不是所有供应商都在其FMU中拥有的json-type文本文件具有一定的灵活性,例如,不是JModelica.org。读取此json文件需要语言环境进行设置,以在IPython窗口中正确读取它。因此,在Jupyter笔记本电脑环境中不需要,但至少没有负面影响。

在PyFMI的标准(Windows)JModelica安装中,使用使用c)进行交互。到目前为止,当在Ubuntu 18.04中使用JModelica 2.4编译的FMU时,经过测试的Python脚本在Xubuntu 18.04中的工作方式完全相同。测试包括PyFMI model.simulate()和model.estimate()。

由OpenModelica 1.14.1以及以后的开发版本编译的FMU可以使用过程mode.simulate()进行仿真。但是,与model.get()和model.set()的交互显示出不同的行为。这可能是由于对FMU标准的不同解释,甚至是实施中的错误。从事OpenModelica开发的人员已经意识到并进行了调查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章