algoritmi de reglare
DESCRIPTION
Curs Automatica UPBTRANSCRIPT
-
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: