Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20250604SPSS春04_2_三井化学_新村様資料

 20250604SPSS春04_2_三井化学_新村様資料

2025-06-04に開催されたSPSS 秋のユーザーイベントのご講演
講演④-2三井化学 新村 智子 様
SPSSとPIデータの連携 CADSを使った異常検知モデルの現場利用
のスライド資料(公開版)です

Avatar for JPSPSS

JPSPSS

June 06, 2025
Tweet

More Decks by JPSPSS

Other Decks in Technology

Transcript

  1. 0 10 20 30 40 温度 Timestamp バッチプロセス_センサーA_温度 0 10

    20 30 40 温度 Timestamp 連続プロセス_センサーA_温度 設備の異常検知_バッチプロセスと連続プロセスのデータ例 受入 冷却 昇温 移液 受入 連続プロセスは原料が絶えず投入さ れる生産工程.各ベッセルは一定の 管理値範囲内で運転されます。 (例:製油所など大規模プラント) バッチプロセスは原料が一括投入 される多段的な生産工程.工程ご とにベッセル間で原料が移動した り、昇温、冷却等の操作等が入る ため、データが大きく変動します。 (例:製品の種類が多い小規模プ ラント) 反応 移液 冷却 昇温 移液 受入 反応 冷却 昇温 反応 反応 4 バッチプロセスはセンサーデータの加工や特徴量の作成が難しい
  2. 異常発生機器 AIR PI SystemTM (センサーデータ) センサーデータは収集負荷が高い モデルをタイムリーに利用できな い 今までの異常検知 製造スタッフ

    センサーデータの微細変動を総 合的に判断して異常を検知 ベテラン 装置運転員 ②確認 ③指示 ① 変 動 検 知 5
  3. 異常発生機器 AIR CADS導入後の異常検知 装置運転員 Db2 (分析に必要なセンサー データの蓄積) ②速やかな指示 製造スタッフ SPSSがPI

    SystemTMと連携 することで開発環境が改善 モデル自動実行により リアルタイム監視が容易に PI SystemTM (センサーデータ) PI Vision ①異常の 早期自動 検知 SPSS CADS スコアリング結果を PIVISONに書込み、 可視化 6
  4. 目的変数 運転員異常検知日 説明変数候補 24変数 制約事項 解析対象機器の計装計器なし. 単独では、解析不可. バッチプロセス工程、機器は同時稼働しない 使用したセンサー データ

    モデル評価用 2024年5月~2024年10月 レコード数:187,987件 再現性重視で評価 滞留時間 各工程毎の稼働時間やタイミングを考慮 異常検知モデル作成_ PI SystemTM収集データ CADS上で収集したセンサーデータを利用してモデル開発を実施. 7
  5. モデル名 データ区分 適合率 再現率 モデル-1 テスト 0.98 0.67 モデル-2 テスト

    0.99 0.68 モデル-3 テスト 0.97 0.73 最終モデル テスト 0.96 0.84 運転員異常検知日および対象機器稼働条件で再現率を重視したモデル改善を行った. 再現率が最も高いモデルを採用した. 運用上、適合率は下がっているが誤検知が発生した場合は一旦確認作業をするため 「異常を見逃さない」ことを重視. 異常検知モデル精度比較 8
  6. import modeler.api stream = modeler.script.stream() # パラメータ「実行モード」の値を取得 #mode=1は異常検知をします.mode=0は通常のスコアリングを実施します. mode =

    stream.getParameter("mode") # パラメータ「実行モード」の値が「1」の場合のみ劣化検知を実行 if mode == 1: # 参照するテーブルノードを実行 tablenode = stream.findByID("id8L3XHZYLWD7") # 実行結果を取得 results = [] tablenode.run(results) tableoutput = results[0] # テーブル出力の内容を読み出し tablecontent = tableoutput.getContentModel("table") # テーブル内の値を読み出し tablecontent = tableoutput.getContentModel("table") metrics = tablecontent.getValueAt(0, 1)#1行2列目を参照する print(metrics) #メトリクスを基に劣化を判断 #フラグ1以外のヌル値が来た場合も通知対象となる不具合修正済 if metrics == 1: modeler.script.exit(100) else: modeler.script.exit(0) # パラメータ「実行モード」の値が0(1以外)の場合は通常のスコアリング else : # 定期スコアリング「W-XXX-XXX-XXX.csv」テーブルノードを実行 tablenode = stream.findByID("id75D1Z7DXSVET") # 実行結果を取得 results1 = [] tablenode.run(results1) モデル開発からPI SystemTM書込み定期実行処理_スクリプト設定 スコアリングジョブと 異常検知ジョブを同一スト リームで実行する設定 異常検知のメトリクス設定 一つのストリームファイルでスコ アリングと異常検知を実施するた めにスクリプトを設定 10
  7. 17