Python program for digital control-loops.
Project description
NQontrol Servo Controller
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):
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:
- Current documentation of the latest release
- Current documentation of the latest development version
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c18cd4838516cbd07b1360b611cfd773158e4dd8b6891188c2685c76e7625386 |
|
MD5 | 0a4102ccab6c8b272ce7668b164aca1d |
|
BLAKE2b-256 | b70306f605cbbd62345698531d70170ae4f5482f9652d918a4d38ee69b72821e |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b2135b31003ab5fc65ace810efdbb4e9255c4af385bc2db45596b0be12aea4c |
|
MD5 | eaad402086fc7b5113082973213ccddd |
|
BLAKE2b-256 | 07ea5a6c7cb1bba39226c425edbc8b14358a00426ba9200320d6d89106227c92 |