2020年6月27日

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

[前回のブログ]
[重要なお知らせ(Important notification)]


はじめに。


前回のブログでは、シミュレータなどの数値計算技術が離散化によって成り立っており、パラパラ漫画のような世界であることを解説しました。今回のブログでは、そもそもどのようにしてクルマがコンピュータ上でモデル開発されるのか?その考え方と手法を紹介します。

Multi Body Dynamicsモデル
(引用元:Dassault公式サイト)
なお、今回はTwitterのアンケートで要望の多かった『サスペンション』を例に挙げて解説を進めたいと思います。サスペンションはタイヤと共に車体を支える装置として知られていますが、このブログを通じそのモデリング手法の奥深さ(厄介さ?)を感じてもらえれば幸いです。

最初にやるべき大事なこと。


『サスペンションってどうモデル開発するんだろ?早く知りたい~!』と思っているそこのアナタ。焦ってはいけません。モデル開発を考える前に一番重要なことを考えなくてはなりません。それは…

『モデル開発の目的を明確にすること』

例えば『タイヤ摩耗を最小化できるレース車両のサスペンションを設計する』、『シミュレータゲームで多くのユーザーが運転しやすいサスペンション特性を明確にする』、『異なる車種の車両モデル間で共有することが可能なサスペンションモデルを設計する』などです。

Kevin Decherf from Nantes, France / CC BY-SA
どんな事でも同じことが言えると思いますが、目的を持たずに走り出しても、どこまで行き着けば良いのか分かりませんし、その目的の達成までに何が必要なのかも分からなくなってしまいます。モデル開発も同じで、まずは『再現したい特性や現象』を明確に定義する必要があります。


どこまで再現するか?するべきか?


目的を明確にした後にやること、それがモデリングレベルの決定です。このモデリングレベルの解説にあたり、サスペンションのモデル開発における要素を段階的にリストアップしてみることにします。

サスペンション幾何学モデル
(引用元:OptimumG社公式サイト)

Modelling Level-1

  • サスペンションの幾何学的軌跡
  • ダンパーの減衰特性
  • スプリングの弾性要素

ちょっと専門的な表現が出てきましたが、上の3つはサスペンション設計の基本ともいえる要素で、過去ブログで紹介した1自由度のバネマスモデルを拡張することで再現できます。ここではこの三つの要素をモデリングレベル1とし、次のモデリングレベルに踏み込んでみましょう。

Modelling Level-2

  • サスペンションの静的保持剛性
  • サスペンションの動的保持剛性
  • ダンパー内流体の動粘性係数
  • スプリングの弾性要素の非線形特性

このレベルでは実際のサスペンションの特性をさらに詳細に再現できるようになります。その特徴は、動的特性(微分項に依存して特性が変化)と、非線形特性が再現されることです。これらの要素の再現をモデリングレベル2とします。筆者は、市販のシミュレーションソフト(iRacingやrFactor)はレベル1を少し超えたあたりに到達しており、現在はレベル2に到達することを狙っているのでは?と推測しています。

このレベルともなれば、一般の人から見れば十分に高い再現度に見えるかも知れません。しかし…これでもまだ実物との乖離は大きいのです(汗)。そこで、今回はもう一つ上のレベルにまで踏み込んでみましょう。

Modelling Level-3

  • サスペンション部品のたわみ・座屈などの弾性変形
  • 温度変化に起因する弾性および減衰特性の変化
  • サスペンション部品間の摩擦によるヒステリシス特性
  • ダンパー内部品の弾性・摩擦によるヒステリシス特性

このレベルに到達すると、場合によっては単一の解析ソフトウェアでのモデル開発は困難になります。例えば、上記の『サスペンション部品のたわみ・座屈』をシミュレーション上で詳細に再現したい場合、線形有限要素法(FEM)との連成解析が必要になります。

一通りのモデリングレベルを紹介したので、その特徴などを表にまとめてみましょう。この表の内容を見れば、難しい技術用語は理解できずとも、モデリングレベルの概念を理解しやすくなると思います。


さて、ここで改めてモデル開発の『目的』を振り返ってみましょう。市販のシミュレータゲームで言えば、その目的はドライビングを楽しむことなので、あえて大まかに言ってしまえばモデリングレベル1でも十分かも知れません。

一方、自動車メーカーでは、サスペンション設計や運動性能開発にも対応可能な高いモデリングレベルが求められます。その場合、ハードウェアとソフトウェアに必要なコストはまさにケタ違い……一般向けのシミュレータソフトウェアと比べて4ケタくらい違っても驚かないくらいです。

日産自動車NTCにあるドライビングシミュレータ
(引用元:日産自動車公式YouTubeチャンネル)
このように目的に応じつつ、時には確保した予算に応じて決めるモノ、それがモデリングレベルなのです。

まとめ


今回のブログでは、サスペンションを例としたモデリングレベルの解説を通じ、モデル開発の考え方とその手法を紹介しました。ここで要約すると、モデル開発とは複雑な物理現象をいくつかの側面から切り出すことです。

このため、モデルそのものは完全ではありませんし、現実とは違う部分が必ずあります。しかし、そのこと自体は大きな問題ではありません。モデリングレベルを適切に決定し、目的を満足しさえすればそれで充分なのです。

以上がモデル開発の考え方と手法です。概念的な説明が多く、エンジニアではない読者の方にとっては少々難解だったかと思いますが、いかがだったでしょうか?次回のブログでは、エンジニアではない人にとってはまず触れることのない、シミュレーションソフトウェアの世界を紹介します。

次回更新もどうぞお楽しみに!

[つづきはコチラ]

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秒であることが求められます。

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

まとめ


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

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

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

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

[つづきはコチラ]