控制系統(tǒng)數(shù)字仿真與CAD2課件_第1頁
控制系統(tǒng)數(shù)字仿真與CAD2課件_第2頁
控制系統(tǒng)數(shù)字仿真與CAD2課件_第3頁
控制系統(tǒng)數(shù)字仿真與CAD2課件_第4頁
控制系統(tǒng)數(shù)字仿真與CAD2課件_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章MATLAB程序設計6/6/20231控制科學與工程系2.1MATLAB簡介一、簡介MATLAB是MatrixLaboratory的縮寫。除具備卓越的數(shù)值計算能力外,它還提供了專業(yè)水平的符號計算,文字處理,可視化建模仿真和實時控制等功能。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多當前流行的MATLAB7.0/Simulink4.0包括擁有數(shù)百個內(nèi)部函數(shù)的主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具包和學科工具包.功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能.學科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類.

開放性使MATLAB廣受用戶歡迎.除內(nèi)部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包.6/6/20232控制科學與工程系2.1MATLAB簡介二、語言特點語言簡潔緊湊,使用方便靈活。例如:A=[123;456;789]一條語句實現(xiàn)了對3x3矩陣的輸入。數(shù)值算法穩(wěn)定可靠,庫函數(shù)十分豐富。例如:polyder(b) %求多項式b的微分運算符豐富。例如:C=A*B%矩陣的乘法,

x=A\b %求Ax=b的最小二乘解Matlab既具有結(jié)構(gòu)化的控制語句(if、for、while)又支持面向?qū)ο蟮某绦蛟O計。6/6/20233控制科學與工程系2.1MATLAB簡介語法限制不嚴格,程序設計自由度大。例如:在MATLAB里可以不用先定義或聲明變量就可以使用它們程序的可移植性好。Matlab的圖形功能強大,支持數(shù)據(jù)的可視化操作,方便的顯示程序的運行結(jié)果。強大的工具箱。例如:控制領(lǐng)域可以使用的工具箱就有ControlSystem(控制工具箱)源程序的開發(fā)性,系統(tǒng)的可擴充能力強。Matlab是解釋執(zhí)行語言。Matlab程序不用編譯生成可執(zhí)行文件就可以運行6/6/20234控制科學與工程系2.1MATLAB簡介三、Matlab集成環(huán)境的組成Matlab語言Matlab工作環(huán)境包括程序編輯器、變量查看器、系統(tǒng)仿真器。Matlab圖形系統(tǒng)用Matlab的句柄圖形,可以實現(xiàn)二維、三維數(shù)據(jù)的可視化、圖象處理,可以完全或局部修改圖形窗口,還可以方便的設計圖形界面。Matlab數(shù)學函數(shù)庫MatlabAPI(ApplicationProgramInterface)6/6/20235控制科學與工程系2.1MATLAB簡介四、Matlab軟件的基本使用方法命令窗口

工作空間

歷史命令當前路徑

6/6/20236控制科學與工程系2.1MATLAB簡介(1)命令窗口Matlab的命令窗口可以執(zhí)行任何Matlab命令和函數(shù)。主要功能操作M文件(打開、新建、運行、保存)操作MDL文件運行Matlab程序運行外部應用程序(2)程序編輯/調(diào)試器Matlab內(nèi)置了一個程序的編輯/調(diào)試器6/6/20237控制科學與工程系2.1MATLAB簡介主要功能建立、編輯、存儲M文件可以運行程序調(diào)試(斷點、單步、跟蹤、查看)程序設置斷點取消斷點單步運行進入函數(shù)跳出函數(shù)退出調(diào)試繼續(xù)運行6/6/20238控制科學與工程系2.1MATLAB簡介(3)變量查看器在MATLAB中,工作空間(Workspace)是一個重要的、比較抽象的概念。工作空間指運行MATLAB的程序或命令所生成的所有變量和MATLAB提供的常量構(gòu)成的空間。

工作空間的特點工作空間在MATLAB運行期間一直存在關(guān)閉MATLAB后工作空間自動消失6/6/20239控制科學與工程系2.1MATLAB簡介查看變量刪除變量6/6/202310控制科學與工程系2.1MATLAB簡介MATLAB的工作空間包含了一組可以在命令窗口中調(diào)整(調(diào)用)的參數(shù)who:顯示當前工作空間中所有變量的一個簡單列表

whos:列出變量的大小、數(shù)據(jù)格式等詳細信息clear:清除工作空間中所有的變量clear變量名:清除指定的變量保存和載入workspace(1)savefilenamevariables將變量列表variables所列出的變量保存到磁盤文件filename中6/6/202311控制科學與工程系2.1MATLAB簡介Variables所表示的變量列表中,不能用逗號,各個不同的變量之間只能用空格來分隔。未列出variables時,表示將當前工作空間中所有變量都保持到磁盤文件中。缺省的磁盤文件擴展名為“.mat”,可以使用“-”定義不同的存儲格式(ASCII、V4等)(2)loadfilenamevariables將以前用save命令保存的變量variables從磁盤文件中調(diào)入MATLAB工作空間。用load命令調(diào)入的變量,其名稱為用save命令保存時的名稱,取值也一樣。6/6/202312控制科學與工程系2.1MATLAB簡介Variables所表示的變量列表中,不能用逗號,各個不同的變量之間只能用空格來分隔。未列出variables時,表示將磁盤文件中所有變量都調(diào)入工作空間。退出工作空間quit或exit(4)圖形窗口在圖形窗口上可以進行繪制曲線、顯示文本、填充顏色等操作。用figure命令建立新的圖形窗口。6/6/202313控制科學與工程系2.1MATLAB簡介可以用繪圖語句自動創(chuàng)建圖形窗口并在上面繪圖,如plot命令。編輯模態(tài)添加文本添加箭頭添加線段旋轉(zhuǎn)三維圖形6/6/202314控制科學與工程系2.1MATLAB簡介(5)文件管理文件管理的命令,包括列文件名、顯示或刪除文件、顯示或改變當前目錄等。what:顯示當前目錄下所有與matlab相關(guān)的文件及它們的路徑。dir:顯示當前目錄下所有的文件which:顯示某個文件的路徑cdpath:由當前目錄進入path目錄cd:顯示當前目錄typefilename:在命令窗口中顯示文件filenamedeletefilename:刪除文件filename6/6/202315控制科學與工程系2.1MATLAB簡介(6)幫助系統(tǒng)help命令,在命令窗口中顯示MATLBA的所有函數(shù)都是以邏輯群組方式進行組織的,而MATLAB的目錄結(jié)構(gòu)就是以這些群組方式來編排的。help函數(shù)名/文件名%顯示相關(guān)函數(shù)/文件的幫助體helpmatfun

:矩陣函數(shù)-數(shù)值線性代數(shù)helpgeneral:通用命令helpgraphics:通用圖形函數(shù)helpelfun:基本的數(shù)學函數(shù)helpelmat:基本矩陣和矩陣操作6/6/202316控制科學與工程系2.1MATLAB簡介helpdatafun:數(shù)據(jù)分析和傅立葉變換函數(shù)helpops:操作符和特殊字符helppolyfun:多項式和內(nèi)插函數(shù)helplang:語言結(jié)構(gòu)和調(diào)試helpstrfun:字符串函數(shù)helpcontrol:控制系統(tǒng)工具箱函數(shù)helpwin:幫助窗口helpdesk:幫助桌面,瀏覽器模式lookfor

函數(shù)名/文件名%顯示相關(guān)函數(shù)/文件的H1行demo:打開示例窗口6/6/202317控制科學與工程系2.1MATLAB簡介五、Matlab編程基礎(chǔ)

Matlab初學者常用的編程知識、規(guī)則可以在MATLAB命令窗口鍵入一個命令,也可以由Matlab定義的語言編寫一個或多個應用程序,然后在MATLAB環(huán)境下返回運算結(jié)果。

MATLAB以復數(shù)矩陣為基本的運算單元,既可以對它整體進行處理,也可以對它的某個或某些元素進行單獨處理操作起來比較方便。6/6/202318控制科學與工程系2.1MATLAB簡介(2)MATLAB最基本的語句是賦值語句,其結(jié)構(gòu)為:變量名列表=表達式其中等號左邊的變量名列表為MATLAB語句的返回值,若一次返回多個結(jié)果,則變量列表用[]括起來,各變量間用逗號分隔;等號右邊為表達式,可以是矩陣運算或函數(shù)調(diào)用,可以由分號(;)、逗號(,)或回車結(jié)束。如果希望結(jié)果不被顯示,只要在語句之后加上一個分號(;)即可。此時盡管結(jié)果沒有顯示,但它依然被賦值并在MATLAB工作空間中分配了內(nèi)存。6/6/202319控制科學與工程系2.1MATLAB簡介(3)變量不需要定義就可以直接使用和賦值。例如:A=[1,2;3,4]%定義并輸入一個2x2的矩陣

str=’Hello’%定義并輸入一個字符串(字符數(shù)組)矩陣的每行中的各個元素用逗號或者空格分隔,行于行之間用分號分隔;字符串用單引號定義。(4)輸入、輸出函數(shù)①A=input(提示信息,選項)例如:A=input(‘EntermatrixA=>’)6/6/202320控制科學與工程系2.1MATLAB簡介②disp(A)例如:A=‘hello’;

disp(A) A=[1,2,3;4,5,6;7,8,9];

disp(A)(5)命令行編輯器方向鍵和控制鍵可以編輯修改已輸入的命令:回調(diào)上一行命令:回調(diào)下一行命令6/6/202321控制科學與工程系2.1MATLAB簡介多行命令(…)如果命令語句超過一行或者太長希望分行輸入,則可以使用多行命令繼續(xù)輸入。S=1-12+13+4+…9-4-18;6/6/202322控制科學與工程系2.2數(shù)據(jù)類型和運算符一、變量(1)變量命名規(guī)則必須以字母開頭;

—可以由字母、數(shù)字和下劃線混合組成;變量長度應不大于31個;—字母區(qū)分大小寫。(2)特殊變量6/6/202323控制科學與工程系2.2數(shù)據(jù)類型和運算符(3)變量操作在命令窗口中,同時存儲著輸入的命令和創(chuàng)建的所有變量值,它們可以在任何需要的時候被調(diào)用。如要察看變量a的值,只需要在命令窗口中輸入變量的名稱即可:》a二、數(shù)值顯示格式任何MATLAB的語句的執(zhí)行結(jié)果都可以在屏幕上顯示,同時賦值給指定的變量,沒有指定變量時,賦值給一個特殊的變量ans,數(shù)據(jù)的顯示格式由format命令控制。format只是影響結(jié)果的顯示,不影響其計算與存儲;MATLAB總是以雙字長浮點數(shù)(雙精度)執(zhí)行所有運算。6/6/202324控制科學與工程系2.2數(shù)據(jù)類型和運算符如果結(jié)果為整數(shù),則顯示沒有小數(shù);如果結(jié)果不是整數(shù),則輸出形式有:format(short):短格式(5位定點數(shù))99.1253formatlong:長格式(15位定點數(shù)99.12345678900000formatshorte:短格式e方式9.9123e+001formatlonge:長格式e方式9.912345678900000e+001formatbank:2位十進制99.12formathex:十六進制格式6/6/202325控制科學與工程系2.2數(shù)據(jù)類型和運算符三、數(shù)據(jù)類型在MATLAB里共有六種數(shù)據(jù)類型,每一種類型可以是一維、二維和多維的。雙精度型(double)字符型(char)稀疏型(sparse)存儲型(storage)細胞型(cell)結(jié)構(gòu)型(struct)6/6/202326控制科學與工程系2.2數(shù)據(jù)類型和運算符(1)字符型基本規(guī)則:所有字符串都用單引號括起來;字符串中的每一個字符都是該字符串變量中的一個元素;字符串中的字符以ASCⅡ碼形式存儲,因而區(qū)分大小寫。常用操作方法:建立:常用函數(shù)有char、int2str、num2str等。連接:水平連接通過函數(shù)strcat或在中括號內(nèi)用逗號連接;垂直連接通過函數(shù)strvcat或在中括號內(nèi)用分號連接。比較:常用函數(shù)strcmp,相同則返回1,否則為0。查找:常用函數(shù)findstr。6/6/202327控制科學與工程系2.2數(shù)據(jù)類型和運算符a='hello'b='goodbye'strcat(a,b)ans=hellogoodbye[a,b]ans=hellogoodbyet1='first';t2='string';t3='matrix';t4='second';S1=strvcat(t1,t2,t3)S2=[t4;t2;t3]S1=S2=firstsecondstringstringmatrix

matrixstrcmp('Yes','Yes')ans=1strcmp('Yes','No')ans=06/6/202328控制科學與工程系2.2數(shù)據(jù)類型和運算符四、運算符(1)算術(shù)運算符按照運算符的優(yōu)先級可把算術(shù)運算符分為五級,在每一級里運算符有同樣的優(yōu)先級,在運算時自左向右結(jié)合+加.^數(shù)組冪-減\左除或反斜杠*矩陣乘法/右除或斜杠.*數(shù)組乘法./數(shù)組除^矩陣冪:冒號6/6/202329控制科學與工程系2.2數(shù)據(jù)類型和運算符(2)關(guān)系運算符在MATLAB里共有六個關(guān)系運算符

<小于>大于

<=小于等于>=大于等于

==等于 -=不等于關(guān)系運算符將生成一個0-1矩陣,當運算數(shù)相應元素為真時對應位置上生成1,否則為0。6/6/202330控制科學與工程系2.2數(shù)據(jù)類型和運算符例:假設有:A=[12-1-5]B=[0231]<小于A<Bans=[0011]A<1ans=[0011]>大于A>Bans=[1000]A>1ans=[0100]<=小于等于A<=Bans=[0111]>=大于等于A>=Bans=[1100]==等于A=Bans=[0100];A=1ans=[1000]~=不等于A~=Bans=[1011];A~=1ans=[0111]6/6/202331控制科學與工程系2.3程序控制語句一、循環(huán)語句MATLAB中的循環(huán)語句包括for和while兩種類型。(1)for循環(huán)for循環(huán)的基本格式為:

for循環(huán)變量=起始值:步長:終止值 循環(huán)體

end步長的缺省值是1。步長可以在正實數(shù)或負實數(shù)范圍內(nèi)任意指定,對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)結(jié)束;對于負數(shù),循環(huán)變量的值小于終止值時,循環(huán)結(jié)束循環(huán)結(jié)構(gòu)可以嵌套使用。書寫格式不必太過于拘泥,在Editor編輯器中會自動進行處理。example6/6/202332控制科學與工程系2.3程序控制語句(2)while循環(huán)while循環(huán)的基本格式為:

while表達式 循環(huán)體

end若表達式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達式是否為真,若為假則跳出循環(huán)體,向下繼續(xù)執(zhí)行,否則繼續(xù)執(zhí)行循環(huán)體。例:exp2_12.mWhile循環(huán)和for循環(huán)的區(qū)別在于,while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不是確定的,而for結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)是確定的。(3)Break:從循環(huán)體中跳出,并使循環(huán)結(jié)束。6/6/202333控制科學與工程系2.3程序控制語句二、選擇語句(1)if-else-elseif

語句if格式if邏輯表達式執(zhí)行語句end當邏輯表達式的值為真,則執(zhí)行該結(jié)構(gòu)中的執(zhí)行語句內(nèi)容,執(zhí)行完后向下繼續(xù)執(zhí)行,若邏輯表達式的值為假,跳過結(jié)構(gòu)中的執(zhí)行語句繼續(xù)向下執(zhí)行。6/6/202334控制科學與工程系2.3程序控制語句if-else格式if邏輯表達式執(zhí)行語句1else執(zhí)行語句2end如果邏輯表達式的值為真,則執(zhí)行語句1,然后跳過語句2向下執(zhí)行若邏輯表達式的值為假,則跳過執(zhí)行語句1而執(zhí)行語句2,然后向下執(zhí)行。6/6/202335控制科學與工程系2.3程序控制語句if-elseif

格式if邏輯表達式1

執(zhí)行語句1

elseif

邏輯表達式2

執(zhí)行語句2 ……

elseif

邏輯表達式n

執(zhí)行語句nelse

執(zhí)行語句elend如果邏輯表達式的值為真,則執(zhí)行語句1,若邏輯表達式的值為假則判斷邏輯表達式2的值,若為真,則執(zhí)行語句2,否則向下執(zhí)行,若所有表達式均為假,執(zhí)行語句el。例exp2_13.m exp2_13_.m6/6/202336控制科學與工程系2.3程序控制語句(2)switch語句switch語句的格式為:

switch表達式(標量或字符串)

case值1

語句1 case值2

語句2 ┅ case值n

語句n otherwise

語句ow end表達式的值和哪種情況(case)的值相同,就執(zhí)行哪種情況中的語句,如果都不同,則執(zhí)行otherwise中的語句。格式中也可以不包括otherwise,這時如果表達式的值與列出的各種情況都不相同,則繼續(xù)向下執(zhí)行。6/6/202337控制科學與工程系2.4矩陣運算一、矩陣輸入(1)在命令窗口中輸入在MATLAB中不必描述矩陣的維數(shù)和類型,而由輸入的格式和內(nèi)容來決定。輸入小矩陣最簡單的方法:把矩陣的元素直接排列到方括號([])中。每行內(nèi)的元素間用空格(space)或逗號(,)分開,行與行的內(nèi)容間用分號(;)隔開。矩陣生成不但可以使用純數(shù)字(含復數(shù)),也可以使用變量(或者說采用一個表達式)。大的矩陣可以用分行輸入,回車鍵代表分號。6/6/202338控制科學與工程系2.4矩陣運算例:(2)語句生成用線性等間距生成向量矩陣(start:step:end)start為起始值step為步長,步長為1時可省略step參數(shù);另外step也可以取負數(shù)end為終止值》y=[2,4,5368]y=245368》a=1;b=2;c=3;》x=[5bc;a*ba+cc/b]x=5.0002.0003.0002.0004.0001.5006/6/202339控制科學與工程系2.4矩陣運算例:》a=[1:2:10]a=13579a=linspace(n1,n2,n)在線性空間上,行矢量的值從n1到n2,數(shù)據(jù)個數(shù)為n,缺省n為100例:》a=linspace(1,10,10)a=123456789106/6/202340控制科學與工程系2.4矩陣運算a=logspace(n1,n2,n)在對數(shù)空間上,行矢量的值從10n1到10n2,數(shù)據(jù)個數(shù)為n,缺省n為50。這個指令為建立對數(shù)頻域軸坐標提供了方便。例:》a=logspace(1,3,3)a=101001000特殊矩陣的生成單位矩陣

eye(n) %生成n維單位陣

eye(m,n) %生成m×n的單位陣 6/6/202341控制科學與工程系2.4矩陣運算eye([m,n]) %生成m×n的單位陣eye(size(A)) %生成與A矩陣同樣大小的單位陣全1矩陣ones(n) ones(m,n)ones([m,n])ones(size(A))全0矩陣zeros(n) zeros(m,n)zeros([m,n]) zeros(size(A))隨機矩陣rand(n) rand(m,n)rand([m,n])rand(size(A))生成的隨機矩陣的各個元素值在0和1之間。6/6/202342控制科學與工程系2.4矩陣運算》eye(2,3)ans=100010》zeros(2,3)ans=000000》ones(2,3)ans=111111》eye(2)ans=1001》zeros(2)ans=0000》ones(2)ans=11116/6/202343控制科學與工程系2.4矩陣運算二、下標引用(1)矩陣下標用兩個下標來表示。第i行j列的元素用A(i,j)來表示在下標的表達式中使用冒號表示矩陣的一部分。下標引用從序號1開始。例:

A(:,n):

A(m,:):

A(m1:m2,n1:n2):提取第n列元素提取第m行元素提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子塊)。6/6/202344控制科學與工程系2.4矩陣運算A(:):(2)矩陣的組合即把小矩陣組合成大矩陣,組合符號為中括號[]。例:A=[12;34];B=[56;78];

C=[AB]C=[A;B]C=C=1256123478345678得到一個長列矢量,該矢量的元素按矩陣的列進行排列。6/6/202345控制科學與工程系2.4矩陣運算(3)矩陣的抽取用下標可以從大矩陣里面抽取某些元素組成小的矩陣。例:

A=[123;456;789];B=[A(1,1),A(2,3)]B=16(4)刪除矩陣的行和列把空的[]稱為空矩陣,即矩陣大小為0×0??梢酝ㄟ^把矩陣的行或列賦值為空矩陣來刪除某行或某列。6/6/202346控制科學與工程系2.4矩陣運算例:X=[]

%將一個0×0的矩陣賦給X

A(:,[24])=[]

%將A的第二列和第四列刪除

A(:,2)=[]

%刪除矩陣A的第二列(5)矩陣擴展如果在原矩陣中一個不存在的地址位置上設定一個數(shù)(賦值),則該矩陣會自動擴展行列數(shù),并在該位置上添加這個數(shù),而且在其他沒有指定的位置補零。6/6/202347控制科學與工程系2.4矩陣運算三、矩陣運算+;-;*;\和/;^;.*;.\;./;.^(1)矩陣的加減使用+、-運算符,并滿足以下兩個條件之一:類型相同,即行數(shù)相等,且列數(shù)相等。其中一個為標量,則矩陣中每一個元素都和標量做加減運算。(2)矩陣的乘積使用*運算符,必須滿足維數(shù)條件。只有當兩個矩陣中前一個矩陣的列數(shù)和后一個矩陣的行數(shù)相同時,才可以進行乘法運算。6/6/202348控制科學與工程系2.4矩陣運算(3)矩陣的除法除法運算的意義相當于矩陣的求逆運算。定義了矩陣的左除及右除。矩陣的左除:“\”,A\B即求線性方程AX=B的解,X=A-1B矩陣的右除:“/”,A/B是方程XB=A的解,X=AB-1(4)矩陣的冪只有方陣才可以求冪6/6/202349控制科學與工程系2.4矩陣運算(5)矩陣的點運算兩個矩陣之間的點運算是對該矩陣對應元素的直接運算。點乘積運算要求矩陣的維數(shù)相同。例:a=[12;34];b=[35;59]》c=a+bd=a-b》c=d=47-2-3813-2-56/6/202350控制科學與工程系2.4矩陣運算》a*b=[1323;2951]》a/b=[-0.500.50;3.50–1.50]》a\b=[-1-1;23]》a^3=[3754;81118]》a.*b=[310;1536]》a./b=[0.330.40;0.600.44]》a.\b=[3.002.50;1.672.25]》a.^3=[18;2764]6/6/202351控制科學與工程系2.4矩陣運算(6)矩陣的轉(zhuǎn)置“’”表示復共軛轉(zhuǎn)置,“.’”表示普通轉(zhuǎn)置。對于實矩陣用(’)符號或(.’)求轉(zhuǎn)置結(jié)果是一樣的對于含復數(shù)的矩陣,則(’)將同時對復數(shù)進行共軛處理而(.’)則只是將其排列形式進行轉(zhuǎn)置。》a=[123;456]'a=142536》b=[1+2i2-7i]'b=1.0000-2.0000i2.0000+7.0000i》b=[1+2i2-7i].'b=1.0000+2.0000i2.0000-7.0000i》a=[123;456].'a=1425366/6/202352控制科學與工程系2.4矩陣運算四、矩陣函數(shù)求逆矩陣,要求矩陣必須為方陣

X=inv(A)

(2)求矩陣的行列式,要求矩陣必須為方陣

d=det(A)

例:》a=[123;456;235];》b=inv(a)b=-2.33330.33331.00002.66670.3333-2.0000-0.6667-0.33331.0000》det(a)ans=-36/6/202353控制科學與工程系2.4矩陣運算(3)求特征值與特征向量求解A矩陣的特征值和特征向量,其調(diào)用格式為:

D=eig(A);

[V,D]=eig(A);d為矩陣A的特征值向量;求矩陣A的特征向量V及特征值D,滿足A*V=V*D。其中D的對角線元素為特征值,V的列為對應的特征向量。例:a=[98;68][v,d]=eig(a)v=d=0.7787-0.732015.446200.62740.681301.55386/6/202354控制科學與工程系2.4矩陣運算(4)矩陣的尺寸

為了判斷矩陣的尺寸,Matlab提供了以下函數(shù):

[m,n]=size(A) %返回矩陣的行數(shù)m和列數(shù)n

M=size(A) %在矩陣M中返回矩陣的行數(shù)、列數(shù)

len=length(A) %返回矩陣A行數(shù)和列數(shù)中的最大值

rank(A)%求矩陣的秩》a=[123;345];》[m,n]=size(a)m=2n=3》length(a)ans=3》max(size(a))ans=3》rank(a)ans=26/6/202355控制科學與工程系2.7數(shù)據(jù)的可視化一、圖形窗口MATLAB自動將圖形畫在圖形窗口上;圖形窗口相對于命令窗口是獨立的窗口;圖形窗口的屬性由系統(tǒng)和MATLAB共同控制。二、常用圖形窗口命令格式figure%建立一個新的圖形窗口,并指定為當前窗口用于圖形輸出subplot %把多個圖形繪在一個圖形窗口中subplot(m,n,I)%把圖形窗口分成m×n個小圖形區(qū)域,并指定第i個區(qū)域為圖形繪制區(qū)域,圖形區(qū)域的編排采用行優(yōu)先6/6/202356控制科學與工程系2.7數(shù)據(jù)的可視化三、基本的繪圖命令plot功能:plot是最基本的二維圖形命令,它是以MATLAB的內(nèi)部函數(shù)形式出現(xiàn)的。MATLAB的其他二維函數(shù)中的絕大多數(shù)是以plot為基礎(chǔ)構(gòu)造的繪圖命令。格式:plot(y),plot(x,y),plot(x1,y1,x2,y2,…)說明:plot(y):當y為向量時,則以y的元素為縱坐標,以相應元素下標為橫坐標,繪制連線圖。plot(x,y):當y和x為同維向量,則以x為橫坐標、y為縱坐標繪制連線圖。plot(x1,y1,x2,y2,…):每對x、y必須符合plot(x,y)中的要求,不同對之間沒有影響,命令將對每一對x,y繪制曲線。6/6/202357控制科學與工程系2.8程序設計入門一、MATLBA程序的基本設計原則1、%后面的內(nèi)容是程序的注解,要善于運用注解使程序更具可讀性。2、養(yǎng)成在主程序開頭用clear指令清除變量的習慣,以消除工作空間中其他變量對程序運行的影響。但注意在子程序中不要用clear。3、參數(shù)值要集中放在程序的開始部分,以便維護。要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進行的運算,在語句行之后輸入分號使其及中間結(jié)果不在屏幕上顯示,以提高執(zhí)行速度。6/6/202358控制科學與工程系2.8程序設計入門4、input指令可以用來輸入一些臨時的數(shù)據(jù);而對于大量參數(shù),則通過建立一個存儲參數(shù)的子程序,在主程序中用子程序的名稱來調(diào)用。5、程序盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。6、充分

溫馨提示

  • 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

提交評論