exponenta event banner

Подключение моделей

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

Модели зданий из блок-схем

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

со следующими данными для блоков 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выполните следующие действия:

  • Определение всех блоков на диаграмме, включая блоки суммирования

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

  • Выберите блок-схему ввода/вывода из списка блоков ввода/вывода.

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

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 и PID имеет наименьший приоритет. Например, в соединении серии:

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