breos.optimization.optimize_tilt#

breos.optimization.optimize_tilt(weather_data, location, n_modules, pv_params=None, surface_azimuth=None, tilt_range=(0.0, 60.0), objective='max_production', freq='h', n_points=13, verbose=True)[source]#

Optimize panel tilt angle for maximum production or self-consumption.

Parameters:
  • weather_data (DataFrame) – Weather DataFrame with solar irradiance

  • location – pvlib Location object

  • n_modules (int) – Number of PV modules

  • pv_params (Optional[PVModuleParams]) – PV module parameters

  • surface_azimuth (Optional[float]) – Panel azimuth (180=South, 0=North). If None, auto-detected from hemisphere.

  • tilt_range (Tuple[float, float]) – (min_tilt, max_tilt) in degrees

  • objective (str) – ‘max_production’ or ‘max_self_consumption’

  • freq (str) – Time frequency

  • n_points (int) – Number of tilt values to evaluate

  • verbose (bool) – Print progress

Return type:

OptimizationResult

Returns:

OptimizationResult with optimal tilt