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

Dobór nastaw reg. PID z wykorzystaniem alg. genetycznych

lmarcinll 22 Paź 2013 11:05 2622 2
  • #1 22 Paź 2013 11:05
    lmarcinll
    Poziom 9  

    Witam,

    mam pytanie dotyczące regulatora PID oraz algorytmu genetycznego. Otóż mam zrobić strojenie reg. PID z wykorzystaniem algorytmów genetycznych dla obiektu o transmitancji G(s)=(1/2s+1)*e^(-3s). W jaki sposób to wogóle zrobić? Czy należy budować model w Simulink? Obliczenia w MATLABIE/Simulinku. Robiłem już inne algorytmy (Fuzzy, Neural) ale z tym nie mam pojęcia. Proszę o pomoc jeśli ktoś wie jak to zrobić.

    0 2
  • #2 22 Paź 2013 23:08
    jupi23
    Poziom 15  

    Specjalistą w tej dziedzinie nie jestem ale na początek to wziąłbym kartkę papieru i narysował schemat blokowy całego układu (sygnał błędu, który jest podawany na regulator, regulator PID, obiekt sterowany, sprzężenie zwrotne). Sygnał błędu to zewnętrzna nastawa minus to co przychodzi ze sprzężenia zwrotnego. U ciebie występuje opóźnienie w transmitancji, z którym trzeba sobie jakoś poradzić. Być może istnieją metody projektowania bezpośrednio działające na opóźnieniu, w naszym przypadku e^(-3s), ale na początek chyba nic by się nie stało jakbyśmy te opóźnienie zaaproksymowali jakąś funkcją wymierną. Możemy to zrobić za pomoca aproksymacji Pade pierwszego rzędu (ang. first-order Pade approximation). Inna metoda to użycie szergu Taylora do aproksymacji ale Pade nam wystarczy na początek.

    Mając schemat i mogąc wypisać równania w postaci wymiernej bierzemy tak zwane open-loop transfer function do analizy. W naszym przypadku, przyjmując, że nie ma niczego w pętli sprzężenia zwrotnego jest to po prostu iloczyn transmitancji obiektu i regulatora PID. I teraz coś czego nie ma w twoim zadaniu. Nie wiemy jakie parametry mamy osiągnąć za pomocą regulatora, tzn jak ma zachowywać się cały układ. A te parametry mogą być opisane w dziedzinie częstotliwości jako tak zwane phase margin lub crossover frequency, w dziedzinie czasu jako czas narastania odpowiedzi układu, overshoot, czas ustalania się odpowiedzi itd. Oczywiście te parametry zależą od wartości Kp. Ki i Kd w regulatorze. Więc nie mając tych danych nie wiemy co dalej mamy robić.

    Nigdy nie napisałem żadnego programu używając algorytmu genetycznego ale domyślam się, że trzeba wylosować poprostu jakiś zbiór wartości parametrów regulatora PID, które będą przechodziły "ewolucję" w postaci podstawienia ich do open loop transmitancji i sprawdzenia czy ta zgadza się z tym co chcemy aby robiła a jeżeli nie to odpowiednio je zmodyfikować.

    0
  • #3 06 Lis 2013 23:05
    lmarcinll
    Poziom 9  

    Postanowiłem rozwiązać ten problem za pomocą Simulinka. Zbudowałem model układu w Simulinku (rysunek). Następnie należy napisać m-plik, który będzie funkcją dla algorytmu genetycznego w narzędziu gatool. Z tym skryptem mam właśnie problem. Wiem, że ma to być coś w stylu:
    function my(x)
    P(x)
    I(x)
    D(x)
    result my
    Czy ktoś wie jak powinien wyglądać ten skrypt poprawnie i jak uruchomić symulację w Simulinku, aby debugger nie wyrzucał błędów (reg. PID musi w nastawach mieć wpisane odpowiednio P- jako wzmocnienie, I- całkowanie oraz D-rózniczkowanie nie mogą być liczby). Serdecznie dziękuję za pomoc.

    linik do schematu https://obrazki.elektroda.pl/7595731700_1383775507.jpg

    0