フューエルパルス


'08 CBR1000RRで実装されたフューエルパルスを、HRCロガーでロギングする

FP Signal

 4ストロークエンジンでは使用しないDetoのチャンネルを使って、フューエルパルス(以下FP)をロギングする。
 FPは約0-5Vの出力で、立ち上がり間隔は1.0ccごと、パルス幅は0.5ccです。
 Deto入力はVH3.5-5.0V、VL0.0-0.5Vで、300ms間に何回信号が入力されたかを記録します。また、パルス幅は2.5〜14.0msということなので、FPのパルス立ち上がりを拾って3ms幅のパルスを出力する回路を組めば、ロギングできます。

Sample Circuit

汚い手書きですが、汎用基板用のサンプル回路です。
FPをトランジスタ、微分回路を通して555のトリガとし、RCの100Ω、33uFで約3.3msのワンショットパルスを作っています。

VBat
電源+12Vライン(黒/白)
GND
グランドライン(緑)
FP
フューエルパルス(桃/黒)
Deto Out
データロガー(7番)へ
Logger Connector

PICでカウンタを作ってトータル消費量をチェックするなどの使い方のほうが実用的です。



Detonation Map  ロギングしても、HRCロガーソフトではなかなか利用価値が少なく、デトネーションマップで使用量をチェックするぐらいしかありません。
 通常の用途からすればしかたないのですが、5,000r.p.m以下のパルスは集計しないようです。

awk output  HRCロガーソフトから、LAPとDeto1をcsv出力させたテキストファイルを、

BEGIN{
    FS=",";
    RS="\n";

    preLap = 0;
}
{
    if($1 == "Time(s)"){                        # ヘッダ処理
        for (i=1;i<=NF;i++){
            if($i == "DETO1"){                  # Deto1のフィールドを取得
                ColDeto = i;
            }
            if($i == "LAP"){                    # LAPのフィールドを取得
                ColLap = i;
            }
        }
    } else {
        Lap = $ColLap + 0;                      # ラップを整数値に
        FUEL[Lap] += $ColDeto;                  # ラップごとに消費量加算
        if(Lap > preLap){                       # 新しいラップに入ったら
            if(start > 0){                      # ラップの開始時間が存在したら
                LapTime[Lap - 1] = $1 - start;  # 前の周のラップタイムを記録
            }
            start = $1;                         # ラップの開始時間を保存
        }
        preLap = Lap;
    }
}
END {
    CONVFMT = "%5.2f";                          # 数値→文字列変換フォーマット
    CourceLength = 2150;                        # コース長さ(m):筑波

    n = asorti(FUEL,RESULT);                    # 配列を添字(ラップ)でソート。
    print "  LAP  |  Lap Time   |  FC(cc) |  FC(km/l)";
    print "-------+-------------+---------+----------";
    for (i=1;i<=n;i++){
        min = int(LapTime[RESULT[i]] / 60);
        sec = LapTime[RESULT[i]] % 60;
        if(LapTime[RESULT[i]] == 0){
            fc = "";
        } else {
            fc = (CourceLength / FUEL[RESULT[i]]) "";   # 文字列に変換
        }
        printf "%5s  |  %2d'%6.3f  |  %5d  |  %-5s\n",RESULT[i],min,sec,FUEL[RESULT[i]],fc;
        TOTAL += FUEL[RESULT[i]];
    }
    print "------------------------------------------";
    printf "TOTAL                   %5dcc\n",TOTAL;
}


というようなawk(gawk)に喰わせてやると、右図のように出力されますが、めんどくさいなぁ。
まぁ、そのうちHRCロガーソフトが色々と改良されることを期待。


ひとつ上のページへ