Recent am avut ocazia sa citesc lucarea de diploma a dlui inginer Glont Aurelian Ionut abolvent 2009 al facultatii de Inginerie “Hermann Oberth” din Sibiu specializarea Calculatoare si Tehnica Informatiei. Am fost placut impresionat de calitatea lucarii. Consider ca si Dv veti aprecia la fel de bine acesta lucare. Am convingerea ca Dl inginer Glont Aurelian Ionut are un potential tehnic foarte bun si va face o cariera stralucita in automatizari industriale
Pentru cei interesati de o colaborare cu Dl inginer Glont Aurelian Ionut puteti sa il contactati prin intermediul ferestrei de comantarii asociate acestui articol
Schema bloc de ansamblu
Ansamblul reprezintă practic întregul circuit ce coordonează funcţionarea dispozitivului de orientare a turbinei. El cuprinde pe lângă unitatea de procesare automatul ce va comanda întreg circuitul şi în plus câteva blocuri funcţionale necesare funcţionării corecte a dispozitivului.
Ansamblul are următoarele intrări:
– t – valoarea emisă de traductorul de poziţie unghiulară a turbinei. Valoarea t este reprezentată pe 9 biţi şi este cuprinsă în intervalul [0,360].
– g – valoarea emisă de traductorul de poziţie unghiulară a giruetei. Valoarea g este reprezentată pe 9 biţi şi este cuprinsă în intervalul [0,360].
– p – valoarea emisă de senzorul de paşi. Valoarea p este reprezentată pe 1 bit.
– CLK – semnal de de sincronizare al stărilor automatului
– START – semnal provenit de la cronometru. Are rol de a porni ciclul automatului.
– INIT – semnal ce realizează iniţializarea asincrona a automatului.
La ieşire ansamblul are două variabile m1 şi m2 ce constituie intrări într-un element de execuţie care la rândul său comandă motorul ce orientează turbina pe direcţia cu intensitatea vântului cea mai ridicată.
În funcţie de valorile lui m1 şi m2 pot fi realizate următoarele comenzi:
m1 |
m2 |
acţiune |
0 |
0 |
stop |
1 |
0 |
stânga |
0 |
1 |
dreapta |
Figura 5 – Schema bloc de ansamblu(in directorul cu figuri)
Prezentăm în continuare succesiunea de transformări ale valorilor de intrare până la ieşire pentru o întelegere cât mai bună a funcţionării dispozitivului de orientare al turbinei eoliene.
Paşii ce trebuie urmaţi pentru generarea ieşirii:
1. Iniţial cele două valori preluate de la cele două traductoare de poziţie unghiulară ale turbinei respectiv giruetei sunt memorate în doi regiştrii de intrare Reg_t respectiv Reg_g.
2. Cele două valori sunt preluate apoi de semnalele interne a (preia valoarea lui t) şi b (preia valoarea lui g) ce constituie intrările în Unitatea de Procesare.
3. Urmează prelucrarea valorilor a şi b în Unitatea de Procesare. La ieşire, vom avea două valori şi anume:
– sens – va fi o valoare pe 2 biţi ce va reprezenta logica de sens a circuitului şi anume direcţia în care se va deplasa turbina: stânga, dreapta sau stop.
– f – valoarea cu care va trebui să se miste turbina pentru a se orienta pe direcţia vântului – deasemenea valoare pe 9 biţi pentru a putea acoperi întreg intrvalul [0,360].
4. Cele două valori sens şi f sunt memorate apoi în doi regiştrii intermediari şi anume Reg_sens şi Reg_f.
5. Cele două valori sunt preluate apoi de semnalele interne ss (preia valoarea lui s) şi ff (preia valoarea lui f).
6. În continuare cu ajutorul unui comparator valoarea ff va fi comparată succesiv cu valoarea pp provenită de la senzorul de paşi. Trebuie menţionat că p este intrare într-un numărator. Semnalul p este de tip clock astfel că pe fiecare front crescător al acestuia are loc incrementarea valorii de iesire pp a număratorului.
Valoarea pp este comparată succesiv cu valoarea ff până când acestea devin egale. Ieşirea comparatorului c3 arată astfel:
– 1 , dacă pp ≠ ff – turbina se află în mişcare.
– 0 , dacă pp = ff – turbina trebuie să se oprească.
7. Valoarea ss va fi divizată în ss(0) şi ss(1) acest lucru fiind posibil deoarece ss este pe doi biţi. Cele două valori ss(0) şi ss(1) vor constitui intrări în două porţi logice ŞI şi anume: ss(0) pentru poarta logicş SI_ss(0) şi ss(1) pentru poarta logică SI_ss(1). Valoarea c3 va fi deasemenea intrare pentru fiecare din cele doua porţi logice şi menţionate. Pentru o întelegere cât mai bună urmariti Figura 5 ce reprezinta Schema Bloc de Ansamblu a circuitului.
Cum explicăm prezenţa celor două porţi logice ŞI? Foarte simplu. Atunci când c3 este 1 spunem că porţile ŞI conduc adică generează valori la ieşire pentru m0 şi m1 ce constituie intrări în elementul de execuţie ce va acţiona asupra motorului turbinei. Când c3 este 0 spunem că porţile ŞI sunt blocate deoarece orice valori ar avea ss(0) şi ss(1) ieşirea va fi 0 adică motorul turbinei nu va suferi nici o modificare de poziţie. Valoarea de la ieşirea porţii logice SI_ss(0) este r0 iar ieşirea porţii logice SI_ss(1) este r1.
8. Cele două valori de ieşire din cele două porţi Logice ŞI r0 şi r1 sunt memorate într-un registru de ieşire Reg_m.
9. Cele două valori memorate în registrul de ieşire Reg_m sunt preluate de valorile de ieşire ale întregului ansamblu şi anume: m0 = r0 iar m1 = r1. Cele două valori m0 şi m1 sunt intrări în Elementul de Execuţie ce comandă motorul să se deplaseze pe direcţia dorită.
Să luăm un exemplu:
– ss = 01 => ss(0)=1 şi ss(1)=0
– ff = 90 – numărul de grade cu care trebuie să se mişte turbina
După cum am explicat valoarea c3 va fi 1 atâta timp cât valoarea ff este diferită de pp. Valoarea pp începe numărătoarea de la 0 iar comparatorul face comparaţii succesive între ff şi pp în cazul nostru 91 de comparaţii:
0 ≠ 90 adevărat => c3 = 1. Ieşirea porţii SI_ss(0) adică r0 va fi 1 iar ieşirea porţii SI_ss(1) adică r1 va fi 0. Cele două valori r0 şi r1 sunt furnizate mai departe ieşirilor întregului ansamblu adică m0 şi m1 şi mai departe Elementului de Execuţie ce va acţiona asupra motorului. Deci motorul turbinei se va misca spre dreapta cu un grad. Valoarea lui pp este incrementată cu 1 deci pp = 1;
1 ≠ 90 adevărat => c3 = 1. Ieşirea porţii SI_ss(0) adică r0 va fi 1 iar ieşirea porţii SI_ss(1) adică r1 va fi 0. Cele două valori r0 şi r1 sunt furnizate mai departe ieşirilor întregului ansamblu adică m0 şi m1 şi mai departe Elementului de Execuţie ce va acţiona asupra motorului. Deci motorul turbinei se miscă spre dreapta cu încă un grad. Valoarea lui pp este incrementată cu 1 deci pp = 2.
2 ≠ 90 adevărat => c3 = 1. Ieşirea porţii SI_ss(0) adică r0 va fi 1 iar ieşirea porţii SI_ss(1) adică r1 va fi 0. Cele două valori r0 şi r1 sunt furnizate mai departe ieşirilor întregului ansamblu adică m0 şi m1 şi mai departe Elementului de Execuţie ce va acţiona asupra motorului. Deci motorul turbinei se miscă spre dreapta cu încă un grad. Valoarea lui pp este incrementată cu 1 deci pp = 3.
.
.
.
89 ≠ 90 adevărat => c3 = 1. Ieşirea porţii SI_ss(0) adică r0 va fi 1 iar ieşirea porţii SI_ss(1) adică r1 va fi 0. Cele două valori r0 şi r1 sunt furnizate mai departe ieşirilor întregului ansamblu adică m0 şi m1 şi mai departe Elementului de Execuţie ce va actiona asupra motorului. Deci motorul turbinei se miscă spre dreapta cu încă un grad. Valoarea lui pp este incrementată cu 1 deci pp = 90.
90 ≠ 90 fals => c3 = 0. Ieşirea porţii SI_ss(0) adică r0 va fi 0 iar ieşirea porţii SI_ss(1) adică r1 va fi deasemenea 0. Cele două valori nule sunt transmise mai departe ieşirilor ansamblului, m0 şi m1 apoi Elementului de Execuţie care va da comanda de Stop motorului.
Descrierea automatului ce comandă întreg ansamblul prezentat
Automatul ansamblului este dacă pot spune aşa “inima” întregului circuit. El comandă şi coordonează întreaga activitate a circuitului. Datele de intrare în automat sunt:
– CLK – semnal de sincronizare al stărilor automatului
– START – semnal provenit de la cronometru. Are rol de a porni ciclul automatului.
– INIT – semnal ce realizează iniţializarea asincronă a automatului.
– semnalul intern ss – ce condiţionează trecerea din starea S4 în S5 sau S6
– semnalul intern c3 – care ajută la menţinerea stării de rotaţie în cazul stării S6
Figura 6 – Diagrama starilor automatului
Observăm că pentru a comanda întregul circuit automatul trece prin 7 stări distincte. Pentru o întelegere cât mai bună a diagramei stărilor exemplificăm ce reprezintă fiecare element din figura:
– S0,S1…S7 – denumirea stării în care se află automatul la un moment dat
– y – variabilă de stare –ieşiri din automat. Sunt valori pe 5 biţi ce caracterizează
fiecare stare.
– săgeţile de la o stare la alta sau din cadrul aceleiaşi stări cum este în starea S6 reprezintă condiţiile de tranziţie.
Variabilele de stare pot avea atâtea valori câte sunt nevoie pentru descrierea fiecărei stări. În cazul nostru cu toate că numărul de stări ale automatului este 7 avem 5 valori distincte ale variabilelor de stare. Fiecare variabilă de stare y este compusă după cum putem vedea din Figura 6 din: y(1), y(2), y(3), y(4) şi y(5). Este de precizat că în cazul ieşirilor din automat numaratoarea biţilor nu se mai face de la dreapta la stânga ci de la stânga la dreapta.
Dacă:
– y(1) = 1 – are loc resetarea tuturor regiştrilor din circuit.
– y(2) = 1 – are loc încărcărea în regiştrii Reg_t şi Reg_g a variabilelor t respectiv g.
– y(3) = 1 – are loc resetarea numărătorului
– y(4) = 1 – are loc încărcarea în regiştrii Reg_sens şi Reg_f a variabilelor sens respectiv f.
– y(5) = 1 – are loc încărcarea în registrul Reg_m a variabilelor r0 şi r1.
Prin resetare întelegem punerea pe 0 a ieşirii blocului funcţional la care ne referim.
Descrierea stărilor automatului
S0 – are ieşirea y = 10100 – observăm că y(1) = 1 deci are loc resetarea regiştrilor de intrare Reg_t şi Reg_g. Deasemenea y(3) = 1 deci are loc resetarea numărătorului. Vom denumi această stare deci stare de RESET. Trecerea de la starea S0 la starea S1 se face CONDIŢIONAT adică nu putem trece de la starea S0 la S1 decât cu o anumită condiţie. în cazul nostru condiţia de trecere de la S0 la S1 este ca semnalul START = 1.
S1 – are ieşirea y = 00000 – observăm că niciuna din componentele ieşirii nu este activat pe 1 deci suntem în starea numită STOP. Trecerea de la starea S1 la starea S2 se face NECONDIŢIONAT adică putem trece de la starea S1 la starea S2 fără nici o condiţie.
S2 – are ieşirea y = 01000 – observăm că y(2) = 1 deci are loc încărcarea în regiştrii Reg_t şi Reg_g a variabilelor t respectiv g. Vom denumi această stare Citeşte t,g. Trecerea de la starea S2 la starea S3 se face NECONDIŢIONAT adică putem trece de la starea S2 la starea S3 fără nici o condiţie.
S3 – are ieşirea y = 00100 – observăm că y(3) = 1 deci are loc resetarea numărătorului. Vom denumi această stare Procesare şi Resetare Numărător. Trecerea de la starea S3 la starea S4 se face NECONDIŢIONAT adică putem trece de la starea S3 la starea S4 fără nici o condiţie.
S4 – are ieşirea y = 00010 – observăm că y(4) = 1 deci are loc încărcarea în regiştrii Reg_sens şi Reg_f a variabilelor sens respectiv f. Vom denumi această stare Încarcă ss,ff. De la starea S4 putem trece CONDIŢIONAT atât în starea S5 cât şi în starea S1. Astfel, dacă ss = 0 atunci vom trece în starea S1 iar dacă ss ≠ 0 vom trece în starea S5.
S5 – are ieşirea y = 00001 – observăm că y(5) = 1 deci are loc încărcarea în registrul de ieşire Reg_m a variabilelor r0 (care este defapt ieşirea porţii logice SI_ss(0)) şi r1 (care este defapt ieşirea porţii logice SI_ss(1)). Vom denumi această stare Încarcă r0,r1. Cele două valori vor fi încărcate în registrul Reg_m şi furnizate ieşirii atâta timp cât c3 are valoarea 1 adică pp este diferit de ff. Trecerea de la S5 la S6 se face NECONDIŢIONAT adică putem trece de la starea S5 la starea S6 fără nici o condiţie.
S6 – are ieşirea y = 00000. Observăm că nicuna din ieşirile automatului nu este activată. Acest lucru este explicat de faptul că automatul stă în aceeaşi stare atâta timp cât o anumită condiţie este satisfacută. În cazul nostru starea este cea de rotire a motorului turbinei şi ea se face atâta timp cât c3 este egal cu 1 adică pp este diferit de ff. Vom denumi această stare Rotire. Trecerea de la S6 la S7 se face NECONDIŢIONAT adică putem trece de la starea S6 la starea S7 fără nici o condiţie.
S7 – are ieşirea y = 00001. Observăm că y(5) = 1 deci are loc încărcarea în registrul Reg_m a valorilor lui m1 şi m2 dupa ce rotirea motorului a încetat. Adică se atribuie lui m1 şi m2 valoarea 0 întrucât condiţia de rotire nu mai este satisfacută iar c3 este egal cu 0. Deci are loc încărcarea în registrul Reg_m a valorii 0 după care se revine în starea S0 cea de Reset. Trecerea de la S7 la starea iniţială S0 se face NECONDIŢIONAT adică putem trece de la starea S7 la starea S0 fără nici o condiţie.