汎用コントローラ(RCP)と実ECUの違い
試作ECUを作成する工数や費用を削減するために、汎用コントローラを用いますが、
違いを理解しないで運用している方を時折みかけますので、
私自身の整理も兼ねて、簡単な特徴と差異を記事にしてみました。
汎用コントローラ(RCP)とは? その特徴は?
汎用コントローラは、
ラピッドコントロールプロトタイピング(Rapid Control Prototyping)と呼ばれ、
頭文字をとって、RCPとも呼ばれます。
ECUを模擬することが求められるため、
演算能力の高いCPU、豊富なメモリ、数多くのIOや拡張機能など高い性能を持っています。
実装方法としては、製品によって異なりますが、
Simulink®等で作成した制御ロジックをビルドして、
汎用コントローラにダウンロードして、動作させるのが一般的です。
また、プロジェクトが中断しても他のプロジェクトに流用することができるため、
再利用性も含めて様々なメリットがあります。
このように試作工程では非常に便利なのですが、汎用コントローラだけで製品開発はできないため、
どこかの工程で実ECUに切り替える必要がありますが、便利すぎるため、
一部のエンジニアは最終工程まで汎用コントローラで実験しているケースがあります。
ただ、実ECUと汎用コントローラには違いがあるので、
最終工程で使用することは、推奨できません。
実ECUと汎用コントローラの違い
そもそも汎用コントローラと実ECUは、まったく同じはありません。
ハード、ソフトウェアなどに大きな差があるわけではないが、
下記のような微妙な違いが多々あります。
例:ハードの入出力特性(例えばAD変換)
同じマイコンが搭載されているわけではないため、
サンプリングレート、変換時間、分解能が異なります。
またAD変換の回路特性も異なるため、入力される電圧も微妙に変わってきます。
例えば、アクセル開度等のセンサ系はこれに該当します。
例:ソフトウェア(BSW、BISO、ミドルウェア)
そもそもOSが異なります。
また、ドライバの処理方法、割り込み処理、タイミングも完全に同じではありません。
高周期でデバイス制御している場合などは注意が必要です。
例:ソフトウェア(アプリケーションレベル)
製品により実装方式が異なりますが、モデルからSimulink coderでコード生成する場合、
Simulink Coderと量産コードは同じではありません。
Simulink Coderから生成されるコードは、
高性能な演算処理能力、十分なメモリ容量がある前提となっており、
制御としては同じ振る舞いをするかもしれないが、実際には量産コードと完全等価ではない。
まとめ
上記に記載したように差異が複数ありますので、これらを理解して開発を進める必要がありますし、
個人的には最終工程で汎用コントローラで実験しないように、
開発プロセスを構築した方が良いかと思います。
そもそも最終工程(例えば、適合など)に汎用コントローラを用いると、
プロジェクトの中で多くの汎用コントローラが必要になり、
やり繰りや追加購入費が重なり、逆にプロジェクトの遅延を招きます。
では、どうすれば良いのか、、、?
それは、別の機会で投稿します
※MATLAB, Simulinkは、MathWorks社の登録商標です。