Соединение моделей

В этом примере показано, как к соединениям моделей систем 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Ввод

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.

Построение моделей из блок-схем

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

со следующими данными для блоков FCGS:

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 блок-схемы.