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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Цифровой интегратор. Реализация на микроконтроллере., Как сделать интегратор в цифре и избежать насыщения ?
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
Lmx2315
сообщение Jun 17 2014, 14:11
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



http://www.science-education.ru/107-8130

http://www.irbislab.ru/modules.php?name=Co...page&pid=18

..тут слова похожие, может поможет.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Jun 17 2014, 14:42
Сообщение #3





Guests






Интегрирование константы - линейно-расходящийся процесс, но шутка в том, что интегрирование центрированного случайного процесса, процесс тоже расходящийся.
Вот и думайте.
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 17 2014, 14:58
Сообщение #4


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

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



Цитата(Lmx2315 @ Jun 17 2014, 18:11) *


Видел я эти ссылки... Первая и правда интересная, но что-то последние формулы "итоговая система равенств (19)" ввели в легкий ступор из-за полной потери интегрирующего-суммирующего свойства. Или я чего-то не догоняю, или ошибка в формулах!

Цитата(TSerg @ Jun 17 2014, 18:42) *
Интегрирование константы - линейно-расходящийся процесс, но шутка в том, что интегрирование центрированного случайного процесса, процесс тоже расходящийся.
Вот и думайте.


И я про то же! И как быть ?
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 17 2014, 15:49
Сообщение #5


Местный
***

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



Цитата(MSP430F @ Jun 17 2014, 18:58) *
И я про то же! И как быть ?


а) Не подавать на вход интегратора процесс с постоянной составляющей? (у интегратора коэфф. передачи на 0 частоте бесконечен)

б) Использовать вместо интегратора ФНЧ? Например, экспоненциальное усреднение y_k = 0.9*y_k-1 + 0.1 * x_k . В этом случае для скоростей, близких к постоянным, ЦАП будет выдавать не перемещение, а нечто другое.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jun 17 2014, 15:52
Сообщение #6


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..в рамках дискуссии, не зная ответа я бы помоделировал в матлабе.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jun 17 2014, 15:54
Сообщение #7


Гуру
******

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



Цитата(MSP430F @ Jun 17 2014, 18:58) *
И я про то же! И как быть ?

Да никак... Кого Вы хотите обмануть? Природу?
Вот у Вас уже есть операционный усилитель (первый интегратор), так поставьте второй и не заморачивайтесь.
Поставьте ключи. Тут нет никакого выхода, никакой магической формулы.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 17 2014, 16:20
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Так же, как и в аналоговом интеграторе. Сбрасывать периодически, или параллельно конденсатору присобачить резистор (в цифровом виде).
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 17 2014, 17:07
Сообщение #9


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

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jun 17 2014, 17:08
Сообщение #10


Гуру
******

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



Цитата(MSP430F @ Jun 17 2014, 21:00) *
Что за ключи ? Не заморачиваться конечно даже нужно, но, к сожалению, в данном случае, решение принимаю не я, все равно придется городить второй интегратор в цифре.

А чем цифровой интегратор лучше аналогового в данном случае? У Вас и тот и другой будет "ноль" неправильно интегрировать. Какой смысл оцифровывать АЦП, а потом цифру превращать обратно в аналог ЦАПом? Где мы тут выигрываем?
Ключами можно сбрасывать интегратор. Его конденсатор?
Вот я иногда специально ставлю аналоговый интегратор - его точность выше, чем дает 16-разрядный ЦАП. Примерно как у 20-разрядного.
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 17 2014, 17:51
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 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
Сообщение #12


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

Группа: Участник
Сообщений: 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
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 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
MSP430F
сообщение Jun 19 2014, 10:04
Сообщение #14


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

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



Вот такой еще вопрос.
Пишут, что одним из оптимальных методом интегрирования является метод трапеций:
Yn+1 = Yn + 1/2(Xn+1 + Xn). Но в чем тут смысл ? В следующей итерации оставшаяся половина от Xn+1 также будет просуммирована.
Тогда в чем разница от метода прямоугольников, чтобы не написать просто Yn+1 = Yn + Xn+1 ?

Или все дело в частотах и метод трапеций начинает работать при частотах входного сигнала, сопоставимых с частотой Найквиста ?
Go to the top of the page
 
+Quote Post
Petrovich
сообщение Jun 19 2014, 10:13
Сообщение #15


Местный
***

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



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

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

 


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


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