High order modes offload:
It must be computed :
_ref_force_null_mean = _ref_force<_ref_force>
ChCurrAverage _null_mean_60s = Mean(
ChCurrAverage<ChCurrAverage>  (_ref_force <_ref_force>) , 60s)
OffloadCommandVector =
OffloadMatrix ## (
ChCurrAverage _null_mean_60s  _ref_force_null_mean)
The
OffloadMatrix 672x672 is only known at run time because depends on the reconstructor.
The
OffloadMatrixFileName is written in R.ADSEC.HIGHORDEROFFLOAD by IDL during fsm_set_flat, fsm_load_rec, fsm_stop_ao
The _ref_force is written in R.ADSEC.REF_FOR and is already available in
FastDiagnostic
Every 60s this vector has to be written in a FITS file named
OffloadCommandVectorFitsFile
and if (fsm_state=='AOSet'  fsm_state=='AORun') the IDL function fsm_apply_cmd (
OffloadCommandVectorFitsFile) has to be called
No warning/alarm min/max threshold are needed
OffloadCommandVector has to be written in telemetry every 60s
 SL: used defined matrix (mostly constant) > during AOSet
 AO: unseen reconstructor modes > during AORun
 Algorithm: from "flat shape", monitor force and periodically send fsm_apply_cmd() corrections.

INPUT: running mean of 60'' of delta forces from flat

PROCEDURE:  modal decomposition in FF modes
 delta forces multiplication for given matrix
 apply offload with computed data
Matrix Definitions:
SL:  U' = U (with first n columns zeroed), V' = V (with first n columns zeroed), W' = W with first n diagonal elements zeroed: M = V'(W'^1)U't
AO:  decompose a given a KL modes
KLM2C with SVD and defining U' = U (with non w null values columns zeroed), the matrix is M=U't U'

MarcoXompero  10 Mar 2010