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.

Paper Version

A fixed state of this project is version 1.1. It belongs to the published paper (arXiv version) and will stay here independent of the future development. After publication the paper will be available here.

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

# Enable the autolock
s.autolock(relock=True, threshold=2, greater=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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

NQontrol-1.1rc1-py2.py3-none-any.whl (196.9 kB view hashes)

Uploaded Python 2 Python 3

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