Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Преобразование Фурье и прогнозирование.
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Страницы: 1, 2
syoma
Народ может кто подскажет?
Работаем с сетью и компенсируем гармоники тока.
В настоящий момент это работает следующим образом:
Запоминается 1 период 20мс, затем из него получаем 1024точечное преобразование Фурье, выбираем нужные и выкидываем ненужные гармоники и делаем из этого обратное преобразование Фурье. В результате получается компенсирующий ток, который после вычитания тока сети дает синусоиду.
Проблема в том, что из-за того, что Фурье требует время для подсчета, то результат всегда является устаревшим по отношению к текущему току и приходится задерживать воздействие на 1 период. Это нормально для пост. нагрузки, но при изменении нагрузки идет задержка на 1 период.
Вопрос: можно ли как нибудь спрогнозировать с помощью преобразования Фурье или какими.то другими методами, какой будет сигнал на момент, когда все подсчитается, чтобы компенсировать в реальном времени?
_Pasha
Имхо мое такое:
Фильтрами или ДПФ/БПФ у нас все равно время задержки большое - не получится.
Можно ввести некий образцовый генератор, из которого потом можно вычесть реальный ток и получить компенсацию. Но сразу грабли :
1. Точность и достоверность фазовой синхронизации. Конечно, синхронизируется оно в переходе через ноль, но за качество синхронизации придется бороться.
2. Расчет амплитуды для образцового генератора. Но это попроще, потому как, если проблема синхронизации решена, можно как раз здесь и прогнозировать.
syoma
В принципе фазовая синхронизация у нас производится по напряжению. А там все фильтруется и задержки все подсчитаны. Поэтому там работает все точно.
_Pasha
Вот. А дальше у Вас есть оценка амплитуды на предыдущем полупериоде. В смысле, отфильтровывается основная гармоника. Дальше, думаю, задержка воздействия все равно будет, но меньше четверти периода - это точно. Короче, считается отклонение (в т.ч. и СКО) реального сигнала от образцового. СКО отвечает за текущую "состоятельность" модели. При некотором "пороге" становится ясно, что оценка амплитуды уже устарела, и модель пересчитывается для того, чтобы найти новую амплитуду для образцового генератора. Пока больше ничего сказать не могу. Пусть попинают.smile.gif
GetSmart
Может раскажете, какие из 512 гармоник являются "нужными", а какие нет.
Какого типа нагрузка и как быстро она меняется?
И что из себя представляет цель этих вычислений? Найти потребление только на 50 Гц?
Tanya
Цитата(syoma @ Jun 3 2008, 21:20) *
Народ может кто подскажет?
Работаем с сетью и компенсируем гармоники тока.
В настоящий момент это работает следующим образом:
Запоминается 1 период 20мс, затем из него получаем 1024точечное преобразование Фурье, выбираем нужные и выкидываем ненужные гармоники и делаем из этого обратное преобразование Фурье. В результате получается компенсирующий ток, который после вычитания тока сети дает синусоиду.
Проблема в том, что из-за того, что Фурье требует время для подсчета, то результат всегда является устаревшим по отношению к текущему току и приходится задерживать воздействие на 1 период. Это нормально для пост. нагрузки, но при изменении нагрузки идет задержка на 1 период.
Вопрос: можно ли как нибудь спрогнозировать с помощью преобразования Фурье или какими.то другими методами, какой будет сигнал на момент, когда все подсчитается, чтобы компенсировать в реальном времени?

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

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


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

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

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

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

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

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

..........................................................................
Данную задачу можно решить и в аналоге. Получится проще, и, по-моему, гораздо точнее и надёжнее.
Если есть интерес - могу рассказать подробнее, как это нужно делать.
DRUID3
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) *
..........................................................................
Данную задачу можно решить и в аналоге. Получится проще, и, по-моему, гораздо точнее и надёжнее.
Если есть интерес - могу рассказать подробнее, как это нужно делать.

Можно...но я так понял, что частоты то мизерные.
syoma
Цитата
Предугадывать все-равно не получится, но получится эффективнее обрабатывать детали внутри блока непрерывным (опять же) адаптивным алгоритмом. Но думаю для этого случая - это из фазера по беззащитным ни в чем не повинным воробьям

Точно - 2 фурье преобразования за период - и происходит отличная отработка сигнала в следующем периоде.

Цитата
Спомощью ФАПЧ и АРУ вы можете подстроить местный генератор и вычесть первую гармонику или фильтром её выделить и вычесть получив таким образом сигнал с ненужными гармониками.

В том то и дело, что такая вещь у нас уже есть. Возможно я не полностью расказал, но я применяю БПФ когда надо компенсировать не все гармоники, а например только 5 и 11. Или например если 3-ю не надо, а все остальные надо.

Цитата
Непонятно как вы собираетесь его потом вычитать,


Вычитание происходит путем простой генерации компенсирующего тока (сигнал после БПФ) инвертером. Токи нагрузки и компенсирующий ток складываются и в результате в сети должен течь только синусоидальный ток. Мне же только до 50 гармоники компенсировать надо, так что погрешности небольшие возникают.
Stanislav
Цитата(DRUID3 @ Jun 5 2008, 20:48) *
Можно...но я так понял, что частоты то мизерные.
Судя по приведённым графикам, не очень-то.

Цитата(syoma @ Jun 5 2008, 22:00) *
В том то и дело, что такая вещь у нас уже есть. Возможно я не полностью расказал, но я применяю БПФ когда надо компенсировать не все гармоники, а например только 5 и 11. Или например если 3-ю не надо, а все остальные надо.
У, как!
Извините за нескромный вопрос, но зачем это нужно? Чистое любопытство... smile.gif

Цитата(syoma @ Jun 5 2008, 22:00) *
...Вычитание происходит путем простой генерации компенсирующего тока (сигнал после БПФ) инвертером. Токи нагрузки и компенсирующий ток складываются и в результате в сети должен течь только синусоидальный ток. Мне же только до 50 гармоники компенсировать надо, так что погрешности небольшие возникают.
Ну, это смотря какие компоненты применять, и как писать программу... Задержка регулирования в инвертере также существенна.
syoma
Ну получается фундаментальная частота - 50Гц. 50-я гармоника - 2500Гц. По моим подсчетам, если брать БПФ+обработка + ИБПФ то у меня уйдет порядка 80мкс на это. То есть фазовый сдвиг 50-ой гармоники будет порядка 70 градусов - какая тут уже компенсация.

Это нужно, если компенсация N-ной гармоники осуществляется какими-то другими средствами - например конденсаторными батареями, у которых резонансная частота может быть настроена на определенную гармонику, тогда они ее хавать будут только так. А инвертеру меньше напрягаться. Или если для соответсвия нормам нужно только "слегка" скомпенсировать некоторые гармоники, а не все.

Ладно, все вроде понятно, всем спасибо.
GetSmart
Если ИБПФ (ОДПФ) текущего периода прекрасно гасит верхние гармоники в аж следующем периоде, то они что, всегда синфазны 50 герцовой гармонике что ли? Шо это за сигнал такой (нагрузка) ? В какие моменты относительно 50 Гц она может изменитьтся?
_Pasha
Цитата(Stanislav @ Jun 5 2008, 19:43) *
Есть такой термин: алгоритмическая задержка.


Там еще задержка по выходу, обусловленная максимальной частотой ШИМ = 20кГц. И аналогом там ничего не сделать из-за огромных коммутационных помех при переключении IGBT транзисторов. А выход у нас - ступенчатая функция. Вот...
Stanislav
Цитата(_Pasha @ Jun 5 2008, 23:09) *
Там еще задержка по выходу, обусловленная максимальной частотой ШИМ = 20кГц. И аналогом там ничего не сделать из-за огромных коммутационных помех при переключении IGBT транзисторов. А выход у нас - ступенчатая функция. Вот...
Э-э, не совсем понял...
В каких отношениях Вы состоите с автором темы? Он про это ничего не писал...

PS. По существу:
Аналог принципиально быстрее любой цифири. Если не удастся сделать в аналоге, то о цифровых методах лучше вообще забыть.
syoma
Цитата
Если ИБПФ (ОДПФ) текущего периода прекрасно гасит верхние гармоники в аж следующем периоде, то они что, всегда синфазны 50 герцовой гармонике что ли? Шо это за сигнал такой (нагрузка) ? В какие моменты относительно 50 Гц она может изменитьтся?

Ну в сетях переменного тока вообще все очень гармонично :-)
Обычная нагрузка - например 3-х фазный выпрямитель частотного преобразоателя, который дает в сеть отличные гармоники. Картинки правда нет.
Так вот когда он работает с постоянной нагрузкой, то и гармоники он генерирует постоянной амплитуды и с постоянной фазой относительно фундаментальной. И компенсировать его вышеуказанным способом очень удобно - при правильной работе БПФ и ИБПФ форма тока будет идеальной, так как запаздывания контура управления нет - система знает какой будет ток в любой момент времени. То есть она даже работает на предугадывание.
Проблема только в том, что если нагрузка изменяется, то естественно меняются амплитуды и фазы гармоник и тогда надо ждать один период, пока система оценит их и не начнет компенсировать.
Вот эту ошибку при изменении нагрузки я и хочу уменьшить.
GetSmart
Если нет "прямых" и простых закономерностей изменений в нагрузке, то ИМХО нереально вообще это сделать. Если есть, то и призрачная надежда есть предугадать что-нибудь. Это как гадание по волнам на воде о том, какой формы пароход и с какой скоростью прошёл только что.

Кстати, если есть окно 20 мс из 1024 точек, то вместо полной замены окна каждый период может попробовать использовать скользящее окно на 1024 точки. Новый отсчёт оцифровывается, заносится в окно, последний удаляется. Делается новое БПФ. Реакция на изменение должна быть выше.
DRUID3
Цитата(GetSmart @ Jun 6 2008, 00:11) *
Кстати, если есть окно 20 мс из 1024 точек, то вместо полной замены окна каждый период может попробовать использовать скользящее окно на 1024 точки. Новый отсчёт оцифровывается, заносится в окно, последний удаляется. Делается новое БПФ. Реакция на изменение должна быть выше.

Разумеется... Только не забывайте ,что производительность применяемой автором аппаратуры должна будет поддерживать возросшее на три порядка (!!!) быстродействие. Готов ли он пойти на это?
syoma
Цитата
Кстати, если есть окно 20 мс из 1024 точек, то вместо полной замены окна каждый период может попробовать использовать скользящее окно на 1024 точки. Новый отсчёт оцифровывается, заносится в окно, последний удаляется. Делается новое БПФ. Реакция на изменение должна быть выше.


Самый большой прикол в том, что если отталкиваться от реакции в 1 период - ничего подобного не произойдет. Как бы быстро не делалось БПФ - реакция всегда будет равна 1 периоду - возьмите просто прикиньте, какими данными располагает БПФ и все станет ясно.
Реально достаточно двух БПФ на период, так как если будет одно, то будет устаревать информация о том, что было во время преобразования. Поэтому мы используем 2 и они просто идут с наложением 10мс. Но убыстрения реакции как бы было не смешно не происходит
Либо надо делать сверхбыстрое БПФ, как сказал Druid3 и причем постоянно для каждого нового отсчета - к такому я не готов, либо оно может длиться хоть 10мс - а результат будет такой-же - 1 период.

ПС - про возможность копирования полупериода я не говорю - бывает интересная ассиметрия в полуволнах, поэтому это можно откинуть.
GetSmart
Ну дык я как обычно предложил предельный вариант. Можно легко выбрать любой из тысячи промежуточных. Например сдвигать окно на 16 отсчётов, или на 128 при увеличении вычислительной мощи в 8 раз всего.
DRUID3
Цитата(syoma @ Jun 6 2008, 00:36) *
Самый большой прикол в том, что если отталкиваться от реакции в 1 период - ничего подобного не произойдет. Как бы быстро не делалось БПФ - реакция всегда будет равна 1 периоду - возьмите просто прикиньте, какими данными располагает БПФ и все станет ясно.
Реально достаточно двух БПФ на период, так как если будет одно, то будет устаревать информация о том, что было во время преобразования.

Не так. В кольцевом буфере лежит 1024 отсчета. Делаем FFT. Убиваем ненужное(спектральную компоненту). Делаем rFFT. Сейчас в буфере лежит временной ряд. Самый старый отсчет уходит в порт вывода(ну как фильтр FIR). Заносим новый отсчет - картина та же, снова имеем 1024 отсчета... и т.д. и т.п.

Цитата(GetSmart @ Jun 6 2008, 00:39) *
Ну дык я как обычно предложил предельный вариант. Можно легко выбрать любой из тысячи промежуточных. Например сдвигать окно на 16 отсчётов, или на 128 при увеличении вычислительной мощи в 8 раз всего.

Все верно, вот только вопрос когда этот метод начнет быть эффективным... Пусть решает автор топика.
_Pasha
Цитата(Stanislav @ Jun 5 2008, 22:45) *
Э-э, не совсем понял...
В каких отношениях Вы состоите с автором темы? Он про это ничего не писал...


Это реалии современной силовой электроники. В смысле, когда рассматриваем реализацию, имеем ввиду одно схемное решение. Остальных не существует smile.gif

Цитата
Самый старый отсчет уходит в порт вывода(ну как фильтр FIR). Заносим новый отсчет - картина та же, снова имеем 1024 отсчета... и т.д. и т.п.


Дык задержка уже присутсвует по определению. Получается, что новый отсчет, ессно, отражает актуальные изменения, но общее решение базируется на предыдущих 1023 отсчетах.
С математической точки зрения Вас должна интересовать та часть спектра, которая в области отрицательных частот. По идее все, что касается будущего поведения сигнала, находится там. Но, к сожалению, это не имеет физического смысла.

По поводу нагрузок типа моста частотника. Получается, что при изменении нагрузки, пока не будет прорисована амплитуда первой гармоники, ничего понять нельзя. Т.е. это 1/4 периода ?
Stanislav
Цитата(_Pasha @ Jun 6 2008, 08:14) *
Это реалии современной силовой электроники...
Эту мантру можете зачитать кому-нибудь другому.

Цитата(_Pasha @ Jun 6 2008, 08:14) *
...В смысле, когда рассматриваем реализацию, имеем ввиду одно схемное решение. Остальных не существует
Совершенно ничем не подкреплённое утверждение. Более того, оно не верно.
Решение определяется условиями задачи. Которые до сих пор ув. syoma привести не удосужился. Отсюда и гадания на кофейной гуще.
Кроме того, решение никогда не бывает единственным (мне, во всяком случае, неоднократно предоставлялась возможность в этом убедиться).
Цитата(DRUID3 @ Jun 6 2008, 02:07) *
Не так. В кольцевом буфере лежит 1024 отсчета. Делаем FFT. Убиваем ненужное(спектральную компоненту). Делаем rFFT. Сейчас в буфере лежит временной ряд. Самый старый отсчет уходит в порт вывода(ну как фильтр FIR). Заносим новый отсчет - картина та же, снова имеем 1024 отсчета... и т.д. и т.п.
Ну, и какая при этом алгоритмическая задержка получится? wink.gif
GetSmart
syoma, есть ли статистические данные по смене спектральных составляющих при изменении нагрузки? Они все дружно меняются? Или не всегда все и не всегда дружно? Причём интересует изменение не только АЧХ, но и ФЧХ.

Если глобальная цель задачи - очистить главную гармонику 50 Гц от всего мусора, то возможно можно подумать об алгоритмах, основанных не на ДПФе.
DRUID3
Цитата(_Pasha @ Jun 6 2008, 07:14) *
Это реалии современной силовой электроники. В смысле, когда рассматриваем реализацию, имеем ввиду одно схемное решение. Остальных не существует smile.gif
Дык задержка уже присутсвует по определению. Получается, что новый отсчет, ессно, отражает актуальные изменения, но общее решение базируется на предыдущих 1023 отсчетах.
С математической точки зрения Вас должна интересовать та часть спектра, которая в области отрицательных частот. По идее все, что касается будущего поведения сигнала, находится там. Но, к сожалению, это не имеет физического смысла.

По поводу нагрузок типа моста частотника. Получается, что при изменении нагрузки, пока не будет прорисована амплитуда первой гармоники, ничего понять нельзя. Т.е. это 1/4 периода ?

wacko.gif wacko.gif wacko.gif
Цитата(Stanislav @ Jun 6 2008, 08:47) *
Ну, и какая при этом алгоритмическая задержка получится? wink.gif

"0"-ая по отношению к изменениям сигнала - сэмпл внесший лепту тутже будет обработан - т.е. в принципе то что расстроило автора - артефакты - будут минимальны. Для систем не в составе ОС - супер просто (радиолокация, связь, обработка речи) и самое интересное в чистом виде никогда практически не применяется из-за мегаресурсопотребления. Но для контура обратной связи конечно она останется 1024 сэмпла. А что? 07.gif Никто же не спорит.
syoma
Цитата
глобальная цель задачи - очистить главную гармонику 50 Гц от всего мусора, то возможно можно подумать об алгоритмах, основанных не на ДПФе.

Такая глобальная цель уже прекрасно решена с помощью преобразований кларка-парка, DQ - областей и т.д. И она прекрасно все компенсирует - и гармоники и реактивный ток, мало того с помощью такого решения отлично компенсируется ассиметрия токов, когда в 3-х фазную сеть включается 2-х фазная нагрузка.
Проблема-то и заключается в том, что это решение компенсирует ВСЁ, а иногда это не нужно, как я рассказывал ранее. И выход пока найден только в БПФ, но с задержкой 1 пероид.
Цитата
есть ли статистические данные по смене спектральных составляющих при изменении нагрузки?

Пока у меня нет, но нагрузка бывает разная и привязываться например только к выпрямителю ЧП, который имеет 6-ую+-1 гармонику не имеет смысла. А если нагрузкой будет 12- периодный выпрямитель, который имеет 12ую+-1 гармонику параметр задавать?
Stanislav
Цитата(DRUID3 @ Jun 6 2008, 13:56) *
Но для контура обратной связи конечно она останется 1024 сэмпла. А что? 07.gif Никто же не спорит.
Дык, предлагают же "ползучее" ДПФ вместо "скачущего". А чем оно лучше, пояснить не могут... sad.gif
Может, у Вас получится? wink.gif
GetSmart
"ползучее" ДПФ имеет минимально возможную скорость реакции применительно к ДПФ в принципе. Если спектр резко меняется, то накопленные данные за 1023 предыдущих отсчёта конечно же будут мешать определить мгновенный правильный результат, но при наихудшем случае 50% подавление появится уже через полпериода.

Цитата(syoma)
Пока у меня нет, но нагрузка бывает разная и привязываться например только к выпрямителю ЧП, который имеет 6-ую+-1 гармонику не имеет смысла. А если нагрузкой будет 12- периодный выпрямитель, который имеет 12ую+-1 гармонику параметр задавать?
Дык если интересующих гармоник мало (2..10), то может просто их отслеживать? Скорость реакции будет равна грубо периоду гармоники с некоторой степенью достоверности. Заметно меньше одного периода чем сейчас.
syoma
Цитата
Это реалии современной силовой электроники. В смысле, когда рассматриваем реализацию, имеем ввиду одно схемное решение. Остальных не существует smile.gif

Pasha прав.

Конечно же в результате все делает трехфазный IGBT инвертор, про что в принципе несложно догадаться.

Цитата
Дык, предлагают же "ползучее" ДПФ вместо "скачущего". А чем оно лучше, пояснить не могут...


Объясняю, как у меня сделано.
Есть у меня такой блок, называется двухпортовая память. Это такая память, которая имеет только одну область, но к этой области можно обращаться по двум разным портам. При этом адрес, запись или чтение не имеют значения, можно писать с двух портов в одну ячейку или в одном порту писать, а с другого читать и т.д.

Так вот память имеет 1024 ячейки.
И есть счетчик, который инкрементируется каждую 1/51200 с. Этот счетчик подключен на вход адреса первого порта. Таким образом каждую 1/51200с в память записывается один новый сампл исходного сигнала. Таким образом за 1024 цикла в памяти накапливается один период 50Гц сигнала.
Далее запускается БПФ, которое быстро - за пару десятков микросекунд считывает эту память с другого порта, производит БПФ. Затем производится выбор нужных гармоник и записывается все в ИБПФ. ИБПФ вычисляет результат, который по условию получится 1024-точечным, синфазным и будет полностью соответствовать исходному сигналу по фазе, за исключением гармоник. Результат записывается в еще одну двухпортовую память, откуда уже тот-же первый "медленный" счетчик с того же адреса считывает результат, который задает компенсирующее воздействие.
Но в итоге получается, что допустим сампл, который имел адрес 200 создаст сампл, который тоже будет иметь адрес 200, но в исходную память он записался за 1024-200 циклов до БПФ, а из результирующей памяти он прочитается только через 200 циклов после БПФ.

В результате, что круговой буфер, что така система дают полностью идентичный результат.

А я пытаюсь вам сказать -
Цитата
но при наихудшем случае 50% подавление появится уже через полпериода.

Не появится это никогда!

Извиняюсь, если непонятно написал.
Stanislav
Цитата(syoma @ Jun 6 2008, 14:23) *
Pasha прав.

Конечно же в результате все делает трехфазный IGBT инвертор, про что в принципе несложно догадаться.
Исходя из каких таких высших соображений? 07.gif
Корректор тока нагрузки можно сделать, например, из обычного УМ звуковой частоты и трансформатора. wink.gif

Цитата(syoma @ Jun 6 2008, 14:23) *
Объясняю, как у меня сделано.
...............................
Извиняюсь, если непонятно написал.
Всё понятно.
Непонятно требование давить только некоторые гармоники.
Если остальные гармоники будут, по Вашему выражению, "хаваться" другими корректорами, то в спектре тока нагрузки их просто не будет. Как говорится, "баба з возу - кобыли лэгша". smile.gif Давите смело всё подряд.
GetSmart
Цитата(syoma)
Цитата
но при наихудшем случае 50% подавление появится уже через полпериода.
Не появится это никогда!

Извиняюсь, если непонятно написал.
А кто мешает изменить алгоритм? Имеете 1024 точки предыдущего периода. Делаете БПФ. Получаете все амплитуды и фазы. Далее делаете расчёт (тупое умножение на синус) только одной (что нулевой, что 1024-ой, они равны) следующей точки для нужных компонент и вот вам мгновенный компенсирующий ток. Это разумеется предельный случай. Сдвигать окно можете хоть на 1/2 периода. Вот тогда скорее всего восстановление сигнала будет выгоднее делать через ИБПФ.
syoma
Цитата
Если остальные гармоники будут, по Вашему выражению, "хаваться" другими корректорами, то в спектре тока нагрузки их просто не будет. Как говорится, "баба з возу - кобыли лэгша". smile.gif Давите смело всё подряд.


Чего это их не должно быть в спектре нагрузки? Такие корректоры далеко не всегда ставятся в параллель нагрузке. Они могут стоять и совершенно в другом месте. Мало того - в большинстве случаев даже ток этого корректора невозможно измерить. А иногда он компенсирует ток от многих нагрузкок.
Stanislav
Цитата(syoma @ Jun 6 2008, 15:46) *
Чего это их не должно быть в спектре нагрузки?
Того, что они компенсируются корректорами.
Если же они в нагрузке есть, значит, их надо компенсировать. smile.gif
Вообще, условия задачи до сих пор так и остаются туманными. Если хотите получить действительно стОящий совет, потрудитесь хотя бы их привести. Кудесники перевелись нынче, и не только на электрониксе.
Цитата(syoma @ Jun 6 2008, 15:46) *
...Такие корректоры далеко не всегда ставятся в параллель нагрузке. Они могут стоять и совершенно в другом месте. Мало того - в большинстве случаев даже ток этого корректора невозможно измерить. А иногда он компенсирует ток от многих нагрузкок.
Не понимаю я Вас... В чём проблема-то? Для чего всё это нужно городить? И зачем нужно измерять ток корректора?
evgeny_ch
Цитата(Stanislav @ Jun 6 2008, 15:08) *
...Не понимаю я Вас... В чём проблема-то? Для чего всё это нужно городить? И зачем нужно измерять ток корректора?

Извините Stanislav, что лезу, есть небольшая цитатка, поможет прояснить суть дела. biggrin.gif
Цитата
Вы может будете смеяться, но мой контроллер управляет инвертором мощностью 2МВт на 33кВ, причем таких стоит 36 впараллель в одном проекте. То есть всего 72МВт. А я занимаюсь этим всего 1 год, причем ранее и понятия не имел о процессах в IGBT, или о назначении резисторов в затворах. Но ниче - Инвертор пашет, я даже тепловую модель IGBT рассчитал и промоделировал. Но все равно по отношению к силовой электронике я пока ламер. Так что кто ж кроме форума поможет? И спасибо всем за это.PS Даешь новый форум!

Понаблюдал за Пашей и Сёмой, смешные они. bb-offtopic.gif
syoma
Цитата
Того, что они компенсируются корректорами.
Если же они в нагрузке есть, значит, их надо компенсировать.

Вы похоже не понимаете, что речь идет о токе в 3х фазной сети. Законы Кирхгофа же знаете? Ток, который течет в нагрузке, течет также и в сети.
Но если парралельно нагрузке подсоединить фильтр - в простейшем случае это конденсаторы и дроссели, то часть тока нагрузки будет течь от сети, а часть - от этих конденсаторов - образно говоря. При этом в сети уже не будет тех гармоник тока, которые отфильтровал фильтр.
Но фильтр необязательно должен стоять прямо рядом с нагрузкой - он может быть кстановлен за 500метров и т.д. Но, если измерить, то в токе нагрузки и фильтра гармоники будут, а в сети - нет.
Это примерно тоже самое, что параллельный резонанс LC - контура - по питанию вроде ничего нет, а между ветвями шуруют амперы тока.

Надеюсь объяснил немного?

Цитата
Понаблюдал за Пашей и Сёмой, смешные они.
Stanislav
Цитата(syoma @ Jun 6 2008, 17:04) *
Вы похоже не понимаете, что речь идет о токе в 3х фазной сети...
Естественно. Поскольку Вы об этом забыли упомянуть.
А так я, вообще-то, понятливый. biggrin.gif

Цитата(syoma @ Jun 6 2008, 17:04) *
...Законы Кирхгофа же знаете? Ток, который течет в нагрузке, течет также и в сети.
Но если парралельно нагрузке подсоединить фильтр - в простейшем случае это конденсаторы и дроссели, то часть тока нагрузки будет течь от сети, а часть - от этих конденсаторов - образно говоря. При этом в сети уже не будет тех гармоник тока, которые отфильтровал фильтр.
Но фильтр необязательно должен стоять прямо рядом с нагрузкой - он может быть кстановлен за 500метров и т.д. Но, если измерить, то в токе нагрузки и фильтра гармоники будут, а в сети - нет.
Это примерно тоже самое, что параллельный резонанс LC - контура - по питанию вроде ничего нет, а между ветвями шуруют амперы тока.

Надеюсь объяснил немного?
Ну, и? В чём состоит Ваша задача? Подавить гармоники тока в нагрузке, или в сети?
GetSmart
Цитата(syoma)
Но если парралельно нагрузке подсоединить фильтр - в простейшем случае это конденсаторы и дроссели, то часть тока нагрузки будет течь от сети, а часть - от этих конденсаторов - образно говоря. При этом в сети уже не будет тех гармоник тока, которые отфильтровал фильтр.
Но фильтр необязательно должен стоять прямо рядом с нагрузкой - он может быть кстановлен за 500метров и т.д. Но, если измерить, то в токе нагрузки и фильтра гармоники будут, а в сети - нет.

Программно реализовать такой фильтр - пара пустяков. Только он не такой избирательный как хочется автору. Собственно, берёте программно реализуете FIRы на нужные гармоники и вычитаете их из сигнала. С учётом сдвига фазы ессно. Реакция на изменения гармоник будет просто изумительная smile.gif
syoma
Цитата
Ну, и? В чём состоит Ваша задача? Подавить гармоники тока в нагрузке, или в сети?

В сети конечно! Нагрузку мы контролировать не можем.
Главное - нужно подавить избирательно.
Комбинация активного подавителя гармоник(дорогая штука) с конденсаторным пассивным фильтром 3, 5 или 7 гармоники (дешевая штука) это одна причина,
А вторая причина, если давить гармоники полностью не нужно, а только до той степени, чтобы соответствовать нормам по генерации гармоник и чтобы инспектор не выключил рубильник.
Stanislav
Цитата(syoma @ Jun 6 2008, 18:39) *
В сети конечно! Нагрузку мы контролировать не можем.
Главное - нужно подавить избирательно.
Комбинация активного подавителя гармоник(дорогая штука) с конденсаторным пассивным фильтром 3, 5 или 7 гармоники (дешевая штука) это одна причина,
А вторая причина, если давить гармоники полностью не нужно, а только до той степени, чтобы соответствовать нормам по генерации гармоник и чтобы инспектор не выключил рубильник.
Тогда опять ничего не понятно.
Ещё раз: если каких-то гармоник в сети нет (они подавляются фильтрами), зачем их исключать из рассмотрения в активном корректоре? Измеряете-то Вы ток сети, а не нагрузки, не так ли?

ЗЫ. Для фильтрации высших гармоник, думается, Г-образные LC фильтры можно использовать. Потому, что хорошо подавить их с помощью инвертера на IGBT вряд ли получится.
ЗЗЫ. Ещё вариант: вычитайте токи до корректора и после него. Результат будет содержать только "подавленные" гармоники.
syoma
Цитата
Измеряете-то Вы ток сети, а не нагрузки, не так ли?

Измеряем ток нагрузки, так как ток в сети не всегда можно измерять.
Во вторых если измерять ток сети, то подавитель оказывается охваченный петлей обратной связи, и может попытаться компенсировать самого себя, что может привести к нестабильности. Поэтому такое включение, хотя и возможно, применяется мало.
alex_os
Если хотите давить какие-то конкретные гармоники (вроде 7 и 12 ). Сделайте две ФАПЧ настроенные именно на эти частоты, пусть эти фапчи меряют амплитуду фазу этих гармоник, нафиг Вам нужна основная гармоника?
Ulysses
Для определения спектрального состава сигнала существуют кроме БПФ и другие методы.
Например, это можно сделать одним из методов, входящих в группу с условным названием "методы параметрического спектрального анализа", которые позволяют определять параметры (амплитуды и частоты) суммы экспоненциальных функций. Один из наиболее известных и старейших методов этой группы - метод Прони. Преимущество этих методов в том, что длина анализируемой записи может быть меньше периода анализируемых компонент. Поэтому запаздывание будет определяться только длиной анализируемой записи. Ну, например, если для БПФ она была 20 мс, то для метода Прони ее можно сделать в 10 раз меньше, т.е. 2 мс. Чем меньше длина записи, тем большая погрешность метода.
Но для рассматриваемого случая задача еще более упрошается, поскольку известны частоты выделяемых компонент и остается лишь задача определения амплитуд гармоник. Это достаточно простая линейная задача в виде умножения обратной матрицы Грама на соотвествующие значения спектральных компонент, полученных при помощи БПФ. Точность метода определяется длиной анализируемого временного сигнала. То есть, чем меньше требуется точность компенсации, тем меньше будет запаздывание в формировании компенсационного сигнала.
syoma
to Ulysses:
Можете рассказать подробнее или ссылочки привести?
Во втором случае еще фазы важны, иногда надо будет еще фазу корректировать.
DRUID3
Цитата(Ulysses @ Jun 11 2008, 19:42) *
Для определения спектрального состава сигнала существуют кроме БПФ и другие методы.
Например, это можно сделать одним из методов, входящих в группу с условным названием "методы параметрического спектрального анализа", которые позволяют определять параметры (амплитуды и частоты) суммы экспоненциальных функций. Один из наиболее известных и старейших методов этой группы - метод Прони. Преимущество этих методов в том, что длина анализируемой записи может быть меньше периода анализируемых компонент. Поэтому запаздывание будет определяться только длиной анализируемой записи. Ну, например, если для БПФ она была 20 мс, то для метода Прони ее можно сделать в 10 раз меньше, т.е. 2 мс. Чем меньше длина записи, тем большая погрешность метода.
Но для рассматриваемого случая задача еще более упрошается, поскольку известны частоты выделяемых компонент и остается лишь задача определения амплитуд гармоник. Это достаточно простая линейная задача в виде умножения обратной матрицы Грама на соотвествующие значения спектральных компонент, полученных при помощи БПФ. Точность метода определяется длиной анализируемого временного сигнала. То есть, чем меньше требуется точность компенсации, тем меньше будет запаздывание в формировании компенсационного сигнала.

Что-то мне подсказывает, что имелся ввиду метод краткосрочного преобразования Фурье - совмещение короткой, одинаковой для всех частот и меньшей периода большинства из них, временнОй выборки и корреляции с гармонической функцией. Блин, какой-то математиГ описАл его в русской WiKi но назвал очень хитрым словом и с Фурье не связал, все утро пролазил по WiKi и не нашел... Ну так это теже вейвлеты только не они ))). У вейвлетов детализация растет по мере возрастания частоты и если надо детализировать например узкий участок спектра то вейвлеты могут проигрывать кратковременному Фурье. Но природу не обманешь одной и той же математикой biggrin.gif . Все сведется ко времени накопления для получения ощутимой точности - что обычное Фурье с перекрытием, что это - те же яйца...

P.S.: кто найдет статью в русской WiKi по этой теме - объявим благодарность перед строем...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.