7/25/2019 Digital i Spid
1/56
A digitlis PID
szablyozttekintelads az rsos segdanyaghoz
Szcs Zoltn | [email protected] | www.eet.bme.hu/~szucs
7/25/2019 Digital i Spid
2/56
Mi a szablyoz?
Amikor olyan alkalmazst fejlesztnk, melyben egyrendszer kimenett a bemenetre adott referenciajel szerint szeretnnk szablyozni, szablyozra s
szablyozalgoritmusra van szksgnk.
Ilyen alkalmazs lehet pl.: motorszablyozs,
hmrsklet, nyoms, ramlsi sebessg,sebessg, ervagy egyb vltoz szablyozsa.
7/25/2019 Digital i Spid
3/56
A PID szablyoz
PID szablyozt minden olyan mennyisgszablyozsra kszthetnk, amely mrhets melynek rtkt a rendszer valamelybemeneti mennyisgvel befolysolni lehet.
A PID az a szablyoztpus, amely egyszersge s j teljestkpessge miatt mintegy ipari szabvnyknt a legjobban
elterjedt.
7/25/2019 Digital i Spid
4/56
A PID szablyoz felptse
Zrt szablyozsi sma PID szablyozval:
y szablyozott jellemz
y0 alapjel vagy referenciajel
e hibajel
u vezrljel
7/25/2019 Digital i Spid
5/56
Digitlis PID szablyozsi sma
A digitlis szablyozt s a szablyoz algoritmust egy mikrokontroller, illetve
az azon fut program realizlja!
Vizsgljuk meg, hogy milyen algoritmus szerint hatrozzk meg a PIDszablyoz egyes tagjai az ubeavatkoz jelet a hibajel fggvnyben.
7/25/2019 Digital i Spid
6/56
Az arnyos tag (P)
Az arnyos, vagy P-tag (P = proportional =arnyos) a mindenkori hibajellel (e) arnyosvezrljelet (u) szolgltat.
tviteli fggvnye:
Diszkrt idben:
PKse
u
sH == )()(
)()( neKnu P=
7/25/2019 Digital i Spid
7/56
Az arnyos tag ugrsvlasza
A szablyozott jel bizonyos nagysg hibval ri el azllandsult llapotot.
Ez az llandsult hiba
az arnyos tag ers-tsnek nvelsvelcskkenthetelvilegtetszleges mrtkben,de a valsgban a tlnagy Kp-jP-taginstabil rendszert
eredmnyezhet. Krds: Mirt nem ri el a szablyozott jel
rtke a referenciajelet?
7/25/2019 Digital i Spid
8/56
Az arnyos tag ugrsvlasza
Vlasz: A referencia jel s a kimenjelllandsult llapotbeli klnbsge (a hiba) mrolyan kicsi, hogy az ltala okozott beavatkoz
jel nagysga nem elg a hiba eltntetshez,hanem csak a rendszer vesztesgeit fedezi.
Olyan jrulkos tag bevezetsre lenneszksg, amiben a nagyon kis hibajel az id
folyamn mintegy felhalmozdik s ily mdonvlik detektlhatv.
7/25/2019 Digital i Spid
9/56
Az integrl tag
Az integrl tag olyan jrulkos vezrljeletszolgltat, amely a hibk elzidbelisszegtl (pontosabban integrljtl) fgg.
Ez a tag veszi figyelembe a kimenjel
trtnett!
Krds: Hogyan t
nteti el az llandsult hibt?
7/25/2019 Digital i Spid
10/56
Az integrl tag
Vlasz: A kis hibk integrlja mindaddig nulltlklnbzrtket ad eredmnyl, amg azllandsult hiba rtke zrus nem lesz. Csakebben az egy esetben nem vltozik mr tovbba hibaintegrl.
tviteli fggvnye:
sTs
eusH
i== 1)()(
7/25/2019 Digital i Spid
11/56
Az integrl tag
Diszkrt idben: az integrls sszegzst jelent (nem
tlagolst!) Ezzel kzeltjk az integrlst mikrokontroller
alkalmazsa esetn:
=
n
k
t
keTde00
)()(
7/25/2019 Digital i Spid
12/56
Az integrl tag
Az integrl tag hozzjrulsa a P-tag vezrljelhez teht:
ahol Kiaz integrl tag egytthatjaez,mint konstans paramter szerepel majd a
mikrokontroller programjban.
=
=n
k
i keKnu0
)()(
7/25/2019 Digital i Spid
13/56
Az I s a PI-tag ugrsvlasza
Krds: Mire kell vigyzni ha egy processzorralsok rtket sszegznk?
7/25/2019 Digital i Spid
14/56
Az I s a PI-tag ugrsvlasza
Vlasz: TLCSORDULS!
Kvetkezmny: az integrltag vltozjnak rtktlimitlni kell!
Fontos: az rtk nagy negatvszm is lehet!
Vagyis: az abszolt rtktkell korltozni!
7/25/2019 Digital i Spid
15/56
A derivl tag
A derivl tag jrulkos vezrljelet szolgltat ahibajel vltozsi sebessgtl fggen.
A hibajelben bekvetkez
gyors vltozsnagymrtkben megnveli a vezrljelet gy aD-tag az alapjelben, vagy a rendszer
llapotban bekvetkezgyors vltozsokesetn javtja a kvetsi tulajdonsgokat.
A D-tagot tipikusan a P s a PI-tagokkal egytt
hasznljuk PD vagy PID szablyozknt.
7/25/2019 Digital i Spid
16/56
A derivl tag ugrsvlasza
A D-tag a hibajel magasabb frekvencijkomponenseire rzkeny; ennek
kvetkezmnye az, hogy knnyen instabilitstvisz a rendszerbe, rzkenny tve azt azajokra, zavar jelekre is!
7/25/2019 Digital i Spid
17/56
A derivl tag
A D-tag viselkedst idtartomnyban skomplex frekvenciatartomnyban a kvetkezkt kplet rja le:
dt
tdeTtu d
)()( =
sTse
u
sH d == )()(
7/25/2019 Digital i Spid
18/56
A derivl tag
Mivel egzakt derivlst megvalstanimikrokontrollerrel nem tudunk, ezrt akvetkezkzeltst vezetjk be:
ahol e(n) az n-edik, e(n-1) pedig az n-1-ediktembeli hiba, s T pedig az tem hossza,vagyis a kt mintavtelezs kztt eltelt id.
T
nene
dt
tde )1()()(
7/25/2019 Digital i Spid
19/56
A derivl tag
A hibajel derivltjt teht egyszeren a hibaelztembeli megvltozsval helyettestettk.
Ez annl jobban kzelti a valdi derivltat,minl kisebb a diszkrt idlptk, azaz minlnagyobb frekvencij a mintavtelezs.
fclk=?
7/25/2019 Digital i Spid
20/56
A derivl tag
A mikrokontrollerbe berand kplet a D-tagesetben:
))1()(()( = neneKnu d
7/25/2019 Digital i Spid
21/56
A digitlis PID szablyoz
Az elzhrom tag lersa alapjn nagyonknnyen fel lehet rni a PID szablyoz digitlismegvalstshoz szksges kpletet:
Ezt az sszefggst problma nlkl
be lehet programozni egy mikrokontrollerbe.
))1()(()()()(
0
++= =
neneKkeKneKnu d
n
k
ip
7/25/2019 Digital i Spid
22/56
A folytonos idej P, PI s PID szablyozk
7/25/2019 Digital i Spid
23/56
Plda PID szablyoz alkalmazsra
A kvetkezkben egy valdi pldnprbljuk meg rzkeltetni a PIDszablyoz mkdst.
Egy egyszerstett modell alapjnlerjuk a rendszernket, majd ezt alerst hasznlva szmtgp
segtsgvel szimulljuk aszablyozott rendszer mkdst.
Vgl kiprbljuk a megptett
modellt.
7/25/2019 Digital i Spid
24/56
A szablyozott rendszer modellezse
Egy zrt tartlyban lvm tmegvzhmrsklett szeretnnk szablyozni.
A tartly fala h
szigetelt s a szigetelstkletlensge miatt hvesztesg keletkezik.
Az egyszersg kedvrt csupn egy Rth
termikus ellenllst vesznk figyelembe sminden ms vesztesget okoz hatstelhanyagolunk.
7/25/2019 Digital i Spid
25/56
A beavatkozszerv s a mrramkr modellje
A vizet egy Pmax teljestmnyftszllalmelegtjk s termoelemes mrramkrrelmrjk a hmrskletet.
Ahhoz, hogy ne kelljen holtidvel szmolnunk,tegyk fel, hogy a vizet a tartlyban
folyamatosan keringetjk s ily mdon a ftsbekapcsolsakor a mrramkr azonnalszleli a vz melegedst.
7/25/2019 Digital i Spid
26/56
A rendszerler egyenletek
A cfajhjs mtmeganyaghmrskletnek Tfokkal trtnmegvltoztatshoz szksges
h
mennyisg (energia, J)
Adott Rthtermikus ellenllson idegysgalatt traml energia(teljestmny, J/s) amelegebb pont (TH) fell a hidegebb pont(TC) fel.
(Ez az Ohm-trvny termikus megfelelje.)
TmcQ =
th
CH
R
TTP
=
7/25/2019 Digital i Spid
27/56
A rendszerler egyenletek
Az elssszefggstt-vel elosztva (ez leszmajd a diszkrt idlptk) ott is teljestmnyre
jutunk:
t
TmcP
t
Q
==
7/25/2019 Digital i Spid
28/56
7/25/2019 Digital i Spid
29/56
A rendszerler egyenlet
ahol t lesz a kt mintavtelezs kztt eltelt id, c afajlagos hkapacits, m a tmeg, T a t idalattbekvetkezhmrskletvltozs, Taktaz aktulis hmrsklet,T
aa krnyezeti hmrsklet, R
thpedig a mr emltett termikus
ellenlls.
Ahhoz, hogy a rendszer mkdst szmtgppel szimullni
tudjuk, szksg lenne az Rth termikus ellenlls ismeretre.
th
aakt
futoR
TT
t
TmcP +
=
K l t R
7/25/2019 Digital i Spid
30/56
Ksrlet Rth mrsre
Tegynk egy bgrbe2 dl vizet (m=0.2 kg) smikrohullm stben
melegtsk fel legalbb55C-ra. Melegtsutn alaposan keverjk
meg s tegynk bele egypontos hmrt
K l t R
7/25/2019 Digital i Spid
31/56
Ksrlet Rth mrsre
Figyeljk a magrahagyott rendszer idbeliviselkedst:
Exponencilis hlsi grbre szmtunk,melynek egyenlete kt pontjnak ismeretben
knnyen felrhat.
E d
7/25/2019 Digital i Spid
32/56
Eredmny
2 dl vz hlse (Ta=26.5 C mellett)
39,00
41,00
43,00
45,00
47,00
49,00
51,00
53,00
0 500 1000 1500
t [s]
T
[C]
E d
7/25/2019 Digital i Spid
33/56
Eredmny
A vz hmrsklete t1=78 s-nl rte el aT(t1)=50C-ot s t2=1511 s-nl aT(t2)=40C-ot.
A krnyezeti hmrsklet kzben Ta=26.5Cvolt.
t = t2 t1 idismeretben mr ki lehetszmolni Rth rtkt a kvetkez
gondolatmenettel:
1
7/25/2019 Digital i Spid
34/56
1.
Ez a fv. rja le a hlsgrbjt. A grbe ktpontja ismeretben
szeretnnkmeghatrozni azidllandt.
t
aa eTTTtT
+= )()( 0
rjuk fel azsszefggst a grbekt klnbzpontjra
s fejezzk kimindkettbl az
exponencilis tnyezt:
1
)()( 01t
aa eTTTtT
+=
2
)()( 02
t
aa eTTTtT
+=
2
7/25/2019 Digital i Spid
35/56
2.
Elosztottuk az elsegyenletet a msodikkal.
Lthatjuk, hogy az ismeretlen T0ezzel ki is esett.Most vegyk mindkt oldaltermszetes
logaritmust (s cserljk meg az oldalakat)!
21
)(
)(
2
1
tt
a
a eTtT
TtT +=
a
a
TtT
TtTttt
=
=
)(
)(ln
2
112
3
7/25/2019 Digital i Spid
36/56
3.
t2-t1-et t-velhelyettestjk skifejezzk a idllandt
A jobb oldal kirtkelhet, hiszen lemrtk, hogy: T(t
1) = 50C;
T(t2) = 40C; Ta = 26.5C s
t = 1433 s. rtkre ekkor 2585.2 s-ot kapunk.
a
a
TtT
TtT
t
=
)(
)(ln
1
2
7/25/2019 Digital i Spid
37/56
Eredmny
7/25/2019 Digital i Spid
38/56
Eredmny
A vesztesget teht egy3 C/Wrtktermikus ellenllssal modellezzk.
Mi az eredeti fggvny s milyen pontosanilleszkedik ez a hmrvel mrt rtkeinkre?
(mennyire lett j a kzeltsnk?) Ehhez fejezzk ki T0-t, majd
visszahelyettestssel hatrozzuk meg rtkt!
1
7/25/2019 Digital i Spid
39/56
1.
Teht az exponencilis grbe az ytengelyt a T0= 50.72C-nlmetszi.
t1 = 7 8 s T(t1) = 50C;
Ta = 26.5C s
= 2585.2 s
at
a T
e
TtTT +
=
1
)( 10
72.505.265.2650
2.2585
780 =+=
e
T
A keresett fggvny
7/25/2019 Digital i Spid
40/56
A keresett fggvny
T0s ismeretben immr fel tudjuk rni agrbe egyenlett:
brzoljuk ezt a grbt a mrt adatainkkalegytt, kzs koordintarendszerben!
2.2585)5.2672.50(5.26)(t
etT
+=
sszehasonlts
7/25/2019 Digital i Spid
41/56
sszehasonlts
39,00
41,00
43,00
45,00
47,00
49,00
51,00
53,00
0 500 1000 1500
t [s]
T
[C]
-0,25
-0,20
-0,15
-0,10
-0,05
0,00
0,05
0 200 400 600 800 1000 1200 1400
t [s]
dT
[C
]
Mit csinltunk eddig?
7/25/2019 Digital i Spid
42/56
Mit csinltunk eddig?
Kiszmtottuk Rth rtkt, gy mr le tudjuk rnia rendszernk viselkedst matematikailag.
Trjnk vissza most a szablyozstechnikaivizsglathoz:
Kiegsztjk a lerst a PID szablyoz matematikailersval.
Megadjuk a kezdeti s egyb feltteleket.
A mkdst egy C-programmal szimulljuk.
7/25/2019 Digital i Spid
43/56
//PID_SIM - PID szablyoz szimultor program//Szcs Zoltn - 2008. szeptember 20.#include #include int main(void) {
//A RENDSZER PARAMTEREI:double cviz=4183.2; //A vz fajlagos hkapacitsa:
J/(kg*C)double m=0.2; //A vz tmege: kgdouble Ta=25; //Krnyezeti hmrsklet: Cdouble T0=25; //A vz kezdeti hmrsklete: Cdouble Rth=3.09; //A vz s a krnyezet kztti
hellenlls: C/W//A BEAVATKOZ SZERV PARAMTERE(I):
double Pmax=400; //A maximlis f
t
teljestmny: W
7/25/2019 Digital i Spid
44/56
//A SZABLYOZ PARAMTEREI:double Kp=100; //Az arnyos tag egytthatja
double Ki=10; //Az integrl tag egytthatja
double Kd=60; //A derivl tag egytthatja
double MaxP=1000; //A P-tag maximlisABSZOLUTRTKE!!!
double MaxI=1000; //Az I-tag maximlisABSZOLUTRTKE!!!
double MaxD=1000; //A D-tag maximlisABSZOLUTRTKE!!!
double MaxU=1000; //A vezrljel maximlis rtke
7/25/2019 Digital i Spid
45/56
//SZIMULCIS PARAMTER(EK):double dt=1e-3; //A diszkrt idlptk: s
int StopTime=200;//A szimulci futsi ideje: s
double Tref=40; //A referencia hmrsklet: C
7/25/2019 Digital i Spid
46/56
//EGYB VLTOZK:int k=0; //A diszkrt temszm vltozja
double t; //Az aktulis id msodpercbendouble P=0; //Az arnyos tag rtkedouble I=0; //A hibaintegrl rtke
double D=0; //A jelvltozsi sebessg rtkedouble Takt, Tdig; //Az aktulis vzhmrskletdouble eelozo=0; //Az elz hiba rtkedouble e; //Az aktulis hiba rtkedouble Pfuto; //Az aktulis ftteljestmnydouble deltaT; //A hmrsklet nvekmnyedouble U; //A vezrljel vltozja
//PARAMTERLISTA VGEFILE * pFile;
pFile = fopen ("pid_sim.csv","w"); //Az eredmnyttartalmaz szveges file
7/25/2019 Digital i Spid
47/56
//A SZIMULCI:Takt=T0; //A kezdeti vzhmrsklet
belltsa
for (k=0; k
7/25/2019 Digital i Spid
48/56
//A P-tag rtknek kiszmtsa:if ((P=Kp*e)>MaxP) P=MaxP;
else if (PMaxD) D=MaxD;
else if (DMaxI) I=MaxI;
else if (I
7/25/2019 Digital i Spid
49/56
//A beavatkoz jel (k) kiszmtsa:
U=P+I+D; //A PID szablyoz kplete
if (U>MaxU) U=MaxU;
else if (U
7/25/2019 Digital i Spid
50/56
//A hmrskletvltozs a k-adik temben:
deltaT=(Pfuto-(Takt-Ta)/Rth)*dt/(cviz*m);
Takt+=deltaT;
if (!(k%40)) //Minden 40. ciklusbanelmentjk az rtkeket
{
fprintf(pFile,"%d;%.3lf;%.3lf;%.3lf;%.3lf;%.3lf\n",k,t,Takt,P/10,I/10,D/10);
printf("A %d-dik ciklus: %f;P=%.3lf; I=%.3lf; D=%.3lf\n",k, Takt,P,I,D);
}
}
fclose (pFile);}
Szimulcis paramterek
7/25/2019 Digital i Spid
51/56
p
mvz = 0.2 kg a melegtett vz tmege Pfuto = 400 W a ftteljestmny maximlis rtke.
A szablyoz paramterei: Kp = 100 az arnyos tag erstse Ki = 10 az integrl tag egytthatja
Kd = 60 a derivl tag egytthatja
A diszkrt idlptk: dt = 1 ms (azaz a mintavtelifrekvencia: 1 kHz)
A szimulci futsi ideje: 200 s
Az elrni kvnt (referencia)hmrsklet:Tref = 40C
Szimulcis eredmny
7/25/2019 Digital i Spid
52/56
-110
-90
-70
-50
-30
-10
10
30
50
70
90
110
0 50 100 150 200
Takt
P/100
I/100
D/100
Szimulcis eredmny
7/25/2019 Digital i Spid
53/56
Vizsgljuk meg kicsit kzelebbrl is az elzkpet minsgileg!
Arra vagyunk elssorban kvncsiak, hogy a vzhmrsklete mennyire pontosan kveti areferenciajelet.
Szimulcis eredmny
7/25/2019 Digital i Spid
54/56
39,75
39,8
39,85
39,9
39,95
40
40,05
40,1
40,15
40,2
40,25
0 50 100 150 200
A szablyoz realizlsa
7/25/2019 Digital i Spid
55/56
A szimulci utn kvetkezfeladat aszablyoz ramkr realizlsa, amely mrnem csak szablyozstechnikai, hanem nmi
ramkrtervezsi jrtassgot is ignyel. Errllesz sz a ksbbiekben
Tovbbi krdsek
7/25/2019 Digital i Spid
56/56
Eltnteti-e valban a diszkrt-idejPIszablyoz az llandsult llapotbeli hibt?
Eltntetheti-e valban a digitlis PI szablyozaz llandsult llapotbeli hibt?
Hasznlhat-e a P-tpus szablyoz arra,hogy megmrjk Rth rtkt?
Top Related