COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
sutra_controller_ls< Tcomp, Tout > Class Template Reference

this class provides the controller_ls features to COMPASS More...

#include <sutra_controller_ls.h>

Inheritance diagram for sutra_controller_ls< Tcomp, Tout >:
Collaboration diagram for sutra_controller_ls< Tcomp, Tout >:

Public Member Functions

 sutra_controller_ls (CarmaContext *context, long nslope, long nactu, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro)
 
 sutra_controller_ls (const sutra_controller_ls &controller)
 
 ~sutra_controller_ls ()
 
string get_type ()
 
int svdec_imat ()
 
int build_cmat (int nfilt, bool filt_tt)
 
int build_cmat (int nfilt)
 
int build_cmat_modopti ()
 
int frame_delay ()
 
int comp_com ()
 !!! YOU MUST set d_centroids before calling it!!!! More...
 
int set_modal_gains (Tcomp *mgain)
 
int set_cmat (Tcomp *cmat)
 
int set_imat (Tcomp *imat)
 
int init_modalOpti (int nmodes, int nrec, Tcomp *M2V, Tcomp gmin, Tcomp gmax, int ngain, Tcomp Fs)
 
int loadopen_loopSlp (Tcomp *ol_slopes)
 
int modalControlOptimization ()
 
int compute_Hcor ()
 
- Public Member Functions inherited from SutraController< Tcomp, Tout >
 SutraController (CarmaContext *context, int nslope, int nactu, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro)
 
virtual ~SutraController ()
 
int nactu ()
 
int nslope ()
 
cublasHandle_t cublas_handle ()
 
void init_voltage ()
 
int set_centroids_ref (Tcomp *centroids_ref)
 
int add_perturb_voltage (string name, float *perturb, int N)
 
int set_perturb_voltage (string name, float *perturb, int N)
 
int remove_perturb_voltage (string name)
 
int reset_perturb_voltage ()
 
int enable_perturb_voltage (string name)
 
int disable_perturb_voltage (string name)
 
int set_com (float *com, int nElem)
 
int set_open_loop (int open_loop_status, bool rst=true)
 
int clip_commands ()
 
int comp_voltage ()
 
int comp_latency ()
 
int set_delay (float delay)
 
int set_volt_min (float volt_min)
 
int set_volt_max (float volt_max)
 
int set_val_max (float val_max)
 
int set_gain (float gain)
 
int reset_coms ()
 
int command_delay ()
 
int add_perturb ()
 
int comp_polc (CarmaObj< Tcomp > &sk, CarmaObj< Tcomp > &iMat, CarmaObj< Tcomp > &ol_meas)
 Compute the open loop measurements and effective commands. More...
 

Public Attributes

CarmaObj< Tcomp > * d_imat
 
CarmaObj< Tcomp > * d_cmat
 
CarmaObj< Tcomp > * d_gain
 
CarmaObj< Tcomp > * d_eigenvals
 
CarmaHostObj< Tcomp > * h_eigenvals
 
CarmaObj< Tcomp > * d_U
 
CarmaObj< Tcomp > * d_cenbuff
 
CarmaObj< Tcomp > * d_err
 
int is_modopti
 
int nrec
 
int nmodes
 
Tcomp gmin
 
Tcomp gmax
 
int ngain
 
Tcomp Fs
 
int cpt_rec
 
CarmaObj< Tcomp > * d_M2V
 
CarmaObj< Tcomp > * d_S2M
 
CarmaObj< Tcomp > * d_slpol
 
CarmaObj< Tcomp > * d_Hcor
 
CarmaObj< Tcomp > * d_compbuff
 
CarmaObj< Tcomp > * d_compbuff2
 
- Public Attributes inherited from SutraController< Tcomp, Tout >
CarmaContextcurrent_context
 
int device
 
int open_loop
 
Tcomp delay
 
Tcomp gain
 
float volt_min
 
float volt_max
 
int nactus
 
int nslopes
 
Tout val_max
 
Tcomp a
 
Tcomp b
 
Tcomp c
 
vector< SutraDm * > d_dmseen
 
CarmaObj< Tcomp > * d_centroids
 
CarmaObj< Tcomp > * d_centroids_padded
 
CarmaObj< Tcomp > * d_com
 
CarmaObj< Tcomp > * d_com_padded
 
CarmaObj< Tcomp > * d_com_clipped
 
CarmaObj< Tout > * d_voltage
 
CarmaObj< Tcomp > * d_com1
 
vector< int > centro_idx
 
std::deque< CarmaObj< Tcomp > * > d_circular_coms
 
map< string, tuple< CarmaObj< Tcomp > *, int, bool > > d_perturb_map
 
cudaStream_t mainStream
 

Additional Inherited Members

- Protected Attributes inherited from SutraController< Tcomp, Tout >
mutex comp_voltage_mutex
 

Detailed Description

template<typename Tcomp, typename Tout>
class sutra_controller_ls< Tcomp, Tout >

this class provides the controller_ls features to COMPASS

Author
COMPASS Team https://github.com/ANR-COMPASS
Version
5.4.4
Date
2022/01/24

Definition at line 23 of file sutra_controller_ls.h.

Constructor & Destructor Documentation

◆ sutra_controller_ls() [1/2]

template<typename Tcomp , typename Tout >
sutra_controller_ls< Tcomp, Tout >::sutra_controller_ls ( CarmaContext context,
long  nslope,
long  nactu,
float  delay,
SutraDms dms,
int *  idx_dms,
int  ndm,
int *  idx_centro,
int  ncentro 
)

◆ sutra_controller_ls() [2/2]

template<typename Tcomp , typename Tout >
sutra_controller_ls< Tcomp, Tout >::sutra_controller_ls ( const sutra_controller_ls< Tcomp, Tout > &  controller)

◆ ~sutra_controller_ls()

template<typename Tcomp , typename Tout >
sutra_controller_ls< Tcomp, Tout >::~sutra_controller_ls ( )

Member Function Documentation

◆ build_cmat() [1/2]

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::build_cmat ( int  nfilt)

◆ build_cmat() [2/2]

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::build_cmat ( int  nfilt,
bool  filt_tt 
)

◆ build_cmat_modopti()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::build_cmat_modopti ( )

◆ comp_com()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::comp_com ( )
virtual

!!! YOU MUST set d_centroids before calling it!!!!

Implements SutraController< Tcomp, Tout >.

◆ compute_Hcor()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::compute_Hcor ( )

◆ frame_delay()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::frame_delay ( )

◆ get_type()

template<typename Tcomp , typename Tout >
string sutra_controller_ls< Tcomp, Tout >::get_type ( )
virtual

◆ init_modalOpti()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::init_modalOpti ( int  nmodes,
int  nrec,
Tcomp *  M2V,
Tcomp  gmin,
Tcomp  gmax,
int  ngain,
Tcomp  Fs 
)

◆ loadopen_loopSlp()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::loadopen_loopSlp ( Tcomp *  ol_slopes)

◆ modalControlOptimization()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::modalControlOptimization ( )

◆ set_cmat()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::set_cmat ( Tcomp *  cmat)

◆ set_imat()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::set_imat ( Tcomp *  imat)

◆ set_modal_gains()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::set_modal_gains ( Tcomp *  mgain)

◆ svdec_imat()

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::svdec_imat ( )

Member Data Documentation

◆ cpt_rec

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::cpt_rec

Definition at line 46 of file sutra_controller_ls.h.

◆ d_cenbuff

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_cenbuff

Definition at line 35 of file sutra_controller_ls.h.

◆ d_cmat

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_cmat

Definition at line 26 of file sutra_controller_ls.h.

◆ d_compbuff

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_compbuff

Definition at line 52 of file sutra_controller_ls.h.

◆ d_compbuff2

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_compbuff2

Definition at line 53 of file sutra_controller_ls.h.

◆ d_eigenvals

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_eigenvals

Definition at line 30 of file sutra_controller_ls.h.

◆ d_err

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_err

Definition at line 36 of file sutra_controller_ls.h.

◆ d_gain

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_gain

Definition at line 27 of file sutra_controller_ls.h.

◆ d_Hcor

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_Hcor

Definition at line 51 of file sutra_controller_ls.h.

◆ d_imat

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_imat

Definition at line 25 of file sutra_controller_ls.h.

◆ d_M2V

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_M2V

Definition at line 47 of file sutra_controller_ls.h.

◆ d_S2M

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_S2M

Definition at line 48 of file sutra_controller_ls.h.

◆ d_slpol

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_slpol

Definition at line 49 of file sutra_controller_ls.h.

◆ d_U

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::d_U

Definition at line 32 of file sutra_controller_ls.h.

◆ Fs

template<typename Tcomp , typename Tout >
Tcomp sutra_controller_ls< Tcomp, Tout >::Fs

Definition at line 45 of file sutra_controller_ls.h.

◆ gmax

template<typename Tcomp , typename Tout >
Tcomp sutra_controller_ls< Tcomp, Tout >::gmax

Definition at line 43 of file sutra_controller_ls.h.

◆ gmin

template<typename Tcomp , typename Tout >
Tcomp sutra_controller_ls< Tcomp, Tout >::gmin

Definition at line 42 of file sutra_controller_ls.h.

◆ h_eigenvals

template<typename Tcomp , typename Tout >
CarmaHostObj<Tcomp>* sutra_controller_ls< Tcomp, Tout >::h_eigenvals

Definition at line 31 of file sutra_controller_ls.h.

◆ is_modopti

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::is_modopti

Definition at line 39 of file sutra_controller_ls.h.

◆ ngain

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::ngain

Definition at line 44 of file sutra_controller_ls.h.

◆ nmodes

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::nmodes

Definition at line 41 of file sutra_controller_ls.h.

◆ nrec

template<typename Tcomp , typename Tout >
int sutra_controller_ls< Tcomp, Tout >::nrec

Definition at line 40 of file sutra_controller_ls.h.


The documentation for this class was generated from the following file: