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.
|
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
|
|