【エンジン】吸気流量を得るための仕様化 【エアフロメータ】

【エンジン】吸気流量を得るための仕様化 【エアフロメータ】 エンジン

はじめに

※ 本記事の以下を親記事とした子記事に位置付けられる。
https://www.simulationroom999.com/blog/physical-value-conversion/

前回までにエアフロメータから吸気流量を求める関数を導出した。
これを実際のECUに組み込む際の仕様に落とし込む必要がある。
今回はSimulinkモデル風に仕様表現してみる。

積分と移動平均

実際に積分を考える際は\(\sum\)ではなく、「移動平均」を保持している方が有利であることが多い。
「\(2TDC\)間の移動平均」が分かっており、後は「\(2TDC\)時間」が分かれば、

$$\displaystyle \int M_{air}[g/sec]dt[sec]=2TDC間の移動平均[g/sec]×2TDC時間[sec]$$

となり、結果として

$$G_{air}[g]=2TDC間の移動平均[g/sec]×2TDC時間[sec]$$

となる。

移動平均と時間積分はかなり密接な関係にあると言って良い。
(ノイズ除去用フィルタだと思ってたら大間違いってことは多い。)

積分、平均値、時間、平均値×時間と積分は同じ。面積は同一

論理モデル

とりあえず、何も考えずにモデル化すると以下となる。

吸気流量変換モデル例。クランク角30[deg]毎処理、大気圧P_A[mmHg]、大気温度T_A[degC]、エアフロ出力電圧V_AFM[V]、吸気流速M_Air[g/sec]、2TDC間吸気流速平均、電圧[V]→体積流速[L/sec]→質量流速[]g/sec]、処理負荷低減を考えると移動平均を先にして、MAP検索をTDC処理が和にもってくるかも。体積質量変換ではなく、時間の概念を含む流速流量変換[L/sec]→[L]を先にした方が処理的にはお得感がある。

※ 吸気流量とエンジン回転数の関係性については以下の記事で記載。

処理タイミングとしては、以下2つ。

  • クランク角\(30[deg]\)毎処理
    • エアフロメータセンサ値取得
    • 移動平均
  • \(TDC\)タイミング処理(クランク角\(30[deg]\)毎処理が12回に1回)
    • \(TDC\)時間算出
    • 吸気流量算出

考えられ改善点としては以下。

  • MAP検索を毎回やるよりも移動平均後に一括でやった方が良さそう。
  • 移動平均を毎回やるよりも12回に1回に纏めた方が良さそう。

実装モデル

論理モデルは数式をそのまま表現したものであったが、実装モデルの段階では処理負荷を考え演算を最適化したり、処理周期が長い方に演算を寄せたりする。
今回の場合だと以下のようになる。

エアフロ出力電圧、エアフロ出力電圧行列、流速流量変換の積分仕様はバッファに溶けて消えた。電圧のLSB仕様如何によっては精度が悪くなる可能性あり。高精度電圧LSBに変換するとかの対策が必要。大気圧、待機温度、体積質量変換仕様はMAPに溶けて消えた。吸気流量

かなりスッキリした状態になる。
一見すると消えた仕様があるが、消えたというよりも別の概念に溶けたイメージ。

  • 流速流量変換の積分仕様は移動平均用のバッファに溶けて消えた。
  • 体積質量変換仕様はMAP変換に溶けて消えた。

このように実装モデルだけ見ると、元の数式が分からなくなることが多い。
よって、仕様のトレーサビリティが重要という話が良く現場では出てくる。

まとめ

  • 積分仕様は移動平均で表現されることが多い。
  • 処理負荷の都合で演算が移動することが多い。
  • 演算の移動や最適化の結果、元の数式が影も形も残らないことが多い。

コメント

タイトルとURLをコピーしました