Sunteți pe pagina 1din 97

UNIVERSITATEA VALAHIA DIN TRGOVITE

FACULTATEA DE INGINERIE ELECTRIC


SPECIALIZAREA: AUTOMATIC I INFORMATIC APLICAT

LUCRARE DE LICEN

Coordonator:

Absolvent:

.l. Dr. Ing. Otilia DRAGOMIR


ALEXEANU (ENACHE)

tefania

TRGOVITE

IULIE 2013
1

Studiul stabilitii sistemelor liniare


continue cu ajutorul criteriilor
algebrice i frecveniale

CUPRINS

INTRODUCERE........................................................................................................ 5
Sisteme liniare........................................................................................................ 6
1.1 Problematica [2].................................................................................................. 6
1.2 Sisteme liniare cu timp continuu [2].........................................................................7
1.3 Sisteme liniare cu timp discret [2]..........................................................................13
1.4 Reprezentarea sistemelor prin ecuaii de stare [2],[6]...................................................16
1.5 Determinarea modelului sistemic din sistemul algebric de ecuaii Laplace [1]....................18
1.6 Funcia de transfer [1],[7]..................................................................................... 20
1.7 Polinomul caracteristic [2],[6]............................................................................... 21
CAPITOLUL II......................................................................................................... 23
Noiuni teoretice referitoare la stabilitatea sistemelor liniare continue......................................23
2.1 Conceptul de stabilitate [1], [5], [7]........................................................................23
2.1.1. Stabilitatea intern [1], [5]...................................................................23
2.1.2. Stabilitatea extern [1], [5].................................................................25
2.2. Criterii algebrice [1], [5], [6]......................................................................27
2.2.1. Criteriul Hurwitz: [5], [6]......................................................................27
2.2.2. Criteriul Routh-Hurwitz [1], [5], [6]....................................................28
2.3. Criterii frecveniale [4]............................................................................... 33
2.3.1. Criteriul lui Nyquist [2],[4]...................................................................34
2.3.2. Criteriul lui Bode [1]............................................................................. 36
2.3.3. Locul geometric al rdcinilor [2], [7]..................................................37
CAPITOLUL III........................................................................................................ 40
Crearea interfeelor grafice cu ajutorul GUI Matlab..........................................................40
3.1 Instrumentele programrii n Matlab [8]...................................................................40
3.2 Funcii pentru construirea interfeelor grafice GUI Matlab [8].....................................43
3.3 Construirea interfeelor grafice GUI [8]...................................................................50
3

3.4 Alte funcii utile n concepia unei interfee grafice GUI [8]...........................................57
3.5 Crearea meniurilor pentru interfeele grafice [8].........................................................59
CAPITOLUL IV........................................................................................................ 60
Studierea stabilitii sistemelor liniare continue cu ajutorul criteriilor algebrice i frecveniale........60
3.1 Descrierea aplicaiei [3],[8].................................................................................. 60
3.2 Funcia Callback [3],[8].................................................................................... 64
3.3 Analiza sistemelor n bucl deschis i bucl nchis...................................................73
3.3.1 Sistemul este stabil n bucl deschis i instabil n bucl nchis................................73
3.3.2 Sistemul este stabil att n bucl deschis ct i n bucl nchis................................75
CONCLUZII............................................................................................................ 76
BIBLIOGRAFIE....................................................................................................... 77

INTRODUCERE

Lucrarea de fa propune un instrument software realizat cu ajutorul GUI- Matlab


destinat studiului stabilitii sistemelor liniare continue cu ajutorul criteriilor algebrice i
frecveniale (definiia stabilitii interne i externe, criteriile algebrice: Hurwitz, Routh
Hurwitz i criteriile frecveniale: Nyquist, Bode i Locul geometric al rdcinilor). Aplicaia
vine n sprijinul studenilor de la specializrile cu profil tehnic i ofer posibilitatea
fundamentrii noiunilor de teoria sistemelor referitoare la conceptul de stabilitate al
sistemelor automate.
Stabilitatea este cea mai important proprietate a sistemelor dinamice fiind esenial
pentru realizarea scopului pentru care a fost conceput sistemul; n situaia n care sistemul nu
ndeplinete aceast proprietate se vor produce practic evoluii necontrolate ale acestuia, ce
vor afecta negativ calitatea produsului tehnologic i/sau sigurana exploatrii procesului
tehnic.
Lucrarea este structurat pe patru capitole, i anume :
Capitolul I : Descrierea sistemelor liniare continue i discrete. Determinarea modelului
sistemic din sistemul algebric de ecuaii Laplace. Descrierea funciei de transfer.
Capitolul II : Noiuni teoretice referitoare la stabilitatea sistemelor liniare continue.
Prezentarea criteriilor algebrice i frecveniale de stabilitate.
Capitolul III : Crearea interfeelor grafice cu ajutorul GUI (Graphical User Interface) Matlab.
Capitolul IV : Prezentarea aplicaiei Matlab pentru studiul stabilitii sistemelor liniare
continue cu ajutorul criteriilor algebrice i frecveniale.

Sisteme liniare
1.1 Problematica [2]

n general, prin noiunea de sistem (dinamic) se subnelege modelul matematic de un


anumit tip al unui proces fizic, tehnic, economic etc. Ca atare, noiunea de sistem este n mod
esenial legat de ideea evoluiei n timp a unui ansamblu de variabile apt s caracterizeze
complet la fiecare moment starea x a sistemului, adic totalitatea condiiilor interne de
desfurare a procesului modelat. Evoluia intern a sistemului este, pe de o parte, determinat
cauzal de intrrile u aplicate din exterior, de exemplu sub form de comenzi sau perturbaii,
iar pe de alta parte determin n mod univoc ieirile y, prin intermediul crora sistemul
comunic n exterior rezultatele evoluiei sale. n acest fel se stabilete un canal de aciune
unidirecional intrare-ieire, ale crui proprieti de transfer caracterizeaz funcionalitatea
sistemului considerat n raport cu mediul extern. (De regul, prin aceasta se nelege
capacitatea sistemului de a rspunde adecvat la comenzi, n condiiile unei relative
insensibiliti la aciunea unor perturbaii mai mult sau mai puin arbitrare).
n cazul particular, dar deosebit de important n practic, al sistemelor liniare, relaiile
de funcionare sunt relaii liniare care caracterizeaz, pe de o parte, evoluia strilor curente n
funcie de starea iniiala i de intrri, iar pe de alt parte, dependena dintre strile curente i
ieiri. Privind din alt perspectiv, putem spune c starea unui sistem liniar mediaz
transferul intrare-ieire realizat de acesta, cumulnd n form concentrat la fiecare moment
de timp ntreaga funcionare anterioar, necesar n scopul determinrii univoce a evoluiei
sale ulterioare.

1.2 Sisteme liniare cu timp continuu [2]


Elementele definitorii ale noiunii de sistem liniar cu timp continuu pot fi sintetizate
astfel:
(a) Mulimea T a momentelor de timp pe care este definit evoluia sistemului considerat
coincide cu mulimea a numerelor reale, T= .
(b) Spaiul strilor X este spaiul euclidian n-dimensional .
Un element x X se numete stare i se reprezint printr-un vector coloana ndimensional x=[x 1 ,x 2, x n ] T ale crui componente constituie prin definiie variabilele de
stare ale sistemului considerat. Notaia x(t)=x (oarecum abuziv dar comod) spune pe scurt
c vectorul x X este starea sistemului la momentul t, t .
(c) Spaiul intrrilor este spaiul euclidian m-dimensional

. Spaiul U al funciilor

de intrare este mulimea funciilor continue pe poriuni u(.) :

. Valoarea u(t)

la un moment dat t a funciei de intrare u(.) U se numete intrare a sistemului

la momentul t i este un vector m-dimensional ale crui componente u 1 (t), u 2 (t),u m (t)
reprezint cele m intrri (fizic distincte) ale sistemului considerat, m 1.
(d) Spaiul ieirilor este spaiul euclidian p-dimensional
este mulimea funciilor continue y(.) :

. Valoarea y(t)

. Spaiul Y al funciilor de ieire

la un moment dat t

a funciei de ieire y(.) Y se numete ieire a sistemului la momentul t i este un vector


p-dimensional ale crui componente y 1 (t), y 2 (t),y p (t) reprezint cele p ieiri ale
sistemului considerat, p 1.
Utiliznd elementele (a)-(d) introduse mai sus, putem formula n mod precis principalul
coninut al noiunii de sistem liniar cu timp continuu.
Definiia 1. Un sistem cu timp continuu, finit dimensional, multivariabil (cu m intrri i p
ieiri), liniar i constant este definit prin ecuaiile de stare :
.

x (t) = A x (t) + Bu(t)

(1)

y(t) = C x (t)

(2)

n care vectorii x (t)

X, u(t)

i ieirea la momentul curent t

si y(t)

, iar A

nxn

,B

sunt respectiv starea, intrarea


nxm

i C

nxp

sunt

matrici constante.
n cele ce urmeaz voi presupune c elementele definitorii (a)-(d) sunt fixate i n general
voi emite calificativele cu timp continuu, finit-dimensional, multivariabil i constant. Voi
spune, pe scurt, c tripletul de matrici (A,B,C) definete un sistem liniar prin ecuaiile de

stare (1), (2) i voi nota = (A,B,C) n . Dimensiunea n dim X a spaiul strilor X=

se numete ordinul (sau dimensiunea) lui .


Traiectoria de stare x(t), t 0 a sistemului liniar corespunztoare strii iniiale
x(0)=x 0 X i funciei de intrare u(.) U este soluia (unic) a ecuaiei difereniale (1) cu
soluia iniial x(0)=x 0 . Un calcul simplu arat ca avem :

x(t) = (t, x 0 , u(.)) e tA x 0 +

( t ) A

Bu ( ) d

(3)

Aplicaia (liniar n raport cu ultimele dou argumente) : x X x UX definit


prin relaia (3), se numete funcie de tranziie a strilor lui i caracterizeaz complet
evoluia intern (la nivelul spaiul strilor) a sistemului liniar . Din acest punct de vedere,
scrierea (3) afirm pur i simplu c sistemul = (A,B,C) aflat n starea iniial x(0)= x 0
trece sub aciunea funciei de intrare u(.) n starea x(t) = (t, x 0 , u(.)), t 0.
n particular, tranziiile de stare ale sistemului liber (cu intrare nul, u(.) = 0) sunt
definite prin :
x(t) = (t, x 0 , 0) = (t)x 0 ,

(3 a)

n care :

(t)
e tA =

tk k
A

k 0 k !

(4)

Reprezint matricea de tranziie de forma n x n a lui .

Observaia 1. innd seama de faptul c seria matricial (4) converge absolut i uniform
pe orice subinterval finit al axei reale, se poate arta uor c familia (t), t are
proprietatea de grup comutativ.
(t) (t ' ) = (t ' ) (t) = (t+t ' ), t, t '

De asemenea este clar c (0) = I n . De aici rezult ntre altele c (t) este
inversabil i

(t) = (-t), t

. Aceasta

nseamn c sistemul liniar cu timp

continuu este reversibil, adic evoluia sa intern este definit prin relaia (3) nu numai pe
intervalul de timp viitor t 0, ci i pentru t 0, adic n ultim instan pentru orice t

Funcia de ieire y(.) Y a sistemului liniar corespunztoare strii iniiale x(0) = x


0

i funciei de intrare u(.) rezult din (2) i (3) sub forma :


t

y(t) = f(t, x 0 , u(.)) C e tA x 0 +


Aplicaia liniar f: X

Ce

( t ) A

Bu ( ) d

(5)

U Y, definit prin relaia (5), se numete funcie de intrare-

ieire a lui i caracterizeaz comportarea intrare-ieire a sistemului liniar . Altfel spus,


sistemul aflat n starea iniial x(0) = x 0 sub aciunea funciei de intrare u(.) produce (sau
genereaz) funcia de ieire y(.) = f(,x 0 ,u(.)) avnd expresia (5).
n particular, proprietile de transfer ale sistemului aflat n starea iniial nula, x 0 =0
sunt definite prin:
t

y(t) = f(t, 0, u(.)) =

T (t )u ( )d

(5 a)

n care :

T(t) C e tA B
reprezint matricea pondere de forma p

(6)

n a lui . Din (4) i (6) rezult imediat:

tk k
T(t) = A B,
k 0 k!

(6 a)

unde matricele :

d k T (t )
dt k

t 0

=CA k B, k 0

(6 b)

Constituie prin definiie parametrii Markov ai lui .


Pe scurt, sistemul liniar = (A,B,C) este definit de ecuaiile de stare (1) i (2) n
sensul c soluiile acestora (3) i (5) determin funciile i f ale lui , care la rndul lor,
caracterizeaz complet ntreaga evoluie a lui .
Descrierea operaional (n planul complex s) a sistemelor liniare cu timp continuu
se obine aplicnd transformarea Laplace ecuaiilor de stare (1) i (2) cu condiia iniial x(0)
= x 0 , n ipoteza c funcia de intrare u(.) este o funcie original. Deoarece matricea de
tranziie (4) are evident un timp de cretere cel mult exponenial, rezult uor c traiectoria de
stare i funcia de ieire definite prin (3) i respectiv (5) pentru t 0 i presupuse nule pentru
t0 sunt de asemenea funcii original. innd seama de aceasta constatare i notnd pentru
simplitate originalele i transformatele Laplace respectiv prin aceleai litere, din (1) i (2)
obinem imediat :
sx(s) - x 0 = Ax(s) + Bu(s)

(1 ' )

y(s) = Cx(s)

(2 ' )

sau sub form compact :


A sI n

x( s)
u ( s)

x0
y ( s)

(7)

unde matricea bloc :


(s) =

A sI n
C

(8)

De forma (n + p)

(n + m) se numete matricea polinomial asociat sistemului liniar

= (A,B,C) .
Din (1 ' ) rezult :
x(s) = (sI n - A) 1 x 0 + (sI n - A)

Bu(s),

n care :
10

(3 ' )

(s) = (sI n - A) 1 =

Ak

k
k 0 s 1

(4 ' )

reprezint matricea rezolvent de forma n

n a lui A. (Conform celor spuse mai sus,

(s) este transformata Laplace a matricei de tranziie cauzale (t), prin definiie egal cu
(t) = e tA pentru t 0 i nul pentru t 0).
Se constat c (s) este o matrice raional strict proprie de forma :
(s) = (sI n - A) 1 =

G (s)
,
( s)

(9)

unde = det (sI n - A) este polinomul caracteristic a lui A, iar G(s) reprezint matricea
asociat a lui (sI n - A). (Amintim c prin definiie elementele g ij ale lui G(s) sunt
complemenii algebrici ai elementelor (j, i) din matricea (sI n - A) ). Pe de alt parte, este util
s observm c n general expresia raional (9) a lui (s) este reductibil, adic polinoamele

(s) i g ij (s), i, j =1, 2 ,, n au un c.m.M.d.c monic c(s) 1. Un raionament simplu arat


c de fapt c(s) coincide cu c.m.M.d.c al polinoamelor g ij (s), adic al minorilor de ordin n 1
ai matricei sI n - A, iar (s) = c(s) (s), unde (s) este polinomul minimal al lui A . Prin
urmare expresia raional ireductibil a matricei (s) este :
(s) = (sI n - A) 1 =

L( s )
,
( s)

(10)

unde L(s) reprezint matricea asociat redus a lui

sI n - A. n particular, expresia

raional (9) este ireductibil, deci (s) = (s), dac i numai dac matricea A este ciclic.
Amintim c polinomul minimal (s) al lui A este polinomul monic de grad minim cu
proprietatea c (A) = 0 sau, echivalent, (A)x = 0, x
numete i polinomul minimal al spaiului X =

X. (De aceea (s) se mai

, n raport cu A). Teorema Cayley

Hamilton afirm c (A) = 0, deci n orice caz avem grad (s) n = grad (s).
Matricea A se zice ciclic dac exist un vector b X astfel nct vectorii b, Ab,..., A
n 1

b sunt independeni. n acest caz o egalitate de forma (A)b = 0 cu grad (s) = kn este

imposibil, deoarece ar implica dependena liniar a vectorilor b, Ab,,A k b. Prin urmare


avem grad (s) = n, de unde, innd seama c (s) este unic determinat de A, rezult

(s) = (s).
11

n sfrit, din (2 ' ) i (3 ' ) rezult :


y(s) = C(sI n - A) 1 x 0 + C(sI n - A) 1 Bu(s)
n care :
T(s) = C(sI n - A) 1 B

(6 ' )

reprezint matricea de transfer de forma p

m a sistemului liniar = (A,B,C) n .

(Evident , T(s) este transformata Laplace a matricei pondere cauzale T (t), prin definiie
egal cu T(t) = C e tA B pentru t 0 i nul pentru t0).
Semnificaia n acest context al parametrilor Markov definii anterior prin (6 a), (6 b),
rezult direct din relaiile (4 ' ) i (6 ' ). Avem :
T(s) =

CA

Bs ( k 1)

(6 ' a)

k 0

i n particular :

lim sT(s) = CB

(6 ' b)

Pe de alt parte, innd seama de relaiile (9) sau (10), din (6 ' ) concludem imediat c
T(s) este o matrice raional strict proprie de forma :
T(s) =

CG ( s ) B
( s)

(9 ' )

CL( s ) B
( s)

(10 ' )

sau :
T(s) =

Evident, T(s) caracterizeaz complet proprietile de transfer ale lui n stare iniial
nul (relaia (5 a)). Aceast constatare elementar constituie punctul de plecare a teoriei
algebrice a sistemelor liniare.

12

1.3 Sisteme liniare cu timp discret [2]


Elementele definitorii ale noiunii de sistem liniar cu timp discret pot fi sintetizate
astfel:
(a) Mulimea T a momentelor de timp pe care este definit evoluia sistemului
considerat coincide cu mulimea a numerelor ntregi, T = . n continuare vom nota cu

= {0, 1,}.
(b) Spaiul strilor X este spaiul euclidian n-dimensional
(c) Spaiul intrrilor este spaiul euclidian
mulimea tuturor irurilor u(.) :

,X=

. Spaiul U al funciilor de intrare este

. Spaiul Y al funciilor de ieire este

(d) Spaiul ieirilor este spaiul euclidian


mulimea tuturor irurilor y(.) :

Definiia noiunii de sistem liniar cu timp discret precum i interpretarea sa dinamic


prezint analogii evidente cu definiia i interpretarea dinamic a noiunii de sistem liniar cu
timp continuu prezentate n paragraful anterior.
Definiia 1. Un sistem cu timp discret finit dimensional, multivariabil (cu m intrri i p
ieiri) liniar i constant este definit de ecuaiile de stare :
x(t + 1) = Ax(t) + Bu(t),

(11)

y(t) = Cx(t),

(12)

n care vectorii x(t) X, u(t)

i y(t)

ieirea la momentul curent t , iar A

nm

sunt respectiv starea, intrarea i

i C

p n

sunt matrici constante.

n cele ce urmeaz voi omite ca de obicei calificativele finit-dimensional, multivariabil


i constant, iar n loc de sistem (liniar) discret i voi nota = (A,B,C) sau = (A,B,C) n ,
unde n = dim X este ordinul sau dimensiunea lui .
Traiectoria de stare x(t), t
iniiale x(0) = x 0

a sistemului liniar discret corespunztoare strii

X i irului de intrare u(.) U este soluia (unic) a ecuaiei recurente

(1) cu condiia iniial x(0) = x 0 . Prin inducie rezult imediat:


13

t 1

x(t) = (t, x 0 , u(.)) A

x0 +

t k 1

Bu ( k )

(13)

k 0

n care :
(t) = A t , t

(14)

este matricea de tranziie de forma n

n a lui .

Observaia 1. Direct din (14) rezult imediat c familia (t), t

are proprietatea

de semigrup comutativ:
(t) (t ' ) = (t ' ) (t) = (t + t ' ), t, t '

Altfel spus, sistemul liniar discret este, n general, nereversibil, adic evoluia sa
intern este definit prin relaia (13) numai pe intervalul de timp viitor t 0, dar nu i pentru t
0. (Consecinele acestui fapt, prin care sistemele cu timp discret se deosebesc de cele cu
timp continuu, vor fi evideniate mai departe). Din (14) rezult imediat c este reversibil,
adic 1 (t) = (- t) exist pentru orice t

, dac i numai dac matricea A este

nesingular.
irul de ieire y(.) Y corespunztor strii iniiale x(0) = x 0 i irului de intrare u(.)
rezult din (12) i (13) sub forma :
y(t) = f(t, x 0 , u(.) )

CA t x 0 +

t 1

CA

t k 1

Bu ( k )

(15)

k 0

n care :

T(t) =

0
t 1

CA B

t 0

t 1,2,...

este matricea pondere de forma p

(16)

m a lui . Observm c n cazul discret matricea

pondere T(t) este definit direct n funcie de parametrii Markov CA k B, k 0 ai lui .


Descrierea operaional (n planul complex z) a sistemelor liniare discrete se obine de
obicei aplicnd transformarea Z ecuaiilor de stare (11), (12) cu condiia iniial x(0) = x 0 , n
ipoteza c irul de intrare u(.) este un ir original.
14

n particular, matricea de transfer T(z) a sistemului liniar discret definit prin ecuaiile
de stare (11), (12) este exact de forma :
T(z) = C(yI n - A) 1 B

(16 ' )

Pe de alt parte, semnificaia n acest context al parametrilor Markov rezult direct din
(16); innd seama c matricea de transfer T(z) este transformata Z a matricei pondere T(t)
(prelungit prin 0 pentru t 0) obinem :
T(z) =

CA

Bz ( k 1)

(16 ' a)

k 0

i n particular :

lim zT(z) = CB

(16 ' b)

Aceste constatri subliniaz faptul c, din punct de vedere algebric, sistemele liniare
cu timp continuu i discret au un substrat comun i constituie argumentul de principiu al
dezvoltrii unei teorii unitare a sistemelor liniare, n esen independente de specificul
dinamic concret (continuu sau discret) al acestor sisteme.

15

1.4 Reprezentarea sistemelor prin ecuaii de stare [2],[6]


Un sistem liniar, invariant n timp, poate fi reprezentat cu ajutorul unui set de ecuaii
difereniale de ordinul I. n spaiul strilor, aceste ecuaii pot fi scrise dup cum urmeaz:

(17)
unde u este vectorul mrimilor de intrare, x este vectorul variabilelor de stare i y este
vectorul variabilelor de ieire.
Un avantaj al metodei reprezentrii n spaiul strilor este c aceast form duce uor la
determinarea soluiei ecuaiei prin metode de calcul discrete i / sau analogice. n plus,
metoda reprezentrii n spaiul strilor poate fi uor extins la analiza sistemelor neliniare.
Ecuaia de stare poate fi obinut dintr-o ecuaie diferenial de ordin n sau direct din modelul
sistemului, prin identificarea variabilelor de stare proprii.
Variabile de stare
Pentru a ilustra modul de selecie a unui set de variabile de stare, voi considera un
model al unui sistem liniar de ordin n descris de urmtoarea ecuaie diferenial:

(18)
unde y(t) este ieirea sistemului i u(t) este intrarea sa. Un model de stare pentru acest
sistem nu este unic, fiind dependent de alegerea unui set de variabile de stare. O modalitate de
alegere a unui set de variabile de stare, este urmtoarea:

16

Voi exprima:

apoi vom rezolva pentru

i voi

nlocui y i derivatele sale prin variabilele de stare corespunztoare, rezultnd:

sau n form matricial:

(19)
ecuaia ieirii fiind:
y = [1 0 0 . . . 0]x

(20)

17

1.5 Determinarea modelului sistemic din sistemul algebric de ecuaii


Laplace [1]

Pentru orice sistem descris de o ecuaie diferenial de forma :


n

ai .
i 0

m
diy
d ju

b
.

j
dt i
dt j
j 0

(21a)

n care y(t) este ieirea iar u(t) este intrarea sistemului, prin aplicarea transformatei
Laplace ambilor membri i considernd toate condiiile iniiale (ale funciilor y(t) i u(t) i ale
derivatelor lor) nule, se obine:
n

i 0

j 0

Y(s) a i s i U ( s ) b j s j

(21b)

de unde i funcia de transfer :

Y ( s)

H(s)
U (s)

(21c)

La o ecuaie de tipul (21a) se ajunge: fie direct, ca urmare a unei condiii generale de
echilibru (ecuaii dAlembert pentru sisteme mecanice, ecuaii Kirchhoff n instantaneu pentru
circuite electrice, etc.), fie indirect (dac sistemul are o structur mai complicat), scriind
pentru cele N mrimi semnificative marcate n sistem (inclusiv y(t) i u(t)) un numr de N-1
ecuaii integro-difereniale independente i procednd apoi la eliminarea mrimilor
intermediare, pentru a ajunge la o legtur de forma (21c) ntre u(t) i y(t).
Sistemul de ecuaii integro-difereniale, care descriu complet funcionarea unui
subsistem fizic, formeaz modelul matematic al acestuia; prin aplicarea transformatei Laplace
ecuaiilor integro-difereniale, se obine un sistem de ecuaii algebrice, care cuprinde ca
variabile att imaginile Laplace ale intrrii i ieirii ct i imaginile Laplace ale unor mrimi
interne, intermediare, necesare descrierii subsistemului fizic.
Dac se pstreaz lanul cauzal (de la mrimea de intrare la mrimea de ieire,
incluznd toate mrimile intermediare) conform sistemului de ecuaii Laplace, se poate obine
o structur de sistem cu blocuri intrare-ieire, care reprezint modelul sistemic al
subsistemului fizic. Modelul sistemic nu reflect structura constructiv a subsistemului fizic,
18

ci structura sa funcional, fiind n legtur direct cu modelul matematic scris n imagini


Laplace.
n determinarea modelului sistemic al unui subsistem fizic se parcurg urmtoarele
etape:
-

se determin sistemul de ecuaii Laplace din ecuaiile integro-difereniale care

descriu subsistemul fizic (N variabile, N-1 ecuaii)


-

n fiecare ecuaie se separ (dac este posibil), n membrul stng, imaginea

Laplace a derivatei de ordin maxim a unei variabile, adic produsul s n xi (s), unde n este
gradul maxim al polinoamelor din ecuaie (i=1, N-1 numr variabilele intermediare)
-

se mpart ambii membri ai noii ecuaii cu

s n , ordonnd membrul drept dup

puterile descresctoare ale lui 1/ s k (k=n, n-1, , 1, 0).


-

se ordoneaz sistemul de ecuaii obinut ncepnd cu acea ecuaie care are

explicitat ieirea subsistemului i continund dup o secven natural a substituiilor


algebrice; se contureaz astfel, explorat de la ieire la intrare, un lan cauzal ca n relaia:
U(s) X j X i X 1 Y ( s)
-

(22)

fiecare ecuaie din acest sistem algebric, ordonat, se transpune ntr-o schem n

care: coeficienii variabilelor X 1 (s) sunt funcii de transfer ale blocurilor, sumele algebrice
devin sumatoare, etc.

19

1.6 Funcia de transfer [1],[7]

Termenul de funcie de transfer se refer la un sistem liniar invariant n timp dar,


majoritatea sistemelor reale au proprieti neliniare, totui asemenea sisteme se pot liniariza.
Pentru cea mai simpl form timp continual al unui semnal de intrare x(t) i al unuia de
ieire y(t), funcia de transfer este o aplicaie liniar prin transformata Laplace a intrrii notat
X(s) = L{x(t)}, la ieirea notat Y(s) = L{y(t)}
avem :
H(s) =

Y ( s)
L{y(t)}

X ( s)
L{x(t)}

(23a)

unde H(s) este funcia de transfer a sistemului liniar invariant n timp.


Putem scrie aadar :
Y(s) = H(s) X(s)
Pentru sistemele n timp discret, funcia de transfer se scrie :
H(z) =

Y ( z)
X ( z)

(23b)

20

1.7 Polinomul caracteristic [2],[6]

Fie A = a ij o matrice ptratic de ordinul n cu coeficieni compleci. Atunci matricea

A xI n

se numete matricea caracteristic a matricii A.

a 11 x

a 21
A xI n
...

a
n1

a 12

a 13

...

a 1n

a 22 x
...

a 23
...

...
...

a 2n
...

a n2

a n3

...

a nn x

(20)
Polinomul det A xI n este de gradul n.
Produsul elementelor de pe diagonala principal conine termenul 1 n x n , oricare alt
produs va conine cel mult n-2 elemente de pe diagonala principal, deci va conine puterea
n 1
x n 2 . Coeficientul lui x n 1 este 1 a 11 a 22 a 33 . . . a nn , iar termenul liber al

polinomului coincide cu det(A).


Definiie: Polinomul p A x 1 det A xI n se numete polinomul caracteristic al
n

matricii A, iar rdcinile sale se numesc valori proprii ale acestei matrici.
Matricile A i B se numesc matrici asemenea dac exist matricea inversabil Q, astfel
nct B Q 1 AQ .
Teorem: Dou matrici asemenea au acelai polinom caracteristic i aceleai valori
proprii.
Teorem: Matricile AB i BA au acelai polinom caracteristic.
Teorema lui Hamilton-Cayley: Orice matrice ptratic i satisface propria ecuaie
caracteristic.
p A A On , A M

(24)

Pentru o matrice ptratic de ordinul doi avem:


21

a 11 a 12
p A x x 2 tr A x det A , unde tr A a 11 a 22
a 21 a 22

(25)

Metoda Fadeev de determinare a coeficienilor polinomului caracteristic:


p A x x n c1 x n 1 c 2 x n 2 . . . c n 1 x c n

(26)

unde coficienii ci se determin cu ajutorul tabelului 1:


c1 tr A 1

A1 A

B1 A 1 c1 I n

1
tr A 2
B2 A 2 c 2 I n
2
1
A 3 AB 2
c 3 tr A 3
B3 A 3 c 3 I n
3
............................................................
1
.A k AB k 1
ck
tr A k
Bk A k c k I n
k
............................................................
A 2 AB1

c2

.A n AB n 1

cn

1
tr A n
n

Bn A n c n I n 0n

Tabelul 1

ultima relaie fiind una de control.


1
Observaie: Dac A este nesingular, atunci AB n 1 c n I n 0 n A

1
B n 1 .
cn

Observaie: Teorema lui Hamilton-Cayley ne ofer o alt modalitate de a determina

A 1 .
p A A A n c1 A n 1 c 2 A n 2 . . . c n 1 A c n I n 0 n

(27)

de unde:
A 1

1
A n 1 c1 A n 2 c 2 A n 3 . . . c n 1 I n
cn

22

(28)

CAPITOLUL II

Noiuni teoretice referitoare la stabilitatea sistemelor liniare


continue
2.1 Conceptul de stabilitate [1], [5], [7]

Stabilitatea unui sistem este proprietatea acestuia de a rmne ntr-un regim staionar
att timp ct asupra lui nu acioneaz nici o mrime exterioar sau de a restabili un nou regim
staionar dup ncetarea aciunii unei perturbaii care l-a scos din vechiul regim staionar.
Exist dou tipuri de stabilitate : intern (numit i n sens Liapunov) i extern
(numit i n sens intrare mrginit, ieire mrginit sau BIBO (Bounded Input,Bounded
Output)).

2.1.1. Stabilitatea intern [1], [5]

Un sistem liniar este intern asimptotic stabil daca :

e At , t R

lim (t ) 0, unde : (t )
t

(29)

A , t Z
t

t R se refer la sisteme cu timp continuu


t Z se refer la sisteme cu timp discret
innd cont c (t ) x 0 reprezint componenta de regim liber din evoluia strilor unui

(t ) 0 , spune c un sistem liniar este intern asimptotic stabil dac


sistem, relaia lim
t
evoluia strilor sale tinde ctre zero cnd t, n absena intrrilor (comenzi i perturbaii):
23

lim x1 (t ) lim (t ) x0 0
t

(30)

Din punct de vedere practic, verificarea stabilitii interne asimptotice se face utiliznd
urmtoarea teorem:
Un sistem este intern asimptotic stabil dac:
Re ( i ) 0, t R n cazul sistemelor cu timp continuu
i

1, t Z n cazul sistemelor cu timp discret, unde i sunt valori proprii ale

matricii A din reprezentarea n spaiul strilor, adic soluia ecuaiei : det ( I - A) = 0.


Relaiile (29) definesc domeniile de stabilitate pentru sistemele liniare:

Observaie: Stabilitatea intern este determinat doar de valorile matricei A, celelalte


matrice neavnd nici o influen.

24

Dac un sistem continuu este intern asimptotic stabil, adic Re ( i ) 0, prin


discretizarea lui stabilitatea intern se pstreaz deoarece Ad e AT va avea valorile proprii

d e i t U 1 (0) .
2.1.2. Stabilitatea extern [1], [5]

Un sistem este extern strict stabil dac:

h (t)
c

, t R n cazul sistemelor cu timp continuu

(31)

h (t)
t 0

, t Z n cazul sistemelor cu timp discret

(32)

Din punct de vedere practic, verificarea stabilitii externe stricte se face urmtoarea
teorem:
Re (p i ) 0, t R n cazul sistemelor cu timp continuu
pi

1, t Z n cazul sistemelor cu timp discret

unde p i sunt polii funciei de transfer H( ) =

(33)
(34)

r ( )
, adic soluiile ecuaiei p( ) =
p ( )

0.
O definiie alternativ a stabilitii externe este:
Un sistem este extern strict stabil dac i numai dac M 0, astfel nct pentru ( )

u(t) N, t 0,

y(t) M .
25

Altfel spus dac sistemul este extern strict stabil la o intrare mrginit, ieirea este tot
mrginit (BIBO). Se poate demonstra c aceast condiie se ndeplinete numai dac relaiile
(31) i (32) sunt respectate.
Observaie: innd cont c H( ) = c T (I A) 1 b c T

(I A)
b polii funciei de
det(I A)

transfer sunt o submulime a valorilor proprii ale matricei A. Prin urmare dac un sistem este
intern asimptotic stabil atunci el este i extern strict stabil. n schimb este posibil ca un sistem
s nu fie intern asimptotic stabil dar s fie extern strict stabil. Acest lucru se ntmpl dac n
urma aducerii H( ) la forma ireductibil se simplific polii situai n zona de instabilitate.
Prin criterii de stabilitate se neleg criteriile de localizare a rdcinilor unui polinom n
interiorul cercului unitate.
n practica inginereasc se cunosc de peste 120 de ani criteriile de localizare a
rdcinilor unui polinom n semiplanul stng, criterii ce asigur stabilitatea sistemelor
analogice (cu timp continuu, descrise de ecuaii difereniale).

26

2.2. Criterii algebrice [1], [5], [6]

n cazul sistemelor LTI (Linear Time Invariant) studiul stabilitii sistemelor se refer la
rezolvarea ecuaiei caracteristice corespunztoare sistemului studiat. Dac se consider un
sistem caracterizat prin funcia de transfer H(s) = B(s) / A(s) , atunci ecuaia caracteristic a
sistemului este:
A(s) =

*s +

=0

(35)

Prin rezolvarea acestei ecuaii se obin polii sistemului, amplasarea acestor valori n
planul complex va determina ulterior stabilitatea sistemului. Cu ajutorul criteriilor algebrice
de stabilitate se determin stabilitatea sistemelor fr a rezolva aceast ecuaie caracteristic.

2.2.1. Criteriul Hurwitz: [5], [6]

Se poate aplica numai dac semnul coeficienilor nu se modific, adic:


sign(an ) = sign(an-1 ) =sign(a1 ) =sign(a0 )

(36)

Se construiete matricea Hurwitz:

Condiia de stabilitate , conforma criteriului lui Hurwitz este ca toi minorii dup
diagonala principal s fie pozitivi:
det(D1 ) > 0 det(D2 ) > 0 det(Dn ) > 0 .
Exemplu :
Fie polinomul caracteristic al sistemului :
P 0 (s) = s 4 2s 3 s 2 3s k
27

(37)

Utiliznd criteriul lui Hurwitz, s se determine k, astfel nct sistemul s fie stabil.
Rezolvare:
Se formeaz determinantul lui Hurwitz:

H=

2
1

3
1
2
1

0
k
3
1

0
0
0

Presupunnd k > 0, condiia necesar i suficient pentru ca sistemul s fie stabil este ca
determinanii principali s fie strict pozitivi. Deci, calculm minorii :

H 1 =2 > 0,

H2

2
1

3
1

= -1, deci sistemul este instabil, oricare ar fi k.

2.2.2. Criteriul Routh-Hurwitz [1], [5], [6]

Se mai numete i criteriul coeficienilor, fiind un criteriu algebric pentru evaluarea


stabilitii unui sistem automat, fr a rezolva ecuaia caracteristic a ecuaiei difereniale ce
exprim dinamica acestuia. Se are n vedere o metod de detectare a existenei rdcinilor
reale pozitive sau complex-conjugate cu parte real pozitiv ale unui polinom care, n ultim
analiz reprezint ecuaia caracteristic a funciei echivalente de transfer Y0(s).
Cu toate c, cei doi autori i-au publicat lucrrile la date cnd nu se punea problema
stabilitii sistemelor automate (Routh 1877, Hurwitz 1895), ci numai o interpretare pur
matematic a condiiilor n care un polinom de gradul n are numai rdcini negative sau
complex-conjugate cu parte real negativ. Cum aceast condiie reprezint tocmai condiia
de stabilitate, dac polinomul este chiar ecuaia caracteristic a sistemului, metoda RouthHurwitz poate fi interpretat ca un criteriu de stabilitate.
Considerm c ecuaia caracteristic a sistemului este un polinom de forma:
an p n an 1 p n 1 ........a2 p 2 a p a0 0

28

(38)

Dac n acest polinom unul sau mai muli coeficieni sunt nuli, sau dac nu toi
coeficienii au acelai semn, atunci n mod sigur exist rdcini pozitive i criteriul nu
prezint interes. n cazul n care an =1 atunci restul termenilor trebuie s fie pozitivi.
Cu ajutorul coeficienilor polinomului se formeaz matricea (39),

an

an 2

an 4 ........ a2

a0

an-1

an- 3

an- 5......... a1

b1

b2

b3

c1

c2

c3 ............ 0

.................................................................
(n-2 )1

(n-2 )2

0 ........... 0

(n-1 )1

0 .......... 0

n1

0 ........... .0

(39)

unde primele dou linii sunt formate din coeficienii polinomului iar urmtoarele se
calculeaz cu relaiile:
b1

an 1 an 2 an an 3
a a an an 5
b a b2 an 1
; b2 n 1 n 4
;....c1 1 n 3
;
an 1
an 1
b1
b a b3 an 1
(n 1)1 (n 2) 2 0
c2 1 n 5
..........................n1
b1
(n 1)1

(40)

Toate locurile libere din tabel se vor considera 0 i calculul se continu pn se obine o
linie ce conine un singur termen.
Criteriul se refer la prima coloan a matricei, adic:
an , an 1 , b1

c1 ,........, ( n 2)1

( n 1)1

n1

(41)

i poate fi exprimat astfel: numrul de schimbri al termenilor din coloan corespunde


numrului de rdcini cu parte real pozitiv ale polinomului (38). Rezult c, dac (38)
reprezint ecuaia caracteristic a sistemului, sistemul este stabil dac n prima coloan nu
exist schimbri de semn, n caz contrar e instabil.
La ntocmirea matricei (39) pot interveni dou cazuri particulare:

29

- Primul termen dintr-o linie este nul, caz n care nu se mai pot calcula ceilali termeni.
Pentru continuarea calculelor se va nlocui termenul cu un numr mic, pozitiv i se vor
continua calculele.
- Toi termenii unei linii sunt nuli. In acest caz exist dou rdcini pur imaginare i
sistemul este oscilant ntreinut. Calculul matricei se va continua prin nlocuirea liniei de
zerouri cu o linie format din derivarea polinomului liniei precedente, fcndu-se
presupunerea c fiecare linie corespunde unui polinom avnd puterile n, n-2, n-4,pentru
prima linie, n-1, n-3, n-5, pentru a doua linie i aa mai departe.
La ntocmirea tabelului (39), pentru uurarea calculelor, se va ine cont de urmtoarele
reguli:
- Toi termenii unei linii pot fi nmulii cu o constant pozitiv, pentru simplificare. n
acest sens termenii unei linii pot fi de exemplu nmulii cu numitorul din relaiile (40),
simplificnd astfel calculul termenilor dar, semnul numitorului trebuie pstrat.
- Polinomul (38) poate fi simplificat printr-o schimbare a scrii timpului p = kP unde k
se ia de obicei o putere a lui 10, sau prin nmulirea polinomului cu o constant.
Tratarea teoretic a acestui criteriu se poate face i n alte moduri , n literatur fiind
prezentat prin calculul determinantului Hurwitz i minorii nord vest ai acestuia, metoda
necesitnd un volum de lucru mai redus, unii autori prezentnd aceast metod sub numele de
Criteriul de stabilitate Lienard-Chipard. innd cont de aceast

metod , cu ajutorul

coeficienilor bn.b0 se ntocmete determinantul Hurwitz H cu n linii i n coloane dup


urmtoarele reguli:
- se formeaz diagonala principal cu coeficienii de bn-1 la b0;
- se completeaz coloanele superioare diagonalei n ordine descresctoare, iar cele
inferioare, n ordine cresctoare;
- n locul coeficienilor cu indici mai mici dect zero, sau mai mari dect n, se va scrie
cifra 0.
Se va obine:

30

H =

a n 1

a n 3

a n 5

a n -7 .................... 0

an

a n- 2

a n- 4

a n -6 .................... 0

a n 1

a n 3

a n 5 ................... 0

an

a n2

a n -4 .................... 0

...................................................................................
0 ............................................................... b2 b0 0
0 ..............................................................b3 b1 0
0 .............................................................b

b2 b0

n conformitate cu acest criteriu, sistemul este stabil (toi polii funciei de transfer
sunt situai n semiplanul stng al planului s, numai dac H > 0 i toi minorii dup
diagonala principal sunt pozitivi.
Dac aceast condiie nu este ndeplinit, pentru fiecare minor H k < 0 corespunde un
pol n semiplanul drept al planului s i sistemul este instabil.
Determinanii minori nord-vestici sunt:

b 1n bn-3

b 1n bn-3 bn-5

1 1n ;b 2 ; 3 bn bn-2 bn-4 .
bn bn-2
0 bn-1 bn-3
Informaiile date de acest criteriu sunt relativ reduse deoarece nu d indicaii asupra
ponderii coeficienilor ak asupra stabilitii. n acelai timp, nu avem informaii asupra poziiei
polilor fa de limita de stabilitate i, mai mult, criteriul devine laborios pentru polinoame de
ordin ridicat.

31

Datorit acestor ultime precizri (dezavantaje) criteriul algebric se utilizeaz doar


orientativ, nainte de a aplica alte criterii de stabilitate mai evoluate.
Exemplu:
Se consider un sistem cu ecuaia caracteristic de forma:
P8+50p7+1300p6+6,6.104p5+4,1.105p4+1,39.107p3+6,5.107p2+3,6.108p+1,8.1010=0
Dac se face schimbarea de scar a timpului p = 10 P i se nmulete cu 10-8 avem:
P8 + 5P7 + 13P6 + 66P5 +41P4 + 193P3 + 65P2 + 36P + 180 = 0
Se ntocmete matricea (Tabelul 2):
(P8)

13

41

65

(P7)
0

66

193

36

(P6)
0

-1

12

289

900

(P5)
0

1,26

16,38

180

45,36

(P5)
0

31,4

(P3)
0

(P3)
0

126

819

409,5 1134

(P2)
0

2,580 14,29

(P1)
0

3,13

(P0)
0

14,29

Tabelul 2
Sistemul descris de ecuaia caracteristic dat este instabil deoarece exist dou
schimbri de semn n prima coloan (+5, -1, +1,26), adic exist dou rdcini cu parte real
pozitiv. Mai mult, exist i dou rdcini pur imaginare indicate de linia de zerouri aprut n
matrice la linia (P3) i care a fost nlocuit cu derivata polinomului (P 4). Dac ne intereseaz
32

numai stabilitatea sistemului, nu i numrul rdcinilor cu parte real pozitiv, calculul


termenilor se poate opri la linia (P6), adic la prima schimbare de semn.

33

2.3. Criterii frecveniale [4]

Reprezentarea n frecven a unui sistem se obine prin aplicarea la intrare a unui semnal
sinusoidal de frecventa f

, r A sin t . n cazul sistemelor liniare cu parametrii


2

invariabili n timp (sisteme LTI) aceasta determin apariia unui semnal de sinusoidal cu
amplitudine i faz diferite fa de semnalul de intrare :
intrare

A sin t

A sin t

ieire

A H j sin t

A H j sin t
H(s)

Aprecierea rspunsului n frecven a sistemului automat H(s) este descris prin


caracteristicile de frecven:
caracteristica amplitudine-faz sau locul de transfer (hodograful funciei) :
reprezentarea numrului complex H(s) n planul complex ( Re H ( s) , Im H ( s) , prin
modulul H ( s ) i H ( s) . Aceast caracteristic se traseaz pentru sistemul deschis, fiind
util i n aprecierea stabilitii sistemului nchis cu reacie unitar negativ (criteriul Nyquist)
caracteristici logaritmice: caracteristica amplitudine-pulsaie i faz-pulsaie
cunoscute sub numele de caracteristici Bod.
Prin caracteristicile de frecvent pot fi definite cteva din performanele unui sistem cu
reglare automat : stabilitatea relativa a sistemului, banda de frecventa, frecventa de
rezonan.

34

2.3.1. Criteriul lui Nyquist [2],[4]

Aceste metode sunt utile pentru c ofer informaii i referitoare la gradul de stabilitate
al sistemului. Pentru studiul stabilitii sistemelor n bucl nchis se pornete de la
urmtoarea schem:

Figura nr. 1 Sistem de reglare automat cu reacie negativ unitar


unde H d (s) este funcia de transfer a sistemului n bucl deschis. Se studiaz
stabilitatea sistemului n bucl nchis. Funcia de transfer a sistemului n bucl nchis este:
H(s) =

H d (s)
1 H d ( s)

(42)

Din punct de vedere al studiului stabilitii distingem dou cazuri:


Criteriul simplificat: se aplic atunci cnd sistemul n bucl deschis este stabil. Pentru
ca un sistem liniar invariant n timp (LTI) stabil n bucl deschis s fie stabil n bucl nchis
este necesar i suficient ca punctul critic de coordonate (-1,j*0) s nu se gseasc n interiorul
caracteristicii amplitudine-faz a sistemului n bucl deschis Hd ( j *) trasat pentru
pulsaia (-,).
Criteriul generalizat: se aplic atunci cnd sistemul este instabil n bucl deschis. Pentru ca
un sistem LTI, instabil n bucl deschis, s fie stabil n bucl nchis este necesar i suficient
ca punctul critic de coordinate (-1,j*0) s fie nconjurat n sens antiorar de caracteristica
amplitudine faz a sistemului n bucl deschis Hd ( j *) pentru (-,), de un numr

35

de ori egal cu numrul polilor instabili ai sistemului n bucl deschis.

|HG( )|=

(-1, j0)

= +

Im(HG(s
)

2
3

c
1

=
+0

(|HG( )|
c

=1)

Figura 2.Hodograful lui Nyquist


1 sistem stabil
2 sistem la limita de stabilitate
3 sistem instabil
Din reprezentarea grafic rezult c din dou sisteme stabile n stare deschis, numai
sistemul 1 este stabil n stare nchis deoarece las n stnga punctul (-1, j0). Punctele
importante de apreciere a gradului de stabilitate sunt cele n care sistemul are amplitudinea
(modulul funciei de transfer) 1 i cel n care faza este 180. Pentru aceste puncte se cunosc
pulsaiile respective: c i (hodograful se traseaz prin aplicarea la intrarea unui sistem
deschis a unui semnal sinusoidal de frecventa (pulsaie) variind de la 0 la +) i amplitudinile
de rspuns care reprezint matematic modulul funciei de transfer n punctele respective. Se
definesc urmtoarele noiuni:

Mc =

1
Margine de ctig sau de amplitudine
H d(j )

M =180+arg H d (jc ) Margine de faz


36

unde:

este pulsaia pentru care faza sistemului este 1800

este pulsaia la care modulul vectorului H s G s este 1.

Pentru un sistem stabil Mc > 1 i M >0.


Cu ct Mc i M sunt mai mari cu att gradul de stabilitate al sistemului automat este
mai mare. Cu alte cuvinte, cu ct locul de transfer este mai aproape de origine, lsnd mult
n stnga punctul (-1, j0), cu att sistemul este mai stabil.

2.3.2. Criteriul lui Bode [1]

Se consider doar sisteme de faz neminim. Se traseaz caracteristicile logaritmice de


pulsaie H()

dB

i ( ) una sub alta. Condiia necesar i suficient ca sistemul nchis s

fie stabil este ca, raportat la gradarea pe axa , H() s taie axa nainte ca ( ) s taie
dreapta . Suma ( c ) , unde H( 0 ) dB =0, se numete margine de faz i se
noteaz cu , sau , iar H( )

dB

, unde ( ) , se numete margine de

amplitudine i se noteaz cu M sau H .


Cu notaiile de mai sus, condiia necesar i suficient ca sistemul automat s fie stabil
este ca >0 sau M<0.
Observaie. Pentru sistemele stabile se poate determina regimul staionar fr a calcula
rspunsul n timp, aplicnd teorema valorii finale
-

valoarea staionar a erorii la intrarea treapt unitar

s lim (t ) lim s ( s ) lim sH 0 E ( s )U ( s );


t

s 0

s 0

(43)

valoarea staionar a rspunsului la intrarea treapt unitar

y s lim y (t ) lim sY ( s ) lim sH 0 ( s ) / s H 0 (0),


t

s 0

s 0

unde :
37

(44)

H 0 ( s ) H ( s ) / 1 H ( s ) este funcia de transfer a sistemului automat


H 0 E ( s ) 1 / L H ( s ) este funcia de transfer pentru calculul erorii.

|H(s)|=A()|dB = 20 log10|
H(s)|
log

scara logaritmica

-180

log
scara
logaritmica

Figura 3. Diagramele Bode. Caracteristicile amplitudine-pulsaie i faza-pulsaie

n cele doua caracteristici poziia relativa a lui c i

determina stabilitatea

sistemului:

c < sistem stabil


c > sistem instabil
c = sistem la limita de stabilitate

2.3.3. Locul geometric al rdcinilor [2], [7]


A fost introdus de Evans n 1948 (n multe lucrri de specialitate, locul geometric al
rdcinilor este intitulat locul lui Evans) i este foarte mult utilizat n problemele inginereti
de automatic aplicat.
Voi considera un sistem de reglare automat, n forma clasic, pentru care funcia de transfer
n circuit deschis este:

38

(s z )
i

H b (s) K in1

(45)

(s p )
i

i1

unde:
z i reprezint zerourile sistemului n circuit deschis;
p i polii sistemului n circuit deschis;
K factorul de amplificare dinamic.
Funcia de transfer n circuit nchis va fi de forma:
m

H (s)
H 0 (s) b

1 H b (s)

K (s zi )
i 1

(s p ) K (s z )
i

i 1

i 1

(46)

Polii sistemului n circuit nchis vor fi dai de rdcinile ecuaiei caracteristice:


n

S ( s) ( s pi ) K ( s z i ) 0
i 1

(47)

i 1

Locul geometric al rdcinilor nu este altceva dect distribuia valorilor rdcinilor ecuaiei
caracteristice pentru diverse valori ale factorului de amplificare total.
Dificultile de trasare a locului rdcinilor sunt generate de faptul c ecuaia caracteristic
este una algebric, de grad superior i soluionabil cu greutate.
Metoda locului geometric al rdcinilor, ca metod de analiz i sintez a sistemelor de
reglare automat, s-a impus ntr-o perioad n care tehnica de calcul nu era practic accesibil.
Din acest motiv, procedura de trasare a locului rdcinilor a fost conceput ca metod grafoanalitic. Bazat pe o serie de reguli de trasare metoda permite posibilitatea trasrii
aproximative a locului rdcinilor (uneori, aproximaiile rezultate sunt inacceptabil de mari).
Aceste reguli, sub raport al obinerii reprezentrii grafice, sunt de domeniul trecutului. ns,
39

dac dorim exploatarea graficului obinut pentru sinteza SRA (sisteme de reglare automat),
cunoaterea acestor reguli devine esenial.
La trasarea locului rdcinilor se utilizeaz urmtoarele reguli:
1. Punctele de plecare sunt (k=0) polii p i ai funciei de transfer n circuit deschis. Deci
locul are n ramuri.
2. Punctele de sosire (k=) la distana finit sunt zerourile z i ale funciei de transfer n
circuit deschis. Deci m ramuri se nchid la distana finit. Celelalte n-m ramuri se
nchid n punctul de la infinit.
3. Comportarea asimptotic a locului (a ramurilor care merg la )
-

direciile asimptotice
i (2 ) /( n m),

= 0,1,2,,n-m+1;

(48)

punctul de intersecie al asimptotelor (pe axa real)


n

i 1

i 1

s med ( pi z i ) /(n m)

(49)

4. Poriunile reale ale locului rdcinilor sunt acelea care au la dreapta lor un numr
impar de poli i zerouri, luate la un loc.
5. Interseciile cu axa real (corespunznd la rdcini reale duble),

se determin din

ecuaia:
n

i 1

i 1

1 /( pi ) 1 /( z i ) 0.

(50)

6. Interseciile cu axa imaginar. Se determin k din ecuaia H n =0, unde H n =detH, H


fiind matricea care apare n criteriul de stabilitate Hurwitz asociat lui P 0 (s), k astfel
determinat se introduce n ecuaia P 0 (s)=0 reinndu-se rdcinile s i pur imaginare.
7. Locul rdcinilor este simetric fa de axa real.

40

CAPITOLUL III

Crearea interfeelor grafice cu ajutorul GUI Matlab


3.1 Instrumentele programrii n Matlab [8]

Procesul de a scrie un cod n Matlab pentru a crea un GUI (Graphical User Interface) se
numete GUI design. Acesta are o serie de principii de care trebuie s se in seama atunci
cnd se creeaz o aplicaie: simplicitate, consisten i familiaritate. Rezultatul ce se obine
este o interfa dinamic asupra creia utilizatorul poate aciona ntr-o manier imediat,
continu i reversibil. ns nainte de a implementa orice GUI acesta trebuie s fie creat.
Etapele crerii unui GUI n Matlab sunt urmtoarele:

Figura 4. Etapele crerii unui GUI

Primele dou etape ale crerii unei aplicaii n Matlab sunt foarte dificile deoarece
utilizatorul are de rezolvat o problem din lumea real pe care trebuie s o abstractizeze ntr-o
asemenea manier nct numai cele mai importante informaii s fie considerate.
innd cont de aceste lucruri, utilizatorului nu i mai rmne apoi dect s scrie codul
surs al prototipului. Pot exista multe ncercri n acest demers, numrul lor depinznd de
experiena utilizatorului n astfel de cazuri. Procesul de design va fi terminat n momentul n
care modelul va fi n stare s satisfac toate cerinele noastre.
41

MATLAB este un limbaj de programare care se bazeaz pe o serie de instrumente


numite GUIDE care ajut utilizatorul s construiasc aplicaii ct mai diverse foarte rapid.
Ele sunt:
PROPERTY INSPECTOR
OBJECT BROWSER
ALIGN OBJECTS
MENIU EDITOR

Object
Browser
Align
Objects

Meniu
Editor

Property
Ispector

Figura 5. Instrumente utile n crearea interfeei grafice

PROPERTY INSPECTOR
Fiecare obiect n MATLAB are un anumit numr de proprieti. De exemplu o figur are
printre proprietile sale, una numit COLOR. Pentru a vizualiza i eventual a modifica una
dintre acestea, n linie de comand este foarte dificil de realizat deoarece sintaxa comenzilor
este greu de inut minte. Property Inspector ajuta ns utilizatorul s modifice toate aceste
caracteristici ntr-o maniar interactiv.
Exemplu :
42

n linie de comand, pentru a trasa funcia t*sin(t) trebuie s scriem urmtorul cod:
t=0:0.1:100;
plot(t,t.*sin(t));
get(gcf, 'Color')
ans =

0.8000

0.8000

0.8000

Cu ajutorul lui Property Editor, trebuie doar s gsim i mai apoi s modificm
proprietatea obiectului numit COLOR n fereastra urmtoare :

modificarea culorii
fr a fi nevoie de a
scrie un cod de
program

Figura 6. Property Inspector

ALIGN OBJECTS
Acest instrument permite modificare aranjamentului obiectelor grafice coninute de o
interfa, fie ntr-o manier orizontal sau vertical. Pentru a putea utiliza aceast opiune
trebuie ca obiectele s aib un anumit plasament iniial.
MENU EDITOR
Cu ajutorul acestui instrument putem aduga un nou meniu de tip pull-down unei figuri.
Aceste meniuri nou adugate sunt suplimentare fa de cele ce aparin de o manier implicit
figurii create: File, Edit, Window, Help. Noul meniu nu va fi afiat dac figura nu este activ.

43

3.2 Funcii pentru construirea interfeelor grafice GUI Matlab [8]


Manipulri grafice
Matlab propune un set de funcii de nivel-sczut care permite crearea liniilor,
suprafeelor i a altor obiecte grafice. Acest sistem este denumit n Matlab, Handle Graphics.
Root

Figure

Axes

Image

Light

Line

Figure

Uimenu

Uicontrol

Patch

Figure

Surface

Text

Figura 7. Sistemul Handle Graphics

Obiectele grafice sunt create prin primitivele definite n sistemul Handle Graphics din
Matlab. Aceste obiecte sunt organizate n structuri ierarhice care reflect interdependena
obiectelor grafice. De exemplu, obiectul Linie (Line) impune existena obiectului Axe (Axes).
La rndul su obiectul Axe exist numai dac exist obiectul Figura cu obiecte (Figure).

Obiecte grafice
Sunt 11 tipuri de obiecte grafice organizate pe 4 nivele ierarhice:
Root - este obiectul din topul ierarhiei i corespunde la screen-ul computerului.
Matlab creeaz automat acest obiect la nceputul fiecrei sesiuni.
Figure acestea sunt obiecte de tip fereastr plasate n obiectul Root i create prin
funcii grafice executate n fereastra de comenzi a Matlab sau prin rularea fiierelor M-file
care le genereaz.
Uicontrol sunt obiecte de control a interfeelor grafice create de utilizator care
execut anumite funcii la activarea obiectului. Din aceast categoriile fac parte obiectele:
pushbutton, slider, Listboxe, pup-upmenu, edit, frame, check button, radio button. Ele se
44

regsesc n instrumentul Guide Control Panel din meniul File al ferestrei de comenzi din
Matlab i devin disponibile odat cu trecerea unuia din obiectele din lista cu figuri (deci a
unui obiect de tip Figure existent sau proaspt creat cu AddFigure), n stare controlled. Prin
tehnica drag and drop, obiectele pot fi adugate n Figura cu obiecte n care dorim plasarea
unor astfel de elemente de control.

Figura 8.Obiectele de control ale interfeei

Axes obiecte care definesc regiuni din obiectul fereastra pentru posibile reprezentri
grafice. El este pe poziia ierarhic de children.
Uimenu obiectele sunt meniul de interfa creat de utilizator plasat n partea de sus
a ferestrei figur.
Image obiecte cu afiare n dou dimensiuni care utilizeaz elementele unei matrice
rectangulare ca indici ai unei hari de culoare.
Line obiectele sunt primitive grafice pentru reprezentri grafice cel puin n dou
dimensiuni.
Patch obiectul reprezint poligoane umplute cu muchii. Un singur obiect al unui
patch, poate conine multiple faete, fiecare colorat diferit cu o nuana solid sau prin culori
interpolate.
Surface obiecte tridimensionale care sunt reprezentri de matrice de date, sunt
create prin reprezentarea grafic a unui punct la nlime fa de planul x-y. Cu alte cuvinte
45

fiecare valoare numeric dintr-o matrice, poate fi cota z a unui punct reprezentat n OXYZ.
Fiecare matrice sau tablou de valori numerice are o reprezentare spaial de tip suprafa.
Text obiectele sunt iruri de caractere. Ele sunt generate ca obiecte grafice prin una
din funciile care aplic text n figuri: text, gtext, xlabel, ylabel, zlabel, title, legend, etc.

Manipularea obiectelor grafice


Fiecare obiect grafic are un identificator unic, apelat handle identificator pe care Matlab
l asigneaz automat cnd obiectul este creat. O reprezentare grafic efectuat cu un plot de
mai multe linii, genereaz mai multe obiecte grafice, fiecare cu un identificator numeric
distinct. Identificatorul obiectului root este 0. Identificatorul unui obiect Figure este un numr
ntreg care este afiat n titlul figurii. Alte obiecte (din ierarhia prezentat mai sus) au ca
identificatori numere reale i conin informaii utilizate de Matlab pentru generarea i legarea
eventual a obiectului de alte obiecte.
Exemplu: reprezentarea grafica multipl a unei matrice A generate cu funcia magic,
conduce la crearea a nc patru obiecte grafice, ai cror identificatori sunt returnai daca se
foreaz aceasta prin asignarea funciei plot la o variabil:
A=magic(4);

h=

h=plot(A);

77.0005
1.0021
74.0011

75.0006
Aceste valori sunt irelevante pentru utilizator dar ele sunt de fapt argumente ale
funciilor de manipulare grafic din Matlab: gcf, gca, gco. Toate funciile Matlab care creeaz
obiecte returneaz identificatorii acestora. tergerea unui obiect cu delete, impune ca
argument pentru aceast funcie identificatorul de obiect. De exemplu axele curente se terg
cu sintaxa:
>>delete(gca);

Funcii pentru crearea obiectelor


46

Aceste funcii au numele n funcie de obiectul pe care l creeaz. Ele se numesc funcii
de nivel sczut i reprezint primitive n generri grafice n Matlab. De exemplu Figura cu
obiecte se creeaz cu figure, un obiect text este creat cu funcia text iar o linie este generat cu
line. Pe de alta parte crearea automat a obiectelor figure+axe+line se efectueaz la lansarea
unei comenzi de tip plot care execut mai multe funcii de nivel sczut. Acest tip de funcii
sunt funcii de nivel nalt. Funciile de nivel sczut sunt cele care creeaz independent unul
din cele 11 obiecte din ierarhia prezentat.
Exemplu: o funcie de nivel sczut este :
>>line([1 3 6], [8 2 0], 'Color', 'red')

Proprietile obiectelor
Toate obiectele au proprieti de control care pot fi afiate. Matlab propune dou
mecanisme pentru setarea (modificare / atribuire) valorilor proprietilor. Proprietile
obiectelor pot fi setate la crearea obiectului sau schimbate cu funcia set daca obiectul deja
exista.
Exemplu:
zi = ['Su';'Mo';'Tu';'We';'Th';'Fr';'Sa']
temp = [21.1 22.2 19.4 23.3
23.9 21.1 20.0];
f = figure
a=axes('YLim',[1626],'Xtick',
1:7,'XTickLabel',zi)
h = line(1:7,temp)

f=1; a = 149.0015 ; h = 150.0015

Fereastra f este creat prin apelarea funciei de nivel sczut figure fr argumente (deci
are valorile implicite). Axele exist n fereastra dar i se modifica limitele pe y, marcajele i
etichetele acestora pe x. Linia exist n obiectul axe i are specificate valorile pentru datele x
i y . Se pot salva aceste trei obiecte pentru utilizarea lor mai trziu.
f=1; a = 149.0015 ; h = 150.0015;

47

figure

array

axe
char

numeric

cell

int8, uint8,
int16,uint16,
int32, uint32

double

struct
Obiect
utilizator :
- atribute
- metode

surface
:
uicontrol
uimenu

int8, uint8,
int16,uint16,
int32, uint32

double

Figura 9. Ierarhia obiectelor n cadrul unei interfe e

Proprietile obiectelor sunt accesibile dup crearea obiectului. Este ns necesar


crearea obiectului dat i alocarea unei variabile care sa rein numrul sau de identificare.
Funcia set permite modificarea oricreia din proprietile care nu sunt read-only. Ca i
aciune, ea efectueaz de fapt o editare a atributelor unui obiect de tip structur. Ca s putem
ti care atribute sau proprieti sunt setabile (editabile) pentru un anumit obiect, ca i valorile
posibile pentru fiecare proprietate se execut comanda: set(h) care returneaz pentru un obiect
Line creat n exemplul anterior lista urmtoare:
set(h)
Color
EraseMode: [ {normal} | background | xor | none ]
LineStyle: [ {-} | -- | : | -. | none ]
LineWidth
Marker: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none}
]
MarkerSize
MarkerEdgeColor: [ none | {auto} ] -or- a ColorSpec.
MarkerFaceColor: [ {none} | auto ] -or- a ColorSpec.
XData
YData
ZData
ButtonDownFcn
Children
48

Clipping: [ {on} | off ]


CreateFcn
DeleteFcn
BusyAction: [ {queue} | cancel ]
HandleVisibility: [ {on} | callback | off ]
HitTest: [ {on} | off ]
Interruptible: [ {on} | off ]
Parent
Selected: [ on | off ]
SelectionHighlight: [ {on} | off ]
Tag
UIContextMenu
UserData
Visible: [ {on} | off ]
Pentru a vizualiza lista cu toate proprietile curente ale obiectului Line, se apeleaz
funcia get care returneaz:
get(h)
Color = [0 0 1]
EraseMode = normal
LineStyle = LineWidth = [0.5]
Marker = none
MarkerSize = [6]
MarkerEdgeColor = auto
MarkerFaceColor = none
XData = [ (1 by 7) double array]
YData = [ (1 by 7) double array]
ZData = []
Parent = [73.0004]
Type = line
Visible = on
iar anumita proprietate este vizualizata cu :
>>get(h, Color)
49

Modificarea unei proprieti se realizeaz aplicnd combinaii de set i get. De exemplu


titlul unui obiect axe este obiect de tip text cruia i se poate modifica proprietatea String i
FontAngle daca dorim un titlu scris i stilul italic:
t = get(a,'title');
set(t,'String','Temperatura','FontAngle','oblique')
Sintaxa de baza pentru setarea Valorii unei anumite proprieti este o declaraie de tipul:
>>set(object_handle,'NumeProprietate','ValoareProprietate-noua')
Sintaxa de baza pentru obinerea (returnarea) valorii unei anumite proprieti este o
declaraie de tipul: >>Valoare_returnata = get(object_handle,'NumeProprietate');
Cunoaterea utilizrii funciilor set/get este necesar cnd se scriu programe care n
anumite condiii cer modificarea seturilor de atribute de obiecte. Accentuez nc odat ideea
ca aceste obiecte grafice, din punctul de vedere al tipului de dat pe care o reprezint sunt
structuri de date.

50

3.3 Construirea interfeelor grafice GUI [8]

Dup cum am amintit anterior o interfaa grafica permite introducerea unor elemente de
control care s reacioneze la anumite evenimente, n sensul controlrii execuiei programului
pentru care este conceput de utilizator.

Clase de obiecte grafice de control a GUI


Check boxes
Se utilizeaz cnd utilizatorul are dou alternative pentru setarea unei variabile sau
aciuni.
Editable text
Permit utilizatorului s introduc i s modifice text. Se utilizeaz cnd este necesar
introducere/afiare de text.
Frames
Sunt cadre care grupeaz vizual obiecte din GUI. Ele pot grupa decorativ obiectele
dup tipul de control pe care l au implementat (obiecte de control de tip input sau output).
Frame-urile nu au asociate rutine callback. n interiorul lor apar numai elementele de control
uicontrols (deci nu se vad obiecte de tip axe - care nu sunt controale ci indicatoare sau
elemente de vizualizare a datelor).

Stacking order determin ordinea de desenare a

obiectelor: obiectele definite primele sunt desenate primele. Dac se utilizeaz frame-uri care
grupeaz obiecte, ele trebuie definite naintea obiectelor. Un uicontrol creat naintea frameului va exista dar nu se va vedea (va fi acoperit de el). Frame-urile sunt opace, deci ordinea n
care definim obiectele e important pentru a ti care sunt acoperite de frame i care sunt
vizibile.
List boxes
Afieaz liste cu elemente (definite utiliznd proprietatea string rou|galben|albastru)
care permit utilizatorului s selecteze unul sau mai multe elemente. Proprietatea Value indic
intrarea selectat i conine indicii ntr-o lista de string-uri. Valorile dintr-un vector indic
multiple selecii. Este necesar adugarea unui buton Done care s ntrzie aciunea cauzat
de seleciile multiple

51

Pop-up menus
Deschide un display de opiuni (definite cu proprietatea string rosu|galben|albastru)
cnd este selectat. Cnd nu este deschis el indic alegerea curent. El este utilizat cnd
utilizatorul dorete o selecie exclusiv de proprieti. Proprietatea Value indic care cmp a
fost selectat prin numrul lui de ordine (dac se selecteaz galben, value capt valoarea 2).
Push buttons
Genereaz o aciune cnd este apsat. Pentru activare se selecteaz cu click de mouse pe
buton ceea ce va lansa n execuie secvena scris la callback.
Radio buttons
Sunt similare cu CheckBox dar sunt exclusive ntr-un grup de butoane radio (numai
unul are starea apsat ntr-un moment).
Sliders
Accept intrare numeric ntr-un interval prin deplasarea barei indicatoare a sliderului
de ctre utilizator. Se pot seta valorile Min i Max pentru valorile extreme ale intervalului.
Value returneaz valoarea curenta selectata.
Static text
Afieaz linii de text. Este utilizat pentru etichetare/comentarea obiectelor de control. El
nu ofer opiune de callback care s asocieze o rutina de execuie.
Observaii
Numai anumite obiectele de control din interfaa au proprietatea callback. Obiectele
figure, axe care nu sunt controale au proprieti specifice anumitor evenimente specifice
acelui obiect.
Clasele de obiecte au n structura proprieti specifice de tip callback, corelate cu
evenimentele (metodele) care pot fi asociate fiecrei clase. Indicam mai jos care sunt
atributele obiectelor grafice care execut anumite rutine, atunci cnd se produc evenimentele
la care sunt asignate:

52

obiectul figure : ..........................

Obiectul Figure este sensibil la buton apsat, crearea sau tergerea sa, nchiderea
ferestrei grafice (nu e la fel cu tergerea), apsarea unei key de tastatura, redimensionarea
ferestrei, apsarea/deplasarea/ridicarea sgeii de mouse n cmpul figurii. Pentru fiecare
eveniment n parte, daca se prevd secvene de program scrise n Matlab, se obin asociate
producerii lor.

obiectul axe : ...........................................................

orice alt obiect de control uicontrol: .................


53

Proprietile obiectelor grafice de tip uicontrol : (Observaie : pentru alte obiecte grafice
aparinnd altor clase (figure, axe) ele nu sunt valabile sau cel puin nu sunt aceleai) sunt
prezentate n tabelul 3 grupate pe funcii. Numele fiecrei proprieti este legat de o descriere
a acesteia:
Nume proprietate

Descrierea

Valoarea

proprietii

proprietii

Controlul stilului i aspectului obiectului de control al interfeei

BackgroundColor

Culoarea de background

Valoare:ColorSpec
Implicit:

CData

Imaginea true color afiat pe control

Valoare: matrice

ForegroundColor

Culoarea textului

Valoare:ColorSpec
Implicit: [0 0 0]

SelectionHighlight

String

Obiect evideniat (marcat) cnd e

Valoare:on, off

selectat

Implicit: on

Eticheta lui uicontrol sau lista de

Valoare: string

etichete pentru list box sau lista de


etichete pentru pop-up menu
Visible

Vizibilitate Uicontrol

Valoare: on, off


Implicit: on

Informaii generale despre obiect


Children

Identificatorul copilului Uicontrol


(dac are)

Enable

Control Enable sau disable

Valoare: on, inactive, off


Implicit: on

Parent

Identificatorul printelui Uicontrol

Valoare: scalar figure handle

(dac are)
Selected

Permite vizibilitatea seleciei

Valoare: on, off


Implicit: off

SliderStep

Pasul unui slider

Valoare: vector de doua


elemente
54

Implicit: [0.01 0.1]


Style

Tipul de obiect

Valoare: pushbutton,
togglebutton, radiobutton,
checkbox, edit, text, slider,
frame, listbox, popupmenu
Implicit: pushbutton

Tag

Identificator specificat de utilizator de

Valoare: string

tip eticheta (string)


TooltipString

Coninutul lui tooltip (afiajul de

Valoare: string

comentariu la staionarea cu mouse-ul


pe obiect)
Type

UserData

Clasa de obiecte la care aparine cel

Valoare: string (read-only)

curent

Implicit: uicontrol

Date asociate obiectului de ctre

Valoare: matrice

utilizator
Controlul poziiei obiectelor

Position

Mrimea i poziionarea (locul)

Valoare: poziia colt stnga

obiectului de control uicontrol

jos, dreptunghi
Implicit: [20 20 60 20]

Units

Uniti care interpreteaz vectorul

Valoare: pixels, normalized,

poziie

inches, centimeters, points,


characters
Implicit: pixels

Controlul Fontului i Etichetelor


FontAngle

nclinarea caracterului

Valoare: normal, italic, oblique


Implicit: normal

FontName

Familia de fonturi

Valoare: string
Implicit: system dependent

FontSize

Mrimea fontului

Valoare: size n FontUnits


Implicit: system dependent

FontUnits

Uniti de mrime a fontului


55

Valoare: points, normalized,

inches, centimeters, pixels


Implicit: points
FontWeight

Limea caracterelor text

Valoare: light, normal, demi,


bold
Implicit: normal

HorizontalAlignment String care indic alinierea pe


orizontal

Valoare: left, center, right


Implicit: depends on uicontrol
object

String

Eticheta de tip string a obiectului de

Valoare: string

control (lista pentru listbox i pop-up)


Controlul Execuiei Rutinelor Callback
BusyAction

Rutina Callback pentru ntrerupere

Valoare: cancel, queue

(daca callback-ul obiectului e ntrerupt Implicit: queue


de alta cerere, el poate fi abandonat
cancel sau poate fi ndeplinit i
executate cererile care sunt aezate n
coada)
ButtonDownFcn

Rutina Callback pentru buton staionar Valoare: string


apsat (a nu se confunda cu
callback.sunt obiecte la care ele sunt
similare iar altele care le pot distinge ;
Ex :text)

Callback

Controlul aciunii

Valoare: string

CreateFcn

Rutina Callback executata n timpul

Valoare: string

crerii obiectului
DeleteFcn

Rutina Callback executat n timpul

Valoare: string

tergerii obiectului
Interruptible

Rutina care face senzitiv obiectul la o

Valoare: on, off

cerere de ntrerupere sau nu)

Implicit: on

Informaii despre starea curenta


ListboxTop

Indexul stringului care va fi afiat n

Valoare: scalar

listbox (celelalte se vad prin derulare)

Implicit: [1]

56

Max

Min

Valoare

Valoare maxim (depinde de obiectul

Valoare: scalar

uicontrol)

Implicit: object dependent

Valoare minim (depinde de obiectul

Valoare: scalar

uicontrol)

Implicit: object dependent

Valoarea curent selectat prin

Valoare: scalar sau vector

acionarea obiectului de control

Implicit: dependent de obiect

Controlul accesului la obiecte


HandleVisibility

HitTest

Identificatorul de obiect este accesibil

Valoare: on, callback, off

din linia de comanda

Implicit: on

Execut evenimentele asociate click-

Valoare: on, off

ului de mouse

Implicit: on

Tabelul 3. Proprietile obiectelor grafice de tip uicontrol

57

3.4 Alte funcii utile n concepia unei interfee grafice GUI [8]

Au fost deja prezentate cele doua funcii set i get specializate n editarea proprietilor
obiectelor grafice. Adaug la acestea funcia findobj. Funciile gca, gco sunt o form abreviat
a aplicrii funciei findobj n gsirea obiectelor Axe i Obiect curent.

Axe curente
gca
Root
Figura
curenta

Figura
curenta
gcf
Axe curente
Obiect curent
findobj

Obiect
curent
gco

Figura 10.Funcii utile n concepia unei interfee grafice

Funcia findobj localizeaz un obiect grafic i returneaz identificatorul sau. Sintaxa


funciei este urmtoarea:
h = findobj
h = findobj('NumeProprietate', Valoare proprietate,...)
h = findobj(objhandles,...)
h = findobj(objhandles,'flat','PropertyName',PropertyValoare,...)
A doua form permite gsirea obiectelor din structura global root, care corespund
condiiei de cutare: o anumit proprietate are o anumit valoare. Se poate restrnge cutarea
la o ierarhie mai mica (varianta a doua) care corespunde obiectelor listate n objhandles, sau
se efectueaz cutarea numai n objhandles i nu n obiectele subordonate sau ncapsulate de
acesta.
gcf returneaz valoarea proprietii CurrentFigure din root
gca - returneaz valoarea proprietii CurrentAxes din figura curent
58

gco - returneaz valoarea proprietii CurrentObject din figura curent


Reinnd semnificaia lor, aceste funcii pot fi folosite n diverse combinaii pentru
cutarea/gsirea/editarea proprietilor unui obiect.
Exemplu:
Ca exemplu, se caut un obiect grafic n ntreaga ierarhie root i n obiectele
subordonate ei (Axe, Uicontrol, Surface, Text, ..etc) care au proprietatea Color- rou:
>>findobj(Color , r) vor fi gsite toate obiectele care au Color r sau [1 0 0].
sau se caut obiectul grafic (sau obiectele) numai n obiectul Axe:
>> findobj(gca, Color , r)
>>set(gco,'Marker','square')
>> get(gca)
Prima variant va returna identificatorii tuturor obiectelor grafice subordonate lui root.
Observaie: findobj returneaz error dac obiectul referit nu exist. Funcia gco
returneaz identificatorul ultimului obiect activat de un eveniment (un click de mouse pe un
obiect l transform n obiect curent).
Interfaa grafic n versiunea Matlab 6.0 (versiunea 6.0 am folosit-o n crearea
aplicaiei). Se construiete interfaa grafic cu ajutorul instrumentului GUIDE (GUI Builder)
pus la dispoziie n forma grafic modificat.

Figura 11.Obiectul Figure n starea iniial


59

Interfaa grafic a utilizatorului se construiete prin adugarea n planul obiectului


Figure, a elementelor de control ale interfeei precum i a celor dedicate mbuntirii
aspectului acesteia (obiectele frame) iar prin salvarea interfeei construite se genereaz un
fiier *.fig care reine n format binar imaginea construit, precum i un fiier funcie *.m care
conine att variabilele de tip structur (corespunztoare fiecrui obiect grafic) dar i subfuncii apelate de aceast funcia gazd a interfeei. Aceste sub-funcii sunt executate prin
activarea obiectelor de control ale interfeei (acionarea obiectului prin selecie, crearea sau
tergerea acestuia). Ele sunt deci asociate proprietilor Callback, CreateFcn, DeleteFcn.
Pentru obiectul grafic Axe sau Figure (care nu sunt de control) sunt prevzute alte
evenimente la care se pot asocia diferite aciuni. Un click dreapta de mouse insereaz
automat, n fiierul funcie asociat interfeei, sub - funcia corespunztoare controlrii
evenimentului dorit.
Fiecrei sub-funcii i sunt pasate un set de variabile. Esenial este variabila handles
generat prin funcia guihandle care conine structura de identificatori corespunztori
obiectelor grafice inserate n interfa:
handles = guihandles(fig);
guidata(fig, handles);

3.5 Crearea meniurilor pentru interfeele grafice [8]


Pentru crearea unor meniuri cu aciuni predefinite, care se afieaz n bara superioar
de meniuri, se utilizeaz funcia uimenu, care se apeleaz cu una dintre sintaxele:
- h= uimenu('Nume proprietate','Valoare proprietate', ...);
- hsub= uimenu(h,'Nume proprietate','Valoare proprietate', ...).
Funcia uimenu, dup cum se observ, accept perechile proprietate / valoare ca argumente
de intrare. Fiecare opiune a meniului poate fi la rndul ei un meniu, care afieaz un
submeniu, atunci cnd este selectat.
Submeniurile sunt create prin apelarea funciei uimenu, avnd ca prim argument
identificatorul meniului principal. Dac nu se specific nici un identificator al unui meniu
existent, este creat un meniu principal, care se plaseaz n bara superioara de meniuri (la
nivelul cel mai nalt).

60

CAPITOLUL IV

Studierea stabilitii sistemelor liniare continue cu ajutorul


criteriilor algebrice i frecveniale
3.1 Descrierea aplicaiei [3],[8]
Aplicaia Matlab pe care am creat-o este o interfa grafic realizat cu ajutorul GUI
(Graphical User Interface) ce permite utilizatorilor un control interactiv al reprezentrilor
grafice n scopul analizei stabilitatii sistemelor continue de reglare automata.
Pentru controlul interactiv al reprezentrilor grafice, n Matlab se folosete programarea
cu obiecte. n acest scop, aa cum am amintit i n capitolul III, sunt definite mai multe
elemente de control interactiv:
butoane prin apsare (push button si toggles button);
casete de editare (edit text i static text);
poteniometre liniare (sliders);
buton simplu (frame);
lista de opiuni (listbox i popup menu);
trasarea axelor (axes).
Aceast interfa grafic am construit-o prin adugarea n planul obiectului Figure, a
elementelor de control ale interfeei precum i a celor dedicate mbuntirii aspectului
acesteia (obiectele frame).
Prin salvarea interfeei construite s-a generat un fiier *.fig care reine n format binar
interfaa construit, precum i un fiier funcie *.m care conine att variabilele de tip
structur (corespunztoare fiecrui obiect grafic) dar i sub-funcii apelate de aceast funcie
gazd a interfeei. Aceste sub-funcii sunt executate prin activarea obiectelor de control ale
interfeei (acionarea obiectului prin selecie, crearea sau tergerea acestuia). Ele sunt deci
asociate proprietilor: Callback, CreateFcn, DeleteFcn.
Pentru obiectul grafic Axe sau Figure (care nu sunt de control) sunt prevzute alte
evenimente la care se pot asocia diferite aciuni. Un click dreapta de mouse insereaz
61

automat, n fiierul funcie asociat interfeei, sub-funcia corespunztoare controlrii


evenimentului dorit .
Din elementele de control predefinite am utilizat, dup cum putem vedea n figura de
mai jos urmtoarele obiecte:

Figura 12.Interfaa graficAnaliza stabilitatii sistemelor de reglare automata

Static Text - permite afiarea liniilor de text sau pentru etichetarea obiectelor

de control i anume numrtor i numitor. El nu ofer opiune de callback care s


asocieze o rutin de execuie.
Edit text- permite introducerea unui text de la tastatur, n cazul de fa permit
introducerea celor doi vectori reprezentnd numrtorul i numitorul funciei de
transfer. Dup ce acesta a fost scris n caseta, se apas tasta Enter sau se selecteaz
butonul care lanseaz execuia. Se utilizeaz n cazul n care programul trebuie s preia
interactiv un text (n cazul de fa se selecteaz butoanele prin apsre Funcia de
transfer n circuit deschis, Functia de transfer n circuit nchis sau Polinomul
caracteristic).
Push button genereaz prin apasarea lor o aciune, nsa nu rmne n starea apsat.
Pentru activarea unui buton prin apsare, se apas i se elibereaz butonul mouse-ului.
Aceste butoane se utilizeaz dac aciunea pe care o realizeaz nu este dependent de
nici o alt aciune executabil prin interfa. Prin apsarea acestui buton, de exemplu,
62

sunt preluai numrtorul i numitorul i este afiat funcia de transfer n circuit deschis
pe un obiect de control caracteristic (Static text ).
Axes permite afiarea unor grafice, n cazul criteriilor ferecventiale de analiz sau a
minorilor Hurwitz sau tabelei Rout- Hurwitz, n cazul criteriilor algebrice.
Pop-up menu permite afisarea unui meniu n momentul selectrii. Daca nu
este activat, se afieaz un singur buton, cu un text care reprezint configuraia curent.
Aceast posibilitate de control grafic se folosete atunci cnd se dorete selectarea unei
opiuni dintr-o lista mutual exclusiv, fr modificarea valorilor, ca n cazul butoanelor
radio. Sunt utilizate pentru a putea selecta criteriul dorit n vederea obinerii de
informaii cu privire la acesta.
Pentru citirea i modificarea proprietilor fiecrui obiect am folosit Propriety Inspector,
care poate fi vizualizat din meniul principal din ViewPropriety Inspector sau prin click
dreapta de mouse asupra obiectului a cror proprieti se doresc a fi vizualizate sau
modificate.
De regul din proprietile fiecrui obiect de control am modificat String-ul i Tagul obiectului respectiv astfel nct s fie mai uor identificat n fiierul *.m generat automat
n urma salvrii interfeei grafice.

Figura 13.Modificarea proprietilor String i Tag

63

De asemenea pentru vizualizarea ierarhiei obiectelor se selecteaz din meniul principal


View Object Browser. Astfel se pot vizualiza toate obiectele de control folosite n realizarea
interfeei grafice.

Figura 14.Object Browser

64

3.2 Funcia Callback [3],[8]


Dup cum am amintit anterior prin salvarea interfeei construite s-a generat un fiier
*.fig care reine n format binar imaginea construit, precum i un fiier funcie *.m care
conine att variabilele de tip structur (corespunztoare fiecrui obiect grafic) dar i o funcie
Callback n care am implementat codul de program fiecrui obiect de control.
Pentru a afia funcia de transfer (n circuit deschis sau circuit nchis) am implementat o
secven de program (vezi anexa1) n Callback-ul butoanelor Funcia de transfer n circuit
deschis i Funcia de transfer n circuit nchis care permit calcularea acestora i afiarea
lor. n callback, am transformat mai nti numrtorul i numitorul funciei din string n
numr pentru a putea calcula funcia de transfer cu ajutorul functiei sistem din Maltab- tf.

Figura 15.Calculul funciilor de transfer asociate sistemului analizat

Pentru fiecare criteriu de analiz a stabilitii, algebric sau frecvenial, am implementat


n Callback-ul funciei algoritmul de calcul respectiv.

65

Funcia Callback pentru Criteriu lui Hurwitz [3]

Figura 16. Secven din codul de program pentru criteriul lui Hurwitz

n prima parte am scris o secven de program prin care se preiau cei doi vectori
introdui de la tastatur, vectori care reprezint numrtorul i numitorul funciei de transfer.
Acetia sunt transformai din string n numr prin instruciunea str2num, iar apoi cu
ajutorul lor se creeaz ecuaia caracteristic necesar urmtoarei pri din program i anume
secvena de program n care este implementat algoritmul de calcul al criteriului lui Hurwitz.
Acesta const n calcularea minorilor determinantului obinut. Dac este ndeplinit condiia
de stabilitate i anume, ca toi coeficienii de pe diagonala principal s fie pozitivi, pe
interfaa grafic va aprea mesajul Toate valorile determinanilor obinui sunt pozitive, deci
sistemul este stabil", n caz contrar va fi afiat mesajul Una sau mai multe din valorile
diagonalei sunt negative, deci sistemul devine instabil; de asemenea pe interfa va fi afiat
66

matricea Hurwitz i informaii cu privire la acest criteriu(dac se dorete acest lucru) ca n


exemplul urmtor n care a fost studiat un sistem de ordinul II :

Figura 17. Studierea stabilitii cu ajutorul criteriului lui Hurwitz

67

Funcia Callback pentru Criteriu lui Routh-Hurwitz [3]

Figura 18.Secven din codul de program pentru criteriul lui Routh-Hurwitz

Ca i la criteriul lui Hurwitz, n prima parte apare secvena de program n care se preia
numrtorul i numitorul funciei de transfer i se creeaz ecuaia caracteristic. Acest criteriu
este o variant alternativ a criteriului Hurwitz i a fost introdus pentru a se evita calcularea
determinanilor. n Callback a fost implementat algoritmul de calcul al Criteriului lui RouthHurwitz. Acesta const n crearea tabelei lui Routh, iar dac este ndeplinit condiia, i
anume ca toi termenii de pe prima coloan s fie pozitivi, pe interfaa grafic creat va fi
afiat mesajul Sistemul este stabil, iar dac aceast condiie nu este satisfcut va aprea
mesajul Sistemul este instabil. De asemenea pe interfa va fi afiat tabela lui Routh i pot
fi afiate i informaii cu privire la acest criteriu ca n exemplul din Figura 19:

68

Figura 19. Studiul stabilitii cu ajutorul criteriului lui Routh-Hurwitz

Funcia Callback pentru Criteriul lui Nyquist [3]

Figura 20. Codul de program pentru criteriul lui Nyquist


69

Se preia numrtorul i numitorul funciei de transfer introdui de la tastatur, se


transform din string n numr i se creeaz funcia de transfer. Apoi este studiat stabilitatea
sistemului cu ajutorul Criteriului lui Nyquist simplificat, pentru funcia n circuit deschis i cu
ajutorul Criteriului lui Nyquist generalizat, pentru funcia de transfer n circuit nchis:

Figura 21. Studiul stabilitii cu ajutorul criteriului lui Nyquist simplificat

Figura 22. Studiul stabilitii cu ajutorul criteriului lui Nyquist generalizat

Sistemul este stabil deoarece curba pentru frecvena (0,) las punctul critic (-1, 0) la
stnga sa.

70

Funcia Callback pentru Locul geometric al rdcinilor [3]

Figura 23. Codul de program pentru Locul rdcinilor

Figura 24. Studiul stabilitii cu ajutorul Locul rdcinilor

Dup ce s-a creat funcia de transfer s-a trasat Locul geometric al rdcinilor a unui
sistem de ordinul II, la intrarea de tip treapt. Sistemul este stabil deoarece polii sistemului se
gsesc n semiplanul stng al planului complex.

71

Pe interfa mai putem vizualiza i informaii cu privire la studiul stabilitii cu ajutorul


Locului geometric al rdcinilor.
Funcia Callback pentru Diagrama lui Bode [3]

Figura 25. Codul de program pentru Diagrama lui Bode

Dup crearea funciei de transfer n bucl deschis prelund numrtorul i numitorul


introdui de la tastatur am calculat funcia de transfer n bucl nchis prin instruciunea
Matlab feedback pentru a putea trasa diagrama Bode la intrarea de tip treapt.

Figura 26. Studiul stabilitii cu ajutorul diagramei lui Bode


72

Sistemul este stabil deoarece c <

unde :

este pulsaia la care modulul vectorului H s G s este 1, iar

este

pulsaia pentru care faza sistemului este 1800 .


Pentru a afia informaii cu privire la criteriile algebrice i frecveniale am implementat
o secven de program n funcia Callback generat pentru obiectul de tip lista de opiuni
(popup menu).
De exemplu, pentru a vizualiza informaii cu privire la criteriile algebrice am
implementat urmtoarea secven de program, unde cu ajutorul instruciunii if putem obine
informaii despre criteriul selectat:
function crtalg_Callback(hObject, eventdata, handles)
hpop=findobj(gcf,'Tag','crtalg')
val = get(hpop,'Value');
if val == 1
set(handles.alg,'string','sistemul este stabil daca toti minorii
principali ai matricii Hurwitz sunt strict pozitivi')
elseif val == 2
set(handles.alg,'string','sistemul
coloana

nu

exista

schimbari

de

semn,

in

este
caz

stabil
contrar

daca

in

sistemul

prima
este

instabil')
end

ntregul cod de program al aplicaiei Studiul stabilitii sistemelor liniare continue cu


ajutorul criteriilor algebrice i frecveniale va fi ataat la anexa 2.

73

3.3 Analiza sistemelor n bucl deschis i bucl nchis


Un sistem liniar se poate gsi n unul din cele patru cazuri:

stabil n bucl deschis i instabil n bucl nchis

stabil att n bucl deschis ct i n bucl nchis

instabil n bucl deschis i stabil n bucl nchis

instabil att n bucl deschis ct i n bucl nchis

n cele ce urmeaz voi analiza primele dou cazuri.


3.3.1 Sistemul este stabil n bucl deschis i instabil n bucl nchis

Voi analiza cu ajutorul instrumentului software realizat stabilitatea unui sistem de


ordinul II, avnd urmtoarea funcie de transfer:
H(s) =

1
s 2s 3
2

Voi analiza sistemul n bucl deschis cu ajutorul criteriului lui Hurwitz. Se formeaz
ecuaia caracteristic, aplicnd formula : det(sI-A)=0, unde A reprezint matricea
caracteristic din spaiul strilor, I reprezint matricea unitate, s variabila pentru sistemul
continuu. Apoi se formeaz determinantul lui Hurwitz i se calculeaz minorii acestuia
conform algoritmului de calcul implementat n funcia Callback a criteriului Hurwitz n
vederea studierii stabilitii sistemului. n urma studierii stabilitii cu ajutorul instrumentului
software, interfaa grafic va arta ca n figura 27.

74

Figura 27. Studierea stabilitii sistemului de ordinul II (avnd funcia de transfer prezentat
anterior) cu ajutorul criteriului lui Hurwitz

Este ndeplinit condiia necesar i suficient ca acest sistem s fie stabil i anume, toi
minorii determinantului sunt pozitivi, deci sistemul este stabil n bucl deschis. Pe interfa
mai putem vizualiza i informaii cu privire la acest criteriu.
n continuare voi studia stabilitatea aceluiai sistem dar de aceast dat n bucl nchis
cu ajutorul diagramei lui Bode. n figura 27 putem vedea c sistemul este instabil n bucl
nchis. Condiia necesar i suficient ca sistemul s fie stabil este ca >0 sau M<0, unde

reprezint marginea de faz, iar M reprezint marginea de amplitudine. Aceast condiie


nu este ndeplinit n acest caz, deci sistemul studiat nu este stabil n bucl nchis.

Figura 28. Studierea stabilitii sistemului de ordinul II (avnd funcia de transfer prezentat anterior)
cu ajutorul diagramei lui Bode
75

3.3.2 Sistemul este stabil att n bucl deschis ct i n bucl nchis


Voi studia stabilitatea unui sistem de ordinul II, avnd urmtoarea funcie de transfer :
H(s)=

1
2s 4s 3
2

Voi analiza stabilitatea sistemului n bucl deschis cu ajutorul criteriului lui Hurwitz.
Dup ce s-a construit determinantul lui Hurwitz, au fost calculai minorii acestuia cu
ajutorul instrumentului software realizat.
n figura 29 putem vedea c este ndeplinit condiia de stabilitate i anume, toi minorii
determinantului lui Hurwitz sunt pozitivi deci sistemul este stabil n bucl deschis.

Figura 29. Studierea stabilitii sistemului de ordinul II (avnd funcia de transfer prezentat
anterior) cu ajutorul criteriului lui Hurwitz

Voi studia stabilitatea aceluiai sistem n bucl nchis cu ajutorul Locului geometric al
rdcinilor. Sistemul este stabil deoarece polii sistemului se gsesc n semiplanul stng al
planului complex .

76

CONCLUZII

Aplicaia ofer posibilitatea studierii stabilitii sistemelor de reglare automat ntr-un


timp ct mai scurt i prin mai multe metode. Cu ajutorul ei putem studia stabilitatea n timp
continuu dar se mai poate realiza n mod asemntor un instrument software cu ajutorul cruia
s putem studia stabilitatea sistemelor n timp discret folosind criterii de stabilitate specifice
(Criteriul Jury de exemplu).
Interfaa grafic GUI permite un control interactiv al reprezentrilor grafice i se
bazeaz pe programarea cu obiecte. Presupune utilizarea tehnicii drag and drop, obiectele
predefinite fiind adugate n Figura cu obiecte prin simpla plasare a acestora.
Aplicaia de faa analizeaz dac un sistem este stabil sau nu dar se mai poate
mbuntii realizndu-se i sinteza stabilitii sistemelor liniare.

77

BIBLIOGRAFIE
1. Dragomir O., Dragomir F. Minca E., Dumitrache C.- Teoria sistemelor automate.
Fundamente teoretice si aplicatii Matlab, Editura MatrixRom, Bucuresti, 2010, ISBN:
978- 973- 755- 646- 2
2. Minca E., Dumitrache C., Brezeanu I., Stefan V., Dragomir F., Dragomir O. Conducerea inteligenta a sistemelor automate. Fundamente teoretice (vol.I), Editura
MatrixRom, Bucuresti, 2010, Referenti stiintifici : Prof. A. Filipescu, Prof. S. St.
Iliescu, ISBN:978-973-755-565-6
3. Minca E., Dumitrache C., Brezeanu I., Stefan V., Dragomir F., Dragomir O. Conducerea inteligenta a sistemelor automate. Aplicatii (vol.II), Editura MatrixRom,
Bucuresti, 2010, Referenti stiintifici : Prof. A. Filipescu, Prof. S. St. Iliescu,
ISBN:978-973-755-566-3
4. Soare C., Iliescu S.St., Tudor V., Fagarasanu I., Dragomir O., Dragomir F. Proiectarea asistata de calculator in Matlab si Simulink. Conducerea avansata a
proceselor, Editura Agir, Bucuresti, 2006, ISBN 973-720-092-6978-973-720-092-1
5. D.F.Lzroiu,Th.Boranglu, V.Coste, Dan Popescu, Cr.Constantinescu, M.Gudumsc,
Teoria sistemelor i reglaj automat, Institutul Politehnic Bucureti, 1982
6. Vlad Ionescu, Corneliu Popeea, Conducerea structural a sistemelor liniare, Editura
Tehnic, Bucureti, 1986
7. http://www.mathworks.com/matlabcentral, Matlab The Language of Technical
Computing, Creating Graphical User Interfaces, version 1
8. Eugenia Minc, Note de curs, Ingineria reglrii automate I
9. Ionescu V.;Teoria Sistemelor;EDP,Bucuresti 1986.
10. Ionescu, V., A, Varga, Teoria sistemelor sintez robust, metode numerice de
calcul, Ed. ALL, Bucureti,1994.
11. Dobra, P. Teoria Sistemelor, Mediamira, 2002
12. Nicolae Olariu, Iulian Brezeanu, Eugenia Minc, Utilizarea pachetelor soft Matlab,
Simulink, Control System Toolbox n proiectarea inginereasc, Editura Macarie,
Trgovite

78

Anexa 1
%Afiarea funciei de transfer prin apsarea butonului pushbutton1
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject

handle to pushbutton1 (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

num_string=get(handles.num_txt,'string');

%citeste

stringul

pentru

numitor
den_string=get(handles.den_txt,'string');

%citeste

stringul

pentru

numarator
%display_string=char(num_string, den_string); - concateneaza vertical cele
2 stringuri
%set(handles.display_den_genny,'string',display_string);- afiseaza stringul
rezultat din concatenare
num=str2num(num_string);

%converteste din string in numar

den=str2num(den_string);
num_length=length(num);

%calculeaza lungimea vectorului num

den_length=length(den);
display_line='---';
temp_string = '';
temp_length = 0;
sign_chr = '';
chr = '';
j=num_length-1;
display_num=temp_string;
temp_string = '';
temp_length = 0;

79

sign_chr = '';
chr = '';
j=den_length-1;
for i=1:den_length
chr=num2str(den(i));
if sign(den(i))==1 && temp_length==0
sign_chr='';
else if sign(den(i))==1 && temp_length~=0
sign_chr='+';
else if sign(den(i))<1 && temp_length~=0
sign_chr='';
end
end
end
temp_string=strcat(temp_string, sign_chr, chr, 's^' ,num2str(j));
temp_length=temp_length+1;
j=j-1;
end
display_den=temp_string;

%salvez

numitorul

din

temp_string

in

display_den

%display_string=char(display_den, display_line, display_num);- concateneaza


vertical cele 3 stringuri
%set(handles.display_genny,'string',display_string);-

afiseaza

functia

transfer
set(handles.display_den,'string',display_den);
set(handles.display_num,'string',display_num);
f=tf(den,num);

%calculeaza functia de transfer

80

de

guidata(hObject, handles);

81

Anexa 2
%Codul de program pentru aplicaia Matlab Studiul stabilitii sistemelor
liniare continue cu ajutorul criteriilor algebrice i frecveniale
function varargout = geo4(varargin)
% GEO4 M-file for geo4.fig
%

GEO4, by itself, creates a new GEO4 or raises the existing

singleton*.

H = GEO4 returns the handle to a new GEO4 or the handle to

the existing singleton*.

GEO4('CALLBACK',hObject,eventData,handles,...) calls the local

function named CALLBACK in GEO4.M with the given input arguments.

GEO4('Property','Value',...) creates a new GEO4 or raises the

existing singleton*.

Starting from the left, property value pairs

are
%

applied to the GUI before geo4_OpeningFunction gets called.

unrecognized

property

name

or

invalid

value

makes

An
property

application
%

stop.

All inputs are passed to geo4_OpeningFcn via varargin.

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name',
'gui_Singleton',

mfilename, ...
gui_Singleton, ...

'gui_OpeningFcn', @geo4_OpeningFcn, ...


'gui_OutputFcn',

@geo4_OutputFcn, ...

'gui_LayoutFcn',

[] , ...

'gui_Callback',

[]);

82

if nargin & isstr(varargin{1})


gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before geo4 is made visible.
function geo4_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject

handle to figure

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

% varargin

command line arguments to geo4 (see VARARGIN)

% Choose default command line output for geo4


handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes geo4 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = geo4_OutputFcn(hObject, eventdata, handles)
% varargout

cell array for returning output args (see VARARGOUT);

% hObject

handle to figure

% eventdata

reserved - to be defined in a future version of MATLAB

83

% handles

structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;

% --- Executes during object creation, after setting all properties.


function num_txt_CreateFcn(hObject, eventdata, handles)
% hObject

handle to num_genny (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


%

See ISPC and COMPUTER.

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
;
end

function num_txt_Callback(hObject, eventdata, handles)


% hObject

handle to num_genny (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of num_genny as text

84

str2double(get(hObject,'String')) returns contents of num_genny as

a double

% --- Executes during object creation, after setting all properties.


function den_txt_CreateFcn(hObject, eventdata, handles)
% hObject

handle to den_genny (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


%

See ISPC and COMPUTER.

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
;
end

function den_txt_Callback(hObject, eventdata, handles)


% hObject

handle to den_genny (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of den_genny as text


%

str2double(get(hObject,'String')) returns contents of den_genny as

a double

% --- Executes on button press in pushbutton1.

85

% Afiarea funciei de transfer


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject

handle to pushbutton1 (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

num_string=get(handles.num_txt,'string');

%citeste stringul pentru

numitor
den_string=get(handles.den_txt,'string');

%citeste

stringul

pentru

numarator
%display_string=char(num_string, den_string)- concateneaza vertical cele 2
stringuri
%set(handles.display_den_genny,'string',display_string)-

afiseaza

stringul

rezultat din concatenare


num=str2num(num_string);

%converteste din string in numar

den=str2num(den_string);
num_length=length(num);

%calculeaza lungimea vectorului num

den_length=length(den);
display_line='---';
temp_string = '';
temp_length = 0;
sign_chr = '';
chr = '';
j=num_length-1;
temp_string=strcat(temp_string, sign_chr, chr, 's^' ,num2str(j));
temp_length=temp_length+1;
j=j-1;
end

86

display_num=temp_string;
temp_string = '';
temp_length = 0;
sign_chr = '';
chr = '';
j=den_length-1;
for i=1:den_length
chr=num2str(den(i));
if sign(den(i))==1 && temp_length==0
sign_chr='';
else if sign(den(i))==1 && temp_length~=0
sign_chr='+';
else if sign(den(i))<1 && temp_length~=0
sign_chr='';
end
end
end
temp_string=strcat(temp_string, sign_chr, chr, 's^' ,num2str(j));
temp_length=temp_length+1;
j=j-1;
end
display_den=temp_string;

%salvez

numitorul

din

temp_string

display_den
for i=1:length(display_num)
display_line=strcat(display_line,'-');
end
%display_string=char(display_den, display_line, display_num);

87

in

%concateneaza vertical
%cele 3 stringuri
%set(handles.display_genny,'string',display_string);
% afiseaza functia de transfer

% --- Executes on button press in hurwitz


% Algoritmul de calcul al criteriului lui Hurwitz
function hurwitz_Callback(hObject, eventdata, handles)
% hObject

handle to hurwitz (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

a = get(handles.num_txt,'String');
b = get(handles.den_txt,'String');
v=str2num(a)+str2num(b);
if v(1)<0

%schimba semnul coeficientilor daca

v(n) este negativ


v=-v;
end
dimension=length(v);

%dimensiunea vectorului dat

if rem(dimension,2)==0

%restul impartirii la 2

w=v;

%vectorul ramane neschimbat daca dimensiunea e

para
else
w=[v 0];
end
n_column=fix((dimension-1)/2)+1;

%numarul coloanelor in tabelul ROUTH

w=reshape(w,2,n_column);

88

x=flipud(w);

%inversia

celor

linii

construite
for i=1:2
end

%algoritm de calcul

for i=3:dimension-1
for j=2:dimension-1
y(i,j)=y(i-2,j-1);
end
end
n_det=length(y);

%numarul determinantilor ce trebuie

calculati
for i=1:n_det
z(i)=det(y(1:i,1:i));

%vectorul determinantilor obtinuti

end
fprintf(' Vectorul de determinani calculai este \n z = ')
disp(z)

%afiseaza vectorul

val = get(hObject,'Value');
if val == 1
if z(i)>0

%interpretare
set(handles.stabil,'string','Toate

valorile

determinantilor

obtinuti sunt pozitive,deci sistemul este stabil')


else
set(handles.stabil,'string','Una sau mai multe din valorile
diagonalei sunt negative,deci sistemul devine instabil')
end
else
set(handles.stabil,'string','')
end

89

val = get(hObject,'Value');
if val == 1
pltmat(y,' ','r',12);
set(handles.axa,'string','MATRICEA

HURWITZ')

%afisarea

calculate
end

% --- Executes on button press in checkbox


% Algoritmul de calcul al criteriului Routh-Hurwitz
function rhurwitz_Callback(hObject, eventdata, handles)
% hObject

handle to rhurwitz (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

clc;
disp('

')

% --------------------Tabela Routh-------------------------------if mod(l,2)==0


m=zeros(l,l/2);
[cols,rows]=size(m);
for i=1:rows
m(1,i)=D(1,(2*i)-1); %
m(2,i)=D(1,(2*i));
end
else
m=zeros(l,(l+1)/2);
[cols,rows]=size(m);
for i=1:rows

90

matricei

m(1,i)=D(1,(2*i)-1);
end
for i=1:((l-1)/2)
m(2,i)=D(1,(2*i));
end
end
%

--------------------Sfarsitul

matricei

construite-------------------------------% Checking for sign change


Temp=sign(m);a=0;
for j=1:cols
a=a+Temp(j,1);
end
val = get(hObject,'Value');
if val == 1
if a==cols
set(handles.stabilitate,'string','----> Sistemul este stabil <----')
else
set(handles.stabilitate,'string','----> Sistemul este instabil <----')
end
else
set(handles.stabilitate,'string','')
end
%=====================Sfarsitul programului======================
val = get(hObject,'Value');
if val == 1
pltmat(m,' ','r',14); %afiseaza matricea R-H

91

set(handles.axa,'string','TABELA ROUTH')
else
axis off
cla
set(handles.axa,'string',' ')
end

% --- Executes on button press in nyquist.


% Algoritmul de calcul al criteriului lui Nyquist
function nyquist_Callback(hObject, eventdata, handles)
% hObject

handle to nyquist (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

a=str2num(get(handles.num_txt,'string')); %introduce in variabila 'a'


transformarea

numaratorului din string in numar

b=str2num(get(handles.den_txt,'string'));

%introduce

in

variabila

transformarea numitorului din string in numar


f=tf(a,b); %creeaza functia de transfer
val = get(hObject,'Value');
% --- Executes on button press in pzmap
% Algoritmul de calcul al Locului geometric al rdcinilor
function pzmap_Callback(hObject, eventdata, handles)
% hObject

handle to pzmap (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

a=str2num(get(handles.num_txt,'string'));
b=str2num(get(handles.den_txt,'string'));

92

'b'

f=tf(a,b); %creeaza functia de transfer


%pltmat(pzmap(f),'poli','r',14); %afiseaza polii sistemului
val = get(hObject,'Value');
if val == 1
figure(2)
subplot(2,1,1),
step(f)
subplot(2,1,2),
pzmap(f)
grid on;
elseif val==0
close(2)
end
% Hint: get(hObject,'Value') returns toggle state of pzmap

% --- Executes on button press in bode


% Algoritmul de calcul al Diagramei lui Bode
function bode_Callback(hObject, eventdata, handles)
% hObject

handle to bode (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

a=str2num(get(handles.num_txt,'string'));
b=str2num(get(handles.den_txt,'string'));
f=tf(a,b);
f0=feedback(f,1)
val = get(hObject,'Value');
end

93

% Hint: get(hObject,'Value') returns toggle state of bode

% --- Executes during object creation, after setting all properties.


function inf_CreateFcn(hObject, eventdata, handles)
% hObject

handle to inf (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.


%

See ISPC and COMPUTER.

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
;
end

% --- Executes on selection change in inf.


function inf_Callback(hObject, eventdata, handles)
% Afisarea informaiilor cu privire la criteriile frecveniale
% hObject

handle to inf (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns inf contents as cell


array
%

contents{get(hObject,'Value')} returns selected item from inf

94

hpop=findobj(gcf,'Tag','inf')
val = get(hpop,'Value');
if val == 1
set(handles.genny,'string','Un sistem cu reactie este stabil daca
diagrama Nyquist inconjura punctul de referinta ( (-1,0)
negativa, (+1,0)
atunci cand s

pentru reactie pozitiva) de P

pentru reactie

ori in sens antiorar,

parcurge o singura data in sens orar conturul Nyquist. ')

elseif val == 2
set(handles.genny,'string','bode')
elseif val == 3
set(handles.genny,'string',' Un sistem dinamic liniar este stabil daca
si numai daca toti polii sistemului au partea reala strict negativa')
end

% --- Executes during object creation, after setting all properties.


function crtalg_CreateFcn(hObject, eventdata, handles)
% hObject

handle to crtalg (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.


%

See ISPC and COMPUTER.

if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
;
end

95

% --- Executes on selection change in crtalg


% Afisarea informaiilor cu privire la criteriile algebrice

function crtalg_Callback(hObject, eventdata, handles)


% hObject

handle to crtalg (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns crtalg contents as cell


array
%

contents{get(hObject,'Value')} returns selected item from crtalg

hpop=findobj(gcf,'Tag','crtalg')
val = get(hpop,'Value');
% --- Executes on button press in close
% nchiderea aplicaiei
function close_Callback(hObject, eventdata, handles)
% hObject

handle to close (see GCBO)

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

close(gcf)

% --- Executes during object creation, after setting all properties.


% Afiarea imaginii schemei bloc a sistemului
function axes_fig_CreateFcn(hObject, eventdata, handles)
% hObject

handle to axes_fig (see GCBO)

96

% eventdata

reserved - to be defined in a future version of MATLAB

% handles

empty - handles not created until after all CreateFcns called

imshow('C:\Documents and Settings\Genny\Desktop\gennybun.jpg')

97

S-ar putea să vă placă și