Documente Academic
Documente Profesional
Documente Cultură
1
6. Proictarea interfeţelor de comunicaţie cu operatorul (sistemul de
introducere şi extragere date) şi cu nivelul ierarhic superior.
7. Proiectarea sistemului de operare (executivul de timp real) şi elaborarea
programelor de aplicaţie.
La proiectarea unui regulator numeric se au în vedere câteva cerinţe
esenţiale pentru atingerea unor performanţe înalte şi compatibilităţi cu clase
largi de procese. Astfel, se urmăreşte realizarea unei înalte flexibilităţi prin
modularizare hardware şi software, înaltă fiabilitate şi configurabilitate.
Performanţele regulatoarelor numerice sunt determinate atât de
performanţele modulelor hardware şi de structura regulatorului, cât şi de
performanţele sistemului de programe de bază şi aplicative.
2
Fig. 1
3
proiectarea unor mecanisme cât mai adecvate pentru translatarea
adreselor logice în adrese fizice;
gestionarea resurselor şi formarea şirurilor de aşteptare;
eliminarea interblocărilor care apar când un procesor aşteaptă după
o resursă alocată altuia şi viceversa, nici unul din procesoare
neputându-şi continua execuţia sarcinii până la obţinerea resursei
respective;
proiectarea unor structuri hardware şi software care să faciliteze
imunitatea la defecte a sistemelor multimicroprocesor.
Fig. 2
4
Prin intermediul elementelor de joncţiune se asigură cuplarea la proces
(traductoare). Prin intermediul acestor elemente de joncţiune se separă interfaţa
de mediul industrial impunându-se utilizarea unor optocuploare performante.
Prelucrarea primară presupune condiţionarea semnalelor culese din câmp prin
filtrări hardware, conversii, atenuări, adaptări de semnal, etc.. Se impune ca
toate aceste operaţii să se realizeze cu o înaltă precizie.
Utilizarea unui singur convertor analog-numeric (soluţie eficientă pentru
procese lente în comparaţie cu soluţiile cu convertor pentru fiecare variabilă din
proces) impune prezenţa multiplexorului analogic. Multiplexorul facilitează
conectarea, cu o frecvenţă fixă în cele mai multe cazuri, convertorului analog-
numeric la fiecare sursă de semnal apriori prelucrat primar. Multiplexoarele
analogice realizate cel mai frecvent cu elemente semiconductoare realizează la
comandă conectarea (prin comutare) a fiecărei ieşiri a blocului de prelucrare
primară la intrarea convertorului analog-numeric. Selectarea punctului dorit are
loc pe baza adresei indicate de regulator sau obţinute prin incrementarea celei
anterioare. Amplificatorul inclus în structura interfeţei permite adaptarea
impedanţelor circuitelor de intrare cu cea a elementului de eşantionare şi
reţinere. Cu ajutorul acestui amplificator se asigură amplificarea semnalelor de
semnal redus în gama (1-1000). În cadrul multor interfeţe factorul de amplificare
este ajustabil în funcţie de nivelul semnalului de intrare. Comanda factorului de
amplificare se poate realiza prin program sau printr-un proces de autoadaptare
(pentru a se obţine utilizarea cu rezoluţie maximă a convertorului analog-
numeric). Elementul de eşantionare-reţinere reprezintă o memorie analogică
păstrând valoarea semnalului de intrare la momentul eşantionării. Utilizarea unui
singur convertor analog-numeric presupune memorarea analogică pe durata
conversiei a semnalului analogic aferent canalului de intrare indicat de către
regulator. Acest semnal trebuie să fie stabil pe durata conversiei analog-
numerice.
Schema de principiu a unui element de eşantionare şi reţinere este
prezentată în figura 3.
Fig. 3
5
Pentru conversia semnalelor sunt utilizate numeroase forme de
convertoare analog-numerice realizate prin integrare, care - în cea mai mare
parte - utilizează în scopul conversiei metoda aproximaţiilor succesive. În acest
scop sunt necesare: un convertor numeric-analogic, un registru ce memorează
valorile ce aproximează succesiv valoarea numerică a semnalului convertit şi o
logică de comandă. Între multe aplicaţii s-au realizat convertoare cu
microprocesoare. Viteza de conversie depinde de rezoluţia necesară, de viteza de
lucru a microprocesorului şi de lungimea cuvântului acestuia. Pentru efectuarea
operaţiei de conversie analog-numerică, microprocesorul transmite un semnal
start conversie. În funcţie de tipul convertorului lent sau rapid, microprocesorul
poate folosi trei metode pentru adresarea convertoarelor.
Prima metodă constă în testarea periodică prin program a unui semnal
care indică starea convertorului.
A doua metodă constă în intrarea microprocesorului într-o stare de
aşteptare, prin bascularea unui bistabil de către semnalul start conversie şi
rebascularea acestuia când operaţia de conversie s-a terminat.
A treia metodă, pentru convertoare analog-numerice rapide, constă în
tratarea convertorului ca o celulă de memorie, operaţie de citire a datelor
efectuându-se direct, fără timpi de aşteptare.
Informaţia discretizată (numerică) referitoare la toate variabilele din
proces este memorată şi prelucrată prin registrele sistemului de către regulator,
fiind introdusă în baza de date a regulatorului. Controlul interfeţei este asigurat
printr-un bloc de comandă care permite selectarea variabilei de convertit, fixarea
funcţiei de eşantionare, modifică factorul de amplificare, controlează începutul
şi sfârşitul conversiei.
Cele mai noi structuri de interfeţe pentru semnale analogice folosesc
structuri integrate de achiziţii cu convertoare pe 12 biţi, 16 biţi şi chiar 24 biţi. În
aceste condiţii se pot realiza viteze de achiziţie de ordinul microsecundelor şi o
precizie foarte ridicată determinată esenţial de convertorul analog-numeric.
Pentru achiziţia semnalelor numerice se pot utiliza interfeţe distincte sau
se pot realiza interfeţe hibride pentru semnale analogice şi numerice.
Numărul semnalelor numerice dintr-un proces variază în limite largi de la
proces la proces. Nivelul acestor semnale este variabil în limite destul de largi 5-
24 Vc.c. În anumite situaţii, semnalele numerice poartă informaţia şi în durata
impulsurilor corespunzătoare, durată care se măsoară prin calibrări cu impulsuri
pe perioadă cunoscută.
Schema de principiu a unei interfeţe de achiziţie a semnalelor numerice
este prezentată în figura 4.
6
Fig. 4 - Schema de principiu a unei interfeţe de achiziţie a semnalelor numerice
7
Fig. 5 - Structura interfeţei de ieşire analogice cu un singur
convertor numeric-analogic
8
-Comutarea informaţiei pe mai multe canale de ieşire analogice, funcţie
realizată prin intermediul demultiplexoarelor. Demultiplexarea se poate realiza
prin metode analogice (figura 5) sau prin metode numerice (figura 6). Alegerea
uneia dintre aceste două variante se face în funcţie de modul cum se realizează
operaţia de memorare a informaţiei pe canalele de ieşire între două momente de
adresare.
9
Marea diversitate de semnale din proces şi cantitatea mare de date ce se
transmite spre sistemele de prelucrare au impus reţelele locale de achiziţie şi
concentratoarele de date care prin implementare, pe lângă viteza ridicată de
achiziţie şi înaltă precizie, asigură o reducere substanţială de cablu de
comunicaţie. O structură de sisteme de achiziţie cu traductoare inteligente şi cu
microcalculator este prezentată în figura 8.
10
Fig. 9 - Interfeţa de comunicaţie cu bloc de comandă şi configurare BCC
11
Fig. 10 - Interfaţă cu BCC organizată în jurul unui microprocesor
Pentru afişarea informaţiei pot fi utilizate mai multe metode. Toate aceste
metode însă trebuie să ofere operatorului cu viteză maximă şi precizie ridicată
informaţii de tipul datelor, adreselor, cuvinte de stare specifice unui ansamblu,
segmente de programe, etc. Pentru comanda interfeţei de afişare numerică se
folosesc subrutine în cadrul programului principal al microsistemului. Cele mai
utilizate interfeţe pentru afişarea informaţiei includ în structura lor circuite
integrate specializate sau memorii intermediare, însoţite de logica necesară
pentru comanda acestora de către microprocesor, atunci când apare necesitatea
schimbării unor valori.
12
Lungimea cuvântului reprezintă numărul de biţi informaţionali la care
se poate avea acces printr-o singură operaţie (implicând adresarea şi comanda
tipului de operaţie - citire sau înscriere). De regulă, memoria utilizată în cadrul
unui regulator numeric are aceeaşi lungime cu cea a cuvântului
microprocesorului (8 biţi, 16 biţi, 32 biţi).
Capacitatea memoriei se exprimă prin numărul de biţi informaţionali pe
care acesta îi poate memora. Capacitatea adresabilă a memoriei se exprimă prin
numărul de cuvinte al memoriei. Astfel, sunt deja realizate memorii de 1 KO, 8
KO, 16 KO, 32 KO, memorii de 1 MO într-un singur chip şi chiar mai mari.
Timpul de acces reprezintă durata scursă între momentul în care s-a dat
o anumită comandă (de exemplu, de citire) şi momentul în care comanda este
executată (datele sunt accesibile pe magistrală). Valorile uzuale ale timpului de
acces variază de la zeci de nanosecunde la sute de nanosecunde.
Consumul de energie. Tehnologia de realizare a memoriilor a evoluat ca
şi tehnologia microprocesoarelor, memoriile făcând parte din categoria
circuitelor integrate pe scară largă şi foarte largă. Astfel, consumul cel mai mic
de energie şi timpul de acces minim se realizează prin apelarea la tehnologii de
tip CHMOS.
Circuitele de memorie RAM au proprietatea că informaţia poate fi citită şi
înscrisă în orice locaţie. Memoria RAM este utilizată pentru organizarea bazei
de date a regulatorului, precum şi pentru memorarea informaţiilor vitale pentru
sistem în cazul în care se urmăreşte realizarea funcţiei de rezervare a
regulatorului. O asemenea memorie este de tip RAM nevolatilă. Pentru
realizarea memoriilor nevolatile se impune utilizarea unor tehnologii ce asigură
consumuri reduse, întrucât acestea necesită surse de alimentare tampon.
Capacitatea memoriilor temporare se determină ţinând seama de dimensiunea
bazei de date ce se organizează în cadrul regulatorului. Regulatoarele numerice
multicanal cu procesoare de 16 biţi dispun de memorii RAM ce nu depăşesc 32
KO.
Memoriile permanente de tip EPROM permit memorarea programelor de
sistem (executiv de tip real), biblioteca de programe de aplicaţie, date
permanente (constante). Capacitatea acestor memorii este determinată de
complexitatea şi numărul algoritmilor implementaţi, de complexitatea sistemului
de operare în timp real. O capacitate de 64 KO este suficientă pentru multe
regulatoare numerice multicanal. Circuitele de memorie RAM şi EPROM se
aleg având în vedere capacitatea şi volumul ocupat, viteza de acces, organizarea
internă precum şi factori de ordin economic.
Memoriile se pot include pe aceeaşi placă cu unitatea centrală sau/şi pot fi
organizate ca module distincte, putându-se organiza ca memorii locale, centrale
sau în ambele moduri. Se impune o organizare cât mai eficientă în vederea unei
adresări cât mai simple.
În general, fiecare unitate centrală trebuie să dispună de o memorie pentru
depunerea unor programe utilizator şi a variabilelor locale, astfel încât să aibă
acces la o instrucţiune sau la o variabilă local independent de magistrala sistem
şi memoria comună.
13
1.3 Programarea regulatoarelor numerice
1.3.1 Noţiuni de programare paralelă
Generalităţi
Dezvoltarea sistemelor moderne de calcul a condus la un aspect important
al activităţii de proiectare a programelor: programarea concurentă (paralelă).
Necesitatea programării paralele provine din:
-timpul scurt de răspuns şi utilizare eficientă a resurselor, ceea ce conduce
la tehnici de specificare a stării sistemului şi a cerinţelor de resurse, în mod
dinamic;
-apariţia unor activităţi concurente între procesorul central şi dispozitivele
periferice, datorită utilizării eficiente a echipamentelor;
-partajarea informaţiilor între programe şi comunicarea între programe,
ceea ce a creat necesitatea specificării sincronizării la nivel software.
Programarea paralelă sau concurentă este activitatea de scriere a unui
program care conţine o serie de părţi necesar a se afla în execuţie în acelaşi
moment. Orice program de conducere a unui proces conţine astfel de părţi
numite în mod uzual taskuri (sau procese). Programul de conducere se
descompune în taskuri, fiecare task constituind în cadrul programului o etapă de
execuţie asincronă cu un conţinut bine delimitat (achiziţie de date, conversii,
calcul şi elaborare comandă, afişarea mărimilor de interes, etc.).
Din punctul de vedere al regulatorului numeric, taskul reprezintă un
program în formă executabilă compus dintr-o succesiune de instrucţiuni
executate secvenţial.
Un sistem care permite execuţia mai multor taskuri paralele se numeşte
sistem multitasking.
Două taskuri se numesc paralele sau concurente dacă prima instrucţiune a
unui task demarează înainte ca ultima instrucţiune a celuilalt task să se încheie.
Pe un regulator numeric monoprocesor execuţia paralelă a taskurilor se va
face intercalat pe principiul distribuirii timpului unităţii centrale între taskuri
(“time slicing”).
Un singur task va fi în execuţie la un moment dat, dar datorită vitezei mari
de lucru a procesorului, precum şi datorită modului de programare se lasă
impresia că taskurile se execută “simultan” ca şi când fiecare task ar beneficia
de un procesor propriu virtual evident ceva mai lent. Spunem în acest caz, că are
loc o execuţie pseudo-paralelă sau o execuţie paralelă logică.
Taskurile componente ale unui program dat sunt de două categorii:
taskuri disjuncte sau independente şi taskuri care interacţionează sau
cooperează. Două sau mai multe taskuri se numesc disjuncte dacă nu schimbă
informaţii între ele sau dacă nu utilizează resurse în comun. În caz contrar, se
spune că ele interacţionează. În cazul unei aplicaţii multitasking avem de-a face
în general cu taskuri care interacţionează. Evoluţia unui program alcătuit numai
din taskuri disjuncte este unică indiferent de ordinea şi de viteza de execuţie a
taskurilor.
14
Un program compus din taskuri care interacţionează nu are în general o
evoluţie unică, ea depinzând de două aspecte:
-de modul şi posibilitatea de planificare a taskurilor pentru execuţie;
-de modul şi posibilitatea de tranziţie a unui task dintr-o stare în alta.
Modelul cel mai general al stărilor taskurilor şi al tranziţiilor acestora,
între stări este dat în figura 11.
15
Taskurile care compun o aplicaţie se pot afla în una din următoarele trei
stări: neinstalat, inactiv, activ. Un task activ poate fi la rândul lui în una din
următoarele substări: blocat, gata de execuţie sau în execuţie. Un singur task şi
numai unul singur se poate afla la un moment dat în execuţie.
Un task neinstalat este un task creat, rezident pe un suport extern sau în
memoria calculatorului, care nu a fost adus încă la cunoştinţa sistemului de
operare al echipamentului (regulatorului). El este făcut cunoscut sistemului prin
operaţia de instalare în urma căreia va trece în starea inactiv.
Un task se află în starea inactiv dacă este instalat, dar nu s-a făcut nici un
apel de intrare a lui în execuţie. Prin instalare se creează şi i se alocă taskului un
vector de stare sau un bloc de control al taskului care reprezintă materializarea
taskului în sistem.
Vectorii de stare ai taskurilor sunt grupaţi într-o tabelă care este folosită de
sistem pentru efectuarea schimbărilor survenite în stările taskurilor pe parcursul
existenţei lor.
Un task poate reveni în starea neinstalat numai din starea inactiv,
dezafectându-i-se vectorul de stare.
Un task pentru care se face o cerere de intrare în execuţie trece în stare activ şi
anume în substarea gata de execuţie, în care el poate concura la acapararea
procesorului şi deci la trecerea în substarea în execuţie. Acest moment nu poate
fi prevăzut cu exactitate de către programator, depinzând de complexitatea
aplicaţiei şi de modul în care se face planificarea taskurilor pentru intrarea în
execuţie. Există două tehnici de bază pentru planificarea spre execuţie a
taskurilor:
-procedeul “round-robin”, prin care taskurile aşezate într-o coadă de
aşteptare sunt executate succesiv fie până la terminarea normală, fie pentru un
interval de timp bine determinat; după ce a fost executat un task este trecut în
coadă şi este lansat în execuţie taskul următor;
-procedeul după priorităţi, prin intermediul căruia fiecărui task îi este
atribuit un număr, prioritatea, iar dintre taskurile gata de execuţie care
concurează pentru controlul procesorului, va fi adus în execuţie taskul cu
prioritatea cea mai mare.
Cel de al doilea procedeu presupune existenţa unui program care să
analizeze stările şi priorităţile taskurilor şi să aducă în execuţie taskul menţionat.
Acest program poartă denumirea de EXECUTIV de tip real, având pe lângă
funcţiile menţionate şi alte funcţii care vor fi arătate în continuare.
Trecerea dintr-o stare în alta a unui task se poate realiza de asemenea în
două moduri:
- prin intermediul întreruperilor soft sau hard, contextul comutării fiind
determinat de nivelul întreruperii şi de subrutina de tratare a acesteia;
- prin apeluri de servicii către EXECUTIV (din taskul aflat în execuţie),
apeluri lansate sub forma unor apeluri de subrutine neîntreruptibile (numite
primitive sau directive) contextul comutării fiind determinat de numele
directivei şi de parametrii acesteia.
16
În urma lansării unei directive dintr-un task, controlul procesorului este
transferat de la task către EXECUTIV, pentru ca acesta să satisfacă imediat
cererea de servicii conţinută în directivă. Din punctul de vedere ale aplicaţiei
distingem două categorii de directive:
-directive pe care EXECUTIVUL le satisface returnând apoi controlul
taskului care a dat directiva (se spune în acest caz că directiva nu declară
“eveniment semnificativ”);
-directive care cer o serie de servicii EXECUTIVULUI, după satisfacerea
cărora, acesta nu mai returnează controlului taskului apelant, ci determină o
nouă replanificare spre execuţie a taskurilor, în sensul că EXECUTIVUL este
determinat să aducă în execuţie nu taskul apelant, ci taskul gata de execuţie cu
prioritatea cea mai mare (se spune în acest caz că directiva a declarat un
“eveniment semnificativ”). Structura generală a unui task executat sub controlul
unui EXECUTIV de timp real este dată în figura 12.
Fig. 12
Evident, un task poate conţine mai multe directive în cadrul secţiunii sale
executate periodic.
Un task aflat în execuţie poate elibera procesorul în una din următoarele
trei situaţii:
-în mod logic sau normal la terminarea secvenţei sale de instrucţiuni
trecând în starea inactiv;
-în mod voluntar trecând în starea gata de execuţie;
-în mod condiţionat de îndeplinirea unui eveniment exterior (care încă nu
a avut loc) sau de trecerea unui anumit interval de timp, cazuri în care va trece în
substarea blocat.
Un task blocat poate fi scos din această stare şi trecut în substarea gata de
execuţie, fie la expirarea intervalului de timp de aşteptare, fie odată cu
îndeplinirea evenimentului specificat.
17
Un task aflat în execuţie poate de asemenea trece în substarea blocat alte
taskuri aflate în substarea de execuţie, după cum poate termina forţat şi trece în
starea inactiv atât taskuri blocate, cât şi pe cele gata de execuţie. Dacă un task
pierde controlul procesului rămânând în starea activ, reluarea execuţiei lui se va
face din punctul în care s-a întrerupt. Dacă el este trecut în starea inactiv,
execuţia lui va fi reluată de la început, indiferent de locul în care a fost
reîntrerupt.
Realizarea eficientă ţi corectă a tranziţiei taskurilor între stări este strâns
corelată de problematica interacţiunii taskurilor care poate fi redusă la trei tipuri
de operaţii: comunicarea, sincronizarea, excluderea mutuală.
18
Fig. 13
19
Fig. 14
20
-V4 = 0 (FLI = 1): componenta integrală a algoritmului este anulată din
calculul comenzii (algoritmul este de tip PD), dar ea trebuie memorată pentru a
se putea trece fără şocuri de la structura PD la structura PID, în cazul unei
reconfigurări a algoritmului.
Se observă din figura 15 că rezultă relaţia:
U In U n U Dn
şi deci la reintroducerea componentei integrale vom avea la ieşirea algoritmului
aceeaşi comandă U n .
U n U In U Dn U n U Dn U Dn U n
21
configurabilă de către operator, ci este “poziţionată” automat, conform schemei,
în funcţie de valoarea mărimii de comandă (deci nici ea nu are un flag asociat).
-V3 = 1 în caz că mărimea de comandă nu este saturată:
U min U n U max
-V3 = 0 în cazul saturării superioare sau inferioare a comenzii, situaţie în
care componenta integrală trebuie limitată pentru a nu căpăta valori necontrolate
şi pentru a obţine o desaturare rapidă în cazul schimbării polarităţii erorii.
Componenta integrală este limitată la valoarea:
U In U max U Dn sau U In U min U Dn
după cum mărimea de comandă este limitată superior sau inferior.
Astfel, mărimea de comandă va fi menţinută la valoarea U min sau U max
până la schimbarea polarităţii erorii:
U n U Dn U In U Dn U max U Dn U max
Configurarea algoritmului în figura 14 este următoarea:
V1 = 1 componenta PD se află pe calea directă;
V2 = 1 mărimea de comandă creşte odată cu creşterea erorii;
V3 = 1 mărimea de comandă nu este saturată;
V4 = 1 componenta integrală este prezentă;
V5 = 1 algoritmul este în regim automat;
V6 = 1 algoritmul lucrează cu referinţă internă.
Organigrama asociată acestui task de reglare este prezentată în figura 15
(a şi b).
Relaţiile de calcul, precum şi coeficienţii algoritmilor numerici, sunt
obţinute prin discretizarea cu ajutorul metodei trapezelor cu pasul T, a legilor de
reglare reprezentate prin funcţii de transfer în schema bloc din figura 14:
2T T
A 1 K R 2T DX T
T2T
A 2 K R 2T X TD
Tx * T 0,1
2T X T
A3 2T X T
T
B 2T
Aceşti coeficienţi se calculează în taskul COP în urma introducerii de
către operator a valorilor corespunzătoare pentru KR,TD,TI,T,α şi sunt transferaţi
taskului PID prin intermediul unei zone de date comune utilizând principiul
excluderii mutuale cu ajutorul flagului SEMCOM.
Mărimea T prezintă valoarea intervalului de discretizare a legii continue şi
trebuie să fie egală cu valoarea intervalului de reprogramare în execuţie a
taskului. Acest interval de reprogramare este fixat cu ajutorul unei directive
22
(către EXECUTIV) fie din acest task fie din alt task (în exemplul nostru
programarea este făcută din alt task).
În cadrul organigramei se observă utilizarea şi a altor directive care cer
EXECUTIVULUI executarea unor servicii pentru realizarea corectă a
interacţiunii acestui task cu celelalte taskuri ale buclei de reglare, în vederea
evoluţiei corecte a acestui program.
Astfel întâlnim directivele:
WAIT FLAG, care cere taskului să se blocheze dacă FLAG = 1 şi dacă
FLAG = 0 lasă taskul să se execute în continuare făcând FLAG = 1;
CLEF FLAG - face FLAG = 0;
GETF FLAG - citeşte valoarea flagului FLAG şi întoarce valoarea lui în
bitul de carry CARRY = 1 dacă FLAG = 1
CARRY = 0 dacă FLAG = 0;
EXIT - directivă de terminare a taskului oferind posibilitatea de reluare a
execuţiei acestuia de la început.
Pe lîngă aceste directive mai există şi altele, care pot fi folosite dar care
nu apar în acest program (directive de instalare, activare, terminare forţată,
etc.).
În cazul în care s-ar dori scrierea aceluiaşi program fără să avem la
dispoziţie facilităţile acestui EXECUTIV de timp real, funcţiile acestuia ar trebui
incluse în program, ceea ce ar conduce la mărirea efortului de programare şi la
complicarea substanţială a programului.
23
Fig. 15 a
24
Fig. 15 b
25
Fundamente teoretice
Modelul procesului
Modelul matematic estimat al procesului fizic are forma generala:
unde d este intarzierea pura iar A(q-1) si B(q-1) sunt polinoame prime in q-1 de
forma:
Algoritmul de identificare
Principiul de functionare al procedurii de adaptare parametrica in procesul de
identificare este prezentat in figura urmatoare:
unde
26
in care semnificatia marimilor care apar in relatiile de mai sus este cunoscuta.
Initializarea algoritmului de identificare
Initializarea algoritmului de identificare presupune atat initializarea vectorilor parametrilor
estimati si masuratorilor cat si a matricii de adaptare a algoritmului. In faza initiala cei doi
vectori au elementele nule iar matricea de adaptare F are urmatoarea forma de matrice
diagonala:
in care:
u(t) - comanda la momentul t
y(t) - marimea reglata la momentul t
r(t) - referinta la momentul t
e(t) - eroarea de reglare la momentul t
v(t) - marimea perturbatoare la momentul t
Algoritmul de comanda intr-o reprezentare temporala, este de forma:
27
sau echivalent in domeniu discret:
28
la fiecare pas de esantionare si care reprezinta diferenta dintre iesirea yi corespunzatoare
modelului Mi si iesirea y a procesului pentru aceeasi valoare u a comenzii aplicate.
Pentru fiecare model Mi s-a calculat cate un regulator sau controller Ci care satisface
obiectivele si performantele impuse.
Criteriul de performanta care este utilizat la selectia modelului care are eroarea
cea mai mica in punctul de functionare curent si implicit prin acesta a
regulatorului cel mai adecvat, este urmatorul:
unde a >0 si b >0 sunt factorii de acordare a criteriului, iar l >0 este factorul de uitare care
asigura limitarea ferestrei de actiune a acestuia asupra eroriide model e i(k).
Alegerea parametrilor a , b and l depinde de caracteristicile sistemului:
a = 1 si b =0 à pentru sisteme rapide:
performante bune in detectarea modificarii parametrilor procesului,
sensibilitate la perturbatii.
29
a carui proiectare nu pune nici o problema prin impunerea valorilor pentru K, si . Relatiile
dintre valorile suprareglajului s , timpului de stabilizare ts si cele ale lui pentru K, si 0
sunt urmatoarele:
si
Ecuatia polinomului caracteristic discret rezultata din ecuatia continuua de mai sus, este:
unde r(k) reprezinta referinta sistemului iar r*(k) referinta dorita. Filtrarea
referintei este foarte utila, deoarece protejeaza sistemul de socurile provocate de
treptele acesteia si indirect de cele "incasate" de elementele de executie in urma
comenzilor brusce ce rezulta din astfel de trepte de referinta.
30
Ex.: Placa de achizitie dispune de un convertor pe 12 biti, drept urmare domeniul de lucru al
placii este [0 – ]=[0 – 4095]. Domeniul de lucru ,in cadrul sistemului soft, este [Linf - Lsup].
Formula de normare a datelor este:
in care yNORM reprezinta valoarea normata a datei iar yCAN este valoarea
citita de la convertorul analog numeric (CAN) al placii sau sistemului de
achizitie.
Denormarea
Reprezinta operatia inversa operatiei de normare. Termenul este folosit in aceasta "zona" in
special pentru trecerea din domeniul de lucru al utilizatorului in domeniul de lucru al placii ce
achizitie (sau al convertorului placii) in.
Ex.: Placa de achizitie dispune de un convertor pe 12 biti, drept urmare domeniul de lucru al
placii este [0 – ]=[0 – 4095]. Domeniul de lucru ,in cadrul sistemului soft, este [Linf - Lsup].
Formula de denormare a datelor este:
in care yNORM reprezinta valoarea normata a datei iar yCNA este valoarea scrisa In registrul
convertorul numeric analog (CNA) al placii sau sistemului de achizitie.
Filtrare numerica
Filtrarea este operatia de eliminare a zgomotelor care insotesc orice proces de masura. Aceste
zgomote se manifesta prin oscilatii mai mult sau mai putin aleatoare a valorilor masuratein
jurul valorii exacte si pot avea cauze diferite de la instabilitatea parametrului masurat (de
exemplu debitul unui fluid este afestat de turbulente) pina la perturbatii electrice induse in
cablurile prin care se realizeaza conectarea traductoarelor la sistemul de achizitie.
Datorita faptului ca aceste zgomote au un spectru de frecventa situat deasupra spectrului de
frecventa al parametrului masurat calea cea mai eficienta de eliminare a zgomotelor este
filtrarea prin filtre de tip trece-jos. Acest proces de filtrare este exemplificat in figura
urmatoare:
Aceasta operatie de filtrare se poate realiza prin filtre electronice care insa sint
destul de costisitoare, cu caracteristici destul de diferite de cele ideale si foarte
putin flexibile (greu de adaptat caracteristicilor particulare ale fiecarui semnal) si
de aceea este foarte indicata realizarea acestora prin module software (filtre
numerice). Aceste filtre prelucreaza informatia in forma esantionata cu o
31
frecventa corespunzatoare (mai mare decit dublul limitei maxime a spectrului
zgomotului). Relatia de calcul a valorii filtrate a unui semnal este:
unde,
K - indicele esantionului curent;
N - ordinul filtrului;
YFK-I - valoarea filtrata la esantionul K-I;
YK-I - valoarea nefiltrata (de intrare) la esantionul K-I
AI , BI - coeficientii filtrului obtinuti prin discretizarea unui filtru continuu cu functia de
transfer ;
Operatia de filtrare numerica consta in trecerea datelor achizitionate prin functia de transfer
(discreta) a unui filtru si eliminarea perturbatiilor sau a unor componente ale acestora. Exista
in practica un numar foarte mare de tipuri de astfel de filtre numerice.
Ex.: filtru numeric de ordinul I are functia de transfer
sau
In alegerea coeficientilor trebuie avuta in vederea amplificarea statica a filtrului care poate
afecta semnalul filtrat.
SPAB – Semnal Pseudo Aleator Binar
Din considerente teoretice, semnalul de proba cu care este excitat procesul trebuie sa fie un
semnal caracterizat de un spectru de frecventa larg si a carui valoare medie si variatie
corespunde unei comenzi care mentine procesul in jurul unui punct de functionare nominal.
Pentru simplitate in practica identificarii, se utilizeaza un semnal pseudo-aleator binar
(SPAB).
Mecanismul de generare a unui astfel se semnal este prezentat in figura de mai jos si are la
baza un registru de deplasare binar care este incarcat serie de o valoare obtinuta printr-o
reactie de tip suma modulo 2 a valorilor continute intr-un set de celule ale registrului. La
fiecare tact informatia continuta in registru se deplaseaza cu o celula, prima celula primind
valoarea pe care o avea reactia inainte de efectuarea deplasarii.
32
- spectrul semnalului este uniform in domeniul de frecvente de la 0 la jumatate din frecventa
tactului.
Daca valorilor ‘0’ si ‘1’ dintr-o celula oarecare se asociaza doua valori pentru comanda
procesului astfel incit media si ecartul dintre ele sa corespunda punctului de functionare dorit
se obtine un semnal de proba care intruneste toate caracteristicile necesare.
Pentru efectuarea unui experiment de identificare utilizand un semnal de proba de tip pseudo-
aleator binar este necesara precizarea parametrilor care caracterizeaza acest tip de semnal. Pe
linga valorile comenzilor care se aleg dupa punctul de functionare dorit, trebuiesc indicati doi
parametrii esentiali si anume lungimea registrului si perioada tactului de deplasare.
Prin legatura dintre lungimea registrului si perioada de repetitie a semnalului generat, si
anume PR = 2N se poate deduce ca timpul dupa care comanda generata de un astfel de
mecanism incepe sa se repete este TR = T 2N, unde T este perioada tactului de deplasare.
Pentru ca datele obtinute in urma experimentului sa fie relevante asupra dinamicii procesului,
perioada T se alege astfel incat sa corespunda constantelor de timp existente in proces si
anume sa fie in jurul valorii constantei celei mai mici. Aceasta alegere se face experimental
deoarece nu exista informatie initiala referitoare la constantele de timp (acesta fiind de fapt
scopul identificarii). Valoarea lungimii registrului N se alege de asa natura incat sa asigure o
durata a experimentului suficienta fara a apare fenomenul repetitiei comenzilor. Durata
experimentului se determina tot experimental pentru a asigura un compromis intre cantitatea
de informatie obtinuta care trebuie sa fie suficient de mare si durata efectiva a experimentului
care nu poate fi oricat de mare.
Timp real
Notiunea de timp real presupune desfasurarea operatiilor ce tin de conducerea numerica
respectiv, identificare, calcul comanda, afisare etc. cu respectarea stricta a perioadei de
esantionare, in intervalul unei cuante de timp.
Perioada de esantionare
Reprezinta intervalul intre doua esantionari ale valorilor citite din proces.
Alegerea peroiadei de esantionare se face in functie de tipul procesului si de
constantele de timp ale acestuia. In tabelul urmator sunt date valorile orientative
ale acesteia in secunde, in finctie de tipul procesului:
33
Caracteristica statica a unui sistem reprezinta modul de variartie a amplificarii sistemului in
functie de punctele de functionare, sistemul aflandu-se in fiecare din acestea intr-un regim
stationar.
Amplificarea statica
Este definita in general in jurul unui punct de functionare, sistemul aflandu-se in regim
stationar. Numeric, aceasta se poate calcula precand de la modelul matematic al procesului:
Regim tranzitoriu
Reprezinta starea unui sistem care se "indreapta" de la o stare initiala stabila catre o alta stare
finala stabila. Regimirile tranzitorii sunt generate de schimbarea valorii pentru referinta
sistemului sau la aparitia unei perturbatii persistente sau nepersistemte asupra sistemului.
Regim stationar
Caracterizeaza un sistem ce "sta linistit" pe un palier al referintei un anumit interval de timp
fara modificarea masurii acestuia.
Metoda interpolarii
Interpolarea sau desenarea prin interpolare are ca efect gasirea unor puncte intermediare (ale
graficului) in afara celor date initial astfel incat sa poata fi vizualizata o curba (sau o functie
care descrie o curba) ce trece prin sau printre aceste puncte.
Metoda dreptunghiului
Reprezinta in contextul informatiilor legate de acest sistem, o metoda de aproximare a
procesului de discretizare a unui sistem continuu in scopul obtinerii echivalentului discret.
Formula de aproximarea este data de relatia urmatoare:
Metoda tangentei
Reprezinta in contextul informatiilor legate de acest sistem, o metoda de aproximare a
procesului de discretizare a unui sistem continuu in scopul obtinerii echivalentului continuu.
Formula de aproximarea este data de relatia urmatoare:
Masura
Reprezinta valoarea achizitionata a parametrului din proces in vederea monitorizarii sau
reglarii de catre un sistem de conducere.
Comanda
Reprezinta marimea trimisa in proces, catre un element de executie eventual, in vederea
conducerii acestuia.
Eroare de reglare
Reprezinta diferenta dintre referinta sistemului de reglare si marimea controlata (masura).
Aceasta marime este necesara in calculul comenzii regulatorului si este o caracteristica a
performantei sistemului de reglare.
Eroare integrata
Reprezinta integrala pe un interval de timp infinit sau limitat a variatiei erorii de reglare a
unui sistem. Aceasta marime este folosita in cadrul componentei de supervizare a sistemului.
34
Polii unui sistem
Reprezinta radacinile polinomului caracteristic sau ale polinomului ce descrie numitorul
sistemului. Aceste radacini determina principalele performante in cazul unui sistem ce reglare
conectat in bucla inchisa.
Zerourile unui sistem
Reprezinta radacinile polinomului ce descrie numaratorul functiei de transfer a unui sistem.
Functia de sensibilitate
Functia de sensibilitate (perturbatie - iesire) a unui sistem in bucla inchisa caracterizeaza
modul in care se "vad" in iesirea y perturbatiile p ce actioneaza asupra sistemului. Pentru
structura de reglare R-S-T prezentata in figura de mai jos functia de sensibilitate perturbatie
iesire estede urmatoarea forma:
Curba (hodograful) functiei de transfer in acest plan este gradata in frecvente si se numeste
loc de transfer Nyquist.
Margine de modul
Defineste valoarea maxima a modululuifunctiei de sensibilitate perturbatie-iesire deci, si
limitele inferioare pentru rejectia perturbatiilor. Valori tipice dM>0.5 (-6dB), [min:0.4 (-
8dB)].
Margine de amplificare
Masoara cresterea maxim admisa a amplificarii la frecventa la care defazajul este -180. Valori
tipice: dG>=2 (6dB), [min: 1.64dB)];
Margine de intarziere
Intarzierea suplimentara tolerata de sistem in bucla deschisa, ce nu conduce la instabilitatea
sistemului in bucla inchisa.
Margine de faza
Reprezinta faza suplimentara care adaugata la frecventa la care amplificarea sistemului in
bucla deschisa este unitara, pentru a obt. un defazaj de –180 grade. Valori tipice: 30<dF<60.
35