石油精製において、重要な最適化手法の一つは、低頻度のサンプリングで品質変数を継続的にオンライン制御することです。そのためには、オンラインプロセス条件に基づいた品質変数の経験的予測モデルが必要です。このモデルは推論変数として使用され、連続制御アルゴリズムで利用できます。
強適合統計を持つモデルであっても、オンライン展開時に品質変数を正確に予測できない落とし穴がいくつかあります。モデルの不具合の原因の多くは、異常なプロセス条件や入力信号の不具合など、エンジニアの制御外にあります。プロセスの外部要因の影響を最小限に抑える予測モデルを構築することは可能ですが、多くの場合、モデルの精度が低下する可能性があります。したがって、精度と信頼性のバランスをとった予測モデルを構築することは、エンジニアにとっての課題です。
本稿では、JMPを用いてオンラインプロセス制御に適した予測モデルを構築するモデル開発プロセスのいくつかのステップについて考察します。カスタムアドインを使用することで、生のプロセスデータをプロセス変動をフィルタリングする形式で集約することが可能です。集約されたデータは、「分布」や「外れ値スクリーニング」などのツールを用いてスクリーニングされ、外れ値や動作範囲がチェックされます。モデル入力は列の式を用いて変換され、プロセス変動をさらに低減します。最後に、「モデルの当てはめ」における一般化回帰を用いてモデルを構築し、回帰アルゴリズムを比較することで入力を最小化し、信頼性を高めます。その結果、プロセス/計装機器の変動に対してロバスト性を維持しながら、品質制約に合わせてプロセスを継続的に最適化するのに十分な精度を備えたモデルが完成します。
こんにちは、アンドリュー・ウィーバーです。エクソンモービルの制御アプリケーションエンジニアです。本日は、JMPを用いてオンライン最適化制御のための予測モデルを構築する方法について解説します。当社の化学・精製ユニットでは、高度なプロセスコントローラーを用いてユニットをリアルタイムで制御しています。これは、プロセスユニットの品質を制限内に維持するとともに、製品の無駄を削減することで製品の最適化を推進するためです。
これらの高度なコントローラーは、センサーデータからのフィードバックに基づいて、リアルタイム測定によってプロセスに瞬時に反応します。これらの制御モデルを構築する際の重要な課題の一つは、多くの品質変数が実際にはラボサンプルから取得されており、連続的な測定値が得られていないことです。ここに示した例では、2時間ごとにラボの測定値を取得していますが、下のグラフに示すように、サンプルを採取する前にプロセスの変化が発生する可能性があります。そして、コントローラーは、そのプロセスの変化が起こっていることを認識するための情報を必要とします。
この問題を解決するには、プロセス内の他のセンサーを用いて予測推論モデルを構築し、オンラインコントローラーに品質変数へのプロセスシフトがいつ発生するかに関する情報を提供することで対応します。これにより、制御変更の影響を確認するためにラボの結果を待つことなく、モデルはリアルタイムで調整を行うことができます。
このモデルの構築は、時に難しい戦略となる可能性があり、エンジニアリング分野の知識と統計モデリング手法を慎重に組み合わせる必要があります。本日は、JMPでこれらのモデルを構築する方法と、オンラインプロセス制御のモデル構築に伴う特有の課題について解説します。本日は、オンラインプロセス制御において推論モデルが使用される可能性のあるプロセスを、簡略化した例でご紹介します。
これはプロパンとブタンの混合ガスを2つの成分に分離する蒸留塔です。塔頂からは主にプロパンが沸騰して塔内を上昇し、塔底からは主にブタンが凝縮して塔内を流れます。ここで測定したい品質変数は、実験室サンプルから採取した塔頂部におけるプロパン濃度です。
モデル化を始める前に、プロセスの物理的特性をいくつか理解することが重要です。これは、モデル化の選択に影響を与えるからです。例えば、塔に及ぼす温度の影響は、ブタンとプロパンの混合物を分離する蒸留効果にとって非常に重要です。塔内の温度が上昇すると、より重い成分(この場合はブタン)が塔内で沸騰し、測定対象のプロパンガスを汚染することが予想されます。
これは、塔頂留出液中のプロパン濃度が低下することを意味します。これにより、予測モデルで観測される温度の影響は、塔頂留出液中のプロパン濃度に対して負の符号を持つべきであることをモデルに伝えることができます。さらに、圧力データも利用可能であり、圧力は両成分の沸点を変化させることで蒸留にも影響を与えます。これは、モデル化を開始する際に考慮することが重要になります。
最後に、ユニットの流量測定についてお話します。流量は複数測定されており、後ほど説明しますが、流量はプロパン濃度およびオーバーヘッドと強い相関関係にあります。特に、原料流量、還流流量、オーバーヘッド製品流量は、それぞれフロー1、2、3です。しかし、これらの流量測定値をモデルにそのまま使用すると、システム内の蓄積やシステムダイナミクスを考慮していないため、将来的にいくつかの問題が発生する可能性があります。これらの流量測定値を使用するには、現在表示されている示量変数から示量変数に変更する必要があります。その方法については後ほど説明します。
システムを最初から徹底的に調査することで得られる重要なポイントは、モデル構築プロセスを開始する前に、各入力の物理的な意味を理解しているということです。そのため、モデルをどのように構築したいかという明確な指針が得られます。これにより、モデルはデータに見られる統計的な相関関係だけでなく、実際のプロセス挙動を反映したものになります。最終的に、これらの洞察は、入力データの取得方法、JMPに取り込む入力データの種類、それらのスクリーニング方法、変換する変数、そして最終的に最終的なモデルにどのような結果をもたらすかを決定します。
モデル構築に必要な手順を理解するために、モデル構築ワークフロー全体を最初から最後まで簡単に見ていきましょう。その後、JMPを開いて、いくつかのステップを詳しく見ていきます。最初のステップは、推論候補を選択することです。これは通常、既に定期的なラボサンプリングで大量のデータが取得されており、管理対象となる品質限界が既に定義されている品質変数です。今回の場合、これは前のスライドで説明したプロパン濃度、つまりラボのオーバーヘッドデータです。
次に、プロセスのエンジニアリング分析を開始します。前のスライドで分析を開始しましたが、ご自身のデータを確認する際にも、他に考慮すべき点がいくつかあります。まず、供給品質の変化など、測定されていない外乱要因を評価し、それらが最終モデルにどのような影響を与えるかを検討します。また、モデルがどのような動作条件下で動作することが想定されるかを考慮する必要があります。多様な動作条件下で動作している場合、モデルを効果的に動作させるには、ユニットが稼働している様々な条件のデータをすべて取得する必要があります。この時点で、モデリングを開始するのに十分なデータがあるか、それとも実際に取得する必要があるデータを特定するために専用のプラントテストを実行する必要があるかを検討します。
次に、入力変数の選択を行います。これは前のスライドで行ったことです。モデルの潜在的な入力を一つ一つ確認し、推論された変数に及ぼす物理的な影響について検討し始めました。モデルが選択されたら、いよいよデータ収集です。私たちのプロセスエンジニアリングでは、通常、データを保存するプロセスヒストリアンからデータを取得します。これにより、プロセス上の各センサーの分単位のデータが得られます。広範囲に適用可能なモデルの場合、ラボのサンプリング頻度に応じて、6~18か月分のリアルタイムデータを収集するのが適切です。これにより、さまざまな動作条件に適用可能なモデルを作成するのに十分なデータが得られます。
次に、データのクリーニングと前処理を行います。収集するデータは1分間隔で、すべてのセンサーから取得されます。そのため、実行するラボサンプルごとに大量のデータが得られます。各ラボサンプルについて、これらのデータを明確なXYペアにフォーマットする必要があります。これは後ほどアドインを使用して行います。また、取得したデータに疑わしい点がないか確認するために、外れ値スクリーニングの検討も開始する必要があります。
重要なのは、純粋に統計的な検定だけでこれを行うべきではないということです。外れ値はプロセスにおける物理的な影響であり、除去する必要があるからです。例えば、ユニットが稼働していないとき、深刻な混乱が生じているとき、あるいはセンサーデータに欠陥があると判断されたときなどは、データを除外する必要があります。データの選別が完了したら、モデル自体の構築を開始できます。モデル構築を始めたばかりの人が陥りがちな落とし穴は、収集したすべての入力を最小二乗アルゴリズムに投入してモデルを生成してしまうことです。しかし、これはいくつかの理由からうまくいきません。
まず第一に、モデルがあらゆる入力に対して物理的に妥当な効果を持つようにする必要があります。複数の効果に対して回帰アルゴリズムを実行すると、統計的には良好、あるいは適合度が高いにもかかわらず、実際には存在しないアーティファクトがモデルに組み込まれる可能性が非常に高くなります。エンジニアは、モデルに入力される各入力の符号と大きさを確認し、エンジニアリング上の期待値と一致していることを確認する必要があります。
2 つ目の、より微妙な理由は、これらのモデルをオンライン制御する場合、これらのモデルが堅牢で信頼できることを確認する必要があることです。モデルに入力するすべての入力が単一障害点となります。入力に接続されている機器が故障した場合です。そのため、機器の故障の脆弱性を減らすために、入力の数を最小限に抑えるようにしています。モデルが構築されたら、テストを開始します。最初はオフラインで予測結果を新しいラボの結果と比較し、次にオンラインでオンライン コントローラーに組み込みます。これは非常に循環的なプロセスです。モデルは非常に正確に予測できる場合でも、閉ループ制御に配置すると失敗することがよくあります。エンジニアは、予測器としても制御システムとしても機能するモデルが見つかるまで、新しいモデルの構築を何度も繰り返す必要があります。
推論モデルの構築手順はこれで完了です。JMPを開いて、いくつかの手順をもう少し詳しく見ていきましょう。最初のデータテーブルは、生データプールがどのように見えるかを示しています。各センサーとラボ測定値の1分ごとのデータを取得しており、このデータは8か月間にわたります。ラボ変数の時系列プロットのグラフビューを開くと、ラボのデータは不規則な間隔で取得されており、数日おきに取得されているように見えますが、短期間に複数のラボサンプルを採取している時期もあります。
前述の通り、データの形式は推論モデルの構築にはあまり役立ちません。なぜなら、それぞれの検査結果と入力データには明確なXY関係が必要だからです。カスタムビルトインのアドインを使用して、XY関係を自動的に構築する簡略化されたデータテーブルを作成します。検査サンプルと日付を選択してデータを集計し、次に、データに適用する集計間隔の種類を検討します。
このアドインはデータテーブルを参照します。検査値が変化したタイミングを検出し、検査値の変化を中心に各入力値を平均化します。これは、グローバルレベルまたは個々の入力値ごとにカスタマイズできます。さらに、この平均化は、検査サンプルを採取した時点からX分前まで遡る「ルックバック」ベース、または検査サンプルを採取した時点から、その前後のデータセグメントを抽出して「センタード」ベースで行うことができます。
最終的には、ラボのサンプルタイミング記録をどれだけ信頼するか、そしてプロセスの変動性がどの程度かによって決まります。この例では、すべての変数に対してグローバル間隔を60分に設定します。これにより、良好な集計結果が得られます。実行には数分かかります。それでは結果を見てみましょう。このデータテーブルでは、すべての入力値に対して明確なXデータを持つ、ラボ結果ごとに明確な行が作成されています。
このデータを使って、スクリーニング、前処理、そして最終的にはモデリングを始めることができます。まずは分布を見て、データに含まれるべき効果で除去すべきものがあるかどうかを確認します。外れ値を除去するのは、統計的検定のためだけでなく、除去するすべてのデータポイントが、その背後にあるプロセスの物理的な意味を持つようにするためであることを思い出してください。例えば、左側のラボ自体を見ると、分布の端に2、3の裾野効果が見られますが、それが実際のデータポイントなのか、あるいは単に通常の処理環境における低いポイントなのかを判断するには時期尚早です。
しかし、右側のフロー1をよく見ると、分布には低い供給流量の長い裾野があり、中にはマイナスの流量もあることがわかります。これはユニットに流入する供給流量なので、ユニットが正常に動作していると予想される正確な供給流量を把握することが重要です。このユニットに流入する供給流量の正常な動作環境における閾値を定義する必要があります。この例では、その閾値を10に設定します。これより低い場合は、ユニットが正常な状態で動作していないか、ユニットがシャットダウンしている状態です。10より前のデータをすべて選択し、データセットから除外します。
残りの変数をスクロールしていくと、唯一目立つのはフロー3、つまり塔に戻ってくる還流フローです。このフローには非常に高い流量が流入しており、他の操作ウィンドウと全く一致していないため、深刻なプロセス異常を示している可能性があります。そのため、このデータセットも非表示にして除外します。
データの選別が完了したので、関係性をいくつか確認し、構築していきます。入力データと最終モデルの関係性を構築していきます。これらのXYチャートは適合度の高い順に並べられており、蒸留塔の上部にある温度4と温度2が、プロパン実験室と最も適合度が高いことがわかります。
これは、温度が蒸留に重要な影響を与えることが分かっているため、エンジニアリング上の期待と一致しています。同様に、流量と、流量の一つである製品流量とオーバーヘッド圧力との間に強い相関関係が見られます。JMPを使用するのではなく、温度と圧力と蒸留の関係を推測してみましょう。圧力と温度を計算変数として組み合わせることで、モデル構築により適した、既知の気液平衡の概念をモデルに組み込むことができます。
これは、別のカスタムビルトインアドインを使用して圧力補正温度と呼ばれるものを作成することで実現できます。これは、温度を取得し、圧力効果に基づいて温度を修正します。基準圧力に基づいています。これが、生の温度だけでなく、最終的なモデルを使用する方法です。同様に、前述のように、このフローは示量変数であるため、単独で使用することはできません。まず示量変数に変換する必要があります。そのためには、新しい列を作成し、製品と飼料の比率を作成します。これら2つのフローの比率を組み合わせることで、これらのフローは示量変数から示量変数に変換され、データ内の品質の変化をより簡単にモデル化できます。つまり、これはフロー2をフロー1で割ったものになります。
モデリングを始める前の最後のステップは、検証列を作成することです。これは、層別列をラップすることで簡単に作成できます。これで本格的にモデリングを開始できます。最初に紹介する手法は、モデルへの入力値が明確に決まっていない場合に用いるものです。これはキッチンシンクアプローチと呼んでいます。つまり、ラボデータをYとして入力し、検証列を追加し、すべての行入力をXとして入力し、一般化回帰プラットフォームで実行します。
変数の組み合わせを一つ一つ検討していく中で、最適な変数のサブセットを特定するために、最適サブセット推定法を検討していきます。ご覧の通り、モデルの精度に大きな影響を与えることなく変数の数を減らすことができるプラトー(安定期)があります。前述の通り、計測機器の故障に備えてセンサーへの依存度を下げるため、最終モデルでは変数の数を可能な限り減らしたいと考えています。
また、ここで温度2と圧力1を入力として選択していることに気づきます。これらは先ほど強い相関関係にあることが分かりました。そして、これらをモデルに含めるべき十分な工学的理由があります。プロセスがあまり理解されていない場合は、これは良い出発点となります。しかし、今回のケースでは、工学分析に基づいて、モデルにどのような入力値を入れたいか明確に分かっています。そこで、代わりに実験室データを再び入力し、Xは検証列を使用して計算された変数になります。
今回は標準的な最小二乗アルゴリズムを実行します。これにより、コントローラーで使用する最終モデルが得られます。R二乗値が少し物足りないことにお気づきでしょう。しかし、これは大規模なプロセスシステムでモデルを実行する場合にはよくあることです。なぜなら、私たちが取得しようとしている計測機器のダイナミクスには大きなばらつきがあるからです。非常に高精度なモデルを得ることは、時に非常に困難です。モデルが計測機器の故障の影響を受けやすくなるため、精度をさらに高めるためにモデルに入力を増やすことは避けるべきです。
オンライン制御において最後に確認したいのは、入力が互いに独立しており、共線性がないことを確認することです。これは、VIF列を見て、これらの入力のVIFスコアを確認することで確認できます。VIFスコアが高すぎる場合、モデルを制御アルゴリズムに組み込んだ際に失敗する可能性がほぼ確実です。しかし、これら2つの入力のVIFは閾値として十分に低いため、このモデルがこの品質変数の適切な予測値となることを確信でき、制御ソフトウェアでモデリングを開始できるはずです。
さて、プレゼンテーションに戻りましょう。これで、オンライン制御で使用できる推論モデルができました。このモデルは、高度なコントローラへの入力として使用されます。コントローラがユニットを操作する際に、この入力がコントローラにフィードバックを与えます。コントローラは、コントローラが品質変数にどのように影響を与えているかをリアルタイムで確認します。
繰り返しになりますが、このリアルタイムフィードバックにより、製品品質のばらつきを最小限に抑えながらユニットを最適化し、製品品質を常に許容範囲内に維持することができます。ご想像のとおり、これは循環的なプロセスであり、最初に適切に機能するモデルを作成するためのものですが、プロセス条件の変化や装置の老朽化に伴い、モデルは最終的に劣化し、新しいモデルを最初から作成し直す必要が生じます。
結論として、これらの推論モデルは、継続的な制御ソフトウェアと、不定期に採取されるラボサンプルとの間のギャップを埋めるものです。これは、統計モデルを構築する際のドメイン知識の重要性を浮き彫りにしています。ご記憶の通り、JMPを開く前に、モデルをオンラインにしたときにどのように動作するかを正確に把握するために、エンジニアリング分析について多くの時間を費やしました。化学工学やプロセス工学以外の分野でも、この原則は同じです。エンジニアリング分析がモデルを導くべきであり、その逆ではありません。これらの手法を用いることで、分野を問わず、限られたデータから実用的な洞察へと変換することができます。ご視聴ありがとうございました。