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

 
 
> Цифровой интегратор. Реализация на микроконтроллере., Как сделать интегратор в цифре и избежать насыщения ?
MSP430F
сообщение Jun 17 2014, 13:59
Сообщение #1


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

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Всем доброго времени суток!

Уважаемые коллеги, срочно нужна ваша помощь.

Вот такая задача.
Разрабатывается датчик виброперемещения. Пьезокерамика выдает напряжение, пропорциональное виброускорению. Затем стоит аналоговый интегратор, получаем на выходе виброскорость. Затем будем ставить сигма-дельта АЦП и контроллер с ЦАП, на которых будет реализован цифровой интегратор. С выхода ЦАП есть желание снимать уровень виброперемещения онлайн. Диапазон частот устройства 0,5-320 Гц. Частоту дискретизации сделаем 820 Гц.
С ходу задача кажется не сложной - надо просто оцифрованные значения на каждом шаге умножать на некий коэффициент и прибавлять к переменной - аккумулятору, а с него уже подавать на ЦАП. Но как избежать возможного насыщения цифрового интегратора ? Надо ли обязательно использовать float для вычислений или достаточно будет int (32 бит) ?

Буду признателен за любые подсказки.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andyp
сообщение Jun 17 2014, 17:51
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(MSP430F @ Jun 17 2014, 17:59) *
Всем доброго времени суток!

Уважаемые коллеги, срочно нужна ваша помощь.

Вот такая задача.
Разрабатывается датчик виброперемещения. Пьезокерамика выдает напряжение, пропорциональное виброускорению. Затем стоит аналоговый интегратор, получаем на выходе виброскорость. Затем будем ставить сигма-дельта АЦП и контроллер с ЦАП, на которых будет реализован цифровой интегратор. С выхода ЦАП есть желание снимать уровень виброперемещения онлайн. Диапазон частот устройства 0,5-320 Гц. Частоту дискретизации сделаем 820 Гц.
С ходу задача кажется не сложной - надо просто оцифрованные значения на каждом шаге умножать на некий коэффициент и прибавлять к переменной - аккумулятору, а с него уже подавать на ЦАП. Но как избежать возможного насыщения цифрового интегратора ? Надо ли обязательно использовать float для вычислений или достаточно будет int (32 бит) ?

Буду признателен за любые подсказки.


Если серьезно, то для Ваших параметров можно примерно оценить динамику на выходе простейшего интегратора: для 0.5 Hz усиление будет ~32 dB. Для 320 - ~4.1 dB. считал по формуле 10*log10(abs(1/(1-exp(-j*f/F_sam)))) . Т.е. на минимальной частоте стоит добавить 11 разрядов к динамике входного сигнала.


Цитата(MSP430F @ Jun 17 2014, 21:07) *
Я так понимаю, что формула y_k = 0.9*y_k-1 + 0.1 * x_k как раз и обеспечивает постепенный разряд виртуальной емкости цифрового интегратора ?

угу. соответствует простейшей RC цепочке
Цитата
Кажется, здесь уже не важно, чтобы сумма коэффициентов была равно ровно 1 - это же не скользящее среднее ?
Например y_k = 0.999*y_k-1 + K * x_k, где K - некий коэффициент.

K будет определять коэффиент передачи фильтра на нулевой частоте (просто некоторое усиление). При k=0.001 оно будет рано 1.

Сообщение отредактировал andyp - Jun 17 2014, 17:58
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 17 2014, 18:14
Сообщение #3


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

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Цитата(andyp @ Jun 17 2014, 21:51) *
Если серьезно, то для Ваших параметров можно примерно оценить динамику на выходе простейшего интегратора: для 0.5 Hz усиление будет ~32 dB. Для 320 - ~4.1 dB. считал по формуле 10*log10(abs(1/(1-exp(-j*f/F_sam)))) . Т.е. на минимальной частоте стоит добавить 11 разрядов к динамике входного сигнала.


Мы считали немного не так. Соотношение частот = 320 / 0,5 = 640. Значит отношение коэффициентов усиления на 0,5 и 320 Гц также 640. 640 - это скорее 10 бит (точнее 9,3), но не 11.
Потому и ставим сигма-дельта 24-разрядный АЦП. Надеемся, разрядности хватит, хотя, понятно, что 23 с чем-то разряда получают только в лаборатории AD на их же специальных стендах. sm.gif
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 17 2014, 18:32
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(MSP430F @ Jun 17 2014, 22:14) *
Мы считали немного не так. Соотношение частот = 320 / 0,5 = 640. Значит отношение коэффициентов усиления на 0,5 и 320 Гц также 640. 640 - это скорее 10 бит (точнее 9,3), но не 11.
Потому и ставим сигма-дельта 24-разрядный АЦП. Надеемся, разрядности хватит, хотя, понятно, что 23 с чем-то разряда получают только в лаборатории AD на их же специальных стендах. sm.gif


На 320 интегратор все еще будет разгонять сигнал. Это еще один разряд (ну или делить (сдвигать) выход)

PS тоже думаю, что ~140 dB динамики на выходе в аналоге вы не увидите.

PPS Если боитесь, что на вход инегратора будет попадать постоянная составляющая (например инструментальная погрешность измерителя скорости и тп), то поставьте на входе простенькую схемку коррекции постоянки - оценка постоянки на скользящем среднем и вычитание оценки из сигнала.

Сообщение отредактировал andyp - Jun 17 2014, 18:44
Go to the top of the page
 
+Quote Post
Petrovich
сообщение Jun 19 2014, 10:13
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 2-06-05
Из: Днепропетровск
Пользователь №: 5 658



Уберите аналоговый интегратор, оцифруйте сигнал виброускорения.
Делайте FFT и все дальнейшие вычисления виброскорости и виброперемещения делайте в частотной области. Интегрировать сигнал в частотной области удобнее. Вычисления не сложные.
Лет 5ть назад делал подобное. Все работало.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MSP430F   Цифровой интегратор. Реализация на микроконтроллере.   Jun 17 2014, 13:59
- - Lmx2315   http://www.science-education.ru/107-8130 http://w...   Jun 17 2014, 14:11
|- - MSP430F   Цитата(Lmx2315 @ Jun 17 2014, 18:11) http...   Jun 17 2014, 14:58
|- - andyp   Цитата(MSP430F @ Jun 17 2014, 18:58) И я ...   Jun 17 2014, 15:49
||- - Lmx2315   ..в рамках дискуссии, не зная ответа я бы помодели...   Jun 17 2014, 15:52
|- - Tanya   Цитата(MSP430F @ Jun 17 2014, 18:58) И я ...   Jun 17 2014, 15:54
|- - MSP430F   Цитата(Tanya @ Jun 17 2014, 19:54) Да ник...   Jun 17 2014, 17:07
|- - Tanya   Цитата(MSP430F @ Jun 17 2014, 21:00) Что ...   Jun 17 2014, 17:08
- - TSerg   Интегрирование константы - линейно-расходящийся пр...   Jun 17 2014, 14:42
- - ViKo   Так же, как и в аналоговом интеграторе. Сбрасывать...   Jun 17 2014, 16:20
|- - MSP430F   Вот такой еще вопрос. Пишут, что одним из оптималь...   Jun 19 2014, 10:04
|- - prig   Цитата(Petrovich @ Jun 19 2014, 14:13) Уб...   Jun 19 2014, 13:09
|- - shf_05   периодически, если это допустимо и возможно ставьт...   Jun 24 2014, 12:55
- - Scientificer   Вставлю и я пять копеек. Закидывать значения АЦП в...   Jun 24 2014, 19:24
|- - MSP430F   Цитата(Scientificer @ Jun 24 2014, 23:24)...   Jun 25 2014, 17:24
|- - shf_05   Цитата(MSP430F @ Jun 25 2014, 23:24) Спас...   Jun 25 2014, 19:47
|- - Scientificer   Цитата(MSP430F @ Jun 25 2014, 20:24) Если...   Jun 25 2014, 21:03
|- - shf_05   Цитата(Scientificer @ Jun 26 2014, 03:03)...   Jun 26 2014, 05:17
|- - MSP430F   Цитата(shf_05 @ Jun 26 2014, 09:17) аа по...   Jun 26 2014, 10:25
|- - shf_05   ага его всегда так и считают, в этом его плюс- мал...   Jun 26 2014, 10:37
|- - Fat Robot   Сначала решите простую задачу: Вы сели в автомоби...   Jun 26 2014, 10:40
||- - shf_05   если нет конечников, и автору не нужны абсолютные ...   Jun 26 2014, 19:00
|- - thermit   Цитата(MSP430F @ Jun 26 2014, 14:25) Ну м...   Jun 26 2014, 10:47
- - Pavia   Цитата(MSP430F @ Jun 19 2014, 14:04) Вот ...   Jun 25 2014, 18:19


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:43
Рейтинг@Mail.ru


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