Использование обратной связи для закрытия циклов обратной связи

Этот пример показывает, почему вы всегда должны использовать 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, type

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.

Почему ИСПОЛЬЗОВАНИЕ ОБРАТНОЙ СВЯЗИ Лучше

Основная проблема с вычислением 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]})

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Reference H0, H1=feedback(G,1), H2=G/(1+G).

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

См. также

Похожие темы