Shiny, new, flexible bump fitting framework.
authorW. Trevor King <wking@drexel.edu>
Wed, 28 Jan 2009 13:46:10 +0000 (08:46 -0500)
committerW. Trevor King <wking@drexel.edu>
Wed, 28 Jan 2009 13:46:10 +0000 (08:46 -0500)
commit8bb4ccc40432d607fe71b272a52fa1216b8f4b01
tree6b88d7dc116ba05a12ca2cea8dab50fcf4a5e2d9
parentb05f7f09ce832443b758817ac0299a68ca524eca
Shiny, new, flexible bump fitting framework.

The bump fitting algorithm has been upgraded due to my increased
understanding of the complexity of the photodiode.

Sensitivity (bump slope) decreases as you move away from a zero volt
photodiode output.  Most of the time anyway.  We should be able to
handle data with a gentle camber, and we need to know what voltage
corresponds to the zero-deflection signal.

This prompted the recent change of bump aquisition to begin just _off_
the surface instead of just _on_ the surface.  Now we have to deal with
finding the location of the surface kink, so I split the fitting out
into its own function which least squares fits the data to whatever
model it's passed (currently via Levenburg-Marquardt).

Since the model is now it's own stand-alone entity, I got fancy and
added quadratic fits (to deal with camber) and clipping (to deal with
out-of-range signals).  So there should be no more need of manually
clipping in the tweakfiles or using the --cut-contact option in
bump_analyze (which has been removed).

I also enhanced the output of bump_plot to show the guess, fit, and
residual, in case anyone needs convincing that the fit is working, or is
troubleshooting a new model.
calibcant/bump_analyze.py