(57)【要約】製造システム（１０）を監視する方法であって、製造システム（１０）に関する複数の観測状態を定義するステップを有する。観測状態に対する状態推定値が生成される。状態推定値のそれぞれに対して、不確定性の値が生成される。製造システム（１０）のなかの実体に関する測定データが受信される。測定データおよび状態推定値に関する不確定性の値に基づき状態推定値が更新される。製造システム（１０）を監視するためのシステムは、製造システム（１０）に関する複数の観測状態を定義し、観測状態に対する状態推定値を生成し、状態推定値のそれぞれに対して、不確定性の値を生成し、製造システム（１０）のなかの実体に関する測定データを受信し、測定データおよび状態推定値に関する不確定性の値に基づき状態推定値を更新するように構成されたコントローラ（１３０）を備える。不確定性の値は、スケジューリングの決定に影響を与えるために用いることができる。
2005502947.tif 000002
【特許請求の範囲】
【請求項１】
製造システム（１０）を監視する方法であって、
前記製造システム（１０）に関する複数の観測状態を定義するステップと、
前記観測状態に対する状態推定値を生成するステップと、
前記状態推定値のそれぞれに対して、不確定性の値を生成するステップと、
前記製造システム（１０）のなかの実体に関する測定データを受信するステップと、
前記測定データおよび前記状態推定値に関する不確定性の値に基づき、前記状態推定値を更新するステップとを含む方法。
【請求項２】
前記状態推定値を含む状態推定ベクトルを生成するステップと、
前記状態推定ベクトルに関連し、前記不確定性の値を定義する対角項と、前記状態間の相互依存性の関係を定義する非対角項とを含む共分散行列を生成するステップとをさらに含む、請求項１記載の方法。
【請求項３】
前記製造システムにおいて加工ステップを実行するステップと、
前記加工ステップおよびそれに関係する不確定性の値に基づいて各状態推定値を更新するステップとをさらに含む、請求項１記載の方法。
【請求項４】
前記製造システムは複数の製品を加工するように構成された複数のツール（３０−８０）を含み、前記複数の観測状態を定義するステップは、ツールの状態および製品の状態のうちの少なくとも一つを定義するステップをさらに含む、請求項１記載の方法。
【請求項５】
製造システム（１０）に関する追加の観測状態を特定するステップと、
前記追加の観測状態についての初期状態推定を生成するステップと、
前記状態推定ベクトルと前記初期状態推定とを組み合わせるステップと、
前記追加の観測状態についての初期共分散推定を生成するステップと、
前記初期共分散推定と前記共分散行列とを組み合わせるステップとをさらに含む、請求項２記載の方法。
【請求項６】
第１時間において、初期状態推定値の第１組を特定するステップと、
前記第１時間の後に発生した、前記製造システム（１０）に関する、イベントの待ち行列を保持するステップと、
第１測定イベントを受信するステップと、
前記第１測定イベントに関する、前記プロセスイベントの一つを特定するステップと、
前記特定されたプロセスイベントの後に発生したイベントを選択するステップと、
前記第１測定イベントと前記選択されたイベントの組とに基づいて、前記初期状態推定値を繰り返し更新するステップとをさらに含む、請求項１記載の方法。
【請求項７】
前記測定データに基づいて、第１出力マッピングを生成するステップと、
前記第１出力マッピング、前記測定データおよび前記関係する不確定性の値に基づいて、前記状態推定値を更新するステップと、
前記第１加工イベントの後に発生した、第２加工イベントに関する第２測定値を受信するステップと、
前記第２測定値に基づいて、第２出力マッピングを生成するステップと、
前記第２出力マッピング、第２測定値および前記関係する不確定性の値に基づいて、前記状態推定値を更新するステップとをさらに含む、請求項１記載の方法。
【請求項８】
前記製造システムにおいて活動を実行するための複数のスケジュール候補を特定するステップと、
前記スケジュール候補に基づいて、前記不確定性の値に対する変更を予測するステップと、
前記不確定性の値に対する予測された変更に基づいて、前記スケジュール候補の一つを選択するステップとをさらに含む、請求項１記載の方法。
【請求項９】
前記複数のスケジュール候補を生成するステップは、
複数の加工活動をスケジューリングするステップと、
前記加工活動の一部に関する、複数の測定活動をスケジューリングするステップであって、各スケジュール候補のそれぞれは前記加工活動の異なった部分を持つところのステップとをさらに含む、請求項８記載の方法。
【請求項１０】
前記複数のスケジュール候補を生成するステップは、
複数の加工活動をスケジューリングするステップであって、各スケジュール候補のそれぞれは前記加工活動についての異なった順序を持つところのステップをさらに含む、請求項８記載の方法。
【請求項１１】
前記複数のスケジュール候補を生成するステップは、
複数の加工活動を特定するステップと、
前記加工活動を実行することができる複数のプロセスツールを特定するステップと、
前記加工活動を実行するために選択された、それぞれ異なったプロセスツールを持つスケジュール候補を生成するステップとをさらに含む、請求項８記載の方法。
【請求項１２】
前記不確定性の値に対する前記予測された変更に基づいて、前記スケジュール候補のそれぞれに関する、不確定性の測定基準を生成するステップと、
最も小さい不確定性の測定基準を持つスケジュール候補を選択するステップとをさらに有する、請求項８記載の方法。
【請求項１３】
各スケジュール候補は複数の加工活動を含み、前記不確定性の値に対する予測された変更に基づいて、前記スケジュール候補の一つを選択するステップはさらに、
前記優先加工活動を実行しながら、最も小さい不確定性を持つスケジュール候補の一つを選択するステップをさらに含む、請求項８記載の方法。
【請求項１４】
製造システム（１０）を監視するためのシステムであって、
製造システム（１０）に関する複数の観測状態を定義し、前記観測状態に対する状態推定値を生成し、前記状態推定値のそれぞれに対して、不確定性の値を生成し、前記製造システム（１０）のなかの実体に関する測定データを受信し、前記測定データおよび前記状態推定値に関する前記不確定性の値に基づき状態推定値を更新するように構成されたコントローラ（１３０）を備えるシステム。
【請求項１５】
前記コントローラ（１３０）はさらに、
前記状態推定値を含む状態推定ベクトル、および
前記状態推定ベクトルに関連し、前記不確定性の値を定義する対角項と、前記状態間の相互依存性の関係を定義する非対角項とを含む共分散行列を生成するように構成されている、請求項１４記載のシステム。
【請求項１６】
前記製造システム（１０）において活動を実行するための複数のスケジュール候補を特定し、
前記スケジュール候補に基づいて、前記不確定性の値に対する変更を予測し、
前記不確定性の値に対する予測された変更に基づいて、前記スケジュール候補の一つを選択するように構成されたスケジューリングコントローラ（３２０）をさらに備える、請求項１４記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に半導体装置の製造に関し、さらに詳細には生産システムのための状態推定およびスケジューリングの技術に関する。
【背景技術】
【０００２】
半導体の製造においては、同じ装置において、様々なプロセス条件を用いることで、たくさんの違う製品を製造することは一般的な光景である。プロセス条件の性質および材料が高価であることから、プロセスの最中に、主要なプロセス変数を測定することは非常に困難であるか、またはしばしばそれは不可能である。製品ウェハは、レシピを用いて、処理ツール上をバッチ単位で流れる。レシピは、ツールを動作させるのに必要なパラメータ、例えば圧力、温度、処理時間などを特定するものである。処理工程が終了してから測定を行って、バッチがそれらの規格を満たしているかどうかを決定する。ラン・トゥー・ラン（Run-to-run）制御手法は、各ランの終了時に得られる測定データを用いて、続くバッチについてよりよいレシピの設定を決定する。しかしながら、変動をもたらす源が独立していくつもあってそれによってしばしば測定が混乱することから、この仕事は困難である。
【０００３】
半導体装置の製造は、高価な製造装置と、バッチ処理の環境において微細な構造を作るのに用いられる未加工の材料とによって特徴付けられる。このような環境にあっては、ウェハのバッチは、動作するパーツを作るという最終的な目標のもと、一連の処理単位の対象となる。作業の間を通じて、極端な処理条件や、製造される限界寸法の構造は、繰り返し発生する問題である。これらの条件は、究極的には、重要な品質上の変数を、その場で測定することが困難である（そして多くの場合、不可能である）ことを意味している。必要な変数は、通常、あるバッチが処理された後に測定される。残念ながら、処理の最初に戻って、処理を再度実行してうまく処理されなかったバッチを修正することは、通常不可能である。したがって、すべてのランが計画どおり行われるように、効率的なプロセス制御が必要となる。
【０００４】
半導体製造におけるRun-to-run制御はバッチ制御の一種であって、一つのバッチは、一番小さい単位で1ウェハ、大きな単位ではいくつかのウェハとすることができる。Run-to-runコントローラの標準出力はプロセスのレシピである。このレシピは処理ツールに組み込まれる「低レベル」のコントローラに対する設定ポイントを定義する。このようにして、Run-to-runコントローラは、温度、圧力、流量（フロー）および処理時間などの処理変数のための必要な値を定義することによって、ツールのコントローラを管理している。ツールのコントローラは、これらの変数を要求される値に維持するために必要な操作を行う。
典型的なRun-to-run制御の設定にはフィードバックループが含まれ、処理後に測定されたバッチの特性に基づいて、レシピのパラメータに対する補正が行われる。通常、Run-to-runコントローラの仕事は、各バッチがそのインラインの目標を達成できるようにすることである。インラインの目標とは、ウェハがその処理工程のうちの一部しか終了していない間に測定された測定値を指す。このインラインの目標は、製造ラインの終わりで動作する部品を得るためのガイドラインを提供するように設計されている。
【０００５】
ディスクリート部品の製造のためのRun-to-runコントローラは、いくつかの内在的な複雑な問題を持っている。工場のアウトプットが特定の製品を作るために互いに混ぜ合わされる可能性がある連続的な処理とは違って、製造される各部品が、正しく動作するためには、その品質または目標とする性能のすべてを満たさなければならない。結果として、積極的な制御原理を選択しなければならない。なぜならば、コントローラが目標に向かってアプローチしている間に、目標から外れたバッチがいくつも出てきてしまうことは製造上の制約から許されないからである。システムモデルによって正確な予測をすることができるとき、コントローラは非常に積極的になることができる。これは、コントローラの安定性が、実際のシステムのふるまいに対するモデルの適合具合に連動するからである。モデルに間違いがあるとき、およびその他の不確実性が存在する状況下で、コントローラがあまりに積極的であると、実際の性能は悪くなり、不安定になる可能性がある。この状況は、コントローラが、その入力の変化がプロセスに与える影響の度合いを推定することによって処理における判断を行っている、ことから生じるものである。入力の小さな変化による質的な効果はしばしばシステムの基礎となる物理的な観点から容易に理解され、予測される。一方で、大きな、より劇的な変化は、プロセスが対応できるよりも早く動力学を持ち込むことによって、処理をかく乱しうる。処理をよりよく理解することで、変化をより素早く、効果的にすることができる。
【０００６】
使用可能なもっとも積極的なコントローラは、プラント・インバース（plant inverse）、またはデッドビート・コントローラである。このコントローラは、すべての測定された入力外乱を直ちに排除するように動作し、各バッチに対する制御パラメータをそれらの目標に正確に設定しようとする。これらのパラメータは、所望の出力をプロセスモデルに代入して、直接入力について解くことによって決定できる。より控えめな制御動作は、入力変数の変化の速さに制限を設けることによって得られる。
【０００７】
プロセスのゲインおよび製造プロセスに重要なその他の変数は時間とともに変化するので、コントローラは、変化するプロセス条件に対応しなければならない。そのような適応型（adaptive）コントローラの基礎となるのは、システムの同定技術（system identification technique）である。システム同定技術は、同じ入力出力特性を持つモデルを決定し、可能であれば分析対象の物理的なシステムと同じ自然モデル構造を決定することを目標とする。実際の多くのアプリケーションでは、分析対象となるプロセスの正確なモデルフォームを得ることは現実的でない。従って、しばしば、オンラインのシステム同定は、パラメータ推定問題の形態をとる。この定式化においては、モデルの形態は予め定められ、モデルのパラメータはプロセスデータによって繰り返し更新される。プロセス条件の変更は、時間の経過における推定されたモデルのパラメータの変化として見ることができる。
【０００８】
マイクロエレクトロニクスの製造においては、統計的プロセス制御（SPC）技術をプロセスの出力に適用するのは実務上一般的である。SPCは、また、自動制御下のシステムの出力にも適用可能である。これらの出力は、プロセスの制御された出力だけでなく、実際のプロセスのコントローラによって使用される予測からの測定された偏差をも含む。一般的に、SPC技術を用いるときには、対象となる変数に制限を設定し、それが制限を超えたときにプロセスを調査する。その名前が暗示しているように、統計的なプロセス制御は、対象となるプロセス変数を分布として扱うことに深く依拠している。いくつかの異なった統計を監視して、プロセスが安定でありつづけることを保障する。これらの技術は、あるプロセスが制御下で実行されているか、そうでないかを示すために設計されているが、プロセスが制御不能のときにどうすればよいかの決断は技術者に委ねられている。
【０００９】
これらのSPC技術は、プロセスをその制御限界内において継続させているという観点から、自動化コントローラがいかにうまくやっているかを表すことができる。制限を越えてしまったとき、プロセスまたは自動化コントローラを調整しなければならない。しかしながら、実際のプロセスおよびそれらに対する外乱は時間とともに変化し、対象となるすべてのプロセス変数が変化しないという保障はない。さらに、制御のために重要なすべての測定値を所望の間隔（周波数）で得ることができないシステムを数多くある。これらのシステムでは、はずれ値でありうるいくつかの測定値は、それらが測定されないという理由から、特定されないこともありうる。このことから、プロセスの変数に対する静的な制限というのは、常に有効なものではない。理想的な解決策は、プロセスの変化を検出して、それらに対処するためにそれ自身を調整する自動コントローラである。そのようなコントローラは、品質の高い出力における制御の限界が破られる前に、プロセスを調整することができる。このコントローラは、使用しているモデルが無効になるかもしれないことを認識していなければならず、それ故に、常に新しい測定データをプロセスの再モデル化のための機会として取り扱わなければならない。
【００１０】
不確かな環境下においても適切な性能を実現するために、制御システムはプロセスの変化に反応しなければならない。適応制御技術は制御手法の一種であって、コントローラが自動的にそのモデルパラメータを調整し、プロセス自体の観察された変化に対して対処するように調節する。この技術は、しばしばオンラインモデルパラメータ推定に依存し、コントローラの設定は、測定値から得られた現在のシステムモデルに合致するように継続的に調整される。適応制御はシステムの完全なモデルが複雑であるとき、または高次のものであるときに有用である。その理由は、制御式を、調整可能なパラメータを持つ、より簡単なモデルに基づくものとすることができるからである。これらのコントローラは、極配置技術および二次費用関数最小化を含む、様々な設計方法から実現できる。適応制御技術は、最適制御のような高度な制御思想を、分析対象となるシステムが非常に複雑で、あまりよくわかっていないような場合において用いることを可能にする。
【００１１】
操作入力と、定量的な性能目標とを持つシステムについては、最適制御理論を用いて最適な入力のセットを見つけることができる。最適制御の問題点は、システムモデルの制約およびその他のプロセス要求を満足させつつ、目的関数（objective function）を最小化する（または最大化する）入力のセットを決定することにある。数学的には、これは以下の式で表される。ここで、ｘはプロセスの状態を示し、ｕは操作入力を示し、ｔは時間を示し、ｆは目的関数であり、ｇｉは解法における一連の制限を指す。
【数１】
2005502947.tif 000003
【数２】
2005502947.tif 000004
【００１２】
ある種のシステムにおいては、制御の問題を解決するのにこれがよく役立つ。最適制御の一つの特長は、制御の目的が明確に定義されていることである。解法において目的関数を評価することにより、コントローラに期待される性能の定量的な判定ができる。適応技術とともに用いることによって、システムが時間とともに変化する場合でも、最適制御は制御目的を満たすことができる。最適制御関数は非常に一般的であって、単純なシステムを記述する場合に限定されない。制限方程式、ｇｉは通常微分方程式、またはプロセスを支配する差分方程式およびプロセスの入力および状態に課せられた動作制限を含む。ほとんどの実際のプロセスでは、上述の問題はしばしば、境界条件の組み合わさった、非線形の微分方程式の組（セット）に帰着する。
【００１３】
ある種の単純なプロセスモデルに対しては、最適な解法が得られている。そのような問題の一つは、線形（Ｌ）モデルおよび二次（Ｑ）目的関数に、モデル中の追加的なガウス（Ｇ）ノイズを持つものである。これはまた、ＬＱＧモデルと呼ばれる。これらのシステムに対しては、最適なコントローラを得ることができる。通常、実際のプロセスに対しては近似を行わなければならず、準最適（sub-optimal）なコントローラを用いなければならない。その理由は、システムの完全なモデルはしばしば知られておらず、または複雑に過ぎて最適コントローラに閉じた形の解法を与えることができないからである。一般的なアプローチは、問題をＬＱＧとして記述し、対応する線形のコントローラを使用することである。
【００１４】
適応制御で用いられる一つの方法に準最適アプローチがある。この場合、プロセスモデルは単純なモデル形式を持つものとして仮定されるが、モデルパラメータの値は不確定なものであるか、または時間によって変化する。この形式では、選択されたモデル形式に対する最適な制御法則は、未知のモデルパラメータに関しても、得ることができる。従って、システム同定技術を用いて、観察されるシステムの振る舞いをもっともよく説明するモデルパラメータの値を決定することができる。
【００１５】
このケースでは、コントローラは、現在の動作点付近では正確なモデルを持っている。プロセスが他の動作ポイントに動くにつれて、モデルパラメータは更新され、それによってコントローラは未だ効率的に動作する。主な制約は、対象となる現在領域において、実際のプロセスの入力−出力の振る舞いにモデルが合致していなければいけないということである。モデルが考慮していない外乱および力学の存在が、コントローラの安定性に影響を与える。コントローラは、モデルパラメータに対する変更を必要とするプロセス中の実際の変化と同様に、パラメータの推定エラーに対してもインテリジェントに対応できなければならない。適応コントローラはサンプリング毎にモデルパラメータの推定を繰り返し（リカーシブに）行い、パラメータ推定の新しい値を使って制御動作を計算する。
【００１６】
適応制御に対する異なったアプローチもある。上述の手順は間接的な方法であって、推定されたモデルパラメータの値に基づいて制御動作が計算されている。直接的な適応制御方法においては、制御法則そのもののパラメータ（例えば、ゲイン）が測定された誤差（エラー）から繰り返し計算される。最適適応コントローラは、目標としてプロセスの制御と同定を同時に行う公式化を用いることにより、双対制御問題（dual control problem）を解決しようとしている。十分に高度なコントローラは、よりよいパラメータ推定値を得るために、プロセスの特徴づけと、プロセスの「調査」の必要性を勘案している。
【００１７】
適応コントローラは、モデル形式のすべてのパラメータに対して適切な値を選択することによって、選択されたモデル形式と制御に使用する実際のモデルとの間のギャップをつなぐために、システム同定技術に依存している。システム同定技術は、それが、システムの動作中に得られたデータに対してリアルタイムで実行されるか、されないかによって、２つの主要なカテゴリー（つまり、オフラインか、オンラインか）に分けられる。
オフラインのシステム同定手法は、あるモデルについて得られたプロセスの入力および出力データの完全なセットを検討する。この手法は、多くの異なったモデル形式を試すことができるのでとてもフレキシブルである。さらに、すべてのプロセスデータを一度に分析可能であるという特長も持っている。そのようなシステムは、定められた構造を持たない人工ニューラルネットワーク（ＡＮＮ）のようなモデルを使用することもできる。オフラインのシステム同定手法の主な限界は、将来においてモデルがどのように変化するか予想することができないということである。
オンラインのシステム同定技術は分析中のプロセスが実行されているかぎり、動作する。それは、プロセス測定値を用いて、繰り返し所定の形式のシステムモデルを更新する。推定器（estimator）がシステムを観察し、選択されたモデル構造のなかでモデルパラメータを調整する。一般に、推定器は動作のためのデータの完全なセットを持っていない。それは、すでに行われた測定結果に対してアクセスできるにすぎない。しかしながら、オンラインのシステム同定手法には、オフラインの方法に比べて、一つのはっきりした特長がある。オンラインの方法は、プロセスの変化に素早く反応することができる。プロセスの変化は、モデルパラメータの値の誤差として現れる。もしプロセスが時間の経過につれて徐々に変化する場合、オンラインのシステム同定方法は、プロセスが変化するにつれてモデルを調整することができ、それによって予測エラーは低く保たれる。
繰り返しの（リカーシブな）パラメータ推定には、一般的な指数重み付け移動平均（Exponentially weighted moving average，ＥＷＭＡ）フィルタリング技術を用いることができる。次の式に示すように、現在の測定値に基づいたパラメータ推定と現在のパラメータ推定との重み付けされた組み合わせを用いて、新しいパラメータ推定が得られる。
【数３】
2005502947.tif 000005
ここで、ｘは測定値、（チルダ）ｘは推定値
【００１８】
ＥＷＭＡの重み付けパラメータ、λの選択によって、推定器がゆっくりと反応するのか（ゆっくりと浮遊（ドリフティング）しているプロセス）または素早く反応するのか（急激な変化がおきているプロセスのとき）に影響する。従って、重み付けパラメータを異なった値を選択することによって、異なった環境におけるパラメータ推定値を用いたコントローラの安定性に影響を与える。
【００１９】
オンライン繰り返し形式においてモデルパラメータを効率的に推定するためには、いくつかのプロセスの特性が必要となる。コントローラの動作がもともとのプロセスの振る舞いを覆い隠すため、自動制御下でのプロセスの同定は複雑である。一般的に、プロセスへの入力は、モデルパラメータが一意に同定されるようなかたちで、変化しなければならない。この要求は、永続的な励起（persistent excitation）と呼ばれる。望ましい動作点においてプロセスは定常状態に近づいていくにつれ、典型的な制御の目的を満たすためには励起の量を少なくしなければならないという問題がある。
適応制御技術はRun-to-run制御のためのバッチプロセスにも適応可能である。システムモデルは各バッチにおけるプロセスの振る舞いを予測するとともに、バッチとバッチの間でどのようにシステムが変化するかを予測する。コントローラの責任は、各バッチについて最適な入力設定を選択することである。実際の製造環境においては、プロセス条件は常に変化しており、従ってシステムモデルも定期的に更新しなければならない。各バッチについて最適な入力に達するためには、コントローラはモデルパラメータを調整することによって変化するプロセス条件に反応しなければならない。これは、新しいデータが入手可能になる度にシステム同定の問題を解くことによって可能である。
【００２０】
半導体製造におけるRun-to-runバッチ制御は、それが複数の製品および複数の処理ツールを持つが故に、しばしば複雑になる。このような状況は半導体製造においては非常によく起こることであるが、しかしそれはその他のバッチ処理環境、例えばポリマーの製造においても同様に問題となりうることである。各バッチがその要求される仕様を満たすことは重要であるが、異なる製品およびツールに切り替える際に適切なレシピの設定を選択するのは困難なことである。オンラインのシステム同定および適応制御は、この問題をよりいっそう扱いやすくするために役立ちうるものである。もちろん、コントローラがうまく動作するかどうかは、コントローラの設計そのものに加えて、外乱およびシステムの入力の性質に依存する。
簡単な例として、線形にモデル化できるプロセスを考える。
【数４】
2005502947.tif 000006
時間ｔ後の反応の程度はｘで与えられる。ｒは速度であって、プロセス条件を変えることによって変動することが知られている。目標は、所望の反応の程度ｘ＊である。各run（ラン）の後で、そのRunの結果に基づいて速度ｒの新しい推定値が準備される。多くの応用例においては、異なる製品ではまったく異なる見掛けの反応速度を持つことがすぐに観察される。しかしながら、単一の製品を作っている場合でも、速度はバッチによってすこしずつ異なる（ドリフトする）。それは、反応炉の付着物により、消耗材料の劣化により、またはプロセスのリークによって生じうることである。
【００２１】
runからrunへ単純にｒの推定を追跡することはできない。なぜなら、異なる製品へのスイッチは一段飛びの変化（step change）となるからである。製品が切り替わるたびに、速度推定は、何回かのrunを通じて観察された新しい速度へゆっくりと動いていく。何回かのrunの間に、反応炉の付着物によって速度が徐々に落ちていく。EWMAを用いて各runから見掛けの速度データをフィルタリングし、そのフィルタリングされた値を速度の推定に用いる。２番目の製品が走るとき、その見掛けの速度は、１番目の製品のそれとは大きく異なっている。そして、フィルタが、状態推定に対して、このことを時間をかけてゆっくりと感知させる。従って、状態推定は観測された（observed）値よりも遅れており、これは製品か切り替えられた際に顕著である。この推定と実際の状態の差が、この推定を用いるコントローラが目標を外す原因である。
【００２２】
この分野における従来の研究からオブザーバ・スケジューリングの概念が生まれた。この定式化においては、製品に依存しないツールの状態（ｘ）についてモデルが開発される。このツールの状態はそのツール固有の速度である。この速度の変化は、そのツールを通るすべての製品に影響を与える。
【数５】
2005502947.tif 000007
出力方程式を用いて、このプロセス状態ｘを製品状態ｙにマッピングする。
【数６】
2005502947.tif 000008
従って、推定器は、製品状態ｙよりも、ツールの状態ｘを追跡するのに用いられる。カルマン最適フィルタリング方程式を検討すると、最適な観測器（observer）のゲインは、出力マッピングCの関数であった。従って、オフライン分析を用いると、繰り返し可能な製品依存性は速度ｒに対する新しいモデルに帰着するように定量化できる。ここで、r0はプロセスツールの固有速度であり、kpは製品に特有の修正係数である。
【数７】
2005502947.tif 000009
次に、観測器は、観測（observed）された速度を、正しい製品特有の係数kpでスケーリングすることによって、rではなく、r0を推定する。製品特有の係数が正確に知られているような場合、上述の手法はとてもよく機能する。プロセスツールの操作の変更は、どのような製品が流れているかにかかわらず、観測（observed）される。しかしながら、実際の製造環境においては、いくつかの複雑さが存在する。例えば、いくつものプロセスツールが存在しうるし、新しい製品が登場するし、加工前の材料およびプロセスツールの非稼動時間の観点からは、実験はたいへん高価についてしまう。ここでの影響は、製品特有の係数は必ずしも推論的に（アプリオリに）知られているわけではないということであって、したがって、kp（そして、従ってC）を既知の値として仮定することは必ずしも安全ではない。
【００２３】
上記の方法は、単一のパラメータ（r0）を観測しているが、kpの新しい値についての推定を素早く得る方法を見つけることも必要である。原理的には、各runにおいて速度を観測し、それに従ってモデルパラメータを更新することによって実現可能である。実際には、可観測性（observability）の問題が生じる。各runの結果は見掛けの速度ｒの測定値であって、それはr0とkpの両方によって交絡（confound）している。よって、どのような推定手法であっても。利用可能な情報を用いて、必要に応じてすべてのパラメータを調整することができなければならない。
データ（r）から、roとkpを推定するために、上述の方程式をテイラー級数近似で用いると、
【数８】
2005502947.tif 000010
値ｒの見かけ上の変化は、r0およびkpの推定値の変化として表すことができる。したがって、変化を分類して（分散分析の手法を使用して）２つのパラメータの間で誤差をどのように分配するかを決定する必要がある。
誤差を分配する一つの簡単な方法は、各パラメータに線形フィルタを適用することである。
【数９】
2005502947.tif 000011
【数１０】
2005502947.tif 000012
ラムダの値は、パラメータ推定における確かさを反映するために変化する。ここで、r0が変化することが予想されるときλrは大きくなり、kpが誤差になると想定されるときに
はλkが大きくなる。
例えば、すでに習熟している製品の場合、kpの正確さについてはかなりの確からしさがある。さらに、r0が時間の経過においてドリフトすることが知られている。従って、λr>>λkの関係が用いられる。一方で、新しい製品の場合には、kpの値の確からしさはより小さい。不正確なkpが、ノイズやr0のドリフトよりも速度に影響を与えることが予想される。よって、λk>>λrが設定される。
この技術は、シンプルで理解しやすい一方、定量化が困難な考え方に依存する規則（ルール）ベースの手法であることから、限界がある。さらに、モデル方程式を各パラメータについて順番に解くことがいつも可能であるわけではない。
【００２４】
ここで説明したタイプのプロセスのための成功するコントローラは、同定と制御を同時に行うという2つの問題に対処することができるであろう。大きな入力変化を発生させるか、または製造ではない実験を行うことによって、プロセスを学習することの方が容易である。しかし、それはコントローラの第1の目的に直接的に反することである。プロセスの選択には、目標を密接に追跡することと、プロセスを特徴づけるのを助けることとの間のトレードオフが含まれる。なぜならば、これら２つの目的は相反するものだからである。
【００２５】
半導体製品の大量、多品種生産において用いられているRun-to-run制御は、プロセス制御における従来型のアプローチのフレームワークには簡単に当てはまらない。従来型のアプローチは、状態、入力および出力のセットが与えられたなかで、プロセスモデルを定義する。あるケースでは、モデルは静的であり、他のケースではそれは時間とともに変化する。各時間ステップにおいて、入力と外乱が状態に影響を与え、出力が測定される。そして、コントローラが更新を行い、このプロセスを繰り返す。このアプローチが常に成功するわけではないことの一つの理由は、複数の製品の存在とともに、しばしば複数のプロセスツール（processing tool, 加工装置）が存在することにある。今日のマイクロエレクトロニクス製造工場においては、各プロセスツールにおいて、多くの異なった製品およびプロセスを実行することは日常的である。それは、ツールに関する投資コストが高いことと、工場の容量に限界があることが主な理由である。さらに、一般には、プロセスにとっては重要なすべての測定値のうちの一部（サブセット）のみが各runにおいて得られる。このような環境下でコントローラにいかに更新を行わせるかを決定するのは、困難な仕事である。
【００２６】
Run-to-runコントローラは、runからrunにおいて一貫して正しいプロセスモデルを持つことを前提としている。ツールにおいて実行される様々なプロセスが大きく異なる場合、コントローラは予期しない振る舞いをする可能性がある。それは、新しいプロセスへの変更が、大きな外乱に見えうるからである。さらに、コントローラが安定するまでに、与えられたあるプロセスを続けて何回かrunする必要がある可能性がある。しかし、製造上の制約からは、これは避けたい事態である。もっともよいのは、コントローラがツールで実行させる必要があるすべてのプロセスについて、その実行順序に関わらず、最適な設定を決定することである。
【００２７】
最適制御の方法では、オンラインシステム同定手法がコントローラにおいて実行され、絶えずモデルを調整して、システムの本当の振る舞いを真似るようにする。この状況においてもっとも難しい仕事は、多くの可能性（パラメータ、バイアス推定）のうちのどれが出力において観測（observed）された誤差の原因（source）なのかを決定することである。半導体の製造においては、誤差がツールの違いに分配できるものなのか、または製品の違いに分配すべきものなのかというのは、よくある疑問である。
本発明は、上述の問題の一つまたはそれ以上について、それを解決し、または少なくともその影響を低減しようとするものである。
【発明の開示】
【発明の概要】
【００２８】
本発明の一形態は、製造システムの監視方法である。この方法は、製造システムに関する複数の観測状態（observed state）を定義するステップを含む。観測状態に対して、状態推定値（state estimate）が生成される。各状態予測に対して、不確定性の値（uncertainty value）が生成される。製造システム内の構成要素（実在）に関する測定データが受信される。状態推定値は測定データおよび状態推定値に関する不確定性の値に基づいて更新される。不確定性の値は、スケジューリングの判断に影響を与えるのにも用いることができる。
本発明の他の形態は、製造システムのための監視システムである。このシステムは、製造システムに関する複数の観測状態（observed state）を定義し、観測状態に対して、状態推定値（state estimate）を生成し、各状態推定値に対して、不確定性の値（uncertainty value）を生成し、製造システム内の構成要素（実在）に関する測定データを受信し、測定データおよび状態推定値に関する不確定性の値に基づいて状態推定値を更新するように構成されたコントローラを含む。このシステムは、不確定性の値に対する予測された変化に基づいて、スケジューリングの判断を行うように構成されたスケジューリングコントローラを含んでいてもよい。
【００２９】
本発明は、添付の図面とともに、以下の説明を参照することによって理解することができる。図面において、類似の参照符号は類似の要素を示す。
本発明は様々な変形例および代替の形態をとることが可能であるが、特定の実施形態を例として図面に示し、詳細に説明する。しかしながら、特定の実施形態についてのここでの説明は、本発明を開示された特定の形態に限定しようとするものではなく、反対に、添付の特許請求の範囲によって規定される、本発明の精神および範囲内のすべての変形例、均等物、代替形態をも含めようとするものである。
【発明を実施するための最良の形態】
【００３０】
本発明の実施形態について以下説明する。説明の明確化のために、本明細書では、実際の実施形態のすべての特徴については説明しない。そのような現実の実施形態の開発においては、例えばシステム関連の順守事項およびビジネス上の制約など、実用化の事例毎に異なる、開発者の特定の目標を達成するために、数々の実施に則した判断を行わなければならないことは当然理解してもらえるだろう。さらに、そのような開発努力は複雑で時間のかかるものであるかもしれないが、それにもかかわらず本明細書の開示による利益を得た当業者にとっては日常作業に過ぎない。
【００３１】
図１は、実例としての製造システム１０の簡略ブロック図である。この図示された実施形態では、製造システム１０は、半導体装置を製造するように構成されている。本発明を半導体製造工場において実現可能なように説明するものの、本発明はそれに限定されるものではなく、その他の製造環境にも適用可能である。本明細書で説明する技術は、様々な加工物または製造品目に適用可能である。その加工物または製造品目には、マイクロプロセッサ、メモリデバイス、デジタルシグナルプロセッサ、ASIC（Application Specific integrated circuit）またはその他の類似のデバイスが含まれるが、それらに限定されるものではない。この技術は、半導体装置以外の加工物または製造品目にも適用可能である。
【００３２】
ネットワーク２０は、製造システム１０の様々な構成要素を接続して、それらの間の情報交換を可能にする。実例としての製造システム１０は、複数のツール３０−８０を含む。ツール３０−８０のそれぞれはネットワーク２０と接続するために、コンピュータ（図示せず）に結合することができる。ツール３０−８０は、サフィックス（添え字）で示されるように、類似するツールの集合にグループ化される。例えば、ツールのセット３０Ａ−３０Ｃはあるタイプのツール、例えば化学機械平坦化（ＣＭＰ）ツールを表す。ある特定のウェハまたはウェハのロットは、それが製造されるに従ってツール３０−８０を通って進む。プロセスの流れ（フロー）において、各ツール３０−８０は特定の機能を実行する。半導体装置製造環境における典型的なプロセスツールには、測定ツール、フォトリソグラフィー・ステッパー、エッチングツール、デポジションツール、研磨ツール、ラピッド・サーマルプロセスツール、インプラントツールなどが含まれる。ツール３０−８０は、行と列とにグループ化されて図示されているが、これは説明のために過ぎない。現実の実施形態においては、ツールはどのような順番またはグループで配列されていてもかまわない。さらに、特定のグループ分けにおけるツール間の接続は、ツール同士の相互接続というよりは、ネットワーク２０への接続のみを意図しているものである。
【００３３】
製造実行システム（ＭＥＳ）サーバ９０は、製造システム１０の高いレベルの動作を監督する。ＭＥＳサーバ９０は製造システム１０の様々な構成要素（つまり、ロット、ツール３０−８０）の状態を監視し、プロセスの流れを通して製造物（例えば、半導体ウェハのロット）の流れを制御する。データベースサーバ１００は、プロセスフロー中の、様々な構成要素および製造物の状態に関するデータを記憶するために設けられている。データベースサーバ１００は情報を一以上のデータ記憶装置１１０に記憶する。このデータは、プロセス前の（pre-process）およびプロセス後の（post-process）測定データ、ツールの状態、ロットの優先順位などを含む。
【００３４】
本発明の一部および対応する詳細な説明は、ソフトウェア、つまりアルゴリズムおよびコンピュータメモリ内のデータビット操作のシンボリックな表現として説明される。これらの説明および表現は、当該技術分野の当業者が彼らの仕事を効率的に他の当業者に伝達するためのものである。アルゴリズムとは、その用語が本明細書で用いられる場合、そして一般的に用いられているように、目的とする結果に繋がる自己整合的なステップの配列であると考えられる。これらのステップは、物理量の物理的な操作を必要とするものである。通常、もっとも必ずしも必要ではないが、これらの物理量は、光学的、電気的または磁気的な信号の形態をとり、それらは蓄積、転送、結合、比較、その他の操作が可能なものである。専ら一般的な用例という理由から、ときには、これらの信号をビット、値（value）、要素（element）、シンボル、キャラクタ、項（term）、数などと呼ぶのが便利である。
しかしながら、これらの用語のすべてまたは類似の用語は適切な物理量に関連付けられるべきであり、それらの量に適用される単なる便利なラベルである、ことを念頭に置く必要がある。特に断らない限り、またはこれまでの議論から明らかなように、「プロセス（処理）」、「コンピューティング」、「計算」、「決定」、「表示」などの用語は、コンピュータシステムまたは類似の電子情報処理装置の処理または動作を意味する。ここで、コンピュータシステムまたは類似の電子情報処理装置の処理または動作とは、コンピュータシステムのレジスタおよびメモリのなかの物理的、電気的な量として表されるデータを操作して、コンピュータシステムのレジスタおよびメモリまたはその他の情報記憶装置、転送装置または表示装置のなかの物理的、電気的な量として同様に表される他のデータに変換することである。
【００３５】
製造システム１０に用いるのに適した典型的な情報交換およびプロセス制御フレームワークは、ＡＰＣ（Advanced Process Control）フレームワークである。それは、KLA-Tencor, Inc.社が提供する、Catalystシステムを用いて実現可能である。Catalystシステムは、SEMI（Semiconductor Equipment and Materials International）のCIM（Computer Integrated Manufacturing）フレームワークに準拠したシステム技術を用い、APC（Advanced Process Control）フレームワークを基礎とする。CIM（SEMI E81-0699-CIMフレームワークドメインアーキテクチャのための暫定仕様書）およびAPC（SEMI E93-0999-CIMフレームワーク高度プロセス制御コンポーネントのための暫定仕様書）の仕様書はSEMIから一般に入手可能である。SEMIの本部はカリフォルニア州のマウンテンビューにある。
【００３６】
製造システム１０はワークステーション１４０上で実行されるコントローラ１３０を含む。以下にさらに詳細に説明するように、コントローラ１３０は製造システム１０の様々なツール３０−８０のために設定される操作レシピを決定する。ここで使用される略称および記号の命名法については、以下の別表Aに要約してある。
図１において異なったコンピュータやワークステーションの中に処理およびデータ記憶の機能が分散していることによって、一般的には、独立した、中央情報記憶を持つように導かれる。もちろん、異なった数のコンピュータおよび異なった配列を用いてもよい。
【００３７】
図２は、図１の製造システム１０の一部の簡略ブロック図である。本実施形態においては、製造システム１０の一部は、第１および第２プロセスツール２００、２１０を含む。これらはコントローラ１３０とインターフェイスで結合され、３つの異なる製品（Ａ，ＢおよびＣ）に対するプロセスを実行するように構成されている。ツール２００，２１０の数および製品は説明を円滑に行うために選んだものにすぎない。もちろん、別の数のツール２００，２１０および製品も使用可能である。ツール２００，２１０で実行されるプロセスは、どのような製品とツールとの組み合わせにおいても実行可能である。コントローラ１３０は制御則（control law）コンポーネント１３２、および観測器（observer）コンポーネント１３４を含む。観測器コンポーネントは、製造システム１０の状態の推定および更新を行う。制御則コンポーネントは、この状態情報を用いて、ツール２００，２１０のための操作レシピパラメータを決定する。
【００３８】
線形化された形式を用い、すべての組み合わせには単一の「名目（nominal）」ポイントがあると仮定して、各コンテキスト（context）についての名目除去（nominal removal）からの偏差は、次の式で表される。
【数１１】
2005502947.tif 000013
【数１２】
2005502947.tif 000014
【数１３】
2005502947.tif 000015
【数１４】
2005502947.tif 000016
【数１５】
2005502947.tif 000017
【数１６】
2005502947.tif 000018
添え字１はプロセスツール２００を参照し、添え字２はプロセスツール２１０を参照する。
【００３９】
システム全体を単一の状態空間モデルに一体化することができる。
【数１７】
2005502947.tif 000019
【数１８】
2005502947.tif 000020
ここで状態は、調整（adjustment）(xadj)、ツールバイアス(r1およびr2)および製品バイアス（fA,fB,fC）を含む。このモデルは、すべての製品／ツールの組み合わせが同じ入力設定で同時に流れるという架空の状況からなっている。この状況は実際には起こらないと考えられるが、異なったコンテキストの間の相互作用を理解するという観点からは有用である。例えば、単一の製品因子fAは、プロセスツールに関わらず、製品Ａのすべてのrunに用いられる。
次に可観測性のテストについての計算結果を示す。
【数１９】
2005502947.tif 000021
階数（rank）が一つ不足しているので、このシステムはこの形態では不可観測である。このような状況になった理由は、すべてのrunが製品バイアスとツールバイアスとによって交絡しているからである。システムに対して追加的な測定値を加えるための一つの方法には、認定実験（qualification experiment）の使用が含まれる。これらのイベントの間、標準試験が装置上で実行（run）され、それには特別に用意された「基準」バッチが含まれうる。これらの試験がツール群について標準化されると、これらの特別なrunに対する製品特有のバイアスがないことを明らかにすることができて都合がよい。これは、特定のツールについての試験の際に、そのツールのバイアスを直接測定できるということを意味する。このような実験が選択できない場合、（既知の）名目バイアスを持つ製品または基準ツールを単純に選択することも可能である。この方法の一番欠点は、常に変化している製造環境において基準のツールまたは製品を特定するのが困難でありうることである。しかしながら、ここで重要なことは、システムを可観測にする方法を見つけることである。それをするための方法としては、必要な出力（測定値）を追加するか、制限（状態数を実効的に減少させる）を追加するか、またはモデルの形態をなにかまったく異なるものに変更するかしかない。
【００４０】
上記の例においては、ツールの認定（qualification）は以下の式で表される２つの新しいケースで示される。
【数２０】
2005502947.tif 000022
【数２１】
2005502947.tif 000023
ここで、y1およびy2は、それぞれツール２００（つまり、１）およびツール２１０（つまり、２）の認定の間に観測（observed）された名目除去（nominal removal）からの偏差を表す。もし、この例としてのシステムにこの認定実験が加えられると、組み合わせられたシステムの新しい出力方程式は、
【数２３】
2005502947.tif 000024
新しいシステムについての可観測性マトリクス（行列）は、
【数２４】
2005502947.tif 000025
この式は最大階数であるので、このシステムは可観測である。しかしながら、このシステムは、すべての可能なrunが同時に発生しうる、未だ架空のケースである。実際には、runは一度に一つずつ発生する。各Runの後で、モデルの状態を更新するための適切な方法を決定する必要がある。
【００４１】
構造的に、このシステムは、異なった測定値が異なった周波数でサンプリングされる現実のシステムに似ている。このようなシステムにおいて、異なった組み合わせの測定値が利用可能になるつれ、可観測性も時間とともに変化する。しかしながら、潜在的な要件は、すべての可能性のある測定値がすべての時間ステップにおいて得られる、限られたケースにおいて、システムが可観測であるということである。
上述の方程式によって説明したように、各時間ステップにおいて可能性のある測定値の一部のみが得られる、不連続な時間システムモデルを持つことは可能である。このようなシステムにおいては、新しい測定値が得られたときには常に状態の更新を行って、新しい測定値からできるだけ多くの情報を状態の推定に統合する必要がある。一般に、予測誤差（測定された出力と予測された出力との間の偏差）は、状態推定値に対して変化をもたらす。本実施形態においては、分析の対象となる第1のケースが一つ以上の状態から影響を受ける測定値を有する。
【００４２】
概念的には、そのような問題は解決不可能のように見える。なぜなら知られている単一の測定値を、知られていない一つより多い状態の更新に用いなければならないからである。しかしながら、本実施形態においては、コントローラ１３０は、利用可能な追加の情報を状態の更新を取り扱うために使用する。以下にさらに詳しく説明するように、観測器コンポーネント１３４はすべての状態についての推定値を、それらの推定値の確からしさの程度とともに保持し、統計的な分析を行って、どの状態がもっとも、予想された測定値における観測（observed）された誤差の原因となったものと思われるかの決定を行う。
次に、観測器コンポーネント１３４の設計について議論する。最適制御理論の理解から得られる大きな利益は、システムについての学習と、制御動作との分離が実現できることである。この一般的な原理は、コントローラ１３０の調整において直感的な可能性を実現できる。例えば、制御則コンポーネント１３２の応答を、状態推定のルーチンに影響を与えることなく、より緩慢なものにすることができる。制御則コンポーネント１３２は、それが行う必要のあるどのような決定を行うにあたっても、システム１０の状態についての最もよい情報を用いることができる。次に、状態推定の問題について議論する。この問題が解決されれば、状態推定の優位を用いるために、どのようなタイプの制御則も使用することができる。
【００４３】
次に、各時間ステップにおいて、全部の測定値が得られないときに、状態の更新を実行する際の問題について議論する。半導体の製造ラインの制御に加えて、この種のシステムは、ある種の変数がその他の変数よりも頻繁にサンプリングされる、伝統的な化学プロセスにも当てはまる。例えば、流量計は常に流速の測定値を生成することができる。しかしながら、組成分析は何時間かごとにしか実行できないであろう。
部分的な情報が与えられた状態で、システム状態の真の値（true value）のもっともよい推測を決定する必要がある。第1のステップは、すでに説明したように、すべての可能性のある測定値が各時間ステップにおいて得られるような場合には、システムが可観測であることを確定することである。
システム状態は、通常、システムモデルに取り込まれている既知の影響に加えて、ノイズや外乱によって影響を受ける、未知量（unknown quantity）である。分析の観点からすると、各システム状態は、連続した確率変数（random variable）として扱うことができる。説明の便宜のために、それぞれがその現在の推定値の周りにいくらかの分散σ2とともに正規分布していると仮定する。
推定手順の最初で、すべての分散をプロセスの経験的な分析に基づいた静的な値に初期化する。各状態の確率密度関数は、次のように与えられる。
【数２５】
2005502947.tif 000026
ここで、（バー）ｘは平均値であって、σ2は分散である。この関数をプロットしたのが、図３Ａである。確率変数のｎベクトルについての確率密度は次で与えられる。
【数２６】
2005502947.tif 000027
ここで、（バー）ｘは平均のベクトル、Ｖは次で与えられる共分散行列である。
【数２７】
2005502947.tif 000028
この多次元の確率密度関数のプロットを図３Ｂに示す。状態間の相互依存性について最初になにも知られていなければ、Ｖは状態推定の分散の単なる対角行列である。ある特定の時間ステップにおいて得られた測定値が与えられたとき、すべての状態の期待値が必要となる。その手順を単純な具体例について説明して、次に一般化を行う。この例では、システムが次のように表される２つの状態を持つと仮定する。
【数２８】
2005502947.tif 000029
出力方程式は次のように与えられる。
【数２９】
2005502947.tif 000030
ここで、
【数３０】
2005502947.tif 000031
与えられるすべての時間ステップにおいて、（シルコンフレックス）x1および（シルコンフレックス）x2は状態に対する現在の推定であり、σ1およびσ2はそれらの推定に関する分散である。状態が互いに独立であって、推定値のまわりに正規分布していると考えると、確率密度関数は次のように表される。
【数３１】
2005502947.tif 000032
出力行列は２つの測定値を含んでいるが、もし一つだけが得られたとしても、状態の更新を行う必要がある。上記の方程式に従って、最初の測定値に対する予測値は、次のように与えられる。
【数３２】
2005502947.tif 000033
もし、yl,mの測定値がylについて得られると、予測誤差は、
【数３３】
2005502947.tif 000034
観測器コンポーネント１３４はこの誤差を状態x1とx2との間で分配する。この分配は、この測定によってラインlが暗示されているから、実現できるのである。
【数３４】
2005502947.tif 000035
これは、この状態についての確率密度関数が定義されている空間に含まれるものである。結合された確率密度関数のこのラインlへの投影は、測定値を受信した後の確率分布を示す。このラインlは図３Ｂにおいて、平面Ｐと確率密度関数との交差部分として描くことができる。
状態の予測値を計算するために、（（シルコンフレックス）x1,（シルコンフレックス）x2）に最も近いl上の点を（x1,0, x2,0）として表す。この点は、どのようなラインlについても存在するように便宜上選択されたものである。この点は、次の問題に対する解として、ここに導出される。
【数３５】
2005502947.tif 000036
【数３６】
2005502947.tif 000037
もしa2≠0のときは、
【数３７】
2005502947.tif 000038
これを、[数３５]に代入すると、
【数３８】
2005502947.tif 000039
x1に関する導関数を０と置くと、
【数３９】
2005502947.tif 000040
x1についての項をまとめると
【数４０】
2005502947.tif 000041
従って、
【数４１】
2005502947.tif 000042
対象性から、
【数４２】
2005502947.tif 000043
よって、
【数４３】
2005502947.tif 000044
ラインlは、tによってパラメータ化できて、
【数４４】
2005502947.tif 000045
【数４５】
2005502947.tif 000046
いまラインlに沿った正規化されない確率密度関数の整数klは、つぎのように決定できる。
【数４６】
2005502947.tif 000047
または、
【数４７】
2005502947.tif 000048
ｔの期待値はつぎのように与えられる。
【数４８】
2005502947.tif 000049
そして、状態の期待値は以下のように与えられる。
【数４９】
2005502947.tif 000050
【数５０】
2005502947.tif 000051
【００４４】
概念的には、更新によって、予測誤差が２つの状態の間で、状態推定値に対してなされる変更がより大きな不確定性（偏差）を持つパラメータに対して大きくなるように、分配される。これは、ラインl上の期待点がより幅広い確率密度を持つパラメータ推定によって支配されているからである。この様子を、図３Bに示す。  確率密度関数を切り通している平面ｐは、x1およびx2の関数である新しい測定値に含まれる情報を表している。平面ｐと確率密度関数との交差部分は、新しい情報が与えられたときの確率分布である。
上述の議論は、離散カルマン（Kalman）フィルタの導出と同じような目標を持っている。よりよいパラメータ推定値を得るためには、不確定性の情報を用いるのが望ましい。カルマンフィルタを導くのには、いくつかの方法がある。上述の定式化では、測定値情報（l）を絶対値として取り扱うが、カルマンフィルタの導出では、ちょうど状態推定が行っているように、不確定性を生じさせる。数学的には、ラインｌは上の制約として機能し、カルマンフィルタの定式化では、それは最小化されている目的関数の条件付項（penalized term）に対応する。この問題に対するカルマンフィルタのアプローチは、推定問題に対するより一般的なアプローチとして、本明細書においてさらに詳細に説明される。
【００４５】
（バー）ｘが状態推定の現在ベクトルであり、Ｐがその状態推定に対する誤差共分散行列（error covariance matrix）であり、ｙが測定値ベクトルであるシステムは次のように示される。
【数５１】
2005502947.tif 000052
ここで、ｖは０の平均値を持つ確率測定誤差および共分散行列Ｒを示す。
上述のシステムが与えられたとき、離散カルマンフィルタは本質的に、次の評価指数（performance index）を、ｘについて新しい状態推定ベクトルに到達するように、最小化する。
【数５２】
2005502947.tif 000053
この重み付け最小２乗評価指数は予測誤差（prediction error）を最小化する一方で、現在の推定の確からしさが高い状態推定に対する変化に条件付けを行う。これは、もし共分散行列Ｐが分散のみからなる対角行列であるときには、簡単に理解できる。確からしさが高い状態推定は、小さい分散を持つので、対応するP-1の要素は非常に大きくなる。さらに、もし複数の測定値を受信すると、それらは、それらの確からしさのレベル（行列Ｒの分散の項によって決定される）に従って、目的関数において重み付けされる。
【００４６】
もし行列Ｒの項の大きさが非常に小さいならば、新しいｘは測定値ｙを説明するのにかならずよい仕事をすることに注意しておくとよい。なぜならば、（y-Cx）の項は、大きなR-1に対して強く条件付けられている（penalized）からである。もしＲが小さいならば、測定ベクトルｙの不確定性（uncertainty）は非常に小さい。極端な場合、解は、方程式３４にあるように、状態推定が測定値で決定されるライン（または平面）上に到達するケースに近づく。方程式５２で示された最適化の問題は、微分dJを０に設定することによって、解析的に解くことができる。
【数５３】
2005502947.tif 000054
従って、
【数５４】
2005502947.tif 000055
dxは任意に変化するので、括弧内の項は０でなければならない。よって、最適なxを代数的に解くことができる。
【数５５】
2005502947.tif 000056
【数５６】
2005502947.tif 000057
【数５７】
2005502947.tif 000058
【数５８】
2005502947.tif 000059
【数５９】
2005502947.tif 000060
上述の２変数の場合には、
【数６０】
2005502947.tif 000061
そして、
【数６１】
2005502947.tif 000062
単一の測定値のみが存在するので、行列Rは、単純に単一項のRとなる。よって、この場合、次のようになる。
【数６２】
2005502947.tif 000063
方程式６２はさらに次のように簡単化できる。
【数６３】
2005502947.tif 000064
【数６４】
2005502947.tif 000065
【数６５】
2005502947.tif 000066
【数６６】
2005502947.tif 000067
この結果は、状態推定値および測定値の不確定性が、更新に対してどのように影響を与えるかを示している。
測定値の一部のみが得られるような場合には、方程式５２のｙ，Ｒ，Ｃは、その換算されたもので置き換えることができる。ここで、得られた測定値のベクトルをyr、Crが得られた測定値を与えるCの行を含むもの、Rrをこの測定値の換算された集合（reduced set）のための共分散行列（covariance matrix）とする。この状況で、状態の更新は、次のように与えられる。
【数６７】
2005502947.tif 000068
異なった測定値が得られるたびに、実効（effective）CおよびR行列は変化する。実効出力行列（effective output matrix）は一定でないので、コントローラ１３０が多くの時間ステップに渡って動作したときでも、分散推定（従って、および実効更新重み）は決して定常状態には到達しない。観測器コンポーネント１３４は、プロセスの組み合わせが変化するにつれて、そのゲインを常に変化させる。
【００４７】
状態および分散推定値は異なった２つの時間において更新される。それは、プロセスを実行している時および測定情報が到着した時である。プロセスを実行している時の更新は、知られているシステムのモデルを使用した予測的な更新である。この場合、モデルの誤差（error）は、ゼロ平均および既知の共分散を持つものと仮定される。現在の状態および分散推定はどちらも状態遷移行列（マトリックス）を通って、新しい推定値になる。測定段階における更新（新方式、the innovation）は、方程式５２で示された問題を解くことによって測定値から得られる新しい情報を考慮する。
Xを時間で展開すると、次のようになる。
【数６８】
2005502947.tif 000069
ここでukはプロセスの入力であり、wkはゼロ平均および共分散行列Qを持つ確率的プロセス誤差（random process error）である。上述のように、得られる測定値は次のように与えられる。
【数６９】
2005502947.tif 000070
ここでvは、ゼロ平均および共分散行列Rを持つ確率的観測誤差（random measurement error）を表す。
プロセスが実行されているときにはいつでも、次の式を用いて、状態推定および誤差共分散（error covariance）が更新される。
【数７０】
2005502947.tif 000071
【数７１】
2005502947.tif 000072
これらの方程式は、xについての推定値を、ノイズはないが、Pに含まれる不確定性が増えているものと仮定して更新している。測定値が得られたときはいつでも、状態推定値および誤差共分散は、これらの方程式を用いて更新される。
【数７２】
2005502947.tif 000073
【数７３】
2005502947.tif 000074
これらの方程式は、xの新しい推定値が測定データを反映していること、そしてPに含まれる不確定性が減少していることを保証している。測定値の更新によって、誤差共分散行列の非対角項（off-diagonal term）が変化することに注意しておくとよい。これらの項は、過去の測定値に基づいて、状態が互いにどのように関係しているかを記憶する。
【００４８】
従って、各時間ステップの後、誤差共分散行列は、状態推定とともに更新される。一般に、追加的な測定は不確定性を減少させるのに対し、プロセスの実行ステップは不確定性（分散）を増大させる。異なった測定値の組み合わせが得られたという事実は、共分散行列の異なったパターンにつながる。
非線形のシステムは、行列Ａ，ＢおよびＣの代わりに、モデル方程式の偏導関数の行列を用いることによって取り扱うことができる。一般に、同様の分析を当てはめることができ、プロセスモデルは各時間ステップにおいて現在の動作点のまわりで線形化される。
非線形のケースでは、モデル方程式は、現在と将来の状態値の間に、より一般的な関係がある。
【数７４】
2005502947.tif 000075
【数７５】
2005502947.tif 000076
与えられた時間ステップにおいて、これらの方程式を線形化して、線形モデルからの対応する項を作ることができる。
【数７６】
2005502947.tif 000077
【数７７】
2005502947.tif 000078
【数７８】
2005502947.tif 000079
【００４９】
以下の議論では、複数のプロセス実行コンテキスト（context）を伴うRun-to-runの状況において用いられるべき、カルマンフィルタに基づく推定アルゴリズムの使用について概説する。このアルゴリズムでは、（バー）Xkおよび（バー）Pk、状態推定ベクトルおよび誤差共分散行列に含まれる不確定性の情報を利用する。ある特定のrunに対しての設定を計算する時間になると、観測器コンポーネント１３４は、そのrunに適用する状態および測定値を、まず初めに決定しなければならない。このrunの目的はシステム出力の特定の値を達成することにあるので、コントローラ１３０は、与えられたコンテキストに対する実効出力マッピングCrを計算しなければならない。
【００５０】
正しい出力マッピングおよび現在状態の推定値が与えられると、制御則コンポーネント１３２はプロセスの入力を計算し、プロセスの進行を許可することができる。また、このとき、観測器コンポーネント１３４が、プロセスモデルを使用して、プロセス後の（post-process）状態（シルコンフレックス）Xk+1および共分散（シルコンフレックス）Pk+1に対する推定値を計算する。実効出力行列（effective output matrix）を用いて、観測器コンポーネント１３４は出力（シルコンフレックス）yk+1をも予測することができる。
Runの後、観測器コンポーネント１３４は測定値yk+1を受信する。観測器コンポーネント１３４は、方程式５２を最小化するために、新しい測定値とともに、現在の状態および共分散推定を用いることができる。結果として、（シルコンフレックス）Xk+1および（シルコンフレックス）Pk+1の新しい値が提供される。新しい製品またはツール２００，２１０が追加されるたびに、それらの状態推定値を、すでに記憶され、更新されている状態に追加しなければならない。
【００５１】
プロセスの条件の変化、例えば新しい製品またはツール２００，２１０の追加等によって、観測器コンポーネント１３４によって監視される状態の数も変化しうる。これらの変化が、コントローラ１３０をなるべく乱さないようにすることが望ましい。外乱をなるべく小さくするために、新しい状態に関する情報をすでにある状態ベクトルおよび誤差共分散行列に組み合わせる（merge）。状態推定に対する最初の適切な推測を選択した後、新しい状態を追跡するために、新しい要素を状態ベクトルに追加する。さらに、新しい行および列を誤差共分散行列に追加する。共分散行列のなかのこれらの新しい要素は、分散の項を除き、ゼロで初期化することができるが、新しい状態があまりよく特徴付けられていないことを示すためには比較的高い値に設定されるべきである。
【００５２】
調整パラメータは、モデルの不確定性（システムモデル方程式のなかの行列GおよびQ）および測定値（行列R）に対する推定ノイズ特性（estimated noise property）を含む。新しい状態および状態推定の分散についての最初の推測（guess）も決定しなければならない。新しい状態推定の不確定性の最初の値に、高い推測値を選択すると、観測器コンポーネント１３４は、それが存在する状態の評価（performance）にかなりよく合致するようになるまで、優先的にそれを更新するように強制される。
【００５３】
行列Rの選択により、推定手法の測定データへの応答の速度が影響をうける。大きな値を選択すると、より緩慢な応答になる。行列GおよびRの選択により、異なったモデル状態における相対的な不確定性の、プロセスに伴う増加の速度が影響を受ける。これらは、推定の手法に、あるパラメータだけを他のパラメータよりも頻繁に更新させるために用いることができる。
【００５４】
最適な調整およびモデルの形態でさえもプロセスの条件に深く依存している。完璧なコントローラは存在しないが、与えられたプロセスの条件の集合に対して最適なコントローラのみが存在しうる。予測される外乱をよく理解することが、その状況下でよい性能を発揮する設計を生み出す。
上述の状態予測手法において、状態および不確定性の推定が変更されたことが２回あった。これらは、プロセスの実行時に行われた予測および測定時における更新である。正しく機能するために、状態推定のアルゴリズムは、実行されたすべてのrunの完全な履歴を、それらに関係するすべての既知の測定値を含んで、保持している。プロセスが実行される前と後で測定値を取得する、バッチ指向のプロセス実行環境では、測定を遅らせたり、あるいは完全に省略することさえ可能である。状態観測器は、それが受信した情報を正確なプロセス実行の履歴に正しく整理するのを保証することが必要である。
【００５５】
原理的には、各プロセス実行runの入力および出力を含む、システムの完全なプロセス実行履歴を保持することも可能である。つまり、測定値が到着すると、適切な時点でそれを履歴に入力する。もともとの推測値から出発して、履歴中の各時間ステップを通して繰り返すことによりすべての現在状態の推定を計算することができる。
このような方法は、非常に大きなデータ記憶容量を必要とする。しかしながら、現在の正しい状態推定値を計算するのに、このデータすべてを記憶しておくことが常に必要なわけではない。１００％の計測（すべてのrunについてすべての変数が測定される）を持つシステムでは、すべてのrunの結果は最終的には測定される。もし、プロセス実行ステップにおいてrunの記録が生成されるのであれば、情報が利用可能になったときに、測定データによって更新することができる。
【００５６】
履歴テーブルの最初から始まって、第１の計測されないrunまで続く、すべての完全な（利用可能なプロセスおよび計測データ）記録は、そのテーブルに対する「最初の推測値」の連続（running）へと折りたためる可能性がある。これは、各レコードに対する予測の更新および測定の更新の両方を実行することによって実現される。プロセスの実行記録を作らない限りプロセスを実行しないようにすると、テーブルにあるプロセスイベントに対応しない測定値を取得することはない。これによって、履歴テーブルに測定値の抜けが存在する期間を最小限に限定する。
動作上の制約によってすべてのrunが測定できない場合、満了（expiration）時間を決めておく必要がある。満了時間よりも古いrunであって未だ測定がされていないものは、将来においても決して測定されないものであるという仮定のもとに、廃棄される。これによって、上述の折りたたみを、不完全な測定の場合においても継続することができる。測定されなかったプロセスのrunは、それが折りたたまれたときに行われる予測的な更新を持つだけである。
【００５７】
上述の調整は、データが本当は遅れて来たり、ときにまったく来なかったりしても、コントローラが測定データを連続した流れとして取り扱うことを可能にする。次の例は、複数のツールおよび製品プロセス向けのコントローラが典型的な状況をいかに取り扱うかを示している。このケースでは、ツールおよび製品の名前が、各runにおいてどのモデル状態が影響を受けるかを決定するのに十分であると仮定している。表１は、このケースのプロセスイベントのリストである。
【表１】
2005502947.tif 000080
【００５８】
もし、プロセスが表１に示されるような順序で進行するのであれば、履歴情報を記録する必要はまったくない。テーブルに示されるように、各イベントはコントローラの状態を通常の方法で更新する。ここで、記録しなければいけないデータのみをx*に含める。これは、状態および不確定性の推定値の集合の「繰り返しの合計（running total）」を示す。X*の値は、各イベントごとに更新され、次にそのイベントのデータは廃棄される。
しかしながら、もしプロセスが以下の表２に示されるように発生するならば、観測器コンポーネント１３４は新しいデータ要素のそれぞれをどのように解釈するのかを決定しなければならない。測定イベントの取り扱いは前ほど簡単ではない。なぜならば、測定情報が期限切れだからである。観測器コンポーネント１３４が新しい測定値のそれぞれによって状態の更新をしなければならないのは明らかであるが、単純に新しい状態値の基礎を最新の測定値に求めることはできない。その理由は、新しい情報は、過去に行われた動作に関連しているからである。解決方法としては、すべてのイベント情報を記録して、情報が利用可能になるごとに、完全な履歴が作成できるようにすることである。情報は、それがもはや必要でなくなったときにのみ廃棄される。
【表２】
2005502947.tif 000081
【００５９】
x0を、なんらの記憶されたイベントも含まれる前の、状態および不確定性の推定値の集合を示すものとする。このとき、x*はx0から出発し、記憶されたイベントを繰り返して、必要な更新を加えることで計算することができる。
表２の最初のイベントについては、他の情報に対する依存性はない。従って、状態推定は予測可能であり、x0を更新することができる。この場合、x*はx0に等しく、このイベントデータは廃棄される。
表２の次の３つのイベント（２−４）は不完全である。なぜならば、それより前のバッチに対する測定ステップが省略されているからである。この場合、x0は一定であり、この３つのイベントのデータは、観測器コンポーネント１３４によって保持される内部履歴に加えられる。この履歴を以下の表３に示す。欠落していることが分かっているイベントは、N/Aで表されていることに注意してもらいたい。よって、x*は、x0から出発して、表３の３つのイベントを繰り返すことによって計算することができる。
【表３】
2005502947.tif 000082
【００６０】
次のイベント（５）が到着したとき、観測器コンポーネント１３４はそれまでのすべてのバッチについてのデータの完全な集合を持っている。よって、x0を更新することができる。ここで内部履歴は表４に示されるイベントを含んでいる。観測器コンポーネント１３４は、これらのイベントを繰り返すことによってx0を更新することができる。そして、そのイベントデータは安全に廃棄することができる。
【表４】
2005502947.tif 000083
【００６１】
次の２つのイベント（６−７）は不完全である。なぜなら、バッチ３が測定されていないからである。すでに述べたように、観測器コンポーネント１３４は表５に示されるようにそれらを内部履歴に追加し、x0を更新しない。すでに説明したように、データを受け入れ可能な時間枠を定義することも可能である。もし十分な時間が経過して、観測器コンポーネント１３４が、バッチ３の測定データはもう来ないとみなせるとき、イベント６および７のデータをx0に折りたたむ（collapsing）ことによって先に進むことができる。
【表５】
2005502947.tif 000084
【００６２】
上記の分析に基づいて、測定行列の各要素は、１以上の状態の関数に等しい確率変数である。従って、測定値ベクトルの予測値に対して確率密度関数を定義することができる。もし、xが誤差共分散行列Pを持つとき、出力の予測はCxで与えられ、この予測された出力に対する共分散はCPCTで与えられる。この共分散行列は、方程式２６を用いて、予測された出力に対する確率密度関数を生成するのに用いることができる。
次に、予測された測定値に対して計算された信頼区間を特定された動作限界と比較して、動作限界のなかでとどまるために必要なプロセスの実行およびサンプリングの要件について決定することができる。この比較は、コントローラ１３０にそれ自身の性能を推測して、ユーザに警告を与え、さらには問題が起きる前にその問題を避けるための行動を起こすための基準を与える。
【００６３】
ここの議論では、不確定性の項を用いて状態推定の更新を行うための統計学的な根拠があることを示してきた。ここで説明した技術は、モデルの状態を、それらの直接的な測定値が利用可能でない場合にも更新可能である。次に、動作条件の異なった多くの組み合わせに対するシミュレーションデータを、他の制御方法に対する比較とともに、示すことにする。
【００６４】
上述の状態推定手法は、いくつもの変化のソースを持つ大きなシステムを、ある与えられた時間において、所望のデータの一部を用いて分析するように設計されている。次の議論では、この状態推定手法が異なったプロセス実行の条件に対してどのように応答するかを示すいくつかのシミュレーションについて説明する。まず初めに、名目的な条件において、コントローラ１３０の性能を検証するための基礎ケースを作る。続いて、順番に複雑さを追加していき、より現実的な動作の条件を作り上げていく。同様の試験用（challenge）データを用いて、他のコントローラ（図示せず）との性能比較も行う。
【００６５】
このセクションでは、最初の試験環境について説明する。そして、得られた結果に基づいて、試験の残りの部分において行われたいくつかの基本的な仮定について正当化を行う。プロセスの条件を変えた場合の実際の影響を調べるために、単純なrun-to-runのプラントモデルを選択する。このプラントモデルは離散時間モデルであり、ラン番号（run number）によって進行する。各バッチの実行の間に発生する連続時間効果は、全体として平均的なバッチの特徴を表すように平均化される。このプラントモデルに従うと、出力は、単純に入力にプラントのバイアスを足したものに等しい。このプラントのバイアスは、いずれにせよ、入力として選ばれた値には影響されない。続くrunではいくつかの異なった種類の製品や異なったプロセスツールの使用をシミュレートするので、偏差（variation）のソースを決定して、適切なシステムの状態を選択可能にすることが必要である。実際の応用では、これには利用可能なプロセスデータの詳細な分析が含まれる。しかし、この例では、バイアスはプロセスツール由来の成分と走っている（runしている）製品由来の成分とから成り立っていると仮定する。
【００６６】
シミュレーションの観点からは、製品は個々の製品のみを指すのではなく、あるツールにおける一つのrunをその他のものとは異なったものとする特徴の一般的な種類をもさす。言い換えれば、実際の環境における各製品／層の組み合わせは、このシミュレーションにおいては異なった「製品」となるということである。特定のツールおよび製品に対するプロセスモデルは次のように書くことができる。
【数７９】
2005502947.tif 000085
ここでyは出力、xtiおよびxpjはツールおよび製品のバイアス、uは選択されたプロセスの入力である。目標値は、yの特定の値である。ほとんどのシミュレーションにおいて、値０が目標値として選択される。さらに、ツールの認定イベント（qualification event）が利用可能であり、すべてのツールiについて直接xtiを測定することが可能であると仮定する。認定イベントが可能であると仮定したことにより、このシステムは可観測になる。
プロセスおよび測定ノイズをも含めた、伝統的な離散時間状態空間モデルを用いる。
【数８０】
2005502947.tif 000086
【数８１】
2005502947.tif 000087
よって、ｍ個のツールと、ｎ個の製品を持つシステムについての状態ベクトルは次のようになる。
【数８２】
2005502947.tif 000088
ここで、xadjは調整状態（adjustment state）であり、すべてのツールおよび製品が個々の要素で追跡される。ベクトルwおよびvは、それぞれプロセスノイズと測定ノイズを表す。それらは、両方とも、ゼロ平均を持つ正規分布をとると仮定される。制御モデルにおいてノイズベクトルが用いられているので、状態推定のルーチンにおいて仮定が可能である。シミュレーションにおいては、ノイズの項に加えて、その他の外乱がモデルに加えられる。これらの他の外乱は、状態を直接変更することで、コントローラ１３０が予測できないような方法で、システムに影響を与える。
状態遷移行列は大きさがm+n+1の正方行列であって、次のように与えられる。
【数８３】
2005502947.tif 000089
上の式は、すべてのツールおよび製品のパラメータが名目的には静的であることを示している。プロセスの入力はxadjのみに影響を与えるものと仮定され、よって、実効をもつm+n+1と1の大きさは、
【数８４】
2005502947.tif 000090
プロセスに対する完全な出力行列（mn+mとm+n+1の大きさ）は次のように与えられる。
【数８５】
2005502947.tif 000091
となって、可観測なシステムになる。各シミュレーションの実行において、出力行列の一つの行のみがアクティブである。出力行列の簡約した部分をCeffで示す。
この説明におけるシミュレーションでは、３つの主なコンポーネントを採用し、ある方向にのみ通信するように制約を受けている。第1のコンポーネントはシミュレーションドライバ１３６であって、「現実の」パラメータの値を保持し、制御動作（control move）に基づいた「測定値」を計算する責任を負う。シミュレーションドライバ１３６は図２に示されているが、現実の実施形態においては通常使用されない。それは、以下の説明の理解を助けるために描かれているのにすぎない。制御則コンポーネント１３２は、シミュレーションドライバ１３６から提供されたツールおよび製品IDに基づいて、各runについて使用される設定を計算する責任を負う。観測器コンポーネント１３４は、シミュレーションドライバによって計算された測定情報に基づいて状態推定を更新する責任を負う。この柔軟性によって、このプラントに対して、コントローラ１３０自身が使用しているのとは異なるモデルを使用することができるが、説明を簡単にするため、この能力はこれらの最初のシミュレーションでは使用しない。
【００６７】
これらの最初の試験では、１０個のツールと１０個の異なった製品を持つプラントを用いる。それぞれのツールおよび製品には、一意のバイアス（bias）が割り当てられる。従って、このモデルには２０のバイアス状態がある。各バイアスには、ノイズおよびドリフトを含む、それ自身の外乱特性が割り当てられる。各状態におけるノイズは、異なった状態値の間の平均的な差よりも、おおざっぱに言って一桁小さい。同様の大きさのノイズが得られた各測定値にも付加される。状態推定を強調するために名目的な定常過程を選択する。状態が通常動かないので、外乱の影響を視覚化するのが容易である。
【００６８】
最初に、プロセス信号のデータセットが、runに対する製品およびツールを無作為に選択することで生成される。ここで、すべてのツールおよび製品は同じ確率を持つこととする。このデータセットは、各runについてのツールID、製品IDおよび実際の状態の履歴として記録される。このシミュレーションの各runに対して、シミュレーションドライバは、製品およびツールID、目標値、特定のrunに対する一意のIDを制御則コンポーネント１３２に送る。制御則コンポーネント１３２は、選択されたプロセスの入力を返し、各runについてのその特定の情報の集合を保持する責任を負う。次に、シミュレーションドライバ１３６が与えられた入力および実際の状態に基づいてプロセスの出力を計算する。次に、この出力が、そのrunについての一意のIDとともに、コントローラ１３０の観測器コンポーネント１３４に渡される。観測器コンポーネント１３４は、供給された出力データに基づいて、コントローラ１３０に対する状態推定を更新する。
【００６９】
ここでの議論の焦点は、状態推定にあるので、実施にあたっては非常に単純な制御則が制御則コンポーネント１３２によって選択される。制御則コンポーネント１３２は、現在のツールおよび製品のバイアスに対する状態推定値を使用し、目標とする出力を生成する入力をプラントインバージョン（plant inversion）を用いて解く。もちろん、現実の実施においては、様々な異なった制御則を使用することができる。この制御則を用いることにより、目標値からの出力の偏差は用いられた状態推定の誤差を示す。
【００７０】
観測器コンポーネント１３４の設計には、調整に使用できる多くの調整可能なパラメータが含まれる。上述したように、これらのパラメータは、分析中のシステムの仮定されたノイズ特性に関係する。これらのシミュレーションでは、多くの仮定が行われる。第1に、すべての測定値は同様に確からしいと仮定され、よってReff行列に含まれる分散の推定は常に同じである。現実の製造工場においては、測定ツールからのメインテナンス情報およびある特定の製品に関する情報は、異なった値をもたらす可能性がある。他の仮定は、プロセスノイズに関するものである。プロセスモデル内のノイズの項は、シミュレーションを通して一定である。GおよびQ行列は、異なった状態に影響を与えるノイズは互いに関係せず、そしてツール状態は製品状態よりもノイズが多くなるように、設定される。繰り返しになるが、実際の応用では、これらの値を決定するにはオフラインの分析を用いなければならない。このモデルに従うと、ノイズはすべての状態に影響を与える。それは、現在のrunにおいて使われていない（アクティブでない）ツールや製品に対応するものにさえ及ぶ。
【００７１】
これらのノイズ推定はモデルの一部であって、シミュレーションが実行されるときにシミュレーションに入力される実際のノイズとは関係がない。異なった結果を達成するために、推定値を操作することもできる。例えば、観測器があまりにも緩慢であるときには、プロセスノイズの項を高めに設定することができる。このときパラメータはより大きな不確定性を持つことになるので、観測器コンポーネント１３４は、状態推定値に対してより大きな調整を行う。
コントローラ１３０に対する最初の試験（テスト）は、システムの状態についての情報がなにもないところから出発し、システムを制御可能な状態に持っていけることを確認する。現実の状態は、ノイズおよびわずかな量のドリフトを含む。図４は、コントローラ１３０が、１０個のツールと１０種の製品を持つプロセスに配置されたときの出力をプロットしたものである。コントローラ１３０は状態の値についてなんら事前の情報をもっておらず、それらを素早く学習して、プロセスを制御下に持っていくことができる。
【００７２】
コントローラは、すべての状態推定がゼロになるように、初期化される。最初の共分散行列も設定される。ここで、各状態についての初期の不確定性を表すように選択された値を持つ、対角行列を出発点として用いる。製品ごとの差は、ツールの差よりも大きなものでありうるので、製品状態についての初期分散は、ツール状態のそれよりも高めに設定される。
【００７３】
図４に示されるように、コントローラ１３０は２５runの後、偏差（error）のほとんどを打ち消し、その後は、定常動作状態で動いている。出力における定常ノイズレベルは、シミュレーションドライバ１３６によってプロセス状態に入力されるノイズの大きさにおおよそ等しい。コントローラ１３０は、未知量２０の状態から出発して、おおよそそれと同数のrunの後、それらすべてをまあまあよく決定している。
【００７４】
コントローラ１３０がこの仕事を達成できることを示すことができるというのは重要であるが、それが現実の製造環境においても実現できそうかというと、そうとは限らない。コントローラ１３０の状態についての合理的な初期の推測値を決定するのに、オフライン分析を用いることができる。もしプロセスが、コントローラ１３０が配備されるまえに、このツールと製品の組み合わせで動いていたとすると、コントローラ１３０の観測器コンポーネント１３４も、コントローラ１３０を動かす前に、製造データに基づいて実行を行って正しい状態推定を確立することができる。
【００７５】
時間の経過とともに、新しい製品がゆっくりと導入され、現在の製品は徐々に消えていくのはよく起こることである。この例では、以前のケースと同様に、全部で１０個のツールと１０種の製品があるが、シミュレーションのルールは異なっている。１０個のツールすべてが開始時において利用可能であるが、製品は時間を追ってゆっくりと追加される。最初は、1種の製品のみが存在するが、１００runごとに新しい製品が一つ、構成に加えられる。コントローラ１３０の応答を図５に示す。この図は、ツールと製品との組み合わせの実効バイアスを、１０個のツールについての１０種の製品にまで増やした場合のプロットである。各runについて、実行される製品および使用するツールが、利用可能なセットのなかから無作為に選択される。図５のプロットは、入力uをゼロに保ったときの出力yを図示することで得られる。
【００７６】
新しい製品は、それが最初に追加されたときは外乱のようにみえるが、コントローラ１３０は外乱に素早く対処する。実際の製造環境においてなんらの準備もなしに、すべてのバッチがまったく新しい製品の製造に投じられることは考えにくい。新しい製品が導入されるときは、多くの場合、コントローラ１３０に適切な情報を与えるために、バッチの一部において実行される。その他の場合は、技術者が、新しい状態についての合理的な初期推測値を効果的に選択するための十分な知識を有している。
【００７７】
新しい製品が導入されるときは、直感的に、高い確率で最初の状態推定に誤差があることが理解できる。この理由から、もしコントローラ１３０が現実に目標値を達成しなかったときは、新しい製品についての状態を調整しなければならない。制御アルゴリズムにおいて、新しい状態についての初期分散推定を特定することでこれを達成できる。新しい状態が追加されると、初期状態推定を持つ新しい要素が状態ベクトルに挿入され、誤差共分散行列に新しい行および列が追加される。これらのシミュレーションにおいて、この共分散行列の新しい行および列は、対角要素を除き、すべて０である。この要素は、その状態に対する初期分散推定値に設定される。この初期推定値に高い値を設定することは、新しい状態が使われる最初のrunから、新しいrunがより多くの誤差を取り込むことを意味する。
【００７８】
続いて試験ケースは安定したシステムから開始され、コントローラ１３０が正しい状態値の近くから始動すると仮定する。このようにして、観測器コンポーネント１３４が初期状態推定学習を毎回再実行する必要なしに、個々の外乱を注入し、分析することができる。このセクションでは、一連の標準的な外乱が生成され、コントローラ１３０に対するプロセス信号として用いられている。それぞれのケースにおいて、システムは安定した動作点から出発し、コントローラ１３０は現在状態推定（current state estimate）を持つ。コントローラ１３０の、ステップ外乱、ランプ（ramp）外乱および目標値変更に応答する能力が最初に試験される。次に、より難しい問題、例えば測定遅れおよび測定の欠落について、より現実的な状況に直面したときのコントローラ１３０のロバストネス（robustness）を見るために説明する。
【００７９】
ここで検討している外乱は、繰り返し可能で、系統だった影響を内包していることに注意する必要がある。一般的には、ノイズとして現れる、乱雑で予測不可能な高周波成分もあるが、これらは選択されたプロセスモデルの要素には取り込まれない。観測器コンポーネント１３４は、選択されたモデル形態の範囲中の変動のみを検出でき、コントローラ１３０のゴールはそれらを排除することである。
【００８０】
ツールの性能に明らかに、そして直ちに変動をもたらしうるイベントは数多くある。ステップ外乱は、フィルタおよびコントローラを試験するのに使われる一般的な信号である。数学的にはステップ外乱はステップ関数として表される。
【数８６】
2005502947.tif 000092
【数８７】
2005502947.tif 000093
シミュレーションドライバ１３６は、１００runの後、ツール状態の一つにステップ外乱を加え、コントローラが予期しない外乱を正しく排除できるようにする。このシステムのような複数のプロセス実行設定では、ステップ外乱は伝統的なシステムのようには単純ではない。単純なシステムでは、ステップ外乱はそれが現れたときから補正が行われるまでずっと可視的である。しかしながら、ここで検討中のシステムでは、コントローラ１３０は、すべての時間ステップで、異なった状態の組み合わせを観測しているのである。この外乱は、摂動を受けた（perturbed）状態が用いられるときにしか可視的でないので、ときどきにしか現れない。
図６に示されているように、コントローラはステップ外乱を１００runで補償することができる。１つより大きな「スパイク」がグラフにあるが、これはコントローラ１３０が、外乱が製品状態にあるのか、またはツール状態にあるのかを決定しなければならず、そして疑わしいツールまたは製品が再度使用されるまでにいくつかのrunが経過するからである。コントローラがあるrunについての結果を不正確に予測したとき、どちらの状態推定に誤りがあったのかはすぐにははっきりしない。上述のように、観測器コンポーネント１３４は、パラメータの不確定性についての現在の推定値を、その誤差をパラメータに割り当てるために用いる。直感的に、誤りのある状態を分離するために、ツール状態または製品状態を共有する、後続のrunを用いる必要がある。後続のrunのそれぞれは、外乱をより小さな程度に示す。
【００８１】
カルマン推定手法に存在する誤差共分散行列は、状態が互いにどのように関係しているかの情報を含む。このケースでは、ステップ外乱が最初に現れたとき、観測器コンポーネント１３４は、使用されたツール状態または製品状態のどちらに誤りがあったのかを知らない。しかしながら、それは誤差を、それらの相対的な不確定性に応じて２つの状態の間で分配する。これは、外乱が単一の状態に対してのみであったときには、一つの状態推定が部分的に誤って動くことを意味する。しかしながら、関連する２つの状態に関係する誤差共分散行列のなかのクロス（cross）項もまた調整される。この調整は本質的に観測器コンポーネント１３４に、適切な情報が利用可能になれば不正確に移動された状態推定を修復するために使用することができる、情報を与えるものである。
【００８２】
情報の埋め戻し（backfilling）は、観測器コンポーネント１３４の便利な特性である。上述したように、複数プロセス環境に対する共通の状態およびパラメータ推定の手法は、データの分割にその基礎を置いている。分割されたデータの特徴は、一つの測定はそれ自身と同等なもの（peer）にしか影響を与えないということである。例えば、一つのパラメータの新しい測定値からの情報は、異なったパラメータにおいて観測（observed）された信号を確認したり、または排除するためには使用できないということである。しかしながら、この組み合わされた推定手法は、このようにデータを共有できる。これは、適切な状態推定を達成するのにより少ない測定値で済むということを意味する。
この手法の有用性についての別の例は、認定（qualification）データの用い方にある。実際のプラントにおける多くの認定イベント（事象）がツールのメインテナンスまたはその他の個別イベントの後で実行されるのに対し、認定イベントを状態推定に役立てることが可能である。大きな外乱が検出されたとき、観測器コンポーネント１３４は実際に誤差を異なった状態の間で割り当てなければならない。しかしながら、影響を受けたツールにおいて認定試験をすぐさま実行することで、コントローラ１３０への外乱の影響を最小限にするのに役立つ。認定イベントは、あるパラメータプロセスツールに関する状態の直接的な観測のことである。直感的に、これによって、観測（observed）された誤差がツールに起因する問題なのか、製品に起因する問題なのかが明らかになる。共分散行列は、ツール状態が観測された後、どのような調整が行われたのかを記憶しているので、影響を受けた状態の両方が正しい値に動かされる。
【００８３】
図７に示されるシミュレーションは、図６のそれと同じものであるが、このケースでは外乱が検出されたすぐ後にツールの認定が強制されている点が異なる。このケースでは、外乱はずっと早く排除される。
プロセスにランプ、連続するドリフトなどが現れる多くの状況もまた存在する。このシミュレーションでは、ツールの一つが、run１００と４００の間でランプしている（ramping）。コントローラ１３０にとって、このタイプの外乱は、状態推定が継続的に更新されたとしても、目標値からの持続性の偏差として見える。これまでのすべてのシミュレーションにおいて少量のドリフトが存在したが、しかしこのケースでは、ドリフトの大きさがずっと大きい。
【００８４】
図８に示すように、コントローラ１３０はこの外乱をある程度まで補償することができる。一般的に、これは除去するのが難しい外乱であり、ドリフトの期間中、コントローラの性能全体が落ちる。コントローラは、状態行列を拡大してランプ外乱がモデルに含まれるようにすることで、この種類の外乱を除去するように特別に調整することができる。しかし、これはその他の種類の外乱に対する性能との間で、トレードオフの関係を生じさせる。この特定のコントローラは、ステップ外乱への対処によりずっと適している。このシミュレーションのこの規模のランプ外乱は通常、ツールの大きな問題を示しており、シャットダウンにつながる可能性が高い。
【００８５】
実際の製造環境では、製品の次のバッチをrunさせる前に、測定結果を待つことがいつも可能なわけではない。ウェハを個別に取り出さなくてはならないので測定にはかなりの時間がかかり、通常それぞれのウェハ上のいくつかの位置が測定されることになっている。プロセス（加工）ツールを常に稼動させておくことが重要なので、各バッチが終了した後できるだけ早く、それらを進行させて再稼動させなければならない。従って、測定はプロセス実行のステップからいくつかのrun分遅れうる。これは、時間遅れプロセスの単純な例ではない。なぜなら、遅れは一定ではないからである。測定値は、測定が終わるとやってくる。そして、コントローラはそれらをできるだけ早く考慮にいれる必要がある。
この一連の試験において、前の試験から得られたプロセスのデータセットが再度用いられる。しかし、測定値は、観測器コンポーネント１３４にすぐには送られない。代わりに、測定値は常にプロセスの実行から決まった数のrunだけ遅れる。図９に示されたシミュレーションは測定値に１０runの遅れを持ち、図１０に示すシミュレーションは３０runの遅れを持つ。
【００８６】
これらの試験では、それでもコントローラ１３０はステップ外乱を除去することができるが、応答は遅れる。その理由は、測定値が到着するまで誤差は見えないからである。測定の遅れがないケースと比較して、それらの目標値を外すrunがより多くなる。そして、より多くの遅れを伴う試験は、外乱の後、安定するまでにより長い時間がかかる。伝統的な単一入力／単一出力のプロセスのように、測定の遅れがあまりにも大きい場合、コントローラ１３０は無力になってしまう。
すべてのプロセス実行ステップで、すべてのバッチについて、制御に重要な特性を測定するのは常に可能なわけではない。これは数々の要因の結果である。第１に、特定のプロセス実行後、あるバッチのウェハを測定することは、それらのウェハがプラントの中にある時間を増やすことになる。正確な特徴づけに対する必要性は、ライン上に材料をできるだけ速く流す必要性とバランスを取らなければならない。代表的なサンプルを作るのに必要なだけの材料のみが測定される。また、与えられた時間の間に、どのくらいの回数観測をしなければならないかによって、プラントに備え付けなければいけない測定ツールの数が決定される。そのようなツールは通常とても高価なので、これもまた制約条件となる。
【００８７】
従って、コントローラ１３０が設定を計算しなければならないが、測定システムからフィードバックを決して受け取ることがないrunもありうる。シミュレーションの環境では、この状況の影響は測定可能である。なぜならば、シミュレーションドライバ１３６が、欠落している測定値がなんであったのかを常に決定して、それらをコントローラ出力のチャートに加えることができるからである。これらのシミュレーションでは上述のステップ外乱のケースが用いられているが、コントローラ１３０は測定値の３分の１しか受け取っていない。
【００８８】
図１１は出力がコントローラ１３０にはどのように見えるかを示したものであり、一方、図１２は現実の出力を示している。これには、コントローラ１３０が見ることができなかったバッチも含まれている。コントローラ１３０が見ることができる測定値は、図６に示された完全な測定値のケースに、まあまあよく匹敵している。しかしながら、ステップ外乱の時間の周辺で測定されていないバッチの多くは目標から外れている。グラフに３つのスパイクがあるという事実は偶然であり、３回の測定ごとにその１つの値が使われているという事実とは関係がない。この特定のケースにおいて、外乱による影響を受けた３番目のrunが初めて測定されたものである。図１３は、図１１および１２のシナリオと同じケースを示しているが、異なった測定値は除かれている（つまり、測定値の異なる３分の１はコントローラ１３０によって受信されていない）。図１３に示されるように、異なる測定値が除かれると、コントローラ１３０の総合的な性能が変化する。
【００８９】
プロセスの条件に応じて、異なった変数が観測し易かったり、しにくかったりする。続くセクションでは、より簡単なものに対して、同様の設定で、しかし異なったプロセスのルールおよび条件で、一連の試験が実行される。これらの試験のシナリオでは、現実的な制約をプロセスの動作に取り込もうとしている。検討されている変数はプラントの大きさ、製品の優先順位付け、ビジネス上の実施規則を含む。
実際の製造工場は多くのツールおよび製品を有している。２０個のツールおよび５０種の製品といった範囲の値が、あるプロセス領域については合理的な値である。各プロセス領域は、それらのプロセスの流れのなかの数多くの異なったポイントで複数のバッチを含んでいるので、製品の数は非常に多くなりうる。与えられたある製品上に形成されている各レイヤーは、状態推定のアルゴリズムに関していえば、まるで異なった製品であるかのように振る舞うことがある。ここでのシミュレーションrunは１０個のツールと５０種の製品を含む。この大きなシステムにおけるステップ外乱に対するコントローラ１２０の応答は図１４にプロットされている。
【００９０】
図１４のプロットは図６に示された１０×１０のシステムについてのプロットに非常によく似ている。コントローラ１３０は、原因（offending）状態を素早く特定して、外乱を除去することができる。この結果は重要である。なぜならば、それは状態推定のルーチンがずっと大きなシステムにまで拡張することができる能力を持つことを示しているからである。
多数の製品およびツールに関する問題に対処する一つの技術は、切り替えの前に、特定のツールについて特定の製品をできるだけ長く実行しつづけることである。この技術は一般にツールデディケーション（dedication，専念）と呼ばれ、非常に広範に用いられている。製品よりもツールの数が多いような状況では、それによって、制御の問題を、大きな多変量の問題から複数の簡単な単一変量の問題へと減少させる。各ツール−製品の組み合わせについて、組み合わせの状態のみを追跡する必要があり、コンテキストの間で情報は共有されない。通常は、ツールの数よりも製品の数の方が多い。よってツールは、切り替えと切り替えの間、ある特定の製品について長いrunに捧げられる。
しかしながら、ツールデディケーションはトレードオフの関係を含んでいる。ツールデディケーションの手法は、与えられたあるバッチがrunすることを許される潜在的なツールを制限してしまうことにより、柔軟性を減少させる。ある特定の製品のスループットが問題となったとき、ツールデディケーションは受け入れがたい遅れを生じさせる可能性がある。また、例え一時的にでも、あるツールを停止しなければならないときに問題が発生する。その特定のツールにおいて処理されている製品は他のツールに移さなければならない。そして、新しい組み合わせについての適切なプロセス実行設定を見つけるために実験を行う必要がある。
【００９１】
ここで説明したパラメータ推定の手法は、ツールデディケーションによって影響を受ける。なぜならば、ツールデディケーションによってツールと製品の状態のある組み合わせがその他のものよりも、ずっとよく用いられるようになるからでる。直感的に、もし与えられたある製品が同じツールにおいて常に処理されていたとすると、そのツールおよび製品に対する複数の状態推定中の誤差と誤差とを区別するのはより困難になる。次に説明する２つのシミュレーションは、上で使用された１０個のツールおよび５０種の製品のステップ変化のデータセットを用いているが、デディケーションを実行する程度において違いがある。
【００９２】
図１５は、１０個のツールと５０種の製品のプロセスについてのコントローラ１３０が、run１００で、予期しないステップ外乱に応答したときの反応を示したものである。このシミュレーションにおいて、ツールデディケーションの短い連続したrunが、その時間の２５％だけ異なったツールに切り替えることによって、促進される。図１６は、長い期間のツールデディケーションが促進されるケースを示す（つまり、その時間の１０％のみが切り替え）。
【００９３】
図１５および図１６のシミュレーションの結果は制御出力に数多くのスパイクを示している。デディケーションを長いrun実行した場合のスパイクは、よりずっと劇的である。スパイクのそれぞれは、異なったツール／製品の組み合わせへの切り替えによって生じる。それに対して、ステップ外乱は、これまでのケースよりもずっと素早く除去される。言及すべき他の有益なことは、スパイクとスパイクの間のノイズレベルがこれまでのシミュレーションよりも小さいことである。理想的には、コントローラ１３０はこの減少したノイズレベルを常に実現するが、これは不可避なトレードオフの一部である。以下にさらに詳細に説明するが、これらの試験において定義されたシステムは、デディケーションが有効になっているときは不可観測（unobservable）である。デディケーションのrunの間、測定値はツール状態と製品状態の組み合わせとして取得される。コントローラ１３０は、出力誤差が検出されたときは常に、どちらか一つまたは両方を調整しなければならない。そして、本当はどちらに誤りがあったのかを決定する方法はない。切り替えの時間になると、高い確率で少なくとも一つの状態推定が大きな誤差を持つ。従って、ツールデディケーションは、必然的な切り替えが発生するときに不確定性が大きくなることと引き換えに、短期間のゲインを得るというトレードオフである。
【００９４】
次のシナリオは、ある特定の製品がその他の製品よりもずっと頻繁に現れるという、典型的な製造のケースである。このシナリオの目的は、主要な製品の長いrunの間でも、あまり重要でない（マイナーな）製品が「忘れられて」いないことを示すことである。さらに、マイナーな製品から元に切り替えたときに、主要な製品に支障が生じるようではいけない。この１０個のツールと１０種の製品のシミュレーションにおいて、過半数のrunがある一つの製品についてのものである。他の９種の製品は、残りのrunにおいて均等に分配される。これまでのシミュレーションにあったように、ステップ外乱がツールの一つにrun１００で影響を与える。図１７に示すように、コントローラ１３０はこのシナリオに効率的に対処する。
【００９５】
ロバストネス（堅牢性）と安定性の観点からすると、考慮しなければならない２つの重要な考え方がある。伝統的には、その考え方は、制御動作および状態更新は、それらがノイズや古い測定値にプロセスを不安定にするようなやり方で応答するようにならないように、あまり積極的でないことを確認するというものである。この分析は、選択された特定の制御則およびそのモデルが実際のプロセスをいかによく表現しているかに強く依存する。製造用のアプリケーションは非常に積極的な制御則を必要とするので、以下の議論では、状態推定それ自身の安定性およびそれがいかによく現実の状態を追跡するかについて焦点をあてる。
【００９６】
同じ測定値が各時間ステップにおいて得られる、伝統的な時間不変（time-invariant）の可観測プロセスでは、カルマン推定手法において使用される誤差共分散行列は最終的には安定状態に到達する。この安定状態において、プロセスに内在するノイズに起因する不確定性の増大は、測定値に起因する不確定性の減少に正確に釣り合う。プロセスの不確定性のモデルがかなり正確であるかぎり、共分散行列の対角項は、それぞれの状態推定の不確定性について安定した状態値を提供する。これは、予期しないプロセスの外乱の例外とともに、制御プロセス出力の不確定性が同様に知られていることを意味する。ここで重要なのは適切なプロセスの特徴づけである。なぜならば、これらの結果は、内在的なプロセスノイズがよく理解されたときにのみ意味があるからである。
【００９７】
カルマン状態推定器（Kalman state estimator）が、出力行列が変化するようなプロセスに用いられたとき、誤差共分散行列は安定状態に到達しない。出力行列が変化するたびに、異なった状態推定値の間の相対的な不確定性が変化する。安定状態を達成できないとしても、パラメータ推定についての不確定性の境界を示すことができることが重要である。これは、制御プロセス出力についての不確定性について同様に境界を示すことを可能にする。明らかに、パラメータ推定値の不確定性が許容可能なレベルにとどまることを保証するためには十分な測定値を得なければならない。次に、この不確定性が、異なったタイプのプロセス実行条件および測定値によって変化するかについて詳しく説明する。
【００９８】
適応制御方法におけるシステムパラメータ推定の部分は、閉ループ（closed loop）システム同定手法から構成されている。閉ループのシステム同定は困難である可能性がある。なぜならば、コントローラ１３０がプロセスの外見上の入力−出力の挙動を大きく変更できるからである。コントローラ１３０がよく機能しているとき、プロセスは目標値の付近で非常に小さな変動をもって動いている。このケースでは、システムの動力学（dynamics，ダイナミクス）は観測困難である。
閉ループシステム同定において用いられる典型的なアプローチは、持続性の励起制限（persistent excitation constraint）である。これの一般的な考え方は、選択されたモデル形態において、すべてのモードを励起するのに十分なほどプロセスの条件が変化するようにする、ことにある。コントローラ１３０がなんらの外乱もなしに目標値においてプロセスを実行しているとき、プロセスの状態にはほんのわずかな動きしかない。そして、システムの動力学は観測するのが困難（または、ある場合には不可能）である。
【００９９】
持続性の励起では、操作される変数に対して小さな摂動を注入して、プロセスの目標値周囲の小さな揺らぎと引き換えに、動力学（ダイナミクス）が見えるようにする。計画的な実験として、同様なやり方で、プロセスの入力を見ることも可能である。モデルパラメータを推定するために実験を設定するとき、モデル形態のすべての可能なモードを調査しようとする入力ポイントが選択される。もしこのプロセスが、かつてこの実験における入力値と似た入力値で実行されたことがあるとすれば、それはモデルパラメータの可能な限りよい推定値になるということを証明できるべきである。
標準的な持続的励起技術を、バッチプロセス実行環境が普及しているプロセスシステムおよびモデルの多くに適用するのは単純ではない。多くの場合、推定されるべき状態変数が一般に選択される入力変数に直接的な影響を受けない。典型的な例は、推定されるべき状態が速度であって、プロセス実行の時間が操作される、時限プロセス（timed process）である。反応炉の付着物または消耗品の劣化によって、選択されたプロセス実行時間は実際に、将来のrunについての処理速度に影響を及ぼしうる。しかしながら、この時間は、この速度の違いが顕著になるにつれ、標準的な動作範囲からかなり外れたところに調整されなければならない。
【０１００】
標準的な持続的励起技術が使用できるプロセスも存在する。しかしながら、多くのプロセスでは、いくらか異なったアプローチを取らなければならない。その目標値に近づいているすべてのバッチには高い重要度が置かれるので、ほとんどの時間、その目標に影響を与えないで実行させながら、プロセスを励起させる時間を選択するための技術を探す必要がある。
製造の環境において得られるデータのすべてが同じではないということを認識することが重要である。データの品質は何が測定されたのか、そしてそのデータが得られた条件に依存しているので、あるデータはより有益である。データの情報内容は、そのデータから観測器がなにを知ろうとしているのかに依存する。例えば、与えられたある圧力において温度を繰り返し測定すると明確に温度がわかる。しかし、それらは、異なった圧力で温度がどうなるかについての洞察は与えてくれない。
【０１０１】
選択されたモデル形態に基づいて、異なった入力信号が異なったモードおよび周波数レンジを強調することができる。次のセクションで説明するように、プロセスをうまく制御するためには正しいときに正しい情報を得る必要がある。検討中のプロセスを理解することでしか、必要な情報の正確な理解には到達できない。
可観測性の条件についての標準試験を用いて、センサの配置についての異なった方針を、それらがもたらすことのできる情報の観点から、比較することができる。システムが可観測であるときでも、どのパラメータが予測可能であるかについては、その容易性の程度は変化する。可観測性（observability）行列の条件数（condition number）は、これらの効果に対する洞察を与えてくれる。ここで可観測性についての技術を用いて、異なった動作条件下における推定能力を比較することができる。
単純な例では、プロセス制御に関連して閉ループ同定が実施されるときのよい情報の重要性を示す。入力が加えられない限り、出力が一定である単純なプロセスを考える。目的は目標値の変化に素早く応答することである。しかし、入力におけるゲインは、予測不可能な方法で変動する。
以下の方程式がプロセスを表す。
【数８８】
2005502947.tif 000094
ここでbkは未知のゲイン（時間kにおいて有効）、ukは印加された入力である。
Bは未知のパラメータなので、推定の目的のためには、それを追加状態として加える必要がある。現在の動作点のまわりでシステムを線形化することによって、標準的なカルマン推定の手法を用いることができる。
これは、つぎのような方程式が示すように実現される。
【数８９】
2005502947.tif 000095
【数９０】
2005502947.tif 000096
ここで、δｆ／δｘｋ＝１，δｆ／δｂｋ＝ｕｋおよびδｆ／δｕｋ＝ｂｋである。
このシステムについて、可観測性の試験行列は、次のように与えられる。
【数９１】
2005502947.tif 000097
【０１０２】
従って、このシステムはｕｋが０でないときにだけ可観測である。安定状態動作点が０においてｕを持つことから、これは重要である。不知のパラメータｂは、ｕが０でないときにのみ特定できる。それは、つまりコントローラに対する持続的な励起制限によって実現できるものである。この単純な例は、いかに持続的な励起条件が可観測性の条件に関係しうるかを示すものである。
一般に、状態推定器を不可観測のポイントで動作させると予測不可能な結果をもたらす。しかしながら、外乱が存在する場合には、フィードバック制御を実行する必要がある。カルマン推定手法は、推定値をゆっくりと動かすようにする。なぜならば、推定値は、測定値を説明するのに必要な分だけ動かされるからである。
【０１０３】
以下の説明において、上述のプロセスは、異なった励起条件とともに実行される。第1のものは、励起を持たない。第２のrunは持続的励起制限が導入されている。第３のrunは時間的にわずかな部分だけ励起を実行している。すべてのケースにおいて、制御則コンポーネント１３２によってプラントインバージョン（plant inversion）が用いられる。そして、カルマン状態推定器が観測器コンポーネント１３４として用いられる。シミュレーションの過程において、ゲインｂの真の値が図１８に示されるようにある傾斜で上昇する（ramping）。制御則としてプラントインバージョンが用いられているので、状態推定における誤差は直ちに制御出力における誤差として現れる。
【０１０４】
図１９に示すように、第１のシミュレーションにおいて、入力は目標値が変化するまで印加されない。ゲインが変化しているので、新しい目標値が実施された第1の時間ステップにおいて、目標値からの大きな偏差が生じている。シミュレーションのほとんどの間、未知のゲインを観測する方法がないために、コントローラ１３０は情報不足の状態にある。
図２０に示す、第２のシミュレーションにおいて、持続的励起制限が加えられる。ここで、ゲインを推定することができるように、入力値は各時間ステップにおいて十分に変化する。目標値が変化したとき、コントローラ１３０は、従来のケースよりも小さな誤差で切り替えを行う。しかしながら、シミュレーション全体を通じて、ゲインを明らかにするために摂動が導入されている。
【０１０５】
可観測性の試験のために、可観測性試験行列の階数（rank）が一般に使用される。この行列が最大階数を持つと、条件数は有界である。第１のシミュレーションにおいて、行列の階数不足になるため、可観測性試験行列の条件数は無限大になる。これに対して、持続性励起の下では、条件数は合理的な限界の範囲にほぼ維持される。図２１は、第２のシミュレーションについての可観測性試験行列の条件数を追跡したものである。その他の有用な情報は、状態推定ルーチンで使用される誤差共分散行列のトレース（対角要素の合計）である。トレースは、共分散行列における明らかな不確定性の全体的な程度を与える。図２２および２３はそれぞれ、第１および第２のシミュレーションについてのこの値を示したものである。
【０１０６】
図２４に示す、第３のシミュレーションにおいては、目標値の変更がいつ起こるのかが前もって分かっていると仮定している。このケースでは、ゲインに関する情報が必要になるまで、プロセスをかき乱す（perturb）必要はない。ここでは、目標値の変更が直前に迫るまで、すべてがスムースに動く。目標値の変更が実際に正しく起こる。そして、プロセスは、情報が必要になるまでは乱されない。
パラメータについて学習を行うためにプロセスが励起されるケースは、純粋平均平方誤差目標（pure mean squared error objective）を使用したコントローラが取得しようとするものとは矛盾する。半導体の製造においては、異なった種類の評価関数が問題に結びつく。一般的に、製造されるデバイスは、インラインの目標値のほとんどに対して許容差を持つ。測定値が合理的に目標値に近い限り、デバイスは正しく機能する。許容差の領域内では、デバイスの最終的な出力特性には顕著な差はほとんどない。しかしながら、そこには非常に険しい傾斜があって、それを過ぎるとデバイスは単純に動作しなくなる。これの一つの例は、電気的コンタクトを作るためのプロセス層どうしのアライメントである。許容差領域にあるすべてのデータポイントをよいものとして扱い、外側にあるすべてのポイントを悪いものとして扱うことにより、この振る舞いを真似る評価関数を設けることは可能である。この種の評価基準は、持続的励起を含む観測手法に非常によくマッチする。なぜならば、励起は、許容差の領域内に安全に留まりながら、学習を促すことができるからである。
【０１０７】
データポイントの数はコントローラ１３０の有効性を決定する際に問題となる唯一の事項ではない。これまでのシミュレーションのそれぞれは、同じ出力変数の同じ数の測定値を有していた。データの順番および実際の値が情報の内容に影響を与える。データを取得したときの条件もまた重要である。
いつでも完全な情報を持ちつづける必要はない。第２のシミュレーションにおいては、プロセスゲインの正しい値が常にわかっていた。しかしながら、第３のシミュレーションでは、あるときどきにだけわかるゲインをもって、ちょうどよくプロセスを制御することができた。
【０１０８】
実際のプロセスでは、実際にそれが起こる前に、しばしば次に来る目標値の変更を知ることができる。しかしながら、プロセスもまた不知の外乱の対象である。これらの両方のケースにおいて、プロセスを目標値に素早く駆動するために、十分な情報を持つことが重要である。したがって、明らかに、プロセスについて知るためにそこにあるすべてのことを学習することと、摂動（perturbations）なしにそれを実行させることとの間には均衡がある。
上述の例では、誤差共分散行列のトレースと可観測性試験行列の条件数の両方が利用可能なプロセス情報の合計の指標として示されていた。これらの値は、コントローラ１３０がプロセスを可観測に保つために使用できる、励起制限を作るために用いることが可能である。
【０１０９】
次に、図３１に、製造システムにおけるスケジューリング活動（scheduling activity）のための方法の簡略化された流れ図を示す。ブロック３００には、製造システムに関連する複数の観測状態が定義されている。ブロック３１０では、この観測状態についての状態推定が生成される。ブロック３２０では、この状態推定に対する不確定性の値が生成される。ブロック３３０では、製造システムにおいて活動を実行するために候補となる複数のスケジュールが決定される。ブロック３４０では、候補となったスケジュールに基づいて、上記の不確定性の値に対する変更を予測する。ブロック３５０では、不確定性の値に対する予測された変更に基づいて、スケジュール候補のうちの一つが選択される。
【０１１０】
次に、上で決定された情報を用いた、製造システム１０に対するスケジューリングの決定について焦点を当てて説明する。ディスクリート部品の製造においては、各バッチが目標値に合致していることが絶対に必要であり、プロセスへの意図的な摂動はしないほうがよい。さらに、あるrunに対するプロセス入力が続くどのrunにも影響しないとするプロセスモデルを仮定することが一般的である。従って、同定の問題を別のやり方で見るのが有益である。この技術では、非伝統的な操作変数が、標準的な持続的励起と似たようなやり方で、プロセスに影響を与えることが示される。
【０１１１】
正しい情報を正しい時に持つことを説明した前のセクションが重要である。どちらのケースもデータポイントの数は同じであったが、結果は大きく異なっていた。明らかに、これらの知見をより有用な状況に外挿するためには、正しいデータというのが何を意味するのかを定義できることが都合がよい。
このセクションでは、正しい情報を正しい時に持つという考えを定量化する方法を見つけることを目標とする。例えば、重要な製品についてプロセスを実行しようとする前に、すべての適切な情報が利用可能であるべきである、ということは直感的にわかる。しかしながら、この理論を首尾一貫して、そして客観的に適用するためには、それがどのように使われるべきなのかと同様に、どんな情報が重要なのかを知ることが参考になる。以下にさらに詳細に説明するように、行われるべき決定の観点から出力の予測値を簡潔に表す数学的な目的関数が生成される。異なった動作選択について適切に作成された目的関数の値を比較することで、上述の必要性を満足する解法に到達することができる。
カルマン推定手法を用いるときに利用可能な共分散行列が役立つ洞察を与えてくれる。この行列の対角要素がそれらに対応する状態推定の現在の不確定性の合計を測定する。この共分散の展開（evolution）は、プロセス実行（加工）の順番および選択された測定値によって完全に決定される。システムが次の時間ステップに進んだとき、状態の不確定性によって誤差共分散行列は方程式ごとに更新される。
【数９２】
2005502947.tif 000098
測定値を取得したとき（特定のCrおよびRrを用いる）、誤差共分散は次のように更新される。
【数９３】
2005502947.tif 000099
これらの方程式は、測定された、またはプロセスの現在の状態についての実際の数値には依存しない。これらは、単に、基礎となるシステムの構造に関するある仮定が与えられたときの異なった数量測定の影響を定義するものである。
共分散行列の項を追跡していくのは複雑な作業である。その理由は、異なった変数の間の関係について知られているすべてのことを考慮するからである。ある一つの変数の測定値をとりあげると、その他の関係する変数の将来の測定値がどのように将来取り扱われるかに影響する。
非常に単純なシステムの例でこの考え方を説明する。次の方程式で示される、２つの状態および２つの測定値を持つ形式上静的なプロセスを考える。
【数９４】
2005502947.tif 000100
【数９５】
2005502947.tif 000101
このシステムは、x1が測定可能なツール状態で、x2が直接利用できる測定値を持たない製品のパラメータであるような単純なプロセスを示していると考えることができる。とにかく、両方のパラメータをできるだけよく特定できることが重要であり、直接的な測定はそれらのうちの一つに対してだけ可能である。
【０１１２】
以下の一連のシミュレーションのそれぞれにおいて、y1とy2の等しい数の測定値が取得される。新しいシミュレーションのそれぞれで、測定の順番を変化させて誤差共分散におけるその効果を決定する。すでに説明したカルマンフィルタを基礎とした手法を状態推定器として用いる。ここで、すべてのノイズおよび分散推定値が一致しているところから始める。両方の状態についての分散項をそれぞれのケースについてプロットする。２つの測定値に対する実効測定マッピング行列（effective measurement mapping matrices）は次の方程式で示される。
【数９６】
2005502947.tif 000102
【数９７】
2005502947.tif 000103
【０１１３】
図２５に示すように、第1のシミュレーションでは、y2についてのすべての測定が最初に実行される。なぜならば、測定は両方の状態によって影響を受け、状態の相対的な値に関する情報はない。両方の状態の不確かさ（不確定性）は、シミュレーションの前半を通して、着実に増加する。後半で、y1の測定値を取得する。これはx1の直接的な測定なので、その状態に関する不確定性は急速に落ちる。
しかしながら、x2に関する情報がなにもないので、その不確定性は急速に増大する。チャート上で不確定性の合計が最も低いポイントは、中間点の直後のrunであることに注目していただきたい。ここで、x1の真の値についての最初のちょっとした情報（a first bit of information）が提供される。そして、共分散はx1とx2とがどのように関係しているかについての情報をすでに含んでいる。
【０１１４】
図２６に示す、第2のシミュレーションにおいて、すべてのy1の測定が最初に行われる。その結果は以前のケースに似ている。y1が測定されているとき、x1の推定値の不確定性は低いままであるが、x2の不確定性は急速に増加する。y2が測定されているとき、両方の推定値の不確定性が増加する。この場合もやはり、不確定性の合計が最も低いポイントは切り替えのところである。一つの測定値のみが取得されるときはいつでも、それを補う測定値が得られるまでは、全体としての不確定性は増加しつづける。
【０１１５】
図２７に示す、第３のシミュレーションは、最初の２つのシミュレーションのいくつかの結果を利用している。ここで、測定はy1とy2とについて交互に行う。情報を常に共有することによって、両方のパラメータ推定についての不確定性を低く抑えることができる。このプロセスの状態遷移行列は恒等行列であるので、この単純なシステムについての可観測性試験行列は次のように与えられる。
【数９８】
2005502947.tif 000104
このシステムについては階数２が必要とされるが、この行列はその条件を満足する。しかしながら、もしどちらの測定値も利用可能でないときは、システムは可観測ではない。これは、複数の測定値のうちの一つだけが長い時間の間使われると、不確定性が増大するからである。表６は、分散の平均値の観点から結果を整理したものである。
【表６】
2005502947.tif 000105
【０１１６】
典型的な製造工場では、より多くの製品が存在し、認定試験（qualification）のためのrunはずっと少ない。しかしながら、プロセス実行と測定の順番がパラメータ推定の品質に影響を与えるという考え方は変わらない。この試験が示しているのは、ある特定の種類のrunを長く引き伸ばしていると、すべてのプロセスパラメータを特定しようとしている推定器の全般的な効率を減少させるということである。複数の変動原因があるときに、一種類のrunのみを実行すると、推定手法が異なった誤差のソースを相互に識別できなくしてしまう。この一連の試験は、パラメータ推定の観点からは頻繁に製品およびツールを交換することはよいことである、という考え方の理論的な基礎を提供するものである。
【０１１７】
これまでのシミュレーションは、情報量を一組のデータに定量化することが可能であることを示唆している。得られた情報の品質は、データの量からは完全に切り離されたものであることは明らかである。情報の価値は、検討中のシステムの特性に強く依存する。外乱のない、完全に静的なシステムでは、新しい情報はあまり重要ではない。ひとたびシステムの特性が決定されると、どのような新しいデータも確認用として機能するにすぎない。しかしながら、潜在的な外乱を持つ動的なシステムでは、新鮮な情報が常に必要である。システムについてよく知れば知るほど、外乱をより容易に特定することができる。
【０１１８】
誤差分散行列は有用であり、追加の情報の必要性についての便利な指標である。最初にプロセスを適切に特徴付けることによって、システムのノイズ量の正確な推定がもたらされ、共分散行列の展開（evolution）はこれらの推定を取り入れる。共分散行列の展開（evolution）は、測定されたデータの値には依存しない。モデルに組み込まれるシステムノイズの特徴記述とともに、測定値の選択およびその順序が共分散行列に影響を与える。
【０１１９】
すべてのプロセス実行および測定イベントは、状態推定（シルコンフレックス）xおよび共分散行列Pxに、既知の方法で実際に影響を与える。Pxのトレース（対角要素の合計）は、状態推定値の不確定性の合計量の指標を提供する。これまでの平均平方推定のルーチンは、状態推定を変えることで誤差共分散行列のトレースを最小化しようとしていた。いまでは、それらがPxのトレースにどのように影響するかの観点から、プロセス実行の決定を見ることができる。
【０１２０】
次のセクションでは、いくつかのプロセス実行決定について、それらが情報の品質にどのように関係するかの観点から検討を行う。典型的なrun-to-runのプロセス設定に焦点をあわせるのではなく、その代わりに、レシピ設定値（recipe setpoint）のような全体的な傾向を見ていく。プロセス実行の順番およびツール選定の影響を、それらがシステムについて利用可能な情報に与える影響に関して、詳細に調査した。
簡単に言えば、半導体製造工場の最終的な目標は、作業中の製品を最小限のコストで、できるだけ早く得ることにある。数学的に表現できるいくつかの（矛盾する可能性のある）目標を特定することができる。いくつかの典型的な目標を要約すると次のようになる。
・スループットを最大化する（時間を最小化）
・原材料の使用を最小化する
・インライン（ライン内）の目標値からの平均二乗偏差を最小化する
・インライン目標値からのグロス（gross）の異常値（アウトライアー）の数を最小化する
【０１２１】
直感的に、これらの目標の間で、トレードオフがなされなければならないことは明らかである。極端な例を言えば、各ユニットの動作において、製品の材料の各バッチが処理される前に特別な実験を実行して、すべての重要なパラメータを知るようにすることもできる。逆に、何の実験も実行せず、なんらの測定も製品について行わなければ材料はドアからより早く出てくる。実際には、ビジネス上の要求が変化するにつれて、バランスも動く。理想的なコントロールシステムは、これらの変化する要求を非常に高いレベルで理解し、それに対応することができるものである。
【０１２２】
多くのプロセス実行上の決定が、状態推定アルゴリズムに利用可能な情報に影響を与える。ここでは、２，３の重要な決定について、それらが状態推定における補助となるようにいかに最適化できるかの詳細とともに説明する。一つの明白な決定は、どのバッチを測定するかである。多くのrun-to-run制御アプリケーションでは、すべてのバッチについて制御に重要なすべてのパラメータを測定することは現実的ではない。測定を実行すると、利用可能な製造時間を消費し、あるケースでは、追加的な材料（パイロットウェハのような）も同様に必要になる。これらの理由から、産業的な設定のrun-to-runコントローラは、数を減らしたプロセス測定のセットを有し、どれを機能させるかも設定されている。明らかに、プロセスに関するほとんどの情報を提供する測定値の集合を選択することが有利であり、全体的なコストを最小限にすることも適切である。
【０１２３】
典型的には、サンプリング計画を選定するには規則（ルール）ベースの方法が使用される。これらの方法では、一連の基準をチェックして、与えられたバッチを測定するかどうかを決定する。例えば、各メインテナンスイベントの後に、各ツールにおいて処理される最初のバッチを測定する、特定製品のすべてのバッチを測定する、これらの規則によってカバーされない３番目のバッチのすべてを測定する、ということを特定する。
【０１２４】
これらの計画は実施が容易であるが、これらが本当にプロセスに影響を与えているかどうかを理解することは難しい。ここで説明した方法は目的関数を基礎としている。ある計画と他の計画を比較して、どちらがよりよいかを決定するために用いられる目的関数が決定される。
【０１２５】
その他の重要な決定は、プロセス実行の順序それ自体である。不確定性を有し、外乱の対象となるプロセス実行の環境においては、プロセス実行（および測定）の順序を変更すると各バッチが処理されるときに利用可能な情報を変化させる。異なったプロセス実行ツールにrunのための材料を割り当てると、利用可能な情報に大きな影響を与える。この影響については、以下でさらに詳しく説明する。
これらのスケジューリングの決定は、それが状態誤差共分散行列に及ぼす影響の観点から分析することができる。しかしながら、その他の影響もあることに留意しておくことが有益である。プロセス実行の順序またはツールの割り当ての変更はスループットに影響を与える。従って、下流の影響（downstream consequence）も考慮することが有益である。ここで採用されている計画では、最初に、これらのプロセス決定のそれぞれを個別に分析する。次に、実用で現れる組み合わせに対処するより一般的な定式化を示す。
【０１２６】
あるプロセス実行計画（ツールの割り当ておよびプロセス実行の順序）が与えられたとき、測定値の合計数には制限がある。この制限を満たすかぎり、取得する特定の測定値は自由に選択することができる。処理エリアでは、プロセス中の材料またはプロセス前の材料のすべてが、測定可能なものの待ち行列（キュー）を構成している。この待ち行列が選択アルゴリズムの予測限界（prediction horizon）を定義し、長さｎを持つと仮定される。
【０１２７】
バイナリ変数のベクトルuが定義される。各要素uiが、待ち行列の一つのバッチに対応する。このベクトルでは、１はそのバッチが測定されることを意味し、一方、０はそのバッチが測定されないことを意味する。あるベクトルuが選択されると、予測限界全体にわたって共分散行列を展開（evolve）するのにプロセスモデルを使用することができ、すべてのプロセス実行および選択された測定値が考慮される。
【０１２８】
特定の共分散行列Pに関して性能指標J(P)を定義する。指標の一例はPのトレースである。誤差共分散行列の対角要素の合計値は、特定の推定値の不確定性の合計のよい指標である。または、特定のパラメータに対応する値に対して、任意の重大性に大きく基づいて、より大きくまたはより小さく重み付けすることができる。
予測限界内のすべての時間ステップにおける、入力ベクトルuに基づいて計算された性能指標の値の合計をfn(u)で表す。この目標関数の値は、基本となるシステムモデルの構造およびノイズパラメータとして選択した値に依存する。また、最適化が行われた時点における共分散行列の現在値に応じて、異なった結果が得られる。異なった時間において、異なった測定値がより必要とされていることは直感的にわかる。
【０１２９】
ここで、適切な測定値を定義するために最適化の問題を定義することができる。特定の例において、測定を行うことを許された待ち行列のなかのバッチの数をｃで表したとき、次の方程式がこの問題を数学的に定義する。
【数９９】
2005502947.tif 000106
【数１００】
2005502947.tif 000107
【数１０１】
2005502947.tif 000108
【０１３０】
この最適化の問題を解くベクトルuは、測定値の最大値についての制限を満足しながら、パラメータ推定値の不確定性を最小化する。
あるプロセス実行およびサンプリング計画が与えられたとき、材料が処理される順序には一定の柔軟性がある。エリアの中には、処理を待つ材料の待ち行列があり、一定の制限を満たす限り、その待ち行列のなかからどのような順序においてもバッチを選択することができる。すでに示したように、誤差共分散行列は経路依存性（path dependent）である。Runの順序を変更することで、各runが処理される際に利用可能な情報に影響を与えることができる。従って、この場合も同様に、最適化問題を解くのに誤差共分散行列を用いることができる。どのバッチが測定されるのか、および測定なしに単にrunされるのかは予め決定されている。
【０１３１】
バッチの待ち行列は長さｎを持つと再び仮定する。整数変数のベクトルuが定義され、各要素uiは待ち行列のなかの一つのバッチに対応する。このベクトルでは、各要素iの値uiは、そのバッチがrunするときの時間ステップを示す。この理由から、ベクトルuは１からｎの間のすべての整数を含むように制約されなければならない。
【０１３２】
前と同様に、性能指標J(P)は特定の共分散行列Pに関して、そしてプロセス実行の順序を選択する目的で定義できる。あるパラメータを他のパラメータよりも重要にするために重み付けを調整することができるものの、Pのトレースは合理的な選択肢である。
予測限界内のすべての時間ステップにおける、入力ベクトルuに基づいて計算された性能指標の値の合計をfn(u)で表す。上述したように、この目標関数の値は、システムモデルおよび行列Pのなかの初期値に依存する。上述のケース中にあったように、最適化の問題は、入力ベクトルuの適切な選択を決定することと定義することができる。
【数１０２】
2005502947.tif 000109
【数１０３】
2005502947.tif 000110
【数１０４】
2005502947.tif 000111
【０１３３】
プロセスの対象となる材料の一組が与えられたとき、プロセス実行のために適切なツールを選択する必要がある。当然ながら、関係する許容量およびスループットの理由から、いくつかの制約が存在する。しかしながら、制約の境界内では、システムに関するより多くの情報を得るために、特定のツールに対して特定の材料を選択することが可能である。異なった製品およびツールに関するパラメータの不確定性を追跡するフレームワークが与えられると、多くの経験則を示すことができる。あるパラメータがその他のパラメータよりも高い確からしさを持つという事実が与えられると、ビジネス上の見地からは、より信頼性の高いまたは現在の状態情報をもって、ツールに対してより重要またはクリティカルな製品を流すのが理にかなっている。
【０１３４】
同定の視点からすると、よく特徴付けられた製品をツールに流すことによって、不知のツールについて学習することが可能である。逆に、新しい製品を、高い確からしさの程度において理解されているツールに流すと、新しい製品について素早く学習するのを助ける。このセクションでは、これらの規則をより客観的に定義することを試みる。
【０１３５】
この問題は、プラント全体のスループットへの影響を考慮せずには、検討できない。ツールのスケジューリングの決定は、伝統的に、時間を最小にするという目標で行われている。この試験では、スループットの問題は単純な制限において取り扱われる。しかしながら、一般的に、これはより大きな最適化問題の別の部分に過ぎない。事実、他の研究者達は、スループットおよびインベントリ（在庫品）を最適化するために、モデル予測制御の定式化の使用を研究している。
【０１３６】
従来のケースにあるように、プロセスエリアには、runされるのを待つｎ個のバッチの待ち行列がある。各バッチについて、製品は知られており、そのバッチが測定されるかどうかは予め定められる。複数のプロセス実行ツールが１からkまで番号付けされると、整数変数のベクトルuを決定することができ、各要素uiは待ち行列の一つのバッチに対応する。このベクトルでは、各要素iの値uiはバッチが処理されるツールを示す。
【０１３７】
以前と同様に、特定の共分散行列Pに関して、評価指数J(P)を定義できる。どのプロセスツールを動作させるかを決定するケースでは、再びPのトレースを利用できる。そして、同様に、あるパラメータをその他のパラメータよりも重要にするために重み付けを調整することができる。
【０１３８】
予測限界内のすべての時間ステップにおける、入力ベクトルuに基づいて計算された性能指標の値の合計をfn(u)で表す。上述したように、この目標関数の値は、システムモデルおよび行列Pのなかの初期値に依存する。上述のケース中にあったように、最適化の問題は、入力ベクトルuの適切な選択を決定することと定義することができる。
【数１０５】
2005502947.tif 000112
【数１０６】
2005502947.tif 000113
【０１３９】
このセクションでは、所得したデータの量よりも多くの状態推定があることが示されている。情報量を一組のデータに定量化しようとする方法が説明されている。これらの方法は、状態推定に利用できる、より多くの情報をもたらすプロセス実行の決定に用いることができる。以下の議論では、これらの最後のいくつかのシナリオを、データ取得のための首尾一貫した計画に統一する。この計画は、安定した、信頼できる新しいデータの流れを供給することによって、不確定性を基礎に持つ状態推定を補うものである。
【０１４０】
これまでのサンプルのシナリオはプロセスの決定とその状態およびパラメータ推定に対する影響を含んでいた。シミュレーションのそれぞれはそれ自体検討する価値のあるものであるが、実際の製造工場においては、それらのすべてを同時に考慮しなければならない。以下の議論では、情報の収集とパラメータ推定についての包括的な計画の必要性を扱う。
【０１４１】
最初のステップとして、状態推定アルゴリズムの必要性をガイドとして用いることによって、スケジューリングおよびサンプリングのようなプロセス実行の決定ができることを最初に示す。この理由から、上述した最適化の問題を用いて、数多くのシミュレーションrunを示す。これらの試験シナリオのそれぞれにおいて、同じような方法で、プラントおよび状態推定アルゴリズムが初期化される。それぞれについて、異なったプロセス実行の決定が検討される。
【０１４２】
可能性のある解法の数を制限するため、これらのケースを容易に理解可能なものとするため、３個のプロセスツールと３種の製品を持つシステムをシミュレーションドライバ１３６によって特定する。以前の状態にあったように、変動の重要なソースは製品とツールの間の差のみであるという仮定がなされる。ランダムノイズおよびわずかなドリフトがシミュレーションの間に状態に加えられる。各シナリオにおいて、コントローラ１３０はシステム状態の知識がないところから出発して、完全に落ち着くまでに２００時間ステップrunする。次の２０runが試験の対象である。すべての試験で、基本ケースと同じrunの組を使用する。表７は、すべてのシナリオで使用される、基本の仕様（構成）を示す。
【表７】
2005502947.tif 000114
【０１４３】
試験の第1組は、最適なサンプリングプランの選択を取り扱う。この試験の目的は、測定を行うrunを選択して、すべてのパラメータ推定値についての不確定性を最小化することである。これは、方程式１０２に定義された目的関数およびそれに関連する制約を用いて実現される。目的関数の評価は、非線形の反復プロセスである。ひとたびある入力ベクトルuが選択されると、共分散行列を時間を通して前方に展開する（evolve）のに、プロセスモデルを使用することができる。
【０１４４】
この問題に対し、制約（方程式１０３および１０４）が、完全に実行解の空間（feasible solution space）を定義する。本質的に、ｃの測定値は可能性のあるｎから選択されなければならない。プロセスの実行順序は固定されているので、測定値が選択される順序は、それらがすべてプロセスの開始前に選択される限り、問題にならない。それは、定義できる、実行可能なスケジュールの候補の数が次の式で与えられることを意味する。
【数１０７】
2005502947.tif 000115
【０１４５】
合計で２０runにおいて、実現可能な領域の網羅的な調査によってこの最適化問題を解くことができる。次の表８は、いくつかの異なったｃの値についてのこの試験の結果を要約したものである。
【表８】
2005502947.tif 000116
これらのrunからいくつかの結果が直ちに明白である。最初に、ツールの認定runであるrun５が、それぞれの解に存在している。この特定のrunは、パラメータの真の値を特定する（lock down）するのにもっとも役立つ。このアルゴリズムは、試験の開始直後に測定runを行うことを好む。不確定性はrunごとに増加することから、これは直感的にわかる。開始直後においてより多くのrunを測定することによって、推定器は不確定性の平均を抑制することができる。少ない測定値を持つrunは、アルゴリズムがシステムの全体について学習しようとしていることを示す。ツールおよび製品の全体の範囲をカバーするいくつかのrunをサンプリングすることによって、推定アルゴリズムはシステムの全体像を持つことができる。
【０１４６】
目的関数の値が、おおよそ１０個の測定値の上で横ばいになるのを指摘するのは興味深い。このことは図２８でより明確に示される。これは、このアルゴリズムを実際に用いると、それらの時間的および資源的なコストを正当化するのに十分な新しい情報を提供することがない測定値を特定することになる、ことを示唆している。
【０１４７】
試験の第２組は、プロセス実行（加工）の順序選択を取り扱う。ここで、測定すべきrunは予め決められている。しかし、プロセス実行の順序は、与えられたバッチの待ち行列のなかで任意に配列可能である。この場合もやはり、目標は、パラメータ推定値の不確定性を最小化することである。方程式１０３および１０４の制約から、実行解の集合が定義される。この順序は、すべてのrunが終了するまで、待ち行列から一度に一つのバッチを選択していくことによって決定される。この問題は、ｎ！個の可能性のある解（つまり、スケジュール候補）を持つので、解空間の網羅的な調査は実用的ではない。
【０１４８】
これらの試験runについて、準最適な（sub-optimal）アプローチが、スケジュール候補の数を限定し、主要なポイントを表現するのに十分な近似解を得るために用いられる。解空間全体をカバーしようとするのではなく、ｎ個のより単純な一連の問題として解くことが可能である。それぞれのrunについて、目標に対してもっとも迅速な改善をもたらす一つのバッチを選択する。このプロセスは、すべてのバッチがrunされるまで繰り返される。
【０１４９】
試験を実行するために、サンプリングの計画を予め決めておくことが必要である。変化する情報量で試験を行うために、試験はすべてのバッチ、すべての他のバッチ、すべての３番目のバッチ、すべての４番目のバッチ、すべての５番目のバッチを測定するrunである。いつ測定値が得られるのかを知ることによって、コントローラ１３０は、利用可能な情報を最大化するプロセス実行の順序を決定しなければならない。
【０１５０】
次の表９は、プロセス実行順序の検討結果を表したものである。それぞれの試験において、新しい順序を用いて得られた目標値が、表７に示されているデフォルトの順序を用いて得られた値と比較される。それぞれの試験において、よりよいプロセス実行順序について解くことで、目的関数の値を著しく改善する。
【表９】
2005502947.tif 000117
【０１５１】
試験の最後の組は、ツールの割り当ての問題を取り扱う。ここで、一組のバッチについてのプロセス実行の順序およびサンプリングの計画は予め定められている。ここでの目標は、待ち行列のなかの各バッチに対して最も適切な処理ツールを選択することによって、パラメータ推定値の不確定性を最小化することである。方程式１０５および１０６の制約は、一組の実行解を決定する。
【０１５２】
ｎ個のバッチの待ち行列および全部でｋ個のツールがあるとき、可能性のある解はkn個である。問題の大きさに伴って潜在的な解の数は指数関数的に増加するので、解空間における網羅的な調査は一般的に現実的ではない。上述したように、スケジュール候補の数を制限することにより、準最適（sub-optimal）のアプローチを用いて近似解を求める。
各runについて、目的関数の最も大きい改善をもたらすツールを選択する。従って、ｎ個のより簡単な一連の問題を解いて、すべてのバッチをどこでrunするかを決定する。表１０は、このアルゴリズムによって決定されたプロセス実行の順序を示す。
【表１０】
2005502947.tif 000118
ツールに対するバッチのこの配置は、目的関数の値において、おおよそ１０％の改善をもたらす。しかしながら、いくつかのより特筆すべき結果がある。図２９に、デフォルトのツール割り当て計画と、最適化されたツール割り当て計画とを用いた、シミュレーションによる制御アルゴリズムの出力誤差の比較を示す。最適化されたバージョンでは、大量の変動が除去されている。その理由は、高いパラメータ推定不確定性を持つ製品が、比較的小さい推定不確定性を持つツールにおいて処理されているからである。
【０１５３】
このシミュレーションの重要な特徴は、ツールの使用法でさえも指示する制約が存在しないことである。この結果は、このアルゴリズムがこれらのrunを、関係するすべてのツールの間で均等に分割していることを示している。これの理由は、与えられたあるツールに対するパラメータ推定の不確定性が、もしそのツールが使用のために選択されなかったとしても、時間とともに増加することにある。従って、このアルゴリズムは、すべてのツールにわたって不確定性を抑制するために十分な情報が利用可能になるように、すべてのツールを利用しなければならない。
【０１５４】
従前のセクションで示したように、ツールのスケジューリングや、サンプリング計画などの製造プロセスの決定は、プロセス制御を効率的に実行するための能力に対して大きな実質効果を持つ。さらに、これらの決定変数の適切な操作によって制御出力を改善できることと示した。これらの決定変数は、コントローラ１３０が操作するプロセス変数には直接影響しないが、それらはコントローラ１３０が、その状態およびパラメータの推定値の更新に用いるために利用可能な情報の量および質には影響を与える。モデルベースのコントローラにおいては、モデルパラメータの異なった値は、目的関数において異なった値をもたらし、従って異なったプロセス入力が選択される。
【０１５５】
カルマン状態推定手法において利用可能な誤差共分散行列を用いて、コントローラ１３０内での異なったパラメータ推定値における相対的な不確定性に対して、製造決定が明白な関係を持つことを示す。プロセス決定をパラメータ推定値における不確定性に対するそれらの影響に関連付けるモデルを作成することができる。パラメータ推定値についての現在の確かさに応じて、特定の測定値の取得および特定のプロセスツールの実行は非常に異なった効果をもちうる。
【０１５６】
この点において、図３０に示すように、監視スケジューリングモデル（supervisory scheduling model）からプロセスモデルを分離するのが都合がよい。プロセスコントローラ３００は低いレベルの、プロセスモデル３１０を実装する。プロセスモデル３１０は、入力が操作されたときに、プロセス変数がどのような影響を受けるかを説明している。プロセス変数は、レシピ設定、測定されたバッチの特性、変動のソースを含む。このモデルでは、バッチはそれが出現するまで知られていない。それが出現した時点で、それらの特性によって、それらが加工装置（processing equipment）によるどのような影響を受けるかが決定される。スケジューリングコントローラ３２０は、監視スケジューリングモデル３３０を実装し、バッチがどのように処理されるのかの詳細には関係しない。その代わり、それは、プラント（工場）を通る材料の動きのみを取り扱う。
【０１５７】
環境は、一連の別個のイベントから構成されている。これらのイベントは、処理されているバッチ、認定されているツール、測定されているバッチを含む。これらのイベントのそれぞれについて、パラメータ推定値についての不確定性はもちろん、現実のプロセス状態への予期された影響も決定するために、プロセスモデル３１０を用いることができる。より高いレベルのスケジューリングモデル３３０も、在庫品のレベル、サイクルタイム、およびツールの使用に対するイベントの効果を決定するために、使用可能である。
【０１５８】
ここで、マルチレベルの制御方法が使用される。上で説明され、プロセスコントローラ３００によって実装された状態推定技術は、すべての利用可能なプロセス情報が与えられたときに最もよいパラメータ推定値を決定する問題を解くのに適している。この状態推定は、材料が処理される順序またはそれがどのような測定値を受け取るかに関する入力を持たないが、それは到着する情報を効率的に処理することができる。
【０１５９】
次のレベルにおいて、スケジューリングコントローラ３２０は、スケジュール候補を分析していくつかの目標に合致させることで、スケジューリングを取り扱う。プロセスツールを効率的に利用し、かつ材料がプラント内を合理的な時間内で通過するようにするのに加えて、スケジューリングコントローラ３２０は、低レベルプロセスコントローラ３００およびその状態推定アルゴリズムが適切な情報を受信することを確実にしなければならない。
このカスケード手法は、コントローラ３００，３２０のそれぞれがそれに最も適した仕事を取り扱う、モジュール設計を可能にする。さらに高いレベルの工場最適化コントローラ３４０が、スケジューリングコントローラ３２０についての目標値を決定するために設けることができる。
【０１６０】
スケジューリングモデル３３０に対する入力は、プロセス決定である。与えられた時間ステップにおいて、しなければならない数多くの決定がある。簡略化のために、すべてのrunが同じ時間だけかかり、それらのすべてが同時にスタートして同時に終わると仮定する。これによって、決定変数（decision variable）を簡略化することができる。もし、プロセスエリアでnb個のバッチの待ち行列（キュー）が処理(run)されるのを待っているときは、与えられたある時間ステップで、その時間ステップの間にプロセスエリアにおけるすべてのツールに対してどのバッチをrunさせるかを決定しなければならない。もし、プロセスエリアにnt個のツールがあるとき、ベクトルuのnt要素がそのツールでrunされるバッチを定義する。一般論として、待ち行列のなかのバッチのすべてが製造用のバッチでなくともよい。ツールの認定およびその他のそのようなイベントもまた、このようなフレームワークに適合させることができる。uで表されるrunのそれぞれが測定されるかどうかを特定するために、やはり長さntを持つ第２の入力ベクトルvが必要である。
【０１６１】
ある時間ステップについて選択された決定ベクトル（つまり、スケジュール候補）に対して、プロセス状態推定の誤差共分散行列への影響を計算することができる。これまでの例にあったように、この行列に対する操作の観点から、目的関数を定義することができる。
【０１６２】
実際の状況では、上述の最適化問題を解くのに、モデル予測制御（MPC, Model Predictive Control）定式化が優れた手段を提供できる。シミュレーションは、既知の環境で所定の材料の待ち行列において実行可能であるが、現実の製造工場はより複雑である。プロセスの実行条件は常時変更の対象であり、コントローラによってなされた決定はビジネス上の必要性によって覆されうる。MPC定式化を用いることにより、最適化の問題が解かれるたびに、最初の決定のみが実行される。新しい情報が利用可能になった後、その問題を再び解く。この手法は、プラントで素早く変化する条件を取り扱うのに適している。
【０１６３】
MPCでは、現在の変更が将来のrunにいかに影響するかを検討するために、いくつか先の時間ステップを見ることができる。MPC定式化を用いるために、システム状態およびそれらがどのように変化するかのモデルが定義される。これらの状態は単に、プロセスコントローラ３００によって使用される、状態誤差共分散行列を用いて決定される、パラメータ推定不確定性である。それらがどのように変化するかのモデルは、バッチが処理され、測定されるときに共分散行列がどのように変化するかを決定する方程式によって決定される。
【０１６４】
スケジューリングコントローラ３２０が受け取る「測定値」は、実際のプロセス実行決定が実装された後でプロセスコントローラ３００から供給される共分散行列のなかの新しい値である。実際のプロセス実行の決定は、外側からの影響により、スケジューリングコントローラ３２０が望む決定に合致したり、しなかったりする。
【０１６５】
MPCアプローチの他の主な利点は、決定に制約を盛り込む能力である。予測限界を用いることにより、長い時間期間にわたって測定される材料のパーセンテージのような、複雑な制約も使用可能である。ツールの割り当て、サンプリング、およびバッチが処理されるまでに待たなければいけない時間についての制約もすべて、この非常に一般的なフレームワークに盛り込むことができる。
【０１６６】
この統一されたプロセスおよび工場制御方法には多くの利点がある。伝統的に、スケジューリングはビジネス上の必要性が指示するところに従って行われてきており、プロセス制御に対する影響についての分析は少ししか、またはまったく行われてこなかった。プロセス制御は、工場の制約の限界のなかで行われなければならないなにかである。スケジューリングの必要性とプロセス制御の必要性とを統合することは、ここに概説したように、それらの両方にとっていくつかのはっきりとした利点がある。
【０１６７】
一般に、測定値は、バッチが正しく処理されていることを保証するために取得される。プロセスコントローラがサンプリングプランに入力を持つことができるようにすることで、互いに関連する測定値を選択するのにプロセスの不確定性の理解を使用することができる。パラメータ推定値の不確定性は、プロセス出力の不確定性と直接言い換えることができるので、測定値を、すべてのプロセス出力が適切な許容差のなかにあることを保証するのに必要なものにまで減らすことができる。これは時間を節約するだけでなく、用意しなければいけない測定ツールの数をも限定する。もちろん、出力の不確定性があまりに高くなったときには、スケジューリングコントローラ３３０は、注意深く選択した測定値を提案することもできる。それは、潜在的な測定値のなかでどれがもっとも大きな利益をもたらすかに関する説明を受けた上での決定をするために適切なデータを持っている。
【０１６８】
スケジューリングの最適化のその他の応用例は、「重要な」ロット（製造の単位）の処理である。様々な理由（例えば、予想される性能特性、試験ロットなど）から、特定のロットが高い優先順位を持つロットとしてフラグされて（flagged）きた。そのようなロットについては、指定ロットに関するプロセスを最適化することが望ましい。目的とするロットを含む、異なったスケジュール候補に対して不確定性の分析を適用することができ、その目的のロットの処理を実行するときに、もっとも不確定性が小さいスケジュール候補を選択することができる。
【０１６９】
スケジューリングコントローラ３３０は、ツール認定のような特別なイベントのための時間を選択することもできる。これらのイベントは通常、装置のメインテナンスのために用いられる。しかし、それらはデータの質を高めるためにも用いることができる。スケジューリングコントローラ３３０は、ツール状態についての推定パラメータが著しい不確定性を持つのはいつかを知ることができる情報を持っている。これはツールに対するメインテナンスをするのによい機会であり、メインテナンス後の認定によってツールのパラメータの状態に関する新鮮な情報を得ることができる。この種の活動によって不稼動時間を減らすことができ、イベントが本当に必要なときにイベントをスケジュールすることによって制御出力を改善することができる。
【０１７０】
以前に検討したスケジューリングおよびサンプリングの最適化問題は、数学的に難しい問題の種類に入る。最初に、目的関数の評価は非常に非線形のプロセスである。低レベルのプロセスモデルが線形であるときでさえも、測定データの受信の際の誤差共分散行列を更新するためには行列反転（matrix inversion）手法を必要とする。決定変数が離散値であって、連続値ではないという事実が、問題をさらに複雑にする。連続する非線形関数の極値を求める一般的な方法は、独立変数に関する微分係数を得ることである。一般的に、これらの極値は、システムの制約によって許される決定変数の離散値には一致しない。従って、より複雑な調査方法を用いなければならない。
【０１７１】
このセクションの前の方のシミュレーションrunで示したように、もっとも直接的な調査手法で必要となる目的関数の評価の回数は、システムが大きくなるに従って、すぐに点学的な数字になる。後の方のシミュレーションでしたように、問題をより小さな部分に分解して、それらの解を互いに合わせることによって、ある種の救済方法を見つけることができる。さらに、実用的な解法から始めて、他の実用的な解法をもたらす小さな変更を加えて目標値が改善するかどうかをチェックすることが可能である。これらの方法の欠点は、大域的な最適値に到達する保証がないことである。最も正確な答えに対する必要性と、合理的な時間内で答を得ることとの間でバランスを取らなければならない。大きな工場でrunのスケジューリングを決定するときには、考慮に入れなければいけない多くの要素がある。
【０１７２】
一実施形態において、すべての関係を網羅する、単一の目的関数および関連する制約を定義することができる。その目的は、異なった専門分野の多くの異なった関係者の必要性に応えることである。例えば、制御のエンジニアは特定のバッチの重要性を、それが生成するであろうプロセス情報の量の観点から、説明することができる。一方、オペレーションリサーチの専門家は、バッチが処理されるまでにどのぐらいの時間がかかるのか、およびそれをいかにラインの中でより効率的に流すかについて、より関心があるであろう。さらに、プロセスを改善しようとしているエンジニアは、あるバッチを、あるツールに特別の設定で実行する必要があるかもしれない。これらすべての必要性に合致した単一の目的を作成するには、それぞれの関心の相対的な重要性の仕様書を必要とする。
【０１７３】
他のアプローチは、各関係者の必要性に合わせた個別のシステムを持つことである。これらのシステムのそれぞれは、それがもっとも期待しているプロセス決定を容易に決定することができる。次に、監視システムが衝突の解決に責任を持つ。以前のセクションで言及したように、一般に、規則ベースのシステムが製造runをスケジューリングするために使用されている。これらのシステムは、通常、run-to-run制御のアプリケーションにおける必要性を軽視して、遅れおよびコストを最小化するように設計されている。この種のシステムの統合が、既存の工場のスケジューリングに影響を与えるために、必要であろう。
【０１７４】
ここで説明した技術は、大規模半導体製造工場において同時に使用されている、多くの異なったプロセスの取り扱いの理解に対する強力なアプローチを提供する。組み合わされたシステムモデルの検討により、異なったプロセス間で共有できる多くのデータがあるという事実が強化された。装置、製品、およびプロセスの間の差異が、しばしば単一のプロセスにおけるrun-to-runのばらつきよりもずっと大きいので、組み合わせモデルは、一度にいくつかのrunを実行することで得られるデータを利用して、プロセスの異なったエリア間の差を捉えることに成功している。この方法の主な利点は、情報が異なったプロセス実行コンテキスト間で共有されているので、誤差を検出したときにシステムモデルがとても素早く更新されることである。
【０１７５】
その他の重要な結果は、状態およびパラメータ推定アルゴリズムにおいて、推定値についての不確定性の合計を理解することが、推定値そのものを取得することと同じぐらい重要であるということである。確からしさのレベルを推定することに基づくリカーシブな状態推定ルーチンが、所望の測定値データの一部分のみが利用可能なときにおいても更新を実行するために、提案される。測定値の遅れまたは欠損などの実際の製造上の問題についても説明し、対処した。結果として、製造工場における多くの異なったプロセスに適用可能な堅牢な（ロバスト）手法が提供される。
【０１７６】
利用可能なデータと、それが含む有用な情報とを区別した。状態推定手法の性能はそれが受け取る情報の質に強く依存する。状態推定誤差共分散行列が推定値についての不確定性の指標として定義された。そして、その行列に対する測定値の効果を、その測定値が推定値の不確定性にどのような影響を与えるかの観点から説明した。
【０１７７】
バッチのスケジューリング、ツールの割り当て、およびサンプリングの計画などのプロセス実行の決定が、コントローラの性能に影響することを示した。誤差共分散行列に含まれるパラメータ推定不確定性情報を用いて、より好ましいプロセス制御結果を与えるように、これらのプロセス実行の決定を最適化できる。プロセスコントローラからの情報を用いて、よりよいスケジューリングおよびサンプリングの決定に役立てることで、状態推定および制御出力性能についての無視できないほどの改善が達成できることを、シミュレーションの結果が示している。さらに、状態推定のアルゴリズムが、あまり情報をもたらさないので潜在的に読み飛ばすことが可能な測定値を特定できることを示した。
【０１７８】
これまでに開示した特定の実施形態は一例にすぎない。本明細書の教示による利益を得た当業者に明らかなように、本発明を変形することができ、また異なるが均等な方法で実施することができる。さらに、添付の特許請求の範囲の記載を除いては、本明細書に開示した構造または設計の詳細に、本発明を限定しようとする意図はない。従って、上述の特定の実施形態は改造または変更が可能であり、そのような変形物は本発明の範囲および精神の中にあるものとして考えられる。従って、保護を求める範囲は添付の特許請求の範囲に記載されるとおりである。
【図面の簡単な説明】
【０１７９】
【図１】本発明の一実施形態による製造システムの簡略ブロック図。
【図２】図１の製造システムの一部の簡略ブロック図。
【図３Ａ】典型的な確率密度関数のグラフ。
【図３Ｂ】典型的な確率密度関数のグラフ。
【図４】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図５】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図６】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図７】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図８】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図９】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１０】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１１】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１２】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１３】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１４】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１５】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１６】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１７】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１８】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図１９】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２０】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２１】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２２】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２３】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２４】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２５】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２６】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２７】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２８】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図２９】様々なシナリオにおける、図１のコントローラの性能を表すグラフ。
【図３０】本発明の他の実施形態による、プロセスコントローラとスケジューリングコントローラとを含むシステムのブロック図。
【図３１】本発明のさらに別の実施形態による、製造システムにおいて活動をスケジューリングするための方法の簡略流れ図。
【図１】
2005502947.tif 000119
【図２】
2005502947.tif 000120
【図３Ａ】
2005502947.tif 000121
【図４】
2005502947.tif 000122
【図５】
2005502947.tif 000123
【図６】
2005502947.tif 000124
【図７】
2005502947.tif 000125
【図８】
2005502947.tif 000126
【図９】
2005502947.tif 000127
【図１０】
2005502947.tif 000128
【図１１】
2005502947.tif 000129
【図１２】
2005502947.tif 000130
【図１３】
2005502947.tif 000131
【図１４】
2005502947.tif 000132
【図１５】
2005502947.tif 000133
【図１６】
2005502947.tif 000134
【図１７】
2005502947.tif 000135
【図１８】
2005502947.tif 000136
【図１９】
2005502947.tif 000137
【図２０】
2005502947.tif 000138
【図２１】
2005502947.tif 000139
【図２２】
2005502947.tif 000140
【図２３】
2005502947.tif 000141
【図２４】
2005502947.tif 000142
【図２５】
2005502947.tif 000143
【図２６】
2005502947.tif 000144
【図２７】
2005502947.tif 000145
【図２８】
2005502947.tif 000146
【図２９】
2005502947.tif 000147
【図３０】
2005502947.tif 000148
【図３１】
2005502947.tif 000149
【国際公開パンフレット】
2005502947.tif 000150
2005502947.tif 000151
2005502947.tif 000152
2005502947.tif 000153
2005502947.tif 000154
2005502947.tif 000155
2005502947.tif 000156
2005502947.tif 000157
2005502947.tif 000158
2005502947.tif 000159
2005502947.tif 000160
2005502947.tif 000161
2005502947.tif 000162
2005502947.tif 000163
2005502947.tif 000164
2005502947.tif 000165
2005502947.tif 000166
2005502947.tif 000167
2005502947.tif 000168
2005502947.tif 000169
2005502947.tif 000170
2005502947.tif 000171
2005502947.tif 000172
2005502947.tif 000173
2005502947.tif 000174
2005502947.tif 000175
2005502947.tif 000176
2005502947.tif 000177
2005502947.tif 000178
2005502947.tif 000179
2005502947.tif 000180
2005502947.tif 000181
2005502947.tif 000182
2005502947.tif 000183
2005502947.tif 000184
2005502947.tif 000185
2005502947.tif 000186
2005502947.tif 000187
2005502947.tif 000188
2005502947.tif 000189
2005502947.tif 000190
2005502947.tif 000191
2005502947.tif 000192
2005502947.tif 000193
2005502947.tif 000194
2005502947.tif 000195
2005502947.tif 000196
2005502947.tif 000197
2005502947.tif 000198
2005502947.tif 000199
2005502947.tif 000200
2005502947.tif 000201
2005502947.tif 000202
2005502947.tif 000203
2005502947.tif 000204
2005502947.tif 000205
2005502947.tif 000206
2005502947.tif 000207
2005502947.tif 000208
2005502947.tif 000209
2005502947.tif 000210
2005502947.tif 000211
2005502947.tif 000212
2005502947.tif 000213
2005502947.tif 000214
2005502947.tif 000215
2005502947.tif 000216
2005502947.tif 000217
2005502947.tif 000218
2005502947.tif 000219
2005502947.tif 000220
2005502947.tif 000221
2005502947.tif 000222
【国際公開パンフレット（コレクトバージョン）】
2005502947.tif 000223
2005502947.tif 000224
【手続補正書】
【提出日】平成15年12月10日(2003.12.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
製造システム（１０）を監視する方法であって、
前記製造システム（１０）に関する複数の観測状態を定義するステップと、
前記観測状態に対する状態推定値を生成するステップと、
前記状態推定値のそれぞれに対して、不確定性の値を生成するステップと、
前記製造システム（１０）のなかの実体に関する測定データを受信するステップと、
前記測定データおよび前記状態推定値に関する不確定性の値に基づき、前記状態推定値を更新するステップとを含み、前記方法はさらに、
前記製造システム（１０）において活動を実行するための複数のスケジュール候補を特定するステップと、
前記スケジュール候補に基づいて、前記不確定性の値に対する変更を予測するステップと、
前記不確定性の値に対する予測された変更に基づいて、前記スケジュール候補の一つを選択するステップとを含む方法。
【請求項２】
前記状態推定値を含む状態推定ベクトルを生成するステップと、
前記状態推定ベクトルに関連し、前記不確定性の値を定義する対角項と、前記状態間の相互依存性の関係を定義する非対角項とを含む共分散行列を生成するステップとをさらに含む、請求項１記載の方法。
【請求項３】
前記製造システムにおいて加工ステップを実行するステップと、
前記加工ステップおよびそれに関係する不確定性の値に基づいて各状態推定値を更新するステップとをさらに含む、請求項１記載の方法。
【請求項４】
前記製造システムは複数の製品を加工するように構成された複数のツール（３０、４０，５０，６０，７０、８０）を含み、前記複数の観測状態を定義するステップは、ツールの状態および製品の状態のうちの少なくとも一つを定義するステップをさらに含む、請求項１記載の方法。
【請求項５】
製造システム（１０）に関する追加の観測状態を特定するステップと、
前記追加の観測状態についての初期状態推定を生成するステップと、
前記状態推定ベクトルと前記初期状態推定とを組み合わせるステップと、
前記追加の観測状態についての初期共分散推定を生成するステップと、
前記初期共分散推定と前記共分散行列とを組み合わせるステップとをさらに含む、請求項２記載の方法。
【請求項６】
第１時間において、初期状態推定値の第１組を特定するステップと、
前記第１時間の後に発生した、前記製造システム（１０）に関する、イベントの待ち行列を保持するステップと、
第１測定イベントを受信するステップと、
前記第１測定イベントに関する、前記プロセスイベントの一つを特定するステップと、
前記特定されたプロセスイベントの後に発生したイベントを選択するステップと、
前記第１測定イベントと前記選択されたイベントの組とに基づいて、前記初期状態推定値を繰り返し更新するステップとをさらに含む、請求項１記載の方法。
【請求項７】
前記測定データに基づいて、第１出力マッピングを生成するステップと、
前記第１出力マッピング、前記測定データおよび前記関係する不確定性の値に基づいて、前記状態推定値を更新するステップと、
前記第１加工イベントの後に発生した、第２加工イベントに関する第２測定値を受信するステップと、
前記第２測定値に基づいて、第２出力マッピングを生成するステップと、
前記第２出力マッピング、第２測定値および前記関係する不確定性の値に基づいて、前記状態推定値を更新するステップとをさらに含む、請求項１記載の方法。
【請求項８】
前記複数のスケジュール候補を生成するステップは、
複数の加工活動をスケジューリングするステップと、
前記加工活動の一部に関する、複数の測定活動をスケジューリングするステップであって、各スケジュール候補のそれぞれは前記加工活動の異なった部分を持つところのステップとをさらに含む、請求項１記載の方法。
【請求項９】
前記複数のスケジュール候補を生成するステップは、
複数の加工活動をスケジューリングするステップであって、各スケジュール候補のそれぞれは前記加工活動についての異なった順序を持つところのステップをさらに含む、請求項１記載の方法。
【請求項１０】
前記複数のスケジュール候補を生成するステップは、
複数の加工活動を特定するステップと、
前記加工活動を実行することができる複数のプロセスツールを特定するステップと、
前記加工活動を実行するために選択された、それぞれ異なったプロセスツールを持つスケジュール候補を生成するステップとをさらに含む、請求項１記載の方法。
【請求項１１】
前記不確定性の値に対する前記予測された変更に基づいて、前記スケジュール候補のそれぞれに関する、不確定性の測定基準を生成するステップと、
最も小さい不確定性の測定基準を持つスケジュール候補を選択するステップとをさらに有する、請求項１記載の方法。
【請求項１２】
各スケジュール候補は複数の加工活動を含み、前記不確定性の値に対する予測された変更に基づいて、前記スケジュール候補の一つを選択するステップはさらに、
前記優先加工活動を実行しながら、最も小さい不確定性を持つスケジュール候補の一つを選択するステップをさらに含む、請求項１記載の方法。
【請求項１３】
製造システム（１０）を監視するためのシステムであって、
製造システム（１０）に関する複数の観測状態を定義し、前記観測状態に対する状態推定値を生成し、前記状態推定値のそれぞれに対して、不確定性の値を生成し、前記製造システム（１０）のなかの実体に関する測定データを受信し、前記測定データおよび前記状態推定値に関する前記不確定性の値に基づき状態推定値を更新するように構成されたコントローラ（１３０）を備え、当該システムはさらに、
前記製造システム（１０）において活動を実行するための複数のスケジュール候補を特定し、前記スケジュール候補に基づいて、前記不確定性の値に対する変更を予測し、前記不確定性の値に対する予測された変更に基づいて、前記スケジュール候補の一つを選択するように構成されたスケジューリングコントローラ（３２０）を備えるシステム。
【請求項１４】
前記コントローラ（１３０）はさらに、
前記状態推定値を含む状態推定ベクトル、および
前記状態推定ベクトルに関連し、前記不確定性の値を定義する対角項と、前記状態間の相互依存性の関係を定義する非対角項とを含む共分散行列を生成するように構成されている、請求項１３記載のシステム。
【国際調査報告】
2005502947.tif 000225
2005502947.tif 000226
2005502947.tif 000227