Szabtech házi

  • Upload
    messo

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

  • 8/22/2019 Szabtech hzi

    1/13

    Szablyozstechnika hzifeladat

    Krivn Blint - CBVOEN - [email protected]

    Kd: 47, Gyakorlatvezeto: Bogrdi-Mszly gnes, Kurzus: GY19

    1. Folytonos rendszer

    Adott az albbi szablyozsi kr:

    C(s)

    Wz1(s)

    P1(s)

    Wz2(s)

    P2(s)

    z1 z2

    r u y

    Feladat-kdom alapjn a kifejezsek, illetve paramterek:

    P1(s) =A1

    1 + sT1=

    0.2

    1 + 1.5s

    P2(s) =A2

    s(1 + sT2)=

    4

    s(1 + 3s)

    Wz1(s) = 2 Wz2(s) =4

    1 + 2s

    A1 = 0.2 A2 = 4 T1 = 1.5 T2 = 3 Ts = 0.5

    1.1. aAdja meg a szablyozott szakasz u mdostott jellemzojnek a z1 illetve z2 zavar jellemzore vonat-koz eredo tviteli fggvnyeit! Adja meg az y szablyozott jellemzonek az r alapjelre valamint az1 illetve z2 zavar jellemzokre vonatkoz eredo tviteli fggvnyeit! (Az eredo tviteli fggvnyeketszimbolikusan, a P1(s), P2(s), Wz1(s), Wz2(s) kifejezsekkel adja meg.)

    Uz1(s) =Wz1 P1 P2 C

    1 + C P1 P2=

    2 0.21+1.5s

    4s(1+3s)

    C(s)

    1 + C(s) 0.21+1.5s

    4s(1+3s)

    =1.6 C(s)

    0.8 C(s) + s + 4.5s2 + 4.5s3

    Uz2(s) = Wz2

    P2

    C

    1 + C P1 P2=

    41+2s

    4s(1+3s)

    C(s)1 + C(s) 0.2

    1+1.5s

    4s(1+3s)

    = (16 + 24s)C(s)(0.8 + 1.6s)C+ 1s + 6.5s2 + 13.5s3 + 9s4

    1

  • 8/22/2019 Szabtech hzi

    2/13

    Yr(s) =C P1 P2

    1 + C P1 P2=

    C 0.21+1.5s

    4s(1+3s)

    1 + C 0.21+1.5s

    4s(1+3s)

    =0.8 C(s)

    s(1 + 1.5s)(1 + 3s) + 0.8 C(s)

    Yz1(s) =Wz1 P1 P2

    1 + C P1 P2=

    2 0.21+1.5s

    4s(1+3s)

    1 + C(s) 0.21+1.5s

    4s(1+3s)

    =1.6

    s(1 + 1.5s)(1 + 3s) + 0.8 C(s)

    Yz2(s) =Wz2

    P2

    1 + C P1 P2=

    41+2s

    4s(1+3s)

    1 + C(s) 0.21+1.5s

    4s(1+3s)

    = 16 + 24s(0.8 + 1.6s)C(s) + s + 6.5s2 + 13.5s3 + 9s4

    1.2. b

    Adja meg a felnyitott krL(s) tviteli fggvnynek kifejezstC(s) = A arnyos szablyozval.

    L(s) = C P1 P2 = A 0.2

    1 + 1.5s

    4

    s(1 + 3s)=

    0.8A

    s(1 + 1.5s)(1 + 3s)

    1.3. cHatrozza meg a Kkr kritikus krerostst a megadott adatokkal C(s) = A arnyos szablyoz mel-lett.

    Az A-t egynek vlasztva s a MATLAB-ot segtsgl hvva:

    >> s = zpk(s);

    >> L = 0.8/(s*(1+1.5*s)*(1+3*s));

    >> [gm,pm,wg,wc] = margin(L);

    >> gm

    gm =

    1.2500

    1.25-re addik a kritikus krerosts.

    2. feladat

    Tervezzen olyan soros PID jellegu szablyozt, amely a zrt szablyozsi rendszerre vonatkozankielgti az albbi tervezsi specifikcikat:

    r = 1(t) esetn a szablyozott jellemzo vgrtke y = 1,

    az u(t) beavatkoz jel maximlis rtke umax < 10/(A1A2) legyen,

    a rendszer tmeneti fggvnynek tllvse 5 10% kztt legyen.

    P = P1 P2 =0.2

    1 + 1.5s

    4

    s(1 + 3s)=

    0.8

    s(1 + 1.5s)(1 + 3s)

    2

  • 8/22/2019 Szabtech hzi

    3/13

    2.1. a

    Adja meg a szablyoz tviteli fggvnyt zrus-plus alakban. Adja meg a rendszer fzistbblett!

    Tekintve, hogy mr van egy integrl tagunk, ezrt elg, ha PD szablyzt terveznk:

    CPD = k

    1 + sTd1 + sT1

    ahol Td: P msodik legnagyobb idollandja (1.5), T1 = Td/np, ahol np plustviteli tnyezo, amitvlasszunk 10-nek:

    CPD = k 1 + 1.5s

    1 + 0.15s

    k-t kezdetben vlasszuk 1-nek, s a stabilitshoz kb. 60-os fzistbblet belltsval meghatrozhat-juk a k-t:

    >> s = zpk(s);

    >> P1 = 0.2/(1+1.5*s);

    >> P2 = 4/(s*(1+4*s));

    > > P = P 1*P2;

    >> Td = 1.5;

    >> np = 10;

    >> T1 = Td/np;

    > > k = 1 ;

    >> Cpd = k*(1+s*Td)/(1+s*T1);

    Szmoljuk ki a k-t, a fzistbblet belltsval:

    >> L = Cpd*P;

    >> [m,p,w] = bode(L);

    >> k = margin(m,p-60,w)

    k =

    0.1959

    Erre lecserlve a kezdetben 1-nek vlasztott rtket, megkaphatjuk a szablyz tviteli fggvnyt:

    >> Cpd = k*(1+s*Td)/(1+s*T1)

    Zero/pole/gain:

    1.9591 (s+0.6667)

    -----------------

    (s+6.667)

    Majd, gy kiszmolva L-t, illetve a fzistartalkot:

    >> L = Cpd*P;

    >> [gm,pm,w] = margin(L);

    >> pm

    pm =

    60.0376

    3

  • 8/22/2019 Szabtech hzi

    4/13

    Teht sszegezve; a szablyz tviteli fggvnye zrus-plus alakban:

    CPD =1.9591(s + 0.6667)

    s + 6.667

    A rendszer fzistbblete pedig:

    m = 60.0376

    2.2. b

    brzolja a zrt rendszer kimenojelt s beavatkozjelt egysgugrs alapjel esetn! Hatrozza mega kimenojel tllvst, bellsi idejt s az u beavatkozjel maximumt! A szimulcit vgezze elSimulink-kel is.

    A zrt rendszer kimenojele, egysgugrs esetn:

    >> Tpid = feedback(Cpd * P, 1);

    >> step(Tpid, b)

    0 5 10 15 20 25 30 35 40 45 500

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    Step Response

    Time (sec)

    A

    mplitude

    Tpid

    A zrt rendszer beavatkoz jele, egysgugrs esetn:

    >> Upid = feedback(Cpd, P);

    >> step(Upid, b)

    4

  • 8/22/2019 Szabtech hzi

    5/13

    0 2 4 6 8 10 12 14 160.5

    0

    0.5

    1

    1.5

    2

    Step Response

    Time (sec)

    Amplitude

    Upid

    A kimenojel tllvsnek kiszmtsa:

    >> y = step(Tpid);

    >> ys = dcgain(Tpid);

    >> tulloves = (max(y) - ys)/ys * 100

    tulloves =

    8.5473

    Lthat, hogy a specifikcinak megfelel, hiszen 5% < 8.5473% < 10%.

    Bellsi ido (1%-os eltrssel szmolva): A Data Cursor funkcit hasznlva leolvashatjuk a grafi-konrl, hogy 35 msodperctol kezdodoen vgig 1%-on bell vagyunk, teht a bellsi ido kb. 35msodperc.

    Az u beavatkoz jel maximuma:

    >> u = step(Upid);>> umax = max(u)

    umax =

    1.9591

    Kellett, hogy umax < 10/(A1A2) = 100.24 = 12.5, ami lthatan teljesl.Lthat teht, hogy a specifikcinak megfelelo szablyzt terveztnk.

    Simulink-es szimulci:

    5

  • 8/22/2019 Szabtech hzi

    6/13

    1. bra. Kimenojel (egysgugrs esetn)

    2. bra. Beavatkozjel (egysgugrs esetn)

    6

  • 8/22/2019 Szabtech hzi

    7/13

    3. Folytonos szablyozs llapotvisszacsatolssal

    A folytonos szakasz tviteli fggvnye P1(s)P2(s). Holtido esetn hagyjuk el a holtidot.

    3.1. Adja meg a szakasz llapotmtrixait.

    P(s) = P1(s)P2(s) = 0.21 + 1.5s

    4

    s(1 + 3s)= 0.8

    s(1 + 1.5s)(1 + 3s)

    MATLAB segtsgvel knnyedn meghatrozhatak az llapotmtrixok:

    >> s = tf(s);

    >> P = 0.8/(s*(1+1.5*s)*(1+3*s));

    >> [n, d] = tfdata(P, v);

    >> [A, b, c, d] = tf2ss(n, d)

    Ennek eredmnyeknt kapjuk a kvetkezoket:

    A =

    1.0000 0.2222 01.0000 0 0

    0 1.0000 0

    b =

    10

    0

    c = 0 0 0.1778 d = 0

    3.2. Tervezzen llapotvisszacsatolsos szablyozt.

    A visszacsatolt rendszer legyen lerhat egy msodfok lengo taggal, amelynek csillaptsi tnyezo-je 0.7 s idollandja a szakasz legkisebb idollandjnak negyede. Harmadfok szakasz esetn avisszacsatolt rendszer harmadik elort idollandja egyezzen meg a lengo tag idollandjval. Ha-trozza meg az egysgugrs alapjel statikus hiba nlkli kvetst biztost kompenzcis tnyezo

    rtkt! brzolja a szakasz s a visszacsatolt rendszer egysgugrsra adott vlaszt.

    Felhasznlva az n adataimat:

    >> E = 0.7;

    > > T = 1 . 5 / 4 ;

    Ezek alapjn a plusok meghatrozsa, majd egy kzs vektorba trtno tmsolsa:

    >> p12 = roots( [T^2, 2*T*E, 1] ); % s^2T^2 + s*2*T*E + 1

    >> p3 = roots( [T, 1] ); % 1+sT

    >> p123(1:2) = p12;

    >> p123(3) = p3;

    Ackermann-formula segtsgvel meghatrozhatjuk a visszacsatolsi k vektort:

    >> k = acker(A, b, p123)

    Warning: Pole locations are more than 10% in error.

    k =

    5.4000 16.8444 18.9630

    Megjegyzs: itt egy kicsit megijedtem a warning lttn, de remlem semmi komoly.

    >> Tk = ss(A-b*k, b, c, d);

    7

  • 8/22/2019 Szabtech hzi

    8/13

    Ha ennek az egysgursra adott vlaszt brzolnnk, akkor ltnnk, hogy mr egsz kzel jrunk, deaz llandsult llapoton kell finomtani (hogy azt statikus hiba nlkl kvesse), ehhez a kr erostsitnyezot kell meghatroznunk:

    >> kr = 1/dcgain(Tk)

    kr =

    106.6667

    gy pedig mr a stacionrius llapotunk az 1 lesz, teht a zrt rendszernk:

    >> T = ss(A-b*k, kr*b, c, d);

    >> zpk(T)

    Zero/pole/gain:

    18.963---------------------------------

    (s+2.667) (s^2 + 3.733s + 7.111)

    >> step(P, b, T, r)

    0 5 10 15 20 25 300

    5

    10

    15

    20

    25

    Step Response

    Time (sec)

    Amplitude

    P

    T

    sszefoglalsknt: a kompenzcis tnyezo rtke kr = 106.6667, a visszacsatolt rendszernk tvi-teli fggvnye:

    T(s) =18.963

    (s + 2.667)(s2 + 3.733s + 7.111)

    4. Mintavteles rendszerAdott az albbi diszkrt ideju (mintavteles) szablyozsi kr:

    8

  • 8/22/2019 Szabtech hzi

    9/13

    4.1.

    Hatrozza meg a P(s) folytonos szakasz s a D/A talakt egyttes G(z) impulzustviteli fggvnytzrus-plus alakban a megadottTs mintavteli ido mellett zrusrendu tartszerv felttelezsvel.

    A megadott Ts = 0.5 alapjn MATLAB-ot segtsgl hvva, nagyon egyszeruen megkaphatjuk a G(z)impulzustviteli fggvnyt:

    >> Ts = 0.5;

    >> G = c2d(P, Ts, zoh);

    >> zpk(G)

    Zero/pole/gain:

    0.0032747 (z+3.301) (z+0.2359)

    ------------------------------

    (z-1) (z-0.8465) (z-0.7165)

    Sampling time: 0.5

    gy zrus-plus alakban G(z):

    G(z) =0.0032747(z+ 3.301)(z+ 0.2359)

    (z 1)(z 0.8465)(z 0.7165)

    4.2. Tervezze meg a C(z) diszkrt ideju PID szablyozt.

    Elorsok:

    egysgugrs alapjelre a marad hiba legyen zrus;

    a rendszer tmeneti fggvnynek tllvse 5 10% kztt legyen;

    az u(t) jelre umax < 10/(A1A2) teljesljn.

    4.2.1. a

    Adja meg a szablyoz C(z) impulzustviteli fggvnyt zrus-plus alakban. Adja meg a rendszerfzistbblett!

    CPID(z) = k (z eTs/T1)(z eTs/T2)

    z(z

    1)T1 = 1.5 T2 = 3 Ts = 0.5

    Hasonlan ahogy a 2. feladatnl lttuk az integrl tagunk miatt elg ha PD szablyzt terveznk:

    9

  • 8/22/2019 Szabtech hzi

    10/13

    CPID(z) = 1 CPD(z) = k z eTs/T1

    z= k

    z 0.7165

    z= C(z)

    Kezdetben k = 1-et hasznlva bellthatjuk a fzistbbletet, majd meghatrozhatjuk a k-t:

    > > k = 1 ;

    >> z = tf(z, Ts);> > C = k*(z-0.7165)/z;

    >> L = minreal(G * C, 0.001);

    >> [mag, phase, w] = bode(L);

    >> k = margin(mag, phase-60, w)

    k =

    0.7793

    > > C = k * C;>> zpk(C)

    Zero/pole/gain:

    0.77927 (z-0.7165)

    ------------------

    z

    Sampling time: 0.5

    Teht a szablyoznk tviteli fggvnye zrus-plus alakban:

    C(z) = 0.77927 z 0.7165

    z

    Fzistbblet pedig:

    > > L = C * G;

    >> [gm, pm, wg, wc] = margin(L);

    >> pm

    pm =

    60.0067

    m = 60.0067

    4.2.2. b

    brzolja a szablyozs y(t) folytonos kimenojelt s az u[k] diszkrt beavatkozjelet a tartszervutn egysgugrs alapjel hatsra! Hatrozza meg a kimenojel tllvst, bellsi idejt s az ubeavatkozjel maximumt! A szimulcit vgezze el Simulink-ben is.

    Kimeno jel:

    >> T = feedback(L, 1);

    >> step(d2c(T))

    10

  • 8/22/2019 Szabtech hzi

    11/13

    0 5 10 15 20 25 30 35 400

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    Step Response

    Time (sec)

    Amplitude

    >> y = step(d2c(T));

    >> ys = dcgain(d2c(T));

    >> tulloves = (max(y)-ys)/ys*100

    tulloves =

    8.0702

    Lthat, hogy a kimenojel tllvse 8.07%, ami beleesik a kvnt tartomnyba. Data Cursor felhasz-nlsval pedig leolvashatjuk a grafikonrl, hogy 29 msodperctol kezdve az eltrs 1%-on bell van,teht a bellsi ido kb. 29 msodperc.

    Beavatkoz jelet gy tudjuk kiszmolni:

    U =C

    1 + L

    >> U = C/(1+L);

    >> U = minreal(U, 0.001);

    >> step(U)

    11

  • 8/22/2019 Szabtech hzi

    12/13

    0 5 10 15 20 250.1

    0

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    Step Response

    Time (sec)

    Amplitude

    >> u = step(U);

    >> umax = max(u)

    umax =

    0.7793

    Kellett, hogy umax < 10/(A1A2) = 100.24 = 12.5, ami lthatan teljesl.

    Simulink-ben a szimulci:

    3. bra. Kapcsols

    12

  • 8/22/2019 Szabtech hzi

    13/13

    4. bra. Kimenojel (egysgugrs esetn)

    5. bra. Beavatkozjel (egysgugrs esetn)

    4.2.3. c

    Adja meg a szablyozt megvalst algoritmust! rjon Matlab programot, amely megvalstja az al-goritmust. Futtassa le a programot az elso 20 mintavteli pontra a szablyoz bemenetn egysgimpulzus-sorozatot felttelezve. brzolja az eredmnyt.

    13