GAIO CLUB

2023年01月05日

【第6回】ベーシックソフトウェア

MBD実践ステップアップガイド
MBD実践ステップアップガイド
開発した制御モデルをマイコンに搭載して動作させるために必要なソフトウェアをベースソフト(Base Software)もしくはベーシックソフトウェア(Basic Software)と言います。

どちらも一般的に使用されていますが、略してBSWと言われることも多いようです。また、BSWとプログラムを組み込むECUハードウェアと合わせてPF(Platform)といいます。

MBDとBSW

モデルベース開発(以下、MBDと略す)では制御モデルは物理量で扱いますので、プラントを制御するアクチュエータを動かすには電気信号に変換する必要があります。

マイコンの入出力は基本的には0か1のデジタル値ですので、物理量を表す為にはパルスの周期やデユーティなどに変換する必用があります。マイコンの周辺回路(ECU)は、マイコン出力の変化を受けてアクチュエータの駆動信号への変換や、AD変換器を用いて電圧―デジタル値の変換を行いマイコンへ入力します。

この機能も含め制御アプリケーションを動作させるために必要な基本的なソフトウェアがBSWです。BSWはタスクやメモリの管理の他、I/Oドライバーの機能を持ちます。これらの機能は短時間で複雑な処理を必要としますので、一般にC言語で記述されます。

初めにMBDを「ブロック線図を用いて制御モデルを開発するスタイル」と狭義に定義しましたが、BSWが無ければMBD手法で開発した制御アプリケーションを機能させることができません。

AUTOSAR

BSWにより制御アプリケーションはECUハードウェアに依存することなく開発することができるだけでなく、実績のあるアプリケーションを新しい製品で再利用できることになります。

また、BSWを標準化すれば開発者は制御アプリケーションの開発に集中することが可能となるだけでなく、複数のアプリケーションを分業で開発することも容易になります。

このことから、アプリケーション開発の品質向上と効率化を狙ってAUTOSAR※注によりBSWの標準化が行われています。当社は自動車メーカーを中心に活用されていましたが、MBDの普及にともない制御装置開発の全般で利用されるようになってきました。

Application layerは複数のSWC(ソフトウェアコンポーネント)から構成されます。AUTOSARではMBDを想定して標準化されたものではありませんが、SWC間の結合やBSWとのインターフェースが標準化されたことで、MBDがより効果的に活用できるようになりました。

注※ AUTOSAR(AUTomotive Open System ARchitecture)は欧州の自動車メーカーを中心に作られた標準化団体

Complex Driver

AUTOSARでは標準的なシステムサービスや通信、I/O処理は標準化されており、複数のベンダーからBSWが提供されており、またマイコンのアーキテクチャに依存したI/OのドライバーについてはマイコンベンダーからMicrocontroller Abstraction Layer(以下、MCALと略す)として提供されていますので、これらを利用すれば用途にあわせたBSWを効率よく構築することができます。制御内容によっては複雑な処理を短時間で処理することが必要な入出力もあり、専用のドライバーを開発する必要があります。

これをComplex Driverと呼んでいます。

例えば、モデル演算結果からパルス出力時間を求め、トリガ信号から一定時間後にパルス信号の出力を開始する場合を考えてみます。
SWの役割は、パルスのON時間Tを求めることで、トリガ入力時刻に所定の時間を加算して出力開始時刻を求め、パルス出力のON/OFFの時刻を設定するレジスタに書き込む必要があります。

詳細な説明は長くなりますのでここでは省略しますが、アクチュエータを正確に駆動し、制御システムの性能を決定づけるものとしてComplex Driverは重要な働きをしています。

SWCの動作確認

BSWにより、マイコン入出力の煩雑な処理を意識することなくSWCを構成することができるようになりますので、MBDにとってBSWはなくてはならない仕組みとなっています。

一方で、MBDにより開発したSWCがBSWと結合して要求通りの動作を実現しているかを検証する必要がありますが、この場合はモデルからC言語のソースコードを生成して、BSWと結合した実装コードを作る必要があります。

MBDの話題から少し離れますが、評価は重要なプロセスですので、実装コードを用いたSWCの評価について考えてみましょう。

開発したSWCを評価するうえで留意すべき点は、SWCで求められる制御量とBSWから出力される制御量には時間差があることです。理論上では入力(状態量)と理論式で求まる出力(制御量)は同時刻ですが、BSWの入力データ処理時刻とSWCによる演算処理時刻、さらにはBSWによる出力時刻はそれぞれ異なりますので、出力は必ずしも理論通りにはなっていません。

実際の制御システムでも応答遅れやバラツキがありますので、入力、演算、出力の時差から生じる誤差がフィードバックや学習値による補正できる範囲内であれば問題はありませんが、累積誤差により制御が不安定になる場合や発散してしまう場合が生じる可能性があります。

このためSWCが要求通りの動作をすることを確認するためには、BSWと結合した状態での検証が必要となります。

HILSの活用

SWC単体であればモデリングツールのシミュレーション機能を用いて動作を評価することができますが、BSWと結合した状態での動作確認を行うためにはECUへ実装する必要があります。ECUへ実装する手間は必要ですが、Hardware In the Loop Simulator(以下、HILSと略す)を用いると実験室で動作検証ができます。

HILSにはシミュレーションの実行管理の他、モデル入出力信号の計測機能があり、モニター上にアナログ/デジタルのメータに加工して表示する機能や時系列のデータをグラフ表示する機能があり、マイコンのメモリやレジスタのデータ、プラントの運転・操作をする出力機能も持っています。これらの機能を使えば、テストシナリオの自動実行からテスト結果の判定やレポート作成までを自動化することも可能です。また、プラントモデルのパラメータの計測機能もありますので、実際のプラントでは計測が困難な情報を入手することもできます。

シミュレータといえば性能や精度に評価の重点が置かれることが多いですが、テストするための機能やデータの収集能力、使い勝手の良さも評価に加えてHILS導入を図るべきと考えます。

Virtual HILS(SILS/sPILS)について

大規模な制御開発では、HILSを必要台数導入するコストの問題や使用環境や条件の設定が難しいこともあり、パソコン上で全てを評価したいという場合もあります。

BSWに相当する機能をモデル上に作ればMILSを構成できますし、パソコンのC言語開発環境を使ってBSWを作ればSILSを構成することは可能です。開発ターゲットとなる制御マイコンの命令コードをシミュレートするアプリケーションを使えば実装コードをシミュレーションすることができますが、BSWの他にマイコン周辺のアーキテクチャに相当する機能を準備する必要があります。

いずれの場合も利用するための環境整備やユーザーサポートの難しさがあり、HILSを使いこなしてから、次の段階として検討することをお勧めします。

筆者紹介

斗納 宏敏(とのう ひろとし)

入社時は電気系エンジニアでしたが、数年間はエンジン実験や試験走行が主な仕事でした。その後、制御プログラム開発を担当している時にデバッグ用にシミュレータを開発しましたが、入社時の経験が大いに役立ちました。今では仮想開発環境が一般的となりましたが、実物を使った実験をする事がMBDにおいても重要だと考えています。

人気のコラム

最新のコラム