cacao  Release 0.1.03-dev
Compute And Control For Adaptive Optics
AOloopControl_PredictiveControl.h File Reference

Function prototypes for Adaptive Optics Control loop engine predictive control. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void __attribute__ ((constructor)) libinit_AOloopControl_PredictiveControl()
 Initialize module. More...
 
AOloopControl_PredictiveControl - 1. PREDICTIVE CONTROL

Predictive control using WFS telemetry

errno_t AOloopControl_PredictiveControl_mapPredictiveFilter (const char *IDmodecoeff_name, long modeout, double delayfr)
 
double AOloopControl_PredictiveControl_testPredictiveFilter (const char *IDtrace_name, long modeout, double delayfr, long filtsize, const char *IDfilt_name, double SVDeps)
 
imageID AOloopControl_PredictiveControl_builPFloop_WatchInput (long loop, long PFblock, long PFblockStart, long PFblockEnd, long NBbuff)
 
imageID AOloopControl_PredictiveControl_setPFsimpleAve (char *IDPF_name, float DecayCoeff)
 Set predictive filter to simple average of previous measures. More...
 

Detailed Description

Function prototypes for Adaptive Optics Control loop engine predictive control.

AO engine uses stream data structure

Function Documentation

◆ __attribute__()

void __attribute__ ( (constructor)  )

Initialize module.

◆ AOloopControl_PredictiveControl_builPFloop_WatchInput()

imageID AOloopControl_PredictiveControl_builPFloop_WatchInput ( long  loop,
long  PFblock,
long  PFblockStart,
long  PFblockEnd,
long  NBbuff 
)

Purpose

Listens to real-time telemetry streams buffers aol<loop>_modeval_ol_logbuff0 and aol<loop>_modeval_ol_logbuff1

When new buffer is complete, extract the requested values from it and write to aol<loop>_modevalol_PFb<PFblock>

Arguments

Parameters
[in]loopLONG loop index
[in]PFblockLONG Block number
[in]PFblockStartLONG Block start index
[in]PFblockEndLONG Block end index

#param[in] NBbuff LONG Number of input buffers to merge for each output

◆ AOloopControl_PredictiveControl_mapPredictiveFilter()

errno_t AOloopControl_PredictiveControl_mapPredictiveFilter ( const char *  IDmodecoeff_name,
long  modeout,
double  delayfr 
)

◆ AOloopControl_PredictiveControl_setPFsimpleAve()

imageID AOloopControl_PredictiveControl_setPFsimpleAve ( char *  IDPF_name,
float  DecayCoeff 
)

Set predictive filter to simple average of previous measures.

DecayCoeff is betweeen 0 and 1 1 : no decay, pure average

This is used to give more weigth to most recent measurements

◆ AOloopControl_PredictiveControl_testPredictiveFilter()

double AOloopControl_PredictiveControl_testPredictiveFilter ( const char *  IDtrace_name,
long  modeout,
double  delayfr,
long  filtsize,
const char *  IDfilt_name,
double  SVDeps 
)

predictive control based on SVD

input: mode values trace [ii: time, jj: mode number] mode index delayfr [delay in frame unit] filtsize [number of samples in filter]