2014-07-22 24 views
5

można zbudować PID controller w bibliotece Haskell FRP netwire stosując loop z przykładu ArrowLoop przewidziany Wire s.płynne przejście w FRP

Potrafi również zaimplementować przełączanie między kontrolerami lub między kontrolerem a ręcznym wprowadzaniem danych za pomocą switch.

Jak mogę wdrożyć bezstresowy transfer, na przykład za pomocą strategii "śledzenia" wyjaśnionej here (lub w dowolnej liczbie artykułów/książek inżynierii kontroli)? Inna strategia może być akceptowalna, jeśli ma dobrą wydajność, ale podejście do śledzenia jest atrakcyjne dla mojej aplikacji, ponieważ dotyczy ona także mechanizmu zapobiegającego nawijaniu.

Mam problem z przymrużeniem oka na diagramie blokowym na tyle mocno, aby wyglądał jak typ dwóch (lub jednej?) Aplikacji loop.

+1

Który schemat? Schemat dla całej instalacji lub diagramu dla elementów wewnętrznych sterownika PID z funkcją śledzenia? – Cirdec

+0

Ten do elementów wewnętrznych. Zauważyłem, że kiedy dotarłem dalej, ten, który dotyczy całej instalacji, nie jest pętlą w moim oprogramowaniu, ponieważ tylko roślina ją zamyka. Wprowadzam więc szybkość przechyłu i wyprowadzam polecenie lotek, z perspektywy oprogramowania, które nie jest pętlą. To tylko prawdziwy świat/symulator sprawia, że ​​komenda lotek wpływa na szybkość przewracania. –

Odpowiedz

2

Na każdym schemacie znajdują się dwa loop s. Przy wyszukiwaniu pętli w celu przerysowania diagramów pomocne jest, aby wszystkie wejścia weszły w te same strony wszystkich elementów, wszystkie wyjścia pozostawiły te same strony i, jeśli to możliwe, zminimalizowały przekroczenie linii. Na tych wykresach wejścia wchodzą do dolnej, lewej lub górnej części elementu, a wyjścia opuszczają w prawo.

Cały system jest jednym loop pokarm dla wydajności procesu do odejmowania dla porównania błędu:

Overall PID process

Układ sterowania ma jeden loop dozującą ostateczny efekt sterowania po selekcji sterownika (regulator PID lub sterowanie ręczne) do kontrolera PID śledzenia. Ogólnym wynikiem jest wynik po prawej stronie.

Manually overridden PID Controller

Regulator PID śledzenia dwa loop s. Jednym z nich jest pętla sprzężenia zwrotnego dla pochodnej. Model loop dla pochodnej może zniknąć wewnątrz innego komponentu. Drugi loop przekazuje wyjście kontrolera PID do porównania pomiędzy wyjściem kontrolera PID a wyjściem sterującym faktycznie sterującym procesem. Zauważ, że kolejność P, D i oddziałów I różni się w tym schemacie, aby usunąć skrzyżowania linii

Tracking PID controller

Zauważ, że jeśli kontroler śledzenia PID miał własną podłączonego do toru, różnicę pierwsze odjęcie będzie wynosić 0, a gałąź integracji pozostanie niezmieniona przez dodanie 0.

+0

To wspaniałe wyjaśnienie, wielkie dzięki! Jak stworzyłeś te diagramy? Poza tym, na czym polega zysk "N"? –

+1

Użyłem Dia do tworzenia diagramów. Wzmocnienie 'N' jest częścią pochodnej. Współczynnik filtru "N" zmienia się, gdy położenie bieguna filtra jest w projekcie Simulinka dla kontrolera PID, do którego się odwołujesz. http://www.mathworks.com/help/simulink/slref/pidcontroller.html # br9ejg0-18 Istnieją inne projekty kontrolera PID. Ponieważ wszystko jest operacją liniową, zyski mogą być umieszczone po operacjach całkowania i różnicowania, a każdy filtr dolnoprzepustowy może być użyty między pochodną a końcową sumą. Trójkąt z prostokątem po lewej to integracja. – Cirdec

+1

Oto kolejny projekt, z różnicowaniem całkowicie oddzielonym od filtrowania. http://www.embedded.com/design/real-time-and-performance/4007575/The-basics-of-control-system-design-Part-5--Tuning-a-PID-Controller. W tym projekcie, sprzężenie zwrotne toru musiałoby być podawane do sumy na integralnym odgałęzieniu, po przeskalowaniu przez dodatkowy współczynnik wejściowy śledzenia o wartości '1/Ki' lub' 1/(Ki * Kp) 'w zależności od tego, gdzie'. Zysk Kp' znajduje się. – Cirdec