📊 第07章:PoCログ記録とモニタリング設計

本章では、AITL-H PoCにおけるセンサ値・FSM状態・PID出力などのログ記録と可視化戦略について解説します。
動作中のデータを蓄積・解析・グラフ表示することで、制御挙動の評価と改善が可能になります。


1. 🗂 ログ記録の目的

  • FSM状態の遷移履歴を記録し、行動パターンを分析
  • センサデータ(距離・角度)を記録し、外界変化との関係性を把握
  • PID出力(PWM)を記録し、誤差推移や応答性を評価

2. 🧩 ログ保存構造(例)

PoCでは data/ ディレクトリにCSV形式で保存:

PoC/data/
├── fsm_log.csv         # 状態遷移ログ
├── sensor_log.csv      # 距離・角度のセンサ値履歴
└── pid_log.csv         # 目標値・実測値・出力PWM

3. 📝 ログ記録のコード例

# ログファイル初期化
with open("data/pid_log.csv", "w") as f:
    f.write("time,target,measured,pwm\n")

# 制御ループ内で追記
timestamp = time.time()
with open("data/pid_log.csv", "a") as f:
    f.write(f"{timestamp},{target},{measured},{pwm}\n")

4. 📈 可視化例(Python + matplotlib)

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("data/pid_log.csv")
plt.plot(df["time"], df["target"], label="Target")
plt.plot(df["time"], df["measured"], label="Measured")
plt.plot(df["time"], df["pwm"], label="PWM")
plt.legend()
plt.show()

5. 📡 FSM状態の可視化アイデア

  • 状態ごとに色分けされた時系列プロット
  • 状態遷移を時間軸上でマッピングする状態チャート
  • 自動レポート生成(PDF/HTML)での評価支援

🔚 まとめ

ログ記録と可視化は、PoC制御の挙動検証・最適化・トラブルシュートに不可欠な要素です。
FSM・PID・センサの出力を統合記録し、PoC設計の品質を客観的に評価するための土台となります。


🖼 図7-1:ログ出力構成図

以下は、PoCにおける主要制御モジュールとログファイル出力の関係を示した図です。
各モジュールは独立して .csv ファイルにログを記録し、後段で可視化や解析に利用されます。

ログ出力構成図

  • FSM Enginefsm_log.csv:状態遷移ログ
  • Sensor Interfacesensor_log.csv:実測値(距離・角度など)
  • PID Controllerpid_log.csv:制御応答ログ(目標 vs 実測 vs 出力)

この構成により、制御挙動を時系列でトレースでき、システム全体の評価とデバッグが容易になります。