Showing posts with label smelly grad students. Show all posts
Showing posts with label smelly grad students. Show all posts

Wednesday, March 11, 2009

3.10.09


It turns out that using the full wavefront norm as the cost function works pretty well with a limited number of control modes. Previously, if only the first m modes were used, I was projecting the slope vector S onto the modes giving the cost function J=U(:,1:m)\S, where U is the modal poke matrix. Apparently this representation fails to capture enough detail in the cost function perturbations to really achieve good convergence.

As a result convergence is pretty good when using a limited number of modes for control, especially when enough perturbations are generated per iteration to allow a least-squares approximation of the gradient.



Once I get a faster WFS this algorithm should be golden. First though I have a host of tests to run to characterize the DM in more detail. Is the response really linear wrt the square of the voltage commands? Does superposition really hold? Should I use the given influence functions in estimating the poke matrix? We shall see.

Next I'm going to try constructing a cost function using image data instead. Again, this is something that's been done in papers so it should be possible here. The first step is to find a function (eg peak intensity, intensity variance, etc) that has a positive correlation with the WF norm that I'm using now.

Only one more 236 lecture left in the semester. How will I get by without my biweekly dose of olfactory stimulus? I might have to start huffing some mouldering cheese as a replacement.

Thursday, March 05, 2009

3.5.09

More 236 lecturing today...more holding my breath and breathing through my mouth. We're finally going over inequality constrained optimization, which is exactly the problem I'm facing now for correcting static disturbances. I still think it would be bad ass if I could one day implement some kind of interior point algorithm in real time, even if the performance would be crap with dynamic noise. Some other stuff:

- Finished writing modal spgd script. Performs similarly to the non-modal case; not surprising since using all the modes reconstructs the commands exactly. The main difference is that the cost function being fed back is now the norm of the modal vector, not simply the wavefront error itself.

- Normalizing the estimated gradient helps performance greatly, although so far its still not as good as when using only positive perturbations. Naturally the gain has to be changed appropriately, but with these descent algorithms, the direction is really what matters. Here's a comparison between the unnormalized (v=0.011) and normalized (v=100) cases:



- I'm now looking into estimating the gradient using least-squares, but I'm not sure if this is equivalent, worse, or better than the current method. Comparing methods by estimating a known gradient (of a random quadratic function) wasn't conclusive. Theoretically, 31 perturbations would be needed to really identify the 31 entries of the gradient, thus requiring lots of time to capture each image. However if m modes are used instead, the gradient would only have m terms that need to be identified, so there might be some benefit to using the modes there. All this will hopefully be faster when I have the new SH sensor.

- If I can find a good way to estimate the Hessian at each iteration, I could use the full Newton's method with all the corresponding bells and whistles. I should probably look up some more recent papers.

Friday, February 27, 2009

2.27.09

Thursday's always a scramble to wrap up the 236 assignment into something resembling a coherent set of solutions. Usually if I haven't solved a problem by now, this means rewriting the question to look like an answer. This comes on the heels of an already lengthy 2hr 236 lecture, so there normally isn't much time left for poor 'ol research. Yesterday was typical; I probably got in a solid 30 minutes actual work on the project.

I'm starting to think that my problems with SPGD have to do with coupling between the control commands. I'm going to try using modal commands next but that will require a decent "modal" poke matrix. Today I fashioned a basic system ID script to do that, and I'm now investigating if I can use the norm of the projection of the wavefront as an objective function, instead of the norm of the wavefront itself. This should be fine since its what I'm using in the PI controller. Next week I'll try actually implementing SPGD with this poke matrix.

Also, to the person behind me in 236: honestly is it that hard to slap on some deodorant in the morning? Seriously, if you can afford those fancy Jesus sandals to go with your black dress socks, surely you can spare some change for a speed stick or something. The room is small and cramped, and we're in there for 2 hours. Think of the children man!