16
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

Dvopoložajna regulacija temperature

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

Page 1: Dvopoložajna regulacija temperature

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

Page 2: Dvopoložajna regulacija temperature

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

Page 3: Dvopoložajna regulacija temperature

𝑥 𝑡 -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)

Page 4: Dvopoložajna regulacija temperature

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:

𝑇 = 𝑇𝑢𝑘𝑙𝑗 + 𝑇𝑖𝑠𝑘𝑙𝑗

Page 5: Dvopoložajna regulacija temperature

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

Page 6: Dvopoložajna regulacija temperature

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:

Page 7: Dvopoložajna regulacija temperature

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

Page 8: Dvopoložajna regulacija temperature

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)

Page 9: Dvopoložajna regulacija temperature

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)

Page 10: Dvopoložajna regulacija temperature

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:

Page 11: Dvopoložajna regulacija temperature

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

Page 12: Dvopoložajna regulacija temperature

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

Page 13: Dvopoložajna regulacija temperature

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

Page 14: Dvopoložajna regulacija temperature

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:

Page 15: Dvopoložajna regulacija temperature

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 .

Page 16: Dvopoložajna regulacija temperature

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.