4. REGULACJA PID W STEROWNIKACH PLC



Podobne dokumenty
STEROWANIE MASZYN I URZĄDZEŃ I. Laboratorium. 8. Układy ciągłe. Regulator PID

Regulator PID w sterownikach programowalnych GE Fanuc

Regulator PID w sterownikach programowalnych GE Fanuc

Układy sterowania: a) otwarty, b) zamknięty w układzie zamkniętym, czyli w układzie z ujemnym sprzężeniem zwrotnym (układzie regulacji automatycznej)

Ćwiczenie 3 - Sterownik PLC realizacja algorytmu PID

REGULATOR PI W SIŁOWNIKU 2XI

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Podstawy Automatyki. Wykład 6 - Miejsce i rola regulatora w układzie regulacji. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Regulatory o działaniu ciągłym P, I, PI, PD, PID

Rozdział 22 Regulacja PID ogólnego przeznaczenia

Spis treści. Dzień 1. I Elementy układu automatycznej regulacji (wersja 1109) II Rodzaje regulatorów i struktur regulacji (wersja 1109)

SIMATIC S Regulator PID w sterowaniu procesami. dr inż. Damian Cetnarowicz. Plan wykładu. I n t e l i g e n t n e s y s t e m y z e

Dynamika procesu zmienna stała. programowalne zmiany parametrów r.

INSTRUKCJA Regulacja PID, badanie stabilności układów automatyki

Obiekt. Obiekt sterowania obiekt, który realizuje proces (zaplanowany).

Automatyka i Regulacja Automatyczna Laboratorium Zagadnienia Seria II

Podstawy Automatyki. Wykład 7 - obiekty regulacji. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Regulator P (proporcjonalny)

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Automatyka i sterowania

Serwomechanizmy sterowanie

1. Regulatory ciągłe liniowe.

1. POJĘCIA PODSTAWOWE I RODZAJE UKŁADÓW AUTOMATYKI

Automatyka i pomiary wielkości fizykochemicznych. Instrukcja do ćwiczenia VI Dobór nastaw regulatora typu PID metodą Zieglera-Nicholsa.

Badanie kaskadowego układu regulacji na przykładzie serwomechanizmu

Sterownik momentu obrotowego silnika prądu stałego

Realizacje regulatorów PID w sterownikach PLC Siemens S7-1200

Siemens S Konfiguracja regulatora PID

Karta Programowania RM ( z wyj. ciągłym ) Nr Strona 1 Stron 7

Automatyka w Inżynierii Środowiska - Laboratorium Karta Zadania 2 WĘZEŁ CIEPŁOWNICZY

Dla naszego obiektu ciągłego: przy czasie próbkowania T p =2.

Podstawy Automatyki. Wykład 9 - Dobór regulatorów. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Rys. 1 Otwarty układ regulacji

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Układ regulacji ze sprzężeniem zwrotnym: - układ regulacji kaskadowej - układ regulacji stosunku

Falowniki Wektorowe Rexroth Fv Parametryzacja

Praktyka inżynierska korzystamy z tego co mamy. regulator. zespół wykonawczy. obiekt (model) Konfiguracja regulatora

Struktury specjalizowane wykorzystywane w mikrokontrolerach

Automatyzacja. Ćwiczenie 9. Transformata Laplace a sygnałów w układach automatycznej regulacji

Identyfikacja obiektu i optymalizacja nastaw w Standard PID Control

Sterowniki Programowalne (SP)

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Temat: Wzmacniacze operacyjne wprowadzenie

DEMERO Automation Systems

SKRÓCONY OPIS REGULATORA AT-503 ( opracowanie własne TELMATIK - dotyczy modeli AT i AT )

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

LAB-EL LB-760A: regulacja PID i procedura samostrojenia

DEMERO Automation Systems

Politechnika Warszawska Instytut Automatyki i Robotyki. Prof. dr hab. inż. Jan Maciej Kościelny PODSTAWY AUTOMATYKI

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Przetworniki A/C. Ryszard J. Barczyński, Materiały dydaktyczne do użytku wewnętrznego

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Interfejs analogowy LDN-...-AN

Opis ultradźwiękowego generatora mocy UG-500

Dobór parametrów regulatora - symulacja komputerowa. Najprostszy układ automatycznej regulacji można przedstawić za pomocą

Regulator przepływu (Modbus TCP) wersja 8.x

Podstawy Automatyki. Wykład 7 - Jakość układu regulacji. Dobór nastaw regulatorów PID. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Regulacja prędkości posuwu belki na prowadnicach pionowych przy wykorzystaniu sterownika Versa Max

Instrukcja obsługi SPEED CONTROL. Electro-pneumatic Speed control system Elektropneumatyczny Regulator Wydajności Pompy

Konfiguracja regulatora PID

Karta Zadania 1 ZASOBNIKOWY UKŁAD PRZYGOTOWANIA C.W.U.

Sterowniki Programowalne sem. V, AiR

Regulacja dwupołożeniowa (dwustawna)

Kurs Zaawansowany S7. Spis treści. Dzień 1

Część 5. Mieszane analogowo-cyfrowe układy sterowania

AUTO-STROJENIE REGULATORA TYPU PID Z WYKORZYSTANIEM LOGIKI ROZMYTEJ

I. DANE TECHNICZNE Opis elementów sterujących i kontrolnych Budowa Dane znamionowe... 3 II. INSTRUKCJA UśYTKOWANIA...

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Wyjście Kierunek. P zasilanie zewnętrzne 12/24VDC. P040 wyjście impulsów kanał 0. COM0 0V P041 wyjście impulsów kanał 1. COM1 0V P042 kierunek kanał 0

II. STEROWANIE I REGULACJA AUTOMATYCZNA

Przemysłowy Sterownik Mikroprocesorowy

Sterowanie pracą reaktora chemicznego

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1312) II Tryby pracy CPU (wersja 1312) III Bloki funkcyjne (wersja 1312)

Jacek Szlachciak. Urządzenia wirtualne systemu wieloparametrycznego

SPECYFIKACJA PRZETWORNIK RÓŻNICY CIŚNIEŃ

Konfiguracja parametrów pozycjonowania GPS /5

Układ stabilizacji laserów diodowych

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Badanie układu regulacji poziomu cieczy

Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku

Sterowanie w programie ADAMS regulator PID. Przemysław Sperzyński

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

ASQ systemy sterowania zestawami pomp

Dwukanałowy regulator temperatury NA24

Automatyka w Inżynierii Środowiska - Laboratorium Karta Zadania 1 ZASOBNIKOWY UKŁAD PRZYGOTOWANIA C.W.U.

ASQ systemy sterowania zestawami pomp

Politechnika Gdańska. Gdańsk, 2016

Przemysłowy Sterownik Mikroprocesorowy

PODSTAWY AUTOMATYKI I MIERNICTWA PRZEMYSŁOWEGO Laboratorium 3 Regulatory PID i ich strojenie, Regulacja dwupołożeniowa

Ćwiczenie PA6. Badanie działania regulatora PID zaimplementowanego w sterowniku S firmy Siemens

Prowadzący(a) Grupa Zespół data ćwiczenia Lp. Nazwisko i imię Ocena LABORATORIUM 4. PODSTAW 5. AUTOMATYKI

ELEMENTY AUTOMATYKI PRACA W PROGRAMIE SIMULINK 2013

interfejs szeregowy wyświetlaczy do systemów PLC

4. UKŁADY II RZĘDU. STABILNOŚĆ. Podstawowe wzory. Układ II rzędu ze sprzężeniem zwrotnym Standardowy schemat. Transmitancja układu zamkniętego

Politechnika Warszawska Instytut Automatyki i Robotyki. Prof. dr hab. inż. Jan Maciej Kościelny PODSTAWY AUTOMATYKI

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

ASTOR IC200ALG320 4 wyjścia analogowe prądowe. Rozdzielczość 12 bitów. Kod: B8. 4-kanałowy moduł ALG320 przetwarza sygnały cyfrowe o rozdzielczości 12

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Instrukcja nr 6. Wzmacniacz operacyjny i jego aplikacje. AGH Zespół Mikroelektroniki Układy Elektroniczne J. Ostrowski, P. Dorosz Lab 6.

Transkrypt:

4. REGULACJA PID W STEROWNIKACH PLC Algorytm PID należy do najczęściej stosowanych algorytmów w układach regulacji. Ze względu na to, że sterowniki realizują sterowanie w sposób cyfrowy, algorytm ten jest realizowany w nich w wersji dyskretnej a nie ciągłej. Sterowniki GE Fanuc Bloki funkcjonalne PIDISA i PIDIND, które zaliczono do grupy funkcji sterujących (Control Functions) (enable) PID (ok) (set point) SP CV (output) (process variable) PV MAN UP DN (address) Kiedy blok PID jest aktywny, ustawiony wcześniej okres próbkowania (Sample Period) jest porównywany z czasem mierzonym od ostatnio wykonanej iteracji algorytmu. Jeżeli upłynął już zadany czas, to wykonywana jest kolejna iteracja. Gdy obliczona zmienna wyjściowa bloku CV jest poza podanym zakresem (Upper Output Clamp lub Lower Output Clamp) lub zmieniła się szybciej niż zezwala na to minimalny czas zmiany wyjścia (Minimum Slew Time), to zmienna CV jest utrzymywana na odpowiedniej wartości granicznej, a wartość w buforze części całkującej jest odpowiednio dostosowywana (anti-reset windup). Po wyliczeniu zmiennej CV jest ona umieszczana w rejestrze przechowującym wartość wielkości wyjściowej w trybie sterowania ręcznego (Manual Command) i w wewnętrznym rejestrze wielkości wyjściowej (Internal CV), pod warunkiem, że blok PID jest w trybie pracy automatycznej (AUTO). Jeżeli blok znajduje się w trybie sterowania ręcznego (wejście MAN w stanie ON), to wielkość wyjściowa CV jest równa wartości z rejestru sterowania ręcznego, która z kolei może być inkrementowana, gdy na wejściu UP pojawi się wartość 1 lub dekrementowana, gdy 1 pojawi się na wejściu DN. Do rejestru przechowującego wielkość wyjściową w trybie regulacji ręcznej może być także wpisana dowolna wartość, pod warunkiem że blok PID znajduje się w trybie regulacji ręcznej.

Blok funkcjonalny PID zapewnia bezuderzeniowe (bumpless) przejście między trybami sterowania ręcznego i automatycznego, ponieważ zawartość bufora części całkującej jest dostosowywana do wielkości wyjściowej w trybie ręcznym. W czasie sterowania ręcznego nadal sprawdzane jest, czy nie zostały przekroczone zadane ograniczenia na wyjście (Upper Clamp, Lower Clamp) oraz czy prędkość jego zmian jest mniejsza niż podany współczynnik narastania Minimum Slew Time. Przesunięcie bazowe (Bias) może być wykorzystane nie tylko do przeniesienia wartości wyjścia na odpowiedni poziom, ale także w układzie regulacji z korekcją od zakłócenia, zwanym też sterowaniem ze sprzężeniem w przód (Feedforward Control) Schemat blokowy algorytmu PIDISA: SP PV + Σ - Strefa martwa Blok różniczkujący Blok proporcjonalny Blok całkujący Σ P Przesunięcie bazowe Σ Czas narastania Ograniczenie Polaryzacja CV Schemat blokowy algorytmu PID IND: SP PV + Σ - Strefa martwa Blok różniczkujący Blok proporcjonalny Blok całkujący P Przesunięcie bazowe Σ Czas narastania Ograniczenie Polaryzacja CV

Rejestry konfiguracyjne bloku PID: Adres Opis parametru %Ref + 0 %Ref + 1 Numer pętli sterowania * (Loop Number) Typ algorytmu (PID ISA, PID IND) ** (Algorithm) %Ref + 2 Okres próbkowania * (Sample Period) %Ref + 3 Strefa martwa (+) * (Dead Band (+)) %Ref + 4 Strefa martwa (-) * (Dead Band (-)) %Ref + 5 %Ref + 6 Współczynnik wzmocnienia * (Proportional Gain) Stała różniczkowania * (Derivative) %Ref + 7 Częstość całkowania * (Integral Rate) %Ref + 8 Przesunięcie * (Bias) %Ref + 9 Ograniczenie górne wartości wyjścia * (Upper Clamp) %Ref + 10 Ograniczenie dolne wartości wyjścia * (Lower Clamp) %Ref + 11 Minimalny czas zmiany sygnału na wyjściu regulatora o 100% * (Minimum Slew Time) %Ref + 12 Słowo konfiguracyjne * (Config Word) %Ref + 13 %Ref + 14 %Ref + 15 %Ref + 16 %Ref + 17 %Ref + 18 Tryb sterowania ręcznego * (Manual Command) Słowo stanu ** (Control Word) Wewnętrzny rejestr wartości zadanej ** (Internal SP) Wewnętrzny rejestr wypracowanej przez regulator wielkości wyjściowej ** (Internal CV) Wewnętrzny rejestr wartości zmiennej procesowej ** (Internal PV) Wielkość wyjściowa ** (Output) %Ref + 19 Bufor dla części różniczkującej ** (Diff Term Storage) %Ref + 20 %Ref + 21 %Ref + 22 %Ref + 23 %Ref + 24 %Ref + 25 %Ref + 26 Bufor dla części całkującej ** (Int Term Storage) Bufor dla części całkującej ** (Int Term Storage) Bufor dla narastania ** (Slew Term Storage) Wewnętrzny zegar ** (Clock). Jego zawartość określa czas, jaki upłynął od poprzedniego wykonania bloku (time last executed) Rejestr roboczy regulatora ** (Y Remainder Storage)

Adres Opis parametru %Ref + 27 %Ref + 28 %Ref + 29...34 %Ref + 35...39 Dolny zakres dla wyświetlania zmiennej procesowej i wartości zadanej * (Lower Range for SP, PV) Górny zakres dla wyświetlania zmiennej procesowej i wartości zadanej * (Upper Range for SP, PV) Zarezerwowane do użytku wewnętrznego (Reserved for internal use) Zarezerwowane do użytku zewnętrznego (Reserved for external use) %Ref - adres pierwszego z 40 rejestrów konfiguracyjnych * parametr, który może być ustawiany przez użytkownika ** parametr ustawiany i obsługiwany wyłącznie przez sterownik Parametry konfiguracyjne bloku PID: Parametr Numer pętli Algorytm Okres próbkowania Strefa martwa (+/-) Współczynnik wzmocnienia Stała różniczkowania Opis Wartość całkowita dodatnia, określająca nr pętli sterowania. Użycie jest opcjonalne. Liczba całkowita dodatnia, ustawiana przez sterownik dla określenia rodzaju algorytmu. Wartość 1 odpowiada algorytmowi PID ISA, 2 algorytmowi PID IND. Kolejne iteracje algorytmu PID są realizowane co podany okres z dokładnością do 100 mikrosekund. Jeżeli wartość ta jest równa 0, to kolejne iteracje są wykonywane w każdym cyklu, w którym uruchomiony jest blok PID. Zaleca się jednak ustawienie na 0.1 s zamiast na 0. Wartości całkowite ze znakiem. Strefa martwa określa o jaką wartość zmienna procesowa musi się zmienić w stosunku do wartości poprzedniej, aby zmiana została wzięta pod uwagę przy obliczeniach przez blok regulatora PID. Jeżeli parametr ma być pominięty, to powinien być ustawiony na 0. Liczba całkowita ze znakiem określająca współczynnik wzmocnienia regulatora PID. Liczba całkowita ze znakiem określająca stałą czasową różniczkowania w regulatorze PID.

Parametr Częstość całkowania Przesunięcie Górne i dolne ograniczenie sygnału wyjściowego Minimalny czas zmiany sygnału wyjściowego o 100% Słowo konfiguracyjne Tryb sterowania ręcznego Opis Liczba całkowita dodatnia określająca współczynnik całkowania jako liczba powtórzeń na 1000 s. Liczba całkowita ze znakiem dodawana do obliczonej w algorytmie PID wartości wyjścia regulatora. Liczby całkowite ze znakiem określające górny i dolny zakres dla wielkości wyjściowej wypracowanej przez regulator. Liczba całkowita dodatnia określająca minimalny czas zmiany sygnału wyjściowego regulatora w zakresie od 0 do 100%. Jeżeli ograniczenie prędkości wyjścia nie jest istotne, parametr ten może być ustawiony na 0. Istotne są tylko pierwsze 3 bity z tego rejestru, pozostałe powinny być ustawione na 0. Bit 0 Sposób wyznaczania błędu (Error Term). Wartość 0 oznacza, że błąd obliczany jest jako SP-PV, natomiast 1 odpowiada polaryzacji przeciwnej (PV-SP). Bit 1 Polaryzacja wyjścia (Output Polarity). Wartość 0 oznacza, że CV ma polaryzację dodatnią, dla 1 ujemną. Bit 2 Różniczkowanie sygnału wejściowego. Jeżeli bit ten jest ustawiony na 0, to różniczkowaniu podlega sygnał błędu. Gdy bit ma wartość 1, to różniczkowana jest tylko zmienna procesowa PV. Wartość wyjścia regulatora w trybie sterowania ręcznego

Konfiguracji każdego z wprowadzonych do programu bloków PID można dokonać: w programie, przez wpisanie odpowiednich wartości do rejestrów za pomocą funkcji przesuwania danych (MOVE, BLKMOV); przy użyciu programatora, wykorzystując opcję zoom (klawisz F10) w programie Logicmaster 90 Ekran konfiguracyjny bloku PID:

Sterowniki Modicon pakiet Concept Biblioteka CONT_CTL Biblioteka CONT_CTL (Regulacja ciągła ang. CONTinuous ConTroL) zawiera szereg EFB ułatwiających programiście realizację w sterowniku pętli regulacji, w szczególności opartych na algorytmie PID. Została ona podzielona na siedem grup: Conditioning Grupa ta przeznaczona jest głównie do przetwarzania pomiarów lub innych zmiennych, które jest wymagane przed wprowadzeniem wielkości do regulatora. Do grupy tej należą następujące EFB:!"DTIME: Dead Time opóźnienie sygnału wejściowego,!"integrator: Integrator with Output Limit całkowanie z ograniczeniem wyjścia,!"lag_filter: Lag Element, 1st Order filtr (inercja) 1-go stopnia,!"ldlg: Lead/Lag Function with Smoothing -!"LEAD: Differentiator with Delay element różniczkujący rzeczywisty,!"mflow: Mass Flow Controller obliczanie przepływu masy gazu na podstawie różnicy ciśnień,!"qdtime: Dead Time (Simple) uproszczone opóźnianie sygnału wejściowego,!"scaling: Scaling skalowanie zmiennej,!"totalizer: Totalling Unit całkowanie w czasie wartości przepływu (np. dla obliczenia masy)!"vel_lim: Velocity Limiter ogranicznik na prędkość zmiany sygnału. Controller Grupa ta zawiera podstawowe algorytmy regulacji wraz z możliwością automatycznego strojenia regulatora:!"autotune: Automatic Controller Tuning automatyczne strojenie regulatora PI (blok PI_B) lub PID (blok PIDFF),!"PI_B: Basic PI Controller podstawowy regulator PI,!"PIDFF: Complete PID Controller najbardziej ogólny regulator PID (w tym ze sprzężeniem w przód),!"step2: 2-Position On/Off Controller regulator dwupołożeniowy,!"step3: 3-Position On/Off Controller regulator trójpołożeniowy.

Mathematics Grupa obejmująca specjalistyczne przetwarzanie arytmetyczne, przydatne w układach regulacji:!"comp_db: Comparator komparator ze strefą martwą i histerezą,!"k_sqrt: Square Root pierwiastek kwadratowy z ważeniem i punktem odcięcia,!"muldiv_w: Multiplier/Divider ważone mnożenie/dzielenie 3 wielkości,!"sum_w: Summing Element ważona suma 3 wielkości. Output processing Grupa ta przeznaczona jest głównie do przetwarzania wielkości wyjściowych z regulatora przed ich wprowadzeniem na element wykonawczy. Do grupy tej należą następujące EFB:!"MS: Manual Output Control przełączanie na sterowanie ręczne,!"pwm1: Pulse Width Modulation modulacja szerokości impulsu,!"servo: Electric-Servomotor Handler sterownik dla serwomotoru,!"splrg: Controlling 2 actuators sterowanie w przypadku istnienia dwóch różnych elementów wykonawczych (np. grzanie/chłodzenie). Setpoint management Grupa obejmująca typowe funkcje wyboru wartości zadanej dla regulatorów:!"ramp: Ramp Generator generator wartości zadanej z liniową zmianą między wartościami,!"ratio: Ratio Controller regulator stosunku,!"sp_sel: Setpoint Selector przełącznik między różnymi wartościami zadanymi. Oprócz wymienionych tu pięciu głównych grup EFB, biblioteka CONT_CTL obejmuje jeszcze dodatkowe dwie grupy, przeznaczone dla użytkowników przyzwyczajonych do poprzednich wersji oprogramowania Concept: CLC zawiera wszystkie EFB, które należały do istniejącej poprzednio biblioteki CLC, CLC_PRO zawiera wszystkie EFB, które należały do istniejącej poprzednio biblioteki CLC_PRO. Algorytmy regulacji są realizowane z pewnym okresem próbkowania. Przedział czasu między kolejnymi realizacjami musi być znany i jest automatycznie wyznaczany przez blok funkcjonalny dla każdej realizacji. Blok taki może być umieszczony w dowolnym miejscu dowolnej sekcji i użytkownik nie musi się martwić o wyznaczanie okresu próbkowania. Niemniej jednak istnieją sytuacje, gdy użytkownik może żądać, aby funkcje regulacji były wykonywane ze stałym okresem próbkowania, np. w celu optymalizacji cyklu sterownika, poprawy jakości regulacji przez uniknięcie zbyt częstego próbkowania, zmniejszenia częstości pobudzania elementów wykonawczych, itp. W takich przypadkach należy do wejścia EN podłączyć blok funkcjonalny SAMPLETM, należący do grupy Specials w bibliotece System, który umożliwia kontrolę okresu, z jakim blok regulacji będzie wykonywany.

Tryby pracy Pewna liczba bloków EFB w bibliotece CONT_CTL zawiera zintegrowane z nimi zarządzanie trybem pracy, którym może być: Tracking (Śledzenie), Manual (Praca ręczna), Automatic (Praca automatyczna normalny tryb pracy bloku funkcjonalnego). W przypadku, gdy blok funkcjonalny może pracować zarówno w trybie śledzenia jak i w trybie pracy ręcznej, to tryb śledzenia ma wyższy priorytet nad trybem pracy ręcznej. Tryb śledzenia W niektórych blokach funkcjonalnych istnieje wejście binarne TR_S (TRacking Switch), które umożliwia (gdy TR_S = 1) wyprowadzenie na wyjście bloku OUT wartości wprowadzanej na dodatkowe wejście TR_I (Tracking Input). Innymi słowy wyjście OUT śledzi za wejściem TR_I, przy czym wewnętrzne zmienne bloku są uaktualniane w taki sposób, aby zapewnić gładki (bezuderzeniowy) powrót do trybu ręcznego lub automatycznego. Tryb taki może być wykorzystany w różnych sytuacjach: inicjowanie w trakcie procedury startowej, tryb śledzenia w przypadku zastosowania redundancji regulatorów w celu gładkiego przełączenia na regulator zapasowy (backup), programowe sterowanie trybem pracy w celu np. zapobieżenia bezpośredniemu sterowaniu przez regulator, który jest w fazie strojenia. Przejście bloku funkcjonalnego w tryb śledzenia:

Przełączanie trybu pracy ręczna automatyczna Jeśli w bloku funkcjonalnym występuje wejście binarne MAN_AUTO, to umożliwia ono ustalenie trybu pracy: ręcznej (MAN_AUTO = 0) albo automatycznej (MAN_AUTO = 1). Kiedy blok funkcjonalny jest w trybie pracy automatycznej, to wartość wyjściowa jest obliczana zgodnie z właściwym algorytmem. W trybie pracy ręcznej wyjście OUT może być ręcznie ustawiane przez użytkownika (np. za pomocą jakiegoś interfejsu). W trybie Manual modyfikowane są odpowiednie wewnętrzne zmienne bloku, aby zapewnić gładkie przełączenie z trybu pracy ręcznej na automatyczną. Przełączenie trybu pracy ręczna automatyczna:

Błędy wykonania Większość bloków funkcjonalnych posiada na wyjściu słowo STATUS, informujące o wykrytych błędach. Ponadto zwykle w bloku zawarte są pewne mechanizmy korygujące błędy w parametrach. Każdy bit w słowie statusowym stanowi flagę oznaczającą wystąpienie określonego błędu, ostrzeżenia lub informującą o zdarzeniu. Znaczenie pierwszych 8 bitów słowa STATUS jest w każdym przypadku takie samo. Znaczenie pozostałych bitów (od 8 do 15) zależy od konkretnego bloku. Znaczenie bitów w słowie STATUS: nr bitu Znaczenie Typ 0 Błąd wykonania operacji zmiennoprzecinkowej (np. pierwiastek kwadratowy z liczby ujemnej) 1 Wykryto niedopuszczalną wartość na jednym z wejść: nie odpowiadającą formatowi liczby zmiennoprzecinkowej lub równą nieskończoność (pochodzącą np. z obliczeń w poprzednim bloku) błąd błąd 2 Dzielenie przez zero w operacji zmiennoprzecinkowej błąd 3 Przekroczenie zakresu w operacji zmiennoprzecinkowej błąd 4 Którykolwiek z parametrów wejściowych jest spoza zakresu. Wartość użyta w bloku jest więc obcięta. ostrzeżenie lub informacja 5 (*) Osiągnięto dolne ograniczenie na głównym wyjściu bloku. informacja 6 (*) Osiągnięto górne ograniczenie na głównym wyjściu bloku. informacja 7 Dolne i górne ograniczenia dla parametru wejściowego są identyczne błąd (*) Jeśli zamieniono ograniczenia górne i dolne (out_min >= out_max), to na wyjściu pojawi się wartość mniejsza, tzn. out_max.

Blok funkcjonalny PIDFF Blok funkcjonalny PIDFF należy do grupy Controls w bibliotece CONT_CTL i realizuje najbardziej ogólną postać algorytmu regulacji PID z możliwością sprzężenia wprzód. Blok ten oferuje wiele różnych własności, a między innymi: wybór struktury: równoległej (ang. parallel) lub mieszanej (ang. mixed serial/parallel), wyliczanie przyrostowe dla części proporcjonalnej, całkującej i różniczkującej, 2 mechanizmy zapobiegające nasyceniu części całkującej (anti-reset windup), wyrażanie wartości zadanej, zmiennej procesowej i wyjściowej w jednostkach fizycznych, działanie proste lub odwrotne, różniczkowanie na zmiennej procesowej lub na błędzie regulacji, parametryzacja współczynnika wzmocnienia dla części różniczkującej, ważenie wartości zadanej dla działania proporcjonalnego (tłumienie przeregulowań), możliwość użycia działania całkującego poza blokiem (wejście RCPY), działanie w przód (ang. feed-forward) w celu kompensacji zakłóceń, strefa martwa dla błędu regulacji, algorytm prędkościowy lub pozycyjny, górne i dolne ograniczenia na wielkość wyjściową (w funkcji trybu pracy), ograniczenia na prędkość zmiany sygnału, podniesienie sygnału wyjściowego (ang. output bias), tryb śledzenia (tracking mode), górne i dolne ograniczenia na wartość zadaną. W celu zwiększenia funkcjonalności bloku PIDFF często łączy się go z innymi współpracującymi blokami: AUTOTUNE w celu automatycznego strojenia parametrów regulacji bloku PIDFF, SP_SEL w celu wyboru wewnętrznej lub zewnętrznej wartości zadanej, MS aby kontrolować tryb pracy ręcznej.

Symbol bloku funkcjonalnego PIDFF: W zależności od struktury algorytmu PID w bloku PIDFF transmitancja opisana jest jednym z poniższych wzorów: dla struktury mieszanej (mixed structure): td s OUT kp 1 = 1 + + IN, ti s td 1 + s kd dla struktury równoległej (parallel structure): td s OUT 1 = kp + K + K IN, ti s td 1+ s kd gdzie out_sup out_inf K = jest współczynnikiem wzmocnienia. pv_sup pv_inf

Ogólne równanie dla wyjścia zależy w rzeczywistości od tego, czy w bloku zastosowano algorytm pozycyjny (absolute) czy prędkościowy (incremental): dla pozycyjnego, gdy ti = 0 (brak części całkującej): OUT = TermP + TermD + TermFF + outbias OUTD = OUT(new) OUT(old) dla prędkościowego, gdy ti 0 (występuje część całkująca): OUTD = TermP + TermI + TermD + TermFF OUT = OUT(old) + OUTD gdzie: TermP wartość dla części proporcjonalnej, TermI wartość dla części całkującej, TermD wartość dla części różniczkującej, TermFF wartość dla sprzężenia wprzód (kompensacja zakłóceń), (new) oznacza wartość obliczoną dla bieżącego wykonania bloku, (old) oznacza wartość obliczoną dla poprzedniego wykonania bloku.

Parametry bloku PIDFF: Parametr Typ danej Znaczenie PV REAL Zmienna procesowa (Process Value) SP REAL Wartość zadana (Setpoint) FF REAL Wejście dla sprzężenia wprzód (Feed Forward) RCPY REAL Wartość rzeczywista kopiowana na wyjście MAN_AUTO BOOL Tryb pracy (1 automatyczny, 0 ręczny) PARA Para_PIDFF Parametry TR_I REAL Wejście początkowe (dla trybu śledzenia) TR_S BOOL Czy tryb śledzenia (gdy = 1) OUT REAL Wartość wyjścia (Absolute Output) OUTD REAL Przyrost wyjścia, różnica między wartością bieżącą a poprzednią (Incremental Output) MA_O BOOL Bieżący tryb pracy bloku (1 automatyczny, 0 inny, tzn. ręczny lub śledzenia) INFO Info_PIDFF Informacja dodatkowa STATUS WORD Słowo statusowe Elementy typu pochodnego Info_PIDFF: Element Typ danej Znaczenie dev REAL Błąd regulacji PV SP (Deviation Value) out_ff REAL Obliczona wartość działania dla sprzężenia w przód

Elementy typu pochodnego Para_PIDFF: Element Typ danej Znaczenie Id UINT Zarezerwowane dla funkcji automatycznego strojenia pv_inf REAL Dolne ograniczenie dla zakresu zmiennej procesowej PV pv_sup REAL Górne ograniczenie dla zakresu zmiennej procesowej PV out_inf REAL Dolne ograniczenie dla zakresu zmiennej wyjściowej OUT out_sup REAL Górne ograniczenie dla zakresu zmiennej wyjściowej OUT rev_dir BOOL Kierunek działania (1 prosty, 0 odwrotny) mix_par BOOL Struktura algorytmu PID (1 równoległa, 0 mieszana) aw_type BOOL Czy filtracja działania anti-reset windup (gdy = 1) en_rcpy BOOL Czy wykorzystywać wejście RCPY (gdy = 1) kp REAL Współczynnik wzmocnienia proporcjonalnego (Proportional gain) ti TIME Stała całkowania (Integration time) td TIME Stała różniczkowania (Derivation time) kd REAL Współczynnik wzmocnienia różniczkowania (Derivation gain) pv_dev BOOL Działanie różniczkujące dla: (1 błędu regulacji, 0 zmiennej procesowej) bump BOOL Sposób przełączenia na pracę automatyczną (1 z uderzeniem 0 bez uderzenia) dband REAL Strefa martwa dla błędu regulacji (Deviation dead band)) gain_kp REAL Tłumienie wzmocnienia proporcjonalnego w zakresie strefy martwej błędu dband. ovs_att REAL Tłumienie przeregulowania outbias REAL Ręczna kompensacja błędu statycznego (podniesienie wyjścia) out_min REAL Dolne ograniczenie na wartość zmiennej wyjściowej OUT out_max REAL Górne ograniczenie na wartość zmiennej wyjściowej OUT Outrate REAL Ograniczenie na zmianę wyjścia (w jednostkach na sekundę), 0 ff_inf REAL Dolne ograniczenie dla zakresu sprzężenia wprzód FF ff_sup REAL Górne ograniczenie dla zakresu sprzężenia wprzód FF Otff_inf REAL Dolne ograniczenie na obliczoną wartość sprzężenia wprzód out_ff Otff_sup REAL Górne ograniczenie na obliczoną wartość sprzężenia wprzód out_ff

Parametryzacja bloku Poniżej omówiono pewne szczególne przypadki działania bloku PIDFF w zależności od ustawienia niektórych parametrów bloku: Struktura równoległa i mieszana Struktura algorytmu PID zależy od wartości parametru mix_par:!"jeśli mix_par = 0, to struktura jest mieszana, czyli działanie proporcjonalne ma miejsce za sumą części różniczkującej i całkującej. W tym przypadku wzmocnienie K = kp.!"jeśli mix_par = 0, to struktura jest równoległa, czyli wszystkie trzy części: proporcjonalna, różniczkująca i całkująca biegną równolegle względem siebie. W tym przypadku części różniczkująca i całkująca nie są mnożone przez wzmocnienie kp, a wzmocnienie K wynika bezpośrednio ze stosunku zakresów zmian sygnału wyjściowego i zmiennej procesowej. Algorytm pozycyjny Jeśli w algorytmie nie występuje część całkująca (gdy ti = 0), to mamy do czynienia z algorytmem pozycyjnym, dla którego najpierw obliczana jest wartość wyjścia OUT, a następnie na jej podstawie przyrost OUTD. Algorytm prędkościowy Jeśli w algorytmie występuje część całkująca (gdy ti > 0), to mamy do czynienia z algorytmem prędkościowym, dla którego najpierw obliczana jest wartość zmiany wyjścia OUTD, a następnie na jej podstawie wartość OUT. Ten typ algorytmu umożliwia użytkownikowi użycie bloku SERVO za blokiem PIDFF. Ponadto zapewnia dodatkowe możliwości:!"wykonywanie całkowania poza blokiem (gdy en_rcpy = 1) w tym przypadku działanie regulatora zmienia się, ponieważ pętla jest otwarta i zamiast równania: OUT(new) = OUT(old) + OUTD wartość wyjścia jest obliczana według OUT(new) = RCPY + OUTD, gdzie RCPY stanowi parametr wejściowy bloku. Mechanizm ten jest szczególnie przydatny dla układów regulacji kaskadowej. W tym przypadku wartość wyjścia OUT nie jest ograniczana.

!"Algorytm prędkościowy zawiera w sobie mechanizm zabezpieczenia przed nasyceniem części całkującej (anti-reset windup). Jest on wykorzystywany, jeśli parametr aw_type = 0. W tym przypadku może się zdarzyć, że wyjście ulega nasyceniu i nagle opuszcza ograniczenie, chociaż nie wystąpiła zmiana znaku błędu regulacji (np. wskutek chwilowych wahań zmiennej procesowej). Inny mechanizm występuje, gdy aw_type = 1, który zapobiega opuszczeniu przez wyjście ograniczenia, gdy nie wystąpiła zmiana znaku błędu. Ważenie wartości zadanej w części proporcjonalnej (tłumienie przeregulowania) W przypadku algorytmu prędkościowego (gdy ti > 0), parametr ovs_att zezwala na ważenie wartości zadanej w części proporcjonalnej, dla której błąd regulacji jest obliczany na podstawie wyrażenia: dev = PV (1 ovs_att) SP. Może to powodować tłumienie ewentualnego przeregulowania spowodowanego przez zmiany wartości zadanej. Parametr ovs_att może zmieniać się liniowo w zakresie od 0 (przypadek klasyczny, gdy część proporcjonalna jest obliczana na podstawie błędu regulacji) do 1 (część proporcjonalna obliczana tylko na podstawie zmiennej procesowej PV przypadek procesów bardzo czułych lub z całkowaniem). Strefa martwa dla błędu regulacji Modyfikacja błędu regulacji w ramach strefy martwej: W sytuacji, gdy istnieje potrzeba ograniczenia pobudzania elementu wykonawczego dla niewielkich odchyłek zmiennej procesowej od wartości zadanej można na błąd regulacji nałożyć pewną strefę martwą dband. Jeżeli wartość błędu będzie się zawierała w tej strefie, to błąd taki będzie traktowany jako zerowy. Można także modyfikować wpływ błędu w ramach strefy martwej za pomocą dodatkowego parametru gain_kp. Stanowi on współczynnik proporcjonalności, przez który mnożona jest wartość błędu w zakresie strefy określonej przez dband, przed wprowadzeniem jej do części proporcjonalnej i całkującej.

Parametryzacja współczynnika wzmocnienia w części różniczkującej Część różniczkująca zawiera dolnoprzepustowy filtr pierwszego stopnia. Jego współczynnik wzmocnienia kd można dobierać, aby uzyskać odpowiednie wygładzenie sygnału różniczkowanego. Zapobiega to gwałtownym dużym zmianom sygnału sterującego spowodowanym skokowymi zmianami błędu regulacji. Sprzężenie wprzód w celu kompensacji zakłóceń (wejście FF) W klasycznym algorytmie PID regulator zmienia sygnał sterujący reagując na zmiany wyjścia procesu (sprzężenie zwrotne). Stąd, w przypadku pojawienia się zakłóceń regulator reaguje dopiero wtedy, gdy wyjście procesu odchyla się od wartości zadanej. Sprzężenie wprzód (ang. feed forward) umożliwia kompensację wpływu pojawiającego się zakłócenia w sytuacji, gdy może być ono mierzone. Jest to działanie w pętli otwartej, polegające na takiej zmianie sygnału sterującego, która skompensuje przewidywany wpływ zakłócenia na wyjście procesu. Do sygnału wyjściowego regulatora dodawana jest wartość out_ff odpowiadająca sprzężeniu wprzód, obliczanemu dla wejścia FF w następujący sposób: ( FF ff _ inf ) ( otff _ sup otff _ inf ) ( ff _ sup ff _ inf ) out _ ff = + otff _ inf Jeżeli ograniczenia dla zakresu FF są sobie równe (ff_sup = ff_inf), to sprzężenie wprzód jest ignorowane. Inne parametry!"szybkość zmian sygnału wyjściowego jest ograniczana przez parametr outrate.!"w trybie pracy automatycznej sygnał wyjściowy jest ograniczony przez parametry out_min i out_max, w trybie pracy ręcznej lub śledzenia przez out_inf i out_sup.!"za pomocą parametru rev_dir określa się kierunek działania algorytmu PID tak, aby dostosować się do charakterystyki obiektu i elementu wykonawczego w celu zapewnienia ujemnego sprzężenia zwrotnego w pętli regulacji.!"działanie różniczkujące może być wykonane albo na zmiennej procesowej (pv_dev = 0), albo na błędzie regulacji (pv_dev = 1)!"Blok PIDFF może być wykonywany w trybie czystego całkowania (dla kp=0).

Tryby pracy Tryb pracy TR_S MAN_AUTO Automatyczny (automatic) 0 1 Ręczny (manual) 0 0 Śledzenie (tracking) 1 0 lub 1 W trybie automatycznym wyjścia bloku OUT oraz OUTD stanowią wynik obliczeń wewnątrz bloku, przy czym wyjście OUT jest odpowiednio obcinane w przypadku przekroczenia jednego z ograniczeń out_min lub out_max. W trybie ręcznym wyjście OUT nie jest obliczane przez blok, ale może być bezpośrednio ustawiane przez użytkownika, przy czym wartość OUT jest nadal ograniczana, ale tym razem przez ograniczenia zakresu out_inf oraz out_sup (zamiast przez out_min oraz out_max). W trybie śledzenia wartość wejścia TR_I jest kopiowana na wyjście OUT, przy czym OUT jest ograniczane tak samo jak w trybie ręcznym przez out_inf oraz out_sup. Przełączanie trybu pracy z ręcznego lub śledzenia na automatyczny jest w przypadku algorytmu prędkościowego (ti <> 0) bezuderzeniowe. W przypadku algorytmu pozycyjnego (ti = 0) zachwanie się bloku zależy od parametru bump: Jeśli bump = 0, to wartość parametru outbias jest przeliczana w taki sposób, aby obliczona wartość wyjścia OUT zmieniała się bezuderzeniowo w stosunku do ostatniej wartości w poprzednim trybie: outbias = OUT(new) direction kp dev(old) out_f(old). Jeśli bump = 1, to przełączenie może spowodować uderzenie.

Schemat funkcjonalny bloku PIDFF

Słowo statusowe i błędy wykonania W słowie statusowym STATUS wykorzystywanych jest 8 bitów. Znaczenie bitów od 0 do 3 jest takie, jak opisano wyżej. Poniżej opisano bardziej szczegółowo znaczenie bitów od 4 do 7: bit 4 = 1!"Wartość zadana SP jest spoza zakresu [pv_inf, pv_sup] w tym przypadku do obliczeń w bloku użyta będzie ta z wartości ograniczających, która została przekroczona.!"jeden z parametrów kp, dband, gain_kp, outrate jest ujemny w tym przypadku w bloku użyta będzie wartość 0 zamiast wartości błędnej.!"parametr kd < 1 (gdy jednocześnie td <> 0) w bloku użyta będzie wartość kd = 1.!"Parametr ovs_att jest spoza zakresu [0, 1] do obliczeń użyta będzie ta wartość, która została przekroczona.!"jeden z parametrów out_min lub out_max jest spoza zakresu [out_inf, out_sup] do obliczeń użyta będzie ta z wartości ograniczających, która została przekroczona.!"jeden z parametrów outbias, otff_inf lub otff_sup jest spoza zakresu [(out_min out_max), (out_max out_min)] do obliczeń użyta będzie ta z wartości ograniczających, która została przekroczona. bit 5 = 1 Wielkość wyjściowa OUT osiągnęła dolne ograniczenie out_min. bit 6 = 1 Wielkość wyjściowa OUT osiągnęła górne ograniczenie out_max. bit 5 = 1 Ograniczenia pv_inf oraz pv_sup są jednakowe. Uwaga: W trybie pracy ręcznej bity 5 lub 6 będą miały wartość 1 tylko w jednym cyklu. Jeżeli bowiem użytkownik wprowadzi ręcznie wartość OUT spoza wymaganego zakresu, to jeden z tych bitów zostanie ustawiony, ale jednocześnie wartość OUT zostanie odpowiednio obcięta i stąd w następnym cyklu będzie już mieściła się w zakresie. W sytuacji wystąpienia błędu, tzn. kiedy na wejściu bloku wykryta zostanie wartość nie odpowiadająca formatowi liczby zmiennoprzecinkowej, powstanie błąd w wykonaniu operacji zmiennoprzecinkowej lub ograniczenia pv_inf oraz pv_sup będą jednakowe, to wartości wyjść bloku: OUT, OUTD, MA_O oraz INFO pozostaną niezmienione.