




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