Skip to main content

KAGRA control python package

Project description

Logo

Python package for KAGRA suspension and seismic isolation control.

Website Release pypi Read the Docs License built and tests codecov

Kontrol

The name “Kontrol” is a blend word combining KAGRA, the gravitational-wave detector in Japan, and control, as in control system. The package contains necessary features for commissioning a KAGRA suspension. These features include:

  • Sensor and actuation utilities (kontrol.sensact): Calibration and Sensing/Actuation Matrices

  • System Modeling (kontrol.curvefit): Fitting frequency response data using Transfer function model.

  • Basic suspension controller design (kontrol.regulator): Damping and position controller with stabilizing post filters such as low-pass and notch filters.

To interface the results generated from the above functionalities to the KAGRA control system, Kontrol also provides:

  • Foton utilities (kontrol.foton): converting transfer function to/from Foton strings.

  • Ezca wrapper (kontrol.ezca): Fetch/put control matrices to/from the digital system.

The above features form a control design pipeline from calibration to controller design for commissioning KAGRA suspension with basic functionality.

Besides the basic functionalities, Kontrol also contains advanced features are being continuously developed in order to further enhance seismic isolation performance. Currently, Kontrol contains:

  • H-infinity optimal complementary filters (kontrol.ComplementaryFilter): Solves complementary control problems, optimizing control filters for sensor fusion, sensor correction, and vibration isolation control problems [1] [2].

  • Dynamic mode decomposition (kontrol.dmd): Dynamic mode decomposition for time-series forecasting and modeling. For future model predictive control work.

To familiarize users with the package, step-by-step tutorials are provided. Upon finishing the tutorials, the users should be able to convert the scripts into usable ones interfacing real data that can be used for the physical systems.

While Kontrol was created for setting up active isolation systems for systems in gravitational-wave detectors, it is not exclusive for usage in gravitaional-wave detectors or suspensions. The setup of an active isolation system is similar to many control systems. Kontrol is coded with no presumption of the system in question. So users outside the gravitational-wave and active isolation community may also find this tutorial/package useful.

Getting Started

Dependencies

Required

  • control>=0.9

  • numpy

  • matplotlib

  • scipy

Optional

  • ezca (Needed for accessing EPICs records/real-time model process variables. Use conda to install it.)

  • vishack or dttxml (For extracting data from diaggui xml files.)

If you would like to install Kontrol on your local machine with, then pip should install the required dependencies automatically for you. However, if you use Kontrol in a Conda environment, you should install the dependencies before installing Kontrol to avoid using pip. In Conda environment, simply type

conda install -c conda-forge numpy scipy matplotlib control ezca

Using Conda is strongly recommended because control depends on slycot which can be cumbersome to install without conda. Check this issue out if you wish to install slycot on a Linux machine.

Install from PyPI

pip install kontrol

Install from source

For local usage, type

$ git clone https://github.com/terrencetec/kontrol.git
$ cd kontrol
$ pip install .

For k1ctr workstations, make sure a virtual environment is enabled before installing any packages.

For Developers

Standards and Tools

Please comply with the following standards/guides as much as possible.

Coding style

CHANGELOG

Versioning

Packaging

Documentation

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

kontrol-1.0.0b1.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

kontrol-1.0.0b1-py3-none-any.whl (70.2 kB view details)

Uploaded Python 3

File details

Details for the file kontrol-1.0.0b1.tar.gz.

File metadata

  • Download URL: kontrol-1.0.0b1.tar.gz
  • Upload date:
  • Size: 60.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for kontrol-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 e2081e82ac05c49bb61f6a01cca4db5a29bc46d787e5a2b6da4e62c8bce73a4e
MD5 eb1ecef8edbb1e6b0749c3a3196f307b
BLAKE2b-256 7a2034b924a9c21f30240ca95681b3bd94419ca4235f24a0280dd0b63c3768d7

See more details on using hashes here.

File details

Details for the file kontrol-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: kontrol-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for kontrol-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 7f9ca872d1f2fe8e8a7a99445e47b1b9619b8a5f9ca185ce3a1c2e3d91c2226e
MD5 e1811cc67c65d5d1f6118ebc2f893f3f
BLAKE2b-256 ab5f1e00267b6001de55788f194222003ce7a29634e3bb7c55163180f3028152

See more details on using hashes here.

Supported by

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