GAIO CLUB

2005年10月01日

車載ECU検証シミュレータ「怒濤の提案モデル」 エンジン・間欠ワイパー・DCモータ制御 一挙に紹介!

GAIO CLUB 特集
GAIO CLUB【2005/10月号】
車載ECU検証用シミュレータ「怒濤の提案モデル」


本特集では、2005/7月号で紹介した「カーエアコン」を題材としたシミュレータモデルに引き続き、第2弾として、新たに3つの車載ECU検証用シミュレータ「提案モデル」を紹介します。この「提案モデル」とは、シミュレータの運用をイメージして頂くために、皆様へのプレゼンテーションの一環としてガイオが作成する、実際の製品開発を題材としたシミュレーション適用サンプルです。新しい文化とも言えるシミュレータ導入に当たっては、社内外へのプレゼンテーション、啓蒙、稟議が必要となることが少なくありません。この「提案モデル」を、シミュレータ運用のイメージ、導入効果などの検討に役立てて頂きたいと思います。

【提案モデルその1】MATLAB/Simulink&ISS連携エンジンモデル ~シミュレータ開発環境をますます身近に感じて下さい!~

提案モデル車載ECUの要求仕様書となるMATLAB/Simulinkモデル

まず最初は、エンジン制御用ECUのシミュレータモデルの紹介です。自動車業界のECU(電子制御ユニット)開発では、開発の早期の段階で行われる、動作仕様作成・検討のフェーズにおいて、MATLAB/Simulink(R)(MathWorks社のモデリングツール)モデルが使用されています。
MATLAB/Simulinkは、自動車の駆動部分(メカ)と、これをコントロールする制御アルゴリズムを、同じ仮想環境の中でモデリングし、アルゴリズム動作を検証できるツールです。この制御アルゴリズム部分は、実際にはECUの組み込みマイコンにソフトウエアとして実装されます。このモデルは、組み込みマイコンへの制御ロジック実装のためのリファレンス仕様書として使用されています。

MATLAB/SimulinkプラントとISSとの連携

ガイオは、ECUへ実装した組み込みソフトの検証のために、MATLAB/Simulinkモデルとマイコンシミュレータ(ISS)を連携させたECUシミュレーション環境を提供しています。要求仕様として作成されたモデルの内、制御アルゴリズム部分を切り離し、ここにISSを接続することで、MATLAB/Simulinkによる仮想メカモデルを実際の組み込みソフトにより制御する仮想検証が行えます。

MATLAB/Simulinkエンジンモデル(要求仕様書)

下は自動車のエンジン制御のブロックを示しています。スロットル(アクセルペダル)の開度と、エンジンの回転数・トルクを入力として、エンジンへの空気流入量をECUにより制御するものです。この全ての制御モデルをMATLAB/Simulinkでモデリングした例を下の図に示します。
これをSimulinkにより動作シミュレーションした結果が、下図のScope(グラフモニター)に示されています。途中でスロットルが一気に開かれますが、これに応じたエンジン回転数、インテークマニホールド(エンジンへの空気取り入れ口)からエンジンへの空気流入量(質量流量、g/s)が計算されています。
これはエンジンECU開発における設計仕様書として使用され、ECUへのソフト実装が完了した時に、動作リファレンスとして比較検証するために使用されます。今回の提案モデルも、このMATLABによる動作をリファレンスとして、ISS連携後に、同じ結果が出るかを、動作目標とします。

制御ロジックをECUのマイコンへ実装

では次に、この空気流入量計算ロジックをECUのマイコンへ実装するステップへ進んだと想定します。これは、右上図で示される「エンジンへの空気流入量計算ブロックの内部アルゴリズム」を、ソフトウエア化してマイコンに実装すると言うことです。
MATLABからこの制御ロジックをオートコード出力(ソースコードの自動出力)するオプションもあるようですが、RTOSやi/oポートへのマッピングなどの調整が必要なため、実開発においては、まだまだハンドコーディングの割合が多いようです。今回の提案モデルでも、この制御ロジックは、別途ソフトウエアを作成して実装しています。

マイコンのi/oポートへ仮想的に接続

マイコンシミュレータのi/oポートと制御対象との接続には、MATLABのS-Function拡張機能(独自のコードをMATLABブロックに記述する機能)を使用して接続します。下右図が、「エンジンへの空気流入量計算ブロック」に、ISSとのi/oポート接続のブロック(put_mem_data、get_mem_data)を加えたものです。

ISS連携の実行結果

下のグラフが、ISSで空気流入量計算を行った場合の実行結果です。最初に上げたリファレンスモデルのグラフと、よく一致していることがお分かり頂けると思います。

【提案モデルその2】間欠ワイパー動作モデル ~外部アクチュエータ動作のタイミング仕様を明確にする~

ボディ電装系ユニットとは

ボディ電装系ユニットとは、ワイパーやランプのスイッチの情報を入力として受け取って、その入力に応じて、ワイパーモータやランプを駆動/点灯させるユニットの総称です。スイッチは、ドライバーの操作によるもの以外に、駆動部に付いた位置検出のスイッチなども含まれます。

ワイパー制御ユニット

ワイパー動作は、皆様に最も分かり易いものの1つだと思います。ワイパーが窓の端に達したら、位置センサーとなるスイッチによって、モーター駆動を制御するのが基本動作となります。さらに「間欠」動作では、時間による駆動停止・開始の制御も含んでいます。

シミュレータ検証の目的

多くのボディ電装系開発者が、シミュレータ運用に期待する効果として最も大きなものは、「アクチュエータ動作に関わるタイミング仕様」を明確化して検証することです。ワイパーの場合、それほど複雑な仕様があるように見えないかもしれませんが、特に「間欠」動作には、曖昧になりがちな動作があります。例えば、貴方の車で、ワイパーが間欠動作中、インターバル時間で動作を休んでいる時に、スイッチをOFFにするとどのように動作しますか?メーカや車種によって動作が異なるようです。

・間欠からOFFにしたら、そのまま動作を止めてしまう
・間欠からOFFにしたら、もう一度拭いてから止める


このような曖昧になりやすい動作仕様を明確にして、ECU実装時にその動作を完全に検証することが求められています。

システム構成とシミュレータ実行画面

ワイパーは駆動用DCモーターと、位置検出用スイッチで構成されています。下にブロック図を示します。
シミュレータの仮想ハードウエアとしては、ドライバー操作用のワイパースイッチ、モータ回転角度に合わせたワイパーアニメーションを実装しています。デバッグ用には、モーター回転角のグラフ表示と、位置検出用スイッチの状態波形モニターを実装しています。

【提案モデルその3】キャブレターシャッター制御 ~キャブレターシャッター特有のバネ付き空気弁の制御モデル~

バネ付きの特殊な空気弁

3つ目の提案モデルは、「キャブレターシャッター」です。エンジンへ空気を取り入れるキャブレターに付いている、空気量をコントロールするための空気弁に当たります。

4つのモータ動作状態(ステート)

この部品もECUにより制御され、DCモータで空気弁の開閉を行うものですが、特殊な開閉構造を持っており、バネにより弁が戻る様になっています。次の4つのDCモーター動作状態があります。

・フリー(バネで弁が戻る状態)
・ CW(正転:弁を開けている状態)
・CCW(逆転:弁を閉じている状態)
・ ブレーキ(弁の開閉を途中で止めている状態)


この空気弁は、フリー状態となると、バネの力により弁を閉じる動作をします。このバネには「バネ係数」と呼ぶバネの堅さに当たるパラメータがあり、この力を考慮した動作システムを想定する必要があります。

シミュレータ検証の目的

このように、キャブレターシャッターには、DCモータ制御に加え、バネによる戻り動作があります。「バネ係数」の設定により開閉速度が異なります。 実機を使用した検証では、このバネ係数などの物理的なパラメータを変更してテストするのは、時間と手間を要します。また、弁の回転角の時系列変化を、正確にモニターすることも容易ではなく、詳細な動作検証の障害となります。
これらの要素をシミュレータによる仮想環境に持ち込むことで、パラメータを自由にモーター動作状態アニメーション空気弁開閉状態アニメーションDCモータ入力パルス変更した動作検証を行うことが可能になります。
この例は、比較的小さなシステムですが、実機を使用した検証に掛かる時間と手間を大幅に削減し、開発を効率化すると共に、網羅的な条件テストによりファームウエアの信頼性を向上することにもつながります。

人気のコラム

最新のコラム