Analysis Basics¶
Unit Conversions¶
Temperature Conversions¶
from enex_analysis import C2K, K2C
# Convert temperatures
T_C = 25
T_K = C2K(T_C) # 298.15
T_C_back = K2C(T_K) # 25.0
print(f"{T_C} °C = {T_K} K")
Time Conversions¶
from enex_analysis.calc_util import h2s, s2h, d2h
# Convert hours to seconds
hours = 2
seconds = hours * h2s # 7200
# Convert seconds to hours
hours_back = seconds * s2h # 2.0
# Convert days to hours
days = 1
hours_from_days = days * d2h # 24
print(f"{hours} hours = {seconds} seconds")
print(f"{days} day = {hours_from_days} hours")
Energy and Power Conversions¶
from enex_analysis.calc_util import kWh2J, J2kWh, W2kW, kW2W
# Convert kWh to Joules
kwh = 1
joules = kwh * kWh2J # 3,600,000
# Convert back
kwh_back = joules * J2kWh # 1.0
# Convert power
watts = 1000
kilowatts = watts * W2kW # 1.0
print(f"{kwh} kWh = {joules:,} J")
print(f"{watts} W = {kilowatts} kW")
Balance Analysis¶
Comparing Energy, Entropy, and Exergy Balances¶
from enex_analysis import ElectricBoiler, print_balance
# Initialize and run boiler
boiler = ElectricBoiler()
boiler.T_w_tank = 60
boiler.T_w_sup = 10
boiler.T_w_serv = 45
boiler.dV_w_serv = 1.2
boiler.system_update()
# Print all balances
print("=" * 60)
print("ENERGY BALANCE")
print("=" * 60)
print_balance(boiler.energy_balance, decimal=2)
print("\n" + "=" * 60)
print("ENTROPY BALANCE")
print("=" * 60)
print_balance(boiler.entropy_balance, decimal=4)
print("\n" + "=" * 60)
print("EXERGY BALANCE")
print("=" * 60)
print_balance(boiler.exergy_balance, decimal=2)
# Verify energy conservation
for subsystem, balance in boiler.energy_balance.items():
energy_in = sum(balance.get("in", {}).values())
energy_out = sum(balance.get("out", {}).values())
print(f"\n{subsystem}:")
print(f" Energy in: {energy_in:.2f} W")
print(f" Energy out: {energy_out:.2f} W")
print(f" Difference: {energy_in - energy_out:.2f} W")
Exergy Destruction Analysis¶
from enex_analysis import GasBoiler
# Initialize and run gas boiler
boiler = GasBoiler()
boiler.T_w_tank = 60
boiler.T_w_sup = 10
boiler.T_w_serv = 45
boiler.dV_w_serv = 1.2
boiler.system_update()
# Analyze exergy destruction in each subsystem
print("Exergy Destruction Analysis:")
print("-" * 60)
for subsystem, balance in boiler.exergy_balance.items():
exergy_in = sum(balance.get("in", {}).values())
exergy_out = sum(balance.get("out", {}).values())
exergy_consumed = sum(balance.get("con", {}).values())
print(f"\n{subsystem}:")
print(f" Exergy in: {exergy_in:.2f} W")
print(f" Exergy out: {exergy_out:.2f} W")
print(f" Exergy destroyed: {exergy_consumed:.2f} W")
print(f" Destruction ratio: {exergy_consumed/exergy_in*100:.2f}%")
print(f"\nTotal exergy destroyed: {boiler.X_c_tot:.2f} W")
print(f"System exergy efficiency: {boiler.X_eff:.4f}")