関連ソフトウェア

フィッツ Fitss(Fish tester service software)

メイン画面
スペクトル測定
設定値変更
重回帰分析
PLS回帰分析
メイン画面

試作した測定器を拡張するための簡単なソフトウェア Fitss を作成しました。写真はそのメイン画面です。。画面には、終了ボタンを含め6つのボタンがあります。スペクトル測定、スペクトル変換、設定値変更、重回帰分析、PLS分析です。深く理解するユーザーから見れば、それぞれの処理内容は十分ではないかもしれませんが、いちおう必要と思われる機能を一つのソフトに統合しました。それぞれの詳しい内容は、以下に紹介します。
Fitssスペクトル取得

測定器自身には、スペクトルを保存する機能がありません。検量線を作成する場合などでは、測定器とパソコンをUSBケーブルで接続することにより、デバイスで測定したスペクトルデータをパソコン内に保存することができます。USBケーブルを使用しますが、独自規格のシリアルコネクタからの変換ケーブルを介在します。シリアル-USB変換コネクタは市販品を使用します。測定器からパソコンへの通信のみであり、双方向は確立していません。得られるデータは測定器内でAD変換された12ビットであり、CSVファイルでパソコン内に保存できます。グラフ描画が可能なので、毎回のスペクトル測定結果について、反射光が小さいとか、センサー感度を飽和しているとか、一目瞭然です。ある測定結果に満足しない場合(例えば失敗した場合)は、一つ前のデータに戻って、再測定も可能です。過去のデータは重ね書きされ、直前のスペクトルが赤色に示されるので、わかりやすいです。上記写真の赤い線のグラフは、20msで白色校正データを測定したところです。つまり、内蔵されるCMOSイメージセンサのハロゲン光源に対する、おおまかなスペクトルを示しています。縦軸はADCのRAW VALUEを示します。横軸は600-1100nmの範囲を示しています(ここでは、個々の分光器毎の校正波長までは反映されていません)。脂肪の吸収バンドの存在する900nm付近は、最も感度の高い800nm付近よりやや信号強度が低いことがわかります。これは、この分光器ユニットに依存する光学特性です。なお、このウインドウクラスの部分のコードを書いていて、シリアル通信の処理がよくわからなくて、マルチスレッドにしたのですが、それが影響しているらしく、一度この通信用ウンドウを終了すると、2度と通信は復帰しません。いまだに、このバグが直りません。CloseHandle(comPort)では、解決しないようで、それ以前の問題のようです。
Fitss設定値変更

次の設定を変更するためのインテルフォーマトでファイルを出力します。これをプログラマでEEPROMに書き込むことにより環境変数の設置を行います。実際に測定器の環境変数を書き換える場合は、ここでファイルを出力しますので、これをMicrochip社のプログラマpickkit(X)を使用して測定器のEEPROMを書き換える作業が必要です。
①LCDキャラクター表示(一般ユーザーモードで表示する英数字と半角カタカナEX.カツオシボウ)
②LCDデータ表示(試験測定モード 一般ユーザーモード 検量線作成用サンプル測定モード)
③スリープモード変更(省電力のための設定)
④再測定カウント変更(12ビットADCを使用していますので最大4096ですが、これ以下の値を設定すると、センサーが光飽和したときに一度だけ、所定の積算時間の半分の時間で再測定してくれます。再測定が行われた場合キャラクター表示されます)
⑤ホワイトデータ変更(本デバイスは電源投入時に白色校正しませんので、事前にデータを内臓しておきます)、⑥ダークデータ変更(ホワイトデータと同様に黒色校正も行いません)
⑦検量式変更(定数項、波長番号とその波長に係る係数を設定、最大4波長)
⑧RS232転送モード変更(パソコンへデータを転送するか、転送する場合はスペクトル変換パターンを指示する。受信するパソコンには汎用ターミナルソフト相当が必要となる)
⑨積算時間変更(8msから1000msの間)
⑩セーブデータ確認(出力するデータをテキストで書き出します)
Fitss重回帰分析

変数増加法により第4波長まで求められることができます。得られる結果は、定数項、各波長の係数、相関係数とモデル作成時の誤差の標準偏差のみです。モデルの検定はできません。Fitssは、よくある統計解析ソフトのように、1クリックで変数を増やしていくと瞬時に結果が得られるような簡単な操作ではありません。1変数ごとにファイルを読込み、その結果をCSVファイルとして出力します。そして、結果を確認するために、他のソフトを利用してグラフを描き、最適な変数を決定します。これを最大4変数まで繰り返します。なお、他の有償?ソフトと重回帰分析の精度を比較したところ、Fitssはやや精度が劣るようです。しかし、実用上は問題のない程度なのでこれで良しとします。
Fitss_PLSR分析

PLS解析では、PLS第1成分から第7成分まで計算できます。それぞれの成分で表示されるデータは、相関係数、誤差標準偏差、各波長の係数、それぞれの推定値です。q(yのローディング)とw(各波長データに対するローディングウェイト)などは表示されません。一般逆行列の計算が面倒で、よくわからないのでとりあえず掃き出し法で計算しました。前回の重回帰分析と同じように、市販ソフトに比べるとやや計算精度が劣るようです。逆行列の計算ルーチンに原因があるのか。ちなみに、試してはいませんがフリーソフトのRでも逆行列を求めるパッケージがあるようなので、これを利用すればPLS計算ができると思われます。