[550] Black Box点火時期マップの3D表示

私の550 Spyderは”Black Box”という商品名の点火時期制御コンピュータを使用しています。この制御コンピュータの付属のソフトは、点火時期マップを下のような表形式で表示します。
160413-01

数値の書き換えは、これで十分なのですが、全体的なバランスや特異値を持っていないかを、この数値テーブルで確認するのは難しい。よくある3D表示にするソフトを誰か作っていないかネットを検索したのですが、誰も作っていないようです。
仕方ないので、自分で作ってみました。
160413-02
通信仕様が公開されていないのでリアルタイム表示はできません。付属ソフトのセーブ・データを読み取って3Dに表示するだけです。
横軸がエンジン回転数[rpm]、縦軸がマニホールド圧力[kPa]、高さ軸が点火時期(BTDC deg]になってまいす。マニホールド圧力は絶対圧で表示しているので、100kPaがゲージ圧の0kPaに相当します。したがって、100kPa以下の数値は、いわゆる負圧になります。

このグラフは、私が調整した今の550の実際のセッティングです。
さて、これを見るとわかるのですが、2300rpmで95kPa付近に大きな窪みがあります。以前からBlogで2300rpm付近にトルクの谷がある、と言っているのは、ちょうどここになります。私自身も3Dマップにするまで気が付かなかったのですが、体感だけでなく点火時期にも、ここに何か問題があるのが表れています。ここの付近でノッキングするので、ノッキングしないように点火時期をどんどん遅らせた結果なのです。
やはり、ここは燃料が足りていなくてノッキングするのかなぁ。それとも排気干渉しているのか。
インジェクションだったら、この部分の燃料噴射量を増やしてみるという手があるのですが、キャブだとピンポイントの燃調ができないんですよね。やっぱり、インジェクションにしようかなぁ、などと考えてしまいました。危ない、危ない。

たぶん、日本人でBlackBoxを使っている人は、滅多にいないと思いますが、一応、3Dマップのスクリプトを載せておきます。
SciLabのスクリプトです。

clear;

//////////////////////////////////
tname="160410.bs1";             // set file name
//////////////////////////////////

fp=mopen(tname,'rt');
header=mgetl(fp,1);
pressure=mfscanf(21,fp,"%f");   // reading pressure axis
rpm=mfscanf(21,fp,"%f");        // reading rpm axis
setting=mgetl(fp,16);           // reading setup data
// setting(2): VR delay
// setting(3): rev limit
// setting(15): cly selection

timing=mfscanf(21*21,fp,"%f");  // reading timing map
data=matrix(timing,21,21);      // convertting timing data to matrix 21x21 map


f=scf(0)
surf(rpm, pressure,data,'facecol','interp');
f.color_map=jetcolormap(32);
xlabel("Engine Rev [rpm]");
ylabel("manifold pressure ABS [kPa]");
zlabel("Spark timing BTDC [deg]");
title(tname);

mclose;