GAIO CLUB

2022年05月16日

【第1回】おさえておきたいMBDのポイント

MBD実践ステップアップガイド
MBD実践ステップアップガイド
MBDとシミュレーション
自動車や航空機、産業機械などの制御開発の分野で、モデルベース開発(Model Based Development)が一般化しています。
既にMBDに取り組まれている方には多少くどい話になりますが、理解しておくべき基本的な事をできるだけ分かり易くまとめてみました。

モデルベース開発

制御システムの開発でモデルを使う目的は大きく分けて2つあります。

1.開発対象を深く理解する

試作品の代わりにモデルを使って評価するためには、開発対象の機能や性能を決定する要因を把握して正確なモデルを作る必要があります。

モデルのシミュレーション結果と実験で得られたデータを比較し、誤差要因を解析することにより実際の制御対象と同等な動きをするようモデルを修正します。

最初に実物による実験が必要な事に違和感があるかもしれませんが、モデル設計に必要なパラメータの取得や理論計算が難しいものがありますので、実験によるデータ取得、解析は必要不可欠です。一度基本となるモデルを開発できれば特性要因となるパラメータの変更や若干の修正・追加で同様な機種のモデル開発に応用が可能となります。

モデル化により開発対象の論理的構造を把握することが容易となります。
また、シミュレーションすることで各種パラメータの変更が特性に与える影響を見ることもできますので、開発対象の理解を深めるとともに制御システム開発の効率向上が図れます。
モデル開発

2.開発対象の代わりとするため

ECU(Electronic Control Unit)の制御プログラムを評価する場合、実際の装置に組み込んでテストする代わりにモデルが使うことができます。

図2はフィードバック制御系を表したモデルで、制御対象をモデル化したものをプラントモデル、ECUの制御アルゴリズムをモデル化したものを制御モデルと呼んでいます。
制御系モデル
評価の対象は制御モデルの評価であり、制御アルゴリズムが狙い通りの働きをしている事が目的ですので、制御対象となるプラントモデル精度や正確さは、それほど重要ではありません。もちろん、精密なモデルである方が実際に即した評価ができ好ましいのですが、精密になればシミュレーションに要する時間もコストも増大しますので、制御モデルの評価では実用的でなくなる場合も生じます。

制御モデルからの出力を受けて、相応の応答を適時返す事ができれば十分ですので、目的に合った精度でプラントモデルを作る事が必要です。

モデリングツール

モデルを作るにはC言語でも可能ですが、効率よくモデルを作成するためにモデル言語があり、代表的なものにMATLAB※1があります。

MATLAB自体はスクリプト言語ですが、Simulink※1と呼ばれるブロック線図を用いてモデルを設計するツールがあります。Simulinkにはグラフィカルなエディターがあり、必要なモデル部品(ブロック)をドラッグ&ドロップでモデル作成が効率よくできます。また、作成したモデルはその場でシミュレーションして、その動作や処理結果を確認できます。チャートやグラフとして視覚的に確認することもできますので、モデル作成の信頼性も向上します。

制御モデルの場合、モデルからC言語のプログラムコードを生成することができますが、マイコンに搭載するにはマイコンのアーキテクチャに合わせて若干の修正が必要となります。マイコンに搭載可能となるよう修正を加えたものは実装モデルと言われています。これに対し、元となる制御モデルは仕様モデル言われています。

一方で、C言語で直接設計するよりSimulinkから生成されるコードのサイズが若干大きくなることや、予め用意されていないブロックは自作する必要があることなどのデメリットもありますが、生産性と信頼性の向上のメリットの方が大きいと思われます。

※1 MathWorks社の登録商標
ブロック線図によるモデル設計

シミュレータ

モデルは物理式や論理式で構成されており、コンピューター上で計算(シミュレーション)することができます。
シミュレータは、シミュレーションにより実機(実際の装置)を使った実験と同等な結果を得るものです。

シミュレータを用いた実験結果は、その信頼性については実機に及びませんが、同じ条件で何度でも試験ができること、運転条件設定の自由度が高いことなどの特徴があります。この特徴を活かした実機にはないシミュレータのメリットとしては以下のようなものがあります。

1. テスト結果の再現性が高い

同一条件であっても実機では不確定要因があり実験結果に差異が生じる場合があるが、シミュレータでは結果は常に一致する※2。
※2 実際には演算タイミングや割込み要因などで結果が異なる場合もある。

2. 設定が困難な条件下での試験が容易

高温・低温・気圧変動など実験室で設定が困難な条件もシミュレータでは該当パラメータの変更でテストが可能。

3. 危険が伴う実験を安全に行う事が可能

重大な事故が発生する可能性の高いテスト(アクセルペダルの固着、衝突回避用レーダの故障など)も、シミュレータであれば危険を伴わない。

4. テストの自動化が容易

自動車の走行試験は車両の条件設定(暖機運転、バッテーリ充電条件、環境条件など)が難しいうえ、ドライバーによってもアクセルやハンドル操作に違いが生じます。シミュレータであれば車両状態、環境条件は容易に設定可能で有り、ドライバーの代りに運転パターンを入力することでテスト走行の自動化が可能です。

5. 同時並列試験

試作機の数は限定されますので、実機を使った試験は順番待ちが生じます。シミュレータであれば複数台準備する事ができますので、複数人が同時にテスト可能です。 特に大規模な制御プログラムの評価では数十人が一斉にシミュレータを用いて評価できますので開発期間短縮に有効です。
もちろん、実機でなければできない評価・試験もありますが、目的にあったモデルを使用することで実機を用いた評価工数の削減が可能となります。また、これまでできなかった評価もできるようになります。

次回は、目的にあったモデルについて、もう少し詳しく説明していきます。

この記事を読んだ人はこんなページを読んでいます。

筆者紹介

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

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

人気のコラム

最新のコラム