主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

滑らかな曲面での近似による燃料効率の調査

この例では,曲线拟合工具箱™を使用して応答曲面を自動車のデータに当てはめ,燃料効率を調査する方法を示します。

�をこのデータに当てはめ,最小の燃料消费量を求めることができます。

このデータセットには応答曲面をモデル化するために必要な変数が含まれています。

  • 速度は毎分回転数(rpm)単位です。

  • 負荷は,正規化された気筒空気質量(標準の温度および圧力での気筒吸気量と最大自然吸気気筒吸気量の比)です。

  • BSFCは正味燃料(g / kwh)です。つまり,エネルギーの流れを机构械力で割ったもの(燃料燃料)です。

目的は,応答曲面をモデル化,速度と负荷の关键词最小のbsfcををことことことことことことができことができ,モーターはとして使ことができことができ,モーターとエンジンを组みわせてするするエンジン组みわせて使する自动车のの最适アルゴリズムの

データの読み込みと前処理

XLSスプレッドシートからデータを読み込みます。Windows®以外のプラットフォームでは'基本的'コマンドオプションを使使ます。

すべての数値データを1つの配列にもつ変数nを作物成します。

n = xlsread (“Engine_Data_SI_NA_2L_I4.xls”'si na 2l i4''''基本的');

nから関心のある列を抽出します。

速度= n(:,2);load_cmd = n(:,3);load = n(:,8);BSFC = N(:,22);

近似する前にデータを処理し,各スイープから最小のBSFC値を選びます。データ点は,速度/負荷のスイープで構成されます。

速度/負荷サイトのリストを取得します。

SL =唯一的([SPEED, LOAD_CMD],“行”);nRuns = size(SL, 1);

それぞれの速度/負荷サイトについて,そのサイトでのデータを見つけ,実際の測定負荷と最小のBSFCを抽出します。

minbsfc =零(nruns,1);load = zeros(nruns,1);速度=零(nruns,1);i = 1:nruns idx = speed == sl(i,1)&load_cmd == sl(i,2);minbsfc(i)= min(bsfc(idx));加载(i)=平均值(负载(Idx));速度(i)=平均值(速度(idx));结束

曲面による近似

前処理したデータを燃料効率の曲面で近似します。

f1 =适合([速度,负载],minBSFC,'洛杉矶'“正常化”“上”
局部加权平滑线性回归:f1(x,y) = lowess(线性)平滑回归从p计算,其中x被平均3407和std 1214标准化,y被平均0.5173和std 0.1766标准化。系数:p =系数结构

近似のプロット

plot(f1,[速度,负载],minBSFC);包含(“速度(RPM)”);ylabel ('加载 [%]');zlabel (“最低BSFC(克/千瓦时)”);

问题问题のある点の削除

結果として得られるプロットを確認します。

このデータはエンジンのシミュレーションから生成されているため,BSFCが負になる点があります。

点を范囲[0,天道酬勤]に制限することにより,これらの问题のあるデータ点を削除します。

out = excludedata(Speed, minBSFC,“范围”, [0, Inf]);f2 =适合([速度,负载],minBSFC,'洛杉矶'...“正常化”“上”'排除',)
局部加权平滑线性回归:f2(x,y) = lowess(线性)平滑回归计算从p,其中x是标准化的均值3443和std 1187,其中y是标准化的均值0.521和std 0.175系数:p =系数结构

新闻近似をプロットます。

plot(f2,[速度,负载],minBSFC,'排除', 出去 );包含(“速度(RPM)”);ylabel ('加载 [%]');zlabel (“最低BSFC(克/千瓦时)”);

表示の拡大

关联のあるZ轴ののを大大し。

ZLIM([0,MAX(MINBSFC)])

エンジンを效率的ににするするがが目标であるため,等高线図作物成,bsfcが小さいを确认します。关联数量をを使用し,パラメーターの名前と値のペア'风格','轮廓'を指定します。

plot(f2,[速度,负载],minBSFC,'排除',,“风格”'轮廓');包含(“速度(RPM)”);ylabel ('加载 [%]');colorbar

曲面からのテーブルの作成

モデルf2をを点のグリッドグリッドにわたって评価,テーブルを生成します。

テーブルテーブルポイントの分数を作物成し。

SpeedebreakPoints = Linspace(1000,5500,17);loadbreakpoints = linspace(0.2,0.8,13);

〖图库“

[tspeed,tload] = meshgrid(Speedbreakpoints,loadbreakpoints);tbsfc = f2(tspeed,tload);

コマンドコマンドラインで表行のと列を确认しし

tBSFC(1:2:最终,1:2:结束)
ans =列1至7 722.3280 766.7608 779.4296 757.4574 694.5378 624.4095 576.5235 503.9880 499.9201 481.7240 458.2803 427.7338 422.1099 412.1624 394.7579 364.3421 336.1811 330.1550 329.1635 328.1810 329.1144 333.7740 307.7736 295.1777 291.2068 290.3637 290.0173 287.8672 295.9729 282.7567 273.8287 270.8869 269.8485 271.0547 270.5502 273.7512第8列到第9列532.1533 466.9610 396.3209 398.0199 335.3871 346.3882 286.3077 291.0075 269.6837 272.2054 258.0298 260.5269 249.0083 250.4165

元のモデルに対するテーブルのプロット

モデル曲面上のグリッドはテーブルブレークポイントを示します。

H = plot(f2);h.EdgeColor =“没有”;持有网格(TSPEED,Tload,TBSFC,...'linestyle'“- - -”“线宽”2,“EdgeColor”'k'...“FaceColor”“没有”“FaceAlpha”1);持有离开包含(“速度(RPM)”);ylabel ('加载 [%]');zlabel (“最低BSFC(克/千瓦时)”);

テーブルの精度の確認

モデルモデルとテーブルの差差より细かいグリッドにプロットすることによりによりによりの差を表示表示ししに,テーブルテーブルモデルモデルのの度度に关键词を使し,精制要件照らして最もて,精彩要件照らして最もなテーブルサイズを决定します。

次のコードは,より細かいグリッドにわたってモデルを評価し,モデルとテーブルの差をプロットします。

[tfSpeed, tfLoad] = meshgrid(...Linspace(1000,5500,8 * 17 + 1),...Linspace(0.2,0.8,8 * 13 + 1));TFBSFC_MODEL = F2(TFSPEED,TFLOAD);TFBSFC_TABLE = INTERP2(TSPEED,Tload,TBSFC,TFSPEED,TFLOAD,“线性”);tfDiff = tfBSFC_model - tfBSFC_table;surf(tfSpeed, tfLoad, tfDiff,'linestyle'“没有”);持有目(tSpeed, tLoad, 0 (size(tBSFC)),...'linestyle'“- - -”“线宽”2,“EdgeColor”'k'...“FaceColor”“没有”“FaceAlpha”1);持有离开紧的包含(“速度(RPM)”);ylabel ('加载 [%]');zlabel (“型号与表的差异[g/Kwh]”);标题(sprintf (“最大的区别:% g”, max(abs(tfDiff(:)))));

ブレークポイント値を含むテーブル配列の作成

点のグリッドにわたってモデル近似を評価してテーブルを作成した後,テーブルデータをMATLABからエクスポートすると役に立ちます。エクスポートする前に,最初の行と最初の列にブレークポイント値が含まれるテーブル配列を作成します。次のコマンドは,データを次のテーブル形式に再形成します。

  • X (speedbreakpoints)は(1 x M)ベクトルです。

  • Y (loadbreakpoints)は(N x 1)ベクトルです。

  • Z(TBSFC)は(M x N)行列です。

Table = [{'加载\速度'},num2cell(Speedbreakpoints(:)。')num2cell(loadbreakpoints(:)),num2cell(tbsfc)];

スプレッドシートファイルへのテーブルのエクスポート

関数xlswriteを使用すると,テーブルデータを新しいExcelスプレッドシートにエクスポートできます。次のコマンドを実行し,スプレッドシートファイルを作成します。

xlswrite (“tabledata.xlsx”、表)

查找表ブロックの作成

金宝app仿真软件™ソフトウェアがインストールされている場合は,以下のようにして查找表ブロックを作成できます。以下のコードを実行して試してください。

1.2 - d查找表ブロックを作成します。

金宝app仿真软件new_system (“my_model”) open_system (“my_model”)add_block(S金宝appimulink/查找表/ 2d查找表'my_model / stefaceblock'

2.この查找表に速度ブレークポイント,負荷ブレークポイント,ルックアップテーブルを入力します。

set_param('my_model / stefaceblock'...'breakpointsfordimension1'“loadbreakpoints”...'breakpointsfordimension2''速度破坏'...“表”“tBSFC”);

3.入力した查找表ブロックを确认します。