![]() |
cacao
Release 0.1.03-dev
Compute And Control For Adaptive Optics
|
Function prototypes for Adaptive Optics Control loop engine compute calibration. More...
Go to the source code of this file.
Functions | |
void | __attribute__ ((constructor)) libinit_AOloopControl_computeCalib() |
Initialize module. More... | |
AOloopControl_computeCalib - 1. COMPUTING CALIBRATION | |
Compute control matrix, modes | |
imageID | AOloopControl_computeCalib_mkHadamardModes (const char *DMmask_name, const char *outname) |
imageID | AOloopControl_computeCalib_Hadamard_decodeRM (const char *inname, const char *Hmatname, const char *indexname, const char *outname) |
imageID | AOloopControl_computeCalib_mkloDMmodes (const char *ID_name, uint32_t msizex, uint32_t msizey, float CPAmax, float deltaCPA, double xc, double yc, double r0, double r1, int MaskMode) |
errno_t | AOcontrolLoop_computeCalib_ComputeCM_FPCONF (char *fpsname, uint32_t CMDmode) |
Configuration for compute calib FPS. More... | |
errno_t | AOcontrolLoop_computeCalib_ComputeCM_RUN (char *fpsname) |
Compute control matrix. More... | |
errno_t | AOloopControl_computeCalib_mkCalib_map_mask (long loop, const char *zrespm_name, const char *WFSmap_name, const char *DMmap_name, float dmmask_perclow, float dmmask_coefflow, float dmmask_perchigh, float dmmask_coeffhigh, float wfsmask_perclow, float wfsmask_coefflow, float wfsmask_perchigh, float wfsmask_coeffhigh) |
errno_t | AOloopControl_computeCalib_Process_zrespM (long loop, const char *IDzrespm0_name, const char *IDwfsref_name, const char *IDzrespm_name, const char *WFSmap_name, const char *DMmap_name) |
errno_t | AOloopControl_computeCalib_ProcessZrespM_medianfilt (long loop, const char *zrespm_name, const char *WFSref0_name, const char *WFSmap_name, const char *DMmap_name, double rmampl, int normalize) |
errno_t | AOloopControl_computeCalib_mkCM_FPCONF (char *fpsname, uint32_t CMDmode) |
errno_t | AOloopControl_computeCalib_mkCM_RUN (char *fpsname) |
errno_t | AOloopControl_computeCalib_mkCM (const char *respm_name, float SVDlim) |
long | AOloopControl_computeCalib_mkSlavedAct (const char *IDmaskRM_name, float pixrad, const char *IDout_name) |
long | AOloopControl_computeCalib_DMedgeDetect (const char *IDmaskRM_name, const char *IDout_name) |
long | AOloopControl_computeCalib_DMextrapolateModes (const char *IDin_name, const char *IDmask_name, const char *IDcpa_name, const char *IDout_name) |
long | AOloopControl_computeCalib_DMslaveExt (const char *IDin_name, const char *IDmask_name, const char *IDsl_name, const char *IDout_name, float r0) |
imageID | AOloopControl_computeCalib_mkModes (const char *ID_name, uint32_t msizex, uint32_t msizey, float CPAmax, float deltaCPA, double xc, double yc, double r0, double r1, int MaskMode, int BlockNB, float SVDlim, char *stagedir) |
imageID | AOloopControl_computeCalib_mkModes_Simple (const char *IDin_name, long NBmblock, long Cmblock, float SVDlim) |
imageID | AOloopControl_computeCalib_compute_ControlMatrix (long loop, long NB_MODE_REMOVED, const char *ID_Rmatrix_name, const char *ID_Cmatrix_name, const char *ID_VTmatrix_name, double Beta, long NB_MODE_REMOVED_STEP, float eigenvlim) |
errno_t | AOloopControl_computeCalib_compute_CombinedControlMatrix (const char *IDcmat_name, const char *IDmodes_name, const char *IDwfsmask_name, const char *IDdmmask_name, const char *IDcmatc_name, const char *IDcmatc_active_name) |
imageID | AOloopControl_computeCalib_loadCM (long loop, const char *CMfname) |
Function prototypes for Adaptive Optics Control loop engine compute calibration.
AO engine uses stream data structure
void __attribute__ | ( | (constructor) | ) |
Initialize module.
errno_t AOloopControl_computeCalib_compute_CombinedControlMatrix | ( | const char * | IDcmat_name, |
const char * | IDmodes_name, | ||
const char * | IDwfsmask_name, | ||
const char * | IDdmmask_name, | ||
const char * | IDcmatc_name, | ||
const char * | IDcmatc_active_name | ||
) |
imageID AOloopControl_computeCalib_compute_ControlMatrix | ( | long | loop, |
long | NB_MODE_REMOVED, | ||
const char * | ID_Rmatrix_name, | ||
const char * | ID_Cmatrix_name, | ||
const char * | ID_VTmatrix_name, | ||
double | Beta, | ||
long | NB_MODE_REMOVED_STEP, | ||
float | eigenvlim | ||
) |
long AOloopControl_computeCalib_DMedgeDetect | ( | const char * | IDmaskRM_name, |
const char * | IDout_name | ||
) |
long AOloopControl_computeCalib_DMextrapolateModes | ( | const char * | IDin_name, |
const char * | IDmask_name, | ||
const char * | IDcpa_name, | ||
const char * | IDout_name | ||
) |
long AOloopControl_computeCalib_DMslaveExt | ( | const char * | IDin_name, |
const char * | IDmask_name, | ||
const char * | IDsl_name, | ||
const char * | IDout_name, | ||
float | r0 | ||
) |
imageID AOloopControl_computeCalib_Hadamard_decodeRM | ( | const char * | inname, |
const char * | Hmatname, | ||
const char * | indexname, | ||
const char * | outname | ||
) |
imageID AOloopControl_computeCalib_loadCM | ( | long | loop, |
const char * | CMfname | ||
) |
errno_t AOloopControl_computeCalib_mkCalib_map_mask | ( | long | loop, |
const char * | zrespm_name, | ||
const char * | WFSmap_name, | ||
const char * | DMmap_name, | ||
float | dmmask_perclow, | ||
float | dmmask_coefflow, | ||
float | dmmask_perchigh, | ||
float | dmmask_coeffhigh, | ||
float | wfsmask_perclow, | ||
float | wfsmask_coefflow, | ||
float | wfsmask_perchigh, | ||
float | wfsmask_coeffhigh | ||
) |
errno_t AOloopControl_computeCalib_mkCM | ( | const char * | respm_name, |
float | SVDlim | ||
) |
errno_t AOloopControl_computeCalib_mkCM_FPCONF | ( | char * | fpsname, |
uint32_t | CMDmode | ||
) |
errno_t AOloopControl_computeCalib_mkCM_RUN | ( | char * | fpsname | ) |
imageID AOloopControl_computeCalib_mkHadamardModes | ( | const char * | DMmask_name, |
const char * | outname | ||
) |
imageID AOloopControl_computeCalib_mkloDMmodes | ( | const char * | ID_name, |
uint32_t | msizex, | ||
uint32_t | msizey, | ||
float | CPAmax, | ||
float | deltaCPA, | ||
double | xc, | ||
double | yc, | ||
double | r0, | ||
double | r1, | ||
int | MaskMode | ||
) |
CPA for each Zernike (somewhat arbitrary... used to sort modes in CPA)
extract xc and yc from mask
Remove excluded modes
SLAVED ACTUATORS
imageID AOloopControl_computeCalib_mkModes | ( | const char * | ID_name, |
uint32_t | msizex, | ||
uint32_t | msizey, | ||
float | CPAmax, | ||
float | deltaCPA, | ||
double | xc, | ||
double | yc, | ||
double | r0, | ||
double | r1, | ||
int | MaskMode, | ||
int | BlockNB, | ||
float | SVDlim, | ||
char * | stagedir | ||
) |
CPA for each Zernike (somewhat arbitrary... used to sort modes in CPA)
STEP 1: CREATE STARTING POINT : ZERNIKES + FOURIER MODES
if Mmask exists, use it, otherwise create it
extract xc and yc from mask
Remove excluded modes if they exist
Remove excluded modes if they exist
COMPUTE WFS RESPONSE TO MODES -> fmodesWFS00all.fits
STEP 2: SEPARATE DM MODES INTO BLOCKS AND MASK
STEP 3: REMOVE NULL SPACE WITHIN EACH BLOCK - USE SVDlim00 FOR CUTOFF -> fmodes1all.fits (DM space)
STEP 4: REMOVE MODES THAT ARE CONTAINED IN PREVIOUS BLOCKS, AND ENFORCE DM-SPACE ORTHOGONALITY BETWEEN BLOCKS -> fmodes2all.fits (DM space) fmodes1all -> fmodes2all
STEP 5: REMOVE NULL SPACE WITHIN EACH BLOCK - USE SVDlim01 FOR CUTOFF -> fmodes2ball.fits (DM space)
STEP 6: COMPUTE WFS RESPONSE TO MODES fmodes2ball -> fmodesWFS0all.fits
Load ... or create WFS mask
STEP 7: REMOVE WFS MODES THAT ARE CONTAINED IN PREVIOUS BLOCKS, AND ENFORCE WFS-SPACE ORTHOGONALITY BETWEEN BLOCKS Input: fmodesWFS0all (corresponding to fmodes2ball) Output -> fmodesWFS1all / fmodes3all
STEP 8: SVD WFS SPACE IN EACH BLOCK fmodesWFS1all, fmodes3 -> fmodesall
eigen mode index
WFS MODES, MODAL CONTROL MATRICES
imageID AOloopControl_computeCalib_mkModes_Simple | ( | const char * | IDin_name, |
long | NBmblock, | ||
long | Cmblock, | ||
float | SVDlim | ||
) |
long AOloopControl_computeCalib_mkSlavedAct | ( | const char * | IDmaskRM_name, |
float | pixrad, | ||
const char * | IDout_name | ||
) |
errno_t AOloopControl_computeCalib_Process_zrespM | ( | long | loop, |
const char * | IDzrespm0_name, | ||
const char * | IDwfsref_name, | ||
const char * | IDzrespm_name, | ||
const char * | WFSmap_name, | ||
const char * | DMmap_name | ||
) |
errno_t AOloopControl_computeCalib_ProcessZrespM_medianfilt | ( | long | loop, |
const char * | zrespm_name, | ||
const char * | WFSref0_name, | ||
const char * | WFSmap_name, | ||
const char * | DMmap_name, | ||
double | rmampl, | ||
int | normalize | ||
) |