Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерение температуры с помощью термопары
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
yanvasiij
Доброго времени суток!

Впервые озадачился измерением температуры с помощью термопары. Схема на базе АЦП AD7792, взята, как есть из даташита:

Нажмите для просмотра прикрепленного файла

Посидел, почитал, кажется, что разобрался, но вот уверенности нет. В связи с этим следующие вопросы:

1) Правильно ли я понял принцип измерения: Сначала измеряем термоэдс, и по ней вычисляем температуру (например при помощи градуировочных характеристик из ГОСТа); далее измеряю температуру холодного спая с помощью термодатчика на плате; далее вычитаю из вычисленной из термоэдс температуры температуру холодного спая и готово?

2) В качестве датчика температуры холодного спая заложен датчик KTY82/110, однако у этого датчика погрешность до плюс-минус 2 градуса. Получается, если я буду использовать методику, которую я описал в пункте 1, то погрешность измерения с термодатчика сразу возрастает на эти два градуса. Как же быть? Это нормально?

3) Измерительный канал нужно калибровать, значит ли это что нужно калибровать и канал измерения температуры холодного спая? Т.е. мне придется производить две калибровки первую на канале, где подключена термопара, вторую на датчике температуры.

4) Нужно ли вообще такую схему калибровать?
iosifk
А еще есть нелинейность термопары, которая и показана в ГОСТе... Так что ко всем чудесам еще и это...
Tanya
Цитата(yanvasiij @ Feb 15 2016, 16:07) *
1) Правильно ли я понял принцип измерения: Сначала измеряем термоэдс, и по ней вычисляем температуру (например при помощи градуировочных характеристик из ГОСТа); далее измеряю температуру холодного спая с помощью термодатчика на плате; далее вычитаю из вычисленной из термоэдс температуры температуру холодного спая и готово?

Нет. Правильно иначе. По термодатчику вычисляется (по таблице) ЭДС, которую нужно добавить к измеренной, а из полученной величины - температура. При не очень большой комнатной температуре и хорошей линейности разница небольшая.

Цитата(yanvasiij @ Feb 15 2016, 16:07) *
4) Нужно ли вообще такую схему калибровать?

А это - на Ваш вкус. И по Вашим возможностям - можете ли Вы организовать реперные температурные точки.
yanvasiij
А в чем принципиальное отличие вычитания ЭДС, а потом вычисления температуры? Разве алгебраически это не одно и тоже?

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

Цитата(iosifk @ Feb 15 2016, 18:33) *
А еще есть нелинейность термопары, которая и показана в ГОСТе... Так что ко всем чудесам еще и это...


Если я вычисляю температуру по термоэдс по градуировочной характеристике из ГОСТа, применяя линейную аппроксимацию в промежутках между точками градуировочной характеристики, это достаточный способ борьбы с нелинейностью?
TSerg
Цитата(yanvasiij @ Feb 15 2016, 19:57) *
А в чем принципиальное отличие вычитания ЭДС, а потом вычисления температуры?
..
Если я вычисляю температуру по термоэдс по градуировочной характеристике из ГОСТа, применяя линейную аппроксимацию в промежутках между точками градуировочной характеристики, это достаточный способ борьбы с нелинейностью?


1. Правильнее будет так, как Вам удобнее это реализовать в рамках допустимых погрешностей.
2. Арифметика и алгебра - этого достаточно, чтобы оценить погрешность интерполяции.
Меджикивис
yanvasiij, - а чего не хотите использовать например MAX31855? В ней датчик окружающей температуры встроенный, с точностью 1/16 градуса.
Не требует для себя никаких дополнений, интерфейс - SPI.
Выпускается в нескольких вариантах, откалиброванных на определенный вид термопары, но любую можно использовать для любой, если пересчитать на получающийся доступный температурный диапазон.

Что надо учесть: питание- 3 вольта только! Пять вольт не выдерживает.



Tanya
Цитата(yanvasiij @ Feb 15 2016, 19:57) *
А в чем принципиальное отличие вычитания ЭДС, а потом вычисления температуры? Разве алгебраически это не одно и тоже?

Это тоже тоже не одно и то же. Для вникания представьте себе, что у Вас есть настоящий нулевой спай (в нуле С). Там Вы измеряете ЭДС, которую потом и нужно использовать. Представьте, также, что вы нашли на термопарных проводах точку с одинаковой (комнатной) температурой. И там измеряете вторым вольтметром. Немного подумать, - и все станет ясно.

Цитата(yanvasiij @ Feb 15 2016, 19:57) *
это достаточный способ борьбы с нелинейностью?

Достаточность определяется интервалом интерполяции и Вашими желаниями.
=AK=
Цитата(Меджикивис @ Feb 16 2016, 04:38) *
а чего не хотите использовать например MAX31855? В ней датчик окружающей температуры встроенный, с точностью 1/16 градуса.


В даташите сказано Internal Cold-Junction Temperature Error -2...+2 градуса (при TA = -20°C to +85°C ). Правда, на графике типичных характеристик картинка более заманчивая.
Меджикивис
Цитата(=AK= @ Feb 16 2016, 03:29) *
В даташите сказано Internal Cold-Junction Temperature Error -2...+2 градуса (при TA = -20°C to +85°C ).
Да, я знаю.
Дело в том, что у нее есть небольшой (в этих пределах) температурный дрейф. Но поскольку свою температуру она нам сообщает, то его можно подсчитать и вычесть.
Во всяком случае полградуса я получал вполне стабильно и воспроизводимо; большая точность мне не была нужна.

Я так понял, что два градуса - это без всяких калибровок вообще: припаял, привернул термопару - и всё.


=AK=
Цитата(Меджикивис @ Feb 16 2016, 20:00) *
Я так понял, что два градуса - это без всяких калибровок вообще: припаял, привернул термопару - и всё.

С обычным недорогим "взаимозаменяемым" термистором на 0.2C можно легко получить 0.5С безо всяких калибровок.
Меджикивис
Цитата(=AK= @ Feb 16 2016, 14:10) *
С обычным недорогим "взаимозаменяемым" термистором на 0.2C можно легко получить 0.5С безо всяких калибровок.
А не замучаюсь кривую аппроксимировать, до полградуса-то?
А встроенный датчик макса не только линеен, но и показывает непосредственно в градусах.

=AK=
Цитата(Меджикивис @ Feb 16 2016, 21:02) *
А не замучаюсь кривую аппроксимировать, до полградуса-то?

А какие проблемы? Вбиваете табличку с шагом в 1 градус, потом делаете кусочно-линейную аппроксимацию. Так гораздо точнее чем полградуса получается. Аль памяти на табличку не хватает или производительности проца на КЛА?
Меджикивис
Всё конечно можно сделать, кто ж поспорит))))) но когда всё это уже готово, мне больше нравится sm.gif
MrYuran
Цитата(=AK= @ Feb 16 2016, 13:10) *
С обычным недорогим "взаимозаменяемым" термистором на 0.2C можно легко получить 0.5С безо всяких калибровок.

Техас предлагает интегральные линейные датчики с точностью 0,2 градуса без калибровок с вольтовым выходом, и стоят копейки.
Я давно уже подумываю выкинуть HEL70x и не мучиться
=AK=
Цитата(MrYuran @ Feb 16 2016, 22:48) *
Техас предлагает интегральные линейные датчики с точностью 0,2 градуса без калибровок с вольтовым выходом, и стоят копейки.

То есть, +/- 0.2C. А термисторы есть и на +/- 0.05С. Причем, в отличие от полупроводниковых датчиков с "вольтовым" выходом, для измерения термистора не нужно дорогого прецизионного источника опорного напряжения, достаточно поставить точный эталонный резистор. Так что измерительная схема с термистором будет и точнее, и дешевле обойдется.
yanvasiij
Я вот чего никак понять не могу: как калибровать схему с датчиком холодного спая такой точности? Вот у меня прибор, наружу которого выходят только две клеммы для подключения термопары и один последовательный интерфейс для связи. Где то внутри прибора, рядом к клеммой расположен датчик холодного спая. Если делать, как говорит Tanya, то последовательность действий при измерении следующая:
1) Измеряю температуру холодного спая
2) По характеристике из ГОСТа вычисляю ЭДС, которая соответствует этой температуре
3) Измеряю ЭДС на термопаре
4) Вычитаю из ЭДС термопары ЭДС вычисленной в пункте 2
5) Вычисляю из полученной разницы температуру термопары.

Если погрешность датчика температуры холодного спая плюс минус 2 градуса, то обнаруживается занятная ситуация:
- Пусть, например, температура на термопаре 100 градусов цельсия, термоэдс по градуировочной таблице для этой температуре 0,647 мВ;
- Температура ХС 10 градусов, что по градуировочной таблице соотвествует 0,054 мB, а значит суммарное ЭДС будет равно 0,701 мВ;
- Если у датчика ХС погрешность 2 градуса, то он может показать температуру, например, 12 градусов, что соотвествует 0,065 мВ;
- Если я буду производить вычисления опираясь на показания 12 градусов ХС, то ЭДС термопары у меня получится 0,701 мВ - 0,065 мВ = 0,636 мВ, что соответствует температуре 98,4 градуса вместо реальных 100 градусов.

Как же калибровать такой прибор, если датчик холодного спая у него внутри, а я могу только на вход измерения ЭДС подключать эталоны??? Практически везде пишут, что для измерения температуры ХС не нужен датчик большой точности, мол его погрешность не вносит существенных искажений. Я не понимаю, как так?
ar__systems
Цитата(yanvasiij @ Feb 16 2016, 23:06) *
- Пусть, например, температура на термопаре 100 градусов цельсия, термоэдс по градуировочной таблице для этой температуре 0,647 мВ;
- Температура ХС 10 градусов, что по градуировочной таблице соотвествует 0,054 мB, а значит суммарное ЭДС будет равно 0,701

Вроде они вычитаться должны. В чем проблема-то? Подключаете ваши эталоны, и программа запоминает напряжение и температуру эталона при двух или более температурах. Дальше строите кривую или прямую по ним.
yanvasiij
Цитата(ar__systems @ Feb 17 2016, 09:59) *
Вроде они вычитаться должны. В чем проблема-то? Подключаете ваши эталоны, и программа запоминает напряжение и температуру эталона при или более температурах. Дальше строите кривую или прямую по ним.


Да, виноват, нужно вычитать. Проблема в том, что получается мне нужно подключать эталон при разных температурах холодного спая, так что ли?
ar__systems
Цитата(yanvasiij @ Feb 17 2016, 00:02) *
Да, виноват, нужно вычитать. Проблема в том, что получается мне нужно подключать эталон при разных температурах холодного спая, так что ли?

Ну можно и при одной. Тогда только корректируется постоянная погрешность (offset) а span принимаете расчетный.
yanvasiij
Цитата(ar__systems @ Feb 17 2016, 10:09) *
Ну можно и при одной. Тогда только корректируется постоянная погрешность (offset) а span принимаете расчетный.


А, если датчик температуры ХС нелинейный?
ar__systems
Цитата(yanvasiij @ Feb 17 2016, 00:15) *
А, если датчик температуры ХС нелинейный?

Значит нелинейный. Если его нелинейность постоянная, т.е. форма и направление одинакова для них всех, забейте ее в программу и корректируйте
Tanya
Цитата(yanvasiij @ Feb 17 2016, 08:02) *
Да, виноват, нужно вычитать.

Не путайте себя и нас. Что из чего нужно вычитать?
yanvasiij
Цитата(Tanya @ Feb 17 2016, 11:19) *
Не путайте себя и нас. Что из чего нужно вычитать?


Еще раз по алгоритму:

1) Измеряю температуру холодного спая
2) По характеристике из ГОСТа вычисляю ЭДС, которая соответствует этой температуре
3) Измеряю ЭДС на термопаре
4) Прибавляю к ЭДС термопары ЭДС вычисленной в пункте 2 <<<<<<<<<<<<<< Вот тут была ошибка
5) Вычисляю из полученной разницы температуру термопары.

И как следствие в рассужедениях:

Была так:
Цитата
- Пусть, например, температура на термопаре 100 градусов цельсия, термоэдс по градуировочной таблице для этой температуре 0,647 мВ;
- Температура ХС 10 градусов, что по градуировочной таблице соотвествует 0,054 мB, а значит суммарное ЭДС будет равно 0,701 мВ;
- Если у датчика ХС погрешность 2 градуса, то он может показать температуру, например, 12 градусов, что соотвествует 0,065 мВ;
- Если я буду производить вычисления опираясь на показания 12 градусов ХС, то ЭДС термопары у меня получится 0,701 мВ - 0,065 мВ = 0,636 мВ, что соответствует температуре 98,4 градуса вместо реальных 100 градусов.


А верно:

Если погрешность датчика температуры холодного спая плюс минус 2 градуса, то обнаруживается занятная ситуация:
- Пусть, например, температура на термопаре 100 градусов цельсия, термоэдс по градуировочной таблице для этой температуре 0,647 мВ;
- Температура ХС 10 градусов, что по градуировочной таблице соотвествует 0,054 мB, а значит суммарное ЭДС будет равно 0,593 мВ; <<<<<<< Ошибка была тут, я прибавил, а нужно было вычесть
- Если у датчика ХС погрешность 2 градуса, то он может показать температуру, например, 12 градусов, что соотвествует 0,065 мВ;
- Если я буду производить вычисления опираясь на показания 12 градусов ХС, то ЭДС термопары у меня получится 0,593 мВ + 0,065 мВ = 0,658 мВ, что соответствует температуре 111,8 градуса вместо реальных 100 градусов. <<<<< Ошибка была здесь нужно было прибавить а вычел
Tanya
Цитата(yanvasiij @ Feb 17 2016, 10:00) *
что соответствует температуре 111,8 градуса вместо реальных 100 градусов. <<<<< Ошибка была здесь нужно было прибавить а вычел

Опять Вы путаете. Попробуйте без чисел... Используйте алгебру вместо арифметики. Я вот безо всяких вычислений скажу, что температурная ошибка будет равна ошибке в температуре холодного спая, умноженной на отношение производных ЭДС по температуре при комнатной и измеряемой температурах. При малых ошибках, естественно. Для линейной зависимости ЭДС от температуры ошибка будет равна ошибке определения температуры холодного спая.
Ruslan1
вставлю 5 копеек, как делаем в системах с сотнями термопар:
1. От термопары измеряется напряжение. Да, схема похожая.
2. Терморезисторы измеряются отдельными АЦП, измеряется сопротивление. Количество каналов измерения сильно ниже чем количество термопар (например, 16 RTD + 48 TC). В последних версиях вообще попросили сделать отдельные групповые платы для измерения милливольтов(например, термопары) и для измерения сопротивления (например, термосопротивления).
3. все это обрабатывается и контролируется в центре. Плата сбора- это просто сбор первичных данных, собственного мнения не имеет.
4. Калибровка термопарных контроллеров - нет, только проверка по двум точкам при производстве.
5. Калибровка RTD- да, есть, на производстве по двум точкам.

Такая система сложилась исторически, под нее есть и персонал и регламент и службы соответствующие. Если строится все с нуля- то можно наверное и контроллеру отдать функцию перевода в температуру, но подумайте и про эксплуатацию- там должны быть готовы к такому распределению функций между участниками процесса.
yanvasiij
Цитата(Tanya @ Feb 17 2016, 12:29) *
Опять Вы путаете. Попробуйте без чисел... Используйте алгебру вместо арифметики. Я вот безо всяких вычислений скажу, что температурная ошибка будет равна ошибке в температуре холодного спая, умноженной на отношение производных ЭДС по температуре при комнатной и измеряемой температурах. При малых ошибках, естественно. Для линейной зависимости ЭДС от температуры ошибка будет равна ошибке определения температуры холодного спая.


Что-то я не пойму где ошибка то?

Нажмите для просмотра прикрепленного файла
Alexashka
Цитата(yanvasiij @ Feb 17 2016, 11:00) *
... то ЭДС термопары у меня получится 0,593 мВ + 0,065 мВ = 0,658 мВ, что соответствует температуре 111,8 градуса вместо реальных 100 градусов.

0,658 мВ соответствует 101,5. Примерно. А не 111.
yanvasiij
Спрошу в продолжении темы. Вообщем реализовал я вышеописанный алгоритм измерения. Вот только недавно у меня в руках оказалась реальная термопара и вот я пытаюсь добиться адекватных показаний от нее. Пока ничего толкового не выходит. Наблюдения следующие:
- Термоэдс измеряется точно, я подавал эталонное напряжение и оно совпадало с тем, что выдавал мой микроконтроллер (проверил несколькими приборами)
- Температура холодного спая тоже определяется точно (проверял датчиком PT100)
- Термопара тип K куплена вот тут
- Сама термопара и плата находятся в одном помещении при одной и той же температуре, но показания получаются следующие:
---- Температура в помещении и соотвественно холодного спая 28.5 С
---- Измеренное термоэдс -0.182997 мВ
---- Вычисленное значение температуры термопары 23.89

Код вычисления температуры и термоэдс (ВОТ ТУТ С ПОДСВЕТКОЙ СИНТАКСИСА):

CODE

/**
* @brief Градуировочные значения для термопары типа K от -270 до 1370 с шагом 10.
* Всего 153 точки
*/
static const float calibrationTable[] =
{
-6.458, -6.441, -6.404, -6.344, -6.262, -6.158, -6.035, -5.891, -5.73, -5.55, -5.354,
-5.141, -4.913, -4.669, -4.411, -4.138, -3.852, -3.554, -3.243, -2.92, -2.587, -2.243,
-1.889, -1.527, -1.156, -0.778, -0.392, 0.0, 0.397, 0.798, 1.203, 1.612, 2.023, 2.436,
2.851, 3.267, 3.682, 4.096, 4.509, 4.92, 5.328, 5.735, 6.138, 6.54, 6.941, 7.34, 7.739,
8.138, 8.539, 8.94, 9.343, 9.747, 10.153, 10.561, 10.971, 11.382, 11.795, 12.209, 12.624,
13.04, 13.457, 13.874, 14.293, 14.713, 15.133, 15.554, 15.975, 16.397, 16.82, 17.243,
17.667, 18.091, 18.516, 18.941, 19.366, 19.792, 20.218, 20.644, 21.071, 21.497, 21.924,
22.35, 22.776, 23.203, 23.629, 24.055, 24.48, 24.905, 25.33, 25.755, 26.179, 26.602,
27.025, 27.447, 27.869, 28.289, 28.71, 29.129, 29.548, 29.965, 30.382, 30.798, 31.213,
31.628, 32.041, 32.453, 32.865, 33.275, 33.685, 34.093, 34.501, 34.908, 35.313, 35.718,
36.121, 36.524, 36.925, 37.326, 37.725, 38.124, 38.522, 38.918, 39.314, 39.708, 40.101,
40.494, 40.885, 41.276, 41.665, 42.053, 42.44, 42.826, 43.211, 43.595, 43.978, 44.359,
44.74, 45.119, 45.497, 45.873, 46.249, 46.623, 46.995, 47.367, 47.737, 48.105, 48.473,
48.838, 49.202, 49.565, 49.926, 50.286, 50.644, 51.0, 51.355, 51.708, 52.06, 52.41,
52.759, 53.106, 53.451, 53.795, 54.138, 54.479, 54.819
};

float TermocoupleKProcessor::calcTemperature (float eds)
{
int t = MIN_T, i, dt = DT;
if (eds > calibrationTable[i = 0])
while (MAX_T >= t)
{
if (eds < calibrationTable[++i])
return t + (eds - calibrationTable[i-1]) * dt
/ (calibrationTable[i] - calibrationTable[i-1]);
t += dt;
};
return t;
}

float TermocoupleKProcessor::calcEds (float t)
{
float eds = calibrationTable[CALIBRATION_TABLE_LEN - 1];
float dEds, t0 = MIN_T;
int i = 0;

if ( t > t0 )
{
while ( calibrationTable[CALIBRATION_TABLE_LEN-1] >= eds )
{
i++;
if ( t < (t0 + DT) )
{
dEds = calibrationTable[i] - calibrationTable[i-1];
eds = calibrationTable[i-1] + ((t - t0) * dEds / DT);
return eds;
}
t0 += DT;
}
eds = calibrationTable[CALIBRATION_TABLE_LEN-1];
}
return eds;
}



Место, где это используется (C подсветкой синтаксиса):
CODE

/* Измеряю температуру холодного спая */
...
//Измерения температуры холодного спая обычным термодатчиком опускаю
...
data->coldJuncT = calcColdJuncTemperature(rtd);
/* Вычисляю ЭДС холодного спая в МИЛЛИВОЛЬТАХ! */
data->cjEds = calcEds (data->coldJuncT);

/* Измеряю ЭДС термопары */
...
//Опускаю измерения термоэдс
...
data->tEds = data->tEds * 1000; //перевожу в милливольты!
/* Вычисляю значение температры */
data->temperature = calcTemperature(data->tEds + data->cjEds);
conversationIsReady = 1; /**< @brief Считывание завершено */


Почему может быть такая большая погрешность? Что я упустил, подскажите пожалуйста?

Lagman
Если нет разности температуры между Г.С. и Х.С. то ТЭДС должна быть равна 0 (по вашим измерениям -0.182997 мВ)
Чтобы получить истинную температуру надо просто прибавить(вычесть) температуру холодного спая. (тут вроде все правильно)
Похоже ошибка в схемотехнике, не точно измеряется ТЭДС термопары. (т.к. 28,5 - 23,89 = 4,61 это примерно и есть те самые пересчетные в мВ -0.182997 мВ т.е. программа отрабатывает правильно)
yanvasiij
Цитата(Lagman @ Mar 11 2016, 16:32) *
Если нет разности температуры между Г.С. и Х.С. то ТЭДС должна быть равна 0 (по вашим измерениям -0.182997 мВ)
Чтобы получить истинную температуру надо просто прибавить(вычесть) температуру холодного спая. (тут вроде все правильно)
Похоже ошибка в схемотехнике, не точно измеряется ТЭДС термопары. (т.к. 28,5 - 23,89 = 4,61 это примерно и есть те самые пересчетные в мВ -0.182997 мВ т.е. программа отрабатывает правильно)


Спасибо за подсказку! Действительно я совсем об это не подумал. Начал проверять и выяснил, что напряжение появлялось, как оказалось, из-за того, что сама плата слегка греется, нагревая тем самым Х.С., создавая разницу между Г.С. и Х.С. А когда я калибровал датчик холодного спая, то не поднес эталонный датчик вплотную к разъему. В результате датчик температуры ХС врал на 4-5 градусов. Это точно вносило погрешность в измерения.

Но вот беда: все равно результаты идут неверные. При комнаной температуре показания казались корректными (совпадали с эталоном). Но стоило мне бросить термопару в стакан с кипятком, как стало ясно что показания неверные - 130 градусов на кипящей воде. Чем выше температура тем больше разница между эталоном и моими измерения с термопарой. Например:
- Показания эталонного прибора - 35 C
- Моя программа показала 41,72
- Термоэдс при этом была 0.481197 мВ
- Температура холодного спая 30.04

Проверил градуировочную характеристку, зашитую в контроллер, - точно совпадает с ГОСТом. Что это может быть?


Tanya
Цитата(yanvasiij @ Mar 12 2016, 14:49) *
Что это может быть?

Все у Вас может быть. Я вот не могу даже представить себе, как можно просмотреть 4 градуса...
Вам осталось проверить все. Сделайте термопару с нулевым спаем для этого нужно добавить еще два медных провода, а эти добавочные спаи поместить в лед. Получится (должна получится) нормальная термопара. что нужно проверить по таблице. Пары при кипении воды... что там у Вас еще есть из опорных точек.
С Хорошим Вольтметром параллельным Вашему измерителю. Если нормально - читайте внимательно программу.
Lagman
Цитата(yanvasiij @ Mar 12 2016, 14:49) *
Проверил градуировочную характеристку, зашитую в контроллер, - точно совпадает с ГОСТом. Что это может быть?

Все зависит от того как вы погружали термопару в стакан с кипятком, если просто держали над кипятком то термометр который измеряет температуру Х.С. просто нагрелся паром и в программе была неправильную поправка.
Для всяких комнатных экспериментов можно принимать температуру Х.С. = комнатной температуре.
А вообще не все так просто, чтобы снять правильные показания надо добиться стационарности для Х.С. и Г.С..
yanvasiij
Вообщем проверил, как советовала Tanya - оказалась неверный тип термопары (я думал, что это тип K, а оказался тип E). Мне подогнали фирменный калибратор, который умеет эмулировать термопары, на нем все прекрасно работает. Спасибо всем за помощь!
yanvasiij
Возникла такая трудность: есть такие термопары типа S,R. У этих термопар в определенных местах характеристики есть очень пологие участки. Например, у термопары типа R в районе нуля градусов разница на один градус это всего лишь 5 микровольт. Мой ацп (AD7792) имеет 16 разрядов и внутренний усилитель с коэффициентом усиления до 128. Если смотреть только на сам АЦП то вроде как измерить из 5 микровольт труда не составит с хорошим коэффициентом усиления. С меня требуют точность до 0.5 градусов во всем диапазоне, но проблема в том, что показания АЦП скачут, где 2-3 микровольта какой бы коэффициент усиления не стоял, и у меня ни в какую не получается обеспечить требуемую точность измерения температуры. А там где характеристика ставится круче, точность обеспечивается слихвой. Подскажите - это вообще реально мерить такие напряжения такой схемой? Я уже измучился, пробовал встроенный в АЦП цифровой фильтр (у него можно поставить достаточно большую постоянную времени), городил свои фильтры с большими постоянными времени - не помогает.
Corner
Если долго вылизывать разводку и обвязку такого АЦП, то можно получить около 1 мкВ точность. Это долго и мучительно. Я ставил сдвоенный чоппер с усилением на 10 и фильтром. И, только после него уже АЦП. Полмикровольта получается без особых танцев с бубном.
yanvasiij
По-поводу чоппера - в чем его преимущество перед встроенным в АЦП усилителем? К тому же чоппер даст дополнительный уход всей схемы по температуре.
Corner
Цитата(yanvasiij @ Jul 25 2016, 07:24) *
По-поводу чоппера - в чем его преимущество перед встроенным в АЦП усилителем? К тому же чоппер даст дополнительный уход всей схемы по температуре.

А насколько по температуре убегает Ваш АЦП?
yanvasiij
У внутреннего опорника ppm = 15. При работе от внешнего опорного дрейф зависит от ppm референтного резистора. Я пробовали так и так - уход для термопары типа R, при нагреве на 50 градусов, не превышал 1-го градуса (для остальных и того меньше).
Corner
Цитата(yanvasiij @ Jul 25 2016, 12:44) *
У внутреннего опорника ppm = 15. При работе от внешнего опорного дрейф зависит от ppm референтного резистора. Я пробовали так и так - уход для термопары типа R, при нагреве на 50 градусов, не превышал 1-го градуса (для остальных и того меньше).

Да неужели? А дрейф ноля входного усилителя сколько?
yanvasiij
Gain Drift vs. Temperature = 3 pmm
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.