Моделирование импульсной сар с помощью пакета
РАСШИРЕНИЯ SYMBOLIC MATH TOOLBOX
Пакет расширения Symbolic Math Toolbox позволяет практически полностью автоматизировать построение динамических характеристик импульсных САР. Символьный процессор освобождает пользователя от всех вычислений и преобразований функций. На долю последнего остается только ввод исходных данных (ПФ разомкнутой САР) и команд в той же последовательности, в которой была решена задача из примера предыдущего раздела. Однако при этом автоматизация процесса моделирования нисколько не уменьшает количества основных операций, а позволяет только выполнить их автоматически. В связи с этим SCRIPT названной задачи отличается сравнительно большим объемом. Рассмотрение по частям позволяет облегчить его изучение.
Условно к первой части можно отнести "включение" символьного процессора, ввод ПФ разомкнутой САР Wнч(s), обратное преобразование Лапласа названной ПФ для отыскания её оригинала y[nT] и прямое z-преобразование последней
SCRIPT 1:
>> syms s z;
>> W=1/(s^2*(s+1));
>> y=ilaplace(W);
>> Z=ztrans(y)
Z =
-z/(z-1)+z/exp(-1)/(z/exp(-1)-1)+z/(z-1)^2
>> pretty(Z)
z z z
- ----- + --------------------- + --------
z - 1 / z \ 2
exp(-1) |--------- - 1| (z - 1)
\exp(-1) /
Последняя команда pretty придает выражению, записанному в одну строку, “естественный” вид дробно-рационального выражения. В данном случае это дает возможность сравнить полученный результат с выражением (2). Очевидно, что exp(-1) означает е-1.
Далее определяют z-передаточную функции разомкнутой САР согласно выражению (3). Для упрощения результата произведения использована функция simplify.
SCRIPT 1(продолжение):
>> Wz=Z*(z-1)/z;
>> Wz=simplify(Wz)
Wz =
(z*exp(-1)-2*exp(-1)+1)/(z-1)/(z-exp(-1))
>> pretty(Wz)
z exp(-1) - 2 exp(-1) + 1
-------------------------
(z - 1) (z - exp(-1))
Если раскрыть скобки и привести подобные члены, можно убедиться в том, что полученный оператор WZ совпадает с операторным выражением (4).
Затем по формуле замыкания (5) определяют основную z-передаточная функция системы управления.
SCRIPT 1 (продолжение):
>> Fiz=Wz/(1+Wz);
>> Fiz=simplify(Fiz)
Fiz =
(z*exp(-1)-2*exp(-1)+1)/(-exp(-1)+1+z^2-z)
Даже без использования функции pretty легко увидеть, что полученное выражение совпадает с оператором (5).
Далее по формуле (6) находят z-изображение переходной функции.
SCRIPT 1 (продолжение):
>> Yz=Fiz*z/(z-1);
Результат может быть выведен для просмотра или для сравнения с выражением (6). В этом случае необходимо использовать функции simplify и pretty.
Разложение полученного z-оператора Y(z) на сумму простых дробей в виде (8) осуществляют с помощью функции residuez(n,d). Синтаксис этой функции требует в качестве аргументов коэффициенты полиномов числителя (numerator) и знаменателя (denomenator) z-оператора Y(z). При этом
Названные коэффициенты определяют с помощью функций numden и sym2poly. Таким образом, коэффициенты разложения rm и pm находят следующим образом.
SCRIPT 1 (продолжение):
>> [n,d]=numden(Yz);
>> n=sym2poly(n)
n =
0.3679 0.2642 0
>> d=sym2poly(d)
d =
1.0000 -2.0000 1.6321 -0.6321
>> [r,p,k]=residuez(n,d)
r =
1.0000
-0.3161 - 0.2556i
-0.3161 + 0.2556i
p =
1.0000
0.5000 + 0.6182i
0.5000 - 0.6182i
k =
[]
Последнее равенство k=[] oзначает, что эта матрица пустая. Следовательно, при m=3 согласно формуле (8) сумма простых дробей имеет вид
Последнее выражение вводят вручную в Symbolic Math Toolbox. Для облегчения этой операции допустимо коэффициенты округлить.
SCRIPT 1 (продолжение):
>>Yz=1/(1-z^-1)-(0.32+0.26*i)/(1-(0.5+0.62*i)*z^-1)+(-0.32+0.26*i)/(1-(0.5- 0.62*i)*z^-1);
Искомый оригинал решетчатой функции (переходную функцию) y[nT] получают как результат обратного z-преобразования изображения Y(z).
SCRIPT 1 (продолжение):
>> yn=iztrans(Yz)
yn =
1-8/25*(1/2+31/50*i)^n-13/50*i*(1/2+31/50*i)^n-8/25*(1/2-31/50*i)^n+13/50*i*(1/2-31/50*i)^n;
Наконец, переходную характеристику импульсной САР строят с помощью функции stairs. При этом шаг аргумента принимают равным шагу квантования по времени (n=T=1). Кроме того, выражение решетчатой функции y[nT] вводят в командную строку MATLAB с использованием оператора "." (точка). Последнее необходимо в связи с тем, что "дискретное" время nT при расчете образует массив чисел (n=0,1,2,…,25).
SCRIPT 1 (окончание):
>> n=0:1:25;
>>yn=1-8/25.*(1/2+31/50*i).^n-13/50*i.*(1/2+31/50*i).^n-8/25.*(1/2-31/50*i).^n+13/50*i.*(1/2-31/50*i).^n;
>> stairs(n,yn);grid
Построенная таким образом переходная характеристика импульсной САР изображена на рисунке 5.
Рисунок 5 – Переходная характеристика импульсной САР
Функция stairs аналогична функции plot. В библиотеке "графических" функций MATLAB есть также функция stem, с помощью которой можно построить решетчатую функцию y[nT]. Синтаксис функции stem не отличается от синтаксиса названных функций plot и stairs. Однако функции stem и stairs предназначены для изображения функций, квантованных по времени. Первая из названных функций выводит на экран решетчатую функцию y[nT], а вторая – также функцию y[nT] с экстраполяцией нулевого порядка.