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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Функция обратная переходной., Как получить?
AlexOr
сообщение Oct 27 2008, 14:10
Сообщение #1


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

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Есть замкнутая система автоматического регулирования. Исполнительный механизм нелинеен соответственно и система в целом тоже.

ЦЕЛЬ: получить на выходе системы чистую синусоиду в длительном режиме. (есно заданным отклонением)
При подаче синусоиды в качестве задающего воздействия на выходе системы получаем что-то близкое к синусу, но отклонения от синусоидальности слишком велики.

Настройка регуляторов системы не меняет картину, настроено вполне оптимально.
Возникает идея внесения предискажений q(t) в задающую синусоиду. Притом предискажения текущего периода синусоиды корректировать по отклонению от синусоиды предыдущего периода. Таким образом с течением времени можно ожидать снижения искажений вплоть до нулевых.

ВОПРОС общий:
Как наиболее просто вычислить предискажения ?


ВОПРОС частный:
Как зная переходную функцию некоторого звена h(t) и зная сигнал на его выходе y(t) получить сигнал на его входе x(t) ?
h(t) и y(t) заданны временными рядами и вычислительные ресурсы сильно ограничены.

Характеристики:
Синус 4 Гц,
400 выборок на период,
Контроллер 8 бит 10 МГц,
Длительность переходной функции: не более 150 отчетов.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 28 2008, 06:17
Сообщение #2


山伏
*****

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



Цитата(AlexOr @ Oct 27 2008, 16:10) *
Есть замкнутая система автоматического регулирования. Исполнительный механизм нелинеен соответственно и система в целом тоже.

ЦЕЛЬ: получить на выходе системы чистую синусоиду в длительном режиме. (есно заданным отклонением)
При подаче синусоиды в качестве задающего воздействия на выходе системы получаем что-то близкое к синусу, но отклонения от синусоидальности слишком велики.

Настройка регуляторов системы не меняет картину, настроено вполне оптимально.
Возникает идея внесения предискажений q(t) в задающую синусоиду. Притом предискажения текущего периода синусоиды корректировать по отклонению от синусоиды предыдущего периода. Таким образом с течением времени можно ожидать снижения искажений вплоть до нулевых.

ВОПРОС общий:
Как наиболее просто вычислить предискажения ?
ВОПРОС частный:
Как зная переходную функцию некоторого звена h(t) и зная сигнал на его выходе y(t) получить сигнал на его входе x(t) ?
h(t) и y(t) заданны временными рядами и вычислительные ресурсы сильно ограничены.

Характеристики:
Синус 4 Гц,
400 выборок на период,
Контроллер 8 бит 10 МГц,
Длительность переходной функции: не более 150 отчетов.

Йа не особо в Ваших вопросах копенгаген, но попытаюсь...

1) Непонятна основная цель, толи синусоиду получить(поставьте фильтр на выходе и не мучайтесь), толи поиграться с предугадыванием будущего. Насчет вычислений предыскажений - а чем Вы их собрались вносить? Регулируемой линейной системой по максимуму целевой функции? Так я ее параметры напед Вам скажу - это ФНЧ с частотой среза чуть больше частоты данной синусоиды.

2)
.....................N
.....................__
.................... \
....y(t*n) = > x(t*(n-k))*h(t*n);
.................... /__
....................k=0
- знакомая формула? Вывести уравнение (не помню как называеЦЦо, кажется разностное) сможете? biggrin.gif
Если Вам надо по одному отсчету - это Ваш путь.

Но, думаю, намного легче все сделать в частотной области. Свертка функций во временнОй области это произведение их в частотной. Т.е. по-сути, зная АЧХ системы(линейной) мы можем сказать, что будет с заданной функцией прошедшей систему - выходной_спектр = АЧХ_системы*спектр_сигнала. И наоборот, спектр_сигнала = Выходной_спектр/АЧХ_системы. Но этот метод блочный

//-------------------------------------------------------------------------------------------------------------------------

P.S.: ...ага, еще раз прочел и понял, Вы хотите получить синус после нелинейной(!? да) системы предварительно его исказив? Ну если знаете передаточную характеристику системы и она не меняется во времени - то вперед. Это и впрямь будет нечто типа адаптивного фильтра, толко один раз расчитываемого (можно в каком-то пакете), где целевая функция - это минимум составляющих на гармониках и тоже, блин, нелинейного ... Ну я пару месяцев назад пытался соорудить нечто похожее, но очень громоздко это все и я позабросил.

P.P.S.: так h(t) у Вас тоже нелинейна? 07.gif (тогда вышеприведенный совет - несправедлив!)


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
AlexOr
сообщение Oct 28 2008, 06:30
Сообщение #3


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

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Цитата(DRUID3 @ Oct 28 2008, 16:17) *
N
__
\
y(t*n) = > x(t*(n-k))*h(t*n);
/__
k=0
- знакомая формула? Вывести уравнение (не помню как называеЦЦо, кажется разностное) сможете?


Дык система линейных уравнений будет из сотен штук....
Другие пути есть?
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 28 2008, 06:32
Сообщение #4


山伏
*****

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



Цитата(AlexOr @ Oct 28 2008, 08:30) *
Дык система линейных уравнений будет из сотен штук....
Другие пути есть?

...еще раз уточните h(t) у Вас и для этого случая нелинейна? Т.е. это одна задача?

Для линейной системы там будет всего одно уравнение.

Для нелинейной - смотря как аппроксимируете характеристику системы кусочно-линейными функциями.


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


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

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Цель получить синусоиду. А фильтр не поставить. И это не электрические величины, а вообще говоря положение точки в пространстве.

Цитата(DRUID3 @ Oct 28 2008, 16:32) *
...еще раз уточните h(t) у Вас и для этого случая нелинейна? Т.е. это одна задача?

Предполагается что можно измерить h(t) как линейной системы т.е. в малом. Просто добавляя к обычному снусоидальному воздействию ступенчатое воздействие.

Цитата(DRUID3 @ Oct 28 2008, 16:32) *
Для линейной системы там будет всего одно уравнение.

Что-то не получается такого. Искомая x(t) будет временным рядом на те же 150 или более точек. Т.е. много уравнений получается.

Сообщение отредактировал AlexOr - Oct 28 2008, 07:02
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 28 2008, 06:59
Сообщение #6


山伏
*****

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



Цитата(AlexOr @ Oct 28 2008, 08:43) *
Цель получить синусоиду. А фильтр не поставить. И это не электрические величины, а вообще говоря положение точки в пространстве.

насчет поставить ФНЧ я беру свой совет назад, я тогда не совсем понял условие.

А поучить синусоиду в Вашем случае:

синусоида
||
\/
предыскажающий нелинейный фильтр (рассчитан заранее в микроконтроллер внесен как набор таблиц)
||
\/
нелинейная система (ее, я так понял, трогать нельзя)
||
\/
снова синусоида

т.е. здесь нет цепи обратной связи, и расчета целевой функции, она есть только на этапе проектирования (MatLab, SciLab etc.).


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
alex_os
сообщение Oct 28 2008, 07:03
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Если есть импульсная характеристика h системы (звена), последовательность отсчетов на его выходе y, требуется найти последовательность на входе "звена" x. Это можно сделать при помощи fir фильтра такого, что свертка импульсной хар-ки (ИХ) фильтра (f) с h будет иметь единственное значение отличное от нуля. Тогда задержанную оценку x можно получить просто пропустив y через фильтр f. Если h неизменно то, достаточно один раз рассчитать фильтр f, например так:

Код
h = [0, 0, 1, 2, -1]; % импульсная характеристика "звена"
Lh = length(h);
Lf = 10;
d = 8;               % cуммарная задержка системы звено - фильтр
t = zeros(1, Lh+Lf-1);
t(d) = 1;             % желаемая свертка  ИХ звена и фильтра  
H = convmtx(h',  Lf);
f = inv(H'*H)*(H'*t') % ИХ фильтра
plot( conv(f, h) )    %  ИХ "звено" + фильтр

зы: Вообще чем-то перекликается с этой темой http://electronix.ru/forum/index.php?showtopic=48747


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 28 2008, 07:05
Сообщение #8


山伏
*****

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



Цитата(AlexOr @ Oct 28 2008, 08:53) *
Что-то не получается такого. Искомая у(t) будет временным рядом на те же 150 или более точек. Т.е. много уравнений получается.

...не все уравнения, даже из рассматриваемых в ВУЗ-овской программе, выдают одну точку smile.gif . Присмотритесь повнимательнее и увидите кое-что знакомое из области непрерывных функций smile.gif

Если влом, и нужно не для каждой точки в реальном времени - переходите в частотную область...

Цитата(alex_os @ Oct 28 2008, 09:03) *
Если есть импульсная характеристика h системы (звена), последовательность отсчетов на его выходе y, требуется найти последовательность на входе "звена" x.

Вообще-то у "классиков" h(t) это переходная характеристика. g(t)(реакция на дельта импульс) - импульсная. Иначе сейчас увязнем в терминах.
Цитата(alex_os @ Oct 28 2008, 09:03) *
Это можно сделать при помощи fir фильтра такого, что свертка импульсной хар-ки (ИХ) фильтра (f) с h будет иметь единственное значение отличное от нуля. Тогда задержанную оценку x можно получить просто пропустив y через фильтр f. Если h неизменно то, достаточно один раз рассчитать фильтр f, например так:

Немного я этого всего не понял. Может из-за терминологии. Будьте добры о том же, но другими словами smile.gif .

...Но вообще да, можно построить 2-е FIR системы, вторая будет с "анти-АЧХ" - т.е. восстанавливать сигнал прошедший первй FIR получая отсчеты с его выхода. Но если в FIR-ах будет по 256 звеньев, но восстановление каждого отсчета будет с задаржкой в 512 сэмплов.

И еще, это все справедливо для линейных систем, для нелинейных все будет гораздо сложнее...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
AlexOr
сообщение Oct 28 2008, 07:40
Сообщение #9


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

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Цитата(DRUID3 @ Oct 28 2008, 16:59) *
А поучить синусоиду в Вашем случае:

синусоида
||
\/
предыскажающий нелинейный фильтр (рассчитан заранее в микроконтроллер внесен как набор таблиц)
||
\/
нелинейная система (ее, я так понял трогать нельзя)
||
\/
снова синусоида

т.е. здесь нет цепи обратной связи, и расчета целевой функции, она есть только на этапе проектирования (MatLab, SciLab etc.).

Все так только предполагается что предыскажающий нелинейный фильтр будет считаться на ходу т.е. без матлаба и пр. По сути в фоновом режиме.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Oct 28 2008, 08:02
Сообщение #10


Гуру
******

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



Цитата(AlexOr @ Oct 27 2008, 17:10) *
Есть замкнутая система автоматического регулирования. Исполнительный механизм нелинеен соответственно и система в целом тоже.

ЦЕЛЬ: получить на выходе системы чистую синусоиду в длительном режиме. (есно заданным отклонением)

ВОПРОС общий:
Как наиболее просто вычислить предискажения ?


ВОПРОС частный:
Как зная переходную функцию некоторого звена h(t) и зная сигнал на его выходе y(t) получить сигнал на его входе x(t) ?
h(t) и y(t) заданны временными рядами и вычислительные ресурсы сильно ограничены.

Вы в такой общей форме ставите вопрос, что ответить на него нельзя. Вы даже не написали, аргумент(ы) Вашей функции...
Получите общий ответ - если функция обратима, то такое возможно. В противном случае - пример.
Функция - квадрат аргумента. Получить синус невозможно.
Еще замечу, что переходная характеристика вводится (используется) для описания линейных стационарных систем.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 28 2008, 08:19
Сообщение #11


山伏
*****

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



Цитата(AlexOr @ Oct 28 2008, 09:40) *
Все так только предполагается что предыскажающий нелинейный фильтр будет считаться на ходу т.е. без матлаба и пр. По сути в фоновом режиме.

biggrin.gif Вы видимо шутите. 07.gif Я хотел сделать систему нейтрализирующую нелинейные искажения в выходном каскаде передатчика. Там требования намного слабее чем идеальная синусоида из "слегка не идеальной". Тоже в реальном времени ибо интерес был в том, что ставится другой выходной каскад, другого производителя а оно работает. И так и не понял хватит ли мне BlackFin 400 Mhz для этого дела.
...если речь идет об "идеальности" синусоиды то аппроксимировать характеристику нежно будет очень тщательно, чуть ли не "по точечно". Я не знаю, что именно, Вы ожидаете получить, но есть большие, даже очень большие, сомнения в реализуемости такого подходя на таком хлиплом микроконтроллере.

P.S.: а Вы можете выложить данные по коэффициенту гармоник "до" и требуемому? Или осциллограму Вашей "неидеальной синусоиды"...

P.P.S.: а там, "по-месту" нельзя вырваЦЦо из порочного круга цифровой нелинейщины и сделать нечто наподобие усилителей с ООС, как в аудио?


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


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

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Цитата(Tanya @ Oct 28 2008, 18:02) *
Вы в такой общей форме ставите вопрос, что ответить на него нельзя. Вы даже не написали, аргумент(ы) Вашей функции...
Получите общий ответ - если функция обратима, то такое возможно. В противном случае - пример.
Функция - квадрат аргумента. Получить синус невозможно.
Еще замечу, что переходная характеристика вводится (используется) для описания линейных стационарных систем.


Нет никаких аргументов и вообще нет аналитических выражений. Все только временными рядами.
Подразумевается что нелинейную систему приближенно (в малом) можно представить линейной.
Спепень нелинейности системы невысока. При синусе на входе коэффициент гармоник не более 10%.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Oct 28 2008, 08:23
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(DRUID3 @ Oct 28 2008, 10:05) *
...Но вообще да, можно построить 2-е FIR системы, вторая будет с "антиАЧХ" - т.е. восстанавливать сигнал прошедший первй FIR получая отсчеты с его выхода. Но если в FIRах будет по 256 звеньев, но восстановление каждого отсчета будет с задаржкой в 512 сэмплов.


Я бы сказал что задержка может быть в пределах 256 ... 512 сэмплов...

Цитата(DRUID3 @ Oct 28 2008, 10:05) *
И еще, это все справедливо для линейных систем, для нелинейных все будет гораздо сложнее...

Я подозреваю что для нелинейных вообще решения может не быть smile.gif в принципе. Я корневой пост понял так что есть некое линейное "звено" после него нелинейный объект управления. И идея AlexOr'a заключается в том чтобы невязку (разницу реального состояние объекта управления и желаемого состояния объекта) на предидущем периоде синусоиды, пересчитать ко входу "звена" и как-то использовать не текущем периоде.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 28 2008, 08:23
Сообщение #14


山伏
*****

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



Цитата(Tanya @ Oct 28 2008, 10:02) *
Получите общий ответ - если функция обратима, то такое возможно. В противном случае - пример.
Функция - квадрат аргумента. Получить синус невозможно.

если честно, не понимаю. Будьте добры - объясните... если не тяжело, конечно...
Цитата(Tanya @ Oct 28 2008, 10:02) *
Еще замечу, что переходная характеристика вводится (используется) для описания линейных стационарных систем.

Ну вообще-то да, но мы можем получить аппроксимацию нелинейной передаточной характеристики линейными. С погрешностью, да еще и которую нужно долго и нудно просчитывать. Но можем...


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


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

Группа: Свой
Сообщений: 89
Регистрация: 30-12-04
Из: Санкт-Петербург
Пользователь №: 1 754



Цитата(alex_os @ Oct 28 2008, 17:03) *
Если есть импульсная характеристика h системы (звена), последовательность отсчетов на его выходе y, требуется найти последовательность на входе "звена" x. Это можно сделать при помощи fir фильтра такого, что свертка импульсной хар-ки (ИХ) фильтра (f) с h будет иметь единственное значение отличное от нуля. Тогда задержанную оценку x можно получить просто пропустив y через фильтр f.

Интересно но пока непонятно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 15th June 2024 - 21:18
Рейтинг@Mail.ru


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