![教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)_第1頁](http://file4.renrendoc.com/view6/M01/2F/38/wKhkGWesx7iADpkDAAB39i0NUxk789.jpg)
![教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)_第2頁](http://file4.renrendoc.com/view6/M01/2F/38/wKhkGWesx7iADpkDAAB39i0NUxk7892.jpg)
![教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)_第3頁](http://file4.renrendoc.com/view6/M01/2F/38/wKhkGWesx7iADpkDAAB39i0NUxk7893.jpg)
![教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)_第4頁](http://file4.renrendoc.com/view6/M01/2F/38/wKhkGWesx7iADpkDAAB39i0NUxk7894.jpg)
![教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)_第5頁](http://file4.renrendoc.com/view6/M01/2F/38/wKhkGWesx7iADpkDAAB39i0NUxk7895.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章概述1.1電力系統(tǒng)常用仿真軟件簡介
1.2MATLAB/SIMULINK概述
1.3簡單電路演示
習(xí)題
1.1電力系統(tǒng)常用仿真軟件簡介
電力系統(tǒng)是一個(gè)大規(guī)模、時(shí)變的復(fù)雜系統(tǒng),在國民經(jīng)濟(jì)中有非常重要的作用。電力系統(tǒng)數(shù)字仿真已成為電力系統(tǒng)研究、規(guī)劃、運(yùn)行、設(shè)計(jì)等各個(gè)方面不可或缺的工具,特別是電力系統(tǒng)新技術(shù)的開發(fā)研究、新裝置的設(shè)計(jì)、參數(shù)的確定更是需要通過仿真來確認(rèn)。
目前常用的電力系統(tǒng)仿真軟件有:
(1)邦納維爾電力局(BonnevillePowerAdministration,BPA)開發(fā)的BPA程序和EMTP(ElectromagneticTransientsProgram)程序;
(2)曼尼托巴高壓直流輸電研究中心(ManitobaHVDCResearchCenter)開發(fā)的PSCAD/EMTDC(PowerSystemComputerAidedDesign/ElectromagneticTransientsProgramincludingDirectCurrent)程序;
(3)德國西門子公司研制的電力系統(tǒng)仿真軟件NETOMAC(NetworkTorsionMachineControl);
(4)中國電力科學(xué)研究院開發(fā)的電力系統(tǒng)分析綜合程序PSASP(PowerSystemAnalysisSoftwarePackage);
(5)?MathWorks公司開發(fā)的科學(xué)與工程計(jì)算軟件MATLAB(MatrixLaboratory,矩陣實(shí)驗(yàn)室)。電力系統(tǒng)分析軟件除了以上幾種,還有美國加州大學(xué)伯克利分校研制的PSPICE(SimulationProgramwithIntegratedCircuitEmphasis)、美國PTI公司開發(fā)的PSS/E、美國EPRI公司開發(fā)的ETMSP、ABB公司開發(fā)的SYMPOW程序和美國EDSA公司開發(fā)的電力系統(tǒng)分析軟件EDSA等。
以上各個(gè)電力系統(tǒng)仿真軟件的結(jié)構(gòu)和功能不同,它們各自的應(yīng)用領(lǐng)域也有所側(cè)重。EMTP主要用來進(jìn)行電磁暫態(tài)過程數(shù)字仿真,PSCAD/EMTDC、NETOMAC主要用來進(jìn)行電磁暫態(tài)和控制環(huán)節(jié)的仿真,BPA、PSASP主要用來進(jìn)行潮流和機(jī)電暫態(tài)數(shù)字仿真。近年來,MATLAB由于其完整的專業(yè)體系和先進(jìn)的設(shè)計(jì)開發(fā)思路,在多個(gè)領(lǐng)域都有廣泛的應(yīng)用。
在國際學(xué)術(shù)界,MATLAB已經(jīng)被確認(rèn)為準(zhǔn)確、可靠的科學(xué)計(jì)算標(biāo)準(zhǔn)軟件。在許多國際一流學(xué)術(shù)刊物上(尤其是信息科學(xué)刊物),都可以看到MATLAB的應(yīng)用。
在歐美大學(xué)里,諸如應(yīng)用代數(shù)、數(shù)理統(tǒng)計(jì)、自動控制、數(shù)字信號處理、模擬與數(shù)字通信、時(shí)間序列分析、動態(tài)系統(tǒng)仿真等課程的教科書都把MATLAB作為授課內(nèi)容。這幾乎成了20世紀(jì)90年代教科書與舊版教科書的標(biāo)志性區(qū)別。在這些學(xué)校里,MATLAB是攻讀學(xué)位的本科生、碩士生、博士生必須掌握的基本工具。在設(shè)計(jì)研究單位和工業(yè)部門,?MATLAB被認(rèn)為是進(jìn)行高效研究和開發(fā)的首選軟件工具。如美國NationalInstruments公司的信號測量、分析軟件LabVIEW,Cadence公司的信號和通信分析設(shè)計(jì)軟件SPW等,它們直接建筑在MATLAB之上,或者以MATLAB為主要支撐。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各種硬卡、儀器等都接受MATLAB的支持。MATLAB在全球現(xiàn)在有超過50萬的企業(yè)用戶和上千萬的個(gè)人用戶,廣泛地分布在航空航天、金融財(cái)務(wù)、機(jī)械化工、電信、教育等各個(gè)行業(yè)。
1998年MathWorks公司推出了MATLAB5.2版本,針對電力系統(tǒng)設(shè)計(jì)了電力系統(tǒng)模塊集(PowerSystemBlock,PSB)。該模塊集包含大量電力系統(tǒng)的常用元器件,如變壓器、線路、電機(jī)和電力電子等,功能也比較全面,逐漸被電力系統(tǒng)的研究者接受,并將它作為高效的仿真分析軟件。
1.2MATLAB/SIMULINK概述
1.2.1MATLAB/SIMULINK發(fā)展簡史
1.?MATLAB發(fā)展簡史
20世紀(jì)70年代中期,CleveMoler和他的同事們在美國國家科學(xué)基金的資助下研發(fā)了稱為LINPACK和EISPACK的FORTRAN子程序庫。LINPACK是解決線性方程問題的FORTRAN子程序集合,EISPACK是對特征值問題進(jìn)行求解的子程序集合。它們一起代表了當(dāng)時(shí)最具影響力的矩陣計(jì)算軟件。
20世紀(jì)70年代后期,當(dāng)時(shí)已經(jīng)成為新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系系主任的Cleve,希望在他的線性代數(shù)授課課程中使用LINPACK和EISPACK軟件。但是他并不想增加學(xué)生的編程負(fù)擔(dān),因此,設(shè)計(jì)了一組調(diào)用LINPACK和EISPACK庫程序的“通俗易用”的接口,并且命名為MATLAB,其基本的數(shù)據(jù)單元是一個(gè)維數(shù)不加限制的矩陣。在MATLAB下,矩陣的運(yùn)算變得非常容易。因此,一兩年后,MATLAB在應(yīng)用數(shù)學(xué)團(tuán)體中流行起來。
1983年的春天,Cleve到斯坦福大學(xué)進(jìn)行訪問,MATLAB深深吸引住了身為工程師的JohnLittle。JohnLittle敏銳地覺察到MATLAB在工程領(lǐng)域的廣闊前景,于是同年,他和CleveMoler、SteveBangert一起用C語言開發(fā)了第二代MATLAB專業(yè)版,由SteveBangert主持開發(fā)編譯解釋程序;SteveKleiman完成圖形功能的設(shè)計(jì);JohnLittle和CleveMoler主持開發(fā)各類數(shù)學(xué)分析的子模塊,撰寫用戶指南和大部分的M文件。
1984年,CleveMoler和JohnLittle成立了MathWorks公司,發(fā)行了MATLAB1.0(基于DOS的版本),正式把MATLAB推向市場。MATLAB的第一個(gè)商業(yè)化版本是同年推出的基于DOS的MATLAB3.0,該版本已經(jīng)具有數(shù)值計(jì)算和數(shù)據(jù)圖示化的功能。通過不斷的改進(jìn),MATLAB逐步發(fā)展成為一個(gè)集數(shù)值處理、圖形處理、圖像處理、符號計(jì)算、文字處理、數(shù)學(xué)建模、實(shí)時(shí)控制、動態(tài)仿真、信號處理為一體的數(shù)學(xué)應(yīng)用軟件。
1990年推出的MATLAB3.5版是第一個(gè)可以兼容在DOS和Windows下運(yùn)行的版本,它可以在兩個(gè)窗口上分別顯示命令行計(jì)算結(jié)果和圖形結(jié)果。
1992年,MATLAB的第一個(gè)完全意義上的Windows版本MATLAB4.0問世,從此告別DOS版。MATLAB4.x有了很大的改進(jìn),首先是推出了SIMULINK;此外,1993年,MathWorks公司從加拿大滑鐵盧大學(xué)購得Maple的使用權(quán),以Maple為“引擎”開發(fā)了SymbolicMathToolbox1.0。MathWorks公司此舉加快結(jié)束了國際上數(shù)值計(jì)算、符號計(jì)算孰優(yōu)孰劣的長期爭論,促成了兩種計(jì)算的互補(bǔ)發(fā)展新時(shí)代。同時(shí),MathWorks公司瞄準(zhǔn)應(yīng)用范圍最廣的Word,運(yùn)用DDE和OLE構(gòu)造了Notebook,實(shí)現(xiàn)了MATLAB與Word的無縫連接,從而為專業(yè)科技工作者創(chuàng)造了融科學(xué)計(jì)算、圖形可視、文字處理于一體的高水準(zhǔn)
環(huán)境。
1997年推出的MATLAB5.0版本支持更多的數(shù)據(jù)結(jié)構(gòu),如單元數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)體、多維數(shù)組、對象與類等,使其成為一種更方便、更完美的編程語言。1999年初推出的MATLAB5.3版在很多方面又進(jìn)一步改進(jìn)了MATLAB語言的功能,隨之推出的全新版本的最優(yōu)化工具箱和SIMULINK3.0版達(dá)到了很高的檔次。MATLAB5.x較MATLAB4.x無論是界面還是內(nèi)容都有長足的進(jìn)展,其幫助信息采用超文本格式和PDF格式,在Netscape3.0和IE4.0及以上版本、AcrobatReader中均可以方便地瀏覽。
2000年10月底推出了全新的MATLAB6.0正式版(Release12),在操作界面上有了很大改觀,同時(shí)還給出了程序發(fā)布窗口、實(shí)時(shí)信息窗口和變量管理窗口等,為用戶的使用提供了很大的方便;在計(jì)算內(nèi)核上拋棄了其一直使用的LINPACK和EISPACK,而采用了更具優(yōu)勢的LAPACK軟件包和FFTW系統(tǒng),速度變得更快,數(shù)值性能也更好;在用戶圖形界面設(shè)計(jì)上也更趨合理;與C語言接口及轉(zhuǎn)換的兼容性也更強(qiáng)?,F(xiàn)在的MATLAB支持各種操作系統(tǒng),它可以運(yùn)行在十幾個(gè)操作平臺上,其中比較常見的有基于Windows9X/NT、OS/2、Macintosh、Sun、UNIX、Linux等平臺的系統(tǒng)?,F(xiàn)在的MATLAB再也不是一個(gè)簡單的矩陣實(shí)驗(yàn)室了,它已經(jīng)演變成為一種具有廣泛應(yīng)用前景的全新的計(jì)算機(jī)高級編程語言,其功能也越來越強(qiáng)大,并不斷地根據(jù)科研需求提出了新的解決方法。
2006年9月,MATLABR2006b正式發(fā)布。從這時(shí)開始,MathWorks公司每年進(jìn)行兩次產(chǎn)品發(fā)布,時(shí)間分別在每年的3月和9月,而且每一次發(fā)布都涵蓋產(chǎn)品家族中的所有模塊,包括產(chǎn)品的新特征、bug的修訂和新產(chǎn)品模塊的發(fā)布。例如,符號R2006b中,2006表示發(fā)布年度,b表示是每年的第2個(gè)版本(9月版),每年的第1個(gè)版本(3月版)用a表示?,F(xiàn)在因特網(wǎng)上有大量的MATLAB資源,比如Mathworks公司的主頁http://www.MATLAB大觀園、MATLAB國內(nèi)代理公司恒潤科技等,讀者可以從這些網(wǎng)站上獲取更多版本更新信息。
2.?SIMULINK發(fā)展簡史
SIMULINK是MathWorks公司開發(fā)的又一個(gè)產(chǎn)生重大影響的軟件產(chǎn)品。為了準(zhǔn)確地分析控制系統(tǒng)的復(fù)雜模型,1990年MathWorks公司為MATLAB提供了嶄新的控制系統(tǒng)模型圖形輸入與仿真工具,并命名為SIMULAB,它以工具庫的形式掛接在MATLAB3.5版上。SIMULAB包括仿真平臺和系統(tǒng)仿真模型庫兩部分,主要用于仿真以數(shù)學(xué)函數(shù)和傳遞函數(shù)表達(dá)的系統(tǒng),它是20世紀(jì)70年代開發(fā)的連續(xù)系統(tǒng)仿真程序包(CCS)的繼續(xù)。該軟件發(fā)布后很快就在控制領(lǐng)域得到了廣泛的使用。但是,因?yàn)槠涿峙c著名的軟件SIMULA類似,所以1992年改名為SIMULINK(SimulationLink),意思是仿真鏈接。該軟件有兩個(gè)特別明顯的功能:仿真與鏈接。也就是說,可以直接利用鼠標(biāo)在模型窗口中畫出所需要的控制系統(tǒng)模型,然后再利用該軟件提供的功能來對控制系統(tǒng)直接進(jìn)行模擬。很明顯,這種做法使得一個(gè)原本很復(fù)雜的系統(tǒng)變得相當(dāng)容易輸入。SIMULINK的出現(xiàn),使得MATLAB在控制系統(tǒng)仿真以及電腦輔助設(shè)計(jì)(CAD)中的應(yīng)用開創(chuàng)了嶄新的一頁?,F(xiàn)在的SIMULINK都直接捆綁在MATLAB之上,版本也從1993年的MATLAB4.0/Simulink1.0版升級到了2007年的MATLAB7.3/Simulink6.6版,并且可以針對任何能夠用數(shù)學(xué)描述的系統(tǒng)進(jìn)行建模,例如航空航天動力學(xué)系統(tǒng)、衛(wèi)星控制制導(dǎo)系統(tǒng)、通訊系統(tǒng)、船舶及汽車動力學(xué)系統(tǒng)等,其中包括連續(xù)、離散、條件執(zhí)行、事件驅(qū)動、單速率、多速率和混雜系統(tǒng)等。由于SIMULINK的仿真平臺使用方便、功能強(qiáng)大,因此后來拓展的其它模型庫也都共同使用這個(gè)仿真環(huán)境,成為了MATLAB仿真的公共平臺。
3.?SimPowerSystems庫發(fā)展簡史
SimPowerSystems庫是SIMULINK下面的一個(gè)專用模塊庫,是在SIMULINK環(huán)境下進(jìn)行電力、電子系統(tǒng)建模和仿真的先進(jìn)工具。它建立在加拿大的Hydro-Quebec電力系統(tǒng)測試和仿真實(shí)驗(yàn)室的實(shí)踐經(jīng)驗(yàn)基礎(chǔ)之上,并由Hydro-Quebec和TECSIMInternational公司共同開發(fā)而成,功能非常強(qiáng)大。SimPowerSystems庫提供了一種類似電路建模的方式進(jìn)行模型繪制,在仿真前自動將仿真系統(tǒng)圖變化成狀態(tài)方程描述的系統(tǒng)形式,然后在SIMULINK下進(jìn)行仿真分析。它為電路、電力電子系統(tǒng)、電機(jī)系統(tǒng)、發(fā)電、輸變電系統(tǒng)和配電計(jì)算提供了強(qiáng)有力的解決方法,尤其是當(dāng)設(shè)計(jì)開發(fā)內(nèi)容涉及控制系統(tǒng)設(shè)計(jì)時(shí),優(yōu)勢更為突出。
1998年,當(dāng)時(shí)以PowerSystemBlockset(PSB)命名的電力系統(tǒng)模塊集跟隨MATLAB5.2一同推出。該模塊集中包含電力系統(tǒng)常見的元器件和設(shè)備,以直觀易用的圖形方式對電力系統(tǒng)進(jìn)行模型描述,并可與其它SIMULINK模塊相連接,進(jìn)行一體化的系統(tǒng)級動態(tài)分析。
2002年,MATLAB推出了R13版本,將PowerSystemBlockset更名為SimPowerSystems,當(dāng)年的版本號為2.3。
2003年9月推出的SimPowerSystems3.0有了較大的改進(jìn)。它明確定義了SIMULINK端口與電力線路端子端口之間的區(qū)別,并專門為電力系統(tǒng)物理建模提供了相關(guān)端子端口,強(qiáng)調(diào)不得將電力端口連接到SIMULINK的輸入和輸出端口;規(guī)定SimPowerSystems3.0中的模塊可以只有端子端口,也可以只有SIMULINK端口,還可同時(shí)兼有二者;對早期SimPowerSystems和PowerSystemBlockset版本中的分析命令進(jìn)行重新命名。
2004年9月推出的SimPowerSystems4.0對SIMULINK進(jìn)行了擴(kuò)展,提供了可適合基本電子電路和具體電力系統(tǒng)的建模與仿真工具。這些工具可以對發(fā)電、輸電和配電以及機(jī)電能量轉(zhuǎn)換的過程進(jìn)行高效建模。SimPowerSystems4.0提供了新的應(yīng)用程序庫,其中包括電氣驅(qū)動模型、柔性交流輸電系統(tǒng)(FACTS)模型和適合普通風(fēng)能發(fā)電系統(tǒng)的分布式能源模型。
表1-1為MATLAB、SIMULINK和SimPowerSystems的版本號以及對應(yīng)的發(fā)布時(shí)間。表1-1MATLAB、SIMULINK和SimPowerSystems的版本號以及對應(yīng)的發(fā)布時(shí)間1.2.2MATLAB/SIMULINK產(chǎn)品分類
1.?MATLAB/SIMULINK產(chǎn)品
MATLAB產(chǎn)品家族可以用圖1-1表示。圖1-1MATLAB產(chǎn)品家族圖中,Compiler是一種編譯工具,它能夠?qū)⒛切├肕ATLAB提供的編程語言(M語言)編寫的函數(shù)文件編譯生成為函數(shù)庫、可執(zhí)行文件COM組件等。這樣就可以擴(kuò)展MATLAB功能,使MATLAB能夠同其它高級編程語言,例如C/C++語言進(jìn)行混合應(yīng)用,取長補(bǔ)短,以提高程序的運(yùn)行效率,豐富程序開發(fā)的手段。
Stateflow是一個(gè)交互式的設(shè)計(jì)工具,它基于有限狀態(tài)機(jī)的理論,可以用來對復(fù)雜的事件驅(qū)動系統(tǒng)進(jìn)行建模和仿真。
Real-TimeWorkshop(RTW)和Coder是兩種主要的自動化代碼生成工具,這兩種代碼生成工具可以直接將SIMULINK的模型框圖和Stateflow的狀態(tài)圖轉(zhuǎn)換成高效優(yōu)化的程序代碼。利用RTW生成的代碼簡潔、可靠、易讀。目前RTW支持生成標(biāo)準(zhǔn)的C語言代碼,并且具備了生成其它語言代碼的能力。整個(gè)代碼的生成、編譯以及相應(yīng)的目標(biāo)下載過程都可以自動完成,用戶需要做的僅僅是使用鼠標(biāo)點(diǎn)擊幾個(gè)按鈕即可。MathWorks公司針對不同的實(shí)時(shí)或非實(shí)時(shí)操作系統(tǒng)平臺,開發(fā)了相應(yīng)的目標(biāo)選項(xiàng),配合不同的軟硬件系統(tǒng),可以完成快速控制原型(RapidControlPrototype)開發(fā)、硬件在回路的實(shí)時(shí)仿真(Hardware-in-Loop)、產(chǎn)品代碼生成等工作。在MATLAB產(chǎn)品家族中,MATLAB工具箱是整個(gè)體系的基座,它是一個(gè)語言編程型(M語言)開發(fā)平臺,提供了體系中其它工具所需要的集成環(huán)境(比如M語言的解釋器)。同時(shí)由于MATLAB對矩陣和線性代數(shù)的支持,使得工具箱本身也具有強(qiáng)大的數(shù)學(xué)計(jì)算能力。目前MATLAB產(chǎn)品的工具箱有四十多個(gè),分別涵蓋了數(shù)據(jù)采集、科學(xué)計(jì)算、控制系統(tǒng)設(shè)計(jì)與分析、數(shù)字信號處理、數(shù)字圖像處理、金融財(cái)務(wù)分析以及生物遺傳工程等專業(yè)領(lǐng)域。
圖1-2所示為MATLAB/SIMULNK的主要產(chǎn)品及其相互關(guān)系。圖1-2MATLAB/SIMULINK的主要產(chǎn)品及其相互關(guān)系
2.?SimPowerSystems庫產(chǎn)品
SimPowerSystems4.0中含有130多個(gè)模塊,分布在7個(gè)可用子庫中。這7個(gè)子庫分別為“應(yīng)用子庫(ApplicationLibraries)”、“電源子庫(ElectricalSources)”、“元件子庫(Elements)”、“附加子庫(ExtraLibrary)”、“電機(jī)子庫(Machines)”、“測量子庫(Measure-ments)”和“電力電子子庫(PowerElectronics)”。此外,SimPowerSystems4.0中還含有一個(gè)功能強(qiáng)大的圖形用戶分析工具Powergui和一個(gè)廢棄的“相量子庫”(PhasorElements)。這些模塊可以與標(biāo)準(zhǔn)的SIMULINK模塊一起,建立包含電氣系統(tǒng)和控制回路的模型,并且可以用附加的測量模塊對電路進(jìn)行信號提取、傅里葉分析和三相序分析。應(yīng)用子庫中含有適合于普通風(fēng)能發(fā)電系統(tǒng)的分布式能源模型、特種電機(jī)模型和FACTS模型。電源子庫中含有交流電壓源、直流電壓源、受控電壓源和受控電流源模型。元件子庫中含有RLC支路和負(fù)載、線性和飽和變壓器、斷路器、傳輸線模型、物理端口模型。電機(jī)子庫中包含詳細(xì)或簡化形式的異步電機(jī)、同步電機(jī)、永磁同步電機(jī)、直流電機(jī)、勵(lì)磁系統(tǒng)、水力與蒸汽渦輪—調(diào)速系統(tǒng)模型。電力電子子庫中含有二極管、簡化/復(fù)雜晶閘管、GTO、開關(guān)、MOSFET、IGBT和通用橋式電路模型。測量子庫中含有電壓、電流、電抗測量模塊,以及萬用表測量模塊。附加子庫中包含內(nèi)容較多,主要和系統(tǒng)離散化、控制、計(jì)算和測量有關(guān),包括RMS測量、有效和無功功率計(jì)算、傅里葉分析、HVDC控制、軸系變換、三相V-I測量、三相脈沖和信號發(fā)生、三相序列分析、三相PLL和連續(xù)/離散同步6/12脈沖發(fā)生器等。
這些模塊,有些將在后面幾章中進(jìn)行介紹,但是大多數(shù)模塊還需要讀者對照MATLAB提供的幫助文件進(jìn)行學(xué)習(xí)。1.2.3MATLAB/SIMULINK的特點(diǎn)
1.?MATLAB的特點(diǎn)
自從MathWorks公司推出MATLAB后,MATLAB以其優(yōu)秀的數(shù)值計(jì)算能力和卓越的數(shù)據(jù)可視化能力很快在數(shù)學(xué)軟件中脫穎而出。隨著版本的不斷升級,它在數(shù)值計(jì)算及符號計(jì)算功能上得到了進(jìn)一步完善。
MATLAB的特點(diǎn)可概括為以下七點(diǎn):
(1)提供了便利的開發(fā)環(huán)境。MATLAB提供了一組可供用戶操作函數(shù)和文件的具有圖形用戶界面的工具,包括MATLAB主界面、命令窗口、歷史命令、編輯和調(diào)試、在線瀏覽幫助、工作空間、搜索路徑設(shè)置等可視化工具窗口。
(2)提供了強(qiáng)大的數(shù)學(xué)應(yīng)用功能。MATLAB可進(jìn)行包括基本函數(shù)、復(fù)雜算法、更高級的矩陣運(yùn)算等非常豐富的數(shù)學(xué)應(yīng)用功能,特別適合矩陣代數(shù)領(lǐng)域。它還具有許多高性能數(shù)值計(jì)算的高級算法,庫函數(shù)極其豐富,使用方便靈活。
(3)編程語言簡易高效。MATLAB提供了和C語言幾乎一樣多的運(yùn)算符,靈活使用MATLAB的運(yùn)算符將使程序變得極為簡短。?MATLAB既具有結(jié)構(gòu)化的控制語句(如for循環(huán)、while循環(huán)、break語句和if語句),又有面向?qū)ο缶幊痰奶匦浴ATLAB程序書寫形式自由,利用豐富的庫函數(shù)避開繁雜的子程序編程任務(wù),壓縮了一切不必要的編程工作。程序限制不嚴(yán)格,程序設(shè)計(jì)自由度大,并且有很強(qiáng)的用戶自定義函數(shù)的能力。
(4)圖形功能強(qiáng)大。在如FORTRAN和C等一般編程語言里,繪圖都很不容易。但MATLAB提供了豐富的繪圖函數(shù)命令,使得用戶數(shù)據(jù)的可視化非常簡單。MATLAB還具有較強(qiáng)的編輯圖形界面的能力,用戶可方便地在可視化環(huán)境下進(jìn)行個(gè)性化圖形編輯和設(shè)置。
(5)提供了功能強(qiáng)大的工具箱。MATLAB包含兩個(gè)部分:核心部分和各種可選的工具箱。核心部分中有數(shù)百個(gè)核心內(nèi)部函數(shù)。工具箱又分為兩類:功能性工具箱和學(xué)科性工具箱。功能性工具箱主要用來擴(kuò)充其符號計(jì)算功能、圖示建模仿真功能、文字處理功能以及與硬件實(shí)時(shí)交互功能。功能性工具箱用于多種學(xué)科。學(xué)科性工具箱專業(yè)性比較強(qiáng),如control、signalprocessing、commumnication、powersystoolbox等。這些工具箱都是由相關(guān)領(lǐng)域內(nèi)的專家編寫的,所以用戶無需編寫自己學(xué)科范圍內(nèi)的基礎(chǔ)程序,直接可以進(jìn)行高、精、尖的研究。
(6)應(yīng)用程序接口功能強(qiáng)大。MATLAB提供了方便的應(yīng)用程序接口,用戶可以使用C或FORTRAN等語言編程,實(shí)現(xiàn)與MATLAB程序的混合編程調(diào)用。
(7)?MATLAB的缺點(diǎn)。和其它高級程序相比,MATLAB程序的執(zhí)行速度較慢。由于MATLAB的程序不用編譯等預(yù)處理,也不生成可執(zhí)行文件,程序?yàn)榻忉寛?zhí)行,因此速度較慢。
2.?SIMULINK的特點(diǎn)
SIMULINK是一種強(qiáng)有力的仿真工具,它能讓使用者在圖形方式下以最小的代價(jià)來模擬真實(shí)動態(tài)系統(tǒng)的運(yùn)行。SIMULINK準(zhǔn)備有數(shù)百種預(yù)定義系統(tǒng)環(huán)節(jié)模型、最先進(jìn)有效的積分算法和直觀的圖示化工具。依托SIMULINK強(qiáng)健的仿真能力,用戶在原型機(jī)制造之前就可建立系統(tǒng)的模型,從而評估設(shè)計(jì)并修補(bǔ)瑕疵。SIMULINK具有如下特點(diǎn):
(1)建立動態(tài)系統(tǒng)的模型并進(jìn)行仿真。SIMULINK是一種圖形化的仿真工具,用于對動態(tài)系統(tǒng)建模和控制規(guī)律的研究制定。由于支持線性、非線性、連續(xù)、離散、多變量和混合式系統(tǒng)結(jié)構(gòu),SIMULINK幾乎可分析任何一種類型的真實(shí)動態(tài)系統(tǒng)。
(2)以直觀的方式建模。利用SIMULINK可視化的建模方式,可迅速地建立動態(tài)系統(tǒng)的框圖模型。只需在SIMULINK元件庫中選出合適的模塊并拖放到SIMULINK建模窗口,鼠標(biāo)點(diǎn)擊連接就可以了。SIMULINK標(biāo)準(zhǔn)庫擁有的模塊超過150種,可用于構(gòu)成各種不同種類的動態(tài)系統(tǒng)。模塊包括輸入信號源、動力學(xué)元件、代數(shù)函數(shù)和非線性函數(shù)、數(shù)據(jù)顯示模塊等。SIMULINK模塊可以被設(shè)定為觸發(fā)和使能的,能用于模擬大模型系統(tǒng)中存在條件作用的子模型的行為。
(3)增添定制模塊元件和用戶代碼。SIMULINK模塊庫是可定制的,能夠擴(kuò)展以包容用戶自定義的系統(tǒng)環(huán)節(jié)模塊。用戶也可以修改已有模塊的圖標(biāo),重新設(shè)定對話框,甚至換用其它形式的彈出菜單和復(fù)選框。SIMULINK允許用戶把自己編寫的C、FORTRAN、Ada代碼直接植入SIMULINK模型中。
(4)快速、準(zhǔn)確地進(jìn)行設(shè)計(jì)模擬。SIMULINK優(yōu)秀的積分算法給非線性系統(tǒng)仿真帶來了極高的精度。先進(jìn)的常微分方程求解器可用于求解剛性的和非剛性的系統(tǒng)、具有事件觸發(fā)或不連續(xù)狀態(tài)的系統(tǒng)和具有代數(shù)環(huán)的系統(tǒng)。SIMULINK的求解器能確保連續(xù)系統(tǒng)或離散系統(tǒng)的仿真高速、準(zhǔn)確的進(jìn)行。同時(shí),SIMULINK還為用戶準(zhǔn)備了一個(gè)圖形化的調(diào)試工具,以輔助用戶進(jìn)行系統(tǒng)開發(fā)。
(5)分層次地表達(dá)復(fù)雜系統(tǒng)。SIMULINK的分級建模能力使得體積龐大、結(jié)構(gòu)復(fù)雜的模型構(gòu)建也簡便易行。根據(jù)需要,各種模塊可以組織成若干子系統(tǒng)。在此基礎(chǔ)上,整個(gè)系統(tǒng)可以按照自頂向下或自底向上的方式搭建。子模型的層次數(shù)量完全取決于所構(gòu)建的系統(tǒng),不受軟件本身的限制。為方便大型復(fù)雜結(jié)構(gòu)系統(tǒng)的操作,SIMULINK還提供了模型結(jié)構(gòu)瀏覽的功能。
(6)交互式的仿真分析。SIMULINK的示波器可以動畫和圖形顯示數(shù)據(jù),運(yùn)行中可調(diào)整模型參數(shù)進(jìn)行What-if分析,能夠在仿真運(yùn)算進(jìn)行時(shí)監(jiān)視仿真結(jié)果。這種交互式的特征可幫助用戶快速評估不同的算法,進(jìn)行參數(shù)優(yōu)化。
由于SIMULINK完全集成于MATLAB,在SIMULINK下計(jì)算的結(jié)果可保存到MATLAB的工作空間中,因而就能使用MATLAB所具有的眾多分析、可視化及工具箱工具操作數(shù)據(jù)。
3.?SimPowerSystems庫的特點(diǎn)
SimPowerSystem庫具有如下特點(diǎn):
(1)使用標(biāo)準(zhǔn)電氣符號進(jìn)行電力系統(tǒng)的拓?fù)鋱D形建模和仿真。
(2)標(biāo)準(zhǔn)的AC和DC電機(jī)模型模塊、變壓器、輸電線路、信號和脈沖發(fā)生器、HVDC控制、IGBT模塊和大量設(shè)備模型。
(3)使用SIMULINK強(qiáng)有力的變步長積分器和零點(diǎn)穿越檢測功能,給出高度精確的電力系統(tǒng)仿真計(jì)算結(jié)果。
(4)利用定步長梯形積分算法進(jìn)行離散仿真計(jì)算,為快速仿真和實(shí)時(shí)仿真提供模型離散化方法。這一特性能夠顯著提高仿真計(jì)算的速度——尤其是那些帶有電力電子設(shè)備的模型。另外,由于模型被離散化,因此可用Real-TimeWorkshop生成模型的代碼,進(jìn)一步提高仿真的速度。
(5)利用Powergui交互式工具模塊可以修改模型的初始狀態(tài),從任何起始條件開始進(jìn)行仿真分析,例如計(jì)算電路的狀態(tài)空間表達(dá)、計(jì)算電流和電壓的穩(wěn)態(tài)解、設(shè)定或恢復(fù)初始電流/電壓狀態(tài)、電力系統(tǒng)的潮流計(jì)算等。
(6)提供了擴(kuò)展的電力系統(tǒng)設(shè)備模塊,如電力機(jī)械、功率電子元件、控制測量模塊和三相元器件。
(7)提供大量功能演示模型,可直接運(yùn)行仿真或進(jìn)行案例學(xué)習(xí)。 1.3簡單電路演示
下面用一個(gè)簡單的例子,說明利用SIMULINK進(jìn)行電力系統(tǒng)仿真的最基本方法。對于初入門的讀者而言,可以按本節(jié)步驟搭建系統(tǒng),也可以不進(jìn)行搭建,僅了解過程和仿真結(jié)果,因?yàn)樵敿?xì)的建模過程將在以后章節(jié)中一一說明。
【例1.1】在圖1-3所示電路中,已知電阻R?=?1kΩ,電容C?=?2μF,電感L?=?2.5H,電壓源vs?=?5sin(100πt+π/6)。試建立電路,并觀察電路中電流及R、L、C中電壓。圖1-3例1.1仿真系統(tǒng)圖
解:(1)搭建仿真系統(tǒng)圖。運(yùn)行MATLAB,得到命令窗口如圖1-4所示。圖1-4MATLAB主窗口單擊圖1-4MATLAB工具欄中的Simulink圖標(biāo),打開SIMULINK模塊庫瀏覽器主窗口,如圖1-5所示。圖1-5SIMULINK模塊庫瀏覽器主窗口點(diǎn)擊圖1-5菜單欄中的菜單項(xiàng)[File>New>Model](如圖1-6所示),打開一個(gè)名為untitled的空模型窗口,以文件名example1_1存盤(如圖1-7所示)。圖1-6用于創(chuàng)建新模型文件的菜單項(xiàng)圖1-7創(chuàng)建的新模型文件電力系統(tǒng)模塊庫在SIMULINK模塊庫瀏覽器窗口樹狀結(jié)構(gòu)圖中名為SimPowerSystems,雙擊該圖標(biāo),得到如圖1-8所示窗口。圖1-8SimPowerSystems目錄窗口雙擊“電源子庫”圖標(biāo),打開該模塊庫,選中交流電壓源模塊(ACVoltageSource),鼠標(biāo)左鍵按下,拖曳到文件example1_1中,鼠標(biāo)左鍵松開。這樣,文件example1_1中就有一個(gè)電壓源模塊,操作步驟如圖1-9所示。圖1-9復(fù)制交流電壓源到文件example1_1中雙擊圖1-9中交流電壓源模塊,打開圖1-10所示對話框,輸入電壓幅值、相角和頻率,單擊確定鍵后回到文件example1_1窗口中。注意,該電壓源要求輸入電壓幅值。圖1-10例1.1電壓源參數(shù)設(shè)置對話框在該交流電壓源模塊的標(biāo)簽位置雙擊,則模塊標(biāo)簽呈現(xiàn)編輯狀態(tài),輸入新標(biāo)簽vs,電壓源模塊的名稱將變?yōu)関s。
雙擊“元件子庫”圖標(biāo) ,打開該模塊庫,選中串聯(lián)RLC支路(SeriesRLCBranch),拖曳到文件example1_1中;雙擊該元件,設(shè)置參數(shù)并將元件標(biāo)簽更改為Z_eq。如圖1-11和圖1-12所示。圖1-11復(fù)制串聯(lián)RLC支路到文件example1_1中圖1-12例1.1串聯(lián)RLC支路參數(shù)設(shè)置對話框圖1-13例1.1的仿真電路連接圖1-14復(fù)制電流表模塊到文件example1_1中圖1-15復(fù)制示波器到文件example1_1中
圖1-16例1.1完整的仿真系統(tǒng)圖1-17仿真結(jié)果
習(xí)題
1-1電力系統(tǒng)常用仿真軟件有哪些,各有什么特點(diǎn)?
1-2MATLAB/SIMULINK具有什么特點(diǎn),版本號中各符號有什么含義?嘗試從互聯(lián)網(wǎng)上獲取最新的版本信息。
1-3SimPowerSystems庫中含有什么模塊,具有什么特點(diǎn)?嘗試從互聯(lián)網(wǎng)上獲取最新的功能和產(chǎn)品更新信息。第2章MATLAB編程基礎(chǔ)2.1MATLAB的工作環(huán)境2.2MATLAB語言的基本元素2.3矩陣的MATLAB運(yùn)算2.4MATLAB的程序流程控制2.5M文件的編寫2.6MATLAB的圖形繪制2.7MATLAB編程仿真與應(yīng)用習(xí)題
2.1MATLAB的工作環(huán)境
2.1.1MATLAB程序主界面
安裝完MATLAB7.0軟件并重新啟動計(jì)算機(jī)后,在Windows桌面上將出現(xiàn)MATLAB的軟件圖標(biāo)。鼠標(biāo)雙擊該圖標(biāo),就可進(jìn)入MATLAB的工作環(huán)境,顯示默認(rèn)的程序主界面,如圖2-1所示。
默認(rèn)的程序主界面主要包括下列區(qū)域:①菜單;②工具欄;③命令窗口;④當(dāng)前路徑瀏覽器;⑤工作空間瀏覽器;⑥命令歷史瀏覽器。這些命令子窗口使得MATLAB本身的操作更容易、方便。圖2-1MATLAB7.0的程序主界面
1.菜單
菜單功能與其它通用軟件開發(fā)環(huán)境基本一致,可進(jìn)行文件、編輯、調(diào)試、窗口和幫助等各主體功能菜單操作。這里僅介紹與MATLAB學(xué)習(xí)密切相關(guān)的文件類型的相關(guān)內(nèi)容。
(1)?[File>New>M-File]:進(jìn)入文本編輯窗界面,建立一個(gè)文本文件,實(shí)現(xiàn)MATLAB命令文件的輸入、編輯、調(diào)試、保存等處理功能,保存時(shí)文件后綴名為?.m。
(2)?[File>New>Figure]:進(jìn)入圖形窗界面,建立一個(gè)圖形文件,實(shí)現(xiàn)MATLAB圖形文件的顯示、編輯、保存等處理功能,保存時(shí)文件名后綴為?.fig。
(3)?[File>New>Model]:建立一個(gè)SIMULINK模型文件,實(shí)現(xiàn)SIMULINK仿真模型的建模、仿真、調(diào)試、保存等處理功能,保存時(shí)文件名后綴為?.mdl。
這三種文件是MATLAB/SIMULINK最重要的文件類型,在后面章節(jié)中將詳細(xì)論述。
2.工具欄
這里僅介紹SIMULINK中特有的工具圖標(biāo),其它圖標(biāo)與大部分常用軟件開發(fā)環(huán)境下的圖標(biāo)基本一致。
3.命令窗口
命令窗口位于圖2-1所示MATLAB程序主界面的最右邊,是用戶與MATLAB人機(jī)交互的主要環(huán)境。在提示符“>>”后鍵入MATLAB命令并回車確認(rèn),該命令窗口中將立即顯示執(zhí)行結(jié)果。
表2-1所示為命令窗口中的常用指令,對用戶的操作非常有用。表2-1命令窗口中的常用指令圖2-2命令窗口中輸入指令并返回結(jié)果在命令窗口中,很容易判斷某條語句是命令還是結(jié)果。命令行均以提示符“>>”開頭,計(jì)算結(jié)果不帶提示符。
4.當(dāng)前路徑瀏覽器
點(diǎn)擊圖2-1所示MATLAB軟件主界面左上窗口中的“CurrentDirectory”屬性頁,激活當(dāng)前路徑瀏覽器,如圖2-3所示。當(dāng)前工作路徑中所有文件夾及所有類型的文件名均顯示于此窗口中。用戶可在此窗口中進(jìn)行類似于一般文件夾中的管理工作,如新建或刪除文件夾、刪除或重命名文件、打開目標(biāo)文件等。圖2-3當(dāng)前路徑瀏覽器窗口
5.工作空間瀏覽器
當(dāng)MATLAB啟動后,系統(tǒng)自動在內(nèi)存中開辟一塊存儲區(qū)用于存儲用戶在MATLAB命令窗口中定義的變量、運(yùn)算結(jié)果和有關(guān)數(shù)據(jù),此內(nèi)存空間稱為MATLAB的工作空間(workspace)。工作空間在MATLAB剛啟動時(shí)為空,用戶退出MATLAB后,工作空間的內(nèi)容將不再保留。
點(diǎn)擊圖2-1所示MATLAB程序主界面左上窗口中的“Workspace”屬性頁,激活工作空間瀏覽器,如圖2-4所示。在此窗口中可以對工作空間進(jìn)行管理。圖2-4工作空間瀏覽器窗口如同例2.1,在輸入實(shí)現(xiàn)勾股定理的命令語句并執(zhí)行后,系統(tǒng)工作空間管理窗中顯示的信息如圖2-4所示??梢姡趫?zhí)行命令過程中,用戶在MATLAB命令窗口中定義的變量和運(yùn)算結(jié)果確實(shí)都已經(jīng)存儲在工作空間中。用戶可方便地查看當(dāng)前工作空間中存在的變量和值,而且還可進(jìn)行新變量定義、變量刪除、保存等管理。
6.命令歷史瀏覽器
命令歷史瀏覽器位于圖2-1所示MATLAB程序主界面的左下角,屬性頁名稱為CommandHistory。如圖2-5中所示,此窗口按時(shí)間順序完整地記錄了曾經(jīng)在MATLAB工作窗口中輸入并執(zhí)行過的命令語句。圖2-5命令歷史瀏覽器窗口通過命令歷史瀏覽器,可實(shí)現(xiàn)的功能如下:
(1)方便地按順序查看輸入命令的記錄。
(2)雙擊單條命令行,可使其立即執(zhí)行,而不用用戶重新輸入命令行。
(3)按住“Ctrl”鍵并單擊鼠標(biāo)左鍵可選中多條命令行,再單擊鼠標(biāo)右鍵,在彈出菜單中選擇“CreateM-File”選項(xiàng),可將選中的多條命令行作為一個(gè)文件進(jìn)行編輯和保存。2.1.2文本編輯窗口
MATLAB編程有兩種工作方式:一種稱為行命令方式,就是在工作窗口中一行一行地輸入程序,計(jì)算機(jī)每次對一行命令做出反應(yīng),因此也稱為交互式的指令行操作方式;另一種工作方式為M文件編程工作方式。編寫和修改M文件就要用到文本編輯窗口。
表2-2列出了這兩種工作方式的簡單比較。表2-2MATLAB編程兩種工作方式比較用戶可以通過創(chuàng)建一個(gè)新的文本文件或打開一個(gè)原有的程序文件的方式來進(jìn)入文本編輯窗口。該類程序文件名以?.m為后綴。用戶將文本編輯窗口中的程序保存后,在MATLAB命令窗口中輸入該文件的文件名就能執(zhí)行程序。
MATLAB中還有一種圖形管理窗口,執(zhí)行繪圖命令后,會自動產(chǎn)生該窗口,圖形的編輯管理等工作都在這一個(gè)窗口中進(jìn)行。關(guān)于圖形管理窗口的知識將在2.6節(jié)中詳細(xì)論述。
2.2MATLAB語言的基本元素
MATLAB語言提供了豐富的數(shù)據(jù)類型,如實(shí)數(shù)、復(fù)數(shù)、向量、矩陣、字符串、多維數(shù)組、結(jié)構(gòu)體、類和對象等,還提供了豐富的內(nèi)置功能函數(shù)。這些功能使得MATLAB的編程功能非常強(qiáng)大。
本節(jié)介紹變量和矩陣這兩種最基本且常用的數(shù)據(jù)類型以及賦值語句的基本形式。2.2.1變量
變量是保存數(shù)據(jù)信息的一種最基本的數(shù)據(jù)類型。變量的命名應(yīng)遵循如下規(guī)則:
(1)變量名必須以字母開頭;
(2)變量名可以由字母、數(shù)字和下劃線混合組成;
(3)變量名區(qū)分字母大小寫;
(4)?MATLAB保留了一些具有特定意義的默認(rèn)變量(見表2-3),用戶編程時(shí)可以直接使用,并盡量避免另外自定義。
例如,Long和My_long1均是有效的變量名,Long和long表示的是不同的變量。用戶編程時(shí)必須注意并遵守這些規(guī)則。表2-3MATLAB的系統(tǒng)保留變量2.2.2賦值語句
MATLAB采用命令行形式的表達(dá)式語言,每一個(gè)命令行就是一條語句,其格式與書寫的數(shù)學(xué)表達(dá)式十分相近,非常容易掌握。用戶在命令窗口輸入語句并按下回車鍵后,該語句就由MATLAB系統(tǒng)解釋運(yùn)行,并給出運(yùn)行結(jié)果。MATLAB的賦值語句有下面兩種結(jié)構(gòu)。
1.直接賦值語句
直接賦值語句的基本結(jié)構(gòu)如下:
賦值變量?=?賦值表達(dá)式
其中,等號右邊的表達(dá)式由變量名、常數(shù)、函數(shù)和運(yùn)算符構(gòu)成,直接賦值語句把右邊表達(dá)式的值直接賦給了左邊的賦值變量,并將返回值顯示在MATLAB的命令窗口中。
【例2.2】對a賦值,實(shí)現(xiàn)a?=?2p。
解:在MATLAB命令窗口中輸入圖2-6所示語句并回車確認(rèn)。圖2-6例2.2輸入語句及返回結(jié)果
2.函數(shù)調(diào)用語句
直接賦值語句的基本結(jié)構(gòu)如下:
[返回變量列表]?=?函數(shù)名(輸入變量列表)
其中,等號右邊的函數(shù)名對應(yīng)于一個(gè)存放在合適路徑中的MATLAB文本文件。函數(shù)可以分為兩大類:一類是用戶根據(jù)需要自定義的用戶函數(shù);另一類是MATLAB內(nèi)核中已經(jīng)存在的內(nèi)置函數(shù)。
返回變量列表和輸入變量列表均可以由若干變量名組成。若返回變量個(gè)數(shù)大于1,則它們之間應(yīng)該用逗號或空格分隔;若輸入變量個(gè)數(shù)大于1,則它們之間只能用逗號分隔。
【例2.3】通過調(diào)用size()函數(shù)求取矩陣維數(shù)。
解:在MATLAB命令窗口中依次輸入圖2-7所示語句并回車確認(rèn)。圖2-7例2.3輸入語句及返回結(jié)果2.2.3矩陣及其元素的表示
如前所述,MATLAB的起源即“矩陣實(shí)驗(yàn)室”,矩陣是MATLAB進(jìn)行數(shù)據(jù)處理的基本變量單元。因此,掌握矩陣的表示方法是進(jìn)行MATLAB編程和應(yīng)用的基礎(chǔ)。
1.矩陣的表示
用MATLAB語言表示一個(gè)矩陣非常容易。如圖2-8所示,在MATLAB命令窗口中輸入語句并回車確認(rèn),即可見矩陣變量A被成功賦值,并在MATLAB的工作空間中建立了一個(gè)名為A的矩陣變量,用戶可以在后繼的指令和函數(shù)中隨意調(diào)用該矩陣。在輸入過程中必須遵循以下規(guī)則:
(1)必須使用方括號[]包括矩陣的所有元素;
(2)矩陣不同的行之間必須用分號或回車符隔開;
(3)矩陣同一行的各元素之間必須用逗號或空格隔開。
為方便用戶使用,提高編程效率,除了最基本的直接輸入方法外,MATLAB還提供給用戶一些可以直接調(diào)用的內(nèi)置基本矩陣函數(shù),有時(shí)可以成為創(chuàng)建矩陣的捷徑。MATLAB提供的主要內(nèi)置基本矩陣函數(shù)如表2-4所示。圖2-8矩陣的輸入及表示表2-4MATLAB內(nèi)置基本矩陣函數(shù)例2.3中,就曾使用過rand(3)函數(shù),并產(chǎn)生一個(gè)3階的隨機(jī)矩陣。下例中,將創(chuàng)建一個(gè)3階的單位陣。
【例2.4】調(diào)用eye()函數(shù)創(chuàng)建一個(gè)3階的單位陣。
解:在MATLAB命令窗口中輸入如圖2-9所示語句并回車確認(rèn)。圖2-9eye()函數(shù)創(chuàng)建的3階單位矩陣向量是矩陣的一種特例,前面介紹的有關(guān)矩陣的表示方法完全適用于向量,只是表示矩陣行列數(shù)的n?×?m中,有一個(gè)系數(shù)為1。
例如,如圖2-10所示,在命令窗口中輸入v1?=?[1234]和v2?=?[1;2;3;4],回車確認(rèn)后觀察結(jié)果,注意v1和v2的區(qū)別。圖2-10行向量和列向量的輸入及表示
MATLAB還提供了一個(gè)便利且高效的表達(dá)式來給等步長(均勻等分)的行向量賦值,即冒號表達(dá)式。冒號表達(dá)式的基本調(diào)用格式為
V?=?m:p:n
其中,m、n為標(biāo)量,分別代表向量的起始值和終止值,p代表向量元素之間步長值。
例如,在MATLAB命令窗口中輸入語句V?=?0:0.2:1并回車確認(rèn),結(jié)果如圖2-11。圖2-11冒號表達(dá)式在均勻等分向量中的應(yīng)用利用MATLAB命令求矩陣A對角線元素之和。
解:在MATLAB命令窗口中輸入圖2-12所示語句并回車確認(rèn)。圖2-12例2.5輸入語句及返回結(jié)果圖2-13例2.6輸入語句及返回結(jié)果
【例2.7】利用MATLAB命令,對例2.5矩陣A中的第二行元素置零。
解:在MATLAB命令窗口中輸入圖2-14所示語句并回車確認(rèn)。圖2-14例2.7輸入語句及返回結(jié)果 2.3矩陣的MATLAB運(yùn)算
矩陣運(yùn)算是MATLAB最重要的運(yùn)算,因?yàn)镸ATLAB的運(yùn)算大部分都建立在矩陣運(yùn)算的基礎(chǔ)之上。
MATLAB中包括三種矩陣運(yùn)算類型:矩陣的代數(shù)運(yùn)算、矩陣的關(guān)系運(yùn)算和矩陣的邏輯運(yùn)算。其中,矩陣的代數(shù)運(yùn)算應(yīng)用最廣泛。根據(jù)不同的應(yīng)用目的,矩陣的代數(shù)運(yùn)算又包含兩種重要的運(yùn)算形式:按矩陣整體進(jìn)行運(yùn)算的矩陣運(yùn)算、按矩陣單個(gè)元素進(jìn)行運(yùn)算的元素群運(yùn)算。2.3.1矩陣的代數(shù)運(yùn)算
1.矩陣的算術(shù)運(yùn)算
矩陣算術(shù)運(yùn)算的書寫格式與普通算術(shù)運(yùn)算相同,包括優(yōu)先順序規(guī)則,但其乘法和除法的定義和方法與標(biāo)量截然不同,讀者應(yīng)在矩陣的運(yùn)算意義上加以理解和應(yīng)用。
MATLAB矩陣的算術(shù)運(yùn)算符及其說明如表2-5所示。表2-5MATLAB矩陣的算術(shù)運(yùn)算符及其說明在進(jìn)行矩陣的算術(shù)運(yùn)算時(shí),需要注意以下幾點(diǎn):
(1)若A、B兩矩陣進(jìn)行加、減運(yùn)算,則A、B必須維數(shù)相同,否則系統(tǒng)提示出錯(cuò)。
(2)若A、B兩矩陣進(jìn)行乘運(yùn)算,則A、B的內(nèi)維必須相同(即前一矩陣的列數(shù)等于后一矩陣的行數(shù))。設(shè)Cm×n=Am×kBk×n,式中A、B的順序不能任意調(diào)換,因?yàn)锳*B和B*A的計(jì)算結(jié)果很可能是完全不同的。
(3)若A、B兩矩陣進(jìn)行右除運(yùn)算,則A和B的列數(shù)必須相等(實(shí)際上,X?=?B/A=B×A-1)。
(4)若A、B兩矩陣進(jìn)行左除運(yùn)算,則A和B的行數(shù)必須相等(實(shí)際上,X?=?A\B?=?A-1·?B)。
表2-6中列出了一些矩陣的算術(shù)運(yùn)算示例,讀者可仔細(xì)觀察其中規(guī)律,并理解以上的注意事項(xiàng)。表2-6矩陣的算術(shù)運(yùn)算示例
2.矩陣的運(yùn)算函數(shù)
MATLAB系統(tǒng)函數(shù)庫中提供了一些常用的矩陣運(yùn)算函數(shù)。矩陣的加、減、乘、除等運(yùn)算對參與運(yùn)算的矩陣都有各自的矩陣維數(shù)匹配要求。那么,如何判定各矩陣的維數(shù)呢?內(nèi)置size()函數(shù)可以輕易解決這個(gè)問題。因此,熟悉這些對用戶非常有用。
表2-7列出了部分常用的矩陣運(yùn)算函數(shù)。表2-8中列出了對矩陣A?=?[12;34]的各種函數(shù)運(yùn)行結(jié)果。表2-7常用的矩陣運(yùn)算函數(shù)表2-8矩陣運(yùn)算函數(shù)應(yīng)用示例
3.矩陣的元素群運(yùn)算
元素群即數(shù)組,是指1?×?N或N?×?1階矩陣。元素群運(yùn)算即矩陣中的所有元素按單個(gè)元素進(jìn)行運(yùn)算。
為了與矩陣作為整體的運(yùn)算符號相區(qū)別,元素群運(yùn)算約定:在矩陣運(yùn)算符“*”、“/”、“\”、“^”前加一個(gè)點(diǎn)符號“.”,以表示在做元素群運(yùn)算,而非矩陣運(yùn)算。元素群加、減運(yùn)算的效果與矩陣加、減運(yùn)算是一致的,運(yùn)算符也相同。
矩陣的元素群運(yùn)算符及其說明如表2-9所示。表2-9矩陣的元素群運(yùn)算符及其說明例如,對于矩陣A
=?B
=?[12;34],表2-10表明了矩陣元素群運(yùn)算和矩陣運(yùn)算的差別。表2-10矩陣的元素群運(yùn)算應(yīng)用示例
4.元素群的函數(shù)
MATLAB提供了幾乎所有初等函數(shù),包括三角函數(shù)、對數(shù)函數(shù)、指數(shù)函數(shù)和復(fù)數(shù)運(yùn)算函數(shù)等。
值得注意的是,大部分的MATLAB函數(shù)的運(yùn)算都是按數(shù)組的運(yùn)算規(guī)則進(jìn)行的,即函數(shù)運(yùn)算是分別作用于函數(shù)變量(矩陣)的每一個(gè)元素,這意味著這些函數(shù)的自變量可以是任意階的矩陣。
表2-11列出了MATLAB常用初等函數(shù)名及其對應(yīng)功能。表2-11MATLAB常用初等函數(shù)名及其對應(yīng)功能圖2-15例2.8輸入語句及返回結(jié)果2.3.2矩陣的關(guān)系運(yùn)算
MATLAB語言定義了各種矩陣的關(guān)系運(yùn)算,其符號及意義如表2-12所示。表2-12MATLAB的關(guān)系運(yùn)算符這些關(guān)系運(yùn)算都是針對兩個(gè)矩陣對應(yīng)元素的。因此,在使用關(guān)系運(yùn)算時(shí),首先應(yīng)保證兩個(gè)矩陣的維數(shù)一致或至少一個(gè)為標(biāo)量。若參與運(yùn)算的對象為兩個(gè)矩陣,則關(guān)系運(yùn)算對兩個(gè)矩陣的對應(yīng)元素進(jìn)行關(guān)系比較,若關(guān)系滿足,則將結(jié)果矩陣中該位置的元素置1,否則置0。若參與運(yùn)算的對象之一為標(biāo)量,則關(guān)系運(yùn)算將矩陣的每一個(gè)元素與該標(biāo)量逐一進(jìn)行關(guān)系比較,若關(guān)系滿足,則將結(jié)果矩陣中該位置的元素置1,否則置0。
注意,關(guān)系運(yùn)算比算術(shù)運(yùn)算具有更高的優(yōu)先權(quán)。
例如,矩陣A
=?[0234;1350]和B
=?[1053;1505]的各種關(guān)系運(yùn)算結(jié)果如表2-13所示。表2-13MATLAB的關(guān)系運(yùn)算應(yīng)用示例2.3.3矩陣的邏輯運(yùn)算
MATLAB矩陣的基本邏輯運(yùn)算符號及其意義如表2-14所示。在邏輯運(yùn)算中,所有非零元素的邏輯值為“真”,用代碼“1”表示;值為零的元素的邏輯值為“假”,用代碼“0”表示。邏輯運(yùn)算規(guī)則與關(guān)系運(yùn)算基本一致,也是針對兩個(gè)矩陣的對應(yīng)元素。邏輯運(yùn)算真值表也與一般二值運(yùn)算真值表完全一致。表2-14MATLAB矩陣的基本邏輯運(yùn)算符號及其意義例如,矩陣A?=?[0234;1350]和B?=?[1053;1505]的各種邏輯運(yùn)算結(jié)果如表2-15所示。表2-15MATLAB的邏輯運(yùn)算應(yīng)用示例
2.4MATLAB的程序流程控制
作為一種程序設(shè)計(jì)語言,MATLAB同一般高級程序語言一樣,為用戶提供了豐富的程序結(jié)構(gòu)語言來實(shí)現(xiàn)用戶對程序流程的控制。
MATLAB的程序流程控制主要包括循環(huán)控制和條件控制。
2.4.1循環(huán)控制結(jié)構(gòu)
1.?for循環(huán)結(jié)構(gòu)
for循環(huán)結(jié)構(gòu)的格式為
for循環(huán)變量=向量表達(dá)式
循環(huán)體語句組%語句組是一組合法的MATLAB命令
end%end是必須的,這與C語言不同
該循環(huán)結(jié)構(gòu)的執(zhí)行方式為:從表達(dá)式的第一列開始,依次將表達(dá)式(向量)的各列之值賦值給變量,然后執(zhí)行語句組中的命令,直到最后一列。
通常使用的for循環(huán)格式為
fori?=?m:p:n
即用冒號表達(dá)式進(jìn)行等步長向量的創(chuàng)建。圖2-16例2.9輸入語句及返回結(jié)果
2.?while循環(huán)結(jié)構(gòu)
while循環(huán)結(jié)構(gòu)的基本格式為
while關(guān)系表達(dá)式
循環(huán)體語句組
end
該循環(huán)結(jié)構(gòu)的執(zhí)行方式為:首先判斷關(guān)系表達(dá)式是否為真,若為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行完后再返回while引導(dǎo)的語句處,判斷關(guān)系表達(dá)式是否依然為真;如果非真,則跳出循環(huán)。通常,通過循環(huán)語句組中對關(guān)系表達(dá)式進(jìn)行改變來控制循環(huán)是否結(jié)束。圖2-17例2.10輸入語句及返回結(jié)果2.4.2條件轉(zhuǎn)移結(jié)構(gòu)
條件轉(zhuǎn)移結(jié)構(gòu)中最基本的是if條件轉(zhuǎn)移結(jié)構(gòu)語句。if條件轉(zhuǎn)移結(jié)構(gòu)的基本格式為:
if條件式
條件塊語句組1
else
條件塊語句組2
end
該條件轉(zhuǎn)移結(jié)構(gòu)的執(zhí)行方式為:若條件式成立,則執(zhí)行條件塊語句組1語句;若條件式不成立,則執(zhí)行條件塊語句組2語句。上述基本結(jié)構(gòu)只能處理較簡單的條件,當(dāng)程序運(yùn)行的分支條件多于兩個(gè)時(shí),則可采用if條件轉(zhuǎn)移結(jié)構(gòu)的另一種格式:
if條件式1
條件塊語句組1
elseif條件式2
條件塊語句組2
…
elseif條件式n-1
條件塊語句組n-1
else
條件塊語句組n
end該條件轉(zhuǎn)移結(jié)構(gòu)的執(zhí)行方式為:若條件式1成立,則執(zhí)行條件塊語句組1語句;若條件式i成立,則執(zhí)行條件塊語句組i(2<=i<=n-1,n>=3)語句;否則,執(zhí)行條件塊語句組n語句。
【例2.11】已知A、B矩陣分別為A?=?[123;456;789]、B?=?[12;34]。判斷兩個(gè)矩陣維數(shù)是否相等,并返回判斷結(jié)果。
解:在MATLAB命令窗口中輸入圖2-18所示語句并回車確認(rèn)。圖2-18例2.11輸入語句及返回結(jié)果
2.5M文件的編寫
M文件又可分為命令M文件(簡稱命令文件)和函數(shù)M文件(簡稱函數(shù)文件)兩大類,其特點(diǎn)和適用領(lǐng)域均不同。
2.5.1命令文件
命令文件是由MATLAB語句構(gòu)成的文本文件,以?.m為擴(kuò)展名。運(yùn)行命令文件的效果等價(jià)于從MATLAB命令窗口中按順序逐條輸入并運(yùn)行文件中的指令,類似于DOS下的批處理文件。命令文件運(yùn)行過程中所產(chǎn)生的變量保留在MATLAB的工作空間中,命令文件也可以訪問MATLAB當(dāng)前工作空間的變量,其它命令文件和函數(shù)可以共享這些變量。因此,命令文件常用于主程序的設(shè)計(jì)。
在例2.12中,將觀測到命令文件和工作空間數(shù)據(jù)的共享。
【例2.12】已知長方體的長a?=?5、寬b?=?4、高h(yuǎn)?=?3。編寫命令文件求該長方體的表面積和體積。
解:(1)在MATLAB命令窗口中輸入長方體參數(shù):
a=5;b=4;h=3;
(2)新建一個(gè)文本文件,在該文本編輯窗口中輸入求取表面積和體積的指令(見圖2-19)。圖2-19例2.12命令文件編輯窗口選擇文本編輯器的菜單項(xiàng)[File>SaveAs],以文件名rect1.m保存在默認(rèn)的當(dāng)前工作目錄中。
(3)在MATLAB工作窗口中輸入M文件名,得到結(jié)果如圖2-20所示。圖2-20例2.12命令文件調(diào)用及結(jié)果可見,命令文件在執(zhí)行過程中,已經(jīng)成功訪問了MATLAB工作空間的變量和數(shù)據(jù)(長方體長、寬、高參數(shù)a、b、h),并將執(zhí)行的結(jié)果數(shù)據(jù)(長方體的表面積和體積s、v)保留在MATLAB的工作空間中,工作空間中的其它命令文件和函數(shù)可以共享這些變量。
用戶在應(yīng)用命令文件時(shí),可能希望將自己的文件保存在自定義的工作目錄中,而不是保存在MATLAB默認(rèn)的工作目錄“安裝路徑\MATLAB\work”中。這時(shí)必須更改MATLAB的工作路徑或添加MATLAB的搜索路徑,否則運(yùn)行命令文件時(shí)系統(tǒng)將無法找到該命令文件導(dǎo)致出錯(cuò)。
【例2.13】將例2.12的命令文件rect1.m保存在用戶自定義的路徑中,測試執(zhí)行的結(jié)果。
解:(1)打開MATLAB默認(rèn)工作目錄“安裝路徑\MATLAB\work”文件夾,刪除例2.12保存在這里的rect1.m文件。
(2)重新創(chuàng)建一個(gè)同樣內(nèi)容的命令文件。選擇菜單項(xiàng)[File->SaveAs],在彈出的保存文件對話框中更改保存目錄為“F:\”,輸入要保存的文件名rect1.m并確定保存?;氐組ATLAB命令窗口,輸入初始數(shù)據(jù)及文件調(diào)用命令并返回結(jié)果,如圖2-21所示。圖2-21例2.13調(diào)用結(jié)果結(jié)果表明:MATLAB未能正確搜索并執(zhí)行保存在用戶自定義目錄中的命令文件。
(3)單擊菜單選項(xiàng)[File->SetPath],出現(xiàn)如圖2-22所示的對話框,單擊“添加目錄”(AddFolder)按鍵,將彈出瀏覽文件夾對話框,選中文件夾“F:”并確認(rèn),將用戶文件保存的目錄“F:\”添加到MATLAB搜索路徑中,點(diǎn)擊“Save”按鍵保存設(shè)置。圖2-22在MATLAB搜索路徑中添加用戶自定義目錄現(xiàn)在,在MATLAB的搜索路徑中出現(xiàn)了新增加的目錄“F:\”。保存后退出該窗口,并回到MATLAB命令窗口,輸入文件調(diào)用命令并返回結(jié)果,如圖2-23所示。
結(jié)果表明:若用戶文件所在的目錄不是當(dāng)前默認(rèn)的工作目錄,則需要將其添加到MATLAB的搜索路徑中,這樣MATLAB才能正確搜索并執(zhí)行命令(另外一種方法即改變當(dāng)前工作目錄)。圖2-23在搜索路徑中添加自定義目錄后的調(diào)用結(jié)果2.5.2函數(shù)文件
函數(shù)文件是M文件的另一種類型,它也是由MATLAB語句構(gòu)成的文本文件并以?.m為擴(kuò)展名。MATLAB的函數(shù)文件必須以關(guān)鍵字function語句引導(dǎo),其基本結(jié)構(gòu)如下:
function[返回參數(shù)1,返回參數(shù)2,…]=函數(shù)名(輸入?yún)?shù)1,輸入?yún)?shù)2,…)
%注釋說明語句段,由%引導(dǎo)
輸入、返回變量格式的檢測語句
函數(shù)體語句需要特別注意函數(shù)文件具有如下特點(diǎn):
(1)函數(shù)名由用戶自定義,與變量的命名規(guī)則相同。
(2)保存的文件名必須與定義的函數(shù)名一致。
(3)用戶可通過返回參數(shù)及輸入?yún)?shù)來實(shí)現(xiàn)函數(shù)參數(shù)的傳遞,但返回參數(shù)和輸入?yún)?shù)并不是必需的。返回參數(shù)如果多于1個(gè),則應(yīng)用[]將它們括起來,否則可以省略[];輸入?yún)?shù)列表必須用()括起來,即使只有一個(gè)輸入?yún)?shù)。
(4)注釋語句段的每行語句都應(yīng)該用%引導(dǎo),%后面的內(nèi)容不執(zhí)行。用戶可用help命令顯示出注釋語句的內(nèi)容,用于函數(shù)使用前的信息參考。
(5)如果函數(shù)較復(fù)雜,則正規(guī)的參數(shù)個(gè)數(shù)檢測是必要的。如果輸入或返回參數(shù)格式不正確,則應(yīng)該給出相應(yīng)的提示。函數(shù)中輸入和返回參數(shù)的實(shí)際個(gè)數(shù)分別由MATLAB內(nèi)部保留變量nargin和nargout給出,只要運(yùn)行了該函數(shù),MATLAB將自動生成這兩個(gè)變量,因此用戶編程可直接應(yīng)用。
(6)與一般高級語言不同的是,函數(shù)文件末尾處不需要使用end指令(循環(huán)控制和條件轉(zhuǎn)移結(jié)構(gòu)中的除外)。
【例2.14】以長方體的長、寬、高參數(shù)作為函數(shù)參數(shù),編寫函數(shù)文件來求解長方體的表面積和體積。
解:(1)新建一個(gè)文本文件,在該文本編輯窗口中(見圖2-24)輸入求表面積和體積的指令。圖2-24例2.14函數(shù)文件編輯窗口
(2)單擊菜單選項(xiàng)[File->SaveAs],將該文件以文件名rect2.m保存在默認(rèn)的當(dāng)前工作目錄中。
(3)在MATLAB命令窗口中調(diào)用該函數(shù)文件,得到結(jié)果如圖2-25所示。圖2-25例2.14函數(shù)文件調(diào)用及結(jié)果與命令文件相比,函數(shù)文件的最大優(yōu)點(diǎn)之一是實(shí)現(xiàn)了參數(shù)的傳遞,這極大地提高了文件的通用性。例如,在分別用命令文件和函數(shù)文件實(shí)現(xiàn)的長方體表面積和體積的求解程序中,所用的指令數(shù)幾乎一樣,但命令文件rect1.m只能在當(dāng)前工作窗口中使用,參數(shù)必須在工作空間中給定,而函數(shù)文件rect2.m則可以被任何主程序或其它函數(shù)調(diào)用,參數(shù)可以任意設(shè)定。
【例2.15】編程實(shí)現(xiàn)一個(gè)n×m階的矩陣,使第i行第j列元素值為1/(i?+?j-1)。要求在編寫的函數(shù)中實(shí)現(xiàn)下面幾點(diǎn):
(1)如果只給出一個(gè)輸入?yún)?shù),則會自動生成一個(gè)方陣,即令m?=?n;
(2)在函數(shù)中給出合適的幫助信息,包括基本功能、調(diào)用方式和參數(shù)說明;
(3)檢測輸入和返回變量的個(gè)數(shù),如果有錯(cuò)誤則給出錯(cuò)誤信息。
解:(1)根據(jù)要求,編寫一個(gè)myfunc()函數(shù),文件名為myfunc.m,存放在MATLAB的當(dāng)前工作路徑下。該函數(shù)文件如圖2-26所示。圖2-26例2.15函數(shù)文件編輯窗口
(2)在MATLAB命令窗口中調(diào)用該函數(shù)文件,得到結(jié)果如圖2-27所示。圖2-27例2.15函數(shù)文件調(diào)用及結(jié)果
2.6MATLAB的圖形繪制
MATLAB除了強(qiáng)大的數(shù)值分析功能外,還具有方便的繪圖功能。利用MATLAB豐富的二維、三維圖形函數(shù)和多種修飾方法,只要指定繪圖方式并提供繪圖數(shù)據(jù),就可以繪制出理想的圖形。由于MATLAB的圖形系統(tǒng)是建立在諸如線、?面等圖形對象集合基礎(chǔ)之上的,因此用戶可以對任何一個(gè)圖形元素進(jìn)行單獨(dú)地修改,而不影響圖形的其它部分。2.6.1二維圖形的繪制
1.基本繪圖命令
MATLAB中最常用的繪圖函數(shù)為plot(),根據(jù)函數(shù)輸入?yún)?shù)不同,常用的幾種調(diào)用格式如表2-16所示。其中,'option'?用來設(shè)置曲線屬性的選項(xiàng),其內(nèi)容主要包括諸如顏色、線型、標(biāo)記類型等曲線屬性。'option'?選項(xiàng)并不是必需的,若缺少該項(xiàng),MATLAB將按系統(tǒng)默認(rèn)格式統(tǒng)一安排各條曲線的屬性值。表2-16繪圖函數(shù)plot()的常用調(diào)用格式
MATLAB提供的'option'選項(xiàng)的屬性如表2-17所示。表2-17'option'?選項(xiàng)的屬性在繪制圖形時(shí),需要注意以下幾點(diǎn):
(1)用來繪制圖形的數(shù)據(jù)必須已經(jīng)存儲在工作空間中。
(2)對應(yīng)的x軸和y軸的數(shù)據(jù)長度必須相同。
(3)若省去選項(xiàng)?'option',系統(tǒng)將按默認(rèn)的格式繪制曲線。
(4)?'option'中的屬性可以多個(gè)連用,例如選項(xiàng)?'-.g'?表示繪制綠色的點(diǎn)劃線。
【例2.16】試在同一圖形窗口中繪制出一個(gè)周期內(nèi)的正弦曲線和余弦曲線。
解:在MATLAB命令窗口中輸入圖2-28所示語句并回車確認(rèn)。圖2-28例2.16輸入語句運(yùn)行后,系統(tǒng)自動彈出圖形窗口界面,并顯示結(jié)果如圖2-29所示。圖2-29例2.16輸出圖形界面用戶可能會對系統(tǒng)默認(rèn)的繪圖結(jié)果不滿意,并提出更具體的要求,比如:
(1)正弦曲線用紅色的點(diǎn)線繪制;
(2)余弦曲線用綠色的?'*'?標(biāo)記繪制;
(3)顯示x軸線,以符合平常坐標(biāo)軸習(xí)慣。
在MATLAB命令窗口中重新輸入語句并確認(rèn)(見圖2-30)。其中,命令line(x,y)是MATLAB提供的除plot命令外的另一種繪制直線的命令,這里用來繪制x軸。圖2-30例2.16調(diào)整要求后的輸入語句繪圖結(jié)果如圖2-31所示。圖2-31例2.16調(diào)整要求后的輸出圖形界面
2.圖形修飾函數(shù)
MATLAB提供了多種圖形函數(shù),用于圖形的修飾。常用的圖形修飾函數(shù)名稱及其功能說明如表2-18所示。表2-18MATLAB常用圖形修飾函數(shù)及其功能說明
【例2.17】進(jìn)一步修飾例2.16的圖形,實(shí)現(xiàn)以下要求:
(1)將圖形的x軸的大小范圍限定在[0,2p]之間,y軸的大小范圍限定在[-2,2]之間;
(2)?x、y坐標(biāo)軸分別標(biāo)注為弧度值、函數(shù)值;
(3)圖形標(biāo)題標(biāo)注為正弦曲線和余弦曲線;
(4)添加圖例標(biāo)注,標(biāo)注字符分別為y1、y2;
(5)給圖形添加網(wǎng)格線;
(6)在兩條曲線上分別標(biāo)注文本y1?=?sin(t)、y2?=?cos(t)。
解:(1)在命令窗口中輸入圖2-32所示程序代碼。
程序運(yùn)行結(jié)果如圖2-33所示。
(2)標(biāo)注文本。如圖2-33所示,在執(zhí)行第一個(gè)gtext時(shí),需要在圖形窗口確定該文本的位置。打開圖形窗口,可以看到一個(gè)跟隨用戶鼠標(biāo)移動的十字形指針。將鼠標(biāo)拖動到正弦曲線圖形附近,然后單擊鼠標(biāo),字符串y1?=?sin(t)即添加到此處。在執(zhí)行第二個(gè)gtext命令時(shí),同樣需要用鼠標(biāo)將十字形指針拖動到余弦曲線圖形附近并單擊鼠標(biāo),字符串y2=cos(t)即添加到此處。最終顯示的圖形畫面如圖2-34所示。圖2-32例2.17輸入程序代碼圖2-33例2.17輸出圖形界面(字符串未添加)圖2-34例2.17最終輸出圖形界面
3.特殊二維曲線繪制
除了標(biāo)準(zhǔn)的二維曲線繪制之外,?MATLAB還提供了多種具有特殊意義的圖形繪制函數(shù),其常用調(diào)用格式如表2-19所示。其中,參數(shù)x和y分別表示x軸、y軸繪圖數(shù)據(jù)。
這些特殊圖形繪制函數(shù)各具意義,其中bar函數(shù)可用于統(tǒng)計(jì)分析,stem、stairs函數(shù)可用于離散序列數(shù)據(jù)的顯示,polar、loglog函數(shù)分別可用于繪制極坐標(biāo)圖和對數(shù)圖。表2-19MATLAB的特殊二維曲線繪制函數(shù)圖2-35例2.18輸入程序代碼程序運(yùn)行結(jié)果如圖2-36所示。圖2-36例2.18輸出圖形界面(a)火柴桿圖;(b)階梯圖;(c)二維條形圖;(d)極坐標(biāo)圖
4.圖形窗口控制
MATLAB提供了一系列專門的圖形窗口控制函數(shù),通過這些函數(shù),可以創(chuàng)建或者關(guān)閉圖形窗口,可以同時(shí)打開幾個(gè)窗口,也可以在一個(gè)窗口內(nèi)繪制若干分圖。這些函數(shù)及其功能說明如表2-20所示。表2-20MATLAB圖形窗口控制函數(shù)及其功能說明使用圖形窗口控制函數(shù)時(shí)需要注意如下幾點(diǎn):
(1)在命令窗口中運(yùn)行繪圖指令后,將自動創(chuàng)建一個(gè)名為Figure
溫馨提示
- 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年廣東公務(wù)員考試行測試題
- 2024婚禮司儀主持詞開場白模版(33篇)
- 2024西安市房屋租賃合同范本(22篇)
- 2025年個(gè)人資產(chǎn)轉(zhuǎn)讓協(xié)議官方版
- 2025年代理出口合作協(xié)議范例
- 2025年農(nóng)村自用土地轉(zhuǎn)讓合同示例
- 2025年油污清潔劑項(xiàng)目立項(xiàng)申請報(bào)告模板
- 2025年公路清障車項(xiàng)目規(guī)劃申請報(bào)告模稿
- 2025年中國郵政快遞運(yùn)輸合同標(biāo)準(zhǔn)
- 2025年快遞員職業(yè)技能培訓(xùn)與發(fā)展協(xié)議
- GB/T 26189.2-2024工作場所照明第2部分:室外作業(yè)場所的安全保障照明要求
- 七上 U2 過關(guān)單 (答案版)
- 2024年貴銀金融租賃公司招聘筆試參考題庫附帶答案詳解
- 貸款新人電銷話術(shù)表
- 音箱可靠性測試規(guī)范
- 數(shù)據(jù)結(jié)構(gòu)ppt課件完整版
- 新北師大版四年級下冊小學(xué)數(shù)學(xué)全冊導(dǎo)學(xué)案(學(xué)前預(yù)習(xí)單)
- 杭州市主城區(qū)聲環(huán)境功能區(qū)劃分圖
- 湖南省陽氏宗親分布村落
- 新概念英語第二冊1-Lesson29(共127張PPT)課件
- 中考語文十大專題總復(fù)習(xí)資料
評論
0/150
提交評論