Этот пример показов, как соединения моделей системы 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
Можно использовать комбинации функций и операций, введенных до сих пор, чтобы создать модели простых блоков. Например, рассмотрим следующий блок:
со следующими данными для блоков 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
Для более сложных блоков, 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
При соединении моделей разных типов полученный тип модели определяется правилом приоритета
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.