Соединительные модели

Этот пример показов, как соединения моделей системы LTI, от простых последовательных и параллельных соединений до сложных блоков схем.

Обзор

Control System Toolbox™ предоставляет ряд функций, которые помогают вам создавать сети моделей LTI. Они включают функции для выполнения

  • Последовательные и параллельные соединения (series и parallel)

  • Соединения обратной связи (feedback и lft)

  • Входная и выходная конкатенации ([ , ], [ ; ], и append)

  • Общая блок-схема создания (connect).

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

H1 = tf(2,[1 3 0])
H1 =
 
      2
  ---------
  s^2 + 3 s
 
Continuous-time transfer function.
H2 = zpk([],-5,5)
H2 =
 
    5
  -----
  (s+5)
 
Continuous-time zero/pole/gain model.

Последовательное соединение

Используйте * оператор или series функция для соединения моделей LTI последовательно, например:

H = H2 * H1
H =
 
       10
  -------------
  s (s+5) (s+3)
 
Continuous-time zero/pole/gain model.

или эквивалентно

H = series(H1,H2);

Параллельное соединение

Используйте + оператор или parallel функция для соединения моделей LTI параллельно, например:

H = H1 + H2
H =
 
  5 (s+2.643) (s+0.7566)
  ----------------------
      s (s+3) (s+5)
 
Continuous-time zero/pole/gain model.

или эквивалентно

H = parallel(H1,H2);

Соединения с обратной связью

Стандартное строение обратной связи показано ниже:

Чтобы создать модель передачи с обратной связью от u на y, type

H = feedback(H1,H2)
H =
 
              2 (s+5)
  --------------------------------
  (s+5.663) (s^2 + 2.337s + 1.766)
 
Continuous-time zero/pole/gain model.

Обратите внимание, что feedback принимает отрицательную обратную связь по умолчанию. Для применения положительной обратной связи используйте следующий синтаксис:

H = feedback(H1,H2,+1);

Можно также использовать lft функция для создания более общего соединения обратной связи, нарисованного ниже.

Конкатенация входов и выходов

Можно конкатенировать входы двух моделей H1 и H2 путем ввода

H = [ H1 , H2 ]
H =
 
  From input 1 to output:
     2
  -------
  s (s+3)
 
  From input 2 to output:
    5
  -----
  (s+5)
 
Continuous-time zero/pole/gain model.

Получившаяся модель имеет два входов и соответствует соединению:

Точно так же можно конкатенировать выходы H1 и H2 путем ввода

H = [ H1 ; H2 ]
H =
 
  From input to output...
          2
   1:  -------
       s (s+3)
 
         5
   2:  -----
       (s+5)
 
Continuous-time zero/pole/gain model.

Получившаяся модель H имеет два выхода и один вход и соответствует следующему блоку:

Наконец, можно добавить входы и выходы двух моделей с помощью:

H = append(H1,H2)
H =
 
  From input 1 to output...
          2
   1:  -------
       s (s+3)
 
   2:  0
 
  From input 2 to output...
   1:  0
 
         5
   2:  -----
       (s+5)
 
Continuous-time zero/pole/gain model.

Получившаяся модель H имеет два входа и два выхода и соответствует блоку:

Можно использовать конкатенацию, чтобы создать модели MIMO из элементарных моделей SISO, например:

H = [H1 , -tf(10,[1 10]) ; 0 , H2 ]
H =
 
  From input 1 to output...
          2
   1:  -------
       s (s+3)
 
   2:  0
 
  From input 2 to output...
        -10
   1:  ------
       (s+10)
 
         5
   2:  -----
       (s+5)
 
Continuous-time zero/pole/gain model.
sigma(H), grid

Figure contains an axes. The axes contains 2 objects of type line. This object represents H.

Создание моделей из блоков

Можно использовать комбинации функций и операций, введенных до сих пор, чтобы создать модели простых блоков. Например, рассмотрим следующий блок:

со следующими данными для блоков F, C, G, S:

s = tf('s');
F = 1/(s+1);
G = 100/(s^2+5*s+100);
C = 20*(s^2+s+60)/s/(s^2+40*s+400);
S = 10/(s+10);

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

T = F * feedback(G*C,S);
step(T), grid

Figure contains an axes. The axes contains an object of type line. This object represents T.

Для более сложных блоков, connect функция обеспечивает систематический и простой способ проведения блоков вместе. Как использовать connect, выполните следующие шаги:

  • Задайте все блоки в схеме, включая блоки суммирования

  • Назовите все входные и выходные каналы блоков

  • Выберите I/OS блока схемы из списка блока I/Os.

Для приведенной выше блока эти шаги составляют:

Sum1 = sumblk('e = r - y');
Sum2 = sumblk('u = uC + uF');

% Define block I/Os ("u" and "y" are shorthand for "InputName" and "OutputName")
F.u = 'r';   F.y = 'uF';
C.u = 'e';   C.y = 'uC';
G.u = 'u';   G.y = 'ym';
S.u = 'ym';  S.y = 'y';

% Compute transfer r -> ym
T = connect(F,C,G,S,Sum1,Sum2,'r','ym');
step(T), grid

Figure contains an axes. The axes with title From: r To: ym contains an object of type line. This object represents T.

Правила приоритета

При соединении моделей разных типов полученный тип модели определяется правилом приоритета

  FRD > SS > ZPK > TF > PID

Это указывает, что FRD имеет наивысший приоритет, сопровождаемый SS, ZPK, TF, и ПИД имеет самый низкий приоритет. Для примера в последовательной связи:

H1 = ss(-1,2,3,0);
H2 = tf(1,[1 0]);
H = H2 * H1;

H2 автоматически преобразуется в представление пространства состояний и результат H является моделью пространства состояний:

class(H)
ans = 
'ss'

Поскольку представления SS и FRD лучше всего подходят для соединений систем, рекомендуется преобразовать по крайней мере одну из моделей в SS или FRD, чтобы убедиться, что все расчеты выполняются с помощью одной из этих двух представлений. Одно исключение - при использовании connect который автоматически выполняет такое преобразование и всегда возвращает модель блока схемы в пространстве состояний или FRD.