Термисторы, попытка I


Заинтересовался бюджетными способами измерения температуры. Широко распространеные цифровые датчики слишком дороги, а невысокая стоимость термисторов очень привлекает
Выбор пал на NCP21WB473J03RA. Стоимость ~12р. шт., корпус 0805, сопротивление при 25°C — 47к (±5%).
Почитал немного полезной литературы (ссылки в конце), и собрал следующую схему:

Термистор от Murata, с документацией оказался полный порядок.
В таблице указаны значения сопротивления с шагом в 5°C.

Контроллер был взят MSP430FR5738, АЦП 10 битное, опорное напряжение (Vref) как и для питания делителя равно 2,5 вольт.
Далее, зная сопротивление R10, термистора R13, а так же зная напряжение, можно без труда рассчитать делитель для каждого значения температуры из таблицы.

Вручную пересчитывать мне не захотелось и наскоро написал калькулятор в Кьют (проект прикреплен).
Табличные значения записываются в xml (мне показалось так будет удобнее).
На выходе имеем константы для ADC и соответствующий им массив с «отправными точками»

После преобразования, необходимо найти константы, ближайшие к текущим значениям ADC и приблизить показания.
float ADC_Result_Calc(void){
float retFloat;
uint16_t temperature_hex = 0;
uint16_t temp;
uint8_t i;
uint8_t sizeTable = sizeof(table);
for(i=0; i<sizeTable ; i++) {
if((adc_result <= table[i]) && (adc_result >= table[i+1])) {
temp = table[i] - table[i+1];
temp = temp / 10;
temperature_hex = table[i+1];
retFloat = (float)temperature_value[i];
while(temperature_hex < adc_result) {
temperature_hex += temp;
retFloat += 0.5;
}
return retFloat;
}}}
Таким образом измеренная температура была в целом похожа на реальную, отличалась на 1°C от выставленной на сплитсистеме. План дальнейших измерений и тестов еще не придумал.
Продолжение следует…
Ссылки:
Измерение температуры при помощи NTC термистора
Статья на easyelectronics
Применение терморезисторов
- +3
- 09 августа 2015, 03:26
- khomin
- 1
Файлы в топике:
table_PC.zip
А почему Вы думаете, что получится бОльшая точность, чем у цифровых датчиков? Ведь у термистора по спекам разброс 5%. Добавьте сюда погрешность АЦП, разброс остальных элементов, источника опоры. Также учтите температурные отклонения параметров вышеуказанных элементов. Предвижу аргумент про калибровку и программную компенсацию всех погрешностей. Но если такую калибровку сделать для цифровых датчиков, их точность тоже повысится. Поэтому корректно будет опираться на данные без калибровки, в результате мы имеем погрешность хуже 5%
- coredumped
- 09 августа 2015, 08:37
- ↓
Предвижу аргумент про калибровку и программную компенсацию всех погрешностей. Но если такую калибровку сделать для цифровых датчиков, их точность тоже повысится.Смотря для каких, смотря какая периодичности измерения и смотря в какой среде (DS18x20, например, при частом замере температуры воздуха начинают заметно разогреваться).
Да, где-то читал про саморазогрев ds18xxx. А ссылочку на статью не можете дать? Интересно перечитать будет. Я у себя такой проблемы не обнаружил при опросе раз в 3 секунды.
- coredumped
- 09 августа 2015, 11:55
- ↑
- ↓
DS18x20, например, при частом замере температуры воздуха начинают заметно разогреваться.Коллега, ну неужели Вы верите, что DS18x20 измеряет температуру воздуха? :-)
DS18x20, как правило, измеряет температуру проводов, к которым он подключен! :-)
Вся наша практика – это сплошные допущения в заданных пределах. При низкой частоте опроса он вполне себе измеряет температуру окружающего воздуха. Ибо температура выводов также ему равна. Кроме того, можно прилепить к датчику радиатор.

в этом плане tmp112 намного интереснее. Он намного компактнее, следовательно довести температуру до кристалла легче, к тому же сейчас продается термопроводящая резина на любой вкус, с очень хорошими характеристиками
Действительно, точность тут получится никакая. Термистор 5%, встроенный ИОН +-10%, в общем это как пальцем в небо ;-)
соглашусь, в этом виде точность скорее будет никакая, но меня заинтересовало несколько коммерческих измерителей температуры, где применяются подобные термисторы
Если говорить об лабораторном оборудовании, то для него существуют платиновые термисторы, обладающие высокой стабильностью. Получается, что или точность, или цена…
- coredumped
- 09 августа 2015, 12:00
- ↑
- ↓
Калибруют каждый датчик (терморезистор). Причём в керосине — с добавлением жидкого азота! Но это для задач +-0.01 градуса в диапазоне +- 10 градусов и 0.1 при -50. Мне такую калибровку в Новосибирске проводили :-)
У меня ещё десяток «алмазных» терморезисторов завалялся (не калиброванных)… Никому не надо?
У меня ещё десяток «алмазных» терморезисторов завалялся (не калиброванных)… Никому не надо?
К стати, если использовать одну опору для АЦП и измерительного делителя, можно полностью избежать влияния нестабильности ИОН. Останутся только погрешности элементов делителя и АЦП.
- coredumped
- 09 августа 2015, 08:52
- ↓
Чтобы не допускать глупых ошибок с sizeof, стоит написать макрос:
#define LENGTH(arr) (sizeof(arr) / sizeof(arr[0]))
Кроме того
имеет смысл вообще в дефайн вынести. Или хоть за пределы for, т.к. сейчас оно вычисляется на каждой итерации… Типа такого
sizeof(table)
имеет смысл вообще в дефайн вынести. Или хоть за пределы for, т.к. сейчас оно вычисляется на каждой итерации… Типа такого
table_size=sizeof(table) / sizeof(table[0]);
for(i=0; i<table_size; i++)
Кроме того
sizeof(table)
имеет смысл вообще в дефайн вынести. Или хоть за пределы for, т.к. сейчас оно вычисляется на каждой итерации…
sizeof будет заменен константой на этапе компиляции. И выражения sizeof()/sizeof() тоже будут вычислены один раз на этапе компиляции.
А вот в коде
for(i=0; i<sizeTable ; i++) {
if((adc_result <= table[i]) && (adc_result >= table[i+1])) {
…
}
похоже, есть более серьёзная ошибка – выход за приделы массива на последней итерации цикла. Плюс, ели температура будет ниже нижней границы указанной в таблице (как и если будет выше верхней) то функция вернет случайное число (значение неинициализированной переменной)
Товарищи, а как смотрите на применение аналоговых температурных датчиков от TI?
Например LMT70A, заявлено ±0.1°C, вот только BGA…
Например LMT70A, заявлено ±0.1°C, вот только BGA…
В смысле почему линейный?
Ну линейный, если смотреть сопротивление меди от температуры. Платину мне не давали, а вот медные датчики температуры делал своими руками. +- 10 мм медного провода 0.02 мм уже значительную погрешность давали… Причём к датчику даже притрагиваться было нельзя (и дышать рядом) — температура сразу вверх лезла :-)
Ну линейный, если смотреть сопротивление меди от температуры. Платину мне не давали, а вот медные датчики температуры делал своими руками. +- 10 мм медного провода 0.02 мм уже значительную погрешность давали… Причём к датчику даже притрагиваться было нельзя (и дышать рядом) — температура сразу вверх лезла :-)
Не могу удержаться, чтобы не поделиться былью об использовании DS18B20.
Два независимых канала измерения с датчиками DS18B20. Датчики лежат на столе, обмотанные тонкой полиэтиленовой плёнкой — не дай Бог — «сквознячки»! Разница показаний 0.2 градуса. Ну и отлично!
Всё в пределах документации на DS18B20!
И тут я заметил, что один провод подключения датчиков (от «мыши» использовал) на 20 см «свисает» со стола…
Надо сказать — измерения проводились зимой. Градиент температуры в помещении — более чем -10 градусов на метр…
И вот этот «градиент» датчик «увидел»!!! Я провода рядом положил на столе
— и через пару минут (не сразу конечно!) показания стали различаться на +- 0.01 градуса!
С тех пор я DS18B20 очччень сильно уважаю! (Датчики были из разных партий)
Два независимых канала измерения с датчиками DS18B20. Датчики лежат на столе, обмотанные тонкой полиэтиленовой плёнкой — не дай Бог — «сквознячки»! Разница показаний 0.2 градуса. Ну и отлично!
Всё в пределах документации на DS18B20!
И тут я заметил, что один провод подключения датчиков (от «мыши» использовал) на 20 см «свисает» со стола…
Надо сказать — измерения проводились зимой. Градиент температуры в помещении — более чем -10 градусов на метр…
И вот этот «градиент» датчик «увидел»!!! Я провода рядом положил на столе
— и через пару минут (не сразу конечно!) показания стали различаться на +- 0.01 градуса!
С тех пор я DS18B20 очччень сильно уважаю! (Датчики были из разных партий)
Блин, редактирования таки не хватает :(
±0.5°C — это абсолютная погрешность, естественно.
±0.5°C — это абсолютная погрешность, естественно.
- coredumped
- 09 августа 2015, 20:48
- ↑
- ↓
Для медицинских, думаю, можно подобрать терморезистор линейный в диапазоне 35-42 градусов, что упрощает измерительную систему. А абсолютную погрешность можно скомпенсировать подстройкой на производстве всего по одной точке.
- coredumped
- 09 августа 2015, 17:38
- ↑
- ↓
Года 2 назад купил вот такое говно фирмЫ OMRON в аптеке за 400 рэ. Сейчас он видимо стоит еще дороже.
Выбрал эту — еще более дорогую модель с широким кончиком, который якобы измеряет быстрее и надежнее (очередное know-how для лохов), чем более дешевые модели этой же фирмы с более тонкими кончиками.
Тоже взял из-за якобы его безопасности, по сравнению с ртутным. Но сие електронное дерьмо врет от 0.5 до 2 град. по сравнению с классическим ртутным. Особенно врет, если держать его подмышкой. Брал спецом для детей, но потом понял, что он просто ОПАСЕН, т.к. когда у ребенка подскочила температура до 39 и выше — сие дерьмо казало 37 с копейками. Но до 38.0 ребенку не надо давать жаропонижающее, чтобы иммунитет сам эффективно боролся с болезнью и если такая температура (37.x) держится стабильно — можно успокоится. Но когда она повышается до 38 с копейками и есть динамика ее повышения до 39 — надо уже срочно давать жаропонижающее, и вообще, уже что-то предпринимать. Это хорошо, что я догадался перемерить температуру обычным градусником, т.к. остальные симптомы совершенно не соответствовали температуре, которую показывал «БЕЗОПАСНЫЙ» електронный чудо-прибор.
Кстати, вымуштрованные барыгами продавщицы из аптеки отказались вернуть мне деньги за это говно.
Выбрал эту — еще более дорогую модель с широким кончиком, который якобы измеряет быстрее и надежнее (очередное know-how для лохов), чем более дешевые модели этой же фирмы с более тонкими кончиками.
Тоже взял из-за якобы его безопасности, по сравнению с ртутным. Но сие електронное дерьмо врет от 0.5 до 2 град. по сравнению с классическим ртутным. Особенно врет, если держать его подмышкой. Брал спецом для детей, но потом понял, что он просто ОПАСЕН, т.к. когда у ребенка подскочила температура до 39 и выше — сие дерьмо казало 37 с копейками. Но до 38.0 ребенку не надо давать жаропонижающее, чтобы иммунитет сам эффективно боролся с болезнью и если такая температура (37.x) держится стабильно — можно успокоится. Но когда она повышается до 38 с копейками и есть динамика ее повышения до 39 — надо уже срочно давать жаропонижающее, и вообще, уже что-то предпринимать. Это хорошо, что я догадался перемерить температуру обычным градусником, т.к. остальные симптомы совершенно не соответствовали температуре, которую показывал «БЕЗОПАСНЫЙ» електронный чудо-прибор.
Кстати, вымуштрованные барыгами продавщицы из аптеки отказались вернуть мне деньги за это говно.

- well-man2000
- 09 августа 2015, 21:48
- ↑
- ↓
Храню мед.справку(обличительный документ из своих более молодых лет), в которой врач зафиксировал опьянение 4.2% — это по анализу крови. Это что получается — у меня кровь была как пиво «Балтика №7»? Потом он мне сказал(с очень серьезным лицом, т.к. я по своему обыкновению видимо о чем-то шутил), что, вообще-то, — это смертельная доза. Я был весьма и весьма удивлен, т.к. не считал себя ни алкоголиком, ни даже пьяницей: ну подумаешь — попил 2 дня подряд, но я же не каждый день, а так, изредка: раз/два в месяц или в два.
- well-man2000
- 09 августа 2015, 22:12
- ↑
- ↓
Там это дерьмо пикает, когда типа он замерил. Как он пикнет — через минуту или через две/три — знает только говнокодер, который его программировал. Что потом делать: вынимать его и смотреть показания, еще держать 2-5 минут?
Продавщицы же отвечали на мои настырные вопросы вяло и как-то вскользь, не смотря мне в глаза, или же просто делали каменное лицо и переходили на официально-юридический тон. Они видимо уже всё знали об этих термометрах, и у себя дома держали обычные градусники. Еще говорили, что более-менее точно он ВОЗМОЖНО измерит, если держать его во рту, а подмышкой не рекомендуется.
Продавщицы же отвечали на мои настырные вопросы вяло и как-то вскользь, не смотря мне в глаза, или же просто делали каменное лицо и переходили на официально-юридический тон. Они видимо уже всё знали об этих термометрах, и у себя дома держали обычные градусники. Еще говорили, что более-менее точно он ВОЗМОЖНО измерит, если держать его во рту, а подмышкой не рекомендуется.
- well-man2000
- 09 августа 2015, 22:35
- ↑
- ↓
Короче я понял: ни какой гарантии точности — пошли в жопу в данном случае все эти их digital електронные know-how + с MCU, т.е. полностью зависеть от потенциального говнокода, захлестнувшего все вокруг. Лучше пользоваться старой доброй физикой, которая не обманет.
- well-man2000
- 09 августа 2015, 23:28
- ↑
- ↓
Лучше пользоваться старой доброй физикой, которая не обманет.
Ну, физика то вас не обманет, а вот производитель термометров – запросто. Чтобы ртутный термометр показывал правильную температуру – нужно обеспечить точность кучи параметров — объем камеры со ртутью, параметры капилляра, вакуум в капилляре, чистоту ртути и т. д. Поэтому далеко не факт, что абстрактный ртутный термометр (непонятно где и кем изготовленный) точнее, чем электронный. Не узнаешь, пока не сделаешь поверку…
Храню мед.справку(обличительный документ из своих более молодых лет), в которой врач зафиксировал опьянение 4.2% — это по анализу крови.Алкоголь в крови нормируется в промилле, поэтому, речь скорее всего шла о 4.2‰. С концентрацией более 1% люди не живут, и врач был бы очень сильно удивлен, увидев у вас 4.2% :)
Алкоголь в крови нормируется в промилле, поэтому, речь скорее всего шла о 4.2‰. С концентрацией более 1% люди не живут, и врач был бы очень сильно удивлен, увидев у вас 4.2% :)
Специально щас нашел этот исторический артефакт — там написано: «Алкогольное опьянение 4.2 %».
Вроде с градусниками не было особых проблем, тем более его всегда можно просто проверить на 36.6. Это уже отточенная за 100 лет технология, тем более их делают бывшие советские заводы по старым ГОСТ-ам. Хотя щас, в связи с повсеместным внедрением «эффективного менеджмента» и выжиманием из всего подряд прибыли — все возможно.
- well-man2000
- 10 августа 2015, 00:25
- ↑
- ↓
этот исторический артефакт — там написано: «Алкогольное опьянение 4.2 %».Ну, значит это действительно истерический артефакт:)
Вроде с градусниками не было особых проблем, тем более его всегда можно просто проверить на 36.6.
Хотя щас, в связи с повсеместным внедрением «эффективного менеджмента» и выжиманием из всего подряд прибыли — все возможно.
В том-то и дело, проверка на 36.6 – не гарантия корректной работы. По идее, медицинские термометры должны как-то проверяться и сертифицироваться. Если эта структура сертифицировала цифровой термометр, который врет в пределах 2 градуса – почему бы она не могла сертифицировать и ртутный (или любой другой) с такой же погрешностью измерений.
e_mc2 — Вы буквоед, особенно, когда беседуете со мной: Ртутный градусник врет на 2 градуса ???!!! Это же почти 2 см по капилляру.
- well-man2000
- 10 августа 2015, 00:53
- ↑
- ↓
Нет, я просто хочу сказать, что нельзя слепо верить в то, что ртутный градусник надежнее.
Почему именно 2, а не 0.8? Повторюсь, все зависит от кучи параметров… От объема резервуара, от сужения капилляра, от самого капилляра, от давления в капилляре и т. д.
Я к тому, что врать может любой измерительный прибор (не зависимо от принципа его работы), и пока ты его лично не поверишь – можно только надеется на то, что производитель вас не обманывает.
Это же почти 2 см по капилляру.
Почему именно 2, а не 0.8? Повторюсь, все зависит от кучи параметров… От объема резервуара, от сужения капилляра, от самого капилляра, от давления в капилляре и т. д.
Я к тому, что врать может любой измерительный прибор (не зависимо от принципа его работы), и пока ты его лично не поверишь – можно только надеется на то, что производитель вас не обманывает.
Это бесполезный спор. Просто купите этот термометр и поюзайте его, я считаю (ИМХО), что он говно.
И не из-за калибровки, а из-за конструкции датчика и самого принципа измерения. Показания датчика очень сильно зависят, в частности, от влажности тела, если совать его подмышку. Само измерение длится какое-то время в минутах, а затем уже он выдает показание, т.к. измерять температуру в реалтайме он не может. Теоретически это возможно, но посмотреть температуру нельзя, т.к. термометр подмышкой или во рту, как только вы его вытащите, чтобы посмотреть температуру — он тут же скинет ее на несколько градусов, тем более, если еще и покрыт потом, который тут же испаряется. Ртутный градусник очень инерционен в этом отношении — его надо даже специально встряхивать, чтобы произвести новый замер. Он работает как бы только в плюс, если это возможно, т.е. его можно просто догреть телом еще несколько минут, если вы не уверены в его показаниях.
По какому принципу работает электр.термометр — я не знаю. Может быть он отсчитывает фиксированный промежуток времени в 2-5 мин, а затем фиксирует максимальную температ. за этот период. А может ждет момента, когда в течении 1 мин температура уже не повышается, а затем фиксирует это показание. Может еще что, но по факту он измеряет каждый раз с разбросом показаний(может его не так прижали, может ребенок приоткрыл рот и вдохнул воздух, может выступило больше пота подмышкой и т.д.), в отличии от ртутного.
И не из-за калибровки, а из-за конструкции датчика и самого принципа измерения. Показания датчика очень сильно зависят, в частности, от влажности тела, если совать его подмышку. Само измерение длится какое-то время в минутах, а затем уже он выдает показание, т.к. измерять температуру в реалтайме он не может. Теоретически это возможно, но посмотреть температуру нельзя, т.к. термометр подмышкой или во рту, как только вы его вытащите, чтобы посмотреть температуру — он тут же скинет ее на несколько градусов, тем более, если еще и покрыт потом, который тут же испаряется. Ртутный градусник очень инерционен в этом отношении — его надо даже специально встряхивать, чтобы произвести новый замер. Он работает как бы только в плюс, если это возможно, т.е. его можно просто догреть телом еще несколько минут, если вы не уверены в его показаниях.
По какому принципу работает электр.термометр — я не знаю. Может быть он отсчитывает фиксированный промежуток времени в 2-5 мин, а затем фиксирует максимальную температ. за этот период. А может ждет момента, когда в течении 1 мин температура уже не повышается, а затем фиксирует это показание. Может еще что, но по факту он измеряет каждый раз с разбросом показаний(может его не так прижали, может ребенок приоткрыл рот и вдохнул воздух, может выступило больше пота подмышкой и т.д.), в отличии от ртутного.
- well-man2000
- 10 августа 2015, 01:50
- ↑
- ↓
По какому принципу работает электр.термометр — я не знаю.
Попалось в сети: описание интеграловской микросхемы.
Что из себя представляет термометр медицинский ртутный?Если технологических нарушений нет – нет и источника вранья.
Ртутный термометр представляет из себя стеклянную запаянную колбу, с капилляром, содержащим 2 г ртути, и со шкалой с делениями от 34 до 42. Цена деления шкалы – 0,1 градус. Ртутный термометр еще называют максимальным, потому что он показывает максимальную температуру тела при измерении температуры и столбик ртути остается на своем максимальном значении до тех пор, пока градусник не встряхнут.
Если технологических нарушений нет – нет и источника вранья.
А если есть? :) Производитель вот так сразу о них и объявит? Типа мы не смогли обеспечить ровно 2г ртути, и диаметр капилляра у нас гуляет… Ну и там не совсем вакуум…
Я не сомневаюсь в том, что законы термодинамики справедливы :) Я и говорю, что все зависит от тех. процессов производителя. С точки зрения чистой физики – на основании теплового расширения можно создать идеальный термометр. На практике – точность прибора будет зависть от тех самых «технических нарушений»
Коллега, да я не затеваю спор. Если вы воспринимаете это как «спор» то я задаюсь, Вы победили!
Я просто хотел сказать, что если мы возьмём среднестатистический «китайский» цифровой термометр, и такой-же «китайский» ртутный – то совершенно не факт, что ртутный окажется более точным. Я лично не проверял именно ртутные термометры, но «спиртовые» (или что там у китайцев там за жидкость) врут в пределах 5 градусов при заявленной точности в 0.5.
Я просто хотел сказать, что если мы возьмём среднестатистический «китайский» цифровой термометр, и такой-же «китайский» ртутный – то совершенно не факт, что ртутный окажется более точным. Я лично не проверял именно ртутные термометры, но «спиртовые» (или что там у китайцев там за жидкость) врут в пределах 5 градусов при заявленной точности в 0.5.
Я же веду свою речь к тому, что я уже не уповаю, как в молодости, на всесилие и универсальность digital & algoritmic(CPU computed) технологий. Я просто понял, что часто вещи, сделанные на правильно продуманных физических принципах или calculated or produced on analog principles, работают на порядок/два надежнее и лучше, часто будучи тем не менее проще и дешевле.
Если бы по своему хитрый, но простой как 2 копейки клапан сброса давления в паровом котле, работающий по принципу центробежной силы или просто веса, заменяли бы на красивенький приборчик с MCU + датчик давления + электроуправляемый клапан — котлы взрывались бы тут и там повсеместно. Если даже взрываются ракеты Ариан, Протон и SpaceX из-за упования на эту самую електронику + CPU control. Из-за этого, в каком-то смысле, в мире деградирует классическая инженерная мысль.
Если бы по своему хитрый, но простой как 2 копейки клапан сброса давления в паровом котле, работающий по принципу центробежной силы или просто веса, заменяли бы на красивенький приборчик с MCU + датчик давления + электроуправляемый клапан — котлы взрывались бы тут и там повсеместно. Если даже взрываются ракеты Ариан, Протон и SpaceX из-за упования на эту самую електронику + CPU control. Из-за этого, в каком-то смысле, в мире деградирует классическая инженерная мысль.
- well-man2000
- 10 августа 2015, 02:38
- ↑
- ↓
если мы возьмём среднестатистический «китайский» цифровой термометр, и такой-же «китайский» ртутный – то совершенно не факт, что ртутный окажется более точнымУ меня 2 электронных и 1 ртутный. Электронные просто лень выбросить. Пользуемся ртутным.
Как я уже говорил, видел единственную модель электронного с 10-минутным режимом «максимального термометра». Ценник там достаточно конский был.
Как он пикнет — через минуту или через две/три — знает только говнокодер, который его программировалТе, кто этим занимался говорили, что пикает тогда, когда dT/dt падает до 0.1°C/30с. При этом температура занижается примерно на градус, это так называемое «быстрое измерение». Для более точных показаний рекомендовали держать дольше (правда, многие термометры после пи-пи просто вырубаются).
ага, а есть еще и бесконтактные. по принципу тепловизора. На лоб посветил и увидел температуру. Только невдомек, что температура на поверхности лба и внутренняя температура тела — совершенно разные вещи
да, шарлотаны идут в ногу со временем. Сейчас модно пропогандировать достижения НТР и под видом этих достижений впаривать людям совершенно шарлатанские изделия. Особенно это высоко развито в медицине. Всякие лампы Биоптрон, ИК душ, Сюда же зубные щетки со всякими подвижными частями и прочая, прочая.
Имел честь поговорить на выставке с представителями лампы биоптрон. Показали мне картинку, чем он отличается от остальных. Окажывается это не просто свет, а именно лечебный, потому как он отличается от лазера! внимание! некогерентностью. А от солнечного света — поляризацией. Я порекомендовал той тетеньке прислонить ЖК монитор вместо этой лампы. Все же дешевле + двойное назначение. Сидишь в одноклассниках зависаешь, и одновременно лечишься!)) Во где НТР!
Имел честь поговорить на выставке с представителями лампы биоптрон. Показали мне картинку, чем он отличается от остальных. Окажывается это не просто свет, а именно лечебный, потому как он отличается от лазера! внимание! некогерентностью. А от солнечного света — поляризацией. Я порекомендовал той тетеньке прислонить ЖК монитор вместо этой лампы. Все же дешевле + двойное назначение. Сидишь в одноклассниках зависаешь, и одновременно лечишься!)) Во где НТР!
подмышечная область она более подходит, поскольку имеет преимущества:
Кожный покров в принципе может блокировать внутреннюю температуру, но только не подмышечная впадина. Там нет микромышц. поэтому наиболее соответствует внутренней температуре тела. Кроме того она вполне доступна, чего не скажешь о ухе, жопе и под языком, особенно если это говорится о ребенке.
Кожный покров в принципе может блокировать внутреннюю температуру, но только не подмышечная впадина. Там нет микромышц. поэтому наиболее соответствует внутренней температуре тела. Кроме того она вполне доступна, чего не скажешь о ухе, жопе и под языком, особенно если это говорится о ребенке.
LM35/335/135. Линейные аналоговые датчики на диоде Зенера, калиброванные на 10 mV/K. В даташите погрешность 1 С, но обычно это постоянный оффсет, т.е можно измерить раз и давать поправку. Очень удобные и дешевые.
- count_enable
- 09 августа 2015, 20:56
- ↓
Все так, но это только датчик. Еще нужен АЦП, точность которого зависит еще и от ИОН. + (возможно) нормирующий ОУ, элементы котрого тоже имеют температурную нестабильность. А в интегральном цифровом датчике все «в одном флаконе», и это имеет регламентированную точность.
- coredumped
- 09 августа 2015, 21:29
- ↑
- ↓
т.е можно измерить раз и давать поправкуА как эту поправку дать??? Огромные проблемы!!!
Даже 0 градусов реперную точку получить… Это же офигенные многократные и многочасовые измерения! И на протяжении всего процесса давление воздуха должно быть «нормальным» :-)
Ну вот я DS18B20 для своих девайсов по ртутному 0,1°С калибрую в термобоксе (колхоз, но хоть такая калибровка). И таки да, 2-3 часа на один датчик.
Я бы всё-таки рекомендовал калибровать в жидкой среде. Керосин для DS18B20 — не вариант — очень низкое сопротивление среды не актуально. Можно чистый спирт (хорошего качества), лучше питьевой. Для понижения температуры — я думаю, можно также жидкий азот использовать. И тщательно всё перемешивать — а то градиент по температуре — существенный.
У меня самодельная камера, объем около 1,5 литров. В принципе, устраивает. А жидкая среда, да еще с азотом – в домашней лабе не вариант, на мой взгляд.
Ну, в принципе можно будет при случае поиграться с изопропиловым спиртом, например. А если еще и китайский термос со стеклянной колбой под это дело приспособить…
Как то я у своего знакомого, который себя «северянином» считает (и достал, кстати, своими разговорами о Севере) спросил: «Знаешь, что такое коктейль „Северное Сияние“? — Ну конечно — это водка, напополам с шампанским! Нее… „Северное Сияние“ — это на 3/4 — чистый спирт — а остальное уже шампанское… :-)
Надеюсь Челябинцы меня поймут… :-)
Надеюсь Челябинцы меня поймут… :-)
ЭКЗАМЕН ПО ХИМИИ
Я чем-то был в тот день ужасно занят
и прибежал последним на экзамен.
А за столом сидит доцент Смирнов Эль Ве
и бьет себя по лысой голове.
Попались мне валентности и спектры.
и тут у меня выпали конспекты…
А за столом сидит доцент Смирнов Эль Ве
и хлопает себя по голове.
Он бросил мне две колбы очень ловко.
В обеих жидкость, как компот в столовке.
— А ну-ка, — говорит, — давайте живо —
определите, что это за жидкость —
и эпсилон, н жу, и мю, и рю,
удельный вес и прочую муру.
А я нюхнул — ну, видно, дядя спит…
Ведь это ж настоящий винный спирт!
Ну, думаю, сейчас определю —
попробую сто грамм себе налью.
И тут уж я совсем забыл про спектры…
И вдруг у меня выпали конспекты…
А за столом сидит доцент Смирнов Эль Ве
и хлопает себя по голове.
-Ну, -спрашивает, -как?.., Определили?..
-А что вы там в стаканчик-то налили??-
— Да так, — говорю, — наверное, вода…
А он как закричит — не пей, балда!
Ну прямо так на стенку и полез.
— Да ты же,- говорит, — умрешь, балбес!
Да в этой колбе, там же аш-два-эс!
и добавляет еще о четыре раза,
и обзывает идиотом и заразой.
А я ему в ответ — и все вы врете!
Вы кто, — говорю, — ученый?.. А орете.
Ну вы, наверное, дядя, просто спите.
Ведь это ж настоящий винный спиртик!
Вы кандидат, а я дитя полей!
А он мне говорит — а ну налей!
И я налил, ни капельки не жалко.
И он спокойно, по науке, жахнул.
И стал еще немножечко просить.
Нет. — говорю, — мне надо закусить.
Ты бойкий, ну а я еще бойчей…
И он принес мне стеариновых свечей.
Ну только эти колбы доконали.
а он, гляжу, еще несет, каналья.
-Последняя, чего беречь напрасно —
-для госбюджетных опытов запасы,
И тут уж я совсем забыл про спектры
и вдруг у меня выпали конспекты…
А за столом сидит доцент Смирнов эль ве
и хлопает меня по голове.
Я говорю ему — ну, что, сдавать экзамен?
Он говорит: Сдавайте, я сейчас не занят.
Вы только в вертикальности держитесь,
определите, что это за жидкость.
-Конечно, спирт,! — Вы, видно, парень тертый,
и ставлю я вам твердую пятерку.
Да вы не суетитесь, не спешите,
и сами тут в зачетке распишитесь.
Я подписи своей не ставлю ценной —
за мной охотятся шпионы и доценты.
Ну, я пошел, адью, в таком аспекте,
и тут у меня выпали конспекты.
А за столом сидит доцент Смирнов эль ве
и хлопает себя по голове.
Никто бы не узнал об этом деле,
но наша группа — в щелку подглядели.
С тех пор меня считают парнем тертым…
Еще бы — на весь курс одна пятерка!
А в общем-то я химию учил…
Пятерку я и так бы получил.
1961
А. Дольский
Я чем-то был в тот день ужасно занят
и прибежал последним на экзамен.
А за столом сидит доцент Смирнов Эль Ве
и бьет себя по лысой голове.
Попались мне валентности и спектры.
и тут у меня выпали конспекты…
А за столом сидит доцент Смирнов Эль Ве
и хлопает себя по голове.
Он бросил мне две колбы очень ловко.
В обеих жидкость, как компот в столовке.
— А ну-ка, — говорит, — давайте живо —
определите, что это за жидкость —
и эпсилон, н жу, и мю, и рю,
удельный вес и прочую муру.
А я нюхнул — ну, видно, дядя спит…
Ведь это ж настоящий винный спирт!
Ну, думаю, сейчас определю —
попробую сто грамм себе налью.
И тут уж я совсем забыл про спектры…
И вдруг у меня выпали конспекты…
А за столом сидит доцент Смирнов Эль Ве
и хлопает себя по голове.
-Ну, -спрашивает, -как?.., Определили?..
-А что вы там в стаканчик-то налили??-
— Да так, — говорю, — наверное, вода…
А он как закричит — не пей, балда!
Ну прямо так на стенку и полез.
— Да ты же,- говорит, — умрешь, балбес!
Да в этой колбе, там же аш-два-эс!
и добавляет еще о четыре раза,
и обзывает идиотом и заразой.
А я ему в ответ — и все вы врете!
Вы кто, — говорю, — ученый?.. А орете.
Ну вы, наверное, дядя, просто спите.
Ведь это ж настоящий винный спиртик!
Вы кандидат, а я дитя полей!
А он мне говорит — а ну налей!
И я налил, ни капельки не жалко.
И он спокойно, по науке, жахнул.
И стал еще немножечко просить.
Нет. — говорю, — мне надо закусить.
Ты бойкий, ну а я еще бойчей…
И он принес мне стеариновых свечей.
Ну только эти колбы доконали.
а он, гляжу, еще несет, каналья.
-Последняя, чего беречь напрасно —
-для госбюджетных опытов запасы,
И тут уж я совсем забыл про спектры
и вдруг у меня выпали конспекты…
А за столом сидит доцент Смирнов эль ве
и хлопает меня по голове.
Я говорю ему — ну, что, сдавать экзамен?
Он говорит: Сдавайте, я сейчас не занят.
Вы только в вертикальности держитесь,
определите, что это за жидкость.
-Конечно, спирт,! — Вы, видно, парень тертый,
и ставлю я вам твердую пятерку.
Да вы не суетитесь, не спешите,
и сами тут в зачетке распишитесь.
Я подписи своей не ставлю ценной —
за мной охотятся шпионы и доценты.
Ну, я пошел, адью, в таком аспекте,
и тут у меня выпали конспекты.
А за столом сидит доцент Смирнов эль ве
и хлопает себя по голове.
Никто бы не узнал об этом деле,
но наша группа — в щелку подглядели.
С тех пор меня считают парнем тертым…
Еще бы — на весь курс одна пятерка!
А в общем-то я химию учил…
Пятерку я и так бы получил.
1961
А. Дольский
Чтобы не страдать ерундой с таблицами, а потом с приближением, существует формула расчета.
Tn — начальная температура в К, обычно 262,15К (25С)
Ln — натуральный логарифм,
Rt — текущее сопротивление термистора,
Rn — сопротивление термистора при начальной температуре
B — коэффициент из даташита термистора.
Rt может вычисляться по формуле, если стоит в паре с резистором:
где KU — отношение значения ADC к его разрядности,
R — сопротивление резистора.
Уже приводил кусок программы на паскале, который вычисляет таблицу по всем этим параметрам без танцев с бубном Здесь
T:=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15;
где, T — искомая температура в градусах,Tn — начальная температура в К, обычно 262,15К (25С)
Ln — натуральный логарифм,
Rt — текущее сопротивление термистора,
Rn — сопротивление термистора при начальной температуре
B — коэффициент из даташита термистора.
Rt может вычисляться по формуле, если стоит в паре с резистором:
Rt:=Ku*R/(1-Ku)
где KU — отношение значения ADC к его разрядности,
R — сопротивление резистора.
Уже приводил кусок программы на паскале, который вычисляет таблицу по всем этим параметрам без танцев с бубном Здесь
Я бы исходную таблицу закинул в Excel, разбил на 3-4 поддиапазона — и в каждом провёл логарифмический тренд.
Для хорошей абсолютной точности всё равно придётся характеристику R(t) снимать экспериментально…
Для хорошей абсолютной точности всё равно придётся характеристику R(t) снимать экспериментально…
зачем делать молоко из масла? Зачем делать логарифмический тренд по таблице, выведенной на основе уже существующего логарифмического тренда, описанного в Datasheet?
Ну во-первых тренд «по-кускам» будет точнее.
Во-вторых, повторю:
Тупо повторять формулу из Datasheet — это не наш метод!
Во-вторых, повторю:
Для хорошей абсолютной точности всё равно придётся характеристику R(t) снимать экспериментально…И вот тогда — только с поддиапазонами!
Тупо повторять формулу из Datasheet — это не наш метод!
Да, конечно, каждый датчик имеет свою индивидуальную градуировку. Ещё и по 4-х проводной схеме подключается…
Как вариант:
1. Определяем «грубо» температуру по формуле:
А=-0.132*Т-19.15
В=-0.002*Т^2+0.611*Т+96.57
3. Вычисляет точное значение температуры:
Т=А*LN(Rt)+B

Естественно, что это всё имеет смысл, если таблица R(t) определена точно!
Ну а сами таблицы хранить в памяти не надо. Лишнее это.
1. Определяем «грубо» температуру по формуле:
T:=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15;2. Определяем «уточняющие» коэффициенты А, В:
А=-0.132*Т-19.15
В=-0.002*Т^2+0.611*Т+96.57
3. Вычисляет точное значение температуры:
Т=А*LN(Rt)+B

Естественно, что это всё имеет смысл, если таблица R(t) определена точно!
Ну а сами таблицы хранить в памяти не надо. Лишнее это.
Немножко поржал по доброму «Охлаждающим устройством являлся кондиционер БК-1500, штатный испаритель которого ......» — без оконного кондиционера и палок наука не двигается ;).
А по поводу логарифмов и таблицы сопротивлений — конечно таблица удобнее в сто раз, т.к. в реале производители датчиков (не чувствительных элементов) указывают ее а не коэффициенты уравнений.
А по поводу логарифмов и таблицы сопротивлений — конечно таблица удобнее в сто раз, т.к. в реале производители датчиков (не чувствительных элементов) указывают ее а не коэффициенты уравнений.
Вы мыслите как математик а не программист.
Как мыслят математики:
У нас есть нелинейная функция похожая на log(), давайте аппроксимируем ее к log() вычислим коэффициенты и реализуем в программе…
У нас оказалось, что аппроксимация на всем диапазоне дает недопустимую погрешность – давайте разобьём на поддиапазоны, и для каждого вычислим коэффициенты, и перепишем программу…
У нас поменялся тип датчика, и нужно вводить большее кол-во поддиапазонов, давайте их введем, перепишем программу…
У нового датчика зависимость не похожа на log(), давайте аппроксимировать к другой функции, и перепишем программу, с учетом разложения функции в ряд…
Как мыслит программист:
Сделаю ка я табличный способ, он универсален (иначе я устану логику приписывать), если что – придётся менять только коэффициенты в таблице, а не логику…
Как мыслят математики:
У нас есть нелинейная функция похожая на log(), давайте аппроксимируем ее к log() вычислим коэффициенты и реализуем в программе…
У нас оказалось, что аппроксимация на всем диапазоне дает недопустимую погрешность – давайте разобьём на поддиапазоны, и для каждого вычислим коэффициенты, и перепишем программу…
У нас поменялся тип датчика, и нужно вводить большее кол-во поддиапазонов, давайте их введем, перепишем программу…
У нового датчика зависимость не похожа на log(), давайте аппроксимировать к другой функции, и перепишем программу, с учетом разложения функции в ряд…
Как мыслит программист:
Сделаю ка я табличный способ, он универсален (иначе я устану логику приписывать), если что – придётся менять только коэффициенты в таблице, а не логику…
Это всё отмазки. Надо одинаково хорошо владеть и тем и другим методом и применять по ситуации. Так мыслят инженеры. :-)
На этапе разработки (когда не вполне понятен объём требуемой памяти) я бы предпочёл мыслить как математик. Ведь завтра заказчик скажет: а давайте ещё пару/десяток датчиков добавим! А памяти то уже нет… Переписываем программу!
На этапе разработки (когда не вполне понятен объём требуемой памяти) я бы предпочёл мыслить как математик. Ведь завтра заказчик скажет: а давайте ещё пару/десяток датчиков добавим! А памяти то уже нет… Переписываем программу!
Инженеры мыслят (как и программисты) в привычных проверенных категориях. Если все мои датчики 2,2k3,3k3, 10k3, 100k6 заданы таблично — зачем мне что то иное?
А уж зоопарк датчиков разводить это не то-что моветон- это диверсия, не вижу смысла даже обсуждать.
ps И таблица в памяти кстати весьма мало места занимает.
А уж зоопарк датчиков разводить это не то-что моветон- это диверсия, не вижу смысла даже обсуждать.
ps И таблица в памяти кстати весьма мало места занимает.
Ну это конечно меняет дело ;) Ведь калибровку делать категорически запрещено… и кстати магическое словосочетание — своя собственная таблица.
Сломался датчик — срочно все переписать, перекомпилировать, перетестировать, переделать… ивпедрить внедрить.
Наверное конечно есть и такой подход, но имхо не стоит искать приключений там где это не принесет пользы.
Сломался датчик — срочно все переписать, перекомпилировать, перетестировать, переделать… и
Наверное конечно есть и такой подход, но имхо не стоит искать приключений там где это не принесет пользы.
Ведь калибровку делать категорически запрещено…Это что-то новое… Теперь я понимаю, почему наши космические корабли так часто бороздят воды Тихого океана…
Диверсия, блин!
Сломался датчик...Здесь по ситуации может быть — или целиком меняется блок и датчик, и возможен вариант отбора датчиков по группам.
вы говорите в разной области. Все зависит от цели и поставленных задач. Если требуется жутчайшая точность температуры, то действительно, таблицы никакой не хватит. Придется формулу внедрять. А ежели дома температуру воздуха показывать где +-2 градуса никто и не заметит, то сложные формулы приведут к удорожанию устройства, потому как потребуется вычислительная мощность. Вы о чем спорите то?
Признаю, что конечно не в курсе предметной области своего оппонента, но ссылка на статью где применяется переделанный БК-1500 (кто не в курсе это оконный кондиционер), а не специальный прибор для термостатирования как раз заставляет задуматься о тихоокеанской группировке…
По поводу таблиц там даже линейной интерполяцией точность ~0.2 в шаге таблицы 5 градусов, поэтому о 2 х градусах речь не идет.
А уж если требуется жутчайшая точность — интересны требования к ней, условия в которых она измеряется и чем огласите весь список пжлста!
По поводу таблиц там даже линейной интерполяцией точность ~0.2 в шаге таблицы 5 градусов, поэтому о 2 х градусах речь не идет.
А уж если требуется жутчайшая точность — интересны требования к ней, условия в которых она измеряется и чем огласите весь список пжлста!
Признаю, что конечно не в курсе предметной области своего оппонента, но ссылка на статью где применяется переделанный БК-1500 (кто не в курсе это оконный кондиционер)Похоже, что Вы статью дочитали только до упоминания о БК-1500.:-)
А ведь там чуть выше:
После изготовления термометр сопротивления заново проградуирован в Сибирском институте метрологии (СНИИМ), г. Новосибирск, в интервале температур 0-200 °С. Абсолютная погрешность измерения температуры термометром оценена в 0,02 К.
А ежели дома температуру воздуха показывать где +-2 градуса никто и не заметитЯ другу терморегулятор для отопления дома делал на DS18B20. И вот он мне клялся, что самый хороший режим — это установка температуры с точностью 0,1°!!!
сложные формулы приведут к удорожанию устройства, потому как потребуется вычислительная мощность.Давайте разбираться.
Даже если у меня много-диапазонная градуировка.
Итак- вычислим «первое приближение»
T:=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15;Заметим, что Ln(Rt/Rn)=Ln(Rt)-Ln(Rn); Ln(Rn)- это константа!
И в дальнейших расчётах используется только Ln(Rt).
Т.е. сколько бы ты диапазонов не создал — основная «вычислительная мощность» потребуется для вычисления Ln(Rt) (один раз на измерение)!
А если подумать, то можно от Ln отказаться и перейти к Log2… :-)
Вам может клясться кто угодно и в чем угодно, ведь даже сместив датчик на несколько сантиметров вы можете получить +/- несколько градусов — потому что там сквозняк или светит солнышко или конвекционный поток батареи, поэтому точность измерения не температуры 18b20 не есть температура воздуха, а корпуса в данной точке пространства.
Ну и поэкспериметируйте уж если так интересно, возьмите бусину термистора и поднесите к ней ладонь — она будет фиксировать ваше тепловое излучение.
Еще раз хочу сказать, что точность зависит не только от формулы -таблицы, но и от метода и условий, в моем пространстве решений проще это делать таблицами — удобнее точность вполне позволяет.
Вы так свои и не рассказали где производитель обязывает использовать только формулы, жду с нетерпением примеры.
Ну и поэкспериметируйте уж если так интересно, возьмите бусину термистора и поднесите к ней ладонь — она будет фиксировать ваше тепловое излучение.
Еще раз хочу сказать, что точность зависит не только от формулы -таблицы, но и от метода и условий, в моем пространстве решений проще это делать таблицами — удобнее точность вполне позволяет.
Вы так свои и не рассказали где производитель обязывает использовать только формулы, жду с нетерпением примеры.
Ваше первое заявление:
Я не сторонник формул или таблиц и говорил:
— конечно таблица удобнее в сто раз...Последнее:
… в моем пространстве решений проще это делать таблицами — удобнее точность вполне позволяет.Вот с последним трудно не согласиться. Но делать обобщений не стоит. Я привёл для примера другое «пространстве решений», где таблицы менее удобны (мягко говоря).
Вы так свои и не рассказали где производитель обязывает использовать только формулы...А где интересно я такое говорил?
Я не сторонник формул или таблиц и говорил:
Надо одинаково хорошо владеть и тем и другим методом и применять по ситуации.Что бы Вас успокоить, сообщу, что CRC я предпочитаю вычислять с использованием таблиц.
Вы так и не привели свои примеры — пока я вижу только голословные утверждения
А то что таблица в сто раз удобнее — это да и то что мне это удобнее делать таблицами не отменяет того, что могут быть случаи где формула будет по каким то причинам лучше.
Причины которые вы смогли указать — что при смене типа датчика при табличном задании будут проблемы
Жду конкретных примеров.
А то что таблица в сто раз удобнее — это да и то что мне это удобнее делать таблицами не отменяет того, что могут быть случаи где формула будет по каким то причинам лучше.
Причины которые вы смогли указать — что при смене типа датчика при табличном задании будут проблемы
а давайте ещё пару/десяток датчиков добавим! А памяти то уже нет… Переписываем программу!и что производитель дает формулу при этом же и таблицу калибровки! — это даже не интересно и выглядит слабо правдоподобно.
Жду конкретных примеров.
Я вам больше скажу даже не интересовался и не пытался :) т.к. это не имело практической ценности.
Дальше линейной интерполяции значений не делал — точность там где надо ~0.2К, конечно это не 0.02К, но и этого пока вполне достаточно, хотя подумываю улучшить взяв среднее с соседними диапазонами т.е. чтобы получить некоторый прогиб более точно отражающий характеристику датчика.
Дальше линейной интерполяции значений не делал — точность там где надо ~0.2К, конечно это не 0.02К, но и этого пока вполне достаточно, хотя подумываю улучшить взяв среднее с соседними диапазонами т.е. чтобы получить некоторый прогиб более точно отражающий характеристику датчика.
Я вам больше скажу даже не интересовался и не пытался :)А зря — там же все элементарно — в Excel даже можно сделать.
точность там где надо ~0.2КЭто точность при идеальном совпадении характеристики термистора и таблицы.
Таблица — как правило это усредненная характеристика, а каждый термистор будет иметь свою индивидуальную характеристику при такой точности.
Танцы с бубном начинаются если количество термисторов больше одного :-)!
Я уже не говорю о случае когда их 20.
Как вы собираетесь кроме как таблицей калибровочные коэффициенты вводить?
По поводу танцев, никаких данных по своей области вы не представляете, сделаете обсудим, а так пока я не вижу никаких особых преимуществ, а вот неудобств вижу больше:
1. Далеко не все производители предоставляют коэффициенты
2. Вычисления логарифмов не самая приятная задача для мк.
3. Простота и наглядность модификации данных в формулах отсутствует.
По поводу двадцати типов датчиков, опять не понятно что это значит — датчики с разной характеристикой? Прибор-установка меряет и криоген и нагрев чего то в разных диапазонах — поясните?
В моей области:
1.Наружная температура -40/+40C — 2.2к3
2. Выше ноля 10k3
все- точность самих датчиков приводил 0.2К
По поводу танцев, никаких данных по своей области вы не представляете, сделаете обсудим, а так пока я не вижу никаких особых преимуществ, а вот неудобств вижу больше:
1. Далеко не все производители предоставляют коэффициенты
2. Вычисления логарифмов не самая приятная задача для мк.
3. Простота и наглядность модификации данных в формулах отсутствует.
По поводу двадцати типов датчиков, опять не понятно что это значит — датчики с разной характеристикой? Прибор-установка меряет и криоген и нагрев чего то в разных диапазонах — поясните?
В моей области:
1.Наружная температура -40/+40C — 2.2к3
2. Выше ноля 10k3
все- точность самих датчиков приводил 0.2К
Как вы собираетесь кроме как таблицей калибровочные коэффициенты вводить?Посмотрите мою таблицу в Excel выше(11 августа 2015 15:41)
точность самих датчиков приводил 0.2КНу о чём Вы говорите! Давайте считать вручную.
Пусть номинал 2,2 кОм +-5% при 25 градусах. Пусть худший случай -5% — это -0,11кОм
Теперь смотрим в таблицу — на 30 градусов — 1,8 кОм или 0,4кОм/5 градусов=0.08 кОм/градус — то есть на 25 градусов уже возможна ошибка больше чем на градус! А на границах диапазона — будет ещё больше!
При +25°С точность +-1°С получается. Если такая точность Вас устраивает ( а для кучи приложений этого вполне достаточно), то мне остаётся только за Вас порадоваться!
Мне же приходится активно использовать бубен :-)
Ведь что такое таблица, приведённая в datasheet?
Берут 1000 шт. термисторов, делают градуировку — и в таблицу вносят средние значения! Вполне вероятно, что из этой тысячи термисторов не былони одного с указанными в таблице параметрами.
Вот у меня стоит мощный светодиод. Мне нужно дуть на его радиатор таким образом, чтобы он сохранял температуру не более 50 градусов. Вопрос: Нужна ли мне калибровка? Достаточно реализовать ПИД регулятор, (что собственно и сделано), где учитывается не только статичные данные о температуре, но так же и динамика. В итоге, система реагирует практически мгновенно на любые изменения. Но калибровка мне не нужна. к слову совсем.
Конечно если рассматривать все в идеальном приближении то да.
Но ПИД на порядок (если не на 2!) затратнее чем термостат и я плохо представляю люстру с вентилятором… в любом случае, а если это где то далеко то вообще пофиг.
И думаю что сиду пофиг +-5 градусов пролета на несколько секунд от например +50 даже в очень далекой перспективе
А учитывая что радиатор (как например и жидкость) нагревается и остывает не сразу то вполне термостата хватает обычно — посмотрите электрошкафы там если стоит вентилятор то он пускается термостатом.
Это все опят к вопросу необходимости (если конечно не стоит вопрос +-1С) и кстати есть такие мелкие контактные термостаты.
Но ПИД на порядок (если не на 2!) затратнее чем термостат и я плохо представляю люстру с вентилятором… в любом случае, а если это где то далеко то вообще пофиг.
И думаю что сиду пофиг +-5 градусов пролета на несколько секунд от например +50 даже в очень далекой перспективе
А учитывая что радиатор (как например и жидкость) нагревается и остывает не сразу то вполне термостата хватает обычно — посмотрите электрошкафы там если стоит вентилятор то он пускается термостатом.
Это все опят к вопросу необходимости (если конечно не стоит вопрос +-1С) и кстати есть такие мелкие контактные термостаты.
Но ПИД на порядок (если не на 2!) затратнее чем термостатЭто в современных-то реалиях, где цена МК-осьминожки не сильно отличается от цены компаратора для обычного термостата (особенно с учетом упрощения схемотехники и печатной платы) или того же биметаллического термореле?
Ну а остальное — это зависит от задачи уже. С одной стороны — электрошкаф с биметаллическим термостатом, с другой — контроллер вентилятора на матплате с переключаемыми стратегиями охлаждения (тихое, интенсивное, etc).
Цена сильно зависит как только начинается не просто домашний колхоз, а кстати и он тоже — поди с полпинка несведущий человек напиши ПИД ;), собери да настрой все это — сколько времени уйдет?
Я не в коем случае не пытаюсь сказать, что надо все надо делать по простому, но надо задумываться о способе решения проблемы соответствует ли он ей?
Я не в коем случае не пытаюсь сказать, что надо все надо делать по простому, но надо задумываться о способе решения проблемы соответствует ли он ей?
ПИД мне стоил неделю писанины доп модуля плюс подборка коэффициентов. Поскольку МК там и без того присутствовал, потому как брал инфу из DMX-512, в реальности затраты — это транзистор, катушка индуктивности, диод, коденсатор по выходу питания вентилятора и собственно термистор + RC цепочка. Стандартный набор.
продукт коммерческий, поэтому нужно было максимально сделать малошумным устройство, 2 — пусть даже если и шумит — но без резких включений — выключений. 3 — максимально возможная стабильность температуры, посколькуу при нагреве кристала изменяются его цветовые характеристики. В общем ПИД нужен, а вот калибровка — нет.
В серьезных проектах обычно бюджет позволяет выделить по тиньке на 1-2 датчика (памяти на таблицы хватит) и предавать абсолютное значение температуры по любой промышленной шине на головной контроллер. Плюсы —
— масштабируемость решения (если уж мы на стадии проектирования не знаем, сколько будет датчиков и не можем, соответственно, выбрать контроллер с достаточным объемом памяти под таблицы, хотя данная ситуация с термином «серьезная разработка» не клеится);
— унификация, т.е. возможность использования разных типов датчиков без необходимости вводить их поддержку в головном контроллере;
— помехозащищенность и, как следствие, снятие ограничений на расстояние до измеряемого объекта.
— масштабируемость решения (если уж мы на стадии проектирования не знаем, сколько будет датчиков и не можем, соответственно, выбрать контроллер с достаточным объемом памяти под таблицы, хотя данная ситуация с термином «серьезная разработка» не клеится);
— унификация, т.е. возможность использования разных типов датчиков без необходимости вводить их поддержку в головном контроллере;
— помехозащищенность и, как следствие, снятие ограничений на расстояние до измеряемого объекта.
ну сколько можно обсасывать одно и тоже?! Вам же говорят, что табличный метод на 2, а может и на 5 порядков быстрее, чем производить вычисления. Разве это не является преимуществом? Формула на самом деле совсем не сложная, тем более ее обсасывали уже много раз. а поскольку речь идет о программировании микроконтроллеров — гораздо более целесообразно применять табличный метод. Тем более что таблицу тоже надо уметь построить.
А вот у меня не 1-2, а 10-20 датчиков. Абсолютная погрешность +-0,1°С5-10 дополнительных копеечных Тинек с таблицами и все дела :)
Кстати, еще одно преимущество использования промежуточного контроллера — имеем небольшой запас уже откалиброванных измерителей и замена вышедшего из строя модуля становится простой и приятной. А демонтированный идет в ремонт и на повторную калибровку.
А вот у меня не 1-2, а 10-20 датчиков.
У вас достаточно специфическая задача (согласен с коллегой B-Screw , описанный им подход, ИМХО, сейчас более распространен).
Через аппроксимацию к нелинейной функции мы теоретически можем получить выгоду при большом кол-ве датчиков.
Раз вы затронули объем памяти – давайте его грубо прикинем, для данной задачи.
У автора разбивка диапазона на 34 поддиапазона (с шагом в 5 градусов) Если значения АЦП в таблице хранить «как есть» — то нужно 2 байта на значении. Но можно (в данном случае) не хранить абсолютные значения, а хранить разницу между предыдущим и последующим значением, для хранения разницы нам достаточно одного байта (правда нельзя будет реализовать бинарный поиск, но при размере таблицы в 34 элемента – это не так принципиально). Итого, таблица уместится в 34 байта ПЗУ, и алгоритм можно реализовать в (при желании) рамках целочисленной арифметики.
Ваше предложение:
Я бы исходную таблицу закинул в Excel, разбил на 3-4 поддиапазона — и каждом провёл логарифмический тренд.
Ок, но мы сразу переходим к арифметике с плавающей/фиксированной точкой, требуется реализация логарифма и т. д. (что отожрет немало памяти). Потом нам нужно хранить коэффициенты А и В для каждого поддиапазона. Если поддиапазонов 4, а для хранения коэффициентов (а они не целочисленные) потребуется по 32бита на число – то мы получим таблицу из 4 * 2 * 4 = 32 байта, что немногим меньше чем «34 байта ПЗУ». Но нам потребуется тянуть реализацию логарифма…
Это я к тому, что Ваш подход к решению задачи хорош, но утверждение « таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица)» не соответствует действительности.
Потом нам нужно хранить коэффициенты А и В для каждого поддиапазона.А это не совсем так. А и В — два коэффициента полностью описывающие датчик, без всяких разбиений на диапазоны! Так что 2*4=8 байт.
Я уже говорил, что это у автора таблица 34 элемента (по datasheetу). Но в общем случае это не так. Таблица может быть и через градус.
Это в диапазоне -40 + 125 °С — 166 элементов.
Плюс для абсолютной погрешности +-0,1°С у каждого датчика будет своя индивидуальная таблица.
Пока мне никто убедительных доводов в пользу таблиц не привёл. Кроме утверждения, что таблицы в 100000 раз быстрее, что мягко говоря весьма спорно. Поэтому мне рано отказываться от своего утверждения:
С таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица)Правда может надо, справедливости ради, добавить: всего одна таблица, переписанная из datasheet термистора.
Пока мне никто убедительных доводов в пользу таблиц не привёл. Кроме утверждения, что таблицы в 100000 раз быстрее, что мягко говоря весьма спорно. Поэтому мне рано отказываться от своего утверждения:Вам никто никаких других доводов привести, кроме уже приведенных, не сможет пока сами не оцените или специфика не заставит.
С таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица)
По идее datasheet это документ и им нужно руководствоваться при выборе датчика. Если вы собираетесь измерять температуру с точностью 0.1С то выбирайте соответствующий прибор, иначе грош цена будет вашим измерениям даже если, например поверенный вчера датчик деградирует от высоких температур или просто будет разрушаться механически.
К примеру:
www.ussensor.com/ultra-precision-interchangeable-thermistors-pr103j2-table
Santik
Типа: «Не читал, но осуждаю!»
У меня возникают смутные подозрения, что Вы просто не знаете, как из таблицы сделать формулу...:-)GIUR22
Я вам больше скажу даже не интересовался и не пытался :) т.к. это не имело практической ценности.Вы считаете, что это достаточно убедительный довод в пользу исключительного применения табличного метода?
Типа: «Не читал, но осуждаю!»
продолжаем сравнительные тесты. Ранее мною была допущена ошибка в преобразовании типов. (тип не был указан)
смотрите строчку вычисления Ku. Там Ku всегда равнялся нулю, что запускало алгоритм по упрощенке, ну вот, мною ошибка была пофиксена и теперь совсем иные результаты:



50, 4877, 4890
(4877-50)/(4890-4877)=371 раз. А это уже между третьим и четвертым порядком.
смотрите строчку вычисления Ku. Там Ku всегда равнялся нулю, что запускало алгоритм по упрощенке, ну вот, мною ошибка была пофиксена и теперь совсем иные результаты:



50, 4877, 4890
(4877-50)/(4890-4877)=371 раз. А это уже между третьим и четвертым порядком.
Ну в 371 раз быстрее — это уже существенно :-). Надо задуматься над оптимизацией расчёта логарифма.
С другой стороны — желательно это всё сравнивать со временем преобразования АЦП.
И об АЦП. Для точных измерений всё-таки надо внешний 16 разрядный АЦП подвешивать. Тогда таблица значительно «подрастёт» :-)
С другой стороны — желательно это всё сравнивать со временем преобразования АЦП.
И об АЦП. Для точных измерений всё-таки надо внешний 16 разрядный АЦП подвешивать. Тогда таблица значительно «подрастёт» :-)
Для 8-битных Atmega (АЦП 10 бит), к примеру, первое преобразование занимает 25 циклов (его можно упрятать в инициализацию системы) и далее по 13 циклов.
Не, что-то я не понимаю. Что такое частота семплирования? 200 кГц — это тактовая АЦП. 13 тактов необходимо.
Тогда частота дискретизации 200/13=15 кГц.
Т.е. на 3 порядка меньше тактовой МК (16 МГц)
Вывод — по формулам считать, хоть и 371 раз медленнее, но всё равно — в RealTime!
Тогда частота дискретизации 200/13=15 кГц.
Т.е. на 3 порядка меньше тактовой МК (16 МГц)
Вывод — по формулам считать, хоть и 371 раз медленнее, но всё равно — в RealTime!
Проголосую, пожалуй, за формулы не по причине быстродействия, а по той причине, что при этом достаточно вынести в EEPROM (флэш) индивидуальные коэффициенты датчика, чтобы получить унифицированное (в рамках системы) программное решение.
Может Вы хотели сказать «проголосую за таблицы»? А то как-то нелогично предложение построено :-)
Таблицы быстрее формулы в 371 раз :-) Доказано Mihail'ом.
Я ошибся, когда оценивал количество байт для коэффициентов формул.
Так как я собираюсь получить A(T) и B(T) — нужно 5*4=20 байт плюс некие коэффициенты в основной формуле…
Таблицы быстрее формулы в 371 раз :-) Доказано Mihail'ом.
Я ошибся, когда оценивал количество байт для коэффициентов формул.
Так как я собираюсь получить A(T) и B(T) — нужно 5*4=20 байт плюс некие коэффициенты в основной формуле…
В этом наверное есть смысл при массовом производстве? Я так понял — преимущество в том, что flash-память у всех МК будет совпадать, а различия только в EEPROM?
Так в ATmega8 EEPROM -512 байт — туда несколько стандартных таблиц влезет.
e_mc2 уложился в 34 байта, я уложусь в 20 байт. Особой разницы нет.
Если таблицу в единицах АЦП держать — то — да, соглашусь.
Так в ATmega8 EEPROM -512 байт — туда несколько стандартных таблиц влезет.
e_mc2 уложился в 34 байта, я уложусь в 20 байт. Особой разницы нет.
Если таблицу в единицах АЦП держать — то — да, соглашусь.
e_mc2 уложился в 34 байта, я уложусь в 20 байт. Особой разницы нет.
Да почему-же, разница есть, и она себя проявит на большом кол-ве датчиков. Ваш способ выигрывает по памяти 14 байт на один датчик, но проигрывает по производительности при малом кол-ве датчиков. Но у вас аппроксимация к нелинейной функции, чтобы обеспечить одинаковую точность вам нужно меньше поддиапазонов. И, при определенных условиях, ваш способ может выиграть по производительности, ибо сложность нахождения логарифма это O(1), сложность линейного поиска поддиапазона O(n), а у вас для той-же точности будет меньше поддиапазонов.
Плюс, в предложенном мной методе есть нюансы, в данном случае можно хранить разницу между соседними значениями в 8-битной переменной (и даже есть запас по размерности). Но это именно «в данном случае».
По факту — оба подхода имеют свои плюсы и минусы.
Честно говоря, я методику по определению коэффициентов А(Т) и В(Т) особо не проверял. Поэтому у меня всё-таки существуют определённые сомнения в «законности» такого подхода. Практически это 2-х итерационный метод. Но всё это надо доказывать. Жалко, что вы не захотели поучаствовать в нашей дискуссии по теме термисторов. Там нешуточный спор разгорается по поводу методов повышения разрядности АЦП :-)
А по теме — согласен совершенно — оба подхода имеют свои плюсы и минусы.
Если точность определения температуры +-2 градуса, измерение температуры — вспомогательная задача, которую желательно решить быстро — тогда конечно, табличный метод выгоднее.
А по теме — согласен совершенно — оба подхода имеют свои плюсы и минусы.
Если точность определения температуры +-2 градуса, измерение температуры — вспомогательная задача, которую желательно решить быстро — тогда конечно, табличный метод выгоднее.
Жалко, что вы не захотели поучаствовать в нашей дискуссии по теме термисторов. Там нешуточный спор разгорается по поводу методов повышения разрядности АЦП :-)
Да я не «не захотел», просто поздно заметил переписку в «личных сообщениях», уже ответил Вам :) А вообще – может вынесем поднятую там Вами тему в общее обсуждение? Вроде ничего секретного там нет, а чем больше людей проймёт участие – тем лучше…?
я понимаю только одно (на что давал несколько ссылок) — если вы хотите делать прецизионные измерения — берете прецизионный сенсор, с сертификатом точка.
Все остальное относится к теме «из говна и палок», а не что лучше таблицы или вычисление логарифмов на мк и какой бы вы не были гуру математики — имея на входе непредсказуемые данные получаем черти что на выходе.
зы по поводу таблиц приведите пожалуйста пример — скрин таблицы вот мой пример:
Все остальное относится к теме «из говна и палок», а не что лучше таблицы или вычисление логарифмов на мк и какой бы вы не были гуру математики — имея на входе непредсказуемые данные получаем черти что на выходе.
зы по поводу таблиц приведите пожалуйста пример — скрин таблицы вот мой пример:

Ну это как минимум две статьи надо.
1.Как точно измерить показания термистора… ( я бы от себя добавил — используя 10-битный АЦП ATmega). Вот trengtor для повышения точности преобразования предлагает использовать оверсемплинг + децимацию.Я категорически не согласен.
2. Дробление на диапазоны — не очень это интересно. Это каждый может сделать в Excel — на графике тренд проводишь логарифмический и сразу готовую формулу получаешь. А разбиваешь на поддиапазоны — исходя из требуемой точности. Я файл Excel в этой теме выкладывал. Более интересное решение — найти коэффициенты A(T), B(T). Оказалось, что для термисторов, предложенных ТС (Murata) эти зависимости можно с большой точностью интерполировать квадратичной и линейной функцией.
Таким образом, чтобы описать зависимость R(T) достаточно пяти (3+2) коэффициентов. Пока тип этих коэффициентов float (4 байта), но возможно удастся уложиться в целое 2 байта.
Я хочу сказать, что вопросы эти не такие простые, как может на первый взгляд показаться…
Долгими зимними вечерами возможно придётся такую статью написать :-)
1.Как точно измерить показания термистора… ( я бы от себя добавил — используя 10-битный АЦП ATmega). Вот trengtor для повышения точности преобразования предлагает использовать оверсемплинг + децимацию.Я категорически не согласен.
2. Дробление на диапазоны — не очень это интересно. Это каждый может сделать в Excel — на графике тренд проводишь логарифмический и сразу готовую формулу получаешь. А разбиваешь на поддиапазоны — исходя из требуемой точности. Я файл Excel в этой теме выкладывал. Более интересное решение — найти коэффициенты A(T), B(T). Оказалось, что для термисторов, предложенных ТС (Murata) эти зависимости можно с большой точностью интерполировать квадратичной и линейной функцией.
Таким образом, чтобы описать зависимость R(T) достаточно пяти (3+2) коэффициентов. Пока тип этих коэффициентов float (4 байта), но возможно удастся уложиться в целое 2 байта.
Я хочу сказать, что вопросы эти не такие простые, как может на первый взгляд показаться…
Долгими зимними вечерами возможно придётся такую статью написать :-)
Когда мы измеряем АЦП постоянное напряжение, точность преобразования ограничена только шумами. Так что вполне можно получить хорошую точность на 10 бит АЦП.
Вот например давно известна такая штука — МАРУ (масштабирумая автоматическая регулировка усиления), которая позволяет держать сигнал на оптимальном для АЦП уровне — т.е. динамический диапазон значительно возрастает без увеличения разрядности АЦП.
Вот например давно известна такая штука — МАРУ (масштабирумая автоматическая регулировка усиления), которая позволяет держать сигнал на оптимальном для АЦП уровне — т.е. динамический диапазон значительно возрастает без увеличения разрядности АЦП.
Внутри контроллеров далеко не во всех доступна — но в да аврках есть (я правда не пользовался).
В STM32 там вообще SAR АЦП отдельная песня.
Если делать на чем то внешнем то конечно доступно для всех, но карл! сколько все это будет стоить в конечном итоге — времени и денег.
Я наверное десятый или более раз спрошу — практическая задача то какая?
Выжать максимум из того, что имеем с прокачкой mad skills или получить какую то эталонную систему?
В STM32 там вообще SAR АЦП отдельная песня.
Если делать на чем то внешнем то конечно доступно для всех, но карл! сколько все это будет стоить в конечном итоге — времени и денег.
Я наверное десятый или более раз спрошу — практическая задача то какая?
Выжать максимум из того, что имеем с прокачкой mad skills или получить какую то эталонную систему?
Практические задачи:
— мониторинг вечной мерзлоты — тут точность 0.1°С в диапазоне -20+30°С По краям диапазона и 1°С может быть. Датчики через 1 метр, 30-40 датчиков. Частично решена применением DS18B20, но пока очень дорого получается.
— Определение температуры «растепления» керна. Это к инженерной геологии относится. Диапазон -15+5°С с точностью 0.01°С, 3-4 датчика рядом.
— мониторинг вечной мерзлоты — тут точность 0.1°С в диапазоне -20+30°С По краям диапазона и 1°С может быть. Датчики через 1 метр, 30-40 датчиков. Частично решена применением DS18B20, но пока очень дорого получается.
— Определение температуры «растепления» керна. Это к инженерной геологии относится. Диапазон -15+5°С с точностью 0.01°С, 3-4 датчика рядом.
Ну где ж такую хобю найдешь? :-)
Задача коммерческая с бюджетным финансированием. «Всё уже украдено до нас!» (с)
Я могу конечно уточнить, но стоимость «термокосы» на 20 датчиков с логгером около 10 тысяч импортных рублей (то бишь вечнозелёных). Но надо учитывать, что датчики градуируют (вроде бы). По крайней мере к каждому DS18B20 своя таблица поправок была.
Вторая задача интереснее (и по деньгам, в том числе) на порядок.
Задача коммерческая с бюджетным финансированием. «Всё уже украдено до нас!» (с)
Я могу конечно уточнить, но стоимость «термокосы» на 20 датчиков с логгером около 10 тысяч импортных рублей (то бишь вечнозелёных). Но надо учитывать, что датчики градуируют (вроде бы). По крайней мере к каждому DS18B20 своя таблица поправок была.
Вторая задача интереснее (и по деньгам, в том числе) на порядок.
Я вам пытаюсь довести одну простую мысль, которую уже выражал но может не совсем ясно, попробую еще раз. Каждой проблеме подбирать подходящее решение и делать это без фанатизма.
То есть — если вы решаете какую то коммерческую задачу завязанную на измерения и в дальнейшем с вероятными вопросами безопасности или финансовыми показателями, то ваше СИ должно сертифицировано, поверено итп и выполнено на соотвествуюшей элементной базе обеспечивающей нужную точность, стабильность.
Получается вы нам рассказываете про 0.1С я беру датащит на чувствительный элемент и привет, а там в лучшем случае 0.5 а вообще +/-2С в вашем диапазоне.
О чем разговор?
Тоже с таблицы vs ln, я не спорю что ln точнее но, есть ли какойто прямой выигрыш что вы будете иметь погрешность 0.01 вместо 0.1 на 5% датчике?
То есть — если вы решаете какую то коммерческую задачу завязанную на измерения и в дальнейшем с вероятными вопросами безопасности или финансовыми показателями, то ваше СИ должно сертифицировано, поверено итп и выполнено на соотвествуюшей элементной базе обеспечивающей нужную точность, стабильность.
Получается вы нам рассказываете про 0.1С я беру датащит на чувствительный элемент и привет, а там в лучшем случае 0.5 а вообще +/-2С в вашем диапазоне.
О чем разговор?
Тоже с таблицы vs ln, я не спорю что ln точнее но, есть ли какойто прямой выигрыш что вы будете иметь погрешность 0.01 вместо 0.1 на 5% датчике?
Ну типа: «я тебе один умный вещь скажу, но только ты не обижайся»(с)
Да пусть хоть 10% датчик. Я заказываю в сторонней организации калибровку, к примеру 50 датчиков — получаю 50 калибровочных таблиц с точностью 0.01°С
И мне абсолютно пофиг, что датчики различаются на 10% — у меня есть на каждый датчик индивидуальная таблица.
Частично проблемы ложатся на исполнителя калибровки — вот у них должны иметься сертифицированые средства измерения температуры с необходимой для калибровки погрешностью.
Я же получаю СИ (индикатор) температуры и буду проводить проверку в соответствии со стандартом предприятия.
Да пусть хоть 10% датчик. Я заказываю в сторонней организации калибровку, к примеру 50 датчиков — получаю 50 калибровочных таблиц с точностью 0.01°С
И мне абсолютно пофиг, что датчики различаются на 10% — у меня есть на каждый датчик индивидуальная таблица.
Частично проблемы ложатся на исполнителя калибровки — вот у них должны иметься сертифицированые средства измерения температуры с необходимой для калибровки погрешностью.
Я же получаю СИ (индикатор) температуры и буду проводить проверку в соответствии со стандартом предприятия.
А тем не менее индикаторы — это СИ.
«Индикаторы – средства измерений (СИ) с ненормируемыми метрологическими характеристиками, используемые для наблюдения за изменением физических величин без оценки их значений в единицах измерения с нормированной точностью.»
Ссылка.
«Индикаторы – средства измерений (СИ) с ненормируемыми метрологическими характеристиками, используемые для наблюдения за изменением физических величин без оценки их значений в единицах измерения с нормированной точностью.»
Ссылка.
Да пусть хоть 10% датчик. Я заказываю в сторонней организации калибровку, к примеру 50 датчиков — получаю 50 калибровочных таблиц с точностью 0.01°С
Ну, теоретически мы можем взять 10% терморезистор и откалибровать его хоть с точностью до 0.0001°С. Но есть проблемы:
Как правило, реальная точность прибора после калибровки существенно выше, чем сертифицированная точность. Это связано с тем, что измерительный прибор должен гарантировать паспортную точность не только сразу после калибровки, но в течение всего межповерочного интервала.
Можем ли мы гарантировать, что после того как наш терморезистор переживет несколько циклов быстрой заморозки/нагрева, поработает в среде с повышенной влажностью и т. д. у нас эта калибровка не уплывет? Это я к тому, что индивидуальная калибровка это хорошо, но помимо калибровки есть другие проблемы, которые придется как-то решать…
Вот trengtor для повышения точности преобразования предлагает использовать оверсемплинг + децимацию.Я категорически не согласен.
Здесь я Вас поддержу. Выскажу свои доводы против использования оверсемплинга в ИС: для оверсемплинга нужен не просто шум в сигнале, а по сути, белый шум. И мы должны гарантировать характеристики этого шума при эксплуатации прибора в разных условиях. А вот это обеспечить не так просто как кажется. Я когда-то делал генератор случайных чисел для одного криптодевайса, который в последствии должен быть сертифицирован. Тоже сначала подумал – да что там такого сложного, возьму в качестве энтропии тепловые шумы с младшего разряда АЦП. Когда начал анализировать характеристики шума младшего разряда – понял что не все так просто. Пришлось делать «классический» генератор на шумящем диоде.
— мониторинг вечной мерзлоты — тут точность 0.1°С в диапазоне -20+30°С По краям диапазона и 1°С может быть. Датчики через 1 метр, 30-40 датчиков. Частично решена применением DS18B20, но пока очень дорого получается.А какие у Вас есть идеи (в качестве затравки для мозгового штурма)? Использовать откалиброванные терморезисторы подключенные по четырехпроводной схеме?
для оверсемплинга нужен не просто шум в сигнале, а по сути, белый шумДля оверсемплинга можно также использовать манипуляции с опорным напряжением, а не сигналом. А в этом случае можно просто формировать пилообразное (или ступенчатое) опорное напряжение АЦП, используя для этого ШИМ от того же МК (такой пример показан, например, в апноте Atmel AVR120, посвященном оверсемплингу). Или, если уж хочется совсем по-правильному, подмешивать в него сигнал с шумящего стабилитрона. Важно лишь обеспечить нужный размах колебаний опорного напряжения, чтобы работал этот статистический метод повышения точности. Не вижу тут особых проблем, в общем.
Кстати, требуемая точность в этой задаче всего 0,3%, т.е. это вовсе не рокетсайнс.
Единственный существенный недостаток у оверсемплинга – это увеличение интервала измерения (интервала между получением измеренных величин). Но тут он будет некритичен, т.к. realtime не требуется (во-всяком случае, не указан в ТЗ).
В нашем случае в младших разрядах АЦП уже присутствует «естественный» шум с не Гаусовским распределением. Если мы промодулируем опорное пилой амплитудой в 2 младших разряда на пилу наложится этот самый шум и в результате мы получим другой шум, тоже не с Гаусовским распределением. Или я ошибаюсь?
Давайте зайдем с другой стороны – а зачем пытаться выжимать что-то из 10-битного АЦП AVR? По моему, для данной задачи проще взять другой МК с подходящим АЦП (ели я правильно понял, что Santik склоняется к идее использовать много аналоговых датчиков вместо DS18B20).
Давайте зайдем с другой стороны – а зачем пытаться выжимать что-то из 10-битного АЦП AVR? По моему, для данной задачи проще взять другой МК с подходящим АЦП (ели я правильно понял, что Santik склоняется к идее использовать много аналоговых датчиков вместо DS18B20).
В нашем случае в младших разрядах АЦП уже присутствует «естественный» шум с не Гаусовским распределением.Вы абсолютно правы.
...Santik склоняется к идее использовать много аналоговых датчиков вместо DS18B20Для термокос DS18B20 подходит, но для более точных измерений (нахождение температуры растепления керна методом определения момента фазового перехода) DS18B20 уже «не потянет». Тут только термистор.
Два момента — и DS18B20 и термистор приходится калибровать. Но термистор в 5 раз дешевле… Хотя с учётом калибровки — это почти несущественно.
Можем ли мы гарантировать, что после того как наш терморезистор переживет несколько циклов быстрой заморозки/нагрева, поработает в среде с повышенной влажностью и т. д. у нас эта калибровка не уплывет?Это очень болезненная тема (для всех термисторов). Но выпускались термисторы ТР-1 (на основе синтетических алмазов), которые по словам производителя очень хорошо сохраняли свои параметры и во времени и после воздействия температуры. Хотя прошла информация, что фирма (г.Александров) уже закрылась.
С оверсемплингом не согласен по той же причине. Никогда нельзя быть уверенным в точности «предсказанных» таким образом результатов. Проще поставить «почти честный» сигма-дельта АЦП или на 10-разрядном делать МАРУ и «играть» напряжением ИОНа.
Четырёх проводная схема, скорее всего не понадобится. Всё-таки термисторы довольно высокоомные, и сопротивлением кабеля подключения в общем случае можно пренебречь. Вот с низкоОмными медными — четырехпроводная схема подключения — это стандарт. И еще они получаются очень тяжёлыми — теплоёмкость огромная. Ждать, пока температура установится, приходится час — два.
О-па — Александров? А что за фирма? Это не ВНИИСИМС ли случайно?
- sdv_cyborg
- 07 января 2016, 00:00
- ↑
- ↓
ля оверсемплинга нужен не просто шум в сигнале, а по сути, белый шумНу понятие «белый шум» весьма абстрактное, так как не указывает граничную частоту, где должна сохраняться одинаковая амплитуда: 20кГц, 1МГц, 1ГГц?.. Поскольку АЦП имеет свою частоту семплирования — то верхние частоты в любом случае игнорируются (еще не забываем про RC цепочку на его входе). Наоборот, присутствие ВЧ может сыграть определенную бяку. Поэтому вполне сойдет и розовый, главное, чтобы амплитуда частот в определенном диапазоне была одинаковой. Вообще в некоторых АЦП имеется свой собственный шум, который примешивается специально. Думаю, там люди понимали, что и какой шум требуется примешивать для точности показаний.
Ну понятие «белый шум» весьма абстрактное
Да почему весьма, белый шум — это именно абстракция, такой шум есть только в мат. модели, в природе его нет, не практике мы имеем дело именно с розовым шумом. Поэтому я и написал «а по сути, белый шум».
Если я правильно понимаю теорию, то для оверсемплинга нужно, чтобы шум имел Гаусовское распределение. Мы можем подмешать в шум правильный, специально сформированный розовый шум, но это не значит, что в результате мы получим шум с Гаусовским распределением.
Ведь у нас есть «естественный» шум не входе АЦП (он вызван тепловым шумом АЦП, помехами, которые прошли через фильтры по питанию, всякими наводками в цепи и прочими переходными процессами) В результате наложения специально сформированного розового шума на этот самый «естественный» мы получим… фиг знает что мы получим (с учетом того, что при наложении шумов, нужно учитывать их взаимную корреляцию, если я правильно помню теор. вер.)
Исправьте меня, если я не прав.
А я вроде на подобный вопрос отвечал. 0.065°C младший разряд. Шумов там мало. При желании можно накоплениями и пр. шкалу расширить до 0.01. Но это без гарантии абсолютной точности!
А ±0.5°С — это абсолютная ошибка. Может быть уменьшена индивидуальной градуировкой датчика. Точность абсолютная ±0.1°С получается сравнительно легко.
А ±0.5°С — это абсолютная ошибка. Может быть уменьшена индивидуальной градуировкой датчика. Точность абсолютная ±0.1°С получается сравнительно легко.
Конечно обосную! :-) Мы же ещё в личной переписке этот вопрос подняли. Я считаю, что этот вопрос пока рановато на общее обсуждение выставлять. Но в любом случае я беру тайм-аут. У меня в среду самолёт на Анапу :-)
С планшетника выйду — но там только пара фраз — «да», «нет» и «не согласен категорически!»:-)
С планшетника выйду — но там только пара фраз — «да», «нет» и «не согласен категорически!»:-)
Комментарии (294)
RSS свернуть / развернуть