Sisteme Inteligente Si Microcontrolere
Introducere
Lotfi Zadeh a considerat necesitatea introducerii algoritmilor fuzzy deoarece a constatat: cu cat o problema este mai complexa, cu atat mai greu se poate rezolva algoritmic; si chiar daca se ajunge la un rezultat matematic, acesta din punct de vedere al volumului de calcul nu este convenabil. Intr-unul dintre primele lui articole, L. Zadeh a enuntat principiul incompatibilitatii dintre precizie si complexitate, care se manifesta puternic la sistemele umanoide. Acest principiu era deja cunoscut si de Albert Einstein: "Atata timp cat legile matematicii se refera la realitate, ele nu sunt precise. Iar pana cand ele sunt precise, nu se mai refera la realitate." (Geometria und Erfahrung).
In situatiile in care un sistem sau un proces este foarte complex, sau/si este afectat
de incertitudini profunde, metodele matematice clasice, exacte nu mai conduc la solutii
convenabile. Cu toate ca nu se cunosc metode exacte de a solutiona optimal astfel de
probleme complexe, operatorul uman deseori le rezolva cu succes folosind algoritmi euristici, imprecisi si intuitivi. Chiar si sistemele si procesele foarte complexe pot fi rezolvate de operatorul uman utilizand rationamentul aproximativ .
Daca se doreste a modela "algoritmul" utilizat de conducatorul auto, probabil ca cea mai buna estimare ar fi descrierea cunostintelor, informatiilor inmagazinate in regulile utilizate. Regulile de baza se formeaza pe durata de instruire. Colectia de reguli acumulata se largeste si se specifica in mod continuu odata cu cresterea experientei.
Logica fuzzy este o metoda aproximativa prin care aceste cunostinte vagi, inmaganizate intr-o baza de reguli, se pot modela formal.
Transpunerea in practica a sistemelor fuzzy se datoreaza avantajelor ce le prezinta in urmatoarele situatii specifice:
permit modelarea sistemelor neliniare, complexe sau imprecis cunoscute,
permit transpunerea experientei umane in constituirea regulilor de inferenta, utilizand variabile lingvistice.
Logica fuzzy este de fapt o tehnica de calcul cu ajutorul careia in rezolvarea unor probleme specifice, se pot obtine performante superioare fata de metodele clasice, exacte. Sistemele
fuzzy totodata au un comportament foarte bun in prezenta incertitudinii, impreciziei si a
zgomotului.
Cat de bine lucreaza sisteme fuzzy sau retelele neurale o demonstreaza larga raspandire a acestora in ultimii ani in lumea intreaga. Se cunosc deja o serie de aplicatii consacrate ale logicii fuzzy in diferite domenii ale stiintei: in controlul automat (reglari de temperatura, comanda vitezei metroului, autofocalizarea camerelor video), in recunoasterea formelor (algoritmi de clasificare fuzzy), in masurari (prelucrarea informatiilor furnizate de senzori), in medicina (controlul simulatoarelor cardiace), in economie (metode de decizie fuzzy), in psihologie cognitiva (modelare fuzzy a sistemului de vedere).
Capitolele I si II sunt destinate partii teoretice, in care dorim familiarizarea cititorului cu teoria logicii fuzzy, controlul fuzzy, ce inseamna si ce sunt sistemele de conducere inteligenta.
Capitolul III si capitolul IV sunt destinate prezentarii arhitecurii microcontrolerelor in general si exemplificarea acestora prin familiile 8051 si 8031. In Capitloul V este prezentata aplicatia realizata in SieFuzzy care poate fi conectata la un proces real prin intermediul unui microcontroler 8051.
Capitolul I
Conducerea inteligenta a proceselor
1.1 O scurta privire asupra conducerea inteligenta a proceselor
Controlul inteligent in automatizari este radical diferit fata de metodele clasice de reglare cu toate ca se bazeaza pe aceleasi principii: un set de cunostinte apriorice despre procesul vizat si cerintele de performante impuse sistemului automat. Totusi, studiile teoretice si chiar realizari experimentale sau industriale sau industriale evidentiaza cu pregnanta un nou mod de abordare a problemelor. Diferitele controlere inteligente (neurale, fuzzy, fuzzy-neurale sau combinatii ale lor obtinute asistat de algoritmi genetici) pot fi considerate in general aproximatori de functii neliniare. Fata de estimatorii conventionali de functii se pot enunta o serie de avantaje:
Procesul de proiectare nu impune cunoasterea modelului procesului (in multe aplicatii este dificil a exprima exact ecuatii ce descriu dinamica reala a procesului condus, iar pe de alta parte, chiar daca se obtine modelul matematic acesta include totdeauna incertitudini datorita variatiilor reale a unor parametrii, perturbatiilor aleatoare sau neliniaritatilor ce nu pot fi determinate in timpul fazei de proiectare);
Performantele de regim tranzitoriu si robustetea reglarii pot fi imbunatatite (aspecte ce pot fi demonstrate prin compararea experimentala a raspunsurilor aceluias sistem, prima data condus cu un regulator PID optimal clasic, iar a doua oara cu un controler logic fuzzy);
Proiectarea se poate face exclusiv pe baza unor informatii lingvistice furnizate de catre experti sau adunate prin alte tehnici;
In absenta informatiilor furnizate de catre expert, proiectarea se poate face pe baza raspunsurilor sistemului obtinute cu seturi de date de intrare experimentale. Evident ca pot fi utilizate si metode mixte, care conbina informatiile lingvistice cu cele experimentale;
Structurile obtinute au un nivel de generalitate (dau estimatii bune atunci cand sunt utilizate noi seturi de date de intrare, altele decat folosite in proiectare). In consecinta se obtine o interdependenta fata de caracteristicile particulare ale elementului de executie (in special motoarele electrice)). Algoritmii actuali de control, bazati pe tehnici neinteligente, lucreaza pe probleme specifice si satisfac conditii de performante impuse pentru o clasa redusa a semnalelor de intrare. Putem spune ca fiecare aplicatie trebuie analizata individual, adica o problema specifica se rezolva cu un algoritm specific. Un exemplu este regulatorul adaptiv clasic care, pe masura ce acumuleaza noi informatii despre dinamica modelului procesului condus, isi modifica si propria lege de conducere.
Structurile pentru controlul inteligent sunt flexibile, putand fi oricand modificate sau extinse pentru adaptarea la alte situatii, prin simpla incorporare de noi cunostinte, reguli si date.
Pot fi gasite solutii de reglare procese ce nu pot fi abordate prin metode conventionale
Controlerele inteligente impun abordari diferite in proiectare, in functie de tehnica folosita. Astfel la cele bazate pe retele neurale conventionale se stabileste mai intai o topografie fixa a retelei dupa care aceasta este instruita pe baza unui algoritm de invatare, ce urmareste in general minimizarea unui criteriu de cost sau a unei erori. Topologia fixa, apriori stabilita, impune restrictii retelei si poate duce la cresterea nepermis de mare a timpului de calcul in procesul de invatare. De aceea, sunt cautate retele cu topologie adaptiva si algoritmi euristici neconventionali pentru accelerarea instruirii. Daca se utilizeaza controlere fuzzy conventionale, se stabileste mai intai valorile initiale ale regulilor si functiilor de apartenenta. Aceasta este o procedura dificila si chiar inacceptabila atunci cand nu sunt disponibile apriori aceste informatii expert despre sistem. Totusi se intrevad, si aici solutii, prin utilizarea unor regulatoare adaptive hibride, de tip fuzzy – neural.
Solutiile bazate pe inteligenta artificiala (AAI) sunt doua controlul indiresct sau direct. In primul caz, se utilizeaza un modul pentru identificarea on-line a modelului procesului condus, model ce este utilizat pentru proiectarea controlerului. Intrarile si iesirile sistemului trebuie sa fie disponibile la fiecare pas de esantionare.
Adaptarea directa, procesulreprezentat printr-o tabela de performanta care este utilizata pentru determinarea raspunsului curent utilizand anumite calitati – cum ar fi eraoarea sau modificarea erorii intre doua momente consecutive de esantionare. Cand se utilizeaza un controler fuzzy, cea mai simpla posibilitate de adaptare este cea a factorului de scalare, care schimba clasificarea variabilelor de intrare sau prin modificarea formei functiilor de apartenenta.
Aceasta solutie se poate implementa in actionarile neadaptive, existente in industrie. O solutie adaptiva poate fi modificarea bazei de reguli, la fiecare pas de esantionare estimandu-se nivelul de performante obtinut cu vechile reguli si ajustandu-le pe acestea corespunzator.
Adaptarea asistata de algoritmi genetici pentru controlere fuzzy sau neurale ofera o tehnica de proiectare a acestora sistematica si simplu de implementare. Se obtin solutii robuste, configurari topologice, minimale, autoinvatare rapida si convergenta imediata.
In realizarea unui sistem de conducere inteligent trebuie urmarit un ciclu de dezvoltare conform schemei din Figura 1.
Primul pas al ciclului il reprezinta analiza problemei si contine doua etape distincte:
Identificarea si descompunerea in subprobleme. O problema complexa, cum ar fi de exemplu fabricatia unor produse pe o linie de asamblare, se poate descompune in subprobleme aproximarii cu semifabricate, asamblarii propriu-zise, controlului de calitate si depozitarea pieselor finite. Evident ca problemele simple sa rezolva ca atare.
Identificarea proprietatilor problemei. Daca am facut o descompunere, identificarea se face pe subprobleme si trebuie sa evidentieze nevoile de achizitie automata de cunostinte, accesibilitatea fizica a acestora, conditiile de lucru (si gradul de modificare al acestora, pentru evitarea cerintelor de robustete), cerinte pentru explicarea deciziilor, etc.
Urmatorul pas urmareste alegerea tehnicilor de lucru adecvate pentru fiecare subproblema, in functie de proprietetile identificate. Se tine seama atat de capabilitatea fiecarei tehnici in rezolvarea problemei cat si de disponibilitatile de calcul de care se dispune si de compabilitatea intre tehnici diferite. Pe aceasta baza se stabileste concret, in pasul trei, tehnica ce va fi utilizata. In anumite situatii solutia optima este alegerea unei metode hibride.
Implementarea sistemului de control inteligent implica alegerea mediului de programare potrivit si stabilirea celorlalte cerinte necesare realizarii practice.
Programarea Orientata pe Obiecte (POO) reprezinta modelul natural pentru implementare. In aceasta abordare, seturi de obiecte interactioneaza intre ele prin comutarea unor mesaje. Acestea nu contin numai date, ci si operatii ce vor fi executate de obiectele receptoare. Reactiile obiectelor la un mesaj sunt diferite, in functie de procedurile care au fost incapsulate in ele. Deoarece obiectele au interfete de comunicatie similare, manevrarea lor se face la fel.
Utilizarea POO pentru reprezentarea diferitelor tehnici inteligente impune cateva stiluri de prelucrare. Totusi, pentru asigurarea compatibilitatii comunicarii si schimburilor de informatii cu alte sisteme de control, se impune adoptarea unui protocol pentru schimburi de date. Cele mai larg acceptate astfel de protocoale in aplicatii industriale sunt DDE (Dynamic Data Exchange) si OLE (Object Linckingand Embedding). DDE ofera un mecanism de transport de nivel scazut, pentru informatii de tip fine grain (mici bucati de date), pe cand OLE este un protocol de nivel inalt, pentru informatii de tip cose grain (de fapt, obiecte) transportate intre diferitele aplicatii.
Faza de validare este utiliztata pentru testarea si verificarea functionarii componentelor individuale ale aplicatiei. Daca sunt descoperite anomalii de functionare, atunci se iau masuri de corectie sau, in cazuri mai grave, de reproiectare.
Sarcinile fazei de mentenanta constau in evaluarea periodica a performantelor sistemului si efectuarea unor ajustari sau imbunatatiri. Etapa este importanta pentru componentele adaptive (retele neurale, algoritmi genetici) care isi pot degrada performantele la schimbarea parametrilor mediului de lucru, daca nu sunt reinstruite cu date noi.
1.2 Cateva tehnici de conducere te interactioneaza intre ele prin comutarea unor mesaje. Acestea nu contin numai date, ci si operatii ce vor fi executate de obiectele receptoare. Reactiile obiectelor la un mesaj sunt diferite, in functie de procedurile care au fost incapsulate in ele. Deoarece obiectele au interfete de comunicatie similare, manevrarea lor se face la fel.
Utilizarea POO pentru reprezentarea diferitelor tehnici inteligente impune cateva stiluri de prelucrare. Totusi, pentru asigurarea compatibilitatii comunicarii si schimburilor de informatii cu alte sisteme de control, se impune adoptarea unui protocol pentru schimburi de date. Cele mai larg acceptate astfel de protocoale in aplicatii industriale sunt DDE (Dynamic Data Exchange) si OLE (Object Linckingand Embedding). DDE ofera un mecanism de transport de nivel scazut, pentru informatii de tip fine grain (mici bucati de date), pe cand OLE este un protocol de nivel inalt, pentru informatii de tip cose grain (de fapt, obiecte) transportate intre diferitele aplicatii.
Faza de validare este utiliztata pentru testarea si verificarea functionarii componentelor individuale ale aplicatiei. Daca sunt descoperite anomalii de functionare, atunci se iau masuri de corectie sau, in cazuri mai grave, de reproiectare.
Sarcinile fazei de mentenanta constau in evaluarea periodica a performantelor sistemului si efectuarea unor ajustari sau imbunatatiri. Etapa este importanta pentru componentele adaptive (retele neurale, algoritmi genetici) care isi pot degrada performantele la schimbarea parametrilor mediului de lucru, daca nu sunt reinstruite cu date noi.
1.2 Cateva tehnici de conducere inteligenta
1.2.1 Controlul Fuzzy
Numeroase procese industriale nu se pot conduce convenabil prin procedee clasice datorita dificultatilor de modelare, neliniaritatilor puternice sau lipsei datelor cantitative referitoare la intrari si iesiri. Astfel de procese pot fi insa conduse facil de catre operatori umani, pe baza unor reguli de operare cu un profund caracter euristic si intuitiv. Operatorii lucreaza in conditii de imprecizie si au la dispozitie informatii cantitative despre proces. Teoria controlului fuzzy se ocupa de acest aspect uman al procesului de reglare.
Alternativa din ce in ce mai utilizata in supravegherea si conducerea unor procese complexe o reprezinta sistemele de decizie bazate pe reguli. In aceste cazuri, teoria fuzzy reprezinta o metoda de formalizare analitica foarte puternica, oferind posibilitatea combinarii elegante a calculuilui numeric cu cel simbolic.
Regulatoarele fuzzy, sau regulatoarele lingvistice, se pot diferentia in trei clase:
Regulator Mamdani, care reprezinta tipul uzual;
Regulator Sugeno;
Regulatoare probabilistice
1.2.1.1 Controlerul fuzzy elementar
Un controler fuzzy elementar se compune din urmatoarele module:
Intrare (I)
Numere fuzzy (NF)
Iesire (E)
Reguli (R)
Interfata sau evaluare (IF)
Defuzificarea (DF)
Controler fuzzy elementar
Modulul Intrare implementeaza urmatoarele functii:
Achizitia iesirii y a procesului
Calculul erorii de urmarire si a derivatelor acesteia de ordin 1, 2, …, k, cerute de algoritmul de reglare
Scalarea marimilor ei calculate mai sus, astfel incat, la fiecare pas de esantionare sa rezulte Ei = Ki * ei apartinand intervalului [-1,1]. In general se utilizeaza erorea scalata E1 si derivata acesteia , E2.
Modulul Numere Fuzzy ofera N numere fuzzy R(j). acestea sunt submultimi fuzzy ale dreptei reale cu functii de apartenenta egal departate de [-1,1]. Aceste numere definesc variabilele lingvistice care apar in antecedentele regulilor de control fuzzy. Spre exemplu, pentru N = 3, numerele fuzzy se pot interpreta ca R(1) = negativa, R(2) = zero, R(3) = pozitiva. De obicei R(1) este centrata in –1, R(2) in 0 si R(3) in 1, iar definirea este facuta printr-o functie de apartenenta de forma trapezoidala, triunghiulara sau gaussiana.
Modulul Iesire furnizeaza iesirea primara a regulatorului, care este o multime fuzzy 0, ale carei elemente sunt numerle fuzzy 0(I):
0 = { D(1)/0(1), …, D(L)/0(L)} unde D(I) este valoarea de apartenenta a lui 0(I) la 0.
Numerle fuzzy 0(I) definesc variabilele lingvistice folosite in parte de consecinte a regulilor de control fuzzy.
Modulul Reguli este o tabela a regulatorului careia I se asociaza o functie de concluzie P. Daca W este multimea tuturor vectorilor de tip w = (x1, x2), cu xI = {1,2,3}, se considera urmatoarele exemple:
Daca w = (1,3), atunci antecedentul acestei reguli de control fuzzy este “daca [ r1= R(1) si r2 = R(2)] atunci …” sau, lingvistiv ” daca [r1 = negativ si r2 = pozitiv] atunci …”
Completand exemplul 1, fie I = 5 si P(1, 3) = 0(4) (functia de concluzie
P : W {0(1), I = 1, n}). Vom interpreta numerele fuzzy 0(I) ca:
0(1) = negativ mare, 0(2) = negativ mic, 0(3) = zero, 0(4) = pozitiv mic,
0(5) = pozitiv mare.
Atunci regula de control fuzzy este:
“daca [ r1= “negativ” si r2 = “pozitiv”] atunci [iesirea = “pozitiv mic”] ”
In concluzie regulile de control fuzzy sunt complet specificate prin functia de concluzie P.
Modulul Interfata realizeaza evaluarea reguliilor de control fuzzy. Se utilizeaza doua metode de baza, ponderile de tip sistem expert si procedurile bazate pe rationament aproximativ (logica fuzzy). A doua procedura de evaluare este folosita de majoritatea regulatoarelor fuzzy elementare. Ideea ei de baza este de a interpreta o regula de control fuzzy ca o implicatie. Ideea ei de baza este de a interpreta o regula de control fuzzy ca o implicatie in rationamentul aproximativ si de a folosi regula compozitionala a lui Zadek pentru a evalua inferenta, dandu-se intrarile r1 si r2.
Modulul Defuzificare are ca functie generala comenzi catre proces pe baza concluziilor date de modelul interferenta. Iesirile acestuia constauintr-o multime fuzzy de forma:
0 = { u(1)/0(1), …, u(I)/0(I)}, unde u(I) gradul de apartenenta si 0(I) variabile lingvistice utilizate ca o consecinta a regulilor de reglare.
Defuzificarea reprezinta transformarea unei multimi fuzzy in increment al comenzii Du, astfel incat comanda va fi :
u(t) = u (t-1) + kuxDu
Algoritmii pentru defuzificare utilizabili sunt de mai multe tipuri.
Defuzificarea ES sau media fuzzy – fuzzy mean – elaboreaza incremente ale comenzii de forma :
u = cv(i)u(i) pentru cazul liniar sau:
u = cv(i)u(i)/ u(i) pentru cazul neliniar, unde cv(I) reprezinta valoarea centrala a variabilei fuzzy, iar u(I) gradul de apartenenta.
Defuzificarea prin rationament fuzzy se face fie calculand media maximului, adica media tuturor valorilor al caror grad de apartenenta este maxim, fie calculand centrul de greutate al multimii fuzzy de iesire, aceasta metoda fiind ideala din punct de vedere al robustetei algoritmului de reglare, avand insa dezavantajul major al timpului crescut de calcul.
1.2.1.2 Controlerul Mamdani
Vom prezenta acest controler printr-un exemplu, pentru a oferi un suport mai bun a conceptelor. Regulatorul opereaza la intrare cu eroare si variatia acesteia., iar la iesire elaboreaza incremente ale comenzii. Pentru cele trei marimi considerate vom alege cate cinci numere fuzzy de descriere: pozitiv mare (PB), pozitiv mediu (PM), pozitiv mic (PS), zero (ZE), negativ mic (NS), negativ mediu (NM), negativ mare (NB). Cele cinci numere sunt descrise prin functii de apartenenta care satisfac urmatoarele cerinte:
Sunt convexe
Nu se suprapun simultan mai mult de doua
Suma lor este 1 in punctele de suprapunere.
In exemplu se considera 10 intervale de cuantificarepentru fiecare domeniu de variatiea celor trei marimi (cuprinse intre –5 si 5). Forma functiilor de apartenenta este triunghiulara sau trapzoidala ca in figura urmatoare.
Regulile utilizate sunt de forma
DACA eroare = v1 S1 variatia erorii = v2 ATUNCI iesire = v3
Ele sunt sintetizate in urmatorul tabel de decizie:
In tabela, er = eroare = referinta – iesire, Der = variatia erorii = er (k) – er (k-1)
Din multimea tuturor regulilor posibile 7 x 7 x 7 s-au considerat cele de mai sus, pe baza univocitatii (la o pereche de intrari sa avem aceleasi iesire) si a condiilor de negativitate a reactiei inverse. Regulile nu sunt optimale.
Ca regula de defuzificare s-a ales metoda espert, care este rapida si robusta. Astfel daca er = -3.5, iar Der = 0.25, avem:
Variatia erorii = {0.75/ZE, 0.25/PS} si
Eroare = {0.5/NM, 0.5/NB}
Deci regulile care vor fi aplicate sunt:
DACA er = NM SI Der = ZE ATUNCI cda = NM
DACA er = NB SI Der = ZE ATUNCI cda = NB
DACA er = NM SI Der = PS ATUNCI cda = NS
DACA er = NB SI Der = PS ATUNCI cda = NM
Prin evaluare, comanda va avea un grad de apartenenta:
cda = {0.5/NM, 0.5/NB, 0.25/NS, 0.25/NM}
Se remarca faptul ca la doua reguli diferite avem aceiasi concluzie. In acest caz se considera maximul din cele doua grade de apartenenta si este luat in calcul la defuzificare.
1.2.2 Controlul neuronal
O retea neuronala (NN) poate modela sisteme neliniare dinamice. Este posibil ca aceste modele neliniare sa fie incorporate in structuri de reglare. In acest cotext, NN sunt primite ca un cadreu de reprezentare a cunostintelor care stocheaza dinamica procesului si caracteristicile modelului acestuia. Asa cum functiile de transfer permit o reprezentare generica pentru modele liniare, retelele neuronale au potential de reprezentare a sistemelor neliniare “cutie neagra”. Abilitatea retelei de a putea aproxima raspunsuri neliniare este esentiala in aceasta actiune
1.2.2.1 Structuri de control utilizand NN
Modelele directe si inverse ale sistemelor dinamice pot fi utilizate imediat pentru reglare. Au fost propuse un mare numar de structuri de control bazate pe NN. Mai intai vom prezenta doua metode de reglare directa: reglarea prin supervizare si reglarea cu modul invers.
Reglarea prin supervizare se bazeaza pe realitatea ca in numeroase situatii omul executa actiuni de control in situatii particulare unde este dificil a proiecta un regulator automat utilizand tehnicile standard, mai ales datorita imposibilitatii de a obtine un model analitic al sistemelor reglate. Ar fi astfel de dorit sa se proiecteze un regulator automat care sa imite actiunile omului, adica sa efectueze reglarea prin supraveghere. Retelele neuronale furnizeaza o solutie alternativa. La sistemele expert pentru implementarea unor astfel de tehnici. Instruirea retelei este similara in principiu cu invatarea unui model direct.
In acest caz totusi, intrarile retelei corespund informatiilor senzorilor de intrare primite de operatorul uman, iar iesirile dorite utilizate pentru instruire corespund comenzilor umane de control aplicate sistemului. In acest fel au fost solutionate probleme diverse ca, de exemplu, controlul caruciorului cu pendul (pole-cart problem) .
Reglarea cu model invers utilizeaza, evident, un model invers al procesului cuplat in cascada cu sistemul condu, astfel incat ansamblul rezultat da o traiectorie identica intre raspunsul dorit adica referinta retelei si sistemul reglat. Aici reteaua este inclusa direct in regulator. Metoda este frecvent utilizata in aplicatiile cu roboti. Datorita problemelor de robustete ce pot aparea in functie de precizia modelului invers utilizat in regulator si datorita absentei reactiei negative, se recomanda utilizarea instruirii on – line, in care parametrii modelului invers sunt ajustati in permanenta.
In ultimul timp au fost propuse si tehici de reglare mai sofisticate, utilizand NN, cum ar fi controlul cu model de referinta, cu model intern sau control predictiv.
Reglarea cu model de referinta consta in specificarea performantelor sistemului in bucla inchisa printr-un model de referinta M, care este definit prin perechile de intrare – iesire {r(t), yr(t)}. Sistemul de reglare auromata va impune iesirii procesului yp(t) o evolutie asimptotica catre yr, adica:
O structura de reglare pentru un sistem neliniar utilizand un model intern conectionist este prezentata in figura urmatoare:
In aceasta structura eroarea definita mai sus este utilizata pentru invatarea retelei care reprezinta microcontrolerul. Metoda este evident legata de invatarea unui model invers M1 al procesului, iar procedura de instruire a controlerului urmareste sa-l forteze sa anuleze amplificarea inversului, in sensul definit de modelul de referinta.
Reglarea cu model intern (Internal Model Control – IMC ) acumuleaza rolul sistemului si al modelului invers, care sunt utilizate direct ca elemente in interiorul buclei de reactie. IMC a fost suficient studiat si au fost demonstrate proprietatile sale de stabilitate si robustete.
Ca in Figura , un model al sistemului este plasat in paralel cu sistemul real. Diferenta intre cele doua iesiri este utilizata cu semnal de reactie.
Acest semnal este prelucrat de un subsistem de reglare F1 de pe calea directa.
Proprietatile IMC dicteaza daca aceasta parte a controlerului poate fi legata de inversul sistemului. Date modelele retelei pentru sistemul direct si dinamica inversa, realizarea controlului IMC e simpla. Modelul direct M si al controlerului C (model invers) utilizeaza retele neurale din figura. Subsistemul F este utilizat ca un filtru, proiectat de asa maniera incat sa introduca o anumita robustete si sa transforme raspunsul sistemului in bucla inchisa.
Implementarile cu IMC sunt limitate numai pentru sisteme stabile in bucla deschisa, acolo unde teoria este bine pusa la punct. Aceasta releva un numar de proprietati agreabile, prin care:
Presupunand ca procesul si regulatorul sunt stabile intrare – iesire si ca modelul M este reprezentarea perfecta a procesului, atunci sistemul in bucla inchisa este stabil intrare – iesire.
Presupunand ca inversul operatorului modelului procesului exista si ca acest invers este utilizat ca regulator (astfel incat sistemul in bucla inchisa este stabil intrare – iesire cu acest controler), atunci reglarea va fi perfecta, adica yp = ys.
Presupunand ca inversul unui model de stare exista, ca operatorul controlerului de stare este egal cu acesta si ca sistemul bucla inchisa cu acest controler este stabil intrare – iesire, atunci regimul tranzitoriu constant este atins pentru intrari asimptotice constante.
Structura IC permite o metoda directa pentru proiectarea regulatoarelor neliniare cu reactie. Conform proprietatilor de mai sus, daca un bun model al procesului este ales, sistemul in bucla inchisa va urmari exact referinta, in ciuda perturbatiilor nemasurabile ce actioneaza asupra procesului real. In practica, un model ideal nu poate fi obtinut niciodata. Filtrul F contribuie la o apropiere de acest caz ideal, aducand robustete sistemului cu IMC.
Reglarea predictiva presupune efectuarea urmatorilor pasi:
Predictia iesirii sistemului pentru un anumit orizont viitor de timp
Presupunand ca iesirile viitoare dorite sunt cunoscute, se alege un set de comenzi viitoare, u, care sa minimizeze eroare viitoare intre iesirile predictate si cele dorite.
Utilizand primul set U de intrare, se repeta intreaga procedura pentru urmatorul moment de esantionare.
Se poate demonstra ca metoda poate stabiliza sisteme liniare, cat si neliniare. Pentru atingerea obiectivului de a elabora o comanda astfel incat eroarea asupra orizontului viitor sa fie minima, functia de cost are forma urmatoare:
unde:
yr – este iesirea modelului de referinta (iesirea dorita)
ym – este iesirea modelului procesului.
Primul termen al functiei cost este o masura a distantei intre predictia modelului si traiectoria viitoare dorita. Al doilea termen penalizeaza variatiile excesive ale variabilei modificate.
O structura de control conectionist predictiv este aratata in figura :
Capitolul II
Sisteme inteligente . Proprietai
Pana in ultimii ani, tehnicile de reglare bazate pe inteligenta artificiala (IA) nu au fost considerate o alternativa serioasa la tehnicile convenaionale clasice. Totusi, dezvoltarile recente ale teoriei modeme a reglarii automate sunt orientate din ce in ce mai des catre solutii alternative care renunta la strategiile clasice de proiectare a regulatoarelor in favoarea tehnicilor de inteligenta artificiala bazate pe algoritmi implementati pe microcalculatoare. Aceste tehnici se refera la in special la , retele neurale, algoritmi genetici sau solutii hibride ( fuzzy – neural, genetic – neural, etc.).
Sistemele inteligente au cateva proprietati remarcabile-achizitia de cunostinte, robustetea , rationamerntul si explicarea.
Achizitia de cunostinte este etapa cruciala in dezvoltarea sistemelor inteligente, insumand culegerea, interpretarea si reprezentarea unor informatii cognitive despre domeniul ales. O structura consacrata pentru achizitia de cunostinte este reprezentata de sistemele expert. Ele colecteaza intr-o baza de cunostinte experienta specialistilor umani. Aceste informatii sunt utilizate pentru rezolvarea unor probleme sau luarea unor decizii pe baza unui set de reguli de inteifereta, apriori stabiliti. De aceea , sistemele expert sunt limitat completate, in conditii operationale limitate, fara avea mecanisme capabile de a face schimbari in procedurile de elaborare a deciziilor sau de adaptare la schimbarile mediului de operare. Datorita acestor probleme, tehnici ca retelele neurale sau algoritmi genetici, care pot fi instruite cu seturi de date, au avantaje nete. Aici orizontul deciziilor posibile este invatat, putand fi adaptat la schimbari ce apar in timp.
Un sistem inteligent nu este robust daca raspunde corespunzator numai in anumite domenii de lucru si cere o substantiala interventie umana pentru a se adapta unui domeniu nou.. Cu alte cuvinte , acest sistem nu este pot sa opereze cu cunostinte inexacte, incomplete sau inconsistente. Cauzele nerobustetei sunt doua – structura de reprezentare inadecvata si mecanismul de rationare. La sistemele expert, cunostintele sunt reprezentate prin simboluri discrete, iar rationarea consta in operatii logice asupra acestora Dimpotriva, intr-o retea neurala reprezentarile sunt numerice, legate intre ele prin conexiuni. O cunostinta se reprezinta prin ansamblul valonlor tuturor nodurilor si legaturilor din retea. Reprezentarea si rationarea sunt distribuite si este posibil lucrul cu date incomplete sau inconsistente. Aceasta calitate a fost numita degradare eleganta ( gracefully degrade) pentru ca daca o parte a retelei este neoperationala, restul poate functiona si incearca sa dea raspunsuri. Acest mod de toleranta la defectiuni este in contrast evident cu compotamentul sistemelor expert, care se defecteaza chiar daca o singura regula de interferenta devine neoperatinala. Concluziile pentru aplicatiile industriale sunt evidente Sistemele de inductie cu reguli au aceleasi probleme de robustete ca si sistemele expert. Ele au dificultati in a induce relatii din seturi de date contradictorii sau incomplete.
Logica fuzzy o ofera robustetea in masura in care se adopta noi reprezentari ale cunostintelor si metodelor de rationare. Seturile fuzzy ( forma de reprezentare a cunostintelor ) difuzeaza granitele dintre concepte, in sensul ca nu se va sti cu precizie unde un concept se termina si unde incepe urmatoarea. Reprezentarea fuzzy a datelor, in conjuctie cu mecanismele vagi de rationare, permit prelucrari ale informatiilor care sunt inexacte sau partial corecte .
In fine, pentru algoritmii genetici se pot aduce argumente solide pentru a le demonstra robustetea. Se considera relatia intre populatia de solutii furnizata de algoritmi si sistemul de clasificare a acestora. Fiecare regula din sistemul de clasificare contine o legatura cu sistemul ce trebuie modelat, operand cu un tip de rationament statistic, ce tine seama de performantele trecute. In acest mod se realizeaza o flexibilitate sporita a rationtrii si convergenta a solutiilor, chiar in ipoteze de lucru conflictuale. In teoria cunosterii , rationamentul este de doua feluri – de nivel scazut sau elementar (bow-level) sau de nivel inalt sau evoluat (high-level). Rationamentul elementer are capabilitati de recunoastere a modelelor ( sau sabloanelor) si este de tip paralel. Cel evoluat este de tip secvential si are abilitati cognitive. In IA, sistemele expert utilizeaza rationamentul de nivel inalt, pe cand retelele neurale ofera exact abilitatea complementara. Unii autori aduc de aceea critici retelelor, considerandu-le ca sunt inadecvate pentru obtinerea unor modele de cunostere. Dar, in aplicatiile industriale mai ales, lumea reala ce cere modelata si condusa poate fi usor descompusa in secvente de operatii logice paralele sau multimi de forme primitive ce trebuiesc recunoscute, sortate, asamblate, etc. dinamica acestei lumi poate fi usor captata prin intermediul unor senzori adecvati care vor furniza setul semnalelor de intrare pentru declansarea proceselor de rationare al retelei neurale. Similar, logica fuzzy opereaza la acelasi nivel al procesarii semnalelor de nivel scazut, accesibile in sistemele de control industrial. Cu acest fundament teoretic s-au realizat deja sisteme inteligente care recunosc forme, comanda miscarile robotilor, regleaza arderea intr-un furnal sau focalizeaza obiectivul unei camere de luat vederi. Evident ca sunt probleme in care numai rationamentul elementar nu este suficient. De exemplu, analizele si prognozele financiare, navigarea autonoma a unui vehicol, diagnosticul medical necesita obligatoriu si utilizarea retionamentului de nivel inalt de pilda intr-un sistem expert, in sfarsit, abilitatea de a prezenta utilizatorilor explicatii despre procesul de retionamet este o alta importanta proprietate a sistemelor inteligente. Aceste explicatii sunt cerute atat pentru validarea sau acceptarea solutiilor generate de sistemul IA, cat si pentru perfectionarea ulterioaraa mecanismelor de interferenta. Pentru sitemele expert si cele bazate pe reguli de inductie, explicatiile sunt tipic furnizate prin furnizarea traseului de interferenta, urmat in procesul de rationare. In sistemele fuzzy, decizia finala este generata prin agregarea deciziilor corespunzatoare tuturor regulilor continute in baza de reguli vagi. Traseul de interferenta este dificil de obtinut, dar daca regulile sunt de tip IF – THEN, ele pot fi usor verificate. Algoritmii genetici, in special cei de forma sistemelor de clasificare, folosesc modele de rationarwe sub forma unor reguli, de aceea este posibil a se obtine un anumit grad de explicitare al procesului de rationare.
In contrast cu celelalte sisteme de IA, retelele neurale nu ofera facilitati explicative adecvate, deoarece ele nu lucreaza cu o baza de cunostinte cu structuradeclarativa, informatiile fiind codificate prin ponderile legaturilor distribuite peste intreaga retea. De aceea, traseul de interferentanu mai poate fi evidentiat prin nici o metoda.
In incheierea acestor consideratii introductive privind proprietatile diferitelor tehnici inteligente, in Tabelul l sunt prezentate evaluari ale acestora prin calificative.
Tabelul l. Evaluarea proprietatilor diferitelor tehnici inteligente
2.1 Logica fuzzy
Calculul relational fuzzy permite o exprimare matematica a legaturilor intre multimile fuzzy.
Considerand X si Y douamultimi si produsul lor cartezian X x Y , se poate defini o relatie fuzzy de tipul :
R : X x Y [0,l]
Daca A si B sunt doua submultimi fuzzy, definite pe X, respectiv Y, relatia produs cartezian intre ele este :
R = AxB
UR(x , y) = uaxb(x, y) = min [UA(x), UB(y)]
cu x X, y Y si UA, UB – functiile de apartenentaale multimilor A si B.
Zadeh si Desoer evidentiaza faptul caecuatiile relationale exprima foarte bine conceptele teoriei sistemelor. Astfel, orice relatie poate fi vazuta ca o corespondentaintrare / iesire, iar compunerea unei multimii fuzzy ( considerata intrare ) cu o relatie fuzza R genereazao altamultime fuzzy ce poate fi considerata iesirea sistemului descris de R.
Compunerea a douarelatii fuzzy se defineste astfel:
R: X x Y-> [0,l], si, S: [Yx X] -> [0,1] Atunci
Fie
SxR:XxZ -> [0,1]
este o relatie fuzzy de forma :
(S x R) (x , z) = sup min. (UR(x , y), Us(y, z)=V[R(x, y) S(y,z)]
Regula se numeste compunerea Max – Min.
Relatiile fuzzy pot fi asociate interesant cu implicatii de forma:
IF conditie THEN actiune , in care conditie si actiune sunt doua multimi fuzzy A si B.
Vom ilustra afirmatia prin urmatorul exemplu:
Fie implicatia " IF A = mic THEN B = mare " , care se poate reprezenta sub forma matricialaa unei relatii. Daca:
mic={1/0, 0.8/1, 0.5/2, 0.3/3, 0/4}
mare = {0/0, 0.1/1, 0.3/2, 0.7/3,1/4}
min (1,0) min (l, 0.1) min (l, 0.3) min(l, 0.7) min(l , 1)
min (0.8, 0) min(0.8, 0.1) min(0.8, 0.3) min(0.8,0.7) min(0.8, l)
min(0, 0)min(0, 0.1) min(0, 0.3) min(0, 0.7) min (0, 1), adica matricea :
A x B =
Daca in timpul evaluarii a acestei reguli vom avea:
A= {0.1/0, 0.4(1,", 0.4/3, 0.1/4} (ceea ce in termeni lingvistici ar corespunde conceptului de "mediu"), obtinem:
B = A x B , adica:
B = (max [min(0, 0.1) min(0, 0.4)min(0, 1) min(0, 0.4)min (0. 0.1)]
max[min(0.1, 0.1)min(0.1, 0.4)min(0.1, l)min(0.1, 0.4)min(0,0,l)] max[min(0.3,0.1) min(0.3,0.4) min(0.3,l)min (0.3, 0.4) min(0,0.1)]
max[min(0.7,0.l)min(0.7,0.4)min(0.5,l)min(0.3,0.4)min(0,0.1)] max[min(l,0.1)min(0.8, 0.4)min(0.5, l)min(0.3,0.4)min(0, 0.1]} deci,
B= {0/0,0.1/1, 0.3/2,0.4/3,0.5/1} ceea ce in termeni lingvistici ar echivala cu "mai putin mare".
Logica fuzzy reprezintao extensie a logicilor multivariabile, fiind utilizata in rationamente aproximative. Principiul sau de baza este inferenta dintr-un set de premise posibile, exprimate in maniera fuzzy, a unei concluzii posibile (de asemenea exprimata cu ajutorul multimilor fuzzy). Similar cu logica clasicase definesc variabile logice fuzzy, cu valori cuprinse in intervalul [0,1]. Daca acestea sunt x1, x2,…,xn, cu ajutorul lor se pot defini in mod recurent formule fuzzy, dupa regulile:
orice variabila xi este o formula fuzzy
daca F este o formula, si F este tot o formula
daca F1 si F2 sunt formule , atunci si conjunctia si disjunctia lor sunt formule.
Valorile de adevar in logica fuzzy sunt variabile lingvistice reprezentate prin multimi fuzzy. Valoarea de adevar u(F) a unei formule satisface urmatoarele axiome:
dacaF = xi, atunci u(F) = u(xi)
u (NOT F) = 1 – u(F)
u(Fl) u(F2) = min (u(Fl), u(F2))
su(Fl) u(F2) = max(u(Fl), u(F2))
Variabilele si negatiile lor se mai numesc si literale. Propozitiile sunt disjunctii de literale, iar frazele sunt conjunctii de literale. O formula fuzzy este valida daca u(F)>l/2 pentru toate atribuirile posibile ale variabilelor. Daca u(F) <l/2 pentru toate atribuirile F este inconsistenta. Se pot utiliza si termeni echivalenti de formula consistenta sau nonvalida.
Ca in logica bivalenta, se pot enunta conditiile necesare si suficiente de validitate pentru propozitii si de inconstienta pentru fraze. Echivalenta continuu – discret intre logile bivalente si fuzzy este datade urmatoarea teorema:
Formula fuzzy F este valida(inconstienta) daca si numai daca formula nefuzzy corespunzatoare este valida(inconstienta) in sens clasic.
In logica fuzzy , implicatia se defineste astfel:
Fie F1, F2 doua formule. Spunem ca F1 implica fuzzy F2 , daca si numai daca,
oricare ar fi [0,l], si, u(F1) =, avem, u(F2} =
Cuantificatorii universali se definesc astfel:
Fie F o formula fuzzy si P o propozitie.
Daca F = P, oricare ar fi x din M implica u(F)=inf{u(P(x))}.
Daca exista x in M, astfel incat F = P implica u(F) = sup (u(P(x))}
In literatura sunt luate in discutie si alte sisteme axiomatice sau se formuleaza problema axiomarii logicii fuzzy prin logici multivalente de tip Lukasiewisy.
Logica fuzzy lucreazacu reguli de inferentade forma:
IF axpr. Fuzzy THEN expr. Fuzzy
Gradul de apartenenta al partii conditionate se defineste ca valoare de adevar a antecedentului si se calculeaza pentru a stabili valoarea de adevar a concluziei. Aceasta nu poate fi mai mare decat valoarea de adevar a antecedentului. Daca se considera simultan mai multe reguli, atunci concluzia generalase calculeaza prin metoda de defuzificare. Acestea stabilesc modul de compunere al regulilor, permitand in final aflarea valoni numerice corespunzatoare concluziei fuzzy.
Metoda MAX – MIN se aplica unei serii de reguli de forma:
IF C11 AND C12 THEN A1
IF C21 AND C22 THEN A2
.
.
.
IF CN1 AND CN2 THEN AN si stabileste un grad de certitudine :
U = max { min (uC11, uC12)}
Deci, gradul de adevar al concluziei reprezintagradul de adevar al precedentului si se alege acea regulacare are grad de adevar maxim.
Metoda momentelor realizeaza inferenta pe baza unei reguli asemanatoare celei de calcul al momentului de inerie al unui obiect:
2.2 Principiile retelelor neuronale
Capacitatea de invatare si de laure a deciziilor confera unui sistem inteligent de conducere posibilitatea sa modeleze on – line mediul de lucru intr-un mod simultan adaptiv si predictiv. Scopul este de a prescrie deciziile referitoare la situatiile viitoare. Retelele neuronale artificiale (ANN + Artificial Neural Network ) sunt instrumente de invatare on – line , care utilizeazaun model general simplificat al neuronului. Deducerea acestui model plecand de la celula nervoasa implica urmatoarele ipoteze simplificatoare:
neglijarea efectelor electrice cauzate de forma dendritelor si axonului;
curentii de intrare pe canalele sinaptice se considerasimplu . aditivi si interactiunile complexe dintre ei se neglijeaza;
variatii de potential la nivelul membranei se presupune simultane in zona presinapticasi in intervalul celulei;
evenimentele sinoptice sunt foarte rapide: la aparitia unei fluctuatii de potential la terminatiile presinaptice rezultao schimbare aproape instantanee a concentratiei neurotransmitatorului, urmatade aparitia unui curent in celula postsinaptica.
Teoria retelelor neuronale a aparut incadin 1943, odata cu modelul introdus de MCCulloch si Pitts . Ei au luat in considerare proprietatea cala nivelul fiecarui neuron efectul sinapselor este variabil, fapt ce ii conferaacestuia adaptabilitate . In model actiunea sinaptica se reprezinta printr-o pondere variabila ce determina gradul de activare al neuronului. Unitatile neuronale se comporta ca decodificatoare selective a formulelor de semnal. Ele sunt elemente de decizie logica, cu doua stari.
Trecerea de la cercetarile biologice care urmaresc modelarea functionarii sistemului nervos in domeniul tehnic – ingineresc nu urmareste crearea unor masini "umanoide", ci extragerea unor notiuni care sa conducala rezolvarea unor probleme dificil de abordat prin calcul conventional. Aceasta trecere necesita o abordare sistematica. Un sistem invata un eveniment (sau model – pottern) prin codificarea acestuia in structura sa, care pe masura invatarii se modifica. Sistemele au proprietatea de adaptabilitate si de auto – organizare. Pentru ANN, algoritmul de invatare , care consta in modificarea ponderilor legaturilor intre elementele retelei, reprezinta singura modalitate de instruire. In context ingineresc, o retea neuronalareprezintaun sistem dinamic , ce realizeaza procesarea informatiei prin intermediul raspunsului de stare la o intrare continua sau initiala. In acest sens, calculul neuronal reprezinta studiul retelelor cu noduri adaptabile, care se mai numesc modele conexionale sau procesoare distribuit -paralel.
2.2.1. Tipuri de retele neuronale
In general, o retea neuronala ( NN – neural network ) artificiala este alcatuita dintr-un numar N de elemente numite noduri sau neuroni, fiecare nod fiind conectat cu toate celelalte pentru a forma unul sau mai multe straturi) sau nivele ( layers) . Ele se vor numi corespunzator retele uni sau multistrat. Puterea relativa a conexiunilor intre noduri este determinata prin ponderi si prin valori de prag. Ponderile se stabilesc in timpul procedurii de invatare si ulterior ele pot avea valori fixe sau pot fi modificate permanent, printr-un proces iterativ, invatarea poate fi efectuata in mod supervizat (invatarea cu supervizor) sau prin auto – instruire.
Nodurile de baza utilizate in ANN diferade la un tip de retea la alta. Modelul McCulloch si Pittis impune pentru noduri un model de bazaal neuronului, ca in Figura 2.1.
Figura 2.1
Intrarile modelului sunt date din lumea reala sau din alte elemente ale retelei, cum ar fi iesiri ale nodurilor nivelului anterior. Iesirea modelului este data de o functie care insumeaza ponderat valorile intrarilor. Iesirile pot fi utilizate direct, sau pot fi procesate cu valori de prag sau elemente de filtrare ) cum ar fi, de exemplu, functia signoidala).
In functie de conexiunile intre noduri, retelele pot fi de douatipuri: directe (feedforward) si recurente (backpropegation).
In retele directe ( Figura 2.2) influenta unui nod asupra altuia poate fi excitatorie (pondere pozitiva) sau inhibitorie (pondere negativa). Fiecarui nod I se asociazasi o anumita valoare de prag. Daca reteaua este multistrat, intre stratul de intrare si cel de iesire se interpun straturi intermediare , numite ascunse. In practica se utilizeaza maxim doua astfel de straturi, intr-o astfel de structura, numai nodurile aceluiasi strat opereazain paralel, in timp ce straturile adiacente calculeaza serial.
Figura 2.2
Propagarea semnalelor in retea are loc doar intre straturile adiacente si doar pe o singura directie. Modificarea acestor semnale se realizeaza prin intermediul ponderilor de conectare intre doua noduri. Explicit, intrarea totalaintr-un nod oarecare I din stratul k este :
xik = [wijkyjk-1] + ik , unde:
wjjk = ponderea de conectare a nodului j din stratul (k-1) cu nodul I din stratul k
yjk-1 = iesirea nodului j din stratul k- 1
ik = valoarea de prag a nodului I din stratul k
Iesirea nodului I din stratul k este :
yik = f(xik), unde f este in general o functie crescatoare, de exemplu functia signoid f(x) = (l – e -x ) / (l + ex).
Dacase considera patru straturi, dintre care unul de intrare, unul de iesire si doua ascunse, fiecare strat poate fi reprezentat de operatorul:
Sk(u) = F(Wku), unde
u – intrarea corespunzatoare stratului
Wk – matricea ponderilor, k = l, 2, 3
F = operator dialog neliniar cu elemente signoidale,
f(x)=l/(l+e-x)
Putem reprezenta functia de intrare – iesire a retelei prin:
Y = S(u) = F [W3F[W2F[W'u]]] = S3S2S'(u)
deci, NN directe reprezinta functii neliniare, avand ca parametri elementele matricilor de ponderi.
Intre retelele cu reactie , cea mai cunoscutaeste reteaua unistrat Hapfield. Reprezentarea ei schematicaeste data in Figura 2.3.
Figura 2.3
Numarul nodurilor elementare este foarte mare, iar fiecare element este legat pe o singura cale cu toate celelalte ( iesirea unui nod este conectata la intrarile tuturor celorlalte). De obicei, fiecare nod are si o intrare separata pentru interfata cu mediul real. Intrarile sunt semnale binare. Ponderile Wij alcatuiesc o matrice simetrica N x N .
O caracteristicaa acestei retele o constituie capacitatea de memorare , C = MN, unde M este numarul formelor stocate, iar N numarul nodurilor . Hopfield a demonstrat ca reteaua isi poate pierde capacitatea de asociere pentru c >0. 1 5.
E = – ½ WijSiSj, cu i, j de la 1 la N, unde:
N = numarul de noduri
Wij = ponderea intre iesirea nodului j si intrarea nodului l .
Fiecare forma invatata reprezinta un minim de energie. Daca la intrarea retelei se gaseste o forma de test incompleta sau perturbata de zgomot, energia initiala a sistemului nu este minimala. Prin ajustari iterative ale ponderilor Wij, se urmareste minimizarea functiei E.
Reteaua Hopfield reprezintaun sistem dinamic discret, descris de ecuatia :
Y(f+l) = f(x(t)),unde:
x(t) = Wy(t), cu x {- 1,1)" si W – matricea ponderilor
f (x) = sng(x) =
Ecuatia se generalizeazaimediat:
x(t+l) = S1[x(t),x(0)] = x0
Pentru o valoare initiala x0 sistemul evolueaza catre o stare de echilibru cu conditia ca S1 sa fie corespunzator ales. Multimea conditiilor initiale din vecinatatea lui x0 care determina convergenta sistemului catre aceia si stare de echilibru este identificata cu starea respectiva.
Retele cu propagare inapoi (back propagation / BP) sunt utilizate mai ales in domeniul controlului automat. Structura retelei este cea din Figura 2.4.
Figura 2.4
Intre nodurile elementare de pe un strat oarecare nu exista conexiuni. La intrare se aplica un set de date ( un model) pentru fiecare nod de intrare. Iesirile acestui nivel ascuns, s.a.m.d. invatarea retelei consta in fortarea ei, prin modificarea ponderilor, ca sadea la iesire o forma particulara de raspuns pentru fiecare model de intrare dat. Fiecare valoare de iesire a nodurilor ultimului strat poate fi comparata cu o valoare dorita sau specificata, diferentele constituind o eroare. Aceasta poate fi minimizata prin ajustarea ponderilor, utilizand o serie de algoritmi specifici. Totusi, invatarea retelei este destul de dificila. Utilitatea acestui tip de retea in controlul automat a fost demonstratade Willis in 1991. El o recomanda atat pentru estimarea in timp real a parametrilor proceselor pentru a obtine modele adaptive, cat si pentru controlul sistemelor neliniare.
Utilizarea modelelor NN ale proceselor ofera avantaje certe fata de tehnicile conventionale. Spre exemplu, retelele pot fi folosite pentru obtinerea unor informatii de masura greu accesibile prin metoda de hardware sau pot predicta valori de interpolare ale unor masuratori.
Retelele BP pot fi implementate on- line pe microcalculatoare pentru controlul in timp real al proceselor neliare. Un exemplu este controlul unui robot – manipulator dupaschema propusade Warwack in 1991 ( F igura 2.5). Reteaua se adapteazaprin ajustarea ponderilor, invatand schimbarile caracteristice in articulatiile robotului, atunci cand acesta efectueazamiscari in spatiul de lucru. Ea genereaza un vector de iesire care include semnale de comanda pentru motoare in vederea obtinerii traiectoriei dorite. Dupa instruirea initiala, invatarea este continuata on- line in timpul operarii, prin urmarirea schimbarilor in caracteristicile miscarilor din articulatii.
Figura 2.5
Retelele neuronale multiple (n – tuple), denumite si digitale, utilizeaza un model neuronal diferit si o noua strategie de invatare. Fiecare nod este definit ca o memorie digitala, prelucrand numai semnale binare si poarta denumirea de neuron RAM ( Figura 2.6)
Intrari
Figura 2.6
Neuronul RAM implementeaza principiul memoriei asociate. Memorarea simpla implica simpla stocare si ulterioara regasire a informatiei. La calculatoarele conventionale, regasirea unui eveniment se face prin specificarea adresei locatiei unde este stocat. Creaturile unui percep, invata si cunosc mediul lor de existenta prin asocierea unor relatii spatio – temporale. In acest sens definim memoria asociativa ca un procedeu prin care un set de date stocate pot fi regasite folosindu-se ca excitatie (cheie) oricare din componentele sale. Deci, informatia se regaseste chiar pe baza continutului memoriei sau al relatiei intre parti ale informatiei memorate. In plus , o "cheie" influentata de zgomot implica regasirea celui mai apropiat eveniment stocat.
Intrarile unui neuron RAM sunt adrese de memorie, iar iesirea reprezinta valoarea datelor stocate. Cand nodul este in mod invatare, datele pentru instruire sunt introduse pe
liniile de adresa si stocate valorile potrivite. In modul analiza, nodul este adresat si furnizeaza la iesire valoarea stocata. Intr-o retea multipla, pe intrarile sale se aplica modele
care alimenteazacu cate n biti fiecare din nodurile elementare, iesirea acestora memorandu-se valoarea 1. Cand reteaua analizeaza un model particular, nodurile cu iesiri 1 sunt comparate cu cele obtinute in procesul de invatare. Daca comparatia este 100y adevarata, modelul este similar cu cel invatat, daca nu, se va regasi modelul cel mai apropiat. Aplicatia imediatain recunoasterea formelor este evidenta. In plus, reteaua poate fi resetata si se poate starta o noua procedurade invatare.
2.3 Sistemele de control inteligent (ICS)
Au abilitatea de a invata si de a lua decizii. Ele se comporta adaptiv si predictiv la dinamica mediului de lucru, putand raspunde cu succes la o varietate de incertitudini, in implementarea ICS, datorita complexitatii raspunsurilor impuse, utilizarea unei singure tehnici de inteligenta artificiala este adeseori insuficienta, combinarea lor ducand la performante mai bune.
In controlul inteligent, GA isi impletesc abilitatile cu cele ale retelelor neuronale si logicii fuzzy. Vom face doar cateva consideratii principale.
Prima abordare o constituie utilizarea algoritmilor genetici pentru instruirea retelelor neuronale in controlul proceselor complexe. Sarcina unui neurocontroler este sa invete cum sa produca cei mai potriviti parametri de reglare conform cu obiectivele controlului care-i sunt indicate la intrare. Retelele neuronale evolutioniste reprezinta un mijloc prin care o ANN se dezvolta utilizand tehnici de calcul bazate pe GA . Algoritmii pot fi utilizati pentru trei scopuri:
definirea evolutiei ponderilor in conexiunile retelei;
perfectionarea topologiei retelei;
modificarea regulilor de invatare.
Pana acum cercetarile s-au indreptat spre primele doua directii. Rezultatele obtinute arata ca inlocuirea algoritmului de invatare BP cu un GA nu este competitiva decat atunci cand se utilizeaza criterii de optim discontinue. De asemenea , ele incurajeaza utilizarea GA pentru ajustarea adaptiva a parametrilor algoritmilor de invatare.
In domeniul controlului fuzzy, sunt cunoscute avantajele controlerelor fuzzy simple, care sunt mai robuste si performante decat cele conventionale PID. in plus, ele sunt implementate intr-un singur circuit integrat, usor de interpretat cu senzori si elemente de executie. O problemadificila a acestora o reprezinta insa calibrarea lor, pentru care nu existatehnici total adecvate,
Intrepatrunderea intre logica fuzzy si GA a dus de aceea la o prima aplicatie , care
se refera la acordul fin al controlerelor fuzzy utilizand algoritmi genetici. Se uzeaza de o reprezentare a cunostintelor pe trei nivele: reguli simbolice, ponderi numerice si definitii lingvistice fuzzy. GA sunt utilizati pentru extragerea cunostintelor necesare si punerea lor de acord cu cele inglobate in controler.
Se utilizeaza operatori genetici cu mutatia aleatoare, mutatia dinamica, incrucisarea simpla sau aritmetica, s.a Modificarile obtinute optimizeaza controlerul fuzzy in sensul simplificarii structurii sale simbolice.
Alta aplicatie hibrida interesanta este utilizarea GA in sisteme de clasificare,
denumite si sisteme de consolidare a cunostintelor (CCS). Un CCS este o
masina de inratare in care informatia de reactie din mediul inconjurator este
primita sub forma de "stimulente" si "penalitati" ( numere pozitive, respectiv
negative). Sistemul necesita un minim de cunostinte initiale si invata
nesupervizat. Algoritmul genetic , utilizat ca furnizor de reguli noi in sistemul de clasificare ( vezi fig. 2.7) lucreaza in legatura cu algoritmul de consolidare ( cel care stimuleaza sau penalizeaza) astfel incat impreuna pot valida reguli bune si elimina pe cele slabe. Practic , GA nu actioneazadecat asupra unui subset din baza de reguli, pentru ca astfel ar trebui plecat de la ipoteza ca toate regulile bazei sunt slabe.
Un caz particular al CSS il reprezinta masina de invatare genetica( genetics – base machine leaming – GBML). Structura sistemului este cea din figura 2.7).
Figura 2.7
GBML contine un subsistem de prelucrare paralelaa regulilor , aflat in permanentainteractiune cu mediul si utilizeazaun GA pentru cautarea si recombinarea regulilor impreunacu un algoritm de consolidare a acestora.
Aplicatie remarcabila a masinii de invatare o constituie robotul autonom. Un caz particular il constituie problema de animatie , care consta in gasirea unei proceduri prin care un animal simulat poate sa invete sa supravietuiasca intr-un mediu anume. Aceasta problema este dificila cel putin din trei motive: dificultatea de clasificare a informatiei din cauza lipsei cunostintelor apriorice legate de situatiile de impact cu mediul, inexistenta unui instructor care sa impiedice actiunile eronate si lipsa indiciilor de evolutie , adica a unui mod de evaluare a unei actiuni particulare ca un pas necesar pentru atingerea obiectivului final. Utilizarea calculului evolutionist a demonstrat ca acesta este un bun suport pentru invatarea adaptiva si rezolvarea complexei probleme a robotului autonom, obtinandu-se rezultate mai bune decat ale sistemelor traditionale de achizitie de cunostinte. Superioritatea consta in principal in abilitatea unei asemenea masini de a interactiona cu un mediu inconjurator in schimbare dinamica nepredictiva.
In robotica pot fi intalnite de asemenea la ora actuala aplicatii ale GA , atat in constructia controlerelor pentru roboti,cat si pentru gasirea celor mai robuste metode adaptive de simulare a robotilor reali.
2.4. Clasificarea sistemelor inteligente hibride
Este evident ca fiecare tehnica inteligenta nu poate fi universal aplicata fiecarei probleme de conducere. Din aceasta cauza au fost create tehnici hibride , care le combina pe cele individuale. S-au impus trei categorii de astfel de metode , pe care le vom prezenta si descrie sumar mai jos; tehnicile inlantuite, divizarea sarcinilor pe aplicatii si realizarile multifunctionale.
Tehnicile inlantuite reprezinta integrarea diferitelor metode de conducere prin IA, cu scopul eliminarii limitarilor de care sufera fiecare din acestea si obtinerii unor metode "tari" de implementare pentru sisteme complexe.
Divizarea sarcinilor constau in sisteme hibride create din cauza ca nici o tehnica individuala nu este aplicabilala toate subproblemele impuse de aplicatia data. Unele domenii ale lumii reale cu atributul "logic" au comportament static si pot fi – in consecinta- manevrate prin sisteme expert. Altele – dimpotriva- au un comportament dinamic si se preteazala conducerea prin retele neuronale , de exemplu.
Realizarile multifunctionale sunt creatii hibride care au posibilitatea prelucrarii multiple a informatiilor intr-o anumita arhitectura. Ele mimeaza functional, cu alte cuvinte , diferite sisteme de procesare. Un exemplu il constituie utilizarea NN pentru prelucrarea simbolurilor, demonstrand principiul cognitiv conform caruia retelele conectioniste pot fi utilizate pentru rationarea secventiala.
In functie de utilizarea tehnicilor de mai sus , s-au impus trei clase de sisteme hibride , in functie de arhitectura de prelucrare , cerintele de comunicatie si modul de functionare. Acestea se refera numai la combinatiile tehnicilor inteligente, organizandu-se hibrizii micsti cu metodele conventionale, cum ar fi calculul numeric, seriile statistice , tehnicile de regresie sau programarea liniara. Cele trei clase se refera la hibrizii pentru inlocuirea de functii, pentru intercomunicare si la cei polimorfici.
Sistemele hibride cu inlocuirea de functii realizeaza inlocuirea functiei principale a unei tehnici de IA cu o alta metoda inteligenta de prelucrare. Motivatia o reprezinta integrarea prin inlantuire, prezentatamai sus, cu scopul cresterii vitezei de executie si a sigurantei sistemului. Ca exemple functii principale se pot considera construirea bazei de cunostinte la sistemele expert, modificarea ponderilor in retelele neuronale sau operatiile de incrucisare la algoritmii genetici.
Un exemplu de hibrid cu inlocuire de functii este implementarea mecanismului de modificare a ponderilor prin algoritm de propagare inapoi in NN si aplicaoperatorii de mutatie si incrucisarea acestora valori, obtinandu-se altele noi. Ponderile sunt organizate intr-o structuratip lista (Figura 2.8), operatorii fiind aplicati acesteia. Performantele acestei metode de actualizate a valorilor ponderilor sunt in anumite cazuri, mai bune decat ale algoritmilor BP, numarul de iteratii pentru obtinerea convergentei spre solutia bunafiind sensibil mai mic.
Figura 2.8
Un alt exemplu de hibrid cu inlocuire de functii este utilizarea unui algoritm genetic care sa inlocuiasca definirea manuala a functiilor fuzzy de apartenenta. Aceste definitii sunt furnizate uzual de catre un expert in domeniu , care utilizeazatotusi un rationament subiectiv, consumandu-se destul timp pentru verificari si eliminarea unor erori ce pot aparea in functionarea sistemului fuzzy. Un astfel de sistem hibrid a fost utilizat pentru rezolvarea problemei conducerii caruciorului cu pendul a lui Karr ( carpole balancing). S-au definit patru functii de conditie , fiecare avand trei variabile lingvistice. Functiile de apartenenta fuzzy au forme triunghiulare
Algoritmul genetic cauta punctele fixe optimale in aceste triunghiuri. Reprezentarea pozitiilor posibile ale acestora se face prin siruri de biti. Spatiul de cautare cuprinde 2132 posibile puncte. Algoritmul este capabil sa descopere functiile de apartenenta mai potrivite pentru controlul fuzzy decat cele definite initial de catre Karr.
Sistemele hibride cu intercomenctare reprezintaun set de module inteligente de prelucrare, independente, care schimba informatii si executa functii separate pentru generarea unor solutii.
Daca problema poate fi divizata in taskuri distincte de prelucrare, diferite module inteligente pot fi utilizate pentru rezolvarea unei anumite parti, anume a aceleia pentru care modulul este cel mai adecvat. Solutia globala se obtine prin cooperarea pe baza unui mecanism de control.
De exemplu, dacacele trei taskuri ale problemei reprezinta recunoasterea unor modele, rationarea seriala si optimizarea, atunci o retea neuronala, un sistem expert si un algoritm genetic vor fi alese pentru rezolvarea lor. Ele vor lucra in maniera secventiala ( si atunci mecanismul de control poate fi alcatuit din reguli ale sistemului expert), fie intr-un cadru competitiv cooperativ.
Literatura semnaleazaastfel de realizari, ca de exemplu sistemul de diagnoza.
Sistemele hibride poliformice utilizeaza o singura arhitectura functionala de procesare si diferite tehnici inteligente de prelucrare. Motivatia acestei solutii este realizarea multifunctionalitatii intr-o structura de calcul particulara. Sistemul mimeaza functional sau emuleaza diferitele tehnici de prelucrare. Din pacate , exista un numar redus de exemple de hibrizi polimorfici. Majoritatea lor constau in retele neuronale utilizate pentru rationamentul simbolic sau pentru imitarea procedurilor de cautare genetica, pana acum insa cercetarile in domeniu nefiind convingatoare.
Capitolul 3. Microcontrolere. Structuri
3.1. INTRODUCERE
Indiferent de ceea ce este controlat (de ex. o centrala termica sau starea de sanatate a unui pacient), sistemul de comanda digitala este alcatuit din:
– unitate centrala
– periferice
Unitatea centrala este realizata in cele mai multe cazuri in jurul unui procesor. Acesta are nevoie obligatoriu de:
– memorie
– generator de ceas
– interfata cu perifericele
si optional de:
– timere
– controlor de intreruperi
– convertoare A/D sau D/A
– interfete seriale
Ideea de baza a fost comasarea acestora intr-o singura pastila de Si. Se obtine astfel un sistem de calcul intr-un singur chip. Avantajele sunt evidente – se poate realiza un sistem complex de prelucrare si control industrial folosind un numar redus de piese; dispare eterna problema a realizarii unor cablaje complicate care asigurau conectarea procesorului cu memoria.
Aceste microcontrolere pastreaza arhitectura sistemelor uzuale.
3.2. DESCRIERE HARD
Proiectantii au realizat un "nucleu" al unui astfel de microcontroler,adaugand in jurul lui diverse periferice pentru a obtine membrii familiei de microcontrolere. In functie de aplicatie, se poate alege un model sau altul al aceleiasi familii, structura nemodificandu-se. In general, "nucleul" unui astfel de controler este alcatuit din:
– unitatea centrala
unitatea de comanda
unitatea aritmetica/logica
registri
– memoria pentru program si/sau date
– controlorul de intreruperi
– generatorul de ceas
– timere si eventual un watchdog
Microcontrolerele pot fi prevazute cu:
– porturi bidirectionale
– controlere de comunicatie seriala UART/USART
– convertoare A/D
– convertoare D/A (mai rar)
– generatoare de PWM (Pulse With Modulation)
– controlere de magistrala pentru extinderea spatiului de memorie
3.2.1 Unitatea centrala
Unitatea centrala poate fi – in functie de arhitectura abordata – de tip CISC sau RISC (de curand, AMD a realizat familia SHARC – Super Harvard ARChitecture). Microchip a realizat chiar unitati de tip Pipeline pentru accelerarea prelucrarii. Registrii pot fi dedicati sau generali, in functie de arhitectura.
Microcontrolerele pot fi prevazute cu unitati de calcul in virgula mobila, putandu-se realiza prelucrari complexe de date.
3.2.2 Memoria de program si/sau date
De la familie la familie si chiar de la model la model memoria poate diferi ca tip si capacitate. Se pot accesa astfel intre 1K si 64K de memorie de program/date. Modelele pot fi prevazute cu memorie de tip PROM, EPROM, EEPROM sau FLASH. Daca nu e suficient, spatiul intern de memorie se poate extinde, folosind circuite de memorie auxiliare (pretul platit: complexitatea montajului creste).
3.2.3 Generatorul de ceas
Permite realizarea ceasului necesar functionarii unitatii de executie.
Este complet, neavand nevoie extern decat de un quartz sau de chiar numai de o rezistenta si un condensator (in functie de configuratie). Se elimina astfel o serie de componente externe ce ar fi scazut fiabilitatea microsistemului. Poate functiona cu frecvente cuprinse intre 0 – 24 MHz.
Rezolutia ceasului – trebuie sa fie in concordanta cu rezolutia si frecventa semnalului de intrare. Acest fapt ar putea avea ca urmare imediata limitarea optiunilor asupea alegerii microcontolerului. De exemplu, unele microcontrolere au o capabilitate de captura la intrare ce ruleaza doar ca submultiplu din frecventa de ceas a procesorului – sa spunem ¼ sau 1/8 din frecventa de ceas a procesorului ceea ce ar putea conduce la neajunsuri in posibilele aplicatii.
3.2.4 Timerele si Watchdog-ul
Sunt pe 16 biti, cu sau fara prescaler. Aparitia watchdog-ului a fost necesara datorita faptului ca aceste sisteme, fiind utilizate cu precadere in mediul industrial, pot intra – datorita perturbatiilor electromagnetice – in bucle infinite, blocandu-se.
Rolul acestui watchdog este de a reseta microcontrolerul dupa o perioada de inactivitate a acestuia.
3.2.5 Porturile bidirectionale
Pentru a comanda diverse periferice (leduri, motoare pas cu pas, etc.) microcontrolerele sunt prevazute cu porturi bidirectionale. Acestea pot fi accesate la nivel de bit. Pentru a acoperi un spectru larg de utilizari, porturile pot fi:
– out:
Open Drain / Open Colector – permit un curent <= 50 mA
Tristate
– in:
Trigger Schmitt
3.2.6 Controlerele de comunicatie seriala
Pentru a usura comunicatia cu exteriorul, diversele modele de microcontrolere pot fi prevazute cu automate specializate pentru comunicatie.
Se realizeaza astfel serializarea si verificarea datelor. Au fost impuse mai multe protocoale de comunicatie inter-microcontroler:
– I2C – impus de PHILIPS
– CAN
– MICROWIRE/PLUS – impus de NATIONAL INSTRUMENTS
Aceste protocoale sunt implementate hard, utilizatorul trebuind doar sa le seteze corespunzator.
3.2.7 Convertoare A/D
Pentru a putea prelucra informatii analogice, microcontrolerul poate fi prevazut, in general, cu un convertor A/D care lucreaza prin aproximatii succesive, fiind dotat cu mai multe canale iar accesul fiind multiplexat. Intern este prevazut cu un buffer, utilizatorul trebuind doar sa asigure controlerului tensiunea de referinta.
3.2.8 Generatoare de PWM
In general nu se folosesc convertoare D/A, ele fiind destul de ieftine si simple, usor de atasat extern.
Este mult mai importanta generarea de semnale PWM care prin integrare dau un semnal analogic proportional cu informatia digitala. Acest tip de semnal este foarte folosit in comanda motoarelor de curent continuu, fiind cea mai buna metoda de reglare a vitezei.
PWM este o metoda de a controla digital curentul din dispozitive. PWM-ul inlocuieste tehnicile analogice pentru ca ofera o eficienta mai mare in sistemele computer-controler.
Un driver analogic tipic arata ca in Figura 3.1:
Figura 3.1
In Figura 3.2 este ilustrata metoda de control a semnalului de baza PWM. Circuitul utilizat controleaza electronic schimbarea termorezistentei activeaza/dezactiveaza termorezistenta schimband on/off tranzistorul de control. Diagrama de temporizare ne arata cum functioneaza circuitul PWM . primul interval arata colectorul tranzistorului este LOW, deci termorezistenta este ON pana la 66% din intervalul PWM. Termorezistenta este OFF pentru 33% din intervalul PWM. In partea a doua din diagrama de timp, PWM este ON pentru 33% din interval si OFF pentru 66%. Pentru a atinge un timp mediu pentru un curent particular, putem folosi urmatoarele ecuatii:
ION=VS/R
It=IONXTON
Pav=VSXIONXTON
Unde:
ION este curentul prin termorezistenta ON
Vs este acumularea de tensiune
R este rezistenta termorezistentei
TON este timpul ON exprimat in procente
Pav este disiparea medie
Figura 3.2
Functia controlului PWM este de a transforma tensiunea de intrare intr-un ciclu de control. In aplicatiile reale esista un feedback tipic pentru tot ceea ce este controlat astfe incat softwarul poate ajusta ciclul de control pentru a comensa variatiile acumularilor de putere fara a cunoaste valoarea la un moment dat a valorii puterii acumulate.
Pentru ca PMW sa functioneze, frecventa acestuia trebuie sa fie destul de mare pentru ca raspunsul curentului sa treaca prin el.
Limitatori de frecventa
Un tranzistor real aflat pe ON disipeaza putere. De asemenea avem putere disipata cand tranzistorul se afla in starea tranzitorie. Figura urmatoare ilustreaza acest lucru. Semnalul digital de control care face tranzistorul ON sau OFF este aproape instantaneu. Oricum tranzistorului ii trebuie ceva timp pentru ca din ON, la schimbarea starii controlului de intrare, sa treaca in OFF. Tranzistorul este disipator de putere, ca orice alt dispozitiv driver analog, de-a lungul timpilor de schimbare ON/OFF. Acest fapt limiteaza frecventa maxima PWM care poate fi utilizata. Cu cat frecventa a semnalului PWM este mai mare, cu atat procentajul de timp pentru tranzistor aflat in starea tranzitorie (unde disipeaza cea mai multa putere) este cel mai ridicat. Daca frecventa PWM-ului este suficient de mare, tranzistorul nu va trece complet in ON sau OFF si va disipa o putere semnificativa.
Figura 3.3
Limitatori de rezolutie
Un sistem PMW este din principiu implementat cu un contor digital care genereaza frecventa PWM. Un contor secundar sau un decodificator logic, pentru decodificarea contorului de frecventa, este folosit pentru determinarea perioadei.
Aceasta caracteristica limiteaza precizia PWM-ului de ajustare a iesirilor. Un sistem liniar are apropae un control al acuratetei infinit. Ca orice alt sistem digital, controlerul PWM are o rezolutie limitata. O metoda de rezolvare a problemei rezolutiei este de a modula iesirile. Dar asa cum ne asteptam exista mici probleme:
Microprocesorul (sau orice este controlat cu iesireile PWM) trebuie sa-si schimbe iesirea ciclului de verificare la fiecare ciclu PWM. Ciclul de verificare nu poate fi fixat la o anumita valoare, iar apoi lasat asa pana cand se impune o schimbare. Acest fapt poate conduce la cresterea cererii de procesare pentru microprocesor (microcontroler).
3.2.9 Controlere de magistrala pentru extinderea spatiului de memorie
In ipoteza ca se doreste extinderea spatiului de adresare a memoriei de program sau date, unele microcontrolere au prevazute ca extensii controlere de magistrala. Astfel se pot adresa chipuri de memorie exact in stilul procesoarelor, pretul platit fiind complexitatea crecuta a montajului.
3.3. DESCRIERE SOFT
Limbajul de asamblare disponibil acestor microcontrolere este foarte asemanator cu cel al procesoarelor avansate. Indiferent de tip (RISC/CISC), microcontrolerele sunt foarte usor de programat.
In functie de model apar insa setari diferite.
Programarea unor astfel de circuite se poate face in mai multe moduri:
– programul este continut intr-o memorie externa
– programul se *arde* in chip exact ca intr-un EPROM (folosind un programator specializat)
– se poate face un *download* al programului folosind doar 2 fire (clock si date) fara a scoate din circuit chipul
Firmele producatoare pun la dispozitie emulatoare hard si soft ale microcontrolerelor pe care le produc. Un emulator hard se comporta exact ca un chip real, putandu-se planta direct in circuit.
3.4 Conceptul de microcontroller – microcontrolerul 8051
Exista trei tipuri de semnale, sau magistrale care conecteaza CPU la celelalte componente importante.
Acestea sunt:
Magistrala de Date
Magistrala de Adrese
Magistrala de Control
Largimea magistralei de date este definita ca numarul de biti ce pot fi transferati pe magistrala in acelasi timp. Aceasta defineste “lungimea cuvantului” a procesorului. Instructiunile si datele sunt transferate pe magistrala de date cate un cuvant o singura data. Aceasta permite refolosirea aceleasi conexiuni pentru mai multe tipuri de informatii diferite. Datorita limitarii pachetelor, numarul de conexiuni sau de pini de pe chip este limitat. Impartind pinii in acest mod, numarul de pini ceruti se reduce la complexitatea ridicata a circuitelor externe. Multe procesoare merg mai departe si impart unii sau chair toti pinii magistralei de date pentru a transfera adrese de informatii. Aceast lucru este exprimat in limbajuk de specialitate ca fiind “magistrala multiplexata de date si adrese” (multiplexed address/data bus). Procesoarele care utilizeaza o astfel de magistrala au nevoie de o adresa latch externa pentru a separa si a retine adresele informatiilor pe durata unui transfer de date. Procesorul controleaza directia transferului de date pe magistrala de date.
Magistrala de adrese este o colectie de fire care puncteaza in memorie sau I/O – urilor loctiile unde trebuie citit sau unde trebuie scris. Semnalul adresei trebuie in general sa aiba o valoare constanta inainte, in timpul si dupa ce transferul de date este efectuat.
Magistrala de control este un tip de semnale care determina ce tip de informatii se afla pe magistrala si determina unde vor ajunge datele, in acord cu magistrala de adrese.
3.4.1 CPU-ul memoria si I/O microcontrolerului
Interconectarea CPU, memoriei si I/O a magistralelor de adrese si dateeste in general o conexiune unu – la – unu. Partea grea este de modelare a circuitului pentru adaptarea semnalelor de control, prezente in fiecare dispozitiv, pentru a fi compatibile cu semnalele celorlalte dispozitive. Semnalele de baza sunt generate de CPU pentru a controla transferul de date intre CPU si memorie si intre CPU si dispozitivele I/O. cele mai cunoscute patru tipuri de transfere de date controlate de CPU sunt:
CPU citeste data/instructiune din memorie (citeste memorie)
CPU scrie date in memorie (scrie memorie)
CPU citeste date de la I/O
CPU scrie date intr-un dispozitiv de tip iesire
3.4.2 Metodologia de Modelare
Decodarea adreselor si controlul logic din Figura 3.3 reprezinta cheia modelarii si anume analizarea atenta a tactului pentru a garanta semnale logice si compatibilitate de tact intre diferitele blocuri. O diagrama de sincronizare pentru un astfel de sistem este aratata in Figura 3.4.
Observam ca exista, in aceasta diagrama, doi ciclii
Citeste Memorie – procesorul trimite o adresa pe magistrala de adrese si activeaza semnalul citeste memorie (MRS) prin coborarea semnalului, rezultand ca locatia de memorie va fi plasata pe magistrala de date.
Figura 3.3 si Figura 3.4
Scrie Memorie – procesorul trimite o adresa pe magistrala de adrese pentru a fi scrisa pe magistrala de date si activeaza semnalul citeste memorie (MWS) prin coborare, rezultatul fiind ca locatia de memorie selectata sa fie incarcata cu data pe care CPU-ul a plasato pe magistrala de date.
Arhitectura familiei procesoare microcontroler 8051
8051 a fost ales ca exemplu aici din urmatoarele motive:
are specificatii de semnal simple si permite o analiza detaliata a acestora
interfatarea cu magistrala multiplexata de adrese /date a procesorului ofera informatii de proiectare desosebite
permite dezvoltarea de programe specifice, incluzand asamblare, simulatoare si compilatoare
este disponibil la preturi mici, permitand versiuni de cost redus in circuite – emulatoare, componente periferice si PC-uri
familia 8051 este foarte raspandita in multe aplicatii fiind produsa de multi fabricanti
arhitectura 8051 este disponibila intr-o gama larga de preturi marime si performanta.
Arhitectura 8051 este disponibila pentru a fi inglobata in sisteme ieftine si compacte
Pachetele software pentru familia 8051 sunt disponibile gratuit pe internet, iar partea hardware este disponibila la preturi sub 100 $ impreuna cu documentatia tehnica completa astfe ca 8051 poate fi folosit cu usurinta in numeroase aplicatii.
8051 are cele mai simple specificatii de semnal putand fi usor inteles, creeinduse astfel o baza pe care se pot asimila usor un numar mare de dispozitive similare.
3.4.3 Introducere in arhitectura lui 8051
Pentru o mai buna intelegere a proprietatilor acestei arhitecturi se va prezenta mai tarziu si modelul 8031 desi acesta nu are program de memorie interna dar in schimb apeleaza o memorie externa. De retinut este insa faptul ca aproape toate celelalte procesoare ale familiei au aceleasi caracterisitici.
Figura 3.5 o versiune simplificata a procesorului cu memorie externa (O adresa de memorie este de asemenea ceruta dar nu apare in figura)
Figura 3.5
Programul este memorat in memoria nevolatila ROM (poate fi si EPROM) iar datele in memoria volatila RAM. In aceasta configuratie cu memorie externa numarul I/O utilizat este limitat de numarul de pini ce sunt folositi pentru adrese, date, si linii de control. Numai Port 1 si Port 3 sunt disponibile pentru operatii de tip I/O in acest caz in variante simplificate, numai de memoria interna a procesorului necesara pentru aplicatie, astfel incat marea majoritate a pinilor sunt disonibili pentru I/O. In acest caz, microcontrolerul este singurul cip cerut, fiind si cea mai ieftina configuratie. Exista versiuni ale acestui tip de dispozitiv care au memorie interna ce poate fi programata cu ajutorul unui PC la costuri foarte reduse.
Figura 3.6 arata o vedere de sus a procesorului 8052 cu numarul de pini, incepand cu pinul 1 in coltul stanga sus.
Figura 3.6 arata numerele pinilor, numele si functiile acestora. Definitiile pinilor 80 X 1 si 80 X 2 sunt identice exceptie facand pinul 80 X 1 care nu are Timer 2.
Figura 3.6
3.4.4 Organizarea memoriei lui 8051
Pentru a intelege procesul este necesar sa vedem cum este organizata memoria acestuia. Organizarea memoriei pentru familia de procesoare 8051 poate parea pentru inceput complexa, totusi nu este chiar asa aleatoare cum pare a fi. Exista spatiu de memorie separat pentru stocarea programului, memorie interna si registrii, functii I/O interne si o memorie de date externa. Programul si memoria externa de date sunt relativ simple. Fiecare ocupa 64 Kbytes de instructiuni si respectiv date. Instructiunile de program sunt intotdeauna executate din memoria program si sunt indicate de procesor prin activarea pinului /PSEN. Datele externe sunt transferate cand CPU – ul executa o instructiune MOVX iar procesorul indica aceasta activand linia /RD sau /WR. Fanilia procesoarelor 8051 au numai trei tipuri de cicluri de memorie externa:
Citeste program cand /PSEN trece in “LOW”
Citeste date externe cand /RD trece in “LOW”
Scrie date externe cand /WR trece in “LOW”
La procesoarele din familia 8051 spatiul de adrese de date intern nu este la fel de mare ca si memoria externa. Aceasta include patru blocuri a 8 registri, memoria putand fi accesata de un singur bit sau un singur byte de data, o stiva si functia speciala inregistrari (SFRs) care retine datele si controleaza informatiile pentru portul serial, temporizatoare si alte I/O – uri. Acest spatiu de adrese de memorie poate fi accesat in cateva moduri diferite. Spatiul de date intern al procesorului poate crea dificultati de intelegere la inceput, dar este o caracteristica a familiei 8051 ce permite sa se realizeze foarte mult cu resurse limitate.8051 manipuleaza operanzi in trei spatii de adresare:
64 kilobyte memorie program (la 8031 memorie program externa) care care e activata cand procesorul prelucreaza o instructiune ce va fi executata si semnaleaza prin activarea liniei de control /PSEN al CPU-ului. Instructiunea MOCV activeaza de asemenea /PSEN-ul pentru a face posibila citirea codului memorie in acumulator pentru a accesa tabelele … si alte date stocate si nemodificate in spatiul memoriei program
64 kilobyte memorie de date externa care este activata cand procesorul scrie/citeste date din memoria externa de date. Aceasta se intampla doar cand o instructiune MOVX este utilizata pentru scriere/citire din memoria externa.
RAM-ul intern de date si functai speciala de registrii (SFR). Patru blocuri de registri (fiecare bloc avand 8 registrii), 128 biti adresabili individual si stiva din RAM-ul intern de date. Stiva este limitata doar de RAM-ul de date intern disponibil. Locatia este determinata de pointerul de 8 biti al stivei. Figura 3.7 exemplifica acest lucru.
Figura 3.7
Harta memoriei acestor registrii include registrii aritmetici, pointeri, porturile I/O si registrii pentru intreruperile sistemului, temporizatoare si canale seriale. Exista 128 biti in spatiul de adrese al SFR care sunt adresabili ca biti. Procesorul 8031 are RAM-ul de date de 128 bytes si 20 functii speciale de registrii (SFRs), in timp ce aproape toate celelalte familii de procesoare au inclusa o memorie de date aditionala de 128 bytes.
3.4.5 Structura Hardware a CPU pentru 8051
8051 este o masina pe 8 biti, din moment ce RAM-ul, ROM-ul funtia speciala de registrii, unitatea aritmetica-logica si magistrala de date externa sunt de 8 biti. Figura 3.8 reprezinta microcontrolerul 8051.
Figura 3.8
Structura Hardware:
Unitatea de Control
Aici este decodificate fiecare instructiune
Genereaza semnalele interne care controleaza functiile tuturor componentelor apelate numai din memoria program.
Instructiunile pot fi apelate atat din meoria program externa cat si din memoria program interna
Controrul de Program
Este pointerul catre urmatoarea instructiune de executat
Contorul de program de 16 biti verifica secventa din memoria program in care se afla instructiunea ce a fost executata.
Registrul de Instructiuni
Acesta contine instructiunea in curs de executie
Memoria Program Interna
8051 are 16 linii de adrese si poate adresa direct 64 kilobytes de memorie program
procesorul poate prelucra din memoria externa sau interna.
Figura 3.9 descrie Programul Memoriei.
Memorie Interna de Date
Figura urmatoare descrie spatiul de adresare al memoriei microcontrolerului 8051.
Acesta include bank-ul de registrii, SFRs, si date generale stocate
Tot aici, temporar, se pot stoca calcule intermediare. Harta registrilor include registrii aritmetici, porturile I/O, registrii pentru intreruperile din sistem, timmer-urile si canalelel seriale.
Memoria de Date
Familia 8051 are doua tipuri de memorie: interna si externa, cu 16 biti adresabili, 64 kb memorie externa maxima.
Activata atunci cand procesorul citeste/scrie din memoria externa de date, acest fapt fiind semnalat de liniile de control RD si WR.
Spatiul de adresare intern are doua parti diferite asa cum se observa din Figura 3.10: o parte contine registrii de interes generalsi date stocate, a doua parte contine registrii speciali si dispozitivele de I/O (porturile paralele si seriale, timere)
00-7F hex locatia RAM:
avem patru bak-uri de registre fiecare continand registrii R7-R0
28 biti RAM adresabili
functii speciale de registrii aflati la adresele 80 – FF
registrii generali Asi B
porturile paralele de I/O
porturile seriale de I/O
Timere si/sau Countere
Circuitul de Reset
arata ca in Figura 3.11
Trebuie ca pinul de reset sa fie conectat la un condensator si o rezistenta externa
8051 este unic pentru ca semnalul de reset este HIGH fata de restul microcontrolerelor care au semnalul de reset pe LOW
Figura 3.11
Oscilator si Circuitul de Temporizare
Circuitul de temorizare este inclus in microcontrolerul 8051, cu exceptia frecventei de referinta (care poate fi un cristal sau o sursa de ceas externa)
Oscialtorul on-board este un circuit paralel antirezonant
Figura 3.12 arata un oscialtor standard
Figura 3.12
Capitolul IV
Un exemplu detaliat de modelare
Tot in acest capitol vom privi cu atentie modelarea si analizarea unui proiect simplu cu microcontroller. Tot aici vom ilustra natura interactiva a procesului de modelare. In primul rand modelul preliminar este analizat din punct de vedere al limitarilor si incalcarilor a timpilor de cerere pentru chip-uri diferite. Modificarile si adaugarile la model sunt alese astfel incat sa fie imbunatatite performantele bazate pe analize anterioare. Modelul modificat este apoi verificat in conformitate cu variatele modele specificate. Acest proces iterativ incepe cu un bloc de diagrama simplu ce expune componentele de interes, si va progresa la o diagrama de timp detaliata, specificari si analize de timp.
4.1 Unitatea Centrala de Procesare (CPU)
Procesul de modelare a unui sistem cu microprocesor este independent de CPU-ul particular utilizat. Exemplul din acest capitol este unul relativ simplu dar care va ilustra modelarea si analizarea procesului in de ajuns de detaliata pentru a releva ceea ce trebuie facut. Deoarece modelul microcontroller-ului Intel 8031 are interfata magistralei simpla, are timpii scurti specificati, foloseste SRAM si are incorporat I/O-ul relativ simplu pe chip, va fi utilizat pentru a ilustra modele critice si analize de proces. In momentul in care intregul proces este inteles cu acest CPU simplu, modelelel avansate pot fi intelese usor prin comparatie.
Procesorul 8031 are o arhitectura Harvard cu o adresare multiplexata si magistrala de date. Exista trei spatii de adresare: RAM-ul intern, RAM-ul extern de date si programul extern ROM. Programul extern ROM si RAM-ul de date sunt accesate folosind trei ciclii de memorie: “citeste program”, “citeste data” si “scrie data”. Trei semnale de control, de la CPU, care se exclud mutual, determina catre din cele trei tipuri de cicli de memorie externa este pe cale de a se produce. Un singur semnal este activ la un moment oarecare de timp, realizand astfel o interfata a memoriei foarte simpla. Un program “citeste ciclii” este indicat atunci cand /PSEN (activat LOW, programul … ) da posibilitatea activarii, un ciclu de citire RAM data cand /RD (activat LOW, citeste) devine activ si un ciclu de scriere RAM data este semnalat cand /WD (activat LOW, scrie) devine activ. Semnalul /PSEN poate fi conectat direct pentru a activa programul ROM, si semnalele /RD –ului si /WD-ului pot fi conectate la iesirea activata si sa scrie pe pinii activati in RAM-ul de date. Din moment ce partea mai putin importanta a celor 8 biti de adresare este multiplexata pe magistrala de date, acestia sunt retinuti de lach-ul transparent (74X373). Pentru a controla latch-ul iesirile procesorului sunt semnale HIGH de activare, ALE (actvare adresarii latch-ului). Procesorul, latch-ul programul EPROM si SDRAM-ul sunt ilustrate in Figura 4.1.
Diagrama de timp pentru cei trei ciclii de memorie asa cum sunt in specificatiile procesorului, impreuna cu parametrii de timp sunt schitati in Figura 4.2. Timpii de cerere ai CPU trebuie sinconizati cu celelalte cereri ale altor chip-uri din sistem incepand cu chip-ul de memorie.
4.2 Selectarea Memoriei si Interfatarea
Cele mai multe modele realizate folosesc EPROM pentru stocarea programelor non-volatile si SRAM-ul pentru stocarea datelor volatile. Pentru acest exemplu vom folosi: 32KX8 UV EPROM reprogramabil pentru a stoca programul, si un 32kX8 CMOS RAM static. Adresele bitilor multiplexati A0..7 vor avea in latch corespondenti liniile AD0..7 folosind latch-ul transparent 74ALS373. Din moment ce avem un singur tip de memorie nu este necesara o decodificare a adreselor pentru chip-uri pentru a fi activate direct de la liniile de control ale memoriei procesorului /PSEN, /RD si /WR.
4.3 Analize preliminare de timp
Parametrii critici de timp pentru EPROM, SRAM si adresele latch-ului sunt indicate in tabelele 4.1 si 4.2 si sunt fragmente din tabelele componentelor specificate. Pentru un proiectant experimentat, analiza preliminara de timp poate consta intr-o privire rapida peste tabela de date. O analiza limitata a parametrilor de timp importanti va fi efectuata la inceput pentru a identifica orice schimbari majore care ar putea fi facute in model. Parametrii ce trebuie evaluati aici vor fi timpul de cerere al memoriei de accesare al CPU versus capabilitatile maxime ale timpului de accesare * pulsatia semnalului de control, toate acestea fiind dependente de frecventa ceasului. La inceput vom analiza timpul de acces al programului “citeste memorie” si apoi timpii de acces “citeste data” si “scrie data”.
Secventa evenimentelor este, dupa cum urmeaza:
ALE devine activ (HIGH), activeaza latch-ul extern pentru a trece A0..7 prin el pana la iesirea acestuia. Valoarea celui de al 16-lea bit PC (control de program), continand adresa urmatoarei instructiuni ce va fi adus din EPROM, va fi utilizat in acel moment pentru a conduce cele 16 linii de adrese.
Partea mai putin semnificativa a celor 8 linii de adrese A0..7 sunt conduse spre Port 0 (cunoscut de asemenea ca AD0..7 din moment ce este multiplexat cu A0..7 si D0..7), in acelasi moment de timp A8..15 sunt conduse spre Port 2 . In acest punct adresa completa de 16 biti a instructiunii urmatoare este disponibila pe Port 2 si la adresa latch-ului. In momentul in care liniile de adrese sunt stabile si valide, incepe timpul de accesare a adreselor memoriei . Din moment ce adresele vor fi valide pana cand ALE-LOW, latch-ul transparent este folosit pentru a da memoriei adresele cat mai curand posibil.
In momentul in care liniile de adrese sunt valide, ALE-LOW, latching A0..7 biti in latch-ul extern de adrese. Aceasta permite liniilor de date multiplexate sa fie utilizate pentru transfer de date fara denaturarea acelor parti mai putin semnificative a liniilor de adrese care sunt retinute in latch pana la sfarsitul ciclului. Din moment ce partea semnificativa a liniilor de adrese (A8..15) nu sunt multiplexate, raman valide pana la sfarsitul ciclului.
/PSEN devine activ (LOW) pentru a arata ca acesta este un ciclu “citeste memorie” program, activand EPROM-ul pentru a gestiona magistrala de date. Acest semnal de activare incepe ciclul de acces “citeste memorie program” pentru EPROM.
/PSEN devine incativ (HIGH) semnaleaza sfarsitul ciclului “citeste program” si ascunderea datelor in procesor. Pentru ca acest semnal este folosit la ascunderea datelor in CPU de pe magistrala de date, sunt asociati timpi de setare si retinere pentru date relativ la ridicarea pantei semnalului /PSEN.
Folosind modelul preliminar, primii parametrii care vor fi investigati sunt timpii de acces. Tabelul 4.1 ofera parametrii de sincronizare ai programului memorie pentru 8031. Memoriile care au timpi mari de acces sunt mai putin costisitoare decat cele rapide, asa ca vom dori sa utilizam partile mai putin costisitoare care indeplinesc specificatiile. Atat adresele cat si timpii activi de accesare sunt importanti, inclusiv toate caile posibile de propagare ale celor trei semnale. Cea mai lenta cale va determina frcventa de ceas maxima care poate fi folosita pentru operatii valide, pana la 12 MHz, frecventa de ceas maxima a CPU-ului. Calea ALE va fi ignorata de acum inainte. Toate cele trei cai trebuie sa fie evaluate pentru a afla care dintre ele este conditia de limitare a vitezi. Cele trei semnale de propagare pentru programul “citeste ciclu” sunt:
Adresa valida A8..15 pe Port 2, timp acces al adresei EPROM
Adresa valida pe Port 0, DE la D la Q intarziere prin intermediul latch-ului si acces la adresele EPROM-ului
/PSEN activ, EPROM-ul activeaza timpul de acces.
Figura 4.3 : Trei cai de acces pentru programul citeste
Cele trei cai de propagare sunt aratate in Figura 4.3. Figura 4.4 prezinta diagrama de timp a programului memorie pentru 8031.
Figura 4.4
Presupunem ca frecventa este de 12 MHz, analiza sincronizarii pentru cele trei cai este:
Calea A
Delay-ul, de cand CPU-ul ofera o adresa valida A8..15 pe Port 2 pana la sfarsitul timpului de acces al adresei EROM-ului, este o data valida de la EPROm pe magistrala de date. Figura 4.5 reprezinta diagrama de sincronizare a EROM-ului. CPU cere ca data de la EPROM sa fie disponibila 320 nanosecunde (nS) (TAVIV) dupa ce a fost oferita cu o adresa valida. Versiunea –30 a EPROM-ului are un timp de acces la adresa de maxim 300 nS. (EPROM tAA), deci este 20 nS din limita pentru acest EPROM la aceasta frecventa de ceas.
Figura 4.5
TAVIV-EPROM t AA = 320 – 300 = 20 nS limita
Tabelul 4.2 : Parametrii de sincronizare ai EPROM-ului
Observat ca –15, -20, etc. din Tabelul 4.2 sunt sufixe care se refera la timpii de acces la memorie.
Linia ALE a CPU-ului este conectata direct la iesirea activata a latch-ului transparent 74ALS373. Tabelul 4.3 ofera specificatiile de sincronizare pentru acest dispozitiv. Acest tip de lach permite trecerea directa a intrarilor D la iesirile Q (dupa un timp de intarziere), atata timp cat intrarea activa ramane HIGH. Tipul de lach ‘373 are o propagare asimetrica a delay-ului de la intrarea D la iesirea Q, din moment ce tPLH de la D->Q este maxim 12 nS , si tPHL este maxim 16 nS. Aceasta corespunde primei parti din propagarea semnalului pe calea B.
Tabelul 4.3: Specificatiile de sincronizare pentru lach-ul transparent 74ALS373
Asa cum se poate observa din Figura 4.2 ALE devine HIGH inainte ca adresa sa devina valida. Delay-ul de la intrarea activata (E) la iesire (Q) este de numai 23 nS, un timp mult mai mic fata de timpul de care are nevoie CPU-ul pentru as pune adresa pe magistrala . Delay-ul pe calea ALE este:
TLHLL – TAVLL = 140 – 60 =80 nS
Din moment lach-ul ce este activ 23 nS, dar adresa nu este disponibila de la CPU decat 57 nS mai tarziu, aceasta cale nu este luata in considerare. Aici, ca de altfel aproape in toate modelele, calea delay-ului ALE nu este critica, asa ca este ignorata.
Calea B
De la momentul in care o adresa valida este disponibilape Port 0 (magistrala multiplexata), suplimentar delay-ul maxim de la D la Q prin latch si timpul de acces al adresei EPROM-ului, pana cand data valida este pe magistrala.
CPU-ul are acelasi delay total de 320 nS pentru aceasta cale ca si mai sus. In acest caz oricum exista delay-ul aditional de la latch care reduce timpul disponibil al memoriei. Lach-ul are un delay maxim specificat de la D la Q , tPD->Q de 16 nS in cel mai rau caz. Asa dar din 320 nS, 16 nS sunt utilizate de latc si 300 nS de EPROM, ramanand doar 4 nS pentru limita!
TAVIV –EPROM tACC –LATC tPD->Q = 320 –300 – 16 = 4 nS limita
Aceasta este o margine limita mica dar acceptabila, atata timp cat dispozitivul de iesire poate conduce actualele incarcaturi la iesirile lor. Daca incarcatura depaseste testul specificat de incarcare de obicei afisat in notitele sectiunii de sincronizare, atunci timpul de urcare/coborare va fi extins, existand posibilitatea de a conduce acest model la o depasire a limitelor specificate la viteza maxima de 12 MHz a ceasului.
Calea C
Pentru calea C, trebuie evaluat delay-ul dintre timpul in care CPU activeaza memoria program si cand apare instructiunea de iesire memorie de pe magistrala. Activarea timpului de acces este de la incepe de la activarea semnalului /PSEN, care permite chip-ului EPROM sa devina activ (/CE), pana cand EPROM-ul ofera o instructiune valida si stabila pe magistrala de date. Inca odata, modelarea limitei este timpul permis de CPU, minus timpul alocat circuitelor externe. CPU-ul permite TPLIV sau 150 nS.
TPLIV – EPROM tCE = 150 – 300 = – 150 limita NEGATIVA de model !
Cand /PSEN este direct conectat la linia /CE a EPROM-ului, CPU ofera 150 nS (TPLIV) pentru timpyul de acces activeaza EPROM, dar –30 EPROM tCE inseamna 300 nS, ceea ce indica de fapt ca este cu 150 nS MAI LENT!
In acest punct, avem cateva optiuni:
Scadem viteza ceasului de la CPU.
Cumparam un EPROM mai rapid.
Schimbam scrierea: conectand /PSEN la /OE in loc de /CE
Sa examinam aceste trei posibilitati mai amanuntit:
Reducerea vitezei ceasului CPU-ului potrivit cu activarea timpului de acces al chip-ului EPROM-ului. Aceasta posibilitate are evidentul dezavantajica procesorul va merge mai lent .
Componentele mai rapide costa mai mult, si , in acest caz, cel mai rapid dispozitiv are un chip de activare a timpului de acces de 170 nS, caeea ce este insufucuent.
Aceasta varianta nu necesita o incetinire a chip-ului sau utilizarea unuia mai rapid, o memorie mai scumpa.
Mai exista o solutie dar care nu este valabila pentru procesorul standard 8051: utilizarea unei “stari de asteptare” care intinde ciclul de memorie sincronizat pe maiunul sau mai multi ciclii de ceas. Familia standard 8051 nu are incorporata aceasta trastura, dar versiunile mai rapide detin asa ceva. Familia 80C320 de microcontrollere de mare viteza de la Dallas Semiconductor detin stari de asteptare. Aceste dispozitive au registrii interni care pot fi programati sa intinda ciclii de memorie cat este nevoie pentru a se adapta la memorii mai lente. Unele procesoare necesita hardware extern pentru a insera starea de asteptare.
Comparind toate optiunile, cea mai simpla solutie este probabil 3). Sa vedem ce modificari au loc pentru modelul de sincronizare al caii C in acest caz. In acesta versiune, linia /PSEN a CPU-ului se leaga de intrarea /OE a EPROM-ului, avand la pamant /CE. Ca mai sus CPU permite TPLIV sau 150 nS, dar in acest caz vom folosi timpul de acces al EPROM-ului pentru iesire activata, tOE. Privind specificatiile EPROM-ului, vom gasi pentru cea mai lenta parte (-30), valoarea in cel mai rau caz pentru tOE este 120 nS.
TPLIV- EPROM tOE = 150 – 120 = +30 nS limita de model
Cand /PSEN este conectat direct la linia /OE a EPROM-ului. CPU ofera 150 nS (TPLIV) pentru timpul de acces activ al EPROM-ului, si –30 nS EPROM tOE este 120 nS, suficient de rapid. acest model permite CPU-ului sa mearga la frecventa maxima de 12 MHz. Exemplul ne arata cum putem schimba modelul in incercarea optimizarii sincronizarii, si natura iterativa a procesului de modelare.
Ca in orice domeniu, exista niste dezavataje si implicatii pentru aceast concept care trebuie sa fie luate in considerare:
EPROM-ul este tot timpul activ cand intrarea /CE este legata la pamant, astfel un singur EPROM poate fi utilizat in acest fel. Acest lucru are dezavantajul EPROM-ul opereaza intotdeauna la maxim.
Folosind /CE pentru a activa dispozitivul reduce consumul de putere, ceea ce este important pentru o aplicatie de tip baterie de alimentare, mai ales cand exista dispozitive multiple. Activand cu intrarea /CE permite utilizarea de chip-uri de momorie multiple in sistem utilizand un decodor de adrese de memorie pentru a decodifica linii de adresa apropiate. Iesirea decodorului poate conduce liniile de intrare /CE ale dispozitivului de memorie selectat cate una la tact. In acest fel un dispozitiv de memorie este alimentat la un moment de timp dat. Liniile /OE ale memoriei vor fi conectate la semnalul de iesire /PSEN al procesorului, astfel ca memoriile mai lente vor putea inca fi folosite. Asa cum in cazul altor specualtii, viteza sau consumul de putere pot fi optimizate.
Aceasta incheie exemplul nostru, dar este evident ca exita multe alte specificatii de sincronizare care trebuie evaluate pentru un model dat. Din fericire, aceleasi metode folosite aici, sunt aplicabile altor specificatii de sincronizare si dispozitive pentru sisteme tipice de control in timp real. Aceasta completeaza evaluarea preliminara a programului potrivit pentru timpii de access al ciclului de memorie. Urmatorul pas este de a analiza sincronizarea ciclului data de memorie.
4.4 Ciclii externi de date de memorie
Ciclii de scriere si citire data de memorie sunt de asemenea examinati practic in acelsi mod, folosind citeste data CPU, ciclul citire date si performantele specificate ale SRAM. Ciclul citeste date are in esenta aceleasi trei cai posibile ca si ciclul program citire, dar semnalul CPU/RD este conectat la intrarea /OE SRAM-uluisi chip-ul activ SRAM este legat la pamant.
4.4.1 Memoria externa data citeste Memorie
Ciclul data de memorie corespunde ciclului program memorie , asa cum este aratat in figurile de mai jos si in tabele. Figura 4.6 ilustreaza sincronizarea relationala dintre CPU si SRAM-ul extern memorie datacand CPU citeste de la SRAM in timp ce Figura 6.7 ilustreaza diagrama de sincronizare citeste ciclul SRAM. Tabelul 4.4 ofera informatii despreparametrii de sincronizare ai memoriei data pentru 8031, si in tabelul 4.5 sunt oferiti parametrii de sincronizare pentru citeste ciclu SRAM. TAVDV-ul CPU-ului fixeaza o limita superioara timpului de acces la memoria data, tAA, pentru calea A.
Figura 4.6
Figura 4.7
Intarzierea de cand CPU-ul ofera o adresa valida A8..15 pe Port 2 pana la sfarsitul timpului de acces la adresa SRAM, este o data valida de la SRAM pe magistrala de date. CPU-ul cere ca datele de la SRAM sa fie valabila 600 nS (TAVDV) dupa ce a fost prezentat cu o adresa valida. Versiunea –15 a SRAM-ului are un timp de acces maxim de 150 nS. (SRAM tAA), deci exista o limita de 450 nS pentru aceasta memorie la aceasta viteza de ceas.
TAVDV – SRAM tAA = 600 – 150 = 450 nS limita
Chiar permitand un timp aditional de 16 nS prin latch-ul de adrese pentru adresa bitilor 0..7, exista inca o limita de 437 nS, deci nu este nici o problema cu timpul de accesare a adresei.
TAVDV – SRAM tAA – Latch tPmax= 600 – 150 – 16 = 450 nS limita
Acesta este timpul disponibil pentru memorie dupa ce /RD devine LOW si cand data valida e pe magistrala. Timpul de acces permis oferit de CPU este o este de 250 nS (TRLDV). Din moment ce RAM-ul cel mai lent, versiunea –15, are un timp de acces OE de 70 nS (tOE), avem o limitare de model de 180 nS.
4.4.2 Data Externa Scrie Memorie
Figura 4.8 si Tabelul 4.6 ne arata diagrama ciclilor de scriere ai SRAM-ului si sinconizarea parametrilor. Figura 4.9 o diagrama de sincronizare scrie data in memorie pentru 8031.
Figura 4.8
Figura 4.9
Din specificatiile CPU-ului, adresa e valida 200 nS (TAVWL) inainte ca linia /WR sa devina LOW, si data este valida 400 nS (TQVWH) inainte ca linia /WR sa devina HIGH. RAM-ul cere o stabilire a adresei inainte de timpul de scriere de 0 nS, si care este compatibil cu timpul de 200 nS oferit de CRU. Timpul stabilit al data RAM-ului inaintea terminarii pulsului /WE este de 60 nS, ceea ce este bine in cadrul celor 400 nS disponibile. Delay-ul latch-ului a fost ignorat in acest caz, deoarece este de 16 nS, insignifiant in comparatie cu limita modelului disponibil. De asemenea, intrarea chip select-ului in RAM este legata la pamant, astfel timpul de acces al chip select-ului nu este luat in considerare. Largimea pulsatiei minime de la CPU este de 400 nS (TWLWH) iar RAM-ul are nevoie doar de minim 90 nS (tWP). RAM-ul are 0 nS timp cerere de retinere (tDH), iar procesorul ofera 80 nS (TWHQX).
Din acest moment vom studia trei probleme tipice de modelare si vom arata cum se folosesc tehinicile descrise in acest capitol pentru a le rezolva.
Problema 1 de Modelare
Pentru aceleasi trei cai din Figura 4.3, gasiti frecventa maxima admisibila a ceasului, danduse cel mai lent EPROM din Tabelul 4.2. Consideeram 8031, EPROM si latch-ul 74ALS373.
Slutia: in acest caz, avem date componentele de sinconizare, si avem nevoie sa aflam perioada minima de ceas ( T = 1/ frecventa de ceas maxima)
Calea A:
CPU permite TAVIV = 5*T-100 nS
EPROM-ul foloseste Taa = 300 nS
Conditia de limitare este TAVIV = Taa, deci:
5T-100 = 300
5T = 400
T= 80 nS
Calea B:
CPU permite TAVIV = 5*T-100 nS
EPROM-ul foloseste Taa = 300 nS
Latch-ul foloseste TPHL D-> Q = 16 nS
Conditia de limitare este Taa + Tlatch = TAVIV, deci:
TAVIV= Taa + Tlatch si TAVIV= 5T-100, deci:
5T-100 = 300 + 16
5T = 416
T= 83 nS
Calea C:
Conditia de limitare este TPLIV = Toe al EPROM-ului, deci:
Toe-ul EPROM-ului din tabel este 120 nS
Ecuatia este TPLIV = Toe
Rezolvand pentru T, vom obtine:
3T – 100 = 120
3T = 220
T = 220/3 = 73 nS
Din cele trei cai, cea mai lunga perioada este obtinuta pe calea B respectiv 83 nS, aceasta fiind astfel limita perioadei de ceas pentru cazul considerat aici.
Caile A si C nu sunt constranse in acest caz.
Astfel Calea B este cazul de limitare cand /OE este conectat la /PSEN, si frecventa maxima a ceasului este 1/83 nS = 12 MHz.
Observam urmatorul lucru: Calea B este la limita pentru 12 MHz, deci ceasul maxim este de 12 MHz, chiar si pentru un EPROM mai rapid.
De asemenea observam ca daca /PSEN ar fi fost conectat la /CE, (Calea C), TPLIV-ul ar fi fost factorul de limitare: TPLIV = 3T – 100 = Tce –ul EPROM-ului. Tce-ul EPROM-ului din tabel este 300. Rezolvand pentru T, obtinem:
3T – 100 = 300
3T = 400
T = 133 nS
In acest caz, 1/133 nS = 7.5 MHz ar fi frecventa maxima admisibila.
Problema 2 de Modelare
Se da un model de procesor existent, se cere sa se afle minimul de specificatii acceptabile ale programului EPROM pentru a determina care numere vor functiona in sistem. Presupunem ca frecventa de ceas este 12 MHz pentru 8051, determinati specificatiile urmatoare pentru chip-ul memorie ce va fi folosit , presupunand acceasi adresa de latch ca in problema precedenta, si gasiti valorile maxime acceptavile pentru:
Tce max (timpul de acces al chip-ului activat)
Taa max (timp de acces la adresa)
Tod max (timpul de iesire dezactivat, Tdf-ul din specificatiile EPROM-ului)
Presupunem ca /PSEN este conectat la /CE-ul EPROM-ului si /OE-ul EPROM-ului este legat la pamant.
Solutie: pentru a determina Tce-ul cerut, va trebui sa calculam specificatiile memoriei pe baza vitezei CPU. Din moment ce /PSEN este conectat la /CE-ul EPROM-ului, specificatia relevanta pentru CPU este TPLIV. Din tabelul de sincronizare al memoriei program, TPLIV = 3T – 100 nS,unde T este TCLCL, perioada de ceas. Raspunsul pentru Tce se afla in tabel pentru 12 MHz ca fiind 150 nS, dar poate fi calculat pentru un ceas arbitrar ca fiind:
Tce max = 83.3 – 100 = 150 nS
Taa este diferit deoarece delay-ul latch-ului trebuie sa fie inclus. In acest caz specificatia relevanta a CPU-ului este TAVIV, care este de 320 nS la 12 MHz. Extragand cel mai rau caz de delay al latch-ului, Tphl D->Q este de 16 nS. in acest caz doar Taa este disponibil pentru memorie si este 320 – 16 = 304 nS. solutia generala este TAVIV = 5T – 100, deci:
Taa = TAVIV – Tplatch = 5*83.3 – 100 – 16 = 301 nS
Observati ca Taa-ul obtinut este usor diferit (3nS) fata de valoarea calculata folosind tabelul. Acest lucru nu este iesit din comun deoarece multe specificatii sunt bazate pe estimari statistice, ele in sine fiind niste aproximari. Foarte des aceste specificatii sunt garantate dar nu sunt testate pentru fiecare dispozitiv.
Tdf este timpul la care EPROM-ul trebuie sa inchida driver-ele de iesire. Acesta corespune cu timpul la care CPU permite EPROM-ului sa inchida driver-ul tri-state al iesirilor dupa ce /PSEN devine inactiv. Daca aceasta specificatie este incalcata vom avea o conectare prin magistrala intre CPU si EPROM. Specificatia relevanta pentru CPU este TPHDZ. La 12 MHz, 75 nS sunt disponibile pentru ca EPROM-ul sa dezactiveze iesirile sale. Formula generala este TPHDZ = T – 10 sau 73 nS, din nou usor diferita de valoarea din tabel.
Problema 3 de Modelare
Pentru un EPROM cu anumite specificatii, gasiti valoarea maxima posibila a tactului de ceas, dandu-se cel mai lent EPROM din Tabelul 4.2. utilizati indicatorii pentru varianta –30 care are timpul de acces de 300 nS si acceasi adresa latch. Folositi indicatorii pentru 8051 pentru TPLIV, TAVIV si TPHDZ.
Solutia: in acest caz este data componenta de sincronizare, si avem nevoie sa aflam perioada minima de ceas (= 1/ frecventa maxima a ceasului).
Ecuatia pentru TPLIV = 3T – 100 = Tce pentruEPROM. Tce-ul EPROM-ului din tabel este de 300 nS. Aflam T:
3T – 100 = 300
3T = 400
T= 400/3 = 133 nS.
Taa-ul EPROM-uluieste egal cu 300 nS, Taa = TAVIV – Tplatch si TAVIV = 5T – 100, deci:
300 = 5T – 100 – 16
5T = 416
T = 83 nS
Tdf-ul EPROM-ului este de 105 nS si TDF = TPHDZ = T – 10 deci :
105 = T –10
T = 115 nS
Pentru cei trei indicatori, cea mai lunga perioada, respectata pentru Tce-ul si TPLIV-ul specificat, este de 1/133 nS = 7.5 MHz. Daca semnalul /PSEN este conectat la pinul /OE al EPROM-ului –30 (cel mai lent), avem in aceste conditii :
EPROM Toe = 120 nS
TPLIV = 3T – 100 = 120
3T = 220
T = 73 nS
Cu /PSEN conectat la /OE specificatia TPLIV nu este limitatorul.
Pentru EPROM-ul –30 din Tabelul 4.2, Tdf va fi spevificatia limitatoare cand timpul de acces este destul de rapid. Tdf este de 105 nS mult mai mare de cat 75 nS disponibile penru 12 MHz, rezultand o conecxiune la magistrala de 105 – 75 = 30 nS ceea ce reprezinta un serios conflict ce nu trebuie perimis sa se produca.
Daca privim doar specificatiile de timp nu exista nici o problema, deci sistemul ar parea ca ar merge. Oricum, conexiunea la magistrala s-ar putea sa aiba intreruperi la frecventa de 12 MHz, deci raspunsul corect este de 8.7 MHz.
Acest exemplu ne arata de ce este important sa luam in considerare toate specificatiile, din moment ce nu este evident care specificatii sunt limitatoare
Capitolul V
Abilitatea de a controla cu performante superioare de catre operatorii umani procese complexe utilizand algoritmi empreci, euristici si intuitivi, constituie punctul de plecare pentru dezvoltarea regulatoarelor fuzzy.
Sistemele fuzzy imita comportamentul si rationamentul uman; ele se folosesc de cunostinte inglobate intr-un sistem expert si cu ajutorul unui rationament vag si imprecis, rezolva problemele cuvenite. Operarea cu entitatile imprecise este asigurata de suportul matematic al multimilor fuzzy.
Figura 5.1
In aceasta figura simplificata, regulatorul este inclus intr-o bucla de reactie negativa, primind la intrare informatiile de stare (prin semnalul de eroare e(t)) si informatiile de tendinta de modificare a starii procesului (prin viteza de variatie a erorii de(t)) in functie de care calculeaza comanda q(t) care sa aduca iesirea procesului y(t) spre valoarea prescrisa yP(t) si sa o mentina la aceasta valoare. In schema bloc s-a mai inclus un bloc de masurare a iesirii care poate fi realizat fizic prin traductoare sau senzori. Se mentioneaza ca, in general, regulatorul poate sa fie cu mai multe intrari/iesiri, dar in multe situatii practice se foloseste aceasta configuratie standard cu doua intrari (e(t) si de(t)) si o iesire (q(t)).
Deoarece variabilele de intrare/iesire ale regulatorului sunt de valori exacte (crisp) este nevoie de doua blocuri de conversie exact-fuzzy – realizat de blocul de fuzzificare – si fuzzy-exact – realizat de blocul de defuzzificare. Baza de reguli contine bagajul de cunostinte, de informatii necesare reglarii procesului. Aceste informatii sunt organizate sub forma unor reguli "Daca… atunci". La concluzia (decizia) fuzzy se ajunge prin blocul de inferenta.
Deci, variabilele de intrare exacte se convertesc in variabile fuzzy si cu ajutorul blocului de inferenta, folosind baza de reguli, se ia o decizie fuzzy. Valoarea concluziei fuzzy se converteste apoi in valoare exacta cu care se comanda procesul.
Baza de reguli
Baza de reguli este alcatuita dintr-un set de reguli. Regulile sunt formulate in limbaj
comun si descriu relatii cauzale dintre intrari si iesiri (iesire). Intr-o regula "Daca… atunci" se deosebeste partea antecedenta si cea consecventa. Partea antecedenta poate sa fie compusa din mai multe entitati logice conectate intre ele prin operatori logici fuzzy ca "SI" sau "SAU". Partea consecventa, la fel, poate sa fie compusa, daca sunt mai multe variabile de iesire, dar se va detalia numai cazul cu o singura iesire. Pentru exemplificare, sa se considere regula:
Daca temperatura camerei este coborata si temperatura camerei scade lent,
Atunci trebuie sa se incalzeasca puternic camera.
care intr-o forma mai formala este :
Daca eroarea este NEGATIV-MIC-si variatia erorii este NEGATIV-MIC-
Atunci concluzia este POZITIV-MARE.
Partile componente ale regulii sunt:
antecedenti: e este NS
de este NS
consecventi: q este PB
operator logic fuzzy: si
In cazul regulatorului fuzzy de configuratie, baza de reguli se poate descrie printr-o matrice 3×3.
Figura 5.2 Baza de reguli pentru PongBall
Concretizarea functiei de transfer
In simulari s-a considerat un sistem tub + minge cu urmatorii parametrii: diametru tub =10 inaltime tub = 100 diametru minge 8
Deci, simularea modelului matematic al pendulului inversat se poate face prin urmatoarea secventa de program, scrisa in limbaj FPL (Fuzzy Programming Language) (pentru detalii, vezi anexa cu programul )
Figura 5.3 PongBall.fpl
Pentru acoperirea domeniilor de intrare-iesire s-au considerat functii de apartenenta
triunghiulare respectiv trapezoidale. In definirea lor s-a avut in vedere obtinerea unei suprafete de reglare cat mai echilibrate. Se prezinta si o secventa de program aferenta definirii functiilor de apartenenta.
Figura 5.4 Functii de apartanenta
Comportarea suprafetei de reglare este descrisa de baza de reguli.
Baza de reguli se stabileste dupa functionare logica a regulatorului, de exemplu:
Daca e este NEGATIV-si de este NEGATIV-,
Atunci i este POZITIV-.
Baza de reguli este prezentata in figura 5.5. si este descrisa de secventa de program anexata. Metoda de inferenta se alege max-prod cu defuzzificare centroid.
Cunoscand functiile de apartenenta ale variabilelor si metodele de inferenta si de defuzzificare utilizate, se poate defini suprafata de reglare a regulatorului care descrie comportarea regulatorului in timpul reglarii. Pentru a determina suprafata de reglare, se baleiaza domeniul de intrare, determinat de axele si valorile limita ale lui e si de, cu doua variabile k si l si se calculeaza pentru fiecare punct (k, l) – adica pentru fiecare combinatie a valorilor admise ale variabilelor de intrare e si de – valorile concluziilor regulatorului fuzzy i(k, l). Reprezentarea grafica a lui i(k, l) se numeste suprafata de reglare (figura ) Reglarea fuzzy se desfasoara pe aceasta suprafata. Forma suprafetei de reglare subliniaza inca o data caracterul neliniar al regulatorului.
Pe langa studiul comportarii statice in bucla deschisa a regulatorului prin analiza suprafetei de reglare, este necesar si studiul comportarii dinamice a sistemului de reglare in bucla inchisa. Daca bila porneste dintr-o pozitie in initiala 0, atunci evolutia procesului de reglare se poate urmarii pe baza figurii 5.6.a. Se obtine o reglare lina, fara supracresteri si fara impulsuri de curent. Evolutia procesului in spatiul starilor (e, de) indica care portiune din suprafata de reglare este activata (figura 5.7.a.). Pe baza acestei observatii
Figura 5.6 b
Figura 5.6 a
se pot elimina doua reguli din baza de reguli, simplificand-o la forma din figura 5.7.b.
Fig.5.7 a. Evolutia procesului de reglare in spatiul starilor (stanga). b. Baza de reguli modificata (dreapta).
Performantele reglarii cu baza de reguli simplificata raman neschimbate.
Mediul de dezvoltare SieFuzzy asigura o interfatare comoda permitand o analiza
profunda a procesului de reglare (figura 5.8.).
Evident, se pot introduce modificari in parametrii sistemului de reglat. Totodata, cu ajutorul acestui mediu de dezvoltare, se poate optimiza regulatorul fuzzy.
Bibliografie
Ken Arnold “Embedded Controller Hardwarw Design "
Hellendoorn, H., "Design and Development of Fuzzy Systems at Siemens R&D"
Russo, F., "Fuzzy Systems in Instrumentation: Fuzzy Signal Processing ",
“Analog Interfacing to Embedded Microprocessor”
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sisteme Inteligente Si Microcontrolere (ID: 149204)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
