Cizz22 4 months ago
parent ce9b8b7381
commit d4b72efbf8

@ -265,7 +265,9 @@ def get_asset_batch(location_tags: List[str], nr_location_tags: List[str],
mttr = item["mttr"]
distribution, reldisp1, reldisp2 = get_distribution(item)
results[location_tag]["cmDisP1"] = 1 if mttr > 0 else 0
results[location_tag]["cmDisType"] = "Normal"
results[location_tag]["cmDisP1"] = 3
results[location_tag]["cmDisP2"] = 3
results[location_tag]["relDisType"] = distribution
results[location_tag]["relDisP1"] = reldisp1
results[location_tag]["relDisP2"] = reldisp2

@ -99,7 +99,7 @@ class SimulationData(BaseModel):
created_at: datetime
class SimulationRankingParameters(EquipmentWithCustomParameters):
eaf:float
availability:float
class SimulationPagination(Pagination):

@ -213,17 +213,17 @@ async def get_plant_calc_result(
async def get_result_ranking(*, db_session: DbSession, simulation_id: UUID):
query = select(AerosEquipment, AerosSimulationCalcResult.eaf).join(AerosNode, AerosNode.node_name == AerosEquipment.node_name).join(AerosSimulationCalcResult, AerosSimulationCalcResult.aeros_node_id == AerosNode.id)
query = select(AerosEquipment, AerosSimulationCalcResult.availability).join(AerosNode, AerosNode.node_name == AerosEquipment.node_name).join(AerosSimulationCalcResult, AerosSimulationCalcResult.aeros_node_id == AerosNode.id)
query = query.filter(
and_(
AerosSimulationCalcResult.aeros_simulation_id == simulation_id,
AerosNode.node_type == "RegularNode",
AerosEquipment.custom_parameters.any()
# AerosEquipment.custom_parameters.any()
)
)
query = query.order_by(AerosSimulationCalcResult.eaf.desc())
query = query.order_by(AerosSimulationCalcResult.availability.desc()).limit(10)
query = query.options(
@ -238,9 +238,9 @@ async def get_result_ranking(*, db_session: DbSession, simulation_id: UUID):
location_tag=equipment.location_tag,
master_equipment=equipment.master_equipment,
custom_parameters=equipment.custom_parameters,
eaf=eaf
availability=availability
)
for equipment, eaf in result
for equipment, availability in result
]
return data
@ -919,7 +919,7 @@ async def save_recusive_simulation_result_node(*, db_session: DbSession, data, s
node_type="SchematicNode",
aeros_schematic_id=aeros_schematic_id,
structure_name=structure_dict.get(result["nodeName"]),
model_image= model_image.get(result["nodeName"], "")
model_image= model_image.get(result["nodeName"], None)
)
results.append(schematic)
@ -985,6 +985,13 @@ def convert_id_to_none_if_negative(value):
async def create_simulation(*, db_session: DbSession, simulation_in: SimulationInput):
"""Create a new simulation."""
input = simulation_in.model_dump(exclude={"SimulationName"})
# Check if is default
if simulation_in.IsDefault:
prev_simulation = await get_default_simulation(db_session=db_session)
prev_simulation.is_default = False
await db_session.commit()
active_simulations = {
"status": "running",
"started_at": datetime.now(),

@ -270,7 +270,8 @@ async def calculate_plant_eaf(
if is_default:
eaf_konkin = calculate_eaf_konkin(
plot_data=plant_plot_data.timestamp_outs
plot_data=plant_plot_data.timestamp_outs,
periode_time=plant_calc_data.total_uptime + plant_calc_data.total_downtime
)
plant_calc_data.eaf_konkin = eaf_konkin

@ -44,9 +44,9 @@ def calculate_eaf(
raise
def calculate_eaf_konkin(
plot_data
plot_data, periode_time
):
maxHours = 17520
maxHours = periode_time
hourly_data = create_time_series_data(plot_data, max_hours=maxHours)
filtered_data = filter_by_month(hourly_data, start_month=3, end_month=15)

@ -8,6 +8,7 @@ from sqlalchemy.orm import selectinload
from src.aeros_simulation.model import AerosSimulation
from src.aeros_simulation.service import (
get_calc_result_by,
get_default_simulation,
get_simulation_by_id,
get_simulation_node_by,
)
@ -18,9 +19,7 @@ from tkinter.constants import E
async def get_model_data(*, db_session: DbSession, simulation_id: Optional[UUID]):
simulation = await get_simulation_by_id(
db_session=db_session, simulation_id=simulation_id, is_completed=True
)
simulation = await get_default_simulation(db_session=db_session)
if not simulation:
raise HTTPException(
@ -44,8 +43,11 @@ async def get_model_data(*, db_session: DbSession, simulation_id: Optional[UUID]
#Prediction
EAF = main_calc_data.eaf
Derating = main_calc_data.derating_hours
Trip = main_calc_data.num_events
EAF_KONKIN = main_calc_data.eaf_konkin
#Realization
EAF_REAL = 97
EAF_KONKIN_REAL = 96
@ -76,11 +78,19 @@ async def get_model_data(*, db_session: DbSession, simulation_id: Optional[UUID]
"id": str(simulation.id),
"availability": availability,
"EFOR": EFOR,
"EAF": {
"EAF": {
"Prediction_EAF": EAF,
"Prediction_EAF_KONKIN": EAF_KONKIN,
"Real_EAF": EAF_REAL,
"Real_EAF_KONKIN": EAF_KONKIN_REAL
},
"Trip": {
"Prediction_Trip": Trip,
"Real Trip": Trip
},
"Derating": {
"Prediction_Derating": Derating,
"Real_Derating": Derating
},
"powerplant_reliability": powerplant_reliability
}

Loading…
Cancel
Save