官术网_书友最值得收藏!

1.2 拓展知識

1.2.1 MATLAB語言簡介

MATLAB已經(jīng)成為國際上流行的控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)軟件,可以進(jìn)行高級數(shù)學(xué)分析與運(yùn)算,用作動態(tài)系統(tǒng)的建模與仿真。MATLAB是以復(fù)數(shù)矩陣作為基本編程單元的一種程序設(shè)計(jì)語言,它提供了各種矩陣運(yùn)算與操作,并具有強(qiáng)大的繪圖功能,如控制系統(tǒng)、信號處理、最優(yōu)控制、強(qiáng)健性控制及模糊控制工具箱等。

本節(jié)主要介紹MATLAB常用的命令、控制系統(tǒng)工具箱及SIMULINK仿真工具軟件。在控制科學(xué)的發(fā)展進(jìn)程中,控制系統(tǒng)的計(jì)算機(jī)輔助設(shè)計(jì)對于控制理論的研究和應(yīng)用一直起著很重要的作用。

1.2.2 MATLAB的數(shù)值運(yùn)算基礎(chǔ)

1.常量

MATLAB中使用的常量有實(shí)數(shù)常量與復(fù)數(shù)常量兩類。在MATLAB中,虛數(shù)單位j或i=sqrt(-1),在工作空間顯示為

復(fù)數(shù)常量的生成可以利用如下語句:

Z=a+bj  或  z=r*exp(θ*j)

式中:r是復(fù)數(shù)的模,θ是復(fù)數(shù)幅角的弧度數(shù)。

2.變量

MATLAB里的變量無須事先定義。一個(gè)程序中的變量,以其名稱在語句命令中第一次合法出現(xiàn)定義。請注意MATLAB變量名稱的命名不是任意的,其命名規(guī)則如下:

①變量名可以由英語字母、數(shù)字和下畫線組成。

②變量名應(yīng)以英文開頭。

③組成變量名的字符長度不大于31個(gè)。

④MATLAB區(qū)分英文字母大小寫。

MATLAB的部分特殊變量與常量:

ans  默認(rèn)變量名以應(yīng)答最近一次操作運(yùn)算結(jié)果

i,j  虛數(shù)單位,定義為

pi  圓周率

eps  浮點(diǎn)數(shù)的相對誤差

realmax  最大的正實(shí)數(shù)

realmin  最小的正實(shí)數(shù)

MATLAB中還可以設(shè)置全局變量。只要在該變量前添加MATLAB的關(guān)鍵字“global”就可以將該變量設(shè)定為全局變量了。全局變量必須在使用前聲明,即這個(gè)聲明必須放在主程序的首行;而且作為一個(gè)慣用的規(guī)則,在MATLAB程序中盡量用大寫英語字母書寫全局變量。

3.運(yùn)算符

MATLAB可完成基本代數(shù)運(yùn)算操作+、-、*、\、/、^(平方)、標(biāo)準(zhǔn)三角函數(shù)、雙曲線函數(shù)、超越函數(shù)(log為自然對數(shù),log10為以10為底的對數(shù))及開平方等。MAT-LAB可進(jìn)行多種矩陣運(yùn)算。

矩陣的加、減、乘、除和乘方運(yùn)算:

在矩陣A、B滿足維數(shù)條件時(shí),可直接用下列指令進(jìn)行:

矩陣加、減運(yùn)算

C=A+B  C=A-B

矩陣乘、除運(yùn)算

C=A*B  C=A/B

矩陣乘方

B=A^2  C=A^(-1)  D=A^(0.5)

MATLAB還可以完成其他的矩陣函數(shù)運(yùn)算,例如求行列式(det)、矩陣求反(inv)、求矩陣特征值(eig)、求秩(rank)、求跡(trace)和模方(norm)等。強(qiáng)大的矩陣運(yùn)算函數(shù)是MATLAB運(yùn)算功能的核心。其他運(yùn)算功能還有,求一個(gè)數(shù)的實(shí)部(real),求一個(gè)數(shù)的虛部(imag),求一個(gè)數(shù)的絕對值(abs)(復(fù)數(shù)的絕對值或幅值)和求共軛運(yùn)算(conj)。如矩陣求反

1.2.3 矩陣及矩陣函數(shù)

MATLAB的基本元素是雙精度的復(fù)數(shù)矩陣。這不僅是它的一般表達(dá)方法,而且也包含了實(shí)數(shù)、復(fù)數(shù)與常數(shù)。它也間接地包含了多項(xiàng)式與傳遞函數(shù)。在MATLAB環(huán)境下,輸入一行矢量很簡單,只需要使用方括號,并且每個(gè)元素之間用空格或用逗號隔開即可。矩陣元素定位地址方式為

A(m,n)

其中,m為行號,n為列號。例如,A(3,4)表示第三行第四列元素;A(:,2)表示所有的第二列元素;A(1:2,1:3)表示從第一行到第二行和第一列到第三列的所有元素。

如果在原矩陣中一個(gè)不存在的地址位置設(shè)定一個(gè)數(shù),則該矩陣自動擴(kuò)展行列數(shù),并在該位置上添加這個(gè)數(shù),而在其他沒有指定的位置補(bǔ)0。

1.一維數(shù)組

用戶可以在MATLAB工作環(huán)境中鍵入命令,也可以由它定義的語言編寫一個(gè)或多個(gè)應(yīng)用程序,MATLAB基本的賦值語句結(jié)構(gòu)為

輸出結(jié)果:

2.多維數(shù)組

在MATLAB中輸入數(shù)組需要遵循以下基本規(guī)則:

①把數(shù)組元素列入括號[]中。

②每行內(nèi)的元素間用逗號或空格分開。

③行與行之間用分號或回車隔開。

例如:輸入矩陣

矩陣的轉(zhuǎn)制用A'表示,例如:

ans是英文單詞answer的縮寫。在MATLAB中,冒號“:”是很有用的命令符。例如:

>>t=[0:0.1:10]

它將產(chǎn)生一個(gè)從0到10的行矢量,而且元素之間間隔為0.1。如果增量為負(fù)值,可以得到一個(gè)遞減的順序矢量。

矩陣的輸入需要逐行輸入,每個(gè)行矢量之間要用分號隔開或者回車。例如:

每個(gè)數(shù)據(jù)之間的空格數(shù)可以任意設(shè)定。

3.矩陣函數(shù)

多項(xiàng)式表示以降階排列含有多項(xiàng)式系數(shù)的矢量。利用求根(root)命令,可以求得多項(xiàng)式的根。例如,求2s3+3s2+4s+5=0的根可用下列命令:

求多項(xiàng)式(poly)命令的功能是由多項(xiàng)式的根求得一多項(xiàng)式。其結(jié)果是由多項(xiàng)式系數(shù)組成的行矢量。其命令如下:

如果poly的命令輸入?yún)?shù)為矩陣,則可得到那個(gè)矩陣的特征多項(xiàng)式(行矢量)特征多項(xiàng)式是A=det(λI-A)。

1.2.4 MATLAB的繪圖功能

MATLAB具有較強(qiáng)的繪圖功能,只需鍵入簡單的命令,就可繪制出用戶所需要的圖形。下面介紹幾種常用的繪圖命令。

1.plot命令

plot(x,y)命令是繪制y對應(yīng)x的軌跡的命令。y與x均為矢量,且具有相同的元素?cái)?shù)量。如果其中有一個(gè)參數(shù)為矩陣,則另一個(gè)矢量參數(shù)分別對應(yīng)該矩陣的行或者列的元素可繪制出一簇曲線(究竟是對應(yīng)行還是列繪制函數(shù)曲線,取決于哪個(gè)參數(shù)排在前面)。如果兩個(gè)參數(shù)都是矩陣,則x的列對應(yīng)y的列繪制出一簇曲線。

如果y是復(fù)數(shù)矢量,那么plot(y)將繪制該參數(shù)虛部與實(shí)部對應(yīng)的曲線。該命令的這個(gè)特點(diǎn)在繪制奈魁斯特圖時(shí)是很有用的。

在MATLAB中通過函數(shù)Polyval(p,v)可以求得多項(xiàng)式在給定點(diǎn)的值,該函數(shù)的調(diào)用格式為

Polyval(p,v)

例1-1 畫出在t=0:0.1:10范圍內(nèi)的正弦曲線。

應(yīng)用如下命令:

>>t=0:0.1:10;

>>y=sin(t);

>>plot(t,y)

運(yùn)行結(jié)果如圖1-10所示。

圖1-10 例1-1的圖

如果在同一坐標(biāo)內(nèi)繪制多條曲線(對應(yīng)某一坐標(biāo)軸,具有相同的取值點(diǎn)),可以由數(shù)據(jù)組成一個(gè)矩陣來同時(shí)繪制多條曲線。如下例共有三套數(shù)據(jù),要求在同一坐標(biāo)軸內(nèi)同時(shí)繪制三條曲線。其命令格式如下:

plot(t,[x1 x2 x3])

如果多重曲線對應(yīng)不同的矢量繪制,可使用如下命令格式:

plot(t1,x1,t2,x2,t3,x3)

式中表示x1對應(yīng)t1,x2對應(yīng)t2,等等。在這種情況下,t1、t2和t3可以具有不同的元素?cái)?shù)量,但要求x1、x2和x3必須分別與t1、t2和t3具有相同的元素?cái)?shù)量。

2.semilogx和semilogy命令

命令semilogx繪制半對數(shù)坐標(biāo)圖形,x軸取以10為底的對數(shù),y軸為線性坐標(biāo)。

命令semilogy繪制半對數(shù)坐標(biāo)圖形,y軸取以10為底的對數(shù),x軸為線性坐標(biāo)。

例1-2 如圖1-11所示,代碼如下:

>>w=logspace(-1,3,100);

>>y=log10(x);

>>semilogx(x,y)

運(yùn)行結(jié)果如圖1-11所示。

圖1-11 例1-2的圖

3.其他常用命令

subplot命令使得在一個(gè)屏幕上可以分開顯示n個(gè)不同坐標(biāo),且可分別在每一個(gè)坐標(biāo)中繪制曲線。其命令格式如下:

subplot(r,c,p)

該命令將屏幕分成r×c個(gè)窗口,而p表示在第幾個(gè)窗口。例如:subplot(2,1,2),將屏幕分成兩個(gè)窗口。subplot(2,1,1)與subplot(2,1,2)命令常用于控制系統(tǒng)伯德圖(Bode)的繪制。窗口的排號是從左到右,自上而下。

執(zhí)行如下命令可以在圖中加入題目、標(biāo)號、說明和分格線等。這些命令有title、xlabel、ylabel、gtext和text等。其命令格式如下:

title'(MyTitle'),xlabel('My X-axis Label')

ylabel('My X-axis Label')

gtext('Text for annotation')

text(x,y,'Text for annotation').grid

gtext命令是使用鼠標(biāo)定位的文字注釋命令。當(dāng)你輸入命令后,可以在屏幕上得到一個(gè)光標(biāo),然后使用鼠標(biāo)控制它的位置。單擊即可確定文字設(shè)定的位置。該命令使用起來非常方便。

shg和clg是顯示與清除顯示屏圖形的命令。hold是圖形保持命令,可以把當(dāng)前圖形保持在屏幕上不變,同時(shí)在這個(gè)坐標(biāo)內(nèi)繪制另外一個(gè)圖形。hold命令是一個(gè)交替轉(zhuǎn)換命令,即執(zhí)行一次,轉(zhuǎn)變一個(gè)狀態(tài)(相當(dāng)于ho ldon、hold off)。

MATLAB可以自動選擇坐標(biāo)軸的定標(biāo)尺度,也可以使用axis命令定義坐標(biāo)軸的特殊定標(biāo)尺度。其命令格式如下:

axis([x-min,x-max,y-min,y-max])

可設(shè)置坐標(biāo)軸為特殊刻度。設(shè)置坐標(biāo)軸以后,plot命令必須重新執(zhí)行才能有效。axis命令的另一個(gè)作用是控制縱橫尺度的比例。例如,輸入axis('square')后,可得到一個(gè)顯示方框。此時(shí)再在該框內(nèi)繪制一個(gè)圓形時(shí)(如plot(sin(x),cos(x)),在屏幕上可以看到一個(gè)標(biāo)準(zhǔn)的圓(一般情況下,由于屏幕的不規(guī)則原因,只能看到一個(gè)橢圓)。再次輸入axis('normal')命令,屏幕返回到一般狀態(tài)。

主站蜘蛛池模板: 青冈县| 甘孜| 太仓市| 云安县| 如东县| 浙江省| 固阳县| 农安县| 尚义县| 英超| 肥乡县| 土默特右旗| 扶沟县| 晋江市| 平安县| 闽侯县| 华亭县| 察雅县| 阜宁县| 儋州市| 察雅县| 陇川县| 略阳县| 平陆县| 德庆县| 遂溪县| 五台县| 珲春市| 寿光市| 抚远县| 晴隆县| 渝北区| 浠水县| 万载县| 通州区| 锡林郭勒盟| 湖南省| 无棣县| 出国| 许昌县| 南昌市|