陳鳳祥
摘要:論文根據(jù)一些現(xiàn)行自動控制原理教材中控制工具箱的使用情況,結合實際教學過程學生的疑問,完善了控制工具箱一些函數(shù)的使用方法:對tf/zpk對象屬性的使用,解決了各類傳遞函數(shù)形式的準確顯示;引入bodeplot函數(shù),完善了非最小相位系統(tǒng)相頻圖繪制;引入sumblk/connect函數(shù),解決了前饋+反饋系統(tǒng)結構的表達。最后各類函數(shù)的使用均給出了相關示例。
關鍵詞:自動控制;Matlab;控制系統(tǒng)工具箱
中圖分類號:G642.41 文獻標志碼:A 文章編號:1674-9324(2017)03-0204-03
Matlab的Control System Toolbox(控制系統(tǒng)工具箱)提供了許多用于控制系統(tǒng)的仿真和分析的函數(shù)與模塊,這給控制系統(tǒng)的仿真和控制器的設計帶來了極大的方便。對于相關的命令,不少現(xiàn)行教材[1,2]均有說明,但僅僅利用書上給定的命令,往往是不方便的,甚至無法實現(xiàn)一些教材中常見控制架構的仿真和分析。如在Matlab中:(1)如何將一給定傳遞函數(shù)表示成形式4(見表1),以便于Bode圖手工繪制;(2)如何準確繪制非最小相位系統(tǒng)的Bode圖;(3)如何將前饋+反饋的系統(tǒng)結構互聯(lián)起來。這些都是控制理論學習過程中常見的問題,但鮮有相關教材能針對這類問題給出相關的例子或者函數(shù)介紹。在本科教學過程中,本人時有發(fā)現(xiàn)一些學生期望能夠利用現(xiàn)成的Matlab命令用于解決上述三個問題。為此下文根據(jù)這些問題給出了相應的解決方案。
一、傳遞函數(shù)表示
在自動控制原理教材中[1,2],共有四種類型的傳遞函數(shù)表達形式(如表1所示),每種形式都是為了解決不同的控制問題所給出。當前的教材在介紹Matlab控制系統(tǒng)工具箱函數(shù)時往往只介紹了傳遞函數(shù)形式1和形式2的表達方式,而比較重要的形式3,形式4則未曾給出,這導致很多學生還需用手工將形式2轉化到形式3或4,從而感覺十分不便。
在介紹zpk命令時,諸多教材[1,2]忽略了如何通過Matlab將形式2的傳遞函數(shù)轉換成形式3或形式4,甚至在Matlab2010b幫助文件中也未曾對此給出描述。但在自動控制中這形式3和形式4的使用又是十分常見的。在教學實踐過程中本人發(fā)現(xiàn)zpk函數(shù)所建立的LTI對象中有一個屬性:DisplayFormat,通過對其設置合適的參數(shù)就可以改變傳遞函數(shù)的顯示形式。其默認參數(shù)為roots,傳遞函數(shù)顯示為形式2;參數(shù)為
time constant則顯示為形式3;參數(shù)為frequency則顯示為形式4。
G=(1-2*s)/(1+4*s);bode(G),執(zhí)行后得到的結果如圖1所示。G(s)的相位是滯后的,但是圖1顯示是超前的,和真實結果正好相差360°。
若采用bodeplot后h=bodeplot(G);其結果依然同圖1所示;但如果對該bode圖的屬性PhaseMatching設置為
on后則其結果變成如圖2所示,具體命令如下:p=getoptions(h);p.PhaseMatching=on;setoptions(h,p)。圖1和圖2具有相同傳遞函數(shù),但相位差了360°。初學者更容易接受圖2的結果,圖1則容易被誤認為是相位超前環(huán)節(jié)。
三、系統(tǒng)互聯(lián)
在傳遞函數(shù)互聯(lián)過程中除了串聯(lián)(series)、并聯(lián)(parallel)和反饋(feedback)等基本函數(shù)外,還有兩個函數(shù)sumblk和connect十分重要。利用這2個函數(shù)可以實現(xiàn)復雜控制系統(tǒng)的互聯(lián),如可以實現(xiàn)教材中的前饋+反饋的控制結構(如圖3所示)、實現(xiàn)對外部擾動的分析等。sumblk和connect具體使用說明如下:
S=sumblk(output,input1,…,inputN,SIGNS)
該命令將返回LTI對象S,其中輸出為output,N個輸入為input1,…,inputN,且滿足
output=input1+…+inputN。SIGNS為字符串+,或-的組合用以指定每個輸入的方向。
sys=connect(sys1,sys2,...,inputs,outputs)
該命令用于將sys1,sys2,…等多個系統(tǒng)互聯(lián)。鑒于每個系統(tǒng)都有輸入輸出,互聯(lián)時將各子系統(tǒng)輸入、輸出的名字相同時則建立連接?;ヂ?lián)后的系統(tǒng)的輸入為inputs,輸出為outputs。下面針對圖3的控制拓撲結構利用上述命令將其生成,具體如下:
B1=sumblk(e,r,y,+-);%%實現(xiàn)e=r-y,返回對象B1實際上也是一個線性系統(tǒng)。
B2=sumblk(u,u1,u2);%%實現(xiàn)u=u1+u2,返回對象B2實際上也是一個線性系統(tǒng)。
C1.InputName=r;C1.OutputName=u2;
C2.InputName=e;C2.OutputName=u1;G.InputName=u;G.OutputName=y;%%指定系統(tǒng)C1,C2和G的輸入輸出名字。
T=connect(C1,C2,B1,B2,G,r,y);%%將系統(tǒng)C1,C2,B1,B2,G互聯(lián),并以r為輸入,y為輸出。
論文通過對Matlab控制工具箱中傳遞函數(shù)構建,Bode圖繪制,系統(tǒng)互聯(lián)的深入介紹,完善了現(xiàn)行教材中控制工具箱中命令的使用。
參考文獻:
[1]孔祥東,王益群.控制工程基礎[M].第3版.北京:機械工業(yè)出版社,2008.
[2]胡壽松.自動控制原理[M].第5版.北京:科學出版社,2007.
User Guide of Matlab Control System Toolbox Function for Automatic Control
CHEN Feng-xiang1,2
(1.School of Automotive Studies,Tongji University,Shanghai 201804,China;
2.Clean Energy Automotive Engineering Center,Tongji University,Shanghai 201804,China)
Abstract:Based on the usage of Matlab control system toolbox introduced in the textbooks of automatic control,and the students' questions raised during the class,some functions in Matlab control system toolbox has been appended as following:(1) using tf/zpk object attribute to make the transfer function display accurately;(2) introducing the bodeplot function to plot the phase frequency graph for non-minimum phase system;(3) introducing sumblk/connect functions to establish the feedforward + feedback control structure. The usage and examples are given for each functions introduced in the paper.
Key words:automation control;Matlab;control system toolbox