The SiasamWorkFlow module is part of a broader project designed to assist in planning maintenance schedules for power system generators. It is divided into two routines: GenerateCatalogueSiasam and UpdateSiasam. Their purpose, input files, output files, and how they relate to each other, will be detailed in this document.
The GenerateCatalogueSiasam routine aims to generate an estimate for future maintenance solicitations of power plants. It does so based on data from technical requirements of each kind of technology and on each plant's maintenance history. The output of this module is a maintenance request list, together with the precedence constraints that couple them.
By default, the script expects the following input files:
catalogo_general_completo.csv: Maintenance requirements by technology or plant.historico.csv: Maintenance history data by plant.plantas_para_catalogo.csv: List of plants to generate solicitations for (and their relevant info).tecnologias_plantas.csv: plant tecnologies by SIASAM name convention.optmuntcod.csv: Plants with non-sequential unit names.
The program generates the following output files:
faltando_catalogo.csv: List of plants whose catalogue info are missing, if there are any.solicitudes_minimas.csv: Minimum catalogue maintenance requirements.precedencia_solicitudes_minimas.csv: Precedence constraints referring to the minimum catalogue maintenance requirements.
Notice that the solicitudes_minimas.csv and precedencia_solicitudes_minimas.csv outputs are also inputs to the UpdateSiasam routine.
The UpdateSiasam module aims to reconcile the minimum theoretical maintenance requirements (generated by the GenerateCatalogueSiasam routine) for each technology type with the latest actual maintenance requests made by power system agents and asset owners (referred to as "SIASAM requests"). This repository implements a matching methodology using a graph model, incorporating the Ford-Fulkerson and Network Simplex optimization methods. The output is a merged maintenance request list and adjusted data that complies with scheduling constraints.
By default, the script expects the following input files:
01-04Feb-CorrespondenciaCentrales_SDDP_SIASAM.csv: Mapping between generators for the catalogue and SIASAM data.solicitudes_siasam.csv: SIASAM maintenance requests.solicitudes_minimas.csv: Catalogue minimum required maintenance requests.solicitudes_siasam_fijas.csv: SIASAM fixed requests (might overwrite new SIASAM requests if duplicated).precedencia_solicitudes_minimas.csv: Precedence constraints for the minimum required maintenance requests.
The program generates the following output files:
optmcfg.csv: Merged maintenance requests.optmprec.csv: Merged precedence constraints.siasam_association_constraints.csv: New association constraints to append to any existing ones.siasam_irregularities_fixed_duplicates.txt: A report listing matching cases of duplicated fixed requests.siasam_irregularities_fixed_overlap.txt: A report listing matching cases of overlapping fixed requests.siasam_irregularities_duplicates.txt: A report listing matching cases of duplicated requests.siasam_irregularities_overlap.txt: A report listing matching cases of overlapping requests.
To run any of the module, firstly ensure that Python is installed on your system. To install the required dependencies, open the command prompt, navigate to the root directory, and run:
> pip install -r requirements.txt
Once the environment is properly set up, move the working directory to the folder of the module you wish to run:
> cd GenerateCatalogueSiasam
or
> cd UpdateSiasam
Then run it by executing:
> .\generate_catalogue.bat
or
> .\update_by_siasam.bat