03 ScilabControl, 2 ROK, 3ci SEMESTR, Modele ukladow dynamicznych, materialy na lab i cw


  1. Obiekty

list(a1,....an) - Scilab object and list function definition:

mlist(typ,a1,....an ) - Scilab object, matrix oriented typed list definition

tlist(typ,a1,....an ) - Scilab object and typed list definition:

rlist(a1,....an) = tlist(['r','num';'den','dt'], a1,....an) - skrót

lsslist(a1,....an) = tlist(['lss','A';'B';'C';'X0','dt'], a1,....an) - skrót

W Matlabie są obiekty LTI

SYS = ss(A, B, C, D)

SYS = tf( L, M)

SYS = zpk( Z, P, K)

  1. Definiowanie modelu

    1. syslin - linear system definition

    2. równania stanu

      transmitancje

      [sl] = syslin(dom, A, B, C [,D [,x0] ])

      [sl] = syslin(dom,N,D)

      [sl] = syslin(dom,H)

      co odpowiada ogólnym wywołaniom tlist:

      sl=tlist(['lss','A','B','C','D','X0','dt'],A,B,C,D,x0,dom)

      sl=tlist(['r','num','den','dt'],N,D,dom) sl=tlist(['r','num','den','dt'],H(2),H(3),dom)

      lub przy użyciu funkcji skrótowych

      lsslist(A, B, …)

      rlist(N, D)

      gdzie: dom = `c' - continues, `d' - discrete

      Przykłady:

      A=[0,1;0,0];B=[1;1];C=[1,1];

      S1=syslin('c',A,B,C)

      s=poly(0,'s'); D=s;

      S2=syslin('c',A,B,C,D)

      S1("A") //A

      S1("X0"), S1("dt") // X0 and time domain

      s=poly(0,'s');

      H1=(1+2*s)/s^2, S1bis=syslin('c',H1)

      H2=(1+2*s+s^3)/s^2, S2bis=syslin('c',H2)

        1. Połączenia

      S1+S2

      [S1,S2]

      ss2tf(S1)-S1bis

      S1bis+S2bis

      S1*S2bis

      size(S1)

      Sl=Sl1/.Sl2 feedback - feedback operation

      Matlab

      append - złożenie w jeden LTI bez łączenia składników

      +/- parallel -

      * series

      feedback

      star - część wyjść połączona z wejściami

      connect

      sys1\sys1 = inv(sys1)*sys2

      sys1/sys2 = sys1/inv(sys2)

        1. Konwersja

      ss2tf - conversion from state-space to transfer function

      [h] = ss2tf(sl)

      [Ds,NUM,chi] = ss2tf(sl)

      [h] = ss2tf(sl,"b")

      [Ds,NUM,chi] = ss2tf(sl,"b")

      [h] = ss2tf(sl,rmax)

      [Ds,NUM,chi] = ss2tf(sl,rmax)

      tf2ss - transfer to state-space

      sl = tf2ss(h [,tol])

        1. Wyciąganie danych z modeli

      abcd - state-space matrices

      [A,B,C,D] = abcd(sl) - podaj macierze systemu sl

      lft - linear fractional transformation

      [P1]=LFT(P,K)

      [P1]=LFT(P,r,K)

      [P1,r1]=LFT(P,r,Ps,rs)

      Matlab

      [A,B,C,D] = SSDATA(SYS_SS)

      [Z,P,K] = ZPKDATA(SYS_ZPK)

      [L, M] = TFDATA(SYS_TF)

        1. lin - linearization

      [A,B,C,D] = lin(sim,x0,u0)

      [sl]=lin(sim,x0,u0)

        1. ssrand - random system generator (definiowanie losowego systemu)

      sl = ssrand (nout, nin, nstate)

      [sl, U] = ssrand (nout, nin, nstate, flag)

      gdzie:

      nout - ilość wyjść

      nin - ilość wejść

      nstate - ilość zmiennych stanu

      flag - określone własności systemu, flag=list(`typ_systemu', parametry)

      'co' - controllable; 'uo' - unobservable; 'ncno' - non-controllable-non-observable; 'st' - stabilizable; 'dt' - detectable; 'on' - output-nulling; 'ui' - uknown-input.

      Matlab

      rss,drss - Random stable state-space models.

      1. Analogie do Toolbox Control

        1. Charakterystyki czasowe

      csim - simulation (time response) of linear system

      [y [,x]] = csim (u, t, sl, [ x0 [,tol] ])

      gdzie:

      u - sterowanie:

      funkcja - [inputs]=u(t)

      lista - inputs = ut ( t, par1, …, parn

      string - „impuls”, „step”

      wektor - wektor wartości u odpowiadających poszczególnym chwilą t

      t - wektor czasu; t(1)=czas początkowy

      sl - system liniowy, jaki generuje listę syslin

      x0 - warunki początkowe: x0=x( t(1) )

      y - macierz wyjść y=[ y( t(i) ) ], i=1..n

      x - macierz stanu x

      tol - wektor [atol rtol] - toleracja absolutna i relatywna

      Przykład:

      s = poly(0,'s'); rand('seed',0); w = ssrand(1,1,3); w('A')=w('A') - 2*eye();

      t = 0 : 0.05 : 5;

      // impulse(w) = step (s * w)

      xbasc(0); xset("window",0); xselect();

      plot2d( [t',t'] , [ (csim( 'step', t, tf2ss(s)*w))', 0*t ' ] )

      xbasc(1); xset("window",1); xselect();

      plot2d([ t',t'] , [ (csim( 'impulse' , t, w))', 0*t' ] )

      //step(w) = impulse (s^-1 * w)

      xbasc(3);xset("window",3);xselect();

      plot2d([t',t'],[(csim('step',t,w))',0*t'])

      xbasc(4);xset("window",4);xselect();

      plot2d([t',t'],[(csim('impulse',t,tf2ss(1/s)*w))',0*t'])

      //input defined by a time function

      deff( 'u=input(t)' , 'u = abs( sin(t) )')

      xbasc(); plot2d( [t',t'] , [ ( csim( input, t, w ) )' , 0*t'])

      Matlab

      step(SYS) - na skok jednostkowy na każdym wejściu

      impulse(SYS) - na impuls

      initial(SYS, X0) - dla zadanego stanu początkowego (trajektoria ruchu), dla modelu typu SS

      lsim(SYS,U,T) - na określone pobudzenie (U-wektor wartości, T- wektor czasu)

        1. Charakterystyki częstotliwościowe

      nyquist - nyquist plot

      bode - Bode plot

      black - Black's diagram (Nichols chart)

      gainplot - magnitude plot

      freq - frequency response

      repfreq - frequency response

      Przykład badania:

      s=poly(0,'s')

      h=syslin('c',(s^2+2*0.9*10*s+100)/(s^2+2*0.3*10.1*s+102.01))

      title='(s^2+2*0.9*10*s+100)/(s^2+2*0.3*10.1*s+102.01)';

      bode(h,0.01,100,title);

      h1=h*syslin('c',(s^2+2*0.1*15.1*s+228.01)/(s^2+2*0.9*15*s+225))

      clf()

      bode([h1;h],0.01,100,['h1';'h'])

      Matlab

      nyquist(SYS,{WMIN,WMAX}) - Q(P)= Im(Re)

      bode (SYS,{WMIN,WMAX}) - wykres modułu i przesunięcia fazowego w funkcji częstotliwości

      nichols (SYS,{WMIN,WMAX}) - wzmocnienie pętli otwartej (dB) w funkcji przesunięcia fazy

      margin(SYS) - Oblicza zapas wzmocnienia i fazy

        1. Projektowanie układów

      linmeq - Sylvester and Lyapunov equations solver

      lqe - linear quadratic estimator (Kalman Filter)

      lqg - LQG compensator

      lqg2stan - LQG to standard problem

      lqr - LQ compensator (full state)

      obscont - observer based controller

      ppol - pole placement

      ricc - Riccati equation

      Matlab

      P = pole(SYS) - zwraca kolumnę wartości biegunów modelu SYS

      E = eig(X) - zwraca wektor wartości własne macierzy X

      z = tzero(SYS) - zwraca wektor zer transmitancji

      pzmap(SYS) - rysuje położenie (mapa) zer i biegunów na płaszczyźnie Im(Re)

      [R,K] = RLOCUS(SYS) - znajduje i rysuje linie pierwiastkowe

      [K,POLES] = rlocfind(SYS) - dla wskazanego punktu wylicza odpowiadające mu wzoc.i bieguny

      rltool(SYS) - Root locus design GUI

      [K,S,E] = LQR(A,B,Q,R,N) - Dla obiektu x = Ax + Bu i regulatora u = -Kx

      • optymalizuje macierz wzmocnień K

      • wg funkcji kosztu J = Integral {x'Qx + u'Ru + 2*x'Nu} dt

      dlqr

      lqry - regulator bez dodatków

      ldrd - regulator dyskretny dla obwodów ciągłych

      kalman - estymator Kalmana

      kalmd - dyskretny estymator Kalmana

      lqgreg - wyznaczenie regulatora na podstawie danego wzmocnienia i estymatora Kalmana

      Przykład Matlab

      1. Utworzenie modelu typu SS na podstawie modelu TF

      sys = ss ( tf ( 100, [1 1 100] ) )

      1. Wyznaczamy optymalne wzmocnienie K regulatora u = -Kx, wg kryterium liniowo-kwadratowego J(u)

      K = lqry(sys, 10, 1)

      1. Model z zakłóceniami: wejście sterujące u i wejście zakłóceń d

      [A, B, C, D] = ssdata(sys) % wyznaczamy macierze modelu obiektu

      P = ss(A,[B B],C,[D D]) % input [u;d], output y

      1. Wyznaczenie estymatora Kalmana

      KEST = kalman ( P, 1, 0.01 )

      1. Wyznaczenie wynikowego regulator LQG: F = LQ gain + Kalman filter

      F = lqgreg ( Kest, K ) %Zwraca model regulatora w postaci opisu SS

      1. Sprawdzenie wyników - porównanie odpowiedzi układu otwartego i zamkniętego

      clsys = feedback(sys,F,+1) % układ zamknięty, Note positive feedback

      impulse(sys, 'r--', clsys, 'b-')



      Wyszukiwarka

      Podobne podstrony:
      uklady1, 2 ROK, 3ci SEMESTR, Modele ukladow dynamicznych, wyklad
      odpowiedzi do OWI, Budownictwo UTP, II rok, mój II rok, 3ci semestr - mój
      galar,modele układów dynamicznych, równanie 1 rzędu
      nowe pytania, 2 ROK, 3ci SEMESTR, Teoria Sygnałów
      par19-03, weterynaria 3 rok WROC, semestr 5, Parazytologia
      ergonomia ADA, Budownictwo UTP, II rok, mój II rok, 3ci semestr - mój, Ergonomia
      A4 Modele układów dynamicznych

      więcej podobnych podstron