1.可以直接套用PID公式,無論增量還是絕對的。PID演算法是根據誤差來控制的演算法,不依賴系統的模型,故不用算系統的傳遞函數。有的書提到傳遞函數,一般是用於理論建模模擬,從而直接用Matlab一類的模擬軟體進行PID參數調試。得到的參數可以為實際應用提供一定參考價值。
2.PID參數整定有一套原則。首先要了解各個參數的作用。具體的整定方法,隨便找本自控原理的書都會提到,我不太記得了,大致是有一個倍數關系。但實際操作,一般不會是用這個數,是需要根據系統的反應,改變各個參數來試的。盡信書不如無書啊~
另外,不同系統的參數肯定不一樣。就算同一個系統,稍微有一些改變,可能最好的那組參數就會變化。因此衍生了很多先進PID演算法,如神經PID、專家PID、模糊PID等等。
2. 單片機PID控制問題
首先弄清楚PID是一種控制演算法!!!
1,「如果用單片機恆溫可以使溫度到達預定值就停止加熱,低了就加熱,用一個溫度感測器反饋,這樣算是一個自動控制嗎」你這是控制系統,但是效果會非常差,尤其是對於溫度控制這種大慣性系統,達到預定值就停止加熱,但是由於慣性,溫度肯定會繼續上升,電爐燒水的時候,水開了,斷電之後水還要沸騰一定時間的(沸騰是很消耗能量的,由此可見如果是加熱的話溫度上升更嚴重,你也可以自己用溫度計試試看);「低了就加熱」是同樣的道理。如果系統對控制精度有要求,你這樣做肯定達不到要求。PID是一種控制演算法,相對於其他控制演算法來說算是最簡單的了。PID能夠做到在溫度快要達到設定值的時候降低加熱功率,讓溫度上升速度變慢,最終穩定在設定值。如果用你的直接控制,溫度會在設定值上下振盪,永遠不會停在設定值。
2,一般的控制系統都需要加反饋,以構成閉環控制系統,相對的還有開環控制系統。開環控制系統,舉個例子,就是你加熱的時候事先計算好大約需要多少熱量,然後考慮一下環境影響,計算出加熱時間,然後控制加熱系統按照你這個時間加熱。你覺得這樣的系統能夠穩定工作嗎?環境稍稍有變動就掛了!開環控制系統的特點就是很容易受到環境的影響;閉環控制系統就穩定很多,你用1L水可用,2L水也行,500W電能用,1000W電爐也能用,這就是閉環的優點。
因此,大多數的控制系統都是閉環的,開環很少單獨使用,即使用到了也是有閉環的。開環其實也是有優點的,開環在控制系統裡面叫做前饋(跟反饋對應的),比如你的系統裡面電源電壓上升了,加熱速度肯定會變快,如果你對電源電壓采樣,將采樣的結果輸入到閉環裡面,對閉環做一個輕微的修正,控制的精度會更好,這就是開環的優勢,它是超前的,能夠預知結果(根據地源電壓提高就能知道需要降低輸出功率了)。
說完這些,你應該明白了,反饋是必需的(前饋也可以要,但是不是必需的),PID不能被取代(除非你用其它更復雜的控制演算法)。
3. 單片機pid控制壓力執行周期是多少
15毫秒。單片機pid控制壓力執行周期是15毫秒,因為如果執行周期太短,會導致單片機負擔過重,降低系統響應速度,如果執行周期太長,會導致控制精度不高,無法滿足實際控制需求。
4. 單片機如何寫PID程序
PID演算法有公式,直接套用就可以了。
公式在這個鏈接說的很明白了。
http://ke..com/view/1759810.htm
1、如果加入D抖動的特別厲害,試試只用PI控制。
2、還有PID參數都是一步一步調出來的,我建議你做個上位機,就是個簡單的VB串口程序,用來設置PID參數
3、然後在單片機這邊弄個串口接收程序,這里就是個簡單的串口程序,人人都會,把接收到的PID存儲在緩沖區里。
4、然後單片機程序直接調用。單片機帶EEPROM的話,當接收到改變的PID參數時,存儲這些參數。去STC官網下你的單片機資料,上面有EEPROM測試程序,直接套用。
上面純屬個人建議,都容易實現,不過有點費時。