2013年8月22日 星期四

Marlin 擠出頭溫度控制PID值校正

擠出頭加熱器、溫度感應器安裝好後,先別急著直接指定工作溫度並且加熱。因為控制板上的溫度控制PID參數尚未校正。如果加熱速度過快,有可能會加熱過度並且導致零件燒毀。

Marlin 有提供 PID 參數自動校正的功能 (PID Autotune)

加熱器、溫度感應器線路接妥後,執行G-code "M303 C8 S175" (自動調整PID參數,溫度震盪8次後停止,目標溫度175度。)。

若收到錯誤訊息"PID Autotune failed! Temperature too high",代表初始測試條件會讓溫度超出目標溫度20度。這時候需要修正韌體中的PID_MAX(加熱頭最高電流上限)。請修改Configuration.h中的PID_MAX(譬如改為原本的一半),然後重新燒錄韌體後,再回到上個步驟做 "M303 C8 S175"。如果重複測試後溫度上不去,請提高PID_MAX。如果溫度還是衝過頭,請繼續降低PID_MAX。

待收到 "PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h" 的訊息,請用測試過程中最後一輪的 Kp, Ki and Kd 值,替換掉 Configuration.h 中的 DEFAULT_Kp, DEFAULT_Ki 和 DEFAULT_Kd。之後重新燒錄韌體,完成擠出頭溫度控制校正。


感謝Jacky Yen提供圖片

編按:自動測出來的PID,依我的經驗,仍然會有衝過頭的現象。我是有把P值稍微再調低一點。

12 則留言:

  1. 這些值跟加熱上的溫度有關係嗎?!因為我現在加熱床(10K)用這些偵測出來的數值,我每次都加熱約55度,會讓RAMP 1.4產生一種類似機板燒掉的味道,但不至於當機,好像是 上面兩片黃色的方形電子元件產生的,我是不是要降低這些數值!?有幫助嗎!?

    回覆刪除
    回覆
    1. RAMPS 1.4發出燒掉的味道!? 應該是你的熱床或是熱床線路有問題吧!?我不覺的修改PID參數對你的問題有幫助。

      刪除
    2. ramps 配熱床建議加個 relay (中文叫繼電器?)
      有朋友試過因熱床電流太大燒掉 ramps 了..

      刪除
  2. 你好

    請問一般正常狀態下,從室溫加熱到180度大約要多久的時間?

    回覆刪除
  3. 您好,我想請問您,加熱床的溫度有參數可以調整嗎,有爬文可是找不到相關的文章,我溫度設定在110度(ABS),但是天氣熱的時候怎麼加熱都只有93度(加熱了五個多小時),天氣冷的時候(像今天),加熱2小時了只有83度...望請賜教。

    回覆刪除
    回覆
    1. 不好意思,好像是我的加熱板壞掉了,只有後半會熱前半不會熱

      刪除
  4. 作者已經移除這則留言。

    回覆刪除
  5. 你好,我想問說,我目前遇到問題是加熱床溫度設定80度,但在60度就會停止加熱。也有出現到了80度,確無法持續維持加熱,這樣問題是出在哪裏呢?

    回覆刪除
    回覆
    1. 你說的"停止加熱",是指控制板停讓的軟體下指令停止加熱呢? 還是控制板認為要繼續加熱,但是熱床的溫度卻不會繼續上升?
      如果是後者,那也許是加熱板的電線有接觸不良的問題。

      刪除
    2. 你好,可能是您說的前者,熱床到一溫度後,控制板與加熱板上的LED燈就熄滅了,溫度就下降無法持續熱床。而加熱板換到其他機器測試熱床升溫是沒有問題的,所以想詢問一下這樣如何解決?謝謝

      刪除
  6. 請問大大~我想知道熱床是否可以自動調PID?~因為我的熱床每次都加熱很慢~要是只能手動要怎麼調呢?~

    回覆刪除
    回覆
    1. 熱床加熱慢,應該是加熱功率不足的問題。調整PID應該是沒辦法讓加熱速度變快的。
      如果希望加熱速度變快,也許可以考慮換用繼電器讓熱床直接接110V市電。

      刪除