Источник: Ковальов П.С., Толочко О.І. Використання засобів символьної математики при дискретній апроксимації неперервних систем // Вісник кафедри «Електротехніка» за підсумками наукової діяльності студентів. – Донецьк, ДонНТУ, 2008 – 170 с., с. 56-57.
Синтез дискретних пристроїв керування неперервними системами виконують одним з наступних шляхів:
• на основі неперервного об‘єкта регулювання синтезують неперервні пристрої керування, а потім перетворюють їх у дискретну форму (метод неперервних моделей);
• будують дискретні моделі об‘єкта регулювання і на їх основі синтезують дискретні пристрої керування.
Отже, в обох випадках треба вміти знаходити дискретні апроксимації аналогових передавальних функцій. Поставлену задачу можна виконати такими засобами:
Процес дискретизації неперервних систем, які описуються диференційними рівняннями високого порядку, є досить складним і потребує використання ЕОМ з сучасним програмним забезпеченням. Найбільш зручною та універсальною для вирішення задач аналізу та синтезу систем автоматичного керування є пакет MATLAB.
В даній роботі ставиться задача, показати, як можна знаходити дискретні апроксимації неперервних систем автоматичного керування в середовищі цього пакета в аналітичному вигляді.
У поширення Symbolic Toolbox пакета MATLAB входять функції, що виконують пряме (laplace) та зворотне (ilaplace) перетворення Лапласа, а також пряме (ztrans) та інверсне (ztrans) Z-перетворення. За допомогою цих та деяких допоміжних символьних функцій можна знайти аналітичні вирази для дискретних моделей неперервних систем та навпаки. Наприклад, програма, яка знаходить дискретну модель пропорційно-інтегральної ланки з екстраполяцією нульового порядку, може мати такий вигляд:
syms t s z T Ti Ts n %Оголошення символьних змінних
w=(T*s+1)/(Ti*s) %Неперервна ПФ ПІ-ланки
h=ilaplace(w/s) %Неперервна перехідна функція ПІ-ланки
hd=subs(h,t,n*Ts) %Дискретна перехідна функція ПІ-ланки
wd=(z-1)/z*ztrans(hd) %Дискретна ПФ ПІ-ланки
disp('Wd(z)='), pretty(wd) %Виведення ДПФ на екран
%Спрощення отриманого аналітичного виразу:
[num,den]=numden(wd) %Розкладення ДПФ на чисельник і знаменник
wd=num/den %Формування ДПФ із чисельника і знаменника
disp('Wd(z)='), pretty(wd)
Нижче приведено результат виконання цієї програми:
w = (T*s+1)/Ti/s
h = 1/Ti*(t+T)
hd = 1/Ti*(n*Ts+T)
wd = (z-1)/z/Ti*(Ts*z/(z-1)^2+T*z/(z-1))
Wd(z)=
/ Ts z T z \
(z - 1) |-------- + ---------|
| 2 z - 1|
\ (z - 1) /
----------------------------
z Ti
num = (z-1)*z*(Ts+T*z-T)
den = z*Ti*(z-1)^2
wd = 1/(z-1)*(Ts+T*z-T)/Ti
Wd(z)=
Ts + T z - T
---------------
(z - 1) Ti
Для застосування підстановочних методів перетворення слід використовувати функцію subs, наприклад, підстановку Тастіна можна запрограмувати у такий спосіб:
Wd=subs(w,s,2/Ts*(z-1)/(z+1))
Символьне перетворення може бути часткою чисельного алгоритму.
Оскільки в пакеті MATLAB відсутні перетворення методами Ейлера, то приведемо приклад функції, що виконує будь-яке із підстановочних перетворень з використанням як засобів символьної математики, так і чисельні операції:
function sysd=c2d_podst(sys,Ts,metod)
[numa,dena]=tfdata(sys); %Розкладення ПФ на чисельник
numa=numa{1}, dena=dena{1}; %і знаменник
syms t s z T %Опис символьних змінних
if length(numa)==1, Ha=numa; %Перетворення вектора коеф-тів
else Ha=poly2sym(numa,s); end %полінома у символьну змінну
w=Нa/poly2sym(dena,s); %Символьна ПФ
switch metod
case 'Euler', wd=subs(w,s,(z-1)/T); %Підстановка Ейлера
case 'EulerM', wd=subs(w,s,(z-1)/T/z); %Мод.підстановка Ейлера
case 'Tust', wd=subs(w,s,2/T*(z-1)/(z+1)); %Підстановка Тастіна
end
wd
wd=expand(wd); %Спрощення дискретних ПФ
wd=collect(wd,z); wd=simple(wd); wd=simplify(wd);
[num,den]=numden(wd); %Розкладення ПФ на чисельник і знаменник
num=collect(num,z); %Приведення подібних у чисельнику
den=collect(den,z); %Приведення подібних у знаменнику
T=Ts; %Чисельне значення періоду переривання
numc=eval(num); denc=eval(den); %Поліноми з чисельними коеф.
if findstr(char(numc),'z')==[], H=numc;
else H=sym2poly(numc); end
G=sym2poly(denc); %H=sym2poly(numc); %Чисельні поліноми
H=H/G(1); G=G/G(1); %Чисельні ПФ
sysd=tf(H,G,T); %Дискретний об‘єкт
Наведені приклади дозволять прискорити процес дискретизації неперервних динамічних об‘єктів та підвищити його надійність і достовірність за рахунок зменшення вірогідності допущення помилок.