株式会社オートプロジェクト

光ファイバーセンサー(FBG)で河川の流速・水位を計測する     専用ソフトウェアを開発中|生データから帳票出力まで

光ファイバーセンサー(FBG)で河川の流速・水位を計測する 専用ソフトウェアを開発中|生データから帳票出力まで

依頼の背景 - 装置が出すのは「波長のズレ」、現場が必要なのは「提出できる帳票」

今回のご相談は、水路での流量観測試験を行う事業者様からのものでした。試験現場では光ファイバー式の流速計・水位計を水路内に設置し、専用の計測装置が10ミリ秒ごと(100Hz)に全センサーの波長値を記録し続けます。ところが、装置とその付属ソフトが担うのは「波長を記録する」ところまでで、その先の作業は各現場に委ねられていました。

  • 波長データを流速[m/s]・水位[m]といった物理量へ換算する
  • 水温の変化によって生じる測定誤差を補正する
  • 移動平均やFFT(高速フーリエ変換)でノイズや振動の傾向を可視化する
  • 平均値・標準偏差を算出し、印刷・提出できる帳票の形にまとめる

この試験は、水位3段階 × 流速3段階の計9条件を1条件あたり数分ずつ実施する形式で、1回の試験番号あたりのデータ点数は約190万点にのぼります。しかもFFT(周波数解析)を行うには10ミリ秒の生データを間引かずに残す必要があり、表計算ソフトへの手作業の取り込みでは到底追いつきません。加えて、センサーの設置位置や、水位の基準となる量水標の位置といった現場ごとに異なる条件を踏まえた補正計算も必要で、市販の汎用ソフトでは対応が難しい領域でした。

オートプロジェクトが行った開発内容

開発は「受信・保存」「換算・集計」「帳票出力」の3段階に分けて設計しました。各段階の責任範囲をはっきり分けることで、後から仕様が変わった部分だけを差し替えられる構造にしています。

  1. 計測装置のデータ取り込みと、試験単位でのデータ管理
    計測装置が書き出し続けるファイルの末尾を監視し、追記された行をリアルタイムに読み取ってデータベース(SQLite)へ保存します。操作は「接続」と「計測開始/終了」を明確に分け、計測開始から終了までを1つの試験セッションとして試験番号付きで記録する形にしました。保存する時刻は受信した瞬間ではなく装置が出力した計測時刻を使い、同じデータを再度取り込んでも結果が変わらない(=二重登録が起きない)設計としています。

  2. 波長データから流速・水位への換算
    センサーの波長は水温の変化だけでも動いてしまうため、まず温度センサー側の波長差を使って温度の影響を取り除き、そのうえで静圧・動圧の差から流速を、静圧側の変化から水位を算出します。換算の基準となる「初期波長(ゼロ点)」は、計測開始ボタンを押した瞬間の実測値を自動で取得する方式にして、手入力による転記ミスが起きないようにしました。流速については、別方式の電磁流速計による実測値で計算式の係数を校正し、さらに計測中に補正値がどう変動したかをグラフで確認できるようにしています。

  3. 移動平均・FFT・統計量の算出
    細かなノイズをならして傾向を読み取るための100点移動平均(1秒データ)、振動の周期性を確認するためのFFT、そして測定結果全体のばらつきを示す平均値・標準偏差を算出します。

  4. 現場ごとに異なる「水位の基準合わせ」への対応
    最も検討を要したのが、センサーが示す水位を、施設として正式な水位へ読み替える補正計算です。センサーが出すのはあくまで校正した瞬間からの相対的な変化量であるため、実際の運用では、
    ①試験用に仮設した量水標と、既設の正式な量水標とのレベル差
    ②センサーが水路の床面より高い位置に据えられていることによるズレ
    ③通水中に生じる水面の傾き(外壁側と中央での水位差)を、センサーの設置位置に
    応じて按分する
    ④センサーが外壁側・中央のどちらに設置されているかの判定
    という4段階の補正が必要でした。現場の手順書はソフトの入力項目を前提に書かれたものではなかったため、すでに現場で読み取っている量水標の値から補正値を自動算出し、設置位置は試験番号のセンサー記号から自動判定する設計として、現場で追加入力する項目を最小限に抑えました。

  5. Word帳票の自動出力
    計測終了ボタンを押すと、あらかじめ指定しておいたフォルダへ、データシート(Word)・移動平均データ(Word)・目視読み取りとの比較データ(CSV)が自動保存されます。データシートはA4縦のページを積み上げた構成で、センサーの種類ごとに「FBG変化量(上段)とFFT(下段)」のページと「測定値(水位・流速など)」のページを持ち、文書末尾には全チャンネル・全センサーを並べた集約ページを付けています。各ページの上部には試験番号・センサー記号・設置方法・試験日をまとめた表が入り、実測値から推定した試験条件も自動で記入されます。

開発で工夫したポイント

現場での使いやすさ

  • 入力欄を増やさない - 補正に必要な値は、できる限り現場がすでに読み取っている実測値から自動算出・自動判定する方針としました。試験条件についても、電磁流速計と量水標の実測値から該当する条件を推定して帳票に記入します。
  • 操作ステップを増やさない - 出力先フォルダを計測開始時に一度選ぶだけで、計測終了と同時に必要なファイルが揃います。試験のたびに出力操作を行う必要はありません。
  • 計測中の誤操作を防ぐ - 計測中はセンサー設定や試験番号の欄をロックし、逆に30秒おきの目視読み取りを記録する欄だけを入力可能にしています。目視の読み値はFBGの算出値と並べた比較データとして出力され、計測結果の妥当性確認に使えます。

開発・保守のしやすさ

  • 換算処理を「純粋関数」で実装 - 換算・集計の処理はデータベースにも時計にも触れない形で書き、同じ入力からは必ず同じ結果が出るようにしています。実機や計測装置がなくてもテストコードだけで動作を検証でき、仕様変更時も影響範囲を限定できます。
  • 実機なしで動く模擬環境 - 計測装置の代わりにダミーデータを流すモックを用意し、装置が手元にない状態でも受信から帳票出力までを通しで確認できる開発環境を整えました。
  • 環境構築の再現性 - Python本体のバージョンと依存パッケージをロックファイルで固定し、「リポジトリを取得してコマンド1つで環境が揃う」状態にしています。開発メンバー間で「自分の環境では動く」といった差異が生じません。
  • 現場PCへの配布を前提とした形式 - Pythonランタイムを同梱したWindows用の実行ファイル(exe)としてビルドし、現場のPCに追加インストール作業なしで導入できる形にしています。

結果と効果 - 計測終了ボタンひとつで、帳票までが揃う

現時点で、データの受信・保存、流速・水位への換算、移動平均・FFT・平均値/標準偏差の算出、水位の基準合わせ、そしてWord帳票の自動出力までが一連の流れとして動作しています。これまで「計測はできているが、そのあとの換算と資料づくりに時間がかかる」状態だった作業が、計測終了ボタンを押した時点で、グラフ入りの帳票と検証用データまで出来上がっている状態へ変わりました。約190万点にのぼる生データの集計も、現場で結果を待たずに確認できます。

今後も実際の試験でのご利用状況を踏まえ、機能の拡充を図っていく予定です。

オートプロジェクトでは、専用の計測機器から出てくる生データを、現場で本当に使える形(換算値・グラフ・帳票)に仕上げるソフトウェア開発に対応しています。「計測そのものはできているが、その後の処理や資料づくりに手間がかかっている」「市販ソフトでは自社の計算式や現場条件に合わない」といったお悩みがございましたら、ぜひお気軽にご相談ください。

Contact ご相談・お問い合わせ

実現の可否や概算費用、納期に関するご質問・ご相談も、
どうぞご遠慮なくお問い合わせください。

TOP