Ошибка при загрузке fmu от pyfmi.load_fmu - PullRequest
1 голос
/ 08 июля 2019

Я хочу загрузить 'fmu' в Linux с помощью pyfmi.load_fmu, но получаю ошибку.

error1 в env1:

Не удалось найти GLIMDA.Трассировка (последний вызов был последним): файл "/home/user/Documents/hdh/paper/ling_min_du.py", строка 12, в файле model = pyfmi.load_fmu (fmu_path) "src / pyfmi / fmi.pyx", строка7899, в файле pyfmi.fmi.load_fmu "src / pyfmi / fmi.pyx", строка 2558, в файле pyfmi.fmi.FMUModelCS1. init Файл "src / pyfmi / fmi.pyx", строка 1167,в pyfmi.fmi.FMUModelBase. init Файл "src / pyfmi / fmi.pyx", строка 45, в pyfmi.fmi.encode TypeError: latin_1_encode () аргумент 1 должен быть str, а не байтами

ошибка в env2:

Traceback (последний вызов был последним): файл "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. init Файл" 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: Я пытаюсь переустановить pyfmi путем установки conda, появляется новая ошибка.Список пипсов:

      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 голосов
/ 11 июля 2019

Ошибка в env1 связана с ошибкой в ​​PyFMI, исправленной в более поздних версиях PyFMI (> = 2.5.1)

Проблема в env2 заключается в том, что используемый вами FMU не содержит необходимых двоичных файлов для платформы, на которой вы сейчас находитесь. Поэтому восстановите FMU (или спросите человека, у которого вы получили FMU) с поддержкой вашей текущей платформы.

...