exponenta event banner

Чувствительность нескольких корней

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

Пример

Полюса с высокой кратностью и скопления близлежащих полюсов могут быть очень чувствительны к ошибкам округления, что иногда может иметь драматические последствия. В этом примере используется дискретная модель состояния-пространства 15-го порядка Hss с кластером устойчивых полюсов вблизи z=1:

load numdemo Hss

Преобразование модели в передаточную функцию с помощью tf:

Htf = tf(Hss);

Сравнение ответов

Сравнение ответов на шаги Hss и Htf чтобы увидеть, как чувствительность к полюсам может повлиять на стабильность модели и вызвать большие изменения в вычисленных временных и частотных откликах:

step(Hss,'b',Htf,'r',20)
legend('Hss','Htf')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Hss, Htf.

Пошаговый ответ Htf расходится, даже если модель «государство-пространство» Hss стабилен (все его полюса лежат в единичном круге). График Боде также показывает большое расхождение между моделями state-space и transfer function:

bode(Hss,'b',Htf,'r--')
legend('Hss','Htf')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Hss, Htf. Axes 2 contains 2 objects of type line. These objects represent Hss, Htf.

Алгоритм, используемый для преобразования из пространства состояний в передаточную функцию, не вызывает этого несоответствия. При преобразовании из пространства состояний в нулевой коэффициент усиления, первый шаг в любом преобразовании SS в TF, расхождения исчезают:

Hzpk = zpk(Hss);

step(Hss,'b',Hzpk,'r--')
legend('Hss','Hzpk')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Hss, Hzpk.

bode(Hss,'b',Hzpk,'r--')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Hss, Hzpk. Axes 2 contains 2 objects of type line. These objects represent Hss, Hzpk.

Этот анализ показывает, что расхождения возникают в преобразовании ZPK в TF, которое просто включает в себя вычисление полинома из его корней.

Причина несоответствия

Чтобы понять причину этих больших расхождений, сравните карты полюс/ноль модели state-space и ее передаточную функцию:

pzplot(Hss,'b',Htf,'r')
legend('Hss','Htf')

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Hss, Htf.

Обратите внимание на плотно упакованное скопление полюсов около z = 1 вHss. Когда эти полюса рекомбинированы в знаменатель передаточной функции, ошибки округления возмущают кластер полюсов в равномерно распределенное кольцо полюсов вокруг z = 1 (типичная картина для возмущенных множественных корней). К сожалению, некоторые возмущенные полюса пересекают единичный круг и делают передаточную функцию нестабильной. Увеличьте изображение графика, чтобы увидеть следующие полюса:

pzplot(Hss,'b',Htf,'r');
axis([0.5 1.5 -.4 .4])

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Hss, Htf.

Подтвердить это объяснение можно простым экспериментом. Построение полинома, корни которого являются полюсами R1 из Hss, вычислить корни этого многочлена и сравнить эти корни с R1:

R1 = pole(Hss);                  % poles of Hss
Den = poly(R1);                  % polynomial with roots R1
R2 = roots(Den);                 % roots of this polynomial
plot(real(R1),imag(R1),'bx',real(R2),imag(R2),'r*')
legend('R1','roots(poly(R1))');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent R1, roots(poly(R1)).

Этот сюжет показывает, что ROOTS(POLY(R1)) очень отличается от R1 из-за кластеризованных корней. В результате корни знаменателя передаточной функции значительно отличаются от полюсов исходной модели «состояние-пространство» Hss.

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