windpowerlib icon indicating copy to clipboard operation
windpowerlib copied to clipboard

WindTurbineCluster takes only WindFarms but not WindTurbines

Open uvchik opened this issue 6 years ago • 4 comments

The input of the WindTurbineCluster is a list of WindFarm objects. WindTurbine objects are not allowed. I think we should either rename the class or allow WindTurbine objects or both.

uvchik avatar Aug 27 '19 19:08 uvchik

What about WindFarmCluster?

uvchik avatar Oct 21 '19 13:10 uvchik

decision dev meeting: Allow WindTurbines / WindTurbineGroups in WindTurbineCluster.

SabineHaas avatar Dec 05 '19 08:12 SabineHaas

I have two ideas how to deal with the problem.

  1. We could convert all WindTurbines to WindFarms with just one Turbine. This is not very elegant but in my opinion the easiest way.
  2. We could make sure that all WindTurbines or WindTurbineGroups do have the same attributes needed in the cluster class and its methods. At some place we may have to distinguish between types. I think this is the better solution because we do not have to copy the object.

uvchik avatar Feb 14 '20 10:02 uvchik

At the last dev meeting I promised to provide information for the second suggestion in your last comment. Here it is:

  • No problem with nominal power and hub height as they are attributes of both, wind farms and wind turbines
  • in assign_power_curve() in wind_turbine_cluster.py, where the power curve aggregation takes place, both, wind farm and wind turbine power curves could be aggregated but:
    • In this method an aggregated power curve is assigned for each wind farm in self.wind_farms here which does not work for wind turbines.

This "in-between" step of getting the aggregated wind farm power curves instead of just aggregating all wind turbine power curves (of all wind farms) was implemented like that to give the option of applying wake losses to wind farm power curves (of which each could have e.g. a different wind farm efficiency).

Options I see now to make WindTurbines possible in WindTurbineClusters.:

  1. Give WindTurbine the method assign_power_curve() which is just returning the power curve
  2. Differentiate here between WindTurbines and WindFarms

Other things I noticed:

  • **kwargs in WindTurbineCluster init is not used anymore

SabineHaas avatar Jun 17 '20 07:06 SabineHaas