朝から実験。
昨日はデータがめちゃくちゃになる原因を調べていたのだが、その途中で装置の動作速度が本来の半分になっていることに気がついた。正確に言うと、装置の制御している電圧の変化の速さが本来の1/2になっている。例えば時間幅1msのパルス電圧が出力されるはずが2msの時間幅になっているといった具合である。ひいては1回の測定にかかる時間も本来の倍になっている。

色々調べてみると、ソフトウェア内部で計算に使っているサイクル周波数の値が間違っていることがわかった。ユーザーが入力した値(時間)は、サイクル周波数を使ってサイクル数に換算されてファームウェアに送られるのだが、サイクル周波数が間違っていたせいで、ファームウェアにも間違ったサイクル数が送られていた。これは、設定ファイルから読み出したサイクル周波数の値がファームウェアの周波数と異なっていたのが原因だった。言い替えると、以前に試験的にサイクル周波数を変更したときの記録が残っていたせいで実際の動作との齟齬が起こっていたということになる。原因が分かれば後の修正は簡単に済んだ。

一方、データがめちゃくちゃになる原因もひょんなことから明らかになった。こちらも話は単純で、回路の増幅率がきちんと切り替わってなかったせいで本来の15倍の駆動電圧がアクチュエータにかかっていたのが原因だった。何度か切替えたら正常に動くようになったが、なぜそれまで切替えが上手くいかなかったのかは分からない。こちらはもう少し突っ込んで調べる必要がありそうだ。