一、PID的由來:
過去都是采用位式(兩位式‘開關量’)控制方法,即位式控制算法只有兩種輸出信號(H/L),即開或關、0或1。且位式控制只考察控制對象當前的狀態量,而對于實際對象來說都具有慣性,會使得調節器一直在輸出,即輸出一直在預期值附近波動,無法達到精準控制。
由此,需要有一種控制算法,不僅能對控制對象當前輸出量的控制,還能對過去歷史的規律的“總結”(消除環境等因素造成的靜態誤差)以及對未來對象輸出的提前預判,對對象提前進行控制,使得輸出能夠盡快達到預期值并穩定下來(正如那句話所說,‘不要等到已經發生了才開始控制,往往會來不及的’)。
二、PID內容:
相信對學習過PID控制的小伙伴對上面這張圖并不陌生吧。這是一個典型的PID控制,對于PID控制技術,在本科學習時老師在第一節課就和我們說,PID控制技術就是讓系統從0到1的過程,如何讓它在這個過程中快速、穩定地達到1,并且穩態之后能夠保持預期值的一種控制技術。以下簡單說明PID算法的形成:
[比例]-Kp
1、從開機開始,傳感器的所有采樣數據序列:
x1,x2x3……xn-3,xn-2,xn-1,xn
2、序列采樣點的數據序列,可以挖掘出的信息:
1)err=給定值-反饋值:如果err>0,當前未達到給定值
如果err=0,當前達到給定值
如果err<0,當前大于給定值
但是會發現一個問題,比例控制只會在有誤差的情況下起作用,如果單純只采用比例控制,那么按照自己的理解來說等系統穩定之后,誤差為零,控制器將不會有輸出,做仿真實驗時卻發現問題,如下(以一階慣性系統為控制對象):
其系統穩定之后輸出并不為零,而是小于預期值??戳隧n京清教授編寫的自抗擾控制技術之后才了解到,這是由于穩態誤差的存在。
由上圖的仿真圖可知:
x1 = Kp * err = Kp * (x0 - y);
其閉環傳遞函數為:
1/(s+2)
當時間趨近于無窮大時,也就是s趨近于0時,其輸出值為1/2,這個偏離期望值的這個量就叫閉環系統的穩態誤差或者靜差,從表達式可以看出,如果增大比例,如kp=100會發現其傳遞函數變為:
100/(s + 101);
其輸出穩態誤差變為100/101,遠小于kp=1時的1/2。而且還能發現其達到穩定值的調節時間大約是之前的1/50倍。
那如果我將KP的值設為很大那這樣不就能夠達到PID控制的要求了嗎?非也,查閱了相關資料之后發現,線性模型是對非線性對象在工作點附近的近似,所以kp如果設置很大就很容易使系統的運動躍出線性近似范圍而產生難以駕馭的復雜行為。所以kp的設定不能無限制增大。而且通過其表達式還能發現,控制對象的表達式中分母的常數項就是穩態誤差產生的源泉,只要這個常數項不為零,那么穩態誤差就不會消除,但是對于我們的控制對象,它的表達式一般都是非常復雜的,想必這一項也不太可能為零。
那么問題就來了,kp又不能設置太大,那么穩態誤差就會一直存在,必須想辦法用一種方式將穩態誤差消除或者減小,這個時候,積分項,也就是PID中的I就出現了。
三、總結:
1)位式控制算法所出現的弊端引發了PID控制算法的出現;
2)穩態誤差的產生主要是由控制對象產生的;
3)KP的設定值越大,能夠有效改善系統輸出的響應時間和穩態誤差值,但是也不能無限制增大kp的值。
-
仿真
+關注
關注
50文章
4124瀏覽量
133986 -
PID
+關注
關注
35文章
1473瀏覽量
85822 -
傳遞函數
+關注
關注
0文章
102瀏覽量
14004 -
控制算法
+關注
關注
4文章
166瀏覽量
21792 -
輸出信號
+關注
關注
0文章
291瀏覽量
11935
發布評論請先 登錄
相關推薦
評論