exponenta event banner

Используя FEEDBACK, чтобы закрыть обратную связь

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

Два способа закрыть обратную связь

Рассмотрите следующую обратную связь

где

K = 2;
G = tf([1 2],[1 .5 3])
G =
 
       s + 2
  ---------------
  s^2 + 0.5 s + 3
 
Continuous-time transfer function.

Можно вычислить передаточную функцию с обратной связью H от r до y по крайней мере двумя способами:

  • Используя feedback команда

  • Используя формулу

H=G1+GK

Вычислить H использование feedbackВвод

H = feedback(G,K)
H =
 
       s + 2
  ---------------
  s^2 + 2.5 s + 7
 
Continuous-time transfer function.

Вычислить H от формулы ввести

H2 = G/(1+G*K)
H2 =
 
        s^3 + 2.5 s^2 + 4 s + 6
  -----------------------------------
  s^4 + 3 s^3 + 11.25 s^2 + 11 s + 21
 
Continuous-time transfer function.

Почему Используя FEEDBACK Лучше

Главная проблема с вычислением H от формулы то, что она раздувает порядок передаточной функции с обратной связью. В примере выше, H2 имеет дважды порядок H. Это вызвано тем, что выражение G/(1+G*K) оценен как отношение этих двух передаточных функций G и 1+G*K. Если

G(s)=N(s)D(s)

затем G/(1+G*K) оценен как:

ND(D+KND)-1=NDD(D+KN).

В результате полюса G добавляются и к числителю и к знаменателю H. Можно подтвердить это путем рассмотрения представления ZPK:

zpk(H2)
ans =
 
       (s+2) (s^2 + 0.5s + 3)
  ---------------------------------
  (s^2 + 0.5s + 3) (s^2 + 2.5s + 7)
 
Continuous-time zero/pole/gain model.

Этот избыток полюсов и нулей может негативно повлиять на точность ваших результатов при контакте со старшими передаточными функциями, как показано в следующем примере. Этот пример включает передаточную функцию 17-го порядка G. Когда вы сделали прежде, используйте оба подхода, чтобы вычислить передаточную функцию с обратной связью для K=1:

load numdemo G
H1 = feedback(G,1);          % good
H2 = G/(1+G);                % bad

Чтобы иметь ориентир, также вычислите модель FRD, содержащую частотную характеристику G, и примените feedback к данным о частотной характеристике непосредственно:

w = logspace(2,5.1,100);
H0 = feedback(frd(G,w),1);

Затем сравните величины ответов с обратной связью:

h = sigmaplot(H0,'b',H1,'g--',H2,'r');
legend('Reference H0','H1=feedback(G,1)','H2=G/(1+G)','location','southwest')
setoptions(h,'YlimMode','manual','Ylim',{[-60 0]})

Частотная характеристика H2 неточно для частот ниже 2e4 рад/с. Эта погрешность может быть прослежена до дополнительного (отмена) динамика, введенная рядом z=1. А именно, H2 имеет о вдвое большем количестве полюсов и нулей рядом z=1 как H1. В результате H2(z) имеет намного более плохую точность рядом z=1, который искажает ответ в низких частотах. Смотрите, что пример Использует Правильное Представление Модели для получения дополнительной информации.

Смотрите также

Похожие темы