A++ reconstructor tests
These simulations were conducted to test the performance of
reconstructors generated from A++ - a reconstructor generation code
written by Dr. Walter Wild at the University of Chicago.
Reconstructors for Shack Hartmann based AO systems up to size 64x64
were tested on a 5.08 meter aperture. First I will discuss the
simulations, and then I will describe the method used to generate A++
reconstructors and use them in Arroyo.
Simulations of AO systems on Palomar
Reconstructors were generated for Shack Hartmann wavefront sensors
with a number of subapertures ranging from 4x4 to 64x64. Simulations
were performed to test the ability of these reconstructors to close
the loop on a static realization of atmospheric turbulence. A Fried
parameter of 16 cm at .5 microns was used in generating the turbulence
realization. The pixel scale of the layer and the wavefront were both
chosen to be 5 millimeters. A wavelength of 600 nm was used for
wavefront sensing. The sensing wavefront was propagated through the
lenslet array, and the wavefront in the focal plane of the lenslet
array was sampled at 24 pixels per lenslet. Centroids were computed
using the classical centroid algorithm. Centroids were passed to the
reconstructor to compute the tip tilt and deformable mirror residuals,
which were in turn passed to an integral controller to generate tip
tilt and deformable mirror commands. The compensated PSF was
generated for wavelengths of .8, 1.2, 1.6, and 2.2 microns. The
simulation ran for 25 cycles of the control loop, which was sufficient
to close the loop for every reconstructor that was tested.
The movies below show the behavior of the residual wavefront and PSF's
as a function of increasing order of adaptive correction. The first
movie shows the residual wavefront phase aberrations after the loop
has closed. The wavefront aberrations at each of the detected
wavelengths differs only by a multiplicative factor, so that this
movie is representative of sensing and detected wavelengths - hence no
scale is included. The second movie shows the PSF's at each of the
four detected wavelengths, over a 5 arcsecond range. The final movie
shows the PSF's over a 2 arcsecond range. In the latter two movies,
the control radius of the AO system is clearly seen to grow as the
order of correction increases.
Residual wavefront phase aberrations
5 arcsec PSF's
2 arcsec PSF's
In these movies, variations in the intensity of the Airy rings can be
seen long after the control radius has expanded beyond the radius of
the ring. These variations are thought to arise from aliasing of high
spatial frequency phase aberrations in the lenslet array. This
aliasing effect generates errors in the measured centroids that
propagate through the reconstructor and end up on the surface of the
DM. For an AO system with a fixed order of correction, analogous
variations arise as the turbulence blows past the telescope aperture
and the aliased power evolves on millisecond timescales. These
temporal variations can seriously degrade the contrast limits that may
be achieved using coronography, and the amelioration of this effect is
an active area of adaptive optics research.
Generating A++ reconstructors for use with Arroyo
The A++ executables are freely available on the web here. These executables were apparently compiled on
a Windows machine, but I successfully ran them on my Linux box using
the Windows emulator wine. There is a particular procedure that I
used to generate these reconstructors, which should work for
generating reconstructors using any shape of aperture. I describe the
steps I used here in detail.
First I generated an A++ geometry file using the CONF.EXE executable.
I set the virtual subaperture virtual actuator radii to be much larger
than the aperture radius, so that the resulting reconstructor was
always generated for a square grid of actuators and subapertures. I
also modified the active edge actuators and subapertures to make the
geometrical configuration appear more like the one used to generate
the PALAO reconstructor. Here is a tarfile containing these
geometry files.
A++ geometry files
I then generated the reconstructor using the MATRX.EXE executable. My
strategy was to make a zonal reconstructor with piston, tip and tilt
projected out, and make a modal reconstructor that generates the modal
coefficients. So far I have only been able to generate the modal
reconstructor by projecting in centroid space. This required the
following steps:
1. Load the geometry file using the File menu option.
2. Click "ok" in the "Make Matrix" window
3. Click the down arrow in the "Make Matrix" window and select the geometry matrix
4. Select the "A++ Least Squares" radiobutton in the "Make Matrix" window
5. Click "ok" in the "Make Matrix" window, and wait for the matrix to be generated
6. Click the second down arrow in the "Make Matrix" window and select the A+ Least Squares matrix
7. Select the "Out Slopes Zernike Project" radiobutton in the "Make Matrix" window
8. Click "ok" in the "Make Matrix" window, and wait for the matrix to be generated
9. Click and drag the "Out Slopes Zernike Project" matrix from the "Matrix Catalog" window to the "View Matrix List" window
10. Click and drag temporary matrix 6 from the "Temporary Matrix Catalog" window to the "View Matrix List" window
11. To offload these two matrices, click on the disk icon in the "View
Matrix List" window. In the Matrix I/O popup, select ascii output and
click the write button.
Having written these ascii files to disk, I wrote a constructor for
the class zernike_projected_zonal_reconstructor that takes A++
reconstructor files in ascii format. This class is not yet checked into CVS, but
will be in the near future.