|
Цифровой интегратор. Реализация на микроконтроллере., Как сделать интегратор в цифре и избежать насыщения ? |
|
|
|
 |
Ответов
|
Jun 17 2014, 17:51
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jun 17 2014, 18:14
|
Частый гость
 
Группа: Участник
Сообщений: 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 на их же специальных стендах.
|
|
|
|
|
Jun 17 2014, 18:32
|
Местный
  
Группа: Участник
Сообщений: 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 на их же специальных стендах.  На 320 интегратор все еще будет разгонять сигнал. Это еще один разряд (ну или делить (сдвигать) выход) PS тоже думаю, что ~140 dB динамики на выходе в аналоге вы не увидите. PPS Если боитесь, что на вход инегратора будет попадать постоянная составляющая (например инструментальная погрешность измерителя скорости и тп), то поставьте на входе простенькую схемку коррекции постоянки - оценка постоянки на скользящем среднем и вычитание оценки из сигнала.
Сообщение отредактировал andyp - Jun 17 2014, 18:44
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|