Логистическое уравнение
- 1 year ago
- 0
- 0
Уравне́ние Сте́йнхарта — Ха́рта — математическая модель, описывающая сопротивление полупроводниковых терморезисторов с отрицательным температурным коэффициентом электрического сопротивления в зависимости от температуры.
В наиболее общем виде это уравнение:
В практических расчётах членом суммы и последующими членами обычно пренебрегают так как они, как правило, вносят несущественный вклад в точность результата расчётов по уравнению.
Поэтому уравнение обычно записывают так:
Коэффициенты , , зависят от параметров терморезистора и от диапазона температур в котором это уравнение даёт достаточную для практического применения точность.
Для вычисления сопротивления терморезистора при заданной температуре используется обратное уравнение Стейнхарта — Харта:
Если коэффициенты уравнения неизвестны для конкретного терморезистора, то они могут определены экспериментально по трём сопротивлениям терморезистора при трёх разных температурах.
Коэффициенты находятся как решения системы из трёх уравнений:
где , и — значения сопротивления при температуре , и соответственно.
Подстановки и решение системы:
Уравнение позволяет по измеренному сопротивлению терморезистора вычислить его температуру и обратно — по температуре терморезистора вычислить его сопротивление и обеспечивает хорошую точность во всем рабочем диапазона температур, например, терморезистивного термометра.
Коэффициенты входящие в уравнение Стейнхарта — Харта обычно публикуются производителями терморезисторов в справочных данных на конкретные типы терморезисторов.
#!/usr/bin/env ruby
puts puts "\t\u2318\u2318 You're using Ruby ver. " + RUBY_VERSION + "\t\u2318\u2318"
$k = 273.15
E = ( Math::E )
def ln(x)
( ln = Math.log(x) )
end
def sqrt(x)
( sqrt = Math.sqrt(x) )
end
def cbrt(x)
( cbrt = Math.cbrt(x) )
end
def exp(x)
( exp = Math.exp(x) )
end
#-----------------------------------
def arr_abc(t1, r1, t2, r2, t3, r3)
y1 = 1 / t1; y2 = 1 / t2; y3 = 1 / t3
l1 = ln(r1); l2 = ln(r2); l3 = ln(r3)
g2 = (y2 - y1) / (l2 -l1)
g3 = (y3 - y1) / (l3 -l1)
c = ((g3 -g2) / (l2 - l1)) / (l1 + l2 + l3)
b = g2 - c * (l1 ** 2 + l1 * l2 + l2 ** 2)
a = y1 - (b + c * l1 ** 2) * l1
arr_abc = [a, b, c]
end
=begin
# Прмер ввода экспериментальных данных:
t1 = 0 + $k; r1 = 32.014e+3
t2 = 40 + $k; r2 = 5.372e+3
t3 = 70 + $k; r3 = 1.7942e+3
# -------------------------------------
=end
# Расчёт:
tmp = arr_abc(t1, r1, t2, r2, t3, r3)
a_t = tmp[0]; b_t = tmp[1]; c_t = tmp[2]
#puts "A = #{a_t}, B = #{b_t}, C = #{c_t}"
#------------------------
=begin
# Данные для проверки:
t = 55; t = t + $k
=end
x = (a_t - 1 / t) / c_t
y = sqrt((b_t / (3 * c_t)) ** 3 + (x / 2) ** 2)
#--------------------------
# Расчет сопротивления по температуре:
r_tmp = exp( cbrt(y - (x / 2)) - cbrt(y + (x / 2)) )
puts "T = #{t - $k}°C, R = #{(r_tmp).round(1)} Ω"
# Расчет температуры по сопротивлению:
t_r = 1 / (a_t + b_t * ln(r_tmp) + c_t * ((ln(r_tmp).abs) ** 3) )
puts "R = #{(r_tmp).round(1)} Ω, T = #{(t_r - $k).round(2)}°C"
Результат:
T = 55.0°C, R = 3052.2 Ω
R = 3052.2 Ω, T = 55.0°C
Из datasheet для EPCOS R/T:4901; B25/100: 3950K
— 3.0393 kΩ —
Уравнение названо в честь ( John S. Steinhart ) и ( Stanley R. Hart ), впервые опубликовавших его в 1968 г.
Профессор Стейнхарт (1929—2003), член Американского Геофизического Союза и Американской ассоциации содействующей развитию науки , был членом факультета Висконсинского университета в Мадисоне с 1969 по 1991 гг.
Доктор Харт, старший научный сотрудник в Woods Hole Oceanographic Institution с 1989 и член Геологического сообщества Америки , Американского Геофизического Союза , геохимического сообщества и европейской ассоциации геохимии , работал с профессором Стейнхартом в институте Карнеги в Вашингтоне, где было предложено это уравнение.