BibMon
(from the Portuguese Biblioteca de Monitoramento de Processos, or Process Monitoring Library) is a Python package that provides deviation-based predictive models for fault detection, soft sensing, and process condition monitoring.
For further information, please refer to the preprint of the scientific publication detailing BibMon
at this link.
BibMon
can be installed using pip
:
pip install bibmon
- PCA (Principal Component Analysis);
- ESN (Echo State Network);
- SBM (Similarity-Based Method);
- Autoencoders;
- any regressor that uses the
scikit-learn
interface.
Essentially, the library is used in two steps:
- In the training step, a model is generated that captures the relationships between variables in the normal process condition;
- In the prediction step, process data is compared to the model's predictions, resulting in deviations; if these deviations exceed a predefined limit, alarms are triggered.
Specifically, the implemented control charts are based on squared prediction error (SPE).
The examples in the notebooks/
directory demonstrate the main functionalities of BibMon
. The API reference can be generated using the Sphynx package from the files in the docs/
directory.
The resources offered by BibMon
are:
- Application in online systems: a trained
BibMon
model can be used for online analysis with both individual samples and data windows. For each sample or window, a prediction is made, the model state is updated, and alarms are calculated. - Compatibility, within the same architecture, of regression models (i.e., virtual sensors, containing separate X and Y data, such as RandomForest) and reconstruction models (containing only X data, such as PCA).
- Preprocessing pipelines that take into account the differences between X and Y data and between training and testing stages.
- Possibility of programming different alarm logics.
- Easy extensibility through inheritance (there is a class called
GenericModel
that implements all the common functionality for various models and can be used as a base for implementing new models). For details, consult theCONTRIBUTING.md
file. - Convenience functions for performing automatic offline analysis and plotting control charts.
- Real and simulated process datasets available for importing.
- Comparative tables to automate the performance analysis of different models.
- Automatic hyperparameter tuning.
BibMon is an open-source project driven by the community. If you would like to contribute to the project, please refer to the CONTRIBUTING.md file.
The package originated from research projects conducted in collaboration between the Chemical Engineering Program at COPPE/UFRJ and the Leopoldo Américo Miguez de Mello Research Center (CENPES/Petrobras).