Калибровка измерителя температуры

Калибровка измерителя температуры

Владимир Шумов

Графомания о SHUI


Значение измеряемой температуры зависит от нескольких факторов, но влиять мы, как пользователи, можем только на один - преобразование измеренных АЦП значений в значения температуры в градусах Цельсия. Какой бы термистор у вас ни стоял дальнейшие действия будут одинаковые:

  • выбор таблицы преобразования
  • точная подстройка коэффициентами приведения

У термисторов применяемых в большинстве 3d принтеров нелинейная характеристика зависимости значения полученных с АЦП контроллера от температуры, поэтому для них составлены таблицы преобразования.

Зависимость значений ЦАП от температуры

Из графика хорошо видно, что рабочий диапазон системы ЦАП-термистор 20-200 градусов. Выше 200 градусов точность измерения начинает падать. Так при температуре 250 градусов разрядности АЦП едва хватает для определения изменения температуры на 1 градус.

Предельный диапазон

Конечно, можно увеличить точность АЦП за счет увеличения числа измерений и вместе с этим расширить таблицу преобразования, но сейчас мы рассматриваем те возможности, которые заложены в имеющихся алгоритмах и данных.

В SHUI можно выбрать одну из 6 таблицы преобразования, 2 из который относятся к PT1000, о котором речь пойдет позже.

  • Марлин №1, R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
  • Марлин №5, R25 = 100 kOhm,100k ParCan thermistor (104GT-2)
  • Марлин №9, R25 = 100 kOhm, beta25 = 3960 K, 4.7 kOhm pull-up, GE Sensing AL03006-58.2K-97-G1
  • Марлин №66, R25 = 2.5 MOhm, beta25 = 4500 K, 4.7 kOhm pull-up, DyzeDesign 500 °C Thermistor
  • Марлин №1010, Pt1000 with 4k7 pullup
  • Марлин №1047, Pt1000 with 1k pullup
  • Марлин №110, Pt100 with 4k7 pullup
  • Марлин №147, Pt100 with 1k pullup

Почему выбраны именно они, я не знаю, но посмотрим на их таблицы преобразования в сравнении:

Сравнение таблиц термисторов

Становится очевидным выбор. Термистор 66 хорошо себя чувствует при температурах близких к 300 градусам. Его можно использовать, если температура печати достигает 300-350 градусов Цельсия, а термисторы 5 и 9 смещают диапазон измерений на 5-10 градусов влево или вправо.

Особо хочу обратить внимание, что в прошивке SHUI номера термисторов не соответствуют номерам, присвоенным в Marlin!

Сначала хотел нарисовать сам, потом нашел готовое, так что просто копирую сюда:

Отличие термистора от терморезистора


Датчики серии Pt100, Pt1000 являются терморезисторами (правая картинка), а серии NTC - термисторами (левая картинка).

Грубая настройка

Для начала, надо определить, какой тип датчика стоит.

  • Откройте настройки контроля нагревателей, и отключите контроль превышения температуры, контроль сенсора, контроль скорости нагрева. О том, где это находится, читайте мануал http://shui.hardisoft.ru
  • В настройках укажите номер термистора 0 (ноль). Это ВАЖНО!
  • Выйдите из настроек и откройте виджет управления температурой (дочитайте до конца, то, что надо сделать дальше)
  • Текущая температура настраиваемого нагревателя может сильно отличаться о той, которая отображается на дисплее. Это пока не важно. Задайте нагрев +10 градусов от той температуры, которая отображается. Будьте готовы прервать нагрев аварийно (снова установить 0, или выключить принтер)
  • Если температура стала подниматься и достигла целевой, то у вас стоит термистор NTC, если показания на дисплее начали уменьшаться - терморезистор, скорее всего PT1000.
  • Можно обойтись и без нагрева. При комнатной температуре Pt1000 покажет около 160 градусов, термистор 66 (beta25 = 4500) будет давать хаотичные показания в с разбросом 20-40 градусов, остальные термисторы покажут примерно правильные значения.

На этом этапе мы определили, какой сенсор установлен, pt1000 или NTC, а среди NTC выявили №66.

Для PT1000 и N66 следующий этап можно пропустить и перейти сразу к точным настройкам.

Для остальных термисторов надо выбрать наиболее подходящую таблицу преобразования: 1, 5 или 9 (в терминах Марлин. Повторюсь, в SHUI другие коды, о чем уже писал выше).

В конфигурации, пока так и должен остаться код термистора 0 (ноль).

Далее потребуется тестер с термопарой, которую тоже не плохо было бы проверить окунув в кипящую воду. Для калибровки нагревателя сопла проще всего открутить сопло и снимать показания внутри термоблока.

Если в настройках SHUI выставлен термистор 1, а реальные значения температуры ниже на 10-15 градусов, чем отображено на дисплее, следует выбрать термистор 5, если выше - 9. В мануале, на сайте http://shui.hardisoft.ru есть соответствие номера термистора Марлин и номера в настройках SHUI. Если отклонения незначительные, все в порядке, переходим к калибровке.

Калибровка

На этом этапе уже выбрана таблица термистора, показания температуры на дисплее достаточно близко соответствуют реальным. Все алгоритмы контроля нагревателя должны быть ВКЛЮЧЕНЫ!

  • Выполните калибровку PID

В SHUI есть алгоритм точной подстройки измеренной температуры. В настройках нагревателя для него нужно указать 2 коэффициента K и С. Формула преобразования имеет вид T=K*(T0-C) + C. Есть и вторая формула, использовать ее проще: T=K*T0+C

Первую формулу можно привести ко второй, и обратно, математику школьного уровня хотелось бы оставить за рамками статьи 👹. Я буду оперировать второй формулой, поэтому в настройках нагревателей сразу переключите на нее.

Если быть совсем точным, то формула преобразования температуры не даст абсолютной точности на всем диапазоне измерений, но для целей 3D печати результат будет более чем достаточный. Итак:

  • В настройках нагревателя выберите формулу T=K*T0+C
  • Укажите K=1 C=0 и сохраните изменения, закрыв виджет настроек
  • Далее, выберите 2 температуры, так, чтобы между ними была достаточно большая разница. 50 и 200 для сопла будет хорошо. Назовем их TL1 и TH1
  • Нагрейте сопло до температуры TL1 - 50 градусов, и дождитесь стабилизации
  • Сделайте замер термопарой тестера (то, что она не врет, ранее уже проверяли), полученную температуру назовем TL2. Путь она будет 52 градуса
  • Те же действия проведите с температурой TH1. Полученное значение, пусть 195 градусов назовем TH2
  • Осталось решить систему двух линейных уравнений 👹👹👹
TL2=K*TL1+C
TH2=K*TH1+C

TL2-TH2=K*TL1-K*TH1
K*(TL1-TH1)=TL2-TH2

K=(TL2-TH2)/(TL1-TH1)
C=TL2-K*TL1

или

K=(TL2-TH2)/(TL1-TH1)
C=TL2-(TL2-TH2)/(TL1-TH1)*TL1

подставляем значения

K=(52-195)/(50-200)=0.953333
C=52-0.953333*50 = 4.33333

проверяем

52=0.953333*50+4.33333 = 51,99998
195=0.953333*200+4.33333 = 194,99993

Сходится!!! Осталось записать в конфигурации нагревателя K= 0.953333, C=4.33333 и радоваться точным значениям температуры на дисплее.

Для совсем ленивых табличка excel https://t.me/c/1197511741/155971/289923










Report Page