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

Пакеты расширения MATLAB. Control System Toolbox и Robust Control Toolbox

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Глава 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 — вектор реакции выхода в мо­менты, определяемые вектором tx — вектор траекторий фазо­вых координат. Графики не изображаются. Для системы с одним входом 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).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]