黃兵鋒,解方喜,傅佳宏
?
MATLAB曲線擬合工具箱在發(fā)動機特性擬合中的應(yīng)用
黃兵鋒1,2,解方喜2,傅佳宏3
(1.湖北汽車工業(yè)學(xué)院汽車工程學(xué)院 汽車動力傳動與電子控制湖北省重點實驗室,湖北 十堰 442002;2.吉林大學(xué)汽車工程學(xué)院 汽車仿真與控制國家重點實驗室,吉林 長春 130022;3.武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢 430081)
文章闡述MATLAB的曲線擬合工具箱(Curve Fitting Toolbox)的交互式圖形界面和程序調(diào)用兩種方式的使用方法,并以某柴油發(fā)動機穩(wěn)態(tài)工況下的試驗數(shù)據(jù)繪制萬有特性圖為例,介紹利用曲線擬合工具箱進(jìn)行曲面擬合的步驟和方法,并給出關(guān)鍵代碼,探討利用該工具箱改進(jìn)擬合效果和繪圖質(zhì)量. 對擬合結(jié)果的數(shù)理統(tǒng)計校驗表明擬合結(jié)果完全符合要求,MATLAB的曲線擬合工具箱為發(fā)動機特性的曲面擬合提供更大的便利.
發(fā)動機特性;曲面擬合;MATLAB;多元回歸;曲線擬合工具箱
根據(jù)發(fā)動機穩(wěn)態(tài)工況下的性能試驗數(shù)據(jù)繪制轉(zhuǎn)速特性、負(fù)荷特性和萬有特性曲線的過程較為繁瑣,工作量較大,目前一般使用Origin等軟件,或應(yīng)用計算機編制程序,從而對大量的試驗數(shù)據(jù)進(jìn)行處理,從而得到萬有特性曲線[1]. 近年來MATLAB軟件,因其強大的數(shù)值計算和繪圖功能,越來越廣泛的被應(yīng)用于發(fā)動機萬有特性的研究[2-4].
當(dāng)采用計算機自行編制程序時,一般采用多元線性回歸的方法對實驗數(shù)據(jù)進(jìn)行曲線擬合或曲面擬合,直接得到發(fā)動機特性曲線的數(shù)學(xué)表達(dá)式[4-6],也有采用神經(jīng)網(wǎng)絡(luò)模擬萬有特性的方法,因涉及專業(yè)的數(shù)學(xué)知識且訓(xùn)練神經(jīng)網(wǎng)格的過程較為繁瑣,應(yīng)用范圍有局限.
MATLAB以強大的數(shù)值計算功能著稱,它的曲線擬合工具箱(Curve Fitting Toolbox)提供了豐富的曲線數(shù)據(jù)或曲面數(shù)據(jù)處理工具,可以對發(fā)動機性能試驗中的各種數(shù)據(jù)進(jìn)行處理,尤其是對萬有特性的曲面擬合,比用戶自編的回歸分析的代碼更為簡便、可靠.
下面以某柴油發(fā)動機的萬有特性的曲面擬合為例介紹該工具箱處理曲面數(shù)據(jù)的方法,外特性等線工況曲線擬合的方法與之類似且更為簡便.
MATLAB從2009a版本開始提供了Surface Fitting Tool GUI 及其命令行函數(shù) sffit,支持曲面數(shù)據(jù)的擬合功能[9];而之前版本的曲線擬合工具箱在回歸分析時只能進(jìn)行一維分析(曲線擬合). 曲面擬合工具箱提供了各種函數(shù)逼近和擬合方式,以及非參數(shù)建模方法. 可以使用該工具箱進(jìn)行數(shù)據(jù)估值,預(yù)處理和后處理數(shù)據(jù),比較候選模型,刪除偏值(異常值)等. 在完成擬合之后,還可以運用多種后處理方法進(jìn)行繪圖、插值和外推、估計置信區(qū)間等.
對于曲面數(shù)據(jù)的處理,曲線擬合工具箱提供有四種算法:插值、曲面擬合、局部加權(quán)回歸散點平滑法(locally weighted scatter plot smoothing,簡稱 LOWESS或 LOESS)以及自定義函數(shù)擬合.
該工具箱的使用有界面交互式(Interactive)和程序調(diào)用(Programmatic)兩種方式.
穩(wěn)定性控制(Robust)用于設(shè)定求解算法所采用的回歸模式,若選擇“OFF”,則使用常規(guī)最小二乘法;也可選擇“LAR”(Least-absolute-residuals,最小絕對殘差法)或“Bisquare”(加權(quán)最小二乘法,默認(rèn)算法),若選擇“ON”則等同于選擇加權(quán)最小二乘法. 加權(quán)最小二乘法和最小絕對殘差法是健壯的擬合方法,與常規(guī)最小二乘法相比,對異常值(outlier)不敏感(即少數(shù)異常值不會影響整體的擬合效果),適用于原始數(shù)據(jù)包含了異常值的情況. 在大多數(shù)情況下,加權(quán)最小二乘法模式通過反復(fù)計算選擇最佳權(quán)重,尤其是使異常值的權(quán)重值較小,從而降低對整體數(shù)據(jù)擬合的影響[10],因此,該方法在對含有異常值的數(shù)據(jù)進(jìn)行處理時最為可靠. 發(fā)動機穩(wěn)態(tài)試驗時,由于各缸燃燒不均勻而引起的轉(zhuǎn)矩波動等偶然因素使得試驗數(shù)據(jù)有可能出現(xiàn)個別異常點,此時使用常規(guī)最小二乘法進(jìn)行擬合將使得擬合曲線與正常值的偏差較大.
擬合運算執(zhí)行后,其結(jié)果在Results中顯示,包括擬合多項式的系數(shù)、擬合誤差、復(fù)相關(guān)系數(shù)等;右側(cè)則顯示了擬合多項式的三維曲面. 若復(fù)選View菜單中的“Contour Plot”,將在三維曲面的下面同時顯示等高線. 擬合結(jié)果如圖1所示.
圖1 曲線擬合工具箱的交互式界面
曲線擬合工具箱允許將多個擬合任務(wù)的結(jié)果并列顯示,以利于對不同的擬合方式進(jìn)行對比.
曲線擬合工具箱包含一系列函數(shù),如擬合準(zhǔn)備函數(shù)prepareCurveData(曲線擬合)和prepareSurfaceData(曲面擬合),擬合選項設(shè)置函數(shù)fittype、fitoptions等,擬合函數(shù)fit 則完成擬合運算,以及諸多后處理函數(shù)[11-12]. 表1列出了其中的常用函數(shù)及其主要功能.
表1 曲面擬合工具箱的部分常用函數(shù)
fittype設(shè)置逼近類型和次數(shù),如雙5次多項式逼近時使用'poly55'、局部加權(quán)回歸散點平滑法 'loess'、分段線性插值使用'linearinterp'.
需要注意的是,為避免“龍格現(xiàn)象”,曲線擬合工具箱允許的曲面擬合最高次數(shù)為雙5次 'poly55'(即二者的最高次數(shù)均為5).
fit 函數(shù)的返回值有三個,其中fittedmodel包含了擬合的結(jié)果,可用于后處理如繪圖,估算數(shù)據(jù)點的值,計算置信區(qū)間、積分、微分等,使用極為方便;gof 則包含了擬合結(jié)果的統(tǒng)計分析.
使用這些函數(shù),用戶可以自行編制程序完成上述各種逼近功能[11-12].
利用曲面擬合工具箱進(jìn)行發(fā)動機特性的曲面擬合,可以使用界面交互式,也可以在編寫的程序中調(diào)用曲面擬合工具箱提供的函數(shù). 界面交互式簡便直觀,即便是不懂編程序的人也可以很快上手,但存在以下不足:(1)該功能的使用方式為交互式,無法嵌入自行開發(fā)的軟件中;(2)無法在繪制的萬有特性圖中指定曲線之間的間隔,容易出現(xiàn)低油耗區(qū)域的曲線太疏,而高油耗區(qū)曲線過密;(3)只能繪制一種曲線簇,無法同時將油耗曲線、等功率曲線、外特性重疊到一張圖上,所以無法繪制完整的萬有特性圖.
程序調(diào)用的方式則較為靈活,可以克服界面交互方式的各種不足. 下面以某柴油機的試驗數(shù)據(jù)為例介紹萬有特性曲線的繪制過程和關(guān)鍵代碼.
[x,y,z]=prepareSurfaceData(ne,Me,be); ft = fittype( 'poly55' );
opts = fitoptions( ft ); opts.Normalize = 'on';
[sf, gof] = fit([x, y], z, ft, opts);
figure( 'Name', 'Engine' );
% Plot fit with data.
subplot( 2, 1, 1 ); h = plot( sf, [x, y], z ); grid on
legend( h, 'Engine', 'be vs. ne, Me' ); xlabel('ne');ylabel('Me');zlabel('be');
% Make contour plot.
subplot( 2, 1, 2 ); grid on; h=plot(sf,[x,y],z,'Style','Contour');
legend(h, 'Engine', 'be vs. ne, Me');xlabel('ne');ylabel('Me');
事實上,在曲線擬合工具箱的交互式界面下,設(shè)置好各種參數(shù)和選項后,執(zhí)行“File”菜單下的“Generate Code”,MATLAB將自動生成名為createFit 的函數(shù),它調(diào)用曲線擬合工具箱的函數(shù),完成了交互式界面下的擬合和作圖工作. 以該函數(shù)為基礎(chǔ)稍加修改,便可移植其代碼至自編軟件.
圖2 調(diào)用曲線擬合工具箱繪制的萬有特性
為了評價擬合的性能,應(yīng)該對擬合結(jié)果進(jìn)行數(shù)理統(tǒng)計檢驗,事實上,這些檢驗已經(jīng)包含在fit 函數(shù)的兩個返回值中:gof、output. gof是擬合優(yōu)度(Goodness-of-fit),包含四個信息:誤差平方和SSE、判定系數(shù)R2、校正判定系數(shù)R2和均方根誤差 RMSE、自由度;output則是一個包含了擬合算法信息的結(jié)構(gòu)體. 在交互式界面的結(jié)果顯示處,若顯示“Fit computation did not converge”(擬合計算不收斂)或“Equation is badly conditioned”(病態(tài))則表明擬合計算質(zhì)量較差,可改變最高階次數(shù)或調(diào)整擬合算法,也可以復(fù)選“居中和縮放”.
對于本文所選用的柴油發(fā)動機試驗數(shù)據(jù),當(dāng)使用雙5次多項式擬合,并設(shè)定擬合算法為加權(quán)最小二乘法(Bisquare)時,所得擬合結(jié)果中的判定系數(shù)R2為0.9938,表明be與擬合多項式的基底高度相關(guān).
為改善擬合效果,繪制更為光滑的特性曲線,建議采用如下方式:
1) 適當(dāng)增加試驗點組數(shù). 若試驗點組數(shù)過少,生成的萬有特性圖中可能存在不連續(xù)的曲線;目前,自動控制工況的內(nèi)燃機試驗臺已經(jīng)廣泛應(yīng)用,可以很方便的測得在全工況范圍內(nèi)足夠多工況的參數(shù)[13];
2) 先在曲線擬合工具箱的交互式界面下比較不同的擬合參數(shù)下的擬合結(jié)果和誤差,挑選最為合理的擬合次數(shù)和算法;或通過程序代碼,比較不同的擬合參數(shù)返回的結(jié)果變量 gof,擇優(yōu)選取方案;
4) 使用曲面擬合工具箱提供的繪圖函數(shù) plot (以‘contour’為參數(shù))繪制的等高線圖,無法手動指定曲線的間隔,也無法將超出外特性范圍的加密點設(shè)為 NaN,但曲線簇的光滑程度較好.
在發(fā)動機穩(wěn)態(tài)工況下的試驗數(shù)據(jù)進(jìn)行各種特性曲線的擬合和分析時,非常適合使用MATLAB的曲線擬合工具箱處理. 此法對發(fā)動機在各種工況下的性能分析、整車動力性和燃油經(jīng)濟(jì)性的模擬計算、整車動力匹配等具有一定的實用價值.
與發(fā)動機特性的其他處理工具相比,利用MATLAB 曲線擬合工具箱更為形象直觀,簡單便捷;尤其是調(diào)用工具箱提供的函數(shù)進(jìn)行回歸分析,可顯著減少編程工作量,有利于提高模擬精度,改進(jìn)軟件的健壯性和可靠性. 這種方式特別適用于自編程序或作為子功能嵌入其他模擬計算的軟件(如Simulink仿真);也可將MATLAB 函數(shù)編譯成動態(tài)鏈接庫文件(*.dll),從使用其他開發(fā)工具(如Visual Basic、Visual C++、Delphi等)所編制的軟件中計算萬有特性時進(jìn)行調(diào)用.
[1] JIANG FACHAO, WANG MOLIN, LI LIN. Software design of engine characteristic simulation [J]. Journal of Software, 2012, 7(2): 316-321.
[2] ZHANG ZHIPENG, ZHANG JIANZHEN. Drawing engine universal performance characteristics map method based on MATLAB [C]//2nd International Conference on Energy, Environment and Sustainable Development, EESD 2012. Jilin: Advanced Materials Research: 361-365.
[3] GUO CUIXIA, LIU KANG, XIE WENLING, et al, Study on engine characteristic curves drawing method based on BP neural network [C]//2012 International Conference on Manufacturing Engineering and Automation, ICMEA 2012. Guangzhou: Advanced Materials Research: 593-596.
[4] 關(guān)志偉, 楊 玲, 施繼紅, 等. 基于 MATLAB 語言的發(fā)動機萬有特性研究[J]. 吉林農(nóng)業(yè)大學(xué)學(xué)報, 2003, 25(3): 339-342.
[5] 萬德永, 王友林. 發(fā)動機負(fù)荷特性曲線的曲面擬合[J]. 中南汽車運輸, 1998(3): 5-8.
[6] 馮一兵. 發(fā)動機萬有特性曲線的曲面擬合[J]. 拖拉機與農(nóng)用運輸車, 1998(5): 41-44.
[7] DAVID KINCAID, WARD CHENEY. 數(shù)值分析[M]. 王國榮, 俞耀明, 徐兆亮, 譯. 北京: 機械工業(yè)出版社, 2005.
[8] 余志生. 汽車?yán)碚揫M]. 3版. 北京: 機械工業(yè)出版社, 2001.
[9] MATHWORKS. MATLAB 2013a Documentation Center: Curve Fitting Toolbox -使用回歸、插值和平滑來擬合曲線和曲面數(shù)據(jù)[DB/OL]. [2013-05-11]. http://www.mathworks.cn/products/curvefitting.
[10] 謝 宇. 回歸分析[M]. 北京: 社會科學(xué)文獻(xiàn)出版社, 2010.
[11] MATHWORKS. Curve Fitting Toolbox User's Guide(R2012b)[M/CD]. The Mathworks Inc, 2012: 138-139.
[12] MATHWORKS. Curve Fitting Toolbox Release Notes(R2012b)[M/CD]. The Mathworks Inc, 2012.
[13] 周龍寶, 劉巽俊, 高宗英, 等. 內(nèi)燃機學(xué)[M]. 3版. 北京: 機械工業(yè)出版社, 2012.
Application of MATLAB Curve Fitting Toolbox to Engine Characteristic Fitting
HUANG Bingfeng1,2, XIE Fangxi2, FU Jiahong3
(1. Hubei Key Laboratory of Automotive Power Train and Electronics,Hubei University of AutomotiveTechnology, Shiyan 442002, China; 2. State Key Laboratory of Automotive Simulation and Control, Jilin University, Changchun 130022, China; 3. School of Information Science and Engineering, Wuhan University of Science and Technology, Wuhan 430081, China)
Itdiscusses the interactive graphical interfaces and routine call of MATLAB curve fitting toolbox. Taking the universal characteristic map plotting of a diesel engine under a steady-state condition as an example, it introduces the procedures and methods of surface fitting with curve fitting toolbox and key codes are provided. Methods are discussed on how to improve the imitative effect and the drawing quality. The results show that the fitting accuracy is very high; MATLAB curve fitting toolbox can provide much convenience to the surface fitting.
Engine characteristics; Surface fitting; MATLAB; Multiple regression; Curve fitting toolbox
TK421
A
2095-4476(2014)05-0024-05
2014-02-20
湖北汽車工業(yè)學(xué)院汽車動力傳動與電子控制湖北省重點實驗室開放基金項目(ZDK201205)
黃兵鋒(1977— ), 男, 湖北枝江人, 湖北汽車工業(yè)學(xué)院汽車工程學(xué)院講師.
(責(zé)任編輯:徐 杰)