エンジン性能を支えるECUの驚異的な演算速度

こんにちは、監督の由元です。
今日は、エンジンの回転速度と、ECUの制御の速さについて考えることでECUの気持ちになってみます。

高回転のエンジンを制御できるECUはどれくらいの速さで動いているのでしょう?

例えばエンジン回転が6000rpmというと、1分間に6000回転している状態ですね。

6000rpmは、1秒に100回転していますから、1回転あたりの時間は0.01秒(10ms)です。 (1msは1000分の1秒)

ECUはこの速さの中で、気筒を判別し、各気筒に決まった量の燃料を噴射するよう、インジェクタの通電、遮断を繰り返し、且つ、決められた点火時期になるよう、イグナイタを通して点火コイルの通電、遮断を繰り返す必要があります。

ここで、時間をわかりやすく表現するために、1秒を10メートルのチャートとして考えます。すると以下のようになります。

時間      チャート  回転数
1秒=1000ms  10m    100回転
0.1秒=100ms   1m     10回転
0.01秒=10ms  10cm     1回転
0.001秒=1ms   1cm    1/10回転(36°CA)※CAはクランクアングルつまり回転角度
0.1ms=100μs  1mm   1/100回転(3.6°CA)
0.01ms=10μs  0.1mm 1/1000回転(0.36°CA)

10μsの速さでECUの出力をコントロールすることで、なんとか0.36°CAの精度で点火時期や噴射時期を調整できそうです。

通常、ECU等の組み込み制御で使われるマイコンの動作周波数(クロック)は20MHz程度です。(最新のECUは400MHz 64ビットというのもあるようですが)
1秒に2000万回のクロックを刻むので、1周期は0.05μs(50ns)と非常に高速です。エンジンが高回転で回っていても、ECU側から見ればスローモーションに感じますね。

普段、車に乗っている最中に意識することはないかもしれませが、エンジンが回っている間、ECUは数μs毎にセンサの入力を読み、演算して出力してくれています。

(※実際はもう少し複雑ですが 簡単にイメージが湧く表現にしています)

とある車種のノーマルECU。

ビートに使っているMoTeC M4。もはや20年前のものですが、マイコンのスペックは33MHz・32bitと、当時としてはかなり高速。