ホワイトペーパー

はじめに

ソフトウェア・ディファインド・ビークル (SDV) に転換することで、自動車メーカーは、車両のライフサイクル全体を通じて新しい機能を追加できるようになります。頻繁なアップデートを実現するために、各開発チームは高性能コンピューター (HPC) を備えた集中/ゾーン型 E/E アーキテクチャ、サービス指向アーキテクチャ (SOA) を用いた組み込みソフトウェア、継続的インテグレーションと継続的デリバリー (CI/CD) による自動化、シミュレーションを活用したバーチャル検証など、新たな手法を取り入れています。

SDV への移行は決して容易なことではありません。このホワイトペーパーでは、MathWorks と世界各国の自動車関連企業の取り組みから得られた知見とベストプラクティスをご紹介します。モデルベースデザインがどのように SDV 開発を可能にするのか、その方法を以下の観点から解説します。

  • プラットフォーム間でのソフトウェアの再利用: モデルベースデザインにより、HPC、ゾーンコントローラー、電子コントロールユニット (ECU) 間でのソフトウェアの再利用が容易になります。
  • 自動化による開発期間の短縮: モデルの活用と、自動化された継続的な検証、整合性チェック、トレーサビリティ分析により、安全性や品質要件を満たす一方で開発期間を短縮できます。
  • シフトレフト統合の実現: 物理システムモデルと仮想化されたソフトウェアスタックを連携させることで、ソフトウェア統合テストのシフトレフト (前倒し) を実現し、不具合の早期発見とテストカバレッジの向上を図ります。
  • 特定分野の専門家による開発の実現: : モデルベースデザインにより、各分野の専門家は最新のソフトウェア開発手法を取り入れ、高品質のソフトウェアを開発できるようになります。
セクション

ソフトウェアの機能と顧客への価値

ブランド独自の機能と顧客への価値は、ソフトウェアを通じて提供されます。顧客は安全性だけでなく、自動車が単なる移動手段を超え、デジタルなつながりと体験をもたらすプラットフォームとなり、継続的なデジタルライフを提供してくれることを期待しています。こうした期待が、電動化や自動運転などの車両技術の進歩を促しています。

SDV 価値サイクルの図。顧客の期待、テクノロジーとイノベーション、ビジネス機会が含まれています。

ソフトウェアは、顧客のニーズに対応し、ビジネス目標の達成をサポートする機能を提供します。このサイクルは、顧客の期待が変化していく中で繰り返されます。

ソフトウェアの迅速かつ確実な提供

自動車業界で求められる高い品質のソフトウェアを迅速かつ確実に提供するには、多くの課題が伴います。それには、以下のような要因が挙げられます。

  • ソフトウェアの複雑化と検証の難しさ
  • 機能安全要件への対応
  • 車両システムチームとソフトウェアチームの考え方の相違

このホワイトペーパーでは、SDV 開発に必要なテクノロジーだけでなく、協業するチーム間の連携についても取り上げます。

SDV の構成要素の考察

MathWorks は世界各地域の自動車関連企業と連携する中で、機能するパターンと上手くいかないパターンの両方に目を向けています。

SDV を実現するには、車両開発とソフトウェア開発の能力に加え、両チームの緊密な連携が不可欠です。しかし、これらのチームは異なるプロセスやツールを使用してきた歴史があるため、別々に作業することが多いのが現状です。

ソフトウェア定義製品の開発に求められる能力 (最新のソフトウェア手法、データ駆動型の機能、クラウド) と車両エンジニアリングの能力 (信頼性、機能安全、物理コンポーネント)。

「ソフトウェア定義」と「車両」の構成要素。

車両は、信頼性、機能安全、さまざまな物理コンポーネントの統合が重要となるマルチドメイン システムです。

ソフトウェア定義製品を構築する能力には、迅速な開発、頻繁なリリース、ソフトウェア開発プロセスの高度な自動化を特徴とする最新のアジャイル ソフトウェア開発手法が含まれます。また、クラウド経由でフリート (車両群) から得られたデータを活用するデータ駆動型機能も求められます。

これらの能力を統合するには多くのリスクが伴い、作業も複雑化します。チーム、ツール、プロセス、考え方、さらには先入観が競合し合うためです。

SDV 開発プロセスの基盤となるのは車両そのものです。20 年前には、自動車システム開発のエンジニア達はサイロ化された手法で、異なるチームに分かれて作業していました。情報交換は文書を通じて行われていましたが、モデルベースデザインの登場によって、この状況に変革がもたらされました。

要件、アルゴリズム設計、アーキテクチャ、シミュレーション、組み込みソフトウェア、コード生成といった開発の要素を示す図。多くの場合、これらはサイロ化されています。

サイロ化された従来のシステム開発手法。

セクション

モデルベースデザインの適用

モデルベースデザインでは、ドキュメントではなくモデルを中心に開発作業を行います。モデルは実行可能な一連の要件として機能し、検証、妥当性確認、テストの各作業を推進します。この手法により、要件、アーキテクチャ、アルゴリズムの問題を早期に発見し、解決することができます。その後、アルゴリズムモデルから C/C++ などの組み込みコードを自動生成し、マイクロコントローラー上で実行することが可能です。

以前はサイロ化されていた開発要素 (シミュレーション、アルゴリズム設計、コード生成、要件、アーキテクチャ) が、モデルベースデザインにより組み込みソフトウェアにどのように統合されるかを示す図。

システム開発を合理化するモデルベースデザイン。

モデルベースデザインを導入することで、チームは従来の V サイクルにありがちな柔軟性の無さにも対処できます。V サイクルに厳密に従うと、一連の手順が順番に実行されることになり、システムの細分化を行う前に確かなシステム要件が必要になったり、すべてのコンポーネントが揃うまで統合テストができなかったりするため、アジリティや効率性が大きく損なわれます。

Simulink® を使用したモデルベースデザインでは、バッテリーやステアリングなどの物理コンポーネントや車両全体のアーキテクチャを含むシステム全体をモデル化してシミュレーションすると同時に、車載ソフトウェアの各種アルゴリズムを再現することができます。こうしたシステムモデルを活用することで、新しいソフトウェア機能の開発から、開発初期段階での統合テスト、さらには他のソフトウェアの機能と連動させた新機能のテストに至るまで、すべてをバーチャル車両内で実行することができます。

さらに、Simulink を活用すれば、V サイクルよりも手順を圧縮でき、最新のソフトウェア開発手法に即した手順の自動化も可能になります。

最後に、SDV の登場により、車両の E/E アーキテクチャだけでなく、関連する開発プロセスも変化しています。これに伴い、モデルベースデザインを活用したワークフローも進化しています。

シミュレーションと仮想化によるシフトレフトの実現

ワークフローの変化の一つとして、チップ、基本ソフトウェア、ミドルウェアの仮想化が挙げられます。これにより、開発初期のソフトウェア統合 (シフトレフト統合) が可能になります。たとえば、Simulink では、Synopsys の技術を用いて Infineon® AURIX™ プロセッサのバーチャル表現を組み込むことで、統合やテストの工程を前倒し (シフトレフト) できます。シミュレーション環境で素早く検証を繰り返し、Infineon ライブラリを通じてプロセッサ用に最適化されたコードを自動生成できます。Simulink は、Qualcomm といった他社の仮想化技術と連携させることもできます。

サードパーティ製の Synopsys と Qualcomm の技術と連携させたモデルベースデザインのフロー図。次世代プロセッサ用に最適化したコードの生成や開発初期段階での統合を可能にします。

シフトレフトにより、迅速な反復、テスト、早期検証が可能になります。次いで、プロセッサ用に最適化されたコードが生成できるようになります。

サービス指向アーキテクチャへの対応

SOA は、個別にアップデートできるモジュール型ソフトウェアの構築において重要な要素です。現在では、モデルベースデザインと Simulink を活用することで、HPC やゾーン コントローラーを含む新しい E/E アーキテクチャ向けに、信号ベースとサービス指向の両方のアプリケーションを作成できます。AUTOSAR Adaptive アプリケーションなどの SOA をモデル化してシミュレーションし、これらをモジュール型サービスとして展開する前に C++ コードを生成することができます。

SOA ソフトウェアスタックの例。上から順に、アプリケーション ソフトウェア、ミドルウェア、基本ソフトウェアの各レイヤーが高性能ハードウェア上で動作しています。

中国の EV メーカーである Zeekr 社は、SOA ソフトウェアの開発にモデルベースデザインを活用することで、開発チームによる反復作業を加速し、ソフトウェアを迅速にリリースできるようにしました。

詳細を見る

オープンソースとサードパーティ製プラットフォームとの連携

実際の開発環境では、多くのツールやプラットフォームを統合する必要があります。モデルベースデザインはこの点でも優れており、Simulink をオープンソースのツールやコードを含む他の多くのツールと連動させることができます。

C++、DDS、Python、FMI、ROS など、Simulink と連携するサードパーティ ソフトウェア技術を示す図。

システムとコンポーネント全体をモデル化できます。複数のソースからコンポーネントを統合することも可能です。

複雑なシナリオのシミュレーション

シミュレーション用にオンロードやオフロードのシナリオを作成することで、システム要件の調整や実際の状況に即したテストを行うことができます。

シミュレーションやテスト用に、道路や工事現場のシナリオを作成できます。

スピードと品質の向上

次に、ソフトウェアの側面を見ていきます。最新のソフトウェア開発手法では、アジリティ (俊敏性) が重視されています。

モデルベースデザインを実行するワークフローも進化し、共通のツールと目標によって車両システム開発とソフトウェア開発の各チームの足並みを揃えることで、全体のプロセスをアジャイル化しています。システム全体と各コンポーネント、仮想プロセッサ、シナリオの仮想化によって、現実的なテスト環境が実現します。

エンジニアリングツールは、ITインフラとの統合がますます求められています。自動車業界では、エンジニアリング部門と IT 部門が緊密に連携することは一般的ではありませんでした。MathWorks は、これらの部門を結びつけ、ソフトウェアチームとプラットフォームチームが使っている DevOps ツールを活用したモデルベースのシステムズ エンジニアリング プロセスの自動化を支援しています。目標は、プロセスやパイプラインの運用を統一し、ダッシュボードやパフォーマンス ベンチマークを通じて透明性を確保することです。

コードベース開発と DevOps/CI プラットフォームのボックスを含むソフトウェア ファクトリーの図。

共通のツールと目標によって、ソフトウェア開発と DevOps を連携させています。

ソフトウェアが自動生成や手作業、または両方を組み合わせて作成された場合でも、車両システム、コンポーネント、プロセッサ、ソフトウェアスタック、シナリオを仮想化することで、現実に即したテスト環境が実現します。この環境は、継続的インテグレーション (CI) パイプラインを通じて接続・自動化することが可能です。

たとえば、Geely 社のエンジニアは、継続的インテグレーションと継続的テスト (CICT) が、迅速なソフトウェア開発から迅速かつ高品質なソフトウェアの開発へと移行するための重要な要素であると考えています。Simulink、Simulink Test™、Polyspace® といったエンジニアリング ツールと CICT プラットフォームの連携によって、価値の流れを加速し、継続的で高品質、迅速かつ安定的で管理しやすいソフトウェアの提供を、より低コストで実現できるとしています。結果として、初回のソフトウェア統合テストで 90% の成功率が報告されました。

アクセス制御検査から自動テストまでをカバーする Geely のワークフローのフローチャートに、ソフトウェア品質のための CICT の加速やシフトレフトの価値が示されています

Geely 社、DevOps を活用して品質と速度を向上 (中国での MathWorks Automotive Conference より)。(画像著作権: Geely)

Continental 社は、以前からこうした取り組みを行っており、GitHub®、Jenkins®、Artifactory との統合を含め、モデルベースのアプローチをソフトウェア ファクトリーに統合しています。これにより、CI/CD システムの速度が 2 倍になり、保守作業が半減しました。

Continental 社のソフトウェア ファクトリーの開発フェーズを示すプロセス フローチャート。

Continental 社が MathWorks Automotive Conference でソフトウェア ファクトリーについて講演した際の資料のスクリーンショット。(画像著作権: Continental)

この 2 つの事例は、システムと最新のソフトウェア手法を統合することの重要性を明確に示しています。

AI を組み込んだシステムの設計

データ駆動型機能の主要なタイプのひとつが AI です。これには組み込みシステム向けの AI アルゴリズムも含まれ、一般的に組み込み AI と呼ばれています。MATLAB® と Simulink では、AI を活用したソフトウェア機能をシステムに組み込んで、推論モデル用のコードを生成するまでを示す参考例のライブラリが提供されています。これらの例は、複雑な組み込みシステムの性能と機能を向上させる AI アルゴリズムの設計、シミュレーション、テスト、検証、展開を行う際に役立ちます。組み込み AI の一例には、バーチャルセンサーがあります。

バーチャルセンサーの AI ワークフロー。データ準備、AI モデリング、システムシミュレーション、デプロイメントの流れを示しています。

AI は、PyTorch® のようなオープンソースのフレームワークで作成されることもあります。MATLAB は、Python® や TensorFlow™ との連携以外にも、同時実行、モデルコンバーター、MATLAB Deep Learning Model Hub を通じて、これらの環境と相互運用できます。Simulink ブロックはこれらの推論モデルを取り込むことができるため、シナリオを用いて AI がシステム内でどのように動作するかをシミュレーションして確認できます。

クラウドへのスケーリング

クラウドは、車両の機能やアップデートをプロトタイピング、開発、配布するために、シミュレーションとソフトウェア開発のスケーリングを可能にするプラットフォームを提供します。Simulink とクラウドの統合により、シミュレーションと開発のワークフローを、Amazon Web Services (AWS®) や Microsoft® Azure® などのクラウド プラットフォームに拡張できます。

セクション

まとめ

SDV の過程には、ソフトウェアとシステムの考え方、ツール、プロセスの統合が伴います。MathWorks は、AI、クラウド技術、最新のソフトウェア手法を支えるツールでこの取り組みを支援しています。

SDV 設計フローの図。

モデルベースデザインを活用した SDV 開発。