Экспериментальное определение коэффициентов уравнения стейнхарта харта

Измерение температуры с помощью терморезистора и Arduino

Использование терморезистора (термистора) – один из самых простых и дешевых способов измерения температуры. Для точного измерения температуры с помощью терморезистора необходим микроконтроллер, в качестве которого в нашем проекте мы будем использовать плату Arduino. Измеренное значение температуры будет отображаться на экране ЖК дисплея. Подобная схема может найти применение в удаленных метеорологических станциях, проектах автоматизации (умного) дома, управления электронным и промышленным оборудованием.

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Видео:Урок 104 (осн). Экспериментальное определение коэффициента объемного расширения жидкостиСкачать

Урок 104 (осн). Экспериментальное определение коэффициента объемного расширения жидкости

Необходимые компоненты

  1. Плата Arduino (любая модель) (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. NTC thermistor 10 кОм (терморезистор с отрицательным температурным коэффициентом) (купить на AliExpress).
  4. Резистор 10 кОм (купить на AliExpress).
  5. Соединительные провода.

Видео:Определение коэффициента вязкости жидкости методом СтоксаСкачать

Определение коэффициента вязкости жидкости методом Стокса

Работа схемы

Схема устройства представлена на следующем рисунке.

Экспериментальное определение коэффициентов уравнения стейнхарта хартаПри изменении температуры изменяется сопротивление терморезистора (термистора). Но в нашей схеме мы не будем измерять сопротивление термистора напрямую, вместо этого мы использовали делитель напряжения, одним из резисторов которого является известное сопротивление 10 кОм, а вторым – наш терморезистор. Средняя точка делителя напряжения подключена к аналоговому входу A0 платы Arduino, поэтому при помощи аналогово-цифрового преобразования (АЦП) на этом контакте мы можем определить падение напряжение на терморезисторе в любой момент времени и, следовательно, и его сопротивление. Благодаря этим данным мы по формулам, приведенным ниже в данной статье, можем определить значение температуры.

Видео:Решение задач на термохимические уравнения. 8 класс.Скачать

Решение задач на термохимические уравнения. 8 класс.

Терморезистор

Ключевым компонентом нашей схемы является терморезистор, который используется для определения температуры. Термистор представляет собой резистор, сопротивление которого изменяется в зависимости от температуры. Существует два типа подобных термисторов: NTC (Negative Temperature Co-efficient — с отрицательным температурным коэффициентом) и PTC (Positive Temperature Co-efficient — с положительным температурным коэффициентом). Мы в нашем проекте будем использовать терморезистор NTC типа – его сопротивление уменьшается с повышением температуры. На следующих рисунках приведены график зависимости сопротивления подобного терморезистора от температуры и его типовой внешний вид.

Экспериментальное определение коэффициентов уравнения стейнхарта хартаЭкспериментальное определение коэффициентов уравнения стейнхарта харта

Расчет температуры с помощью терморезистора

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

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Напряжение на терморезисторе в этой схеме можно определить из известного напряжения:

Из этой формулы можно выразить значение сопротивления терморезистора Rt (R – известное сопротивление 10 кОм):

Значение Vout мы затем будем определять в коде программы с помощью считывания значения на выходе АЦП на контакте A0 платы Arduino.

Математически, сопротивление терморезистора можно вычислить с помощью известного уравнения Стейнхарта-Харта (Stein-Hart equation).

T = 1/(A + B*ln(Rt) + C*ln(Rt) 3 ) .

В этой формуле A, B и C — константы, Rt – сопротивление терморезистора, ln — натуральный логарифм.

Мы для проекта использовали терморезистор со следующими константами: A = 1.009249522×10 −3 , B = 2.378405444×10 −4 , C = 2.019202697×10 −7 . Эти константы можно определить с помощью данного калькулятора, введя в нем значения сопротивления терморезистора при трех значениях температуры или вы их можете непосредственно узнать из даташита на ваш терморезистор.

Таким образом, для определения значения температуры нам будет нужно только значение сопротивления терморезистора – после его определения мы просто подставляем его значение в уравнение Стейнхарта-Харта и с его помощью рассчитываем значением температуры в кельвинах. Алгоритм определения температуры в нашем проекте представлен на следующем рисунке.

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Видео:Как расставить коэффициенты в органических ОВР? | Екатерина СтрогановаСкачать

Как расставить коэффициенты в органических ОВР? | Екатерина Строганова

Исходный код программы

Полный код программы представлен в конце статьи, здесь же сначала рассмотрим его наиболее важные фрагменты.

Для выполнения математических операций в программе мы должны подключить заголовочный файл библиотеки “ #include >”, а для работы с ЖК дисплеем – подключить библиотеку “ #include
«. Далее в функции setup() мы должны инициализировать ЖК дисплей.

Видео:ЛР-10-2-03 Определение коэффициента поверхностного натяжения методом отрыва капельСкачать

ЛР-10-2-03 Определение коэффициента поверхностного натяжения методом отрыва капель

Уравнения для термисторов

Точного уравнения для описания поведения термистора не существует, – имеются только приближенные. Рассмотрим два широко используемых приближенных уравнения.

Первое приближенное уравнение, экспоненциальное, вполне удовлетворительно для ограниченных температурных диапазонов, в особенности – при использовании термисторов с малой точностью. Второе уравнение, называемое уравнением Стейнхарта-Харта, обеспечивает прекрасную точность для диапазонов до 100 о С.

Сопротивление термистора с отрицательным ТКС уменьшается приблизительно по экспоненте с увеличением температуры. В ограниченных температурных диапазонах его R-T-зависимость достаточно хорошо описывается следующим уравнением:

Где Т1 и Т2 – абсолютные температуры в градусах Кельвина ( о С +273) ;

RT1 и RT2 – сопротивления термистора при Т1 и Т2; b — константа, определяемая путем измерения сопротивления термистора при двух известных температурах.

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Если b и RT1 известны, то это уравнение можно преобразовать и использовать для вычисления температуры, измеряя сопротивление:

Бета является большим, положительным числом и имеет размерность в градусах Кельвина. Типовые значения изменяются от 3000 до 5000 о К.

Изготовители часто включают значения для бета в спецификации, однако, так как экспоненциальное уравнение является лишь приблизительным, значение бета зависит от двух температур, использованных при его вычислении. Некоторые изготовители используют значения 0 и 50 о С; другие – 25 и 75 о С.

Можно использовать другие температуры: можно вычислить самостоятельно значение бета на основании таблиц зависимости сопротивления от температуры, которые предлагает изготовитель. Уравнение, как правило согласуется с измеренными значениями в пределах ± 1 о С на участке в 100 о С. Уравнение нельзя использовать с достоверностью при температурах, сильно отличающихся от тех, что были использованы для определения бета.

Перед тем, как перейти к уравнению Стейнхарта-Харта, рассмотрим два других параметра, часто используемых для описания термисторов: альфа (a) и коэффициент сопротивления. Альфа просто определяется наклоном R-T- кривой, то есть является чувствительностью при определенной температуре. Альфа обычно выражается в «процентах на градус». Типовые значения изменяются от 3 % до 5 % о С. Так же, как и бета, альфа зависит от температур, при которых она определяется. Её значение несколько уменьшатся при более высоких температурах.

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

Для точных термисторов обычно имеется таблица значений сопротивления (с шагом 1 °С) в зависимости от температуры, которая поставляется изготовителем вместе с другой информацией. Однако иногда удобно иметь точное уравнение при выполнении конструкторских расчетов или (особенно) при использовании ЭВМ для пересчета сопротивления термистора в температуру. Кроме как для очень узких диапазонов температур, экспоненциальное уравнение с одним параметром не удовлетворительно – необходимо большее число параметров.

Наилучшим приближенным выражением, широко используемым в настоящее время, является уравнение Стейнхарта-Харта:

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Где Т- абсолютная температура (в градусах Кельвина), R – сопротивление термистора; а, b и с –экспериментально полученные константы.

Преобразование уравнения с целью выражения сопротивления в виде функции температуры приводит к довольно громоздкому на вид выражению. Однако, с ним легко обращаться при использовании ЭВМ или программируемого калькулятора:

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Экспериментальное определение коэффициентов уравнения стейнхарта хартаГде и .

Необходимо отметить, что данные значения для альфа и бета не относятся к параметрам альфа и бета, используемым в экспоненнциальном уравнении с одним параметром.

Хотя уравнение Стейнхарта-Харта – более сложное, оно, как правило, согласуется с реальными значениями в пределах нескольких тысячных градуса в диапазонах до 1000 о С. Конечно, оно может быть настолько хорошим, если только экспериментальные значения параметров термистора также точны. Температуры с точностью до тысячных градуса можно получить только в первоклассных лабораториях. Скорее пользователь согласится пользоваться паспортными таблицами, чем захочет провести собственные измерения.

Для определения a, b и с необходимо знать точное сопротивление термистора при трёх температурах и подставить каждый набор данных (R и Т) в уравнение Стейнхарта-Харта для определения трех неизвестных. Затем необходимо использовать математические средства для одновременного решения трёх уравнений и получения значений трёх констант. При использовании паспортных таблиц нужно выбирать значения R в зависимости от Т на краях и в середине температурного диапазона, который будет использоваться. Изготовители обычно не указывают паспортные значения для этих констант, так как эти значения изменяются в зависимости от используемого температурного диапазона.

Видео:Урок 228 (осн). ЛР Определение коэффициента ослабления гамма-излучения различными материаламиСкачать

Урок 228 (осн). ЛР Определение коэффициента ослабления гамма-излучения различными материалами

Микроконтроллер решает сложные полиномиальные уравнения

Видео:Коэффициент поверхностного натяженияСкачать

Коэффициент поверхностного натяжения

LM103 PIC16F887

Ricardo Jimenez и Roberto Solorio

Экспериментальное определение коэффициентов уравнения стейнхарта харта

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

Измеряя температуру с помощью термистора, вы сталкиваетесь с проблемой линеаризации его отклика, необходимой для получения результатов требуемой точности. Одним из лучших методов линеаризации термистора является использование полиномиального уравнения Стейнхарта-Харта, дающего ошибку в 0.1 °C. Описываемая ниже конструкция рассчитана на диапазон температур от 0 °C до 100 °C.

Для того чтобы составить уравнение, потребуются три коэффициента термистора – A, B и C. Если изготовитель не предоставил такую информацию, вы можете найти коэффициенты, решив уравнения Стейнхарта-Харта (1…3) для трех различных температурных точек. В нашей схеме микроконтроллер PIC с необходимой точностью решает эти уравнения за 40 мс (Рисунок 1).

Экспериментальное определение коэффициентов уравнения стейнхарта харта
Рисунок 1.В этой простой схеме высокоточного термометра используется микроконтроллер PIC16F887 и ЖК индикатор.

Для иллюстрации воспользуемся термистором LM103 с отрицательным температурным коэффициентом (NTC), сопротивление которого при трех различных температурах имеет значения, показанные в Таблице 1.

Таблица 1.Сопротивление термистора.

Полученная в этих трех измерениях температура преобразовывается в градусы Кельвина и подставляется в три уравнения Стейнхарта-Харта:

Экспериментальное определение коэффициентов уравнения стейнхарта харта(1)
Экспериментальное определение коэффициентов уравнения стейнхарта харта(2)
Экспериментальное определение коэффициентов уравнения стейнхарта харта(3)

Решая эту систему из трех уравнений, получаем коэффициенты A, B и C (Таблица 2).

Таблица 2.Коэффициенты термистора.

Подставляя найденные коэффициенты в уравнение Стейнхарта-Харта, получаем выражение для термистора:

Экспериментальное определение коэффициентов уравнения стейнхарта харта(4)
Экспериментальное определение коэффициентов уравнения стейнхарта харта(5)

Задача микроконтроллера PIC16F887 заключается в том, чтобы, используя Уравнение 4, получить истинные показания температуры. Для этого потребуется 1227 слов памяти микроконтроллера. Вывод AN0 объявлен аналоговым входом, а остальные линии порта – цифровыми входами. Аналого-цифровой преобразователь (АЦП) сконфигурирован для 10-битного разрешения с временем выборки 50 мкс.

Напряжение термистора в двоичном формате заносится в переменную volt инструкцией ADCIN 0, volt . Затем для преобразования в двоично-десятичную форму это значение умножается на 48,828 и сохраняется в переменной v1 . Чтобы из v1 получить отдельные десятичные цифры, каждая из них с помощью команд DIG3 , DIG2 и DIG1 записывается в переменные dig3 , dig2 и dig , соответственно.

Исходный код программы термометра доступен для скачивания в разделе Загрузки. В программе объявляются и обрабатываются следующие переменные: B , A , C , L , volt , v1 , v2 , pattern , pattern2 , pattern3 , I , digit3 , digit2 и digit . Кроме того, в процессе преобразования двоичного кода в двоично-десятичный используются переменные conv1 и conv2 . В них содержатся младшие биты результата преобразования 10-разрядного АЦП, значение которых равно 4.8828 мВ.

Алгоритм, разработанный для получения показаний температуры на основе уравнения Стейнхарта-Харта, требует выполнения нескольких шагов.

Прежде всего, вычисляется напряжение источника питания ( v1 ), равное 48828 × volt2 . Переменная volt2 считывается с помощью АЦП микроконтроллера. Если напряжение источника соответствует требуемому значению, то volt2 = %1111111111, и тогда v1 = 49,951,044. Далее с помощью инструкции DIV32 переменная volt2 делится на 10,000, давая в результате величину 4995, приблизительно соответствующую напряжению источника питания 5 В.

На втором этапе вычисляется падение напряжения на термисторе. При этом полностью повторяются все действия первого шага, за исключением того, что теперь используется другой канал АЦП. Предположим, мы имеем в АЦП результат считывания напряжения 2.5 В (код АЦП равен 1000000000). После выполнения описанных в предыдущем абзаце манипуляций, получаем число 24,999,936, которое делится на 10 инструкцией DIV32 для получения результата 2499, примерно соответствующего напряжению 2.500 В.

Третьим шагом находим величину сопротивления с помощью следующей формулы:

Экспериментальное определение коэффициентов уравнения стейнхарта харта(6)

Для этого мы запоминаем в переменной dif напряжение источника питания за вычетом напряжения термистора. А затем умножаем напряжение термистора на фиксированное сопротивление 10 кОм, и с помощью DIV32 делим последнее произведение на dif , получая величину сопротивления термистора.

На четвертом шаге, используя Уравнения (7…9), вычисляем логарифм по основанию 2 от сопротивления термистора:

Экспериментальное определение коэффициентов уравнения стейнхарта харта(7)
Экспериментальное определение коэффициентов уравнения стейнхарта харта(8)
Экспериментальное определение коэффициентов уравнения стейнхарта харта(9)

где a0, a1 и a2 – последовательные цифры двоичной мантиссы.

Затем с помощью функции NCD мы находим параметр a0, или целую часть логарифма, представляющую старший значащий бит числа (MSB). Декрементировав его на 1, получим двоичный логарифм параметра. Например, мы хотим использовать четыре значащих цифры двоичного логарифма 47, равного 5.554. NCD(47) = 6, где 47 в двоичном представлении записывается как 00101111, и MSB находится в шестой позиции справа. Если декрементировать его на 1, получим число 5, являющееся целой части логарифма.

Для завершения вычисления логарифма необходимо найти его мантиссу (дробную часть). Для этого потребуется результат последовательных делений w на 2. Однако выполнить такую операцию напрямую невозможно, так как в результате деления 47 на 2 получается 23.5, и мы потеряем дробную часть. (PIC Basic Pro не работает с дробями). По этой причине для нахождения мантиссы мы используем специальную подпрограмму, выполняющую следующую последовательность действий:

47/2 = 23.5,
23.5/2 = 11.75,
11.75/2 = 5.875,
5.875/2 = 2.9375,
2.9375/2 = 1.46875.

При делении 47/2 = 23 с остатком 1, эта «1» появляется в результате первой операции деления из пяти, которые потребуется выполнить. Соответственно, дробь 1/2 5 = 0.03125. Работать с дробями мы не можем, поэтому вместо того, чтобы делить 1 на 2 n , мы берем число 10,000 в качестве числителя и вызываем подпрограмму, вычисляющую знаменатель в зависимости от номера операции деления, в которой появляется остаток 1.

Затем мы суммируем результаты всех делений. Продолжая приведенный ниже пример, мы должны выполнить для этого следующие пять шагов:

  • 47/2 = 23 с остатком 1 – это первая операция деления из пяти: 10,000/2 5 = 312.5 = 312;
  • 23/2 = 11 с остатком 1 – это вторая операция деления из пяти: 10,000/2 4 = 625;
  • 11/2 = 5 с остатком 1: 10,000/2 3 = 1250;
  • 5/2 = 2 с остатком 1: 10,000/2 2 = 2500;
  • 2/2 = 1 с остатком 0: прибавлять нечего.

В данном случае переменная ja равна 4687, и теперь только остается инкрементировать ее на 1. Поэтому мы делим ja на 1000, а затем складываем с 1000. Таким образом, ja = 1468, давая нам приблизительно упоминавшуюся выше исходную величину, умноженную на 1000 с четырьмя значащими цифрами.

Определив все M, мы должны найти мантиссу, используя описанные ранее процедуры. Деление на 2 an не представляет сложности, поскольку работаем мы в двоичном базисе, и деление выполняется на 2 0 или 2 1 . Возводя в квадрат, мы должны подумать, куда поместим произведение Ma на Ma, а затем разделить его на 1000, поскольку результат выходит за пределы 16 бит.

После того, как этот процесс будет выполнен необходимое число раз, мы должны привести an к десятичному основанию. Для этого последовательно умножаем его на соответствующие весовые коэффициенты 5, 25, 125, и т.д. И, поскольку работать с дробями мы не можем, умножаем еще на 5000, 2500, и так далее.

И, наконец, мы суммируем все члены мантиссы в десятичной форме, а затем делим сумму на 10. Далее прибавляем a0 × 1000 и записываем результат в переменную l2 , в которой теперь будет храниться значение двоичного логарифма сопротивления термистора. На последнем шаге вычислим натуральный логарифм, который будет использован в уравнении. База логарифма изменяется следующим образом:

Экспериментальное определение коэффициентов уравнения стейнхарта харта

Поскольку ln(2) = 0.6931, нам достаточно просто умножить l2 на 6931, а затем, используя команду DIV32 , разделить это число на 10,000 и сохранить результат в переменной lm, которая будет содержать натуральный логарифм сопротивления резистора, умноженный на 1000.

Для управления общим выводом ЖКИ в цикле for-next на вывод RD1 выводится «1» (Рисунок 2).

Экспериментальное определение коэффициентов уравнения стейнхарта харта
Рисунок 2.Подаваемый с вывода RD1 на общий вход ЖКИ сигнал частотой 40 Гц управляет регенерацией дисплея.

Затем вызывается подпрограмма D , преобразующая двоично-десятичные данные в коды 7-сегментного индикатора. Функция LOOKUP конвертирует двоично-десятичное число digit3 в 7-сегментный формат, сохраняемый в pattern3 . После чего для синхронизации с ЖКИ выполняется операция «исключающее ИЛИ» над pattern3 и значением RD1, хранящемся в виде байта в переменной L .

Экспериментальное определение коэффициентов уравнения стейнхарта харта
Рисунок 3.Оранжевая осциллограмма соответствует интервалу времени 33 мс, в течение которого выполняется вычисление логарифма. Еще 7 мс (синяя осциллограмма) требуются для получения достоверного отсчета. Таким образом, общее время обработки данных составляет 40 мс.

Этот процесс повторяется для двух оставшихся цифр, во время дополнительной 10-миллесекундной паузы. Затем RD1 выключается, а его состояние сохраняется в байтовой переменной L . Вновь вызывается подпрограмма D , и синхровыход RD1 вновь активизируется на следующие 10 мс. После каждого выполнения функции LOOKUP каждому выводу индикатора соответствует вывод порта, управляющий определенным сегментом ЖКИ. Общее время обработки данных составляет 40 мс (Рисунок 3).

Ссылки

  1. Computing Logarithms Digit-by-Digit, Mayer Goldberg, BRICS RS-04-17. ISSN: 0909-0878

Загрузки

Перевод: AlexAAN по заказу РадиоЛоцман

📹 Видео

Лабораторная работа «Измерение коэффициента трения скольжения»Скачать

Лабораторная работа «Измерение коэффициента трения скольжения»

ЛАБОРАТОРНАЯ РАБОТА ПО ОПРЕДЕЛЕНИЮ КОЭФФИЦИЕНТА НАТЯЖЕНИЯ ЖИДКОСТИ МЕТОДОМ ОТРЫВА КОЛЬЦАСкачать

ЛАБОРАТОРНАЯ РАБОТА ПО ОПРЕДЕЛЕНИЮ КОЭФФИЦИЕНТА НАТЯЖЕНИЯ ЖИДКОСТИ МЕТОДОМ ОТРЫВА КОЛЬЦА

Уравнение касательной в точке. Практическая часть. 1ч. 10 класс.Скачать

Уравнение касательной в точке. Практическая часть. 1ч. 10 класс.

Лабораторная работа по теме: "Определение коэффициента трения скольжения" (Физика 7, 10 класс)Скачать

Лабораторная работа по теме: "Определение коэффициента трения скольжения" (Физика 7, 10 класс)

Определение коэффициента трения скольжения #ФизиканскиеЛьвы2018Скачать

Определение коэффициента трения скольжения #ФизиканскиеЛьвы2018

Лабораторная работа №3. 10 класс. "Определение коэффициента трения скольжения"Скачать

Лабораторная работа №3.  10 класс.  "Определение коэффициента трения скольжения"

Органика. Решение задачи на определение состава вещества по продуктам его сгорания.Скачать

Органика. Решение задачи на определение состава вещества по продуктам его сгорания.

Обработка результатов эксперимента. 1. Классификация погрешностейСкачать

Обработка результатов эксперимента. 1. Классификация погрешностей

Определение коэффициента поверхностного натяжения жидкости методом отрыва каплиСкачать

Определение коэффициента поверхностного натяжения жидкости методом отрыва капли

Установление эмпирической и молек. формул по массовым долям элем., входящих в состав в-ва. 10 класс.Скачать

Установление эмпирической и молек. формул по массовым долям элем., входящих в состав в-ва. 10 класс.

Урок 4. Погрешность косвенных измеренийСкачать

Урок 4. Погрешность косвенных измерений

Обработка результатов эксперимента. 6. Измерение gСкачать

Обработка результатов эксперимента. 6. Измерение g

Физика. ОГЭ-23. Определение жесткости пружины. Лабораторная работа.Скачать

Физика. ОГЭ-23. Определение жесткости пружины. Лабораторная работа.
Поделиться или сохранить к себе: