MATLAB軟件環(huán)境是美國新墨西哥大學(xué)的Cleve Moler博士首創(chuàng)的,其全稱為MATrixLABoratory(矩陣實驗室)。MATLAB是以20世紀(jì)七八十年代流行的LINPACK(線性代數(shù)計算)和ESPACK(特征值計算)軟件包為基礎(chǔ)發(fā)展起來的。MATLAB軟件隨著Windows環(huán)境的發(fā)展而迅速發(fā)展,其充分利用了Windows環(huán)境的交互性、多任務(wù)功能和圖形功能,開發(fā)了矩陣的智能和數(shù)學(xué)可視化表示方式,創(chuàng)建了一種建立在C語言基礎(chǔ)上的MATLAB專用語言,使得矩陣運算、數(shù)值運算、數(shù)據(jù)與圖形顯示等變得極為簡單易行。MATLAB語言是一種更為抽象的高級數(shù)學(xué)應(yīng)用語言,它一方面與C語言類似,另一方面又更為接近人的抽象思維,通用性強(qiáng),便于學(xué)習(xí)和編程。同時,MATLAB軟件環(huán)境還具有很好的開放性,用戶可以根據(jù)自己的需求,利用MATLAB提供的基本工具,靈活地編制和開發(fā)自己的程序,開創(chuàng)新的應(yīng)用;可以自行編制程序,添加新的計算工具箱。
MATLAB從誕生起,就得到國外許多高校師生、科技人員的關(guān)注。Moler博士等一批數(shù)學(xué)家和軟件專家成立了Mathworks軟件開發(fā)公司,對MATLAB進(jìn)行了大規(guī)模的擴(kuò)展與改進(jìn)。大批美國和其他國家的學(xué)者都對MATLAB 進(jìn)行了自主開發(fā),以工具箱的形式加入MATLAB總體環(huán)境。目前在控制應(yīng)用領(lǐng)域也已經(jīng)有多種專用工具箱,如有限元分析、控制系統(tǒng)、系統(tǒng)辨識、信號處理、魯棒控制、分析與綜合、模糊控制、神經(jīng)網(wǎng)絡(luò)、小波分析、定量反饋理論、多變量頻域設(shè)計、實時化等。同時,增加了強(qiáng)大的符號運算功能、圖形處理功能等,使MATLAB的應(yīng)用更為廣泛、深入。近幾十年來,MATLAB已逐步成為國內(nèi)外大學(xué)的通用計算工具,成為工業(yè)領(lǐng)域、航空航天領(lǐng)域工程師必不可少的研究與計算工具。MATLAB軟件包目前已在國內(nèi)大多數(shù)高等院校、研究院所得到廣泛、深入的應(yīng)用。
MATLAB的發(fā)展極為迅速,每年更新兩次版本,本書內(nèi)容基于MATLAB
R2017a版本。每一個新版本都對原有版本進(jìn)行了不同程度的改進(jìn):MATLAB 6.0版本增加了航空航天計算模塊,改善了實時化計算模塊;MATLAB 7.0以上版本提供了MATLAB與其下層實時仿真計算機(jī)DSPACE的無縫鏈接,具備了由MATLAB語言直接轉(zhuǎn)為C代碼進(jìn)行實時仿真的功能,使MATLAB在工程設(shè)計和實現(xiàn)方面具有了實用性和競爭優(yōu)勢,受到廣大工程設(shè)計人員和單位的重視。
本書第二版所用的版本是MATLAB R2006a,到現(xiàn)在已歷經(jīng)了10年的更新。與2015年前的版本相比,MATLAB
R2017a版本的很多指令都有了較大程度的更改和簡化,如矩陣的加法、減法、除法,都變?yōu)橹苯邮褂?、-、*、/和\符號,需要重新介紹。同時,新的版本幾乎涵蓋了舊版本的全部內(nèi)容,在新版本下可以打開使用舊版本編輯的軟件。
今天,MATLAB已經(jīng)走出了校園,深入到工業(yè)生產(chǎn)、科學(xué)研究等各個領(lǐng)域,成為世界范圍內(nèi)公認(rèn)的可靠性高的高級計算機(jī)編程語言,成為眾多新型項目開發(fā)和產(chǎn)品研制的首選軟件虛擬環(huán)境,也成為很多專業(yè)領(lǐng)域科技人員必須掌握的一門計算機(jī)技術(shù)。
本書介紹了MATLAB 控制與仿真工具箱的基礎(chǔ)知識和基本應(yīng)用,為學(xué)生掌握、運用MATLAB語言打下基礎(chǔ)。大學(xué)本科、?茖W(xué)生在校學(xué)習(xí)期間,可以通過學(xué)習(xí)本書內(nèi)容、輔助其更好地完成高等數(shù)學(xué)、微積分、線性代數(shù)、微分方程、數(shù)值運算、時域仿真和頻譜分析等課程的課內(nèi)外習(xí)題?刂乒こ膛c自動化類專業(yè)的本科生、研究生以及工程研究與技術(shù)人員還可利用其進(jìn)行系統(tǒng)分析、設(shè)計、仿真等方面更深入的學(xué)習(xí)和研究。在掌握本書內(nèi)容的基礎(chǔ)上,用戶還可利用它進(jìn)行二次開發(fā),自主編程,從而進(jìn)行更為廣泛、深入的研究和工程設(shè)計工作。
本書重點講述了MATLAB 的矩陣運算、符號運算、圖形功能、控制系統(tǒng)分析與設(shè)計、Simulink仿真和實時化等方面的內(nèi)容。每章都詳細(xì)介紹了MATLAB的基本語句與運算功能,給出了簡單的應(yīng)用例題以說明該語句的應(yīng)用,以及MATLAB指令表和應(yīng)用說明。部分章節(jié)給出了較為復(fù)雜的應(yīng)用例題,說明利用基本語句的再次開發(fā)過程。本書中還給出了很多控制理論與仿真方面的綜合應(yīng)用例題,豐富了MATLAB軟件的應(yīng)用。另外,還開發(fā)了MATLAB與ADAMS軟件在虛擬樣機(jī)方面的聯(lián)合應(yīng)用,進(jìn)一步擴(kuò)展了MATLAB的應(yīng)用領(lǐng)域。本書在講解中力求概念清楚,通俗易懂。
本書只涉及MATLAB在Windows環(huán)境下的應(yīng)用,用戶可自行擴(kuò)展至Unix、Macintosh等多種計算機(jī)操作系統(tǒng)。
本書程序源代碼、習(xí)題答案、課件等資料均可通過掃描本頁的二維碼關(guān)注北航理工圖書公眾號回復(fù)2747獲得。如有疑問請發(fā)送郵件至goodtextbook@126.com 或撥打010 82317036聯(lián)系圖書編輯。
本書在MATLAB中文論壇設(shè)有專門的交流版塊,供同行們暢所欲言,相關(guān)鏈接如下:
交流版塊:https://www.ilovematlab.cn/forum-271-1.html
程序源代碼下載地址:https://www.ilovematlab.cn/thread-554432-1-1.html
勘誤地址:https://www.ilovematlab.cn/thread-554433-1-1.html
本書由北京航空航天大學(xué)自動化科學(xué)與電氣工程學(xué)院自動控制系教師編寫完成。其中第1章由張平編寫,歐陽光協(xié)助;第2章由吳云潔編寫,李國飛協(xié)助;第3章由夏潔編寫,周銳協(xié)助;第4章由袁少強(qiáng)編寫,毛亦舟協(xié)助;第5章由張平、董小萌編寫,熊笑協(xié)助。作者希望本書可以成為讀者在學(xué)習(xí)、研究和工程技術(shù)開發(fā)過程中友好而實用的輔助工具,也衷心希望讀者朋友們可以將您的使用意見和改進(jìn)建議反饋給我們,作者郵箱zhp@buaa.edu.cn、xiaj@buaa.edu.cn。
作 者
2018年5月30日于北京
第1章 MATLAB入門與基本運算………1
1.1 MATLAB環(huán)境與文件管理…… 1
1.2 基本數(shù)據(jù)定義與變量管理……… 3
1.2.1 建立與查詢數(shù)據(jù)………………… 3
1.2.2 在線查詢與功能演示…………… 6
1.3 變量、數(shù)組與函數(shù)………………… 7
1.3.1 變 量………………………… 7
1.3.2 注釋和標(biāo)點…………………… 8
1.3.3 復(fù)數(shù)表示……………………… 8
1.3.4 數(shù)學(xué)函數(shù)……………………… 9
1.4 數(shù)據(jù)的輸入與輸出……………… 10
1.4.1 利用M 文件生成數(shù)據(jù)…………
10
1.4.2 save與load指令………………
10
1.4.3 低級文件的輸入與輸出………… 11
1.5 數(shù)組與矩陣運算………………… 13
1.5.1 矩陣的表示與塊操作…………… 13
1.5.2 矩陣的運算…………………… 17
1.5.3 矩陣函數(shù)……………………… 21
1.6 M 函數(shù)與M 文件………………
22
1.6.1 M 函數(shù)與M 函數(shù)文件…………
22
1.6.2 M 文件………………………… 24
1.7 多項式運算……………………… 26
1.7.1 求根及其逆運算……………… 26
1.7.2 加法、減法與乘法……………… 26
1.7.3 微分與賦值運算……………… 27
1.7.4 有理多項式…………………… 28
1.8 控制語句與邏輯運算…………… 30
1.8.1 for循環(huán)……………………… 30
1.8.2 while循環(huán)…………………… 32
1.8.3 條件語句……………………… 32
1.8.4 關(guān)系運算和邏輯運算…………… 33
1.8.5 字符運算……………………… 36
1.9 曲線擬合與插值運算…………… 39
1.9.1 曲線擬合……………………… 39
1.9.2 插值運算……………………… 40
1.10 符號運算……………………… 45
1.10.1 符號表達(dá)式…………………… 45
1.10.2 符號表達(dá)式的運算…………… 49
1.10.3 微分和積分…………………… 54
1.10.4 符號表達(dá)式畫圖……………… 56
1.10.5 符號表達(dá)式的簡化…………… 57
1.10.6 可變精度算術(shù)運算…………… 58
1.10.7 符號方程求解………………… 60
1.10.8 線性代數(shù)和符號矩陣………… 63
1.11 本章小結(jié)……………………… 67
習(xí) 題………………………………… 67
第2章
圖形與可視化……………… 69
2.1 二維繪圖的plot指令…………
69
2.2 圖形修飾與控制………………… 71
2.2.1 坐標(biāo)軸的調(diào)整………………… 71
2.2.2 文字標(biāo)示……………………… 72
2.2.3 網(wǎng)格控制……………………… 73
2.2.4 圖例注解……………………… 73
2.2.5 圖形的保持…………………… 74
2.2.6 圖形窗口的分割……………… 74
2.2.7 圖形的填充…………………… 75
2.2.8 交互式繪圖操作……………… 76
2.3 特殊坐標(biāo)二維圖形……………… 77
2.3.1 對數(shù)坐標(biāo)圖形………………… 77
2.3.2 極坐標(biāo)圖形…………………… 78
2.4 特殊二維圖形…………………… 78
2.4.1 函數(shù)圖形……………………… 78
2.4.2 餅 圖………………………… 79
2.4.3 條形圖………………………… 80
2.4.4 梯形圖………………………… 80
2.4.5 概率分布圖…………………… 81
2.4.6 向量圖………………………… 81
2.4.7 函數(shù)繪圖……………………… 82
2.5 三維圖形………………………… 83
2.5.1 基本三維圖形………………… 84
2.5.2 改變視角……………………… 85
2.5.3 特殊三維圖形………………… 86
2.6 三維數(shù)據(jù)的二維圖……………… 95
2.7 其他圖形函數(shù)…………………… 97
2.8 圖形窗編輯功能………………… 99
2.8.1 圖形窗菜單…………………… 99
2.8.2 快捷工具欄………………… 101
2.8.3 二維圖形的交互編輯示例…… 101
2.9 圖形用戶界面設(shè)計…………… 102
2.9.1 圖形窗口的生成……………… 102
2.9.2 菜單的實現(xiàn)………………… 104
2.9.3 對話框的實現(xiàn)………………… 107
2.9.4 控件設(shè)計技術(shù)………………… 108
2.10 圖形用戶界面(GUI)的應(yīng)用………111
2.10.1 控件管理工具 ……………… 114
2.10.2 控件編程設(shè)計……………… 116
2.11 動態(tài)圖形與動畫……………… 122
2.12 本章小結(jié)……………………… 123
習(xí) 題………………………………… 125
第3章
線性系統(tǒng)分析與設(shè)計…… 127
3.1 概 述………………………… 127
3.2 線性系統(tǒng)的描述……………… 127
3.2.1 連續(xù)系統(tǒng)的數(shù)學(xué)描述………… 128
3.2.2 離散系統(tǒng)的數(shù)學(xué)描述………… 133
3.3 模型之間的轉(zhuǎn)換……………… 134
3.3.1 線性系統(tǒng)模型之間的轉(zhuǎn)換…… 134
3.3.2 連續(xù)系統(tǒng)與離散系統(tǒng)之間的轉(zhuǎn)換…138
3.4 時間響應(yīng)分析………………… 142
3.4.1 脈沖響應(yīng)…………………… 143
3.4.2 對任意輸入的響應(yīng)…………… 145
3.4.3 階躍響應(yīng)…………………… 147
3.5 頻率響應(yīng)分析………………… 148
3.5.1 連續(xù)系統(tǒng)頻率特性…………… 149
3.5.2 離散系統(tǒng)頻率特性…………… 154
3.5.3 時間延遲系統(tǒng)的頻率特性…… 156
3.6 根軌跡分析…………………… 157
3.6.1 常規(guī)根軌跡………………… 158
3.6.2 廣義根軌跡………………… 158
3.6.3 零度根軌跡………………… 160
3.7 狀態(tài)反饋設(shè)計………………… 161
3.7.1 連續(xù)系統(tǒng)的狀態(tài)反饋設(shè)計…… 162
3.7.2 離散系統(tǒng)的狀態(tài)反饋設(shè)計…… 164
3.8 最優(yōu)二次型設(shè)計……………… 164
3.8.1 連續(xù)系統(tǒng)的最優(yōu)二次型設(shè)計… 165
3.8.2 離散系統(tǒng)的最優(yōu)二次型設(shè)計… 166
3.8.3 對輸出加權(quán)的最優(yōu)二次型設(shè)計……166
3.8.4 線性二次型Gauss最優(yōu)設(shè)計…
166
3.9 系統(tǒng)辨識與降階……………… 167
3.9.1 系統(tǒng)辨識…………………… 167
3.9.2 控制系統(tǒng)的模型降階………… 169
3.10 仿真例題………………………171
3.10.1 線性系統(tǒng)離散化及其頻率特性和響應(yīng)……171
3.10.2 太陽光源跟蹤系統(tǒng)的根軌跡設(shè)計……176
3.11 本章小結(jié)……………………… 182
習(xí) 題………………………………… 183
第4章 Simulink仿真環(huán)境……… 185
4.1 Simulink概述………………… 185
4.2 Simulink仿真環(huán)境及其模型庫
………………………………… 185
4.3 方框圖模型的建立和仿真…… 194
4.4 Simulink仿真環(huán)境使用說明
………………………………… 198
4.4.1 菜單功能…………………… 198
4.4.2 方框圖模型的裝飾…………… 201
4.4.3 模塊屬性的改變……………… 202
4.4.4 演示示波器………………… 203
4.5 仿真方法及計算步長的選擇… 205
4.5.1 仿真方法的選擇……………… 205
4.5.2 計算步長的選擇……………… 206
4.5.3
Simulink中對仿真方法及步長的設(shè)置……207
4.6 模塊組與模塊封裝…………… 210
4.6.1 模塊組的形成………………… 210
4.6.2 模塊封裝…………………… 212
4.7 Simulink仿真實例…………… 215
4.7.1 Simulink的Demo演示實例…… 215
4.7.2 多速率計算機(jī)控制系統(tǒng)仿真… 217
4.7.3 仿真結(jié)構(gòu)圖的參數(shù)化………… 221
4.7.4 與M 函數(shù)的組合仿真…………
222
習(xí) 題………………………………… 226
第5章 MATLAB綜合應(yīng)用實例………228
5.1 大量數(shù)據(jù)的處理……………… 228
5.2 證明歐拉矩陣為Hermit矩陣……229
5.3 基于符號語言的線性系統(tǒng)離散化……230
5.4 系統(tǒng)二次型最優(yōu)設(shè)計與仿真… 232
5.5 與ADAMS聯(lián)合的虛擬樣機(jī)設(shè)計應(yīng)用………236
5.5.1 系統(tǒng)的初步設(shè)計……………… 236
5.5.2 機(jī)械系統(tǒng)的建模與分析……… 237
5.5.3 控制系統(tǒng)設(shè)計與仿真………… 240
5.5.4 ADAMS模型導(dǎo)入Simulink環(huán)境……242
5.5.5
Simulink與ADAMS聯(lián)合仿真及結(jié)果……247
5.6 本章小結(jié)……………………… 249
后 記………………………………… 250
參考文獻(xiàn)……………………………… 251