はじめに
ECUによる制御をやっていると必ず付きまとうのが物理値変換。
簡単なところだと、以下がある。
- センサの出力電圧をADCで受けて、それを具体的な物理量へ変換する
- CAN経由で得た他ユニットのセンサ値を、具体的な物理量へ変換する
これらは単純に1次方程式(\(y=ax+b\))で変換できたり、テーブル、マップで変換できたりであまり悩むことは無い。
しかし、それでは物理量にならないものを存在する。
ここでは、エアフロメータを題材とする。
エアフロメータというセンサからどのようにして吸気流量という物理値が得られるかを解いていく。
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A2%E3%83%95%E3%83%AD%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC
エアフロメーター(英: air flow meter)はエンジンを電子制御する際の入力情報としてエンジンへの空気吸入量を計測する装置である。エアフロセンサーとも呼ばれ、省略してエアフロと呼ばれる場合もある。英語圏ではマスフローセンサー(英: Mass flow sensor, MAF)と呼ばれる場合がある。
Wikipediaより
物理値変換について
完成車メーカ各社でやや呼び方が違うことがある。
- 物理値変換
- 物理量変換
- LSB変換
- Bit/Scale
- Bit/Scaling
基本的にはどれも一緒のことを言っていると思って良い。
しかし、
言葉の意味が物事の意味を指しているかと思えば、そうでもない。
おおよそ以下の意味を含んでいる。
「主制御が期待している入力情報の意味や精度」
「主制御が期待している出力情報の意味や精度」
(意味ってところがポイント)
吸気流量を得るための変換関数
- エアフロメータから取得されるのは吸気流量ではなく、吸気流速である。
- しかも、1秒間に透過する体積
- よって、「体積から質量の変換」と「流速から流量の変換」が必要となる。
https://www.simulationroom999.com/blog/conversion-function/
吸気流量を得るための体積質量変換
- 体積は圧力(気圧)、温度の影響を受けて変化する。
- 体積と質量の変換はmolを経由すると楽ができる。
- 演算回数が多いので、算出方法をある程度最適化しないと演算誤差が乗りやすくなる。
吸気流量を得るための流速流量変換
- 流速は流量の変化量である
- よって、流量を得るには流速を積分する必要がある
- しかし、エアフロメータからのセンサ値取得タイミングや実際の吸気工程のタイミングを意識した積分が必要。
吸気流量を得るための吸気流速吸気流量変換
- 必要な関数を大まかに分解し、それぞれを特定することはできる。
- そして、それぞれを合成して目的の関数を得ることができる。
- これがモデルベース開発の最も基本的な考え方となる。
吸気流量を得るための仕様化
- 積分仕様は移動平均で表現されることが多い。
- 処理負荷の都合で演算が移動することが多い。
- 演算の移動や最適化の結果、元の数式が影も形も残らないことが多い。
まとめ
- 物理値変換を考える際は主制御要求を起点に考える
- 主制御要求とセンサ情報に乖離がある場合は、物理量変換で分けて考える
- 体積⇔質量:\(mol\)を利用した相互変換
- 速度⇔量:微積分を利用した相互変換
- 外部の影響を考える
- 体積へ影響 ⇒ 温度、圧力
- 時間次元も物理値変換の対象と考える
- 時間の問題は時間を利用して解決することができる。
- \(Δ/Δt\)を利用するなど
- 時間の問題は時間を利用して解決することができる。
- 「論理モデル」と「実装モデル」と「実装」はそれぞれの都合(処理負荷/精度)により異なることが多い。
- 各種変換が見た目上、溶けて消えることがある。
- 演算結果精度都合で物理値変換仕様を変えることもある。
コメント