Sunteți pe pagina 1din 8

Universitatea din Craiova

Facultatea de Inginerie Electrică


Specializarea: Echipamente și Instalații de Aviație
Disciplina: Echipamente de Bord și Navgație Aeriană

REFERAT
La lucrarea de laborator Nr. 2
Tema: OPTIMIZAREA UNUI ACCELEROMETRU MAGNETIC CU CONTROL
INTELIGENT

Conf.univ.dr.ing.:
Negrea Petre
Studend:
Cravcenco Victor
Gr. EIA 9403

Craiova, 2020 – 2021


Scopul lucrării: In lucrare este studiata o modalitate de optimizarea a unui accelerometru
cu reactive magnetica si controler fuzzy pentru inchiderea buclei, pornind de la caracteristicile
amplitudine-frecventa ale acestuia trasate cu o metoda software, dezvoltata in Matlab/Simulink.

CHESTIUNI TEORETICE
Este foarte bine cunoscut faptul ca un controler fuzzy logic poate imbunatati in mod
semnificativ regimul tranzitoriu al unui sistem automat atinci cand acesta inlocuieste controlul
clasic. In general, controlerele fuzzy logic orezinta o multime de avantaje in fata tehnicilor de
control clasice, devenind din ce in ce mai utizitate in aplicatiile industriale pentru a modela
sistemele multidimensionale puternic neliniare, inclusiv cele cu parametri variabili, sau in cazul
in care semnalele de la senzori nu au suficienta acuratete pentru alte modele. Pe de alta parte,
tehnica de control bazata pe elaborarea de reguli lingvistice vine in sprijinul implementarii mult
mai usoare a acestor sisteme de control.

Figura 1 – Modelul Matlab/Simulink de optimizare a accelerometrului


Acest nou model de simulare permite trasarea caracteristicii amplitudine-frecventa a
accelerometrului, metoda pe care se bazeaza constand in simularea unui vobuloscop. In acest
sens, schema trebuie sa rezolve doua probleme. In primul rand, la intrarea acesteia trebuie sa fie
generat un semnal cu frecventa crescatoare in timp, iar in al doilea rand schema trebuie sa
realizeze o rectificare a semnalului de iisire din accelerometru astfel sa se poate extrage doar
maximele sale.
La intrarea modelului se genereaza un semnal cosinusoidal cu amplitudinea egala cu 1 si
frecventa crescatoare in timp. Considerand variatia frecventei dupa legea:
𝑓 = 10600𝑡 (1)
Atunci, pulsatia semnalului va fi data de relatia
𝜔 = 2𝜋𝑓 = 2𝜋10600𝑡 (2)
Ecuatia de mai sus conduce astfel la faza semnalului cosinusoidal exprimata prin:
𝑡 2𝜋(10600𝑡 −1)
𝜑(𝑡) = ∫0 𝜔(𝜏)𝑑𝜏 = ∫ 2𝜋 ∙ 10600𝜏 𝑑𝜏 = (3)
600 ln 10
Ceea ce inseamna ca semnalul cu frecventa crescatoare este caracterizat de expresia
2𝜋(10600𝑡 −1)
cos(𝜑(𝑡)) = 𝑐𝑜𝑠 [ ] (4)
600 ln 10
MODUL DE LUCRU
Avand in vedere cei doi pasi in care trebuie rezolvata problema de optimizare, se recurge
la reconfigurarea schemei de simulare numerica a accelerometrului inteligent. Astfel, plecand
de la modelul Matlab/Simulink dezvoltat in lucrarea de laborator anterioara si prezentat in
modelul de mai sus, se implementeaza modelul din figura de mai jos.

Figura 2 – Modelul Matlab/Simulink de optimizare a accelerometrului


Se simulează schema bloc de câteva ori, implementând succesiv valorile 0.5 ms, 1 ms, 2
ms, 3 ms, 4 ms coeficientului KD. După fiecare simulare se rulează codul din anexa 1, obțindu-
se un nou grafic.

Figura 3 - Graficul obținut la ieșirea blocului U_fuzzy la valoarea KD = 0.5 ms


Figura 4 – Graficul obținut la ieșirea blocului U_fuzzy la valoarea KD = 1 ms

Figura 5 - Graficul obținut la ieșirea blocului U_fuzzy la valoarea KD = 2 ms

Figura 6 - Graficul obținut la ieșirea blocului U_fuzzy la valoarea KD = 3 ms


Figura 7 - Graficul obținut la ieșirea blocului U_fuzzy la valoarea KD = 4 ms

Figura 8 – Caracteristicile amplitudine – frecvență a accelerometrului inteligent pentru valorile KD


Figura 9 – Dependența de timp a semnalului cosinusoidal cu frecvență variabilă

Figura 10 - Dependența în de timp a frecvenței semnalului cosinusoidal

Figura 11 – Vectorul y în funcție de timp


Anexa 1:
z=find(y>0);
k=find(z>4000);
for i=1:length(k)
f(i)=10^(600*t(z(k(i))));
x(i)=y(z(k(i)));
end
hold on;
plot(f,x,'r');
Anexa 2:
load Lab2Fis;
KDmin=0.0005;KDmax=0.004;dt=1;
set_param('schbloc','Solver','Euler')
set_param('schbloc','StartTime','0.0')
set_param('schbloc','StopTime','0.01')
set_param('schbloc','MinStep','0.00000001')
set_param('schbloc','MaxStep','0.00000001')
while dt>10^(-14)
KD=(KDmin+KDmax)/2
[t]=sim('schbloc',0.01);
z=find(y>0);
k=find(z>4000);
r=0;
for i=1:length(k),
f(i)=2*10^(600*t(z(k(i))));
x(i)=y(z(k(i)));
if i>2
if x(i)>x(i-1)
r=1;
end
end
end
if r==0
KDmin=KD;
else
KDmax=KD;
end
dt=(KDmax-KDmin)
end