スキルアップNEW

【連載】自動車開発におけるシミュレーションの基本(第4回)

【連載】自動車開発におけるシミュレーションの基本(第4回)

第4回:制御ソフトウェア開発におけるシミュレーション環境の構成

前回、ハードウェアやソフトウェアのシミュレーションの考え方について解説しました。今回は、それらの技術を組み合わせてシステムのシミュレーション環境や評価環境を構築する際の構成の考え方について説明します。具体例として、第2回で観察したACC(Adaptive Cruise Control)システムにおいて、ADAS(Advanced Driver-Assistance Systems)コントローラをシミュレーション環境に接続して評価する状況を題材とします(図1)。

図1 ACCシステムにおけるテスト対象(ADASコントローラ)の位置付け

ADASコントローラは最終的に実車に搭載されて機能するため、実車に搭載された状態での動作に問題がないかを確認したい、というのが評価の主たる目的となります。そのため、シミュレーション環境を構築する際の基本方針は、「テスト対象(ここではADASコントローラ)が実車に搭載されている状態をできるだけ(あるいは必要な分だけ)再現する」というものになるでしょう。

その方針に基づくシミュレーション環境構成の基本的な考え方は、テスト対象の振る舞いに影響する外部の要素をシミュレーションする環境を構築してテスト対象と接続する(図2)、というものになります。ここで、テスト対象とシミュレーション対象の境界はADASコントローラの周辺の四角枠となり、ハッチングされた領域がシミュレーションの対象となります。

図2 評価対象(ADASコントローラ)とシミュレーション対象(ハッチングされた領域)

ここで、テスト対象とシミュレーション対象の境界に着目し、システム構成図(図3)からADASコントローラが直接接続されている要素と、その入出力信号を抜き出してみましょう(図4)。各信号は、あくまでイメージとしての一例です。

図3 ACCのシステム構成図
図4 ADASコントローラの接続・入出力

ADASコントローラへの入出力という観点で図を書き直すと図5のようになります。

図5より、ADASコントローラを評価するためにはADASコントローラに所定の信号を入力し、出力される信号を観測すればよい、という発想が浮かぶと思います。これは、図2の「シミュレーション対象」をシミュレーションする手段として「シミュレーション対象が出力する信号を設計してADASコントローラに入力する」、という方式を採ると位置付けることもできるでしょう。

図5 入出力信号の観測によるADASコントローラ の評価

このような考え方で構築されたシミュレーション環境をオープンループシミュレーションと呼び、しばしば図6のようなブロック図で表現されているものです。

図6 オープンループシミュレーション

オープンループシミュレーション環境を使う場合、その利用者は入力信号を設計して評価対象に入力し、出力される信号を観測して出力結果を判定することになるでしょう(図7)。

図7 入力信号の設計と出力信号の観測のイメージ

オープンループシミュレーションが活用可能なシーンは多くあり、例えば以下のようなケースが考えられます。

  • 評価対象の、入力信号に対する出力信号の単純な機能的振る舞いを確認したい場合
    …例えば、「ある入力信号フラグが立ったら、出力信号としてXXXを出力すること」のような振る舞いを確認したい場合など
  • 別途入手したログデータをリプレイ入力して現象を再現し、詳細な解析をしたい場合
    …実走行データや別のシミュレーション環境で取得したログデータなどを入力信号として与え、内部値の確認といった詳細解析を行いたい場合など

一方でオープンループ構成には課題もあります。端的に言えば、評価対象の出力信号が入力信号に及ぼす影響を反映できない、という点です。

ACCの例で考えると、ADASコントローラの出力信号としてブレーキ指令という信号があり、入力信号としてブレーキ状態・車輪速(ホイールの回転速度のこと)などの信号がありますが、前者は後者に影響します。理由はシンプルで、ブレーキをかければブレーキ状態が変化し、(通常は)自動車は減速して車輪速信号も変化するためです(図8)。

図8 物理現象を介した入出力信号の振る舞いの依存関係(ブレーキ)

これはブレーキユニットに限った話ではなく、他のセンサやアクチュエータについても同様です(図9)。また、ハードウェア(物理現象)を介さないとしても、あるユニットの出力信号が巡り巡ってそのユニットの入力信号に影響を及ぼすような構造を持っていれば同様です。

図9 物理現象などを介した入出力信号の相互作用

このように、システムがハードウェアなどの外部システムへ作用し、その外部システムからフィードバックされる作用を考慮する必要がある場合には、それに対応するシミュレーション環境を構築する必要が生じ、通常は図10のような構成になります。ここで、評価対象の外部の要素をプラントモデルと呼んでいます。プラントモデルという単語はもともと制御の分野では制御対象(ACCの場合は自車[評価対象となる車]の走行状態)のモデルを指す単語ですが、その他の対象も含んで使われることもあるため、ここではプラントモデルと呼んでいます。(例えばACCの場合、前方車の運動や走行状態は自車から遠隔制御するわけではないため直接の制御対象ではありませんが、シミュレーションするためには考慮が必要なため、ここではプラントモデルに含めています。)

図10 プラントモデルとの相互作用を考慮したシミュレーション環境の構成

このような考え方で構築されたシミュレーション環境をクローズドループシミュレーションと呼び、しばしば図11のようなブロック図で表現されているものです。

図11 クローズドループシミュレーション

信号の依存関係について

前項までで、実際の車両のシステム構成を基にしたシミュレーション環境の構成の考え方や、オープンループシミュレーションとクローズドループシミュレーションの解説を行いました。前述の通り、あるシステムの出力信号が、外部システムと相互作用するなどにより、そのシステムの入力信号に与える影響を考慮する必要がある場合(入力が出力に依存している場合)は、クローズドループ構成が必要となるでしょう。

ここで、信号の依存関係という観点でもう一点、数学的・物理的整合性による信号間の依存関係についても言及します。

シンプルな具体例として速度と座標の関係を例に挙げます。

例えば、走行中の自動車の速度と座標を考えたとき、「地面に対する自車の移動速度が30km/hであるにもかかわらず、地面に対する自車の位置(座標)が変化しない」ということは物理的にあり得ないでしょう(図12)。

図12 速度と座標の関係が矛盾した状況

実際には速度と座標の間には数式で定式化可能な関係があります(図13)。

図13 速度と座標の関係

図12のような、数学的・物理的に矛盾した信号は、オープンループシミュレーションなどの環境で入力信号を手動で設計すると作成できてしまうパターンです(図14)。

図14 数学的・物理的に矛盾した信号が評価対象に入力される状況

一方で、プラントモデル内で物理法則に基づく数式を用いて各種物理量を計算すると、このような整合性は自動的に取れるという利点があります(細かく見ると、第3回の記事で言及した離散化や実装における数値積分誤差などの論点はありますが、本記事では割愛します[図15])。

ここでは数学的・物理的整合性という観点での信号の依存関係について言及しましたが、それ以外にも信号間にはさまざまなパターンの依存関係や制約条件があります(排他的関係[同時に立つことがないフラグAとB]、順序関係[フラグAが立った後にしか立たないB]など)。シミュレーション環境を構築する際には、こういった信号の依存関係にも注意を払うべきでしょう。

今回は、実際のシステム構成を基にシミュレーション環境の構成の考え方を解説しました。実際のシステムをどのようにシミュレーションするか、という前回の内容(今回におけるプラントモデルでのシミュレーションに該当します)をベースに、あるテスト対象を評価するために構築したプラントモデルを評価対象とどのような考え方で接続すればよいか、という点を中心に説明しました。

次回は、モデルベース開発を前提としたときに、MILSやSILSやHILSと呼ばれる環境の構成の考え方について解説します。

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Search Articles By The Cast出演者/執筆者から記事を探す

Search Articless By The Categoryカテゴリから記事を探す

Ranking

ランキング

もっと見る