1

我正在尝试通过使用Master. 我尝试过的是以下内容:

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.

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

4

1 回答 1

2
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)

使用 pyfmi 创建 2 元组作为 fmu 模型的 model.simulate() 的输入时出错

于 2021-12-01T14:19:11.817 回答