- 自動控制系統(tǒng)項(xiàng)目教程
- 王莉 譚慶吉
- 2961字
- 2019-09-30 13:06:27
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)。
- 新型進(jìn)口彩電上門維修速查手冊
- 電氣控制與西門子PLC應(yīng)用技術(shù)
- 電機(jī)繞組端面模擬彩圖總集(第一分冊):三相常規(guī)系列電動機(jī)·高壓電動
- 電工完全自學(xué)手冊
- 零基礎(chǔ)看懂電工電路圖
- 上門速查快修小型家用電器500例
- 光伏發(fā)電系統(tǒng)設(shè)計(jì)、施工與運(yùn)維
- 現(xiàn)代電工技能實(shí)戰(zhàn)自學(xué)手冊
- 電機(jī)與電氣控制及PLC
- 電磁爐故障檢修思路與電路圖集
- 零基礎(chǔ)輕松學(xué)修數(shù)字電視機(jī)頂盒
- PLC基礎(chǔ)與實(shí)戰(zhàn)
- 西門子S7-1500 PLC 完全精通教程
- 新型隔爆電動機(jī)設(shè)計(jì)與應(yīng)用
- 西門子S7-200 SMART PLC編程技巧與案例