各位前輩好
小弟想在FPGA底下做PID的定點回授控制
這邊有兩個問題想請教大家
(1)為什麼有些人的PID元件會顯示為gain x 2^8
而我的元件卻沒有出現
這是可以在LABVIEW內調整的嗎??
(2)我想在FPGA底下給一個步階輸入
然後設定一個目標位置(setpoint)
藉由PID控制器 讓我的步階響應可以快速達到目標位置(我是做位置回授 藉由量測值與目標值的誤差來做回授)
不過我的PID控制器沒有反應
不知到有沒有前輩可以替小弟解答??
在此附上我的程式碼
已解決! 轉到解決方案。
在 06-20-2011 05:09 AM
在 06-21-2011 04:41 AM
感謝您的回應
我重新寫了一遍程式
不過PID控制器還是毫無反應
想請各位前輩幫小弟解答一下
謝謝
在 06-22-2011 06:52 AM
你好
我看了您的程式碼,對於有些地方有疑問。不知道您所謂的PID毫無反應是什麼意思呢?因為兩個迴圈中都是使用AO0,所以會一值不斷彼此將值覆蓋,若是您用AO0來判斷PID有沒有輸出值,可能會有問題。建議您可以接一個waveform chart在PID的output來看值是否有正常輸出。我附圖示在附件檔案中,您可以參考看看,謝謝。
在 06-22-2011 07:22 AM
給penguinjazzy
我想我可能講的不是很清楚
我現在想做一個定點控制實驗
假設我現在物體與感測器的距離為3V
那現在我想由距離3V移動到距離2V的位置
請問我的setpoint是要接2V還是1V??
還有我的process variable是直接接AI0就可以了嗎??
還是需要乘-1來做回授控制??
我發現之前的AO0的確會覆蓋掉先前的值
因此重新寫過程式
不過PID控制器還是沒有反應
也就是說沒有控制到我的系統
不知道是哪裡出了問題
不好意思問了妳那麼多問題
因為小弟還是個新手
感謝您的回答
下面是我的程式附件碼
在 06-23-2011 02:27 AM
您好
若要到達的目標為2V,那setpoint則是設定成2V。AI的部分則應該以物體所在的位置值作為輸入。就現在這個程式碼來看,PID的output應該要會有值出現才對。但您之前的程式碼有兩個迴圈,現在這一個只有一個迴圈,請問之前的那一個步階響應的迴圈您有同時在執行嗎? 還是現在就只有一個迴圈在FPGA裡面跑而已?若是只有目前這一個迴圈,可否請您提供所設定的參數。因為有可能是FPGA處理速度太快而造成PID迴授跟不上,所以建議可以試著將同樣的程式碼拿到RT或者Winodws作業系統下去做執行,或者將迴圈速度調慢,依此去判斷是程式碼的問題,或者是FPGA本身的問題。謝謝。
PS: 若是為兩個迴圈同時在執行,那步階響應的那個迴圈因為指定到的AO跟PID是同一個,就會造成值互相覆蓋喔