pyfmi.load_fmu加载fmu时出错

时间:2019-07-08 08:53:35

标签: python python-3.x python-3.6 fmi

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

env1中的错误1:

  

找不到GLIMDA。       追溯(最近一次通话):         文件“ /home/user/Documents/hdh/paper/ling_min_du.py”,第12行           型号= pyfmi.load_fmu(fmu_path)         pyfmi.fmi.load_fmu中的文件“ src / pyfmi / fmi.pyx”,行7899         在pyfmi.fmi.FMUModelCS1中,文件“ src / pyfmi / fmi.pyx”,第2558行。 init         在pyfmi.fmi.FMUModelBase中的文件“ src / pyfmi / fmi.pyx”,行1167。 init         pyfmi.fmi.encode中的文件“ src / pyfmi / fmi.pyx”,第45行       TypeError:latin_1_encode()参数1必须为str,而不是字节

env2中的错误:

  

回溯(最近通话最近):         文件“ ling_min_du.py”,第26行,在           型号= pyfmi.load_fmu(fmu_path)         pyfmi.fmi.load_fmu中的文件“ src / pyfmi / fmi.pyx”,行7898         在pyfmi.fmi.FMUModelCS1中,文件“ src / pyfmi / fmi.pyx”,第2553行。 init         在pyfmi.fmi.FMUModelBase中的文件“ src / pyfmi / fmi.pyx”,行1225。 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()

1 个答案:

答案 0 :(得分:0)

env1中的错误归因于PyFMI中的错误,该错误已在更高版本的PyFMI(> = 2.5.1)中修复

env2中的问题是您正在使用的FMU不包含当前所在平台所需的二进制文件。因此,请在支持当前平台的情况下重新生成FMU(或询问此人在何处获得FMU)。