Matlab基礎(chǔ)
關(guān)于MATLAB
MATLAB是Matrix laboratory的縮寫,是美國的MATHWORK公司開發(fā)的一種進行科學和工程計算的交互式程序語言。1984年推出第一個商業(yè)版本,到現(xiàn)在已經(jīng)到了6.1版本,功能日趨完善和強大。主要適用于矩陣運算及控制和信息處理領(lǐng)域的分析設(shè)計。另外還包括仿真、系統(tǒng)辨識、神經(jīng)元網(wǎng)絡(luò)、模糊控制等工具箱。其中Simulink仿真工具箱可以利用圖形界面和框圖來編程和仿真。
運行MATLAB程序的流程
• MATLAB軟件通常工作在交互狀態(tài)下,當鍵入一條命令后,MATLAB系統(tǒng)立即執(zhí)行該命令并在屏幕上顯示結(jié)果;
• MATLAB系統(tǒng)也可以執(zhí)行儲存在文件中的命令序列。這兩種工作方式構(gòu)成了系統(tǒng)的解釋環(huán)境。
數(shù)字運算
MATLAB可以像計算器一樣直接進行數(shù)學運算。
在MATLAB命令窗口內(nèi)輸入:
80*0.8+16*12.2
ans =
259.2000
幫助命令help
MATLAB提供了大量的函數(shù)和命令,如果想記住所有的函數(shù)及其調(diào)用格式幾乎是不可能的。在線幫助可以由help 命令來獲得。在MATLAB 的命令窗口直接鍵入help即可得到所有的幫助主題。如果要對某一命令或函數(shù)進行查詢,直接在help后跟上該命令或函數(shù)即可。
變量的命名規(guī)則
變量名對大小寫敏感。
變量名的首字符必須是字母。
每個變更名最多可包含19個字符。函數(shù)的命名規(guī)則與變量相同。
表達式
MTLAB對使用者鍵入的表達式進行翻譯和計算,語句的形式通常為:
變量=表達式;
或簡單地寫作: 表達式;
其中分號是可選的,如果該語句的最后一個字符是分號,則在執(zhí)行詞句時不在屏幕上顯示結(jié)果。
表達式是由運算符,函數(shù)以及變量名組成。例如:z=r*sin(x)
簡單矩陣的輸入
矩陣不需維數(shù)說明和類型定義,存儲單元完全由計算機自動分配。輸入矩陣最簡單的方法是輸入矩陣的元素表,每個元素之間用空格或逗號隔開,用“;”號作為元素表中每一行的結(jié)束符,并用[ ]將元素表括起來。
例如,輸入語句:a=[1 2 3;4 5 6;7 8 9]
則結(jié)果為:a = 1 2 3
4 5 6
7 8 9
向量的產(chǎn)生
冒號是MATLAB中一個重要的字符。
語句:x=1:5
產(chǎn)生一個行向量,其元素為1至5的數(shù),每個數(shù)較前一數(shù)字遞增1。即:
x=[1 2 3 4 5 ],增量也可以是其它數(shù)。
如:y=[0:2:10]
則 y=[0,2,4,6,8,10]
矩陣操作
1、轉(zhuǎn)置:
若a=[1 2 3;4 5 6]
b=a'
得b =
1 4
2 5
3 6
2、求逆(inverse)
使用函數(shù)inv(a),例如:
a=[1 2 0; 2 5 -1; 4 10 -1]
inv(a)
ans =
5 2 -2
-2 -1 1
0 -2 1
3、矩陣的加、減、乘。
兩個同維矩陣,才能進行加減運算
c= a+b; d=a-b;
a的列數(shù)等于b的行數(shù),則e=a*b;
例如:a=[1 3 5 7], b=[2 4 6 8]則
a.*b’
ans =
2 12 30 56
MATLAB程序的流程
MATLAB通常工作在交互狀態(tài)下,當鍵入一條命令后,MATLAB系統(tǒng)立即執(zhí)行該命令并在屏幕上顯示結(jié)果;
MATLAB系統(tǒng)也可以執(zhí)行儲存在文件中的命令序列。這兩種工作方式構(gòu)成了系統(tǒng)的解釋環(huán)境。
當面對一個問題,用文本編輯器編輯好MATLAB程序后,保存為后綴為“.m”的文件(實質(zhì)為MATLAB命令序列),執(zhí)行時在命令窗口鍵入M文件名后回車或用菜單命令。
MATLAB程序的流程
MATLAB具有類似其它語言while ,for循環(huán)語句,可以實現(xiàn)一條語句或一組語句的多次重復執(zhí)行。
1、for循環(huán)
for i = 1:n,
for j = 1:n
a(i , j) = 1/(i+j-1);
end
end
重復執(zhí)行FOR 和END之間的命令,可以嵌套。
2、while循環(huán)
while 表達式
語句
end
例:n=1;y=0;
while n<=100
y=y+n; n=n+1;
end
得 y =5050
3、if語句
if x>0
x=x ;
else
x= - x ;
end
圖形處理
MATLAB有強大圖形處理功能,能處理二維、三維及圖形對象或句柄圖形。
二維圖形處理常用命令有:
figure 創(chuàng)建圖形窗口
plot、fplot、ezplot 基本的二維繪圖命令
semilogx、semilogy、semilog,同plot,但此行的命令坐標軸是lnx,lny
xlabel、ylabel、title 標注軸名稱與圖形標題
text、gtext、legend 標注圖形與圖例的標注
help graph2d 二維圖形方面有命令
help graph3d 三維圖形方面有命令
help specgrah 特殊圖形方面有命令
假設(shè)有兩個同長度的向量 x 和 y, 則用 plot(x,y) 就可以自動繪制畫出二維圖來。如果打開過圖形窗口,則在最近打開的圖形窗口上繪制此圖,如果未打開窗口,則開一個新的窗口繪圖。
〖例〗正弦曲線繪制:
t=0:0.1:2*pi; %生成橫坐標向量,使其為 0,0.1,0.2,...,6.2
y=sin(t); % 計算正弦向量
plot(t,y) %繪制圖形
這樣立即可以得出二維圖
控制系統(tǒng)工具箱
控制工具箱包含了進行控制系統(tǒng)分析與設(shè)計所必需的工具箱函數(shù)。
(1)模型建立 (2)模型變換
(3)模型簡化 (4)模型實現(xiàn)
(5)模型特性 (6)方程求解
(7)時間響應 (8)頻率響應
(9)根軌跡 (10)估計器/調(diào)節(jié)器設(shè)計
控制系統(tǒng)模型
1)狀態(tài)空間狀態(tài)空間形式的系統(tǒng)方程寫為:
在MATLAB中,這個系統(tǒng)簡單的寫為A、B、C、D四個矩陣的形式即可
Sys=ss(A,B,C,D)
2)傳遞函數(shù)
傳遞函數(shù)一般記為:
在MATLAB中,直接用分子/分母系數(shù)表示
Num=[b0,b1,b2…bm] den=[a0,a1,a2,….an]
sys=tf(num,den)
(3)零點增益模型(ZP)
在MATLAB中,用[z,p,k]矢量組表示
Sys=zpk(z,p,k)
模型之間的轉(zhuǎn)換
控制系統(tǒng)的時域分析
Impulse 脈沖響應
Step 階躍響應
Lsim 任意輸入模擬
控制系統(tǒng)頻域分析
Bode Bode圖
Nyquist Nyquist圖
Margain 增益裕度和相位裕度
例:
figure,bode(sys1) 畫其Bode圖
figure,nyquist(sys1) 畫Nyquist圖
margin(sys1) 求系統(tǒng)的幅值裕量與相位裕量
控制系統(tǒng)穩(wěn)定性分析
在MATLAB中,可利用pzmap函數(shù)繪制系統(tǒng)的零極點圖,從而確定系統(tǒng)的穩(wěn)定性
調(diào)用格式:
Pzmap(num,den)
系統(tǒng)仿真工具箱SIMULINK
類似VB中在窗體上放置控件一樣,SIMULINK用方框圖的繪制代替了程序的編寫。SIMULINK主要完成兩方面的工作
建立控制系統(tǒng)的模型
實現(xiàn)控制系統(tǒng)的仿真
SIMULINK啟動
1. 在MATLAB的命令窗口中鍵入SIMULINK,就打開了SIMULINK的模塊庫(如圖);
2. 在MATLAB命令窗口的file菜單中選擇new命令的model,將打開一個新的空白窗口;
3. 在MATLAB的工具欄中,按按鈕,將打開一個新的空白窗口;
連接與建模
構(gòu)成任何一個系統(tǒng)需要三步:選定典型環(huán)節(jié)、相互聯(lián)接和給定環(huán)節(jié)參數(shù)。
200多MATLAB經(jīng)典教程及論文: http://wenjunhu.com/soft/special/matlab/
評論
查看更多