程榮俊 葉運(yùn)生 方 可 黃強(qiáng)先 張連生
(1. 合肥工業(yè)大學(xué) 儀器科學(xué)與光電工程學(xué)院, 合肥 230009)(2. 合肥工業(yè)大學(xué) 測量理論與精密儀器安徽省重點(diǎn)實(shí)驗(yàn)室, 合肥 230009)
“自動(dòng)控制原理”是儀器類、自動(dòng)化和電子信息等專業(yè)的核心課程,其理論性、綜合性較強(qiáng)[1-2]。該課程知識點(diǎn)多且較為抽象、不易理解,計(jì)算復(fù)雜,作圖量大且要求一定的精確性,教師教學(xué)和學(xué)生學(xué)習(xí)都面臨著巨大的挑戰(zhàn)[3-4]。在新工科背景下,充分利用Matlab等計(jì)算機(jī)軟件在教學(xué)領(lǐng)域中越發(fā)明顯的優(yōu)勢來輔助“自動(dòng)控制原理”課程教學(xué)與改革具有重要意義[5-6]。
目前,國內(nèi)外研究機(jī)構(gòu)基于Matlab GUI、Labview等平臺開發(fā)了自動(dòng)控制仿真教學(xué)軟件[7-9]。然而,這些軟件實(shí)現(xiàn)的功能相對單一,要么根據(jù)傳遞函數(shù)進(jìn)行單純的時(shí)域、頻域分析,要么針對某些典型控制系統(tǒng)案例進(jìn)行建模與分析。對于初學(xué)“自動(dòng)控制原理”的學(xué)生而言,需要更加基礎(chǔ)、全面且契合教材的教學(xué)軟件平臺來輔助學(xué)習(xí)課程重要章節(jié)內(nèi)容,并有典型工程案例配合學(xué)習(xí),以提高教學(xué)效果。
針對當(dāng)前存在的問題,以鄒伯敏教授主編的《自動(dòng)控制理論》教材為依托,結(jié)合課程基本授課內(nèi)容,利用Matlab GUI開發(fā)了仿真教學(xué)軟件,具備良好的實(shí)用性和可移植性,能夠協(xié)助教師進(jìn)行課程講授和學(xué)生自主學(xué)習(xí)。
面向“自動(dòng)控制原理”課程教學(xué)的仿真軟件主要包括時(shí)域分析法、根軌跡法、頻率響應(yīng)法和控制系統(tǒng)校正等典型功能模塊以及直流調(diào)速系統(tǒng)工程實(shí)例應(yīng)用模塊,軟件功能模塊如圖1所示。
圖1 自動(dòng)控制原理仿真教學(xué)軟件功能結(jié)構(gòu)圖
為了使得界面清晰、便于操作,設(shè)計(jì)了如圖2所示的軟件主界面。該主界面通過插入圖片的方式顯示了一張校園風(fēng)光的圖片,圖片顯示算法如下:
axes(handles.picm);
image_main = imread(‘封面圖片1.jpg’);
imshow(image_main);
圖2 自動(dòng)控制原理仿真軟件主界面
仿真軟件中的每個(gè)模塊下包含多種功能,在程序算法中相應(yīng)地需要多個(gè)子程序和多個(gè)操作界面。軟件利用回調(diào)函數(shù)實(shí)現(xiàn)子程序的調(diào)用,對于每個(gè)子程序中的多個(gè)界面利用菜單編輯器來集成。軟件主界面回調(diào)函數(shù)中的調(diào)用算法如下:
function push0106_Callback(hObject, eventdata, handles)
System_Analysis;
function push01_Callback(hObject, eventdata, handles)
close(gcf);
main;
由于仿真軟件涵蓋了“自動(dòng)控制原理”課程的大部分內(nèi)容,整體工程量較大。頻率響應(yīng)法是“自動(dòng)控制原理”課程的重要章節(jié),主要分析系統(tǒng)對不同頻率正弦輸入信號的響應(yīng)能力。以控制系統(tǒng)頻域分析模塊為例,介紹軟件典型功能模塊的實(shí)現(xiàn)方法。
Bode圖法是頻率響應(yīng)的一種重要圖解方法,用于判別系統(tǒng)的穩(wěn)定性及相對穩(wěn)定性等性能,主要評價(jià)指標(biāo)為幅值裕度Kg和相位裕度γ。仿真軟件Bode圖功能模塊實(shí)現(xiàn)方法如下:
(1)獲取控制系統(tǒng)模型和參數(shù)。編輯框中輸入傳遞函數(shù)的分子和分母系數(shù)矩陣,算法中加入了數(shù)值判別機(jī)制,避免矩陣中混入了非數(shù)值元素,無法構(gòu)建傳遞函數(shù)。主要算法如下:
num = str2num(get(handles.edit1,‘string’));
den = str2num(get(handles.edit2,‘string’));
if isempty(num) || isempty(den)
errordlg(‘輸入非數(shù)值’,‘Error’);
end
(2)繪制系統(tǒng)Bode圖和單位階躍響應(yīng)曲線,并計(jì)算系統(tǒng)性能指標(biāo)。通過程序編寫和函數(shù)調(diào)用即可實(shí)現(xiàn),基于句柄對象的層次結(jié)構(gòu)來修改線寬和線型。主要算法如下:
w = logspace(-2,3,400);
[mag,phase,w] = bode(num,den,w);
[mag_tmp,phase_tmp,w_tmp]=bode(num,den,w_tmp);
sys_close = feedback(sys,1);
step(sys_close);
grid on;
sline = get(handles.axes1,‘children’);
slinea = get(sline(i),‘children’);
set(slinea,‘linewidth’,2);
end
(3)判別閉環(huán)系統(tǒng)的穩(wěn)定性。對于開環(huán)穩(wěn)定系統(tǒng),若幅值裕度和相位裕度均大于0,則系統(tǒng)穩(wěn)定。對于開環(huán)不穩(wěn)定系統(tǒng),無法利用穩(wěn)定裕度判別系統(tǒng)穩(wěn)定性,此時(shí)需要借助于奈氏穩(wěn)定判據(jù)。軟件實(shí)現(xiàn)的思路如下:軟件讀取分子、分母系數(shù)矩陣并加以判斷,若有效則計(jì)算系統(tǒng)開環(huán)極點(diǎn)并取其實(shí)部,判斷各開環(huán)極點(diǎn)實(shí)部是否大于0,得到開環(huán)右半平面極點(diǎn)個(gè)數(shù)P;再計(jì)算系統(tǒng)的幅頻、相頻特性,考察幅頻特性L(ω)=20lg|G(jω)|>0所對應(yīng)的相頻特性中的各元素,列成新數(shù)組A;考察A中的每一個(gè)元素,若某元素及其相鄰元素滿足關(guān)系A(chǔ)(i)≤-180且A(i+1)≥-180,則正穿越次數(shù)加1,若某元素及其相鄰元素滿足A(i)≥-180且A(i+1)≤-180,則負(fù)穿越次數(shù)加1;最后計(jì)算出系統(tǒng)閉環(huán)右半平面極點(diǎn)個(gè)數(shù)Z,從而判斷系統(tǒng)穩(wěn)定性。具體算法流程如圖3所示。
圖3 奈氏穩(wěn)定判據(jù)判別系統(tǒng)穩(wěn)定性的算法流程圖
依據(jù)上述方法和步驟,所設(shè)計(jì)的仿真軟件“頻率響應(yīng)法”功能模塊界面如圖4所示。
圖4 Bode圖法的仿真軟件運(yùn)行界面
該模塊中可以通過輸入分子多項(xiàng)式系數(shù)矩陣和分母多項(xiàng)式系數(shù)矩陣,從而構(gòu)建系統(tǒng)的傳遞函數(shù),繪制出系統(tǒng)的Bode圖和時(shí)域響應(yīng)曲線,并能計(jì)算系統(tǒng)的穩(wěn)定裕度、相位交界頻率和剪切頻率等頻域性能指標(biāo),以及判別控制系統(tǒng)的相對穩(wěn)定性。
雙閉環(huán)直流調(diào)速系統(tǒng)是工程中常見的自動(dòng)控制系統(tǒng),受控對象為電機(jī)轉(zhuǎn)速這一經(jīng)典對象,涉及到電流環(huán)和速度環(huán)兩個(gè)串聯(lián)連接的控制器,能夠充分體現(xiàn)自動(dòng)控制原理的精髓[10]。仿真軟件集成雙閉環(huán)直流調(diào)速系統(tǒng)這一經(jīng)典案例,開發(fā)“直流調(diào)速系統(tǒng)”仿真子程序,實(shí)現(xiàn)時(shí)域分析、根軌跡和頻域響應(yīng)三方面的系統(tǒng)性能分析,能夠有效提高學(xué)生基礎(chǔ)理論與工程實(shí)際相結(jié)合的能力。
為了直觀顯示控制過程中轉(zhuǎn)速的變化情況,軟件界面設(shè)計(jì)了轉(zhuǎn)速表,其實(shí)現(xiàn)方法為將時(shí)域響應(yīng)獲得的轉(zhuǎn)速值轉(zhuǎn)化為轉(zhuǎn)速表中的極角,再將極角轉(zhuǎn)化為直角坐標(biāo)。由于轉(zhuǎn)速表的零刻度線位于極角180°的位置,所以對于不同的轉(zhuǎn)速區(qū)域,轉(zhuǎn)速與極角的對應(yīng)關(guān)系也不相同,兩者轉(zhuǎn)化的算法如下:
if y(i) <= 1500 && y(i) >= -750
thetah1 = (1500-y(i))/1500*pi;
elseif y(i) > 1500 && y(i) <= 2000
thetah1 = -pi*(y(i)-1500)/1500;
elseif y(i) >2000
thetah1 = -pi/3;
elseif y(i) <-750
thetah1 = -pi/2;
end
仿真軟件在計(jì)算出時(shí)域響應(yīng)后,根據(jù)曲線上每一采樣點(diǎn)對應(yīng)的轉(zhuǎn)速,繪制一幀轉(zhuǎn)速表的圖像,并停留一小段時(shí)間?;谌搜垡曈X暫留效應(yīng),多幀圖像不斷變化就形成了轉(zhuǎn)速表動(dòng)畫,從而直觀地顯示控制過程中轉(zhuǎn)速的變化規(guī)律。仿真軟件“直流調(diào)速系統(tǒng)”顯示界面如圖5所示。
圖5 “直流調(diào)速系統(tǒng)”子程序界面
考慮到教學(xué)學(xué)時(shí)以及程序?qū)崿F(xiàn)問題,程序設(shè)計(jì)中直接給出雙閉環(huán)直流調(diào)速系統(tǒng)的結(jié)構(gòu)框圖,電機(jī)參數(shù)與控制參數(shù)由學(xué)生自行推導(dǎo)給出,程序根據(jù)該模型及參數(shù)對設(shè)定的直流調(diào)速系統(tǒng)進(jìn)行實(shí)時(shí)仿真,運(yùn)行彈出新的窗口顯示控制系統(tǒng)的時(shí)域響應(yīng)、根軌跡曲線和Bode圖,如控制系統(tǒng)時(shí)域響應(yīng)反應(yīng)了電機(jī)輸出轉(zhuǎn)速變化曲線,如圖6所示。該案例便于學(xué)生靈活利用多種方法分析直流調(diào)速系統(tǒng)的控制原理,從而掌握不同分析方法在工業(yè)控制中的實(shí)際應(yīng)用。
圖6 “直流調(diào)速系統(tǒng)”子程序中的轉(zhuǎn)速-時(shí)間曲線
利用Matlab GUI軟件平臺,開發(fā)了面向“自動(dòng)控制原理”課程教學(xué)的仿真軟件,具有功能齊全、易于理解和展示等優(yōu)點(diǎn)。通過將課程中某些復(fù)雜圖形的繪制與原理驗(yàn)證等功能通過軟件實(shí)時(shí)顯示結(jié)果,給教師教學(xué)帶來了便利,同時(shí)使學(xué)生能夠更直觀地理解“自動(dòng)控制原理”課程中復(fù)雜、抽象的內(nèi)容,提高教學(xué)效果。