Skip to content
Snippets Groups Projects
Commit a2ad1529 authored by Christian Darsow-Fromm's avatar Christian Darsow-Fromm
Browse files

Merge branch 'develop'

parents 5a552675 1ffa7f8b
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,13 @@
[run]
branch = True
source = nqontrol
omit = run.py
omit =
*run.py
*nqontrolUI.py
*controller.py
*mockAdwin.py
*errors.py
*settings_local.py
[paths]
source =
......
stages:
- build
- test
- build
- build-test
- deploy
- deploy-test
......@@ -51,10 +52,12 @@ pages:
expire_in: 30 days
only:
- develop
- master
- tags
test wheel installation:
image: lasnq/nqontrol:lib
stage: test
stage: build-test
before_script:
- echo 'DEVICES_LIST = [0]' > src/nqontrol/settings_local.py
script:
......@@ -76,7 +79,8 @@ deploy staging:
- sh bin/enable_ssh
script:
- scp $SCP_PARAMS dist/*.whl $SSH_SERVER:$SERVER_ROOT/software-builds/nqontrol-staging
when: manual
only:
- develop
deploy production:
image: lasnq/nqontrol
......
# ReadMe
[![pipeline status](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/develop/pipeline.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/develop)
[![coverage report](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/develop/coverage.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/develop)
[![pipeline status](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/master/pipeline.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/master)
[![coverage report](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/badges/master/coverage.svg)](https://gitlab.aei.uni-hannover.de/las-nq/adwin-control/commits/master)
`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.
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.
## Documentation
For more information please read the online documentation:
* Current documentation of the [latest release](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol)
* Current documentation of the [latest development version](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol-stage)
TODO
## NQontrol Installation
For installation please refer to the [documentation page](https://las-nq-serv.physnet.uni-hamburg.de/python/nqontrol/install.html)
......@@ -2,8 +2,8 @@
nqontrol
========
This is the documentation of **nqontrol**.
nqontrol is a python project aiming the replacement of analog PID controllers in the lab.
This is the documentation of **NQontrol**.
NQontrol is a Python project aiming the replacement of analog PID controllers in the lab.
Read the :doc:`Introduction <intro>` for more information on the system.
......@@ -12,16 +12,26 @@ Contents
.. toctree::
:maxdepth: 2
:caption: Usage
Introduction <intro>
Installation <install>
Basic Usage <usage>
Graphical User Interface <gui>
Configuration <configuration>
System Performance and Measurements <performance>
.. toctree::
:maxdepth: 2
:caption: Development
Api Documentation <apidoc>
Development Documentation <documentation>
Concept for realtime plotting <plotting_concept>
.. toctree::
:maxdepth: 2
:caption: System and more
System Performance and Measurements <performance>
Authors <authors>
......
# Introduction
`nqontrol` is a python project aiming the replacement of analog PID controllers in the lab.
`NQontrol` is a python project aiming the replacement of analog PID controllers in the lab.
## System Description
......
# Concept for Realtime Plotting of a Servo
This concept was to develop a structured plotting scheme and was not updated after implementing it.
So it might be useful to understand the implementation, but it isn't completely correct.
## User Story
### Terminal
#### Ramp
* Start a ramp with some parameters.
* The parameters will be saved in the object.
* Possible to reenable the same ramp.
* Extra parameter to start saving data to fifo.
#### Continuous Data
* Enable the fifo data and define the interval.
* Start the plotting (maybe only one command?)
#### Realtime Plotting
* Enable plotting with the defined interval.
* _Optional: Ability to change parameters while plotting._
### Dash
TODO
## Implementation
### Take Data
* Take number of requested entries for all 3 channels, max the size of the current adwin buffer.
* Return as a `DataContainer`.
### Prepare continuous Data
* Take number of entries of the fifo buffer.
* Delete oldest entries to stay at `maxlen`.
### Prepare ramp Data
* Take data.
* Find the first entry in `output` that contains the minimum value.
* Save the data from that index on and fill up with new taken data.
* Wait a time that it should be filled.
* Request number of data to fill.
* Local value of `maxlen` should not be larger than the fifo buffer size of adwin to avoid the need of looping.
### Update the Graph
* Take periodically the data and update the graph.
* Period is automatically calculated:
* Sleep a time to fill half of the fifo buffer.
`TODO` How much can we increase it?
* Maximal resulting framerate should be about 30 Hz.
### Triggering the Ramp
The output of the ramp on ADwin is based on a digital calculation.
Therefore it is absolutely reproducible without any variances.
#### Find the precice Value of the Minimum
Take data of at least a whole ramp and find the minimum.
* Need a saving frequency that matches to the current ramp.
* Check that the precice value of the minimum is nearly the negative ramp amplitude.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment