logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dobór nastaw kaskady reg. PI-PI funkvją fminsearch

Adikus777 06 Maj 2013 18:55 2661 9
REKLAMA
  • #1 12278644
    Adikus777
    Poziom 10  
    Posty: 24
    Witam,
    posiadam model matematyczny obiektu i do niego układ sterowania kasjkada reg. PI-PI. Układ ma 2 wejscia i 8 wyjsc, przy czym 4 sa pochodnymi. Jak wykorzystac funkcję fminsearch do doboru nastaw tych reulatorów? Posaiadam opis modelu w postaci macierzy stanu uzyskanego w wyniku linearyzacji.
  • REKLAMA
  • Pomocny post
    #2 12280048
    Rariusz
    Specjalista Automatyk
    Posty: 1773
    Pomógł: 267
    Ocena: 126
    Witam,

    Po pierwsze pisz po Polsku.

    Po drugie. W przykładach na stronie http://www.mathworks.com/help/matlab/ref/fminsearch.html
    widać że do funkcji fminsearch należy przekazać jako parametr
    funkcję dla której chcemy znaleźć minimum.

    W Twoim przypadku należy w funkcji która zostanie przekazana jako
    parametr dodać polecenia odpowiedzialne za wykonanie odpowiedzi
    obiektu na skok jednostkowy. Następnie należy pobrać odpowiedź obiektu
    i policzyć kryterium jakościowe regulacji i to przekazać jako parametr
    zwrotny. Funkcja fminsearch będzie manipulowała parametrami
    P oraz I w celu znalezienie minimum.

    Robiłem już coś takiego i nie jest to skomplikowane. Poniżej
    przykładowe wywołanie z wykorzystaniem algorytmu genetycznego

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam,
  • #3 12285053
    Adikus777
    Poziom 10  
    Posty: 24
    Napisałem taki skrypt w m-file:

    function y=pid (x)
    assign ('base','k1',x(1)); assign ('base','k2',x(2));
    assign ('base','Ti2',x(3)); assign ('base','k3',x(4));
    assign ('base','k4',x(5)); assign ('base','Ti4',x(6));
    [t,xx,yy]=sim('pid.mdl',30); y=yy(end);

    i zmodyfikowalem schemat z sterowaniem: Dobór nastaw kaskady reg. PI-PI funkvją fminsearch

    Dobór ma być wg. kryterium Jise czy też Jiae. Może to jest proste, ale zawsze miałem problem z pisaniem progrramów jakich kolwiek. Pytanie czego jeszcze brakuje?
  • REKLAMA
  • Pomocny post
    #4 12285331
    Rariusz
    Specjalista Automatyk
    Posty: 1773
    Pomógł: 267
    Ocena: 126
    Witam,

    W modelu są cztery regulatory z tego co widzę a parametrów do
    optymalizacji jest 6. Czy ilość jest prawidłowa?
    Na początek należy pobrać odpowiedź obiektu ale to już jest.
    Mając odpowiedź obiektu musimy policzyć kryterium.

    Cytat:
    kryterium Jise czy też Jiae


    Moim zdaniem ISE. Jest wzór na to. Należy policzyć sumę
    kwadratu błędu z uchybu i to będzie przekazane do zmiennej
    y. Następnie wykonać symulację.

    Pozdrawiam,
  • REKLAMA
  • #5 12285475
    Adikus777
    Poziom 10  
    Posty: 24
    Tak parametrów jest 6 bo ma to być kaskada reg. PI-P.
    Dobrze, tylko czy układ ten jest prawidłowy do wyznaczania tych nastaw regulatora?
  • #6 12285502
    Rariusz
    Specjalista Automatyk
    Posty: 1773
    Pomógł: 267
    Ocena: 126
    Witam,

    Tego nie wiem, powinno działać. Trzeba wykonać
    symulację aby się o tym przekonać.

    Pozdrawiam,
  • REKLAMA
  • #7 12296029
    Adikus777
    Poziom 10  
    Posty: 24
    Symulacja się nie odbywa. Wewnątrz reg. wpisałem poszczególne parametry: p1, Ti1, itd.
    Chciałbym się dowiedzieć gdzie wpisać tą funkcję kryterium Jise?
    I czy potrzebny jest jeszcze jeden dodatkowy m plik?
  • Pomocny post
    #8 12296095
    Rariusz
    Specjalista Automatyk
    Posty: 1773
    Pomógł: 267
    Ocena: 126
    Witam,

    Tu należy wpisać kryterium
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam,
  • #9 12317422
    Adikus777
    Poziom 10  
    Posty: 24
    Kryterium jest zrobione na schemacie w postaci bloków, symulacja działa, ale parametry, które otrzymalem są kompletnie nie odpowiednie.
    Teraz bawie się parametrami, które mają dawać jakąś wage do poszczególnych zmiennych. Do tego całka z uchybu jest bardzo duża czasem nawet 300. Czy można wprowadzić polecenie dzieki któremu te parametry beda sprawiac że całka bedzie mniejsza i jak ograniczyc prametry otrzymywane za pomoca funkcji fminsearch od 0, czyli żeby wzmocnienia były dodatnie? Prubowałem za pomocą kodu, czyli np.:
    a=0.1;
    a1=1;
    b=0.1;
    b1=10;
    k1=0.01 && k1>0;
    k2=10 && k2>0;
    ti2=0.265 && ti2>0;
    k3=0.02 && k3>0;
    k4=3 && k4>0;
    ti4=0.7 && ti4>0;
    x=[k1 k2 ti2 k3 k4 ti4];
    x>0
    y=fminsearch('pid1',x0)
    Ale nie poskutkowało.
  • #10 12317432
    Rariusz
    Specjalista Automatyk
    Posty: 1773
    Pomógł: 267
    Ocena: 126
    Witam,

    Należy wprowadzić ograniczenia w postaci dodatkowej funkcji
    i te ograniczenia przekazać do funkcji fminsearch.

    Pozdrawiam,

Podsumowanie tematu

✨ W dyskusji poruszono temat doboru nastaw regulatorów PI-PI w układzie kaskadowym dla modelu matematycznego obiektu. Użytkownik zapytał, jak wykorzystać funkcję fminsearch do optymalizacji tych nastaw, mając na uwadze, że układ ma 2 wejścia i 8 wyjść, z czego 4 są pochodnymi. Odpowiedzi sugerowały, aby w funkcji przekazywanej do fminsearch uwzględnić symulację odpowiedzi obiektu na skok jednostkowy oraz obliczenie kryterium jakości regulacji, takiego jak ISE. Użytkownik napotkał trudności z parametrami regulatorów oraz z ograniczeniami, które powinny być wprowadzone do funkcji fminsearch. Wskazano, że można to zrobić poprzez dodatkową funkcję ograniczającą. Użytkownik z powodzeniem przeprowadził symulację, ale wyniki były niezadowalające, co skłoniło go do dalszej optymalizacji parametrów.
Wygenerowane przez model językowy.
REKLAMA