版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MATLAB與控制工程虛擬實(shí)驗(yàn)編程1第1章MATLAB仿真基礎(chǔ)簡(jiǎn)介第2章經(jīng)典控制理論MATLAB分析第3章現(xiàn)代控制理論MATLAB分析第4章基于MATLAB的虛擬仿真實(shí)驗(yàn)第5章MATLAB虛擬實(shí)驗(yàn)案例目錄MATLAB與控制工程虛擬實(shí)驗(yàn)編程23第1章MATLAB仿真基礎(chǔ)簡(jiǎn)介1.1MATLABR2022a仿真軟件簡(jiǎn)介1.1.1MATLAB軟件MATLAB的含義是矩陣實(shí)驗(yàn)室(matrixlaboratory),主要用于處理矩陣運(yùn)算的問(wèn)題,其基本元素是向量或矩陣。在20世紀(jì)80年代,美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任CleveMoler博士為了減輕學(xué)生編程的負(fù)擔(dān),用Fortran編寫(xiě)了最早的MATLAB。1984年由Little、Moler、SteveBangert合作成立了的MathWorks公司正式把MATLAB推向市場(chǎng)。到20世紀(jì)90年代,MATLAB已成為國(guó)際控制界的標(biāo)準(zhǔn)計(jì)算軟件之一。41.1.2MATLAB特點(diǎn)1.簡(jiǎn)單易學(xué)MATLAB語(yǔ)言是一種解釋性語(yǔ)言,所實(shí)現(xiàn)的腳本程序不需要編譯就可以在MATLAB環(huán)境執(zhí)行。。2.語(yǔ)法不受限制,語(yǔ)言簡(jiǎn)潔在MATLAB中不用定義或聲明變量,如a=[12;34],就定義了a為矩陣。3.界面友好,圖形功能強(qiáng)大MATLAB具有友好用戶界面,易學(xué)易用,窗口操作環(huán)境提供了命令窗口、工作區(qū)窗口、工作區(qū)瀏覽器、數(shù)據(jù)編輯器、歷史命令窗口等。MATLAB的圖形功能強(qiáng)大,支持?jǐn)?shù)據(jù)的可視化操作,方便地顯示程序的運(yùn)行結(jié)果。它有一系列繪圖函數(shù)。4.強(qiáng)大的工具箱MATLAB包含兩個(gè)部分:核心部分和各種可選的工具箱。51.1.3MATLABR2022a集成開(kāi)發(fā)環(huán)境工具欄當(dāng)前目錄瀏覽器腳本編輯器窗口數(shù)組編輯器窗口工作區(qū)窗口命令行窗口6
“主頁(yè)”工具欄:主要提供文件、變量、代碼、Simulink、環(huán)境和資源等方面的便捷操作。
“繪圖”工具欄:在工作區(qū)選擇變量以后,“繪圖”工具欄中的圖形類(lèi)型按鈕變?yōu)榭捎?,單擊按鈕,將在命令窗口自動(dòng)添加命令,并生成對(duì)應(yīng)圖形。單擊右側(cè)下拉箭頭按鈕可以看到更多圖形類(lèi)型。7“APP”工具欄:列出了若干已經(jīng)封裝功能的應(yīng)用程序。“編輯器”工具欄:主要針對(duì)函數(shù)和腳本編輯器進(jìn)行文件、導(dǎo)航、編輯、調(diào)試和運(yùn)行等方面的輔助操作。8“命令窗口”:用于輸入臨時(shí)指令或數(shù)據(jù),運(yùn)行MATLAB函數(shù)和腳本并顯示結(jié)果的主要工具之一。
“工作區(qū)窗口”:可以通過(guò)使用函數(shù)、運(yùn)行M文件和載入已經(jīng)存在的工作區(qū)來(lái)添加變量。9
數(shù)組編輯器:可以以電子表格的形式查看和編輯一維或二維數(shù)值數(shù)組、字符串、字符串單元數(shù)組和結(jié)構(gòu)。
“當(dāng)前文件夾”目錄瀏覽器:可以搜索、查看、打開(kāi)、查找和改變MATLAB路徑和文件。10
“編輯器”窗口:MATLAB腳本、函數(shù)和類(lèi)可以在編輯器中輸入、編輯和調(diào)試。
圖形窗口:繪圖時(shí)自動(dòng)打開(kāi)圖形窗口。在該窗口中可繪制、編輯、交互和保存圖形。11111.1.4MATLABR2022a功能亮點(diǎn)MATLABR2022a版本亮點(diǎn)MATLABR2022a在其豐富的功能基礎(chǔ)上,發(fā)布了5款新的產(chǎn)品工具箱:
藍(lán)牙工具箱(BluetoothToolbox),可以仿真、分析和測(cè)試藍(lán)牙通信系統(tǒng);工業(yè)通信工具箱(IndustrialCommunicationToolbox),通過(guò)OPCUA、Modbus、MQTT和其他工業(yè)協(xié)議交換數(shù)據(jù);FPGA/SoC,該工具箱可以對(duì)DSP算法的硬件實(shí)現(xiàn)進(jìn)行建模,并通過(guò)使用HDLCoder生成可讀可綜合的HDL代碼;自動(dòng)駕駛仿真工具“RoadRunnerScenario”,可用來(lái)創(chuàng)建道路環(huán)境,還可以回放自動(dòng)駕駛仿真場(chǎng)景;無(wú)線測(cè)試臺(tái)(WirelessTestbench),提供可在現(xiàn)成的軟件定義無(wú)線電(SDR)硬件上運(yùn)行的參考應(yīng)用,用戶可以通過(guò)這些參考應(yīng)用使用無(wú)線信號(hào)進(jìn)行高速數(shù)據(jù)傳輸、捕獲和頻譜監(jiān)控。122.Simulink功能亮點(diǎn)Simulink功能更新讓用戶能夠使用新的封裝編輯器簡(jiǎn)化封裝工作流,或者使用模型引用局部求解器加速仿真,或者使用C函數(shù)模塊添加自定義C++類(lèi)。無(wú)須編寫(xiě)代碼,可以創(chuàng)建app生成可配置的UI,將文件和文件夾打包到獨(dú)立的功能樣機(jī)單元
(FMU),在Simulink報(bào)告生成器中用一個(gè)表對(duì)象匯總Simulink模型內(nèi)容。1313131.1.5控制系統(tǒng)工具箱功能亮點(diǎn)
在模型預(yù)測(cè)控制工具箱中,使用線性MPC和ADAS模塊可實(shí)現(xiàn)
MISRAC:2012合規(guī)控制器;
在非線性系統(tǒng)辨識(shí)工具箱中,基于機(jī)器學(xué)習(xí)算法可創(chuàng)建和使用回歸函數(shù)的Hammerstein-Wiener模型;
仿真設(shè)計(jì)優(yōu)化時(shí),為了更快求解耗時(shí)的優(yōu)化問(wèn)題,在響應(yīng)優(yōu)化器和參數(shù)估計(jì)器中新增替代優(yōu)化求解器;
在強(qiáng)化學(xué)習(xí)工具箱中,使用基于策略優(yōu)化智能體的環(huán)境模型或采用集中式訓(xùn)練了多個(gè)智能體的模式,可實(shí)現(xiàn)更高效的采樣和更有效的探索學(xué)習(xí);
在預(yù)測(cè)性維護(hù)工具箱中,可以使用生存模型、相似性模型和基于趨勢(shì)的模型來(lái)預(yù)測(cè)并估計(jì)機(jī)器的剩余使用壽命,為實(shí)現(xiàn)算法運(yùn)營(yíng)化,用戶可以生成
C/C++代碼以部署到邊緣,或者創(chuàng)建生產(chǎn)應(yīng)用程序以部署到云。141.2MATLAB基礎(chǔ)知識(shí)1.2.1變量與語(yǔ)句MATLAB中無(wú)須定義變量。MATLAB環(huán)境默認(rèn)的數(shù)據(jù)類(lèi)型為double數(shù)據(jù)類(lèi)型。變量命名需要遵循以下規(guī)則:1)變量必須以字母開(kāi)頭2)變量可以是任意字母、數(shù)字或下劃線混合組成3)字符長(zhǎng)度應(yīng)不超過(guò)31個(gè)4)MATLAB中變量的大小寫(xiě)是區(qū)分的MATLAB語(yǔ)句的一般形式為變量名=表達(dá)式15變量名取值eps計(jì)算機(jī)的最小數(shù)pi圓周率i或j虛數(shù)單位ans缺省變量名時(shí),將最近一次運(yùn)算結(jié)果保存到ans變量中inf計(jì)算機(jī)的最大數(shù)NaN非數(shù)字(notanumber)nargin函數(shù)的輸入變量數(shù)目nargout函數(shù)的輸出變量數(shù)目表1-1MATLAB中設(shè)置的特殊變量161.2.2變量操作命令說(shuō)
明who顯示工作區(qū)中變量whos顯示工作區(qū)中存在的變量及其大小savemydata將工作區(qū)中變量存儲(chǔ)到mydata.mat文件中l(wèi)oadmydata從mydata.mat文件中讀取變量到工作區(qū)clearA清除工作區(qū)中的所有變量或某個(gè)變量ahelp函數(shù)名查找某個(gè)函數(shù)名所對(duì)應(yīng)的幫助文件exist(‘A’)查詢當(dāng)前工作區(qū)的變量format改變數(shù)據(jù)的顯示精度表1-2變量的操作命令171.2.3文件類(lèi)型MATLAB環(huán)境下可以用3種方式執(zhí)行運(yùn)算或分析:●在MATLAB命令窗口直接執(zhí)行的指令;
●將一系列指令語(yǔ)句匯集成M腳本文件(即程序文件)來(lái)執(zhí)行;
●將算法封裝為函數(shù)(即函數(shù)文件)來(lái)執(zhí)行。181.命令行語(yǔ)句
在命令窗口中輸入并執(zhí)行,每輸入完一條命令回車(chē)后,MATLAB就立即對(duì)其編譯處理。MATLAB清晰地體現(xiàn)了類(lèi)似“演算紙”的功能。%在命令窗口輸入:>>a=1;>>b=-10;>>c=21;>>d=b*b-4*a*c;>>x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]%回車(chē)后,編譯并執(zhí)行上述語(yǔ)句后得到結(jié)果:x=73【例1】求一元二次方程x2
-10x+21=0的根。解:程序?yàn)?92.程序文件在編輯器中輸入并執(zhí)行程序文件,以.m格式進(jìn)行存取。程序文件的命名類(lèi)似變量的命名,運(yùn)行時(shí)只需在工作區(qū)中鍵入其文件名。1)M文件中的所有變量可在工作區(qū)中引用,并可在其他M文件或Simulink文件中調(diào)用。2)M腳本文件可以調(diào)用M函數(shù)。3)它沒(méi)有輸入?yún)?shù),也不返回輸出參數(shù)。20【例2】求一元二次方程x2
-5x+6=0的根。解:程序?yàn)?在編輯器中輸入:clear;a=1;b=-5;c=6;d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
%在默認(rèn)路徑下保存文件為:solveroot.m;%在命令窗口輸入solveroot,并回車(chē);%編譯并執(zhí)行上述語(yǔ)句后得到結(jié)果:x=3221function[outputArg1,outputArg2]=untitled(inputArg1,inputArg2)%UNTITLED此處顯示有關(guān)此函數(shù)的摘要%此處顯示詳細(xì)說(shuō)明outputArg1=inputArg1;outputArg2=inputArg2;end3.函數(shù)文件函數(shù)文件的功能是建立一個(gè)函數(shù),且這個(gè)函數(shù)可以像MATLAB的庫(kù)函數(shù)一樣使用。和編輯程序文件一樣,函數(shù)文件要在編輯器中輸入,以.m格式進(jìn)行保存。函數(shù)文件允許有多個(gè)輸入?yún)?shù)和多個(gè)輸出參數(shù)值,其基本格式如下:22M函數(shù)文件按照一定的規(guī)則來(lái)編寫(xiě):1)函數(shù)名和文件名必須相同。2)函數(shù)的變量都是內(nèi)部變量,與工作區(qū)的聯(lián)系只有輸入輸出變量。3)可以用global定義全局變量。4)函數(shù)文件的第一行必須包括“function”這個(gè)關(guān)鍵字。
231.3MATLAB編程基礎(chǔ)1.3.1MATLAB編程環(huán)境在主頁(yè)單擊新建腳本,或者在編輯器單擊新建,進(jìn)入MATLAB的腳本編輯器窗口。在編輯環(huán)境中,文字的不同顏色表明文字的不同屬性:綠色,表示注解語(yǔ)句,用“%”開(kāi)頭的語(yǔ)句內(nèi)容。
黑色,代表程序主體。紅色,表示屬性值的設(shè)定,用單引號(hào)括起來(lái)的內(nèi)容。藍(lán)色,表示控制流程中的關(guān)鍵字,如function、end等。
24MATLAB語(yǔ)言稱為第四代編程語(yǔ)言,其程序簡(jiǎn)潔、可讀性很強(qiáng),并且調(diào)試十分容易。和其他高級(jí)編程語(yǔ)言類(lèi)似,在使用時(shí)需要注意以下幾點(diǎn):
1)由于MATLAB是解釋性語(yǔ)言,自頂向下、順序執(zhí)行。2)善于使用符號(hào)%添加注解,增強(qiáng)程序的可讀性。3)在主程序開(kāi)頭用clear、close指令,清除工作區(qū)中的變量,關(guān)閉打開(kāi)的圖形窗口。但注意在子程序中不要用clear。4)參數(shù)值要集中放在程序的開(kāi)始部分,以便維護(hù)。5)程序盡量模塊化,即采用主程序調(diào)用子程序的方法,各模塊之間的關(guān)系盡可能簡(jiǎn)單,在功能上相對(duì)獨(dú)立;。6)充分利用Debugger來(lái)進(jìn)行程序的調(diào)試,并利用其他工具箱或圖形用戶界面(GUI)的設(shè)計(jì)技巧,將設(shè)計(jì)結(jié)果集成到一起;7)設(shè)置好MATLAB的工作路徑,以便程序運(yùn)行。1.3.2編程原則251.3.3程序流程控制語(yǔ)句MATLAB提供了條件轉(zhuǎn)移語(yǔ)句、循環(huán)語(yǔ)句等一些常用的控制語(yǔ)句。for
循環(huán)變量=起始值:步長(zhǎng):終止值循環(huán)體
end1.MATLAB循環(huán)語(yǔ)句MATLAB中可以使用兩種循環(huán)語(yǔ)句:for語(yǔ)句和while語(yǔ)句。(1)for語(yǔ)句的基本格式格式以for開(kāi)頭,以end結(jié)束。根據(jù)起始值、步長(zhǎng)、終止值,for循環(huán)已經(jīng)定義了執(zhí)行循環(huán)體的次數(shù),當(dāng)循環(huán)變量達(dá)到循環(huán)次數(shù)時(shí),循環(huán)便結(jié)束,順序執(zhí)行循環(huán)體外的控制語(yǔ)句。
26while表達(dá)式循環(huán)體endclearsum=0;i=1;while(i<=100)sum=sum+i;i=i+1;end
(2)while語(yǔ)句的基本格式格式以while開(kāi)頭,以end結(jié)束。若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否為真;若不為真,則跳出循環(huán)體,向下順序執(zhí)行循環(huán)體外的控制語(yǔ)句?!纠?】用while語(yǔ)句求解【例4】解:程序?yàn)?7if
邏輯表達(dá)式執(zhí)行語(yǔ)句end
if(條件式)條件塊語(yǔ)句組1else條件塊語(yǔ)句組2end
if(條件式1)條件塊語(yǔ)句組1
elseif
條件式2條件塊語(yǔ)句組2
┇else
條件塊語(yǔ)句組nend2.MATLAB條件轉(zhuǎn)移語(yǔ)句MATLAB中可以使用兩種條件轉(zhuǎn)移語(yǔ)句:if語(yǔ)句和switch語(yǔ)句。(1)if語(yǔ)句的基本格式if-else-end和if-elseif是if語(yǔ)句的擴(kuò)展形式,其格式為格式以if開(kāi)頭,以end結(jié)束。當(dāng)邏輯表達(dá)式的值為真時(shí),執(zhí)行該結(jié)構(gòu)中的執(zhí)行語(yǔ)句,執(zhí)行完后繼續(xù)向下進(jìn)行;若為假,則跳過(guò)。28switch
表達(dá)式(%可以是標(biāo)量或字符串)
case
值1
語(yǔ)句1
case
值2
語(yǔ)句2….
case
值n
語(yǔ)句n
otherwise
語(yǔ)句n+1
end
(2)switch語(yǔ)句的基本格式執(zhí)行方式:表達(dá)式的值和哪種情況(case)的值相同,就執(zhí)行哪種情況中的語(yǔ)句;
如果不同,就執(zhí)行otherwise中的語(yǔ)句。【例7】根據(jù)輸入變量的值來(lái)決定顯示的內(nèi)容。解:程序?yàn)?9%打開(kāi)編輯窗口編寫(xiě)M文件inputcha.mnum=input('請(qǐng)輸入一個(gè)數(shù)');switchnumcase-1disp('Iamateacher.');case0disp('Iamastudent.');case1disp('Youareateacher.');otherwisedisp('Youareastudent.');end%在命令窗口輸入并回車(chē)運(yùn)行inputcha.m,并根據(jù)提示信息輸入一個(gè)數(shù),運(yùn)行結(jié)果為>>
inputcha請(qǐng)輸入一個(gè)數(shù)1Youareateacher.301.4MATLAB矩陣及其運(yùn)算
MATLAB提供了各種矩陣的運(yùn)算與操作,既可以對(duì)矩陣整體進(jìn)行處理,也可以對(duì)矩陣的某個(gè)或某些元素進(jìn)行單獨(dú)處理。1.4.1矩陣輸入1.直接列出矩陣元素
對(duì)于比較小的簡(jiǎn)單矩陣可以使用直接排列的形式輸入,直接輸入遵循規(guī)則如下:
1)矩陣每一行的元素必須用空格或逗號(hào)分開(kāi)。
2)在矩陣中采用分號(hào)或回車(chē)表明每一行的結(jié)束。
3)整個(gè)輸入矩陣必須包含在方括號(hào)中。31>>A=[1230;4000;0500;0006];>>B=ones(4);>>C=A*B;2.通過(guò)簡(jiǎn)單運(yùn)算語(yǔ)句和函數(shù)產(chǎn)生矩陣在已知變量的基礎(chǔ)上,通過(guò)簡(jiǎn)單運(yùn)算生成新的矩陣,或者用函數(shù)生成特殊矩陣?!纠?0】使用特殊矩陣完成矩陣輸入。解:程序?yàn)?/p>
對(duì)于向量,可以按照矩陣的方法進(jìn)行輸入,也可以使用冒號(hào)“:”操作符來(lái)生成向量,格式為S1:S2:S3。其中,S1為起始值,S2為步長(zhǎng),S3為終止值。32【例11】用冒號(hào)生成向量。解:程序?yàn)閷?duì)于向量,還可以用linspace()函數(shù)生成向量,格式為linspace(n1,n2,n)%步長(zhǎng)為正值時(shí):>>A=1:2:10A=13579%步長(zhǎng)為負(fù)值時(shí):>>A=12:-2:1A=12108642>>B=linspace(1,10,5)B=1.00003.25005.50007.750010.0000【例12】使用linspace()函數(shù)生成向量。解:程序?yàn)?3%在編輯窗口編寫(xiě)M文件,并保存為matrixinput.ma=[123;400;050];b=eye(3);
%運(yùn)行matrixinput.m,將變量a和b加載到工作區(qū)中。3.在文件中建立矩陣
在編輯窗口編寫(xiě)M文件,語(yǔ)法和直接輸入法一樣;之后,保存并運(yùn)行。這樣數(shù)據(jù)便加載到工作區(qū)中,可以直接使用這些變量?!纠?4】通過(guò)編寫(xiě)M文件加載變量。解:程序?yàn)?44.從外部的數(shù)據(jù)文件中裝入很多數(shù)據(jù)文件都可加載到MATLAB,如*.xls、*.mat數(shù)據(jù)文件等,可將數(shù)據(jù)加載到工作區(qū)。351.4.2矩陣運(yùn)算運(yùn)算符說(shuō)明運(yùn)算符說(shuō)明+加法運(yùn)算^乘方運(yùn)算-減法運(yùn)算.*點(diǎn)乘法運(yùn)算*乘法./點(diǎn)除法運(yùn)算/右除.^點(diǎn)冪方\左除=賦值(1)數(shù)學(xué)運(yùn)算符
MATLAB提供了加減乘除、賦值、乘方、點(diǎn)運(yùn)算等數(shù)學(xué)運(yùn)算符。MATLAB提供的運(yùn)算符有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符。它們的處理順序依次為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符。1.運(yùn)算符3636運(yùn)算符說(shuō)明運(yùn)算符說(shuō)明<
小于<=小于等于>
大于>=大于等于==等于~=不等于
(2)關(guān)系運(yùn)算符MATLAB提供了小于、大于、等于、小于等于、大于等于、不等于關(guān)系運(yùn)算符。MATLAB的關(guān)系操作符可以用來(lái)比較兩個(gè)大小相同的矩陣,或者比較一個(gè)矩陣和一個(gè)標(biāo)量。比較兩個(gè)元素大小時(shí),結(jié)果是1表明真,結(jié)果是0表明為假。37
(3)邏輯運(yùn)算符
MATLAB提供了與邏輯、或邏輯、非邏輯操作的邏輯運(yùn)算符。邏輯運(yùn)算結(jié)果信息也用“0”和“1”表示,邏輯運(yùn)算符認(rèn)定任何非零元素都表示為真。結(jié)果是1表示為真,結(jié)果是0表示為假。運(yùn)算符說(shuō)明&與|或~非382.矩陣運(yùn)算
(1)加減法運(yùn)算
如果兩個(gè)矩陣維數(shù)相同時(shí),可以使用運(yùn)算符“+”和“-”直接相加減;如果兩個(gè)矩陣維數(shù)不相同時(shí),MATLAB將給出錯(cuò)誤提示信息。MATLAB還允許標(biāo)量和任意大小的矩陣相加減。
(2)矩陣乘法
如果前一個(gè)矩陣的列數(shù)等于后一個(gè)矩陣的行數(shù),則這兩個(gè)矩陣是可乘的,可以使用運(yùn)算符“*”直接相乘。MATLAB還允許標(biāo)量和任意大小的矩陣相乘。
(3)除法運(yùn)算
矩陣的除法有兩種運(yùn)算符“\”和“/”,分別表示左除和右除。
(4)矩陣的乘方
矩陣的乘方運(yùn)算符為“^”。一個(gè)方陣的乘方運(yùn)算可以用A^P來(lái)表示。P可為正整數(shù)、負(fù)整數(shù)或分?jǐn)?shù)。
39
(5)點(diǎn)運(yùn)算
運(yùn)算符為“.”,可以是點(diǎn)乘、點(diǎn)除或點(diǎn)乘方運(yùn)算。兩個(gè)矩陣對(duì)應(yīng)元素的直接運(yùn)算,要求矩陣維數(shù)相同。
(6)轉(zhuǎn)置
記作A',若含有復(fù)數(shù)元素,先對(duì)各個(gè)元素進(jìn)行轉(zhuǎn)置,然后再逐項(xiàng)求取其共軛復(fù)數(shù)值。
(7)矩陣的翻轉(zhuǎn)處理
MATLAB提供了一些矩陣翻轉(zhuǎn)處理的特殊命令。
(8)矩陣的塊操作
使用運(yùn)算符“:”,可以對(duì)矩陣的元素更改、插入子塊、提取子塊、重排子塊、擴(kuò)大維數(shù)等操作。
(9)矩陣的特征參數(shù)運(yùn)算
(10)多項(xiàng)式額運(yùn)算401.5
MATLAB繪圖功能MATLAB具有非常強(qiáng)大的二維和三維圖形繪制功能,尤其擅長(zhǎng)將各種科學(xué)運(yùn)算結(jié)果的可視化,1.5.1二維繪圖1.plot函數(shù)功能:用來(lái)繪制二維曲線。格式:plot(x,y);plot(x,y1,option1,x,y2,option2,x,y3,…)選項(xiàng)意義選項(xiàng)意義‘-’實(shí)線‘--’虛線‘:’點(diǎn)線‘-.’點(diǎn)劃線‘r’紅色‘g’綠色‘b’藍(lán)色‘y’黃色‘*’用星號(hào)繪制各個(gè)數(shù)據(jù)點(diǎn)‘.’用點(diǎn)號(hào)繪制各個(gè)數(shù)據(jù)點(diǎn)‘o’用圓圈繪制各個(gè)數(shù)據(jù)點(diǎn)‘x’用叉號(hào)繪制各個(gè)數(shù)據(jù)點(diǎn)‘+’用加號(hào)繪制各個(gè)數(shù)據(jù)點(diǎn)‘D’用菱形繪制各個(gè)數(shù)據(jù)點(diǎn)412.axis函數(shù)功能:坐標(biāo)軸的形式和刻度.格式:格式說(shuō)
明axis([xminxmaxyminymax])設(shè)定坐標(biāo)軸最大值和最小值axis(‘a(chǎn)uto’)將坐標(biāo)系統(tǒng)返回到自動(dòng)默認(rèn)狀態(tài)axis(‘square’)將當(dāng)前圖形設(shè)置為方形axis(‘equal’)兩個(gè)坐標(biāo)因子設(shè)成相等axis(‘ij’)使用笛卡兒坐標(biāo)系axis(‘xy’)使用“matrix”坐標(biāo)系,即坐標(biāo)原點(diǎn)在左上方axis(‘off’)關(guān)閉坐標(biāo)系統(tǒng)axis(‘on’)顯示坐標(biāo)系統(tǒng)set(gca,’xtick’,標(biāo)示向量)按照標(biāo)示向量設(shè)置x軸的刻度標(biāo)示set(gca,’xticklabel’,’字符串|字符串…’)按照字符串設(shè)置x軸的刻度標(biāo)注42格式說(shuō)明title(‘字符串’)在所畫(huà)圖形最上端顯示說(shuō)明該圖形標(biāo)題字符串。xlabel(‘字符串’)設(shè)置x坐標(biāo)軸的名稱ylabel(‘字符串’)設(shè)置y坐標(biāo)軸的名稱text(x,y,‘字符串’)在圖形的指定坐標(biāo)位置(x,y)處,標(biāo)示單引號(hào)括起來(lái)的字符串。gtext(‘字符串’)利用鼠標(biāo)在圖形的某一位置標(biāo)示字符串。格式說(shuō)明gridon在所畫(huà)出的圖形坐標(biāo)中加入柵格gridoff除去圖形坐標(biāo)中的柵格3.坐標(biāo)的標(biāo)注、網(wǎng)格及圖例說(shuō)明圖形的標(biāo)注格式:
當(dāng)在一個(gè)圖形窗口繪制多幅圖形時(shí),可以使用圖例注解說(shuō)明命令,其命令格式為legend(’字符串1’,’字符串2’,…,’字符串n’)legendoff網(wǎng)格控制格式:434.圖形的控制與操作(1)圖形保留開(kāi)關(guān)holdon:把當(dāng)前圖形保持在屏幕上不變,同時(shí)允許在這個(gè)坐標(biāo)內(nèi)繪制另外一個(gè)圖形。holdoff:使新圖覆蓋舊的圖形。clg:清除圖形窗口。
(2)建立圖形窗口figure:按照順序創(chuàng)建圖形窗口。figure(n):打開(kāi)不同的圖形窗口,在當(dāng)前窗口繪制圖形。
(3)建立子坐標(biāo)系統(tǒng)subplot(m,n,p):將當(dāng)前繪圖窗口分割成m行n列,并指定在第p個(gè)編號(hào)區(qū)域?yàn)楫?dāng)前繪圖區(qū)域。區(qū)域大編號(hào)原則是“先上后下,先左后右”。m,n,k前面的逗號(hào)可以省略。445.其他的二維繪圖命令semilogx(x,y,'option'):繪制以x軸為對(duì)數(shù)坐標(biāo)(以10為底),y軸為線性坐標(biāo)的半對(duì)數(shù)坐標(biāo)圖形。semiology(x,y,'option'):繪制以y軸為對(duì)數(shù)坐標(biāo)(以10為底),x軸為線性坐標(biāo)的半對(duì)數(shù)坐標(biāo)圖形。polar(theta,rho):繪制極坐標(biāo)圖形。其中,theta為相角,rho為對(duì)應(yīng)的半徑。loglog(x,y,'option'):繪制兩個(gè)軸都為對(duì)數(shù)間隔的圖形。bar(x,y,'option'):繪制棒圖。451.5.2三維繪圖1.plot3函數(shù)
功能:繪制三維曲線。
格式:plot3(x,y,z,選項(xiàng))。
說(shuō)明:x、y、z為維數(shù)相同的向量,分別存儲(chǔ)曲線的三個(gè)坐標(biāo)的值,選項(xiàng)的意義同plot()函數(shù)。2.mesh函數(shù)
功能:繪制三維網(wǎng)格圖。
格式:mesh(x,y,z,c)。
說(shuō)明:x、y控制x和y軸坐標(biāo),矩陣z是由(x,y)求得z軸坐標(biāo),(x,y,z)組成了三維空間的網(wǎng)格點(diǎn);c用于控制網(wǎng)格點(diǎn)顏色。
3.surf函數(shù)
功能:繪制三維曲面圖。
格式:surf(x,y,z)。
說(shuō)明:x、y控制x和y軸坐標(biāo),矩陣z是由(x,y)求得的曲面上z軸坐標(biāo)。各線條之間的補(bǔ)面用顏色填充。461.6Simulink動(dòng)態(tài)仿真集成環(huán)境1.6.1Simulink簡(jiǎn)介
在工程實(shí)際中,控制系統(tǒng)的結(jié)構(gòu)往往很復(fù)雜,如果不借助專(zhuān)用的系統(tǒng)建模軟件,則很難準(zhǔn)確地把一個(gè)控制系統(tǒng)的復(fù)雜模型輸入計(jì)算機(jī),對(duì)其進(jìn)行進(jìn)一步的分析與仿真。
1990年,MathWorks軟件公司為MATLAB提供了新的控制系統(tǒng)模型圖輸入與仿真工具:SIMULAB。1992年正式將該軟件更名為Simulink。該名稱表明了軟件系統(tǒng)的兩個(gè)主要功能:Simu(仿真)和Link(連接)。即,該軟件可以利用鼠標(biāo)在模型窗口上繪制出所需要的控制系統(tǒng)模型(以.mdl/.slx文件進(jìn)行存取),然后利用Simulink提供的功能來(lái)對(duì)系統(tǒng)進(jìn)行仿真和分析。471.Simulink的特點(diǎn)(1)圖形化仿真(2)交互式仿真(3)擴(kuò)展與定制(4)分層的建模方式48
2.進(jìn)入Simulink操作環(huán)境1)單擊MATLAB主頁(yè)工具欄的Simulink圖標(biāo)2)在命令窗口鍵入“simulink”命令491.6.2Simulink功能模塊常用模塊庫(kù)(CommonlyUsedBlocks)連續(xù)系統(tǒng)(Continuous)模塊庫(kù)非連續(xù)系統(tǒng)(Discontinuities)模塊庫(kù)離散系統(tǒng)(Discrete)模塊庫(kù)邏輯與位運(yùn)算(LogicalandBitOperations)模塊庫(kù)數(shù)學(xué)運(yùn)算(MathOperations)模塊庫(kù)接收(Sinks)模塊庫(kù)信號(hào)源(Sources)模塊庫(kù)其他模塊庫(kù)501.6.3Simulink基本操作1.模塊的編輯(1)選取模塊
當(dāng)在模塊庫(kù)中選中某個(gè)模塊時(shí),單擊模塊;在模塊周邊用藍(lán)色框填充顯示選中時(shí),可對(duì)該模塊進(jìn)行操作。(2)復(fù)制、刪除模塊
在模塊庫(kù)中選取模塊后,可以直接用鼠標(biāo)左鍵拖拽至仿真操作環(huán)境中,釋放模塊,該模塊就放置在該窗口下。如果在仿真操作窗口下選中模塊后,可直接用快捷鍵Ctrl+C和Ctrl+V復(fù)制模塊。選中模塊,按“Delete”鍵即可刪除選中模塊。51(3)模塊外形調(diào)整
在仿真操作窗口選中模塊后,將鼠標(biāo)移動(dòng)至外框的四個(gè)角時(shí),鼠標(biāo)變成可移動(dòng)模式,此時(shí)單擊鼠標(biāo)左鍵,可以調(diào)整模塊的大小。
為了能夠順序連接功能模塊的輸入和輸出端,功能模塊有時(shí)需要轉(zhuǎn)向。選中模塊,用鼠標(biāo)右鍵彈出菜單單擊Rotate&Flip,可以旋轉(zhuǎn)模塊。(4)模塊名的處理
在仿真操作窗口中,每個(gè)模塊都有名稱,表示該模塊的作用,可以在名稱處單擊修改。如果想隱藏名稱,選中模塊,用鼠標(biāo)右鍵彈出菜單單擊Rotate&Flip中的FlipBlockName,便可隱藏。522.模塊的連接(1)連線
根據(jù)仿真系統(tǒng)框圖,用鼠標(biāo)單擊并移動(dòng)所需功能模塊到合適的位置,將鼠標(biāo)移到有關(guān)功能模塊的輸出端,鼠標(biāo)變成十字形,移動(dòng)時(shí)出現(xiàn)虛線;到達(dá)所需輸入端時(shí),釋放鼠標(biāo)左鍵,相應(yīng)的連接線出現(xiàn)。(2)分支
按住Ctrl鍵,并在要建立分支的地方用鼠標(biāo)拉出,鼠標(biāo)即變成十字形并移動(dòng)連線。當(dāng)連線需要轉(zhuǎn)彎時(shí),釋放鼠標(biāo),并在釋放處鼠標(biāo)指針變成圓形。
如果需要連線發(fā)生折彎,按住Shift鍵,再用鼠標(biāo)在要折彎的線處單擊一下,就會(huì)出現(xiàn)圓圈,表示折點(diǎn),利用折點(diǎn)就可以改變線的形狀。533.模塊的參數(shù)設(shè)置
Simulink仿真操作環(huán)境中的大部分模塊都需要進(jìn)行模塊參數(shù)設(shè)置,只要用鼠標(biāo)雙擊要設(shè)置的模塊,或者單擊鼠標(biāo)右鍵選BlockParameters便打開(kāi)模塊參數(shù)對(duì)話框。
4.仿真參數(shù)設(shè)置
在仿真環(huán)境下,單擊鼠標(biāo)右鍵在彈出菜單中選擇ModelConfigurationParameters或用快捷鍵Ctrl+E打開(kāi)參數(shù)設(shè)置對(duì)話框,對(duì)系統(tǒng)仿真參數(shù)進(jìn)行設(shè)置。有Solver、DataImport/Export、MathandDataTypes、Diagnostics、HardwareImplementation等11個(gè)頁(yè)面選項(xiàng)。Solver頁(yè)面,允許用戶設(shè)置仿真的開(kāi)始和結(jié)束時(shí)間,選擇解法器,說(shuō)明解法器參數(shù),以及選擇一些輸出選項(xiàng)。DataImport/Export頁(yè)面,管理輸入輸出數(shù)據(jù)與MATLAB工作區(qū)的交互。Diagnostics頁(yè)面,允許用戶選擇Simulink仿真中顯示的警告信息的等級(jí)。545.啟動(dòng)仿真●保存仿真模型為*.mdl,也可保存成*.slx格式。
●設(shè)置仿真參數(shù)和選擇解法器之后,選擇工具條上的按鈕Run啟動(dòng)仿真?!癯酥苯釉赟imulink環(huán)境下啟動(dòng)仿真外,還可以在MATLAB命令窗口中,利用sim命令語(yǔ)句來(lái)仿真系統(tǒng),格式為SimOut=sim('model',Parameters)556.仿真分析●利用示波器模塊(Scope)得到結(jié)果?!窭幂敵鼋涌谀KOut1得到輸出結(jié)果??梢赃x定I/O頁(yè)面的時(shí)間變量和輸出變量;也可以不選定此頁(yè)面選項(xiàng),此時(shí)一定采用外部命令sim進(jìn)行仿真●通過(guò)將數(shù)據(jù)傳送到工作區(qū)模塊(ToWorkspace)得到輸出結(jié)果,時(shí)鐘信號(hào)是必須的,以便繪制輸出時(shí)間曲線。56【例17】仿真框圖和輸出響應(yīng)曲線57在控制系統(tǒng)的研究中,控制系統(tǒng)的數(shù)學(xué)模型有著相當(dāng)重要的地位。要對(duì)系統(tǒng)進(jìn)行仿真處理,首先需要知道系統(tǒng)的數(shù)學(xué)模型,然后對(duì)系統(tǒng)進(jìn)行仿真。同樣,知道了系統(tǒng)的模型,才可以在此基礎(chǔ)上設(shè)計(jì)一個(gè)合適的控制器,使得系統(tǒng)響應(yīng)達(dá)到預(yù)期的效果,從而符合工程實(shí)際的需要。2.1經(jīng)典控制系統(tǒng)數(shù)學(xué)模型在線性系統(tǒng)理論中,一般常用的數(shù)學(xué)模型形式有,傳遞函數(shù)模型(系統(tǒng)的外部模型)、狀態(tài)方程模型(系統(tǒng)的內(nèi)部模型)、零極點(diǎn)增益模型和部分分式模型等。這些模型之間都有著內(nèi)在的聯(lián)系,可以相互進(jìn)行轉(zhuǎn)換。第2章經(jīng)典控制理論MATLAB分析582.1.1數(shù)學(xué)模型的MATLAB指令
1.微分方程模型微分方程是控制系統(tǒng)模型的基礎(chǔ)。一般來(lái)講,利用機(jī)械學(xué)、電學(xué)、力學(xué)等物理規(guī)律,便可以得到控制系統(tǒng)的動(dòng)態(tài)方程。對(duì)于線性定常連續(xù)系統(tǒng),這些方程是常系數(shù)的線性微分方程。
如果已知輸入量及變量的初始條件,對(duì)微分方程進(jìn)行求解,就可以得到系統(tǒng)輸出量的表達(dá)式,并由此對(duì)系統(tǒng)進(jìn)行性能分析。
(1)diff函數(shù)
功能:對(duì)函數(shù)求導(dǎo)。
格式:diff(fun,x,n)。
說(shuō)明:函數(shù)fun對(duì)x求n階導(dǎo)數(shù)。59【例1】,求解:程序?yàn)?gt;>symsx;
%定義x符號(hào)變量>>f=exp(-x)*sin(x);
%定義函數(shù)f>>f1=diff(f,x,2);
%函數(shù)fun對(duì)x求2階導(dǎo)數(shù)>>f1f1=
-2*exp(-x)*cos(x)。(2)dslove函數(shù)功能:對(duì)微分方程求解。格式:[y1,y2,…]=dslove('f1','f2',…,'cond1','cond2',…)。說(shuō)明:在初始條件下,求解微分方程的解。
【例2】見(jiàn)書(shū)中圖2-1所示的RC濾波電路,輸入電壓為5V,電容初始電壓分別為0V和1V時(shí),分別求解時(shí)間解。61程序?yàn)?gt;>y1=dsolve('0.1*Dc+c=5',
'c(0)=1');%求電容的初始電壓1V時(shí),微分方程的解y1=5-4*exp(-10*t)>>y2=dsolve('0.1*Dc+c=5',
'c(0)=0');%求電容的初始電壓0V時(shí),微分方程的解y2=5-5*exp(-10*t)輸出響應(yīng)為62
2.傳遞函數(shù)模型
(1)tf函數(shù)
功能:建立系統(tǒng)的傳遞函數(shù)模型。
格式:sys=tf(num,den)。
對(duì)線性定常系統(tǒng),式中s的系數(shù)均為常數(shù),且an不等于零,系統(tǒng)在MATLAB中可以方便地由分子和分母系數(shù)構(gòu)成的兩個(gè)向量唯一地確定出來(lái),這兩個(gè)向量分別用num和den表示,即
num=[bm,bm-1
,…,b1,b0]
den=[an,an-1
,…,a1,a0]注意,它們都是按s的降冪進(jìn)行排列的。
m≤n633.零極點(diǎn)增益模型zpk函數(shù)功能:建立系統(tǒng)的零極點(diǎn)增益模型。格式:sys=zpk(z,p,k)。
式中,k為系統(tǒng)增益;zi為零點(diǎn);pj為極點(diǎn)。
在MATLAB中,零極點(diǎn)增益模型用[z,p,k]矢量組表示,即
z=[z1;z2;…;zm]
p=[p1;p2;...;pn]
k=[k]m≤n64
【例5】SISO系統(tǒng)的零極點(diǎn)增益模型為在MATLB中試建立該系統(tǒng)的零極點(diǎn)增益模型。
解:程序?yàn)槿绻IMO系統(tǒng)的零極點(diǎn)增益模型,可以采用串聯(lián)的SISO系統(tǒng)和單元數(shù)組方法。%方法1:直接用函數(shù)zpk>>z=1;p=[1+i1-i];k=2;>>h=zpk(z,p,k)
h=2(s-1)--------------(s^2-2s+2)Continuous-timezero/pole/gainmodel.%方法2:定義拉普拉斯變量s>>s=zpk('s');>>H=2*(s-1)/((s-(1+i))*(s-(1-i)))
H=2(s-1)--------------(s^2-2s+2)Continuous-timezero/pole/gainmodel.65
【例6】一復(fù)雜系統(tǒng)的傳遞函數(shù)模型為試建立該系統(tǒng)的零極點(diǎn)增益模型。
解:程序?yàn)?方法1:串聯(lián)SISO系統(tǒng)>>clear>>h11=zpk(1,-1,1);>>h12=zpk([],[],0);>>h21=zpk([],0,-1);>>h22=zpk(0,[1,2],1);>>H=[h11,h12;h21,h22]%方法2:單元數(shù)組>>Z={1,[];[],0};>>P={-1,[];0,[1,2]};>>K=[1,0;-1,1];>>h=zpk(Z,P,K)(略)66
4.部分分式模型
(1)residue函數(shù)
功能:建立系統(tǒng)的部分分式形式。
格式:[r,p,h]=residue(num,den)。
向量num和den是按s的降冪排列的多項(xiàng)式系數(shù),部分分式展開(kāi)后,余數(shù)返回到向量r,極點(diǎn)返回到列向量p,常數(shù)項(xiàng)返回到h。
【例7】已知系統(tǒng)的傳遞函數(shù)模型為在MATLAB中試建立該系統(tǒng)的部分分式模型。67
5.二階系統(tǒng)模型
(1)ord2
功能:建立標(biāo)準(zhǔn)二階系統(tǒng)。
格式:[num,den]=ord2(wn,z),或者G=wn^2*tf(num,den)。
說(shuō)明:利用固有頻率和阻尼比可以生成分子系數(shù)為1的二階系統(tǒng),再乘以wn2即可得到規(guī)范的標(biāo)準(zhǔn)二階系統(tǒng)模型,即
【例8】在MATLAB中,試生成固有頻率wn=5、阻尼系數(shù)z=0.8二階系統(tǒng)模型。解:程序?yàn)?gt;>clear>>wn=5;z=0.8;>>[n,d]=ord2(wn,z);>>h=wn^2*tf(n,d)682.1.2模型間的相互轉(zhuǎn)換
在進(jìn)行系統(tǒng)分析研究時(shí),往往根據(jù)不同的要求選擇不同形式的系統(tǒng)數(shù)學(xué)模型,因此經(jīng)常要在不同形式數(shù)學(xué)模型之間相互轉(zhuǎn)換,下面介紹幾種模型轉(zhuǎn)換函數(shù)。
1.tf2zp
功能:將系統(tǒng)的傳遞函數(shù)模型轉(zhuǎn)換為零極點(diǎn)增益模型。
格式:[z,p,k]=tf2zp(num,den)。
說(shuō)明:由傳遞函數(shù)模型獲得零極點(diǎn)增益模型。
2.zp2tf
功能:將系統(tǒng)零極點(diǎn)增益模型轉(zhuǎn)換為傳遞函數(shù)模型。
格式:[num,den]=zp2tf(z,p,k)。
說(shuō)明:zp2tf函數(shù)將系統(tǒng)零極點(diǎn)模型變換為傳遞函數(shù)形式。
3.residue
功能:將系統(tǒng)部分分式模型與傳遞函數(shù)模型相互轉(zhuǎn)換。
格式:[num,den]=residue(r,p,k),或者[r,p,k]=residue(num,den)。
說(shuō)明:residue函數(shù)將系統(tǒng)部分分式模型與傳遞函數(shù)形式之間進(jìn)行轉(zhuǎn)換。69
【例9】生成下列系統(tǒng)的零極點(diǎn)增益模型,并轉(zhuǎn)換成部分分式模型形式:>>z=[0;-3];p=[-8,-13];k=5;>>[num,den]=zp2tf(z,p,k);>>[r,p,h]=residue(num,den)解:程序?yàn)榭傻玫较到y(tǒng)的部分分式模型形式為702.1.3控制系統(tǒng)的典型連接
在一般情況下,控制系統(tǒng)常用若干個(gè)環(huán)節(jié)通過(guò)串聯(lián)、并聯(lián)和反饋連接的方式組成。為了能對(duì)在各種連接模式下的系統(tǒng)進(jìn)行分析,就需要對(duì)系統(tǒng)的模型進(jìn)行適當(dāng)?shù)奶幚怼T贛ATLAB的控制系統(tǒng)工具箱中,提供了針對(duì)控制系統(tǒng)的簡(jiǎn)單模型進(jìn)行連接的函數(shù)。
1.series函數(shù)
功能:將兩個(gè)線性模型串聯(lián)形成新的系統(tǒng)。
格式:sys=series(sys1,sys2),或者
[num,den]=series(num1,den1,num2,den2)。
說(shuō)明:將兩個(gè)串聯(lián)的系統(tǒng)形成新的系統(tǒng)。
2.parallel函數(shù)
功能:將兩個(gè)線性模型并聯(lián)形成新的系統(tǒng)。
格式:sys=parallel(sys1,sys2),或者[num,den]=parallel(num1,den1,num2,den2)。
說(shuō)明:將兩個(gè)并聯(lián)的系統(tǒng)形成新的系統(tǒng)。71
反饋
3.feedback函數(shù)
功能:將兩個(gè)線性模型反饋形成新的系統(tǒng)。
格式:sys=feedback(sys1,sys2,sign),或者
[num,den]=feedback(num1,den1,num2,den2,sign)。
說(shuō)明:將兩個(gè)反饋連接或部分反饋連接的系統(tǒng)形成新的系統(tǒng)。sign默認(rèn)為負(fù),即sign=-1。如果為正反饋,則sign=+1。并聯(lián)72
特別地,對(duì)于單位反饋系統(tǒng),MATLAB提供了更簡(jiǎn)單的處理函數(shù)cloop(
),其調(diào)用格式為[num,den]=cloop(num1,den1,sign)。
【例10】已知系統(tǒng)框圖,求系統(tǒng)的傳遞函數(shù)。
系統(tǒng)框圖732.2系統(tǒng)時(shí)域分析2.2.1時(shí)域分析的常用命令
控制系統(tǒng)的性能指標(biāo),如上升時(shí)間、超調(diào)量、峰值時(shí)間、過(guò)渡過(guò)程時(shí)間及穩(wěn)態(tài)誤差等,都能從時(shí)間響應(yīng)上反映出來(lái)。響應(yīng)是指在某種典型的輸入函數(shù)作用下對(duì)象的響應(yīng)。控制系統(tǒng)常用的輸入函數(shù)為單位階躍函數(shù)和脈沖激勵(lì)函數(shù)。
1.gensig函數(shù)
功能:產(chǎn)生輸入信號(hào)。
格式:[u,t]=gensig(type,tau),或者[u,t]=gensig(type,tau,Tf,Ts)。
說(shuō)明:生成任意信號(hào)函數(shù)。第一式產(chǎn)生一個(gè)類(lèi)型為type的信號(hào)序列u(t),周期為tau。type為標(biāo)識(shí)字符串之一。其中,sin為正弦波,square為方波,pulse為脈沖序列。第二式同時(shí)還定義信號(hào)序列u(t)的持續(xù)時(shí)間Tf和采樣時(shí)間Ts。742.step函數(shù)
功能:連續(xù)系統(tǒng)的單位階躍響應(yīng)。
格式:y=step(num,den,t),或者[y,x,t]=step(num,den)。3.impulse函數(shù)
功能:連續(xù)系統(tǒng)的單位脈沖響應(yīng)。
格式:y=impulse(num,den,t),或者[y,x,t]=impulse(num,den)。
4.initial函數(shù)功能:連續(xù)系統(tǒng)的零輸入響應(yīng)。格式:initial(sys,x0)。
5.lsim函數(shù)功能:連續(xù)系統(tǒng)的任意輸入響應(yīng)。格式:lsim(num,den,u,t),或者lsim(sys,u,t,x0)。
75【例11】已知系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為求系統(tǒng)在單位負(fù)反饋下的脈沖響應(yīng)。
【例12】已知某典型二階系統(tǒng)的傳遞函數(shù)為求系統(tǒng)的階躍響應(yīng)曲線。76【例13】已知某系統(tǒng)的傳遞函數(shù)為當(dāng)輸入信號(hào)為u(t)=1(t)+t[1(t)],求系統(tǒng)的輸出響應(yīng)曲線。772.2.2線性時(shí)不變系統(tǒng)瀏覽器工具
MATLAB提供了一個(gè)線性時(shí)不變系統(tǒng)瀏覽器工具LTIViewer。在該環(huán)境下可以輸入系統(tǒng)模型,完成系統(tǒng)的分析與線性化處理。在命令窗口下鍵入ltiview,可進(jìn)入LTIViewer環(huán)境。瀏覽器工具LTIViewer環(huán)境78
LTIViewer命令菜單及窗口設(shè)置
1.File菜單
2.Edit菜單
3.屬性設(shè)置瀏覽器工具File菜單瀏覽器工具Edit菜單79
【例14】已知某系統(tǒng)的傳遞函數(shù)為求當(dāng)輸入信號(hào)為u(t)=1(t)+t[1(t)],使用LTIViewer工具獲得系統(tǒng)的輸出響應(yīng)曲線。
解:先在命令窗口定義系統(tǒng)模型和輸入信號(hào),然后在LTIViewer工具中導(dǎo)入模型和輸入信號(hào)即可進(jìn)行仿真。
在“File”菜單中選擇“Import”,導(dǎo)入系統(tǒng)對(duì)象模型,因?yàn)槎x的模型已經(jīng)存在于工作區(qū),故選擇在工作區(qū)的模型h句柄。
在右鍵屬性頁(yè)設(shè)置中,“PlotTypes”中選擇“LinearSimulation”后,在屬性設(shè)置中選擇“InputData”,打開(kāi)仿真工具箱,單擊“ImportTime”選擇時(shí)間變量t導(dǎo)入。單擊“ImportSignal”,從工作區(qū)導(dǎo)入輸入信號(hào)u,導(dǎo)入成功后設(shè)置時(shí)間變量。單擊“Simulate”,獲得系統(tǒng)的輸出響應(yīng)曲線,與采用lsim命令仿真曲線完全相同。80導(dǎo)入系統(tǒng)模型
導(dǎo)入輸入信號(hào)設(shè)置時(shí)間變量輸出響應(yīng)812.3系統(tǒng)根軌跡分析
根軌跡分析方法是分析和設(shè)計(jì)線性定常控制系統(tǒng)的圖解方法,使用十分簡(jiǎn)便。根軌跡法可以對(duì)系統(tǒng)進(jìn)行各種性能分析,如穩(wěn)定性、穩(wěn)態(tài)性能和動(dòng)態(tài)性能。2.3.1根軌跡分析常用命令
1.pole函數(shù)
功能:計(jì)算系統(tǒng)極點(diǎn)。
格式:p=pole(sys)。
2.pzmap函數(shù)
功能:繪制系統(tǒng)零極點(diǎn)。
格式:pzmap(sys),或者[p,z]=pzmap(sys)。
3.rlocus函數(shù)
功能:繪制系統(tǒng)根軌跡。
格式:rlocus(sys),或者rlocus(a,b,c,d),或者rlocus(num,den)。
4.rlocfind函數(shù)
功能:計(jì)算給定根的根軌跡增益。
格式:[k,p]=rlocfind(sys),或者[k,p]=rlocfind(a,b,c,d),或者[k,p]=rlocfind(num,den)。82
【例15】已知某負(fù)反饋系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為試?yán)L制系統(tǒng)根軌跡,并分析系統(tǒng)穩(wěn)定的k值范圍。系統(tǒng)根軌跡圖832.3.2系統(tǒng)的穩(wěn)定性
穩(wěn)定性是指系統(tǒng)在使它偏離穩(wěn)定平衡狀態(tài)的擾動(dòng)消除之后,系統(tǒng)能夠以足夠的精度逐漸恢復(fù)到原來(lái)的狀態(tài),這時(shí)稱系統(tǒng)是穩(wěn)定的或具有穩(wěn)定性。穩(wěn)定性是控制系統(tǒng)的固有特性,取決于系統(tǒng)本身的結(jié)構(gòu)和參數(shù),與輸入無(wú)關(guān)。線性系統(tǒng)穩(wěn)定的條件是其特征根均具有負(fù)實(shí)部。
判定方法
1.roots函數(shù)
功能:計(jì)算系統(tǒng)特征方程的根。
格式:roots(p)。
2.eig函數(shù)
功能:計(jì)算系統(tǒng)特征值。
格式:eig(A),或者[V,D]=eig(A)。
3.rlocus函數(shù)
功能:繪制系統(tǒng)根軌跡。
格式:rlocus(sys),或者rlocus(a,b,c,d),或者rlocus(num,den)。
84
【例18】某負(fù)反饋系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為當(dāng)k=1.5時(shí),計(jì)算在輸入u=2+2t時(shí)的系統(tǒng)穩(wěn)態(tài)誤差。2.3.3系統(tǒng)的穩(wěn)態(tài)誤差
穩(wěn)態(tài)誤差為期望的穩(wěn)態(tài)輸出量與實(shí)際的穩(wěn)態(tài)輸出量之差,控制系統(tǒng)的穩(wěn)態(tài)誤差越小說(shuō)明控制精度越高。系統(tǒng)誤差響應(yīng)852.4系統(tǒng)頻域分析
頻域分析法,是應(yīng)用頻率特性來(lái)研究控制系統(tǒng)的一種典型方法,是一種圖解分析法,是通過(guò)系統(tǒng)開(kāi)環(huán)頻率特性的圖形來(lái)分析閉環(huán)系統(tǒng)性能,并方便地分析出系統(tǒng)參數(shù)對(duì)系統(tǒng)性能的影響。
頻率響應(yīng)是指系統(tǒng)對(duì)正弦輸入信號(hào)的穩(wěn)態(tài)響應(yīng),可用來(lái)研究系統(tǒng)的頻率行為。從頻率響應(yīng)中可以得出帶寬、增益、轉(zhuǎn)折頻率、閉環(huán)穩(wěn)定性等系統(tǒng)特征。2.4.1頻域分析的常用命令
1.freqresp函數(shù)
功能:求取頻率響應(yīng)數(shù)據(jù)。
格式:F=freqresp(sys,w),或者F=freqresp(num,den,sqrt(-1)*w)。2.bode函數(shù)
功能:繪制出系統(tǒng)的伯德(Bode)圖。
格式:bode(sys),或者bode(num,den,w),或者[mag,phase,wout]=bode(sys)。
86
4.margin函數(shù)
功能:計(jì)算幅值裕度、相角裕度及對(duì)應(yīng)的轉(zhuǎn)折頻率。
格式:margin(sys),或者[Gm,Pm,Wcg,Wcp]=margin(sys),或者[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w);
3.nyquist函數(shù)
功能:繪制出系統(tǒng)的奈奎斯特(Nyquist)圖。
格式:nyquist(sys),或者nyquist(num,den,w),或者[re,im,wout]=nyquist(sys)。
87
【例19】已知系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為繪制奈奎斯特圖,并判斷系統(tǒng)的穩(wěn)定性,并求其閉環(huán)階躍響應(yīng)。
【例20】線性時(shí)不變開(kāi)環(huán)系統(tǒng)傳遞函數(shù)為
繪制系統(tǒng)的伯德圖和奈奎斯特圖。判斷系統(tǒng)穩(wěn)定性。如果系統(tǒng)穩(wěn)定,求出系統(tǒng)穩(wěn)定裕度,并繪制系統(tǒng)的單位脈沖響應(yīng)以驗(yàn)證判斷結(jié)論。882.4.2系統(tǒng)設(shè)計(jì)工具
MATLAB仿真軟件的SISO系統(tǒng)設(shè)計(jì)工具是控制系統(tǒng)設(shè)計(jì)工具箱(ControlSystemDesigner)提供的SISO系統(tǒng)補(bǔ)償器設(shè)計(jì)工具,用戶可以同時(shí)獲得系統(tǒng)根軌跡和對(duì)應(yīng)的時(shí)域、頻域曲線,可以高效地完成系統(tǒng)分析和線性系統(tǒng)設(shè)計(jì)。
在MATLAB命令窗口輸入“sisotool”或“rltool”命令,就會(huì)出現(xiàn)根軌跡編輯窗口。89“EditArchitecture”頁(yè)面導(dǎo)入模型添加零、極點(diǎn)操作90
【例21】已知前向通路傳遞函數(shù)為期望的閉環(huán)極點(diǎn)為,用設(shè)計(jì)工具,進(jìn)行設(shè)計(jì)補(bǔ)償器。
解:具體步驟為
1)在命令窗口創(chuàng)建原系統(tǒng)模型,并打開(kāi)設(shè)計(jì)工具,程序?yàn)?gt;>no=4;do=conv([10],[12]);>>h=tf(no,do);>>rltool;91
2)在“CONTROLSYSTEM”選項(xiàng)卡的主菜單“EditArchitecture”中選擇第一種模型結(jié)構(gòu),并為開(kāi)環(huán)傳遞函數(shù)導(dǎo)入工作區(qū)模型h后,得到校正前的系統(tǒng)閉環(huán)根軌跡圖。開(kāi)環(huán)極點(diǎn)用“
”標(biāo)識(shí),閉環(huán)極點(diǎn)用“
”標(biāo)識(shí),分別為-1+i1.73和-1-i1.73,與期望的閉環(huán)極點(diǎn)不相符,所以要對(duì)原系統(tǒng)進(jìn)行校正。校正前的系統(tǒng)階躍響應(yīng)如下圖。校正前的系統(tǒng)閉環(huán)根軌跡圖校正前的系統(tǒng)階躍響應(yīng)92
3)雙擊補(bǔ)償器C,打開(kāi)其編輯窗口,設(shè)置C的參數(shù)。根據(jù)根軌跡校正的主導(dǎo)極點(diǎn)校正方法,添加零點(diǎn)和極點(diǎn),零點(diǎn)為-2.9,極點(diǎn)為-5.4,增益為4.68。其傳遞函數(shù)為
校正后的系統(tǒng)動(dòng)態(tài)性能指標(biāo)比未校正之前的好。校正后的系統(tǒng)階躍響應(yīng)迅速了,超調(diào)量減少了。校正后的閉環(huán)根軌跡圖校正后的系統(tǒng)階躍響應(yīng)932.5系統(tǒng)校正與設(shè)計(jì)
用根軌跡法對(duì)系統(tǒng)進(jìn)行校正,是通過(guò)在系統(tǒng)開(kāi)環(huán)傳遞函數(shù)中增加零點(diǎn)和極點(diǎn)改變根軌跡的形狀,來(lái)使系統(tǒng)根軌跡在s平面上通過(guò)希望的閉環(huán)極點(diǎn)。其實(shí)質(zhì)是通過(guò)采用校正裝置改變根軌跡的形狀。
在開(kāi)環(huán)傳遞函數(shù)中增加零點(diǎn),可以使根軌跡向s平面左半平面移動(dòng),等同于微分控制,從而提高系統(tǒng)的相對(duì)穩(wěn)定性,增加了系統(tǒng)超調(diào)量,減小系統(tǒng)調(diào)節(jié)時(shí)間。
在開(kāi)環(huán)傳遞函數(shù)中增加極點(diǎn),可以使根軌跡向s平面右半平面移動(dòng),等同于積分控制,從而降低系統(tǒng)的相對(duì)穩(wěn)定性,降低了系統(tǒng)超調(diào)量,增大系統(tǒng)調(diào)節(jié)時(shí)間。942.5.1超前校正
如果原系統(tǒng)的動(dòng)態(tài)性能不好,可以采用超前校正網(wǎng)絡(luò)。它提供了超前的相位角,改善系統(tǒng)的超調(diào)量和調(diào)節(jié)時(shí)間。超前校正的計(jì)算步驟如下:
1)作原系統(tǒng)根軌跡圖。
2)根據(jù)動(dòng)態(tài)性能指標(biāo),確定主導(dǎo)極點(diǎn)
在s平面上的位置;如果主導(dǎo)極點(diǎn)位于原系統(tǒng)根軌跡的左邊,可確定采用超前校正,使原系統(tǒng)根軌跡左移,過(guò)主導(dǎo)極點(diǎn)。
3)在新的主導(dǎo)極點(diǎn)上,由幅值條件計(jì)算所需補(bǔ)償?shù)南嘟遣?/p>
,此補(bǔ)償角由校正裝置提供,計(jì)算公式為
。
4)根據(jù)補(bǔ)償角
,確定超前校正裝置的零極點(diǎn)位置。零極點(diǎn)位置的解是非唯一的,可任意選定。通常采用幾何作圖法來(lái)確定校正裝置的零極點(diǎn)位置。
5)由幅值條件計(jì)算增益補(bǔ)償值K*c,最后驗(yàn)證校正后系統(tǒng)的動(dòng)態(tài)性能。952.5.2滯后校正
當(dāng)系統(tǒng)的動(dòng)態(tài)性能滿足要求而穩(wěn)態(tài)性能達(dá)不到要求時(shí),通常采用滯后校正。該校正作用基本上提高開(kāi)環(huán)增益,而沒(méi)有明顯地改變動(dòng)態(tài)性能,故采用一對(duì)靠近原點(diǎn)的開(kāi)環(huán)偶極子且極點(diǎn)靠近原點(diǎn)的校正裝置。滯后校正的計(jì)算步驟如下:
1)繪制未校正系統(tǒng)的根軌跡。
2)根據(jù)動(dòng)態(tài)性能指標(biāo),找出根軌跡上的希望閉環(huán)主導(dǎo)極點(diǎn)sd。
3)根據(jù)幅角條件,確定希望閉環(huán)主導(dǎo)極點(diǎn)所對(duì)應(yīng)的開(kāi)環(huán)增益。
4)根據(jù)給定的穩(wěn)態(tài)性能指標(biāo),求出所需要增加的誤差系數(shù),即需要增加的開(kāi)環(huán)增益α。
5)用作圖法,確定滯后校正裝置的零點(diǎn)和極點(diǎn)。
6)校驗(yàn)系統(tǒng)動(dòng)靜態(tài)指標(biāo),并調(diào)整附加增益。962.6非線性控制系統(tǒng)分析
現(xiàn)實(shí)系統(tǒng)中各物理量之間的許多因果關(guān)系并不完全是線性的。對(duì)于本質(zhì)非線性特性的系統(tǒng),如繼電器、死區(qū)、滯環(huán)、摩擦等非線性系統(tǒng),不能采用線性化的方法來(lái)處理,也不符合疊加原理。非線性對(duì)控制系統(tǒng)的影響并不總是負(fù)面的,有時(shí)為了改善系統(tǒng)的性能或是簡(jiǎn)化系統(tǒng)的結(jié)構(gòu),還常常在控制系統(tǒng)中引入非線性部件或是更復(fù)雜的非線性控制器。
非線性系統(tǒng)的特點(diǎn)如下:
1)線性系統(tǒng)滿足疊加原理,而非線性系統(tǒng)不滿足疊加原理。
2)非線性系統(tǒng)的穩(wěn)定狀態(tài)非常復(fù)雜,不僅與固有參數(shù)和內(nèi)部結(jié)構(gòu)有關(guān),還與系統(tǒng)輸入大小、擾動(dòng)大小及系統(tǒng)的初始狀態(tài)有關(guān)。
3)在實(shí)際物理系統(tǒng)中,周期振蕩不存在于線性系統(tǒng)中,但是可能發(fā)生在非線性系統(tǒng)中。97
研究非線性系統(tǒng)的方法有相平面法和描述函數(shù)法。
描述函數(shù)法:該方法是達(dá)尼爾提出的一種“等效”線性方法,將非線性特性按傅里葉級(jí)數(shù)展開(kāi),忽略高次諧波項(xiàng),近似為線性系統(tǒng)。也就是說(shuō),用描述函數(shù)代替非線性環(huán)節(jié),然后利用線性頻域法分析非線性控制系統(tǒng)的性能。它是非線性特性諧波線性化的一種工程實(shí)用近似分析圖解法。
描述函數(shù)的定義:輸入為正弦時(shí),輸出的基波分量與輸入正弦量的復(fù)數(shù)比,其數(shù)學(xué)表達(dá)式為98
典型非線性環(huán)節(jié)的描述函數(shù)99
【例22】已知帶有飽和環(huán)節(jié)的非線性控制系統(tǒng),其飽和特性參數(shù)為k=2,a=1,應(yīng)用描述函數(shù)法作系統(tǒng)分析。非線性控制系統(tǒng)
解:飽和特性的描述函數(shù)為
(k=2,a=1)繪制線性部分的奈奎斯特圖,程序?yàn)?00在同一復(fù)平面內(nèi)繪制負(fù)倒描述函數(shù)曲線,程序?yàn)?gt;>num=[1010];>>den=conv([100],[15]);>>G=tf(num,den);>>nyquist(G)>>holdon>>k=2;a=1;>>forA=1:0.1:10NA=2*k/pi*(asin(a/A)+(a/A)*sqrt(1-(a/A)^2));y=zeros(size(NA));plot(-1/(NA),y,'k*')holdon,gridend>>axis([-61-55])101
程序運(yùn)行后,在同一復(fù)平面內(nèi)繪制了非線性特性的負(fù)倒描述函數(shù)和線性部分的奈奎斯特圖。
對(duì)系統(tǒng)進(jìn)行穩(wěn)定性分析,由圖可見(jiàn),曲線軌跡與G(iω)無(wú)交點(diǎn),且G(iω)不包圍曲線,所以該非線性系統(tǒng)是穩(wěn)定的。非線性特性的負(fù)倒描述函數(shù)與線性部分的奈奎斯特圖1102
如果非線性環(huán)節(jié)保持不變,改變線性部分的傳遞函數(shù)為,則可以得到在同一復(fù)平面內(nèi)繪制了非線性特性的負(fù)倒描述函數(shù)和線性部分的奈奎斯特圖。負(fù)倒描述函數(shù)為實(shí)軸上(-1/k,-∞),即(-0.5,-∞)的區(qū)域。線性部分的奈奎斯特曲線為-∞到原點(diǎn)的一條曲線,可見(jiàn)兩條曲線相交于負(fù)實(shí)軸(-1.65,i0),可判斷此點(diǎn)可以產(chǎn)生自激振蕩。非線性特性的負(fù)倒描述函數(shù)與線性部分的奈奎斯特圖2103
相交點(diǎn)的頻率ω=1.42,Re
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024建筑供貨合同范本
- 2024工程建設(shè)的借款合同范本
- 2024大學(xué)生勞動(dòng)合同書(shū)范本
- 2024標(biāo)準(zhǔn)貨物交易合同格式
- 2024水暖分包合同范本
- 2024正規(guī)的施工合同格式
- S-R-S-AHPC-CO-cyclohexene-Bpin-生命科學(xué)試劑-MCE
- SP1-生命科學(xué)試劑-MCE
- 掃地機(jī)器人市場(chǎng)競(jìng)爭(zhēng)格局與未來(lái)發(fā)展趨勢(shì)分析
- SIK-IN-4-生命科學(xué)試劑-MCE
- 陰道鏡培訓(xùn)(課堂PPT)
- 《爬山虎的腳》教學(xué)課件
- 通信工程資源錄入措施
- 人教版英語(yǔ)選擇性必修第四冊(cè)UNIT 4 Sharing中英文對(duì)照
- 內(nèi)分泌疾病內(nèi)分泌疾病診療規(guī)范
- (完整word版)手卡模板(總2頁(yè))
- 超級(jí)椰子油二乙醇酰胺的合成新工藝
- 【原創(chuàng)】六上Unit5 Housework PartA 教學(xué)設(shè)計(jì)
- 高壓蒸汽滅菌鍋(SANYO)
- 電飯煲項(xiàng)目財(cái)務(wù)分析表
- 部編版《道德與法治》三年級(jí)上冊(cè)教案(全冊(cè))
評(píng)論
0/150
提交評(píng)論