Модели динамики
Модели динамики одни из наиболее применяемых. Рассмотрим некоторые из функций для работы с такими моделями.
Функция damp возвращает собственные частоты и коэффициенты демпфирования LTI-моделей:
[Wn,Z,P]=damp(sys)
Функция damp предназначена для расчета собственных чисел P, соответствующих им собственных частот Wn и коэффициентов демпфирования Z, соответствующих полюсам LTI-модели sys.
Функция dcgain возвращает статический коэффициент передачи LTI-модели:
k=dcgain(sys)
Функция pole возвращает вектор, элементами которого являются полюсы LTI-модели:
p=pole(sys)
Пример.
>> H=tf([1 -2.841 2.875 -1.004],[1 -2.417 2.003 -0.5488])
Transfer function:
S^3-2.841s^2+2.875s-1.004
--------------------------
S^3-2.417s^2+2.003s-0.5488
>> p=pole(H)
P=
0.9054+0.2924i
0.9054-0.2924i
0.6063
Функция pzmap возвращает карту нулей и полюсов:
pzmap(sys)
[p,z]=pzmap(sys)
В последней форме записи график не выводится а возвращаются векторы, элементы которых являются нулями и полюсами модели.
Пример.
>>pz=pzmap(H)
pz=
0.9054+0.2924i
0.9054-0.2924i
0.6063
Функция r=roots(c) вычисляет корни полиномов, коэффициенты которых хранятся в векторе c.
Пример.
>> p=[1 -6 -72 -27]; r=roots(p)
r=
12.1229
-5.7345
-0.3884
Функция zero возвращает вектор, элементами которого являются нули LTI-модели:
z=zero(sys)
[z,gain]=zero(sys)
В последней форме функция возвращает нули и обобщенный коэффициент передачи модели.
Пример.
>> [z,gain]=zero(H)
z=
0.9984+0.4388i
0.9984-0.4388i
0.8442
gain=1
Функция rlocus выполняет расчет и построение корневого годографа по известной LTI-модели разомкнутой одномерной модели системы sys:
rlocus(sys) rlocus(sys,k)
rlocus(sys1,sys2,…,sysN)
[r,k]=rlocus(sys) r= rlocus(sys,k)
Здесь sys – имя модели и k – начальное значение коэффициента усиления звена обратной связи. Возвращаемые значения:
график корневого годографа;
r – массив полюсов при изменении k от 0 до ∞;
k – соответствующий массив значений коэффициентов усиления.
Функция sgrid обеспечивает построение линий «сетки».
Пример. Построим корневой годограф системы с передаточной функцией
>> W=tf([2 5 1],[1 2 3]); rlocus(W); sgrid
Результат показан на рис. 1.
Рисунок 1 – Результат выполнения функций rlocus и sgrid
Моделирование временного отклика систем
В группу функций для расчета и построения временного отклика систем входят следующие функции.
Функция step рассчитывает и строит реакцию модели на единичную ступенчатую функцию, то есть возвращает переходную функцию системы:
step(sys) step(sys,t)
step(sys1,sys2,…,sysN) step(sys1,sys2,…,sysN,t)
step(sys1,’PlotStyle1’,…,sysN,’PlotStyleN’)
Для моделей, заданных в пространстве состояний, начальные условия принимаются нулевыми. Аргументы функции следующие:
sys,sys1,sys2,…,sysN – имена моделей, для которых строятся переходные функции(все модели должны иметь одинаковое число входов и выходов);
t – аргумент, задающий момент окончания моделирования – либо в форме t=Tfinal (в секундах), либо в форме t=0:dt:Tfinal. Для непрерывных моделей значение dt должно быть достаточно малым, чтобы учесть наиболее быстрые изменения переходного процесса;
’PlotStyle1’,’PlotStyle2’,…,’PlotStyleN’ – строковые переменные, задающие тили графиков (типы линий) при выводе нескольких графиков одновременно.
Возвращаемые величины - график (графики) переходных процессов.
Пример. Построим переходную характеристику для объекта с непрерывной передаточной функцией
>> sys=tf([1 0],[1 2 10]);
step(sys)
График данного процесса приведен на рис.2.
Рисунок 2 – Переходная характеристика исследуемого объекта
Функция impulse возвращает импульсную характеристику модели или нескольких моделей:
impulse(sys) impulse(sys,t)
impulse(sys1,sys2,…,sysN) impulse(sys1,sys2,…,sysN,t)
impulse(sys1,’PlotStyle1’,…,sysN,’PlotStyleN’)
Смысл аргументов и возвращаемых величин – как у предыдущей функции.
Пример. Для ранее заданной модели имеем (рис.3):
>> sys=tf([1 0],[1 2 10]);
impulse(sys)
Рисунок 3 – Импульсная характеристика исследуемого объекта
Функция lsim возвращает реакцию LTI-модели на произвольное входное воздействие:
lsim(sys,u,t)
lsim(sys1,sys2,…,sysN,u,t)
lsim(sys1,’PlotStyle1’,…,sysN,’PlotStyleN’,u,t)
Здесь t – вектор-строка моментов времени, u – вектор-строка значений входного сигнала, остальные аргументы - как у предыдущих функций данной группы.
Вместе с описанными функциями часто используются функции генерации тестовых временных зависимостей. Так, функция Так, функция gensig генерирует скалярный сигнал заданного типа с заданным периодом:
[u,t]=gensig(type,tau)
[u,t]=gensig(type,tau,Tf,Ts)
Здесь:
type – строковая переменная, задающая тип генерируемого сигнала:
‘sin’ – синусоида;
‘square’ – периодический прямоугольный сигнал;
‘pulse’ – периодические импульсы.
Все генерируемые сигналы имеют единичную амплитуду;
Tau – период генерируемого сигнала (в секундах);
Tf – продолжительность сигнала, с;
Ts – период дискретности (в секундах) для генератора импульсов.
Пример. Найдем реакцию выше рассмотренного объекта на периодический прямоугольный сигнал с периодом 5 с, продолжительностью 30 с и периодом дискретизации 0,1 с.
Создадим указанный сигнал:
>> [u,t]=gensig(‘square’,5,30,0.1);
Отобразим теперь график сигнала (рис. 4)
>> plot(t,u);axis([0 30 -1 2])
Рисунок 4 – Пример использования функции gensig
Затем найдем реакцию объекта на сформированный сигнал:
>> W=tf([1 0],[1 2 10]);
>> lsim(W,u,t)
Результат показан на рис. 5.
Рисунок 5 – Реакция объекта на периодический прямоугольный сигнал
Функция stepfun возвращает сигнал типа «единичный скачок»:
stepfun(t,t0)
Здесь t – вектор-строка моментов времени и t0 – некоторый момент времени., в который происходит скачок.
