реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Алгоритм отображения температуры, С дискретностью 0.1С
Vitek885
сообщение Jul 14 2009, 10:39
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265



Как создать видимость "точного" термометра (до 0.1)?
Замеряю температуру с дискретностью 1 градус, а хотелось бы отображать с десятыми долями
К примеру при температуре отображаю 10.0 в это время замеры показывают 11 и надо плавно (10.1-10.2-10.3....11.0) изменить показания. Не могу придумать как добится плавности (без ускорений и замедлений) и "достоверности".
PS: требуют замер до десятых долей градуса а у датчика в измеряемом диапазоне (-50 ...+110) точность 2 %
Go to the top of the page
 
+Quote Post
Eladar
сообщение Jul 14 2009, 10:50
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 6-07-07
Из: КЗ
Пользователь №: 28 943



Скользящий фильтр из 12 значений - как только пришол три раза подряд замер 11 градусов - с каждым последующим выводом на индикатор прибавлять 0,1 градуса...(12 замеров - для того, что бы убедиться, что там именно 11 градусов, а не просто дискретик бьется...)
Go to the top of the page
 
+Quote Post
Vitek885
сообщение Jul 14 2009, 11:43
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265



Цитата(Eladar @ Jul 14 2009, 14:50) *
Скользящий фильтр из 12 значений - как только пришол три раза подряд замер 11 градусов - с каждым последующим выводом на индикатор прибавлять 0,1 градуса...(12 замеров - для того, что бы убедиться, что там именно 11 градусов, а не просто дискретик бьется...)


Если я правильно понял, то это не обеспечит плавности
К примеру температура повышается на 1 град. в минуту, а замеры идут каждую секунду, тогда дисплей оттикает десятые за 10 сек а потом 50 сек будет показывать 11.0
Go to the top of the page
 
+Quote Post
Lexdaw
сообщение Jul 14 2009, 12:01
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Так это точность измерения 2% а дискрету можно выводить любую хоть 0.01 С
Go to the top of the page
 
+Quote Post
Vitek885
сообщение Jul 14 2009, 12:18
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265



Цитата(Lexdaw @ Jul 14 2009, 16:01) *
Так это точность измерения 2% а дискрету можно выводить любую хоть 0.01 С

Pазрядности встроенного в ATMega АЦП нехванит для такой дискретности, из-за нелинейности датчика на 1 единицу АЦП будет приходится от 0,4 до 1,2 градуса температуры. Вот и надо как то забить эти пробелы в показаниях.

Сообщение отредактировал Vitek885 - Jul 14 2009, 12:18
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 14 2009, 12:21
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Vitek885 @ Jul 14 2009, 17:43) *
Если я правильно понял, то это не обеспечит плавности
К примеру температура повышается на 1 град. в минуту, а замеры идут каждую секунду, тогда дисплей оттикает десятые за 10 сек а потом 50 сек будет показывать 11.0
Правильно. При глубине буфера для скользящего среднего в 10 отсчетов и частоте сэмплирования 1Гц время установления выходного значения 10 секунд. А вы разве не так хотели? Хотите более глубокой фильтрации увеличивайте размер буфера или проводите децимацию (прореживание) отсчетов.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 14 2009, 12:37
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Vitek885 @ Jul 14 2009, 15:43) *
Если я правильно понял, то это не обеспечит плавности
К примеру температура повышается на 1 град. в минуту, а замеры идут каждую секунду, тогда дисплей оттикает десятые за 10 сек а потом 50 сек будет показывать 11.0

У вас температура ступеньками чтоли меняется?
Или плавно ползёт?
Если плавно, то и показания будут так же плавно меняться, а если ступеньками - то скруглёнными ступеньками.
Ещё есть техника оверсемплинга, когда к полезному сигналу подмешивают белый шум и усредняют.
Можно поднять разрешение АЦП на пару разрядов.
А может, просто поменять схему измерения?
Природу ведь не обманешь


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 14 2009, 12:42
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(MrYuran @ Jul 14 2009, 18:37) *
Ещё есть техника оверсемплинга, когда к полезному сигналу подмешивают белый шум и усредняют.
Лучше не белый шум (который еще фиг получишь) подмешивать, а внеполосный (т.е. вне полосы измеряемого сигнала).
Go to the top of the page
 
+Quote Post
Vitek885
сообщение Jul 14 2009, 13:01
Сообщение #9





Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265



Цитата(MrYuran @ Jul 14 2009, 16:37) *
У вас температура ступеньками чтоли меняется?
Или плавно ползёт?

Ползет

Цитата
техника оверсемплинга... белый шум...внеполосный

Наверно надо было сказать что я начинающий))
Можно поподробнее, для чего и как это делается

Сообщение отредактировал Vitek885 - Jul 14 2009, 13:02
Go to the top of the page
 
+Quote Post
Vishv
сообщение Jul 15 2009, 18:57
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154



Если не секрет - что за датчик ? Что надо измерять (условия измерения температуры)?
Go to the top of the page
 
+Quote Post
Vitek885
сообщение Jul 16 2009, 04:05
Сообщение #11





Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265



Цитата(Vishv @ Jul 15 2009, 22:57) *
Если не секрет - что за датчик ? Что надо измерять (условия измерения температуры)?

Датчик NTC;
Марки незнаю есть только это
Прикрепленные файлы
Прикрепленный файл  NTC.doc ( 58 килобайт ) Кол-во скачиваний: 52
 
Go to the top of the page
 
+Quote Post
Vishv
сообщение Jul 16 2009, 18:06
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154



Судя по всему это резистивный (м.б. полупроводниковый) датчик. Еще раз - условия применения (вода, воздух, масло, инертные газы, агрессивные среды)?
Если условия более менее нормальные, ну например измерение температуры наружной плверхности батарей то можно применить готовый датчик температуры (при условии, что в системе, как я понял есть микропроцессор) DS1624 (-55 - +125 град., точность - лучше 0,1 град.)
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jul 16 2009, 20:23
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Vitek885 @ Jul 14 2009, 17:01) *
Наверно надо было сказать что я начинающий))
Можно поподробнее, для чего и как это делается

Вы бы лучше просветили общественность, зачем Вам все это... для чего, и как... Эта Ваша Видимость...
Кого Вы хотите обмануть? Или Сами обманываться рады?
Еще раз - зачем?
Go to the top of the page
 
+Quote Post
Vitek885
сообщение Jul 18 2009, 14:45
Сообщение #14





Группа: Участник
Сообщений: 11
Регистрация: 19-05-09
Пользователь №: 49 265



Цитата(Vishv @ Jul 16 2009, 22:06) *
Еще раз - условия применения

один датчик меряет температуру воздуха, второй температуру на охлаждающей поверхности
Цитата(Vishv @ Jul 16 2009, 22:06) *
можно применить готовый датчик температуры (при условии, что в системе, как я понял есть микропроцессор) DS1624 (-55 - +125 град., точность - лучше 0,1 град.)

Только этот датчик, иного не дано(((

Цитата(Tanya @ Jul 17 2009, 00:23) *
Вы бы лучше просветили общественность, зачем Вам все это... для чего, и как... Эта Ваша Видимость...
Кого Вы хотите обмануть? Или Сами обманываться рады?
Еще раз - зачем?

Извеняюсь за невольную скрытность))
Необходимо собрать контроллер холодильной камеры.
Уже используемые неподходят, либо по функционалу либо по цене.
Поэтому пытаюсь создать что-то подобное (наверное больше ради самообразования, чем ради выгоды, т.к. интересно и вдруг пригодится)
В готовом контроллере температура измеряется 10 разрядным АЦП меги16, с дискретностью 0,1 градус. Исходя из параметров датчика и разрядности АЦП я думаю что в нем применяется какой-то алгоритм отображения температуры. Хотя принаблюдении за изменением температуры по этому контроллеру, каких либо "аномалий" не заметил (скачков, тормозов)
Или все таки можно замерить температуру, с необходимой дискретностью в диапазоне -50..+110 данным видом датчика
Еще раз извеняюсь, но я начинающий, светодиодом помигал, напрядение встоенным а мегу АЦП померял хочу двигатся дальше

Сообщение отредактировал Vitek885 - Jul 18 2009, 14:46
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение Jul 18 2009, 15:05
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Цитата(Vitek885 @ Jul 14 2009, 16:18) *
Разрядности встроенного в ATMega АЦП нехванит для такой дискретности, из-за нелинейности датчика на 1 единицу АЦП будет приходится от 0,4 до 1,2 градуса температуры. Вот и надо как то забить эти пробелы в показаниях.

Неверно посчитали, получаться 1 разряд АЦП равен 0,15 град. С - теоретически, реально можно получить 0,2 град. С (в вблизи нуля и максимального значения точность снижается у АЦП ATmega).
ДЛя того чтобы получить 0,1 град надо разрешение АЦП не хуже 11 бит - два варианта или использовать 12 бит внешние или используя встроенное АЦП алгоритмом повысить разрядность с 10 бит до 12 бит (необходим запас).
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 22:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016