|
Цифровой интегратор. Реализация на микроконтроллере., Как сделать интегратор в цифре и избежать насыщения ? |
|
|
Guest_TSerg_*
|
Jun 17 2014, 14:42
|
Guests

|
Интегрирование константы - линейно-расходящийся процесс, но шутка в том, что интегрирование центрированного случайного процесса, процесс тоже расходящийся. Вот и думайте.
|
|
|
|
|
Jun 17 2014, 14:58
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911

|
Цитата(Lmx2315 @ Jun 17 2014, 18:11)  Видел я эти ссылки... Первая и правда интересная, но что-то последние формулы "итоговая система равенств (19)" ввели в легкий ступор из-за полной потери интегрирующего-суммирующего свойства. Или я чего-то не догоняю, или ошибка в формулах! Цитата(TSerg @ Jun 17 2014, 18:42)  Интегрирование константы - линейно-расходящийся процесс, но шутка в том, что интегрирование центрированного случайного процесса, процесс тоже расходящийся. Вот и думайте. И я про то же! И как быть ?
|
|
|
|
|
Jun 17 2014, 15:49
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(MSP430F @ Jun 17 2014, 18:58)  И я про то же! И как быть ? а) Не подавать на вход интегратора процесс с постоянной составляющей? (у интегратора коэфф. передачи на 0 частоте бесконечен) б) Использовать вместо интегратора ФНЧ? Например, экспоненциальное усреднение y_k = 0.9*y_k-1 + 0.1 * x_k . В этом случае для скоростей, близких к постоянным, ЦАП будет выдавать не перемещение, а нечто другое.
|
|
|
|
|
Jun 17 2014, 17:07
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911

|
Цитата(Tanya @ Jun 17 2014, 19:54)  Да никак... Кого Вы хотите обмануть? Природу? Вот у Вас уже есть операционный усилитель (первый интегратор), так поставьте второй и не заморачивайтесь. Поставьте ключи. Тут нет никакого выхода, никакой магической формулы. Что за ключи ? Не заморачиваться конечно даже нужно, но, к сожалению, в данном случае, решение принимаю не я, все равно придется городить второй интегратор в цифре. Цитата(ViKo @ Jun 17 2014, 20:20)  Так же, как и в аналоговом интеграторе. Сбрасывать периодически, или параллельно конденсатору присобачить резистор (в цифровом виде). Ну примерно так я и думал. То есть, если на входе интегратора появился 0 (а до этого мы что-то наинтегрировали и на ЦАП поступает не 0, а какое-то отличное от 0 значение), то постепенно значение на выходе интегратора должно прийти к 0 (виртуальная емкость должна рассосаться). Цитата(andyp @ Jun 17 2014, 19:49)  а) Не подавать на вход интегратора процесс с постоянной составляющей? (у интегратора коэфф. передачи на 0 частоте бесконечен)
б) Использовать вместо интегратора ФНЧ? Например, экспоненциальное усреднение y_k = 0.9*y_k-1 + 0.1 * x_k . В этом случае для скоростей, близких к постоянным, ЦАП будет выдавать не перемещение, а нечто другое. Я так понимаю, что формула y_k = 0.9*y_k-1 + 0.1 * x_k как раз и обеспечивает постепенный разряд виртуальной емкости цифрового интегратора ? Кажется, здесь уже не важно, чтобы сумма коэффициентов была равно ровно 1 - это же не скользящее среднее ? Например y_k = 0.999*y_k-1 + K * x_k, где K - некий коэффициент.
Сообщение отредактировал MSP430F - Jun 17 2014, 17:20
|
|
|
|
|
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
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|