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

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

Пример

Полюса с высокой кратностью и кластерами соседних полюсов могут быть очень чувствительны к погрешностям округления, которые могут иногда иметь поразительные последствия. Этот пример использует модель в пространстве состояний дискретного времени 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 устойчиво (все его полюса лежат в модульном кругу). Диаграмма Боде также показывает большое несоответствие между моделями передаточной функции и пространством состояний:

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, которое просто включает вычисление полинома от его корней.

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

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

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.

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