MACHACC(PID)使用問題-PIC16F1614

作者 a780917a 於 2018年05月20日 16:55:00
不好意思又來求助..實在是看整個下午還看得很灰。
使用的PIC是PIC16F1614
用MAPLAB IDEX + MCC做設定

這次想問MACHACC(PID)的使用方式,如圖













想問Z0是當前誤差,PIDxZ1是上一筆誤差,PIDxZ2是上上筆誤差這樣理解對嗎?

我看手冊
PIDxK1 = (Kp+Ki*T+kd/T)
PIDxK2 = -(kp+ 2kd/T)
PIDxK3 = (Kd/T)

所以實際到Adder輸出的值是 Kp(Z0-Z1)+Ki*T(Z0) (Kd先假設0不使用)
然後輸出的Adder值又會跟PIDxOUT上一筆數值做累加。
這邊的問題是Sample Time 如果設0.1ms的話,每0.1ms Accumulator就會做一次累加嗎?
那Accumulator的數值會不會很容易溢位?

第三個問題是 我最大誤差為20,000 但是我要輸出的數值只有300的解析度。
我看MCC上的Kp與Ki值的設定好像只能到小數點一位,
這樣我最後出來的值還是會比300大很多,這部分我還是需要再程式中用軟體的方式做除法嗎?

最後問有沒有這部分的範例或課程呢? 手冊翻來翻去都還是看不太懂正確的使用方式。

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22298&post_id=78171