![]() |
cacao
Release 0.1.03-dev
Compute And Control For Adaptive Optics
|
Predictive control is implemented in two processes:
The predictive filter is modal, and adopts the same modes as the main control loop.
File | Description |
---|---|
aolARPF | find auto-regressive predictive filter |
aolARPFblock | AO find optimal AR linear predictive filter |
Predictive control is set up by blocks of modes. A block is configured through the aolconf predictive control sub-panel, which writes to configuration files conf/conf_PFblock_XXX.txt
, where XXX is the block number (000, 001, 002 etc...). Configuration files specify the modes within each block (index min to index max), the predictive filter order, time lag and and averaging gain.
For each block, there are 3 main processes involved in running the predictive control:
Watching input telemetry this process listens to the input telemetry stream and periodically writes data to be used to compute a filter. This runs function AOloopControl_PredictiveControl_builPFloop_WatchInput() in AOloopControl_PredictiveControl.c.
Runs in tmux sessions: aol0PFb0watchin, aol0PFb1watchin ...
Computing filter. Runs CLI command mkARpfilt
, which runs function LINARFILTERPRED_Build_LinPredictor() in linARfilterPred.c.
Runs in tmux sessions: aol0PFb0comp, aol1PFb0comp ...
Prediction engine (= apply filter). Runs script ./auxscripts/predFiltApplyRT
.
All 3 processes work in a chain, and can be turned on/off from the GUI.