Если паяльник простаивает (на подставке), то Т_реальная = Т_измеренная * k, где k < 1 (для моего паяльника и жала k = 0.75). Т_реальная - это то, что Вы называете t_disp, фактически это измеренная независимым термометром температура кончика жала.
Т_измеренная - это то, что Вы называете ADC_data, хотя у меня это уже готовое значение температуры горячего спая термопары после фильтрации, компенсации холодного спая и линеаризации.
При вычислении по такой формуле показания будут соответствовать действительности при любой температуре. А k легко найти при калибровке.
Но если теперь начать паяльником работать, то Т_реальная упадет, причем существенно, на 30 - 50 градусов, а Т_измеренная при этом останется неизменной (логично, ведь ее поддерживает ПИД). Никакими манипуляциями с этой формулой нельзя восстановить равенство, ведь единственная входная величина - Т_измеренная - осталась неизменной.
В данной ситуации может помочь мощность. При работе паяльником мощность, подводимая к нагревателю, растет. Вот ее и нужно учесть в формуле. Если вообще отказаться от калибровки и корректировать показания температуры согласно мощности, то формула получается такая: Т_реальная = Т_измеренная - P * m, где m для моего случая примерно равно 5, если мощность выразить в процентах. Причем эта формула работает как при простое паяльника, так и при работе им. Логично, так как физический смысл формулы тоже понятен: чем выше поток тепла в жале, тем выше разность температур. А поток пропорционален мощности.
Но... Мы не знаем абсолютной мощности. Есть только относительная. Поэтому компенсация будет плавать при изменении сетевого напряжения. И еще, зависимость эта примерная, точность компенсации зависит от температуры, так как термическая эквивалентная схема паяльника не учтена в полной мере (да ее никто точно и не знает).
Выход - скомбинировать оба способа калибровки. Вначале делаем калибровку как обычно. Она нам даст соответствие показаний температуры, когда паяльник в покое. При работе будет увеличиваться мощность P, это нужно как-то учесть в формуле. Как? Вот это и есть вопрос.
Пока видится только один вариант: при калибровке запоминаем мощность в калибровочных точках, по которым можно потом интерполировать график мощности покоя P(T). И использовать формулу: Т_реальная = Т_измеренная * k - (P - P(Т_измеренная)) * m. Т.е. использовать для компенсации не саму мощность, а ее превышение над мощностью покоя. В этом случае изменяя m можно плавно включать компенсацию по мощности. Если m = 0 - имеем ситуацию без компенсации, с простой калибровкой, как у всех. Чем тоньше жало, тем большее значение m выставляем в меню.
Есть еще идеи?





