графике. Все модели должны иметь одинаковое количество входов и выходов, среди них могут быть как непрерывные, так и дискретные.
Команда bode(sysl, '<тип_линии1>',..., sysN, '< тип_линииN>')
позволяет задать цвет, тип и маркеры линий для характеристик каждой модели.
Функции [mag, phase, w] == bode(sys), [mag, phase] = bode(sys, w)
выполняют расчет амплитудных и фазовых частотных характеристик. Выходные аргументы mag и phase являются трехмерными массивами, последняя размерность которых - частота. Единицу измерения амплитудной характеристики можно преобразовать в децибелы (дБ) следующим образом: magdb = 20*logl0(mag); единица измерения фазы - град, единица измерения частоты - рад/с.
Аргументы:
Выходные аргументы mag и phase являются трехмерными массивами размера Nu Ny length(w):
для одномерных моделей массивы mag(1, 1, k) и phase(1, 1, k) определяют значения амплитудной и фазовой характеристик на частотах w(k);
для многомерных моделей массивы mag(i, j, k) и phase(i, j, k) определяют значения амплитудной и фазовой частотных характеристик для передаточных функций Нij от j-гo входа до i-гo выхода на частотах w(k).
Пример:
Построить логарифмические частотные характеристики для непрерывной lti-модели с одним входом и одним выходом.
g = tf([1 0.1 7.5],[1 0.12 9 0 0]); bode(g)
Перейдем от непрерывной модели к дискретной с периодом дискретности Ts = 0,5 с и построим на одном графике их частотные характеристики:
» gd=c2d(g,0.5)
Transfer function:
0.121 z^3 + 0.07256 z^2 + 0.06758 z + 0.1146
----------------------------------------------------------
z^4 - 2.138 z^3 + 2.218 z^2 - 2.021 z + 0.9418
Sampling time: 0.5
» bode(g,'k',gd,'k:')
Для непрерывных моделей функция bode рассчитывает частотные
характеристики для значений переменной передаточной функции s |
= j |
на |
|||||
мнимой |
оси. |
Рассматриваются только положительные значения . |
Для |
ss- |
|||
моделей |
частотная |
характеристика |
рассчитывается |
по |
формуле |
||
C j I |
A 1 B |
D . При расчетах матрицу |
A целесообразно привести к форме |
||||
Хессенберга для экономии машинного времени и повышения точности результата.
Для дискретных моделей частотная характеристика равна передаточной
функции |
при значении ее переменной на окружности |
единичного радиуса |
|
z e j Ts . |
Из-за периодичности частотной характеристики дискретной модели |
||
она рассчитывается только от нуля до частоты |
/Ts |
(частота Найквиста), |
|
т.е. для верхней половины единичной окружности. Если период дискретности Ts не определен, он принимается по умолчанию равным единице.
Предупреждение: если lti-модель имеет полюс на мнимой оси в случае непрерывной модели или на окружности единичного радиуса в случае дискретной модели, а вектор w содержит частоту, соответствующую этой точке, то амплитудная характеристика на этой частоте равна бесконечности, и в этом случае выдается предупреждающее сообщение (Singularity in freq. response due to jw-axis or unit circle pole).
margin |
Определение запасов устойчивости по фазе и модулю |
|
|
Синтаксис: margin(sys)
[Gm, Pm, Wcg, Wcp] = margin(sys)
[Gm, Pm, Wcg, Wcp] = margin(mag, phase, w)
Группа команд и функций margin вычисляет запасы устойчивости по фазе и модулю, а также соответствующие частоты для lti-моделей одномерных разомкнутых систем. Значения запасов устойчивости указывают, на сколько частотная характеристика разомкнутой системы удалена от критической точки
(-1 +j0).
Запас устойчивости по модулю - это значение амплитудной частотной характеристики на частоте, где фазовая частотная характеристика имеет значение -180 град.
Запас устойчивости по фазе - это разность между значением фазовой частотной характеристики и - 180 град на частоте среза.
Частота среза - это частота, где значение амплитудной частотной характеристики равно 1.0, или 0 дБ.
Как правило, запас устойчивости по фазе в пределах между 30 и 60 град обеспечивает приемлемый компромисс между устойчивостью и полосой пропускания.
Команда margin(sys) строит логарифмические частотные характеристики разомкнутой системы с указанием запасов ее устойчивости. Команда применима как к непрерывным, так и к дискретным lti-моделям.
Функция [Gm, Pm, Wcg, Wcp] = margin(sys) рассчитывает запас устойчивости по амплитуде Gm, запас устойчивости по фазе Pm и соответствующие частоты Wcg и Wcp для данной модели одномерной разомкнутой системы sys. Если имеется несколько точек пересечения амплитудной характеристики на уровне 0 дБ и фазовой - на уровне -180 град, то возвращаются наименьшие значения соответствующих запасов устойчивости.
Функция [Gm, Pm, Wcg, Wcp] = margin(mag, phase, w) возвращает значения запасов устойчивости, вычисленных по значениям массива точек (mag, phase, w), где mag - амплитуда, phase - фаза и w - частота. В этом случае при определении запасов устойчивости необходимо выполнить интерполяцию для определения соответствующих точек пересечения, что приводит к потере точности вычислений.
Пример:
Рассчитать запасы устойчивости по фазе и модулю, если задана следующая дискретная передаточная функция разомкнутой системы:
» hd=tf([0.04798 0.0464],[1 -1.81 0.9048],0.1) Transfer function:
0.04798 z + 0.0464
--------------------------
z^2 - 1.81 z + 0.9048
Sampling time: 0.1
»[Gm,Pm,Wcg,Wcp]=margin(hd);
»[20*log10(Gm),Pm,Wcg,Wcp]
ans =
6.2424 13.5712 5.4374 4.3544
Для графического отображения этих значений
» margin(hd)
impulse |
Импульсная переходная функция |
|
|
Синтаксис: impulse(sys) impulse(sys, t)
impulse(sys1, sys2,..., sysN) impulse(sys1, sys2, ...,sysN, t)
impulse(sys1, 'PlotStylel',..., sysN, PlotStyleN') impulse(sys1, 'PlotStylel',..., sysN, 'PlotStyleN', t) [y, t, x] = impulse(sys)
[y, t, x] = impulse(sys, t)
Команды и функции impulse рассчитывают и строят реакцию на импульсную функцию Дирака для непрерывной модели или на единичный импульс для дискретной модели. Эта реакция называется импульсной переходной или весовой функцией. Для моделей, заданных в пространстве состояний, начальные условия предполагаются нулевыми.
Команда impulse(sys) строит график импульсной переходной функции для lti-модели sys. Эта модель может быть непрерывной и дискретной, одномерной и многомерной. Для многомерной модели строится набор импульсных переходных функций по каждому каналу входа-выхода. Продолжительность моделирования определяется автоматически так, чтобы отобразить основные особенности переходных процессов.
Команда impulse(sys, t) позволяет явно указать продолжительность моделирования либо в виде момента окончания t = Tfinal в секундах, либо в виде вектора t = 0:dt:Tfinal. Для дискретных моделей значение dt должно соответствовать периоду дискретности; для непрерывных моделей значение dt должно быть достаточно малым, чтобы учесть наиболее быстрые изменения переходного процесса.
Команды impulse(sysl, sys2, ..., sysN), impulse(sysl, sys2, ..., sysN, t) по-
зволяют на одном графике построить импульсные переходные функции для нескольких lti-моделей sysl,..., sysN. Все модели должны иметь одинаковое число входов и выходов
Команды impulse(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN'), impulse(sysl, 'PlotStylel', ..., sysN, 'PlotStyleN', t) позволяют разметить импульсные пере-
ходные функции для нескольких lti-моделей sysl,..., sysN на одном графике различными стилями.
Функции [у, t, х] = impulse(sys), [у, t, x] = impulse(sys, t) вычисляют им-
пульсные переходные функции для вектора выходов у, вектор моментов времени t, значения переменных состояния х. Графики при этом не строятся.
Для одномерных моделей массив у имеет следующие размеры: число строк равно длине вектора t, а число столбцов - числу выходов. Аналогично массив х имеет число строк, равное длине вектора t, и число столбцов, равное количеству переменных состояния.
Для многомерных моделей со многими входами переходные функции для каждого канала размещаются в трехмерном массиве у размера (длина вектора 1) (число выходов) (число входов). При этом значение у(:, :, j) соответствует переходной функции по j-му входу. Аналогично трехмерный массив х имеет размер (длина вектора 1) (число переменных состояния) (число входов).
Пример:
Построить импульсную переходную функцию для модели 2-го порядка в пространстве состояний