3 def compose_imat(sup, *, compose_type="controller", controller_id=0):
4 """ Return an interaction matrix
6 return either the specified controller interaction matrix (if compose_type="controller")
7 or an imat composed of all controller interaction matrices (if compose_type="splitTomo")
10 sup : (compasSSupervisor) : supervisor
13 compose_type : (str) : (optional), default "controller" possibility to specify split tomography case ("controller" or "splitTomo")
15 controller_id : (int) : (optional), default 0 controller index
18 imat : (np.ndarray[ndim=1, dtype=np.float32]) : interaction matrix
20 if(compose_type==
"controller"):
21 return sup.rtc.get_interaction_matrix(controller_id)
22 elif(compose_type==
"splitTomo"):
25 for c
in range(len(sup.config.p_controllers)):
26 imShape = sup.rtc.get_interaction_matrix(c).shape
29 imat=np.zeros((n_meas, n_actu))
32 for c
in range(len(sup.config.p_controllers)):
33 im = sup.rtc.get_interaction_matrix(c)
34 imat[n_meas:n_meas+im.shape[0],n_actu:n_actu+im.shape[1]]=np.copy(im)
40 print(
"Unknown composition type")
def compose_imat(sup, *compose_type="controller", controller_id=0)
Return an interaction matrix.