Форум программистов, компьютерный форум, киберфорум
Наши страницы
Arduino
Войти
Регистрация
Восстановить пароль
 
Evgen80
2 / 2 / 0
Регистрация: 13.06.2016
Сообщений: 14
1

Определение температуры с точностью порядка сотой

01.12.2019, 21:38. Просмотров 306. Ответов 13
Метки нет (Все метки)

Всем привет.

Суть задачи: на производстве в качестве термометра долго использовался модуль max31855, но его погрешность измерения приводит к тому, что показания постоянно скачут в пределах 0.2 - 0.3 градуса.
Источник сигнала температуры - термопара хромель-алюмель, диапазон температур - от -100 до +450 градусов.
Заменить термопару на другой тип датчика и диапазон температур нельзя.

Необходимо снизить эту погрешность минимум до 0.05 градуса. Отлично, если это будет 0.01 градуса.

Модуль измерения температуры необходимо сопрягать с мк Ардуино уно.



Я постарался подобрать подходящие, по моему мнению, ацп:

ad7793 mcp3421 max11200 ad7783 ad7766

Для ad7793 в даташите вообще даётся схема типичного использования для термопары, но мне сложно её использовать - там не обозначены номиналы используемых резисторов и других радиодеталей (также если кто знает - что означает символ "пружинка в кружке"???? какой-то резистор, но какой).

Видел, что кто-то использовал для этих целей mcp3421, но там не было в явном виде указано, какую точность измерения она даёт.

Подытоживая, прошу помощи с выбором элементной базы (не обязательно, что я тут показал, может кто знает другие решения), и так как опыта у меня тут явно не хватает, то желательно подробнее изобразить схему - где и как что соединять, какое питание, как сопрягать с ардуино. Если к тому же будет типовой скетч, который всё это оживляет, то это будет просто ОТЛ.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2019, 21:38
Ответы с готовыми решениями:

13

Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,653
Записей в блоге: 18
01.12.2019, 22:46 2
Цитата Сообщение от Evgen80 Посмотреть сообщение
Заменить термопару на другой тип датчика и диапазон температур нельзя.
Как же PT100/PT100 ?
Термопара как сама по себе вроде как не точная штука и скорее всего проблема в ней.

Цитата Сообщение от Evgen80 Посмотреть сообщение
до 0.05 градуса
Как по мне это фантастика ...
Но я могу ошибаться. C чем сравнивать показания будите?

Добавлено через 2 минуты
обратите внимание, что термопары типа К имеют около точность от ± 2 °C до ± точности 6 °C
Источник https://arduino.ua/prod666-cifrovoi-...55-ot-adafruit
0
Evgen80
2 / 2 / 0
Регистрация: 13.06.2016
Сообщений: 14
01.12.2019, 23:05  [ТС] 3
Термопара даёт систематическую ошибку, то есть сдвиг, который легко учитывается по контрольным точкам. Но шум от неё достаточно малый. По крайней мере если снимать показания не микроконтроллёром, а аналоговым микровольтметром, то показания плавают в пределах, меньших 0.1.
По техзаданию нельзя отказаться от термопары, она принципиально встроена при царе горохе и менять на датчики это огромная проблема. Причем там очень мало места, около сантиметра рабочий объём, который находится то при низких температурах, около азота, то до 450 цельсия. Может есть термостпротивления для такого диапазона, но не факт, что они дадут меньший шум, чем термопара.
1
Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,653
Записей в блоге: 18
02.12.2019, 00:37 4
Так программно усредняйте значения и все.

Провода укорачивайте и экранируйте что бы шум был меньше.
Есть конечно "шум" АЦП и наверное можно найти модуль с АЦП большей разрядностью, но как по мне это излишне.
0
02.12.2019, 00:37
Evgen80
2 / 2 / 0
Регистрация: 13.06.2016
Сообщений: 14
02.12.2019, 00:43  [ТС] 5
Нюанс в том, что измерять часто нельзя - не чаще раз в несколько секунд. Сам процесс единичного измерения начинает вносить искажения в управляющий процесс, организованный на том же мк, который измеряет температуру. Поэтому такая фича - измерять нужно достаточно быстро ( не дольше 100 мск) , но редко. Усреднение программное организованно, но его недостаточно.
0
Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,653
Записей в блоге: 18
02.12.2019, 00:48 6
Что значит нельзя?
МК слабый?
Возьмите сильнее, или используйте вспомогательный.
0
Evgen80
2 / 2 / 0
Регистрация: 13.06.2016
Сообщений: 14
02.12.2019, 00:52  [ТС] 7
Привлечение второго мк решает прооблему с нормальным программным усреднением. Просто это оставлено как самый последний вариант.
0
Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,653
Записей в блоге: 18
02.12.2019, 00:58 8
Да я думаю возможно стоит смотреть в код. Может там можно оптимизировать и использовать усреднение.

Добавлено через 57 секунд
Кроме того есть разный код фильтров для усреднения.
1
Evgen80
2 / 2 / 0
Регистрация: 13.06.2016
Сообщений: 14
02.12.2019, 01:02  [ТС] 9
Допустим, измерение происходит раз в 5 сек. Усреднять надо примерно на диапазоне в 1 минуту, то есть это порядка 10 значений. Какие вы можете предложить фильтры? Название, ссылки на примеры.

Температура не постоянна, а идёт нагрев со скоростями от 1 до 7 градусов в минуту. Может я путаюсь и это не повлияет на использование фильтра, просто фильтры никогда не приходилось использовать.
0
i8085
2515 / 1573 / 315
Регистрация: 11.09.2009
Сообщений: 5,782
02.12.2019, 01:16 10
Цитата Сообщение от Evgen80 Посмотреть сообщение
Источник сигнала температуры - термопара хромель-алюмель...
Отлично, если это будет 0.01 градуса.
А вы переведите 0,01 градуса в величину изменения напряжения с термопары. Потом сравните с разрешающей способностью, кратковременной стабильностью усиления и шумами вашего входного каскада. Без этих цифр перед глазами бессмысленно рассуждать о достижимой точности, о фильтрах...
0
Evgen80
2 / 2 / 0
Регистрация: 13.06.2016
Сообщений: 14
03.12.2019, 03:21  [ТС] 11
Поискал про фильтры. Прикрутил самый простой и точность улучшилась примерно до 0.09 - 0.05 градуса, причём чаще 0.05, изредка прыгает на 0.1.

Спасибо за попощь.
1
ветеран_5Э92
10 / 10 / 4
Регистрация: 13.10.2015
Сообщений: 53
03.12.2019, 08:48 12
Бредовая затея - лаптем измерять с запредельной точностью. Не надо путать точность измерения и цену отображения.
Лекций читать не стоит. Коллега Avazart дал правильный ответ.
С уважением Ветеран
1
Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,653
Записей в блоге: 18
03.12.2019, 16:01 13
Evgen80, Тогда может приведете код фильтра что ли или ссылку на статью как решение, может кому-то другому пригодится?
0
Рыжий Лис
Просто Лис
2151 / 1137 / 546
Регистрация: 17.05.2012
Сообщений: 3,889
Записей в блоге: 9
03.12.2019, 18:27 14
Я пользовался медианным фильтром - мне понравилось, как он работает, и прост в реализации.
1
03.12.2019, 18:27
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2019, 18:27

Определение температуры газа.
Здравствуйте помогите с решением задачи. Определите температуру газа при давлении Р=0,1Па, если...

Задача на определение температуры газа
Всем привет, подскажите плз. что я делаю неверно, спс: У посуде объемом 10 л. находится 20 моль...

Определение температуры цвета на мониторе
Здравствуйте! Вопрос следующий. Мне нужно научиться (для себя) определять температуру цвета на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.