1

我想通过 pyfmi.load_fmu 在 Linux 中加载“fmu”,但出现错误。

env1 中的错误 1:

找不到 GLIMDA。回溯(最后一次调用):文件“/home/user/Documents/hdh/paper/ling_min_du.py”,第 12 行,在模型 = pyfmi.load_fmu(fmu_path) 文件“src/pyfmi/fmi.pyx”,行7899,在 pyfmi.fmi.load_fmu 文件“src/pyfmi/fmi.pyx”中,第 2558 行,在 pyfmi.fmi.FMUModelCS1 中。初始化 文件“src/pyfmi/fmi.pyx”,第 1167 行,在 pyfmi.fmi.FMUModelBase 中。init File "src/pyfmi/fmi.pyx", line 45, in pyfmi.fmi.encode TypeError: latin_1_encode() argument 1 must be str, not bytes

env2中的错误:

回溯(最后一次调用):文件“ling_min_du.py”,第 26 行,在 model = pyfmi.load_fmu(fmu_path) 文件“src/pyfmi/fmi.pyx”,第 7898 行,在 pyfmi.fmi.load_fmu 文件“src /pyfmi/fmi.pyx”,第 2553 行,在 pyfmi.fmi.FMUModelCS1 中。初始化 文件“src/pyfmi/fmi.pyx”,第 1225 行,在 pyfmi.fmi.FMUModelBase 中。init pyfmi.fmi.FMUException:FMU 不包含此平台的二进制文件。

env1:我已经安装了 FMILibrary 并成功导入了 pyfmi。点子列表:

      Package              Version  
    -------------------- ---------
    absl-py              0.7.1    
    Assimulo             3.0      
    astor                0.7.1    
    astroid              2.0.4    
    certifi              2019.6.16
    cycler               0.10.0   
    Cython               0.29.11  
    gast                 0.2.2    
    google-pasta         0.1.7    
    grpcio               1.22.0   
    h5py                 2.9.0    
    Keras-Applications   1.0.8    
    Keras-Preprocessing  1.1.0    
    kiwisolver           1.1.0    
    lazy-object-proxy    1.4.1    
    lxml                 4.2.3    
    Markdown             3.1.1    
    matplotlib           2.2.2    
    numpy                1.16.4   
    pandas               0.23.4   
    Pillow               6.1.0    
    pip                  19.1.1   
    protobuf             3.8.0    
    PyFMI                2.5      
    pyparsing            2.4.0    
    python-dateutil      2.8.0    
    pytz                 2019.1   
    scikit-learn         0.20.0   
    scipy                1.3.0    
    setuptools           41.0.1   
    sip                  4.19.8   
    six                  1.12.0   
    tensorboard          1.14.0   
    tensorflow           1.14.0   
    tensorflow-estimator 1.14.0rc1
    termcolor            1.1.0    
    tornado              6.0.3    
    typed-ast            1.4.0    
    Werkzeug             0.15.4   
    wheel                0.32.2   
    wrapt                1.11.2 

env2:我尝试通过 conda install 重新安装 pyfmi,得到一个新错误。点子列表:

      Package         Version  
    --------------- ---------
    Assimulo        3.0      
    certifi         2019.6.16
    cycler          0.10.0   
    kiwisolver      1.1.0    
    lxml            4.3.4    
    matplotlib      3.1.0    
    numpy           1.16.4   
    pandas          0.24.2   
    pip             19.1.1   
    PyFMI           2.5.3    
    pyparsing       2.4.0    
    python-dateutil 2.8.0    
    pytz            2019.1   
    scipy           1.3.0    
    setuptools      41.0.1   
    six             1.12.0   
    tornado         6.0.3    
    wheel           0.33.4 
import numpy as np
import pyfmi
import matplotlib.pyplot as plt

fmu_path = './fmu/FeedSystem_Examples_current_2.fmu'

start_time = 0.
final_time = 10.
sample_period = 0.001
simulation_steps = int((final_time - start_time) / sample_period)

model = pyfmi.load_fmu(fmu_path)
opts = model.simulate_options()
opts["ncp"] = simulation_steps
result = model.simulate(start_time=start_time, final_time=final_time, options=opts)

result = np.array(result["massWithStopAndFriction.s"]).reshape(-1, )

plt.figure()
plt.plot(result)
plt.show()
4

1 回答 1

0

env1 中的错误是由于 PyFMI 中的错误导致的,该错误已在更高版本的 PyFMI (>=2.5.1) 中修复

env2 中的问题是您使用的 FMU 不包含您当前所在平台所需的二进制文件。因此,重新生成 FMU(或询问您从哪里获得 FMU 的人)以支持您当前的平台。

于 2019-07-11T09:10:35.553 回答