Istnieje kilka powodów, dla których forma transformacji Z ma większą użyteczność.
Zapytaj każdego, kto promuje podejście oparte na czasie / prosty / sans-PHD, na co ustawił swój termin Kd. Prawdopodobnie odpowiedzą „zero” i prawdopodobnie powiedzą, że D jest niestabilny (bez filtra dolnoprzepustowego). Zanim dowiedziałem się, jak to wszystko się łączy, chciałbym i powiedziałem takie rzeczy.
Strojenie Kd jest trudne w dziedzinie czasu. Gdy widzisz funkcję przenoszenia (transformata Z podsystemu PID), możesz łatwo zobaczyć, jak jest stabilna. Łatwo też zobaczyć, jak warunek D wpływa na sterownik w stosunku do innych parametrów. Jeśli twój parametr Kd przyczynia się 0,00001 do współczynników wielomianu Z, ale twój współczynnik Ki przyjmuje wartość 10,5, to twój współczynnik D jest zbyt mały, aby mieć rzeczywisty wpływ na układ. Możesz także zobaczyć równowagę między warunkami Kp i Ki.
Procesory DSP są zaprojektowane do obliczania równań różnic skończonych (FDE). Mają kody operacyjne, które zwielokrotniają współczynnik, sumują się do akumulatora i przesuwają wartość w buforze w jednym cyklu instrukcji. Wykorzystuje to równoległy charakter FDE. Jeśli maszynie brakuje tego kodu operacyjnego ... to nie jest to DSP. Osadzone PowerPC (MPC) mają urządzenie peryferyjne dedykowane do obliczania FDE (nazywają to jednostką dziesiętną). Procesory DSP są zaprojektowane do obliczania FDE, ponieważ przekształcenie funkcji przenoszenia w FDE jest banalne. 16 bitów nie jest wystarczająco dynamicznym zakresem, aby łatwo kwantyfikować współczynniki. Z tego powodu wiele wczesnych DSP zawierało 24-bitowe słowa (uważam, że słowa 32-bitowe są dziś popularne).
IIRC, tak zwana transformacja dwuliniowa, przyjmuje funkcję przesyłania (transformata z kontrolera w dziedzinie czasu) i przekształca ją w FDE. Udowodnienie, że jest „trudne”, użycie go do uzyskania wyniku jest banalne - wystarczy rozwinięta forma (pomnóż wszystko), a współczynniki wielomianowe to współczynniki FDE.
Kontroler PI nie jest świetnym podejściem - lepszym rozwiązaniem jest zbudowanie modelu zachowania się systemu i użycie PID do korekcji błędów. Model powinien być prosty i oparty na podstawowej fizyce tego, co robisz. Jest to sprzężenie zwrotne do bloku sterującego. Blok PID następnie koryguje błąd, wykorzystując informacje zwrotne z kontrolowanego systemu.
Jeśli używasz znormalizowanych wartości, [-1 .. 1] lub [0 ... 1], dla wartości zadanej (referencyjnej), sprzężenia zwrotnego i sprzężenia zwrotnego, możesz zaimplementować jeden 2-biegunowy 2-zerowy algorytm w zoptymalizowany zestaw DSP i można go użyć do wdrożenia dowolnego filtra drugiego rzędu, który zawiera PID i najbardziej podstawowy filtr dolnoprzepustowy (lub górnoprzepustowy). Właśnie dlatego DSP mają kody operacyjne, które zakładają znormalizowane wartości, np. Takie, które będą generowały oszacowanie odwrotnego pierwiastka kwadratowego dla zakresu (0..1] Można połączyć szeregowo dwa filtry 2p2z i utworzyć filtr 4p4z, co pozwala możesz wykorzystać swój kod DSP 2p2z do, powiedzmy, implementacji 4-kranowego dolnoprzepustowego filtra Butterwortha.
Większość implementacji w dziedzinie czasu wprowadza termin dt do parametrów PID (Kp / Ki / Kd). Większość implementacji w domenie Z tego nie robi. dt jest wstawiany do równań, które pobierają Kp, Ki i Kd i przekształcają je w współczynniki [] i b [], dzięki czemu kalibracja (strojenie) regulatora PID jest teraz niezależna od częstotliwości kontrolnej. Możesz sprawić, by działał dziesięć razy szybciej, wykreślić matematykę a] ib, a kontroler PID będzie miał stałą wydajność.
Naturalnym rezultatem użycia FDE jest to, że algorytm jest domyślnie „bezproblemowy”. Możesz zmieniać zyski (Kp / Ki / Kd) w locie podczas pracy i jest to dobre zachowanie - w zależności od implementacji w dziedzinie czasu może to być złe.
Dużo wysiłku zwykle poświęca się kontrolerom PID w dziedzinie czasu, aby zapobiec integralnej likwidacji. Istnieje prosta sztuczka z formularzem FDE, która sprawia, że PID zachowuje się ładnie, możesz zablokować jego wartość w buforze historii. Nie zrobiłem matematyki, aby zobaczyć, jak wpływa to na zachowanie filtra (w odniesieniu do parametrów Kp / Ki / Kd), ale wynik empiryczny jest taki, że jest „gładki”. Wykorzystuje to „bezproblemową” naturę postaci FDE. Model sprzężenia zwrotnego przyczynia się do zapobiegania integralnej likwidacji, a użycie terminu D pomaga zrównoważyć termin I. PID naprawdę nie działa zgodnie z przeznaczeniem ze wzmocnieniem D. (Wartości zadane wahań to kolejna kluczowa funkcja zapobiegająca nadmiernemu zwijaniu).
Wreszcie transformaty Z są tematem licencjackim, a nie „doktorem”. Powinieneś dowiedzieć się wszystkiego o nich w analizie złożonej. Tutaj studiujesz na uniwersytecie, masz instruktora, a wysiłek włożony w naukę matematyki i korzystania z dostępnych narzędzi może znacząco wpłynąć na twoją zdolność do pracy w branży. (Moja klasa złożonych analiz była okropna.)
Narzędziem branżowym defacto jest Simulink (który nie ma systemu komputerowej algebry, CAS, więc potrzebujesz innego narzędzia do wykreślania ogólnych równań). MathCAD lub wxMaxima są symbolicznymi solverami, których można używać na PC, a ja nauczyłem się, jak to robić za pomocą kalkulatora TI-92. Myślę, że TI-89 ma również system CAS.
Możesz wyszukać równania w domenie Z lub Laplace-Domain na wikipedii dla filtrów PID i dolnoprzepustowych. Jest krok, którego nie rozumiem, uważam, że potrzebujesz formy PID z dyskretną domeną czasową, a następnie musisz wykonać transformację Z. Transformacja Laplace'a powinna być bardzo podobna do transformaty Z i jest podawana jako PID {s} = Kp + Ki / s + Kd · s Myślę, że transformacja Z lepiej uwzględniałaby Dt w następujących równaniach. Dt jest delta-t [ime], używam Dt, aby nie mylić tej stałej z pochodną „dt”.
b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt
a[1] = -1
a[2] = 0
A to FDE 2p2z:
y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]
Procesory DSP zazwyczaj miały tylko mnożenie i dodawanie (a nie mnożenie i odejmowanie), więc możesz zobaczyć, że negacja jest zwinięta w współczynniki a []. Dodaj więcej b, aby uzyskać więcej biegunów, dodaj więcej a, aby uzyskać więcej zer.