Marlin 擠出頭溫度控制PID值校正
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值稍微再調低一點。
以電子郵件傳送這篇文章BlogThis!分享至 Twitter分享至 Facebook分享到 Pinterest
4 則留言:

這些值跟加熱上的溫度有關係嗎?!因為我現在加熱床(10K)用這些偵測出來的數值,我每次都加熱約55度,會讓RAMP 1.4產生一種類似機板燒掉的味道,但不至於當機,好像是 上面兩片黃色的方形電子元件產生的,我是不是要降低這些數值!?有幫助嗎!?
RAMPS 1.4發出燒掉的味道!? 應該是你的熱床或是熱床線路有問題吧!?我不覺的修改PID參數對你的問題有幫助。

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

你好
請問一般正常狀態下,從室溫加熱到180度大約要多久的時間?
Marlin 擠出頭溫度控制PID值校正的更多相关文章
- Marlin 溫度感應器 數值轉換對應表
Marlin 溫度感應器 數值轉換對應表 (2014/03/27)Update: 自己實測了這個自動產生的對應表,結果測得的溫度與實際值仍有相當大的誤差.看來還是要回頭用測量的方式來校正溫度... ...
- 擠出線寬(Extrusion width),要怎麼設定?
擠出線寬(Extrusion width),要怎麼設定? Slic3r的作者,把這邊的%設定,跟"層高"做連結.我個人認為擠出線寬,要以噴頭孔徑當做設定參考才好.層高應該只要設定成 ...
- Marlin 溫度 sensor 校正
Marlin 溫度 sensor 校正 使用 Type-K 溫度計 將探針綑綁在加熱頭側面 開啟Marlin-Marlin_v1\Marlin\thermistortables.h 要修改的溫度對應表 ...
- 擠出機步進馬達的 Steps per Unit 該如何計算?
擠出機步進馬達的 Steps per Unit 該如何計算? 這邊 Steps per Unit 指的是塑料往前推進1mm,步進馬達須要走幾步.依此定義,可知計算方式可以用 步進馬達轉一圈需要的步 ...
- 華氏溫度轉化為攝氏溫度的簡單JavaScript代碼
今天,跟著W3School學到了"JavaScript函數",代碼都挺簡單的,在運算符調用函數的地方寫了一個小程序.原碼程序是這樣的: <!DOCTYPE html> ...
- C. Om Nom and Candies 巧妙优化枚举,将复杂度控制在10e6
C. Om Nom and Candies 无线超大背包问题 #include <iostream> #include <cstdio> #include <cstrin ...
- 手動設定 電池溫度 mtk platform
adb root adb shell echo "3 1 27" > ./proc/mtk_battery_cmd/battery_cmd 27 即是所要設定的溫度, 此設定 ...
- 測試 電池溫度的 batch file
無限迴圈, 執行讀取 電池溫度, @echo off adb root :loop echo %date% %time% adb shell "cat /sys/class/power_su ...
- Delphi 使用CreateProcess创建进程并弹出进程PID值 (转)
var ExeName:PChar; StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation;begin FillChar(Proc ...
随机推荐
- day4_高效处理文件
read()将文件内容从磁盘中全部读出,放到内存,再给cpu处理,性能低,如果文件量大,很容易内存溢出或卡死. 高效方式: 方式一:一般不用的,代码行多 f = open('users.txt','r ...
- 《linux 字符处理》- grep/sort/uniq/tr/paste
一:基本 字符处理主要是文本的搜索和处理. 搜索也主要使用到了 管道 作为媒介. 二: grep 搜索文本 基本语法 * grep [-incv] ’文本’ 文件 * i 不区分大小写 * c 匹配行 ...
- python接口测试实例--数据驱动(程序与数据分离)
#encoding=utf-8import requestsimport jsonimport osimport hashlibimport picklefrom conf import * stat ...
- VS2013 opencv配置
有三个地方需要配置,在配置之前首先要将platform配置好,下面的例子是x64 Release的“ 然后需要将include.lib的路径配置好 然后将dll拷贝至编译生成的Release文件夹中即 ...
- JVM java垃圾回收机制
一.jvm简介 1.JVM内存运行时数据区的三个重要的地方 1.1.堆(heap):它是最大的一块区域,用于存放对象实例数组,是全局共享的. 1.2.栈(stack):全称为虚拟机栈,主要存储基本数据 ...
- basename 命令
basename命令的作用是获取脚本的名字 basename 作用:从给定的包含绝对路径的文件名中去除路径,然后返回剩下的文件名 [root@salt-client- sh1]# basename / ...
- 导出toolStrip1中的图标
foreach (ToolStripItem c in toolStrip1.Items) { if (!(c is ToolStripButton)) continue; var btn = (To ...
- Redis入门到高可用(五)—— 单线程
一.单线程为何这么快 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框 ...
- python中的0,None,False,空容器
在Python中,None.空列表[].空字典{}.空元组().0等一系列代表空和无的对象会被转换成False.除此之外的其它对象都会被转化成True. 1.0等于False,这点要注意. 2.空的l ...
- DS1-2
#include <stdio.h> void PrintN_1(int i, int N); void PrintN_2(int i); int main() { int n; scan ...