0

当我尝试使用 pandapower 运行此代码来运行低压系统的功率流时间序列时,我收到以下错误: [Int64Index([0, 1, 2], dtype='int64')] 中没有 [Int64Index([0, 1, 2], dtype='int64')]指数]。

我想问题是由于我插入的 csv 文件造成的。我已经按照正确的格式和视图上传了它们。因此首先是静态发电机/负载的索引(0、1 和 2),然后是有功和无功功率的值。但即使我在右列中添加了静态生成器/负载的正确索引,我也会收到此错误,我不知道如何解决这个问题。

有人可以帮我弄这个吗?错误发生在第 68 行。

import pandapower as pp
import pandas as pd
import pandapower.control as control
import pandapower.networks as nw
import pandapower.timeseries as timeseries
from pandapower.timeseries.data_sources.frame_data import DFData

#create network
net = pp.create_empty_network()
pp.create_bus(net, name='bus1', vn_kv=20, type='n')
pp.create_bus(net, name='bus2', vn_kv=0.4, type='n')
pp.create_bus(net, name='bus3', vn_kv=0.4, type='n')
pp.create_bus(net, name='bus4', vn_kv=0.4, type='n')
pp.create_bus(net, name='bus5', vn_kv=0.4, type='n')

pp.create_ext_grid(net, pp.get_element_index(net, "bus", 'bus1'), vm_pu=1, va_degree=0, name='External grid',
                   s_sc_max_mva=10000, rx_max=0.1, rx_min=0.1)

lv_lines = pd.read_csv('.../EigenVoorbeeld/lines.csv', sep=';', header=0, decimal=',')
for _, lv_line in lv_lines.iterrows():
    from_bus = pp.get_element_index(net, "bus", lv_line.from_bus)
    to_bus = pp.get_element_index(net, "bus", lv_line.to_bus)
    pp.create_line(net, from_bus, to_bus, length_km=lv_line.length, std_type=lv_line.std_type, name=lv_line.line_name)

lv_loads = pd.read_csv('.../EigenVoorbeeld/loads.csv', sep=';', header=0, decimal=',')
for _, load in lv_loads.iterrows():
    bus_idx = pp.get_element_index(net, "bus", load.bus)
    pp.create_load(net, bus_idx, p_mw=load.p, q_mvar=load.q, name=load.load_name)

lv_sgens = pd.read_csv('.../EigenVoorbeeld/sgens.csv', sep=';', header=0, decimal=',')
for _, sgen in lv_sgens.iterrows():
    bus_idx = pp.get_element_index(net, "bus", sgen.bus)
    pp.create_sgen(net, bus_idx, p_mw=sgen.p, q_mvar=sgen.q, type=sgen.type, name=sgen.sgen_name)

hv_bus = pp.get_element_index(net, "bus", "bus1")
lv_bus = pp.get_element_index(net, "bus","bus2")
pp.create_transformer_from_parameters(net, hv_bus, lv_bus, sn_mva=.63, vn_hv_kv=20, vn_lv_kv=0.4, vkr_percent=1.325, vk_percent=4, pfe_kw=0.95, i0_percent=0.2375, tap_side="hv", tap_neutral=0, tap_min=-2, tap_max=2, tap_step_percent=2.5, tp_pos=0, shift_degree=150, name='MV-LV-Trafo')

n_ts = 1439 #1440 min 1 

df = pd.read_csv(".../EigenVoorbeeld/sgens_timeseries.csv")
ds = DFData(df)
const_sgen = control.ConstControl(net, element='sgen', element_index=net.sgen.index,
                                  variable='p_mw', data_source=ds, profile_name=net.sgen.index)

df = pd.read_csv(".../EigenVoorbeeld/loads_timeseries.csv")
ds = DFData(df)
const_load = control.ConstControl(net, element='load', element_index=net.load.index,
                                  variable='p_mw', data_source=ds, profile_name=net.load.index)

df = pd.read_csv(".../EigenVoorbeeld/loads_reactive_timeseries.csv")
ds = DFData(df)
const_load1 = control.ConstControl(net, element='load', element_index=net.load.index,
                                  variable='q_mvar', data_source=ds, profile_name=net.load.index)

ow = timeseries.OutputWriter(net, output_path="./", output_file_type=".xlsx")

ow.log_variable('res_bus', 'vm_pu')
ow.log_variable('res_line', 'loading_percent')

timeseries.run_timeseries(net)

例如,文件 load_timeseries 如下所示:

            0         1         2
0     0.00025  0.000213  0.000260
1     0.00025  0.000213  0.000260
2     0.00025  0.000213  0.000260
3     0.00025  0.000213  0.000260
4     0.00025  0.000213  0.000260
      ...       ...       ...
1435  0.00025  0.000159  0.000147
1436  0.00025  0.000213  0.000147
1437  0.00025  0.000213  0.000147
1438  0.00025  0.000213  0.000147
1439  0.00025  0.000213  0.000147

[1440 rows x 3 columns]

有关错误发生位置的更多信息:

runfile('C:/Users/Gebruiker/OneDrive/Documenten/Masterproef/Pandapower/EigenVoorbeeld/example.py', wdir='C:/Users/Gebruiker/OneDrive/Documenten/Masterproef/Pandapower/EigenVoorbeeld')
No time steps to calculate are specified. I'll check the datasource of the first controller for avaiable time steps
Progress: |--------------------------------------------------| 0.1% CompleteTraceback (most recent call last):

  File "C:\Users\Gebruiker\OneDrive\Documenten\Masterproef\Pandapower\EigenVoorbeeld\example.py", line 68, in <module>
    timeseries.run_timeseries(net)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandapower\timeseries\run_time_series.py", line 346, in run_timeseries
    run_loop(net, ts_variables, **kwargs)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandapower\timeseries\run_time_series.py", line 318, in run_loop
    run_time_step(net, time_step, ts_variables, run_control_fct, output_writer_fct, **kwargs)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandapower\timeseries\run_time_series.py", line 117, in run_time_step
    control_time_step(ts_variables['controller_order'], time_step)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandapower\timeseries\run_time_series.py", line 84, in control_time_step
    ctrl.time_step(net, time_step)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandapower\control\controller\const_control.py", line 155, in time_step
    self.values = self.data_source.get_time_step_value(time_step=time,

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandapower\timeseries\data_sources\frame_data.py", line 49, in get_time_step_value
    res = self.df.loc[time_step, profile_name]

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 925, in __getitem__
    return self._getitem_tuple(key)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1100, in _getitem_tuple
    return self._getitem_lowerdim(tup)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 862, in _getitem_lowerdim
    return getattr(section, self.name)[new_key]

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 931, in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1153, in _getitem_axis
    return self._getitem_iterable(key, axis=axis)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1093, in _getitem_iterable
    keyarr, indexer = self._get_listlike_indexer(key, axis)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1314, in _get_listlike_indexer
    self._validate_read_indexer(keyarr, indexer, axis)

  File "C:\Users\Gebruiker\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1374, in _validate_read_indexer
    raise KeyError(f"None of [{key}] are in the [{axis_name}]")

KeyError: "None of [Int64Index([0, 1, 2], dtype='int64')] are in the [index]"
4

0 回答 0