控制基礎(chǔ)實驗指導(dǎo)書(大綱視圖2014-09-30)_第1頁
控制基礎(chǔ)實驗指導(dǎo)書(大綱視圖2014-09-30)_第2頁
控制基礎(chǔ)實驗指導(dǎo)書(大綱視圖2014-09-30)_第3頁
控制基礎(chǔ)實驗指導(dǎo)書(大綱視圖2014-09-30)_第4頁
控制基礎(chǔ)實驗指導(dǎo)書(大綱視圖2014-09-30)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第一章 MATLAB的簡介1.1 概述1.1 概述1.1 概述MATLAB是MathWorks公司于1982年推出的一套高性能的數(shù)值計算和可視化軟件,MATLAB的圖形、打印、聯(lián)機幫助等功能齊全。它集數(shù)值分析、矩陣運算、信號處理和圖形顯示于一體,構(gòu)成了一個方便的、界面友好的用戶環(huán)境。MATLAB的推出得到了各個領(lǐng)域?qū)<覍W(xué)者的廣泛關(guān)注,其強大的擴展功能為各個領(lǐng)域的應(yīng)用提供了基礎(chǔ)。現(xiàn)在比較新的版本是7.0版。MATLAB是一個計算核心,圍繞著這個計算核心,有許多針對不同應(yīng)用所開發(fā)的應(yīng)用程序,稱為工具箱(Toolboxes)。工具箱的總數(shù)已有上百個,其中主要有:信號處理(Signal Proces

2、sing)、控制系統(tǒng)(Control System)、神經(jīng)網(wǎng)絡(luò)(Neural Network)、通信(Communication)、圖像處理(Image Processing)、魯棒控制(Robust Control)、非線性控制系統(tǒng)設(shè)計(Nonlinear Control System Design)、系統(tǒng)辨識(System Identification)、最優(yōu)化(Optimization)、分析與綜合( Analysis and Synthesis)、模糊系統(tǒng)(Fuzzy System)、小波(Wavelet)分析和樣條(Spline)等工具箱。這些工具箱給各個領(lǐng)域的研究和工程應(yīng)用提供了有

3、利的幫助,各個層次的研究人員可直觀、方便地進行分析、計算及設(shè)計工作,大大地節(jié)省了編程時間。除MATLAB之外,MathWorks公司還有兩項主要相關(guān)產(chǎn)品,即Simulink及Stateflow。Simulink專用于連續(xù)或離散時間的動態(tài)系統(tǒng)仿真;Stateflow則用于仿真有限狀態(tài)機(Finite State Machines)或事件驅(qū)動系統(tǒng)(Event-driven Systems)。控制基礎(chǔ)課程安排實驗的目的就是讓非電專業(yè)的學(xué)生初步掌握MATLAB語言,學(xué)會用簡單的MATLAB函數(shù)分析線性控制系統(tǒng)的基本性能,從而為今后的學(xué)習(xí)和工作打下基礎(chǔ)。MATLAB下提供了兩種文件格式,其中一種是普通的

4、ASCII碼構(gòu)成的文件,在這樣的文件中只能由MATLAB語言所支持的語句,類似于DOS下的批處理文件,這種文件稱為M文件,它的執(zhí)行方式很簡單,用戶只需在“file”下新建一個“M-file”,在“M-file”窗口下逐條輸入語句,存盤在“work” 文件夾下,然后單擊“debug”下的“run”,這樣在“Conmand Window”窗口下即可看到執(zhí)行的結(jié)果。它采用文本方式,編程效率高,可讀性很強。MATLAB的另一種,也是最常用的特殊M文件稱為MATLAB函數(shù),這樣的函數(shù)是由function語句引導(dǎo)的,其基本格式如下Function返回變量列表=函數(shù)名(輸入變量列表)注釋說明語句段函數(shù)體語句

5、使用時用戶也是在“M-file”窗口下逐條輸入語句,存盤在“work” 文件夾下,調(diào)用時在MATLAB的提示符下鍵入函數(shù)名,并包括輸入變量。類似于C語言的子程序調(diào)用。如function plot_sin(xmin,xmax)x=xmin:min(0.01,(xmax-xmin)/100):xmax;plot(x,sin(x);%This is a demo MATLAB的函數(shù)名定義幾乎與數(shù)學(xué)描述一樣,接近書寫計算公式的思維方式,如min(),max()。它的基本命令包括:數(shù)學(xué)函數(shù)、矩陣、數(shù)值方法、繪圖、字符串、文件I/O等數(shù)百條。1.2 使用變量與基本計算MATLAB能識別一般常用的加(+)、

6、減(-)、乘(*)、除(/)、冪次()等數(shù)學(xué)運算符號,因此在MATLAB下進行基本運算,最快速簡單的方法是在MATLAB命令窗口(Command Window)內(nèi)的提示符號(>>)之后輸入表達式,并按下Enter鍵即可。例如>>(5*2+3.5)/5ans= 2.7000MATLAB會將計算結(jié)果直接存入默認(rèn)變量ans中(即MATLAB語句的返回值),代表MATLAB運算后的答案(Answer),并在屏幕上顯示其運算結(jié)果的數(shù)值(在上例中,即為2.7000)。若不想讓MATLAB每次都顯示運算結(jié)果,只需在表達式最后加上分號(;)即可,例如:>>(5*2+3.5)

7、/5;在上例中,由于表達式后面加入了分號,因此MATLAB只會將運算結(jié)果儲存在默認(rèn)變量ans內(nèi),不會顯示于屏幕上;在需要時取用或顯示此運算結(jié)果,可直接輸入變量ans ,例如(接上例)>>ansans= 2.7000使用者也可將運算結(jié)果儲存于使用者自己設(shè)定的變量x(或其他變量,如y、x0、x1等)內(nèi),例如>> x=(5*2+3.5)/5x= 2.7000MATLAB會將所有在百分比符號(%)之后的文字視為程序的注解(Comments),例如>> y=(5*2+3.5)/5;%將運算結(jié)果儲存于變量y內(nèi),但不顯示于屏幕>>z=y2 %將運算結(jié)果儲存于變

8、量z內(nèi),并顯示于屏幕z= 7.2900在上例中,百分比符號之后的文字會被 MATLAB忽略不執(zhí)行,但它的使用可提高MATLAB程序的可讀性。MATLAB可同時執(zhí)行以逗號(,)或分號(;)隔開的數(shù)個表達式,例如>>x=sin(pi/3);y=x2;z=y*10z= 7.5000若一個數(shù)學(xué)表達式太長,可用三個句點(.)將其延伸到下一行,例如>>z=10*sin(pi/3)*.sin(pi/3)z= 7.5000提示:變量命名規(guī)則與使用(1)第一個字母必須是英文字母;(2)字母間不可留空格;(3)最多只能有31個字母,MATLAB會忽略多余字母;(4)MATLAB在使用變量時

9、,不需預(yù)先經(jīng)過變量聲明的程序,而且所有數(shù)值變量均以默認(rèn)的double 數(shù)據(jù)類型儲存。1.3 向量與矩陣的處理在上述的各例中,MATLAB的變量用來儲存標(biāo)量(Scalars),其實MATLAB中的變量還可用來儲存向量(Vectors)及矩陣(Martrix),MATLAB以復(fù)數(shù)矩陣為最基本的運算單元,既可以對它整體地進行處理,也可以對它的某個或某些元素進行單獨的處理,例如>>s=1 3 5 2; %注意 的使用及各數(shù)字間的空白間隔>>t=2*s+1t= 3 7 11 5在上例中,MATLAB使用中括號( ),來建立一個行向量1 3 5 2(或是1×4大小的矩陣1

10、 3 5 2),將其儲存于變量s中,再對其進行運算產(chǎn)生另一新的行向量3 7 11 5,并將其結(jié)果儲存在變量t中。提示:s=1 3 5 2 與s=1, 3, 5, 2的效果是一樣的。MATLAB也可取出向量中的一個元素或一部分來做運算,例如(接上例)>>t(3)=2 %將向量t的第三個元素改為2t= 3 7 2 5>>t(6)=10 %在向量t中加入第六個元素,其值為10t=3 7 2 5 0 10>>t(4)= %將向量t的第四個元素刪除t=3 7 2 0 10 >>s(2)*3+t(4) %取出向量s的第二個元素和向量t的第四個元素做運算 an

11、s= 9 >>t(2:4)-1 %取出向量t的第二至第四個元素做運算 ans=6 1 -1用類似上述建立向量的方法,使用者可以建立m×n大小的矩陣(m代表矩陣的行數(shù),n代表矩陣的列數(shù)),但必須在每一行結(jié)尾加上分號(;),例如>>A=1 2 3 4;5 6 7 8;9 10 11 12;%建立3×4的矩陣A>>A %顯示矩陣A內(nèi)容A= 1 2 3 4 5 6 7 8 9 10 11 12同樣,我們可以對矩陣進行各種處理,例如(接上例)>>A(2,3)=5 %將矩陣A第二行、第三列的元素值改為5A= 1 2 3 4 5 6 5 8

12、 9 10 11 12>>B=A(2,1:3) %取出矩陣A第二行、第一列至第三列的元素值, %儲存成一新矩陣BB=5 6 5>>A=A B %將矩陣B轉(zhuǎn)置后,再以列向量并入矩陣AA= 1 2 3 4 55 6 5 8 69 10 11 12 5 >>A(:,2)= %刪除矩陣A第二列(:代表所有行,代表空矩陣)A= 1 3 4 55 5 8 69 11 12 5>>A=A;4 3 2 1 %在原矩陣A中,加入第四行A= 1 3 4 55 5 8 69 11 12 5 4 3 2 1>>A(1 4,:)= %刪除第一、第四行(:代表所

13、有列,代表空矩陣)A= 5 5 8 6 9 11 12 5在MATLAB下,矩陣A和矩陣B的乘積(假定其中A、B矩陣是可乘的)可以簡單地由運算C=A*B求出>>A=1,0,1;1,0,0;2,1,0;>>B=1,0,2;2,1,1;1,0,1;>>C=A*BC=2 0 31 0 24 1 5而D=A.*B稱點乘積運算,即表示A和B矩陣的相應(yīng)元素之間直接進行乘法運算,然后將結(jié)果賦給D矩陣,點乘積運算要求A和B矩陣的維數(shù)相同。 >>D=A.*B D= 1 0 2 2 0 0 2 0 01.4 常用數(shù)學(xué)函數(shù)MATLAB是一個科學(xué)計算軟件,因此它可以支持

14、很多數(shù)學(xué)函數(shù),例如>>x=4;>>y=abs(x) %取x的絕對值y= 4>>y=sin(x) %取x的正弦值y= -0.7568MATLAB也支持復(fù)數(shù)運算,通常以i或j代表單位虛數(shù),例如>>z=5+4j %復(fù)數(shù)z=5+4(此處j也可換成i)z= 5.0000+4.0000i>>y=angle(z) %復(fù)數(shù)z的相角y=0.6747>>real(z) %返回復(fù)數(shù)z的實部ans=5MATLAB有相當(dāng)完整的數(shù)學(xué)函數(shù)及三角函數(shù),見表1.1和表1.2。這些基本數(shù)學(xué)函數(shù)也都可用于向量或矩陣,例如>>x=4 2j 9 ;&g

15、t;>y=sqrt(x) %對x開平方y(tǒng)= 2.0000 1.0000+1.0000j 3.0000 在上例中,sqrt(x)函數(shù)會對x的每一個元素進行開平方的運算。另外,MATLAB還有一些函數(shù)是特別針對向量設(shè)計的,例如>>x=1 2 3 0 12;>>y=min(x) %向量x的最小值y= 0 函數(shù)說 明函數(shù)說 明abs(x)標(biāo)量的絕對值或復(fù)數(shù)的幅值fix(x)對原點方向取緊鄰整數(shù)exp(x)自然指數(shù)exceil(x)對+方向取緊鄰整數(shù)pow2(x)2的指數(shù)2xfloor(x)對-方向取緊鄰整數(shù)sqrt(x)開平方gcd(x,y)整數(shù)x和y的最大公約數(shù)log(

16、x)自然對數(shù)ln(x)lcm(x,y)整數(shù)x和y的最小公倍數(shù)log2(x)以2為底的對數(shù)log2(x)rem(x,y)求x除以y的余數(shù)log10(x)以10為底的對數(shù)log10(x)round(x)四舍五入到最近的整數(shù)angle(z)復(fù)數(shù)z的相角sign(x)符號函數(shù)當(dāng)x<0時,sign(x)=-1當(dāng)x=0時,sign(x)=0當(dāng)x>0時,sign(x)=1real(z)復(fù)數(shù)z的實部imag(z)復(fù)數(shù)z的虛部conj(z)復(fù)數(shù)z的共軛復(fù)數(shù)表1.1 MATLAB常用數(shù)學(xué)函數(shù) 表1.2 MATLAB常用三角函數(shù)函數(shù)說 明函數(shù)說 明sin(x)正弦函數(shù)asin(x)反正弦函數(shù)cos(x)

17、余弦函數(shù)acos(x)反余弦函數(shù)tan(x)正切函數(shù)atan(x)反正切函數(shù)sinh(x)雙曲正弦函數(shù)asinh(x)反雙曲正弦函數(shù)cosh(x)雙曲余弦函數(shù)acosh(x)反雙曲余弦函數(shù)tanh(x)雙曲正切函數(shù)atanh(x)反雙曲正切函數(shù)1.5 多項式運算多項式運算是線性代數(shù)、線性系統(tǒng)分析中的重要內(nèi)容。MATLAB提供了多條命令,可以進行多項式運算。一個n次的多項式可以表示為因此,在MATLAB中,可以用一個長度為n+1的行向量來表示p(x)為舉例來說,可用p=1,2,0,-5,6來表示一個4次多項式在MATLAB的命令窗口內(nèi)輸入為>>p=1,2,0,-5,6;1.求根及逆運

18、算roots命令可以求解多項式p(x)的根,求出的根按列向量存儲。例如,求上面給出的多項式的根,則鍵入>>r=roots(p)r= -1.8647+1.3584i -1.8647-1.3584i 0.8647+0.6161i0.8647+0.6161ipoly 命令可以由根的列向量求多項式的系數(shù),得到的多項式系數(shù)按行向量存儲。例如,對于上面求出的根,鍵入>>p=poly(r)得到 p=1.0000 2.0000 0.0000 5.0000 6.0000 2.有理多項式在線性系統(tǒng)的Fourier變換、Laplace變換和Z變換中,經(jīng)常用到有理多項式。MATLAB提供了一些

19、命令可以進行有理多項式的運算。MATLAB中的有理多項式是由分子多項式和分母多項式表示的,可以用residue 命令進行部分分式展開。該命令語法為 r,p,k=residue(num,den)其中,num和den分別表示分子和分母多項式的系數(shù)行向量。分解的結(jié)果形式為式中,k(s)為常數(shù)項或純微分項。例如,對已知傳遞函數(shù)進行部分分式分解,運算過程為>>num=10 30; %定義分子多項式>>den=1 2 4 3; %定義分母多項式>>r,p,k=residue(num,den) %進行部分分式展開r= -3.3333-4.0202i -3.3333+4.0

20、202i6.6667p= -0.5000+1.6583i -0.5000-1.6583i -1.0000k= 其中, k=表示沒有常項值。結(jié)果表明,傳遞函數(shù)G(s)被分解為下面的部分分式注意,該命令得到的低階分式都是一階形式,分子上是常值。顯然,由于原傳遞函數(shù)有負(fù)特征值,利用該命令得到的展開式不是常用的實數(shù)形式。當(dāng)然,可以利用多項式的乘法命令進行通分得到實數(shù)形式。根據(jù)給出的r、p、k的值,可以利用同一個命令求出傳遞函數(shù)的有理多項式形式。例如利用上面求出的結(jié)果,鍵入命令>>num,den=residue(r,p,k)得到num= 0 10 30den=1.0000 2.0000 4.

21、0000 3.0000可以看到,求出的分子多項式和分母多項式與給定的傳遞函數(shù)G(s)形式相同。當(dāng)包含m重極點時,部分分式展開式將包括下列m項:例如, 對于已知系統(tǒng)傳遞函數(shù):進行部分分式分解,運算過程為>>num=0 1 2 3;>>den=1 3 3 1;>>r,p,k=residue(num,den)r=1.00000.00002.0000 p=-1.0000-1.0000-1.0000k=即 1.6 工作空間MATLAB在進行各種運算時,會將變量儲存在內(nèi)存中,這些儲存變量的內(nèi)存空間稱為基本工作空間(Base Workspace),簡稱工作空間(Works

22、pace)。當(dāng)每次MATLAB調(diào)用執(zhí)行某一函數(shù)時,即進入該函數(shù)的暫時工作空間(可視為相對于基本工作空間的下層工作空間),函數(shù)可在此暫時工作空間內(nèi)產(chǎn)生各種變量并進行運算,不會影響到基本工作空間內(nèi)的變量。當(dāng)函數(shù)執(zhí)行結(jié)束時,MATLAB會同時刪除函數(shù)的暫時工作空間(當(dāng)然也會刪除儲存于其內(nèi)的所有變量),并回到MATLAB的基本工作空間。以下簡述幾個有關(guān)工作空間的命令。若要查看現(xiàn)存于工作空間(Workspace)的變量,可輸入who ,例如>>who Your variables are:A ans s x z B i t y在上例中,只顯示這些由使用者定義的變量的名稱。若要知道這些變量更詳

23、細(xì)的信息,如變量占用的內(nèi)存大小及其儲存的數(shù)據(jù)類型,則可使用whos命令,例如>>whosName Size Bytes ClassA 2×4 64 double array B 1×3 24 double arrayAns 1×18 36 double array i 1×1 8 char array s 1×4 32 double arrayt 1×6 40 double arrayx 1×6 48 double arrayy 1×1 8 double arrayz 1×1 16 doubl

24、e array(complex)Grand total is 47 elements using 276 bytes同時也可以使用clear 命令來清除或刪除工作空間內(nèi)的某一特定或所有變量,以避免內(nèi)存的閑置與浪費,例如>>clear A %刪除工作空間內(nèi)的變量A>>clear all %刪除工作空間內(nèi)的所有變量值得注意的是,MATLAB有一些永久常數(shù)(Permanent Constants),如表1.3所示。雖然在工作空間看不到,但使用者可直接取用,例如>>pians= 3.1416 表1.3 MATLAB永久常數(shù)常 數(shù)說 明i或j基本虛數(shù)單位(即i2=-1

25、)Eps系統(tǒng)的浮點(Floating-point)精確度Inf無限大,例如1/0Nan或NaN非數(shù)值(Not A Number),例如0/0Pi圓周率(=3.1415926)Realmax系統(tǒng)所能表示的最大數(shù)值Realmin系統(tǒng)所能表示的最小數(shù)值Nargin函數(shù)的輸入變量個數(shù)Nargout 函數(shù)的輸出變量個數(shù)第二章 二維平面繪圖功能MATLAB不但擅長與矩陣有關(guān)的各種數(shù)值運算,也具有非常強大的繪圖功能,特別適用于各種科學(xué)計算可視化(Scientific Visualization)。2.1 基本二維繪圖命令MATLAB的plot 是最基本的繪圖命令,可以對一組x坐標(biāo)及相對應(yīng)的y坐標(biāo)進行描點繪圖

26、(如圖2.1所示),例如>>x=linspace(0,2*pi); %在0到2間,等分取100個點>>y=sin(x); %計算x的正弦函數(shù)值>>plot(x,y); %進行二維平面描點繪圖 圖2.1 二維平面描點繪圖在上例中,linspace(0,2*pi)產(chǎn)生從0到2且長度為100(默認(rèn)值)的向量x,y則是相對應(yīng)的y坐標(biāo)值,plot(x,y)則可對這100個二維平面上的點進行描點繪圖。如果只給定一個向量,那么plot命令會將此向量對其索引值(Index)繪圖。因此,若y為一向量,則plot(y)和plot(1:length(y),y)會得到相同的效果。若

27、要利用plot命令一次畫出多條曲線,可將x及y坐標(biāo)依次送入plot命令即可(如圖2.2所示),例如>>x=linspace(0,2*pi);>>plot(x,sin(x),x,cos(x),x,sin(x)+cos(x);MATLAB在繪制多條曲線時,會自動轉(zhuǎn)換曲線顏色,以利于分辨(也可由使用者自行制定曲線顏色及其他相關(guān)屬性)。若要以不同的標(biāo)志(Marker)來繪圖(如圖2.3所示),可輸入>>x=linspace(0,2*pi);>>plot(x,sin(x),o,x,cos(x),x,x,sin(x)+cos(x),*); 圖2.2 多條曲線

28、描點繪圖 圖2.3 以不同的標(biāo)志繪圖如果z是一個復(fù)數(shù)向量或矩陣,那么plot(z)是將z的實部(即real(z))和虛部(即imag(z))分別當(dāng)成x坐標(biāo)和y坐標(biāo)來繪圖,其效果與plot(real(z), imag(z)相同(如圖2.4所示),例如>>x=randn(30); %產(chǎn)生30×30的隨機數(shù)(正態(tài)分布)矩陣>>z=eig(x); %計算x的特征值>>plot(z,o)>>grid on %畫出網(wǎng)格線在上例中,x是一個30×30的隨機數(shù)矩陣,z則是x的特征值。由于z是一復(fù)數(shù)向量,而且每一個復(fù)數(shù)都和其共軛復(fù)數(shù)同時出現(xiàn),因

29、此所畫出的圖是上下對稱的。圖2.4 畫出網(wǎng)格線的結(jié)果相關(guān)的MATLAB基本二維繪圖命令,見表2.1。表2.1 MATLAB 基本二維繪圖命令命 令說 明plotx軸和y軸均為線性刻度(Linear scale)loglogx軸和y軸均為對數(shù)刻度(Logarithmic Scale)semilogxx軸為對數(shù)刻度,y軸均為線性刻度semilogyy軸為對數(shù)刻度,x軸均為線性刻度例如,若要使x軸為對數(shù)刻度,來對正弦函數(shù)繪圖(如圖2.5所示),可如下進行:>>x=linspace(0,8*pi); %在0到8間,等分取100個點>>semilogx(x,sin(x); %x軸

30、為對數(shù)刻度,并對其正弦函數(shù)繪圖圖2.5 x軸為對數(shù)刻度的正弦函數(shù)圖2.2 圖形的控制plot命令除了接受x及y坐標(biāo)外,還可接受一個字符串輸入,用以控制曲線的顏色、格式及標(biāo)志,其使用語法如下:plot(x,y,CLM)其中,C代表曲線的顏色(Colors),L代表曲線的格式(Line Styles),M代表曲線所用的標(biāo)志(Markers)。舉例來說,若要用黑色點線畫出正弦波,并在每一數(shù)據(jù)點畫上一個小菱形(如圖2.6所示),可輸入>>x=0:0.5:4*pi; %x向量的起始與結(jié)束元素為0及4, %0.5為各元素相差值(間隔為0.5)>>y=sin(x);>>p

31、lot(x,y,k:diamond) %其中“k”代表黑色,“:”代表點線, %而“diamond”則指定菱形為曲線的標(biāo)志 圖2.6 用黑色點線畫出正弦波并在數(shù)據(jù)點畫上小菱形表2.2、2.3、2.4分別給出了plot 命令的曲線格式、顏色選項與符號參考值。 表2.2 plot命令的曲線格式參考表plot命令曲線格式plot命令曲線格式實線(默認(rèn)值):點線虛線.點劃線 表2.3 plot命令的曲線顏色選項參考表Plot命令 曲線顏色RGB值b藍(lán)色(Blue)(0,0,1)c青藍(lán)色(Cyan)(0,1,1)g綠色(Green)(0,1,0)k黑色(Black)(0,0,0)m紫紅色(Magenta

32、)(1,0,1)r紅色(Red)(1,0,0)w白色(White)(1,1,1)y黃色(Yellow)(1,1,0) 表2.4 plot命令的曲線符號參考表plot命令曲線符號plot命令曲線符號o圓形>朝右三角形+十字形<朝左三角形×叉號square/s方形*星號diamond/d菱形.點號pentagram/p五角星形朝上三角形hexagram/h六角星形v朝下三角形none無符號(默認(rèn)值)Hold命令用于保持當(dāng)前圖形。用plot命令繪圖時,首先將當(dāng)前圖形窗口清屏,再繪制圖形,所以我們只能見到最后一個plot命令繪制的圖形。為了能利用多條plot命令繪制多幅圖形,就需

33、要保持窗口上的圖形。Hold命令為>>hold on %保持當(dāng)前圖形及軸系的所有特性>>hold off %解除hold on 命令例如>>x=0:0.2:12;>>plot(x,sin(x),-);>>hold on>>plot(x,1.5*cos(x),:)上例中使用了兩條plot命令繪制出兩條曲線,如圖2.7所示。圖2.7利用hold命令繪出的兩條曲線2.3 圖軸的控制一般而言,plot命令會根據(jù)所給的坐標(biāo)點來自動決定圖軸的范圍,但是也可以使用axis命令來指定,其使用的語法為axis(xmin,xmax,ymin,

34、ymax)其中,xmin和xmax指定x軸的最小和最大值,ymin和ymax指定y軸的最小和最大值。例如,要畫出正弦波在y軸介于0和1的部分(如圖2.8所示),可輸入圖2.8 正弦波y軸介于0和1的部分>> x=0:0.1:4*pi; %x向量的起始和結(jié)束元素為0和4, %0.1為各元素相差值>> y=sin(x);>> plot(x,y);>> axis(-inf,inf,0,1); %畫出正弦波y軸介于0和1的部分其中,-inf及inf并不是代表“無窮大”,而是代表最小值和最大值,因此上述axis命令等效于axis(min(x),max(x)

35、,0,1)MATLAB也可以指定圖軸上的標(biāo)刻點(Ticks)(如圖2.9所示),例如>> x=0:0.1:4*pi;>> plot(x,sin(x)+sin(3*x)>> set(gca,'ytick',-1 -0.3 0.1 1)>> grid on %加上網(wǎng)格線 圖2.9 制定圖軸上的標(biāo)刻點其中,grid on的功能即是加上網(wǎng)格線。此外,gca可返回目前使用中的圖軸(gca是屬于Handle Graphics的命令)。除了改變標(biāo)刻點外,還可將標(biāo)刻點的數(shù)字元改為文字(如圖2.10所示),輸入為 圖2.10 將標(biāo)刻點的數(shù)字元改為文

36、字>> x=0:0.1:4*pi;>> plot(x,sin(x)+sin(3*x)>> set(gca,'ytick',-1 -0.3 0.1 1)>> set(gca,'yticklabel','極小','臨界值','崩潰值','極大')>> grid on如果要在一個窗口產(chǎn)生多個圖形(即圖軸),可再plot命令之前加上subplot,其一般形式為subplot(m,n,p),表示將窗口劃分為m×n個區(qū)域,而下一個plot命令

37、則繪圖于第p個區(qū)域,其中p的算法為由左至右,一行一行算起。例如,可以在一個窗口當(dāng)中同時畫出四個圖(如圖2.11所示),輸入為 圖2.11 在一個窗口中畫出四個圖形>> x=0:0.1:4*pi;>> subplot(2,2,1);plot(x,sin(x);>> subplot(2,2,2);plot(x,cos(x);>> subplot(2,2,3);plot(x,sin(x).*exp(-x/5);>> subplot(2,2,4);plot(x,x.2);2.4 加入文字說明 MATLAB可在圖形或圖軸加入說明文字,以增進整體

38、圖形的可讀性,詳見表2.5。有關(guān)圖軸的說明文字,可舉例如下>> subplot(1,1,1);>> x=0:0.1:2*pi;>> y1=sin(x);>> y2=exp(-x);>> plot(x,y1,'-*',x,y2,':o');>> xlabel('t=0 to 2pi');>> ylabel('values of sin(t) and e-x');>> title('Funtion Plots of sin(t) a

39、nd e-x');>> legend('sin(t)','e-x');各命令執(zhí)行的結(jié)果如圖2.12所示。 表2.5 圖形或圖軸加入說明文字的命令命 令說 明title圖形的標(biāo)題xlablex軸的說明ylabley軸的說明zlablez軸的說明(適用于立體繪圖)legend多條曲線的說明text在圖形中加入文字gtext使用鼠標(biāo)決定文字的位置圖2.12 加入說明文字的各命令執(zhí)行的結(jié)果其中,legend命令將會畫出一小方塊,包括每條曲線的說明。如果對legend方塊位置不滿意,可用鼠標(biāo)單擊拖放至合適的位置。此外,MATLAB將反斜線“”視為特殊符

40、號(如表2.6所示),因此可產(chǎn)生上標(biāo)、下標(biāo)、希臘字母、數(shù)學(xué)符號等效果,其遵循的規(guī)則如同一般LaTex或Tex的數(shù)學(xué)模式。若要在圖形上面加上說明文字,可用text或gtext命令。text命令的使用語法為 text(x,y,string) 表2.6 特殊符號輸入字母表示的特殊符號輸入字母表示的特殊符號pileftarrowalpharightarrowbeta其中,x、y是說明文字的起始坐標(biāo)位置,string則代表說明文字,例如 >> x=0:0.1:2*pi;>>plot(x,sin(x),x,cos(x);>>text(pi/4,sin(pi/4),

41、9;leftarrow sin(pi/4)=0.707');>>text(5*pi/4,cos(5*pi/4),'cos(5pi/4)=-0.707rightarrow',.'HorizontalAlignment','right');text命令的運算結(jié)果如圖2.13所示。在上例中,“HorizontalAlignment”及“right”指示text命令將文字向右水平靠齊。gtext的使用語法為gtext(string),用鼠標(biāo)在圖上任意位置單擊后,string即顯示其上。需要注意的是,gtext只能用在二維平面繪圖中。

42、圖2.13 text命令的運行結(jié)果第三章控制工程基礎(chǔ)實驗線性系統(tǒng)分析與設(shè)計本實驗是為配合控制基礎(chǔ)的理論教學(xué)而設(shè)計的,共學(xué)時,分三次做完全部實驗。在實驗中,同學(xué)們首先要學(xué)習(xí)前兩章的內(nèi)容,了解MATLAB的基本特點,然后側(cè)重于利用MATLAB對線性控制系統(tǒng)進行時域、頻域和穩(wěn)定性分析。3.1 概述控制系統(tǒng)的計算機輔助分析與設(shè)計作為一門專門的學(xué)科,一直受到控制界的普遍重視,在其發(fā)展過程中出現(xiàn)了各種各樣的控制系統(tǒng)分析與設(shè)計軟件或工具包。MATLAB控制工具箱則是眾多工具中最為流行、使用最為廣泛的系統(tǒng)分析與設(shè)計工具。MATLAB中含有極為豐富的專門用于控制系統(tǒng)分析與設(shè)計的函數(shù),如復(fù)數(shù)運算、求特征值、方程求

43、根、矩陣求逆以及快速傅里葉變換等一些復(fù)雜的運算,在MATLAB中僅用一條函數(shù)便能實現(xiàn)。更為方便的是,MATLAB中的線性代數(shù)、矩陣運算和數(shù)值分析等功能為控制系統(tǒng)地分析與設(shè)計提供了可靠的基礎(chǔ)和支持。MATLAB可以實現(xiàn)對線性系統(tǒng)的時域或頻域分析、設(shè)計與建模,所利用的就是工具箱中的各種算法,而這些算法大部分都是M檔,可以直接調(diào)用。MATLAB既可以處理連續(xù)的系統(tǒng),也可以處理離散系統(tǒng)。根據(jù)控制系統(tǒng)描述方法的不同,如系統(tǒng)使用傳遞函數(shù)來表達,還是用狀態(tài)空間來表達,可以選擇經(jīng)典的或現(xiàn)代的控制技術(shù)來處理。不僅如此,還可以利用MATLAB提供的函數(shù)來進行模型之間的轉(zhuǎn)換。對于經(jīng)典的控制系統(tǒng)分析中常用的方法,如時

44、間響應(yīng)、頻率響應(yīng)、根軌跡等都能夠很方便地進行計算并能以圖形形式表達出來。當(dāng)然也能很方便地利用其他一些函數(shù)來進行極點配置、最優(yōu)控制與估計等方面的現(xiàn)代分析設(shè)計方法。當(dāng)被控制對象的模型未知時,可以利用MATLAB辨識工具箱中提供的一些函數(shù)對被控對象進行辨識和建模,然后根據(jù)需要再選擇各種系統(tǒng)分析和設(shè)計方法。另外,還可以利用MATLAB提供的s函數(shù)對一些非線性系統(tǒng)進行分析和設(shè)計。更為重要的是,可以編制自己的M檔來任意添加工具箱中原來沒有的工具函數(shù)。下面將重點介紹以傳遞函數(shù)描述的經(jīng)典控制系統(tǒng)的分析方法。3.2 線性系統(tǒng)傳遞函數(shù)的描述對于單輸入單輸出(SISO)系統(tǒng),其傳遞函數(shù)G(s)可以表示成關(guān)于s的多項

45、式分式的形式式中,nn和nd分別是傳遞函數(shù)分子和分母關(guān)于s多項式系數(shù)的個數(shù)。在MATLAB中,傳遞函數(shù)描述法是通過傳遞函數(shù)分子和分母關(guān)于s降序排列的多項式系數(shù)來表示的,并用向量num和den表示: num=num(1) num(2) num(nn) den=den(1) den(2) den(nd)對于單輸入多輸出(SIMO)系統(tǒng),上述的num為矩陣,其行數(shù)與輸出的y個數(shù)相同。例如,對于單輸入多輸出(SIMO)系統(tǒng)(兩個輸出),傳遞函數(shù)矩陣為只要在MATLAB命令窗口中鍵入如下代碼,即可實現(xiàn)對上述系統(tǒng)的傳遞函數(shù)描述,即>>num=0 0 3 2;1 0 2 5; %或?qū)懗蒼um=

46、3 2;1 0 2 5>>den=3 5 2 1;最好在分子多項式的前面用補零的方法使得傳遞函數(shù)分子多項式系數(shù)個數(shù)與分母多項式系數(shù)個數(shù)相同。得到num和den后,利用下面的語句就可以表示這個系統(tǒng) sys=tf(num,den)其中,tf()代表以傳遞函數(shù)的形式描述系統(tǒng)。對于單輸入單輸出(SISO)系統(tǒng),如>> num=0 0 3 2;>> den=3 5 2 1;>> sys=tf(num,den)Transfer function: 3 s + 2-3 s3 + 5 s2 + 2 s + 1對于單輸入多輸出(SIMO)系統(tǒng),如>>

47、num=0 0 3 2 ;1 0 2 5num = 1x4 double 1x4 double>> den=3 5 2 1;>> sys=tf(num,den) %或?qū)懗蓆f(num,den) Transfer function from input to output. 3 s + 2 #1: - 3 s3 + 5 s2 + 2 s + 1 s3 + 2 s + 5 #2: - 3 s3 + 5 s2 + 2 s + 1或直接寫成>> tf(0 0 3 2,1 0 2 5,3 5 2 1) Transfer function from input 1 to

48、 output: 3 s + 2-3 s3 + 5 s2 + 2 s + 1 Transfer function from input 2 to output: s3 + 2 s + 5-3 s3 + 5 s2 + 2 s + 1還可以用零極點形式描述這個系統(tǒng)在MATLAB中,用z,p,k矢量組表示,即z=z1,z2,zm;p=p1,p2,pn;k=k;用零極點形式來描述系統(tǒng)的語句為ss=zpk(sys)如上面的單輸入單輸出系統(tǒng)>> num=0 0 3 2;>> den=3 5 2 1;>> sys=tf(num,den);>> zpk(sys)

49、 Zero/pole/gain: (s+0.6667)-(s+1.356) (s2 + 0.3103s + 0.2458)而且傳遞函數(shù)形式和零極點形式之間可以相互轉(zhuǎn)化,語句為z,p,k=tf2zp(num,den)num,den=zp2tf(z,p,k)其中,tf2zp函數(shù)是將系統(tǒng)的傳遞函數(shù)形式轉(zhuǎn)換為零極點增益形式,而zp2f函數(shù)是將系統(tǒng)的零極點增益形式轉(zhuǎn)換為傳遞函數(shù)形式。例如 >> num=0 0 3 2;>> den=3 5 2 1;>> z,p,k=tf2zp(num,den)z = -0.6667p = -1.3563 -0.1552 + 0.470

50、8i -0.1552 - 0.4708ik = 1當(dāng)傳遞函數(shù)復(fù)雜時,應(yīng)用多項式乘法函數(shù)conv()等實現(xiàn)。例如:den1=1,2,2den2=2,3,3,2den=conv(den1,den2)3.3 實驗一 控制系統(tǒng)的時域分析一、實驗?zāi)康?.掌握一階、二階線性系統(tǒng)的時域響應(yīng)分析,包括單位階躍響應(yīng)、單位脈沖響應(yīng)、單位斜坡響應(yīng)。2.熟練使用MATLAB中用于線性控制系統(tǒng)時域響應(yīng)分析的工具函數(shù)。二、預(yù)習(xí)要求1.一階、二階線性系統(tǒng)的時域響應(yīng)分析。2.實驗指導(dǎo)書中前兩章內(nèi)容。三、實驗原理對控制系統(tǒng)來說,系統(tǒng)的數(shù)學(xué)模型實際上是某種微分方程或差分方程,因而在仿真過程中需要以某種數(shù)值算法從給定的初始值出發(fā),

51、逐步計算每一個時刻系統(tǒng)的響應(yīng),即系統(tǒng)的總體時間響應(yīng),并繪制出系統(tǒng)的響應(yīng)曲線,由此來分析系統(tǒng)的性能。時間響應(yīng)主要是研究系統(tǒng)對輸入和擾動在時域內(nèi)的瞬態(tài)行為,一些系統(tǒng)的特征,如上升時間、過渡過程時間、超調(diào)量以及穩(wěn)態(tài)誤差等,都能從時間響應(yīng)上反映出來??刂葡到y(tǒng)工具箱提供了豐富的、用于控制系統(tǒng)時間響應(yīng)分析的工具函數(shù)。其中用于計算連續(xù)系統(tǒng)時域響應(yīng)的主要函數(shù)見表3.1。其中單位階躍響應(yīng)函數(shù)step()的調(diào)用格式為y,x=step(sys) 或 y,x=step(sys,t) 或 y,x=step(num,den) 或 y,x=step(num,den,t)其中sys可以由tf()或zpk()函數(shù)得到,t為選定

52、的仿真時間向量,如果不加t,仿真時間范圍自動選擇。此函數(shù)只返回仿真數(shù)據(jù)而不在屏幕上畫仿真圖形,返回值y為系統(tǒng)在各個仿真時刻的輸出所組成的矩陣,而x為自動選擇的狀態(tài)變量的時間響應(yīng)數(shù)據(jù)。如果用戶對具體的響應(yīng)數(shù)值不感興趣,而只想繪制出系統(tǒng)的階躍響應(yīng)曲線,則可以由如下的格式調(diào)用step(sys) 或 step(sys,t) 或 step(num,den) 或 step(num,den,t)表3.1 連續(xù)系統(tǒng)時域響應(yīng)函數(shù)函 數(shù)功 能調(diào)用格式說 明impulse計算連續(xù)系統(tǒng)的單位脈沖響應(yīng)impulse(num,den)得到對以傳遞函數(shù)描述的系統(tǒng)的脈沖響應(yīng)曲線impulse(num,den,t)得到對以傳遞函數(shù)描述的系統(tǒng)的脈沖響應(yīng)曲線,并可指定時間tstep 計算連續(xù)系統(tǒng)的單位階躍響應(yīng)step(num,den)得到對以傳遞函數(shù)描述的系統(tǒng)的階躍響應(yīng)曲線step(num,den,t)得到對

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論