Skip to main content

Python program for digital control-loops.

Project description

NQontrol Servo Controller

pipeline status coverage report Code style: black

NQontrol is a Python project aiming the replacement of analog PID controllers in the lab.

The project is a solution based on the ADwin real-time platform that is able to deliver in excess of 8 simultaneous locking loops running with 200 kHz sampling frequency, and offers five second-order filtering sections per channel for optimal control performance. It can be used up to a control bandwidth of about 12 kHz. This Python package, together with a web-based GUI, makes the system easy to use and adapt for a wide range of control tasks in quantum-optical experiments.

The source code can be found on GitLab.

Read the latest changes in our changelog.

Paper Version

A fixed state of this project is version 1.1. The publicated paper about this project is available here. The preprint version of the paper describing can be found on arXiv.

Usage Example

Here is a short example for the Python API (see the full example in the docs):

# Importing a ServoDevice is enough
from nqontrol import ServoDevice

# Create a new servo device object, connecting to ADwin with the device number 0.
# Number 0 is reserved for a virtual mock device for testing.
sd = ServoDevice(0)

# Print the timestamp
print(f'Uptime {sd.timestamp}s')

# Get a servo object to control it.
s = sd.servo(1)

# Enable in and output
s.inputSw = True
s.outputSw = True

# Run a threshold analysis for locking
s.lockAnalysis()
# Enable the autolock
s.autolock(relock=True)

Graphical User Interface

NQontrol can also be used with a responsive graphical user interface that runs in a browser (more details in the docs):

NQontrol GUI

Autolock Feature

An autolock feature makes it simple to lock all the control loops. It scans the output until a threshold value of the aux signal is reached, then it activates the lock.

Documentation

For more information please read the online documentation:

NQontrol Installation

It's as simple as

pip install nqontrol

But additionally you need to install the ADwin library. For complete installation instructions please refer to the documentation page.

Contribution

If you want to make changes for yourself or contribute to the project, take a look on this page to see how to setup the environment.

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

nqontrol-1.2.1.tar.gz (178.2 kB view details)

Uploaded Source

Built Distribution

nqontrol-1.2.1-py3-none-any.whl (195.9 kB view details)

Uploaded Python 3

File details

Details for the file nqontrol-1.2.1.tar.gz.

File metadata

  • Download URL: nqontrol-1.2.1.tar.gz
  • Upload date:
  • Size: 178.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.7 Linux/4.18.0-240.10.1.el8_3.x86_64

File hashes

Hashes for nqontrol-1.2.1.tar.gz
Algorithm Hash digest
SHA256 c18cd4838516cbd07b1360b611cfd773158e4dd8b6891188c2685c76e7625386
MD5 0a4102ccab6c8b272ce7668b164aca1d
BLAKE2b-256 b70306f605cbbd62345698531d70170ae4f5482f9652d918a4d38ee69b72821e

See more details on using hashes here.

File details

Details for the file nqontrol-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: nqontrol-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 195.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.7 Linux/4.18.0-240.10.1.el8_3.x86_64

File hashes

Hashes for nqontrol-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8b2135b31003ab5fc65ace810efdbb4e9255c4af385bc2db45596b0be12aea4c
MD5 eaad402086fc7b5113082973213ccddd
BLAKE2b-256 07ea5a6c7cb1bba39226c425edbc8b14358a00426ba9200320d6d89106227c92

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