2020年6月20日

シミュレータ技術の世界とその基礎-第1章-

[重要なお知らせ(Important notification)]

はじめに。


コロナウイルスによって2020年の生活様式は大きく変わってきましたが、皆さんはどのように暮らしを変えましたか??自宅で過ごす時間が長くなった分、苦労が絶えなかったかと思います。

そんな中、モータースポーツ好き、クルマ好き、さらには多くのプロレーシングドライバーまでもが取り組むようになったアクティビティがあります。そう、ドライビングシミュレータです。

VI-grade Driving Simulator
(引用元:VI-grade公式サイト)
今ではオンラインでの対戦が繰り広げられ、現役F1ドライバーたちも参加する公式eレースのチャンピオンシップが人気を博しており、今後の発展を予感させてくれました。このようなポジティブな発展が見られる一方、SNS上ではシミュレータ技術に関する誤解や、Simドライバーとリアルドライバーの優劣に関するちょっと過激な議論が繰り広げられていることに目が止まりました。

そこで、eレースやSimレーサー、そしてリアルレーサーの凄さをより深く理解することをサポートするため、今回のブログテーマではシミュレータ技術の世界を紹介します。

ところで、シミレータは英語でSimulatorと綴ります。シミレータではありませんので、まずは言い間違えにご注意下さい(汗)。

Lando Norris on Simulator
(引用元:Lando Norris Official Twitter)

学生時代の授業の想い出と言えば?


もし、『シミュレータなどの数値解析技術を、誰にでも分かりやすく説明するなら、どう例える?』と聞かれたら、僕は真っ先にパラパラ漫画と答えます。中学生の頃の僕はそれなりにマジメな生徒でしたが、時としてパラパラ漫画を授業中に描きたくなる衝動を抑えきれなかったものです…。その想い出のパラパラ漫画で数値解析を例えます。

どういうことか?それをグラフ図を使って解説します。次のグラフ図を見てください。

連続時間
このグラフ図は現実世界における、ある車両姿勢を時間軸で模した図です。私たちは、このグラフのように途切れることのない連続時間の世界で生きているのですが、ごく当然のことだと実感できると思います。

一方、同じ車両姿勢を数値解析の世界のグラフ図で表すと次のようになります。

離散時間
現実世界との違いを明確に理解できたかと思います。数値解析は、ある時間間隔ごとの状態量を計算しているのみで、現実世界のように連続ではありません。まさにパラパラ漫画のように時間が細切れにされた世界なのです。

このように、ある事象を断続的に表現することを離散化と言います。今回は時刻毎に離散化することを前提としましたが、数値流体解析CFDや有限要素法FEMなどの形状モデルのメッシュ化に適用されるなど、様々な分野で離散化の概念が使われています。


なぜ、離散化が必要なのか?


あなたがPCで何かを計算する時(例えそれがコンビニでのお釣りの計算であったとしても!)、その計算結果を得るには必ず時間経過が伴います。簡単な計算であれば、その結果は瞬く間に画面に表示されるでしょう。

では、PCで車両姿勢を計算する場合はどうでしょうか?この場合、サスペンションの動き、タイヤが発生する力、エンジンを含むパワートレインの挙動、空力特性の変化など計算しなくてはならないことがたくさんあるため、すぐに計算結果は弾き出されません。

Full Vehicle Model
(引用元:Claytex公式サイト)
ともあれ、いずれの場合も大なり小なり時間がかかるワケです。もし、ある時刻の力学的な釣り合い状態だけを計算するのであれば、計算所要時間が長くとも大きな問題にはなりません。一方、シミュレータでは絶え間なく続くドライバーからの入力に応じ、リアルタイム演算を成立させながら計算を続けなくてはなりません。

では、ここで先ほどの離散化のグラフ図をちょっと拡大しつつPCの稼働状況も載せてみることにします。

リアルタイム演算の概念
この図で離散化が必要な理由がお分かりですね??各時刻における計算の完了には一定時間が必要となるため、連続時間を断続的に区切って状態量を表現するしかないのです。また、シミュレータの場合、決めた断続時間の合間に計算を完了させなくてはならず、一般的にその断続時間は0.001秒であることが求められます。

これが離散化が必要となる大きな理由の一つなのです。

まとめ


シミュレータなどの数値技術解析では、離散化によって現実世界をパラパラ漫画のように細切れにせざるを得ないことを解説しました。今後、量子コンピュータ技術などにより演算能力が向上し、細切れの時間間隔は短くなるでしょう。

しかし、どんなに演算能力が向上しようとも計算時間をゼロにすることは現実的ではなく、離散化から逃れることはできません。言い換えれば、連続時間で成り立つ現実世界を数値解析で完全に再現することは不可能だと言えるのです。この事実を数値解析に携わるエンジニアは理解しておく必要があります。

『え?じゃ、なんで現実の完全再現が不可能な技術を活用するのさ?』

このような疑問を持った人もいるでしょう。次回のブログでは『モデリングの考え方とその手法』というテーマでその疑問にお答えしたいと思います。次回更新もどうぞお楽しみに!

[つづきはコチラ]