interested in the [[package dependency graph|calibcant.svg]] generated
with Yu-Jie Lin's [PDepGraph.py][]:
- $ IGNORED=matplotlib,scipy,numpy,pyyaml,h5py,python,eselect-python
- $ python PDepGraph.py -o calibcant.dot -D "$IGNORED" calibcant
- $ dot -T svg -o calibcant.svg calibcant.dot
+ # python PDepGraph.py -o calibcant.dot \
+ -D matplotlib,scipy,numpy,pyyaml,h5py,python,eselect-python \
+ calibcant
+ # dot -T svg -o calibcant.svg calibcant.dot
Thermal calibration requires three separate measurements: photodiode
sensitivity (via surface bumps), fluid temperature (estimated, or via
measurements ([[!ltio statistics.png]]) of each of these parameters to
allow estimation of statistical uncertainty:
- $ calibcant-analyze.py calibcant/examples/calibration.h5
+ # calibcant-analyze.py calibcant/examples/calibration.h5
...
... variable (units) : mean +/- std. dev. (relative error)
... cantilever k (N/m) : 0.0629167 +/- 0.00439057 (0.0697838)
... photo sensitivity (V/m) : 2.4535e+07 +/- 616119 (0.0251118)
... T (K) : 295.15 +/- 0 (0)
... vibration variance (V^2) : 3.89882e-05 +/- 1.88897e-06 (0.0484497)
- ...
+ ...
While this cannot account for systematic errors, calibration numbers
are fairly meaninless without at least statistical error estimates.
\[
\text{PSD}(x, \omega) =
- \frac{2 k_BT \beta}
+ \frac{2 k_{B} T \beta}
{ \pi m \left[{(\omega_0^2-\omega^2)^2 + \beta^2\omega^2}\right] }
- + N \;.
+ + W \;.
\]
where $\beta$ and $\omega_0$ come from the damped-forced harmonic
\ddot{x} + \beta \dot{x} + \omega_0^2 x = \frac{F(t)}{m} \;,
\]
-$m$ is the cantilever's effective mass, and $N$ is an optional
+the cantilever's effective mass is $m$, and $W$ is an optional
white-noise offset.
Here is an example of a one-second thermal vibration fit with the