前回はレーシングシミュレーターのモデリングについてお伝えいたしました。
今回は計算方式についてご紹介いたします。
世の中のシミュレーションが何故100%の再現が出来ないのか、そのヒントになりますので、もし宜しければ一目通していただけると幸いです。
少しだけマニアックですので、ご参考程度にさらっとお読みください。
※一部専門家が見ると突っ込みたくなる表現を含みますが、
初心者向けの説明の為、どうかご容赦ください。
2.計算方式
陰解法と陽解法
シミュレーション屋が最初に学ぶ言葉です。
簡単に言うと、シミュレーション結果を出すプロセスに違いがある、ということです。
陰解法は理想を追求した計算プロセス
陰解法は「全体がバランス良く真の解(答え)に近づく」こと
を追求した計算方法です。
たとえばCFDの場合、空間を数千万~数億のメッシュ(分割)で区切ります。
各分割空間を通過する空気の流れやエネルギーを計算します。
車両前方から流れる空気は、その一足先に流れた空気に衝突したり、合流します。
つまり、前から順番に計算するだけでは全くもってシミュレーションできません。
そこで、空間全体を一発で纏めて計算します。
しかし現在の計算技術では、全ての分割点で
理論と全く矛盾しない解(厳密解といいます)は求められないため、
「全体の誤差が最小の組み合わせ」を探します。
言い換えれば、時間的にも、空間的にも
「全体で同時に最もらしい答えの組み合わせを探す方法」が陰解法です。
課題は、答えを出すのに時間が掛かることです。
陽解法は速度を追求した計算プロセス
陽解法は速度を追求した計算方法です。
レーシングシミュレーターの場合、
次から次へと変化する条件をなるべく遅れなく計算しなければなりません。
つまり、よほどの計算速度が無いと陰解法は使えません。
そこで陽解法が登場します。
陽解法は、「今の状態」に「変化量」を連続的に足し引きしていくイメージです。
方法としてはイメージしやすいかもしれませんが、
精度を上げる為には時間刻みを小さくしなければなりません。
(専門用語で「time step」と言います)
例えば、1秒ごとにしか答えが返ってこないシミュレーターは意味を成しませんよね。
細かければ細かいほど、正しい答えからの誤差が少ない。
「今の状態」が、誤差少なく計算されるから、
「変化量」を加えた「次の状態」が誤差少なく計算される・・・
と、計算精度が連鎖します。
この計算精度は、ソフトの設定値と、
それに応えるOSの応答性、CPUの計算速度がキーになります。
開発用シミュレーターでは、この辺りの計算応答性まで予め検討してスペック選定を行います。応答性に優れる軍事用OSが使用されることが多く、詳細は控えますがとても個人で買える相場ではありません。
ここで確認ですが、陰解法と陽解法、誤差が大きいのは陽解法です。
蛇足ですが、シミュレーションの誤差にはモデリング誤差、離散化誤差、丸め誤差、打ちきり誤差とあります。この誤差があるために、シミュレーションは現実を100%再現しきれないことになります。
最もイメージしやすいのはモデリング誤差で、これは「物理現象をいかに数式等で再現するか」に影響されます。再現度が低いと、モデリング誤差が大きいことになります。
このモデリング誤差ばかり注目されがちですが、他にも誤差要因はある、ということがキーです。
3.ハードウェア
計算結果をドライバーにフィードバックする
モニター、ステアリング、モーションリグが該当します。
それぞれ応答性と、表現の細かさ(分解能と言います)がポイントになります。
Comments