Solar-Assisted Gas Boiler¶
Basic Usage¶
from enex_analysis import SolarAssistedGasBoiler, print_balance
# Initialize solar-assisted gas boiler
solar_boiler = SolarAssistedGasBoiler()
# Set solar conditions
solar_boiler.I_DN = 500 # Direct normal irradiance [W/m²]
solar_boiler.I_dH = 200 # Diffuse horizontal irradiance [W/m²]
solar_boiler.A_stc = 2 # Solar collector area [m²]
solar_boiler.alpha = 0.95 # Absorptivity
# Set operating conditions
solar_boiler.eta_comb = 0.9
solar_boiler.T_w_comb = 60
solar_boiler.T_w_serv = 45
solar_boiler.T_w_sup = 10
solar_boiler.dV_w_serv = 1.2
# Run calculation
solar_boiler.system_update()
# Access results
print(f"Solar heat gain: {solar_boiler.Q_sol:.2f} W")
print(f"Natural gas input: {solar_boiler.E_NG:.2f} W")
print(f"Collector outlet temperature: {solar_boiler.T_w_stc_out - 273.15:.2f} °C")
print(f"Exergy efficiency: {solar_boiler.X_eff:.4f}")
# Print balances
print("\n=== Solar Collector Exergy Balance ===")
print_balance({"solar thermal panel": solar_boiler.exergy_balance["solar thermal panel"]})
print("\n=== Combustion Chamber Exergy Balance ===")
print_balance({"combustion chamber": solar_boiler.exergy_balance["combustion chamber"]})
Solar Irradiance Study¶
import numpy as np
import matplotlib.pyplot as plt
from enex_analysis import SolarAssistedGasBoiler
# Study effect of solar irradiance on gas consumption
irradiances = np.linspace(0, 1000, 51)
gas_inputs = []
solar_gains = []
solar_boiler = SolarAssistedGasBoiler()
solar_boiler.A_stc = 2
solar_boiler.T_w_comb = 60
solar_boiler.T_w_serv = 45
solar_boiler.T_w_sup = 10
solar_boiler.dV_w_serv = 1.2
for I in irradiances:
solar_boiler.I_DN = I * 0.7 # Assume 70% direct
solar_boiler.I_dH = I * 0.3 # 30% diffuse
solar_boiler.system_update()
gas_inputs.append(solar_boiler.E_NG)
solar_gains.append(solar_boiler.Q_sol)
plt.figure(figsize=(10, 5))
plt.plot(irradiances, gas_inputs, 'r-', linewidth=2, label='Gas Input')
plt.plot(irradiances, solar_gains, 'b-', linewidth=2, label='Solar Gain')
plt.xlabel('Total Solar Irradiance [W/m²]')
plt.ylabel('Power [W]')
plt.grid(True)
plt.legend()
plt.title('Effect of Solar Irradiance on System Performance')
plt.show()