• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

minerのブログ一覧

2012年09月04日 イイね!

A/F計測ソフトウェアの実装開始

A/F計測ソフトウェアの実装開始集計/表示とかの実装はそれほど難しくないので一気に書き上げて、とりあえずダミーデータで初期化して表示テストを開始しました。。

テスト用に、数値はA/Fの8.0~30.0ではなくて、0~255で組んでます。
しかし字が小さくて見にくいなあ。本番は一桁少なくなるので何とかなるかな?
明日は適当に遅延計算をでっち上げよう。

週末には、何か適当なA/D変換値を突っ込んでテストしてみたいです。
#空気量を回転数で割った値なんかがいいかな?
Posted at 2012/09/04 23:48:09 | コメント(5) | トラックバック(0) | 電子工作 | 日記
2012年09月03日 イイね!

A/F計測ソフトウェアの検討

A/F計測ソフトウェアの検討レベルコンバータの完成によってデータロガーもシステムとして完成が見えてきたので、空燃比(A/F)の測定ソフトウェアの検討を始めました。


まず空燃比計ですが、排ガス中の酸素濃度をセンサーによって計測することで名前の通り空気(air)とガソリン(Fuel)の質量比率(Air by Fuelで A/F)を測定する計測器になります。
単体ではその瞬間のA/Fを表示しますが、エンジン制御と言う点ではその際の回転数やエンジン負荷が重要になります。

ここでちょっとだけ、エンジン制御の話を...。
Lジェトロ制御ではエアフローセンサーによりエンジンが吸入する空気量を測定して、理論空燃比から空気量に見合った燃料を計算しますが、走行状態によって補正を加える用になっています。
理論空燃比は14.7程度ですが、これは空気の質量14.7に対して燃料を質量1で混ぜて完全燃焼させると、酸素と燃料が丁度燃え尽きる比率になります。
ただ実際にエンジンがトルクフルにまわるには、もっと燃料が濃い状態が必要で、加速時などはA/Fで12~13位です。さらに(旧来の)ターボチャージャー付きエンジンでは、高負荷域では排気温度を下げるために燃料を多くしていてA/Fで10~11位となっています。
#最近のダウンサイジングターボは燃費を考えて、あまりA/Fを濃くせずに過給圧を下げるなどして対策しているようです。

そしてエンジンの回転数と負荷を縦軸/横軸に持つガソリン量の補正表(マップ)によって、調整しています。そのため燃調のチューニングというと、測定されたA/Fを基にこの補正マップを調整する作業になります。
(実施には他にも加速時や低温時の補正など色々入っていますが、割愛)
燃圧やインジェクターを変更したなどの場合は、理論空燃費部分の見直しが必要になり、一般的にはK定数と呼ばれる値を修正します。大体以下のような関係になります。

実際の燃料噴射量 = 理論空燃比によるガソリン量 * 補正値
理論空燃比によるガソリン量 = エアフロで計測した空気量 * K定数 / 14.7
補正値: エンジン回転や負荷によって変動する値(ECU内ではマップ参照して補正値を決定)


前置きが長かったですが、A/Fは瞬間値だけあっても使い道がなくて、どのような状況(回転数/負荷)でA/Fがどうであったかというデータが重要になります。
従来はECUの信号を取り出して回転数/負荷の状況のみを取り出せるようにROMトレーサーというものを設計・製作して運用して、運転状況に合わせたA/Fを目視で読み取っていましたが、これをデーターロがーで自動的に記録/収集するのが目的となります。


ほしいデータは回転数と負荷に応じたA/Fデータなので、ECU内部の燃調補正マップとあわせて回転数を16段階、
負荷も同様に16段階に刻んで 16x16の2次元のA/Fデータを収集するようにします。

縦横軸
- 回転数 16段
- 負荷 16段
ECU内では、シリンダへ一回に吸入されるガソリン量(インジェクター開弁時間)で扱われています。

測定値(16x16のマップデータとしてまとめる)
ただし各種の補正データを含んだり、16x16のマップ上で同じ位置のA/Fでも運転状況が異なる場合も多分にあるので、一つのA/Fデータではなく複数のA/Fのデータを蓄積する必要がある。他には燃焼室からA/Fセンサーまでの廃棄ガスの遅延、センサーの応答遅れがあるので、回転数や負荷状況を考慮する必要有り。


---------------------------------------------------------------------
以上を踏まえて、A/Fのデータ蓄積方法を検討する。

(案1)
16x16マップの各ポイントで、複数のA/Fデータを保持して平均化処理を行う。

(1-1) A/F値を加算、計測回数から平均を求める。
実装は簡単でデータ処理量も少ない。
ただし運転状況によって誤差が生じやすい。(いろんな状況を蓄積、平均化してしまうため)
(1-2) A/F値を有限のバッファー(100-1000個位 x16x16)に保持して、平均化する。
データー処理量は多目だが、実装は簡単。
直近のバッファー分しかA/Fに集計されない。

(案2)
16x16マップの各ポイントで、A/Fに対する測定回数を保持し集計する。
必要とされるA/Fの値域/精度は決まっているため(8-30程度)、値域ごとのカウンタを準備して

対応するA/Fが計測されるごとにカウントアップする。

A/F 8.0以下 カウンタ0
8.1 カウンタ1
8.2 カウンタ2
|
14.7 カウンタ67
|
29.9 カウンタ219
30.0以上 カウンタ220


データ処理量は(1-2)よりあるが、基本はループ処理なのでPCであれば現実的な処理量と思われる。
実装は... まあ(1-2)とあんまり変らない。
A/Fのばらつきデータなども保持できるので、より詳しいデータが保持できる。

データ量の考察
1/100秒でA/Fをサンプリングするとして、
unsigned int型(4byte)で表現できる整数は、4294967296なので、
各A/F値当りで最大4294967296/100/3600=11930時間分の計測できるので、現実的な時間ではデータ保持に問題は無い。
(実際には各A/F値に分布するし、そもそもセルにも分散する)、

具体的なデータ量は 16x16セル x 221個 x 4byte = 221Kbyte
流石に221Kbyteを1/100秒ごとに処理するのは難しいが、
1セルだけの再計算であれば1/100秒内で十分完了できるはず。


ということで、実装を開始しましょうかね。
(写真はイメージ、大体全部14.7だし)
Posted at 2012/09/03 23:03:47 | コメント(5) | トラックバック(0) | 電子工作 | 日記
2012年09月02日 イイね!

レベルコンバーター完成と、PCとの通信

レベルコンバーター完成と、PCとの通信データロガー用レベルコンバータは無事に完成しました。
ECUでのセンサーエラー発生は今のところ無く、エンジン回転も安定しています。(昨日のことですが)
んで、データロガーのファームウェアとPCとの通信部などをいじっていましたが、これがなかなかバグが取れなくて昨日から苦労していました。

原因は、主に新しく実装した32bitのデータを8bitずつUSBに送出するところで、なぜか複雑(?)にデータの送出順序を間違えていて、他にも色々とやらかしていたのでバグを見つけるのに苦労しました。


ということでエアフロー/スロットルの電圧、水温、インマニ圧とインジェクター情報が取れるようになりました。水温はECUから拾った水温テーブルから変換しましたが、ほぼ計算値通りです。
あとはインマニ圧がアイドリングと大気圧のみのデータで計算しているので、正圧側でも測定して校正が必要です。ただ市街地で一定の正圧を維持するのは非常に難しいのと、今日は雨が断続的に降っているのでまた後日ですね~。


インジェクターは開弁時間、有効開弁時間、開弁周期、Duty,有効Duty,有効開弁時間の累積が取れるようになりました。
これで燃費計算は楽勝のはず。(下式であっているかな?)
インジェクターの単位時間当たりの噴射量を510cc/minとすると、インジェクター全開時の単位時間当たりの吐出量は、0.51/60=0.0085(L/sec)

- 瞬間燃費(km/L) = 単位時間の走行距離(km) / 単位時間の噴射量(L)
  単位時間の走行距離(km) = 速度(km/h) / 3600
  単位時間の噴射量(L) = 有効Duty * 0.0085(L/sec) * 4(気筒)

- 累積燃費(km/L) = トリップ(km) / (累積有効開弁時間(sec) * 0.0085(L/sec) * 4)

と書きつつ、メインターゲットはインジェクターの開弁率(Duty)なんですけどね!
燃料の方はインジェクターの無効噴射時間や吐出量の校正も必要ですが、これはちゃんと給油データをとれば良い値になるはず。

一応、今回の工作はこれで完了。あとはデータをどのように表示するか考えるのと、近いうちにもう4ch分のレベルコンバータを作らないとね。(A/F、排気温度、燃料、点火時期)



Posted at 2012/09/02 14:13:19 | コメント(6) | トラックバック(0) | 電子工作 | 日記
2012年08月30日 イイね!

レベルコンバーター修正完了

レベルコンバーター修正完了今週は少しずつレベルコンバーター基板の回路修正、ノイズ対策、およびそれらの確認等を行っていました。写真のように電源/ダミーの可変抵抗をつないで動作確認までは終わったので、あとは取り付けて結果を見るだけです。今週末にでも試してみましょう。

いまさらですが、ここでレベルコンバータの説明を...
データーロガーで使用しているマイコンには、センサーなどからのアナログ電圧をデジタルに変換するためのA/Dコンバーターが内蔵されています。そしてこのマイコン(PIC24)では入力できるアナログ電圧が0Vから3.3Vまでと決まっています。
マイナスの方は試していませんが、3.6V以上をA/Dコンバータに入れるとマイコンがリセットされることを確認していますので、車でよく使われる5Vや12V系の信号は、そのままではマイコンに接続できないことになります。そのため5V系なら0.66倍、12V系(実際は最大14V台)なら0.33倍(程度)に電圧を下げる、レベルコンバータが必要になるわけです。



あとはついでにデータロガーのファームウェアをちょっとだけ修正。
たま~にですがデータロガーからPCにデータが来なくて反応しなくなることがあるので、Watch-Dog Timer(WDT)機能を有効化しました。
ひょっとしたらUSBの通信側の問題かもしれませんが、USB端子の接触不良(車の振動)によるもののような気がするので、自動的に復帰するようにということで実装してみました。
Posted at 2012/08/30 22:11:32 | コメント(7) | トラックバック(0) | 電子工作 | 日記
2012年08月27日 イイね!

ちいさいの!

ちいさいの!部品をあさっていたら、こんなこともあろうかと買っておいた表面実装用のチップダイオードが出てきました!
抵抗や3端子レギュレータは大きな物(7805)しかなかったのですが、まあいいやと改造実施!
(3端子レギュレーターと電解コンが2階建てなのがちょっと...)

エアフロ信号線は使わないアナログ用のビデオケーブル(同軸)を流用することにしました。
どうせエアフロ信号自体は周波数が低いので、ケーブルのインピーダンスは気にしなくても大丈夫なはず。

というところで一通りの製作は終わりましたが、ダイオードの極性チェックやショートのチェックは明日にでもやりましょう。
(ちなみにダイオードは、中央やや下にありますよ)
Posted at 2012/08/27 23:31:01 | コメント(5) | トラックバック(0) | 電子工作 | 日記

プロフィール

「@GRBA555 皆さん走られたんですか? 凄い武闘派チーム!?」
何シテル?   08/25 22:14
元GC8Aインプレッサ乗り.現GC8F乗り。 電子工作、光学機械好き。
みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

ステアリングジョイント、リンクの交換その3 交換用リンクの加工 
カテゴリ:その他(カテゴリ未設定)
2025/07/13 21:33:43
樹脂メネジをナメた場合 エアフロセンサー 
カテゴリ:その他(カテゴリ未設定)
2025/03/23 20:15:44
ドリンクホルダー製作 
カテゴリ:その他(カテゴリ未設定)
2025/02/24 22:11:40

愛車一覧

スバル インプレッサハードトップセダン スバル インプレッサハードトップセダン
GDBDのEJ207エンジンをO/Hして搭載、自作AVCSコントローラで攻略済み。 課題 ...
フィアット 500 (ハッチバック) フィアット 500 (ハッチバック)
FIAT500 ラウンジ ツインエア(875cc、ガソリンインタークーラーターボ付き)、 ...
ダイハツ YRV ダイハツ YRV
我が家のお買いもの快速車で、近場のお出かけにはユーティリティ最高。 エンジンの出力は中々 ...
スバル インプレッサWRX スバル インプレッサWRX
初代インプレッサ さらに最初期型! 見た目はRA-STi(Ver.1)を目指してほぼ同等 ...
ヘルプ利用規約サイトマップ
© LY Corporation