Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Комплексная передаточная функция
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
ataradov
Я пытаюсь понять как работает один алгоритм (старая тема тут).

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

Пытаясь приложить все мои знания я пришел к тому, что изображено на картинке. Полином в этим случае - это характеристическое уравнение замкнутой системы. Соответственно корни этого полинома (D(s) + N(s)*H(s) = 0) - это собственные числа.

В принципе, собственные числа обладают нужными свойствами, поэтому рассуждения похожи на правду. Вот только в этом случае H(s) - это константа, не зависящая от s (t1 и t0 тоже константы). Более того, это комплексная константа.

Вопрос - имеет-ли какой-нибудь физический смысл комплексно-значная функция обратной связи? Или я не в том направлении рою?
AlexandrY
Цитата(Taradov Alexander @ Jul 4 2014, 05:25) *
Вопрос - имеет-ли какой-нибудь физический смысл комплексно-значная функция обратной связи? Или я не в том направлении рою?


Реальный сигнал значит был комплексным.
Может это модель обработки сразу двух сигналов?

ataradov
QUOTE (AlexandrY @ Jul 3 2014, 22:09) *
Реальный сигнал значит был комплексным.
Может это модель обработки сразу двух сигналов?


Дело в том, что никакой системы в реальности нет и сигналы через нее не пропускает никто. Это я нарисовал как способ объяснить как получается полином.

Все что нужно от этой системы (опять же по моему предположению) - это получить положение полюсов. А потом для дальнейших вычислений используется эти корни. В частности, благодаря "правильному" выбору параметров a, b, t0, t1 получается, что действительная часть содержит частоту, а мнимая - коэффициент затухания одной из мод. Всего в системе 3 моды, представляющие 3 струны фортепиано, настроенные в юнисон.

Возможно я вообще не прав. Все что у меня есть - это способ составления полинома, а нужно узнать почему он составляется именно так.
AlexandrY
Цитата(Taradov Alexander @ Jul 4 2014, 08:18) *
Дело в том, что никакой системы в реальности нет и сигналы через нее не пропускает никто. Это я нарисовал как способ объяснить как получается полином.

Все что нужно от этой системы (опять же по моему предположению) - это получить положение полюсов. А потом для дальнейших вычислений используется эти корни. В частности, благодаря "правильному" выбору параметров a, b, t0, t1 получается, что действительная часть содержит частоту, а мнимая - коэффициент затухания одной из мод. Всего в системе 3 моды, представляющие 3 струны фортепиано, настроенные в юнисон.

Возможно я вообще не прав. Все что у меня есть - это способ составления полинома, а нужно узнать почему он составляется именно так.


В смысле?
Сами нарисовали.
Сами вставили туда формулу с комплексной величиной и теперь спрашиваете у нас как это у вас получилось?

Ну так не может быть после преобразований по Лапласу реального сигнала еще каких-то комплексных величин в структурной схеме.
s - сама по природе комплексная величина.
ataradov
QUOTE (AlexandrY @ Jul 3 2014, 22:46) *
В смысле?
Сами нарисовали.
Сами вставили туда формулу с комплексной величиной и теперь спрашиваете у нас как это у вас получилось?
Нарисовал я в попытках объяснить. Я не утверждаю, что я прав 100%. Если бы там была не комплексная величина, то объяснение было бы простым. Опять-же все, что у меня есть это вот этот алгоритм
CODE
arr = [261.4508114 261.5063567 261.6451613];
t0 = 199.1735851;
t1 = -0.00705058376;
n = 1;

avg = sum(arr) / length(arr);
a = (2 - arr / avg) / (avg * 2);
b = (1 - arr / avg) * (n) * pi;

az1 = conv([a(2) b(2)], [a(3) b(3)]);    % az1 = (a2*s + b2) * (a3*s + b3)
az2 = conv([a(1) b(1)], [a(3) b(3)]);    % az2 = (a1*s + b1) * (a3*s + b3)
az3 = conv([a(1) b(1)], [a(2) b(2)]);    % az3 = (a1*s + b1) * (a2*s + b2)
N = az1+az2+az3;
N = [0 N];

D = conv(az3, [a(2) b(3)]);             % p1 = (a1*s + b1) * (a2*s + b2) * (a2*s + b3)

z = D + N * (exp(-(t1+pi/2)*j) / t0);

roots(z);


и задача понять, что именно он делает.

QUOTE (AlexandrY @ Jul 3 2014, 22:46) *
Ну так не может быть после преобразований по Лапласу реального сигнала еще каких-то комплексных величин в структурной схеме.
s - сама по природе комплексная величина.
Ну так вопрос про то и есть, что может это какой известный прием. Физически такое не реализуемо, но помогает с вычислениями.
AlexandrY
Цитата(Taradov Alexander @ Jul 4 2014, 08:53) *
az1 = conv([a(2) b(2)], [a(3) b(3)]); % az1 = (a2*s + b2) * (a3*s + b3)
az2 = conv([a(1) b(1)], [a(3) b(3)]); % az2 = (a1*s + b1) * (a3*s + b3)
az3 = conv([a(1) b(1)], [a(2) b(2)]); % az3 = (a1*s + b1) * (a2*s + b2)
N = az1+az2+az3;
N = [0 N];

D = conv(az3, [a(2) b(3)]); % p1 = (a1*s + b1) * (a2*s + b2) * (a2*s + b3)

z = D + N * (exp(-(t1+pi/2)*j) / t0);

roots(z);[/code]

и задача понять, что именно он делает.


А это что за чудо, брать и просто тупо складывать оператором '+' передаточные функции
Это что угодно, но не операторное представление.

А алгоритм то работает? Кто проверял? И как?
Дмитрий_Б
Цитата(Taradov Alexander @ Jul 4 2014, 06:25) *
Вопрос - имеет-ли какой-нибудь физический смысл комплексно-значная функция обратной связи? Или я не в том направлении рою?

В том - или нет направлении - Вам виднее. Функция обратной связи - это идеальный фазовращатель, к-т передачи по амплитуде=1/t0.
ataradov
QUOTE (AlexandrY @ Jul 4 2014, 04:50) *
А это что за чудо, брать и просто тупо складывать оператором '+' передаточные функции
Это что угодно, но не операторное представление.
Обычное сложение параллельных передаточных функций.

QUOTE (AlexandrY @ Jul 4 2014, 04:50) *
А алгоритм то работает? Кто проверял? И как?
Работает. Проверялось сравнивая результаты с оригинала.
ataradov
QUOTE (Дмитрий_Б @ Jul 4 2014, 09:49) *
В том - или нет направлении - Вам виднее. Функция обратной связи - это идеальный фазовращатель, к-т передачи по амплитуде=1/t0.


Похоже в правильном. На самом деле экспонента относится к самим передаточным функциям, таким образом в обратной связи только 1/t0. И как утверждает работа в приложении в случае струн фортепиано эта экспонента всегда будет присутствовать.

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

Теперь нужно понять как формируются коэффициенты a_i и b_i.


К стати, в программе есть "ошибка". Когда вычисляется "D = conv(az3, [a(2) b(3)]);" нужно умножать на [a(3) b(3)]. Но эта ошибка присутствует и в оригинале с которого делался реверс-инжиниринг. Я проверял много раз, так как такая нерегулярность поставила меня в тупик давным давно, и только предположение о возможной ошибке в оригинале позволило продвинуться дальше. На практике числа очень близки и разница в результате не большая.

Можно испугать авторов оригинала, сказав им, что у них есть ошибка sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.