Optimization#

Optimization helpers for system configuration. Brent’s method handles smooth one-dimensional problems (tilt); helper sweeps handle battery sizing and ZEB sizing; pymoo powers public multi-objective PV/battery sizing (PV count, battery, cost, grid independence, and ZEB ratio). For end-to-end App runs over an explicit config grid, use the breos sweep CLI command documented in Recipes.

Install breos[optimization] to use pymoo-backed multi-objective sizing. The one-dimensional helpers use the core scientific stack.

Tilt#

breos.optimization.optimize_tilt(...[, ...])

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

breos.optimization.optimize_tilt_brent(...)

Optimize panel tilt using Brent's method (faster than grid search).

Multi-objective sizing#

breos.optimization.optimize_system_multi_objective(...)

Run NSGA-II multi-objective PV/battery sizing.

Battery sizing#

breos.optimization.optimize_battery_size(...)

Optimize battery size for self-consumption or grid independence.

breos.optimization.size_for_zeb(houseload, ...)

Calculate PV system size needed for Zero Energy Building (ZEB).

Result type#

breos.optimization.OptimizationResult(...)

Result from an optimization run.