Elektroda.pl
Elektroda.pl
X
Elektroda.pl
SterControlSterControl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Step 7 FB41 Matlab OPC - nastawy regulatora PID

03 Sty 2012 14:39 2472 4
  • Poziom 9  
    Witam,

    Mam problem z nastawami regulatora PID w step 7 (fb41). PLC-sim polączony przez OPC z Matlabem. W matlabie mam obiekt inercyjny II rzędu z opóźnieniem (e^(-0.3s)/s^2+s+1), wartość zadana jako skok wchodzi do OPC_write (PID_SP)
    potem z OPC_Read (PID_CV) na transmitancje i to do OPC_write(PID_PV).
    Blok fb41 mam umieszczony w OB35.

    Nastawy metodą zieglera-nicholsa wyliczam sobie w matlabie na osobnym modelu z taką samą transmitancją. Dobrane nastawy działają dobrze.
    Natomiast, gdy te same nastawy dam (po przez PID Control. Parameter Assignment), regulator nie działa poprawnie.

    Nie wiem dlaczego tak się dzieje.
    Czy ktoś mógłby mi pomóc?
  • SterControlSterControl
  • Poziom 11  
    Drogi kolego,

    zajmuję się podobnymi sprawami i możliwe, że możemy sobie pomóc wzajemnie. Co do Twojego problemu: czy wyliczasz nastawy pod Simulinkiem czy z poziomu Matlaba? Jaką dokładnie postać regulatora używasz do wyliczeń? Pytam, ponieważ w różnych programach różnie traktuje się tak zwane nastawy. Od pewnej wersji Matlaba (nie wiem dokładnie od której ale w 2010 już tak jest) w Simulinku jest gotowy bloczek PID. Zwróć uwagę na taki przykład:
    Nastawy z Simulinka: P=1; I=0.1
    Aby osiągnąć porównywalną dynamikę regulatora w FB41 jego nastawy powinny wyglądać tak: P=1; Ti=10

    Być może Twój problem jest podobny i trzeba się tylko zastanowić nad odpowiednią interpretacją wyliczonych nastaw. Problem niestety może być również bardziej złożony. Trzeba pamiętać, że nawet najprostszy PID (bo takim jest właśnie FB41) posiada różne dodatkowe funkcje jak np. ograniczenie wartości wyjściowej regulatora albo antywindup. Przez ich obecność wyliczone nastawy w niedokładnej symulacji mogą się rozjeżdżać po przeniesieniu do sterownika.

    W tym miejscu mam do Ciebie dwa pytania:
    1. W jaki sposób symulujesz pracę regulatora pod Matlabem i jaką postać regulatora stosujesz? Jeśli robisz to tylko na wzorach w przestrzeni roboczej to podaj swój wzór a jeśli pod Simulinkiem to może wrzuciłbyś zdjęcie ekranu z układem?
    2. Czy mógłbyś wyjaśnić krok po kroku jak połączyć PLCSima z Matlabem?

    pozdrawiam
    gandalftaurus
  • SterControlSterControl
  • Poziom 9  
    Problem w pewnym stopniu rozwiązałem tzn. nastawy wyliczone prostymi metodami czyli m.in. Zieglera-Nicholsa nie nadawały się do regulatora umieszczone w PLCsim (blok FB41) prawdopodobnie problem z opóźnieniami wynikającymi z komunikacją między matlabem, a PLCSim.
    Nastawy wyliczyłem minimalizując wskaźnik jakości (całka z kwadratu uchybu).
    Jednak i one nie działały poprawnie w bloku FB41. Dopiero poprawne dobranie czasu próbkowania w simulinku (bloki OPC Read, OPC Write, a także czas symulacji) rozwiązały problem - wszystko ustawiłem taki sam czas w jakim wywoływany był blok OB35 w Step7 (w moim przypadku 100ms).

    W Simulinku stosuje normalnie regulator w postaci bloku PID, który wychodzi na transmitancję umieszczoną w bloku TransFnc (czy jakoś tak).

    PLCSim łącze z Matlabem (Simulinkiem) poprzez serwer OPC i bloki z toolboxa OPC.
    Można ściągnąć darmowy serwer OPC bez problemu. Edytujemy plik .xml tego serwera, wpisując wszystkie zmienne, które chcemy przekazywać między Matlabem - PLCsim. Identyczne zmienne i adresy muszą być wpisane w Step7 w zmiennych. Następnie ustawiamy parametry bloków OPC w matlabie. W tych blokach mamy możliwość połączenia się z dostępnymi serwerami OPC, w tym przypadku jest tylko ten nasz do wyboru. Wybieramy zapis/odczyt synchroniczny lub asynchroniczny - należy pamiętać by wybrać zapis/odczyt z urządzenia (device), bo w przeciwnym wypadku nie zadziała.

    Mam nadzieję, że napisałem w miarę jasno.
    W razie czego to podaj maila to wyślę Ci część projektu, w którym działa komunikacja między Matlabem, a PLCSim.

    Pozdrawiam,
    Baki
  • Poziom 1  
    Witam czy mógłbym prosić o przesłanie wspomnianej części projektu. Realizuję pracę magisterską z tego zagadnienia i chciałbym sprawdzić swoje połączenie.
  • Poziom 1  
    Dołączam się do prośby kolegi