這是為什么呢?來看下我們這時(shí)的開環(huán)系統(tǒng)階躍響應(yīng):
咦?怎么是一條直線呢?沒錯(cuò),它就是這樣一個(gè)不穩(wěn)定的狀態(tài),在我們高興的做極點(diǎn)配置的時(shí)候,忘記了PID控制器本身還會(huì)引入一個(gè)臨界穩(wěn)定的極點(diǎn),這個(gè)極點(diǎn)帶來的好處0穩(wěn)態(tài)誤差,但是卻對(duì)噪聲非常敏感,也就是說,如果我們的飛機(jī)在氣流平穩(wěn)的地方飛行,飛機(jī)的電機(jī)性能又極佳,建模也準(zhǔn),最關(guān)鍵的,是姿態(tài)解算的精度又出奇的高的話,用這種方法得到的PID參數(shù)肯定是非常完美的。但是現(xiàn)實(shí)總是殘酷的,具體為什么會(huì)對(duì)噪聲這么敏感應(yīng)該可以從系統(tǒng)的噪聲辨識(shí)模型中得到解釋,但是很遺憾到文章這里我并沒有對(duì)噪聲進(jìn)行建模,有興趣的可以嘗試下。
這里就是使用PID控制的弊端了,它只提供了兩個(gè)零點(diǎn)用來對(duì)極點(diǎn)進(jìn)行抑制,但是又同時(shí)引入了一個(gè)不穩(wěn)定的極點(diǎn),不得已,我們只能讓零點(diǎn)從那兩個(gè)極點(diǎn)上向那個(gè)臨界穩(wěn)定的極點(diǎn)移動(dòng),企圖用兩個(gè)零點(diǎn)來牽制三個(gè)極點(diǎn),這自然沒辦法達(dá)到良好的控制效果,但也就成了沒有辦法的辦法了……大家在搜索PID參數(shù)整定方法的時(shí)候一定都聽說過Ziegler-Nichols整定法則,這幾乎是PID基于模型的參數(shù)整定唯一的方法了,但是為什么沒人把這個(gè)如此著名的整定方法(這里指第一方法)應(yīng)用在四軸的PID整定中呢?因?yàn)槭褂迷摲▌t有個(gè)鐵打的前提:控制對(duì)象中既不能包含積分器,又不包含主導(dǎo)共軛復(fù)數(shù)極點(diǎn),也就是說階躍響應(yīng)應(yīng)該是一個(gè)S型…………………………很不幸,我們的四軸這兩條都占了……積分器是在從角速度到角度轉(zhuǎn)換的過程中,在與其他好多極點(diǎn)的共同作用中最終在我們的參數(shù)辨識(shí)中表現(xiàn)為了那兩個(gè)討厭的共軛復(fù)數(shù)極點(diǎn),重新看一遍我的解釋流程,就明白為什么不能用Ziegler-Nichols整定第一法則了,也就是為什么光用PID不能達(dá)到足夠好的控制效果。
那么,既然非要用PID飛又既然缺少極點(diǎn)的情況下我們只能讓零點(diǎn)右移,這么做的理由也是可以從另一個(gè)方面來佐證的:
調(diào)過PID的都知道增加微分可以提高系統(tǒng)的抗噪性能,減小積分會(huì)減小噪聲積累(這里指Ki增加而不是Ti)反映到零點(diǎn)的移動(dòng)中剛好就是零點(diǎn)向右側(cè)的(1,0)點(diǎn)移動(dòng)。所以可以得知,我們經(jīng)過權(quán)衡能得到的PID最佳的控制參數(shù)的零點(diǎn)應(yīng)該是落在了開環(huán)主導(dǎo)極點(diǎn)和(1,0)點(diǎn)連線所在的那一片區(qū)域內(nèi)了,那么我們對(duì)PID的分析是否到此就結(jié)束了呢?顯然沒有,我還沒有論證為什么大家在數(shù)年的總結(jié)中會(huì)得到“先調(diào)P,再調(diào)D,最后調(diào)I就能飛了”的實(shí)驗(yàn)整定方法能夠湊效,并且還要提出個(gè)理論指導(dǎo)實(shí)踐的方法來……
自控原理的書上有提到“串聯(lián)響應(yīng)頻率校正”的設(shè)計(jì)方法,但是該方法屢試都不爽,有興趣可以從這個(gè)方向走走,說不定能為我們的四軸PID控制器設(shè)計(jì)找到一條出路。
之前我曾說過,用Kp Ti Td型的參數(shù)設(shè)計(jì)的PID控制器穩(wěn)定性對(duì)Kp并不敏感,那么我們是不是可以利用這點(diǎn)來優(yōu)化我們的控制器設(shè)計(jì)呢?答案是肯定的。我們先來看下按照上面的‘向右看齊’參數(shù)調(diào)整方法會(huì)發(fā)生什么:
我們隨便選一個(gè)在連線上的點(diǎn)作為參數(shù)查看它的開環(huán)零極點(diǎn)和閉環(huán)階躍響應(yīng)(這里Kp去1):
可以看到,積分的效果明顯減弱了,系統(tǒng)先在0.幾秒的時(shí)候迅速的達(dá)到了穩(wěn)態(tài)(0.3左右)然后在以后漫長(zhǎng)的時(shí)間內(nèi)在積分作用的影響下以指數(shù)逼近最終的穩(wěn)態(tài)1,大家看著這個(gè)圖應(yīng)該很快就想到該怎么做了,就是增大Kp,讓系統(tǒng)的‘第一個(gè)’穩(wěn)態(tài)在1附件,那問題就解決了,不錯(cuò),我們這里把Kp設(shè)為4(不設(shè)置為3是為了等下驗(yàn)證另一個(gè)東西):
瞧,這個(gè)很丑的怪物出現(xiàn)了,比剛才好了不少,而且你最終得到的PID控制器輸出效果會(huì)和這個(gè)差不了許多(之所以在視頻上看不出來是因?yàn)槿撕苌贂?huì)從0----Pitch角0°突然給飛機(jī)一個(gè)1----Pitch角57°)另外要說的是為什么我用了4依然沒有讓它的第一步就穩(wěn)定到1,這是因?yàn)殚]環(huán)降低了系統(tǒng)總增益,但是這里給再高的增益會(huì)讓系統(tǒng)不穩(wěn)定,原因就在下面了:
為了更直觀的說明不穩(wěn)定的原因,這里要用Bode圖來看一下系統(tǒng)閉環(huán)的頻域響應(yīng):
可以看到在頻域響應(yīng)有個(gè)很尖的尖峰,這個(gè)尖峰就是我們說的PID在這種情況下沒法達(dá)到優(yōu)良控制性能的關(guān)鍵,你會(huì)發(fā)現(xiàn),使用純PID控制的飛控,都會(huì)在空中來回抖動(dòng),頻率基本是固定的,就是這個(gè)尖峰的緣故,尤其當(dāng)Pitch軸和Roll軸使用同樣的控制參數(shù)的時(shí)候,抖動(dòng)會(huì)疊加,你經(jīng)常會(huì)看到視頻里用純PID控制的四軸在兩個(gè)控制軸交界的方向上抖啊抖抖啊抖抖啊抖抖啊抖…………于是這里就是我們需要用實(shí)驗(yàn)來權(quán)衡的地方,這個(gè)尖峰通過減小Kp的值可以得到一定的抑制,也可以讓零點(diǎn)向左少許移動(dòng),二者都會(huì)延長(zhǎng)到達(dá)穩(wěn)態(tài)的時(shí)間,比較明智的做法是保證有足夠的響應(yīng)速度的前提下適當(dāng)減小增益,畢竟在PID沒法很好的完成控制任務(wù)的情況下,人的操作就顯得非常重要了。這里給出我使用的一組PID參數(shù):
也就是說,我提出的整定方法,在可以建模的情況下:
?、俳⒈豢叵到y(tǒng)的模型
?、诟鶕?jù)上述的原則確定PID的開環(huán)0點(diǎn)應(yīng)該出現(xiàn)的區(qū)域(就是在那個(gè)連線上)
?、劢o一個(gè)開環(huán)情況下穩(wěn)態(tài)誤差較小的Kp
?、芸粗A躍響應(yīng)微調(diào)Ti和Td使得在保證Td足夠大的情況下超調(diào)量較小且積分效果打到穩(wěn)態(tài)的時(shí)間又足夠的長(zhǎng)(2~3s以上依據(jù)個(gè)人口味)
?、葑詈罂粗鳥ode圖適當(dāng)減小增益Kp
?、藁仡^再檢查下階躍響應(yīng)是否滿足心意就完事兒了
看到這兒,不知道有多少人會(huì)和我一樣苦苦的一笑(這TM繁瑣的步驟有意思嗎?),這么做確實(shí)是一件非常不值得的事情,只是如我這般不服氣的孩子憑著一股刨根問底的沖勁花了2個(gè)月用自己的方式來調(diào)PID的真實(shí)記錄而已,好了,現(xiàn)在再來介紹不建模的情況下怎么通過試驗(yàn)整定四軸的PID參數(shù)
評(píng)論
查看更多