tempus System Class PhaseZernikeDM
PhaseZernikeDM is part of the WaveTrain system class library.

PhaseZernikeDM takes a list of coefficients for *real* Zernike polynomials & outputs commands to drive DM actuators. The 1-parameter ordering of the input Zernike coefficients is specified by the 'orderingScheme' parameter and starts with tilt modes. The normalization scheme used in mode composition is specified by the 'normalization' parameter.

The vectors m_vec and l_vec can be used in various ways to control which Zernike modes are used to compose the phase. The input coefficients must contain every coefficient necessary for the specified modes, but m_vec & l_vec may ommit some modes for which coefficients are supplied; hence phase can be constructed using only selected modes following Zernike fitting. 1) Gernerally, they specify the individual radial and angular orders of the modes to be used; m_vec is a vector of radial orders and l_vec contains the corresponding angular orders (m_vec & l_vec must be the same length), e.g., m_vec = VecI(3,2,2,2), l_vec=VecI(3,2,0,-2) causes only focus and astigmatism modes to be used and all others are ignored. 2) Setting both vectors to negative values, e.g. m_vec=VecI(1,-1), l_vec=VecI(1,-1) causes them to be ignored and all modes for which coefficients are supplied are used. 3) If the first two values of m_vec are negative (with l_vec positive) then the values in m_vec are interpreted as radial orders and all angular orders are composed for each radial order, e.g., m_vec = VecI(3,-2,-3,5) will cause all modes with radial orders 2, 3 and 5 to be composed (13 modes total). 4) If the first value of m_vec is negative and the second is positive (with l_vec positive) they specify a range of radial orders, e.g., m_vec = VecI(2,-2,5) will cause all modes with radial orders 2 through 5 to be composed (18 modes total).

The actuator locations must be specified as in the DM model, e.g, in the runset; Vector<float> xAct=mliLoad(dmFile, "xact",Vector<float>()), where dmFile is the file read by TasatDMModel to create the dmModel structure. Note: actuator displacments are calculated as the OPD at the actuator locations, i.e. assuming a short ranged actuator influence function.

Tempus Block Diagram Editor Snapshot
Parameters
m_vec  Vector<int>   Vector of radial orders of Zernike modes   VecI(1,-1)
l_vec  Vector<int>   Vector of angular orders of Zernike modes   VecI(1,-1)
apD  float   Aperture diameter (m)   Dap
wavelength  float   WFS wavelength   1.0e-6f
xAct  Vector<float>   X actuator locations as specified in the DM .mat file   mliLoad(dmFile, "xact",Vector())
yAct  Vector<float>   Y actuator locations as specified in the DM .mat file   mliLoad(dmFile, "yact",Vector())
normalization  int   0-no normalization; 1-normalize to overlap integral=1/pi; 2-make the PV=1.0;3-Noll/Malacara   3
orderingScheme  int   0-deprecated;1-Noll;2-Malacara   0
Inputs
Coef  Vector<float>   List of coefficients for real Zernike polynomials starting with the 1st order modes   ZeroVecF(nZernike)
Outputs
commands  Vector<float>   DM actuator commands ordered corresponding to the given actuator locations   
Subsystems


Last Saved: Tue Oct 21 11:17:47 MDT 2008 by TVE version 2009B