検証(Verification)、妥当性確認(Validation)、不確かさの定量化(Uncertainty Quantification)は、シミュレーションに基づくエンジニアリングのワークフローに欠かせない要素です。計算結果が現実の世界で意味を持ち、信頼できるという確信を得るために必要になります。
検証では、シミュレーションのコードが正しいこと(たとえば方程式を正しく解いていること)を確かめます。妥当性確認では、シミュレーションモデルが現実の世界を正確に表していること(たとえば解いている方程式が十分な忠実度で現実を表していること)を確かめます。不確かさの定量化では、シミュレーション結果の信頼性(たとえば計算上・物理上のシステムにある不確かさによって、解がどう変わるか)を評価します。
SmartUQには、VVUQのプロセスを支えるツールがそろっています。シミュレーションと物理システムのための専用のDOE、複数のキャリブレーション手法、統計的な比較と、充実したUQ機能一式です。
検証では、シミュレーションの実装が正しいことを確かめることに重点を置きます。その意味で、ほかのソフトウェアの検証プロセスとよく似ており、主な作業には次のものがあります。
妥当性確認では、シミュレーション結果を試験データやフィールドデータと比べて、シミュレーションモデルが、模擬しようとしている現実のシステムをどれだけ正確に表しているかを判断します。具体的な状況、物理データの出どころ、ほかに妥当性確認済みのシミュレーションがあるかどうかによって、さまざまな方法とプロセスがあります。一般的には、主な作業は次のとおりです。
不確かさの定量化では、シミュレーションの入力、パラメータ、モデルにある不確かさを特定し、定量化し、伝播させて、それがシミュレーションの出力に与える影響を評価します。VVUQのワークフローでの主な作業には、次のものがあります。
この概要動画(英語)では、不確かさがどこから生じるのか、そして不確かさの定量化とは何かを簡単に説明しています。
不確かさの定量化(UQ)は、計算上のシステムと現実のシステムにある不確かさを定量化し、特徴づけ、追跡し、管理するための科学です。
UQは、現実のばらつきや確率的なふるまいを、エンジニアリングやシステムの解析に取り入れるときの問題に取り組みます。シミュレーションや試験が答えるのは「ある1組の入力を与えたとき、システムはどうなるか」という問いです。UQはこの問いを広げて、「不確かでばらつきのある、ある範囲の入力を与えたとき、システムはどうなりそうか」を問います。
UQは、数学、統計学、工学が交わるところから始まりました。こうした多様な分野を取り入れた結果、対象のシステムに依存しない一連の手法が生まれました。調べるシステムの内部の仕組みを知る必要はありません。こうした強力なUQ手法に必要なのは、入力と出力の応答のふるまいについての情報だけです。そのため、ある工学システムで使える手法が、似たふるまいを示す金融の問題にも同じように使えることがあります。こうして、さまざまな業界ENがUQの進歩の恩恵を受けられます。
UQの手法は、これまで答えられなかった多くの問いに答えられるため、幅広い業界のエンジニアやモデリングの専門家に急速に採り入れられています。UQの手法を使うと、次のことができます。
計算能力が高まり、シミュレーションや試験が高度になるにつれて、より多くの現実のシステムについて正確な予測ができるようになりました。いま、エンジニアリング設計の競争の最前線は、不確かな入力を与えたときのシステムのふるまいを、すばやく予測することに移っています。モンテカルロ法に基づく手法では、システムのバリエーションを大量に作って評価する必要があり、大規模な問題では使えないほどのコストがかかります。SmartUQに組み込まれているような新しい手法によって、UQは小さなシステムでは手軽に、大きなシステムでも現実的に使えるものになりました。エンジニアリングのプロセスに不確かさを取り入れ始めるのに、今ほどよい時期はありません。
図1:不確かさはどう生じるか不確かさは、現実の世界にもともと備わっているものです。2つの物理実験がまったく同じ出力値を出すことはなく、関係する入力の多くは分からなかったり、測れなかったりします。不確かさは、エンジニアリングのモデリングと設計のほぼすべての面に影響します。エンジニアは昔から、安全係数を設けたり、設計を入念に試験したりすることで、測定誤差、材料特性の不確かさ、分からない設計負荷のプロファイルに対処してきました。不確かさの原因をより深く理解して定量化すれば、どれだけ確かかが分かったうえで、よりよい判断ができます。
不確かさは、大きく偶然的(aleatoric)と認識的(epistemic)の2つに分けられます。
偶然的不確かさ
偶然的不確かさは、情報をさらに集めても、今の私たちの力では減らせない不確かさです。そのため、システムにもともと備わっているものと考えられ、偶然的不確かさを持つパラメータは確率分布で表すのが最適です。この種の不確かさの例には、サイコロを振った結果や放射性崩壊があります。
認識的不確かさ
認識的不確かさは、理論上は知りうるのに、今は手に入らない情報が欠けていることから生じる不確かさです。そのため、適切な情報を集めれば減らせるはずですが、そのためのコストや難しさから、実際には減らされないことがよくあります。この種の不確かさの例には、ロットごとの材料特性、製造された寸法、荷重のプロファイルがあります。
シミュレーションと試験でよく見られる不確かさの原因
図2:不確かな使用シナリオシミュレーションと試験の不確かさは、境界条件、初期条件、システムのパラメータ、そしてシステムやモデル、計算そのものに現れます。こうした不確かさは、不確かな入力、モデル形式とパラメータの不確かさ、計算上・数値上の誤差、物理試験の不確かさ、の4つに分けて説明できます。
不確かな入力
初期条件、境界条件、過渡的な強制関数など、システムへのどの入力も不確かさを持ちえます。こうした入力は、記録はできても事前には分からない形で、大きく変わることがあります。運転条件、設計の形状や構成、荷重のプロファイル、天候、人間の操作入力などがよくその例です。また、不確かな入力が理論上は一定だったり、既知の関係に従ったりしても、何らかの不確かさをもともと持っていることもあります。計測された入力、製造公差、材料特性のばらつきなどがよくその例です。
モデル形式とパラメータの不確かさ
図3:不一致関数すべてのモデルは現実の近似です。モデルの不確かさは、モデルを選ぶときの誤差、仮定、近似から生じます。これはさらに、モデル形式の不確かさ(モデルがシステムの関係するふるまいを捉えられるかどうかについての不確かさ)と、パラメータの不確かさ(モデル内のパラメータについての不確かさ)に分けられます。
重力を例にとると、ニュートンの重力モデルにはモデル形式の誤差があり、それは一般相対性理論によって正されました。つまり、ニュートンの重力モデルを使った予測には、モデル形式の不確かさがあります。どちらのモデルでも、重力加速度のようなパラメータにも不確かさと誤差があります。この不確かさは、物理特性の測定や推定の誤差から生じることが多く、より多くの情報が得られるにつれて、キャリブレーションで関係するパラメータを調整することで減らせます。
計算上・数値上の不確かさ
シミュレーションを実行し、多くの数学モデルを解くには、もとの方程式を単純化したり近似したりする必要があり、打ち切り誤差や収束誤差などの計算誤差が入り込みます。同じシステムとモデルでも、こうした誤差はソルバーによって異なり、それぞれのソルバーで使う近似や設定によって変わります。さらに、計算機の精度の限界や、デジタルシステムにつきものの丸め誤差によっても、数値誤差が入り込みます。
物理試験の不確かさ
図4:試験のばらつき物理試験では、制御されていない入力や分からない入力、測定誤差、偶然的な現象、そして最大分解能や空間平均のような、試験の設計と実施の制約から不確かさが生じます。こうした不確かさがあるために実験データにはノイズが含まれ、目的の測定に対する不確かさの影響を減らすには、科学実験での反復と再現が欠かせません。