畢業(yè)設計(論文)牛頭刨床六桿機構(gòu)運動分析
《畢業(yè)設計(論文)牛頭刨床六桿機構(gòu)運動分析》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設計(論文)牛頭刨床六桿機構(gòu)運動分析(80頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、河南理工大學本科畢業(yè)設計(論文) 摘 要 在工程技術(shù)領域,經(jīng)常會遇到一些需要反復操作,重復性很高的工作,如果能有一個供反復操作且操作簡單的專用工具,圖形用戶界面就是最好的選擇。如在本設計中對于牛頭刨床平面六桿機構(gòu)來說,為了保證結(jié)構(gòu)參數(shù)與運動參數(shù)不同的牛頭刨床的運動特性,即刨刀在切削過程中接近于等速運動從而保證加工質(zhì)量和延長刀具壽命,以及刀具的急回性能從而提高生產(chǎn)率,這樣的問題如果能夠通過設計一個模型平臺,之后只需改變參量就可以解決預期的問題,這將大大的提高設計效率。本設計中正是通過建立牛頭刨床六桿機構(gòu)的數(shù)學模型,然后用MATLAB程序設計出一個友好的人機交互的圖形界面,并將數(shù)學
2、模型參數(shù)化,使用戶只需改變牛頭刨床的參數(shù)就可以方便的實現(xiàn)運動分析和運動仿真,用戶可以形象直觀地觀察到牛頭刨床的運動軌跡、速度變化及加速度變化規(guī)律。 關(guān)鍵詞:牛頭刨床 六桿機構(gòu) MATLAB 運動仿真 程序開發(fā) Abstract In the engineering area, often repeatedly encountered some operational needs, repetitive highly, and if the operation can be repeated for a simple operation
3、and dedicated tool graphical user interface is the best choice. As in the planer graphic design for six pole bodies, and campaigns to ensure the structural parameters of different parameters planer movement characteristics, planning tool in the process of cutting close to equal campaign to ensure pr
4、ocessing quality and extended life cutlery and cutlery rush back to the performance enhancing productivity, If such issues can be adopted to design a model platform parameter can be changed only after the expected settlement, which will greatly enhance the efficiency of the design. It is through the
5、 establishment of this design planer six pole bodies mathematical model, and then use MATLAB to devise procedures of a friendly aircraft in the world graphics interface, and mathematical models of the parameters, so that users only need to change the parameters planer can facilitate the realization
6、of movement analysis and sports simulation, Users can visual image observed in planer movement trajectories, speed changes and acceleration changes. Keywords:Planer 6 pole bodies MATLAB Campaign simulation Procedure development. 目錄 1 緒論...............................................
7、................4 2牛頭刨床六桿機構(gòu)運動分析程序設計 2.1 MATLAB介紹 ................................................5 2.2 MATLAB的特點 ..............................................6 2.3 用MATLAB處理工程問題優(yōu)缺點................................7 3牛頭刨床運動分析的模型 3.1 基本概念與原理..........................................
8、.....9 3.2 牛頭刨床六桿機構(gòu)的數(shù)學模型 .................................9 4 圖形用戶界面GUI 4.1界面設計的原則 .............................................13 4.2 功能要求 .................................................. 16 4.3界面結(jié)構(gòu)設計 ................................................17 4.4 程序框圖的設計 .....................
9、........................19 5運動仿真程序界面設計與編程實現(xiàn) 5.1 句柄圖形體系 .................................................21 5.1.1 圖形對象、對象句柄和句柄圖形樹結(jié)構(gòu)..................... 22 5.1.2 對象屬性 ..............................................23 5.1.3 對象句柄的獲取方法.....................................2
10、3 5.1.4 對象句柄的獲取和設置...................................25 5.2 主界面參數(shù)含義 ............................................. 27 5.3 界面制作步驟................................................ 27 6總結(jié) ............................................................. 49 7致謝....................................
11、.......................... 50 8參考書目.......................................................... 51 9附錄 程序源代碼.................................................... 52 1 緒論 1.1本課題的意義 機構(gòu)運動分析是不考慮引起機構(gòu)運動的外力的影響,而僅從幾何角度出發(fā),根據(jù)已知的原動件的運動規(guī)律(通常假設為勻速運動),確定機構(gòu)其它構(gòu)件上各點的位移、速度、加速度,或構(gòu)件的角位移、角速度、角加速度等運動參數(shù)。無論是
12、分析研究現(xiàn)有機械的工作性能,還是優(yōu)化綜合新機械,機構(gòu)運動分析都是十分重要的。 通過對機構(gòu)的位移和軌跡分析,可以考察某構(gòu)件能否實現(xiàn)預定的位置、構(gòu)件上某點能否實現(xiàn)預定的軌跡要求,可以確定從動件的行程或所需的運動空間,據(jù)此判斷運動中是否發(fā)生碰撞干涉或確定機構(gòu)的外形輪廓尺寸。 通過速度和加速度分析可以了解機構(gòu)從動件的速度、加速度的變化規(guī)律能否達到工作要求。 而在本設計課題中通過對機構(gòu)的加速度和速度分析,就可以在設計牛頭刨床的導桿機構(gòu)時保證刨刀在切削過程中接近于等速運動,從而保證加工質(zhì)量和延長刀具壽命;此外還保證了刀具的急回性能,從而提高了生產(chǎn)率。 1.2 六桿機構(gòu)的研究
13、現(xiàn)狀: 以機電一體化為核心的現(xiàn)代機械系統(tǒng)不斷創(chuàng)新,推動著現(xiàn)代機構(gòu)學不斷發(fā)展。平面連桿機構(gòu)運動綜合在工程應用中有重要的意義,一直為機構(gòu)學領域的經(jīng)典課題之一。較早時人們主要用幾何圖解法,但是其求解精度和適用范圍都受到了極大的限制。隨著計算機技術(shù)的發(fā)展,在軌跡綜合中引入了計算機,并開始出現(xiàn)代數(shù)法和優(yōu)化法,把機構(gòu)學問題轉(zhuǎn)化為數(shù)學問題。 1.3本課題的目的 本課題的目的是通過編制MATLAB程序,從而設計出一個用戶界面,用戶可以通過對界面上面參數(shù)的操作而實現(xiàn)對牛頭刨床運動分析和運動仿真,以此觀察牛頭刨床的運動特性是否合乎要求。 2 MATLAB軟件介紹 2.1 MATLAB
14、軟件介紹 如今,計算機技術(shù)已經(jīng)被應用于各行各業(yè),科研和工程計算領域也不例外。對于經(jīng)常需要大量數(shù)據(jù)進行分析處理或者對復雜問題進行計算求解的科研工作者來說,計算機技術(shù)的引入大大的降低了工作強度,是原本復雜的工作變得簡單,從而極大的提高了工作效率。 隨著科學研究的不斷深入,以及工程應用不斷朝著專業(yè)化、精確化方向發(fā)展,科研工作者以及工程技術(shù)人員對計算機技術(shù)的要求也越來越高。面對越來越繁重的科學以及工程計算任務,雖然用傳統(tǒng)的c或Fortran語言也能完成任務,但是程序設計者所承擔的編程工作是極為繁重的,而且要求程序設計者對算法有比較深入的理解,這就使工作人員不得不將大量的時間和精力放在
15、與研究課題關(guān)系不大的計算編程上來。為了減輕科技工作者的壓力,使工作人員將時間和精力更多的放在建立模型等關(guān)鍵性的工作中,許多公司相繼開發(fā)了一系列的數(shù)學應用軟件,如MATHEMATICA、Maple、MATHCAD以及MATLAB等,其中MATLAB以其強大的功能和極高的編程效率吸引了眾多的用戶。 MATLAB 是MATRIX LABORATORY(“矩陣實驗室”)的縮寫,是由美國MATHWORKS 公司開發(fā)的集數(shù)值計算、符號計算和圖形可視化三大基本功能于一體的,功能強大、操作簡單的語言。是國際公認的優(yōu)秀數(shù)學應用軟件之一。 20世紀80年代初期,Cleve Moler與John Little
16、等利用C語言開發(fā)了新一代的MATLAB語言,此時的MATLAB語言已同時具備了數(shù)值計算功能和簡單的圖形處理功能。1984年,Cleve Moler與John Little等正式成立了MATHWORKS公司,把MATLAB語言推向市場,并開始了對MATLAB工具箱等的開發(fā)設計。1993年,MATHWORKS公司推出了基于個人計算機的MATLAB 4.0版本,到了1997年又推出了MATLAB 5.X版本(Release 11),并在2000年又推出了最新的MATLAB 6版本(Release 12),如今,MATLAB7.0已經(jīng)問世。 現(xiàn)在,MATLAB已經(jīng)發(fā)展成為適合多學科的大型軟件,在世界
17、各高校,MATLAB已經(jīng)成為線性代數(shù)、數(shù)值分析、數(shù)理統(tǒng)計、優(yōu)化方法、自動控制、數(shù)字信號處理、動態(tài)系統(tǒng)仿真等高級課程的基本教學工具。特別是最近幾年,MATLAB在我國大學生數(shù)學建模競賽中的應用,為參賽者在有限的時間內(nèi)準確、有效的解決問題提供了有力的保證。 2.2 MATLAB軟件的特點 MATLAB是一種高度集成化的科學計算環(huán)境,是集數(shù)值計算和圖形處理等功能于一體的工程計算應用軟件。MATLAB不僅可以處理代數(shù)問題和數(shù)值分析問題,而且還具有強大的圖形處理和仿真模擬等功能。MATLAB能夠很好的幫助工程師及科學家解決實際問題,它經(jīng)過20多年來的不斷完善和改進,已經(jīng)成為公認的優(yōu)秀的數(shù)學應
18、用軟件之一。 概括地講,整個MATLAB系統(tǒng)由兩部分組成,即MATLAB內(nèi)核及輔助工具箱,兩者的調(diào)用構(gòu)成了MATLAB的強大功能。MATLAB語言以數(shù)組為基本數(shù)據(jù)單位,包括控制流語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入輸出及面向?qū)ο蟮忍攸c的高級語言,它具有以下主要特點: 1)MATLAB的程序設計語言編程效率較高,運算符和庫函數(shù)極其豐富,語言簡潔,編程效率高,MATLAB除了提供和C語言一樣的運算符號外,還提供廣泛的矩陣和向量運算符。利用其運算符號和庫函數(shù)可使其程序相當簡短,兩三行語句就可實現(xiàn)幾十行甚至幾百行C或FORTRAN的程序功能,從而極大的簡化了線性運算,而線性運算是整個數(shù)值計算的基礎,所以以矩
19、陣作為基本語言要素可以提高數(shù)值計算的編程效率。MATLAB本身擁有豐富的庫函數(shù),并具有結(jié)構(gòu)化的流程控制語句和運算符,用戶可以在使用的過程中方便自如的使用。 2)既具有結(jié)構(gòu)化的控制語句(如for循環(huán)、while循環(huán)、break語句、if語句和switch語句),又有面向?qū)ο蟮木幊烫匦浴? 3)圖形功能強大。它既包括對二維和三維數(shù)據(jù)可視化、圖像處理、動畫制作等高層次的繪圖命令,也包括可以修改圖形及編制完整圖形界面的、低層次的繪圖命令。 4)功能強大的工具箱。工具箱可分為兩類:功能性工具箱和學科性工具箱。功能性工具箱主要用來擴充其符號計算功能、圖示建模仿真功能、文字處理功能以及與硬件實時交互的功
20、能。而學科性工具箱是專業(yè)性比較強的,如優(yōu)化工具箱、統(tǒng)計工具箱、控制工具箱、小波工具箱、圖象處理工具箱、通信工具箱等。 5)易于擴充。除內(nèi)部函數(shù)外,所有MATLAB的核心文件和工具箱文件都是可讀可改的源文件,用戶可修改源文件和加入自己的文件,它們可以與庫函數(shù)一樣被調(diào)用。 當然,任何事物都不是十全十美的。與C、Fortran等傳統(tǒng)的程序設計語言相比,MATLAB的程序設計語言的一個顯著缺點即使循環(huán)代碼執(zhí)行效率較低,這是與其執(zhí)行方式直接相關(guān)的。MATLAB編寫的程序在應用的過程中為解釋執(zhí)行,既不需要編譯生成也不生成可執(zhí)行文件,而是解釋一句,執(zhí)行一句,其速度是可想而知的了。當然這個問題也不是不可以
21、解決的,由于MATLAB以矩陣作為基本的程序設計語言要素,對于在c、Fortran的那個編程語言中需要使用循環(huán)來解決的問題,MATLAB程序設計語言中巧妙的利用矩陣的特點,就可以避免使用循環(huán)代碼。所以,通過對MATLAB的深入學習,提高編程技巧,完全可以做到揚長避短,并充分發(fā)揮MATLAB語言的強大功能。 目前,MATLAB已經(jīng)成為國際上公認的優(yōu)秀數(shù)學應用軟件之一。 2.3 用MATLAB處理工程問題優(yōu)缺點 MATLAB是MATHWOTKS公司于1982年推出的一套高性能的數(shù)值計算和可視化軟件。它集數(shù)值分析、矩陣運算、信號處理和圖形顯示于一體,構(gòu)成了一個方便、界面友好的用戶環(huán)境。它
22、還包括了TOOLBOX(工具箱)的各類問題的求解工具,可用來求解特定學科的問題。其特點是: (1)可擴展性:MATLAB最重要的特點是易于擴展,它允許用戶自行建立指定功能的M文件。對于一個從事特定領域的工程師來說,不僅可利用MATLAB所提供的函數(shù)及基本工具箱函數(shù),還可方便地構(gòu)造出專用的函數(shù),從而大大擴展了其應用范圍。當前支持MATLAB的商用Toolbox(工具箱)有數(shù)百種之多。而由個人開發(fā)的Toolbox則不可計數(shù)。 (2)易學易用性:MATLAB不需要用戶有高深的數(shù)學知識和程序設計能力,不需要用戶深刻了解算法及編程技巧。 (3)高效性:MATLAB語句功能十
23、分強大,一條語句可完成十分復雜的任務。如FFT語句可完成對指定數(shù)據(jù)的快速傅立葉變換,這相當于上百條C語言語句的功能。它大大加快了工程技術(shù)人員從事軟件開發(fā)的效率。據(jù)MATHWOKS公司聲稱,MATLAB軟件中所包含的MATLAB源代碼相當于70萬行C代碼。 由于MATLAB具有如此之多的特點,在歐美高等院校,MATLAB已成為應用于線性代數(shù)、自動控制理論、數(shù)理統(tǒng)計、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真等高級課程的基本教學工具;在研究單位、工業(yè)部門,MATLAB也被廣泛用于研究和解決各種工程問題。當前在全世界有超過40萬工程師和科學家使用它來分析和解決問題。 然而MATLAB自身所
24、存在的某些缺點限制了它的應用范圍。 (1) MATLAB是一種解釋性語言,因此它的實時效率是相當差的。 (2) MATLAB程序不能脫離其環(huán)境運行,因為MATLAB不是計算機語言,雖然如今它已經(jīng)可以進行編譯,但是還不太方便。 3 牛頭刨床運動分析的模型 3.1 基本概念與原理 機構(gòu)運動分析的任務是在已知機構(gòu)尺寸及原動件運動規(guī)律的情況下,確定機構(gòu)中其他構(gòu)件上某些點的軌跡、位移、速度、加速度和構(gòu)件的角位移、角速度及角加速度。上述這些內(nèi)容,不論是設計新的機器,還是為了了解現(xiàn)有機械的運動性能,都是十分必要的,而且它還是研究機械動力性能的必要基礎和前提。 對
25、于牛頭刨床來說,其刨刀在工作行程中應該接近等速,,而回程速度卻應高于前者速度,從而提高效率。為了確定牛頭刨床的設計是否滿足要求,就必須對其進行運動分析。 機構(gòu)運動分析的方法很多,主要有圖解法和解析法。當需要簡捷直觀地了解機構(gòu)的某個或某幾個位置的運動特性時,采用圖解法比較方便,而且精度也能滿足實際問題的要求。而當需要精確地知道或要了解機構(gòu)在整個運動循環(huán)過程中的運動特性時,采用解析法并借助于計算機,不僅可以獲得很高的計算精度及一系列位置的分析結(jié)果,并能繪出機構(gòu)相應的運動線圖,同時還可以把機構(gòu)分析和機構(gòu)綜合問題聯(lián)系起來,以便于機構(gòu)的優(yōu)化設計。本設計正是基于這些用MATLAB編程實現(xiàn)牛頭刨床的運動分
26、析以及圖解法無法實現(xiàn)的運動仿真。 3.2 牛頭刨床的數(shù)學模型 如下圖所示為牛頭刨床的機構(gòu)簡圖。設已知結(jié)構(gòu)參數(shù)為:L1,L3,L5,G,H,原動件的轉(zhuǎn)角φ1和轉(zhuǎn)速n1。 解:如圖,先建立一個直角坐標系,并標出各桿矢及其方位角。其中有四個未知變量φ3,φ5,P及S。為求解需建立兩個封閉矢量方程,為此需利用兩個封閉圖形ABDA及DEFD。 1)求φ3、ω3及α3 由封閉形ABDA可得 ………………………………………(1) 分別用i和j點積上式兩端,有
27、 聯(lián)解上面兩個式子可得: 圖 3—1 牛頭刨床結(jié)構(gòu)模型 式(1)對時間t求導數(shù),注意P為變量,有 …………………………(2) 可用點積上式兩端以消去,并利用矢量方程解析法,有 用點積(2)兩端可消去,并注意到,則 再將式(2)對時間t求導,則有
28、 可分別用和點積上式兩端,以消去和,注意,則 得 = 2) 求s、、 由封閉圖形DEFAD可得 ………………………………(3) 分別用i和j點積上面的式子兩端,有 有上面第二
29、個式子可得 由上面第一個式子可得 對上面的(3)式對時間t取導可得 …………………………..(4) 分別用j、點積上式,可得 (4)式對時間t求導可得 分別用就j和點積上面的式子可得 4 圖形用戶界面GUI 用戶界面或接口是指:人與機器之間或程序之間交互作用的工具和方法。如、鍵盤、鼠標、跟蹤球、話筒都可以成為與計算機交換信息的接口。
30、 圖形用戶界面(GUI:Graphic User Interface)則是指有窗口、光標、按鍵、菜單、文字說明等對象構(gòu)成的一個用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化,比如實現(xiàn)計算、繪圖等。 4.1界面設計的原則 GUI的設計包括編寫源代碼之前的所有工作。設計者必須重視設計工作,不能急于編寫源代碼。否則,編程員思路不清晰,開發(fā)過程中回走很多彎路,因而開發(fā)的效率低下,并且設計出的GUI也不一定讓人滿意。那么如何進行成功的設計,就應該從以下兩個方面予以考慮: (1) GUI 設計的指導原則 (2) GUI 設計應遵循的步
31、驟。 指導原則: 可以用就個字來概括優(yōu)秀的設計標準:簡潔性、一致性、熟悉性。 簡潔性意味著界面簡單明了,直接清晰。擁護可以很快的提取出對自己有用的信息。 熟悉性意味著系統(tǒng)設計時盡量保持與該類流行界面的相似,比如VC的對話框風格、視圖的風格、MATLAB的Figure風格。這樣用戶操作起來就容易上手,誤操作率比較低。 以上三點也許過于抽象,具體過程中不宜操作。其實,只要在設計整個過程中貫穿以人為本的設計理念,設計出的界面自然會達到以上要求。設計者應該經(jīng)??紤]以下兩個問題: (1)用戶在沒有熟悉界面之前,完成一個操作需要多長時間? (2)用戶在熟悉界面后,完成
32、一個普通操作需要多長時間? 簡潔性、一致性、熟悉性圍繞著上述兩個問題展開。它們有時也存在著矛盾的地方,比如會為了一致性而犧牲簡潔性。這種取舍的標準應著眼于用戶,要看是否便于用戶操作。用戶應該是設計者心中的上帝。 1)簡潔性: 簡潔是一種直觀的美,它是設計者所要達到的主要目標,通過GUIDE,我們很容易向界面添加許多功能。但是功能強大并不一定代表成功,有時增加一些功能反而顯得畫蛇添足。GUI本來是從圖像的角度幫助用戶理解客觀世界的,但是繽紛蕪雜的表面想象卻很容易掩蓋事物的真相,影響擁護做出正確的判斷,這當然是不可取的。設計者一定要警惕這種盲目追求強大的心理。 a注重形式 圖
33、像往往給人一種直觀的感受,告訴人們事物發(fā)展的趨勢,數(shù)字有助于將這種趨勢量化,增強人們對發(fā)展趨勢的認識。但是并不意味著圖像必須借助于數(shù)字。 b縮小交互區(qū)域 如果能在一個界面中完成的事情堅決不要放在兩個界面中完成。這也上操作簡潔性的一種間接體現(xiàn)。這樣除了增加圖形的可讀性,還減輕了不同截面之間數(shù)據(jù)的傳遞負擔。關(guān)于這一點在本設計中就有涉及。比較以下兩個設計: 圖4—1 多界面窗口 圖4—2 單界面窗口結(jié)果 由以上兩個設計不難發(fā)現(xiàn)在第二種設計中只需要通過按鈕就可以實現(xiàn)預期的功能,而無須像第一種設計中那樣在不同的界面中進行切換。 c用圖形輸入代替數(shù)值輸入 對于用戶來說,
34、在圖形用戶界面下,圖形輸入比數(shù)值輸入更加方便。為了從各個角度來觀察一個三維幾何形體,我們需要不斷地進行坐標系的轉(zhuǎn)化。用數(shù)值輸入的方法,困難程度難以想象,其復雜性會讓用戶望而卻步,而圖形輸入的方式則能很好地解決上述問題。 2)一致性: 一致性的含義很廣泛,既包括操作指令的前后一致,也包括操作界面中各種圖形對象擺放位置的一致性。這個原則基于以下認識,即用戶的操作經(jīng)驗應有助于用戶完成后面的操作;設計者不應該給用戶太多意外,否則會讓用戶一頭霧水;前面執(zhí)行這個命令是一種用法,于是產(chǎn)生了歧義。優(yōu)秀的界面設計往往注重這個問題。 3)熟悉性。 設計遵循的步驟: 圖4—3 設計遵循的步驟
35、 4.2 功能要求 本次論文的結(jié)果是設計出如上述4—2所示的圖形用戶界面,該界面應該具有以下功能: 1)在編輯框中輸入牛頭刨床的參數(shù)后,點擊“運算”按鈕,實現(xiàn)后臺的運算,并把運算的結(jié)果存儲在數(shù)據(jù)文件mydata.mat 中。 2)在1)完成后,用戶點擊“數(shù)據(jù)顯示”按鈕,彈出“數(shù)據(jù)顯示”窗口,并顯示牛頭刨床運動分析的結(jié)果數(shù)據(jù)。 3)同上,在完成1)后,用戶點擊“運動線圖”按鈕,彈出“運動線圖”窗口,并在窗口中分別顯示牛頭刨床刨頭的“位移——曲柄轉(zhuǎn)角”、“速度——曲柄轉(zhuǎn)角”、“加速度——曲柄轉(zhuǎn)角”的曲線圖。 4)同上,在完成1)后,用戶點擊“運動仿真
36、”按鈕,彈出“運動仿真”窗口,并在窗口中顯示牛頭刨床動態(tài)仿真的結(jié)果。 4.3界面結(jié)構(gòu)設計 根據(jù)上述4.1和4.2,在本設計的界面設計中確立以下思路: 由于本設計是對牛頭刨床進行運動分析和運動仿真,所以在界面中應該首先創(chuàng)建五個框架區(qū),分別顯示結(jié)構(gòu)參數(shù),結(jié)構(gòu)模型,初始數(shù)據(jù),運動參數(shù)和命令按鈕;然后在相應的框架區(qū)中分別創(chuàng)建text文本和edit編輯框以及命令按鈕,以使用戶可以通過對參數(shù)的改變來實現(xiàn)相應的控制;最后,除“運算”和“退出”按鈕在后臺操作外,其它的按鈕“數(shù)據(jù)顯示”、“運動分析”、“運動仿真”被按下都會彈出相應的操作界面。以下是預期的界面: 圖4—4 預期主界面
37、 圖4—5 預期數(shù)據(jù)結(jié)果顯示界面窗口 圖4—6 預期的運動分析界面窗口 圖4—7 預期運動仿真界面 4.4 程序框圖的設計 程序框圖如下所示: 圖4—8 程序框圖 以上既是總界面的結(jié)構(gòu),也是軟件的總結(jié)構(gòu),也同時是程序流程圖。 5 運動仿真程序界面設計與編程實現(xiàn) 界面制作包括界面設計和程序?qū)崿F(xiàn)。具體制作步驟如下: 1) 分析界面所要求實現(xiàn)的主要功能,明確設計任務; 2) 在稿紙上面繪出界面草圖,并站在使用者的角度來審查草圖; 3) 按構(gòu)思的草圖,上機制作(靜態(tài))界面,并檢查之; 4) 編寫界面動
38、態(tài)功能的程序,對功能進行逐項檢查 。 以上過程,僅僅是一般原則。在設計中,步驟之間也許要交叉執(zhí)行或復合 執(zhí)行;設計和實現(xiàn)過程往往不是一步到位的,可能需要反復修改,才能獲得滿意的界面。 在MATLAB軟件中,所提供的界面的基本設計方法共有兩種: 一種是用戶自己編寫并調(diào)用函數(shù)生成界面; 另一種是直接使用MATLAB提供的GUI設計工具。 第二種方法雖然簡單,但是不利于我們更加熟悉MATLAB的編程語言以及鍛煉我們的思維和設計能力,加上邏輯性紊亂,所以本設計中的四個界面全是采用第一種方法制作,也就是編寫函數(shù)。 在這四個界面的實現(xiàn)中,大體又可分為兩類: 一、主界面的實現(xiàn)。
39、二、功能界面的實現(xiàn)。 在本章內(nèi)容展開之前,有必要介紹句柄圖形的知識,因為這是MATLAB可視化的內(nèi)核,與本章界面的制作關(guān)系密切。 5.1 句柄圖形體系 句柄圖形是一種面向?qū)ο蟮睦L圖系統(tǒng)。該系統(tǒng)提供創(chuàng)建計算機圖形所必需的各種軟件。它所支持的指令,可直接創(chuàng)建線、文字、網(wǎng)線、面以及圖形用戶界面。MATLAB的各種高層圖形指令如:plot,mesh等都是以句柄圖形軟件為基礎寫成的,因此句柄圖形被稱為低層圖形。這也是在這里要首先介紹句柄圖形的原因所在。 5.1.1 圖形對象、對象句柄和句柄圖形樹結(jié)構(gòu) (1)圖形對象 MATLAB把用于數(shù)據(jù)可視化和界面制作的基本繪圖要素成為句柄圖形
40、對象。構(gòu)成MATLAB句柄圖形對象體系的11個圖形對象如圖5—1中方塊所示每個圖形對象都可以獨立操作。 在MATLAB中生成的每個具體圖形,由若干個不同對象構(gòu)成。每個圖形對象不必包含全部對象,但是每個圖形必須具備根屏幕和圖形窗。 圖5—1 句柄圖形樹結(jié)構(gòu) (2)句柄 每個具體對象都有一個“與生俱來、終生不變”的身份,即句柄。句柄的存取圖形對象惟一規(guī)范識別符。不同對象的句柄不可能重復和混淆。 每個計算機,根對象只有一個,即屏幕。它的句柄值總是0。而簡稱為圖的圖形窗的句柄總是正整數(shù),它是用來標示圖形窗序號。除以上兩種對象外,其余對象句柄則是雙精度浮點數(shù)。 (3)句柄圖形的
41、結(jié)構(gòu) 在句柄圖形體系中,各圖形對象并非平等,它們之間的關(guān)系可用圖5—1 的樹層次結(jié)構(gòu)表示。 5.1.2 對象屬性 (1)屬性 所有對象都有一組定義和刻畫其外貌和性狀的屬性(Properties)。屬性有兩部分組成:屬性名和屬性值,即屬性二元對(Property_Name,Property_Value)。在創(chuàng)建和修改屬性的指令中,屬性名和屬性值總是成對出現(xiàn)。 屬性名是英文詞組字符串。該英文詞組字符串每個單詞的第一個字母大寫,而單詞間沒有空格,;例如‘LineStyle’,‘ColorMap’等。這樣書寫的目的是便于閱讀。至于在指令中援引屬性名時,為用戶輸入的方便,
42、MATLAB采取了兩個措施:第一,不分字母大小寫,都同樣識別;第二,只要不引起歧義,屬性名不必全寫。 不同的屬性值將使對象有不同的表現(xiàn)。 (2)缺省屬性 在創(chuàng)建圖形對象時,MATLAB并不需要用戶對每個屬性加以定義。因為倘若用戶不對屬性加以定義,MATLAB總會自動給對象的每個屬性賦予廠家定義的屬性。當然用戶如果希望創(chuàng)建具有個性的圖形,那么就可以通過指令對某些屬性進行定義。 5.1.3 對象句柄的獲取方法 要設置圖形對象屬性值,首先要知道該對象的句柄。因此,掌握對象句柄的獲取方法十分重要。 1)基本方法 (1)從圖形創(chuàng)建指令獲得句柄 所有高層
43、或低層指令都能通過以下格式產(chǎn)生句柄。 H_GC=GraphicCommand(……) 繪圖同時給出句柄的調(diào)用指令H_GC。 本設計中主程序創(chuàng)建主界面窗口并獲取其句柄的程序代碼如下: h1=figure(position,[20 20 800 600],... name, 牛頭刨床運動分析,... numbertitle,off,...% 不顯示標題數(shù)目 defaultuicontrolfontsize,6,... defaultuicontrolunits,normalized,... menubar,none,...% 隱去菜單條以便接下來自己制作菜單 res
44、ize,off); % 主窗口的大小不能改變 (2)追溯法獲取圖柄 若一個對象的句柄已知,那么可用以下格式追溯獲得其“父”或“子”的句柄。 H_pa=get(H_known,’Parent’) 獲取H_known句柄對象之“父”的句柄 H_ch=get(H_known,’Children’) 獲取H_known句柄對象之“子”的句柄 本設計中主程序創(chuàng)建主界面“初始數(shù)據(jù)”框架后,可利用上述格式獲取其“父”句柄: h1_framec=uicontrol(... parent,h1,... style,frame,... positio
45、n,[0.05 0.05 0.3 0.3],... foregroundcolor,b); H_pa=get(h1_framec,’Parent’) H_pa= h1 獲取h1_framec句柄對象之“父”的句柄為 h1。 (3)當前對象句柄的獲取 MATLAB有以下三種專用獲取圖柄的指令:前兩個是直接指令式的;后一個必須與鼠標配合使用。 gcf 返回當前圖形窗口的句柄 gca 返回當前軸的句柄 gco 返回“被鼠標最近點擊”的圖形對象的句柄 本設計中在計算
46、程序caculate1函數(shù)中,從主程序當中讀取句柄值 handles=guihandles(gcf); (4)根據(jù)圖形對象特性獲取句柄 利用對象特性搜索對象句柄可以得到較高的搜索速度。具體指令如下: H=findobj(H_ori,PN,PV) 在H_ori指定對象上,尋找與屬性(PN,PV)匹配的對象句柄。 (5)根據(jù)對象“標簽”獲取句柄 用戶可以通過“Tag”屬性,給對象一個“標簽”。此后,就可以通過“標簽”獲取該對象的句柄。 設置“標簽”的兩個方法: 第一,創(chuàng)建時賦名 第二,用set賦名 據(jù)標簽獲取對象句柄:如果屏幕上有多個圖形窗,且有的窗口又有多個子圖,那么獲取帶
47、“標簽”對象句柄的簡捷指令是:hax=findobj(0,‘Tag’,‘A4’)。 本設計中在計算程序caculate1函數(shù)中,從主程序當中讀取牛頭刨床參量L1的句柄值 L1=get(handles.hL1,string); L1=str2num(L1); %%把字符轉(zhuǎn)換為數(shù)值 5.1.4 對象句柄的獲取和設置 (1)創(chuàng)建對象時設置屬性 H_GC=GraphicCommand(……,PN,PV) 利用“屬性對”設置的繪圖指令 H_GC=GraphicCommand(……,PS) 利用“構(gòu)架”進行屬性設置的繪圖指令
48、 [說明] 1)GraphicCommand代表所有合法的MATLAB高層或低層繪圖命令 2)(PN,PV)是屬性名、屬性值構(gòu)成的屬性對。屬性對的數(shù)目沒有限制 3)PS 是域名為屬性名的構(gòu)架數(shù)組 (2)get和 set get(H) 獲取H句柄對象所有屬性的當前值 get(H,PN) 獲取H句柄對象由PN指定屬性的當前值 set(H) 顯示H句柄對象所有可設置屬性名和全部供選屬性值 set(H,PN) 顯示H句柄對象由PN指定屬性的全部供選屬性值 s
49、et(H,PN,PV,。。。) 設置H句柄對象的PN屬性名取PV屬性值 set(H,PS) 利用構(gòu)架數(shù)組設置H的屬性值 [說明] 1) (PN,PV)是屬性名、屬性值構(gòu)成的屬性對。屬性對的數(shù)目沒有限制 2) PS 是域名為屬性名的構(gòu)架數(shù)組 (3)對象屬性設置示例 本設計中數(shù)據(jù)顯示窗口中創(chuàng)建顯示數(shù)據(jù)的listbox時,把listbox的‘string’屬性設置為‘vars1’的程序如下: h2_zhuanjiaoslist=uicontrol(... parent,h2,... style,listbox,
50、... position,[0.10 0.10 0.20 0.75],... fontsize,14); vars1 = phi1; set(h2_zhuanjiaoslist,string,vars1); 5.2 主界面參數(shù)含義 在主界面中參數(shù)的含義如下表所示: 表5—1 主界面參數(shù)含義 參數(shù)名稱 參數(shù)含義 L1 原動件AB的長度 L3 從動件DE的長度 L5 從動件EF的長度 H
51、 AD的長度 G 刨頭距離底座的豎直高度 從動件DE的轉(zhuǎn)角 P 滑塊2到底座的距離 從動件EF的轉(zhuǎn)角 S 滑塊6的位移 原動件AB的轉(zhuǎn)速 原動件AB的轉(zhuǎn)角 轉(zhuǎn)向 原動件AB的轉(zhuǎn)向 5.3 界面制作步驟 5.3.1 創(chuàng)建主界面窗口 創(chuàng)建窗口的函數(shù)為figure,它有兩種調(diào)用形式: (1)figure ,單獨的f
52、igure創(chuàng)建一個新的窗口,并且返回它的句柄值。 (2)figure(H),使H為當前的窗口,強制它在屏幕其他窗口的上面;假如H窗口不存在,同時H為整數(shù),這是將創(chuàng)建句柄為H的窗口,如下例。 本設計中主程序創(chuàng)建主界面窗口的程序代碼如下: h1=figure(position,[20 20 800 600],... name, 牛頭刨床運動分析,... numbertitle,off,...% 不顯示標題數(shù)目 defaultuicontrolfontsize,6,... defaultuicontrolunits,normalized,... menubar,none,...
53、% 隱去菜單條以便接下來自己制作菜單 resize,off); % 主窗口的大小不能改變 5.3.2 創(chuàng)建主界面自制菜單 PC平臺上,缺省情況下產(chǎn)生的MATLAB圖形窗總有一個頂層菜單條,它包含五個標準菜單項:文件(file)、編輯(edit)、工具(tools)、窗口(windows)和幫助(help)。每個菜單項在點擊的時候都回產(chǎn)生一個下拉菜單(Pull-down menu)。 這標準菜單受界面菜單‘MenuBar’屬性管理。該屬性有兩個取值[none|figure]。當屬性值取‘none’時,圖形窗不出現(xiàn)標準菜單(及工具條);當屬性取‘figure’時,圖形窗
54、顯示標準菜單,如圖5—2所示。 如上面例子隱去缺省菜單條的目的正是為了制作自制菜單,自制用戶菜單,通過uimenu指令創(chuàng)建。其典型的調(diào)用格式為: 圖5—2 缺省的菜單條 Hm= uimenu(PropertyName1,value1,PropertyName2,value2,...) [說明] 1)Hm為該用戶菜單的句柄。H_parent為其父對象的句柄。該父對象只能是圖形窗對象,或另一用戶菜單對象。假如H_parent輸入宗量缺省,那么菜單項將建立在當前圖形窗的頂層菜單條上。 2)‘PropertyName’和‘PropertyV
55、alue’構(gòu)成屬性二元對,它們定義用戶菜單的屬性。 本設計中主程序創(chuàng)建主界面窗口自制菜單的程序如下: h1_file_menu=uimenu(h1,label,文件); h1_save_menu=uimenu(h1_file_menu,label,保存); h1_exit_menu=uimenu(h1_file_menu,label,退出,callback,close all); h1_help_menu=uimenu(h1,label,幫助,callback,msgbox(-360度<=φ1<=360度,help,modal);); h1_about_menu=uime
56、nu(h1,label,關(guān)于,callback,msgbox(作者:河南理工大學 邵翔宇 楊廣磊 email:sxy454003@ 2006年五月 版權(quán)所有,about,modal);); h1_acknowledge_menu=uimenu(h1,label,支持,callback,msgbox(在畢業(yè)設計的過程中得到了王小林院長和謝剛老師的耐心指導和大力支持 非常感謝!,acknowledge,modal);); 本例的結(jié)果如圖5—3所示: 在上例中用到了消息顯示對話框msgbox,從本質(zhì)上說,對話框也是一類窗口; 而從功能上說,對話框是用來要求用戶輸入某些信息或給用戶提供
57、某些信息而暫時出現(xiàn)的一個窗口。即對話框是用戶與計算機之間進行交互操作的一種手段,通過對話框,用戶可以通知計算機一些用戶所做的選擇,也可以輸入一些參數(shù)給計算機,并且計算機功能也給用戶提供一些信息或各種運行結(jié)果等。msgbox的調(diào)用格式為: msgbox(Message) msgbox(Message,Title) msgbox(Message,Title,Icon) msgbox(Message,Title,custom,IconData,IconCMap) msgbox(Message, ... ,CreateMode) 圖5—
58、3 自制菜單結(jié)果 此外,在主界面的設計中還用到了warndlg,它的調(diào)用格式為: Handle=warndlg(Warnstring,DlgTitle) 產(chǎn)生警告信息框并返回其句柄 [說明] 1)參數(shù)Warnstring是一個字符串變量,他表示了在對話框中要顯示的警告信息內(nèi)容 2)參數(shù)DlgTitle是一個字符串變量,它表示對話框的名稱 本設計中主程序創(chuàng)建主界面窗口自制警告信息對話框的程序如下: warndlg(歡迎你使用牛頭刨床六桿機構(gòu)運動分析程序,!!!hello!!!,modal) ; 圖5—4 信息框的設計結(jié)果 5.3
59、.3創(chuàng)建主界面的五個框架,各個編輯框、靜態(tài)文本和按鈕 在MATLAB系統(tǒng)中,共定義了9種不同類型的控件。這9種控件分別為: 命令按鈕(PushButton)、單選按鈕(RadioButton)、檢查框(Check Box)、列表框(List Box)、下拉式菜單(Popup Menu)、滑塊(Slider)、編輯框(Edit Box)、靜態(tài)文字(Static Text)、框架(Frame)。 控件是MATLAB所定義的10個基本圖形對象之一,在某一圖形窗口中的各種控件都是uicontrol命令實現(xiàn)的。它的調(diào)用格式: hcontrol=uicontrol(Prop
60、ertyName1,value1,PropertyName2,value2,...) [功能]:在句柄為handle的圖形窗口中實現(xiàn)一個控件,并返回該控件的句柄到hControl變量。 [說明]: 1)在所實現(xiàn)的控件中,其 PropertyName1屬性的屬性值為value1;PropertyName2屬性的屬性值為value2 2) 該控件的“雙親”句柄為handle,若缺省該參數(shù),則其“雙親”為當前窗口 3)對于該命令所實現(xiàn)的控件,其屬性值確定了該控件的外觀顯示特征及各種特點 4)當某一控件的取值被改變之后,會導致系統(tǒng)去執(zhí)行由其
61、‘callback’屬性所確定的一些響應序列 5)屬性‘style’確定了控件的基本外觀特征?!畇tyle’屬性的取值及其所表示的控件種類見表5—2 表5—2 控件style屬性取值及其對應的控件種類 Style屬性的取值 控件種類 Style屬性的取值 控件種類 Pushbutton push 命令按鈕 Popupmenu 下拉式菜單 Radiobutton,radio 單選按鈕 Slider 滑塊 Checkbox,check 檢查框 Edit 編輯框 Listbox ,list 列表框 Text 靜態(tài)文字 Frame 框架
62、 本設計中主程序創(chuàng)建主界面窗口框架的程序如下(因篇幅有限,只能列舉兩個框架的創(chuàng)建程序): h1_framec=uicontrol(... parent,h1,... style,frame,... position,[0.05 0.05 0.3 0.3],... foregroundcolor,b); h1_framej=uicontrol(... parent,h1,... style,frame,... position,[0.05 0.45 0.3 0.50],... foregroundcolor,b); 圖5—5 主界面框架的設計結(jié)果 本設計
63、中在主窗口中創(chuàng)建編輯框和靜態(tài)文本的程序如下(限于篇幅這里指列舉部分程序): h1_jgtext=uicontrol(... parent,h1,... style,text,... position,[0.05 0.95 0.15 0.05],... string,結(jié)構(gòu)參數(shù),... backgroundcolor,w,... fontsize,16); h1_cstext=uicontrol(... parent,h1,... style,text,... position,[0.05 0.35 0.15 0.05],... string,初始數(shù)據(jù),...
64、 backgroundcolor,w,... fontsize,16); h1_ydtext=uicontrol(... parent,h1,... style,text,... position,[0.40 0.30 0.15 0.05],... string,運動參數(shù),... backgroundcolor,w,... fontsize,16); h1_jl1text=uicontrol(... parent,h1,... style,text,... position,[0.10 0.87 0.05 0.05],... string,L1); h1_jl1ed
65、it=uicontrol(... tag,hL1,... parent,h1,... style,edit,... string,125,... position,[0.15 0.87 0.10 0.05],... backgroundcolor,w,... fontsize,6); h1_jl1htext=uicontrol(... parent,h1,... style,text,... position,[0.26 0.87 0.05 0.05],... string,mm,... fontsize,8); 本例的結(jié)果如圖5—6所示 圖5—6 靜態(tài)文本和編輯框的設計結(jié)果 本設計中在主窗口中創(chuàng)建命令按鈕的程序如下(限于篇幅這里只舉出部分程序): b=imread(saoxy,jpg); h1_mxjgbutton=uicontrol(... parent,h1,... style,push,... cdata,b,... position,[0.40 0.35 0.55 0.65],... backgr
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運動會安全工作預案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動總結(jié)+在機關(guān)“弘揚憲法精神推動發(fā)改工作高質(zhì)量發(fā)展”專題宣講報告會上的講話
- 2024年XX村合作社年報總結(jié)
- 2024-2025年秋季第一學期初中歷史上冊教研組工作總結(jié)
- 2024年小學高級教師年終工作總結(jié)匯報
- 2024-2025年秋季第一學期初中物理上冊教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學期小學語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習整治報告
- 2025年學校元旦迎新盛典活動策劃方案
- 2024年學校周邊安全隱患自查報告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報告