版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1前言數(shù)控機(jī)床進(jìn)給伺服系統(tǒng)由伺服電路、伺服驅(qū)動(dòng)裝置、機(jī)械傳動(dòng)機(jī)構(gòu)及執(zhí)行部件構(gòu)成。它作用是:接受由數(shù)控系統(tǒng)發(fā)出進(jìn)給位移和速度指令信號,由伺服驅(qū)動(dòng)電路作一定轉(zhuǎn)換和放大后,經(jīng)伺服驅(qū)動(dòng)裝置(直流、交流伺服電機(jī)、直流電機(jī)、功率步進(jìn)電機(jī)、電液伺服閥—液壓馬達(dá)等)相機(jī)械傳動(dòng)機(jī)構(gòu),驅(qū)動(dòng)機(jī)床工作臺、主軸頭架等執(zhí)行部件實(shí)現(xiàn)工作進(jìn)給和迅速運(yùn)動(dòng)。數(shù)控機(jī)床進(jìn)給伺服系統(tǒng)與普通機(jī)床進(jìn)給系統(tǒng)有本質(zhì)上差別,它能依照指令信號精準(zhǔn)地控制執(zhí)行部件運(yùn)動(dòng)速度與位置,以及幾種執(zhí)行部件按一定規(guī)律運(yùn)動(dòng)所合成運(yùn)動(dòng)軌跡。發(fā)展高性能數(shù)控進(jìn)給伺服系統(tǒng),在很大限度上決定了機(jī)床加工精度、表面質(zhì)量和生產(chǎn)效率。數(shù)控進(jìn)給伺服系統(tǒng)性能取決于構(gòu)成它伺服驅(qū)動(dòng)系統(tǒng)與機(jī)械傳動(dòng)機(jī)構(gòu)中各環(huán)節(jié)特性,也取決于系統(tǒng)中各環(huán)節(jié)性能參數(shù)合理匹配。以伺服驅(qū)動(dòng)裝置與控制調(diào)節(jié)器為中心伺服驅(qū)動(dòng)系統(tǒng)已有較成熟理論分析、實(shí)驗(yàn)研究和設(shè)計(jì)辦法。圖1.1數(shù)控進(jìn)給系統(tǒng)在CNKI中所受關(guān)注度(來源于CNKI學(xué)術(shù)趨勢)由圖1.1可以看出,數(shù)控進(jìn)給系統(tǒng)研究,近年來也逐漸受到諸多學(xué)者注重,她們也進(jìn)行了不少工作,并獲得了一定得進(jìn)步。這些進(jìn)步均有效地增進(jìn)了進(jìn)給伺服系統(tǒng)技術(shù)發(fā)展,進(jìn)給系統(tǒng)功能也隨之得到了巨大提高。但是,若只有單軸進(jìn)給系統(tǒng)精度等各方面性能優(yōu)越是不夠,在雙軸或多軸系統(tǒng)中,它們各自不一定可以完全發(fā)揮各自優(yōu)越性,這樣就會導(dǎo)致嚴(yán)重資源揮霍,不利于實(shí)際生產(chǎn)。只有在各個(gè)進(jìn)給系統(tǒng)之間參數(shù)密切配合才可以將每個(gè)進(jìn)給系統(tǒng)性能發(fā)揮到極致,這樣就有效地提高了資源運(yùn)用率,對實(shí)際生產(chǎn)才有益。因而,進(jìn)一步研究數(shù)控機(jī)床中伺服系統(tǒng)特性以及探尋測試數(shù)控機(jī)床機(jī)電匹配辦法、途徑,并探討數(shù)控機(jī)床機(jī)電匹配作用、地位,并定性、定量地分析系統(tǒng)增益匹配對運(yùn)動(dòng)(加工)軌跡精度影響就顯得尤為重要。只有對的結(jié)識進(jìn)給系統(tǒng)特性以及進(jìn)給系統(tǒng)增益對輪廓加工精度影響,才可以采用有效辦法提高整個(gè)數(shù)控系統(tǒng)整體性能,服務(wù)于整個(gè)數(shù)控行業(yè)。1.1數(shù)控進(jìn)給伺服系統(tǒng)特點(diǎn)數(shù)控機(jī)床進(jìn)給系統(tǒng)與普通機(jī)床不同。數(shù)控機(jī)床數(shù)控系統(tǒng)發(fā)出進(jìn)給指令,經(jīng)進(jìn)給電動(dòng)機(jī)和驅(qū)動(dòng)機(jī)構(gòu),使執(zhí)行部件如刀架、工作臺、主軸箱等按程序規(guī)定運(yùn)動(dòng)。數(shù)控機(jī)床進(jìn)給系統(tǒng),按其控制方式,可分為開環(huán)、半閉環(huán)和閉環(huán)三類。開環(huán)系統(tǒng)構(gòu)造簡樸,但是當(dāng)載荷突然發(fā)生激烈變化時(shí),也許導(dǎo)致執(zhí)行部件運(yùn)動(dòng)誤差。閉環(huán)系統(tǒng)可以檢查指令執(zhí)行狀況并及時(shí)反饋誤差信息,因此精度較高。半閉環(huán)由于反饋裝置裝在伺服電機(jī)或絲杠上,不能糾正絲杠誤差以及受載后絲杠、軸承等變形,因此精度比全閉環(huán)低。在大多數(shù)精度規(guī)定較高機(jī)床上都采用全閉環(huán)控制。但執(zhí)行部件是一種質(zhì)量元件,傳動(dòng)機(jī)構(gòu)是一種彈性元件,因而執(zhí)行機(jī)構(gòu)和傳動(dòng)機(jī)構(gòu)構(gòu)成一種振蕩環(huán)節(jié)。全閉環(huán)系統(tǒng)如果參數(shù)選得不適當(dāng),則有也許產(chǎn)生進(jìn)給振蕩。數(shù)控系統(tǒng)發(fā)出進(jìn)給位移和速度指令,通過轉(zhuǎn)換和功率放大后,作為伺服驅(qū)動(dòng)裝置輸入信號,并控制其作某一速度和距離角位移和直線位移,從而驅(qū)動(dòng)執(zhí)行部件實(shí)現(xiàn)給定速度和位移量。伺服驅(qū)動(dòng)裝置性能,在很大限度上影響機(jī)床進(jìn)給系統(tǒng)品質(zhì),因而,伺服驅(qū)動(dòng)裝置應(yīng)滿足如下規(guī)定。=1\*GB3①調(diào)速范疇寬:調(diào)速范疇是指最高進(jìn)給速度與最低進(jìn)給速度之比。在整個(gè)調(diào)速范疇內(nèi),輸出運(yùn)動(dòng)要有良好穩(wěn)定性。普通調(diào)速范疇?wèi)?yīng)不不大于1:10000,并且低速應(yīng)當(dāng)可以達(dá)到0.1r/min如下。對于普通數(shù)控機(jī)床,其進(jìn)給速度都在1mm/min~24000mm/min范疇之內(nèi),即調(diào)速范疇為:1:24000。在這一調(diào)速范疇內(nèi),規(guī)定速度均勻、穩(wěn)定、低速時(shí)無爬行,還規(guī)定當(dāng)速度為0mm/min時(shí),伺服電機(jī)處在電磁鎖住狀態(tài),以保持定定位精度不變。=2\*GB3②位移精度高:即輸出位移有較高精度,也就是實(shí)際位移與指令位移量之差要小。當(dāng)代數(shù)控機(jī)床位移精度普通為0.01~0.001mm,甚至可以高至0.1μm。=3\*GB3③穩(wěn)定性好:即負(fù)載特性要硬,當(dāng)負(fù)載發(fā)生變化或承受外界干擾時(shí),輸出速度應(yīng)基本不變,并且保持平穩(wěn)均勻。當(dāng)?shù)退龠\(yùn)動(dòng)相加工時(shí),應(yīng)有足夠負(fù)載能力和過載能力。=4\*GB3④動(dòng)態(tài)響應(yīng)快:即有高敏捷度,達(dá)到最大穩(wěn)態(tài)速度時(shí)間要短,普通規(guī)定在200-100ms以內(nèi),有時(shí)甚至規(guī)定不大于幾十毫秒。動(dòng)態(tài)響應(yīng)快慢,反映了系統(tǒng)跟蹤精度高低,直接影響了輪廓精度高低和加工表面質(zhì)量好壞。出此之外,還規(guī)定靜態(tài)、動(dòng)態(tài)誤差小,反向死區(qū)小,能頻繁啟、停和正反運(yùn)動(dòng)。1.2設(shè)計(jì)任務(wù)本次畢業(yè)設(shè)計(jì),筆者將完畢如下設(shè)計(jì)任務(wù):①建立數(shù)控機(jī)床進(jìn)給系統(tǒng)數(shù)學(xué)模型,分析數(shù)控進(jìn)給伺服系統(tǒng)特性;②以數(shù)控直線加工狀況為基本,定性分析數(shù)控機(jī)床中進(jìn)給增益匹配作用;③定量分析數(shù)控機(jī)床中進(jìn)給系統(tǒng)增益匹配對運(yùn)動(dòng)(加工)軌跡精度影響;④開發(fā)出基于PC分析測試軟件,規(guī)定該軟件具備數(shù)據(jù)采集、誤差分析、數(shù)據(jù)瀏覽、圖形顯示、成果分析等功能;⑤撰寫符合有關(guān)規(guī)定軟件設(shè)計(jì)闡明書、使用闡明書和測試分析報(bào)告;⑥撰寫畢業(yè)設(shè)計(jì)闡明書。1.3總體方案本次設(shè)計(jì)總體方案由理論分析某些和軟件測試某些構(gòu)成,總體方案圖如下圖1.1所示:圖1.2總設(shè)計(jì)方案圖如圖1.2所示,由理論分析某些和軟件設(shè)計(jì)某些構(gòu)成,筆者將在2章簡介理論某些,在3、4、5章將對軟件某些進(jìn)行簡介??偡桨笇?shí)現(xiàn)思路如下:理論某些系統(tǒng)建模是特性分析基本,筆者將選用慣用進(jìn)給系統(tǒng)構(gòu)造進(jìn)行建模,然后對其進(jìn)行傳遞函數(shù)推動(dòng),從而進(jìn)行特性分析,最后通過定性和定量兩個(gè)方面就進(jìn)給系統(tǒng)參數(shù)匹配對輪廓加工精度影響進(jìn)行分析。鑒于理論分析成果,為了提高其實(shí)際使用價(jià)值,并充分運(yùn)用于實(shí)際生產(chǎn)過程中,筆者將在WindowsXP系統(tǒng)下基于VC++開發(fā)環(huán)境設(shè)計(jì)一套系統(tǒng)進(jìn)給增益匹配測試軟件,最后運(yùn)用PC機(jī)接口電路采集位移數(shù)據(jù)對該軟件進(jìn)行檢測,從而見證測試軟件實(shí)用性??偡桨冈敿?xì)實(shí)現(xiàn)細(xì)節(jié)請參看有關(guān)章節(jié)。
2數(shù)控進(jìn)給伺服系統(tǒng)2.1數(shù)控進(jìn)給伺服系統(tǒng)構(gòu)造原理2.1.1數(shù)控進(jìn)給伺服系統(tǒng)構(gòu)造圖2.1為采用全閉環(huán)控制數(shù)控機(jī)床進(jìn)給伺服系統(tǒng)構(gòu)造圖,當(dāng)前大某些高速機(jī)床都采用與此類似控制構(gòu)造。感應(yīng)同步器感應(yīng)同步器位置檢測單元測速發(fā)電機(jī)交流伺服電機(jī)位置控制單元速度控制單元圖2.1數(shù)控機(jī)床進(jìn)給伺服系統(tǒng)構(gòu)造圖此種閉環(huán)進(jìn)給系統(tǒng)采用感應(yīng)同步器作為位置檢測裝置,涉及位置控制單元、位置檢測單元和速度控制單元等某些。位置檢測單元測得執(zhí)行部件實(shí)際位置,位置控制單元將位置指令與差值乘以增益常數(shù),經(jīng)變換后,得到速度指令電壓。將與測速發(fā)電機(jī)反饋電壓差值通過速度控制器乘以增益常數(shù),得到伺服電機(jī)電樞電壓,它控制電機(jī)旋轉(zhuǎn)速度。指令位置與實(shí)際位置相等時(shí),也就是位置偏差值為0時(shí),與均為0,系統(tǒng)停止工作,執(zhí)行部件到達(dá)指令所規(guī)定位置。因此整個(gè)系統(tǒng)在偏差不為0時(shí),始終處在不斷凋整階段,因而,增益系數(shù)在整個(gè)進(jìn)給過程中,對系統(tǒng)迅速到達(dá)指定位置起著至關(guān)重要作用。本文將會針對進(jìn)給系統(tǒng)增益系數(shù)匹配對加工精度影響做進(jìn)一步進(jìn)一步分析,那么,一方面讓咱們理解一下位置誤差物理概念以及位置誤差是如何產(chǎn)生。2.1.2位置誤差深刻理解位置誤差物理概念對數(shù)控進(jìn)給系統(tǒng)性能分析至關(guān)重要,不妨假設(shè)系統(tǒng)獲得一種恒速指令信號,下面就針對恒速進(jìn)給時(shí)位置誤差進(jìn)行分析。如圖2.2(a)所示,當(dāng)進(jìn)給系統(tǒng)獲得恒速F進(jìn)給位置指令時(shí),執(zhí)行部件實(shí)際速度并不能及時(shí)達(dá)到指令速度值F,而是從零逐漸上升到F值,后來就穩(wěn)定在此速度值上運(yùn)營。在時(shí),位置指令到達(dá)指令值,指令速度下降至零,但是執(zhí)行部件實(shí)際速度只能逐漸下降到零。將指令位移量,按脈沖當(dāng)置換算成數(shù)字量,則以恒速F進(jìn)給指令位置數(shù)字量值將按如圖2.2(b)所示指令位置直線(直線OP)變化,由零時(shí)刻零位置到達(dá)時(shí)刻位置。由于實(shí)際速度是逐漸上升至F值,因此按同一脈沖當(dāng)量換算成數(shù)字量實(shí)際位置值將按另一條曲線變化,實(shí)際位置總是滯后于指令位置。時(shí)刻瞬時(shí)位置指令值與瞬時(shí)實(shí)際位置值之間差值,稱為該時(shí)刻位置偏差。它由執(zhí)行部件升速啟動(dòng)時(shí)零值逐漸增大到某一穩(wěn)態(tài)值,這一穩(wěn)態(tài)值就是所謂速度誤差或隨動(dòng)誤差,當(dāng)執(zhí)行部件減速并停止時(shí),它由穩(wěn)態(tài)值逐漸減小到零。(b)(a)結(jié)束圖2.2位置誤差運(yùn)用再乘上,并加上位置誤差補(bǔ)償,可得速度指令值,再變換為速度指令電壓??梢娫酱?,則就越大,伺服電機(jī)速度就越高。并且控制啟動(dòng)與停止時(shí)位置指令值大小,從而控制變化大小,就可以控制升降速快慢,即升降速時(shí)間長短。普通而言,按照等差數(shù)列或指數(shù)曲線規(guī)律變化,可獲得直線或指數(shù)規(guī)律升降速。2.2進(jìn)給伺服系統(tǒng)數(shù)學(xué)模型數(shù)控進(jìn)給伺服系統(tǒng),總是接受數(shù)控系統(tǒng)發(fā)出位置與速度指令。驅(qū)動(dòng)執(zhí)行部件在一定切削參數(shù)下進(jìn)行加工。從控制系統(tǒng)角度來看,位置指令是系統(tǒng)一種輸入;與切削或使用條件關(guān)于負(fù)載可以說是系統(tǒng)干擾輸入。執(zhí)行機(jī)構(gòu)位置(角位移或直線位移)是系統(tǒng)輸出。進(jìn)給系統(tǒng)特性重要是系統(tǒng)靜態(tài)特性,以及在指令與負(fù)載作用下動(dòng)態(tài)特件。然而,咱們在設(shè)計(jì)與分析進(jìn)給系統(tǒng)特性時(shí),重要分析它動(dòng)態(tài)特性。從加工精度和加工能力方面來考慮,動(dòng)態(tài)特性重要有兩個(gè)方面:與輸入指令關(guān)于特性,即執(zhí)行部件跟隨位置指令特性,這就是執(zhí)行部件定位精度或直線與輪廓進(jìn)給精度;此外,執(zhí)行部件由于切削力等因素將產(chǎn)生靜態(tài)或動(dòng)態(tài)變位,因而減少了加工精度甚至產(chǎn)生系統(tǒng)震蕩。除此以外,還規(guī)定系統(tǒng)必要是穩(wěn)定。從指令信號、給定裝置到伺服驅(qū)動(dòng)裝置,為構(gòu)成進(jìn)給系統(tǒng)重要構(gòu)成某些,稱之為伺服驅(qū)動(dòng)系統(tǒng)。另一某些是伺服驅(qū)動(dòng)裝置后來機(jī)械傳動(dòng)機(jī)構(gòu)。進(jìn)給系統(tǒng)可以概括成如圖2.3所示構(gòu)造。在設(shè)計(jì)和分析進(jìn)給系統(tǒng)時(shí),既要設(shè)計(jì)這兩個(gè)某些并分析各自特性,還規(guī)定這兩某些合理匹配,從整體上綜合系統(tǒng)特性。輸出輸出伺服驅(qū)動(dòng)系統(tǒng)機(jī)械傳動(dòng)機(jī)構(gòu)輸入檢測裝置圖2.3進(jìn)給系統(tǒng)構(gòu)造圖下面將以圖2.3中所示閉環(huán)系統(tǒng)為例,簡要論述動(dòng)態(tài)特性方面問題。2.2.1伺服驅(qū)動(dòng)系統(tǒng)數(shù)學(xué)模型圖2.1所示為采用直流伺服電機(jī)驅(qū)動(dòng)全閉環(huán)控制進(jìn)給伺服系統(tǒng)構(gòu)造圖。伺服驅(qū)動(dòng)系統(tǒng)由位置控制器與速度控制器構(gòu)成。位置指令與實(shí)際位置反饋值之差=-,經(jīng)數(shù)模變換與放大后,變?yōu)樗俣戎噶铍妷?,位置控制單元作用是一種比例放大環(huán)節(jié),它傳遞函數(shù)為常數(shù),因而有(2.1)速度指令電壓與測速發(fā)電機(jī)速度反饋信號之差值為速度誤差信號,經(jīng)速度控制單元變換放大后,獲得直流伺服電機(jī)電樞控制電壓,速度控制單元同樣是一種比例放大環(huán)節(jié),比例系數(shù)即為傳遞函數(shù),它們關(guān)系式為:(2.2)式中:——直流伺服電機(jī)角位移;——速度反饋環(huán)增益系數(shù)。此處,位置控制器與速度控制器都是采用比例控制,這是現(xiàn)今實(shí)際使用大多數(shù)進(jìn)給伺服系統(tǒng)所采用控制方略。在這兩個(gè)控制器中,可以采用PI控制器、PID控制器,甚至其她控制方案,固然其傳遞函數(shù)也要發(fā)生變化。2.2.2機(jī)械傳動(dòng)機(jī)構(gòu)數(shù)學(xué)模型以伺服電機(jī)角位移作為機(jī)械傳動(dòng)機(jī)構(gòu)輸入,以執(zhí)行部件運(yùn)動(dòng)作為輸出,所設(shè)計(jì)機(jī)械傳動(dòng)機(jī)構(gòu)是各種各樣。但是采用大慣量直流伺服電機(jī)時(shí),可以將電機(jī)通過聯(lián)軸器與滾珠絲杠直接相連,如圖2.4(a)所示。如果由于構(gòu)造因素,或者規(guī)定放大力矩時(shí),可以通過一對降速齒輪或齒鏈傳動(dòng)將電機(jī)與滾珠絲杠連接起來,如圖(b)所示。含齒輪構(gòu)造x含齒輪構(gòu)造xoFcFcrmJ2,Z2M,J,θM
θMJ1,Z1JS=2\*ROMANII=1\*ROMANI不含齒輪構(gòu)造xoFcFcrmJc,JsM,J,θM
θM圖2.4進(jìn)給機(jī)械傳動(dòng)機(jī)構(gòu)圖由于機(jī)械傳動(dòng)機(jī)構(gòu)某些不是本文討論重點(diǎn),因此筆者略去對于機(jī)械傳動(dòng)機(jī)構(gòu)中各種參數(shù)(如轉(zhuǎn)動(dòng)慣量、剛度等)等效折算。有了機(jī)械傳動(dòng)機(jī)構(gòu)等效動(dòng)力學(xué)模型,便可推導(dǎo)出系統(tǒng)動(dòng)特性方程和傳遞函數(shù)。對于圖2.4(a)所示動(dòng)力學(xué)模型,其轉(zhuǎn)矩平衡方程為:彈性變形方程為:對以上兩式進(jìn)行拉氏變換得整頓后可得如果覺得系統(tǒng)輸出,為輸入,為擾動(dòng)輸入,則=0情況下,與之間傳遞函數(shù)為:令固有頻率,阻尼比,則上式可以變成原則形式如下:由上式可以看出,機(jī)械傳動(dòng)系統(tǒng)是一種固有頻率為,阻尼比為二階系統(tǒng),其構(gòu)造框圖如圖2.5所示。圖2.5進(jìn)給機(jī)械傳動(dòng)構(gòu)造圖依照圖2.5和原則形式傳遞函數(shù)可以看出,此機(jī)械傳動(dòng)系統(tǒng)為二階振蕩環(huán)節(jié)。在推導(dǎo)機(jī)械傳動(dòng)部件傳遞函數(shù)過程中,不但要得出等效慣量和等效阻尼,并且要考慮等效剛度,這是由于慣性和剛度直接決定機(jī)械部件固有頻率,該固有頻率關(guān)系到整個(gè)伺服機(jī)構(gòu)剛性和工作穩(wěn)定性。阻尼特性則和系統(tǒng)定位精度、工作穩(wěn)定性關(guān)于。若將機(jī)械傳動(dòng)機(jī)構(gòu)簡化為如圖2.4(b)所示構(gòu)造,得到傳遞函數(shù)將會是是如何呢?筆者推導(dǎo)其傳遞函數(shù)如下:由圖2.1可知,電機(jī)軸上負(fù)載有二:其一是慣性負(fù)載(2.3)式中,,即電機(jī)軸與絲桿之間連接件與傳動(dòng)件折算轉(zhuǎn)動(dòng)慣量與絲桿折算轉(zhuǎn)動(dòng)慣量之和。其二是傳動(dòng)彈簧變形力折算到電機(jī)軸上等效轉(zhuǎn)矩。(2.4)式中,——執(zhí)行部件直線位移(輸出量);——電機(jī)對執(zhí)行部件輸入位移。系統(tǒng)動(dòng)力平衡方程為(2.5)式中,——執(zhí)行部件質(zhì)量;——導(dǎo)軌副上粘性阻尼性系數(shù);——外載荷,且。彈性變形力就是執(zhí)行部件驅(qū)動(dòng)力(2.6)對以上兩式進(jìn)行拉氏變換,并整頓后得(2.7)以為系統(tǒng)輸出,為系統(tǒng)輸入,不考慮外力時(shí),機(jī)械系統(tǒng)傳遞函數(shù)為:(2.8)可見,是一種二階系統(tǒng),固有頻率為:阻尼比為:其構(gòu)造框圖如圖2.6所示。圖2.6進(jìn)給機(jī)械傳動(dòng)構(gòu)造框圖綜上所述,無論選取圖2.4所示兩種構(gòu)造中任意一種,通過推導(dǎo)均可得一種二階系統(tǒng),雖然固有頻率和阻尼比會有一定差別,但是構(gòu)造框圖完全相識。2.2.3數(shù)控進(jìn)給伺服系統(tǒng)數(shù)學(xué)模型前面已經(jīng)對位置控制、速度控制以及機(jī)械傳動(dòng)機(jī)構(gòu)等環(huán)節(jié)數(shù)學(xué)模型進(jìn)行了分析。如果分析機(jī)械傳動(dòng)機(jī)構(gòu)時(shí),采用2.4(b)所示模型,這樣將幾某些綜合起來,就可以得到整個(gè)進(jìn)給系統(tǒng)數(shù)學(xué)模型以及傳遞函數(shù)。下面對如圖2.1所示閉環(huán)進(jìn)給系統(tǒng)進(jìn)行分析。系統(tǒng)采用直流伺服電機(jī)作為驅(qū)動(dòng)電機(jī),電機(jī)轉(zhuǎn)動(dòng)慣量為J,電磁轉(zhuǎn)矩為M,電機(jī)力矩平衡方程式應(yīng)為:(2.9)式中:——電樞阻尼轉(zhuǎn)矩系數(shù);——電機(jī)負(fù)載轉(zhuǎn)矩,且。電機(jī)電磁轉(zhuǎn)矩,故有由電壓平衡方程及可以求得:在上式子中,可以略去及兩項(xiàng),并去拉氏變換后得:上式子中不考慮電機(jī)負(fù)載轉(zhuǎn)矩,則覺得輸入,為輸出時(shí),電機(jī)傳遞函數(shù)為:(2.10)上式也可以改寫為如下形式:(2.11)式中:——電機(jī)增益系數(shù),;——電機(jī)機(jī)械時(shí)間常數(shù),;——電機(jī)電氣時(shí)間常數(shù),。綜合前面推導(dǎo)式(2.1)、式(2.2)、式(2.4)、式(2.6)、式(2.11)以及機(jī)械某些傳遞函數(shù)式(2.7),再結(jié)合到,可以繪制出整個(gè)進(jìn)給系統(tǒng)構(gòu)造框圖,如圖2.7所示圖2.7進(jìn)給伺服系統(tǒng)構(gòu)造框圖圖2.7中,是機(jī)械傳動(dòng)系統(tǒng)外載荷,與作為負(fù)載力矩與慣性負(fù)載力矩反饋?zhàn)饔迷陔姌休斎攵?。對于閉環(huán)系統(tǒng),位置控制環(huán)位置反饋信號就是執(zhí)行部件位置輸出信號;對于半閉環(huán)系統(tǒng),位置反饋信號取自電機(jī)角位移信號。以構(gòu)成負(fù)反饋回路形成速度控制環(huán).反饋信號從即取出,這就是速度負(fù)反饋。由圖2.7,可以求出系統(tǒng)對于干擾力閉環(huán)傳遞函數(shù),以及對于位置指令閉外傳遞函數(shù)。系統(tǒng)輸出是位置指令響應(yīng)和干擾負(fù)載響應(yīng)之和。在所述系統(tǒng)中,外界負(fù)載有兩某些,一某些是切削力;另一某些是摩擦力。又分為兩某些:第一某些與速度成比例,即阻尼系數(shù)為粘性摩擦阻尼力,該阻尼力在執(zhí)行部件力平衡方程式(2.5)中考慮,第二某些是導(dǎo)軌之間固體摩擦力及傳動(dòng)件彼此之間固體摩擦扭矩(它可以換算為執(zhí)行部上軸向力為),即綜上所述,如圖2.7所示閉環(huán)進(jìn)給系統(tǒng),在位置指令和干擾負(fù)載作用下,全閉環(huán)位置輸出為:在半閉環(huán)時(shí),位置輸出為:式中,上兩式系數(shù)為:2.2.4進(jìn)給伺服系統(tǒng)構(gòu)造簡化從圖2.7中還可以看出,所建立數(shù)控伺服系統(tǒng)是一種高階系統(tǒng),在將產(chǎn)品和系統(tǒng)調(diào)定參數(shù)代入后,可得到一種高階傳遞函數(shù)。對高階系統(tǒng)分析和設(shè)計(jì)是比較復(fù)雜,為便于分析,咱們需要對高階系統(tǒng)進(jìn)行解決,普通采用直接降階解決。如果忽視高階模型中對特性影響很小系數(shù),直接降階得到一種二階系統(tǒng),這樣本來高階系統(tǒng)就被簡化為一種二階系統(tǒng)。為了使得簡化過程更加嚴(yán)密,筆者引用了參照文獻(xiàn)[1]有關(guān)結(jié)論圖2.8降階先后X軸進(jìn)給系統(tǒng)BODE圖文章中,作者對X—Y雙軸數(shù)控工作臺系統(tǒng)進(jìn)行分析,對各某些進(jìn)行了建模,并依照數(shù)控工作臺系統(tǒng)數(shù)學(xué)模型,對該系統(tǒng)動(dòng)態(tài)特性和伺服精度進(jìn)行了數(shù)學(xué)分析。通過直接降階解決后,分別得到X、Y軸進(jìn)給系統(tǒng)表達(dá)式為:(2.12)(2.13)降階先后X軸方向進(jìn)給系統(tǒng)BODE圖對照如圖2.8所示。從圖2.8可以看出在所研究頻率范疇內(nèi)降階先后系統(tǒng)幅頻特性和相頻特性幾乎是相似。這表白兩者輸入輸出特性是一致,因而咱們所得到式(2.12)和式(2.13)降階數(shù)學(xué)模型是可以信賴,所選用降階辦法也是適當(dāng)。圖2.9進(jìn)給伺服系統(tǒng)簡化構(gòu)造如圖2.7所示閉環(huán)和半閉環(huán)系統(tǒng),依照上述分析,在伺服驅(qū)動(dòng)某些,當(dāng)高次項(xiàng)系數(shù)與一次項(xiàng)系數(shù)和常數(shù)項(xiàng)相比小得多時(shí),可以將高次項(xiàng)忽視,將其從高階簡化為一階慣性環(huán)節(jié)進(jìn)行分析,而在成果上主線就不會受到多大影響。同樣地,在機(jī)械傳動(dòng)某些,S2和S系數(shù)相對常數(shù)項(xiàng)而言都非常小,因而也可將其近似化簡為比例環(huán)節(jié)進(jìn)行分析。同樣對其進(jìn)行恰當(dāng)簡化,本質(zhì)上可以把它當(dāng)作一種一階慣性系統(tǒng),如圖2.9所示,系統(tǒng)可以更進(jìn)一步簡化成如圖2.10所示構(gòu)造。圖2.10進(jìn)給伺服系統(tǒng)簡化構(gòu)造2.3進(jìn)給伺服系統(tǒng)特性分析在圖2.7中所示系統(tǒng)中,可得該系統(tǒng)增益為:(2.14)依照圖2.10所示,則系統(tǒng)開環(huán)傳遞函數(shù)為:而系統(tǒng)閉環(huán)函數(shù)為:(2.15)由于,故跟隨誤差對輸入傳遞函數(shù)為:(2.16)則(2.17)如果系統(tǒng)執(zhí)行一種速度為F恒速位置指令,即(2.18)運(yùn)用終值定理有:(2.19)則(2.20)由上式可知,當(dāng)數(shù)控機(jī)床中進(jìn)給速度F為恒速運(yùn)動(dòng)時(shí),跟隨誤差。由此可以看出,當(dāng)速度F一定期,系統(tǒng)增益越大,則系統(tǒng)穩(wěn)態(tài)位置誤差越小,即系統(tǒng)隨動(dòng)誤差小,也就是說跟隨精度高。但是,過大會使得系統(tǒng)穩(wěn)定性變差,在一定系統(tǒng)中,運(yùn)動(dòng)速度越大,系統(tǒng)穩(wěn)態(tài)誤差越大。綜上所述,對系統(tǒng)敏捷度、系統(tǒng)增益和系統(tǒng)跟隨精度這三個(gè)因素,在擬定其數(shù)值時(shí),需要進(jìn)行多方面綜合考慮。2.4進(jìn)給伺服系統(tǒng)特性對加工精度影響數(shù)控經(jīng)給伺服系統(tǒng)特性直接影響工件加工精度,因而,分析進(jìn)給伺服系統(tǒng)特性與加工精度之間關(guān)系就顯得尤為重要。在數(shù)控機(jī)床上兩軸聯(lián)動(dòng)加工直線、圓弧輪廓工件,或加工工件拐角部位時(shí),數(shù)控進(jìn)給系統(tǒng)速度誤差特性和加速度誤差特性所引起加工誤差,可以作如下分析。在數(shù)控機(jī)床進(jìn)給系統(tǒng)中,絲杠和螺母將電機(jī)轉(zhuǎn)速轉(zhuǎn)換成為執(zhí)行部件位移,這相稱于一種積分環(huán)節(jié)。依照前面分析,系統(tǒng)別的某些可以簡化成為一種增益是比例環(huán)節(jié),因而,進(jìn)給系統(tǒng)可以簡化成圖2.10所示構(gòu)造。從控制系統(tǒng)分類角度來分析,這是一種I型系統(tǒng)。I型系統(tǒng)特點(diǎn)是它對于階躍位置指令輸入響應(yīng)不存在穩(wěn)態(tài)誤差;對于階躍速度指令輸入,即斜坡位置指令輸入,其響應(yīng)穩(wěn)態(tài)位置偏差為,也稱之為速度誤差,這是為了建立速度F所必須指令位置與實(shí)際位置之間誤差。由于在數(shù)控機(jī)床進(jìn)給系統(tǒng)中,輸入不是階躍位置指令,而是斜坡位置指令,即為階躍速度位置指令,依照式(2.20)可知,系統(tǒng)必然存在位置偏差。系統(tǒng)穩(wěn)態(tài)運(yùn)動(dòng)速度與階躍指令速度相似,而實(shí)際位置總是滯后于指令位置,即有穩(wěn)態(tài)位置偏差,它是維持系統(tǒng)恒速運(yùn)動(dòng)必不可少。2.4.1速度誤差對單坐標(biāo)直線加工影響如圖2.2所示,當(dāng)指令位置已達(dá)到值即P點(diǎn)時(shí),實(shí)際位置還滯后于指令位置,這時(shí)位置偏差,在數(shù)值上等于指令速度下穩(wěn)態(tài)位置偏差。系統(tǒng)此時(shí)運(yùn)營速度還是穩(wěn)態(tài)速度,即執(zhí)行部件速度還是穩(wěn)態(tài)速度。隨著執(zhí)行部件運(yùn)動(dòng),實(shí)際位置在變化,因而,位置偏差不斷減小,保持對位置控制單元一種不斷減小正誤差信號,使執(zhí)行部件減速后平穩(wěn)地進(jìn)入定位點(diǎn),直到實(shí)際位置與指令位置相等,位置偏差等于零為止。由此可知,速度誤差并不影響定位運(yùn)動(dòng)或直線加工時(shí)停止位置精確性,只是在時(shí)間上實(shí)際位置較指令位置有所滯后而已。2.4.2定性分析系統(tǒng)增益匹配對加工直線輪廓影響數(shù)控機(jī)床在加工過程中往往規(guī)定精準(zhǔn)地、實(shí)時(shí)地同步控制各種進(jìn)給伺服系統(tǒng)位置與速度,但由于進(jìn)給伺服系統(tǒng)都不可避免地存在著跟隨誤差△D,該誤差將也許對多坐標(biāo)軸運(yùn)動(dòng)合成軌跡精準(zhǔn)性產(chǎn)生影響。如圖2.11所示,假設(shè)被加工直線輪廓,其方程式為:(2.21)直線與X軸夾角為,有。如果沿直線加工速度為,則插補(bǔ)運(yùn)算時(shí),保持X、Y軸速度分別為圖2.11直線輪廓加工設(shè)X、Y軸進(jìn)給系統(tǒng)增益為、,則兩軸速度誤差分別為:由上式可得對不同和討論如下:=1\*GB2⑴當(dāng)兩軸增益匹配,即=1時(shí),則,即(2.22)刀具指令位置A點(diǎn)坐標(biāo)為(x,y),實(shí)際位置A'點(diǎn)坐標(biāo)為(,),將式(2.21)與式(2.22)相應(yīng)項(xiàng)相減有:(2.23)由上式可知,刀具實(shí)際位置仍在直線輪廓上,只是較指令位置有一定滯后。在兩軸指令速度等于輪廓加工速度分量,并且兩軸進(jìn)給系統(tǒng)增益相等條件下,直線輪廓加工時(shí),速度誤差不會引起加工誤差。=2\*GB2⑵當(dāng)兩軸增益不匹配,即時(shí),此時(shí)速度誤差,因而,當(dāng)指令位置在OA上O點(diǎn)時(shí),時(shí)間位置并不在直線OA上,而在離OA距離為另一點(diǎn)A'。下面就點(diǎn)A'在直線OA兩邊分別進(jìn)行討論:圖2.12直線輪廓加工=1\*GB3①當(dāng)點(diǎn)A'在直線OA下面時(shí),如圖2.12所示。由圖2.12,在兩個(gè)直角三角形中,依照幾何關(guān)系可得:=2\*GB3②當(dāng)A'在直線OA此外一邊時(shí),同理可得:綜上所述,誤差為:將兩軸速度誤差代入上式可得:(2.24)由式(2.24)可以看出,當(dāng)時(shí),誤差,這與前面所述兩軸增益相等狀況完全吻合。當(dāng)兩軸增益不相等,即時(shí),此時(shí)誤差為:此外,誤差不但與兩軸增益、關(guān)于,同步還與輪廓直線傾角關(guān)于,可得結(jié)論如下:=1\*romani.當(dāng)速度一定期,時(shí),傾角越大,輪廓誤差越大;時(shí),傾角越大,輪廓誤差越小。=2\*romanii.當(dāng)或時(shí),即工作臺沿X或Y作單軸坐標(biāo)運(yùn)動(dòng)時(shí),輪廓誤差;=3\*romaniii.當(dāng)時(shí),最大,且最大值為:。由此可見,當(dāng)速度和加工輪廓直線傾角都一定期,兩軸增益、就直接影響了加工精度。因而,兩軸增益、良好匹配就可以保障被加工工件精度和質(zhì)量。既然進(jìn)給系統(tǒng)增益匹配對保障輪廓加工精度如此重要,則有必要進(jìn)一步分析增益匹配對加工精度影響深度,筆者下面將定量地分析系統(tǒng)增益匹配對運(yùn)動(dòng)(加工)軌跡精度影響。2.4.3定量分析系統(tǒng)增益匹配對加工直線輪廓影響為了使得對輪廓誤差分析更加貼近實(shí)際工程分析,并以便讀者加深對輪廓誤差理解,筆者將式(2.24)變換為:(2.25)式中,平均系統(tǒng)增益為:;兩軸增益差為:;為系統(tǒng)增益失配量。在其他條件不變狀況下:
①輪廓誤差與兩軸增益差成正比,與平均系統(tǒng)增益平方成反比與進(jìn)給速度成F正比。
②當(dāng)加工45°直線時(shí),輪廓誤差最大,。
③當(dāng)加工0°或90°直線時(shí),這就相稱于單軸加工,輪廓誤差與增益無關(guān)。
為了更加進(jìn)一步分析該問題,筆者引入下面實(shí)際加工問題進(jìn)行定量分析分析系統(tǒng)增益匹配對運(yùn)動(dòng)(加工)軌跡精度影響。若在X-Y平面上銑削工件一種平面,該面與X軸成45°角,即,進(jìn)給速度為:F=300mm/min,為10±2%(1/s),可以計(jì)算出最大輪廓誤差。
依照公式(2.25)計(jì)算出最大輪廓誤差為:針對、不同狀況進(jìn)行分析如下:由上述理論分析有:于是,式中,為X軸方向?qū)嶋H穩(wěn)態(tài)速度,為Y軸方向?qū)嶋H穩(wěn)態(tài)速度。①當(dāng)兩軸增益、互相匹配,即==時(shí),則==10,則兩軸增益差=0,于是有并且,于是,可以得到兩軸位移變化圖如圖2.13所示。YY軸X軸圖2.13X、Y軸位移變化圖此刻,圖2.13所相應(yīng)直線輪廓加工直線如圖2.14所示。圖2.14直線輪廓加工由圖2.13可以看出,X、Y軸位移變化圖中兩軸位移直線斜率相等,這與計(jì)算出兩軸實(shí)際穩(wěn)定速度相符。由圖2.14可以看出,當(dāng)兩軸增益、匹配時(shí),△KS=0,ε=0,這闡明當(dāng)兩軸系統(tǒng)增益相等時(shí),跟隨誤差、對輪廓精度無影響。刀具實(shí)際位置仍在直線輪廓上,只是較指令位置有一定滯后。在兩軸指令速度等于輪廓加工速度分量,且兩軸進(jìn)給系統(tǒng)增益相等條件下,直線輪廓加工時(shí),速度誤差不會引起加工誤差。②當(dāng)兩軸進(jìn)給系統(tǒng)增益匹配,即時(shí),可以分相對于偏大和相對于偏小兩種狀況進(jìn)行分析,不妨假設(shè)、均為常數(shù)。當(dāng)增益相對于增益偏大時(shí),依照題意,不妨設(shè),,則兩軸增益差為:于是有并且,于是,可以得到兩軸位移變化圖如圖2.15所示。XX軸Y軸圖2.15X、Y軸位移變化圖此刻,圖2.15所相應(yīng)直線輪廓加工直線如圖2.16所示。圖2.16直線輪廓加工由圖2.15可以看出,X、Y軸位移變化圖中X軸位移直線斜率比Y軸位移直線斜率大,這與計(jì)算出兩軸實(shí)際穩(wěn)定速度大小相符。由圖2.16可以看出,當(dāng)增益相對于增益偏大時(shí),若增大,實(shí)際運(yùn)動(dòng)軌跡就越偏離理論軌跡,將會產(chǎn)生輪廓誤差,當(dāng)時(shí),則,實(shí)際運(yùn)動(dòng)軌跡就越接近理論軌跡。若不考慮兩軸加速、減速階段,實(shí)際軌跡直線平行于理論軌跡直線,兩直線距離為輪廓誤差。③當(dāng)增益相對于增益偏小時(shí),且、均為常數(shù)時(shí),依照題意,不妨設(shè),,則兩軸增益之差為:于是有并且,于是,可以得到兩軸位移變化圖如圖2.17所示。XX軸Y軸圖2.17X、Y軸位移變化圖此刻,圖2.17所相應(yīng)直線輪廓加工直線如圖2.18所示。圖2.18直線輪廓加工由圖2.17可以看出,X、Y軸位移變化圖中X軸位移直線斜率比Y軸位移直線斜率小,這與計(jì)算出兩軸實(shí)際穩(wěn)定速度大小相符。由圖2.18可以看出,當(dāng)增益相對于增益偏小時(shí),若增大,實(shí)際運(yùn)動(dòng)軌跡就越偏離理論軌跡,將會產(chǎn)生輪廓誤差,當(dāng)時(shí),則,實(shí)際運(yùn)動(dòng)軌跡就越接近理論軌跡。若不考慮兩軸加速、減速階段,實(shí)際軌跡直線平行于理論軌跡直線,兩直線距離為輪廓誤差。綜上所述,通過對工作臺雙軸伺服系統(tǒng)在直線插補(bǔ)運(yùn)動(dòng)時(shí)輪廓誤差分析,可知雙軸聯(lián)動(dòng)作直線進(jìn)給時(shí),輪廓誤差產(chǎn)生源于雙軸系統(tǒng)開環(huán)增益不匹配性,單軸坐標(biāo)直線進(jìn)給時(shí),沒有位置誤差,但運(yùn)動(dòng)存在滯后現(xiàn)象。在閉環(huán)控制系統(tǒng)中,零件輪廓形狀精度不但受機(jī)床定位精度、微量位移精度影響,并且更為重要是受機(jī)床進(jìn)給伺服系統(tǒng)輪廓跟隨精度所影響。在輪廓加工過程中,系統(tǒng)穩(wěn)態(tài)特性會對輪廓誤差產(chǎn)生比較大影響。在直線加工時(shí),若=,直線輪廓誤差為零,若增大,實(shí)際運(yùn)動(dòng)軌跡偏離理論軌跡,將會產(chǎn)生輪廓誤差。因而,在數(shù)控機(jī)床進(jìn)給伺服系統(tǒng)中,各聯(lián)動(dòng)坐標(biāo)軸系統(tǒng)增益普通均取相似數(shù)值,只有這樣才干保證零件輪廓加工精度。通過上述理論分析,為了提高理論分析成果實(shí)用性,并充分運(yùn)用于實(shí)際生產(chǎn)過程之中,筆者下面將在WindowsXP系統(tǒng)下基于VC開發(fā)環(huán)境設(shè)計(jì)一套測試數(shù)控機(jī)床增益匹配軟件。
3軟件設(shè)計(jì)3.1軟件功能簡介數(shù)控機(jī)床參數(shù)匹配測試平臺軟件應(yīng)當(dāng)具備重要功能如下:采集8253芯片數(shù)據(jù)并寫入文獻(xiàn);讀取文獻(xiàn)內(nèi)容并繪制數(shù)據(jù)坐標(biāo)點(diǎn);最小二乘法擬合直線;設(shè)定并繪制理論直線;數(shù)據(jù)瀏覽、誤差顯示;成果分析;軟件使用協(xié)助。3.2操作系統(tǒng)選取方案1:DOS操作系統(tǒng)特點(diǎn):單顧客單任務(wù)操作系統(tǒng)方案2:WINDOWS操作系統(tǒng)特點(diǎn):單顧客多任務(wù)操作系統(tǒng)和諧圖形顧客界面、易學(xué)易用,并能支持多任務(wù)。方案3:網(wǎng)絡(luò)操作系統(tǒng)特點(diǎn):多顧客多任務(wù)操作系統(tǒng)UNIX、NETWARE、WINDOWSNTLINUX等。結(jié)論:雖然網(wǎng)絡(luò)操作系統(tǒng)功能較為強(qiáng)大,但WINDOWS深為廣大顧客愛慕,由于它操作比較簡樸,并且考慮與語言程序匹配兼容性,咱們選取使用WINDOWS操作系統(tǒng)。3.3編程語言方案選取方案1:VisualBasicVB淺顯易懂,很容易上手,具備如下某些特點(diǎn):
①面向?qū)ο?/p>
VB采用了面向?qū)ο蟪绦蛟O(shè)計(jì)思想。它基本思路是把復(fù)雜程序設(shè)計(jì)問題分解為一種個(gè)可以完畢獨(dú)立功能相對簡樸對象集合,所謂“對象”就是一種可操作實(shí)體,如窗體、窗體中命令按鈕、標(biāo)簽、文本框等。②事件驅(qū)動(dòng)
在Windows環(huán)境下,程序是以事件驅(qū)動(dòng)方式運(yùn)營,每個(gè)對象都能響應(yīng)各種不同事件,每個(gè)事件都能驅(qū)動(dòng)一段代碼——事件過程,該代碼決定了對象功能,普通稱這種機(jī)制為事件驅(qū)動(dòng)。③軟件集成式開發(fā)
VB為編程提供了一種集成開發(fā)環(huán)境。在這個(gè)環(huán)境中,編程者可設(shè)計(jì)界面、編寫代碼、調(diào)試程序,直至把應(yīng)用程序編譯成可在Windows中運(yùn)營可執(zhí)行文獻(xiàn),并為它生成安裝程序。
④構(gòu)造化程序設(shè)計(jì)語言
VB具備豐富數(shù)據(jù)類型,是一種符合構(gòu)造化程序設(shè)計(jì)思想語言,并且簡樸易學(xué)。此外作為一種程序設(shè)計(jì)語言,VB尚有許多獨(dú)到之處。
方案2:Delphi語言編譯速度快,比C++、C#快多了。運(yùn)營速度快,VC體系比較好,使用以便,適合做數(shù)據(jù)庫,適合做共享軟件,組件資源豐富,難度不大于C++。使用Pascal語言,語言流行限度不如C/C++,不是完全面向?qū)ο螅褂貌皇呛莒`活。方案3:VisualC++Visual
Basic之因此受到廣大編程興趣者及專業(yè)編程人員青睞,是由于VisualC++具備如下重要特點(diǎn):①程序構(gòu)造簡樸、書寫格式自由。②語句簡潔、語法構(gòu)造清晰、緊湊,使用以便、靈活。③數(shù)據(jù)類型豐富、齊全。④運(yùn)算符豐富、齊全,運(yùn)算能力強(qiáng)。⑤語法限制不太嚴(yán)格,程序自由度大。⑥具備直接硬件解決能力⑦C++編譯系統(tǒng)生成目的代碼質(zhì)量高,程序執(zhí)行效率高。⑧程序可移植性強(qiáng)。C++包括了整個(gè)C,因而也繼承了C所有特性和長處,同步添加了對OOP完全支持。綜上所述,本設(shè)計(jì)涉及從PC機(jī)ISA接口讀取數(shù)據(jù),綜合各方面考慮,最后選取VisualC++作為編程語言。
3.4VC開發(fā)平臺簡介VC++是VisualC++簡稱,它涉及編輯、編譯、連接、運(yùn)營幾種環(huán)節(jié)。VisualC++6.0是當(dāng)今世界是上最流行語言之一,它是在20世紀(jì)80年代初由貝爾實(shí)驗(yàn)室開發(fā)。當(dāng)時(shí)C語言已經(jīng)非常流行,隨著問題復(fù)雜度提高和面向?qū)ο筠k法提出,C語言越來越顯得力不從心,C++是由C語言擴(kuò)張而成,它繼承了C語言長處,又?jǐn)U張了C語言功能。它非常合用于開發(fā)中檔和大型計(jì)算機(jī)應(yīng)用項(xiàng)目。軟件可重用性、可擴(kuò)充性以及可靠性均顯示出了它優(yōu)越性。VisualC++編程界面如圖3.1所示。圖3.1工程界面在圖3.1中,工具欄中慣用按鈕重要功能簡介如下:編譯按鈕,當(dāng)程序編輯好后,點(diǎn)擊此按鈕看程序與否出錯(cuò),以便修改。組建按鈕,當(dāng)所有文獻(xiàn)編輯好后,點(diǎn)擊此按鈕看程序與否出錯(cuò),以便修改。運(yùn)營按鈕,當(dāng)程序編譯無誤后點(diǎn)擊這個(gè)按鈕會自動(dòng)彈出運(yùn)營界面,這樣你就可以檢查你程序和你思想與否一致。單步運(yùn)營按鈕,便于檢查程序執(zhí)行狀況,看與否按自己思路運(yùn)營,可以單步查看運(yùn)營成果;插入或刪除中斷點(diǎn)按鈕;停止組建按鈕;協(xié)助按鈕;保存按鈕,將編輯當(dāng)前程序存盤;所有保存按鈕,將所有文獻(xiàn)存盤。3.5軟件功能實(shí)現(xiàn)數(shù)控機(jī)床參數(shù)匹配測試平臺框架構(gòu)造圖如圖3.2所示:最小二乘法擬合最小二乘法擬合寫入文獻(xiàn)讀取數(shù)據(jù)點(diǎn)繪制理論直線誤差分析成果分析采集外部數(shù)據(jù)數(shù)據(jù)瀏覽3.2數(shù)控機(jī)床參數(shù)匹配測試平臺框架構(gòu)造圖每個(gè)環(huán)節(jié)之間存在著一定得邏輯關(guān)系,詳細(xì)流程闡述如下:①平臺通過計(jì)算機(jī)ISA接口將8253計(jì)數(shù)芯片上數(shù)據(jù)采集進(jìn)入平臺之中,然后通過一定數(shù)學(xué)解決將其轉(zhuǎn)換為坐標(biāo)點(diǎn)數(shù)據(jù),并寫入PC機(jī)硬盤中備用;②將PC機(jī)中數(shù)據(jù)文獻(xiàn)讀出,并將其繪制到坐標(biāo)系中;③將PC機(jī)中數(shù)據(jù)文獻(xiàn)讀出,應(yīng)用最小二乘法對其進(jìn)行擬合,將擬合直線與坐標(biāo)點(diǎn)繪制到相似坐標(biāo)系中,并顯示擬合直線方程;④對最小二乘法數(shù)據(jù)擬合以及系統(tǒng)位置誤差進(jìn)行分析;⑤設(shè)立理論直線方程,將其與擬合直線和坐標(biāo)點(diǎn)繪制到同一坐標(biāo)系;⑥通過對所繪制圖形分析,給出有關(guān)結(jié)論和解決問題建議。下面將針對每個(gè)功能模塊某些實(shí)現(xiàn)狀況進(jìn)行闡述,功能模塊之間都是基于VC++消息機(jī)制,每個(gè)功能模塊中將簡介編程思想、簡樸編程流程圖、重要子程序以及其她核心編程信息。3.5.1采集數(shù)據(jù)信息平臺通過計(jì)算機(jī)ISA總線接口將8253計(jì)數(shù)芯片上數(shù)據(jù)采集進(jìn)入平臺之中,然后通過一定數(shù)學(xué)解決將其轉(zhuǎn)換為坐標(biāo)點(diǎn)數(shù)據(jù),并寫入PC機(jī)硬盤中備用。那么,有必要對8253芯片和ISA總線做簡樸簡介。1、8253芯片簡介:8253芯片是INTEL公司生產(chǎn)微型機(jī)通用外因芯片之一。采用24引腳雙列直插式封裝,其重要特性有:●采用單一+5V電源供電;●計(jì)數(shù)頻率為0~5MHz;●兩種計(jì)數(shù)方式:即二進(jìn)制或BCD方式計(jì)數(shù);●片內(nèi)有3個(gè)獨(dú)立16位減法計(jì)數(shù)器(或計(jì)數(shù)通道),每個(gè)計(jì)數(shù)器又可以分為2個(gè)8位計(jì)數(shù)器;●六種工作方式,既可對系統(tǒng)時(shí)鐘脈沖計(jì)數(shù)實(shí)現(xiàn)定期.又可對外部事件進(jìn)行計(jì)數(shù),可由軟件或硬件控制開始計(jì)數(shù)或停止計(jì)數(shù)。由于篇幅有限,下面就只簡介一下8253芯片6種工作方式,依照本設(shè)計(jì)需要選取一種適合工作方式。工作方式選?、俜绞?—計(jì)數(shù)結(jié)束時(shí)產(chǎn)生中斷方式當(dāng)寫入方式0控制字后,計(jì)數(shù)器輸出及時(shí)變?yōu)榈碗娖?,?dāng)賦初值后,計(jì)數(shù)器立即開始工作,且輸出始終保持低電平,計(jì)數(shù)結(jié)束時(shí)變?yōu)楦唠娖?,并始終保持到再次裝入初值或復(fù)位為止。若初值為雙字節(jié),則只有當(dāng)輸入高字節(jié)后計(jì)數(shù)器才開始工作。如果對正在進(jìn)行計(jì)數(shù)計(jì)數(shù)器裝入一種新初值,則計(jì)數(shù)器立即重新開始計(jì)數(shù)。GATE門控端可禁止或容許計(jì)數(shù),當(dāng)GATE=0時(shí),禁止計(jì)數(shù),GATE=1時(shí),容許計(jì)數(shù)。②方式1—可編程單次脈沖方式當(dāng)裝入計(jì)數(shù)初值后,要等GATE信號由低變高,并保持高時(shí)開始計(jì)數(shù),此時(shí)OUT信號為低電平,計(jì)數(shù)結(jié)束時(shí),輸出變高電平,輸出單次脈沖,單次脈沖寬度由計(jì)數(shù)初值N決定。當(dāng)再有GATE上跳沿信號時(shí),將再次以N為初值開始計(jì)數(shù),若在GATE信號之前賦入新初值,則等到再有觸發(fā)信號時(shí)將以此新值開始計(jì)數(shù)。③方式2—頻率發(fā)生器方式當(dāng)裝入計(jì)數(shù)初值后,及時(shí)開始計(jì)數(shù),輸出端不斷輸出負(fù)脈沖,其寬度等于一種時(shí)鐘周期,兩脈沖之間時(shí)鐘個(gè)數(shù)等于裝入初始值。該方式需在GATE信號控制下工作,當(dāng)GATE為0時(shí),及時(shí)逼迫輸出為高電平,當(dāng)GATE為1時(shí)啟動(dòng)一次新計(jì)數(shù)周期。④方式3—方波頻率發(fā)生器方式該發(fā)生GATE信號作用與方式2相似,在GATE信號上升沿啟動(dòng)計(jì)數(shù),前半計(jì)數(shù)輸出始終保持高電平,后一半計(jì)數(shù)輸出又變?yōu)榈碗娖?。若裝入初值N為奇數(shù),則在(N+1)/2個(gè)計(jì)數(shù)期間輸出保持低電平。⑤方式4—軟件觸發(fā)選通方式該方式被設(shè)立后輸出即變?yōu)楦唠娖?,?dāng)GATE=1時(shí),一旦計(jì)數(shù)器裝入初值便立即開始計(jì)數(shù),計(jì)數(shù)結(jié)束后立即輸出一種寬度等于一種時(shí)鐘周期負(fù)脈沖。GATE=0時(shí),禁止計(jì)數(shù)。⑥方式5—硬件觸發(fā)選通方式該方式由GATE信號上升沿啟動(dòng)計(jì)數(shù)器,輸出始終保持高電平,當(dāng)計(jì)數(shù)結(jié)束時(shí),輸出一種寬度等于時(shí)鐘周期負(fù)脈沖。此方式下,GATE電平高低對計(jì)數(shù)器工作無作用。但計(jì)數(shù)操作可用GATE信號上升沿重新觸發(fā),當(dāng)正在計(jì)數(shù)期間計(jì)數(shù)器一旦重新觸發(fā),便又從本來初值重新開始計(jì)數(shù),計(jì)數(shù)期間,輸出始終保持高電平。綜上所述,結(jié)合本次設(shè)計(jì)需要,選取8253芯片工作方式2比較適當(dāng)。8253-5編程寫入方式控制字8253工作方式控制字格式如圖3.3所示。使用任意計(jì)數(shù)器通道,一方面要向該通道寫入方式控制字,以擬定該通道工作方式。注意,雖然三個(gè)通道用控制字端口地址是相似,但三個(gè)控制字寫入后卻存入相應(yīng)通道控制寄存器中。寫入計(jì)數(shù)初始值某個(gè)計(jì)數(shù)器在寫入了方式控制字后,任何時(shí)候都可以按RL1RL0規(guī)定寫入計(jì)數(shù)初始值,對某一計(jì)數(shù)器寫入順序是必要嚴(yán)格遵守,但是在符合順序狀況下,容許在中間穿插著對別計(jì)數(shù)器讀寫操作。當(dāng)RL1RL0=01時(shí),只寫入低8位,則高位自動(dòng)置0;當(dāng)RL1RL0=10時(shí),只寫入高8位,則低位自動(dòng)置0;當(dāng)RL1RL0=11時(shí),共寫入16位,先寫低8位,后寫高8位。D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD方式控制字方式控制字SC1、SC1、SC0計(jì)數(shù)器選取RL1、RL0CPU讀/寫操作SC1SC0計(jì)數(shù)器00計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211無效RL1RL0操作方式00計(jì)數(shù)值鎖存(供CPU讀出)01讀/寫計(jì)數(shù)器低8位10讀/寫計(jì)數(shù)器高8位1M2M2M1M0工作方式選取先讀/寫低8位,后讀/寫高8位M2M1M0工作方式000方式0001方式1×10方式2×11方式3100方式4101方式5BCDBCD計(jì)數(shù)方式選取0二進(jìn)制計(jì)數(shù)1十進(jìn)制(BCD碼)計(jì)數(shù)圖3.38253工作方式控制字讀計(jì)數(shù)值在計(jì)數(shù)進(jìn)行過程中,讀出當(dāng)前計(jì)數(shù)值有時(shí)是有用。在動(dòng)態(tài)讀計(jì)數(shù)值時(shí)可以有兩種辦法。本次采用鎖存計(jì)數(shù)器當(dāng)前計(jì)數(shù)值。采用一種方式控制字,其中SC1SC0=01指定要讀計(jì)數(shù)器通道號,RL1RL0=00,使這個(gè)方式控制字成為一種軟件命令,方式字別的各位內(nèi)容可以不考慮。這個(gè)命令一旦寫入后,就及時(shí)把當(dāng)前計(jì)數(shù)值鎖存到鎖存寄存器,而計(jì)數(shù)器可以繼續(xù)工作。此后,CPU通過先用方式控制字所規(guī)定讀取方式,然后再讀計(jì)數(shù)值,但由于這是從鎖存寄存器中讀取,因此是一種穩(wěn)定值。這種辦法唯一限定也是必要讀完規(guī)定字節(jié)數(shù)。2、ISA總線簡介:ISA插槽是基于ISA總線(IndustrialStandardArchitecture,工業(yè)原則構(gòu)造總線)擴(kuò)展插槽,其顏色普通為黑色,比PCI接口插槽要長些,位于主板最下端。其工作頻率為8MHz左右,為16位插槽,最大傳播率16MB/sec,可插接顯卡,聲卡,網(wǎng)卡已及所謂多功能接口卡等擴(kuò)展插卡。ISA總線擴(kuò)展插槽由兩某些構(gòu)成,一某些有62引腳,重要由地址線,數(shù)據(jù)線,控制線,狀態(tài)線,輔助線,電源線等62根引腳構(gòu)成,其信號分布及名稱與PC/XT總線擴(kuò)展槽基本相似,僅有很小差別。ISA總線端口編址方式有兩種方式:統(tǒng)一方式:存儲器中一某些地址分派給I/O;獨(dú)立方式:存儲器和I/O分別編址,有獨(dú)立指令,PC采用此方式。計(jì)算機(jī)端口地址如下表3.1所示。表3.1計(jì)算機(jī)端口地址I/O接口名稱端口地址硬驅(qū)控制卡1F0H~FFH游戲控制卡200H~20FH并行口控制卡1370H~37FH并行口控制卡2270H~27FH串行口控制卡13F8H~3FFH串行口控制卡22F0H~2FFH原型插件板(顧客可用)300H~31FH同步通訊卡13A0H~3AFH同步通訊卡2380H~38FH單顯DMA3B0H~3BFH彩顯CGA3D0H~3DFH彩顯EGA/VGA3C0H~3CFH軟驅(qū)控制卡3F0H~3F7H從表3.1可以看出,顧客可用地址區(qū)域?yàn)椋?00H~31FH,即表3.1中所加黑某些。因而,運(yùn)用VC++編程時(shí),將會運(yùn)用300H~31FH段地址。綜合分析,由于雙軸系統(tǒng)中,每個(gè)進(jìn)給軸會用到2個(gè)計(jì)數(shù)器,即正反方向分別各一種計(jì)數(shù)器。因而,兩個(gè)軸一共需要4個(gè)計(jì)數(shù)器才夠用,由于每片8253芯片只有3個(gè)計(jì)數(shù)器,因此需要選用2片8253芯片。地址:300H~303H分別表達(dá)第一片8253芯片計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2和控制字;地址:304H~307H分別表達(dá)第二片8253芯片計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2和控制字。為以便標(biāo)記,筆者將第二片8253計(jì)數(shù)器依次命名為:計(jì)數(shù)器3、計(jì)數(shù)器4、計(jì)數(shù)器5。3、采集數(shù)據(jù)程序?qū)崿F(xiàn):采集數(shù)據(jù)程序流程圖如下圖3.4所示:打開文獻(xiàn)打開文獻(xiàn)初始化計(jì)數(shù)器開始讀取外部數(shù)據(jù)寫入文獻(xiàn)解決數(shù)據(jù)讀取完畢關(guān)閉文獻(xiàn)是否結(jié)束3.4采集數(shù)據(jù)程序流程圖下面分別簡介每個(gè)小模塊實(shí)現(xiàn)過程。(1)初始化計(jì)數(shù)器初始化編程順序是:對某一指定計(jì)數(shù)器,必要先寫控制字,再寫計(jì)數(shù)器初值,計(jì)數(shù)初值寫入格式由控制字D5和D4兩位編碼決定。由于單個(gè)計(jì)數(shù)器是完全獨(dú)立,因此寫入控制字順序無任何先寫或后寫限制。由于本次設(shè)計(jì)中采用是讀取之前先送計(jì)數(shù)鎖存,因而,D5D4只能取00和11,分別表達(dá)鎖存和先讀低8位后讀高8位。選取工作方式2,則D3D2D1應(yīng)當(dāng)取010。采用二進(jìn)制計(jì)數(shù),因此D0=0。第一片芯片控制字地址為0x303,第二片控制字地址為0x307。依照上述分析,對于計(jì)數(shù)器0而言,其初始化核心代碼如下://第一片8253芯片計(jì)數(shù)器0,代表X軸正方向;_outp(0x303,0x34);//控制字 _outp(0x300,255);//初始化計(jì)數(shù)器0為0xFFFF;先低8位,后高8位; _outp(0x300,255);以上代碼中,第一行代碼中0x303為第一片芯片控制字地址,0x34是依照D7D6D5D4D3D2D1=00110100B=34H計(jì)算而來。第2、3行代碼中0x300是計(jì)算器0地址,255是需要初始化進(jìn)入計(jì)數(shù)器數(shù)值。代碼中_outp()函數(shù)是輸出函數(shù)。在VC開發(fā)系統(tǒng)中,系統(tǒng)提供了conio.h頭文獻(xiàn),conio.h不是C原則庫中頭文獻(xiàn)。conio是ConsoleInput/output(控制臺輸入輸出)簡寫,其中定義了通過控制臺進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出函數(shù),本設(shè)計(jì)將重要用到conio.h頭文獻(xiàn)中_outp()和_inp()函數(shù)。_outp()函數(shù)原型為:int_outp(unsignedshortport,intdatabyte);port參數(shù)為指定輸出端標(biāo)語,databyte參數(shù)為輸出值。調(diào)用后,它將databyte參數(shù)指定值輸出到port參數(shù)指定端口并返回該值。databyte可以是0—255范疇內(nèi)任何整數(shù)值。_inp()函數(shù)原型為:int_inp(unsignedshortport);port參數(shù)為指定輸入端標(biāo)語。調(diào)用后,它從port參數(shù)指定端口讀入并返回一種字節(jié),輸入值可以是在0—255范疇內(nèi)任意無符號整數(shù)值。其她計(jì)數(shù)器初始化某些程序?qū)崿F(xiàn)與初始化計(jì)數(shù)器0完全類似,筆者在此就不在贅述。讀取數(shù)據(jù)及解決初始化編程順序是:通過控制字先對計(jì)數(shù)值進(jìn)行所存,供CPU讀出,然后設(shè)立為先讀低8位再讀高8位;然后讀取低8位并儲存低8位,再讀取高8位并儲存高8位。對計(jì)數(shù)器0讀取核心代碼如下: _outp(0x303,0x04); //計(jì)數(shù)值鎖存(供CPU讀出) _outp(0x303,0x34); //先讀低8位,后讀高8位 _outp(0x300,0x34); //讀取數(shù)據(jù) data0=_inp(0x300);//儲存低8位 data1=_inp(0x300);//儲存高8位在以上代碼中,第1行代碼中0x303為第一片芯片控制字地址,0x04是依照D7D6D5D4D3D2D1=00000100B=04H計(jì)算而來,其作用是將計(jì)數(shù)值鎖存。第2行代碼中0x34是通過D7D6D5D4D3D2D1=00110100B=34H計(jì)算而來,其作用是將讀取方式設(shè)立為讀/寫低8位,后讀/寫高8位。第3行代碼是將地址為0x300,即計(jì)數(shù)器0,計(jì)數(shù)值分別讀取2次。第4、5行代碼完畢將讀取數(shù)據(jù)分別存儲在data0、data1中,則data0存儲低8位,data1存儲高8位。實(shí)際計(jì)數(shù)值大小為:讀取其她計(jì)數(shù)器中數(shù)據(jù)與讀取計(jì)數(shù)器0中數(shù)據(jù)完全類似,筆者在此不再贅述。由于每次采集到數(shù)據(jù)不是符合規(guī)定坐標(biāo)值,必要通過一定數(shù)學(xué)轉(zhuǎn)換才干得到合乎規(guī)定坐標(biāo)值,詳細(xì)操作環(huán)節(jié)是:將每次從計(jì)數(shù)器0獲得值減去從計(jì)數(shù)器1獲得值作為當(dāng)前X軸坐標(biāo)值,然后將次從計(jì)數(shù)器2獲得值減去從計(jì)數(shù)器3獲得值作為當(dāng)前Y軸坐標(biāo)值,如此循環(huán),下一次得到X軸坐標(biāo)值和Y軸坐標(biāo)值都分別需要加上前一種狀態(tài)坐標(biāo)值。文獻(xiàn)操作筆者最初想將讀取進(jìn)來數(shù)據(jù)儲存到一種數(shù)組中,但是由于讀取數(shù)據(jù)量大,這樣不但會揮霍CPU,并且還也許導(dǎo)致系統(tǒng)崩潰。為此,筆者多方考慮,打算采用文獻(xiàn)操作來解決這一種文獻(xiàn),即將讀取數(shù)據(jù)寫入一種二進(jìn)制文獻(xiàn),然后在需要時(shí)候?qū)⑵湔{(diào)用出來進(jìn)行有關(guān)解決和分析。該某些核心代碼如下:FILE*datafile;datafile=fopen("C:\\Data.dat","wb");while(!feof(datafile)){ fwrite(&data.x,sizeof(long),1,datafile); fwrite(&data.y,sizeof(long),1,datafile);}fclose(datafile);在以上代碼中,先是運(yùn)用第一行代碼定義了一種FILE指針文獻(xiàn),然后第二行代碼將C:\創(chuàng)立一種名為Data.dat文獻(xiàn),并以二進(jìn)制寫方式打開;背面代碼則是將采集X坐標(biāo)data.x和Y坐標(biāo)data.y分別依次存入文獻(xiàn)中。最后一行代碼作用是將該文獻(xiàn)關(guān)閉,這是每次打開一種文獻(xiàn)后必要環(huán)節(jié)。本軟件開發(fā)過程中,諸多地方都會運(yùn)用到文獻(xiàn)操作,為此,筆者有必要對其進(jìn)行簡樸簡介。①打開文獻(xiàn)在前面第二行代碼中,fopen函數(shù)用來打開一種文獻(xiàn),其調(diào)用普通形式為:文獻(xiàn)指針名=fopen(文獻(xiàn)名,使用文獻(xiàn)方式)其中,第一種形式參數(shù)表達(dá)文獻(xiàn)名,可以包括途徑和文獻(xiàn)名兩某些,“文獻(xiàn)名”是字符串常量或字符串?dāng)?shù)組。第二個(gè)形式參數(shù)表達(dá)打開文獻(xiàn)類型,本設(shè)計(jì)用到兩種打開文獻(xiàn)類型如下:"rb"只讀打開一種二進(jìn)制文獻(xiàn),只容許讀數(shù)據(jù)
"wb"
只寫打開或建立一種二進(jìn)制文獻(xiàn),只容許寫數(shù)據(jù)②讀寫文獻(xiàn)在寫文獻(xiàn)某些代碼中,寫數(shù)據(jù)塊函數(shù)調(diào)用普通形式為:fwrite(buffer,size,count,fp);后來將用到讀數(shù)據(jù)塊函數(shù),其調(diào)用普通形式為:fread(buffer,size,count,fp);其中,buffer是一種指針,在fread函數(shù)中,它表達(dá)存儲輸入數(shù)據(jù)首地址,在fwrite函數(shù)中,它表達(dá)存儲輸出數(shù)據(jù)首地址。size表達(dá)數(shù)據(jù)塊字節(jié)數(shù)。count表達(dá)要讀寫數(shù)據(jù)塊塊數(shù)。fp表達(dá)文獻(xiàn)指針。例如:fread(x,4,5,fp);其意義是從fp所指文獻(xiàn)中,每次讀4個(gè)字節(jié)(一種實(shí)數(shù))送入實(shí)數(shù)組x中,持續(xù)讀5次,即讀5個(gè)實(shí)數(shù)到x中。fwrite(y,4,5,fp);其意義是從實(shí)數(shù)組y中,每次寫4個(gè)字節(jié)(一種實(shí)數(shù))送入fp所指文獻(xiàn)中,持續(xù)寫5次,即寫5個(gè)實(shí)數(shù)到fp所指文獻(xiàn)中。③關(guān)閉文獻(xiàn)fclose()函數(shù)用來關(guān)閉一種由fopen()函數(shù)打開文獻(xiàn),其調(diào)用格式為:fclose(FILE*stream);該函數(shù)返回一種整型數(shù)。當(dāng)文獻(xiàn)關(guān)閉成功時(shí),返回0,否則返回一種非零值??梢砸勒蘸瘮?shù)返回值判斷文獻(xiàn)與否關(guān)閉成功。3.5.2讀取數(shù)據(jù)信息并繪圖讀取數(shù)據(jù)信息繪圖程序流程圖如下圖3.5所示:下面簡介一下本軟件繪圖實(shí)現(xiàn)辦法,這里選用MFC提供CClientDC類來實(shí)現(xiàn)這一功能。這個(gè)類派生于CDC類,并且在構(gòu)造時(shí)調(diào)用GetDC函數(shù),在析構(gòu)時(shí)調(diào)用ReleaseDC函數(shù)。也就是說,當(dāng)一種CClientDC對象在構(gòu)造時(shí),它內(nèi)部會調(diào)用GetDC函數(shù),獲得一種對象;在這個(gè)CClientDC對象析構(gòu)時(shí),會自動(dòng)釋放這個(gè)設(shè)備描述表資源。這樣話,程序中如果使用了CClientDC類型定義DC對象,就不需要顯示地調(diào)用GetDC函數(shù)和ReleaseDC函數(shù)了。只需要定義一種CClientDC對象,然后就可以運(yùn)用這個(gè)對象提供函數(shù)進(jìn)行繪圖操作了。當(dāng)該對象生命周期結(jié)束時(shí),會自動(dòng)釋放其所占設(shè)備資源。這就是CClientDC對象好處,因而,本軟件開發(fā)過程中關(guān)于繪圖指令都是基于CClientDC類進(jìn)行。打開文獻(xiàn)打開文獻(xiàn)開始讀取文獻(xiàn)數(shù)據(jù)繪制數(shù)據(jù)點(diǎn)讀取完畢關(guān)閉文獻(xiàn)是否結(jié)束圖3.5繪制數(shù)據(jù)程序流程圖為了簡樸簡介CClientDC類功能,下面給出軟件中坐標(biāo)系繪制程序?qū)崿F(xiàn)如下:CClientDCdc(this);//定義一種CClientDC對象//繪制縱坐標(biāo)dc.MoveTo(20,0);//移動(dòng)到繪圖起點(diǎn)dc.LineTo(20,750);//從起點(diǎn)到此點(diǎn)畫用線段連接起來//繪制坐標(biāo)原點(diǎn)0dc.ExtTextOut(10,700,ETO_OPAQUE,CRect(10,700,10,710),_T("0"),NULL);//繪制X坐標(biāo)標(biāo)簽dc.ExtTextOut(30,20,ETO_OPAQUE,CRect(30,20,30,30),_T("Y"),NULL);//繪制Y坐標(biāo)標(biāo)簽dc.ExtTextOut(750,710,ETO_OPAQUE,CRect(750,710,750,720),_T("X"),NULL);以上代碼只提供了縱坐標(biāo)繪制,其她坐標(biāo)繪制完全相識,筆者就不再贅述,詳細(xì)代碼見程序清單。從上面例子可以發(fā)現(xiàn),在構(gòu)造CClientDC對象時(shí),需要一種CWnd類型指針作為參數(shù)。由VC++知識可知,每個(gè)對象均有一種this指針指向自己自身,因此,本例子就將this作為參數(shù)傳遞給該對象構(gòu)造函數(shù)。由此可以看出,CClientDC類繪圖十分以便快捷。但是還需要闡明是,不論是VC中窗口還是對話框,設(shè)備原點(diǎn)(0,0)都是在左上角,這與咱們實(shí)際應(yīng)用不同樣,因而需要對設(shè)備原點(diǎn)(0,0)進(jìn)行變化,這樣才干使得繪出圖像具備很強(qiáng)工程意義。例子中筆者就將原點(diǎn)改到(20,700),這樣下面繪制出來圖形就會出當(dāng)前坐標(biāo)系第一象限。此外,由于本次設(shè)計(jì)中會有擬合直線、理論直線以及所有數(shù)據(jù)坐標(biāo)點(diǎn)在同一坐標(biāo)系中浮現(xiàn),因而,需要用不同顏色、大小來顯示所繪制圖形,這樣才以便分析她們之間關(guān)系。前一種例子中所畫坐標(biāo)系都是黑色,這是由于設(shè)備描述表中有一種默認(rèn)黑色畫筆,因而繪制線條都是黑色。在VC++中,如果想要繪制其她顏色線條,一方面需要?jiǎng)?chuàng)立一種特定顏色畫筆,然后將此畫筆選入設(shè)備描述表中,接下來繪制圖形顏色就由這個(gè)新畫筆特性做決定了。詳細(xì)實(shí)現(xiàn),可以運(yùn)用MFC提供CPen類創(chuàng)立畫筆對象,這個(gè)類封裝了與畫筆有關(guān)操作。它有三個(gè)構(gòu)造函數(shù),其中一種構(gòu)造函數(shù)原型聲明如下:CPen(intnPenStyle,intnWidth,COLORREFcrColor);其中,第一種參數(shù)(nPenStyle)指定筆線型(實(shí)線(PS_SOLID)、點(diǎn)線(PS_DOT)、虛線(PS_DASH)等);第二個(gè)參數(shù)(nWidth)指定畫筆線寬,需要注意是,畫筆寬度要不超過1才可以保證虛線線型有效;第三個(gè)參數(shù)指定筆顏色,這個(gè)參數(shù)是COLORREF類型,運(yùn)用RGB這個(gè)宏可以建立這個(gè)類型值。RGB宏聲明如下:COLORREFRGB(BYTEbRed,BYTEbGreen,BYTEbBluecolor);可以看出,RGB宏有三個(gè)參數(shù),分別代表紅、綠、藍(lán)三種顏色值。這三個(gè)參數(shù)都是BYTE類型,取值范疇為:0~255,RGB(255,255,255)代表白色,RGB(0,0,0)代表黑色,當(dāng)三個(gè)參數(shù)分別設(shè)立為0~255之間任意值時(shí),可以得到各種不同顏色。對于前面坐標(biāo)系例子,若將第一行指令修改為如下代碼:CPenpen(PS_SOLID,1,RGB(0,0,255));//創(chuàng)立新畫筆 CClientDCdc(this);//定義一種CClientDC對象CPen*pOldPen=dc.SelectObject(&pen);//添加新畫筆備用然后,在最后一行代碼背面添加如下代碼:dc.SelectObject(pOldPen); //恢復(fù)默認(rèn)畫筆從修改后例子可以看出,一方面創(chuàng)立了一種實(shí)線畫筆,其寬度為1,顏色為藍(lán)色。接著運(yùn)用SelectObject函數(shù)將新畫筆對象選入設(shè)備描述表,再運(yùn)用畫線函數(shù)可以發(fā)現(xiàn)繪制出線發(fā)生了變化。最后,再次調(diào)用SelectObject函數(shù)恢復(fù)設(shè)備描述表中畫筆。最后簡介一下,CClientDC對象中一種SetPixel函數(shù),該函數(shù)聲明如下:StatusSetPixel(INTx,INTy,COLORREFcrColor);其中,x為橫坐標(biāo),y為縱坐標(biāo),crColor為顏色設(shè)立。打開文獻(xiàn)開始打開文獻(xiàn)開始讀取文獻(xiàn)數(shù)據(jù)最小二乘法擬合讀取完畢關(guān)閉文獻(xiàn)是否計(jì)算擬合直線計(jì)算擬合直線關(guān)閉文獻(xiàn)顯示擬合直線繪制擬合直線結(jié)束FILE*fp1;//定義文獻(xiàn)指針 fp1=fopen("C:\\Data.dat","rb");//二進(jìn)制方式讀文獻(xiàn)while(!feof(fp1))//判斷與否讀完數(shù)據(jù)結(jié)束{fread(&x,sizeof(long),1,fp1);//讀橫坐標(biāo) fread(&y,sizeof(long),1,fp1);//讀縱坐標(biāo)dc.SetPixel(20+x,700-y,RGB(255,0,0));//以紅色畫筆繪制坐標(biāo)點(diǎn)}fclose(fp1);//關(guān)閉文獻(xiàn)在上面代碼中,每行代碼作用見標(biāo)注,該某些所有程序詳見附錄中DrawDlg.cpp。3.5.3最小二乘法擬合直線運(yùn)用最小二乘法擬合直線程序流程圖如圖3.6所示。圖3.6最小二乘法擬合直線程序流程圖一方面,簡介一下最小二乘法擬合基本原則以及擬合直線方程推導(dǎo)過程,詳細(xì)分析如下:圖3.6最小二乘法擬合直線程序流程圖事實(shí)上,運(yùn)用最小二乘法原理求取回歸參數(shù)k、b時(shí),應(yīng)使各數(shù)據(jù)點(diǎn)與擬合直線偏離平方和為最小,假設(shè)有n對數(shù)據(jù)點(diǎn),在點(diǎn)上y預(yù)計(jì)量為:(3.1)誤差方程組為:(3.2)應(yīng)當(dāng)使得最小,于是求取參數(shù)k、b應(yīng)當(dāng)滿足:\(3.3)式(3.3)稱為正規(guī)方程組,運(yùn)用代數(shù)辦法求解,可得:(3.4)(3.5)式中,,(3.6)(3.7)綜上所述,可以得到擬合后直線方程為:(3.8)此外,有關(guān)系數(shù)ρ是描述兩個(gè)變量線性關(guān)系密切限度數(shù)量指標(biāo),自然其絕對值越大,即接近于1時(shí),x、y線性關(guān)系就越密切;當(dāng)ρ接近0時(shí),兩者線性變化規(guī)律就不明顯。因而,本設(shè)計(jì)引入了有關(guān)系數(shù)ρ來判斷直線擬合與否成功,也可以觀測到數(shù)據(jù)點(diǎn)線性關(guān)系。有關(guān)系數(shù)公式如下:(3.9)式(3.9)中,因分母根式值恒為正值,故有關(guān)系數(shù)符號取決于離差積之和符號,即與參數(shù)k符號一致。普通而言,只要有關(guān)系數(shù)ρ>0.999,那么x、y線性關(guān)系就非常密切了,線性關(guān)系很明顯。懂得n-2為自由度,又由于殘差平方和是反映了x對y線性影響之外其她隨機(jī)影響總和,故定義下列預(yù)計(jì)量s為:(3.10)s也可以以為是剩余原則差,它意義與原則差相識,用它可以衡量所有隨機(jī)因素對y大小,s愈大,擬合精度越高。通過對最小二乘法推導(dǎo)和分析,運(yùn)用VC編寫實(shí)現(xiàn)擬合核心代碼如下://最小二乘法擬合程序averx=sumx/len_data;//求x平均avery=sumy/len_data;//求y平均fp1=fopen("C:\\Data.dat","rb");while(!feof(fp1)){fread(&x,sizeof(long),1,fp1); fread(&y,sizeof(long),1,fp1);Lxx+=(x-averx)*(x-averx); Lxy+=(x-averx)*(y-avery);Lyy+=(y-avery)*(y-avery);}fclose(fp1);k=Lxy/Lxx;//求斜率kb=avery-k*averx;//求截距b在上面代碼中sumx和sumy分別為所有X、Y坐標(biāo)值累加和,通過上述代碼,可以獲得直線方程:Y=k*X+b,于是筆者可以運(yùn)用繪圖CClientDC類指令進(jìn)行繪圖,這一操作類似于理論直線繪制,詳細(xì)實(shí)現(xiàn)過程參看3.5.4繪制理論直線某些。該某些所有程序詳見附錄中DrawDlg.cpp中OnNihe函數(shù)。 3.5.4繪制理論直線圖3.7繪制理論直線程序流程圖設(shè)立理論直線開始坐標(biāo)點(diǎn)計(jì)算繪制理論直線圖3.7繪制理論直線程序流程圖設(shè)立理論直線開始坐標(biāo)點(diǎn)計(jì)算繪制理論直線結(jié)束然后,運(yùn)用前面簡介CClientDC類繪圖中LineTo函數(shù)即可完畢理論直線繪制,詳細(xì)核心代碼如下所示:dc.MoveTo(20,700-m_b);//移動(dòng)到A點(diǎn)dc.LineTo((700-m_b)/m_k+20,0);//連接A、B兩點(diǎn)dc.ExtTextOut(750,30,ETO_OPAQUE,CRect(750,30,750,40),_T("理論直線:"),NULL);//繪制圖例dc.MoveTo(820,40);dc.LineTo(950,40);從以上代碼可以看出,代碼中m_k、m_b是設(shè)立直線方程斜率和截距。繪制圖指令在前面已經(jīng)簡介過,每行代碼作用見右邊標(biāo)注。擬合直線繪制代碼與理論直線繪制完全相識,函數(shù)ExtTextOut可以是用來輸出“理論直線:”和“擬合直線:”文本信息,然后運(yùn)用隨后兩行代碼繪制出一條小線段,這樣可以讓讀者清晰地結(jié)識那條線代表什么含義,固然擬合直線和理論直線是采用不同畫筆。運(yùn)營后得到效果如圖3.8所示:圖3.8理論直線和擬合直線圖例該某些所有程序詳見附錄中DrawDlg.cpp中OnNilun函數(shù)。3.5.5數(shù)據(jù)瀏覽及誤差顯示數(shù)據(jù)瀏覽及誤差顯示編程過程中,由于需要計(jì)算方差、原則差等有關(guān)誤差,但是她們是每個(gè)點(diǎn)都要進(jìn)行計(jì)算,最后會有諸多值,只有和數(shù)據(jù)放在一起才懂得她們所屬關(guān)系,因而,筆者就將這兩項(xiàng)功能設(shè)計(jì)在相似對話框中。詳細(xì)流程圖如圖3.9所示。由于篇幅有限,筆者只簡介一下數(shù)據(jù)加入列表框某些程序?qū)崿F(xiàn),其核心代碼如下:charch[400];//定義緩存數(shù)組sprintf(ch,"第%6d點(diǎn):X:%6d,Y:%6d,//定義輸出格式△D=%6d,Dy=%4.4f,dy=%4.4f",lendata,x,y,Delta_D,Dy,dy);m_DataList.AddString(ch);//加載進(jìn)入列表框從上面代碼可以看出,第一行代碼是用來定義一種儲存每次加載內(nèi)容數(shù)組;第二行時(shí)設(shè)立數(shù)組內(nèi)容格式,其中,%6d表達(dá)6位十進(jìn)制輸出,%4.4f表達(dá)4為整數(shù)、4為小數(shù)浮點(diǎn)型輸出;最后一行代碼中,運(yùn)用AddString函數(shù)將數(shù)組內(nèi)容加載進(jìn)入列表框中,這樣將該核心代碼放在數(shù)據(jù)讀循環(huán)里面就可以將每次讀出來數(shù)據(jù)以及誤差數(shù)據(jù)顯示在列表框中。在數(shù)據(jù)加載完畢后,關(guān)閉文獻(xiàn)背面添加如下代碼:sprintf(ch,"%6s%6s%6s%6s%10s%10s","點(diǎn)序號","X坐標(biāo)","Y坐標(biāo)","△D","方差","原則差");//定義一種輸出m_DataList.InsertString(0,ch);//插入ch內(nèi)容到列表框中第0行通過以上代碼可以給列表框輸出一種表頭,下面相應(yīng)就是表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物流代理運(yùn)輸與倉儲管理合同3篇
- 食用油脂制品自動(dòng)化項(xiàng)目立項(xiàng)申請報(bào)告
- 年產(chǎn)xxRP04酚醛淡玫瑰色油漆項(xiàng)目可行性分析報(bào)告
- 清洗清理設(shè)備建設(shè)項(xiàng)目可行性分析報(bào)告
- 木工鋸機(jī)生產(chǎn)加工項(xiàng)目可行性研究報(bào)告
- 切削液生產(chǎn)加工項(xiàng)目可行性研究報(bào)告
- 2025裝修公司合同簡版
- 2025規(guī)范版公司租房合同協(xié)議
- DB12T 649-2016 甜瓜品種純度SSR分子標(biāo)記檢測方法
- DB12T 625-2016 生產(chǎn)經(jīng)營單位安全生產(chǎn)應(yīng)急管理檔案要求
- 探討提高呼吸內(nèi)科患者痰培養(yǎng)標(biāo)本送檢率的護(hù)理措施
- 浙江省臺州市2023-2024學(xué)年高二上學(xué)期1月期末語文試題 Word版含解析
- 變剛度單孔手術(shù)機(jī)器人系統(tǒng)設(shè)計(jì)方法及主從控制策略
- 2023年重慶輔警招聘考試題庫及答案
- 履行職責(zé)、作風(fēng)建設(shè)、廉潔自律情況個(gè)人述職報(bào)告(四篇合集)
- 精神病患者危險(xiǎn)度的評估課件
- 《社會工作的理論》課件
- 2021電力建設(shè)項(xiàng)目工程總承包管理規(guī)范
- 智慧航天物聯(lián)網(wǎng)
- RM60實(shí)用操作課件
- 肝內(nèi)膽管癌的護(hù)理查房課件
評論
0/150
提交評論