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

 
 
> Измерение температуры терморезистором., Алгоритм
Stanislav_S
сообщение Jun 4 2009, 16:40
Сообщение #1


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Стоит задача измерить температуру терморезистором, точность 3 градуса устроит, диапазон 0 - 100 градусов. Собственно интересуют как люди решают сию задачу. воевать с логарифмами не хочется посему наверно остается табличный путь, собственно вопрос как построить таблицу наиболее оптимальным образом, либо есть какие то другие варианты решения? Памяти не очень много, поэтому строить таблицу на всю шкалу АЦП (10 - бит) не очень хочется.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dog Pawlowa
сообщение Jun 4 2009, 20:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Stanislav_S @ Jun 4 2009, 19:40) *
собственно вопрос как построить таблицу наиболее оптимальным образом, либо есть какие то другие варианты решения?

1. Выберите терморезистор.
2. Посмотрите в даташит и найдите там таблицу.
3. Выберите нужный интервал температуры между значениями таблицы.
4. Напишите процедуру кусочно-линейной аппроксимации.

Я использую интервал 1 градус для точных измерений и 5 градусов для неточных.
Успехов.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Jun 4 2009, 21:34
Сообщение #3


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Dog Pawlowa @ Jun 5 2009, 00:38) *
1. Выберите терморезистор.
2. Посмотрите в даташит и найдите там таблицу.
3. Выберите нужный интервал температуры между значениями таблицы.
4. Напишите процедуру кусочно-линейной аппроксимации.

Я использую интервал 1 градус для точных измерений и 5 градусов для неточных.
Успехов.

А небольшой пример можно? Собственно что смущает, посчитать напряжение на входе АЦП я могу, соответственно могу посчитать код из АЦП, далее разбиваю на диапазоны и вызываю функцию апроксимации с заранее посчитаными коэфициентами k и b для данного диапазона примерно так? Просто в таком случае кода будет много одних проверок 20 штук ( если по 5 градусов делить0, или я что то упустил?


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 4 2009, 22:32
Сообщение #4


Гуру
******

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



Цитата(Stanislav_S @ Jun 5 2009, 03:34) *
далее разбиваю на диапазоны и вызываю функцию апроксимации с заранее посчитаными коэфициентами k и b для данного диапазона примерно так? Просто в таком случае кода будет много одних проверок 20 штук ( если по 5 градусов делить0, или я что то упустил?
В таблице должны лежать не "заранее посчитаные коэфициенты k и b", а экспериментально полученные данные: сопротивление (либо напряжение, если ток через терморезистор стабилизирован) и температура. Расчет по таблице ведется так
Temp=(T[idx]-T[idx-1])/(R[idx]-R[idx-1])*(Rval-R[idx-1])+T[idx-1],
где Rval - входной параметр для процедуры кусочно-линейной аппроксимации, Temp - результат, а T и R это значения из таблицы, взятые со смещением idx так, чтобы R[idx]>=Rval>R[idx-1], либо R[idx]>Rval>=R[idx-1]. Для ускорения перебора значений R можно держать значение idx в локальной переменной типа static. Если при переборе упираемся в границы таблицы, то принимаем вверху таблицы idx=TBLMAXSIZE-1, внизу: idx-1=0. Соответственно таблица аппроксимации не менее чем из двух строк должна состоять.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Stanislav_S   Измерение температуры терморезистором.   Jun 4 2009, 16:40
- - Designer56   Сейчас на вскидку не помнится таблицы из Гост на т...   Jun 4 2009, 17:24
|- - Stanislav_S   Цитата(Designer56 @ Jun 4 2009, 21:24) Се...   Jun 4 2009, 17:49
|- - Microwatt   Цитата(Stanislav_S @ Jun 4 2009, 20:49) Ч...   Jun 4 2009, 19:47
|- - Stanislav_S   Цитата(Microwatt @ Jun 4 2009, 23:47) Про...   Jun 4 2009, 20:37
- - Designer56   Так у термистора разброс характеристик от экземпля...   Jun 4 2009, 18:22
|- - Dog Pawlowa   Цитата(Stanislav_S @ Jun 5 2009, 00:34) П...   Jun 5 2009, 06:30
|- - barabek   Цитата(Stanislav_S @ Jun 5 2009, 08:34) П...   Jun 5 2009, 11:29
|- - galjoen   Методом половинного деления (в пределах между двум...   Jun 5 2009, 13:57
|- - Stanislav_S   Цитата(galjoen @ Jun 5 2009, 17:57) Метод...   Jun 5 2009, 16:41
||- - galjoen   Цитата(Stanislav_S @ Jun 5 2009, 20:41) А...   Jun 5 2009, 18:10
|- - barabek   Цитата(galjoen @ Jun 6 2009, 00:57) Метод...   Jun 6 2009, 02:33
- - xemul   Если тип термистора, заданный заказчиком, имеет ли...   Jun 6 2009, 08:30
|- - Stanislav_S   Цитата(xemul @ Jun 6 2009, 12:30) Если ти...   Jun 6 2009, 13:50
- - DpInRock   Я лично делаю так. Записываю в память eeprom табли...   Jun 6 2009, 13:30
- - Microwatt   Цитата(DpInRock @ Jun 6 2009, 16:30) Я ли...   Jun 6 2009, 19:57


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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 19:12
Рейтинг@Mail.ru


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