ВИКОРИСТАННЯ ЗАСОБІВ СИМВОЛЬНОЇ МАТЕМАТИКИ ПРИ ДИСКРЕТНІЙ АПРОКСИМАЦІЇ НЕПЕРЕРВНИХ СИСТЕМ

Ковальов П.С., студент; Толочко О.І., проф., д.т.н.
Донецький національний технічний університет, м. Донецьк, Україна

Источник: Ковальов П.С., Толочко О.І. Використання засобів символьної математики при дискретній апроксимації неперервних систем // Вісник кафедри «Електротехніка» за підсумками наукової діяльності студентів. – Донецьк, ДонНТУ, 2008 – 170 с., с. 56-57.


Синтез дискретних пристроїв керування неперервними системами виконують одним з наступних шляхів:

    • на основі неперервного об‘єкта регулювання синтезують неперервні пристрої керування, а потім перетворюють їх у дискретну форму (метод неперервних моделей);

    • будують дискретні моделі об‘єкта регулювання і на їх основі синтезують дискретні пристрої керування.

Отже, в обох випадках треба вміти знаходити дискретні апроксимації аналогових передавальних функцій. Поставлену задачу можна виконати такими засобами:

  1. за допомогою Z-перетворення;
  2. заміною оператора аналогового інтегрування 1/s одним з операторів цифрового інтегрування (підстановочні методи);
  3. заміною нулів та полюсів на s-площині відповідними нулями та полюсами на Z-площині (метод узгодження нулів-полюсів).

    Процес дискретизації неперервних систем, які описуються диференційними рівняннями високого порядку, є досить складним і потребує використання ЕОМ з сучасним програмним забезпеченням. Найбільш зручною та універсальною для вирішення задач аналізу та синтезу систем автоматичного керування є пакет 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);                                          %Дискретний об‘єкт

    Наведені приклади дозволять прискорити процес дискретизації неперервних динамічних об‘єктів та підвищити його надійність і достовірність за рахунок зменшення вірогідності допущення помилок.