Функция sys = parallel(sys1, sys2) реализует параллельное соединение двух lti-моделей.
|
sys1 |
u |
y |
|
sys2 |
sys
Обе модели должны быть непрерывными или дискретными с
одинаковыми |
периодами |
дискретности. |
Допустимо |
использование |
безинерционных |
моделей, |
описываемых |
матрицами |
статических |
коэффициентов передачи. Эта функция эквивалентна операции сложения lti-
моделей sys sys1 sys 2 .
Функция sys = parallel(sys1, sys2, inp1, inp2, out1, out2) позволяет реализовать более общую форму параллельного соединения двух lti-моделей.
v1 |
sys1 |
z1 |
|
||
|
|
|
u |
|
y |
|
||
|
||
|
sys2 |
|
v2 
z2 sys
Векторы inp1 и inp2 определяют, какие номера входов системы sys1 и какие номера входов системы sys2 соединяются. Аналогично векторы out1 и out2 определяют, какие номера выходов систем sys1 и sys2 суммируются. Результирующая модель sys имеет входом вектор [v1; u; v2] и выходом вектор
[z1; y; z2].
series |
Последовательное соединение lti-моделей |
|
|
Синтаксис:
sys = series(sys1, sys2)
sys = series(sys1, sys2, outputs1, inputs2)
Функция sys = series(sys1, sys2) реализует последовательное соединение двух lti-моделей и эквивалентна операции умножения sys = sys2 * sys1.
u |
sys1 |
|
sys2 |
y |
|
|
|
sys
При использовании функции действуют те же ограничения, что и в предыдущем случае.
Функция sys = series(sys1, sys2, outputs1, inputs2) позволяет реализовать более общую форму последовательного соединения двух lti-моделей.
Векторы outputs1 и inputs2 указывают, какие номера выходов системы sus1 к каким номерам входов системы sys2 должны быть подсоединены. Полученная модель sys имеет входом вектор u и выходом вектор y.
|
|
v1 |
|
|
|
|
|
|
y1 |
sys2 |
y |
|
sys1 |
|
|||
|
|
|
|||
|
|
|
|
|
|
u |
|
|
z1 |
|
sys |
|
|
|
|||
|
|
|
|
||
|
|
|
|
||
Пример: рассмотрим две модели – ss-модель sys1 c пятью входами и четырьмя выходами и ss-модель sys2 с двумя входами и тремя выходами. Выполним последовательное соединение этих моделей, когда выходы 2 и 4 модели sys1 присоединяются к входам 1 и 2 модели sys2.
»outputs1=[2 4];
»inputs2=[1 2];
»sys=series(sys1,sys2,outputs1,inputs2)
feedback |
Соединение lti-моделей обратной связью |
|
|
Синтаксис:
sys = feedback(sys1, sys2)
sys = feedback(sys1, sys2, feedin, feedout, sign)
Функция sys = feedback(sys1, sys2) возвращает lti-модель с дескриптором sys, соответствующую соединению lti-моделей sys1 и sys2 в контур с отрицательной обратной связью.
u |
sys1 |
y |
|
|
|
|
sys2 |
|
Замкнутая модель имеет вход u и выход y. Обе модели должны быть непрерывными или дискретными с одинаковыми периодами дискретности. Правила приоритета определяют подкласс результирующей модели. Функция feedback(sys1, sys2) эквивалентна функции feedback(sys1, sys2, -1). Чтобы замкнуть систему положительной обратной связью следует использовать функцию feedback(sys1, sys2, +1).
Функция sys = feedback(sys1, sys2, feedin, feedout) позволяет реализовать более общую форму соединения с обратной связью.
Вектор feedin содержит индексы входного вектора модели sys1 и определяет, какие ее входы включаются в контур с обратной связью. Вектор feedout определяет, какие входы системы sys1 используются для организации обратной связи. Результирующая модель имеет те же входы и выходы, что и система sys1 с сохранением их порядка. По умолчанию предполагается, что контур замыкается отрицательной обратной связью.
Ограничения: соединение с обратной связью не должно содержать алгебраических петель. Для ss-моделей в пространстве состояний это условие заключается в том, что матрицы прямой передачи входа D1 и D2 таковы, что матрица I + D1D2 для контура с отрицательной обратной связью и матрица I – D1D2 для контура с положительной обратной связью являются невырожденными.
star |
Соединение lti-моделей звездой |
|
|
Синтаксис:
sys = star(sys1, sys2)
sys = star(sys1, sys2, nu, ny)
Функция sys = star(sys1, sys2, nu, ny) формирует соединение звездой для двух моделей sys1 и sys2.
v1 |
sys1 |
|
z1 |
|
|
||
u |
|
y |
|
|
|
||
y |
|
u |
y |
|
|||
sys2 |
|
||
|
|
|
|
v2 |
|
|
z2 |
|
sys |
|
|
Обратная связь соединяет первые nu выходов системы sys2 с последними nu входами системы sys1 (сигналы u) и последние ny выходов системы sys1 с первыми ny входами системы sys2 (сигналы y). Полученная система sys отображает вектор входа [v1; v2] на вектор выхода [z1; z2].
Функция sys = star(sys1, sys2) возвращает lti-модель с дескриптором sys, которой может соответствовать одно из двух соединений:
v1 |
|
z1 |
sys1 |
|
sys1 |
|
|||
|
|
|
|
|
|
|
y |
|
u |
|
|
|
||
u |
|
y |
|
|
|
|
|
||
|
sys2 |
|
||
|
|
|
|
|
|
sys2 |
v1 |
|
z2 |
|
|
|
||
|
|
|
||
|
|
|
|
|
append |
|
Объединение lti-моделей |
||
|
|
|
|
|
Синтаксис:
sys = append(sys1, sys2, …, sysN)
Функция sys = append(sys1, sys2, …, sysN) объединяет входы и выходы lti-моделей и формирует агрегатированную модель без перекрестных связей.
Для tf-моделей с передаточными функциями H1(s), H2(s), …, HN(s) результирующая модель характеризуется передаточной функцией в виде диагональной блочной матрицы
H s diag H1 s , H2 s , , H N s .
connect Построение lti-модели на основе структурной схемы
Синтаксис:
sysc = connect(sys, Q, inputs, outputs)
На практике сложные динамические системы часто описываются структурными схемами, состоящими из большого количества элементов. В этом случае даже для систем умеренной сложности построить ss-модель в пространстве состояний по ее структурной схеме бывает затруднительно. Использование функции connect существенно облегчает эту задачу.
Входные аргументы Q, inputs и outputs имеют следующее назначение:
матрица связей Q предназначена для описания связей блоков на структурной схеме. Каждая строка этой матрицы соответствует одному входу системы sys; первый элемент строки – это номер входа, последующие элементы указывают номера выходов, которые алгебраически суммируются по этому входу; отрицательные элементы обозначают суммирование со знаком минус. Например, если на вход 7 поступают сигналы с выходов 2, 15 и 6, причем сигнал с выхода 15 имеет отрицательный знак, то соответствующая строка матрицы связей Q имеет вид [7 2 –15 6]. Теперь с помощью функции connect может быть построена модель в пространстве состояний с учетом перекрестных связей и с теми же входами и выходами, которые имела модель sys;
векторы inputs и outputs определяют, какие входы и выходы агрегатированной системы являются внешними. Например, если внешними
являются входы 1, 2, 15 и выходы 2, 7 системы sys, то аргументы inputs и outputs должны иметь вид inputs = [1 2 15]; outputs = [2 7].
Поскольку при вводе большого объема данных достаточно просто допустить ошибку, следует выполнить проверку сформированной модели. Для этого можно предложить несколько рекомендаций:
следует убедиться, что полюсы модели sys соответствуют полюсам отдельных блоков;
убедиться, что полюс и статические коэффициенты передачи результирующей системы являются приемлемыми;
построить переходные функции и частотные характеристики для системы sysc и сравнить их с ожидаемыми.
Если методика работы со структурными схемами является преобладающей, то лучше формировать модель в системе Simulink, как мощным инструментом построения моделей динамических систем.
3.9. Получение lti-объекта из системы Simulink
Для того, чтобы получить lti-объект из системы Simulink, следует сформировать модель, в которой не будет источников и приемников сигналов.
1 |
1 |
|
1 |
0.01s2+0.5s+1 |
|
||
In1 |
|
Out1 |
|
|
1 |
||
|
Transfer Fcn |
2 |
|
|
|
||
|
|
|
|
|
Gain |
0.5s+1 |
Out2 |
|
|
|
|
|
5 |
Transfer Fcn1 |
|
|
|
|
Входы и выходы системы отмечаются блоками in и out.
Далее необходимо получить параметры пространства состояний системы (предполагаем, что система собрана в окне системы Simulink с именем untitled):
» [a, b, c, d] = linmod('untitled');.
Полученная матрица позволяет получить модель системы в пространстве состояний:
» sys=ss(a, b, c, d) a =
|
x1 |
x2 |
x3 |
x1 |
-50 |
-600 |
0 |
x2 |
1 |
0 |
0 |
x3 |
0 |
100 |
-2 |
b = |
|
|
|
|
u1 |
|
|
x1 |
1 |
|
|
x2 |
0 |
|
|
x3 |
0 |
|
|