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

 
 
> Формат с плавающей точкой, подскажите как заменить
Алексей Савченко
сообщение Sep 1 2008, 06:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 20-08-08
Из: г.Чернигов, Украина
Пользователь №: 39 704



Проблема состоит в том, что у меня контроллев F2013, соответственно у него 2к памяти. Для преобразования напряжения с АЦП в температуру используется полиномы 6й и 9й степени.
Что бы не потерять точность необходимо использовать формат с плавающей точкой, но при его использовании и совершении операций над ним библиотеки умножения занимают минимум 700 байт. Вообщем это слишком жирно.
Пробовал сделать свой формат, тоже плавающий, но умножать на 2в степени. После того как перемножал два int, получал long, потом сдвигал вправо до int и увеличивал степень. Но при этом точность падала. В некоторых случаях стала неудовлетворительной.
Предложите, чем можно заменить, как обойти.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Алексей Савченко
сообщение Sep 1 2008, 07:39
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 20-08-08
Из: г.Чернигов, Украина
Пользователь №: 39 704



Вообщем то жалко и даж очень. Тут еще должно быть много чего. И протокол Modbus RS485 с перестройкой скоростей и опрос АЦП и получение температуры холодного спая от внутреннего сенсора, и еще куча параметров, стандартных для датчиков температуры.
А 700 байт это на вскидку. Реально при линковании еще больше пойдет...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 1 2008, 09:09
Сообщение #3


Гуру
******

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



Цитата(Алексей Савченко @ Sep 1 2008, 10:39) *
Вообщем то жалко и даж очень. Тут еще должно быть много чего. И протокол Modbus RS485 с перестройкой скоростей и опрос АЦП и получение температуры холодного спая от внутреннего сенсора, и еще куча параметров, стандартных для датчиков температуры.
А 700 байт это на вскидку. Реально при линковании еще больше пойдет...

1) Кусочно-линейная аппроксимация в целых числах не поможет? Я именно так и делаю. Одно значение long на один градус, правда датчик NTC.
2) Теоретически все можно перевести в целочисленную математику, только диапазоны нужно тщательно проверять.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Алексей Савченко
сообщение Sep 6 2008, 08:15
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 20-08-08
Из: г.Чернигов, Украина
Пользователь №: 39 704



Цитата(Dog Pawlowa @ Sep 1 2008, 12:09) *
1) Кусочно-линейная аппроксимация в целых числах не поможет? Я именно так и делаю. Одно значение long на один градус, правда датчик NTC.
2) Теоретически все можно перевести в целочисленную математику, только диапазоны нужно тщательно проверять.


Цитата(rezident @ Sep 1 2008, 14:37) *
+1. Причем cаму таблицу можно вынести в отдельную м/с EEPROM, которую при необходимости (для снижения энергопотребления) запитать прямо от пина MSP430.

А эта идея с кусочно-линейной аппроксимацией ВЕЩЬ. Погрешность от полинома составила менее 0.1 градуса 08.gif и места минимум надо, при том что коэффициенты во флеш-инфо спрятал.Благодарю за советы

Сообщение отредактировал Алексей Савченко - Sep 6 2008, 08:17
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 6 2008, 18:17
Сообщение #5



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Алексей Савченко @ Sep 6 2008, 12:15) *
А эта идея с кусочно-линейной аппроксимацией ВЕЩЬ. Погрешность от полинома составила менее 0.1 градуса 08.gif и места минимум надо, при том что коэффициенты во флеш-инфо спрятал.Благодарю за советы

Надеюсь, Вы сделали кусочно-линейную аппроксимацию собственно НСХ (номинальной статической характеристики) термопары ХА (Type K), а не другой её (полиномиальной) аппроксимации? В сомнение меня ввел расчет Вами погрешности кус.-лин. аппроксимации относительно полиномиальной аппроксимации.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 6 2008, 18:40
Сообщение #6


Гуру
******

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



Цитата(xemul @ Sep 7 2008, 00:17) *
В сомнение меня ввел расчет Вами погрешности кус.-лин. аппроксимации относительно полиномиальной аппроксимации.
+1. Я думал только у меня такое сомнение. ГОСТовская табличка-то немаленькая, иначе зачем бы я про отдельную EEPROM упоминал? А в область INFO только 32 4-х байтных числа помещаются.
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 6 2008, 21:23
Сообщение #7



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(rezident @ Sep 6 2008, 22:40) *
ГОСТовская табличка-то немаленькая, иначе зачем бы я про отдельную EEPROM упоминал? А в область INFO только 32 4-х байтных числа помещаются.

Всю таблицу забивать в ЕЕПРОМ нужды нет - НСХ у ТХА, если склероз не изменяет, наиболее линейная по сравнению с другими типами термопар и, соответственно, ее кус.-лин. аппроксимация дается меньшей кровью.
Опуская качество выполненной автором кус.-лин. аппроксимации, остаются вопросы компенсации холодного спая (еще одной ТХА или более другим датчиком? если более другим (точность датчика?), то желательно иметь аппроксимацию T->U для предполагаемого диапазона температур холодного спая) и калибровки под конкретный экземпляр ТХА (без этого 0.25% погрешности останутся в области благих пожеланий даже при идеальной остальной схемотехнике).
Ну и совершенно неразумное предположение (надеюсь, что не так): автор выполнил кус.-лин. аппроксимацию для всего заявленного диапазона -50..+1250 С только по полиному для диапазона 0..+500 С, не учитывая, что за границами 0..+500 С этот полином даст среднюю по больнице цену на дрова.
Go to the top of the page
 
+Quote Post
Алексей Савченко
сообщение Sep 7 2008, 07:58
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 20-08-08
Из: г.Чернигов, Украина
Пользователь №: 39 704



Цитата(xemul @ Sep 7 2008, 00:23) *
Всю таблицу забивать в ЕЕПРОМ нужды нет - НСХ у ТХА, если склероз не изменяет, наиболее линейная по сравнению с другими типами термопар и, соответственно, ее кус.-лин. аппроксимация дается меньшей кровью.
Опуская качество выполненной автором кус.-лин. аппроксимации, остаются вопросы компенсации холодного спая (еще одной ТХА или более другим датчиком? если более другим (точность датчика?), то желательно иметь аппроксимацию T->U для предполагаемого диапазона температур холодного спая) и калибровки под конкретный экземпляр ТХА (без этого 0.25% погрешности останутся в области благих пожеланий даже при идеальной остальной схемотехнике).
Ну и совершенно неразумное предположение (надеюсь, что не так): автор выполнил кус.-лин. аппроксимацию для всего заявленного диапазона -50..+1250 С только по полиному для диапазона 0..+500 С, не учитывая, что за границами 0..+500 С этот полином даст среднюю по больнице цену на дрова.


Мда, Вы правы, я сделал аппроксимацию двух полиномов(0..+500, 500..1200 С). Можете кинуть ссылку на эти таблицы напряжений термопар, что нибудь исправлю.
Насчет сенсора холодного спая, то это внутренний датчик SD16_A в F2013. Показания он відает стабильнее, только надо его грамотно откалибровать будет. Также производится калибровка напряжений термопары для температуры холодного спая и для максимума шкалы. Так что с калибровкой не должно быть проблем.

Сообщение отредактировал Алексей Савченко - Sep 7 2008, 08:06
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 7 2008, 08:41
Сообщение #9



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Алексей Савченко @ Sep 7 2008, 11:58) *
Мда, Вы правы, я сделал аппроксимацию двух полиномов(0..+500, 500..1200 С). Можете кинуть ссылку на эти таблицы напряжений термопар, что нибудь исправлю.

См. выше - НСХ (номинальная статическая характеристика) термопары ХА (Type K). НСХ по ГОСТ в тырнете мне на глаза не попалась, но не думаю, что она сильно отличается от NIST-овской (в Ваши требования по точности отличия уложатся).
Цитата
Насчет сенсора холодного спая, то это внутренний датчик SD16_A в F2013...

а дальше все будет определяться конструктивом - можете получить пару градусов разницы между холодным спаем и контроллером на совершенно ровном месте.
Go to the top of the page
 
+Quote Post
Алексей Савченко
сообщение Sep 7 2008, 09:13
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 20-08-08
Из: г.Чернигов, Украина
Пользователь №: 39 704



Цитата(xemul @ Sep 7 2008, 11:41) *
но не думаю, что она сильно отличается от NIST-овской (в Ваши требования по точности отличия уложатся).

а дальше все будет определяться конструктивом - можете получить пару градусов разницы между холодным спаем и контроллером на совершенно ровном месте.

NIST-овская єто какая, что єто такое???

Напряжение смещение АЦП для внутреннего сенсора и коєффициент преобразования предполагается калибровать. Вот только, т.к. два параметра, то и две температурі надо бы брать. С этим не знаю как выйдет.
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 7 2008, 12:09
Сообщение #11



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Алексей Савченко @ Sep 7 2008, 13:13) *
NIST-овская єто какая, что єто такое???

NIST - National Institute of Standards and Technology, http://www.nist.gov. НСХ для термопары ТХА (aka Type K) я предлагал Вам взять с http://srdata.nist.gov/its90/download/type_k.tab, т.к. это проще, чем искать советский ГОСТ с аналогичной информацией.
Цитата
Напряжение смещение АЦП для внутреннего сенсора и коєффициент преобразования предполагается калибровать. Вот только, т.к. два параметра, то и две температурі надо бы брать. С этим не знаю как выйдет.

Я пытался обратить Ваше внимание на другой момент: скорее всего для получения требуемой точности придется побороться за обеспечение равенства температуры холодного спая и датчика, эту температуру измеряющего. В случае с датчиком внутри контроллера эта задачка несколько усложняется.
О калибровке. Если мультипликативная погрешность встроенного датчика температуры на краях диапазона температур холодного спая (считается по характеристикам датчика из даташита) не превышает разумной доли суммарной погрешности, то можно будет калиброваться и по одной точке в середине диапазона; если превышает, и/или характеристика датчика имеет существенную нелинейность, то придется калиброваться по 2-3-... точкам. Про всякоразные стабильности пока просто не вспоминаю.
Мне представляется, что озвученная погрешность 0.25% (какие у нее будут основные составляющие?) - это пока из области пожеланий, и никто в Вашей команде бюджетом погрешностей прибора еще не занимался.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 7 2008, 12:50
Сообщение #12


Гуру
******

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



Вопрос Автору.
Как Вы понимаете пресловутые 0.25%?
Это от максимума 1250 С? Или от текущей измеряемой температуры?
В первом случае требования к правильному измерению температуры "холодного спая" довольно легкие - 3 градуса, во втором...при, скажем, 50 градусах... сами прикиньте.
Go to the top of the page
 
+Quote Post
Алексей Савченко
сообщение Sep 8 2008, 15:30
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 20-08-08
Из: г.Чернигов, Украина
Пользователь №: 39 704



Цитата(Tanya @ Sep 7 2008, 15:50) *
Вопрос Автору.
Как Вы понимаете пресловутые 0.25%?
Это от максимума 1250 С? Или от текущей измеряемой температуры?
В первом случае требования к правильному измерению температуры "холодного спая" довольно легкие - 3 градуса, во втором...при, скажем, 50 градусах... сами прикиньте.


Уже прикидывал и думал об этом. Спросил у старших сотрудников говорят, что отвсего диапазона.Но при этом относительная погрешность в начале диапазона будет дейтвительно серьйозной. Но при использованой методике измерей надеюсь на погрешность в 0.2 градуса, особенно при малых значениях. Для этого потребуется точность кусочно-линейной аппроксимации, АЦП и датчика холодного спая.
За первое не волнуюсь при использовании ГОСТовской таблицы. Второе можно качественно настроить, А вот с датчиком холодного спая может быть гемор. Особенно если учесть то что написал xemul (правда я еще не все понял)


Цитата(xemul @ Sep 7 2008, 15:09) *
О калибровке. Если мультипликативная погрешность встроенного датчика температуры на краях диапазона температур холодного спая (считается по характеристикам датчика из даташита) не превышает разумной доли суммарной погрешности, то можно будет калиброваться и по одной точке в середине диапазона; если превышает, и/или характеристика датчика имеет существенную нелинейность, то придется калиброваться по 2-3-... точкам. Про всякоразные стабильности пока просто не вспоминаю.
Мне представляется, что озвученная погрешность 0.25% (какие у нее будут основные составляющие?) - это пока из области пожеланий, и никто в Вашей команде бюджетом погрешностей прибора еще не занимался.


Внутренний температурный датчик АЦП(он же датчие холодного спая) имеет линейную зависмость, так вроде заявляется в даташите. А вот задумался о том, что будет с калибровками для термопары (нуля и максимума диапазона) при температуре холодого спая, например, градусов 80.(Надо будет проверить)

Сообщение отредактировал Алексей Савченко - Sep 8 2008, 15:52
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Алексей Савченко   Формат с плавающей точкой   Sep 1 2008, 06:51
- - gotty   А что вы дальше с температурой делаете? если посыл...   Sep 1 2008, 06:57
- - Алексей Савченко   Действительно, посылаю на ПК через RS485. Но дело ...   Sep 1 2008, 07:17
- - MrYuran   Цитата(Алексей Савченко @ Sep 1 2008, 10...   Sep 1 2008, 07:26
|- - rezident   Цитата(Dog Pawlowa @ Sep 1 2008, 15:09) 1...   Sep 1 2008, 11:37
|- - Tanya   Цитата(Алексей Савченко @ Sep 8 2008, 19...   Sep 8 2008, 16:12
- - xemul   Цитата(Алексей Савченко @ Sep 1 2008, 10...   Sep 1 2008, 10:47
|- - Алексей Савченко   Цитата(xemul @ Sep 1 2008, 13:47) Какую ж...   Sep 1 2008, 11:06
|- - xemul   Цитата(Алексей Савченко @ Sep 1 2008, 15...   Sep 1 2008, 13:24
|- - rezident   Цитата(xemul @ Sep 1 2008, 19:24) В MSP н...   Sep 1 2008, 13:31
- - SergeyBorshch   Если не нужна точность (в пределах +- 1градус) и н...   Sep 1 2008, 11:11
- - Алексей Савченко   Приглянулась мне мысль насчет кусочно линейной апр...   Sep 1 2008, 13:52
|- - MrYuran   Цитата(Алексей Савченко @ Sep 1 2008, 17...   Sep 2 2008, 12:24
- - SergeyBorshch   А вы на чем пишете? Судя по всему на С. Попробуйт...   Sep 2 2008, 12:14
- - rezident   Цитата(SergeyBorshch @ Sep 2 2008, 18:14)...   Sep 3 2008, 00:01


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 03:48
Рейтинг@Mail.ru


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