Sunteți pe pagina 1din 20

Universitatea Tehnic din Cluj-Napoca

Facultatea de Automatic i Calculatoare

Proiect la Identificarea Sistemelor

Oltean Ioana, gr. 30132


8 noiembrie 2013

Cuprins
1. Obinerea datelor experimentale.................................................................................................................3
1.1 Achiziia datelor intrare-ieire...............................................................................................................3
1.2 Desfurarea experimentului A - semnal de tip treapt.........................................................................3
1.2.1 Procesarea datelor experimentale...................................................................................................4
1.2.2 Validarea modelului experimentului A...........................................................................................5
1.3 Desfurarea experimentului B - semnal de tip impuls........................................................................8
1.3.1 Procesarea datelor experimentale...................................................................................................9
1.3.2 Validarea modelului experimentului B.........................................................................................12
2. Concluzii...................................................................................................................................................15

Identificarea unui circuit electric


1. Obinerea datelor experimentale
1.1 Achiziia datelor intrare-ieire
Primul pas este importarea datelor n MATLAB i plotarea acestora. Pentru proiect am lucrat cu
scope_110 (pentru treapt) i scope_111 (pentru impuls). Achiziionarea datelor intrare-ieire n vederea
procesrii acestora se face alegnd un eantion de lucru pentru fiecare semnal (treapt+rspunsul
sistemului, impuls+rspunsul sistemului) care s cuprind o perioad a acestuia. Datele experimentale se
extrag de pe acel eantion, toat procesarea bazndu-se pe acestea.
1.2 Desfurarea experimentului A - semnal de tip treapt
Am importat datele din scope_110.csv; acestea se regsesc n figura de mai jos. Este plotat
intrarea, adic semnalul de tip treapt i ieirea, adic rspunsul sistemului de ordin II la semnal de tip
treapt.

Pentru determinarea parametrilor sistemului de ordin II necesari, avem nevoie de eantionul de


lucru. Indecii ntre care se afl acest eantion sunt: 460 i 700. Datele experimentale, adic timpul (t exp),
intrarea (uexp) i ieirea (yexp) au fost alese n concordan cu eantionul pe care am lucrat:
texp = t(460:700,1);
uexp = u(460:700,1);
yexp = y(460:700,1);
Obs: pe tot parcursul proiectului am folosit doar datele experimentale.

1.2.1 Procesarea datelor experimentale

Pe acelai eantion alegem punctele de interes n vederea calculrii perioadei de oscilaie (T osc), y
n regim staionar (yst), y iniial (y0), u n regim staionar (ust) i u iniial (u0).
Valorile
obinute ale
indecilor
sunt: 7, 43,
110,
176, 227.
Perioada de
oscilaie
reprezint
diferena
dintre timpul
primului
minim
i
timpul
de
nceput
al
treptei sau de
dou
ori diferena
dintre timpul primului maxim i timpul de nceput al treptei. Este de preferat a
doua
variant, deoarece primul maxim este mai evideniat pe grafic dect primul minim. n cazul nostru avem:
Tosc = 2 * (texp[110] texp[35]) = 0.0075 sec
Valorile staionare i cele iniiale se obin din media aritmetic a valorilor dorite pe un anumit
interval ales corespunztor. n acest caz obtinem:
yst=mean(yexp(176:227),1) = 2.0276
ust=mean(uexp(176:227),1) = 1.9913

y0=mean(yexp(7:43),1)
u0=mean(uexp(7:43),1)

= - 2.2601
= - 2.3243

Pe baza acestor valori calculm k (factorul de proporionalitate), (suprareglajul), (factorul de


amortizare), n (pulsaia neamortizat).
y st y 0
k
=
factorul de proporionalitate
u st u0 = 0.9935
suprareglajul

y max y st
=0.0664=6.64
y st y 0

Dac logaritmm suprareglajul i facem calculele necesare obinem:


ln ( )
=
=0.6534
2
factorul de amortizare
+ln ( )2

Cu ajutorul factorului de amortizare i a perioadei de oscilaie obinem:


2
n=
=1.1067e+003rad /s
pulsaia neamortizat
T osc 1 2
Funcia de transfer a ordinului II este:
1.217 * 106
n cazul nostru fiind ------------------------------s2 + 1446 s + 1.225 * 106
1.2.2 Validarea modelului experimentului A
n figura urmtoare vom avea simulat semnalul pe baza funciei de transfer gsit. u(t) este
semnalul de intrare, y(t) este rspunsul sistemului de ordin II la semnal de tip treapt, iar yc(t) este sistemul
determinat.

Dac lum n considerare condiiile iniiale nenule, sistemul trebuie reprezentat prin spaiul
strilor. Se pornete de la definiia funciei unui sistem de ordin II (Y(s)/U(s)) i forma sa general. Se
nmulesc mezii cu extremii, aplicndu-se Laplace invers pentru a afla ecuaia de stare. Notm x 1=y i
x2=x1= y. Deducem urmtorul sistem:
x1 = x2
x2 = - 2nx1 - 2nx2 + k2ny
Matricele (A, B, C, D) care determin sistemul sunt:

Urmeaz recalcularea sistemului de ordin II, avnd condiiile iniiale nenule cu spaiul strilor i,
n final, plotarea noului sistem.

Se calculeaz valoarea erorii medie ptratice dintre ieirea msurat i ieirea calculat:
J=

1000

1
( y y c )2 J =0.1236=12.36
1000 k=1

Codul surs:
close all;
t=data(:,1);
u=data(:,2);
y=data(:,3);
%plotarea datelor primite (u(t),y(t))
plot(t,[u y]);
title('Semnal de tip treapta si raspunsul sistemului de ordin II la
acesta','fontsize',13);
legend('semnal treapta','raspunsul sistemului');
ylabel('u(t) , y(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
%datele experimentale
texp=t(460:700,1);
uexp=u(460:700,1);

yexp=y(460:700,1);
%esantionul de lucru
figure
plot(texp,[uexp,yexp]);
title('Alegerea unei perioadei','fontsize',14);
ylabel('u(t) , y(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
%calcularea parametrilor Tosc, yst, ust, y0, u0, k, suprareglajul, factorul de
amortizare si pulsatia naturala
Tosc=2*(texp(110)-texp(35))
yst=mean(yexp(176:227),1)
ust=mean(uexp(176:227),1)
y0=mean(yexp(7:43),1)
u0=mean(uexp(7:43),1)
k=(yst-y0)/(ust-u0)
sigma=max(yexp-yst)/(yst-y0)
tita=abs(log(sigma)/sqrt(pi^2+(log(sigma))^2))
wn=2*pi/Tosc/sqrt(1-tita^2)
%functia de transfer
H=tf([k*wn^2],[1 2*tita*wn wn^2])
yc=lsim([k*wn^2],[1 2*tita*wn wn^2],u,t);
%plotarea intrarii, raspunsului sistemului si raspunsului calculat al
%sistemului de ordin II la semnal treapta
figure
plot(t,[u y yc]);
title('Intrarea, raspunsul si raspunsul calculat al sistemului de ordin II la semnal
treapta','fontsize',14);
ylabel('u(t) , y{(t)} , y_c_a_l_c_u_l_a_t(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
legend('u(t)','y(t)','y_c(t)');
%spatiul starilor
A=[0,1; -wn^2 -2*tita*wn];
B=[0;k*wn^2];
C=[1,0];
D=0;
%plotarea intrarii, raspunsului sistemului si raspunsului calculat al sistemului de
ordin II la semnal treapta in spatiul starilor
sys=ss(A,B,C,D);
ys=lsim(sys,u,t,[y(1),0]);
figure
plot(t,[u,y,ys]);
title('Intrarea, raspunsul si raspunsul recalculat, cu spatiul starilor, al
sistemului de ordin II la semnal treapta','fontsize',14);
ylabel('u(t) , y({t)} , y_r_e_c_a_l_c_u_l_a_t(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
legend('u(t)','y(t)','y_s(t)');
%eroarea medie patratica
J1=norm(ys(1:1000)-y(1:1000));
J=J1/sqrt(length(y))

1.3 Desfurarea experimentului B - semnal de tip impuls


Am importat datele din scope_111.csv; acestea se regsesc n figura de mai jos. Este plotat
intrarea, adic semnalul de tip impuls i ieirea, adic rspunsul sistemului de ordin II la semnal de tip
impuls.

Pentru determinarea parametrilor


sistemului de ordin II necesari, avem nevoie de eantionul de lucru. Indecii ntre care se afl acest
eantion sunt: 460 i 700. Datele experimentale, adic timpul (t exp), intrarea (uexp) i ieirea (yexp) au fost
alese n concordan cu eantionul pe care am lucrat:
texp = t(460:700,1);
uexp = u(460:700,1);
yexp = y(460:700,1);
Obs: pe tot parcursul proiectului am folosit doar datele experimentale.

1.3.1 Procesarea datelor experimentale

Pentru calcularea perioadei de oscilaie avem nevoie de minimul i maximul rspunsului,


evideniate n urmtorul grafic. Perioada de oscilaie, n cazul rspunsului la impuls, este de dou ori
diferena n timp dintre primul maxim i primul minim al graficului ieirii sistemului.

T osc=2( t [ 166 ] t [ 89 ] ) =0.0077 sec

Pe acelai eantion alegem punctele de interes n vederea calculrii lui y n regim staionar (yst), y
iniial (y0), u n regim staionar (ust), u iniial (u0) i factorului de proporionalitate (k).

Valorile obinute ale indecilor sunt: 8, 43, 89, 198, 228.


Valorile staionare i cele iniiale se obin din media aritmetic a valorilor dorite pe un anumit
interval ales corespunztor. n acest caz obtinem:
yst=mean(yexp(198:228),1)
= - 2.2399
ust=mean(uexp(198:228),1)
= - 2.3159
y0=mean(yexp(8:43),1)
= - 2.2622
u0=mean(uexp(8:43),1) = - 2.3069
Pe baza acestor valori calculm k (factorul de proporionalitate):
y st
k
=
factorul de proporionalitate
u st = 0.9672
Pentru a determina suprareglajul trebuie s determinm dou arii, o arie pozitiv i una negativ
(A+, A-). Cele dou arii sunt definite de cel puin trei puncte luate de pe grafic. Pentru a fi ct mai precis
n calcule, am ales i aria pozitiv din dreapta celei negative, aria total pozitiv fiind suma celor 2 arii
pozitive.

2.0315 * 10-4

0.0061

suprareglajul

A +=0.0334=3.34
A
=

Dac logaritmm suprareglajul i facem calculele necesare obinem:


ln ( )
=
=0.7345
2
factorul de amortizare
+ln ( )2

Cu ajutorul factorului de amortizare i a perioadei de oscilaie obinem:


2
n=
=1.2024e+003rad /s
pulsaia neamortizat
T osc 1 2
Funcia de transfer a ordinului II este:
1.398 * 106
n cazul nostru fiind ------------------------------s2 + 1766 s + 1.446 * 106
1.3.2 Validarea modelului experimentului B
n figura urmtoare vom avea simulat semnalul pe baza funciei de transfer gsit. u(t) este
semnalul de intrare, y(t) este rspunsul sistemului de ordin II la semnal de tip treapt, iar yc(t) este sistemul
determinat.

Dac lum n considerare condiiile iniiale nenule, sistemul trebuie reprezentat prin spaiul
strilor. Se pornete de la definiia funciei unui sistem de ordin II (Y(s)/U(s)) i forma sa general. Se
nmulesc mezii cu extremii, aplicndu-se Laplace invers pentru a afla ecuaia de stare. Notm x 1=y i
x2=x1= y. Deducem urmtorul sistem:
x1 = x2
x2 = - 2nx1 - 2nx2 + k2ny
Matricile (A, B, C, D) care determin sistemul sunt:

Urmeaz recalcularea sistemului de ordin II, avnd condiiile iniiale nenule cu spaiul strilor i,
n final, plotarea noului sistem.

Se
calculeaz
valoarea erorii
ptratice
ieirea
msurat i
ieirea
calculat:

J=

medie
dintre

1000

1
( y y c )2 J =0.1696=16.96
1000 k=1

Codul surs:
close all;
t=data(:,1);
u=data(:,2);
y=data(:,3);
%plotarea datelor primite (u(t),y(t))

plot(t,[u y]);
title('Semnal de tip impuls si raspunsul sistemului de ordin II la
acesta','fontsize',13);
legend('semnal impuls','raspunsul sistemului');
ylabel('u(t) , y(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
%datele experimentale
texp=t(460:700,1);
uexp=u(460:700,1);
yexp=y(460:700,1);
%esantionul de lucru
figure
plot(texp,[uexp,yexp]);
title('Alegerea unei perioadei','fontsize',14);
ylabel('u(t) , y(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
%calcularea parametrilor Tosc, yst, ust, y0, u0, K
Tosc=2*(texp(166)-texp(89))
yst=mean(yexp(198:228),1)
ust=mean(uexp(198:228),1)
y0=mean(yexp(8:43),1)
u0=mean(uexp(8:43),1)
K=yst/ust
%calcularea ariilor
dt=texp(2)-texp(1);
A1p=sum(yexp(78:136)-uexp(78:136))*dt;
A2p=sum(yexp(172:223)-uexp(172:223))*dt;
An=sum(uexp(136:172)-yexp(136:172))*dt
Ap=A1p+A2p
%calcularea suprareglajului, factorului de amortizare si pulsatiei naturale
sigma=abs(An/Ap)
tita=abs(log(sigma)/sqrt(pi^2 + log(sigma)^2))
wn=2*pi/Tosc/sqrt(1-tita^2)
%plotarea intrarii, raspunsului sistemului si raspunsului calculat al sistemului de ordin
II la semnal impuls
H=tf([K*wn^2],[1 2*tita*wn wn^2])
yc=lsim(H,u,t);
figure
plot(t,[u y yc]);
title('Intrarea, raspunsul si raspunsul calculat al sistemului de ordin II la semnal
impuls','fontsize',14);
ylabel('u(t) , y{(t)} , y_c_a_l_c_u_l_a_t(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
legend('u(t)','y(t)','y_c(t)');
%spatiul starilor
A=[0,1; -wn^2 -2*tita*wn];
B=[0;K*wn^2];
C=[1,0];
D=0;
%plotarea intrarii, raspunsului sistemului si raspunsului calculat al sistemului de ordin
II la semnal impuls in spatiul starilor
sys=ss(A,B,C,D); ys=lsim(sys,u,t,[y(1),0]);
figure
plot(t,[u,y,ys]);
title('Intrarea, raspunsul si raspunsul recalculat, cu spatiul starilor, al sistemului de
ordin II la semnal treapta','fontsize',14);
ylabel('u(t) , y({t)} , y_r_e_c_a_l_c_u_l_a_t(t)','fontsize',14);
xlabel('timp (secunde)','fontsize',14);
legend('u(t)','y(t)','y_s(t)');
%eroarea medie patratica
J1=norm(ys(1:1000)-y(1:1000));
J=J1/sqrt(length(y))

2. Concluzii
n urma realizrii proiectului, am obinut 2 funcii de transfer. Validarea funciei de transfer care se
aproprie cel mai tare de realitate se face prin folosirea ei pe ambele semnale, nu individual.
Erorile medii ptratice sunt:
pentru
prima
funcie de transfer

pe semnal
CI0
J=

de tip treapt cu
0.1246

pentru a doua funcie de transfer pe


J = 0.1422

Erorile medii ptratice sunt:

semnal de tip treapt cu CI0

pentru prima funcie de transfer pe semnal de tip impuls cu CI0


J=

0.1443

pentru a doua funcie de


cu CI0

transfer pe semnal de tip impuls


J=

0.1722

n ambele cazuri, eroarea medie ptratic a primului model obinut n urma


rspunsului la treapt este mai mic, prin urmare el este mai apropiat de cel real.
H t ( s )=

1217106
2
6
s +1446 s +122510

Codul surs:
k1 = 0.9935;
tita1 = 0.6534;
wn1 = 1.1067e+003;
k2 = 0.9672;
tita2 = 0.7345;
wn2 = 1.2024e+003;

t1=data1(:,1);
u1=data1(:,2);
y1=data1(:,3);
t2=data2(:,1);
u2=data2(:,2);

y2=data2(:,3)

%comparatie intre functile de transfer rezultate pentru treapta(conditii initiale


nenule)
figure;
subplot(2,1,1);
A1=[0 1; -wn1^2 -2*tita1*wn1]; B1=[0; wn1^2]; C1=[1 0]; D1=[0];
sys1=ss(A1,B1,C1,D1);
y1c1=lsim(sys1, u1, t1, y1(1:2));
plot(t1,[u1,y1,y1c1]);
ylabel('u_1,y_1,y_1_c_1 [V]','fontsize',14);
xlabel('Timp (secunde)','fontsize',14);
title('Raspunsul la treapta pentru prima functie de transfer','fontsize',14);
J1=norm(y1c1(1:1000)-y1(1:1000));
J=J1/sqrt(length(y1))
subplot(2,1,2);
A2=[0 1; -wn2^2 -2*tita2*wn2]; B2=[0; wn2^2]; C2=[1 0]; D2=[0];
sys2=ss(A2,B2,C2,D2);
y1c2=lsim(sys2, u1, t1, y1(1:2));
plot(t1,[u1,y1,y1c2]);
ylabel('u_1,y_1,y_1_c_2 [V]','fontsize',14);
xlabel('Timp (secunde)','fontsize',14);
title('Raspunsul la treapta pentru a doua functie de transfer','fontsize',14);
J1=norm(y1c2(1:1000)-y1(1:1000));
J=J1/sqrt(length(y1))
%comparatie intre functile de transfer rezultate pentru impuls
%conditii initiale nenule
figure;
subplot(2,1,1);
A1=[0 1; -wn1^2 -2*tita1*wn1]; B1=[0; wn1^2]; C1=[1 0]; D1=[0];
sys1=ss(A1,B1,C1,D1);
y2c1=lsim(sys1, u2, t2, y2(1:2));
plot(t2,[u2,y2,y2c1]);
ylabel('u_2,y_2,y_2_c_1 [V]','fontsize',14);
xlabel('Timp (secunde)','fontsize',14);
title('Raspunsul la impuls pentru prima functie de transfer','fontsize',14);
J1=norm(y2c1(1:1000)-y2(1:1000));
J=J1/sqrt(length(y2))
subplot(2,1,2);
A2=[0 1; -wn2^2 -2*tita2*wn2]; B2=[0; wn2^2]; C2=[1 0]; D2=[0];
sys2=ss(A2,B2,C2,D2);
y2c2=lsim(sys2, u2, t2, y2(1:2));
plot(t2,[u2,y2,y2c2]);
ylabel('u_2,y_2,y_2_c_2 [V]','fontsize',14);
xlabel('Timp (secunde)','fontsize',14);
title('Raspunsul la impuls pentru a doua functie de transfer','fontsize',14);
J1=norm(y2c2(1:1000)-y2(1:1000));
J=J1/sqrt(length(y2))

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