Jaka jest zaleta implementacji PID pochodzącej z transformacji Z?

29

Widziałem wiele artykułów PID, takich jak ten , wykorzystujących transformację Z ogólnego równania PID, aby uzyskać jakieś szalone równanie różnicy, które można następnie zaimplementować w oprogramowaniu (lub w tym przypadku FPGA). Moje pytanie brzmi: jaka jest zaleta takiej implementacji w porównaniu z tradycyjnym i znacznie bardziej intuicyjnym PID bez doktorawdrożenie typu? Drugi wydaje się łatwiejszy do zrozumienia i wdrożenia. Składnik P jest prostym pomnożeniem, całka używa bieżącej sumy, a pochodna jest szacowana poprzez odjęcie poprzedniej próbki od bieżącej próbki. Jeśli chcesz dodać funkcję, taką jak integralna ochrona przed windą, jest to prosta algebra. Próba dodania zintegrowanego zabezpieczenia przed windą lub innych funkcji do algorytmu typu różnicowego, takiego jak powyższy link, wydaje się znacznie bardziej skomplikowana. Czy istnieje jakikolwiek powód, aby użyć takiej implementacji, oprócz „Jestem złym dupkiem, który lubi robić transformacje Z dla zabawy”, chwaląc się tym prawem?

EDYCJA: PID bez powiązanego artykułu PHD jest przykładem prostszej implementacji, która wykorzystuje sumę bieżącą dla terminu integralnego i różnicę między kolejnymi próbkami dla terminu pochodnego. Może być zaimplementowany w matematyce stałoprzecinkowej w sposób deterministyczny i, w razie potrzeby, może uwzględniać w obliczeniach stałą informację w czasie rzeczywistym. Zasadniczo szukam praktycznej przewagi metody transformacji Z. Nie widzę, jak mogłoby być szybciej, ani zużywać mniej zasobów. Zamiast utrzymywać bieżącą sumę całki, metoda Z wydaje się wykorzystywać poprzednie dane wyjściowe i odejmować poprzednie składowe P i D (aby uzyskać sumę całkowitą na podstawie obliczeń). Tak więc, chyba że ktoś wskaże coś, czego mi brakuje, zaakceptuję komentarz AngryEE, że są one zasadniczo takie same.

EDYCJA KOŃCOWA: Dziękuję za odpowiedzi. Myślę, że nauczyłem się trochę o każdym z nich, ale ostatecznie myślę, że Angry ma rację, ponieważ jest to tylko kwestia preferencji. Dwie formy:

e(k-2)=e(k-1),

u(k)=u(k-1)+K.p(mi(k)-mi(k-1)+K.jaT.jami(k)+K.reT.ja(mi(k)-2)mi(k-1)+mi(k-2)))
u ( k - 1 ) = u ( k )
mi(k-2))=mi(k-1),mi(k-1)=mi(k)
u(k-1)=u(k)

lub

u ( k ) = K p e ( k ) + K i T isuma + K d

suma=suma+mi(k)
e(k-1)=e(k)
u(k)=K.pmi(k)+K.jaT.jasuma+K.reT.ja(mi(k)-mi(k-1))
mi(k-1)=mi(k)

oceni zasadniczo to samo. Niektórzy wspominają, że pierwszą można szybciej zaimplementować w DSP lub FPGA, ale tego nie kupuję. Oba mogą być wektoryzowane. Pierwsza wymaga dwóch operacji po, druga wymaga jednej operacji przed i jednej po, więc wydaje się, że się wyrówna. Pierwszy wymaga także 1 dodatkowego pomnożenia w rzeczywistym obliczeniu.

bt2
źródło
Miałeś na myśli „równanie różniczkowe”?
Kevin Vermeer
Musiałem źle zrozumieć twoje komentarze, opierając się przynajmniej na tej informacji zwrotnej. Usunę mój komentarz!
Kortuk
1
Przejdź do dsp.stackexchange.com
Jason S

Odpowiedzi:

7

Zaczyna Cię ogarniać szalenie transformacji Z. Te dwa podejścia są zasadniczo takie same - podejście PID bez PHD ma po prostu mniej indeksów dolnych. Wykonują tę samą podstawową funkcję i używają tej samej podstawowej matematyki.

Jedyną zasadniczą różnicą między nimi, którą widzę, jest to, że PID bez PHD nie bierze pod uwagę czasu próbkowania. Aby zrobić coś, co może być niestabilne, bardzo ważny jest czas próbkowania. Zaletą podejścia Z-transform w tym przypadku jest to, że nie można go użyć bez uwzględnienia czasu próbkowania - zmusza cię do pokazania swojej pracy i pomaga zaprojektować bardziej stabilny system.

Wygląda również na to, że studium przypadku, w którym znalazłeś zastosowanie metody transformacji Z, zostało zaprojektowane jako wysoce deterministyczne. Wyjaśnia to ich stosowanie układów FPGA - obliczenia zawsze zajmą tyle samo czasu. PID bez wdrożenia PHD zdecydowanie nie jest deterministyczny. Zastosowanie podwójnych jako zmiennych zamiast implementacji stałoprzecinkowej z pewnością spowoduje niedeterministyczne zachowanie na dowolnym mikrokontrolerze bez jednostki zmiennoprzecinkowej (i prawdopodobnie również na komputerach z FPU). Studium przypadku działa na zupełnie innym poziomie złożoności w porównaniu z podejściem PID bez PHD.

Zasadniczo podejście matematyczne i kontrolne jest takie samo, ale podejście do analizy przypadku / transformacji Z jest bardziej rygorystyczne i teoretycznie uzasadnione. Podejście PID bez PHD działa tylko w przypadku bardzo prostego, niekrytycznego czasowo systemu, który jest stosunkowo stabilny.

AngryEE
źródło
PID bez artykułu doktoranckiego jest tylko przykładem prostszej implementacji, która wykorzystuje sumę bieżącą dla całki i różnicę między kolejnymi próbkami dla pochodnej. W artykule stwierdzono, że czas próbkowania powinien być spójny. Czas próbkowania można łatwo dodać do obliczeń I i D, ale w większości przypadków nie jest to wykonywane w obliczeniach rzeczywistych. GUI kontrolera (lub inny interfejs) przedstawi użytkownikowi warunki I i D w sekundach na podstawie czasu pętli.
bt2
@ bt2 wygląda na to, że masz bardzo konkretny przypadek, w którym PID bez doktora jest najlepszym podejściem. Większość systemów nie wyświetla w żaden sposób terminów I i D. Jest to wynik działania regulatora PID, który wprowadza pewne zmiany w systemie jako całości, a następnie sam się zapętla. Jeśli wyświetlasz się tylko użytkownikowi, naprawdę nie ma powodu do obaw o stabilność.
Kellenjb,
„Podejście PID bez PHD będzie działać tylko bardzo prosto” - nie zgadzam się. Zdecydowanie możesz zoptymalizować cyfrowe systemy sterowania za pomocą analizy Z-transform, ale drugą stroną jest to, że możesz zostać przyłapany na modelowaniu swojego systemu tak dokładnie, że ominie Cię las.
Jason S
10

Metoda transformacji Z projektowania regulatora PID ostatecznie zapewni znacznie bardziej wydajną implementację. Jest to bardzo ważne, jeśli projektujesz najmniejszy FPGA / DSP / mikrokontroler dla twojej aplikacji.

Wspomniany „PID bez PHD” jest prawdopodobnie najłatwiejszym podejściem do implementacji kontroli PID w oprogramowaniu, ale staje się nieporęczny przy wyższych częstotliwościach próbkowania.

Ponadto transformacja Z lepiej nadaje się do projektowania w domenie dyskretnej (cyfrowej). Tradycyjna metoda projektowania (transformata Laplace'a) jest bardziej ciągła. Istnieje wiele sposobów konwersji między nimi (wstrzymanie zerowego rzędu, interpolacja liniowa, rozmieszczenie biegunów, dwuliniowe / Tustin), każda z nich ma swoje zalety i wady w zakresie stabilności i reakcji systemu. Na ogół po prostu łatwiej jest wykonać cały projekt w domenie dyskretnej.

Krótko mówiąc, jeśli używasz stosunkowo „wolnego” systemu (wszystkie główne zachowania zachodzą znacznie poniżej 100 kHz), to prawdopodobnie pierwszy projekt jest w porządku. Możesz go zaimplementować na mikrokontrolerze lub komputerze i gotowe. Ponieważ systemy stają się coraz szybsze, być może będziesz musiał użyć metody transformacji Z, aby uzyskać potrzebne prędkości (w artykule wspomniano 9,5 MHz, zakładając, że masz przetworniki A / D i przetworniki cyfrowo-analogowe, które mogą nadążyć).

mjcarroll
źródło
1
Ta sama liczba operacji matematycznych, inna reprezentacja liczb. Podwójne są znacznie bardziej złożoną reprezentacją liczb niż metoda stałego punktu zastosowana w studium przypadku. Mniej złożony oznacza mniej operacji (na krzemie).
AngryEE
2
@ bt2, powiedziałbym, że bardziej wydajny w tym sensie, że układy DSP są ustawione dla zestawów instrukcji SIMD (Single Instruction, Multiple Data). Chociaż jest to ta sama liczba operacji matematycznych, transformacja Z pozwala wykonać wszystkie mnożenia w jednym cyklu instrukcji, a następnie zsumować wszystkie elementy wektora wynikowego w jednym cyklu (zależnie od platformy). Tak więc, mimo że matematyka jest taka sama, złożoność czasu jest znacznie niższa, co powoduje większe przyspieszenie.
mjcarroll
1
@ bt2 forma z nadaje się do implementacji jako równanie różnicy, które zależy tylko od przeszłych danych wyjściowych i prądu wejściowego, bez wymagania bieżącej sumy, która w pewnym momencie przepełni się (lub przepełni). Procesory DSP zostały zaprojektowane tak, aby umożliwić wydajną implementację filtrów cyfrowych za pomocą metody równań różnic. Zobacz en.wikipedia.org/wiki/Digital_filter esp. formularze bezpośrednie - do tego są zoptymalizowane DSP.
spacja
1
Myślę, że czegoś brakuje. Bieżąca suma nigdy nie przepełni się w normalnych okolicznościach. Filtry IIR nie zawsze będą nasycane, aw przypadku regulacji PID zwykle tak nie jest. Mówienie, że tak będzie z jednym algorytmem, ale nie z innym, jest fałszywe. Bieżąca suma jest również oparta na poprzednich wynikach. Jeśli jeden spowoduje przepełnienie, oba będą. Pomyśl o tym w ten sposób, 2. implantacja JEST pierwsza, z pewną matematyką ... u (k-1) - kp (e (k-1) - kd / Ti (e (k-1) - e ( k-2) == (suma bieżąca).
bt2
1
-1: Transformacje Z nie zapewniają bardziej wydajnej implementacji. W rzeczywistości, jeśli porównasz 1-biegunowy filtr dolnoprzepustowy za pomocą „naiwnej” metody cyfrowej z 1-biegunowym filtrem dolnoprzepustowym za pomocą transformacji dwuliniowej, dzięki temu podejściu uzyskasz nieco mniej wydajną implementację. Niezależnie od wyprowadzenia filtra, ta sama liczba zmiennych stanu = o tej samej wydajności implementacji. W dużej mierze jest to niezależna ilość od sposobu zaprojektowania filtra.
Jason S
5

Oto oferta, z mojego doświadczenia:

  • Transformacje Z pomagają w niektórych analizach: teorię układów z dyskretnym próbkowaniem czasu najlepiej modelować za pomocą transformat Z.
  • Projektowanie regulatorów PID lub filtrów dolnoprzepustowych można wykonać zarówno za pomocą transformacji Z, jak i analizy klasycznej, z jednym z kilku przybliżeń stosowanych do przekształcania pochodnych / całek z czasu ciągłego na czas dyskretny. Jeśli twoje bieguny i zera mają niskie częstotliwości w porównaniu do częstotliwości próbkowania, nie ma to znaczenia. Trzymaj się takiego podejścia, z którym czujesz się najbardziej pewnie.
  • Wyprowadzanie transformacji Z filtrów i sterowników często przesłania fizyczne znaczenie parametrów tych filtrów i sterowników. Jeśli mam pętlę PID ze wzmocnieniem integralnym, wzmocnieniem proporcjonalnym i wzmocnieniem różnicowym, wiem, co każdy z tych parametrów robi bezpośrednio. Jeśli użyję transformacji Z, to tylko liczby, które musiałem jakoś wyprowadzić.
  • Implementacja filtrów i kontrolerów może, ale nie musi, zaciemniać fizyczne znaczenie parametrów tych filtrów i kontrolerów. Ta jakość jest w dużej mierze niezależna od poprzedniego punktu: jeśli mam projekt oparty na transformacji Z, mogę przekonwertować go na klasycznie wyglądającą implementację i odwrotnie. Twój przykład w EDYCJI KOŃCOWEJ jest dobry, ponieważ druga implementacja utrzymuje integrator („ sum”) osobno we własnej zmiennej stanu. Ta zmienna stanu ma znaczenie. Pierwsza implementacja zachowuje zmienną stanu jako przeszłą historię błędu; ma to znaczenie, ale moim zdaniem zapewnia mniej wglądu.

Wreszcie istnieją inne problemy związane z nieliniowością lub analizą, które często powodują, że wybierasz jedną implementację nad drugą (dla mnie zawsze jest to klasyczne podejście do kontrolerów, dla filtrów FIR jest to transformacja Z, a dla filtrów 1- lub 2-biegunowych IIR jest to zwykle klasyczne podejście):

  • W przypadku kontrolerów zawsze trzymam integrator jako zmienną stanu, a nie wcześniejsze próbki błędów. Powodem jest to, że prawdziwe systemy często wymagają zabezpieczenia przed zwijaniem, w którym musisz zablokować całkę przed zbytnim lub dodatnim. (A jeśli implementujesz w ustalonym punkcie, musisz to zrobić i tak, ponieważ warunek zawinięcia po uderzeniu w przepełnienie spowoduje złe rzeczy do zachowania twojej pętli sterowania)

  • Z tego samego powodu zawsze również obliczam integrator w sposób wynikowy: np. sum += Ki*error; out = stuff + sumZamiast sum += error; out = stuff + Ki*sum. Przy drugim podejściu, jeśli zmienisz wzmocnienie Ki, to skaluje efekt integratora na wyjściu w górę i w dół, co prawdopodobnie nie jest tym, czego chcesz, a limit zmienia się w zależności od wzmocnienia. Jeśli pomnożymy błąd przez Ki przed całkowaniem, jednostki integratora są takie same jak jednostki wyjścia pętli sterowania i ma to bardziej oczywiste znaczenie fizyczne.

(aktualizacja: Bardziej szczegółowo napisałem wpis na blogu na ten temat ).

Jason S.
źródło
4

Edytuj :

Zastosowanie transformacji Z ułatwia łączenie i upraszczanie systemów LTI do analizy . Na przykład kaskadowa seria k systemów LTI z funkcjami przesyłania H1, H2, ..., Hk połączy się jako prosty produkt H = H1*H2*...*Hk. Również funkcją przenoszenia pętli ujemnego sprzężenia zwrotnego jest T = G/(1 + G*H), gdzie H znajduje się na ścieżce sprzężenia zwrotnego. Gdy masz już ogólną funkcję przesyłania, możesz analizować stabilność (położenie biegunów) i wydajność (stany nieustalone, błąd stanu ustalonego), dodając dodatkowe filtry i informacje zwrotne w celu optymalizacji projektu.

W przypadku podsystemów wyższego rzędu można podzielić funkcję systemową i zaimplementować ją jako serię kaskadowych biquadów (tj. Przez pary zer i biegunów, takich jak złożone koniugaty lub powtarzające się pierwiastki), co zmniejsza niestabilność spowodowaną kwantyzacją. Biquad formy kanonicznej:

sekcja biquad

Eryk Sun
źródło
Twoja odpowiedź brzmi imponująco, ale właściwie nie mam pojęcia, co powiedziałeś. Czym jest na przykład stabilność kwantyzacji i jak przewyższa ona jedną formę równania?
bt2
1
Funkcja przenoszenia H (z) jest funkcją wymierną B (z) / A (z). Każdy wielomian w z jest współczynnikiem N zer dla układu N-tego rzędu. Zera A (z), te w mianowniku, nazywane są biegunami (jest to ścieżka sprzężenia zwrotnego). Dla stałego współczynnika skalowania system niezmiennika czasu liniowego (LTI) jest opisany przez jego zera i bieguny.
Eryk Sun,
1
System LTI z czasem dyskretnym jest stabilny, jeśli wszystkie jego bieguny znajdują się w okręgu jednostki na płaszczyźnie Z. Ale kwantyzacja ze skończoną cyfrową precyzją wprowadza szum, który może powodować, że system jest marginalnie stabilny, niestabilny lub z czasem staje się niestabilny. Uwzględniając H (z) w biquadratics produktu (biquaddy), ten rodzaj błędu jest minimalizowany.
Eryk Sun,
2
Biquad jest preferowaną partycją minimalną, ponieważ zera wielomianu o rzeczywistych współczynnikach są albo rzeczywiste, albo w parach złożonych koniugatów. Biquad B (z) / A (z) to (b0 + b1z ^ -1 + b2z ^ -2) / (a0 + a1z ^ -1 + a2z ^ -2).
Eryk Sun
Dodałem, a następnie usunąłem przykład szumu kwantyzacji, porównując kaskadowy kwadrat z bezpośrednim poli czwartego rzędu. Ale to było za dużo. Muszę się przespać. Przepraszam, tyblu.
Eryk Sun,
3

Najtrudniejszą częścią regulatora PID nie jest sam kod. Problemy pojawiają się podczas próby optymalizacji kontrolera. Pewnie, że możesz wykonać próbę i błąd i uzyskać całkiem przyzwoity kontroler, ale niektóre systemy są po prostu zbyt złożone, aby metoda prób i błędów była łatwa do wykonania. Te same systemy zwykle wymagają bardzo dobrego kontrolera, a nie tylko porządnego. W tym przypadku transformacja Z jest znacznie łatwiejsza do analizy.

Kolejną rzeczą do przemyślenia jest stabilność systemu. Być może masz do czynienia z systemem, który raczej trudno jest stać niestabilny, a nawet jeśli tak, to nic nie boli. Istnieje jednak wiele systemów, które mogą mieć katastrofalne skutki, jeśli kontroler spowoduje niestabilność. Transformacja Z to kolejne miejsce, w którym znacznie łatwiej jest ustalić, czy pojawią się jakieś problemy.

I 1 ostatnia uwaga. Analizując system jako całość, będziesz musiał uzyskać równania dla wszystkich składników w systemie. Pewnie, że możesz go zdobyć z doktora PID bez doktora, ale jeśli już pracujesz z nim w metodzie transformacji Z, jest znacznie mniej pracy do przodu i do tyłu, którą musisz wykonać.

Teraz, jako osobiste preferencje, zawsze używam metody PID bez doktoratu. Jest tak dlatego, że używam tylko mikrokontrolerów z systemami, które nie są strasznie zależne od kontrolera.

Kellenjb
źródło
2

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.

Shannon G. Barber
źródło
1

Lepiej jest ogólnie korzystać z metody transformacji Z, ponieważ robiąc to, zachowujesz dokładne zachowanie równoważnego układu analogowego. Istnieją dobrze znane metody dostrajania, takie jak Ziegler-Nichols, które działają w domenie analogowej, tak jak opublikowano. Jeśli użyjesz metody transformacji Z, masz matematyczne rygorystyczne oczekiwania, że ​​wynikowy kontroler zrobi to samo dla tych samych wartości wzmocnienia P, I i D, że zrobi to w dziedzinie analogowej, biorąc pod uwagę te korzyści. Dodatkowo możesz narysować dyskretne umiejscowienie katalogu głównego systemu i przewidzieć stabilność dla danego zestawu korzyści, czego nie można zrobić, jeśli utworzysz kontroler ad hoc bezpośrednio w kodzie.

Frank Rudolph
źródło