Skip to main content

Fuse multiple calibrations into better calibrations

Project description

Shrink Calibration Plugin for Pioreactor

This plugin provides functionality to shrink multiple calibrations across workers in a Pioreactor cluster. It uses a regularized optimization process to fit a unified polynomial model while adjusting for worker-specific variations.

Features

  • Collects calibration data from multiple workers in a Pioreactor cluster.
  • Fits a regularized polynomial model.
  • Allows user interaction to select calibrations and customize parameters.
  • Automatically distributes the resulting calibration back to the workers.

Prerequisites

Before using this plugin, ensure you have:

  • A Pioreactor cluster with workers set up and active.
  • Calibrations already recorded on each worker for the specified device.
  • The Pioreactor software stack installed on your system.

Installation

There are three options:

  1. Install this plugin on your leader via the UI's Plugin page (requires internet access)
  2. Install this plugin on your leader via pio plugins install pioreactor-calibration-shrinkage (requires internet access)
  3. Or copy the __init__.py file's contents into a new .py file in the ~/.pioreactor/plugins directory on your leader.

Usage

Running the Plugin

Use the following command to start the shrink calibration process:

pioreactor calibrations shrinkage --device <DEVICE>

Replace <DEVICE> with the device you want to shrink calibrations for (e.g., pump, sensor).

Workflow

  1. Calibration Selection: The plugin will list available calibrations on each worker. Select the calibrations you wish to include in the shrinkage process.
  2. Parameter Configuration:
    • Polynomial Degree: Specify the degree of the polynomial for the unified model.
    • Closeness Parameter: Adjust the regularization parameter (lambda_a) to control how closely individual calibrations align with the average.
  3. Model Fitting: The plugin fits the model and displays the results. If you're not satisfied, you can adjust parameters and refit.
  4. Calibration Distribution: Once satisfied, the plugin distributes the new calibration data back to the workers.

Example

pioreactor calibrations shrinkage --device media_pump
  • Follow the prompts to select calibrations and configure the fitting parameters.
  • The plugin will output logs detailing the progress and results.

How It Works

  1. Data Collection: The plugin retrieves calibration data from each worker using the Pioreactor API.
  2. Model Fitting: It fits a polynomial model using regularized optimization, adjusting worker-specific scalars (A) and the polynomial coefficients (w).
  3. Calibration Creation: A new calibration is created for each worker, incorporating the unified model and worker-specific adjustments.
  4. Calibration Distribution: The new calibration is posted back to each worker for use.

Support

If you encounter any issues or have questions, please visit the Pioreactor community forums or contact support.


Happy calibrating! 🎉

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pioreactor_calibration_shrinkage-1.0.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file pioreactor_calibration_shrinkage-1.0.0.tar.gz.

File metadata

File hashes

Hashes for pioreactor_calibration_shrinkage-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f14c091073279d68739ce3f594339526647a5ad3231b2eeeb1bd331c4d85e26d
MD5 3626e90b5e90ded9145f3b46944acde5
BLAKE2b-256 30ae2ba27aac7082c534e41fab827f07324e8c1863cdefd396bcbd67b34c999a

See more details on using hashes here.

File details

Details for the file pioreactor_calibration_shrinkage-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pioreactor_calibration_shrinkage-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8576fe27433aec0ec4a9d4d416449ece60643e21a2236234b0d4db6f2f45841e
MD5 fc5e2d431c18d06634e87362943701d2
BLAKE2b-256 293a282695d829887db1b2bbce39273560c05b176a4396eb9d845f500a96c9ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page