From fb435809cc9711074dc8450c2b6b930d35505c4d Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Wed, 3 Sep 2025 09:02:08 +0700 Subject: [PATCH] fix calculate eaf --- src/aeros_simulation/utils.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/aeros_simulation/utils.py b/src/aeros_simulation/utils.py index 11f14a0..316f467 100644 --- a/src/aeros_simulation/utils.py +++ b/src/aeros_simulation/utils.py @@ -7,6 +7,7 @@ def calculate_eaf( actual_production: float, ideal_production: float, downtime_hours, + plot_data = None ): """ Calculate EAF using the time-based method from PLN document @@ -25,15 +26,13 @@ def calculate_eaf( try: # Calculate lost production - lost_production = ideal_production - actual_production max_capacity = 660 + derate_production = ideal_production - actual_production - (max_capacity * downtime_hours) # Calculate total equivalent derate and outage hours - total_equivalent_derate_and_outage_hours = lost_production / max_capacity if max_capacity > 0 else 0 - total_equivalent_derate = total_equivalent_derate_and_outage_hours - downtime_hours - + derate_equivalent_hours = derate_production / max_capacity if max_capacity > 0 else 0 # Calculate EAF - effective_available_hours = available_hours - total_equivalent_derate - return (effective_available_hours / period_hours) * 100 if period_hours > 0 else 0, total_equivalent_derate + effective_available_hours = available_hours - derate_equivalent_hours + return (effective_available_hours / period_hours) * 100 if period_hours > 0 else 0, derate_equivalent_hours except Exception as e: print("Error calculating EAF:", e) raise