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