Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1804

.pdf
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
2.24 Mб
Скачать

Функция 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

 

 

c =

 

 

 

 

x1

x2

x3

y1

0

100

0

y2

0

0

2

d =

 

 

 

 

u1

 

 

y1

0

 

 

y2

0

 

 

Continuous-time model.

Полученная модель может быть использована также, как и любая другая, сформированная командами подсистемы Control System Toolbox.

Можно получить ее в виде tf-модели: » systf=tf(sys)

Transfer function from input to output...

100 #1: ----------------

s^2 + 50 s + 600

200 #2: ---------------------------

s^3 + 52 s^2 + 700 s + 1200.

Внимание! Так как модель первоначально преобразуется в форму пространства состояний, не допускается включение в модель в явном виде элементов, передаточные функции которых носят дифференциальный характер (степень числителя больше степени знаменателя).

3.10. Операторы и функции для анализа систем

pole, eig

Расчет полюсов lti-модели

 

 

Синтаксис: p = pole(sys)

poles = eig(sys)

Функция р = pole(sys) вычисляет полюсы р одномерной или многомерной lti-модели sys.

Для ss-моделей в явной форме Коши полюсами являются собственные значения задачи Аr = r, для ss-моделей в неявной форме Коши - обобщенные собственные значения задачи Аг = Вг.

Для одномерных tf и zpk моделей полюсами являются корни знаменателя передаточной функции.

Для многомерных tf и zpk моделей полюсы определяются как множество полюсов для каждого канала входа-выхода. В процессе вычислений могут возникнуть трудности при определении точного порядка многомерной передаточной функции и выявлении избыточных полюсов. При применении функции pole tf'и zpk модели преобразуются в ss-модели и, хотя при этом по некоторым каналам входа-выхода формируются минимальные реализации, в целом функция pole не гарантирует минимальной реализации, за исключением случаев, когда многомерная система имеет единственный вход или единственный выход.

Функция poles = eig(sys) вычисляет полюсы lti-модели sys и реализована как переопределяемый метод для lti-объектов.

Ограничения: при использовании функций pole и eig процедура вычисления кратных полюсов (собственных значений) оказывается численно неустойчивой. Это выражается в том, что собственному значению кратности m, как правило, соответствует кластер близких собственных значений, расположенных на окружности с центром и радиусом порядка eps1/m.

Для анализа и расчета систем с кратными собственными значениями рекомендуется использовать матрицы в канонической форме Жордана.

damp

Расчет собственных частот и коэф-та демпфирования

 

 

Синтаксис:

[Wn, Z] = damp(sys) [Wn, Z, P] = damp(sys)

Функция damp предназначена для расчета собственных частот и коэффициентов демпфирования, соответствующих полюсам lti-модели sys. Если функция вызывается без выходных аргументов, то на экран выводится таблица, содержащая собственные значения в порядке возрастания их модуля и соответствующие им собственные частоты и коэффициенты демпфирования.

Функция [Wn, Z] = damp(sys) возвращает векторы-столбцы Wn и Z, содержащие собственные частоты и коэффициенты демпфирования lti-модели sys. Для дискретных систем с полюсами z и периодом дискретности Ts рассчитываются эквивалентные полюсы непрерывной модели, исходя из соотношения z = exp(sTs). Оба вектора Wn и Z пустые, если период дискретности не указан.

Функция [Wn, Z, Р] = damp(sys) дополнительно возвращает вектор Р, содержащий полюсы lti-модели sys, которые соответствуют применению функции Р = pole(sys).

Пример:

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

» H=tf([2 5 1],[1 2 17 10 5])

Transfer function:

2 s^2 + 5 s + 1

---------------------------------------

s^4 + 2 s^3 + 17 s^2 + 10 s + 5

» damp(H)

Eigenvalue

Damping

Freq. (rad/s)

-3.02e-001 + 4.74e-001i

5.37e-001

5.62e-001

-3.02e-001

- 4.74e-001i

5.37e-001

5.62e-001

-6.98e-001

+ 3.92e+000i

1.75e-001

3.98e+000

-6.98e-001

- 3.92e+000i

1.75e-001

3.98e+000

dcgain

Расчет коэффициента передачи

 

 

Синтаксис:

k = dcgain(sys)

Функция k = dcgain(sys) вычисляет коэффициент передачи k для ltiмодели sys.

Непрерывные системы

Для tf-моделей коэффициент передачи вычисляется как значение передаточной функции при s = 0.

Для ss-моделей с матрицами А, В, С, D этот коэффициент определяется из соотношения k = D – СА-1В.

Дискретные системы

Для tf-моделей коэффициент передачи вычисляется как значение дискретной передаточной функции при z = 1.

Для ss-моделей с матрицами А, В, С, D этот коэффициент определяется из соотношения k = С(I - А)-1В + D.

Коэффициент передачи для lti-модели с интегратором равен бесконечности.

pzmap Вычисление полюсов и нулей системы

Синтаксис: pzmap(sys)

[p, z] = pzmap(sys)

Команда pzmap(sys) указывает расположение полюсов и нулей непрерывной или дискретной lti-модели sys на комплексной плоскости. Для одномерной lti-модели выводятся полюсы и нули ее передаточной функции; для многомерной lti-модели - полюсы и передаточные нули. Полюсы изображаются маркером х, а нули - о.

Функция [р, z] = pzmap(sys) возвращает полюсы и передаточные нули в виде векторов-столбцов р и z. План расположения нулей и полюсов на экран не выводится.

Для наглядности можно построить линии постоянного уровня для коэффициента демпфирования и собственной частоты на плоскости s или z, используя команды sgrid или zgrid.

sgrid, zgrid

Построение сеток постоянного уровня

 

 

Синтаксис:

 

sgrid

zgrid

sgrid(z, wn)

zgrid(z, wn)

Команды sgrid и zgrid строят сетки постоянных коэффициентов демпфирования от 0 до 1 с шагом 0.1 и собственных частот от 0 до 10 рад/с с шагом 1 рад/с на плоскостях s и z, соответственно.

Функции sgrid(z, wn) и zgrid(z, wn) строят сетки постоянных коэффициентов демпфирования и собственных для значений, указанных в векторах z и wn.

Функция zgrid([ ], [ ]) строит окружность единичного радиуса.

Замечание:

Если текущая s или z плоскость содержит расположение нулей и полюсов или график корневого годографа, то команда sgrid строит сетку координат поверх графика.

Пример: построить на s и z плоскости сетки постоянных коэффициентов демпфирования и собственных частот:

»subplot(1, 2, 1),sgrid

»subplot(1, 2, 2),zgrid

20

 

 

 

 

1

 

 

 

 

10

 

 

 

 

0.5

 

 

 

 

0

 

 

 

 

0

 

 

 

 

-10

 

 

 

 

-0.5

 

 

 

 

-20

 

 

 

 

-1

 

 

 

 

-20

-15

-10

-5

0

-1

-0.5

0

0.5

1

bode

Построение логарифмических частотных характеристик

 

 

Синтаксис: bode(sys) bode(sys, w)

bode(sys1, sys2, …, sysN) bode(sys1, sys2, …, sysN, w)

bode(sys1, ‘<тип линии1>’, …, sysN, ‘<тип линииN>’)

[mag, phase, w] = bode(sys)

Группа команд и функций bode предназначена для расчета амплитудных и фазовых логарифмических частотных характеристик (диаграмм Боде) для ltiмоделей. Команды bode строят на экране графики логарифмических частотных характеристик. Функция bode выполняет только расчет характеристик, но графиков не выводит. Логарифмические частотные характеристики применяются при анализе таких свойств систем, как запас устойчивости по фазе и амплитуде, коэффициент передачи, ширина полосы пропускания, реакция системы на возмущения.

Команда bode(sys) строит на экране графики логарифмических частотных характеристик для lti-модели sys. Эта модель может быть непрерывной или дискретной, одномерной или многомерной. В случае многомерной модели функция bode строит множество логарифмических частотных характеристик для каждого канала системы от входа к выходу. Диапазон частот определяется автоматически по значениям нулей и полюсов передаточной функции системы.

Команда bode(sys, w) строит логарифмические частотные характеристики в заданном диапазоне частот. Этот диапазон должен быть задан массивом ячеек w = {wmin, wmax}. Для построения логарифмических частотных характеристик на заданных частотах создается вектор значений частот w. Для создания логарифмической сетки следует применить команду logspace. Единица измерения частоты - рад/с.

Команды bode(sysl, sys2,..., sysN), bode(sysl, sys2,..., sysN, w) позволяют построить частотные характеристики для нескольких lti-моделей на одном