NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

PID回授控制

已解決!
前往解決方案

各位前輩好

小弟想在FPGA底下做PID的定點回授控制

這邊有兩個問題想請教大家

 

(1)為什麼有些人的PID元件會顯示為gain x 2^8

    而我的元件卻沒有出現

    這是可以在LABVIEW內調整的嗎??

 

(2)我想在FPGA底下給一個步階輸入

    然後設定一個目標位置(setpoint)

    藉由PID控制器 讓我的步階響應可以快速達到目標位置(我是做位置回授 藉由量測值與目標值的誤差來做回授)

    不過我的PID控制器沒有反應

    不知到有沒有前輩可以替小弟解答??

 

    在此附上我的程式碼

 

1 條訊息(共 6 條)
7,567 檢視

感謝您的回應

我重新寫了一遍程式

不過PID控制器還是毫無反應

想請各位前輩幫小弟解答一下

 

謝謝

 

0 積分
3 條訊息(共 6 條)
7,544 檢視

你好

 

    我看了您的程式碼,對於有些地方有疑問。不知道您所謂的PID毫無反應是什麼意思呢?因為兩個迴圈中都是使用AO0,所以會一值不斷彼此將值覆蓋,若是您用AO0來判斷PID有沒有輸出值,可能會有問題。建議您可以接一個waveform chart在PID的output來看值是否有正常輸出。我附圖示在附件檔案中,您可以參考看看,謝謝。

0 積分
4 條訊息(共 6 條)
7,535 檢視

給penguinjazzy

 

我想我可能講的不是很清楚

我現在想做一個定點控制實驗

 

假設我現在物體與感測器的距離為3V

那現在我想由距離3V移動到距離2V的位置

請問我的setpoint是要接2V還是1V??

 

還有我的process variable是直接接AI0就可以了嗎??

還是需要乘-1來做回授控制??

 

我發現之前的AO0的確會覆蓋掉先前的值

因此重新寫過程式

不過PID控制器還是沒有反應

也就是說沒有控制到我的系統

不知道是哪裡出了問題

 

不好意思問了妳那麼多問題

因為小弟還是個新手

感謝您的回答 

下面是我的程式附件碼

 

 

0 積分
5 條訊息(共 6 條)
7,530 檢視
解決方案
接受者 Johnson22

您好

     若要到達的目標為2V,那setpoint則是設定成2V。AI的部分則應該以物體所在的位置值作為輸入。就現在這個程式碼來看,PID的output應該要會有值出現才對。但您之前的程式碼有兩個迴圈,現在這一個只有一個迴圈,請問之前的那一個步階響應的迴圈您有同時在執行嗎? 還是現在就只有一個迴圈在FPGA裡面跑而已?若是只有目前這一個迴圈,可否請您提供所設定的參數。因為有可能是FPGA處理速度太快而造成PID迴授跟不上,所以建議可以試著將同樣的程式碼拿到RT或者Winodws作業系統下去做執行,或者將迴圈速度調慢,依此去判斷是程式碼的問題,或者是FPGA本身的問題。謝謝。

 

PS: 若是為兩個迴圈同時在執行,那步階響應的那個迴圈因為指定到的AO跟PID是同一個,就會造成值互相覆蓋喔

0 積分
6 條訊息(共 6 條)
7,521 檢視