0

So, I try to fit power inverter model to polynomial function by using sandia_fit function.

I have hourly ac_power, dc_power, dc_voltage readings from the inverter. These three parameters as well as dc_voltage_level are array-like inputs to fit_sandia function that fits inverter model polynomial approximation to given data.

Having analysed pvlib.pvsystem.retrieve_sam various databases, it is clear that C0, C1, C2 and C3 should be non-zero values, however, whatever the input I try from my timeseries data, sandia_fit returns only C0 as non-zero value and C1, C2, C3 are 0.

An example would be handy, how to use this function correctly. Thanks!

Edit:

dc_power = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,396.75,1150.56,1426.36,1577.72,1566.14,1842.39,877.96,415.15,307.07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,229.16,927.67,2059.07,2914.16,4288.43,4224.21,2477.9,1548.42,874.56,226.03,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,524.2,1131.62,2999.88,5863.7,4969.04,4334.98,2033.0,862.03,346.04,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,600.61,675.67,941.0,629.99,1119.77,692.0,347.6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]

ac_power=[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,195.92,1017.58,1353.08,1493.0,1336.58,1693.58,793.27,286.75,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.33,875.83,1971.25,2796.25,4218.42,4006.58,2280.08,1429.25,718.25,21.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,270.25,1088.67,3178.67,6553.92,4798.25,3962.08,1854.5,720.92,59.3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.42,483.75,595.08,829.67,527.42,1031.0,540.5,178.58,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]

dc_voltage=[25.06,25.06,25.06,25.06,25.06,25.06,25.06,73.12,658.29,747.35,747.42,747.72,747.75,747.73,747.81,747.59,290.79,25.11,25.08,25.07,25.06,25.06,25.06,25.06,25.06,25.06,25.05,25.06,25.05,25.05,25.05,229.67,747.51,747.46,747.3,747.6,747.51,747.48,747.58,747.63,339.99,25.07,25.06,25.06,25.07,25.06,25.06,25.06,25.06,25.06,25.06,25.06,25.07,25.07,25.07,113.24,611.16,747.81,747.66,747.23,747.34,747.68,747.57,747.31,417.04,25.15,25.12,25.12,25.11,25.12,25.12,25.1,25.12,25.11,25.12,25.11,25.12,25.12,25.12,53.7,297.61,747.57,747.38,747.68,747.66,747.62,747.3,726.89,93.88,25.14,25.12,25.12,25.12,25.12,25.12,25.12]

  • Hi @Jonas Vaicys, could you share the dataset you're trying to fit? I don't know of any "proper" examples of using that function, but pvlib's unit tests use this file for checking that the function works -- maybe that will help you find the difference: https://github.com/pvlib/pvlib-python/blob/master/pvlib/data/inverter_fit_snl_meas.csv – kevinsa5 Feb 16 '21 at 21:46
  • Thanks for the link. It helped. Now it is clear that inverter in the given example has 3 voltage steps (with some variance). In our case, it looks like it doesn't have Vmin and Vmax, only Vnom. I will edit post with input data I use. – Jonas Vaicys Feb 18 '21 at 11:31
  • Thanks for the clarification. I think `fit_sandia` is intended to be used with test lab data where the DC operating conditions can be controlled -- I don't think it's meant to be used with standard measured field data. Maybe someone else will have a suggestion for how to get Sandia coefficients from field data. Otherwise, maybe you could use coefficients for a similar inverter in the sandia database? Or use one of the other pvlib.inverter model functions? – kevinsa5 Feb 18 '21 at 15:13

0 Answers0