tsa lab 3 analiza pe stare

Upload: dboy0911

Post on 08-Jul-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    1/26

    Laborator 3. Analiza sistemelordescrise de realizări pe spaţiulstărilor

    Introducere

    Scopul acestui laborator este elaborarea, implementarea şi testarea procedurilor de analiză nu-merică a proprietăţilor sistemice fundamentale. Laboratorul este structurat ı̂n cinci seçtiuni.Prima secţiune este dedicată testării stabilităţii sistemelor. A doua secţiune prezintă modalităţide obţinere a realizărilor de stare pornind de la matricea de transfer şi reciproc. Secţiunea 3este dedicată testării proprietăţilor de controlabilitate şi observabilitate. Ultimele două secţiuniprezintă modalităţi de obţinere a realizărilor de ordin minim (minimale) şi a realizărilor bal-ansate. Laboratorul este dedicat exclusiv analizei sistemelor cu timp continuu.

    3.1 Teste numerice de stabilitate a sistemelor liniare

    A) Descriere teoretică

    Stabilitatea unui sistem liniar  S  = (A,B,C,D) este o proprietate ce depinde numai de matriceade stare   A. Mai precis, sistemul   S   este  stabil   dacă matricea de tranziţie Φ(t) asociată lui  Asatisface condiţia Φ(t) →  0 când  t  → ∞.   În cazul continuu matricea de tranziţie are expresia

    Φ(t) =  eAt, t ∈ R. Avem următoarea caracterizare.

    Teorema 3.1   Sistemul cu timp continuu   S   = (A,B,C,D)   (sau matricea de stare   A) este stabil(ă) dac˘ a şi numai dac˘ a toate valorile proprii ale lui  A  au partea real˘ a strict negativ˘ a, i.e.,spectrul lui  A  este cont ̧inut ı̂n semiplanul stˆ ang deschis 

    Λ(A) ⊂ C −.   (3.1)

    B) Testare numerică

    În această subsecţiune prezentăm două teste numerice de stabilitate a unei matrice:   algoritmul QR   şi o variantă modificată a testului Hurwitz, numită schema Routh .

    Algoritmul QR fără acumularea transformărilor

    Deoarece proprietatea de stabilitate vizează o anumită plasare a valorilor proprii, iar acestease calculează eficient utilizând algoritmul   QR, obţinem următorul test de stabilitate pentru

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    2/26

    2

    sisteme liniare continue.

    Algoritmul 3.1   (Dată o matrice pătrată   A, algoritmul testează stabilitatea

    acesteia).1.   λ =  eig(A) % Se calculează valorile proprii utilizând algoritmul QR

    2.   Se determină  α  = maxReλ(i).

    3.   Dacă  α

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    3/26

    3.2. REALIZABILITATE    3

    Pentru testarea stabilităţii se poate utiliza algoritmul de eliminare gaussiană fără pivotarerelativ la matricea Hurwitz asociată polinomului caracteristic, ceea ce corespunde exact for-mulării propuse de Routh pentru criteriul ı̂n discuţie.   Întrucât ı̂n absenţa unei strategii de

    pivotare adecvate, algoritmul de eliminare gaussiană este numeric instabil (apariţ ia pivoţilornuli corespunde aşa-numitelor cazuri “critice” ale algoritmului Routh), ı̂n practică testarea sta-bilităţii polinomului caracteristic se face construind matricea companion şi aplicând algoritmul3.1. Importanţa criteriului Routh apare mai ales ı̂n metodele analitice ca de exemplu atuncicând trebuie găsiţi anumiţi parametri ai unui sistem sau ai unui regulator astfel ı̂ncat sistemulı̂n buclă ı̂nchisă să fie stabil.

    Caz particular 1 : Dacă primul element al unei linii este  zero, dar alte elemente din acealinie sunt  nenule  se ı̂nlocuieşte zeroul cu  , se continuă raţionamentul şi apoi se interpreteazărezultatul presupunând că    este un număr mic de acelaşi semn cu cel de deasupra.

    Caz particular 2 : Dacă toate elementele unei linii sunt zero, atunci polinomul caracteristicare rădăcini simetrice faţă de originea planului complex (de exemplu două rădăcini pur imag-inare). Linia de zerouri va fi ı̂ntotdeauna asociată puterilor impare ale lui  s. Linia de deasupra

    liniei nule conţine coeficienţii polinomului auxiliar . Dacă notam acest polinom cu  P (s), pentrua continua algoritmul se va ı̂nlocui linia de zerouri cu   dP ds .

    C) Sarcini de lucru

    1.   Să se scrie programul MATLAB pentru implementarea algoritmului de testare numericăa stabilităţii unui sistem liniar (i.e. a matricei de stare A  a acesteia) şi să se testeze peexemple numerice semnificative (n >  5).

    2.  Conform teoremei lui Liapunov, matricea  A  a unui sistem continuu este stabilă dacă şinumai dacă oricare ar fi matricea  Q  =  QT  > 0 ecuaţia matriceală algebrică Liapunov

    AT X  + XA  = − Q

    are o soluţie X  = X T  > 0. Explicaţi de ce enunţul de mai sus (de mare valoare teoretică)nu conduce la un test de stabilitate numeric eficient ı̂n raport cu algoritmul 3.1.

    3.   Un polinom   p(s) =   a0sn + a1s

    n−1 + . . . +  an  este stabil (sau ”hurwitzian”) dacă toaterădăcinile sale au partea reală strict negativă. Scrieţi algoritmul de testare a stabilităţiipolinomului p(s) utilizând criteriul Routh-Hurwitz (Vezi ANEXA). Implementaţi variantabazată pe algoritmul de eliminare gaussiană pentru matricea Hurwitz asociată polinomu-lui prin comparaţie cu testarea stabilităţii matricei companion şi testaţi pe următorulexemplu numeric

    s5 + 2s4 + 4s3 + 8s2 + 5s + 10.

    4.   Arătaţi că două condiţii necesare (dar nu suficiente) de stabilitate sunt:

    a)   toţi coeficienţii polinomului caracteristic au  acelaşi semn ;

    b)   toţi coeficienţii polinomului caracteristic sunt  nenuli .

    3.2 Realizări

    A) Descriere teoretică

    Această secţiune este dedicată conversiei ı̂ntre cele mai importante două tipuri de modele:matrice de transfer şi realizare pe spaţiul stărilor.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    4/26

    4

    Conversia matrice de transfer - model de stare

    Fie T (s) o  p × m matrice raţională proprie dată de

    T (s) = rij(s) pij(s)   1 ≤ i ≤  p1 ≤  j  ≤ m

    , grad( pij) ≥ grad(rij),   ∀i,j,

    ı̂n care rapoartele se consideră ireductibile. Deoarece raţionala este proprie avem că   D   :=T (∞)   ∈ R p×m (finit). Problema realizabilităţii raţionalei proprii   T (s) se reduce atunci la

    problema realizabilităţii raţionalei   strict proprii  T (s) =   T (s) − D, i.e., trebuie să găsim treimatrice (A,B,C ) astfel ı̂ncât T (s) = C (sI  − A)−1B. Deoarece T (s) este strict proprie avem

    T (s) =   K 0 + K 1s + . . . + K k−1sk−1γ 0 + γ 1s + . . . + γ k−1sk−1 + sk

      (3.4)

    unde γ (s) :=  γ 0

    +γ 1

    +. . .+γ k−1

    sk−1+sk este cel mai mic multiplu comun  (monic) al numitorilor

    tuturor elementelor raţionalei T (s), iar K i, i = 0, . . . , k − 1, sunt p × m matrice constante. Orealizare a lui T (s) este dată de

    A =

    Om   I m

    . . .

    I m−γ 0I m   −γ 1I m   . . .   −γ k−1I m

    , B =

    Om...

    OmI m

    , C  =   K 0   K 1   . . . K  k−1 .(3.5)

    Definiţia 3.1   Realizarea 3.5 este controlabil˘ a fiind numit˘ a realizarea standard controlabil˘ a a lui  T (s).

    ˆ In general , realizarea obţinută  nu este ı̂ns˘ a observabil˘ a .

    Definiţia 3.2  O realizare observabil˘ a (realizarea standard observabil˘ a) este 

    A =

    O p   −γ 0I  pI  p   −γ 1I  p

    . . .  ...

    I  p   −γ k−1I  p

    , B =

    K 0K 1

    ...K k−1

    , C  =   O p   . . . O p   I  p .   (3.6)Această realizare  nu este ı̂n general controlabilˆ a .

    Observaţie:   Pentru o matrice de transfer raţională de dimensiuni arbitrare nu se poatescrie direct o realizare simultan controlabilă şi observabilă bazată pe coeficienţii din (3.4).

    Conversia model de stare - matrice de transfer

    Conversia inversă, respectiv calculul matricei de transfer asociate unui model de stare dat, seface separat pentru fiecare pereche (uj , yi) de intrări şi ieşiri reducându-se natural la problemasimilară pentru un sistem SISO.

    Fie sistemul SISO   S   = (A,B,C,D). Pentru a calcula funcţia de transfer, adică douăpolinoame  p(s),  N (s) astfel ı̂ncât

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    5/26

    3.2. REALIZABILITATE    5

    T  (s) def =   C  (sI  − A)

    −1 B = N  (s)

     p (s)  (3.7)

    constatăm că funcţia de transfer a unui sistem cu reacţie unitară este

    T 0 (s) =  T  (s)

    1 + T  (s) =

      N  (s)

     p (s) + N  (s)  =

      N  (s)

     p0 (s)  (3.8)

    unde p0 (s) = p (s) + N  (s). Deci

    N  (s) =  p0 (s) − p (s) .   (3.9)

    Problema s-a redus la a calcula  p (s) şi  p0 (s).

    Dar p (s) este polinomul caracteristic al lui  A  adică

     p (s) =n

    i=1 (s − λi) ,   (3.10)unde λi  sunt polii lui  T  (s), adică valorile proprii ale matricei  A. Analog,  p0 (s) este polinomulcaracteristic al matricei  A0  a sistemului ı̂n circuit ı̂nchis, deci  A0 =  A − BC .

    B) Testare numerică

    Algoritmul 3.2 (Un algoritm de calcul al funcţ iei de transfer T  (s) este următorul:)

    1.   Se calculează valorile proprii  λi  ale matricei  A  utilizând algoritmul QR

    2.   Se formează  A0 =  A − BC 

    3.   Se calculează valorile proprii  λ0i  ale matricei  A0   utilizând algoritmul QR

    4.   Se calculează  p (s) =n

    i=1 (s − λi)5.   Se calculează  p0 (s) =

    ni=1

    (s − λ0i)

    6.   Se calculează  N  (s) =  p0 (s) − p (s)

    C) Sarcini de lucru

    1.  Fie un sistem liniar cu 2 intrări şi două ieşiri dat de următoarea matrice de transfer

    H (s) =

      1(s−1)2

    1(s−1)(s+3)

    −6(s−1)(s+3)2

    s−2(s+3)2

    Găsiţi o realizare pe stare a sistemului.

    2.  Fie un sistem liniar cu 2 intrări şi o ieşire dat prin reprezentarea pe stare (A,B,C,D).Să se găsească matricea de transfer asociată.

    3.   Scrieţi o realizare de stare  S  = (A,b,cT , 0) a funcţiei de transfer  T (s) = N (s)/p(s) astfelı̂ncât  R(A, b) =  I . Idem, astfel ı̂ncât  Q(cT , A) =  I .   În ce condiţii putem avea simultanR(A, b) = Q(cT , A) =  I   ?

    4.   Scrieţi un algoritm care calculează o realizare standard observabilă pentru un sistem SISO,respectiv MIMO.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    6/26

    6

    3.3 Teste numerice de controlabilitate şi observabilitate asistemelor liniare

    A) Descriere teoretică

    Un sistem liniar   S   = (A,B,C,D) este   controlabil   dacă orice tranziţie de stare dorită poatefi realizată prin alegerea adecvată a funcţiei de intrare. Controlabilitatea sistemului liniar  S este o proprietate ce depinde numai de perechea (A, B). Avem următoarea caracterizare acontrolabilităţii unui sistem.

    Teorema 3.3   Sistemul  S  = (A,B,C,D)  (sau perechea  (A, B)) este  controlabil(ă)  dac˘ a şi nu-mai dac˘ a 

    rangR =  n,   (3.11)

    unde  R =   B AB . . . An−1B  este matricea de controlabilitate.

    Un sistem liniar  S  = (A,B,C,D) este  observabil  dacă starea iniţială este unic determinatăcunoscând funcţiile de intrare şi ieşire, obţinute e.g. prin măsurători efectuate la intrările şiieşirile lui  S . Observabilitatea sistemului liniar  S  depinde numai de perechea (C, A).

    Teorema 3.4   Sistemul  S  = (A,B,C,D) (sau perechea  (C, A)) este  observabil(ă) dac˘ a şi numai dacă 

    rang Q =  n,   (3.12)

    unde  Q =

    CA...

    CAn−1

     este matricea de observabilitate.

    Examinând ı̂n paralel relaţiile de mai sus, concludem că noţiunile de controlabilitate şiobservabilitate sunt duale , ı̂n sensul că ele corespund prin relaţiile

    A ← AT , C  ← BT .

    În particular avem

    Q(C, A) =  RT (AT , C T ).

    În consecinţă, vom prezenta procedurile de calcul asociate controlabilităţii, rămânând ca celeasociate observabilităţii să rezulte “prin dualitate”.

    Procedurile de testare a controlabilităţii unei perechi date (A, B) sunt de două tipuri:

    a) Proceduri, numite ad-hoc   elementare , care testează controlabilitatea perechii (A, B) uti-lizând direct definiţia 3.3. Aceste proceduri sunt, ı̂n general, neeficiente şi pot fi aplicate cusucces numai pentru perechi de dimensiuni mici.

    b) Proceduri care utilizează transformări de asemănare pentru a aduce perechea iniţială(A, B) la o formă “simplă”, pe care proprietatea de controlabilitate să poată fi testată directprin inspecţie. Aceste proceduri, numite ı̂n continuare de transformare , sunt cele mai utilizate ı̂naplicaţii, ı̂n particular şi p entru că facilitează rezolvarea unor probleme de calcul conexe vizând,de exemplu, descompunerea controlabilă, testarea stabilizabilităţii, alocarea polilor etc. Ceamai eficientă procedură de transformare constă ı̂n aducerea perechii (A, B) la forma (superior)Hessenberg prin transformări de asemănare ortogonale.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    7/26

    3.3. CONTROLABILITATEA ŞI OBSERVABILITATEA   7

    B) Testare numerică

    În această secţ iune prezentăm două clase de teste a proprietăţii de controlabilitate (şi de ob-

    servabilitate prin dualizare):   teste elementare de controlabilitate   şi  metode avansate de testare a controlabilit˘ at ̧ii bazate pe forma Hessenberg .

    Teste elementare de controlabilitate

    Din clasa procedurilor elementare face parte ı̂n primul rând procedura “directă”, bazată peconstrucţia matricei de controlabilitate   R   şi testarea condiţ iei de rang (3.11). Construcţiamatricei R  se face recurent. Pentru a obţine relaţia de recurenţă fie

    Rk  = [B AB   · · ·   Ak−1B].

    Relaţiile care leagă doi termeni succesivi  Rk   şi  Rk+1  rezultă din partiţiile

    Rk+1def 

    =   B ...   AB A2B   · · ·   AkB  =   B ...   ARk ,   (3.13)respectiv

    Rk+1def =

      B AB   · · ·   Ak−1B...   AkB

     =

      Rk...   Bk+1

    ,   (3.14)

    unde submatricea  Bk+1 = AkB  formată din ultimele  m  coloane ale lui  Rk+1  rezultă ı̂n funcţ ie

    de submatricea corespunzătoare Bk  a lui  Rk  prin

    Bk+1 =  ABk, k ≥ 1,   (3.15)

    iar B1 =  B .

    Se constată imediat că procedura de construcţie a matricei  R  bazată pe relaţia (3.13) este

    relativ neeconomică ı̂n raport cu cea bazată pe relaţia (3.14). Prima procedură necesită efec-tuarea produselor  ARk   cu  Rk   având  mk   coloane (k ≥ 1) ı̂n timp ce a doua implică efectuareaproduselor ABk  cu Bk  având numai m  coloane. Mai mult, este clar că la fiecare pas  k  matriceaBk   este disponibilă ı̂n  Rk, mai precis

    Bk  =  Rk( : , (k − 1)m + 1 : km).   (3.16)

    Din (3.16) rezultă că nu este necesară nici alocarea unui tablou suplimentar de lucru pentrumemorarea matricei curente   Bk, nici calculul pe loc ı̂n   B, conform schemei   B   ←   AB, altermenilor şirului   Bk, ceea ce ar implica distrugerea matricei iniţiale   B.   În final obţinemurmătoarea procedură de testare a controlabilităţii perechii (A, B).

    Algoritmul 3.3   (Se testează controlabilitatea perechii (A, B) construind ma-

    tricea de controlabilitate  R).1.   R( : , 1 : m) ← B1 =  B

    2.   Pentru k = 2 : n

    1.   R( : , (k − 1)m + 1 : km) ← Bk  =  ABk−1

    3.   Se calculează  r  = rangR utilizând algoritmul DVS.

    4.   Dacă  r  =  n  atunci

    1.   Tipăreşte ”Perechea (A, B) este controlabilă.”altfel

    Tipăreşte ”Perechea (A, B) nu este controlabilă.”

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    8/26

    8

    În ciuda simplităţii sale, algoritmul 3.3  nu este ı̂n general recomandabil   ı̂ntrucât matriceaR   poate avea un număr ridicat de coloane rezultând la pasul 3 un rang numeric eronat. Deexemplu, dacă  m  = 1 şi matricea  B  =  b  se reduce la o singură coloană atunci, conform relaţiei

    (3.13), coloanele b, A b, . . . , Akb , . . . ale matricei (pătrate) R  coincid cu vectorii obţinuţi aplicândmetoda puterii  vectorului iniţial b1 =  b. Prin urmare, dacă n 1, iar matricea A  are o valoareproprie dominantă

    |λ1| > |λ2| ≥ . . . ≥ |λn|,

    atunci ultimele coloane ale lui  R  sunt practic aliniate cu vectorul propriu  x1  al lui A  asociat cuλ1. Chiar dacă perechea (A, b) este controlabilă, matricea de controlabilitate  R   este numericaproape singulară, adică

    cond(R) =   σ1σn

    1,

    unde   cond(R) este numărul de condiţionare la inversare al matricei   R   (̂ın raport cu normaspectrală) iar   σi, i  = 1 :   n, sunt valorile singulare ale lui   R  ordonate astfel ı̂ncât  σ1   ≥   σ2   ≥. . . ≥ σn. Fenomenul poartă numele de necontrolabilitate numerică  a perechii (A, b) şi ı̂n generalnu poate fi evitat, indiferent de testul de rang utilizat la pasul 3 al algoritmului.

    În afară de procedura directă, bazată pe testarea condiţ iei de rang, din grupul metodelorelementare fac parte o serie de proceduri derivate rezumate mai jos.

    Propoziţia 3.1   Controlabilitatea perechii  (A, B)  este echivalent˘ a cu oricare dintre condit ̧iile 

    1.   Nu exist˘ a nici un vector  h = 0  astfel ı̂nc  ̂at  AT h =  λh,  λ ∈ C   si  BT h = 0.

    2.   rang

      A − λI B

     =  n,  ∀λ ∈ λ (A).

    3.   Oricare ar fi vectorul  g  ∈ Rm

    cu proprietatea  Bg  = 0, exist˘ a o matrice  F   ∈ Rm×n

    astfel ı̂nc  ̂at perechea cu o singur˘ a intrare  (A − BF,Bg)  este controlabil˘ a.

    În subsecţiunea C)   Sarcini de lucru  vom vedea că fiecare dintre aceste criterii are anumiteprobleme din punct de vedere numeric.

    Teste elementare de observabilitate

    În general, dacă o procedură   proc  calculează un rezultat   R   =   proc(A, B) privind controla-bilitatea perechii (A, B) atunci rezultatul dual  Q, privind observabilitatea perechii (C, A), seobţine cu secvenţa

    1.   Rd =  proc(AT , C T )

    2.   Q =  RT d

    De exemplu, dacă  proc(A, B) este algoritmul 3.3, care produce matricea de controlabilitate  Ra perechii (A, B), atunci secvenţa de mai sus produce matricea de observabilitate  Q  a perechii(C, A).

    Forma Hessenberg controlabilă

    Considerăm sistemul liniar  S  = (A,B,C,D) şi fie  S̃  = ( Ã,  B̃,  C̃, D) un sistem   asemenea  cu  S ,având matricele

    à=  T AT −1,   B̃ =  T B,   C̃  = C T −1,   (3.17)

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    9/26

    3.3. CONTROLABILITATEA ŞI OBSERVABILITATEA   9

    unde   T   ∈ Rn×n este o matrice nesingulară arbitrară.   Între matricele de controlabilitate şiobservabilitate asociate sistemelor  S   şi  S̃  există următoarele relaţii

    ˜R =  T R,

      ˜Q =  QT 

    −1

    .   (3.18)

    Rezultă că matricele  R   şi  R̃  au acelaşi rang, deci perechile (A, B) şi ( Ã,  B̃) sunt simultan con-trolabile sau necontrolabile.  În mod similar, perechile (C, A) şi ( C̃,  Ã) sunt simultan observabilesau neobservabile. Pe scurt, proprietăţile de controlabilitate şi observabilitate sunt invarianteı̂n raport cu transformările de asemănare.

    Dacă ı̂n (3.17) presupunem că matricea  T   =  U   este ortogonală, deci sistemele  S   şi  S̃   suntortogonal asemenea , i.e.,

    à=  U AU T ,   B̃ =  U B,   C̃  = C U T ,   (3.19)

    cu U  ortogonală, atunci relaţiile (3.18) devin

    R̃ =  U R,   Q̃ =  QU T .   (3.20)

    În cele ce urmează vom descrie procedurile de aducere a perechii (A, B) la o formă simplăutilizând transformările de asemănare ortogonală, cu scopul identificării invarianţilor (ortogonaliai) acestei perechi şi, ı̂n particular, al testării controlabilităţii acesteia.   În consecinţă, vomconsidera o pereche (A, B) cu  m   intrări, nu neapărat controlabilă. Peste tot vom presupuneB = 0 şi vom nota

    r def = rangR,   r̄

     def =   n − r,   (3.21)

    unde evident r satisface inegalitatea 1 ≤ r ≤ n. Procedura de transformare are la bază următorulrezultat general.

    Propoziţia 3.2   (Lema de deflaţie controlabilă). Oricare ar fi perechea   (A, B)   cu   rangB   =r1 >  0, exist˘ a o matrice ortogonal˘ a  U 1 ∈ R

    n×n astfel ı̂nc  ̂at 

    A ←  Ã =  U 1AU T 1   =

      A1   X G F 

    , B ←  B̃ =  U 1B =

      H 10

      (3.22)

    unde matricea   H 1   ∈ Rr1×m este epic˘ a, i.e.   rangH 1   =   r1. Mai mult, perechea   (A, B)   este 

    controlabil˘ a dac˘ a şi numai dac˘ a perechea redus˘ a  (F, G), de ordin  n − r1 < n, este controlabil˘ a.

    Matricea U 1   se determină e.g. aplicând lui  B  procedura de descompunere a valorilor singulare(DVS). Avem

    U 1BV   =

      Σ1   0

    0 0

    ,   (3.23)

    unde   U 1   şi   V   ∈ Rm×m sunt ortogonale iar Σ1   este diagonală de ordin  r1   >  0 cu elementele

    diagonale pozitive. Partiţionând  V   = [V 1 V 2], unde V 1  are r1  coloane, obţinem

    B̃ =  U 1B =

      Σ1   0

    0 0

      V T 1V T 2

     =

      Σ1V 

    T 1

    0

    ,

    unde  H 1  = Σ1V T 1   este evident epică de rang  r1. După determinarea lui  U 1  se aplică  U 1   lui  A,

    i.e. se calculează  Ã  =  U 1AU T 1   , şi ı̂n acord cu (3.22) se evidenţiază perechea redusă (F, G) de

    ordin  n − r1   cu   r1   intrări.   În ipoteza   G  = 0, perechii (F, G) cu  rang G  =  r2   >  0 i se poateaplica din nou o transformare de tip (3.22). Se obţine

    F  ←  F̃   =  Ū 2F  Ū T 2   =

      A2   X Gnou   F nou

    , G ←  G̃ =  Ū 2G =

      H 2

    0

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    10/26

    10

    sau echivalent

    A ←  Ã =  U 2AU T 2   =

    A1   X X H 2

    0

    A2   X 

    Gnou   F nou

    ,

    B  ←  B̃ =  U 2B =

    H 100

    ,(3.24)

    unde matricele  Ū 2  precum şi

    U 2 =

      I r1   0

    0   Ū 2

      (3.25)

    sunt ortogonale iar matricea H 2  este epică de rang  r2. Forma finală a perechii (A, B), obţinutăprin aplicarea repetată a procedurii de deflaţie descrisă ı̂n propoziţia 3.2, se numeşte   forma bloc-superior Hessenberg   şi este definită prin

    A ←  Ã =  U AU T  =   AR   AR R̄0   AR̄

    , B ←  B̃ =  U B =   BR0 ,   (3.26)

    ı̂n care perechea (AR, BR), de ordin r, se găseşte ı̂n forma  bloc-superior Hessenberg controlabil˘ a 

    AR  =

    A1   X    · · ·   X X H 2   A2   · · ·   X X 

    . . .  . . .

      ......

    . . .  . . .

      ...H k   Ak

    , BR =

    H 10......0

    ,   (3.27)

    unde toate blocurile  H i  ∈ Rri×ri−1 sunt epice, i.e.

    rangH i  =  ri  >  0, i = 1 : k, r0def =   m.   (3.28)

    Evident avem

    r =ki=1

    ri  ≤ n   (3.29)

    şi ı̂n virtutea condiţ iilor (3.28) perechea (AR, BR) din (3.26) este controlabilă. Mai mult,perechea iniţială (A, B)  este controlabil˘ a  dacă şi numai dacă   r   =   n, i.e. ( Ã,  B̃) = (AR, BR),şi ı̂n acest caz numărul  k  de blocuri din (3.27) coincide cu   indicele de controlabilitate  ν  al lui(A, B).

    Matricea ortogonală U  ∈ Rn×n din (3.26) rezultă prin acumularea transformărilor parţiale,i.e.

    U  = U k · · · U 2U 1,   (3.30)

    ı̂n care  U 1   se determină ca ı̂n demonstraţia lemei 3.2,  U 2  are forma (3.25) etc. Subliniem că ı̂nvirtutea structurii lui  U 2, premultiplicarea cu  U 2  nu modifică primele  r1   linii, iar postmultipli-carea cu U T 2   nu modifică primele r1 coloane ale matricei asupra căreia acţionează transformareacorespunzătoare. De asemenea, proprietăţi asemănătoare au toate matricele  U i, i  = 2 :  k  din(3.30).

    În concluzie, aducerea pe loc a perechii iniţ iale (A, B) la forma bloc-superior Hessenberg(3.26), (3.27) se face printr-o succesiune de transformări ortogonale de asemănare

    A ← U iAU T i   , B ← U iB, i = 1 :  k.   (3.31)

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    11/26

    3.3. CONTROLABILITATEA ŞI OBSERVABILITATEA   11

    La etapa   i  = 1 se operează asupra perechii iniţiale (A, B) ca ı̂n propoziţia 3.2, iar la etapelei  ≥   2 se operează analog asupra perechii reduse corespunzătoare (F, G), conţinute ı̂n tabloulA.   În particular, transformările  U i, i ≥ 2 nu modifică forma lui  B  obţinută după prima etapă,

    deci pentru  i ≥ 2 relaţiile (3.36) se reduc la

    A ← U iA, A ← AU T i   .   (3.32)

    Pentru a descrie precis algoritmul astfel obţinut, introducem, următoarele proceduri, a cărorscriere explicită revine studenţilor (utilizând, la nevoie, funcţii MATLAB adecvate).

    1.   Procedura de reducere a lui   B   decrisă mai sus relativ la Propoziţia 3.2, vezi relaţiile(3.22) şi (3.23), având sintaxa

    [ r1, U 1, H 1 ] = red(B).

    (Amintim că la etapele  i ≥ 2 procedura red  se aplică unui bloc  G, localizat ı̂n tabloul  A).

    2.   Procedura de premultiplicare a unei matrice cu matricea de transformare curentă

    A =  mul1(U i, A).

    3.   Procedura de postmultiplicare a unei matrice cu matricea de transformare curentă

    A =  mul2(A, U i).

    Acumularea transformărilor din 3.30 se face conform schemei

    U  ← U iU, i = 2 :  k   (3.33)

    cu iniţializarea U  = U 1.

    Avem următorul algoritm

    Algoritmul 3.4 (Dată perechea (A, B) de ordin n  cu  m  intrări şi B  = 0 algorit-mul construieşte forma bloc-superior Hessenberg (3.26), (3.27), (3.28) şi acumuleazătransformările. Perechea rezultată suprascrie pe cea iniţială).

    1.   k = 1

    2.   [r1, U 1, H 1] = red(B)

    3.   A =  mul1(U 1, A), A =  mul2(A, U 1)

    4.   U  = U 1

    5.   rv  = 0, r =  r1

    6.   CONTINUĂ = ’da’

    7.   Cât timp  CONTINUĂ = ’da’

    1.   ν  = k2.   Dacă r  =  n

    atunci

    1.   CONTINUĂ = ’nu’

    2.   Tipăreşte ”Perechea (A, B) este controlabilă”

    altfel

    1.   G =  A(r + 1 : n, rv + 1 : r)

    2.   Dacă  G = 0atunci

    1.   CONTINUĂ = ’nu’

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    12/26

    12

    altfel

    1.   k ← k + 1 % (etapa  k , k ≥ 2)

    2.   [rk, U k, H k] =  red(G)

    3.   A(r + 1 : n, r + 1 : n) =mul1(U k, A(r + 1 : n, r + 1 : n),A(1 :  n, r + 1 : n) =  mul2(A(1 :  n, r + 1 : n), U k)

    4.   U (r + 1 : n, 1 : n) =  mul1(U k, U (r + 1 : n, 1 : n))

    5.   rv  = r, r ← r + rk

    Având ı̂n vedere că numărul   k   al etapelor de reducere nu este apriori cunoscut, utiliz ămşi aici variabila binară CONTINUĂ cu semnificaţia cunoscută.   În final, variabila  r  furnizeazărangul matricei de controlabilitate  R  a perechii date (A, B).  În cazul r  =  n, i.e., dacă perechea(A, B) este controlabilă, algoritmul se opreşte la instrucţiunea 7.2. iar ν  este indicele de con-trolabilitate. Din contră, dacă algoritmul se opreşte datorită faptului că blocul curent  G  estenul, atunci perechea (A, B) nu este controlabilă, iar perechea transformată ( Ã,  B̃), furnizată de

    algoritmul 3.4, are forma (3.26), ı̂n care r < n.

    Forma Hessenberg observabilă

    Pentru analiza proprietăţilor de observabilitate a unei perechi (C, A) de ordin n cu l  ieşiri, l ≥ 1,se procedează prin dualitate. Prin aplicarea schemei de dualizare relativ la algoritmul 3.4, seobţine  forma bloc-inferior Hessenberg  a perechii (C, A), definită prin

    A ←  Ã =  U AU T  =

      AQ   0AQ̄Q   AQ̄

    ,

    C  ←  C̃  =   CU T  =

      C Q   0

    ,

    (3.34)

    ı̂n care perechea (C Q, AQ) de ordin  q  se află ı̂n forma  bloc-inferior Hessenberg observabil˘ a 

    AQ =

    A1   G2

    X A2. . .

    ......

      . . .  . . .

    X X    · · ·  . . .   Gk

    X X    · · · · · ·   Ak

    , C Q  =

      G1   0   · · ·   0

    ,   (3.35)

    unde toate blocurile  Gi  ∈ Rqi−1×qi sunt monice, i.e.

    rangGi  =  q i  >  0, i = 1 : k, q 0def =   l.   (3.36)

    Evident avem

    q  =ki=1

    q i  ≤ n   (3.37)

    şi ı̂n virtutea condiţiilor (3.36) perechea (C Q, AQ) din (3.34) este observabilă.   În plus,  perechea 

    init ̧ial˘ a   (C, A) este  observabil˘ a  dacă şi numai dacă  q  =  n, i.e. ( C̃,  Ã) = (C Q, AQ), şi ı̂n acestcaz numărul  k  de blocuri din (3.35) coincide cu   indicele de observabilitate  al lui (C, A).

    În sfârşit, la fel ca ı̂n cazul controlabilităţii, matricea ortogonală U  ∈ Rn×n din (3.34) rezultădin acumularea transformărilor parţiale, i.e.   U  = U k · · · U 2U 1.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    13/26

    3.4. REALIZ ̆  ARI MINIMALE    13

    C) Sarcini de lucru

    1.   Se consideră următoarea pereche de matrice

    A =

    1

    20 2. . .

      . . .

    20 1920 20

    , b =

    200......0

    .   (3.38)

    a) testaţi controlabilitatea folosind criteriul C1 (rangul matricei de controlabilitate).Testaţi buna condiţionare a matricei de controlabilitate pe baza valorile singulare. Cese constată?

    b) testaţi controlabilitatea folosind testul C2 pentru valoarea proprie 20 (cel mai rău caz).

    Obtineţi un rezultat corect? Ce puteţi spune despre acest test ı̂n comparaţie cu primul?

    c) testaţi controlabilitatea folosind testul C2 ı̂n felul următor: perturbaţi matricea A ı̂n

    poziţia (1,20) cu o valoare mică   δ   = 10−12; alegeţi un vector   b̂   astfel ı̂ncât o valoareproprie, de exemplu   λ   = 1 să nu fie controlabilă, i.e.   rank

     Â − I    |   b̂

      <   20. Ce

    rezultate dă testul C2 aplicat valorilor proprii calculate ale matricei  Â  ?

    d) faceţi o comparaţie ı̂ntre testele C2 şi C3 folosind  b̂   = [0, 1, 1, . . . , 1]T  şi  Â  matriceainiţială; aplicaţi o transformare ortogonală pe spaţiul stărilor perechii (A,b). Studiaţi

    valorile proprii rezultate pentru  Â + b̂f   pentru un f  oarecare şi numerele de condiţionareale

      b̂   |   Â − λiI 

    ı̂n valorile proprii calculate λi  ale matricei  Â.

    2.  Se vor scrie programele MATLAB pentru implementarea algoritmului de construcţie a

    matricei de controlabilitate şi de testare elementară a controlabilităţii unei perechi (A, B).Se vor compara soluţia calculată cu programul propriu cu cel oferit de funcţia MATLABdisponibilă.

    3.  Se va scrie programul MATLAB pentru implementarea algoritmului de calcul al formeiHessenberg complete a unei perechi (A, B) a unui sistem cu mai multe intrări şi se vacompleta cu testarea controlabilităţii acestei perechi.

    3.4 Calculul realizărilor minimale

    A) Descriere teoretica

    Principalul rezultat al teoriei realizării sistemelor liniare afirmă că orice sistem S  = (A,B,C,D)este echivalent intrare-iȩsire, i.e. are aceeaşi matrice de transfer, cu un sistem de ordin minimS m   = (Am, Bm, C m) care este simultan controlabil şi observabil. Mai mult, sistemul S m   estedeterminat până la o transformare de asemănare şi, ı̂n esenţă, coincide cu partea simultancontrolabilă şi observabilă a sistemului dat S .

    Definiţia 3.3   Un sistem  S m = (Am, Bm, C m) controlabil şi observabil, echivalent intrare-ieşire cu  S  se numeşte  realizare minimală  a lui  S .

    Mai general, orice sistem  S m  = (Am, Bm, C m) controlabil şi observabil se numeşte  minimal.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    14/26

    14

    B) Testare numerică

    În consecinţă, o realizare minimală (i.e. de ordin minim) a unei matrice de transfer date T (s)

    poate fi construită aplicând următoarea procedură.

    Algoritmul 3.5 ( Construieşte o realizare minimală a matricei de transfer T (s)).

    1.   Se construieşte o realizare observabilă  S   = (A,B,C,D) a lui   T (s), utilizândformele standard observabile, expuse ı̂n secţiunea 3.2.

    2.   Se construieşte descompunerea controlabilă

    à=  U AU T  =

      AR   AR R̄

    0   AR̄

    ,   B̃ =  U B  =

      BR

    0

      ,

    utilizând algoritmul 3.4 şi se aplică transformarea  U  matricei  C , i.e.

    C̃  = C U T  = [ C R   C R̄  ] .

    3.   Se reţine partea controlabilă   S m   = (AR, BR, C R) a tripletului transformat,unde

    AR =  Ã(1 : r, 1 : r), BR =  B̃(1 :  r, :)

    este partea controlabilă a perechii (A, B) iar

    C R  =  C̃ ( : , 1 : r).

    C) Sarcini de lucru

    1.   Se va scrie programul MATLAB pentru implementarea algoritmului de calcul al uneirealizări minimale a unei perechi (A, b) a unui sistem cu o singură intrare şi o singurăieşire. Se va compara soluţia calculată cu programul propriu cu cea oferită de funcţiaMATLAB disponibilă. Se vor aborda cazurile ı̂n care transformarea de asemănare pestare este: a) inversabila; b) ortogonala.

    2.   Se va scrie programul MATLAB pentru implementarea algoritmului de calcul al uneirealizări minimale a unui sistem (A,B,C,D) cu mai multe intrări şi mai multe ieşiri. Sevor aborda cazurile ı̂n care transformarea de asemănare pe stare este: a) inversabilă; b)ortogonală. Se va compara soluţia calculată cu programul propriu cu cea oferită de funcţiaMATLAB disponibilă.

    3.   Se vor analiza sursele funcţiilor MATLAB  ctrb   şi  ctrbf   şi  minreal   şi se vor identificametodele folosite.

    3.5 Calculul realizărilor balansate

    Principala proprietate a realizărilor balansate este că transformarea de asemănare se alege astfelı̂ncât gramienii de controlabilitate şi de observabilitate sunt egali cu o matrice diagonală cuelementele diagonale ı̂n ordine descrescătoare. Mărimile elementelor diagonale ale gramienilorreflectă contribuţia intrărilor vectorului de stare la ieşirea sistemului.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    15/26

    3.5. REALIZ ̆  ARI BALANSATE    15

    A) Descriere teoretică

    Considerăm sistemul liniar S  = (A,B,C,D). Vom presupune că sistemul  S  este stabil.

    Definiţia 3.4   Se numeşte gramian de controlabilitate al sistemului  S  matricea simetric˘ a 

    Lc (t) :=

    t 0

    eA(t−τ )BBT eAT (t−τ )dτ.   (3.39)

    Dacă matricea A   este asimptotic stabilă, atunci limita limt→∞

    Lc (t) este finită, se notează cu

    Lc   şi este numită  gramian de controlabilitate asimptotic .

    Analog se defineşte şi gramianul de observabilitate.

    Gramianul de controlabilitate Lc, respectiv gramianul de observabilitate Lo satisfac ecuaţiileLyapunov

    ALc + LcAT  + BBT  = 0AT Lo + LoA + C 

    T C  = 0  .   (3.40)

    Valorile singulare Hankel , σhi , ale sistemului  S  sunt radacinile patrate pozitive ale valorilorproprii λi   ale produsului  LcLo, deci

    σhidef = [λi (LcLo)]

    1/2 .   (3.41)

    Vom presupune ca ca  σhi  sunt ordonati descrescator.

    Definiţia 3.5   Sistemul   S   se numeşte balansat dac˘ a ambii gramieni sunt egali cu matricea diagonal˘ a a valorilor singulare Hankel.

    Vom presupune ı̂n continuare că sistemul S  este controlabil şi observabil. Rezultă că putemscrie descompunerile Cholesky ale matricelor  Lc   si  Lo

    Lc  =  S T S, Lc  >  0 (3.42)

    şiLo  =  R

    T R, Lo >  0.   (3.43)

    Valorile singulare Hankel se pot exprima ı̂n termenii matricelor  S   şi R. Astfel, dacă substi-tuim ı̂n (3.41)  Lc   şi Lo  date de (3.42) şi (3.43), atunci mulţimea valorilor singulare Hankel estedată de

    {σhi} =

    λi

    S T SRT R1/2

     =

    λi

    RS T SRT 1/2

     =

    σi

    SRT 

      (3.44)

    unde

    σi

    SRT 

     este prin definiţie mulţimea valorilor singulare ale produsului  S RT .

    Considerăm descompunerea valorilor singulare (DVS) a matricei  S RT 

    SRT  = U ΣV T ,   (3.45)

    unde Σ este matricea diagonală a valorilor singulare Hankel. Fie  T   matricea definită de

    T   = S T U Σ−1/2.   (3.46)

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    16/26

    16

    Se poate verifica imediat că inversa ei se poate exprima ca

    T −1 = Σ−1/2V T R.   (3.47)

    Sistemul ( A, B, C, D) dat deA =  T −1AT,   B =  T −1B,   C  = C T,   D =  D   (3.48)

    este o realizare balansată a sistemului (A,B,C,D).

    Dacă Lc   şi Lo  sunt matricele gramian corespunzatoare sistemului ( A, B, C, D), ele se potexprima ı̂n funcţie de  Lc   şi  Lo  ı̂n forma

    Lc =  T −1LcT −T  (3.49)Lo  =  T T LoT    (3.50)

    după cum se poate verifica imediat prin ı̂nlocuire directă ı̂n (3.40). Folosind (3.47) şi (3.42)obţinem din (3.49)

    Lc  = Σ−1/2V T R S T S RT V Σ−1/2 = Σiar din (3.50) folosind (3.46) şi (3.43)

    Lo  = Σ−1/2U T S RT RS T U Σ−1/2 = Σ.B) Testare numerică

    În consecinţă, o realizare balansată (i.e. cu gramienii de controlabilitate si observabilitateegali si diagonali) a unei matrice de transfer date T (s) poate fi construită aplicând următoareaprocedură.

    Algoritmul 3.6 ( Construieşte o realizare balansată a sistemului minimal stabil(A,B,C,D)).

    1.   Se calculează factorii Cholesky  S   şi  R  astfel ı̂ncât Lc  =  S T S ,  Lo  =  RT R

    2.   Se calculează DVS astfel ı̂ncât  S RT  = U ΣV T 

    3.   Se calculeazâ  T   = S T U Σ−1/2,  T −1 = Σ−1/2V T R.

    C) Sarcini de lucru1.   Care credeţi că ar putea fi o posibilă utilizare a realizărilor balansate? (ganditi-vă la o

    posibilitate de a scrie realizări minimale)

    Programe MATLAB disponibile

    Construcţia matricei de controlabilitate  R   a perechii (A, B) se face cu funcţia ctrb, care im-plementează algoritmul 3.3, mai precis versiunea acestuia bazată pe formula (3.13). Pentruconstrucţia formei bloc-superior Hessenberg a unei perechi (A, B) este disponibilă funcţia ctrbf .Construcţia unei realizări minimale se poate face utilizând funcţia minreal.

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    17/26

    3.5. REALIZ ̆  ARI BALANSATE    17

    Bibliografie

    [1]  Ionescu V., Varga A.   Teoria sistemelor - Sinteza robust˘ a, metode numerice de calcul ,

    Ed. All, Bucureşti 1994.

    [2]   Jora B., Popeea C., Barbulea S.   Metode de Calcul Numeric ı̂n Automatic˘ a , Ed.Enciclopedică, Bucureşti 1996.

    [3]   Van Dooren P.   Numerical Linear Algebra for Signals Systems and Control 

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    18/26

    18

    ANEXA

    Sectiunea 3.1 Problema 1.

    function stabilitate(A)

    lambda = eig(A);

    alpha = max(lambda);

    if (alpha < 0)

    disp ’Sistemul este stabil’;

    else

    disp ’Sistemul este instabil’;

    end

    Sectiunea 3.1 Problema 3.

    % Eliminare gaussiana pentru matricea A

    function [A,rez] = gauss(A);

    [n,n] = size(A);

    rez = 0; %variabila care va indica prezenta unui pivot nul

    for k = 1 : n-1,

    if (A(k,k) == 0)

    rez = k;

    break; %daca am intalnit un pivot nul ies

    end

    for i = k+1 : n,

    A(i,k) = A(i,k) / A(k,k);

    end

    for j = k+1 : n,

    for i = k +1 : n,

    A(i,j) = A(i,j) - A(i,k)*A(k,j);

    end

    end

    end

    % Aplicarea eliminarii gaussiene pentru matricea Hurwitz H

    function [H,rez] = gauss Hurwitz(poli)

    dim=size(poli);

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    19/26

    3.5. REALIZ ̆  ARI BALANSATE    19

    coeff=dim(2);

    % constructia matricei Hurwitz

    H=zeros(coeff-1);

    for i=1:coeff,

    H(1+rem(i,2),ceil(i/2))=poli(i);

    end

    if (rem(coeff,2) =0)

    H(1,ceil(coeff/2)) = 0;

    end

    for i = 3 : coeff-1

    H(i,:) = [0 H(i-2,1:coeff-2)];

    end

    % eliminare gaussiana

    [H,rez] = gauss(H);

    if (rez > 0)

    disp(’Am gasit un pivot nul’);

    end

    % Testarea valorilor proprii ale matricei companion

    function [r,H,lambda]=companion(poli)

    dim=size(poli);

    coeff=dim(2);

    for i = 2 : coeff

    poli(i) = poli(i)/poli(1);

    end

    for i = 1 : coeff-1

    r(i) = poli(coeff-i+1);

    end

    % matricea companion

    H = [zeros(coeff-2,1) eye(coeff-2);-r];

    lambda = eig(H);

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    20/26

    20

    Sectiunea 3.1 Problema 3.(varianta)

    function RA=routh(poli,epsilon);

    if (nargin

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    21/26

    3.5. REALIZ ̆  ARI BALANSATE    21

    fprintf(’Caz special: Primul element este zero.’);

    RA(i-1,1)=epsilon; %inlocuieste cu epsilon

    end

    %calculeaza elementele vectorului Routh

    for j=1:index(i-2),

    RA(i,j)=-det([RA(i-2,1) RA(i-2,j+1);

    RA(i-1,1) RA(i-1,j+1)])/RA(i-1,1);

    end

    end

    Sectiunea 3.2 Problema 1

    H=tf([0 1],[0 1];[0 -6],[1 -2],[0 1 -2 1],[0 1 2 -3];[1 5 3 -9],[0 1 6 9]);

    sys = ss(H);

    A = sys.a

    B = sys.b

    C = sys.c

    D = sys.d

    Sectiunea 3.2 Problema 2

    A=[0 0 1 0;1 0 2 0;0 1 3 1;0 0 -21 5];B=[1 0;0 0;0 0;0 1];

    C=[1 5 4 1];

    D=[0 0];

    [num1,den1] = ss2tf(A,B,C,D,1)

    [num2,den2] = ss2tf(A,B,C,D,2)

    Sectiunea 3.2 Problema 4

    % Constructia realizarii standard observabile in cazul SISO

    function [A o,B o,C o,D o] = obsv siso(num,den)

    [n] = length(den);

    [m] = length(num);

    if (m > n)

    disp (’functie improprie’);

    else

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    22/26

    22

    if (m == n)

    [q,r] = deconv(num,den);

    D o = q;

    num = r(2:length(r));

    else

    D o = 0;

    end

    A o(:,1) = -den(2:length(den))’

    A o(1:n-2,2:n-1) = eye(n-2);

    A o(n-1,2:n-1) = zeros(1,n-2);

    B o = num’;

    C o(1,1) = 1;

    C o(1,2:n-1) = zeros(1,n-2);

    end

    % Constructia realizarii standard observabile in cazul MIMO

    function [A,B,C,D] = obsv MIMO(T)

    [p,m] = size(T)

    [num,den] = tfdata(T(1,1),’v’);

    % initializare cmmmc

    f = den;for i = 1 : p,

    for j = 1 :m,

    [num,den] = tfdata(T(i,j),’v’);

    f = deconv(conv(f,den),PolyGcd(f,den));

    end

    end

    for i = 1 : p,

    for j = 1 :m,

    [num,den] = tfdata(T(i,j),’v’);

    tmp = deconv(num,den);

    D(i,j) = tmp(1);

    [num1,den1] = tfdata(T(i,j)-D(i,j),’v’);

    N(i,j) = tf(conv(deconv(f,den1),num1),1);

    end

    end

    dim=size(f);

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    23/26

    3.5. REALIZ ̆  ARI BALANSATE    23

    n=dim(2);

    % constructia lui B

    l=1;

    while (l

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    24/26

    24

    end

    g = p2;

    function [q,v] = recast(p)

    % impartirea elementelor unui vector prin cmmdc

    v = norm(p,inf);

    if abs(p) == 0; q = abs(p); v = 1; return; end;

    if length(p) > 1;

    for j = 1:length(p), v = gcd(v,p(j)); end;

    end;

    q = p/v;if p(1) = 0; q=q*sign(p(1)); end;

    Sectiunea 3.3 Problema 1

    a)

    A = diag([1:20]) + diag(ones(1,19),-1)*20;

    b = [20;zeros(19,1)];

    R = ctrb(A,b);

    svd(R)

    Obţinem următorul rezultat

    ans =

    2.6110e+28

    2.1677e+28

    ...

    4.0545e+047.8271e+01

    2.0000e+01

    care indică o matrice singulară.

    b) Folosind C2 obţinem ca rang pentru valoarea proprie 20 (cel mai rău caz):

    svd([A-20*eye(size(A)),b])

    ans =

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    25/26

    3.5. REALIZ ̆  ARI BALANSATE    25

    3.6313e+01

    ...

    5.9214e+00

    soluţie care este departe de a fi singulară.

    Aceasta arată că testul bazat pe calculul rangului matricei de controlabilitate nu este ”deı̂ncredere”.

    c) Şi testul C2 suferă de dificultăţi ı̂n cazul matricei date  A. Dacă perturbăm  A  ı̂n poziţia(1, 20) cu o valoare  δ  = 10−12 atunci valorile proprii ı̂şi vor schimba prima şi/sau a doua cifrăseminificativă. Ca o consecinţă, testul C2 nu se va efectua folosind valorile proprii   reale   alematricei  Â, ci unele puternic perturbate. Acest calcul este independent de vectorul  b. Dacăluăm un vector  b̂  astfel ı̂ncât o anume valoare proprie, de exmplu 1, nu este controlabilă, i.e.,

    rank   ˆA − I    |   ˆb  <  20, ca de exemplu  ˆb   = [1e401e401e401e40zeros(1, 16)] atunci testulC2 aplicat valorii proprii   calculate  a lui  Â  va da rezultate complet eronate.A = diag([1:20]) + diag(ones(1,19),-1)*20;

    A(1,20) = 1e-12;

    b=[1e40 1e40 1e40 1e40 zeros(1,16)]’;

    rank([A-eye(20) b])

    vp = eig(A)

    for i = 1 : length(vp),

    rank([A-vp(i)*eye(20) b])

    end

    rank(ctrb(A,b))

    d) Acelaşi lucru poate fi spus şi despre testul C3. Dacă ( Â, b̂) este necontrolabilă pentru

    valoarea proprie  λ  = 1, atunci o reacţie f  nu va putea muta valoarea proprie  λ  = 1 ı̂n  Â + b̂f .Totuşi pentru că valorile proprii ale lui  A  (şi  Â) sunt atât de sensibile este foarte puţin posibil

    ca  Â  şi  Â + b̂f   să aibă o valoare proprie foarte apropiată de λ  = 1.

    Eigenvalues  λi(A) Eigenvalues  µi(A + b̂f )   K ( b; A − λiI )−.32985 ± j1.06242   .99999   .002.92191 ± j3.13716   −8.95872 ± j3.73260   .004

    3.00339 ± j4.80414   −5.11682 ± j9.54329   .0075.40114 ± j6.17864   −.75203 ± j14.148167   .0128.43769 ± j7.24713 5.77659 ± j15.58436   .018

    11.82747 ± j7.47463 11.42828 ± j14.28694   .02615.10917 ± j6.90721 13.03227 ± j12.90197   .03218.06886 ± j5.66313 18.59961 ± j14.34739   .04020.49720 ± j3.81950 23.94877 ± j11.80677   .05222.06287 ± j1.38948 28.45618 ± j8.45907   .064

    32.68478

  • 8/19/2019 Tsa Lab 3 Analiza Pe Stare

    26/26

    26

    Tabelul a fost obţinut pentru testele C2 şi C3 folosind   b̂   şi  Â   ca ı̂n enunţ.   În loc de aperturba un element al matricei  Â   folosim o transformare ortogonală oarecare   Q   pe spaţiulstărilor asupra sistemului ( Â, b). Valorile proprii rezultate pentru  Â + b̂f   pentru un  f  oarecare

    şi numerele de condiţionare ale   b̂   |   Â − λiI  ı̂n valorile proprii calculate λi  ale matricei  Âsunt date ı̂n Tabelul 3.1. Precizia maşină folosită pentru test a fost   ∼ 10−8.

    A = diag([1:20]) + diag(ones(1,19),-1)*20;

    b = [0 ones(1,19)]’;

    T = orth(rand(20));

    A = T*A*T’;

    b = T*b;

    eigs = eig(A+b*rand(1,20))

    for i = 1:length(eigs)

    rank([A-eigs(i)*eye(20) b])

    svds = svd([b A-eigs(i)]);

    k = svds(1)/svds(length(svds))

    end

    Când se folosesc ı̂n loc de λi

     Â

    , valorile corecte λi (A), testul C2 dă ca rezultat κ

      b̂   |   Â − λ1I 

    10−18, care indică faptul că problemă o constituie sensibilitatea valorilor proprii.