陳 梅, 王 健
(1.曲阜師范大學工學院,山東日照276826;2.山東水利職業學院經濟管理系,山東日照276826)
PID控制器的設計是“自動控制原理”課程的重要內容,其應用越來越多[1-3]。PID控制器的參數整定決定了控制系統的性能,其主要整定方法有Ziegler-Nichols整定法、臨界比例度法、衰減曲線法[4]等。各種整定方法都有相關的研究及應用[5-7]。本文主要研究Ziegler-Nichols法的PID參數整定。Ziegler-Nichols法是一種基于頻域設計PID控制器的方法,該方法是在利用開環系統的單位階躍響應曲線,得到系統延遲時間、放大系數和時間常數,根據經驗公式計算PID參數。
隨著計算機及多媒體在教學中的使用,越來越多的教學軟件被開發[8-14],為課堂教學和實驗帶來了便利。Matlab GUI編程提供了Matlab圖形用戶接口開發對象,簡化了設計和創建GUI的過程。Matlab GUI編程主要包括用戶界面的創建和M文件的編寫。該仿真系統以Matlab作為開發環境,實現了Ziegler-Nichols法PID參數的整定,圖形化的界面直觀形象地展示了整定過程。
Ziegler-Nichols整定法適用對象為帶純延遲的一階慣性環節,即其開環系統的單位階躍響應曲線近似是S形曲線,如圖1所示。S形曲線的傳遞函數近似為:

式中:K為比例系數;T為時間常數;τ為延遲時間。其時域響應為:


圖1 S形響應曲線
根據被控對象的單位階躍響應曲線,K、T和τ參數確定方法:
(1)比例系數K為被控對象單位階躍響應穩定后的幅值。
(2)延遲時間τ為曲線的拐點的切線在t軸上的交點。
(3)時間常數T為曲線的拐點處的切線在幅值為K時對應的t值減去延遲時間τ。
(4)根據K、T和τ值,使用表1中的經驗公式[15],即可計算出調節器的各個整定參數值。
Ziegler-Nichols法整定中,K、T和τ參數的確定是關鍵,通常是通過Simulink仿真獲取的。利用Simulink仿真繪制開環系統的單位階躍響應曲線,根據示波器輸出圖形來確定3個參數。參數需要在曲線圖中根據拐點及切線確定,通過圖形分析不好直接得到其值。

表1 Ziegler-Nichols法整定控制器的參數
為了準確、快速地確定K、T和τ參數,通過Matlab GUI編程[16],實現了Ziegler-Nichols的PID 參數整定系統。該系統實現了控制系統的設置,控制系統的開環和閉環單位階躍響應曲線,PID整定中間參數K、T和τ獲取及圖形表示,PID整定參數Kp、Ki及Kd獲取及相應單位階躍響應曲線的繪制。設計過程主要包括fig和M兩個文件,fig文件主要實現GUI用戶界面的設計,M文件通過Callback函數實現各控件的功能。該仿真系統的功能模塊如圖2所示。

圖2 仿真系統功能模塊
根據實現的功能,仿真系統界面設計如圖3所示,主要包括4部分:
(1)控制系統的獲取。2個編輯框中輸入傳遞函數的分子和分母系數向量,2個按鈕顯示開環、閉環單位階躍響應曲線。
(2)K、T和τ參數的獲取。3個編輯框顯示K、T和τ參數值;“z-n整定”按鈕用來顯示參數獲取圖形;滑動條用來微調切點。
(3)PID整定參數的獲取。3個復選框用來選擇顯示PID、PI和P控制的圖形;6個編輯框用來顯示各PID整定的Kp、Ki和Kd參數。
(4)圖形顯示。1個坐標軸用來顯示各種單位階躍響應曲線。

圖3 系統界面
控制系統的獲取是輸入開環系統傳遞函數的分子和分母系數向量實現的,如圖4所示。

圖4 控制系統參數的設置
參數設置后,點擊“開環響應曲線”按鈕,顯示系統的開環單位階躍響應曲線,如圖5所示。該曲線形狀滿足S形,可用Ziegler-Nichols法整定PID參數。

圖5 開環系統單位階躍響應曲線
點擊“閉環響應曲線”按鈕,顯示系統的閉環單位階躍響應曲線,如圖6所示。由圖可知,系統存在穩態誤差。

圖6 閉環系統單位階躍響應曲線
主要代碼:
% 系統參數獲取
num = get(handles.editnum,'string');
num=str2num(num);
den = get(handles.editden,'string');
den=str2num(den);
sys=tf(num,den);
hold off
step(sys);%開環系統單位階躍響應函數
sys0=feedback(sys,1);%閉環系統單位階躍響應函數
hold off
step(sys0);
Ziegler-Nichols參數包括放大系數K、延遲時間τ及時間常數T,3個參數由開環響應曲線獲得。為了更好地表示3個參數的含義,需要畫出S曲線的拐點及切線。在圖7中,點擊“z-n整定”按鈕,便顯示K、τ及T的值,并在開環單位階躍響應曲線圖中顯示拐點及切線,并表示出K、τ及T,如圖8所示。

圖7 z-n參數的獲取

圖8 z-n參數求解曲線及參數表示
通過調節滑動條可以實現切點的微調,對應的參數及圖形作相應修改。
主要實現代碼:
sys= tf(num,den);
K=dcgain(sys)%求K
set(handles.editK,'string',num2str(K));
step(sys);
[y,t]= step(sys);
dy = diff(y);
[my,i]=max(dy)%求拐點位置
i=i+ii
hold on
plot(t(i),y(i),'ro')% 繪制拐點
k = (y(i+1)- y(i))/(t(i+1)- t(i));
t1 = t(1);
y1 = y(i)+ k*(t1 - t(i));
t2 = t(end);
y2 =y(i)+k*(t2 -t(i))
plot([t1 t2],[y1 y2],'g--')% 畫切線
yy = linspace(y1,y2,1000);
tt= linspace(t1,t2,1000);
n1=find(yy> =0,1);
Tau=tt(n1) %求Tau
n2=find(yy> =K,1)
T=tt(n2)-Tau %求T
plot([tt(n2)tt(n2)],[y1 y2],'b--')
set(handles.editTau,'string',num2str(Tau));
set(handles.editT,'string',num2str(T));
text(Tau/2,0,'Tau');
text(Tau + T/2,0,'T');
text(tt(n2)/2,K,'K');
由K、τ及T值,根據經驗公式,系統自動顯示PID、PI及P控制對應的控制參數,如圖9所示。

圖9 PID整定參數
在圖9中,選擇復選框“PID控制”“PI控制”及“P控制”,便顯示對應圖形,如圖10所示。由圖可見,PID控制效果最好,PI控制超調量大,調節時間長,P控制的穩態值較小。

圖10 PID控制單位階躍響應曲線
主要實現代碼:
%Kp、Ki和Kd求解
a=K*Tau/T;
Kp1 =1.2/a;
Ti1 =2.2*Tau;
Ki1 = Kp1/Ti1;
Td1 =0.5*Tau;
Kd1=Kp1*Td1;
Kp2 =0.9/a;
Ti2 = Tau/0.3;
Ki2 =Kp2/Ti2;
Kp3 =1/a;
%pid控制
sys= tf(num,den);
sys10 = tf([Kd1,Kp1,Ki1],[1 0]);
step(feedback(sys10*sys,1));
%pi控制
sys20 = tf([Kp2,Ki2],[1 0]);
step(feedback(sys20*sys,1));
%p控制
step(feedback(Kp3*sys,1));
針對Ziegler-Nichols法PID參數整定中,K、T和τ參數不容易直接獲取,通過Matlab GUI界面編程實現了Ziegler-Nichols PID參數整定的仿真系統。該仿真系統具有K、T和τ參數的顯示及圖形表示,PID整定參數的獲取及單位階躍響應曲線的顯示等功能,獲取參數快速、直觀、準確。圖形化的界面使該仿真軟件操作方便,節省了參數的確定和計算的時間。該仿真軟件可用于“自動控制原理”課程的課堂教學和實驗,有助于學生更好地理解Ziegler-Nichols法PID參數的整定過程,提高學生的分析問題和設計能力。
·名人名言·
只有嚴格的專業化能使學者在某一時刻,大概也是他一生中唯一的時刻,相信自己取得了一項真正能夠傳至久遠的成就。今天,任何真正明確而有價值的成就,肯定也是一項專業成就。
——馬克斯·韋伯