第一篇:基于MATLAB的發(fā)動(dòng)機(jī)萬(wàn)有特性曲線繪制方法_圖文(精)
=設(shè)計(jì)研究 > 基于 MATLAB 的發(fā)動(dòng)機(jī)萬(wàn)有特性曲線繪制方法 周廣猛 1 , 郝志剛 2 , 劉瑞林 1 , 陳 東 3 , 管金發(fā) 1 , 張春海 4(1.軍事交通學(xué)院 汽車工程系 , 天津 300161;2.軍事交通學(xué)院 訓(xùn)練部 , 天津 300161;3.軍事交通學(xué)院 基礎(chǔ)部 , 天津 300161;4.蘭州軍區(qū) 軍械汽車技工訓(xùn)練大隊(duì) , 陜西 西安 710111 摘要 :利用 MATLAB 數(shù)學(xué)運(yùn)算能力 , 處理發(fā)動(dòng)機(jī)性能試驗(yàn)數(shù)據(jù) , 方法簡(jiǎn)單可靠 , 繪制后的萬(wàn) 有曲線直觀明了 , 把等燃油消耗率曲線、外特性曲線和等功率曲線較好地?cái)M合在同一張圖上 , 擬合程度較高。
關(guān)鍵詞 :MATLAB;萬(wàn)有特性曲線;繪圖
中圖分類號(hào) :TK402 文獻(xiàn)標(biāo)識(shí)碼 :A 文章編號(hào) :1673-6397(2009 02-0034-03 Universal Characteristics C urve Plotting Method based on MATLAB Z HO U Guang-me ng 1 , H AO Zhi-gang 2 , LI U Rui-lin 1 , C HE N Dong 3 , GUA N Jin-fa 1 , Z HANG C hun-hai 4(1.Automobile Engineering Department, Academy of Military Transportation, Tianjin 300161, China;2.Training Department, Acade my of Military Transportation, Tianjin 300161, China;3.General Course Department, Academy of Military Transporta tion, Tianjin 300161, China;4.Ordnance Mechanic Training Brigade, Lan Zhou Theater, Xi.an 710111, China Abstract :Taking advantage of MATLAB mathematic operation, data from engine characteristic test was processed, the method is simple and credible, The universal characteristics curve plotted is intuitionistic and perspicuous, and was in good fit with data got in test.Key W ords :MATLAB;Universal Characteristics Curve;Plot :(, 男 , , , 引 言
為了能全面反映發(fā)動(dòng)機(jī)的性能 , 把發(fā)動(dòng)機(jī)的多 個(gè)參數(shù)畫在一張圖上而形成的多參數(shù)的特性曲線叫 做發(fā)動(dòng)機(jī)的萬(wàn)有特性曲線
[1] , 傳統(tǒng)用作圖法制取萬(wàn)
有特性曲線是將不同轉(zhuǎn)速下的負(fù)荷特性曲線繪制在 同一張坐標(biāo)圖上 , 形成曲線簇 , 然后從曲線簇上把等 油耗點(diǎn)逐一投影到萬(wàn)有特性圖上 , 并圓滑地連接成 等油耗曲線 , 再做出等功率曲線 , 畫出外特性曲線 , 進(jìn)而得到發(fā)動(dòng)機(jī)的萬(wàn)有特性曲線 , 這種萬(wàn)有特性曲 線的手工繪制方法費(fèi)時(shí)費(fèi)力 , 難以保證數(shù)據(jù)和圖形 的精度
[2] , 而 MATLAB 軟件具有強(qiáng)大的矩陣計(jì)算和 數(shù)據(jù)可視化能力 [3] , 為萬(wàn)有特性曲線的繪制提供了 一種新的方法。國(guó)內(nèi)開(kāi)展了利用 MATLAB 進(jìn)行萬(wàn)有 特性曲線繪制的研究 , 由于外特性曲線擬合較為簡(jiǎn)
單 , 方法較為成熟 , 研究的重點(diǎn)多集中在等燃油消耗 率曲線的擬合與繪制上 , MATLAB 中提供了二元插 值函數(shù)、三次插值、V4插值等多種插值方法 , 但要求 數(shù)據(jù)間隔要足夠小 , 而且對(duì)周圍節(jié)點(diǎn)的精度要求高 , 個(gè)別數(shù)據(jù)點(diǎn)的誤差有可能造成數(shù)據(jù)畸變 [4]。由洛陽(yáng) 凱邁機(jī)電有限 公司開(kāi)發(fā)的 FST2D 發(fā)動(dòng) 機(jī)控制系統(tǒng) 利用 MATLAB 的計(jì)算引擎 , 可以利用發(fā)動(dòng)機(jī)試驗(yàn)數(shù) 據(jù)繪制萬(wàn)有特性曲線 , 但對(duì)試驗(yàn)點(diǎn)的密度和準(zhǔn)確度 仍然要求較高 [5]。而文中所采用的方法能夠很好地 解決這個(gè)問(wèn)題。其它方法如神經(jīng)網(wǎng)絡(luò)擬合方法需要 重新訓(xùn)練網(wǎng)格 , 比較繁瑣;從一元樣條非張量積形式 推廣到薄板樣條形式可較好光滑曲線 , 但易出現(xiàn)多 個(gè)插值點(diǎn) [6];本文中利用的最小二乘法原理 , 采用多 元線性回歸的方法 , 但隨著擬合條件增加 , 也有產(chǎn)生 奇點(diǎn)的可能。但在試驗(yàn)點(diǎn)采集受限等條件限制下仍
2009年第 2期(總第 110期 內(nèi) 燃機(jī)與動(dòng)力裝置 I.C.E &Powerplan t 2009年 4月
不失為一個(gè)較好的手段。
1利用 MATLAB 繪制萬(wàn)有特性曲線的過(guò)程 以轉(zhuǎn)速為橫坐標(biāo)、平均有效壓力(或扭矩 為縱 坐標(biāo)的萬(wàn)有特性曲線運(yùn)用最廣 [7], 繪制該萬(wàn)有特性 曲線需要畫出等燃油消耗率曲線、等功率曲線和邊 界線 , 具體繪制方法如表 1所示。
表 1發(fā)動(dòng)機(jī)萬(wàn)有特性曲線繪制方法
線型 繪制方法 采用(建立 的模型 擬合方式 MATLAB 命令(參數(shù) 等 燃 油 消 耗 率 曲線 先建 立 燃 油消 耗 率 與轉(zhuǎn) 速 和 扭 矩的 關(guān) 系 模 型 , 繪 出 三 維 曲 面 圖 , 再生成二維的 等值線圖。b e =f(T tq , n 最小 二乘 法原 理 , 多 元 線性回歸
meshgrid mesh contour NaN 邊界線 根據(jù) 發(fā) 動(dòng) 機(jī)外 特 性 曲線 的 數(shù) 據(jù) 繪制邊界線。
T tq =f(n 樣 條插值擬合 interp1plot 等功率曲線 公式 P e =T tq n P 9550繪制 , 繪出三
維曲面圖 , 再生成二維等值線圖 T tq =f(n 樣 條插值擬合 interp1NaN 發(fā)動(dòng)機(jī)負(fù)荷特性試驗(yàn)的數(shù)據(jù)并不是矩陣格式 , 需要首先將它們轉(zhuǎn)化為繪制 MATLAB 所識(shí)別的、繪 制 三 維 圖 形 的 矩 陣 格 式 [8], 才 能 繪 制 出 轉(zhuǎn) 速
n(r P min、有 效 扭 矩 T tq(N #m 和 燃 油 消 耗
率
b e(gP(kW #h 的三維曲面圖 , 再利用 MATLAB 語(yǔ)言 里的 contour 語(yǔ)句生成二維的等值線圖(相當(dāng)于用不 同的 T tq-n平面去截 b e、n、T tq 的三維曲面圖 , 進(jìn)而 得到發(fā)動(dòng)機(jī)的等油耗曲線 , 而等油耗曲線模型的建 立實(shí)際上是建立燃油消耗率 b e 與轉(zhuǎn)速 n 和平均有 效壓力 P me 的函數(shù) , 采用多元線性回歸的方法進(jìn)行曲 面擬合。
邊界線的繪制實(shí)際上是把由外特性試驗(yàn)得到的 T tq、n 數(shù)據(jù)繪制在平面上 , 形成 T tq-n 關(guān)系曲線 , 構(gòu) 成發(fā)動(dòng)機(jī)萬(wàn)有特性曲線的邊界線 , 此時(shí)油量調(diào)節(jié)機(jī) 構(gòu)固定在標(biāo)定循環(huán)供油量位置 , 萬(wàn)有特性曲線上的 轉(zhuǎn)速和扭矩不可能超出邊界線的范圍。
根據(jù)公式 P e =T tq n P 9550, 選擇不同的 T tq、n , 利 用 interp1進(jìn)行擬合 , 得到函數(shù) P e =f(T tq , n , 繪制 得到三維曲線 ,利用 contour 命令得到的雙曲線即是 等功率曲線。2模型的建立
2.1等油耗消耗率曲線模型的建立 根據(jù)多元線性回歸理論 , 建立模型如下 : b el
b e2 ,b = 1n 1T tq 1n 21n 1T tq1T 2tq1, n l 1n l-11T tq 1, T l tq 1 1n 2T tq 2n 22n 2T tq2T 2tq2, n l 1n l-12T tq 2, T l tq 2 , , , , , , , , , 1n N T tqN n 2N N N T tq N T 2tq N , n l 1n l-1N T tqN , T l @ a 0 a 1 , a k 1400 1600 1800 2000 T tq P N #m b e g #(k W #h-1 T tp P N #m b e g #(kW #h-1 T tq P N #m b e g #(kW #h-1 T tq P N #m b e g #(k W #h-1 399.8222.8409.1222.0408.3226.0425.6206.5354.1
220.4365.7221.7368.3225.3380.3231.1318.5232.4328.3235.4328.3226.4332.7231.1278.1228.5284.1226.5289.0233.9290.9233.0236.2227.8243.7230.5244.4242.1244.4242.0203.6232.6203.2236.8208.8283.3205.1244.9185.3248.5164.3249.1167.7253.9160.2265.0157.2245.9123.9276.1132.1271.4114.5299.8117.2272.483.5407.989.5323.568.8398.080.8 329.7 39.7 487.0 46.1 468.6 30.7 596.8 2200 2400 2600 2800 T tq P N #m b e g #(k W #h-1 T tp P N #m b e g #(kW #h-1 T tq P N #m b e g #(kW #h-1 T tq P N #m b e g #(k W #h-1
420.7234.7404.6174.2378.0256.9315.6257.9379.6259.8360.5242.2344.7253.7275.5295.3334.6235.5322.7252.1310.3253.5242.5282.4291.6237.6283.0287.4264.3260.0210.3288.7244.4242.8243.3253.6226.1303.8178.5301.9202.8292.3205.5263.6186.8280.7145.6329.7157.5277.9162.1290.6154.2300.6118.6357.0116.0308.7124.7316.8115.3346.672.6475.474.1396.286.8378.076.3435.652.8580.337.8 605.9 52.4 518.8 34.1 812.9 22.4 1080.1圖 1 等燃油 消耗率曲線和等功率曲線的三維擬合圖 圖 2 萬(wàn)有特性曲線(下 轉(zhuǎn)第 48頁(yè)
#36#內(nèi)燃機(jī)與動(dòng)力裝置 2009年 4月
性 消聲器進(jìn)行消聲實(shí)驗(yàn) , 并且記錄下相應(yīng)數(shù)據(jù);在保持 同 一工況轉(zhuǎn)速的情況下 , 接通電源 , 有源消聲部分開(kāi)始 工 作 , 再次記錄相應(yīng)數(shù)據(jù)。根據(jù)摩托車發(fā)動(dòng)機(jī)排氣噪 聲的頻譜特征及有源消聲的特點(diǎn) , 本實(shí)驗(yàn)系統(tǒng)主要針 對(duì)基頻噪聲及其一次諧波噪聲進(jìn)行控制 , 從實(shí)驗(yàn)結(jié)果 看其消聲效果還是比較理想 , 由于消聲器特有的消聲 方 式 , 對(duì)高頻部分也具備一定消聲效果。基于揚(yáng)聲器 參 數(shù)的限制 , 下限暫 定為 125Hz。
表 1 降噪的實(shí)驗(yàn)結(jié)果 f P Hz 125 ***000LP1P dB 827866656155LP2P dB 666451605954$LP P d B 16 14 15 5 2 1 表 1中 LP1指的是原有抗性消聲器的消聲效果 , LP2指的是帶 有有源消聲部分的總的消聲效果 , $LP 指 的 是有源消聲部分所達(dá)到的消聲效果。在理想條件 下 , 各個(gè)頻率點(diǎn)的消 聲指數(shù)應(yīng)為無(wú)窮大 , 但是由于幅值 和 相位的偏差 , 傳聲 器、揚(yáng)聲器和電路中一些元器件的 延 時(shí)和非線性 , 對(duì)噪 聲消除能力都有不同程度的影響 , 使得末端還保留一定的殘余噪聲 , 另外消聲器管道兩 端 實(shí)際存在的聲反射對(duì)實(shí) 驗(yàn)結(jié)果也有一定影響。結(jié)束語(yǔ)
(1針對(duì)內(nèi)燃機(jī)排氣噪聲的特點(diǎn) , 提出了基于模擬 電子技術(shù)的有源消聲系統(tǒng) , 該系統(tǒng)把有源消聲和無(wú)源 消聲相結(jié)合 , 在不影響中高頻消聲效果的前提下 , 對(duì)低 頻段噪聲消聲 效果明顯。
(2雖然受傳聲器、揚(yáng)聲器等器件好壞和非線性的 影響 , 但 在實(shí)驗(yàn)消聲過(guò)程中采取了較好的匹配措施 , 信 號(hào)處理部分采 用純模擬電路 , 實(shí)時(shí)性好 , 消聲效果未受 到很大影響 , 可以實(shí)現(xiàn)寬帶消聲。參考文獻(xiàn) :
[1]葛維晶 , 王偉生 , 張寶歡.摩托車發(fā)動(dòng)機(jī)排氣消聲器的研究 與設(shè)計(jì) [J].小型內(nèi)燃機(jī) , 1994, 23(3 :37-41.[2]馮振東 , 宋 傳學(xué).車內(nèi)噪聲主動(dòng)控 制系統(tǒng)初探.汽 車工程 , 1991, 13(4 :202-207.[3]吳斌.發(fā)動(dòng)機(jī)排氣自適應(yīng)有源消聲關(guān)鍵技術(shù)的研究 [D]:[學(xué) 位論文 ].北京 :北京工業(yè) 大學(xué)機(jī)械工程與應(yīng) 用電子技術(shù)學(xué) 院 , 2001, 13-37.[4]Krause P, Welten s H.Ad vanced design of automotive exhaust silencer systems[C].SAE Paper 922088, 1992.[5]Kim Heung-Seob, Hong Jin-Seok, Sohn Dong-Goo, et al.Develop men t of an Acti ve Muffler System for Reduci ng E xhaust Noise and Flow Restriction in a Heavy Vehicle [J].Noise Control Engineering Journal,1999, 47(2 :57-63.(上接第 36頁(yè) 4 結(jié) 論
(1MATLAB 強(qiáng)大 的數(shù)學(xué)運(yùn)算能力 , 方便實(shí)用的繪 圖 功能為發(fā)動(dòng)機(jī)萬(wàn)有特性 曲線的繪制提供了一個(gè)很好 的 途徑 , 利用 MA TLAB 繪制萬(wàn)有曲線 , 作圖方法簡(jiǎn)單 , 擬 合程度高 , 提高了 數(shù)據(jù)處理的速度和精度 , 為發(fā)動(dòng)機(jī) 動(dòng) 力性、經(jīng)濟(jì)性的研究 , 發(fā)動(dòng)機(jī)參數(shù)的標(biāo)定 , 發(fā)動(dòng)機(jī)與 傳 動(dòng)系的匹配提供了更可 靠的依據(jù);(2與其它利用 MA TLAB 繪制萬(wàn)有特性的方法相 比 , 文章所述的方法 能夠很好地把等油耗曲線、等功率 曲線及外特性曲線擬合在一張圖上 , 圖像更加直觀可 靠;(3該繪圖方法可以利用 MA TLAB 圖形用戶界面 設(shè)計(jì)技術(shù)進(jìn)行進(jìn)一步處理 , 進(jìn)而完成該繪圖方法的圖 形 界面設(shè)計(jì)。同時(shí)可以 進(jìn)一步探索利用更好的曲線擬 合 方法 , 或采取分段 擬合方法 , 進(jìn)一 步提高擬合程度。參 考文獻(xiàn) :
[1]孫鳳英 , 汽車性能與使用技術(shù) [M].北京 :機(jī)械工業(yè)出 版社 , 2002.[2]易雪梅 , 吳伶.用 MA TLAB 語(yǔ)言繪制發(fā)動(dòng)機(jī)萬(wàn)有特性的兩種 方法 [J].北京汽車 ,2005(5 :33-35.[3]李金輝 , 徐立友.基于 MA TLAB 語(yǔ)言的發(fā)動(dòng)機(jī)特性研究 [J].汽 車科技 , 2005(3 :40-42.[4]倪計(jì)民 , 陳源.MA TLAB 軟件在汽車動(dòng)力傳動(dòng)系匹配計(jì)算中的 應(yīng)用 [J], 上海汽車 ,2003:24-27.[5]洛陽(yáng)凱邁機(jī)電有限公司 , FS T2D 系統(tǒng)使用說(shuō)明書 [Z].洛陽(yáng).[6]李小華 , 羅福強(qiáng) , 湯東.多項(xiàng)式插值法繪制發(fā)動(dòng)機(jī)萬(wàn)有特性曲 線 [J].農(nóng)業(yè)工程學(xué)報(bào) , 2004,20(5:138-141.[7]董敬.汽車拖拉機(jī)發(fā)動(dòng)機(jī) [M].北京 :機(jī)械工業(yè)出版社 , 2004, 149.[8]蘇金明 , 阮沈勇.MA TLAB 實(shí)用教程 [M].北京 :電子工業(yè)出版 社 , 2005.[9]Curtis F.Gerald, Patrick O.Wheatley.Applied Nu merical Analysi s [M].Beijing:HigherEducation Press, 2006.[10]關(guān)志偉 , 楊玲 , 施繼紅.基于 MA TLAB 語(yǔ)言的發(fā)動(dòng)機(jī)萬(wàn)有特 性研究 [J].吉林農(nóng)業(yè)大學(xué)學(xué)報(bào) , 2003,25(3 :339-342.[11]薛定宇 , 陳陽(yáng)泉.基于 MA TLAB P Simulink 的系統(tǒng)仿真與應(yīng)用 [M].北京 :清華大學(xué)出版社.2002.#48#內(nèi)燃機(jī)與動(dòng)力裝置 2009年 4月
第二篇:如何用matlab繪制電機(jī)效率map圖或發(fā)動(dòng)機(jī)萬(wàn)有特性曲線
如何用matlab繪制電機(jī)效率map圖或發(fā)動(dòng)機(jī)萬(wàn)有特性曲線
前段時(shí)間寫論文,需要繪制電機(jī)效率map圖,其實(shí)和發(fā)動(dòng)機(jī)萬(wàn)有特性曲線一樣。
看了好多資料都不會(huì),問(wèn)問(wèn)師兄也沒(méi)具體畫過(guò)。困惑中查到貌似有幾個(gè)軟件可以畫map圖,由于我比較熟悉matlab,就選用它了,可是matlab也不知道咋畫呀,我查看了matlab圖形處理這一塊,突然發(fā)現(xiàn)等高線圖繪制,咦???這不就是高中地理學(xué)的嗎???和map圖萬(wàn)有特性圖本質(zhì)一樣嗎???就是contour函數(shù)啦,驚喜萬(wàn)分
5.2.13 等值線圖
等值線圖可用于繪制地理數(shù)據(jù)中的等高圖、氣象數(shù)據(jù)中的等勢(shì)圖等。等值線圖在二維圖形中把第三維中相同大小的數(shù)據(jù)連接為等值線,一定程度上可以表示第三維的信息,同時(shí)等值線圖相比三維圖更容易觀察數(shù)據(jù)之間的關(guān)系,被廣泛的應(yīng)用于各個(gè)領(lǐng)域。
MATLAB中提供了一系列的函數(shù)用于繪制不同形式的等高線圖,其中包括: 1.contour()函數(shù)
contour()函數(shù)可用于繪制二維等值線圖,函數(shù)的調(diào)用格式為:
? contour(z):輸入數(shù)據(jù)z為二維矩陣,繪制數(shù)據(jù)z的等值線,繪圖時(shí)等值線的數(shù)量和數(shù)值根據(jù)矩陣z的數(shù)據(jù)范圍自動(dòng)確定。
? contour(z,n):繪制等值線圖,設(shè)置等值線數(shù)目為n。
? contour(z,v):繪制等值線圖,向量v設(shè)置等值線的數(shù)值。
? contour(x,y,z):繪制矩陣z的等值線圖,輸入?yún)?shù)x、y用于指定繪制的等值線圖的坐標(biāo)軸數(shù)據(jù),同時(shí)輸入數(shù)據(jù)x、y、z必須為大小相等的矩陣。? contour(x,y,z,n):為指定坐標(biāo)軸的等值線圖設(shè)置等值線的數(shù)目n。? contour(x,y,z,v):為指定坐標(biāo)軸的等值線圖設(shè)置等值線的數(shù)值v。? contour(...,LineSpec):輸入?yún)?shù)LineSpec用于設(shè)置等值線的線型。? [c,h] = contour(...):返回contour()函數(shù)繪制的等高線圖中的等值線的數(shù)值標(biāo)簽c和包含所有圖形對(duì)象的句柄h; 2.contourf()函數(shù)
contourf()函數(shù)用于繪制帶填充的二維等值線圖。即在contour()函數(shù)繪制的等值線圖上,將相鄰的等值線之間用同一種顏色填充,不相鄰的等值線之間填充有不同的顏色,填充用的顏色決定于當(dāng)前的色圖顏色。函數(shù)contourf()的調(diào)用格式同contour()。
3.clabel()函數(shù)
? clabel(c,h):在句柄h指定的等值線圖上的等值線上添加數(shù)據(jù)標(biāo)簽c。? clabel(c,h,v):在指定的等值線值v上顯示數(shù)據(jù)標(biāo)簽c。
? clabel(c,h,'manual'):手動(dòng)方式設(shè)置等值線的數(shù)據(jù)標(biāo)簽。當(dāng)運(yùn)行該命令后,等值線圖中將出現(xiàn)十字連線,用戶用鼠標(biāo)左鍵或空格鍵在最接近指定位置上放置數(shù)據(jù)標(biāo)簽,回車鍵結(jié)束該操作。
? clabel(c):在當(dāng)前的等值線圖上添加數(shù)據(jù)標(biāo)簽c。? clabel(c,v):在當(dāng)前的等值線圖上添加數(shù)據(jù)標(biāo)簽c,并指定數(shù)據(jù)標(biāo)簽所加的等值線值v。
? clabel(c,'manual'):用戶手動(dòng)方式為當(dāng)前等值線圖添加數(shù)據(jù)標(biāo)簽。另外,函數(shù)ezcontour()和ezcontourf()可以直接繪制函數(shù)表達(dá)式的等值線圖,感興趣的讀者可以查閱MATLAB的相關(guān)幫助文檔。紅字是我自己的數(shù)據(jù)。[c,h]=contour(speed,torque,efficient,28)clabel(c,h,[92.046,91.115,90.184,89.253,88.322,86.460,84.598,81.806,80.874,74.356,70.632])x=500:5:2000;y=172;hold on plot(x,y)x1=2000:5:6000;y1=0.000002708*x1.^2-0.04766*x1+256.488;Hold on Plot(x1,y1)title('電機(jī)效率map圖(%)')【例5.32】等值線圖的繪制。
z=peaks;
%函數(shù)peaks用于生成圖形繪制的示例數(shù)據(jù) [c,h] = contour(z);
%生成數(shù)據(jù)矩陣z的不帶填充的二維等值線圖 title('一般二維等值線圖的繪制')
clabel(c,h);
%為二維等值線圖添加數(shù)據(jù)標(biāo)簽 colorbar
%添加等值線圖的顏色條 title('一般二維等值線圖的繪制(添加數(shù)據(jù)標(biāo)簽)')
figure;
v=[min(z(:)):2:max(z(:))];
[c,h] = contourf(z,v);
%繪制帶填充的二維等值線圖,并設(shè)置等值線向量v clabel(c,h);
%為二維等值線圖添加數(shù)據(jù)標(biāo)簽 colorbar
%添加等值線圖的顏色條 title('帶填充的二維等值線圖的繪制')
figure;
[c,h] = contourf(z,5);
%繪制帶填充的二維等值線圖,并設(shè)置等值線條數(shù)為5 title('二維等值線圖手動(dòng)添加等值線標(biāo)簽')
clabel(c,h,'manual');
%為二維等值線圖手動(dòng)添加數(shù)據(jù)標(biāo)簽
運(yùn)行上述程序,顯示如圖5.44所示的圖形。
圖5.44(a)
等值線圖的繪制
圖5.44(b)
等值線圖的繪制
圖5.44(c)
等值線圖的繪制
圖5.44(d)
等值線圖的繪制
看到等值線圖是不是很驚喜????
我們?cè)佼媘ap圖時(shí),需要定義等維數(shù)3個(gè)矩陣,speed=[ ];torque=[];efficient[];[c,h]=contour(speed,torque,efficient,28);//因?yàn)槲野l(fā)現(xiàn)28比較好看。
clabel(c,h,[92.046,91.115,90.184,89.253,88.322,86.460,84.598,81.806,80.874,74.356,70.632])后面就是細(xì)節(jié)啦。下面是沒(méi)經(jīng)過(guò)處理的結(jié)果
第三篇:Bezier曲線的繪制和拼接實(shí)驗(yàn)報(bào)告
Bezier曲線的繪制實(shí)驗(yàn)報(bào)告
一、程序?qū)崿F(xiàn)環(huán)境
1操作系統(tǒng):Windows XP、Windows7 2.編程語(yǔ)言:C++ 3.程序?qū)崿F(xiàn)環(huán)境:Visual C++ 6.0
二、算法思想
三、使用說(shuō)明
程序界面如下圖:
用戶可以在編輯框中輸入4個(gè)控制點(diǎn)的坐標(biāo),也可以通過(guò)在繪圖區(qū)內(nèi)直接通過(guò)鼠標(biāo)的單擊指定4個(gè)控制點(diǎn)的位置,輸入4個(gè)控制端點(diǎn)后,單擊“畫Bezier曲線”按鈕即可繪制Bezier曲線。
四、實(shí)驗(yàn)結(jié)果
五、程序代碼(關(guān)鍵代碼)
void CMFC_BezierCurve2Dlg::OnLButtonDown(UINT nFlags, CPoint point){ if(pointOrd==1)
//原點(diǎn)(490,270){
m_p1_x = point.xpoint.y;} if(pointOrd==2){
CDC *pDC=GetDC();
pDC->MoveTo(490+m_p1_x, 270-m_p1_y);
pDC->LineTo(point.x, point.y);
m_p2_x = point.xpoint.y;} if(pointOrd==3){
CDC *pDC=GetDC();
pDC->MoveTo(490+m_p2_x, 270-m_p2_y);
pDC->LineTo(point.x, point.y);
m_p3_x = point.xpoint.y;} if(pointOrd==4){
CDC *pDC=GetDC();
pDC->MoveTo(490+m_p3_x, 270-m_p3_y);
pDC->LineTo(point.x, point.y);
m_p4_x = point.xpoint.y;} pointOrd++;UpdateData(FALSE);
CDialog::OnLButtonDown(nFlags, point);}
voidGetCnk(int n, int *c){ inti,k;for(k=0;k<=n;k++){
c[k]=1;
for(i=n;i>=k+1;i--)c[k]=c[k]*i;
for(i=n-k;i>=2;i--)c[k]=c[k]/i;} }
void CMFC_BezierCurve2Dlg::GetPointPos(intControlN, double t, int *c){ int k, n=ControlN-1;double Bernstein;Pt.x=0.0;Pt.y=0.0;for(k=0;k Bernstein=c[k]*pow(t,k)*pow(1-t,n-k); Pt.x += ControlP[0][k].x * Bernstein; Pt.y += ControlP[0][k].y * Bernstein;} } void CMFC_BezierCurve2Dlg::OnButtonDrawBeziercurve(){ UpdateData();pointOrd=1;CDC *pDC=GetDC();ControlP[0][0].x=m_p1_x;ControlP[0][0].y=m_p1_y;ControlP[0][1].x=m_p2_x;ControlP[0][1].y=m_p2_y;ControlP[0][2].x=m_p3_x;ControlP[0][2].y=m_p3_y;ControlP[0][3].x=m_p4_x;ControlP[0][3].y=m_p4_y; pDC->MoveTo(490+m_p1_x, 270-m_p1_y);pDC->LineTo(490+m_p2_x, 270-m_p2_y);pDC->LineTo(490+m_p3_x, 270-m_p3_y);pDC->LineTo(490+m_p4_x, 270-m_p4_y); int *C, i;intControlN=4, m=500;C=new int[ControlN];GetCnk(ControlN-1, C);for(i=0;i<=m;i++){ GetPointPos(ControlN,(double)i/(double)m, C);pDC->SetPixel(490+Pt.x, 270-Pt.y, 255);} } 兩段Bezier曲線的拼接實(shí)驗(yàn)報(bào)告 一、程序?qū)崿F(xiàn)環(huán)境 1操作系統(tǒng):Windows XP、Windows7 2.編程語(yǔ)言:C++ 3.程序?qū)崿F(xiàn)環(huán)境:Visual C++ 6.0 二、算法思想 三、使用說(shuō)明 程序界面如下圖: 用戶可以在編輯框中輸入4個(gè)控制點(diǎn)的坐標(biāo),也可以通過(guò)在繪圖區(qū)內(nèi)直接通過(guò)鼠標(biāo)的單擊指定4個(gè)控制點(diǎn)的位置,輸入4個(gè)控制端點(diǎn)后,單擊“畫Bezier曲線”按鈕即可繪制Bezier曲線。 分別繪制完兩段Bezier曲線后,單擊拼接即可實(shí)現(xiàn)兩段曲線的拼接。 四、實(shí)驗(yàn)結(jié)果 五、程序代碼(關(guān)鍵代碼) void CMFC_BezierCurve2Dlg::OnLButtonDown(UINT nFlags, CPoint point){ if(pointOrd==1) //原點(diǎn)(490,270){ m_p1_x = point.xpoint.y;} if(pointOrd==2){ CDC *pDC=GetDC(); pDC->MoveTo(490+m_p1_x, 270-m_p1_y); pDC->LineTo(point.x, point.y); m_p2_x = point.xpoint.y;} if(pointOrd==3){ CDC *pDC=GetDC(); pDC->MoveTo(490+m_p2_x, 270-m_p2_y); pDC->LineTo(point.x, point.y); m_p3_x = point.xpoint.y;} if(pointOrd==4){ CDC *pDC=GetDC(); pDC->MoveTo(490+m_p3_x, 270-m_p3_y); pDC->LineTo(point.x, point.y); m_p4_x = point.xpoint.y;} pointOrd++;UpdateData(FALSE); CDialog::OnLButtonDown(nFlags, point);} voidGetCnk(int n, int *c){ inti,k;for(k=0;k<=n;k++){ c[k]=1; for(i=n;i>=k+1;i--)c[k]=c[k]*i; for(i=n-k;i>=2;i--)c[k]=c[k]/i;} } void CMFC_BezierCurve2Dlg::GetPointPos(intControlN, double t, int *c){ int k, n=ControlN-1;double Bernstein;Pt.x=0.0;Pt.y=0.0;for(k=0;k Bernstein=c[k]*pow(t,k)*pow(1-t,n-k); Pt.x += ControlP[pointGroup][k].x * Bernstein; Pt.y += ControlP[pointGroup][k].y * Bernstein;} } void CMFC_BezierCurve2Dlg::BezierCurve(){ CDC *pDC=GetDC();pDC->MoveTo(490 + ControlP[pointGroup][0].x, 270ControlP[pointGroup][1].y);pDC->LineTo(490 + ControlP[pointGroup][2].x, 270ControlP[pointGroup][3].y); int *C, i;intControlN=4, m=500;C=new int[ControlN];GetCnk(ControlN-1, C);for(i=0;i<=m;i++){ GetPointPos(ControlN,(double)i/(double)m, C); pDC->SetPixel(490+Pt.x, 270-Pt.y, 255);} } void CMFC_BezierCurve2Dlg::OnButtonDrawBeziercurve(){ UpdateData();pointOrd=1; ControlP[pointGroup][0].x=m_p1_x;ControlP[pointGroup][0].y=m_p1_y;ControlP[pointGroup][1].x=m_p2_x;ControlP[pointGroup][1].y=m_p2_y;ControlP[pointGroup][2].x=m_p3_x;ControlP[pointGroup][2].y=m_p3_y;ControlP[pointGroup][3].x=m_p4_x;ControlP[pointGroup][3].y=m_p4_y; BezierCurve();pointGroup++;} void CMFC_BezierCurve2Dlg::OnButtonMatch(){ pointGroup--; double dx, dy;double k1, k2, s, s1, s2;int i;CPoint temp;dx = ControlP[pointGroup][0].xControlP[pointGroup-1][3].y;for(i=0;i<4;i++){ ControlP[pointGroup][i].x-= dx; ControlP[pointGroup][i].y-= dy;} k1=1.0*(ControlP[pointGroup-1][3].y-ControlP[pointGroup-1][2].y)/(ControlP[pointGroup-1][3].x-ControlP[pointGroup-1][2].x);k2=1.0*(ControlP[pointGroup][1].y-ControlP[pointGroup][0].y)/(ControlP[pointGroup][1].x-ControlP[pointGroup][0].x);if(k1>0){ if(ControlP[pointGroup-1][2].x s1 = atan(k1); else s1 = PI + atan(k1);} else if(k1<0){ if(ControlP[pointGroup-1][2].x s1 = 2*PI + atan(k1); else s1 = PI + atan(k1);} if(k2>0){ if(ControlP[pointGroup][0].x s2 = atan(k2); else s2 = PI + atan(k2);} else if(k2<0){ if(ControlP[pointGroup][0].x s2 = 2*PI + atan(k2); else s2 = PI + atan(k2);} s = s1(ControlP[pointGroup][i].y-ControlP[pointGroup-1][3].y)* sin(s)+ ControlP[pointGroup-1][3].x; temp.y =(ControlP[pointGroup][i].x-ControlP[pointGroup-1][3].x)* sin(s)+(ControlP[pointGroup][i].y-ControlP[pointGroup-1][3].y)* cos(s)+ ControlP[pointGroup-1][3].y; ControlP[pointGroup][i].x = temp.x; ControlP[pointGroup][i].y = temp.y;} BezierCurve();} 用Excel繪制標(biāo)準(zhǔn)曲線以及求未知含量的方法 將數(shù)據(jù)整理好輸入Excel,并選取完成的數(shù)據(jù)區(qū),并點(diǎn)擊圖表向?qū)В缦聢D: 點(diǎn)擊圖表向?qū)Ш髸?huì)運(yùn)行圖表向?qū)缦聢D,先在圖表類型中選“XY散點(diǎn)圖”,并選了圖表類型的“散點(diǎn)圖”(第一個(gè)沒(méi)有連線的)。 點(diǎn)擊“下一步”,出現(xiàn)如下圖界面。如是輸入是如本例橫向列表的就不用更改,如果是縱向列表就改選“列”: 如果發(fā)現(xiàn)圖不理想,就要仔細(xì)察看是否數(shù)據(jù)區(qū)選擇有問(wèn)題,如果有誤,可以點(diǎn)擊“系列”來(lái)更改,如下圖: 如果是X值錯(cuò)了就點(diǎn)擊它文本框右邊的小圖標(biāo),結(jié)果如下圖: 在表上選取正確的數(shù)據(jù)區(qū)域,點(diǎn)擊“下一步”,出現(xiàn)圖表選項(xiàng)界面如下圖,調(diào)整選項(xiàng),以滿足自己想要的效果: 點(diǎn)擊“下一步”,一張帶標(biāo)準(zhǔn)值的完整散點(diǎn)圖完成,如下圖: 現(xiàn)在要根據(jù)數(shù)據(jù)進(jìn)行回歸分析,計(jì)算回歸方程,繪制出標(biāo)準(zhǔn)曲線: 先點(diǎn)擊圖上的標(biāo)準(zhǔn)值點(diǎn),然后按右鍵,點(diǎn)擊“添加趨勢(shì)線”。如下圖: 本例是線性關(guān)系,在類型中選“線性”,如下圖: 點(diǎn)擊“確定”,標(biāo)準(zhǔn)曲線回歸畫好: 回歸后的方程是什么樣呢?點(diǎn)擊趨勢(shì)線(也就是標(biāo)準(zhǔn)曲線)然后按右鍵,選趨勢(shì)線格式,如下圖: 在顯示公式和顯示R平方值(直線相關(guān)系數(shù))前點(diǎn)一下,勾上。再點(diǎn)確定,公式和相關(guān)系數(shù)都出來(lái)了。如圖: 由此標(biāo)準(zhǔn)曲線可得出濃度:切換到“選項(xiàng)”標(biāo)簽頁(yè),選擇“顯示公式”,確定。在圖表中出現(xiàn)一個(gè)公式,即濃度對(duì)吸光度的關(guān)系。 在單元格中輸入該公式(其中的X值用具體的單元格引用代替),即可根據(jù)該公式計(jì)算出樣品的濃度。 有時(shí)候有的項(xiàng)目是成指數(shù)增加,散點(diǎn)圖如下圖: 從上圖看并不相關(guān),除了最大的一個(gè)點(diǎn)外其余的幾乎都成了直線。這不難理解,因?yàn)閷?duì)于10000000而言,10與10000都差不了多少。因此我們平時(shí)常使用半對(duì)數(shù)坐標(biāo)紙畫圖。對(duì)于Excel,先點(diǎn)中Y坐標(biāo)軸,再按右鍵,選“坐標(biāo)軸格式”如下圖: 將左下方的對(duì)數(shù)刻度選中,確定。完整的一個(gè)半對(duì)數(shù)標(biāo)準(zhǔn)曲線就做好了: 利用Excel制作標(biāo)準(zhǔn)曲線,如果認(rèn)真調(diào)整參數(shù)可以得到不同的效果。繪圖時(shí)最好用XY散點(diǎn)圖。生成圖表后,選擇生成的曲線,之后在曲線上點(diǎn)擊右鍵,選擇“添加趨勢(shì)線”,在“類型”中,選擇最接近的曲線形式。比如你的曲線接近線性,則選擇“線性”,若接近乘冪的形式,則選擇“乘冪”,如果比較難判斷,則選擇“多項(xiàng)式”,并調(diào)整其階數(shù)。 實(shí)驗(yàn)一:離心泵特性曲線實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模海?)熟悉離心泵的操作 (2)測(cè)定單級(jí)離心泵在固定轉(zhuǎn)速下的特性曲線 實(shí)驗(yàn)預(yù)習(xí):(1)了解離心泵的啟動(dòng)與關(guān)閉方法。 (2)熟悉流量、壓強(qiáng)等測(cè)量?jī)x表的使用。儀器介紹:離心泵特性曲線實(shí)驗(yàn)裝置 實(shí)驗(yàn)二:流體阻力實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模海?)測(cè)定直管摩擦系數(shù) (2)測(cè)定局部阻力系數(shù) 實(shí)驗(yàn)預(yù)習(xí):(1)了解摩擦系數(shù)的測(cè)定方法。 (2)熟悉系統(tǒng)的排空以及流量、壓強(qiáng)測(cè)量?jī)x表的使用。儀器介紹:流體阻力測(cè)定實(shí)驗(yàn)裝置 實(shí)驗(yàn)三:板框過(guò)濾實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模海?)了解板框過(guò)濾機(jī)的構(gòu)造和操作 (2)測(cè)定恒壓過(guò)濾常數(shù) 實(shí)驗(yàn)預(yù)習(xí):(1)了解板框過(guò)濾機(jī)的流程。 (2)熟悉過(guò)濾常數(shù)的測(cè)定方法。儀器介紹:板框壓濾機(jī)過(guò)濾常數(shù)測(cè)定實(shí)驗(yàn)裝置 實(shí)驗(yàn)四:氣體強(qiáng)制對(duì)流傳熱實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模海?)測(cè)定套管換熱器空氣的對(duì)流傳熱系數(shù)并整理準(zhǔn)數(shù)關(guān)聯(lián)式 (2)通過(guò)管型對(duì)比了解強(qiáng)化傳熱的途徑 實(shí)驗(yàn)預(yù)習(xí):(1)了解套管換熱器的結(jié)構(gòu)與操作。 (2)熟悉溫度測(cè)量?jī)x表的使用。儀器介紹:對(duì)流傳熱系數(shù)測(cè)定實(shí)驗(yàn)裝置 實(shí)驗(yàn)五:篩板精餾塔實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模海?)了解篩板精餾塔的結(jié)構(gòu)流程與操作 (2)測(cè)定全回流操作條件下的全塔效率和單板效率 實(shí)驗(yàn)預(yù)習(xí):(1)了解篩板精餾塔的操作方法。 (2)熟悉樣品的提取與測(cè)量方法。儀器介紹:篩板精餾塔實(shí)驗(yàn)裝置 實(shí)驗(yàn)六:干燥實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模海?)了解氣流常壓干燥設(shè)備的基本流程和工作原理 (2)測(cè)定物料在恒定干燥條件下的干燥速率曲線 實(shí)驗(yàn)預(yù)習(xí):(1)了解廂式干燥器的操作。 (2)熟悉樣品干燥中質(zhì)量與時(shí)間的測(cè)量方法。儀器介紹:洞道干燥實(shí)驗(yàn)裝置第四篇:用Excel繪制標(biāo)準(zhǔn)曲線以及求未知含量的方法
第五篇:實(shí)驗(yàn)一:離心泵特性曲線實(shí)驗(yàn)