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

Matlab 6-problemy z uzyskaniem charakterystyk czasowych Tran

wierus 19 Sty 2005 16:54 4882 12
REKLAMA
  • #1 1152407
    wierus
    Poziom 10  
    Posty: 26
    Witam. Wykonuje projekt z Podstaw Sterowania Cyfrowego, mam za zadanie przy zadanej transmitancji wykonac charakterystyki, wyprobowac roznego rodzaje regulatorow etc
    I teraz mam problem. a mianowicie napisany przeze mnie kod programu w matlabie daje mi bledne wyniki przy charakterystyce impulsowej i skokowej. Wyglada to dosc dziwnie tak jakby nie dzialala suma....zamieszczam kod


    CHOICE = MENU('projekt', 'log amp', 'log fazy', 'log amp-fazowa','amp-fazowa', 'rzeczywista', 'urojona','impulsowa','skokowa','koniec')
    k=1;
    u=0.4;
    t2=0.1;
    t1=0.2;
    t0=0.5;
    w=0.01:0.01:1000;
    t=0.01:0.01:10;
    h=0.0;
    (...)
    elseif CHOICE==7


    syms s;
    g=(k.*(1+u.*s))./((1+t1.*s).*(1+t0.*t0.*s.*s).*(1+t2.*s));
    ilaplace(g);
    t=0.01:0.01:10;
    h=(-40/29*exp(-5*t)+15/13*exp(-10*t)+85/377*cos(2*t)+875/377*sin(2*t));
    plot(t,h);
    TITLE('charakterystyka impulsowa');
    XLABEL('t');
    YLABEL('Amplituda');
    " i teraz przy takim 'h' rysuje mi jedynie sinusoide!!! taka sama gdy h jest rowne tylko"85/377*cos(2*t)+875/377*sin(2*t));" temu czlonowi...jesli zostawie tylko "h=(-40/29*exp(-5*t)+15/13*exp(-10*t)" to rysuje ladne kombinacje e potencjalnych funkcji...Jako , ze z matlabem stykam sie po raz pierwszy prosze was o pomoc
    Z gory dziekuje za pomoc
  • REKLAMA
  • Pomocny post
    #2 1175178
    tkalinows
    Poziom 12  
    Posty: 56
    Pomógł: 5
    Ocena: 1
    Jeżeli masz dane transmitancje, to nie ma problemu i nie musisz nic kombinować: Zapisz je w postacie L: liniczki transmitancji, M: mianownik:
    step(L,M) - odpowiedź ukłądu na skok (charakterystyka skokowa )
    bode(L,M) - charakterystyki (amplitudowa i fazowa tzw. Bode'go)
    margin(L,M) - ------------------//------- z wyznaczeniem zapasu modułu i fazy
    Nyquist - częśtotliwościowe (Re, Im) itd. Wpisz help ident
    pozdrawiam
  • #3 1175785
    wierus
    Poziom 10  
    Posty: 26
    Dziekuje. Juz zadzialalo. Teraz mam pytanie z innej beczki...na ktore niestety moj prowadzacy projekt nie umie znalezc mi odpowiedzi.... (czyt: w ksiazkach pan znajdzie)...lecz mam z tym spore problemy. Chodzi mi o dobor regulatora do mojego ukladu. Mam wyprobowac rozne typy regulatorow i wybrac najodpowiedniejszy. PRoblem tylko w tym, ze moj uklad na wymuszenie skokowe odpowiada odpowiedzia oscylacyjna!! (po pierwszym okresie zanika wplyw skladowych e potencjalnych i dalej jest juz ladny przebieg sinuosoidalny do nieskonczonosci) Problem w tym, ze wszedzie (w dostepnych mi zrodlach) nastawt regulatory dobiera sie na podstawie charak wykladniczej...(metoda Zieglera Nicholsa, etc) Nigdzie natomiast nie znalazlem jak zabrac sie za to zagadnienie gdy odpowiedzia jest przebieg oscylacyjny:(. BYlbym bardzo wdzieczny za pomoc.
  • REKLAMA
  • #4 1177805
    tkalinows
    Poziom 12  
    Posty: 56
    Pomógł: 5
    Ocena: 1
    hm. Chwila przypomnienia....

    Najłatwiej jest dobrać regulator typu PID na podstawie porównania transmitancji Twojego układu objętego jednostkową pętlą sprzężenia zwrotnego do równania oscylatora. W literaturze opisy występują często, może nie zwórciłeś na to uwagi, lub Twój prowadzący nie nakierował Cię na odpowienią. Mniejsza o większość, bo z chęcią postaram się Ci pomódz: a w razie co zapraszm na moją starą (jeszcze z czasów studiów stronę http:\\www.kali.piasta.pl - tam powinieneś coś znaleść. Ale sprubuję z pamięci:
    Zakladając ukła II rzędu (najczęściej)
    Gosc=(2*ksi*wn*s+wn^2)/(s^2+2*ksi*wn*s+wn^2) - oscylator II rzędu.
    Porównując transmitancję całego układu do równania oscylatora opisującego układ w zależności od współczynnika tłumienia ksi oraz częstotliwości wyprowadzamy wzory na wartości wzmocnień regulatora PD (czyli porównujesz współczynniki przy tej samej potędze s, wyliczasz kp i kd).
    teraz możesz kombinować, czyli zwięszkać lub zmniejszać dobrane współczynniki i obserwować jak i co sie zmienia. Powinieneś wyróżnic 3 podstawowe przypadki:
    1 - za ksi podstawiasz wartość <1 -- oscylacyjny układ
    2 - ------------|| --------------- =1 -- aperiodyczny krytyczny
    3 - -----------|| ------------------>1 -- aperiodyczny.
    Zresztą jak wyznaczysz, to zobaczysz. Powodzenia!
  • #5 1181811
    wierus
    Poziom 10  
    Posty: 26
    Widzisz problem jest troche bardziej skomplikowany:( W tym linku znajdziesz jpg z odpowiedzia ukladu na wymuszenie skokowe.
    http://wiera.250free.com/oscy1.jpg
    Problem polega na tym, ze czlon odpowiedzialny za oscylacje ma charakter 1/( s^2+1)!!! A wiec czlon odpowiedzialny za tlumienie oscylacji jest w nim rowny 0!!! a wiec oscylacje nigdy nie zanikaja...i tutaj pojawia sie wielki problem jak to cos regulowac...a w ogole po co tworzyc taki uklad!
  • Pomocny post
    #6 1239335
    tkalinows
    Poziom 12  
    Posty: 56
    Pomógł: 5
    Ocena: 1
    Nie wiem czy to jeszcze dla Pana aktualne...
    Ale jeżeli tak, proszę mi powiedzieć, jakie pan obiera kryterium jakości dla tego układu. Albowiem, możemy przyjąć kilka wariantów standardowych, lecz dla układów, których odpowiedź jest ustalona (w czasie), jeżeli zaś chodzi o pana układ, to rozumiem iż odpowiedź jest w postaci sinusoidalnej - w związku z tym, powinien Pan rozpatrywać czas osiągnięcia ustalonej odpowiedzi (prawdopodobnie), która powinna być zdefiniowana jako np czas, po którym występuje określona i ustalona amplituda drgań, oraz czas w którym ją osiąga.... Proszę pomyśleć o modelu np idealnego wahadła ...
    Jeżeli poda mi Pan więcej informacji na temat szczegółów badania tego ukłądu, postaram sie wesprzeć Pańskie działania...
    pozdrawiam
  • REKLAMA
  • #7 3200038
    Jam1975
    Poziom 11  
    Posty: 13
    a ktos mi powie dlaczego tu nie widac opoznienia elementu inercyjnego I rzedu?? :

    function sskok
    s=[0.1:0.01:1]
    t=[0:0.01:1]
    for (i=1:70)
    t1=0.35;
    t2=0.2;
    K1=1;
    T12=(1-exp((-t(i)-t1)/t2)).*s(i);

    num1=[0 0 K1];
    den1=[T12 1];
    step(num1, den1, t);
    end
  • #8 3200707
    sepher
    Poziom 19  
    Posty: 301
    Pomógł: 21
    Ocena: 4
    Nie bardzo widzę tu jakieg rodzaju obiekt chcesz zasymulować. Z tego co wiem, funkcję step wykonuje się podając jako parametr model w postaci równań stanu, albo tramsnitancji. Model należy utworzyć przedtem przy pomocy odpowedniej funkcji, np. tak:

    sys=tf(K, [T 1]);

    Polecenie to tworzy obiekt inercyjny I rzędu o nazwie sys; jak widać jako parametr polecenia podaje się najpierw licznik, a następnie mianownik transmitancji. Dla obiektów opisanych transmitancją dyskretną podaje się jako 3. parametr okres próbkowania. Teraz aby uzyskać odpowiedź skokową od czasu zero do 't', należy wprowadzić polecenie:

    step(sys, t);

    Nie wiem czy Ciebie do końca dobrze zrozumiałem i czy o to chodziło - jeśli nie to pisz, można kombinować dalej :).
  • #9 3201697
    Jam1975
    Poziom 11  
    Posty: 13
    witaj
    chcialbym wiedziec jak sie rysuje charekerysteke czlonu inercyjnego pierwszego rzedu. stała czasowa τ członu inercyjnego pierwszego rzędu wynosi .63, a opóźnienie wynosi 0.15,
    bardzo prosze o pomoc
  • #10 3204553
    sepher
    Poziom 19  
    Posty: 301
    Pomógł: 21
    Ocena: 4
    Czołem!

    Jeśli chodzi o dodanie opóźnienia transportowego, to transmitancję definiujesz tak jak napisałem wyżej, ale dodatkowo dodajesz do niej parametr 'inputdelay' (czyli opóźnienie transportowe). Chyba najlepiej będzie to pokazać na przykładzie według podanych przze Ciebie danych:

    >> sys = tf(1, [0.63 1],'inputdelay',0.15)

    Matlab odpowiada wyświetlając transmitancję członu.

    Odpowiedź skokową otrzmasz po wpisaniu:

    >> step(sys)
  • REKLAMA
  • #11 3205136
    Jam1975
    Poziom 11  
    Posty: 13
    witaj,
    nie chce to mi mi dzialac na tym przykladzie, albo moze zle to pisalem:
    -----------------------------
    function sskok
    s=(0.1:0.1:1);
    t=(0:0.1:1);

    i=10;

    t1=0.35;
    t2=0.2;
    K1=1; %
    T12=1-exp(-(t(i)-(t2-t1))/0.63);

    num1=[0 0 K1];
    den1=[T12 1];

    step(num1, den1, t);

    return

    s=(0.1:0.1:1);
    t=(0:0.1:1);
    for i=1:10
    t1=0.35;
    t2=0.2;

    K1=1; %
    T12(i)=1-exp(-(t(i)-(t2-t1))/0.63);
    num1=[0 0 K1];
    den1=[T12 1];
    end
    step(num1, den1, t);
    -------------------------
    moglbys mi pokazac jak i gdzie to pisac? dzieki i pozdrawiam
  • #12 3207308
    Jam1975
    Poziom 11  
    Posty: 13
    juz dziala, dziekuje ci bardzo i mam nadzieje ze bede mogl do ciebie pisac w razie potrzeby :)
    pozdrawiam
  • #13 3223556
    Jam1975
    Poziom 11  
    Posty: 13
    jeszcze jedno :)
    jak sie rysuje wykres COS z opoznieniem- bo step nie za bardzo dziala? tez dla tych samych danych?
    pozdrawiam

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemów z uzyskaniem poprawnych charakterystyk czasowych (impulsowej i skokowej) w Matlabie dla zadanego układu o transmitancji zawierającej elementy oscylacyjne. Autor projektu z Podstaw Sterowania Cyfrowego napotkał błędne wyniki przy rysowaniu charakterystyk, co wynikało m.in. z nieprawidłowego podejścia do sumowania składników w kodzie. Wskazano, że do analizy i rysowania charakterystyk można wykorzystać wbudowane funkcje Matlab takie jak step(L,M), bode(L,M), margin(L,M) oraz Nyquist, gdzie L i M to licznik i mianownik transmitancji. Poruszono problem doboru regulatorów do układów o odpowiedzi oscylacyjnej, zwłaszcza gdy oscylacje nie ulegają tłumieniu (np. człon 1/(s^2+1)), co komplikuje klasyczne metody nastawiania regulatorów (np. Zieglera-Nicholsa). Zaproponowano podejście porównawcze transmitancji układu do równania oscylatora II rzędu w celu wyznaczenia parametrów regulatora PD. W dalszej części dyskusji omówiono modelowanie elementu inercyjnego I rzędu z opóźnieniem transportowym w Matlabie, wykorzystując funkcję tf z parametrem 'inputdelay' oraz generowanie odpowiedzi skokowej za pomocą step(sys,t). Użytkownicy dzielili się przykładami kodu i wskazówkami dotyczącymi poprawnego definiowania modeli transmitancji i rysowania wykresów charakterystyk, w tym również wykresów funkcji cosinus z opóźnieniem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA