Matlab: как разложить передаточную функцию - PullRequest
0 голосов
/ 25 марта 2012

Мне нужно разделить мою передаточную функцию на 2 передаточные функции таким образом, чтобы S2 = S1 'На самом деле у меня есть произведение S2 * S1

s = tf('s')
Suu = -1.6/((s-4)*(s+4))
Sux = -0.8/((s+4)*(s-4)*(s^2 + 0.1*s + 1))
Sxx = 0.3*(s - 4.163)*(s + 4.163)/((s+4)*(s-4)*(s^2 - 0.1*s + 1)*(s^2 + 0.1*s + 1))
Sxu = Sux'
SxdSdx = Sxx - (Sxu*Sux)/Suu

Как определить Sxd и Sdx, если Sxd = Sdx'?Кто-нибудь может мне помочь?

1 Ответ

3 голосов
/ 25 марта 2012

То, что вы хотите сделать, называется спектральной факторизацией.Хорошим обзорным документом по алгоритмам спектральной факторизации является А.Х. Сайед и Т. Кайлат, «Обзор методов спектральной факторизации», Numer.Линейная Алгебра Appl., Vol.8, с. 467-496, 2001.

Если ваша передаточная функция выражается как рациональная функция (т. Е. Отношение многочленов от s), которую вы можете вычислить, то вы можете выбрать S1 как рациональную функциючьи нули (корни полинома числителя) и полюсы (корни полинома знаменателя) находятся в левой полуплоскости (т. е. имеют действительные части меньше нуля).Если есть настоящие корни, они должны быть в парах, и вы можете назначить одного члена каждой пары на S1.Если вы сделаете это, то S1 * con (S1) будет исходной передаточной функцией.

Численный метод, с помощью которого вы учитываете свою передаточную функцию, зависит от характера полюсов и нулей ваших передаточных функций (сколько их, как близко они и т. Д.), Как вы знаете свою передаточную функцию (сделатьвы знаете его по полиномиальным коэффициентам? знаете ли вы его по значению в выбранных точках в пространстве s?), насколько точно вы его знаете (насколько точно вы используете коэффициенты передаточной функции) и насколько точно вы хотите, чтобы ваша факторизация была.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...