(參考)基于MATLAB的自動控制原理虛擬實驗平臺開發(fā)參考模板_第1頁
(參考)基于MATLAB的自動控制原理虛擬實驗平臺開發(fā)參考模板_第2頁
(參考)基于MATLAB的自動控制原理虛擬實驗平臺開發(fā)參考模板_第3頁
(參考)基于MATLAB的自動控制原理虛擬實驗平臺開發(fā)參考模板_第4頁
(參考)基于MATLAB的自動控制原理虛擬實驗平臺開發(fā)參考模板_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目錄摘要1Abstract11 緒論21.1 本文研究背景21.2 本文的選題意義21.3 本文的任務(wù)和要求31.3.1 本文任務(wù)31.3.2 本文要求32 自動控制原理虛擬實驗平臺總體概述及其實現(xiàn)工具介紹32.1 MATLAB工具介紹32.2 Simulink工具簡單介紹42.3 GUI簡單介紹與可視化接口環(huán)境42.3.1 GUI概念介紹42.3.2 GUI圖形用戶界面的打開52.4 自動控制原理簡單介紹73 虛擬實驗平臺總體概述73.1 虛擬實驗平臺設(shè)計原則73.2 虛擬實驗平臺設(shè)計界面模塊結(jié)構(gòu)及功能73.2.1 平臺模塊結(jié)構(gòu)73.2.2 平臺功能84 自動控制原理實驗在虛擬實驗平臺的實現(xiàn)

2、94.1 平臺界面的總體要求94.2 主界面的設(shè)計94.3 線型系統(tǒng)時域分析界面134.3.1 時域分析法的介紹134.3.2 時域分析界面的設(shè)計144.4 線型系統(tǒng)根軌跡分析界面174.4.1 根軌跡法的介紹184.4.2 根軌跡界面的設(shè)計184.5 線性系統(tǒng)頻域分析界面194.5.1 頻域法的介紹194.5.2 頻域分析界面的設(shè)計204.6 控制系統(tǒng)校正實驗界面224.6.1 控制系統(tǒng)校正介紹224.6.2 控制系統(tǒng)校正實驗界面的設(shè)計225 結(jié)論25參考文獻26附錄127致謝551 / 64 1 緒論1.1 本文研究背景對于大學生而言自動控制原理是大學階段的自動控制工程、機器自動控制操作、

3、物流設(shè)備工程等專業(yè)的重要的專業(yè)基礎(chǔ)課程,涉及到自動控制系統(tǒng)的模型建立、系統(tǒng)分析、系統(tǒng)設(shè)計的相關(guān)基本理論和相關(guān)技術(shù)設(shè)計。它的典型特點是概念比較抽象,數(shù)字含量巨大,計算相當復雜,從而導致學生比較難于理解和消化,實驗是理解和消化相關(guān)課程內(nèi)容的非常重要的途徑。目前相當多的大學高校的實驗教學仍處于傳統(tǒng)模擬實驗階段,通過利用集成封閉的傳統(tǒng)實驗箱,將相應(yīng)的有源網(wǎng)絡(luò)模塊整個連接成了典型環(huán)節(jié)和系統(tǒng),然后施加典型信號,通過示波器仔細觀察實驗結(jié)果。然而對于這種實驗方法仍存在明顯不足,比如說(1)實驗室的實驗箱集成度很高,從而讓學生對實驗目的和實驗計劃出現(xiàn)盲目性,所以很容易導致?lián)p壞儀器設(shè)備。(2)學生的理論性知識和實

4、驗動手操作是互相分開的,導致了學生缺乏主動性學習和創(chuàng)造性性學習。(3)因為元件的非線性等一些元素,導致了實驗結(jié)果與理論知識差異較大,相距甚遠。為了改變這種現(xiàn)象,我們通過利用MATLAB中的具有可視化編程能力的圖形用戶界面(簡稱GUI)和控制系統(tǒng)工具箱中的有關(guān)的豐富的庫函數(shù)等,開發(fā)出了基于MATLAB的自動控制原理虛擬實驗平臺。1.2 本文的選題意義自動控制原理虛擬實驗平臺就是把真實的相關(guān)的自動控制環(huán)節(jié)、系統(tǒng)和數(shù)學建模有機地結(jié)合的一個實驗操作平臺。學生不僅可以在平臺上修改相關(guān)的實驗參數(shù)、改變相關(guān)的輸入信號、觀察相應(yīng)的響應(yīng)情況,同時還可以觀察數(shù)學模型的具體的變化情況。MATLAB是面對科學計算的高

5、性能可視化編程仿真軟件,GUI是一種的圖形用戶界面。通過MATLAB/GUI設(shè)計和開發(fā)自動控制原理虛擬實驗平臺,不但能很好地解決傳統(tǒng)實驗存在的問題,加深對自動控制原理理論課程內(nèi)容的理解,更能使學生擺脫復雜的數(shù)學公式,對新知識產(chǎn)生濃厚的探索興趣。在設(shè)計過程中,我通過查閱相關(guān)的資料,增強了自己的自我學習能力和思考能力,同時通過向老師和同學的虛心求教,增強了自己的溝通能力。1.3 本文的任務(wù)和要求1.3.1 本文任務(wù)本次畢業(yè)設(shè)計研究的任務(wù)是基于MATLAB的自動控制原理虛擬實驗平臺的實現(xiàn),簡單的要求是用MATLAB中的GUI建成一個可視化的圖形開發(fā)平臺,在這個平臺上去實現(xiàn)自動控制原理各個實驗要求和實

6、驗功能,驗證實驗原理。1.3.2 本文要求通過自動控制原理虛擬實驗平臺實現(xiàn)線型系統(tǒng)的時域分析、線性系統(tǒng)的根軌跡分析、線型系統(tǒng)的頻域分析、控制系統(tǒng)的串聯(lián)校正實驗,然后重點介紹線性系統(tǒng)的時域分析的具體的原理、方法、實現(xiàn)的功能、實驗操作過程以及仿真圖形。2 自動控制原理虛擬實驗平臺總體概述及其實現(xiàn)工具介紹2.1 MATLAB工具介紹 我們在設(shè)計自動控制原理虛擬實驗平臺的時候需要用到MATLAB設(shè)計工具,以此搭建我們所想要的虛擬實驗平臺,為了對后面更好地的設(shè)計與實驗,我們需要了解MATLAB的發(fā)展歷史以及它的功能,掌握軟件的實際操作原理。在20世紀80年代以來,為了研究某種問題,各種計算機語言接連出現(xiàn)

7、,當然,在數(shù)學研究當中,為了更好地更方便地數(shù)值計算、科學研究、工程計算等其他方面,MATLAB軟件應(yīng)運而生。MATLAB是由美國人MathWorks公司推出,是MATrix LABoratory的縮寫,中文名稱是矩陣實驗室。自推廣以來,得到了社會上的普遍認同以及廣泛的應(yīng)用,發(fā)展至今推出了各種版本,里面的功能越來越豐富和強大,同時它的語言易于掌握,所以深受各大高等學校的喜愛以及科學研究人員的使用,尤其在歐美高校,MATLAB軟件的使用成為了學生的必備的學習技能。毋庸置疑,MATLAB的功能相當強大,可以用于數(shù)值分析、數(shù)值和符號計算、工程與科學繪圖、控制系統(tǒng)的設(shè)計與仿真以及圖形處理,同時具有內(nèi)容強

8、大的工具箱進行設(shè)計開發(fā)。MATLAB是一個具有很強的開放性軟件,除了可以利用的內(nèi)部函數(shù)外,我們可以自己對里面的源文件進行修改或者可以加入自己編寫好的文件進行設(shè)計使用。2.2 Simulink工具簡單介紹Simulink是Math Works軟件公司在1990年推出來的,它是實現(xiàn)控制系統(tǒng)進行構(gòu)造模型、仿真設(shè)計和分析的軟件包,簡單來說就是MATLAB軟件功能的一種拓展,它提供了不同功能的基本系統(tǒng)模塊,我們只要知道這些模塊的輸入、輸出以及它的功能,而不必知道各種模塊的里面具體的功能與實現(xiàn),只要通過各種模塊的調(diào)用與連接就能構(gòu)造出我們所需要的系統(tǒng)模型,文件存儲形式以.mdl形式存取,最后我們可以基于此進

9、行方針與分析。對于簡單的控制系統(tǒng)來說,我們可以利用相關(guān)的函數(shù)和相關(guān)的線性方程進行求解,但對更為復雜的系統(tǒng)來說,我們之前的方法就不可以實現(xiàn)了,所以則必須使用Simulink進行仿真與分析。2.3 GUI簡單介紹與可視化接口環(huán)境2.3.1 GUI概念介紹由菜單、窗口、對話框等各種圖形元素構(gòu)成的用戶界面被叫做圖形用戶界面,英文名稱是Graphical User Interface,簡稱GUI。它是計算機與用戶進行信息交流的窗口和平臺,在自動控制原理虛擬實驗平臺設(shè)計當中它賦予著主要設(shè)計工作。對于GUI操作應(yīng)該是易于理解的便于操作的,當我們點擊某項操作的時候,用戶圖形界面就已經(jīng)開始了它的功能操作。MAT

10、LAB作為一款強大的科學計算軟件,同時也提供了圖形用戶界面設(shè)計的功能,它包括了三類圖形用戶界面對象,包括用戶界面控件對象、下拉式菜單對象和快捷菜單對象。根據(jù)我們所想要的圖形用戶界面對象,我們可以設(shè)計出界面非常友好、操作相當方便的圖形用戶界面。在MATLAB軟件中,為GUI開發(fā)提供了一個非常方便且高效的集成開發(fā)環(huán)境GUIDE。GUIDE主要是一個界面設(shè)計工具集,所有GUI設(shè)計都被MATLAB支持在這個集成的環(huán)境中。GUIDE將所有設(shè)計好的GUI設(shè)計模型保存在一個.fig文件當中,并且同時生成了.m文件,對于.fig文件設(shè)計,它包括了GUI圖形窗口以及圖形窗口對象,對于.m文件而言,它包括了GUI

11、設(shè)計、控制函數(shù)及其定義為子函數(shù)的用戶控件回調(diào)函數(shù)。GUIDE在GUI設(shè)計過程中直接自動生成了.m文件框架,它所具有的優(yōu)點如下: (a).m文件在.fig文件生成的同時就已經(jīng)生成了一些必要的代碼。 (b)管理圖形對象句柄并執(zhí)行回調(diào)函數(shù)的子程序。 (c)支持自動插入回調(diào)函數(shù)原型。 (d)提供了管理全局變量的便利途徑。2.3.2 GUI圖形用戶界面的打開在MATLAB中打開GUI可以以下的操作方法(1) 選擇菜單欄上的“File”選項,再選擇“New”選項,最后得到“GUI”命令。(2) 在命令窗口(commend Windows)當中輸入“Guide”命令或者輸入“Guide Filename”,

12、同樣可以打開可視化接口。(3) 選擇菜單欄上的“GUIDE”快速啟動按鈕,可以直接打開界面。MATLAB軟件為GUI圖形用戶界面設(shè)計總共準備了4種模板,包括Blank GUI(默認)、GUI with Uicontrols(帶控件對象的GUI模板)、GUI with Axes and Menu(帶坐標軸與菜單的GUI模板)與Modal Question Dialog(帶模式問話對話框的GUI模板)。如下圖圖2-1 GUI的初始化界面如果沒有設(shè)計好的可視化圖形文件,我們要選擇空白的可視化文件,即Blank GUI(空白),然后點擊OK按鈕,就會顯示出GUI設(shè)計窗口,如下圖2-2。圖2-2 GUI

13、設(shè)計窗口從GUI設(shè)計窗口可以看出,共有五個設(shè)計工具,它們分別是:(a) 對象屬性查看器(Property):可以查看每個對象的屬性值,同時可以修改設(shè)置對象的屬性值。(b) 菜單編輯器(Menu Editor):對下拉式菜單進行創(chuàng)建、設(shè)計和修改。(c) 位置調(diào)整工具(Alignment Tool):多個對象通過該工具左右、上下進行位置進行調(diào)整。(d) 對象瀏覽器(Object Browser):可以觀察當前設(shè)計階段的各個句柄圖形對象。(e) Tab順序編輯器(Tab Order Editor):通過該工具,設(shè)置當按下鍵盤上的Tab鍵時,對象被選中的先后順序。通過控件的布局,相應(yīng)的生成了m函數(shù)文件

14、,對于空間的性能,我們可以通過在回調(diào)函數(shù)里面進行相應(yīng)的修改,以達到自己的要求,通過這樣的方法可以很方便的設(shè)計出友好的,簡潔的,功能強大的圖形界面。2.4 自動控制原理簡單介紹隨著計算機技術(shù)的飛快的發(fā)展和廣泛的應(yīng)用,自動控制原理理論和技術(shù)在宇宙航空、機器人控制、導彈制導衛(wèi)星發(fā)射和核能等高科技領(lǐng)域方面的應(yīng)用越來越廣泛。同時自動控制原理技術(shù)的應(yīng)用范圍現(xiàn)在已擴展到生物、醫(yī)學、環(huán)境等生活中的其他領(lǐng)域,成為人們生活當中不可或缺的一部分。隨著人類社會的進步和人們生活水平的提高,自動控制原理技術(shù)必將在人類的未來當中對于人類去認識自然改造自然發(fā)揮著難以想象的作用。所以對于一個工程技術(shù)人員,學習自動控制原理有關(guān)的

15、知識有必要的。同時大學階段的學習已經(jīng)把自動控制原理當作一門專業(yè)基礎(chǔ)課程,尤其是電氣自動化、電力系統(tǒng)、船舶與海洋工程等相關(guān)的專業(yè)都已經(jīng)開設(shè)了這門課程。自動控制原理的主要內(nèi)容包括控制系統(tǒng)數(shù)學模型、時域分析法、根軌跡分析法、頻域分析發(fā)以及控制系統(tǒng)校正與綜合等方面知識。它們大都將在這個虛擬實驗平臺得以實現(xiàn)與研究分析。3虛擬實驗平臺總體概述3.1 虛擬實驗平臺設(shè)計原則本次所設(shè)計的虛擬實驗平臺是基于MATLAB7.0以上的版本所開發(fā)出來的,在整個設(shè)計當中,為了更好地讓大家看清整個的設(shè)計流程,我們是采用的自上而下、由上一級轉(zhuǎn)到下一級而設(shè)計。在設(shè)計過程中,我們首先要確定一個總體框架,然后我們再確定好我們要研究

16、的幾個實驗原理項目作為這個框架的子系統(tǒng),之后在各個實驗原理上設(shè)計兩三個對應(yīng)這個實驗原理的功能實現(xiàn)、認證以及分析,在編程設(shè)計方面,我們要由下而上去設(shè)計,設(shè)計好每個部分的編程代碼,最后實現(xiàn)一個整體虛擬實驗平臺的開發(fā)3.2 虛擬實驗平臺設(shè)計界面模塊結(jié)構(gòu)及功能3.2.1 平臺模塊結(jié)構(gòu)該虛擬實驗平臺設(shè)虛擬實驗平臺有四大部分構(gòu)成,包括線型系統(tǒng)時域分析、線性系統(tǒng)頻域分析、線型系統(tǒng)根軌跡分析以及控制系統(tǒng)串聯(lián)校正,如下結(jié)構(gòu)圖:圖3-1 虛擬實驗平臺結(jié)構(gòu)圖3.2.2平臺功能該虛擬實驗平臺的功能是以根據(jù)生活中關(guān)于科學研究、教學活動、學生實驗探究為目的所完成的,所以該平臺的功能要設(shè)計成集成的、多樣化的一個實驗平臺,具

17、體的功能如下:(a)虛擬實驗平臺輸入?yún)?shù)形式多樣化:如傳遞函數(shù)輸入的形式,可以任意改變分子分母的參數(shù)。(b)虛擬實驗平臺繪圖功能:通過參數(shù)的設(shè)定,我們可以得到我們所想要的響應(yīng)曲線或是波形圖等其他仿真圖形。(c)虛擬實驗平臺分析功能:比如在時域分析中我們可以得到階躍響應(yīng)性能指標(峰值時間、超調(diào)量、調(diào)節(jié)時間),在頻域分析中我們可以得到諧振頻率、諧振峰值、頻帶、零頻。(d)控制系統(tǒng)校正功能:對所需要的校正的控制系統(tǒng)進行超前校正和滯后校正,可以得到校正前后的bode圖和階躍響應(yīng)曲線以及各種性能指標。4 自動控制原理實驗在虛擬實驗平臺的實現(xiàn)4.1 平臺界面的總體要求我們在設(shè)計我們所需要的界面基本上都會選

18、擇GUI作為優(yōu)選工具,以達到事半功倍的效果。該設(shè)計的虛擬實驗平臺包括三級界面,第一級界面就是我們的主界面,由主界面可以進入到第二級界面,包括線性系統(tǒng)時域分析界面、線性系統(tǒng)頻域分析界面、線性系統(tǒng)根軌跡分析界面控制系統(tǒng)校正實驗界面。每個第二級界面都可以進入到實現(xiàn)它的某種功能的第三級界面,對于線型系統(tǒng)時域分析界面來說,它的所實現(xiàn)的波形圖就在該界面,所以不需要再進入下一級界面面,對于線性系統(tǒng)頻域界面來說,下一級界面包括了奈奎斯特曲線以及伯德圖,對于線性系統(tǒng)根軌跡分析界面來說,下一級界面有開環(huán)零極點對根軌跡的影響等,對于控制系統(tǒng)的串聯(lián)校正實驗界面來說,包括了基于頻域法的超前校正及基于頻域法的滯后校正界面

19、。所以對于界面設(shè)計來說,我們是由上而下來設(shè)計的。4.2 主界面的設(shè)計我們設(shè)計的主界面能夠讓用戶很快地了解該虛擬實驗平臺的大概的功能,并且可以通過簡單的操作在圖形用戶界面上進行程序的編寫。該界面有四個窗口空間組成組成,在各自的窗口中我們可以通過圖形用戶界面可以很方便的了解自動控制原理的幾個典型的實驗模型,下面我們來介紹主界面的設(shè)計,具體步驟如下:首先我們點擊MATLAB界面工具欄上的快速啟動圖標,可以直接啟動一個GUIDE的集成開發(fā)環(huán)境的對話框,或者在file菜單中點擊new,在點擊GUI也是可以,當然了直接在命令窗口(Command Window)上輸入GUIDE命令也是可以的,最好的啟動方式

20、還是第一種方法。選擇空白操作界面,保存文件名dianxinghuanjie.fig,則打開了一個設(shè)計界面,同時也自動生成了dianxinghuanjie.m文件。我們在GUIDE的設(shè)計編輯區(qū)內(nèi)(Layout Area)內(nèi)從工具欄上拖入一個靜態(tài)文本框(Static Text),靜態(tài)文本是在對話框中顯示我們所需要的說明性文字,雙擊該控件,我們可以打開一個對象屬性框,或者可以通過單擊該控件點擊對象屬性查看器(Property Inspector)也可以打開,選擇String屬性,該屬性的取值是字符串,它定義了控件對象的說明性文字,寫入“自動控制原理虛擬實驗平臺”用來給用戶提供必要的提示,但用戶不能在

21、程序的執(zhí)行過程種中來修改文字說明, 如果要改變字體的大小粗細,可以點擊FontWeight屬性,它定義了字體的粗細,點擊FontSize屬性,它定義了字體的大小,屬性的取值是數(shù)值,點擊ForegroundColor屬性,定了控件對象的說明性文字的顏色,其默認顏色是黑色,利用上述的方法,再點擊一個靜態(tài)文本框,寫入“歡迎使用”。然后選擇坐標軸(Axes)控件,它是用來顯示圖形和圖像,在這里我們要添加一張圖片,我們用imshow函數(shù)來實現(xiàn),在之后生成的M文件里添加imshow(IncoIncol.png)這個語句,選擇面板控件(Panel),再雙擊屬性查看器,修改屬性Title為“實驗選擇”,再調(diào)整

22、標題文字方向位于正上中央,在拖入四個按鈕控件(Push Button),按鈕控件是最常用的控件對象,它的主要特征是在矩形框上加上文字說明,一個按鈕只代表一種操作。之后在String的屬性下分別改成線型系統(tǒng)時域分析、線型系統(tǒng)頻域分析、線性系統(tǒng)根軌跡分析、控制系統(tǒng)校正實驗。對于上面四個控件按鈕我們也可以再進行菜單的建立,我們可以通過GUI設(shè)計窗口的工具欄上的Menu Editor 命令按鈕打開,還可以在菜單欄中點擊“Tool”,再點擊“Menu Edior”(菜單編輯器)。如下圖4-1,該圖是已經(jīng)編輯好的菜單編輯器。圖4-1 設(shè)置菜單后的菜單編輯器通過該圖形我們可以看到,菜單編輯器的左上角的第一個

23、按鈕的作用是用來創(chuàng)建一級菜單項,第二個按鈕是用來使用來創(chuàng)建一級菜單的子菜單,要想創(chuàng)建這個子菜單,我們必須要先點擊一級菜單項后,選中左上角的第二個按鈕來創(chuàng)建。我們可以發(fā)現(xiàn),創(chuàng)建某個菜單項后,圖框的右邊就會顯示該菜單的相關(guān)的屬性,我們可以在這里設(shè)置好我們的屬性,我們先創(chuàng)建四個一級菜單,分別在右邊Label屬性中修改為實驗一、實驗二、實驗三和實驗四,再在各自的子菜單中的屬性項里修改為線性系統(tǒng)時域分析、線型系統(tǒng)根軌跡分析、線性系統(tǒng)頻域分析和控制系統(tǒng)的串聯(lián)校正實驗。同時也分別在各自的Tag屬性中修改,分別為One、Time、Two、Rlocus、Three、Frequency、Four、Modify。T

24、ag屬性是用來定義控件的標識值,取值為字符串,在任何程序中都可以通過該標識值來控制該控件。同時我們必須在各自對應(yīng)的Callback屬性中進行修改。(1)菜單實驗一的Callback屬性:dianxinghuanjie('One_Callback',hObject,eventdata,guidata(hObject) 子菜單線性系統(tǒng)時域分析的Callback屬性:dianxinghuanjie('Time_Callback',hObject,eventdata,guidata(hObject)(2)菜單實驗二的Callback屬性:dianxinghuanjie(

25、'Two_Callback',hObject,eventdata,guidata(hObject)子菜單線性系統(tǒng)根軌跡分析屬性:dianxinghuanjie('Rlocus_Callback',hObject,eventdata,guidata(hObject)(3)菜單實驗三的Callback屬性:dianxinghuanjie('Three_Callback',hObject,eventdata,guidata(hObject) 子菜單線性系統(tǒng)頻域分析屬性:dianxinghuanjie('Frequency_Callback

26、9;,hObject,eventdata,guidata(hObject)(4)菜單實驗四的Callback屬性:dianxinghuanjie('Four_Callback',hObject,eventdata,guidata(hObject)子菜單控制系統(tǒng)校正實驗的Callback屬性:dianxinghuanjie('Modify_Callback',hObject,eventdata,guidata(hObject)最后我們再一次保存設(shè)計好的dianxinghuanjie.fig文件,選擇工具欄上的運行按鈕,同時也自動生成了dianxinghuanjie

27、.m文件。得到主界面圖形,如圖4-2: 圖4-2 主界面圖4.3 線性系統(tǒng)時域分析界面4.3.1 時域分析法的介紹時域分析法是以拉普拉斯變換為工具,利用傳遞函數(shù)直接在時間域上研究自動控制系統(tǒng)的一種方法。它通過響應(yīng)曲線來分析控制系統(tǒng)的一些性能,具有直接而全面的優(yōu)點,但仍有一些不足,比如在分析的過程當中計算量較大,尤其是對于高階系統(tǒng)。時域響應(yīng)指的是系統(tǒng)在外部的輸入(設(shè)定值輸入或是擾動輸入)作用下的輸出過程,典型的時域響應(yīng)有單位階躍響應(yīng)、單位脈沖響應(yīng)、單位斜坡響應(yīng)、單位加速度響應(yīng)、單位正弦響應(yīng)。本時域分析法的設(shè)計以典型輸入的單位脈沖輸入、單位階躍輸入以及單位斜坡輸入為主的輸入,來觀察各個的響應(yīng)曲線進

28、行分析,通過階躍響應(yīng)性能指標(包括峰值時間、調(diào)節(jié)時間、上升時間、超調(diào)量)來研究問題和分析問題,主要針對一階或二階系統(tǒng)。對于分子與分母參數(shù)的設(shè)定是任意的隨機的,這更加使問題研究的深入與透徹。4.3.2 時域分析界面的設(shè)計根據(jù)設(shè)計需要,我們需要在布局編輯區(qū)里添加八個靜態(tài)文本框(Static Text),兩個按鈕(Push Button),也要修改自己String屬性,同時還要添加兩個文本編輯框(Edit Text)、五個單選按鈕(Radio Button)、六個面板控件(Panel)和一個坐標軸(Axes),整體的模塊布局就可以了,完成各部件的屬性的設(shè)置,保存為Time_reponse.fig文件

29、中。為了實現(xiàn)控件的功能,我們需要編寫相應(yīng)的程序代碼。右鍵單擊任一圖形對象,在彈出的快捷菜單中點擊View Callbacks,在點擊Callback命令,這時將自動打開一個M文件,這個時候就可以在各控件相應(yīng)的回調(diào)函數(shù)區(qū)內(nèi)修改對應(yīng)的程序代碼。下面是部分程序代碼:function radiobutton4_Callback(hObject, eventdata, handles)set(hObject,'Value',1);set(handles.radiobutton5,'Value',0);set(handles.radiobutton3,'Value&

30、#39;,0);num=str2num(get(handles.edit1,'String');%獲取控件Tag屬性為edit1的控件里面的數(shù)值作為分子den=str2num(get(handles.edit2,'String');%獲取控件Tag屬性為edit2的控件里面的數(shù)值作為分母load('dataDdata.mat');if (fla=0) G=tf(num,den); y,t=step(G); %開環(huán)階段響應(yīng) axes(handles.axes2) plot(t,y,'Linewidth',2) elseif(fla=

31、1) G=tf(num,den); y,t=step(feedback(G,1); %閉環(huán)階段響應(yīng) axes(handles.axes2) plot(t,y,'Linewidth',2) hold on Y,k=max(y); tp=fix(t(k)*100)/100; %求峰值時間 plot(tp tp,0 Y,'-r','Linewidth',1.5); plot(0 tp,Y Y,'-r','Linewidth',1.5); plot(tp,0,'o', 'MarkerEdgeColo

32、r','k', 'MarkerFaceColor','k','MarkerSize',6); %畫出峰值時間點 str0=num2str(tp); str=str0,'s' set(handles.text7,'String',str) C=dcgain(feedback(G,1); %求系統(tǒng)穩(wěn)態(tài)值 M=fix(1000*(Y-C)/C)/10; str0=num2str(M); str=str0,'%' set(handles.text8,'String',

33、str) %求超調(diào)量 n=1; while y(n)<0.1*C %通過循環(huán),求取輸出第一次到達終值的10%的時間 n=n+1; end m=k; while y(n)>0.9*C %通過循環(huán),求取輸出第一次到達終值的90%的時間 m=m-1; end risetime=fix(100*(t(m)-t(n)/100; %求上升時間 str0=num2str(risetime); str=str0,'s' set(handles.text6,'String',str) %顯示上升時間 i=length(t); while (y(i)>0.98*C

34、)&(y(i)<1.02*C) i=i-1; end Settingtime=fix(100*t(i)/100; %求調(diào)節(jié)時間 str0=num2str(Settingtime); str=str0,'s' set(handles.text12,'String',str) %顯示調(diào)節(jié)時間plot(Settingtime,0,'o', 'MarkerEdgeColor','k', 'MarkerFaceColor','m','MarkerSize',6);

35、 %顯示調(diào)節(jié)時間%的時間點 hold off F,h=findpeaks(y); che=length(F); if(che>=2) rate=fix(100*(F(1)-C)/(F(2)-C)/100;%求衰減比 str0=num2str(rate); str=str0,'%' set(handles.text14,'String',str) %顯示衰減比 else set(handles.text14,'String','ÎÞË¥¼õ±È')

36、 %求衰減比 end endgrid onxlabel('Time(s)')ylabel('Y(t)')完成回調(diào)函數(shù)后,我們點擊運行一下,得到線性系統(tǒng)時域分析圖,從圖中我們可以看到階躍響應(yīng)曲線,以及系統(tǒng)的性能指標,如圖4-3:圖4-3 線型系統(tǒng)時域分析圖4.4 線型系統(tǒng)根軌跡分析界面4.4.1根軌跡法的介紹根軌跡分析法是一種求系統(tǒng)閉環(huán)極點的圖解方法,它由開環(huán)傳遞函數(shù)來求取閉環(huán)特征根的軌跡的規(guī)律,不用求解高階系統(tǒng)的特征根。當改變增益值或增加開環(huán)零極點時,可以利用根軌跡法預測其對閉環(huán)零點位置的影響。根據(jù)開環(huán)系統(tǒng)的零點和極點,通過一個或幾個參數(shù)的變化,來研究系統(tǒng)極點變

37、化情況。在MATLAB中采用函數(shù)pzmap()繪制系統(tǒng)零點,輸入“rlocus(GH)”可得到我們需要的根軌跡圖。4.4.2根軌跡界面的設(shè)計與分析界面設(shè)計包括三個部分的參數(shù)的輸入,一個是開環(huán)增益的參數(shù)的參數(shù)的輸入,一個是零點參數(shù)的輸入,另一個是極點參數(shù)的輸入,通過這些參數(shù)的輸入,我們可以得到根軌跡一些性能的分析。最后再對其余的控件進行布局,最后點擊保存在Rlocus.fig文件中,同時生成了Rlocus.m文件,再在Rlocus.m文件中相應(yīng)的回調(diào)函數(shù)程序區(qū)內(nèi)修改和添加相應(yīng)的程序,最后點擊運行,得到線型系統(tǒng)根軌跡分析圖,如圖4-4,我們可以看到閉環(huán)系統(tǒng)單位階躍響應(yīng)曲線。 圖4-4 線型系統(tǒng)根軌

38、跡分析圖然后我們點擊一下開環(huán)根軌跡按鈕,得到開環(huán)根軌跡曲線,如圖4-5:然后我們可以改變一些參數(shù),來繼續(xù)觀察開環(huán)根軌跡曲線。圖4-5 開環(huán)根軌跡曲線當我們改變參數(shù),我們會得出一些根軌跡的性能結(jié)論分析。我們會發(fā)現(xiàn),當加入開環(huán)零點,則會改變漸近線的條數(shù)和漸近線的傾角;當增加開環(huán)零點的個數(shù),相當于增加微分作用,使得根軌跡向左移動或是彎曲,這樣的好處是大大的提高了控制系統(tǒng)的相對穩(wěn)定性,同時我們可以發(fā)現(xiàn),當增加的開環(huán)零點越來越接近坐標軸的原點的時候,它的微分作用就會越來越強,表明了控制系統(tǒng)的相對穩(wěn)定性非常的好;當加入開環(huán)極點的時候,則會改變漸近線的條數(shù)的漸近線的傾角,增加開環(huán)極點的個數(shù),等于是增強了積分

39、的作用,從而導致了根軌跡向右移動或者是彎曲,從而降低了控制系統(tǒng)的穩(wěn)定性。4.5 線型系統(tǒng)頻域分析界面4.5.1 頻域法的介紹對于頻域分析法來說,它是一種利用頻域特性來研究控制系統(tǒng)的一種圖解方法,以傳遞函數(shù)為基礎(chǔ),反映了控制系統(tǒng)對正弦輸入的響應(yīng)性能。在頻域法中其基本思想是將控制系統(tǒng)中的各個變量看做成信號來處理,而且這些信號都是由正弦信號合成的,同時它們的頻率是不同的。要研究頻域法的特性可以通過頻域特性曲線進行研究,包括曲線的形狀及其特征量。而頻域特性是指穩(wěn)態(tài)輸出與輸入之比在正弦信號的作用下相對頻域的有關(guān)特性。4.5.2 頻域分析界面的設(shè)計我們可以作出伯德圖和奈奎斯特曲線以及單位階躍響應(yīng)曲線來分析

40、頻域特性,進行模塊布局,保存在Frequency.fig文件中,在同時生成的m文件中對各個控件的回調(diào)函數(shù)進行相應(yīng)的修改,并點擊運行,得到線型系統(tǒng)頻域分析界面,如圖4-6,點擊伯德圖控件,得到伯德圖,如圖4-7,點擊奈奎斯特控件圖標,如圖4-8,改變傳遞函數(shù)輸入的參數(shù)進行頻域特性分析。圖4-6 線型系統(tǒng)頻域分析圖 圖4-7 伯德圖圖4-8 奈奎斯特曲線4.6 控制系統(tǒng)校正實驗界面4.6.1 控制系統(tǒng)校正介紹在實際的社會生活中,我們往往對一個系統(tǒng)設(shè)計的過程中,為了達到某些性能指標和設(shè)計要求,需要進行參數(shù)的選擇或是對原有的控制系統(tǒng)進行元件的添加,這就是我們所要研究的控制系統(tǒng)的校正問題??刂葡到y(tǒng)校正根

41、據(jù)校正裝置的特性可以分為超前校正、滯后校正、滯后-超前校正、串聯(lián)校正以及反饋校正。4.6.2控制系統(tǒng)校正實驗界面的設(shè)計在我們的控制系統(tǒng)校正實驗中,我們主要研究基于頻率法的串聯(lián)超前校正以及串聯(lián)滯后校正,通過單位階躍響應(yīng)曲線、伯德圖來具體研究。先進性模塊布局,保存在Modify.fig文件中,自動生成了Modify.m文件,并在相應(yīng)的回調(diào)函數(shù)內(nèi)修改程序,最終點擊運行,得到控制系統(tǒng)校正實驗界面圖,如圖4-9,可以看到系統(tǒng)校正前后的伯德圖,點擊超前校正控件按鈕,得到校正前后系統(tǒng)階躍響應(yīng)曲線,如圖4-10,點擊之后滯后校正控件按鈕,得到校正前后系統(tǒng)階躍響應(yīng)曲線,如圖4-11。同時我們改變參數(shù)的輸入,并加

42、以分析。圖4-9 控制系統(tǒng)校正實驗圖圖4-10 超前校正前后系統(tǒng)階躍響應(yīng)曲線圖4-11 滯后校正前后系統(tǒng)階躍響應(yīng)曲線5 結(jié)論經(jīng)過幾個月的努力,我最終完成了基于MATLAB的自動控制原理虛擬實驗平臺的開發(fā),對自動控制原理的幾個實驗都較好的進行了仿真,通過仿真圖形的分析,加深了對自動控制原理的深入的了解,被MATLAB的強大功能所吸引,已經(jīng)較為熟練地掌握了MATLAB的一些功能操作,對MATLAB的程序語言更為的熟悉與了解。在設(shè)計開發(fā)的過程中遇到了很多的困難,但這份曲折的過程鍛煉了我的獨立思考的能力與分析能力, 讓我明白了解決一個問題必須要首先要了解它的基本原理,只有這樣處理問題才能事半功倍,達到

43、預期的效果,同時也提高了我與他人的溝通能力,謙虛地向別人求教,也很感謝我的指導老師。設(shè)計雖然完成了但同時也發(fā)現(xiàn)了自己能力的不足,在今后人生道路上會更加的努力。參考文獻1馮程,初俊博,汪微檳.基于Matlab的虛擬實驗平臺在大學生科技創(chuàng)新活動中的應(yīng)用J.科技風,2015(02)2劉金頌,張慶陽,蘇曉峰,楊蕾.Matlab軟件在自動控制原理實驗中的應(yīng)用J.實驗技術(shù)與管理,2014(06)3李東,馮喬,李敏.高職院校電類課程虛擬實驗系統(tǒng)的項目實施J電子世界,2014(03)4張佳.基于小型光電跟蹤系統(tǒng)的PID控制實驗J.實驗室研究與探索,2013(11)5劉中,袁少強,張軍香.自動控制原理實驗課的改

44、革與實踐J.實驗室研究與探索,2013(11)6王煥然,徐穎秦.自動控制原理虛擬實驗平臺的設(shè)計與開發(fā)J.電力系統(tǒng)及其自動化學報.2010(04)7彭道剛,楊平,金光遠.基于VB和MATLAB的自動控制原理CAI軟件設(shè)計J.上海電力學院學報,2006(02)8蔣珉,馬天河,劉彬,程成.自動控制原理的MATLAB軟件實驗平臺J.電氣電子教學學報,2004(01)9張巍,蔡啟仲,羅文廣.MATLAB在自動控制原理實驗方面的應(yīng)用J.廣西工學院學報.1999(04)10李農(nóng)莊,候國蓮,張建華.MATLAB環(huán)境下的自動控制原理教學軟件開發(fā)J.現(xiàn)代電力.1999(03)附錄1:虛擬實驗平臺總源程序%主界面的

45、源程序function varargout = dianxinghuanjie(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', dianxinghuanjie_OpeningFcn, . 'gui_OutputFcn', dianxinghuanjie_OutputFcn, . 'gui_LayoutFcn', , .

46、'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction dianxinghuanjie_OpeningFcn(hObject, eventdata, handles, varargin)hand

47、les.output = hObject;movegui(gcf,'center')axes(handles.axes1)imshow('IncoInco1.png')guidata(hObject, handles);function varargout = dianxinghuanjie_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function Time_Callback(hObject, eventdata, handles)close(gcf)Time_Repo

48、nse;function One_Callback(hObject, eventdata, handles)function Two_Callback(hObject, eventdata, handles)function Three_Callback(hObject, eventdata, handles)function Four_Callback(hObject, eventdata, handles)function Rlocus_Callback(hObject, eventdata, handles)close(gcf)Rlocus;function Frequency_Call

49、back(hObject, eventdata, handles)close(gcf)Frequency;function Modify_Callback(hObject, eventdata, handles)close(gcf)Modify function OK_Callback(hObject, eventdata, handles)close(gcf)Time_Reponse;function pushbutton3_Callback(hObject, eventdata, handles)close(gcf)Rlocus;function pushbutton4_Callback(

50、hObject, eventdata, handles)close(gcf)Frequency;function pushbutton5_Callback(hObject, eventdata, handles)close(gcf)Modify;%線型系統(tǒng)時域分析界面的源程序function varargout = Time_Reponse(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gu

51、i_OpeningFcn', Time_Reponse_OpeningFcn, . 'gui_OutputFcn', Time_Reponse_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varar

52、gin:);else gui_mainfcn(gui_State, varargin:);end function Time_Reponse_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject; num=str2num(get(handles.edit1,'String');den=str2num(get(handles.edit2,'String');movegui(gcf,'center');set(handles.radiobutton1,

53、9;Value',0);set(handles.radiobutton2,'Value',1);fla=1; %標志,用來確定系統(tǒng)是開環(huán)還是閉環(huán),fla=1是閉環(huán),fla=0是開環(huán)save('dataDdata','fla');G=tf(num,den);C=dcgain(feedback(G,1); %求階躍響應(yīng)的終值Step=1; %單位階躍輸入essp=Step-C; %位置誤差str=num2str(essp); %將數(shù)字轉(zhuǎn)換為字符set(handles.text18,'String',str); %顯示穩(wěn)態(tài)誤差

54、set(handles.radiobutton4,'Value',1);set(handles.radiobutton5,'Value',0);set(handles.radiobutton3,'Value',0); y,t=step(feedback(G,1); %閉環(huán)階躍響應(yīng)axes(handles.axes2)plot(t,y,'Linewidth',2)hold onY,k=max(y); tp=fix(t(k)*100)/100; %求峰值時間plot(tp tp,0 Y,'-r','Linewi

55、dth',1.5);plot(0 tp,Y Y,'-r','Linewidth',1.5);plot(tp,0,'o', 'MarkerEdgeColor','k', 'MarkerFaceColor','k','MarkerSize',6); %畫出峰值時間的時間點str0=num2str(tp);str=str0,'s'set(handles.text7,'String',str);C=dcgain(feedback(G,1

56、); %求系統(tǒng)穩(wěn)態(tài)值 M=fix(1000*(Y-C)/C)/10;str0=num2str(M);str=str0,'%'set(handles.text8,'String',str) %求超調(diào)量n=1;while y(n)<0.1*C %通過循環(huán),求取輸出第一次到達終值的10%的時間 n=n+1; endm=k;while y(n)>0.9*C %通過循環(huán),求取輸出第一次到達終值的90%時間 m=m-1; endrisetime=fix(100*(t(m)-t(n)/100; %求上升時間str0=num2str(risetime);str=str0,'s'set(handles.text6,'String',str) %顯示上升時間i=length(t);while (y(i)>0.98*C)&(y(i)<1.02*C) i=i-1;endSettingtime=fix(100*t(i)/100; %求調(diào)節(jié)時間str0=num2str(Settingtime); str=str0,'s'set(ha

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論