Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Пакеты расширения MATLAB. Control System Toolbox и Robust Control Toolbox
.pdf
Глава 3. Функции и команды Control System Toolbox 171
Первая команда вычерчивает сетку коэффициентов демпфирования от 0 до 1 с шагом 0.1 и сетку собственных частот от 0 до
10 рад/с с шагом 1 рад/с. Сетка может быть нанесена поверх графика расположения нулей / полюсов или графика корневого годографа. Команда sgrid(z, wn) вычерчивает такую же сетку для значений коэффициента демпфирования и собственных частот, указанных в векторах z è w
соответственно.
n
3.7.11. zgrid. Команда имеет синтаксис:
zgrid
zgrid(z, wn).
Команда выполняет то же самое, что и предыдущая команда,
но в плоскости z. Собственные частоты вычисляются от 0 до π с
шагом π/10.
3.7.12. esort. Команда записывает полюсы непрерывной сис-
темы в порядке, определяемом величиной их вещественной части.
Синтаксис:
s = esort(p).
Сначала записываются неустойчивые полюсы, а затем остальные в порядке уменьшения значения их вещественных частей.
3.7.13. dsort. Команда записывает полюсы дискретной систе-
мы в порядке уменьшения их абсолютных величин. Синтаксис:
s = dsort(p).
Сначала записываются неустойчивые полюсы.
3.7.14. covar. Команда вычисляет ковариационную матрицу
системы, возбуждаемой нормально распределенным белым шумом
интенсивностью W. Синтаксис:
[P,Q] = covar(sys,W).
Здесь P — ковариационная матрица выхода системы:
P = M(yy
T
),
à Q — ковариационная матрица состояний системы:
Q = M(xx
T
).
Команда применима как к непрерывным, так и к дискретным
системам.

172 Глава 3. Функции и команды Control System Toolbox
3.8. Соединение систем
3.8.1. append, series, parallel, feedback, lft, augstate,
connect. Эти команды рассмотрены подробно в разделе 1.4. Там
же приведен ряд примеров их использования. Многочисленные
примеры применения этих команд даны также в гл. 2.
3.8.2. îrd2. Формируется непрерывная система второго по-
рядка. Синтаксис:
[A, B, C, D] = ord2(wn, z)
[num, den] = ord2(wn, z).
Первая команда создает описание в фазовом пространстве
системы второго порядка с заданными собственной частотой
ω
(wn) и коэффициентом демпфирования ζ(z):
n
Fs
() .=
22
ss
Вторая команда формирует числитель и знаменатель. Для создания системы надо использовать команды ss èëè tf соответственно.
1
ζω ω
++
2
nn
3.9. Временные характеристики
3.9.1. step. Вычисляется реакция системы (систем) на единич-
ное ступенчатое воздействие. Синтаксис:
step(sys)
step(sys, t)
step(sys1, sys2,..., sysN)
step(sys1, sys2,..., sysN,t)
step(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN')
[y,t,x] = step(sys).
Команды выполняются для непрерывных и дискретных систем, предполагая нулевые начальные значения. Все команды,
кроме последней, изображают переходный процесс на экране.
В случае MIMO систем выдается набор переходных процессов для
каждого входного и выходного каналов. В первой команде длительность переходного процесса определяется автоматически. Для
второй команды можно либо задать конечное время t = T
кундах), либо вектор равномерно распределенных моментов вре-
(â ñå-
f

Глава 3. Функции и команды Control System Toolbox 173
мени в форме t = 0:dt:Tf. Для дискретной системы dt должно
соответствовать периоду квантования.
Следующие три команды используются для одновременного
показа переходных процессов в нескольких системах, причем
для каждой из них можно задать свой способ изображения в соответствии с обозначениями, принятыми в системе MATLAB
[Л.3, стр. 264]. Последнее относится также и к другим графическим командам. Все системы должны иметь одинаковое число
входов и выходов. Последняя команда может использоваться в
виде [y, t] = step(sys), [y, t, x] = step(sys) (только для систе-
ìû SS), y = step(sys, t). Здесь y — вектор реакции выхода в моменты, определяемые вектором t,àx — вектор траекторий фазовых координат. Графики не изображаются. Для системы с одним
входом y имеет столько строк, сколько и вектор t, и столько
столбцов, сколько выходов имеет система. Для системы со многими входами создается трехмерный массив, и y(:,:,j) дает реакцию
на единичный толчок, воздействующий на j-тый входной канал.
Примеры применения команды имеются почти во всех программах, приведенных в главах1и2.
3.9.2. impulse. Вычисляется реакция системы (систем) на еди-
ничное импульсное воздействие. Синтаксис:
impulse(sys)
impulse(sys, t)
impulse(sys1, sys2,..., sysN)
impulse(sys1, sys2,..., sysN, t)
impulse(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN')
[y,t,x] = impulse(sys).
Смысл этих команд такой же, как и аналогичных команд
step. Более подробное описание дано в разделе 2.1.7. Примеры
применения имеются в программах (П. 1.1.6), (П. 1.1.7), (П. 2.2.1).
3.9.3. lsim. Моделируется реакция системы (систем) на произ-
вольный входной сигнал. Синтаксис:
lsim(sys, u, t)
lsim(sys, u, t, x0)
lsim(sys, u, t, x0, 'zoh')
lsim(sys, u, t, x0, 'foh')
lsim(sys1, sys2,..., sysN, u, t)
lsim(sys1, sys2,..., sysN, u, t, x0)
lsim(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN', u, t)
[y, t, x] = lsim(sys, u, t, x0).

174 Глава 3. Функции и команды Control System Toolbox
Команда применяется как к непрерывным, так и к дискретным системам.. В командах без левосторонних аргументов процессы изображаются на экране. Вектор t = 0:dt:T
задает равномер-
f
ные промежутки времени, а матрица u должна иметь столько же
строк, сколько вектор t (length(t)), и столько же столбцов, сколько
входов имеет система. Каждая строка u(i,:) задает значение входа в
момент t(i). Для дискретных систем дискретность u должна быть
такой же, как и дискретность системы, и в этом случае задание t
является излишним и может быть опущено. Команда lsim(sys, u,
t, x0) для системы SS позволяет задать ненулевые начальные условия. Команды lsim(sys, u, t, x0, 'zoh') è lsim(sys, u, t, x0, 'foh')
определяют в явном виде, как входные величины интерполируются между временами выборки (фиксатор нулевого порядка или линейная интерполяция). Следующие три команды изображают реакции нескольких систем на один и тот же входной сигнал на одном графике.
Команды с левосторонним аргументом могут иметь вид:
[y, t] = lsim(sys, u, t)
[y, t, x] = lsim(sys, u, t)
[y, t, x] = lsim(sys, u, t, x0).
При этом график не вычерчивается, а выходные реакции запоминаются в рабочей области, как и для двух предыдущих команд. Пример применения команды см. программы (П. 2.2.2),
(П. 2.10.1).
3.9.4. gensig. Создаются входные сигналы для выполнения
команды lsim. Синтаксис:
[u, t] = gensig(type, tau)
[u, t] = gensig(type, tau, Tf, Ts).
Первая команда создает скалярный сигнал u вида «type» и с
периодом tau (в сек.). Имеются следующие виды сигналов: 'sin' —
синусоида; 'square' — прямоугольные колебания; 'pulse' — периодически повторяющиеся импульсы. Команда возвращает вектор t
моментов выборки и вектор u значений сигнала в эти моменты.
Все генерируемые сигналы имеют единичную амплитуду. Вторая
команда дополнительно задает время действия сигнала T
вал между моментами выборки T
. Пример применения команды
s
и интер-
f
см. программы (П. 2.2.3), (П. 2.10.1).
3.9.5. initial. Рассчитывается переходный процесс для системы
òèïà SS, вызванный ненулевыми начальными условиями. Синтаксис:

Глава 3. Функции и команды Control System Toolbox 175
initial(sys, x0)
initial(sys, x0, t)
initial(sys1, sys2,...,sysN, x0)
initial(sys1, sys2,...,sysN, x0, t)
initial(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN', x0)
[y, t, x] = initial(sys, x0).
Команда применима как к непрерывным, так и дискретным
системам, к SISO и MIMO системам. Команды без левостороннего аргумента изображают переходный процесс на экране. В первой
команде длительность процесса определяется автоматически. Во
второй команде можно задать либо t = T
, ëèáî t = 0:dt:Tf, êàê è â
f
предыдущих командах. Следующие три команды изображают переходные процессы для нескольких систем на одном рис.
Последняя команда может иметь два вида: [y, t, x] =
initial(sys, x0) è [y, t, x] = initial(sys, x0, t). При этом возвращаются реакция выхода y, временной вектор t и траектории вектора
состояния x. Графики не вычерчиваются. Массив y имеет число
строк, равное длине вектора t, и столько столбцов, сколько выходов. Аналогично вектор x имеет столько столбцов, сколько фазовых координат имеет система.
3.10. Частотные характеристики
3.10.1. bode. Рассчитывается АФХ системы — диаграмма
Боде. Синтаксис:
bode(sys)
bode(sys,w)
bode(sys1,sys2,...,sysN)
bode(sys1,sys2,...,sysN,w)
bode(sys1,'PlotStyle1',...,sysN,'PlotStyleN')
[mag,phase,w] = bode(sys).
Команда вычисляет и строит АЧХ и ФЧХ системы. В первой
команде частоты, для которых вычисляются характеристики, определяются автоматически, а во второй они задаются вектором w,
например, вида w = logspace(d1,d2,n), где вектор w содержит n равноотстоящих в логарифмическом масштабе точек, покрывающих
диапазон от 10
d1
до 10d2. Амплитуда выражается в дБ, а фаза в градусах. Система может быть непрерывной или дискретной, SISO
или MIMO. В последнем случае вычисляется массив характеристик, каждая для своего канала ввода/вывода.

176 Глава 3. Функции и команды Control System Toolbox
Три следующие команды позволяют вычертить АФХ нескольких систем на одном рис. Команды с левосторонним аргументом
[mag,phase,w] = bode(sys) èëè [mag,phase] = bode(sys,w) сохраняют значения АФХ в рабочей области.
Более подробно см. в разделе 2.1.1, программы (П. 1.5.3), (П.
2.1), (Ï. 2.13.2), (Ï. 2.14).
3.10.2. bodemag. Вычисляется только АЧХ. Синтаксис:
bodemag(sys)
bodemag(sys,{wmin,wmax})
bodemag(sys,w)
bodemag(sys1,sys2,...,sysN,w)
bodemag(sys1,'PlotStyle1',...,sysN,'PlotStyleN').
Смысл команд такой же, как и для команды bode. Примеры
использования см. программы (П. 2.1.3), (П. 2.1.4), (П. 2.12.1).
3.10.3. margin. Вычисляются запасы по амплитуде и по фазе и
соответствующие критические частоты для SISO разомкнутых систем. Синтаксис:
margin(sys)
[Gm,Pm,Wcg,Wcp] = margin(sys).
Подробное пояснение см. раздел 2.1.1. Первая команда рисует
диаграмму Боде и отмечает на ней точки, соответствующие этим
критическим частотам. Команда [Gm,Pm,Wcg,Wcp] =
margin(sys) вычисляет запас по амплитуде G
ствующие критические частоты ω
è ωcp. При наличии несколь-
cg
, ôàçå Pmи соответ-
m
ких критических частот команда возвращает наименьшие значения. Пример применения см. (П. 2.1.2).
3.10.4. allmargin. Вычисляются все критические частоты и со-
ответствующие запасы устойчивости. Синтаксис:
S = allmargin(sys).
Команда рассчитывает запасы по усилению, фазе и по величине запаздывания и соответствующие критические частоты для
SISO разомкнутой системы. Выход S — структура со следующими
полями: критические частоты GMF для коэффициента усиления,
соответствующие фазовому сдвигу в −180°; запасы по усилению
GM; частоты среза PMF в град; запасы по фазе PM при этих частотах; критические частоты DMF для величины запаздывания; DM —
запас по величине запаздывания; устойчивость: 1 для устойчивой
системы, 0 для неустойчивой.

Глава 3. Функции и команды Control System Toolbox 177
Рассмотрим пример. Пусть система имеет передаточную
функцию
.
Fs
()
ss s
01
()( )
++
1110
.=
Выполним команды:
t2 =1; t3 =10; K = 0.1;
den = [t2*t3 t2+t3 1 0]
sys = tf(K, den)
S =allmargin(sys) (Ï. 3.3)
Получим:
S=GMFrequency: 0.3162
GainMargin: 11.0000
PMFrequency: 0.0784
PhaseMargin: 47.4040
DMFrequency: 0.0784
DelayMargin: 10.5475
Stable: 1
Поясним, как рассчитывается запас по величине запаздывания. При введении запаздывания τ амплитудная характеристика
не изменяется, а фаза сдвигается на величину ωτ. Имеем
DM = PM (ðàä)/PMF = 0.827/0.0784 = 10.55.
3.10.5. freqresp. Рассчитывается реакция системы на гармо-
ническое воздействие заданной частоты. Синтаксис:
H = freqresp(sys,w).
В качестве примера вычислим частотные характеристики системы, созданной программой (П. 3.3), при частотах 0.01, 0.1, 1.
Выполним команды
w = [0.01 0.1 1]
H = freqresp(sys,w) (Ï. 3.3.1)
Получим
H(:,:,1) = -1.0890 -9.8901i
H(:,:,2) = -0.5446 -0.4455i
H(:,:,3) = -0.0054 + 0.0045i.
Для MIMO систем H(:,:,k) представляет собой матрицу такого
же вида, как и матрица передаточных функций системы. В дискретном случае заданные частоты отображаются на окружность

178 Глава 3. Функции и команды Control System Toolbox
единичного радиуса с помощью соотношения z = exp(j(Ts), после
чего передаточная функция оценивается при этих значениях z.
Если значение периода дискретности не определено, принимается
T
= 1.
s
3.10.6. evalfr. Команда оценивает частотную характеристику
на одной частоте (возможно, комплексной) и является упрощенной версией предыдущей команды. Синтаксис:
frsp = evalfr(sys,f).
3.10.7. sigma. Вычисляются и строятся графики сингулярных
величин. Синтаксис:
sigma(sys)
sigma(sys, w)
sigma(sys, w, type)
sigma(sys1, sys2,...,sysN)
sigma(sys1, sys2,...,sysN, w)
sigma(sys1, sys2,...,sysN, w, type)
sigma(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN')
[sv, w] = sigma(sys)
sv = sigma(sys, w).
Определение сингулярных величин см. раздел 2.1.2. Для FRD
моделей сингулярные величины вычисляются только для заданных частот. Для непрерывных систем с передаточной функцией
F(s) сингулярные величины вычисляются в функции частоты для
F(jω). Для дискретных систем с передаточной функцией F(z) сингулярные величины вычисляются для F(e
π/T
. Для SISO систем команда sigma равноценна команде
s
jωTs
) для частот от 0 до
bodemag. В первом варианте команды частоты выбираются автоматически, а во втором частотный диапазон указывается вектором
w = {ω
min,ωmax
} èëè w = logspace(d1, d2 ,n). Все частоты указывают-
ñÿ â ðàä/ñ.
Команда sigma(sys, [ ], type) èëè sigma(sys, w, type) вычерчивает следующие модифицированные сингулярные величины:
-1
«type» = 1 — сингулярные величины F
величины I + F, «type» = 3 — сингулярные величины I + F
, «type» = 2 — сингулярные
-1
. Ýòè
опции возможны только для квадратных матриц F, т. е. для систем
с одинаковым числом входов и выходов. Последующие 4 команды
позволяют на одном и том же рис. показать сингулярные величины нескольких систем, причем они могут иметь различное число
входов и выходов и быть как непрерывными, так и дискретными.
Возможно для каждой системы задать свой способ изображения

Глава 3. Функции и команды Control System Toolbox 179
линий в соответствии с обозначениями, принятыми в MATLAB
[Л.3, стр. 264].
Команды [sv, w] = sigma(sys) è sv = sigma(sys, w) помещают
вычисленные сингулярные величины sv в рабочую область. Для
системы с N
входами и Nyвыходами массив sv имеет min(Nu, Ny)
u
строк и столько столбцов, сколько имеется точек частоты. Сингулярные величины на частоте ω(k) даются как sv(:, k).
Примеры применения команды см. (П. 2.12) (П. 2.13),
(П. 2.14), (П. 2.16).
3.10.8. nichols. Рассчитывается частотная характеристика сис-
темы и изображается в координатах Никольса. Синтаксис:
nichols(sys)
nichols(sys, w)
nichols(sys1, sys2,...,sysN)
nichols(sys1, sys2,...,sysN, w)
nichols(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN')
[mag, phase, w] = nichols(sys)
[mag, phase] = nichols(sys, w).
Дополнительная команда grid наносит на график диаграмму
Никольса. Описание см. в разделе 2.1.4. Система может быть непрерывной или дискретной, SISO или MIMO. В последнем случае
создается массив характеристик, каждый элемент массива для своего канала вход-выход. В командах без указания ω частотный диапазон определяется автоматически. Явно частотный диапазон указывается так же, как и для предыдущих команд (см. например,
sigma). Возможно также, как и для других команд этого раздела,
показать несколько графиков Никольса на одном рисунке.
Команды с левосторонним аргументом вычисляют и запоминают в рабочей области амплитуду и фазу частотной характеристики аналогично тому, как это выполняется для команды bode.
Пример диаграммы Никольса см. рис. 2.8.
3.10.9. nyquist. Вычисляется и изображается частотная харак-
теристика Найквиста. Синтаксис:
nyquist(sys)
nyquist(sys, w)
nyquist(sys1, sys2,...,sysN)
nyquist(sys1, sys2,...,sysN, w)
nyquist(sys1, 'PlotStyle1',...,sysN, 'PlotStyleN')
[re, im, w] = nyquist(sys)
[re, im] = nyquist(sys, w).

180 Глава 3. Функции и команды Control System Toolbox
Дополнительная команда grid наносит на график сетку Найквиста. Описание см. в разделе 2.1.3. Система может быть непрерывной или дискретной, SISO или MIMO. В последнем случае
создается массив характеристик, каждый элемент массива для своего канала вход-выход. В командах без указания ω частотный диапазон определяется автоматически. Явно частотный диапазон указывается так же, как и для предыдущих команд (см. например,
sigma). Возможно также, как и для других команд этого раздела,
показать несколько графиков Найквиста на одном рисунке.
Команды с левосторонним аргументом вычисляют и запоминают в рабочей области вещественную и мнимую части частотной
характеристики. Пример диаграммы Найквиста см. рис. 2.6.
3.10.10. interp. Интерполирует FRD модель между заданными
частотами. Синтаксис:
isys = interp(sys,freqs).
Команда использует линейную интерполяцию и возвращает
FRD модель isys, содержащую интерполированные данные в новом частотном диапазоне, заданном вектором freqs. Экстраполяция не допускается.
3.11. Назначение полюсов
3.11.1. acker, place. Вычисляется такая матрица К, что полю-
сы системы À -BK равны значениям, заданным вектором ð. Синтаксис:
Ê = acker(A, B, p)
K = place(A, B, p).
Подробности и примеры применения см. разделы 2.2.3, 2.2.4,
программы (П. 2.6), (П. 2.7), (П. 2.8), (П. 2.9), (П. 2.10). Обратим
внимание, что эти команды могут быть использованы для определения матрицы усиления наблюдателя L, если использовать транспонированную À матрицу и подставить Ñ
Ò
вместо B, тогда
L = acker(a',c',p)' èëè L = place(a',c',p)'.
3.11.2. estim. Формируется наблюдатель состояния системы с
данным коэффициентом усиления наблюдателя L. Синтаксис:
est = estim(sys, L)
est = estim(sys, L, sensors, known).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
