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

下載本文檔

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

文檔簡介

控制系統(tǒng)數(shù)字仿真與第1頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系2第二章MATLAB程序設(shè)計第2頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系32.1MATLAB簡介一、簡介MATLAB是MatrixLaboratory的縮寫。除具備卓越的數(shù)值計算能力外,它還提供了專業(yè)水平的符號計算,文字處理,可視化建模仿真和實時控制等功能。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué),工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多當(dāng)前流行的MATLAB7.0/Simulink4.0包括擁有數(shù)百個內(nèi)部函數(shù)的主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具包和學(xué)科工具包.功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能.學(xué)科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類.開放性使MATLAB廣受用戶歡迎.除內(nèi)部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包.第3頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系42.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(shè)計。第4頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系52.1MATLAB簡介語法限制不嚴(yán)格,程序設(shè)計自由度大。例如:在MATLAB里可以不用先定義或聲明變量就可以使用它們程序的可移植性好。Matlab的圖形功能強大,支持?jǐn)?shù)據(jù)的可視化操作,方便的顯示程序的運行結(jié)果。強大的工具箱。例如:控制領(lǐng)域可以使用的工具箱就有ControlSystem(控制工具箱)源程序的開發(fā)性,系統(tǒng)的可擴充能力強。Matlab是解釋執(zhí)行語言。Matlab程序不用編譯生成可執(zhí)行文件就可以運行第5頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系62.1MATLAB簡介三、Matlab集成環(huán)境的組成Matlab語言Matlab工作環(huán)境包括程序編輯器、變量查看器、系統(tǒng)仿真器。Matlab圖形系統(tǒng)用Matlab的句柄圖形,可以實現(xiàn)二維、三維數(shù)據(jù)的可視化、圖象處理,可以完全或局部修改圖形窗口,還可以方便的設(shè)計圖形界面。Matlab數(shù)學(xué)函數(shù)庫MatlabAPI(ApplicationProgramInterface)第6頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系72.1MATLAB簡介四、Matlab軟件的基本使用方法命令窗口

工作空間歷史命令當(dāng)前路徑

第7頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系82.1MATLAB簡介(1)命令窗口Matlab的命令窗口可以執(zhí)行任何Matlab命令和函數(shù)。主要功能操作M文件(打開、新建、運行、保存)操作MDL文件運行Matlab程序運行外部應(yīng)用程序(2)程序編輯/調(diào)試器Matlab內(nèi)置了一個程序的編輯/調(diào)試器第8頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系92.1MATLAB簡介主要功能建立、編輯、存儲M文件可以運行程序調(diào)試(斷點、單步、跟蹤、查看)程序設(shè)置斷點取消斷點單步運行進(jìn)入函數(shù)跳出函數(shù)退出調(diào)試?yán)^續(xù)運行第9頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系102.1MATLAB簡介(3)變量查看器在MATLAB中,工作空間(Workspace)是一個重要的、比較抽象的概念。工作空間指運行MATLAB的程序或命令所生成的所有變量和MATLAB提供的常量構(gòu)成的空間。工作空間的特點工作空間在MATLAB運行期間一直存在關(guān)閉MATLAB后工作空間自動消失第10頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系112.1MATLAB簡介查看變量刪除變量第11頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系122.1MATLAB簡介MATLAB的工作空間包含了一組可以在命令窗口中調(diào)整(調(diào)用)的參數(shù)who:顯示當(dāng)前工作空間中所有變量的一個簡單列表

whos:列出變量的大小、數(shù)據(jù)格式等詳細(xì)信息clear:清除工作空間中所有的變量clear變量名:清除指定的變量保存和載入workspace(1)savefilenamevariables將變量列表variables所列出的變量保存到磁盤文件filename中第12頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系132.1MATLAB簡介Variables所表示的變量列表中,不能用逗號,各個不同的變量之間只能用空格來分隔。未列出variables時,表示將當(dāng)前工作空間中所有變量都保持到磁盤文件中。缺省的磁盤文件擴展名為“.mat”,可以使用“-”定義不同的存儲格式(ASCII、V4等)(2)loadfilenamevariables將以前用save命令保存的變量variables從磁盤文件中調(diào)入MATLAB工作空間。用load命令調(diào)入的變量,其名稱為用save命令保存時的名稱,取值也一樣。第13頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系142.1MATLAB簡介Variables所表示的變量列表中,不能用逗號,各個不同的變量之間只能用空格來分隔。未列出variables時,表示將磁盤文件中所有變量都調(diào)入工作空間。退出工作空間quit或exit(4)圖形窗口在圖形窗口上可以進(jìn)行繪制曲線、顯示文本、填充顏色等操作。用figure命令建立新的圖形窗口。第14頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系152.1MATLAB簡介可以用繪圖語句自動創(chuàng)建圖形窗口并在上面繪圖,如plot命令。編輯模態(tài)添加文本添加箭頭添加線段旋轉(zhuǎn)三維圖形第15頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系162.1MATLAB簡介(5)文件管理文件管理的命令,包括列文件名、顯示或刪除文件、顯示或改變當(dāng)前目錄等。what:顯示當(dāng)前目錄下所有與matlab相關(guān)的文件及它們的路徑。dir:顯示當(dāng)前目錄下所有的文件which:顯示某個文件的路徑cdpath:由當(dāng)前目錄進(jìn)入path目錄cd:顯示當(dāng)前目錄typefilename:在命令窗口中顯示文件filenamedeletefilename:刪除文件filename第16頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系172.1MATLAB簡介(6)幫助系統(tǒng)help命令,在命令窗口中顯示MATLBA的所有函數(shù)都是以邏輯群組方式進(jìn)行組織的,而MATLAB的目錄結(jié)構(gòu)就是以這些群組方式來編排的。help函數(shù)名/文件名%顯示相關(guān)函數(shù)/文件的幫助體helpmatfun:矩陣函數(shù)-數(shù)值線性代數(shù)helpgeneral:通用命令helpgraphics:通用圖形函數(shù)helpelfun:基本的數(shù)學(xué)函數(shù)helpelmat:基本矩陣和矩陣操作第17頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系182.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:打開示例窗口第18頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系192.1MATLAB簡介五、Matlab編程基礎(chǔ)Matlab初學(xué)者常用的編程知識、規(guī)則可以在MATLAB命令窗口鍵入一個命令,也可以由Matlab定義的語言編寫一個或多個應(yīng)用程序,然后在MATLAB環(huán)境下返回運算結(jié)果。MATLAB以復(fù)數(shù)矩陣為基本的運算單元,既可以對它整體進(jìn)行處理,也可以對它的某個或某些元素進(jìn)行單獨處理操作起來比較方便。第19頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系202.1MATLAB簡介(2)MATLAB最基本的語句是賦值語句,其結(jié)構(gòu)為:變量名列表=表達(dá)式其中等號左邊的變量名列表為MATLAB語句的返回值,若一次返回多個結(jié)果,則變量列表用[]括起來,各變量間用逗號分隔;等號右邊為表達(dá)式,可以是矩陣運算或函數(shù)調(diào)用,可以由分號(;)、逗號(,)或回車結(jié)束。如果希望結(jié)果不被顯示,只要在語句之后加上一個分號(;)即可。此時盡管結(jié)果沒有顯示,但它依然被賦值并在MATLAB工作空間中分配了內(nèi)存。第20頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系212.1MATLAB簡介(3)變量不需要定義就可以直接使用和賦值。例如:A=[1,2;3,4]%定義并輸入一個2x2的矩陣str=’Hello’%定義并輸入一個字符串(字符數(shù)組)矩陣的每行中的各個元素用逗號或者空格分隔,行于行之間用分號分隔;字符串用單引號定義。(4)輸入、輸出函數(shù)①A=input(提示信息,選項)例如:A=input(‘EntermatrixA=>’)第21頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系222.1MATLAB簡介②disp(A)例如:A=‘hello’;disp(A) A=[1,2,3;4,5,6;7,8,9];disp(A)(5)命令行編輯器方向鍵和控制鍵可以編輯修改已輸入的命令:回調(diào)上一行命令:回調(diào)下一行命令第22頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系232.1MATLAB簡介多行命令(…)如果命令語句超過一行或者太長希望分行輸入,則可以使用多行命令繼續(xù)輸入。S=1-12+13+4+…9-4-18;第23頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系242.2數(shù)據(jù)類型和運算符一、變量(1)變量命名規(guī)則必須以字母開頭;

可以由字母、數(shù)字和下劃線混合組成;變量長度應(yīng)不大于31個;—

字母區(qū)分大小寫。(2)特殊變量第24頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系252.2數(shù)據(jù)類型和運算符(3)變量操作在命令窗口中,同時存儲著輸入的命令和創(chuàng)建的所有變量值,它們可以在任何需要的時候被調(diào)用。如要察看變量a的值,只需要在命令窗口中輸入變量的名稱即可:》a二、數(shù)值顯示格式任何MATLAB的語句的執(zhí)行結(jié)果都可以在屏幕上顯示,同時賦值給指定的變量,沒有指定變量時,賦值給一個特殊的變量ans,數(shù)據(jù)的顯示格式由format命令控制。format只是影響結(jié)果的顯示,不影響其計算與存儲;MATLAB總是以雙字長浮點數(shù)(雙精度)執(zhí)行所有運算。第25頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系262.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位十進(jìn)制99.12formathex:十六進(jìn)制格式第26頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系272.2數(shù)據(jù)類型和運算符三、數(shù)據(jù)類型在MATLAB里共有六種數(shù)據(jù)類型,每一種類型可以是一維、二維和多維的。雙精度型(double)字符型(char)稀疏型(sparse)存儲型(storage)細(xì)胞型(cell)結(jié)構(gòu)型(struct)第27頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系282.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。第28頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系292.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=firstsecondstringstringmatrixmatrixstrcmp('Yes','Yes')ans=1strcmp('Yes','No')ans=0第29頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系302.2數(shù)據(jù)類型和運算符四、運算符(1)算術(shù)運算符按照運算符的優(yōu)先級可把算術(shù)運算符分為五級,在每一級里運算符有同樣的優(yōu)先級,在運算時自左向右結(jié)合+加.^數(shù)組冪-減\左除或反斜杠*矩陣乘法/右除或斜杠.*數(shù)組乘法./數(shù)組除^矩陣冪:冒號第30頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系312.2數(shù)據(jù)類型和運算符(2)關(guān)系運算符在MATLAB里共有六個關(guān)系運算符

<小于>大于<=小于等于>=大于等于==等于 -=不等于關(guān)系運算符將生成一個0-1矩陣,當(dāng)運算數(shù)相應(yīng)元素為真時對應(yīng)位置上生成1,否則為0。第31頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系322.2數(shù)據(jù)類型和運算符例:假設(shè)有: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]第32頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系332.3程序控制語句一、循環(huán)語句MATLAB中的循環(huán)語句包括for和while兩種類型。(1)for循環(huán)for循環(huán)的基本格式為:

for循環(huán)變量=起始值:步長:終止值 循環(huán)體 end步長的缺省值是1。步長可以在正實數(shù)或負(fù)實數(shù)范圍內(nèi)任意指定,對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)結(jié)束;對于負(fù)數(shù),循環(huán)變量的值小于終止值時,循環(huán)結(jié)束循環(huán)結(jié)構(gòu)可以嵌套使用。書寫格式不必太過于拘泥,在Editor編輯器中會自動進(jìn)行處理。example第33頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系342.3程序控制語句(2)while循環(huán)while循環(huán)的基本格式為:

while表達(dá)式 循環(huán)體 end若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否為真,若為假則跳出循環(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é)束。第34頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系352.3程序控制語句二、選擇語句(1)if-else-elseif語句if格式if邏輯表達(dá)式執(zhí)行語句end當(dāng)邏輯表達(dá)式的值為真,則執(zhí)行該結(jié)構(gòu)中的執(zhí)行語句內(nèi)容,執(zhí)行完后向下繼續(xù)執(zhí)行,若邏輯表達(dá)式的值為假,跳過結(jié)構(gòu)中的執(zhí)行語句繼續(xù)向下執(zhí)行。第35頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系362.3程序控制語句if-else格式if邏輯表達(dá)式執(zhí)行語句1else執(zhí)行語句2end如果邏輯表達(dá)式的值為真,則執(zhí)行語句1,然后跳過語句2向下執(zhí)行若邏輯表達(dá)式的值為假,則跳過執(zhí)行語句1而執(zhí)行語句2,然后向下執(zhí)行。第36頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系372.3程序控制語句if-elseif格式if邏輯表達(dá)式1 執(zhí)行語句1 elseif邏輯表達(dá)式2 執(zhí)行語句2 …… elseif 邏輯表達(dá)式n 執(zhí)行語句nelse 執(zhí)行語句elend如果邏輯表達(dá)式的值為真,則執(zhí)行語句1,若邏輯表達(dá)式的值為假則判斷邏輯表達(dá)式2的值,若為真,則執(zhí)行語句2,否則向下執(zhí)行,若所有表達(dá)式均為假,執(zhí)行語句el。例exp2_13.m exp2_13_.m第37頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系382.3程序控制語句(2)switch語句switch語句的格式為:

switch表達(dá)式(標(biāo)量或字符串) case值1 語句1 case值2 語句2 ┅ case值n 語句n otherwise 語句ow end表達(dá)式的值和哪種情況(case)的值相同,就執(zhí)行哪種情況中的語句,如果都不同,則執(zhí)行otherwise中的語句。格式中也可以不包括otherwise,這時如果表達(dá)式的值與列出的各種情況都不相同,則繼續(xù)向下執(zhí)行。第38頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系392.4矩陣運算一、矩陣輸入(1)在命令窗口中輸入在MATLAB中不必描述矩陣的維數(shù)和類型,而由輸入的格式和內(nèi)容來決定。輸入小矩陣最簡單的方法:把矩陣的元素直接排列到方括號([])中。每行內(nèi)的元素間用空格(space)或逗號(,)分開,行與行的內(nèi)容間用分號(;)隔開。矩陣生成不但可以使用純數(shù)字(含復(fù)數(shù)),也可以使用變量(或者說采用一個表達(dá)式)。大的矩陣可以用分行輸入,回車鍵代表分號。第39頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系402.4矩陣運算例:(2)語句生成用線性等間距生成向量矩陣(start:step:end)start為起始值step為步長,步長為1時可省略step參數(shù);另外step也可以取負(fù)數(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.500第40頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系412.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=12345678910第41頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系422.4矩陣運算a=logspace(n1,n2,n)在對數(shù)空間上,行矢量的值從10n1到10n2,數(shù)據(jù)個數(shù)為n,缺省n為50。這個指令為建立對數(shù)頻域軸坐標(biāo)提供了方便。例:》a=logspace(1,3,3)a=101001000特殊矩陣的生成單位矩陣

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

eye(m,n) %生成m×n的單位陣 第42頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系432.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之間。第43頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系442.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=1111第44頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系452.4矩陣運算二、下標(biāo)引用(1)矩陣下標(biāo)用兩個下標(biāo)來表示。第i行j列的元素用A(i,j)來表示在下標(biāo)的表達(dá)式中使用冒號表示矩陣的一部分。下標(biāo)引用從序號1開始。例:

A(:,n):A(m,:):A(m1:m2,n1:n2):提取第n列元素提取第m行元素提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子塊)。第45頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系462.4矩陣運算A(:):(2)矩陣的組合即把小矩陣組合成大矩陣,組合符號為中括號[]。例:A=[12;34];B=[56;78];

C=[AB]C=[A;B]C=C=1256123478345678得到一個長列矢量,該矢量的元素按矩陣的列進(jìn)行排列。第46頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系472.4矩陣運算(3)矩陣的抽取用下標(biāo)可以從大矩陣?yán)锩娉槿∧承┰亟M成小的矩陣。例:

A=[123;456;789];B=[A(1,1),A(2,3)]B=16(4)刪除矩陣的行和列把空的[]稱為空矩陣,即矩陣大小為0×0??梢酝ㄟ^把矩陣的行或列賦值為空矩陣來刪除某行或某列。第47頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系482.4矩陣運算例:X=[]

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

A(:,[24])=[]

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

A(:,2)=[]

%刪除矩陣A的第二列(5)矩陣擴展如果在原矩陣中一個不存在的地址位置上設(shè)定一個數(shù)(賦值),則該矩陣會自動擴展行列數(shù),并在該位置上添加這個數(shù),而且在其他沒有指定的位置補零。第48頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系492.4矩陣運算三、矩陣運算+;-;*;\和/;^;.*;.\;./;.^(1)矩陣的加減使用+、-運算符,并滿足以下兩個條件之一:類型相同,即行數(shù)相等,且列數(shù)相等。其中一個為標(biāo)量,則矩陣中每一個元素都和標(biāo)量做加減運算。(2)矩陣的乘積使用*運算符,必須滿足維數(shù)條件。只有當(dāng)兩個矩陣中前一個矩陣的列數(shù)和后一個矩陣的行數(shù)相同時,才可以進(jìn)行乘法運算。第49頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系502.4矩陣運算(3)矩陣的除法除法運算的意義相當(dāng)于矩陣的求逆運算。定義了矩陣的左除及右除。矩陣的左除:“\”,A\B即求線性方程AX=B的解,X=A-1B矩陣的右除:“/”,A/B是方程XB=A的解,X=AB-1(4)矩陣的冪只有方陣才可以求冪第50頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系512.4矩陣運算(5)矩陣的點運算兩個矩陣之間的點運算是對該矩陣對應(yīng)元素的直接運算。點乘積運算要求矩陣的維數(shù)相同。例:a=[12;34];b=[35;59]》c=a+bd=a-b》c=d=47-2-3813-2-5第51頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系522.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]第52頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系532.4矩陣運算(6)矩陣的轉(zhuǎn)置“’”表示復(fù)共軛轉(zhuǎn)置,“.’”表示普通轉(zhuǎn)置。對于實矩陣用(’)符號或(.’)求轉(zhuǎn)置結(jié)果是一樣的對于含復(fù)數(shù)的矩陣,則(’)將同時對復(fù)數(shù)進(jìn)行共軛處理而(.’)則只是將其排列形式進(jìn)行轉(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=142536第53頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系542.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=-3第54頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系552.4矩陣運算(3)求特征值與特征向量求解A矩陣的特征值和特征向量,其調(diào)用格式為:

D=eig(A);[V,D]=eig(A);d為矩陣A的特征值向量;求矩陣A的特征向量V及特征值D,滿足A*V=V*D。其中D的對角線元素為特征值,V的列為對應(yīng)的特征向量。例:a=[98;68][v,d]=eig(a)v=d=0.7787-0.732015.446200.62740.681301.5538第55頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系562.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=2第56頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系572.7數(shù)據(jù)的可視化一、圖形窗口MATLAB自動將圖形畫在圖形窗口上;圖形窗口相對于命令窗口是獨立的窗口;圖形窗口的屬性由系統(tǒng)和MATLAB共同控制。二、常用圖形窗口命令格式figure%建立一個新的圖形窗口,并指定為當(dāng)前窗口用于圖形輸出subplot %把多個圖形繪在一個圖形窗口中subplot(m,n,I)%把圖形窗口分成m×n個小圖形區(qū)域,并指定第i個區(qū)域為圖形繪制區(qū)域,圖形區(qū)域的編排采用行優(yōu)先第57頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系582.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):當(dāng)y為向量時,則以y的元素為縱坐標(biāo),以相應(yīng)元素下標(biāo)為橫坐標(biāo),繪制連線圖。plot(x,y):當(dāng)y和x為同維向量,則以x為橫坐標(biāo)、y為縱坐標(biāo)繪制連線圖。plot(x1,y1,x2,y2,…):每對x、y必須符合plot(x,y)中的要求,不同對之間沒有影響,命令將對每一對x,y繪制曲線。第58頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系592.8程序設(shè)計入門一、MATLBA程序的基本設(shè)計原則1、%后面的內(nèi)容是程序的注解,要善于運用注解使程序更具可讀性。2、養(yǎng)成在主程序開頭用clear指令清除變量的習(xí)慣,以消除工作空間中其他變量對程序運行的影響。但注意在子程序中不要用clear。3、參數(shù)值要集中放在程序的開始部分,以便維護(hù)。要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進(jìn)行的運算,在語句行之后輸入分號使其及中間結(jié)果不在屏幕上顯示,以提高執(zhí)行速度。第59頁,課件共66頁,創(chuàng)作于2023年2月2023/8/17控制科學(xué)與工程系602.8程序設(shè)計入門4、input指令可以用來輸入一些臨時的數(shù)據(jù);而對于大量參數(shù),則通過建立一個存儲參數(shù)的子程序,在主程序中用子程序的名稱來調(diào)用。5、程序

溫馨提示

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

評論

0/150

提交評論