digital i spid

Upload: vacsaa

Post on 24-Feb-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 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?