Upload
jasmina-zubaca
View
180
Download
21
Embed Size (px)
DESCRIPTION
Projekat se odnosi na dvopolozajnu regulaciju temperature unutar komore. Regulacija se vrsila preko PLC-a u zavisnosti od zadane temperature. Rad obuhvata snjimanje karakteristike NTC otpornila, snimanje staticke karakteristike termickog sistema, linearizacije obje karakteristike i način regulacije posmatrasnog sistema
Citation preview
Univerzitet u Sarajevu
Elektrotehnički fakultet u Sarajevu
Odsjek za Automatiku i elektroniku
Praktikum automatike i informatike
Izvještaj za laboratorijsku vježbu broj 6
Tema: Dvopoložajni regulator
Sadržaj: Realizacija dvopoložajnog regulatora na PLC
Asistent: Mr. Sokid Emir, dipl. ing. El.
Članovi tima:
1. Sprečo Dino
2. Zubača Jasmina
Sarajevo, 30.04.2013 godine
Uvod
Dvopoložajna regulacija predstavlja najjednostavniju vrstu regulacije koja se u praksi često koristi.
Naš zadatak je bio upravljanje temperaturom unutar jednog termičkog sistema koji se sastojao od
grijača ( u našem slučaju sijalice) koji se nalazi u staklenoj komori, zatim ventilatora i jednog NTC
otpornika. Temperaturu unutar komore smo morali održavati na 37 sa dozvoljenom histerezom
od ±1 . U našem slučaju sijalica je bila stalno uključena, dok se ventilator u zavisnosti od vrijednosti
temperature uključivao odnosno isključivao. Kada bi temperatura prešla preko 38 ventilator se
trebao upaliti, a kada bi spala ispod 36 ventilator se trebao ugasiti.
Za realizaciju dvopoložajne regulacije koristili smo PLC - Programabilni logički kontroler
(Programmable Logic Controller ).
Primjena dvopoložajnog regulatora na statičkom objektu prvog reda
Prethodno je opisan zadatak koji je potrebno uraditi. Sada je potrebno izvesti formule koje se odnose na vremenske konstante grijanja i hlađenja datog objekta. Vrijednost temperature unutar termičkog sistema se mjeri senzorom na bazi NTC otpornika. Na početku sistem se nalazi na sobnoj temperaturi. Kada je ventilator isključen, sistem de se početi zagrijavati prema maksimalnoj vrijednosti temperature 𝑇𝑚𝑎𝑥 . Kada se ventilator uključi, sistem de se početi hladiti prema minimalnoj temperaturi 𝑇𝑚𝑖𝑛 . Ovaj sistem se ponaša kao sistem prvog reda sa čistim transportnim kašnjenjem. Njegova prenosna funkcija je oblika:
𝑮 𝒔 =𝑲
𝑻𝒔 + 𝟏∙ 𝒆𝝉𝒔
K- koeficijent pojačanja T- inerciona vremenska konstanta τ- vrijeme čistog transportnog kašnjenja Vremenske konstante hlađenja i zagrijavanja su različite. Možemo zanemariti vrijeme čistog transportnog kašnjenja jer je suviše malo u odnosu na inercione vremenske konstante. Dinamičko ponašanje sistema se može opisati slijededomdiferencijalnom jednačinom:
𝑇𝑑𝑥 𝑡
𝑑𝑡+ 𝑥 𝑡 = 𝐾 ∙ 𝑢(𝑡)
Pošto je u(t)=1(t), dakle jedinična odskočna funkcija, imamo da je:
𝑇𝑑𝑥 𝑡
𝑑𝑡+ 𝑥 𝑡 = 𝐾, 𝑧𝑎 𝑡 ≥ 0
𝑥 𝑡 -odziv sistema na zadanu pobudu (u našem slučaju temperatura) T-inerciona vremenska konstanta grijanja K-koeficijent pojačanja
Ukupno rješenje ove diferencijalne jednačine dobijemo kao suma partikularnog i homogenog rješenja. Partikularno rješenje ove diferencijalne jednačine je 𝑥𝑝 𝑡 = 𝐾.
Homogeno rješenje nalazimo formiranjem karakteristične jednačine:
𝑇𝑑𝑥 𝑡
𝑑𝑡+ 𝑥 𝑡 = 0 (1)
Pretpostavimo da je:
𝑥 𝑡 = 𝐶 ∙ 𝑒𝑝𝑡
Uvrštavanjem u izraz (1) i sređivanjem dobijamo:
𝑇 ∙ 𝑝 + 1 = 0 𝑝 = −1
𝑇
Dakle, homogeno rješenje je:
𝑥 𝑡 = 𝐶 ∙ 𝑒−𝑡𝑇
Ukupno rješenje diferencijalne jednačine je:
𝑥 𝑡 = 𝑥 𝑡 + 𝑥𝑝 𝑡 = 𝐶 ∙ 𝑒−𝑡𝑇 + 𝐾
Da bi izračunali konstantu C potrebno je odrediti početne uslove. U našem slučaju neka je 𝑥 0 =𝐾𝑝𝑜č𝑒𝑡𝑛𝑜 . U dobijeno rješenje uvrstimo t=0 i izračunamo konstantu C:
𝑥 0 = 𝐾𝑝𝑜č𝑒𝑡𝑛𝑜 = 𝐶 + 𝐾
𝐶 = 𝐾𝑝𝑜č𝑒𝑡𝑛𝑜 − 𝐾
Konačno,
𝒙 𝒕 = 𝑲𝒑𝒐č𝒆𝒕𝒏𝒐 − 𝑲 ∙ 𝒆−𝒕𝑻 + 𝑲, 𝒛𝒂 𝒕 ≥ 𝟎
Za slučaj grijanja: 𝑇1-inerciona vremenska konstanta grijanja 𝐾1- novo stacionarno stanje 𝑥 0 = 𝐾𝑝𝑜č𝑒𝑡𝑛𝑜 -početni uslov
Diferencijalna jednačina je:
𝑥 𝑡 = 𝐾𝑝𝑜č𝑒𝑡𝑛𝑜 − 𝐾1 ∙ 𝑒−
𝑡
𝑇1 + 𝐾1, 𝑧𝑎 𝑡 ≥ 0 (2)
Za slučaj hlađenja: 𝑇2-inerciona vremenska konstanta hlađenja 𝐾2- novo stacionarno stanje 𝐾1- staro stacionarno stanje
𝑥 𝑡 = 𝐾1 − 𝐾2 ∙ 𝑒−
𝑡
𝑇2 + 𝐾2, 𝑧𝑎 𝑡 ≥ 0 (3)
Računanje vrijednosti vremena uključenog i isključenog grijača za zadane vrijednosti temperature i histereze Neka su poznate vrijednosti zadane temperature i histereze. Tada imamo:
𝑇𝑚𝑎𝑥 = 𝑇𝑧𝑎𝑑 + 𝑇
𝑇𝑚𝑖𝑛 = 𝑇𝑧𝑎𝑑 − 𝑇
Koristedi prethodno dobijenu diferencijalnu jednačinu (2) možemo izračunati vrijeme isključenog ventilatora:
𝑇𝑚𝑎𝑥 = 𝑥 𝑇𝑖𝑠𝑘𝑙𝑗 = 𝑇𝑚𝑖𝑛 − 𝐾1 ∙ 𝑒−𝑇𝑖𝑠𝑘𝑙𝑗
𝑇1 + 𝐾1
𝑇𝑖𝑠𝑘𝑙𝑗 = 𝑇1 ∙ 𝑙𝑛𝑇𝑚𝑖𝑛 − 𝐾1
𝑇𝑚𝑎𝑥 − 𝐾1= 𝑇1 ∙ 𝑙𝑛
𝑇𝑧𝑎𝑑 − 𝑇 − 𝐾1
𝑇𝑧𝑎𝑑 + 𝑇 − 𝐾1
Ako nam je potrebna vrijednost 𝑇𝑖𝑠𝑘𝑙𝑗 1:
𝑇𝑚𝑎𝑥 = 𝑥 𝑇𝑖𝑠𝑘𝑙𝑗 1 = 𝑇𝑝𝑜č𝑒𝑡𝑛𝑜 − 𝐾1 ∙ 𝑒−𝑇𝑖𝑠𝑘𝑙𝑗 1
𝑇1 + 𝐾1
𝑇𝑖𝑠𝑘𝑙𝑗 1 = 𝑇1 ∙ 𝑙𝑛𝑇𝑝𝑜č𝑒𝑡𝑛𝑜 − 𝐾1
𝑇𝑚𝑎𝑥 − 𝐾1
Koristedi prethodno dobijenu diferencijalnu jednačinu (3) možemo izračunati vrijeme uključenog ventilatora:
𝑇𝑚𝑖𝑛 = 𝑥 𝑇𝑢𝑘𝑙𝑗 = 𝑇𝑚𝑎𝑥 − 𝐾2 ∙ 𝑒−𝑇𝑢𝑘𝑙𝑗
𝑇2 + 𝐾2
𝑇𝑢𝑘𝑙𝑗 = 𝑇2 ∙ 𝑙𝑛𝑇𝑚𝑎𝑥 − 𝐾2
𝑇𝑚𝑖𝑛 − 𝐾2= 𝑇2 ∙ 𝑙𝑛
𝑇𝑧𝑎𝑑 + 𝑇 − 𝐾2
𝑇𝑧𝑎𝑑 − 𝑇 − 𝐾2
Amplituda kvazistacionarnog stanja iznosi:
𝑇 = 𝑇𝑢𝑘𝑙𝑗 + 𝑇𝑖𝑠𝑘𝑙𝑗
Snimanje statičke karakteristike NTC-a
Prvo smo snimali zagrijavanje datog termičkog sistema. U tabeli ispod date su vrijednosti
temperature i otpornosti NTC otpornika. Pomodu ovih vrijednosti odredili smo zavisnost otpornosti
od temperature.
Temperatura Otpornost 𝑅𝑁𝑇𝐶 𝑘Ω
22 6.02
23 5.77
24 5.54
25 5.4
26 4.84
27 4.46
28 4.18
29 3.87
30 3.61
31 3.41
32 3.21
33 3.08
34 2.87
35 2.77
36 2.67
37 2.55
38 2.47
39 2.364
40 2.262
41 2.188
42 2.1
43 2.034
Karakteristika 𝑅𝑁𝑇𝐶 = 𝑓 𝑇 data je na slijededoj slici:
Koristedi Curve Fitting tool iz MATLAB-a možemo aproksimirati ovu realnu karakteristiku sa
određenim polinomom koji bude zadovoljavao naše zahtijeve.
Mi smo izvršili aproksimaciju polinomom tredeg stepena, a zavisnost otpornosti od temperature data
je izrazom:
𝑹𝑵𝑻𝑪 = −𝟎,𝟎𝟏𝟔𝟒𝟑 ∙ 𝑻𝟑 + 𝟗, 𝟖𝟎𝟑 ∙ 𝑻𝟐 − 𝟕𝟕𝟑,𝟏 ∙ 𝑻 + 𝟏, 𝟖𝟓𝟐 ∙ 𝟏𝟎𝟒
Tačnost iznosi 0.9923 (dakle vrlo dobro aproksimirano).
Aproksimacija sa polinomom tredeg stepena data je na slici ispod:
Sada je potrebno nadi zavisnost 𝑇 = 𝑓 𝑅𝑁𝑇𝐶 . Zavisnost temperature od otpornosti data je izrazom
:
𝑻 = −𝟒,𝟕𝟕𝟗 ∙ 𝟏𝟎−𝟏𝟎 ∙ 𝑹𝑵𝑻𝑪𝟑 + 𝟔, 𝟕𝟖𝟏 ∙ 𝟏𝟎−𝟔 ∙ 𝑹𝑵𝑻𝑪
𝟐 − 𝟎, 𝟎𝟑𝟒𝟕𝟔 ∙ 𝑹𝑵𝑻𝑪 + 𝟖𝟗, 𝟓𝟒
Tačnost iznosi 0.9978 (vrlo dobra aproksimacija).
Snimanje odziva termičkog sistema
Da bi snimili zagrijavanje i hlađenje termičkog sistema spojili smo slijededu shemu:
Shema spajanja
Korištena oprema:
Izvor napajanja
Modul ME-RedLab 1208FS
Termički sistem
Otpornik 1.5 kOhm
Matador
Spojni vodovi
Računar
Pomodni alat
Odziv sistema smo radili pomodu ME-ReLab 1208FS akvizicione kartice i GUI – a napravljenog u
MATLAB-u. Kod izgleda ovako:
AI = analoginput('mcc'); addchannel(AI,0); set(AI,'SampleRate',5); set(AI,'SamplesPerTrigger',20*60*5); start(AI); [data,t]=getdata(AI);
Dobili smo slijededi odziv:
Karakteristiku T(t) dobiti demo na osnovu sljededih relacija:
𝑅𝑁𝑇𝐶 = 𝑅 ∙𝑈𝑁𝑇𝐶
𝑈 − 𝑈𝑁𝑇𝐶
Gdje je: 𝑅 = 1500Ω, 𝑈 = 12𝑉.
0 200 400 600 800 1000 12005.5
6
6.5
7
7.5
8
8.5
Vrijeme [s]
Napon [
V]
Karakteristika U=f(t)
Temperaturu na osnovu izračunatog otpora dobijamo iz relacije:
𝑇 = −4,779 ∙ 10−10 ∙ 𝑅𝑁𝑇𝐶3 + 6,781 ∙ 10−6 ∙ 𝑅𝑁𝑇𝐶
2 − 0,03476 ∙ 𝑅𝑁𝑇𝐶 + 89,54
Ova relacija je rezultat aproksimacije karakteristike date u prethodnom poglavlju, korištenjem Curve
FittingTtool-a.
Iz prethodne karakteristike našli smo vremenske konstante zagrijavanja i hlađenja datog sistema.
Vremenska konstanta zagrijavanja dobije se kao vrijeme koje protekne od trenutka djelovanja
poremedaja na sistem do trenutka kada odziv dostigne 63,3 % svoje stacionarne vrijednosti. U našem
slučaju zagrijavanje počine sa temperature 27 pa do temperature 48,3 .
Da bi došli do vremenske konstante zagrijavanja potrebno je izračunati temperaturu koja je jednaka
63% novog stacinarnog stanja (u našem slučaju 48,3 °C). Kada je izračunamo, toj tački odgovara
određeno vrijeme na x osi koje predstavlja traženo τZ .
𝑇𝑍 = 0,63 ∙ 48,3 − 27 + 27 = 40,42 °C
Na osnovu podataka dobijenih akvizicijom, očitamo vrijeme koje odgovara ovoj temperaturi. Ona
iznosi: τZ = 178,3 s.
Vremenska konstanta hlađenja se računa na slijededi način:
𝑇𝐻 = 0,63 ∙ 33 − 48,3 + 48,3 = 38,66 °C
Na osnovu podataka dobijenih akvizicijom, očitamo vrijeme koje odgovara ovoj temperaturi. Ona
iznosi: τH = 29,2 s.
0 200 400 600 800 1000 120025
30
35
40
45
50
Vrijeme [s]
Tem
pera
tura
[°C
]
Karakteristika T=f(t)
Blokovska struktura sa negativnom povratnom spregom:
Modeliranje sistema upravljanja i simulacija ponašanja
Ovaj sistem predstavlja sistem prvog reda (aperiodski blok prvog reda). Sistemi prvog reda opisani su
linearnim diferencijalnim jednačinama prvog reda. U ovom slučaju kako su vremenske konstante
zagrijavanja i hlađenja različite imamo dvije diferencijalne jednačine koje opisuju dati sistem.
Opšti oblik diferencijalne jednačine je:
𝜏 ∙𝑑𝑥
𝑑𝑡+ 𝑥 𝑡 = 𝐾 ∙ 𝑢(𝑡)
Na osnovu diferencijalnih jednačina zagrijavanja i hlađenja koje smo izveli u poglavlju 2 možemo
napraviti model ovog termičkog sistema i na osnovu njega izvršiti simulaciju. Simulink model dat je na
slijededoj slici:
Odziv je dat na slijededoj slici:
Parametri ovog modela su :
𝑇𝑧 = 178.4 𝑠, 𝑇𝐻 = 29.2 𝑠, 𝐾𝑔 = 48.3 °𝐶, 𝐾𝑑 = 33 °𝐶, 𝑇𝑝𝑜č = 27 °𝐶, 𝑇𝑧𝑎𝑑 = 37 °𝐶, 𝑇 = 1 °𝐶
Realizacija dvopoložajnog regulatora na PLC-u
Shema spajanja prikazana je na slijededoj slici:
0 100 200 300 400 50026
28
30
32
34
36
38
40
Vrijeme [s]
Tem
pera
tura
[°C
]
Regulacija temperature-model
Korištena oprema:
Izvor napajanja
Termički sistem
Modul ME-RedLab 1208FS
Otpornik 1.5 kOhm
Spojni vodovi
Matador
Računar
Pomodni alat
Koristedi alat EASY-SOFT V6.20 Basic razvili smo regulator a potom prebacili program na PLC (nakon
testiranja, odnosno simulacije). Kako bi mogli upravljati preko PLC-a potrebno je prilagoditi
vrijednosti naponskih niova određenim vrijednostima izraženim u bitima. Dobili smo slijedede
vrijednosti:
Ventilator ON: 6.7155 𝑉 ~ 731.7 𝑏𝑖𝑡𝑎
Ventilator OFF: 7.145 𝑉 ~ 687.66 𝑏𝑖𝑡𝑎
Ukoliko temperatura pređe 38 °C (što odgovara naponu od 6.7155 V) ventilator se uključuje, a kada
temperatura padne ispod 36 °C (što odgovara naponu od 7.145 V) ventilator se isključuje.
Program izgleda ovako:
Program za PLC
Snimanje ponašanja stvarnog sistema sa dvopoložajnim regulatorom
Snimanje ponašanja stvarnog sistema sa dvopoložajnim regulatorom smo izvršili ponovno koristedi
ME-ReLab 1208FS akvizicionu karticu i GUI-a realizovanog u MATLAB-u. Kod kao i izgled GUI-a dati su
na sljededim slikama:
function startstop_Callback(hObject, eventdata, handles)
%Početak Callback funkcije za toggle button
set(handles.startstop, 'String','START');
X=[]; %Prazna matrica čuvanje podataka sa akvizicone i=0; %Brojač koji mjeri vrijeme da poslije pomjera %graf bez gubljenja razmjere
xmin=0; %Granice grafa xmax=100; ymin=20; ymax=50;
Rr=1500; %Parametri akvizicije U=11.3; p1=-4.779*10^-10; p2=6.781*10^-6; p3=-0.03476; p4=89.54;
while (get(hObject,'Value')) drawnow; set(handles.startstop, 'String','STOP'); AI=analoginput('mcc'); %Parametri za akvizicionu karticu addchannel(AI,0); set(AI,'SampleRate',5); set(AI,'SamplesPerTrigger',5);
start(AI); %Pokretanje akvizicije [data, t]=getdata(AI); %Uzimanje akviziranih podataka
t=t+i; i=i+1;
Umj=data; V=mean(Umj); %Uzimanje srednje vrijednosti napona u sekundi set(handles.napon,'String',num2str(V));
%Izrazi za računanje temperature Rntc=(Rr.*Umj)./(U-Umj); Trntc=p1*(Rntc.^3) + p2*(Rntc.^2) + p3*Rntc + p4;
T=mean(Trntc); %Srednja vrijednost temperature u sekundi set(handles.temperatura, 'String', num2str(T));
Y=[t Trntc]; %Spašavanje podataka
X=[X; Y]; set(handles.datalog,'Data',X);
%Prikaz podataka na grafu if (i>99) xmin=xmin+1; xmax=xmax+1; end
axes(handles.axes1); plot(X(:,1),X(:,2)); grid on; xlabel('Vrijeme [s]'); ylabel('Temperatura [°C]'); axis([xmin xmax ymin ymax]); delete(AI); drawnow; end
Izgled GUI-a
Nakon izvršene akvizicije, odziv izgleda kao na slici:
Vremena uključenog i isključenog ventilatora dobijemo iz izvedenih (analitičkih) izraza i koristedi
vremenske konstante grijanja i hlađenja.
Vrijeme uključenog ventilatora:
𝑇𝑢𝑘𝑙𝑗 = 𝜏𝐻 ∙ 𝑙𝑛𝑇𝑧𝑎𝑑 + 𝑇 − 𝐾2
𝑇𝑧𝑎𝑑 − 𝑇 − 𝐾2= 29.2 ∙ 𝑙𝑛
37 + 1 − 33
37 − 1 − 33= 14.9 𝑠
Vrijeme isključenog ventilatora:
𝑇𝑖𝑠𝑘𝑙𝑗 = 𝜏𝑍 ∙ 𝑙𝑛𝑇𝑧𝑎𝑑 − 𝑇 − 𝐾1
𝑇𝑧𝑎𝑑 + 𝑇 − 𝐾1= 178.3 ∙ 𝑙𝑛
37 − 1 − 48.3
37 + 1 − 48.3= 31.64 𝑠
Vrijeme koje protekne od početka zagrijavanja komore (dok je ventilator isključen) iznosi 129.54 s.
Kod realnog odziva štopericom smo mjerili vremena uključenog i isključenog ventilatora. Dobili smo
da je:
𝑇𝑢𝑘𝑙𝑗𝑟𝑒𝑎𝑙 = 7.13 𝑠, 𝑇𝑖𝑠𝑘𝑙𝑗𝑟𝑒𝑎𝑙 = 14.20 s
Kao što vidimo proračunata vremena i vremena realnog odziva se razlikuju. Razlog može biti
promjena napona napajanja, tolerancija korištenog otpornika kao i drugačije konfiguracije termičkog
sistema u smislu da je NTC otpornik drugog puta bio drugačije postavljen u odnosu na grijač
(odnosno sijalicu).
Na slici ispod dati su grafici odziva simuliranog i realnog modela .
Zaključak
Kao što vidimo karakteristike se ne poklapaju baš najbolje. Postoji mogudnost da je napon napajanja
koji smo koristili kod snimanja odziva termičkog sistema kako bi odredili potrebne vremenske
konstante bio vedi ili manji od 12 V (nismo provjerili voltmetrom koja je tačno vrijednost bila). Kako
se taj napon koristi za proračun ostalih parametara u nizu (kod izraza koji povezuju napon i otpor
NTC-a, napon i temperaturu i sl.) javile su se greške koje su dovele do ovakvog stanja. Za regulaciju
preko PLC-a smo također mijenjali napon napajanja (uzeli smo 11.3 V), da bi mogli regulisati oko
zadane temperature od 37°C. Također udaljenost NTC-a od sijalice kao grijača je bila drugačija
(mogude da je neko koristio naš termički sistem te je promijenio položaj NTC-a i lijepio ga).
Vježba je uspješno realizirana i svi ciljevi koji su bili postavljeni su ispunjeni. Rezultati bi mogli biti
bolji da smo imali više vremena na raspolaganju, jer je nemogude uraditi sve ispravno u tako kratkom
vremenskom periodu.