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

 
 
 
Reply to this topicStart new topic
> Simulink, фильтр первого порядка и реальность
_Ivan_33
сообщение Mar 27 2015, 10:13
Сообщение #1


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



Добрый день.

Пытаюсь разобраться с симулинком. Мне нужно сделать фильтр первого порядка в ПЛИС вида 1/(0.02p+1) - это по классификации типовых динамических звеньев бесколебательное 1 порядка
Ему отвечает дифференциальное уравнение вида 0.02(y2-y1)/T + y1 = x
Т.е. y2 = Tx/0.02 + y1(1 - T/0.02)
где T это как я понимаю частота дискретизации сигнала, в моем случае он берется с ацп с некоторой частотой.

Мне нужно проверить верилог код на правильность работы. Как совместить результаты верилога, если у меня с одной стороны фильтр получен в преобразовании лапласа, а в реальности будет задействована частота дискретизации, такое ощущение что они совпадать не будут...

Вообще у меня такое чувство, что я здесь чего то недопонимаю и в моих рассуждениях где-то есть ошибка. Помогите пожалуйста.


--------------------
Go to the top of the page
 
+Quote Post
Swup
сообщение Mar 27 2015, 12:45
Сообщение #2


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

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



У вас ведь цифровой БИХ-фильтр , верно? Значит он обрабатывает цифровой поток с какой-то частотой дискретизации.

Как это представляется в жизни. У вас есть непрерывный сигнал и аналоговый фильтр. Фильтр характеризуется непрерывной передаточной функцией.
Когда вы хотите смоделировать такую ситуацию, то вы на самом деле используете уже цифровой вариант, и сигнал у вас дискретный и передаточная функция дискретная, просто частота дискретизация по сравнению с частотой сигнала настолько большая, что не оказывает видимых искажений.
Потом вы хотите получить реализуемый цифровой фильтр, тут вы должны учесть несколько факторов в частности необходимо определиться с частотой дискретизации и представлением чисел (double на плис это довольно дорого).

А маршрут примерно такой:
1. определяетесь с характеристиками;
2. создаете псевдо-непрерывную модель;
3. в этом же файле модели создаете полностью реализуемую цифровую модель( частота дискретизации, представление чисел, конвееризацию, все вот это вот), и сравниваете результаты;
4. переносите цифровую модель в плис. фактически это гарантирует вам отсутствие алгоритмических ошибок.

fdatool и HDL coder в помощь.

Надеюсь я верно понял ваши затруднения и хоть немного помог.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Mar 27 2015, 15:19
Сообщение #3


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



Ну получается, чтобы посчитать следующее значение, надо использовать предыдущее - значит БИХ...

Давайте по порядку
Вот у меня нарисована модель, там
Прикрепленное изображение

На осциллографе вижу такое
Прикрепленное изображение



Ну фильтрует, да... Это все было, когда в источниках синуса было sample time -1
Затем пытаюсь сделать все дискретно
Ставлю sample time в источниках синуса 0.0001
Моделька такая
Прикрепленное изображение


Результат такой
Прикрепленное изображение


Тоже фильтрует и вроде даже сходится с первым вариантом...
По сему вопросов несколько:
1) при использовании discrete filter который с z, у меня возникает на осциллографе белиберда, а он же тоже должен фильтровать... Где я могу ошибиться?
2) solver в дискретной симуляции использовать дискретный? или континиус тоже пойдет?
3) в дискретной симуляции не могу сравнить два фильтра - свой и библиотечный, а в континиус моя реализация работает!!!!! Как сравнить?

Прикрепленное изображение

Эта последняя картинка сравнения моего фильтра, библиотечного и осциллограмма входного сигнала в непрерывных сигналах...


Модель симулинка http://rghost.ru/8fy79lYVd


--------------------
Go to the top of the page
 
+Quote Post
Swup
сообщение Mar 27 2015, 16:12
Сообщение #4


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

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



Я немного посмотрел, но нет особо времени разбираться, пора домой, пятница как ни как.

возникает не белиберда, а фильтр в неустойчивом состоянии, он автогенерирует, если можно так сказать.
Я не силен в этой теме, но мне кажется что нельзя коэффициенты из формы Лапласа просто так перенести в Z-форму. Как-то коэффициенты должны измениться. Хотя могу ошибаться.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Mar 27 2015, 17:00
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Полностью не разбирался в вашей проблеме. Скажу лишь про синтез цифрового фильтра. Для получения цифрового фильтра из аналогового прототипа необходимо использовать билинейное преобразование. Какая у вас частота дисретизации? Судя по sample time, 10 кГц. Тогда как-то так:
Код
[numd,dend] = bilinear(1, [0.02 1], 1e4)

Почитайте про билинейное преобразование и посмотрите похожий на ваш пример: http://dsp.stackexchange.com/questions/113...r-transformatio
Вы уверены, что у вас такая узкая полоса должна быть? Всего около 8 Гц получается.

Сообщение отредактировал Grizzzly - Mar 27 2015, 17:19
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Mar 28 2015, 10:26
Сообщение #6


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



Фильтр разрабатывал не я. Так что уверен. Частоту дискретизации взял наобум, в реальном железе она другая. И собственно судя по алгоритмам фильтр убивает ВЧ помехи


--------------------
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Mar 28 2015, 10:50
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Ну тогда рассчитайте с помощью билинейного преобразования цифровой фильтр на требуемую частоту дискретизации, попутно проверив на всякий случай его устойчивость (fvtool(numd,dend)), и повторите моделирование.
Go to the top of the page
 
+Quote Post

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

 


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


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