最近在做汽车能量管理的相关项目,需要将发动机&电机的工作点在map图上表示出来,peace of cake,在拿到工作点的数据以及发动机油耗数据&电机效率数据以后,我很快将他们处理出来,于是得到下面的图:
(仅为说明方法,数据仅画了一部分)
出图之后,于是我发给了我导,但我导说:
我想也没想就欣然同意(毕竟我看其他的map图也都是没有外部效率曲线的),于是我开始思考,这玩意要怎么去掉???开始上网找函数说明,查资料,但也没有找到合适的方法。
于是我决定自己写代码解决吧……由于matlab在一个图上画多个图的时候(即用hold on使多个绘图命令呈现在一张图上)是根据先后顺序呈现的,我想到用密集的白点(与背景保持同色)来覆盖掉多余的等高线不就ok了吗?
开始对外特性进行插值,白点的疏密程度取决于插值的间隔,覆盖效果取决于间隔和白点的大小。我用横坐标15进行插值,代码如下:
%外特性插值
v=(600:100:2100);
T=[1113,1526,1869,2235,2568,2800,2950,2950,2950,2950,2850,2750,2600,2500,2400,2300];
xq=600:15:2100;
vq1 = interp1(v,T,xq);
再写一个循环,让图中每个间隔点去判断是否在外特性之外,如果是,则输出一个白点,代码:
for i=600:15:2100
for j=200:15:3000
if j>vq1((i-600)/15+1)
plot(i,j,'w.','MarkerSize',20)
end
end
end
再将图的其余部分画出来就大功告成了!
程序代码如下:
close all
linewidth=1;
s1=15;
%% engine work point
spd1234 = single([600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200]);
trq1234 = single((16.6:(3011-16.6)/12:3011));
[spd_m,trq_m] =meshgrid(spd1234,trq1234);
spd_m=single(spd_m);
trq_m=single(trq_m);
eff_data1234 = single([ ...
350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911 350.911
350.911 350.911 350.911 350.911 350.911 301.318 304.247 313.507 320.876 330.883 350.911 350.911 350.911 350.911 350.911 350.911 350.911
350.911 350.911 350.911 229.340 230.437 235.616 234.645 237.369 242.472 246.669 350.911 350.911 350.911 350.911 350.911 350.911 350.911
350.911 350.911 350.911 213.557 212.568 214.537 212.941 215.788 217.575 219.711 221.948 226.844 350.911 350.911 350.911 350.911 350.911
350.911 206.448 204.261 203.184 202.393 203.646 204.070 203.828 204.289 206.746 209.125 211.276 213.711 217.325 350.911 350.911 350.911
207.436 205.287 201.401 198.661 198.041 197.985 197.776 197.692 197.674 199.257 200.959 203.243 205.893 209.014 212.058 350.911 350.911
206.444 203.519 200.600 196.190 195.168 194.668 193.726 193.571 193.390 194.472 196.303 198.403 200.330 203.292 205.771 208.612 211.530
205.582 203.072 200.224 195.213 193.810 192.367 191.118 190.213 190.743 191.929 192.453 194.726 196.952 199.883 201.975 205.087 211.530
205.582 202.683 199.886 194.906 192.529 190.848 188.841 188.431 189.642 191.212 191.749 193.475 195.439 198.520 201.379 203.923 211.530
205.582 202.683 198.922 194.824 191.247 189.803 188.217 188.016 188.461 189.633 190.444 192.729 194.727 197.952 200.809 203.303 211.530
205.582 202.683 198.789 194.756 190.968 189.138 187.494 187.335 187.563 189.216 189.678 192.568 194.538 197.952 200.809 203.303 211.530
205.582 202.683 198.789 194.134 190.732 188.877 187.381 187.226 187.319 188.362 189.514 192.568 194.538 197.952 200.809 203.303 211.530
205.582 202.683 198.789 194.134 190.562 188.626 187.028 186.545 186.958 188.119 189.514 192.568 194.538 197.952 200.809 203.303 211.530]);
figure(1)%等高线图
v=[187,188,189,190,192,194,197,201,208,220,245,315];
c=contour(spd_m,trq_m,eff_data1234,v,'ShowText','on');
hold on
%%补白点(去除外特性以外的等高线)
%外特性插值
v=(600:100:2100);
t=[1113,1526,1869,2235,2568,2800,2950,2950,2950,2950,2850,2750,2600,2500,2400,2300];
xq=600:s1:2100;
vq1 = interp1(v,t,xq);
for i=600:s1:2100
for j=200:s1:3000
if j>vq1((i-600)/s1+1)
plot(i,j,'w.','MarkerSize',20)
end
end
end
%%外特性曲线
v=(600:100:2100);
t=[1113,1526,1869,2235,2568,2800,2950,2950,2950,2950,2850,2750,2600,2500,2400,2300];
plot(v,t,'color','k','linewidth',linewidth)
axis([600 2100 200 3000])
% work point
ecms_e_v=[0,0;1,0;2,0;3,0;4,0;5,0;6,0;7,0;8,0;9,0;10,0;11,0;12,0;13,0;14,0;15,0;16,0;17,0;18,1099.18750000000;19,1200;20,1200;21,1200;22,1200;23,1200;24,1203.60620117188;25,1231.55627441406;26,1255.91247558594;27,1273.01245117188;28,1280;29,1280;30,1291.62500000000;31,1322.80627441406;32,1386.70629882813;33,1449.12500000000;34,1508.95629882813;35,1569.18127441406;36,1630.25000000000;37,1692.12500000000;38,1697.75000000000;39,1794.01245117188;40,1834.19372558594;41,1867.07495117188;42,1899.41247558594;43,1962.84997558594;44,2013.51245117188;45,2045.36254882813;46,2076.90625000000;47,1250;48,1250;49,1250;50,1250;51,1250;52,1250;53,1250;54,1250;55,1250;56,1250;57,1256.25000000000;58,1286.25000000000;59,1315.46252441406;60,1345.80627441406;61,1376.90625000000;62,1408.37500000000;63,1440.28747558594;64,1469.90625000000;65,1492.69372558594;66,1509.81872558594;67,1522.53125000000;68,1532.12500000000;69,1540.19995117188;70,1534.49377441406;71,1533.12500000000;72,1533.50000000000;73,1534;74,1534.37500000000;75,1534.75000000000;76,1535.12500000000;77,1535.50000000000;78,1535.80627441406;79,1536.12500000000;80,1536.37500000000;81,1536.68127441406;82,1536.98120117188;83,1537.19372558594;84,1537.37500000000;85,1537.62500000000;86,1537.87500000000;87,1538;88,1538.25000000000;89,1538.37500000000;90,1538.50000000000;91,1538.62500000000;92,1538.75000000000;93,1538.87500000000;94,1539;95,1539.12500000000;96,1539.25000000000;97,1539.37500000000;98,1539.46875000000;99,1539.50000000000;100,1539.62500000000;101,1539.75000000000;102,1539.75000000000;103,1539.87500000000;104,1539.87500000000;105,1540;106,1540;107,1540.12500000000;108,1540.12500000000;109,1540.25000000000;110,1540.25000000000;111,1540.37500000000;112,1540.37500000000;113,1540.37500000000;114,1540.50000000000;115,1540.50000000000;116,1540.50000000000;117,1540.62500000000;118,1540.62500000000;119,1540.62500000000;120,1540.62500000000;121,1540.75000000000;122,1540.75000000000;123,1540.75000000000;124,1540.75000000000;125,1540.75000000000;126,1540.87500000000;127,1540.87500000000;128,1540.87500000000;129,1540.87500000000;130,1540.87500000000;131,1540.87500000000;132,1540.96875000000;133,1541;134,1541;135,1541;136,1541;137,1541;138,1541;139,1541;140,1541;141,1541;142,1541;143,1541.12500000000;144,1541.12500000000;145,1541.12500000000;146,1541.12500000000;147,1541.12500000000;148,1541.12500000000;149,1541.12500000000;150,1541.12500000000;151,1541.12500000000;152,1541.12500000000;153,1541.12500000000;154,1541.12500000000;155,1541.12500000000;156,1541.12500000000;157,1541.12500000000;158,1541.12500000000;159,1541.12500000000;160,1541.12500000000;161,1541.12500000000;162,1541.12500000000;163,1541.12500000000;164,1541.12500000000;165,1541.12500000000;166,1541.25000000000;167,1541.25000000000;168,1541.25000000000;169,1541.25000000000;170,1541.25000000000;171,1541.25000000000;172,1541.25000000000;173,1541.25000000000;174,1541.25000000000;175,1541.25000000000;176,1541.25000000000;177,1541.25000000000;178,1541.25000000000;179,1541.25000000000;180,1541.25000000000;181,1541.25000000000;182,1541.25000000000;183,1541.25000000000;184,1541.25000000000;185,1541.25000000000;186,1541.25000000000;187,1541.25000000000;188,1541.25000000000;189,1541.25000000000;190,1541.25000000000;191,1541.25000000000;192,1541.25000000000;193,1541.25000000000;194,1541.25000000000;195,1541.25000000000;196,1541.25000000000;197,1541.25000000000;198,1541.25000000000;199,1541.25000000000;200,1541.25000000000;201,1541.25000000000;202,1541.25000000000;203,1541.25000000000;204,1541.25000000000;205,1541.25000000000;206,1541.25000000000;207,1540.87500000000;208,1540.25000000000;209,1539.66870117188;210,1539.12500000000;211,1538;212,1536.81872558594;213,1517.48754882813;214,1493.12500000000;215,1464.77502441406;216,1434.01245117188;217,1410.28125000000;218,1381.93127441406;219,1350.12500000000;220,1315.73754882813;221,1279.50000000000;222,1250;223,1250;224,1250;225,1250;226,1250;227,1250;228,1250;229,1250;230,1250;231,1344.32458496094;232,2045.34277343750;233,1947.75000000000;234,1888.31872558594;235,1853.05004882813;236,1818.54370117188;237,1770.33129882813;238,1717.43127441406;239,1692.79370117188;240,1681.29370117188;241,1675.41870117188;242,1671.93127441406;243,1669.50000000000;244,1667.56872558594;245,1665.88745117188;246,1663.46875000000;247,1662.68127441406;248,1661.62500000000;249,1660.50000000000;250,1659.39379882813;251,1658.35620117188;252,1657.35620117188;253,1656.40625000000;254,1655.51879882813;255,1654.71875000000;256,1653.94372558594;257,1653.23120117188;258,1652.50622558594;259,1651.87500000000;260,1651.28125000000;261,1650.75000000000;262,1650.24377441406;263,1649.75000000000;264,1649.25000000000;265,1648.81872558594;266,1648.37500000000;267,1648;268,1647.62500000000;269,1647.35620117188;270,1647;271,1646.75000000000;272,1646.40625000000;273,1646.12500000000;274,1645.87500000000;275,1645.70629882813;276,1645.50000000000;277,1645.25000000000;278,1645.12500000000;279,1644.87500000000;280,1644.75000000000;281,1644.62500000000;282,1644.37500000000;283,1644.25000000000;284,1644.12500000000;285,1644;286,1643.87500000000;287,1643.84375000000;288,1643.75000000000;289,1643.62500000000;290,1643.50000000000;291,1643.50000000000;292,1644.36254882813;293,1646.62500000000;294,1649.25000000000;295,1651.90002441406;296,1654.47497558594;297,1656.92504882813;298,1659.26245117188;299,1661.48754882813;300,1663.58752441406;301,1665.58129882813;302,1667.47497558594;303,1669.27502441406;304,1670.96875000000;305,1672.58129882813;306,1674.11254882813;307,1675.56872558594;308,1676.95629882813;309,1678.25622558594;310,1679.50622558594;311,1680.68127441406;312,1681.79370117188;313,1682.86877441406;314,1683.87500000000;315,1684.81872558594;316,1685.73120117188;317,1686.59375000000;318,1687.37500000000;319,1688.15625000000;320,1688.88122558594;321,1689.62500000000;322,1690.25000000000;323,1690.87500000000;324,1691.50000000000;325,1692.04370117188;326,1692.62500000000;327,1693.12500000000;328,1693.61877441406;329,1694.01879882813;330,1694.50000000000;331,1694.87500000000;332,1695.25000000000;333,1695.62500000000;334,1696;335,1696.37500000000;336,1696.62500000000;337,1697;338,1697.25000000000;339,1697.50000000000;340,1697.75000000000;341,1698;342,1698.25000000000;343,1698.50000000000;344,1698.75000000000;345,1698.87500000000;346,1699.12500000000;347,1699.25000000000;348,1699.50000000000;349,1699.62500000000;350,1699.75000000000;351,1699.87500000000;352,1700;353,1700.12500000000;354,1700.25000000000;355,1700.37500000000;356,1700.50000000000;357,1700.62500000000;358,1700.75000000000;359,1700.84375000000;360,1700.87500000000;361,1701;362,1701.12500000000;363,1701.12500000000;364,1701.25000000000;365,1701.25000000000;366,1701.37500000000;367,1701.37500000000;368,1701.50000000000;369,1701.50000000000;370,1701.62500000000;371,1701.62500000000;372,1701.75000000000;373,1701.75000000000;374,1701.75000000000;375,1701.87500000000;376,1701.87500000000;377,1701.87500000000;378,1702;379,1702;380,1702;381,1702;382,1702.12500000000;383,1702.12500000000;384,1702.12500000000;385,1702.12500000000;386,1702.12500000000;387,1702.25000000000;388,1702.25000000000;389,1702.25000000000;390,1702.25000000000;391,1702.25000000000;392,1702.25000000000;393,1702.37500000000;394,1702.37500000000;395,1702.37500000000;396,1702.37500000000;397,1702.37500000000;398,1702.37500000000;399,1702.37500000000;400,1702.37500000000;401,1702.37500000000;402,1702.50000000000;403,1702.50000000000;404,1702.50000000000;405,1702.50000000000;406,1702.50000000000;407,1702.50000000000;408,1702.50000000000;409,1702.50000000000;410,1702.50000000000;411,1702.50000000000;412,1702.50000000000;413,1702.50000000000;414,1702.50000000000;415,1702.50000000000;416,1702.50000000000;417,1702.50000000000;418,1702.62500000000;419,1702.62500000000;420,1702.62500000000;421,1702.62500000000;422,1702.62500000000;423,1702.62500000000;424,1702.62500000000;425,1702.62500000000;426,1702.62500000000;427,1702.62500000000;428,1702.62500000000;429,1702.62500000000;430,1702.62500000000;431,1702.62500000000;432,1702.62500000000;433,1702.62500000000;434,1702.62500000000;435,1702.50000000000;436,1702.50000000000;437,1702.50000000000;438,1702.50000000000;439,1702.50000000000;440,1702.50000000000;441,1702.50000000000;442,1702.50000000000;443,1702.50000000000;444,1702.37500000000;445,1702.37500000000;446,1702.25000000000;447,1702.25000000000;448,1702.12500000000;449,1702.12500000000;450,1702;451,1702;452,1702;453,1701.87500000000;454,1701.87500000000;455,1701.87500000000;456,1701.75000000000;457,1701.75000000000;458,1701.75000000000;459,1701.62500000000;460,1701.62500000000;461,1701.62500000000;462,1701.62500000000;463,1701.50000000000;464,1701.50000000000;465,1701.50000000000;466,1701.50000000000;467,1701.50000000000;468,1701.50000000000;469,1701.37500000000;470,1701.37500000000;471,1701.37500000000;472,1701.37500000000;473,1701.37500000000;474,1701.37500000000;475,1701.37500000000;476,1701.25000000000;477,1701.25000000000;478,1701.25000000000;479,1701.25000000000;480,1701.25000000000;481,1701.25000000000;482,1701.25000000000;483,1701.25000000000;484,1701.23120117188;485,1701.12500000000;486,1701;487,1700.87500000000;488,1700.75000000000;489,1700.62500000000;490,1700.50000000000;491,1700.37500000000;492,1700.31872558594;493,1700.25000000000;494,1700.12500000000;495,1700;496,1700;497,1699.87500000000;498,1699.75000000000;499,1699.75000000000;500,1699.62500000000;501,1699.62500000000;502,1699.50000000000;503,1699.50000000000;504,1699.37500000000;505,1699.37500000000;506,1699.25000000000;507,1699.25000000000;508,1699.25000000000;509,1699.12500000000;510,1699.12500000000;511,1699;512,1699;513,1699;514,1699;515,1698.87500000000;516,1698.87500000000;517,1698.87500000000;518,1698.75000000000;519,1698.75000000000;520,1698.75000000000;521,1698.75000000000;522,1698.75000000000;523,1698.62500000000;524,1698.62500000000;525,1698.62500000000;526,1698.62500000000;527,1698.50000000000;528,1698.37500000000;529,1698.12500000000;530,1698;531,1697.87500000000;532,1697.75000000000;533,1697.62500000000;534,1697.50000000000;535,1697.37500000000;536,1697.25000000000;537,1697.12500000000;538,1697.12500000000;539,1697;540,1696.87500000000;541,1696.75000000000;542,1696.75000000000;543,1696.62500000000;544,1696.50000000000;545,1696.50000000000;546,1696.37500000000;547,1696.37500000000;548,1696.25000000000;549,1696.25000000000;550,1696.12500000000;551,1696.12500000000;552,1696;553,1696;554,1695.90625000000;555,1695.87500000000;556,1695.87500000000;557,1695.75000000000;558,1695.75000000000;559,1695.75000000000;560,1695.62500000000;561,1695.62500000000;562,1695.62500000000;563,1695.50000000000;564,1695.50000000000;565,1695.50000000000;566,1695.37500000000;567,1695.37500000000;568,1695.37500000000;569,1695.25000000000;570,1695.25000000000;571,1695.12500000000;572,1695;573,1695;574,1694.87500000000;575,1694.75000000000;576,1694.75000000000;577,1694.62500000000;578,1694.62500000000;579,1694.50000000000;580,1694.50000000000;581,1694.37500000000;582,1694.37500000000;583,1694.25000000000;584,1694.25000000000;585,1694.12500000000;586,1694.12500000000;587,1694;588,1694;589,1694;590,1693.87500000000;591,1693.87500000000;592,1693.75000000000;593,1693.75000000000;594,1693.75000000000;595,1693.62500000000;596,1693.62500000000;597,1693.62500000000;598,1693.50000000000;599,1693.50000000000;600,1693.50000000000;601,1693.50000000000;602,1693.37500000000;603,1693.37500000000;604,1693.37500000000;605,1693.25000000000;606,1693.25000000000;607,1693.25000000000;608,1693.25000000000;609,1693.12500000000;610,1693.12500000000;611,1693.12500000000;612,1693.12500000000;613,1693.25000000000;614,1693.25000000000;615,1693.25000000000;616,1693.37500000000;617,1693.37500000000;618,1693.37500000000;619,1693.50000000000;620,1693.50000000000;621,1693.50000000000;622,1693.50000000000;623,1693.50000000000;624,1693.61877441406;625,1693.62500000000;626,1693.62500000000;627,1693.62500000000;628,1693.62500000000;629,1693.62500000000;630,1693.62500000000;631,1693.62500000000;632,1693.62500000000;633,1693.62500000000;634,1693.62500000000;635,1693.62500000000;636,1693.62500000000;637,1693.62500000000;638,1693.62500000000;639,1693.62500000000;640,1693.62500000000;641,1693.62500000000;642,1693.62500000000;643,1693.62500000000;644,1693.62500000000;645,1693.62500000000;646,1693.62500000000;647,1693.62500000000;648,1693.62500000000;649,1693.62500000000;650,1693.62500000000;651,1693.62500000000;652,1693.62500000000;653,1693.62500000000;654,1693.62500000000;655,1693.75000000000;656,1693.87500000000;657,1694.01879882813;658,1694.23120117188;659,1694.37500000000;660,1694.50000000000;661,1694.55627441406;662,1694.62500000000;663,1694.75000000000;664,1694.87500000000;665,1695;666,1695.00622558594;667,1695.12500000000;668,1696.21252441406;669,1698.75000000000;670,1701.79370117188;671,1704.88745117188;672,1707.90002441406;673,1710.80627441406;674,1713.57495117188;675,1716.19995117188;676,1718.69372558594;677,1721.05004882813;678,1723.27502441406;679,1725.38745117188;680,1727.38745117188;681,1729.28747558594;682,1731.08129882813;683,1732.83129882813;684,1734.58129882813;685,1736.34997558594;686,1738.19372558594;687,1740.05627441406;688,1741.87500000000;689,1743.65002441406;690,1745.34997558594;691,1747;692,1748.58129882813;693,1750.09375000000;694,1751.56872558594;695,1752.96875000000;696,1754.31872558594;697,1755.61877441406;698,1756.86877441406;699,1758.05627441406;700,1759.21875000000;701,1760.31872558594;702,1761.37500000000;703,1762.39379882813;704,1763.37500000000;705,1764.33129882813;706,1765.24377441406;707,1766.11877441406;708,1766.94372558594;709,1767.75000000000;710,1768.50000000000;711,1769.25000000000;712,1770;713,1770.65625000000;714,1771.34375000000;715,1771.99377441406;716,1772.59375000000;717,1773.14379882813;718,1773.75000000000;719,1774.25000000000;720,1774.79370117188;721,1775.29370117188;722,1775.75622558594;723,1776.25000000000;724,1776.75000000000;725,1777.18127441406;726,1777.62500000000;727,1778.05627441406;728,1778.50000000000;729,1778.87500000000;730,1779.25000000000;731,1779.62500000000;732,1780;733,1780.37500000000;734,1780.75000000000;735,1781.06872558594;736,1781.37500000000;737,1781.75000000000;738,1782;739,1782.37500000000;740,1782.62500000000;741,1782.87500000000;742,1783.13122558594;743,1783.44372558594;744,1783.71875000000;745,1783.93127441406;746,1784.12500000000;747,1784.37500000000;748,1784.62500000000;749,1784.80627441406;750,1785;751,1785.18127441406;752,1799.83752441406;753,1823.64379882813;754,1855.58129882813;755,1892.12500000000;756,1962.22497558594;757,2021.54370117188;758,2062.45629882813;759,2100;760,1250;761,1250;762,1250;763,1250;764,1250;765,1250;766,1250;767,1250;768,1255.52502441406;769,1283.73120117188;770,1308.65625000000;771,1332.16247558594;772,1354.66870117188;773,1376.08129882813;774,1396.37500000000;775,1415.72497558594;776,1434.34375000000;777,1452.25000000000;778,1469.61254882813;779,1486.09997558594;780,1499.75000000000;781,1510.73754882813;782,1517.86254882813;783,1519.91870117188;784,1521.18127441406;785,1522.30627441406;786,1523.35620117188;787,1524.35620117188;788,1525.26879882813;789,1526.14379882813;790,1527;791,1527.75622558594;792,1528.50000000000;793,1529.25000000000;794,1529.87500000000;795,1530.50000000000;796,1531.12500000000;797,1531.64379882813;798,1532.20629882813;799,1532.70629882813;800,1533.13122558594;801,1533.62500000000;802,1534;803,1534.41870117188;804,1534.79370117188;805,1535.12500000000;806,1535.50000000000;807,1535.80627441406;808,1536.12500000000;809,1536.37500000000;810,1536.62500000000;811,1536.87500000000;812,1537.12500000000;813,1537.37500000000;814,1537.62500000000;815,1537.75000000000;816,1538;817,1538.12500000000;818,1538.25000000000;819,1538.44372558594;820,1538.62500000000;821,1538.75000000000;822,1538.87500000000;823,1539;824,1539;825,1539.12500000000;826,1539.25000000000;827,1539.37500000000;828,1539.50000000000;829,1539.50000000000;830,1539.62500000000;831,1539.75000000000;832,1539.75000000000;833,1539.87500000000;834,1539.87500000000;835,1540;836,1540;837,1540.12500000000;838,1540.12500000000;839,1540.25000000000;840,1540.25000000000;841,1540.25000000000;842,1540.37500000000;843,1540.37500000000;844,1540.37500000000;845,1540.50000000000;846,1540.50000000000;847,1540.50000000000;848,1540.62500000000;849,1540.62500000000;850,1540.62500000000;851,1540.62500000000;852,1540.75000000000;853,1540.75000000000;854,1540.75000000000;855,1540.75000000000;856,1540.75000000000;857,1540.87500000000;858,1540.87500000000;859,1540.87500000000;860,1540.87500000000;861,1540.87500000000;862,1540.87500000000;863,1540.87500000000;864,1541;865,1541;866,1541;867,1541;868,1541;869,1541;870,1541