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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Преобразование Фурье и прогнозирование., Как сделать БПФ и ИБПФ, чтобы компенсировать в реальном времени.
syoma
сообщение Jun 3 2008, 17:20
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Народ может кто подскажет?
Работаем с сетью и компенсируем гармоники тока.
В настоящий момент это работает следующим образом:
Запоминается 1 период 20мс, затем из него получаем 1024точечное преобразование Фурье, выбираем нужные и выкидываем ненужные гармоники и делаем из этого обратное преобразование Фурье. В результате получается компенсирующий ток, который после вычитания тока сети дает синусоиду.
Проблема в том, что из-за того, что Фурье требует время для подсчета, то результат всегда является устаревшим по отношению к текущему току и приходится задерживать воздействие на 1 период. Это нормально для пост. нагрузки, но при изменении нагрузки идет задержка на 1 период.
Вопрос: можно ли как нибудь спрогнозировать с помощью преобразования Фурье или какими.то другими методами, какой будет сигнал на момент, когда все подсчитается, чтобы компенсировать в реальном времени?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jun 4 2008, 07:03
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Имхо мое такое:
Фильтрами или ДПФ/БПФ у нас все равно время задержки большое - не получится.
Можно ввести некий образцовый генератор, из которого потом можно вычесть реальный ток и получить компенсацию. Но сразу грабли :
1. Точность и достоверность фазовой синхронизации. Конечно, синхронизируется оно в переходе через ноль, но за качество синхронизации придется бороться.
2. Расчет амплитуды для образцового генератора. Но это попроще, потому как, если проблема синхронизации решена, можно как раз здесь и прогнозировать.
Go to the top of the page
 
+Quote Post
syoma
сообщение Jun 4 2008, 07:34
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



В принципе фазовая синхронизация у нас производится по напряжению. А там все фильтруется и задержки все подсчитаны. Поэтому там работает все точно.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jun 4 2008, 07:54
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Вот. А дальше у Вас есть оценка амплитуды на предыдущем полупериоде. В смысле, отфильтровывается основная гармоника. Дальше, думаю, задержка воздействия все равно будет, но меньше четверти периода - это точно. Короче, считается отклонение (в т.ч. и СКО) реального сигнала от образцового. СКО отвечает за текущую "состоятельность" модели. При некотором "пороге" становится ясно, что оценка амплитуды уже устарела, и модель пересчитывается для того, чтобы найти новую амплитуду для образцового генератора. Пока больше ничего сказать не могу. Пусть попинают.smile.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 4 2008, 08:31
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Может раскажете, какие из 512 гармоник являются "нужными", а какие нет.
Какого типа нагрузка и как быстро она меняется?
И что из себя представляет цель этих вычислений? Найти потребление только на 50 Гц?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jun 4 2008, 09:23
Сообщение #6


Гуру
******

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



Цитата(syoma @ Jun 3 2008, 21:20) *
Народ может кто подскажет?
Работаем с сетью и компенсируем гармоники тока.
В настоящий момент это работает следующим образом:
Запоминается 1 период 20мс, затем из него получаем 1024точечное преобразование Фурье, выбираем нужные и выкидываем ненужные гармоники и делаем из этого обратное преобразование Фурье. В результате получается компенсирующий ток, который после вычитания тока сети дает синусоиду.
Проблема в том, что из-за того, что Фурье требует время для подсчета, то результат всегда является устаревшим по отношению к текущему току и приходится задерживать воздействие на 1 период. Это нормально для пост. нагрузки, но при изменении нагрузки идет задержка на 1 период.
Вопрос: можно ли как нибудь спрогнозировать с помощью преобразования Фурье или какими.то другими методами, какой будет сигнал на момент, когда все подсчитается, чтобы компенсировать в реальном времени?

Вот лично мне непонятно почти все, что Вы написали, а также, что Вы хотите...
Предсказывать будущее? Это к гадалкам - только они знают все причинно-следственные связи... в электросетях, в том числе...
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 4 2008, 10:22
Сообщение #7


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



smile.gif Есть нелинейные предсказатели, например, на основе нейронных сетей - но их надо предварительно учить (по минимуму целевой функции - например коэффициенту гармоник т.е. заставляя систему становиться линейной) и производительности процессора или ПЛИС должно быть дофига. Есть еще нелинейные эквалайзеры - задача их применения сводиться к предварительному построению адекватной нелинейной модели.
Применяемыми же Вами, syoma, на данный момент методами - предугадать ничего не получится. Линейные "предугадатели" - несколько для иных целей smile.gif ...

2Tanya:
Саркастируете напрасно. Если гадалка представляет из себя цифровой автомат содержащий в себе адекватную модель системы на неком интервале времени и некотором диапазоне воздействий - чудо возможно! Все чудеса таятся в математике smile.gif ...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jun 4 2008, 10:32
Сообщение #8


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



В общем так. Если напряжение не скачет, то образцовым генератором Вы все сделаете даже без электронных гадалок. В противном случае - вводить коррекцию по ходу означает добавлять нелинейщины в образцовую синусоиду.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jun 4 2008, 10:34
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



В общем так. Если напряжение не скачет, то образцовым генератором Вы все сделаете даже без электронных гадалок. В противном случае - вводить коррекцию по ходу означает добавлять нелинейщины в образцовую синусоиду.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jun 4 2008, 10:51
Сообщение #10


Гуру
******

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



Цитата(DRUID3 @ Jun 4 2008, 14:22) *
2Tanya:
Саркастируете напрасно. Если гадалка представляет из себя цифровой автомат содержащий в себе адекватную модель системы на неком интервале времени и некотором диапазоне воздействий - чудо возможно! Все чудеса таятся в математике smile.gif ...


Завидую Вам - у меня что-то математические чудеса не получаются... только ошибки... Это сколько же надо учить автомат предсказывать аварии, например?
Вы, если умеете, так должны в золоте ходить... Уже?
P.S. "Нам не дано предугадать..."
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 4 2008, 11:05
Сообщение #11


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Tanya @ Jun 4 2008, 13:51) *
Завидую Вам - у меня что-то математические чудеса не получаются... только ошибки... Это сколько же надо учить автомат предсказывать аварии, например?
Вы, если умеете, так должны в золоте ходить... Уже?
P.S. "Нам не дано предугадать..."

biggrin.gif Ну зачем выбирать предельные случаи. Человек борется с гармониками. Сие возможно. Сам интересуюсь этим вопросом вот и высказался.

Да и, что для философа золото? biggrin.gif Неужели Вы характеризуете человека только по способности аккумулировать у себя "застывшие" материальные блага в виде денег? sad.gif

P.S.: Кстати, кажеЦЦо теория катастроф (а я читал о ней только популярные статьи) тоже работает с упрощенной нелинейной моделью и множеством допущений.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
syoma
сообщение Jun 5 2008, 14:46
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



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

Все очень просто:
На картинке сверху - исходный сигнал.
Посередине - сигнал который получен после прямого преобразования фурье одного периода первого сигнала, затем первая гармоника была выкинута, а остальные гармоники прошли через инверсное БПФ.
Третий сигнал представляет собой результат вычитания второго сигнала из первого.
Теоретически должна получаться идеальная синусоида, но это не получается из.за задержек БПФ - и приходится все применать с задержкой в 1 период.
То есть по каритнке примерно так:
Первое БПФ происходит через на 20мс. При этом во входном буфере находится 1 период исходного сигнала. БПФ вытворяет указанные операцие и записывает в выходной буфер измененный сигнал. Так как сигнал не изменился с тех пор как произошло бпф, то наложение происходит успешно и получается синусоида. Дальше каждое БПФ и обновление выходного буфера производится каждые 10мс.
Примерно на 38мс я отключил высокие гармоники - видно, что входной сигнал изменился.
Но что выдает БПФ? БПФ на 50мс "видит" входной сигнал за последние 20мс, то есть 8мс сигнала с высокой гармоникой и 12мс сигнала без высокой гармоники. Естественно на выходе получается 8мс неправильного сигнала и 12мс правильного. И в итоге синусоида получается только на 58мс.

Вот и вопрос как сказать БПФ, что сигнал уже изменился? Толи с других точек информацию брать,то ли не знаю.
С генератором непонятно как его настраивать.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 5 2008, 16:20
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



БПФ здесь не к чему вообще. Спомощью ФАПЧ и АРУ вы можете подстроить местный генератор и вычесть первую гармонику или фильтром её выделить и вычесть получив таким образом сигнал с ненужными гармониками. Непонятно как вы собираетесь его потом вычитать, ведь это в матлабе всё так идеально получается, в реальности же будут непредсказуемые задержки непредсказуемые коэффициенты передачи. Поэтому после вычитания нужно по обратной связи подстраивать адаптивный фильтр который который будет компенсировать непредсказуемые задержки и коэффициенты передачи, но сам адаптивный фильтр будет иметь задержку для реализуемости, а исходный сигнал из которого производите вычитание я так понимаю, вы задержать не можете.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jun 5 2008, 16:43
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(syoma @ Jun 3 2008, 21:20) *
Вопрос: можно ли как нибудь спрогнозировать с помощью преобразования Фурье или какими.то другими методами, какой будет сигнал на момент, когда все подсчитается, чтобы компенсировать в реальном времени?
Если нужно компенсировать гармоники в реалтайме и без задержек, то и выделять их надо без задержек.
Есть такой термин: алгоритмическая задержка. Вводится он для того, чтобы показать нижнюю грань запаздывания результата по отношению к исходным данным. Мощность вычислителя считается при этом бесконечной (время на "абсчёт"=0, задержки АЦП и ЦАП также =0). Кстати, интересно было бы знать, какой конкретно АЦП Вы применяете.
Выделение гармоники и её компенсация должны производиться с нулевой алгоритмической задержкой. Это означает выделение гармоник прямым вычитанием. "Мгновенную" компенсацию, однако, сделать невозможно практически, из-за конечной мощности вычислителя и ненулевым запаздыванием в процессах А-Ц-А преобразования.
Поэтому, как и писали уже, нужно сделать адаптивный генератор с достаточно малым временем адаптации (скорее всего, её нужно будет делать нелинейной, с разными скоростями на стационарных и переходных участках). Собственно, он и будет решать задачу прогнозирования.
Опять-таки, из-за конечности времени вычислительных задержек, в нестационарных условиях эффективно могут быть подавлены только низшие гармоники.

Цитата(Tanya @ Jun 4 2008, 13:23) *
Вот лично мне непонятно почти все, что Вы написали, а также, что Вы хотите...
Предсказывать будущее? Это к гадалкам - только они знают все причинно-следственные связи... в электросетях, в том числе...
Таня, вместо того, чтобы флудить, изучите, например, как работает усилитель с отрицательной обратной связью. Обратная связь она тоже, того, будущего не знает. wink.gif Однако, усилитель всё же работает. biggrin.gif

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


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jun 5 2008, 16:48
Сообщение #15


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



2syoma:
Никак. БПФ(ДПФ) блочный линейный лгоритм. Предсказывать будущее он не сможет никак, и в этом аспекте Tanya была абсолютно права.
У Вас есть на выбор два пути:
1) путь падавана - применить линейную адаптивную фильтрацию ненужных гармоник (как посоветовали в постах повыше) - хватит простейшей в виде ФАПЧ. Только алгоритм должен быть FIFO(непрерывный) - фильтр Герцеля, например smile.gif .
2) путь великого мастера-джедая - применить компенсатор нелинейности (выраженный у Вас в лишних спектральных компонентах). Его приимущества - это "застывшая"(время отработки практически неизменно в отличие от адаптивной фильтрации) модель содержащая "антимодель" Вашей устаноки(ну того, что продуцирует эту синусоиду с гармониками). Это тоже не блочный метод smile.gif ...

Кстати, блок с высоким наличием помехи возникающий при резком перепаде в соотношении сигнал/помеха - то что у Вас получилось в данном случае - это ближайший родственник "артефактов" преследующих оконные алгоритмы с гармоническими функциями (Фурье, косинусное и т.д. преобразования) во всех областях применения - аудиокодеки, видео кодирование и т.д. От этого есть панацея - и зовется она - вейвлеты biggrin.gif ... Это я говорю наслучай если без блочности - никак... Предугадывать все-равно не получится, но получится эффективнее обрабатывать детали внутри блока непрерывным (опять же) адаптивным алгоритмом. Но думаю для этого случая - это из фазера по беззащитным ни в чем не повинным воробьям smile.gif ...
Цитата(petrov @ Jun 5 2008, 19:20) *
БПФ здесь не к чему вообще. Спомощью ФАПЧ и АРУ вы можете подстроить местный генератор и вычесть первую гармонику или фильтром её выделить и вычесть получив таким образом сигнал с ненужными гармониками. Непонятно как вы собираетесь его потом вычитать, ведь это в матлабе всё так идеально получается, в реальности же будут непредсказуемые задержки непредсказуемые коэффициенты передачи. Поэтому после вычитания нужно по обратной связи подстраивать адаптивный фильтр который который будет компенсировать непредсказуемые задержки и коэффициенты передачи, но сам адаптивный фильтр будет иметь задержку для реализуемости, а исходный сигнал из которого производите вычитание я так понимаю, вы задержать не можете.

Частоты то невысокие. Главное чтобы процессор (или ПЛИСина) успевал отработать во временнОм промежутке между поступлением отсчетов.

Цитата(Stanislav @ Jun 5 2008, 19:43) *
..........................................................................
Данную задачу можно решить и в аналоге. Получится проще, и, по-моему, гораздо точнее и надёжнее.
Если есть интерес - могу рассказать подробнее, как это нужно делать.

Можно...но я так понял, что частоты то мизерные.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 11:45
Рейтинг@Mail.ru


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