【问题标题】:PyFMI multiple inputs in Master simulation主仿真中的 PyFMI 多个输入
【发布时间】:2021-08-21 07:53:13
【问题描述】:

我正在尝试使用Master 模拟两个 FMU,其中一个具有 CSV 文件的输入。我尝试过的如下:

from pyfmi import load_fmu
from pyfmi import Master
import pandas as pd

electricity_network = load_fmu(r"C:\Users\kosmy\Pandapower_Reduced.fmu")
pv = load_fmu(r"C:\Users\kosmy\Photovoltaics.Model.PVandWeather_simple.fmu")

load_file = r"C:\Users\kosmy\load_prof_sec_res.csv"
load = pd.read_csv(load_file)

models = [electricity_network, pv] 

connections = [(pv, "P_MW", electricity_network, "P_pv1"),
               (pv, "P_MW", electricity_network, "P_pv2")]

master_simulator = Master(models, connections)

input_object = [((electricity_network, 'P_load1'), load), 
                ((electricity_network, 'P_load2'), load)]
 
res = master_simulator.simulate(final_time = 86400, input = input_object)

我收到以下错误:

Traceback (most recent call last):

  File "C:\Users\kosmy\run_csv_pyfmi.py", line 29, in <module>
    res = master_simulator.simulate(final_time = 86400, input = input_object)

  File "src\pyfmi\master.pyx", line 1474, in pyfmi.master.Master.simulate

  File "src\pyfmi\master.pyx", line 1369, in pyfmi.master.Master.specify_external_input

TypeError: tuple indices must be integers or slices, not tuple

显然,我没有为输入提供正确的格式,但我还没有找到使用Master 时演示正确格式的示例。

有谁知道在这种情况下我该如何使用输入?

【问题讨论】:

    标签: python simulation modelica fmi pyfmi


    【解决方案1】:
    def load(t):
        return 10, math.cos(t)
    
    input_object = ([(electricity_network, 'P_load1'),(electricity_network, 'P_load2')],load)
    

    另一种选择是

    data = np.transpose(np.vstack((t,u,v)))
    input_object = (['InputVarI','InputVarP'],data)
    

    error while creating a 2-tuple as input for model.simulate() of fmu model with pyfmi

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2012-11-02
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 2023-03-21
      • 2022-01-21
      相关资源
      最近更新 更多