Algoritmi de Reglare

download Algoritmi de Reglare

of 35

description

Curs Automatica UPB

Transcript of Algoritmi de Reglare

  • 1

    Algoritmi de reglare

    Sisteme de Conducere a Proceselor

    Industriale - SCPI

    Cuprins:

    Introducere

    Modele, filtre, implementare

    Alg. bi-pozitionali, tri-pozitionali, PID

    Alg. RST (general)

    Metode de acordare

    Exemple

  • 2

    1. Introducere Tipuri algoritmi

    C12: Algoritmi de reglare

    Clasici: Bi-pozitionali Tri-pozitionali PID PID iesire ON-OFF;

    Moderni: RST Fuzzy Neuronali Etc.

  • 3

    2. Modele, filtre, implementare

    C12: Algoritmi de reglare

    In multe situatii se doreste ca masura achizitionata sa fie filtrata, sau ca referinta unui regulator sa urmareasca o traiectorie

    continua fara salturi mari. O solutie pentru aceasta situatie poate

    fi un sistem de tip ARX Bm(q-1)/Am(q

    -1) prezentat in urmatoarea

    ecuatie generala.

    1

    1

    1

    defm

    m

    m

    B qH q

    A q

    1 1 2

    1 2

    1 1

    1

    ...

    1 ...

    s

    m m m ms

    r

    m m mr

    B q b q b q b q

    A q a q a q

  • 4

    2. Modele, filtre, implementare

    C12: Algoritmi de reglare

    O solutie practica de proiectare a unui astfel de filtru este

    discretizarea (prin metoda dreptunghiului sau a trapezului) unui

    sistem continuu de ordinul II (sau I)

    2

    00

    2

    2

    0

    2)(

    ss

    ksHm

    1 2

    1 0 1 2

    1 2

    0 1 2

    m m mm

    m m m

    b b q b qH q

    a a q a q

    1)(

    Ts

    ksHm

    pasun cu intarziere de 1 oparatorulq

    )1()(1 kykyq

  • 5

    2. Modele, filtre, implementare

    C12: Algoritmi de reglare

    Implementare:

    )(

    )()(

    2

    2

    1

    10

    2

    2

    1

    101

    ku

    ky

    qaqaa

    qbqbbqHm

    ))()()()()((1

    )( 221

    10

    2

    2

    1

    1

    0

    qkubqkubkubqkyaqkyaa

    ky

    ))2()1()()2()1((1

    )( 210210

    kubkubkubkyakyaa

    ky

  • 6

    2. Modele, filtre, implementare

    C12: Algoritmi de reglare

    Implementare:

    Pasi ai buclei infinite:

    Achizitie date Calcul comanda Trimitere comanda Afisare date Actualizare memorie algoritm

  • 7

    2. Modele, filtre, implementare

    C12: Algoritmi de reglare

    Implementare:

    ))2()1()()2()1((1

    )( 210210

    kubkubkubkyakyaa

    ky

    !!!!!!!!!!!!!!!!!!!!!!!!

    Actualizare memorie:

    y(k-2)=y(k-1);

    y(k-1)=y(k);

    u(k-2)=u(k-1);

    u(k-1)=u(k);

  • 8

    3. Algoritmi de reglare bi-pozitionali

    C12: Algoritmi de reglare

    Reprezentarea schematica a algoritmului bi-pozitional si

    posibila sa implementare software.

    u= { 0 pentru e=d

    u pentru |e|

  • 3. Algoritmi de reglare bi-pozitionali

    C12: Algoritmi de reglare

    230VAC

    Control

    Output

    - +

    NO

    NC

    Sensor

    Input

    Power

    Ex.: Obiectiv: incalzire si mentinere a temperaturii la 90oC.

    Conexiuni:

    Senzor

    Incalzitor

    Apa

    Proces:

    Temperatura dorita: 90C

    1) Regulatorul

    trebuie conectat la

    tensiunea de

    alimentare.

    2) Incalzitorul

    trebuie conectat si

    el la tensiunea de

    alimentare.

    3) Traductorul

    (senzorul) trebuie

    conectat la intrarea

    corespunzatoare a

    regulatorului.

  • 10

    3. Algoritmi de reglare bi-pozitionali

    C12: Algoritmi de reglare

    Evolutie proces si comanda:

  • 4. Algoritmi de reglare tri-pozitionali

    C12: Algoritmi de reglare

    Reprezentarea schematica a algoritmului tri-pozitional.

    e (eroare)

    u (comanda)

    0

    0

    d+a

    -d-a

    U10

    Histerezis = d

    U20

    a

    -a

    Histerezis = d

    Insensibilitate = 2a

    2a - zona de insensibilitate

    d - zona histerezis (x2)

    U10 - comanda eroare pozitiva

    U20 - comanda eroare negativa

    Termeni:

    e - eroare (=r-y)

    u - comanda

    Uzual:

    U20 = -U10 11

  • 4. Algoritmi de reglare tri-pozitionali

    C12: Algoritmi de reglare

    12

    Reprezentarea schematica a

    algoritmului tri-pozitional si

    posibila sa implementare software.

    u= {

    0 pentru -a

  • 4. Algoritmi de reglare tri-pozitionali

    C12: Algoritmi de reglare

    13

    230VAC

    DO 0

    - +

    NO

    NC

    AI

    Power

    Conexiuni:

    1) Automatul

    trebuie conectat la

    tensiunea de

    alimentare.

    2) Motorul trebuie

    conectat si el la

    tensiunea de

    alimentare 380V.

    3) Traductorul

    (senzorul) trebuie

    conectat la intrarea

    corespunzatoare a

    AP.

    Obiectiv: Deschidere + mentinere a debitului la 10m3/h. 380VAC Grup relee

    DO 1

    NO

    NC

    Senzor

    Motor

  • 4. Algoritmi de reglare tri-pozitionali

    C12: Algoritmi de reglare

    14

    DO 0:

    deschide robinet

    Functionarea reala a unui regulator tri-pozitional.

    DO 1:

    inchide robinet

    Se observa cele

    trei pozitii

    VS Val.Setata

    VP (Presiune)

    t (timp)

    r

    On

    0

    Off

    Off On Off

    r-a

    r-a-d

    r+a+d

    r+a

  • 15 15

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Prezentare (PID pozitional):

    T perioada de esantionare;

    u0 comanda initiala fata de care se calculeaza uk;

    TI constanda componentei integratoare;

    Td constanda componentei derivative;

    Kr constanda componentei proportionale.

    1 00

    kd

    k R k i k k

    ii

    TTu K u

    T T

  • 16 16

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Prezentare (PID pozitional):

    1 00

    kd

    k R k i k k

    ii

    TTu K u

    T T

    1

    1 1 1 2 0

    0

    kd

    k R k i k k

    ii

    TTu K u

    T T

    1 1 21 2d d

    k k R k R R k R k

    i i

    T TT Tu u K K K K

    T T T T

  • 17 17

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Prezentare (PID pozitional -> incremental):

    1 0 1 1 2 2k k k k ku u q q q

    0

    1

    2

    1

    1 2

    dR

    i

    dR

    R

    i

    TTq K

    T T

    Tq K

    T

    Tq K

    T

    !!!!!!!!!!!!!!!!!!!!!!!!

    Actualizare memorie:

    e(k-2)=e(k-1);

    e(k-1)=e(k);

    u(k-1)=u(k);

  • 18 18

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Ex.: implementare PID:

    #include

    #include

    #include

    #define CLK 0x1Ch

    #define PORT 220h

    void interrupt (*oldvect)(void);

    int contor = 0;

    int canal = 0;

    float Te = 1.0;

    float Kr = 1.0;

    float Ti = 50.0;

    float Td = 10.0;

    float yk = 0.0;

    float rk = 50.0;

    float uk = 0.0,uk_1 = 0.0;

    float ek = 0.0,ek_1 = 0.0,ek_2 = 0.0;

    float q0 = 0.0,q1 = 0.0,q2 = 0.0;

    void interrupt planific(void)

    {

    contor++;

    }

    float ai(int can);

    void ao(float valcom);

    void main(void)

    {

    oldvect = getvect(CLK);

    setvect(CLK, planific);

    canal = 0;

    q0 = Kr*(1+Te/Ti+Td/Te);

    q1 = -Kr*(1+2*Td/Te);

    q2 = Kr*Te/Ti;

  • 19 19

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Ex.: implementare PID: while(!kbhit())

    {

    if(contor >= 18)

    {

    contor = 0;

    yk = ai(canal);

    ek = rk-yk;

    uk = uk_1+q0*ek+q1*ek_1+q2*ek_2;

    ao(yk);

    // actualizare variabile

    uk_1 = uk;

    ek_2 = ek_1;

    ek_1 = ek;

    // afisare

    gotoxy(2,2);

    printf(rk = %6.2f yk = %6.2f uk =

    %6.2f, rk, yk, uk);

    }// enf if

    } // end while

    setvect(CLK, oldvect);

    } // end main

    float ai(int can)

    {

    int val_ucan = 0;

    float y_proc = 0.0;

    ..

    y_proc =

    =(val_ucan/4095.0)*100.0;

    return y_proc;

    }

    void ao(float u_proc)

    {

    int u_can = 0;

    u_can = (u_proc/100)*4095;

    .

    }

  • 20 20

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Prezentare (PIDf):

    Discretizare (Te):

    11

    11

    dR R

    i d

    T sH s K

    T s T s

    1

    1

    1

    1 - metoda dreptunghiului;

    1

    1 1 - metoda trapezelor.

    2 1

    T

    s z

    T z

    s z

  • 21 21

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Prezentare (PIDf):

    Sau: !!!

    1

    1 11

    11

    1

    11 1 2 11

    12 1

    2 1

    d

    R R

    id

    T zT

    T z zH z KT zT z

    Tz

    1 2

    1 0 1 2

    1 2

    1 21R

    q q z q zH z

    p z p z

    )(

    )()(

    2

    2

    1

    10

    2

    2

    1

    101

    ke

    ky

    qaqaa

    qbqbbqHR

  • 22 22

    5. Algoritmi de reglare PID

    C12: Algoritmi de reglare

    Prezentare (PIDf):

    1 2

    1 0 1 2

    1 2

    1 21R

    q q z q zH z

    p z p z

    0

    1

    2

    1

    2

    2 2

    2 2

    2 2 2 2

    2 2

    2 2

    2 2

    4

    2

    2

    2

    i d

    R

    i d

    i d d i

    i d

    i d

    i d

    d

    d

    d

    d

    T T T Tq K

    T T T

    T T T T T T T Tq

    T T T

    T T T Tq

    T T T

    T Tp

    T T

    T Tp

    T T

  • 23 23

    6. Algoritmi de reglare RST

    C12: Algoritmi de reglare

    Prezentare (PIDf in varianta RST):

    1( ) 1

    1

    defd

    PID Rdi

    T sH s K

    TT ss

    N

    Notam prin: KR castigul sau amplificarea regulatorului, Ti, Td constante pentru

    actiunea integrala, respectiv derivativa, N - constanta de filtraj. Intrarea in algoritmul

    de comanda este eroarea de reglare, adica diferenta dintre marimea de referinta si

    marimea de iesire reglata, iar marimea de la iesirea din regulator este comanda

    numerica u(k).

  • 24 24

    6. Algoritmi de reglare RST

    C12: Algoritmi de reglare

    Prezentare (PIDf in varianta RST):

    11

    e

    qs

    T

    1

    11 0

    1 11 0

    (1 )( )

    ( ) 11 ( )

    1

    e d

    i d ePID R

    d

    d e

    T NTq

    T T NT R qH q K

    Tq S qq

    T NT

    1 1 1 1 1 2

    0

    1 1 1

    0

    ( ) (1 ) 1 1 (1 )

    ( ) (1 ) 1

    d R e d R dR

    d e i d e d e

    d

    d e

    T K T T K NTR q K q q q q

    T NT T T NT T NT

    TS q q q

    T NT

  • 25 25

    6. Algoritmi de reglare RST

    C12: Algoritmi de reglare

    Prezentare (PIDf in varianta RST):

    1 1 1 2 1

    0 1 2 0

    1 1 1 1

    1 01 1

    R q T q r rq r q R q

    S q q s q S q

    u(k) y*(k) y(k)

    PROCES

    DISCRETIZAT

    r(k)

    -

    +

    Bm/Am T 1/S

    R

    B/A

    REGULATOR

    R=T

  • 26 26

    6. Algoritmi de reglare RST

    C12: Algoritmi de reglare

    Prezentare (RST - general):

    u(k) y*(k) y(k)

    PROCES

    DISCRETIZAT

    r(k)

    -

    +

    Bm/Am T 1/S

    R

    B/A

    REGULATOR

    TRS n

    i

    i

    n

    i

    i

    n

    i

    i ikytikyrikus0

    *

    00

    )()()(

    S

    n

    i

    Rn

    i

    Tn

    i

    ikyitiky

    iriku

    is

    sku

    1 0 0

    )(*)()(

    0

    1)(

    Sn

    qSnsqssqS

    1

    10 )1(

    Rn

    qRnrqrrqR

    1

    10 )1(

    Tn

    qTntqttqT

    1

    10 )1(

    )(*)1()()1()()1( kyqTkyqRkuqS

  • 27 27

    6. Algoritmi de reglare RST

    C12: Algoritmi de reglare

    Prezentare (RST - general):

    u(k) y*(k) y(k)

    PROCES

    DISCRETIZAT

    r(k)

    -

    +

    Bm/Am T 1/S

    R

    B/A

    REGULATOR

    )2(*

    2)1(*

    1)(*

    0)2(

    2)1(

    1)(

    0)2(

    2)1(

    10

    1)( kytkytkytkyrkyrkyrkuskus

    sku

    Patricularizand, pentru un algoritm de reglare fara generator de referita

    (y*(k)=r(k)), in care nR = nS = nT = 2 generarea comenzii se face:

  • 28 28

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    Bi-pozitional:

    Histerezisul se va dimensiona in functie de constantele de timp ale procesului

    si timpul mort.

    e (eroare)

    u (comanda)

    0

    0

    d -d

    U0 (=220 V)

    Histerezis = H

  • 29 29

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    Tri-pozitional:

    Histerezisul si zona de insensibilitate se vor dimensiona in functie de

    constantele de timp ale procesului si timpul mort.

    e (eroare)

    u (comanda)

    0

    0

    d+a

    -d-a

    U10

    Histerezis = d

    U20

    a

    -a

    Histerezis = d

    Insensibilitate = 2a DO 0:

    deschide robinet

    DO 1:

    inchide robinet

    VS Val.Setata

    VP (Presiune)

    t (timp)

    r

    On

    0

    Off

    Off On Off

    r-a r-a-d

    r+a+d r+a

  • 30

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    PID metode experimentale:

    Aplicarea in proces a unei intrari

    de tip treapta si determinarea

    aproximativa a parametrilor:

    ct. de timp procesuluipT

    valoare timp mortmT

    valoarea de stabilizaresh

    valoare timp stabilizare sT t (timp)

    On

    0

    Qn

    Tm

    Tp

    hs

    Ts

    Raspuns experimental la intrare treapta:

    Metode bazate pe raspunsul indicial al procesului.

  • 31

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    PID metode experimentale:

    Metode bazate pe raspunsul indicial al procesului (Ziegler-Nichols).

    Calculul parametrilor auxiliati:

    Calculul parametrilor regulatorului:

    amplificarea procesuluipK .

    sp

    hK

    val u

    param. auxiliara mp

    f

    Ta K

    T

    1/rK aP:

    0.9rK a

    3i mT T

    PI: 1.2rK a

    2i mT T

    2

    md

    TT

    PID:

  • 32

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    PID metode experimentale:

    Regulatorul PID doar cu

    componenta P activa: crescut Kr

    treptat pana cand procesul ajunge

    la o oscilatie neamortizata.

    amp. de oscilatieoK Kr

    perioada oscilatieioT

    Metode bazate pe limita de stabilitate.

    t (timp) 0

    hs

    To

  • 33

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    PID metode experimentale:

    Metode bazate pe limita de stabilitate (Ziegler-Nichols).

    Calculul parametrilor regulatorului:

    0.6r oK K

    0.5i oT T

    0.12d oT T

    PID: P:

    0.5r oK KPI:

    0.4r oK K

    0.8i oT T

  • 34

    7. (Auto)acordarea algoritmilor de reglare

    C12: Algoritmi de reglare

    RST (si PID) metode exacte:

    Metode bazate pe identificarea modelului procesului.

    Obtinerea datelor din proces;

    Identificarea modelului procesului;

    Validarea modelului;

    Calculul parametrilor regulatorului (alocare de poli etc.):

    implementare.

  • 35

    C12: Algoritmi de reglare

    Leader; FBD; ST; C (TR); ASM; LabView; Simulink;

    8. Arhitecturi hardware/software de TR

    Implementare in TR: