NaNi EXECUTION LAB
⚡ ONE-SHOT MODE (一発本番モード)
失敗の許されない試運転向け: 全ツール(物理+AE+外部埋め込み+残差GP+サージ制約+感度分析+シーケンス計画+公差判定+Oracle)を最大安全側で同時起動。 保守的予測(GP下限)で安全余裕を確保し、不確実性が高い候補を自動降格します。
🛡 INTEGRITY GUARD (絶対遵守)
操作対象:循環ループ + 吸込側バルブのみ。 吐出側は性能測定領域であり、制御変数に含めることを禁止。 吐出側を操作することは性能試験の不正に該当します。本ツールは吐出側を「観測専用」として扱い、いかなる操作も推奨しません。
🔒 機密保護: 全処理ブラウザ完結 — Pyodide WASM 上で scikit-learn 動作。データ・モデル外部送信ゼロ
操作ボタン押下時に Pyodide を起動

Compressor Shop Test · v5.1

コンプレッサ試運転バルブ操作支援

物理事前訓練 × 残差GP × AE自己教師あり × HH:MM:SS時刻 × 列マッピング × PTC10レポート

v5.1 全機能(F1〜F17 + 物理/AE)
データ: HH:MM:SS時刻 / CP932自動判定 / 列マッピング / 欠損補間 / 時間範囲整合 / サニティチェック / モデル: 物理ON/OFFトグル / 残差学習 / AE事前学習 / N可変バルブ / RPM任意 / 複数吸込 / 分析: LOO-CV / 感度分析 / バルブ信頼区間 / カバレッジ警告 / 操作シーケンス計画 / 出力: 性能マップ / PTC10レポート / CSV出力 / モデル保存 (IndexedDB) / 監査ログ
⚠️ サンプルデータ (DUMMY・架空)
Phase A · 事前モデル訓練 — 過去の試運転①データを使って GP+物理モデルを訓練。試運転当日の前に経験者が一度だけ実行。
STEP 1

データ取込・列マッピング・整合性チェック

⚙ 操作対象(吸込・循環側のみ) 吐出側は含まない
? ? ? ? ?
🧬 TimesFM 埋め込みを GP 特徴量として使う? 取込待ち ?
?
データ未取込
STEP 2

物理モデル設定(オプション)

📐 物理パラメータ(既定値・スライダーで微調整)
STEP 3

AE 事前学習(dense センサー全活用)

?
STEP 4

時間窓集約 + GP(残差/直接)訓練 + LOO-CV

?
STEP 5

設計サージ線

# サージ流量 サージ圧力
STEP 6

性能評価点テーブル(PTC10/API617)

STEP 7

バルブ操作推奨(逆推定 + 感度 + シーケンス)

?
STEP 8

可視化(性能マップ + 物理曲線 + GP曲面 + 時系列)

★訓練データ ●評価点(緑/黄/赤) ■推奨u→GP予測 ◆物理真値 ↗操作シーケンス ━サージ線
STEP 9

レポート出力(PTC10適合性・CSV)

? ? ?
STEP 10

モデル管理(保存・読込)

STEP 11

試運転② 実機データ取込 → 予実差ビュー

?
試運転②終了後、実機で実測した (eval_name, rpm, u1, u2, u3, y1_actual, y2_actual, y3_actual) の CSV をここに投入してください。 STEP 7 で推定したバルブ開度・GP 予測 y との誤差を散布図と残差プロットで表示し、バイアス・RMSE を算出します。
📖 仕様ガイド(クリックで開閉)
このツールは何をする?

遠心圧縮機の shop test(性能試運転) で、設計図書が指定する 1〜10 個の 性能評価点(流量・圧力・温度の組)を達成するために、吸込・循環側のバルブをどう操作すべきかを AI が提案します。

ベテランの過去操作記録(操作メモCSV)と当日のセンサー記録(ストリームCSV)から学習し、目標の評価点を入力すると、バルブ開度を逆算します。

吐出側は絶対に操作対象に含めません(測定領域への操作は性能試験の不正に該当)。

入力データの仕様

① 操作メモCSV(10〜20行想定)

  • 時刻: HH:MM:SS(例 8:06:55・前ゼロなし対応)
  • valve_*_pct: 各バルブ開度 0〜100(%)
  • rpm: 任意(速度を操作変数に含めるとき)

② センサーストリームCSV(1秒間隔・数千〜数万行)

  • 時刻: HH:MM:SS
  • 各種センサー(流量・圧力・温度・効率・振動など、列名は自由)

エンコーディング: UTF-8 / CP932 / Shift-JIS 自動判定

モデルの仕組み

順モデル u → y(GP・ガウス過程)

  • 少データ(10〜20点)の黄金律。予測に 不確実性 std も出力。
  • 各 y 次元ごとに独立した GP を訓練(カーネル: C × RBF(ARD) + WhiteKernel)。
  • 各操作の整定窓内 std を alpha として GP に渡し、計測ノイズを取り込む。

残差学習(物理モデル ON 時)

  • 物理モデル f_phys(u) が「だいたいの形」を提供
  • GP は y_real − f_phys(u)(残差)だけを学習
  • 予測時は f_phys(u_new) + GP_residual(u_new)
  • 物理が大幅に外れる場合は OFF で純データ駆動 GP に切替可能

AE事前学習

  • センサー全期間を 30秒セグメント(75%オーバーラップ)に分割
  • sklearn MLPRegressor(隠れ層 16→latent→16) で自己回帰訓練
  • 中間層から潜在ベクトル抽出 → 操作点の追加特徴量に
  • dense センサーの実質97%カバレッジを達成

逆推定 y* → u

  • scipy.optimize: differential_evolution(広域探索)+ L-BFGS-B(多重起動精緻化)
  • サージ線をペナルティ項として制約化
  • 上位3候補を提示(多解性を隠さない)
物理モデルの数式(v5.1 既定)

[1] バルブ → 流量

q = q_max × (Σ αᵢ·vᵢ − Σ γᵢ·vᵢvᵢ₊₁/100) / 100 × (RPM/RPM_design)

[2] 流量 → ヘッド(放物線特性)

Φ = q / Φ_norm   Ψ = a − b·Φ²   H = Ψ × H_norm × (RPM/RPM_design)²

[3] ヘッド → 温度(断熱圧縮)

T_out = T_in × (1 + H/P_atm)^((κ−1)/κ)

[4] サージ判定

q < surge_q × (RPM/RPM_design) なら不安定領域

各パラメータは STEP 2 のスライダーで微調整可能。実機の性能曲線データシートから読んだ値に合わせてください。

パラメータの起源(何が変わる/変わらん)

変わらん(ユニバーサル)

  • P_atm = 1.013 bar: 大気圧。屋内なので実質固定
  • κ = 1.4: 空気の比熱比。空気なら不変(ガス種が変われば変更)
  • 熱力学第一法則と放物線特性 Ψ = a − b·Φ² の式の形

変わる(機械・条件依存)

  • a, b, Φ_norm, H_norm: インペラ羽根角度・直径・周速度 → メーカー性能曲線データシート
  • surge_q: インペラ失速点 → メーカー曲線
  • T_in: 季節・空調・クーラー setpoint → 試験当日の計測
  • αᵢ, γᵢ: 試験ループのバルブ Cv・配管抵抗 → 設備設計図書
  • τ_flow, τ_press, τ_temp: 配管容積・熱容量 → 実測または推定
  • σ_*: センサー機種・型式 → 計器仕様書
精度評価の見方(LOO-CV)

Leave-One-Out 交差検証で「10〜20点しかないデータで本当に当たるか」を honest に評価します。

  • RMSE: 二乗平均平方根誤差(小さいほど良い、単位 y と同じ)
  • MAE: 平均絶対誤差
  • 相対誤差%: 目標値に対するズレの割合(5%以下なら良好)
  • 95%CI被覆率: 予測 ± 1.96·std の範囲に真値が入る割合(90%以上が望ましい・低いと GP の不確実性過小評価)

合成データでは高精度に出ますが、実データで再評価が必要。被覆率が低い場合は alpha や n_restarts の調整余地あり。

判定の見方(公差判定)

各評価点で (流量, 圧力, 温度) の 全3項目が許容公差内(既定 ±5%)にあるかで判定:

  • ✓ PASS(緑): 3項目すべて公差内 → 試運転で有効データと認められる
  • ⚠ WARN(黄): 1項目だけ公差超過 → 設計余裕や運転条件の見直し推奨
  • ✗ FAIL(赤): 2項目以上公差超過 → 達成困難、再設計または追加データ必要

サージ余裕(予測流量 ÷ サージ流量)が 1.10 未満なら境界に近く危険。

整合性ガードの意味(絶対遵守)

本ツールは「性能試験の信頼性」を AI が損なわないため、以下を絶対遵守します:

  • 操作対象 u に含めるのは 吸込側・循環ループのバルブのみ
  • 吐出側は測定領域であり操作不可
  • 吐出側を制御変数に含めることは性能試験の不正に該当(ASME PTC 10/API 617 の試験設定原則)

列マッピングで吐出側列を u に選ばないようご注意ください。

外部埋め込み連携(TimesFM 等・L2層)

本ツールは 3層設計(L1物理 + L2表現学習 + L3逆問題) の L2層 に外部埋め込みベクトルを取り込めます。代表的な連携対象は TimesFM 2.5-200m(2025-10-02 公開、200M params, context 1024)または旧 TimesFM 2.0-500m 等の時系列基盤モデル。

運用フロー(家PC + HP)

  1. 家PC(Python 3.11 venv)で TimesFM 等の事前学習済モデルをロード
  2. センサーストリームを入力 → 操作時刻ごとに 埋め込みベクトル(数百次元〜)を出力
  3. CSV形式で保存: 時刻 + emb_1, emb_2, ..., emb_K
  4. HP ツールの「🧬 外部埋め込みCSV」から取込
  5. 各操作時刻に最も近い行を最近傍マッチ → GP特徴量に追加

AEとの関係: 自前 AE と外部埋め込みは併用可能。両方ONなら両方が GP の特徴量に追加され、どちらが効くかを LOO-CV で比較できます。

なぜ家PCで処理する? TimesFM 2.5-200m でも 200M パラメータあり、ブラウザ Pyodide では実行不可。重い表現抽出はローカル PC(家・社内)、軽い GP 推論は HP(Pyodide)で分業する設計。
本ツールでの活用法: ローカルで TimesFM の各操作時刻周辺のセンサーストリームを context として与え、最終層の隠れ状態(16〜128 次元に PCA 圧縮)を embeddings_timesfm25.csv として書き出し、STEP 1 の「外部埋め込みCSV」に投入。GP 訓練時の特徴量として AE と併用 or 置換できます。

導入時の注意(社用PCで TimesFM を構築する場合の典型障害と回避法):

  • Anaconda 商用ライセンス 403 → conda を捨て uv + PyPI
  • SSL 傍受 (UnknownIssuer) → uv --system-certs で Windows 信頼ストア使用
  • python.org インストーラ 0x80070005 → uv python install で取得
  • TimesFM 2.0-500m モデル state_dict mismatch → num_layers=50 / use_positional_embedding=False / context_len=2048 を hparams に明示
制限事項・既知の課題
  • 10点という極小データはどんな手法でも超えられない構造的制約。手法では情報を増やせません。実機で「次にどの操作を試すべきか」をアクティブラーニング的に提案する機能で補います。
  • 物理モデル既定値はジェネリック。実機ごとにメーカー性能曲線データシートから読んだ値に置き換えてください。
  • PDF版レポート未対応: HTML出力をブラウザで「印刷 → PDFに保存」で代替できます。
  • 速度RPMモードはON可能ですが UI 最適化は v5.2 以降。
  • 複数吸込ポート(段別センサーグループ)対応は v5.2 以降。
ABOUT v5.1
対象規格
ASME PTC 10(性能試験)・API 617(特殊仕様)準拠。最低5評価点(サージ・ストンウォール・保証点・代替2点)の達成支援。
残差学習
物理モデル f_phys(u) を「だいたいの形」として使い、GP は「ズレ」だけを学習。少データ + 物理事前知識のハイブリッド。
AE 事前学習
dense センサーストリーム全体(数万秒)でオートエンコーダ訓練 → 潜在ベクトルを GP 特徴量に追加。dense データを 3% → 100% に近く活用。
PTC10レポート
各評価点の (流量, 圧力, 温度) 公差判定・サージ余裕・推奨バルブ操作・LOO-CV 精度を HTML 1枚にまとめ。試運転記録として保管可能。
← AI Tools 一覧へ