




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE摘要MATLAB語言是一種十分有效的工具,能容易地解決在系統仿真及控制系統計算機輔助設計領域的教學與研究中遇到的問題。MATLABGUI是MATLAB的人機交互界面。由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驅動機制,同時提供了MATLAB數學庫的接口,所以GUI對于控制系統仿真的平臺設計顯得十分合適。本文所做的研究主要是基于MATLABGUI平臺,結合離散控制系統基礎理論和MATLAB控制系統工具箱,實現了用于離散控制系統計算機輔助分析與設計的軟件。本軟件主要功能:實現傳遞函數模型輸入、控制系統穩定性分析,繪制系統Nyquist圖、Bode圖、根軌跡圖以及零極點分布圖。它可以將使用者從繁瑣的底層編程中解放出來,把有限的寶貴時間更多地花在解決科學問題上。在繼續完善的基礎上能夠用于本科自動控制原理教程的教學實驗和一般的科學研究。關鍵詞:離散控制系統;MATLABGUI;計算機輔助設計AbstractMATLABlanguageisaveryeffectivetool,andcanbeeasilyresolvedinthesystemsimulationandcontrolsystemofteachinginthefieldofcomputer-aideddesignandresearchproblems.TheMATLABGUIistheinteractiveinterface.AstheGUIitselfprovidesthebasiccontrolwindowssupport,andhasagoodmechanismforevent-driven,whileprovidingtheMATLABMathLibraryinterface,theGUIforcontrolsystemsimulationplatformforthedesignofitissuitable.ResearchdoneinthisarticleismainlybasedonMATLABGUIplatform,thebasisofcombinationofdiscretecontrolsystemtheoryandMATLABControlSystemToolbox,therealizationofdiscretecontrolsystemsforcomputer-aidedanalysisanddesignsoftware.Themainfunctionsofthesoftware:therealizationoftransferfunctionmodelinput,themodelfittedforthecontrolsystemstabilityanalysis,、renderingthesystemNyquistdiagram、Bodeplots、rootlocusandPole-zerodistribution.Itcouldbethebottomoftheuserfromtediousprogrammingliberatethelimitedspendmorevaluabletimetosolvescientificproblems.Whilecontinuingtoimprovebasedontheprincipleofautomaticcontrolcanbeusedforundergraduateteachingcourseexperimentsandscientificresearchingeneral.Keywords:DiscreteControlSystem;MATLABGUI;Computer-assistantdesign目錄TOC\o"1-2"\h\z\u第1章概述 11.1論文選題背景和意義 11.2計算機輔助分析與設計在控制系統仿真中的發展現狀 11.3本論文主要內容 3第2章控制系統與MATLAB語言 42.1控制系統理論基礎 42.2MATLAB語言與控制系統工具箱 52.3本章小結 9第3章MATLABGUI簡介及應用 103.1MATLABGUI 103.2軟件設計步驟 113.3本章小結 22第4章仿真系統測試與演示 234.1離散控制系統的穩定性判斷 234.2離散控制系統Bode圖 244.3離散控制系統Nyquist曲線 264.4離散控制系統Nichols圖 284.5離散控制系統根軌跡 294.6離散控制系統階躍響應 314.7離散控制系統脈沖響應 334.8本章小結 35結論 36參考文獻 37致謝 38東北石油大學本科生畢業設計(論文)PAGE36第1章概述1.1論文選題背景和意義自動控制原理是自動控制專業和自動化專業的主要課程之一,是研究自動控制技術的基礎理論課,是必修的專業基礎課程。自動控制原理能使學生掌握自動控制系統的基本理論、基本概念、分析和設計方法,為更深入地學習現代控制策略和研究各種自動控制系統打下理論基礎[1]。在自動控制領域里的科學研究和工程應用中有大量繁瑣的計算與仿真曲線繪制任務,給控制系統的分析和設計帶來了巨大的工作量,為了解決海量計算的問題,各種控制系統設計與仿真的軟件層出不窮,技術人員憑借這些產品強大的計算和繪圖功能,使系統分析和設計的效率得以大大提高。然而在眾多控制系統設計與仿真軟件中,MATLAB以其強大的計算功能、豐富方便的圖形功能、模塊化的計算方法,以及動態系統仿真工具Simulink;脫穎而出成為控制系統設計和仿真領域中的佼佼者,同時也成為了當今最流行的科學工程語言。40~50年代在導彈上應用了采樣控制系統,與它相應的是在40年代末產生的離散系統理論。60年代以來在飛行器控制中計算機控制系統的應用日益普遍。計算機控制(數字控制)是離散控制的一種。離散系統理論在現代飛行器控制中得到了廣泛的應用。研究離散系統GUI設計能極大的節省用于計算和仿真曲線繪制的時間和工作量,并且能減少人工畫圖中存在的失誤。工作人員能憑借這些精確的圖形是離散系統分析和設計的效率得以大大提高[2]。1.2計算機輔助分析與設計在控制系統仿真中的發展現狀控制理論是一門發展極為迅速的學科[3]。在近一個世紀的發展過程中,其“經典控制理論”與“現代控制理論”的體系己基本完善,近三十年來的“先進控制理論”,如“大系統理論”、各類“智能控制”等,亦取得了蓬勃的發展和可喜的進展。今天的控制理論及其應用技術己不再僅是自動化學科的重要基礎,而已成為機電工程、航空航天等現代工程技術中不可缺少的一部分,并在經濟學、生物學、醫學等領域中獲得越來越廣泛的應用。伴隨著控制理論向深度和廣度發展的是大量控制方法和設計算法的產生,而現代計算機及計算技術的發展則使得這些設計過程可通過CAD程序來實現。這樣一種發展不僅使設計者解脫了繁瑣的甚至是人工無法實現的手工計算困境,而且使一般設計人員(特別使非控制類專業人員)不必精通某些細小定理的復雜數學證明,或對一些實際中不易發生的特殊情況進行詳盡的考察而應用各種控制理論進行控制系統的設計,從而極大地增加了控制理論的實用價值和實際應用,同時也促進了控制理論的發展。我國較有影響的控制系統仿真與CAD成果[4]是中科院系統科學研究所主持的國家自然科學基金重大科研項目開發的CADCSC軟件和清華大學孫增沂、袁曾任教授的著作和程序等。1988年中科院沈陽自動化所馬紀虎研究員主持開發的CSMP-C仿真語言,是國內有代表意義的仿真語言。早在1973年,美國學者Melsa教授和Jones博士出版了一本專著[5],書中給出了一套控制系統計算機輔助分析與設計的程序,包括求系統的根軌跡、頻域響應、時間響應、以及各種控制系統設計的子程序。這一時期出現的軟件還有瑞典Lund工學院CACSD軟件INTRAC、日本的古田勝久教授主持開發的DPACS-F軟件、英國Manchester理工大學的控制系統計算機輔助設計軟件包、英國劍橋大學推出的線性系統分析與設計軟件CLADP等等。此外,在控制系統的計算機輔助分析與設計研究進展中還出現了一些專門的仿真語言,如比較流行的仿真語言有ACSL,CSMP,TSIM,ESL等。這種仿真語言要求用戶依照它所提供的語句和大量的模型模塊編寫一個描述系統的程序,然后才可以對控制系統進行仿真。近十年來,隨著MATLAB語言和Simulink仿真環境在控制系統研究與教學中日益廣泛的應用,在系統仿真、自動控制等領域,國外很多高校在教學與研究中都將MATLAB/Simulink語言作為首選的計算機工具,我國的科學工作者和教育工作者也逐漸意識到MATLAB語言的重要性,并且在很多搞笑的本科自動控制原理實驗教學中得到應用[6]。MATLAB是MathWorks公司于1982年推出的一套高性能的數值計算和可視化軟件。它集數值分析、矩陣運算、信號處理和圖形顯示于一體,構成了一個方便、界面友好的用戶環境。它還包括了ToolBox(工具箱)[7]的各類問題的求解工具,可用來求解特定學科的問題。MATLAB所具備的強有力的計算功能和圖形表現,以及各種工具箱提供的豐富的專用函數,為設計研究人員避免重復繁瑣的計算和編程,更快、更好、更準確地進行控制系統分析和設計提供了極大的幫助。Mathworks公司于2010年3月發布了MATLAB的新版本MATLAB2010a。新版本針對編程環境、代碼效率、數據可視化、數學計算、文件等方面進行了升級,同時包含了功能強大的控制產品集以支持控制系統設計過程的每一個環節,借助于使用MATLAB中與控制相關的工具箱能夠實現許多前沿的控制設計方法;此外,與MATLAB2010a同時發布的Simulink可以輔助技術人員更方便地建立控制系統模型,并通過仿真不斷優化設計。本次設計使用的就是MATLAB2010a。1.3本論文主要內容本論文的主要研究工作是通過利用MATLABGUI[8]界面,為本科自動控制理論教學的課程實驗提供一個離散控制系統分析與設計的仿真軟件。此軟件主要功能有:在已知離散控制系統傳遞函數的情況下對離散控制系統穩定性分析,繪制系統Nyquist圖、Bode圖、Nichols圖、根軌跡圖、階躍響應、脈沖響應。因此,首先本論文根據自動控制原理的本科教學要求對離散控制系統基礎理論和MATLAB軟件作以介紹;其次,詳細介紹MATLABGUI相關知識;最后舉例介紹該離散控制系統仿真軟件的設計與實現過程。第2章控制系統與MATLAB語言2.1控制系統理論基礎控制系統理論的基礎知識—自動控制原理,是自動化學科的重要理論基礎,是專門研究有關自動控制系統中基本概念、基本原理和基本方法的一門課程,是高等學校自動化類專業的一門核心基礎理論課程。學好自動控制理論對掌握自動化技術有著重要的作用?!蹲詣涌刂圃怼穂9]是自動控制技術的基礎理論,主要分“古典控制理論”和“現代控制理論”兩大部分。古典控制理論以傳遞函數為基礎研究單輸入單輸出一類定??刂葡到y的分析與設計問題,現代控制理論是六十年代在古典控制理論基礎上隨著科學技術發展和工程實踐需要而迅速發展起來的,它以狀態空間法為基礎,研究多輸入多輸出、時變、非線性、高精度、高效能等控制系統的分析與設計問題。2.1.1離散系統理論當系統各個物理量隨時間變化的規律不能用連續函數描述時,而只在離散的瞬間給出數值,這種系統稱為離散系統。全部或一些組成部分的變量具有離散信號形式的系統。在時間的離散時刻上取值的變量稱為離散信號,通常是時間間隔相等的脈沖序列或數字序列,例如按一定的采樣時刻進入計算機的信號。除含有采樣數據信號的離散系統外,在現實世界中還有天然的離散系統,例如在人口系統中對人口的增長和遷徙過程只能用離散數字加以描述。在現代工業控制系統中廣泛采用數字化技術,或在設計中通過數學處理把連續系統化為離散系統,其目的是為了獲得良好的控制性能或簡化設計過程。離散控制系統視控制信號類型(采樣脈沖序列或數字序列)的不同可分為采樣控制系統和數字控制系統。離散系統的運動需用差分方程描述。對于參數不隨時間變化的離散系統可利用Z變換分析。當系統中同時也存在連續信號時(例如采樣系統),也可將離散信號看成脈沖函數序列,從而能采用連續系統分析中的拉普拉斯變換對系統進行統一處理。40~50年代在導彈上應用了采樣控制系統,與它相應的是在40年代末產生的離散系統理論。60年代以來在飛行器控制中計算機控制系統的應用日益普遍。計算機控制(數字控制)是離散控制的一種。離散系統理論在現代飛行器控制中得到了廣泛的應用。60年代“阿波羅”號飛船的登月艙就采用了數字式自動駕駛儀。2.1.220世紀50年代,經典控制理論形成體系[10]。經典控制理論的數學基礎是拉普拉斯變換,系統的基本數學模型是傳遞函數,主要的分析和綜合方法有Bode圖法、根軌跡法、勞斯(Routh)判據、奈奎斯特(Nquist)穩定判據、PID控制等。經典控制系統理論雖然至今仍廣泛應用在許多工程技術領域中,但也存在著明顯的局限性,主要表現在:主要用于單輸入單輸出線性時不變系統而難以有效地處理多輸入多輸出系統;只采用外部描述方法討論控制系統的輸入輸出關系,而難以揭示系統內部的特性;控制系統設計方法基本上是一種試湊法而不能提供最優控制的方法和手段等等。在20世紀50年代核反應堆控制研究、尤其是航天控制研究的推動下,控制理論在1960年前后開始了從經典階段到現代階段的過渡,其中的重要標志是卡爾曼(R.E.Kalman)系統地把狀態空間法引入到系統與控制理論中?,F代控制理論以狀態空間模型為基礎,研究系統內部的結構,提出可控性、可觀測性概念及分析方法,也提出了一系列設計方法,如LQR(LinearQuadraticRegulator)和LQG(LinearQuadraticGaussian)最優控制方法、Kalman濾波器方法、極點配置方法、基于狀態觀測器的反饋控制方法等?,F代控制理論克服了經典控制的許多局限性,它能夠解決某些非線性和時變系統的控制問題,適用于多輸入多輸出反饋控制系統,可以實現最優控制規律。此外,現代控制理論不僅能夠研究確定性的系統,而且可以研究隨機的過程,即包含了隨機控制系統的分析和設計方法。2.1.3離散研究離散控制系統分析與設計的基礎知識,包括離散控制系統的穩定性、穩態特性和動態特性,以及離散控制系統的校正與計算機輔助分析。主要內容:離散控制系統的數學模型、控制系統的時域分析、根軌跡分析、頻域分析等。2.2MATLAB語言與控制系統工具箱MATLAB是由MathMorks公司于1984年推出的一套數值計算軟件自推出之后,該公司不斷接收和吸取各學科領域權威人士為之編寫的函數和程序,并將它們轉換為MATLAB的工具箱[11]。這樣,使MATLAB得到不斷的發展和擴充,可以實現數值分析、優化、統計、偏微分方程數值解、自動控制、信號處理、圖像處理等若干個領域的計算和圖形顯示功能。它將不同數學分支的算法以函數的形式分類成庫,使用時直接調用這些函數并賦予實際參數就可以解決問題,快速而且準確。2.2.1MATLAB軟件介紹MATLAB的名字由Matrix和Laboratory兩詞的前三個字母組合而成,始創者是時任美國新墨西哥大學計算機科學系主任的CleveMoler教授。于1984年由MathWokrs公司推出(DOS版)。1993年推出MATLAB4.0(windows版)。1997年MATLAB5.0版問世。1999年春已到了5.3版。今天MATLAB己成為國際上最優秀的科技應用軟件之一,其強大的科學計算與可視化功能、簡單易用的開放式可推展環境以及多達三十余個面向不同領域而擴展的工具箱(Tool-Box)的支持,使得MATLAB在許多學科領域成為科學計算、計算機輔助設計與分析的基礎工具和首選平臺。MATLAB主要由MATLAB主程序、Simulink動態系統仿真和MATLAB工具箱三大部分組成[12]。其中MATLAB主程序包括MATLAB語言、工作環境、句柄圖形、數學函數庫和應用程序接口五個部分;Simulink是用于動態系統仿真的交互式系統,允許用戶在屏幕上繪制框圖來模擬一個系統,并能動態地控制該系統,目前的Simulink可以處理線性、非線性、連續、離散、多變量及多系統;工具箱實際就是用MATLAB的基本語句編寫的各種子程序集和函數庫,用于解決某一方面的特定問題或實現某一類的新算法,它是開放性的,可以應用也可以根據自己的需要進行擴展。MATLAB工具箱大體可分為功能性的工具箱和學科性的工具箱兩類。功能性的工具箱主要用于擴展MATLAB的符號計算功能、圖形建模功能、文字處理功能和與硬件的實時交互過程,如符號計算工具箱等:學科性的工具箱則有較強的專業性,用于解決特定的問題,如信號處理工具箱和通信工具箱。2.2.2MATLAB的組成MATLAB主程序是一種以數組和矩陣為元素的工程計算語言。MATLAB語言MATLAB編程語言是一種面向科學與工程計算的高級語言允許按照數學習慣的方式編寫程序由于它符合人們思維方式的編寫模式使得該語言比Basci、Fortran、C、Pascal等高級語言更容易學習和應用MATLAB語言以矢量和矩陣為基本的數據單元包含流程控制語句順序選擇循環條件轉移和暫停等大量的運算符豐富的函數多種數據結構輸入輸出以及面向對象編程這些既可以滿足簡單問題的求解也適合于開發復雜的大型程序MATLAB不僅僅是一套打好包的函數庫同時也是一種高級的面向對象的編程語言使用MATLAB能夠卓有成效地開發自己的程序MATLAB自身的許多函數實際上也包括所有的工具箱函數都是用M文件實現的。MATLAB2010a工作環境MATLAB工作環境[13]包括變量查看器、當前路徑選擇菜單、命令歷史記錄窗口、當前工作空間窗口、命令控制窗口、圖形處理窗口、程序編輯器、模型編輯器、GUI編輯器和MATLAB附帶的大量M文件。MATLAB繪圖功能MATLAB句柄圖形控制系統是MATLAB數據可視化的核心部分。它既包含對二維和三維數據的可視化、圖形處理、動畫制作等高層次的繪圖命令,也包含可以修改圖形局部及編制完整圖形界面的低層次繪圖命令。這些功能可使用戶創建富有表現力的彩色圖形,可視化工具包括曲面宣染、線框圖、偽彩圖、光源、三維等位線圖、圖像顯示、動畫、體積可視化等同時MATLAB還提供了句柄圖形機制,使用該機制可對圖形進行靈活的控制。使用GUIDE工具可以方便地使用句柄圖形創建自己的GUI界面。MATLAB數學函數庫MATALB擁有500多種數學、統計及工程函數,可使用戶立刻實現所需的強大的數學計算功能[14]。這些函數是由各領域的專家學者開發的數值計算程序,使用了安全、成熟、可靠的算法,從而保證了最大的運算速度和可靠的結果。MATLAB內置的強大數學函數庫既包含了最基本的數學運算函數,如求和正弦、余弦等函數,也包含了豐富的復雜函數,如矩陣特征值矩陣求逆傅里葉變換等函數。MATLABMATLAB應用程序接口是通過MATLAB的API庫完成的,MATLAB通過對API庫函數的調用可以與其他應用程序交換數據。同樣,用戶也可在其他語言中通過該接口函數庫調用MATLAB的程序。MATLAB應用程序接口中的內容包括實時動態連接外部C或Fortran應用函數,獨立C或Fortran程序中調用MATLAB函數輸入輸出各種MATLAB及其他標準格式的數據文件,創建圖文并貌的技術文檔,包括MATLAB圖形、命令,并可通過word輸出。2.2.3MATLAB的主要特點MATLAB的主要特點[15]如下。1、簡單易學:MATLAB是一門編程語言,其語法規則與一般的結構化高級編程語言如C語言等大同小異,而且使用更方便,具有一般語言基礎的用戶很快就可以掌握。2、代碼短小高效:由于MATLAB已經將數學問題的具體算法編成了現成的函數,用戶只要熟悉算法的特點、適用場合、函數的調用格式和參數意義等,通過調用函數很快就可以解決問題,二不必花大量的時間糾纏于具體算法的實現。3、計算功能非常強大:該軟件具有強大的矩陣計算功能,利用一般的符號和函數就可以對矩陣進行加、減、乘、除運算以及轉置和求逆等運算,而且可以處理稀疏矩陣等特殊的矩陣,非常適合于有限元等大型數值運算的編程。此外,該軟件現有的數十個工具箱,可以解決應用中的很多數學問題。4、強大的圖形繪制和處理功能:該軟件可以繪制常見的二維三維圖形,如線形圖,條形圖,餅圖,散點圖,直方圖,誤差條圖,玫瑰花圖,極坐標圖等。利用有關函數,可以對三維圖形進行顏色光照材質紋理和透明性設置并進行交互處理??茖W計算要設計到大量數據的處理,利用圖形展示數據場的特征,能顯著提高數據處理的效率,提高對數據反饋信息的處理速度和能力。MATLAB提供了豐富的科學計算可視化功能,利用它可以繪制二維三維矢量圖、等值線圖、三維表面圖、曲面圖、二維三維流線圖、三維流錐、流沙圖、流帶圖、流管圖、卷曲圖和剖面圖等,還可以進行動畫制作。基于MATLAB句柄圖形對象,結合繪圖工具函數,可以根據需要用MATLAB繪制自己的圖形。5、可擴展性能:可擴展性能視該軟件的一大優點,用戶可以自己編寫M文件,組成自己的工具箱,方便的解決本領域內常見的計算問題。此外,利用MATLAB編譯器可以生成獨立的可執行程序,從而可以隱藏算法并避免依賴MATLAB。MATLAB支持DDE、OLE、ActiveX自動化和COM組建等機制,可以與同樣支持該技術的應用程序接口。利用最近推出的COM生成器和Excel生成器,可以利用給定的M文件和MEX文件創建COM組建和Excel插件,從而能夠實現與VB、VC等程序的無縫集成。利用Web服務器,可以實現MATLAB于網絡的接口。采用互操作技術,可以實現MATLAB與.NET程序的接口。利用端口API函數,可以實現MATLAB與硬件的接口。2.2.4面向控制工程應用一直是MATLAB的主要功能之一,早期的版本就提供了控制系統設計工具箱。20世紀90年代初的3.5版推出RobustToolBox,4.0版推出基于模塊圖的控制系統仿真軟件Simulink。到目前為止,MATLAB中包含的控制工程類工具箱己超過十個。MATLAB所具備的強有力的計算功能和圖形表現,以及各種工具箱提供的豐富的專用函數,為設計研究人員避免重復繁瑣的計算和編程,更快、更好;更準確地進行控制系統分析和設計提供了極大的幫助??刂葡到y工具箱主要函數[16]如下。1、線性定常系統(LTI)數學模型生成函數tf():創建傳遞函數模型;ss():創建狀態方程模型;zpk():創建零一極點模型;dss():創建離散狀態方程模型;get():獲取模型參數信息;set():設置模型參數。2、數學模型轉換函數c2d():連續系統轉換成離散系統;d2c():離散系統轉換成連續系統;d2d():離散系統重新采樣。3、時間響應函數impulse():計算并繪制沖擊響應;step():計算并繪制階躍響應。4、頻率響應函數bode():計算并繪制波特響應;nichols():計算奈克爾斯圖;nyquist():計算奈奎斯特圖;pzmap():繪制零極點圖。5、控制系統分析與設計圖形用戶接口ltiview:打開定常線性系統(LTI)響應分析窗口;sisotool:打開單輸入單輸出系統(SISO)設計圖形用戶接口。6、模型轉換函數tf2zp():傳遞函數模型轉換為零極點模型;tf2ss():傳遞函數模型轉換為狀態方程模型;ss2tf():狀態方程模型轉換為傳遞函數模型;ss2zp():狀態方程模型轉換為零極點模型。7、其他函數str2num():將輸入字符串轉換為數值;get(handles.edit,'string'):讀取MATLABGUI控件參數。2.3本章小結本章介紹了基于MATLAB/GUI的離散控制系統設計的基礎知識,其中包括離散控制系統的知識和MATLAB/GUI的知識。通過本章的介紹可以對離散控制系統和MATLAB/GUI設計有一個初步的認識。第3章MATLABGUI簡介及應用3.1MATLABGUI用戶界面(或接口)[17]是指:人與機器(或程序)之間交互作用的工具和方法。如鍵盤、鼠標、跟蹤球、話筒都可成為與計算機交換信息的接口。圖形用戶界面(GraphicalUserInterfaces,GUI)[18]則是由窗口、光標、按鍵、菜單、文字說明等對象(Objects)構成的一個用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產生某種動作或變化,比如實現計算、繪圖等。假如讀者所從事的數據分析、解方程、計算結果可視工作比較單一,那么一般不會考慮GUI的制作。但是如果讀者想向別人提供應用程序,想進行某種技術、方法的演示,想制作一個供反復使用且操作簡單的專用工具,那么圖形用戶界面也許是最好的選擇之一。MATLAB為表現其基本功能而設計的演示程序demo是使用圖形界面的最好范例。MATLAB的用戶,在指令窗中運行demo打開那圖形界面后,只要用鼠標進行選擇和點擊,就可瀏覽那豐富多彩的內容。用戶圖形界面(GUI)是程序的圖形化界面。一個好的GUI能夠使程序更加容易的使用。它提供用戶一個常見的界面,還提供一些控件,例如,按鈕,列表框,滑塊,菜單等。用戶圖形界面應當是易理解且操作是可以預告的,所以當用戶進行某一項操作,它知道如何去做。例如,當鼠標在一個按鈕上發生了單擊事件,用戶圖形界面初始化它的操作,并在按鈕的標簽上對這個操作進行描述。創建MATLAB用戶圖形界面必須由三個基本元素:組件在MATLABGUI中的每一個項目(按鈕,標簽,編輯框等)都是一個圖形化組件。組件可分為三類:圖形化控件(按鈕,編輯框,列表,滾動條等),靜態元素(窗口和文本字符串),菜單和坐標系。圖形化控件和靜態元素由函數uicontrol創建,菜單由函數uimenu和uicontextmenu創建,坐標系經常用于顯示圖形化數據,由函數axes創建.圖象窗口(Figure)。GUI的每一個組件都必須安排圖象窗口中。以前,我們在畫數據圖象時,圖象窗口會被自動創建。但我們還可以用函數figure來創建空圖象窗口,空圖象窗口經常用于放置各種類型的組件。最后,如果用戶用鼠標單擊或用鍵盤鍵入一些信息,那么程序就要有相應的動作。鼠標單擊或鍵入信息是一個事件,如果MATLAB程序運行相應的函數,那么MATLAB函數肯定會有所反應。例如,如果用戶單擊一按鈕,這個事件必然導致相應的matlab語句執行,這些相應的語句被稱為回應,只要執行GUI的單個圖形組件,必須有一個回應。3.2軟件設計步驟3.2.1建立主界面運行MATLAB2010a,點擊File下的New中的GUI創建新的GUI界面[19],命名為DSS。點擊其中的“TXT”按鈕,創建5個靜態文本框。在其中分別寫入“歡迎使用本仿真環境進行控制系統的仿真”,“您可以”,“1、選擇“離散系統”進入相應的仿真環境”,“2、選擇“幫助”查看具體使用方法”,“3、選擇“文件”-“退出”,退出仿真環境”。如圖3-1所示。圖3-1建立主界面點擊Tools,選擇MenuEditor創建下拉菜單。如圖3-2所示。圖3-2建立下拉菜單3.2.2繪制Bode圖界面創建新的GUI界面,命名為bode,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為log)。如圖3-3所示?!癘K”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));c=str2num(get(findobj(gcbf,'Tag','edit4'),'string'));dbode(a,b,c);“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];dbode(a,b,0.1);“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);圖3-3建立繪制Bode圖界面3.2.3繪制Nyquist曲線創建新的GUI界面,命名為Nyquist,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為linear)。如圖3-4所示?!癘K”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');nyquist(c,d);“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');nyquist(c,d);“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);圖3-4建立繪制Nyquist曲線3.2.4繪制Nichols曲線創建新的GUI界面,命名為Nichols,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為linear)。如圖3-5所示?!癘K”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');nichols(c,d);“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');nichols(c,d);“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);圖3-5建立繪制Nichols曲線3.2.5繪制根軌跡創建新的GUI界面,命名為rootlocus,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為linear)。如圖3-6所示?!癘K”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');rootlocus(c,d);“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');rootlocus(c,d);圖3-6建立繪制根軌跡“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);3.2.6離散系統穩定性判斷創建新的GUI界面,命名為stability,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為linear)。如圖3-7所示。“OK”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));p=roots(b);%求系統極點q=roots(a); %求系統零點p=p'; %將極點列向量轉置為行向量q=q'; %將零點列向量轉置為行向量x=max(abs([pq1])); %確定縱坐標范圍x=x+0.1;y=x; %確定橫坐標范圍%clf;holdon;axis([-xx-yy]); %確定坐標軸顯示范圍w=0:pi/300:2*pi;t=exp(i*w);plot(t); %畫單位園axis('square');plot([-xx],[00]); %畫橫坐標軸plot([00],[-yy]); %畫縱坐標軸%text(0.1,x,'jIm[z]');%text(y,1/10,'Re[z]');plot(real(p),imag(p),'x'); %畫極點plot(real(q),imag(q),'o'); %畫零點%title('pole-zerodiagramfordiscretesystem'); %標注標題holdoff;“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];p=roots(b);%求系統極點q=roots(a); %求系統零點p=p'; %將極點列向量轉置為行向量q=q'; %將零點列向量轉置為行向量x=max(abs([pq1])); %確定縱坐標范圍x=x+0.1;y=x; %確定橫坐標范圍%clf;holdon;axis([-xx-yy]); %確定坐標軸顯示范圍w=0:pi/300:2*pi;t=exp(i*w);plot(t); %畫單位園axis('square');plot([-xx],[00]); %畫橫坐標軸plot([00],[-yy]); %畫縱坐標軸%text(0.1,x,'jIm[z]');%text(y,1/10,'Re[z]');plot(real(p),imag(p),'x'); %畫極點plot(real(q),imag(q),'o'); %畫零點%title('pole-zerodiagramfordiscretesystem'); %標注標題holdoff;“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);圖3-7離散系統穩定性判斷3.2.7階躍響應創建新的GUI界面,命名為step,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為linear)。如圖3-8所示?!癘K”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');dstep(c,d);“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');dstep(c,d);“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);圖3-8建立階躍響應3.2.8脈沖響應創建新的GUI界面,命名為impulse,在其中加入若干靜態文本框,動態文本框,PushBotton,坐標軸(屬性為linear)。如圖3-9所示?!癘K”按鈕的作用是在輸入分子分母及采樣時間后確認開始仿真。在“OK”下編寫程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');dimpulse(c,d);“Load”按鈕的作用是在加載仿真程序中實例,這樣在仿真演示的時候會更加方便。在“Load”下編寫程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');dimpulse(c,d);“Gridon”按鈕的作用是在坐標軸中加載網格。其程序如下:gridon;“Gridoff”按鈕的作用是在坐標軸中取消網格。其程序如下:gridoff;“Exit”按鈕的作用是退出仿真。其程序如下:close(gcf);圖3-9建立脈沖響應3.3本章小結本章介紹了基于MATLAB/GUI的離散控制系統設計的原理和設計過程,其中包括界面設計和程序設計。程序設計是本次設計的核心部分,本章著重介紹了本次設計的程序,并給出了每部分的完整的程序。第4章仿真系統測試與演示4.1離散控制系統的穩定性判斷4.1.1MATLAB下穩定性的直接求解在系統特性研究中,系統的穩定性是最重要指標,如果系統穩定,則可以進一步分析系統的其他性能,如果系統不穩定,系統則不能直接應用。由控制理論可知,以狀態方程模型表示的系統,它的狀態矩陣A的特征根和以傳遞函數模型表示的系統的極點是一致,只有他們的值都為負數時系統才會穩定。因此,直接而簡便的方法就是求出系統的極點,則系統的穩定性就可以立即得到。在MATLAB控制系統工具箱中,eig(G)函數可以求取一個連續線性定常系統極點,其中系統模型G可以為傳遞函數、狀態方程或零極點模型表示。另外,用圖形的方式繪制出系統所有特征根或極點在s復平面上的位置,所以判定連續系統是否穩定只需看一下系統所有特征根或極點是否均位于虛軸左側即可。4.1.2軟件實現方法及舉例打開軟件,選擇離散系統下離散系統穩定性判斷,進入界面,如圖4-1所示。圖4-1離散系統穩定性判斷界面在可編輯文本框內輸入分子、分母,點擊“OK”按鈕,可得零極點分布圖,如圖4-2所示。根據零極點分布,從而判斷離散系統是否穩定。圖4-2零極點分布圖4.2離散控制系統Bode圖4.2.1Bode圖在研究控制系統的頻率響應時,由于信號的頻率范圍很寬(從幾赫到幾百兆赫以上),放大電路的放大倍數也很大(可達百萬倍),為壓縮坐標,擴大視野,在畫頻率特性曲線時,頻率坐標采用對數刻度,而幅值(以dB為單位)或相角采用線性刻度。在這種半對數坐標中畫出的幅頻特性和相頻曲線稱為對數頻率特性或波特圖。在MATLAB中用bode()函數來實現波特圖繪制。4.2.2軟件實現方法及舉例打開軟件,選擇離散系統下繪制Bode圖,進入界面,如圖4-3所示。圖4-3繪制Bode圖界面在可編輯文本框內輸入分子、分母,點擊“OK”按鈕,可得Bode圖,如圖4-4所示。圖4-4離散控制系統Bode圖4.3離散控制系統Nyquist曲線4.3.1Nyquist穩定判據奈奎斯特穩定判據的基本形式表明,如果系統開環傳遞函數G(s)在s復數平面的虛軸上既無極點又無零點,那么閉環控制系統的特征方程在右半s平面上根的個數Z=P-2N。所謂特征方程是傳遞函數分母多項式為零的代數方程,P是開環傳遞函數在右半s平面上的極點數,N是當角頻率由0變化到∞時G(s)的軌跡沿逆時針方向圍繞實軸上點(-1,j0)的次數。奈奎斯特穩定判據還指出:Z=0時,閉環控制系統穩定;Z≠0時,閉環控制系統不穩定。奈奎斯特穩定判據推廣形式:當開環傳遞函數G(s)在s復數平面的虛軸上存在極點或零點時,必須采用判據的推廣形式才能對閉環系統穩定性作出正確的判斷。在推廣形式判據中,開環頻率響應G(s)的奈奎斯特圖不是按連續地由0變到∞來得到的,變化路徑如圖4-5所示,稱為推廣的奈奎斯特路徑。在這個路徑中,當遇到位于虛軸上G(s)的極點(圖中用×表示)時,要用半徑很小的半圓從右側繞過。只要按這條路徑來作出G(s)從0變化到∞時的奈奎斯特圖,則Z=P-2N和關于穩定性的結論仍然成立。MATLAB中用nyquist()繪制系統Nyquist圖。圖4-5變化路徑解釋說明圖4.3.2軟件實現方法及舉例打開軟件,選擇離散系統下繪制Nyquist圖,進入界面,如圖4-6所示。圖4-6繪制Nyquist曲線界面在可編輯文本框內輸入分子、分母,點擊“OK”按鈕,可得Nyquist圖,如圖4-7所示。圖4-7離散控制系統Nyquist曲線4.4離散控制系統Nichols圖4.4.1Nichols圖Nichols圖[20](對數幅相圖)是描述系統頻率特性的一種圖示方法。該圖縱坐標表示頻率特性的對數幅值,以分貝為單位;橫坐標表示頻率特性的相位角。對數幅相特性圖以頻率ω作為參變量,用一條曲線完整地表示了系統的頻率特性。Nichols圖的幅值和相角組成直角坐標。Nichols圖多用于控制系統的校正。Nichols圖很容易由Bode圖上的幅頻曲線和相頻曲線合合成而得到。對數幅相特性圖有以下特點:1、由于系統增益的改變不影響相頻特性,故系統增益改變時,對數幅相特性圖只是簡單地向上平移(增益增大)或向下平移(增益減?。€形狀保持不變;2、G(ω)和1/G(jω)的對數幅相特性圖相對原點中心對稱,即幅值和相位均相差一個符號;3、利用對數相幅特性圖,很容易由開環頻率特性求閉環頻率特性,可方便地用于確定閉環系統的穩定性及解決系統的綜合校正問題。4.4.2軟件實現方法及舉例打開軟件,選擇離散系統下繪制Nichols圖,進入界面,如圖4-8所示。圖4-8繪制Nichols圖界面在可編輯文本框內輸入分子、分母,點擊“OK”按鈕,可得Nichols圖,如圖4-9所示。圖4-9離散控制系統Nichols圖4.5離散控制系統根軌跡4.5.1根軌跡根軌跡的繪制:在控制系統的分析和綜合中,往往只需要知道根軌跡的粗略形狀。由相角條件和幅值條件所導出的8條規則,為粗略地繪制出根軌跡圖提供方便的途徑。根軌跡的分支數等于開環傳遞函數極點的個數。根軌跡的始點(相應于K=0)為開環傳遞函數的極點,根軌跡的終點(相應于K=∞)為開環傳遞函數的有窮零點或無窮遠零點。根軌跡形狀對稱于坐標系的橫軸(實軸)。實軸上的根軌跡按下述方法確定:將開環傳遞函數的位于實軸上的極點和零點由右至左順序編號,由奇數點至偶數點間的線段為根軌跡。實軸上兩個開環極點或兩個開環零點間的根軌跡段上,至少存在一個分離點或會合點,根軌跡將在這些點產生分岔。在無窮遠處根軌跡的走向可通過畫出其漸近線來決定。漸近線的條數等于開環傳遞函數的極點數與零點數之差。根軌跡沿始點的走向由出射角決定,根軌跡到達終點的走向由入射角決定。根軌跡與虛軸(縱軸)的交點對分析系統的穩定性很重要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論