FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [311179]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” [anonimizat]. Stanciu Rareș
ABSOLVENT: [anonimizat] 2015 –
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” [anonimizat]-Integrator-Derivativ pentru Motorul de Curent Continuu
CONDUCĂTOR ȘTIINȚIFIC
Conf. dr. ing. Rareș Stanciu
ABSOLVENT: [anonimizat] 2015 –
UNIVERSITATEA DIN ORADEA
FACULTATEA de Inginerie Electrică și Tehnologia Informației
DEPARTAMENTUL Calculatoare și tehnologia informației
TEMA _________________
Lucrare de Finalizare a studiilor a student: [anonimizat]__ Constantin Radu _________
1). Tema lucrării de finalizare a studiilor:___ [anonimizat]-Derivativ pentru Motorul de Curent Continuu
_______________________________________________________________________________
_______________________________________________________________________________
2). Termenul pentru predarea lucrării ___1 Iunie 2015 ________________________________
3). Elemente inițiale pentru elaborarea lucrării de finalizare a studiilor __________________
____ Documentatie aferenta (carti, internet, etc.), [anonimizat], programare si teorie de reglare automanta._____________________________________________
________________________________________________________________________________
4). Conținutul lucrării de finalizare a studiilor :_______________________________________
__ [anonimizat], [anonimizat], [anonimizat].________
________________________________________________________________________________
5). Material grafic:___Materialul grafic prezentat urmareste sa ajute la intelegerea mai facila a descrierii proiectului si este bogat reprezentat. Acestea ajuta la justificarea solutiilor alese. Sunt prezentate figuri si tabele.
________________________________________________________________________________
________________________________________________________________________________
6). Locul de documentare pentru elaborarea lucrării:
__Materialul de documentare este reprezentat de o sursa variata si bogata in informatii. [anonimizat]. Tehnologiile utilizate la implementare sunt de asemenea explicate in detaliu. Este importante de mentionat caracterul puternic multidisciplinar al proiectului. ______________________________________________________________________________
________________________________________________________________________________
7). Data emiterii temei____1 Septembrie 2014___________________________________
Coordonatori științifici
(titlul științific și numele),
Conf. Dr. Ing. Rareș Stanciu
REFERAT
PRIVIND LUCRAREA DE LICENȚĂ
A
ABSOLVENT: [anonimizat] / ABSOLVENT: [anonimizat] : …. Constantin Radu……………………………………
DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Calculatoare
PROMOȚIA 2015
Titlul lucrării …… Sistem de Reglare Digital cu Lege de Reglare Proporțional-Integrator-Derivativ pentru Motorul de Curent Continuu……
…..…………………………………………………………………………………………………
Structura lucrării …………………………………………………………………….
…….Structura lucrarii cuprinde descrierea problemei de relgare, trecerea in revista a unor aspecte teoretice legate de reglarea turatiei unui motor de curent continuu si implementarea unui controller PID digital. Tema este abordata intr-o maniera inginereasca autorul urmarind pe durata proiectului identificarea problemei, solutii de implementare si testarea acesteia.
……………………………………..……………………………………………………………
Aprecieri asupra conținutului lucrării de LICENȚĂ (finalizare a studiilor), mod de abordare, complexitate, actualitate, deficiențe
………………………………………………………………………………………………………………………………………………….Modul de abordare a tezei urmeaza linia inginereasca: identificarea unei probleme, documentarea in vederea abordarii unei metode pentru eliminarea ei, implementarea si testarea acesteia.
…………………………………………………………………………..
Aprecieri asupra lucrării (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)
……Lucrarea prezinta un set impresionant de referinte atat prin numarul cat si prin diversitatea acestora. Sursele bibiografice au fost folosite atat la identificarea starii pietei auto din Romania dar si pentru identificarea unor solutii moderne de implementare a ultimei versiuni a sistemului. Autorul a realizat proiectarea intregului sistem de actionare, determinarea parametrilor motorului precum si a legii de reglare. Referintele mentionate reprezinta atat articole vizibile pe internet cat si carti (eventual in format electronic)…………………………………………………………………………………………………
(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea menționându-se contribuția autorului)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
Concluzii (coordonatorul lucrării trebuie să aprecieze valoarea lucrării întocmite, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării lucrării, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)
………………………………………………………………………………………………………………………………………………..Este de mentionat efortul considerabil si tenacitatea legata de proiectarea, implementarea, testarea si reproiectarea sistemului. Este de asemenea important de mentionat linia urmata in dezvoltarea acestui proiect: problema, solutie, implementare, testare, reproiectare in vederea imbunatatirii performantelor. Competentele absolventului includ o balanta echilibrata de cunostiinte teoretice si abilitati practice utilizate la implementarea, testarea dar si redactarea materialului proiectului…………………………………………………………………………………………………………..
Redactarea lucrării respectă ……..ca forma si continut…………………………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
Consider că lucrarea îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2015 și propun acordarea notei ……10…………
Oradea,
Data Conducător științific
Conf. Dr. Ing. Rares Stanciu
Cuprins
Capitolul 1
1. Introducere
1.1. Noțiuni introductive
Necesitatea unor sisteme de acționare cu turație variabilă nu este una nouă. Există o multitudine de aplicații care necesită turație variabilă. Probabil, cel mai ușor de imaginat sunt sistemele de acționare utilizate în tracțiunea electrică (tramvaie, trenuri, etc.). Atunci când vehiculul se află în stație (în repaus), turația roților este nulă. La pornirea vehiculului, turația crește până la valoarea ce corespunde vitezei necesare.
Un element important în acest caz este elementul de acționare (actuator – ce pune în mișcare vehiculul). Cele mai utilizate astfel de elemente sunt motoarele electrice. Acestea primesc la intrare energie electrică pe care o convertesc în energie mecanică. Din punct de vedere al tensiunii de alimentare, motoarele electrice sunt de curent alternativ și de curent continuu. După modul de funcșionare, motorul de curent alternativ poate fi sincron și asincron (acesta este azi elementul principal de acționare în industrie). Utilizat odată pe scară largă, motorul de curent continuu există în varianta cu perii și fără. Motorul de curent continuu prezintă avantajul reglării în limite largi a turației.
Problema reglării automate nu este una nouă în tehnică. Sisteme de reglare au scopul menținerii unei mărimi la o valoare dorită. Cum mărimea de interes poate fi temperatură, presiune, turație, curent, frecvență, etc. aceste sisteme sunt foarte răspândite în tehnică.
Adesea una din cerințele aplicației este menținerea constantă a turației. De cele mai multe ori procesul industrial este afectat de modificări de turație din cauze interne. De exemplu în cazul unei operații de strunjire se dorește îndepărtarea bavurilor rămase de la turnare (în acest caz, la îndepărtarea bavurilor atunci când cuțitul le atinge, turația universalului tinde să scadă). O altă cauză o constituie perturbațiile (una dintre acestea poate fi scăderea temporară a tensiunii de alimentare). Pentru toate acestea, sistemul de acționare trebuie să compenseze scăderea de turație.
În toate aceste condiții este necesar un control în buclă închisă. Turația motorului se măsoară cu ajutorul unui traductor de turație (tahogenerator, sistem de tip TIRO, etc.). Aceasta se compară cu valoarea dorită și se generează un semnal de eroare. Acesta se aduce la intrarea unui controler ce implementează leagea de reglare responsabilă de menținerea constantă a turației. Acesta va determina valoarea tensiunii aplică motorului pentru reglarea mărimii de interes. Dacă la începuturi sistemele de reglare în buclă existau în formă analogică, acum acestea există și în formă digitală. Acest proiect tratează problema proiectării unui sistem digital de control în buclă închisă.
Este foarte important de menționat faptul că sistemele în buclă închisă pot intra în oscilație. Regimul oscilatoriu nu este un regim dorit, acesta punând în pericol integritatea sistemului. Începând din etapa de proiectare se iau măsuri ca sistemul sa nu intre în oscilație. Sistemul de reglare digitală proiectat și implementat în acest proiect urmărește menținerea constantă a turației unui motor de curent continuu de mică putere.
Pentru a putea acționa asupra actuatorului în vederea influențării mărimii de interes, este necesar un modul care pferă această capabilitate. În cazul unui actuator electric (motor) este necesar un modul (cel mai adesea de electronică de putere) care are posibilitatea de a influența teurația motorului. Având în vedere acționarea cu motor de curent continuu, în aplicația de față se utilizează un amplificator de putere.
În zilele noastre între cerințele unui astfel de sistem de acționare, pe lângă cea de reglare de turație se impune și comunicația cu sistemele ierarhic superioare (eventual chiar controlul de la distanță). Ca urmare, cerința unui sistem digital devine imperios necesară. Ca urmare a acestui fapt, controlerul ce va menține constantă turația motorului va fi implementat în format digital pe calculator (acesta putând fi la fel de bine implementat pe microcontroller) în limbajul C. Astfel în ipoteza în care legea de reglare este implementată într-un program de tip webserver iar valoarea de referință a turației este primită de la o aplicație client, conducerea motorului se poate face de la distanță.
1.2. Schema bloc a unui sistem de reglare în buclă închisă
Într-o acționare în buclă închisă, valoarea de referință a mărimii de interes este comparată cu valoarea actuală (citită de traductor). Astfel se generează un semnal de eroare care se aplică legii de reglare. Pe baza acestuia se calculează o mărime ce se aplică sistemului de control a procesului controlat (în cazul de față motorului). Dacă mărimea de interes are o valoare mai mică decât referința, atunci valoarea de ieșire a controllerului (trimisă către motor) urmărește creșterea cuplului acestuia și deci a turației. În caz contrar, semnalul urmărește reducerea cuplului motorului.
Fiind o schemă de control în buclă închisă, stabilitatea este un aspect important este stabilitatea. Acesta aspect este adresat încă din faza de proiectare. Pentru studiul acesteia se utilizează modele matematice pentru toate elementele din schema bloc.
Capitolul 2
2. Proiectarea sistemului de acționare
2.1. Noțiuni introductive
Necesitatea unor sisteme de acționare cu turație controlată și stabilizată nu este una nouă. Există o multitudine de aplicații care necesită ca una sau mai multe mărimi să fie controlată. Una dintre cele mai cunoscute soluții este controlul în buclă închisă. Datorită unui număr covârșitor de elemente perturbatoare este practic de neimaginat un produs în care problema controlului în buclă închisă să nu se pună
Între mărimile ce necesită un asemenea control se numără: temperatura, viteza (turația), curentul, tensiunea, presiunea, frecvența, etc. Sistemele de reglare în buclă pentru turație există în două forme: digitală și analogică. Deoarece versiunea analogică este mai intâlnită în, acest proiect tratează problema proiectării unui sistem digital de control în buclă închisă.
2.2. Motorul electric de curent continuu
Simplu spus, motoarele electrice sunt convertoare ce transformă energia din formă electrică în formă mecanică. Aproape orice dispozitiv tehnic din jurul nostru utilizează cel puțin un motor în zilele noastre. Exemple pot fi frigiderele, mașinile de spalat și uscat, aspiratoarele, ventilatoarele, mașinile de tăiat iarba, aparatele de aer condiționat, etc.
Transporturile sunt un alt domeniu ce utilizează motoare electrice (tramvaie, trenuri, metrouri, etc.). Industria este un alt mare utilizator de motoare electrice. Mașinile unelte și utilajele (strunguri, freze, raboteze, laminoare, conveioare, etc.) sunt de asemenea acționate de către motoare electrice.
Există motoare electrice de diverse tipuri. Toate folosesc interacțiunea dintre un câmp magnetic și un conductor aflat în acest camp și străbătut de un curent electric. Câmpul magnetic poate fi static sau învârtitor. Din punct de vedere al tensiunii de alimentare, motoarele pot fi de curent alternativ sau de curent continuu. Constructiv, toate motoarele rotative conțin un stator și un rotor. Statorul susține mecanic rotorul (care se afla pe un arbore și se poate roti în lagare sau rulmenți). Rotorul este cel ce antrenează mașina de lucru cu care este cuplat la arbore.
O categorie aparte de motoare sunt așa-numitele motoare lineare. Acestea au apărut ca variante ce permit creșterea vitezei în transportul feroviar. Una dintre măsurile luate pentru reducerea pierderilor mecanice și zgomotului produs la rulare a fost levitarea magnetică a trenurilor (vagonul este ridicat de la sol de către forța magnetică). În condițiile în care trenul nu mai are contact cu solul, unul dintre sistemele de acționare care s-a impus a fost motorul linear.
Primul paragraf al acestui capitol descrie motorul de curent continuu. Este prezentat principiul și regimurile de funcționare (motor sau frană), precum și modalităti de control a turației. Metoda de modulare în lățime de puls (Pulse Width Modulation – PWM) pentru controlul turației este de asemenea descrisă. Totodată sunt prezentate cateva module de electronică de putere care permit variația turației motorului de current continuu (puntea H și principiul redresorului comandat). Ca referințe pentru acest capitol pot fi enumerate [1], [2], [3], [4], [5] și [6].
Principiul de funcționare al motorului de curent continuu reflectă experimentul fizic ce demonstrează apariția unei forțe ce actionează asupra unui conductor străbătut de un curent atunci când acesta se află într-un câmp magnetic. În figura 2.1 se poate vedea modul de acțiune al forței care tinde sa scoată conductorul din câmp. De aici pană la plasarea conductorului pe o rama ce se poate roti în vederea generării unui cuplu de forțe n-a fost decat un pas. Acest scenariu poate fi văzut în figura 2.2. Rama pe care sunt plasați conductorii se atașează unui ax (arbore) ce permite rotirea acesteia. Ansamblul astfel format constituie rotorul. Atunci când acesta se rotește exista momente în care conductoarele vor ieși din camp. În aceste poziții acestea nu vor genera nici forțe și nici cuplu. Pentru a continua dezvoltarea de cuplu, este necesar ca alte conductoare să intre în camp atunci cand primele ies.
Un alt motiv pentru a avea mai multe conductoare este cazul în care rotorul stă nemiscat și conductoarele nu se afla în câmpul magnetic. În cazul în care se aplică un curent electric rotorului, din cauza faptului că nici unul dintre conductoare nu se afla în camp magnetic, nu se genereaza cuplu și motorul nu poate porni. Pentru a corecta aceasta situație, inginerii au amplasat mai multe rame (numite bobine) cu conductoare pe arbore (acestea sunt rotite unele față de altele). Este interesant de subliniat faptul că numai conductoarele aflate în câmpul magnetic sunt strabatute de curent. Ca urmare, curentul este comutat intotdeauna pe conductoarele care se afla sub pol. Aceasta comutare se face cu ajutorul unui dispozitiv mecanic numit collector. Din cauza faptului ca distanța între poli poate fi mare, între conductoarele ce formează rotorul se plaseaza armături. Un rotor cu colector se poate vedea în figura 2.3. Colectorul este vizibil în partea dreaptă a figurii. O serie de perii alunecă pe colector pentru a închide circuitul rotoric și a realiza comutarea. Periile pot fi văzute în figura 2.3. În general, pentru construcția periilor se utilizează grafit.
Câmpul magnetic poate fi generat cu ajutorul infașurărilor statorice sau cu ajutorul magneților permanenți. Prima opțiune este specifică motoarelor de putere medie și mare. A doua opțiune este specifică motoarelor de putere mică.
Constructiv, pentru motoarele de mică putere se folosesc magneți permanenți pentru generarea câmpului magnetic. În cazul unităților de putere mai mare câmpul este produs de către înfășurări. Acestea pot fi legate în serie sau în paralel cu înfășurarea localizată pe rotor. Modul de conectare influențează caracteristica motorului și deci tipul de aplicație căruia acesta se adresează. Astfel motoarele cu conexiune serie beneficiază de o caracteristică mecanică "moale" fapt ce le recomandă pentru aplicații de tracțiune electrică.
2.2.1. Ecuațiile motorului de curent continuu
Pentru a intelege cum lucrează motorul de curent continuu și cum acesta poate fi integrat într-un sistem de control în buclă închisă, este necesară examinarea ecuațiilor acestuia. Acestea sunt prezentate în acest paragraf. Pentru acesta este considerat un motor de curent continuu ideal. Este important de subliniat faptul că în timp ce se rotește în campul electromagnetic generat de polii statorici, rotorul produce o tensiune electromotoare (adesea numită tensiune electromotoare indusă). Aceasta este proporțională cu viteza de rotație. Considerând că înfașurarea rotorică are rezistența (în ohm – Ω) și inductivitatea La (în henri – H) se poate scrie:
În ecuația 2.1 tensiunea aplicată motorului s-a notat cu . Acesta este o funcție de timp. Este important de subliniat faptul că tensiunea poate varia chiar dacă în discuție este un motor de curent continuu. În cele ce urmează se va demonstra că turația motorului variază proporțional cu tensiunea aplicată la borne. Tensiunea elecromotoare indusă prin rotație s-a notat cu . Curentul ce trece prin motor s-a notat cu . Variația tensiunii de alimentare se traduce în variația curentului ce străbate motorul. A doua ecuație leagă tensiunea electromotoare indusă de turația motorului.
În ecuația 2.2 s-a notat turația motorului (ca mărime dependentă de timp) cu. se numește constanta tensiunii electromotoare. Ecuația 2.2 arată faptul că tensiunea electromotoare indusă este proporțională cu viteza de rotație a motorului. Dacă la bornele acestuia se leagă un circuit în vreme ce motorul este rotit cu un cuplu extern, atunci apare un curent. Mai simplu spus, rotind un motor de current continuu se poate genera tensiune și deci energie. Cuplul produs de motorul de current continuu este proporțional cu curentul care trece prin motor.
În ecuația 2.3, este constantă iar este cuplul generat de motor ca funcție de timp. Ultima ecuație exprimă mărimile mecanice:
Ecuația 2.4 ia în considerare o componentă constantă a cuplului și una ce variază cu viteza (coeficientul acesteia este notat cu "b" și este constant). În această ecuație s-a notat cu "J" momentul de inerție al rotorului. Combinând aceste ecuații și aplicând transformata Laplace se obțin ecuațiile:
Pentru tensiunea electromotoare se obține:
Pentru cuplu se obține:
Pentru ecuația mecanică se obține:
Combinând aceste ecuații se obține:
și
În aceste condiții, funcția de transfer a motorului de curent continuu (ce leagă mărimea de ieșire – turația – de mărimea de intrare – tensiunea aplicată) se obține ca mai jos:
Când se are în vedere controlul în buclă închisă a motorului de curent continuu, stabilitatea întregului ansamblu este foarte importantă (intrarea acestuia în oscilație putând duce la accidente și pierderi materiale). Pentru asigurarea unui compromis între stabilitate și viteza de raspuns, este importantă cunoașterea funcției de transfer a fiecărui modul aflat în componența sistemului.
În cazul unui proces lent variabil curentul poate fi considerat constant. În aceste condiții, ecuațiile motorului de current continuu devin:
Curentul prin motor se poate exprima ca fiind:
Tensiunea electromotoare indusă prin rotație:
Combinând ecuațiile 2.12, 2.13 și 2.14 rezultă:
De aici:
Ecuația 2.16 arată dependența turației Ω de tensiunea de alimentare și de parametri motorului. Considerând un cuplu constant, equația 5.16 reprezintă o dreaptă . Aceasta demonstreză ca turația motorului variază liniar cu tensiunea aplicată la bornele acestuia. În acest capitol se vor prezenta și cateva tehnici pentru modificarea turației motorului de curent continuu.
2.2.2. Regimurile de funcționare ale motorului de curent continuu
Între avantajele motorului de curent continuu se numără o plajă largă de turație. Aceasta îl face o componentă ideala pentru multe aplicații în care este necesară variația de turație. Motoarele de curent continuu se fabricau până recent de la puteri de ordinul waților până la valori de ordinul megawaților (Galan și alții). Din aceste considerente și modul de variație a turației diferă constructiv.
Din ecuațiile de mai sus rezultă clar faptul că un motor de curent continuu poate fi folosit pentru a genera energie electrică. În situația în care la bornele unui motor se aplică o tensiune continuă acesta se rotește și poate antrena o sarcină (mașină unealta, pompa, vehicul, etc.). Regimul în care un motor primește energie electrică și produce energie mecanică la arbore se numește “regim de motor”.
Atunci când un motor se rotește la turație nominală, în cazul în care tensiunea de alimentare se întrerupe, acesta nu se opreste imediat datorită inerției existente. Dacă se conectează la borne un voltmetru aceasta măsoara tensiunea electromotoare indusă de rotația motorului. Pentru ca nu există un curent (rezistența voltmetrului este mare) nu există un cuplu care să acționeze asupra rotorului. În cazul în care circuitul se închide și va circula un curent acesta generează un cuplu. Acesta tinde să micșoreze turația motorului acționând ca o frână. În acest caz motorul funcționează în “regim de frână”. Un exemplu este cazul în care motorul acționează un vehicul. Atunci când vehiculul se deplasează pe o sosea orizontală, motorul consumă energie electrică și produce energie mecanică.
În cazul în care vehiculul coboară energia potențială a acestuia tinde să se transforme în energie cinetică (dacă se neglijează frecările). Ca urmare, viteza acestuia tinde să crească și să rotească motorul mai repede. Tensiunea electromotoare indusă prin rotație poate depăși tensiunea aplicată la bornele motorului. Diferența forțează schimbarea sensului curentului ce trece prin motor și deci motorul va încărca bateriile vehiculului devenind astfel generator.
În cazul în care vehiculul se mișcă pe o șosea orizontală și tensiunea la bornele motorului se întrerupe, acesta este practic rotit de către inerția vehiculului. Ca urmare tensiunea electromotoare indusă de mișcare există. În cazul în care la bornele sale se conecteaza o rezistența, prin aceasta va trece un curent care generează un cuplu ce tinde sa frâneze motorul. În acest caz motorul lucrează ca “frână”. Regimurile de lucru ale motorului de curent continuu pot fi văzute în figura 2.5.
2.3. Metode de variație a turației motorului de curent continuu
Pentru determinarea modurilor de variație a turației un motor de curent continuu, este suficientă examinarea ecuației 2.16. Este ușor de observat faptul că turația motorului este ușor influențabilă cu ajutorul tensiunea de alimentare. Astfel, crescând tensiunea de alimentare, crește turația motorului.
2.3.1. Redresoarele comandate
Una dintre modalitățile de variație a tensiunii aplicate motorului de curent continuu este redresorul comandat. Acestea convertesc tensiunea alternativă într-o tensiune continuă variabilă. Tensiunea de ieșire este aplicată motorului. Este important de menționat ca în cazul unui redresor comandat, tensiunea de ieșire nu este perfect continuă. În cazul în care nu este produsă de către motoare de curent continuu ce operează în regim de generator, tensiunea continuă este rezultatul redresării tensiunii alternative. Convertorul ce transformă tensiunea alternativă în tensiune continuă se numeste redresor. Din punct de vedere al numărului de faze utilizate există redresoare monofazate și trifazate. Variantele monofazate sunt utilizate în cazul unităților de puteri mici în vreme ce schemele trifazate se folosesc pentru motoare de puteri medii și mari. Scheme de redresare comandată monofazată și trifazată se pot vedea în figurile 2.6 (un redresor monofazat comandat) și 2.7 (un redresor trifazat comandat).
Dacă în locul diodelor redresoare se folosesc tiristoare, atunci redresorul obținut este unul comandat (numit așa datorită posibilității de comandă a unghiului de aprindere a tiristoarelor și deci a posibilității de variație a tensiunii aplicate motorului).
Dacă unghiul de aprindere a tiristoarelor scade în timp, tensiunea obținută la ieșire crește progresiv. Efectul obținut este acela al unei porniri line (fără șoc electric și mecanic) a motorului electric.
Tensiunea livrată la ieșire de către un redresor monofazat pentru unghiurile de aprindere de 135, 90 și respectiv 45 de grade a fost generată în Matlab și se poate vedea în figurile 2.8, 2.9 și respectiv 2.10 (curbele trasate cu roșu).
Se poate vedea ușor că tensiunea ce se aplică motorului variază cu unghiul de aprindere al tiristoarelor. Astfel, prin variația unghiului de aprindere al tiristoarelor, se obține variația turației motorului de curent continuu.
În cazul utilizării unui redresor trifazat, pentru unghiul de 90 de grade formele de undă pot fi văzute în figura 2.11.
2.3.2. Modularea în lățime de puls (PWM)
Modularea în lățime de puls este una dintre cele mai utilizate metode de alimentare a motorului de curent continuu. Pentru puteri de ordinul KW, curentul absorbit de motor poate avea valori mari. În aceste condiții, folosirea unui element activ ce reduce tensiunea de exemplu la jumatate nu este convenabilă. În condițiile unui curent ridicat (de exemplu 100A) și a unei căderi de tensiune pe acesta de 100V energia disipată pe acest element are valori ridicate. Randamentul actionării are valori reduse mai ales în condițiile actuale. În condițiile alimentării de la baterie, randamentul capătă dimensiuni și mai importante pentru maximizarea duratei de utilizare a acesteia.
Ideea este de a aplica motorului pulsuri periodice de tensiune egală cu tensiunea de alimentare (figura 2.12). Modificarea lățimii acestor pulsuri va determina modificarea tensiunii medii aplicate motorului și deci a turației acestuia.
Curentul ce trece prin motor nu va fi constant în cazul utilizării tehnologiei PWM. În perioda acesta va creste. În timpul rămas pana la încheierea unei perioade T curentul se va închide prin elemente de putere prevazute în circuit (diode de putere). Ca valoare, acesta va scădea în timp. Tensiunea aplicată motorului va fi deci:
În ecuația 5.16 s-a notat tensiunea aplicată motorului cu iar tensiunea de alimentare a întregului ansamblu cu V. Se poate vedea ușor că tensiunea aplicată motorului este direct proporțională cu durata de timp . Metoda de alimentare bazată pe tehnica PWM presupune tocmai modificarea acestui interval de timp pentru modificarea tensiunii aplicate motorului. Când , tensiunea aplicată motorului va fi nulă. Când , ea va fi V. Perioada depinde de elementele de putere folosite. În cazul utilizării tiristoarelor, perioada corespunde unei frecvențe de sute de herți. Pentru tranzistoarele bipolare, corespunde unei frecvențe de ordinul miilor de herți. Pentru tranzistoarele MOSFET, corespunde unei frecvențe de ordinul zecilor de kiloherți.
2.3.3. Moduri de generare a unui semnal PWM
Un semnal PWM poate fi generat digital, analog sau combinat. O metodă simplă de generare a lui presupune programarea corectă a unui modul PWM specializat existent intr-un microcontroller. În cazul în care modulul PWM lipsește, se poate genera un asemenea semnal așa cum se descrie mai jos.
a) Folosirea a două module de temporizare dintr-un microcontroller
Generarea unui semnal PWM este posibilă cu ajutorul a doua module de termporizare dintr-un microcontroller. Unul dintre temporizatoare este responsabil pentru cronometrarea perioadei în vreme ce al doilea este responsabil de cronometrarea duratei . Programul ce folosește modulele de temporizare lucrează în tehnica intreruperilor. Când se dorește modificarea tensiunii aplicate motorului se acționează asupra conținutului numărătorului responsabil de durata . Modul de lucru se poate vedea în figura 2.13 (modulul de temporizare T0 este responsabil de generarea perioadei PWM).
La momentul marcat cu 1 (figura 2.13) T1 va genera o cerere de întrerupere. În subrutina de deservire a acesteia, T1 va fi oprit și motorul va fi alimentat (pinul/pinii responsabili de pornirea acestora sunt activați). Ambele module de temporizare se vor incarca și vor porni. Modulul de temporizare T0 va termina temporizarea mai repede fiind destinat să temporizeze o durată mai mică (momentul 2 în figura 2.13). În acest moment va genera o întrerupere. În subrutina de deservire a acesteia, T0 va fi oprit și pinii responsabili de alimentarea motorului vor fi dezactivați. Curentul ce circula prin motor se va închide prin diode.
b) Generarea unui semnal PWM utilizând hardware
Un al doilea mod de generare a unui semnal PWM folosește un microcontroller (sau PC) împreună cu o parte hardware externă. Un convertor digital analogic va fi folosit spre a tranforma o secvență numerică într-un semnal analogic. Semnalul analogic este comparat cu un semnal în dinți de fierastrău de către un comparator. Ieșirea acestui comparator este folosită spre a comanda elementele de putere. Tensiunea obtinută la ieșire variază prin modificarea secvenței numerice aplicată la intrarea convertorului numeric analogic (figura 2.14). Este important de subliniat faptul ca în acest caz ieșirea blocului ce reprezintă convertorul numeric analogic este o tensiune.
Datorită faptului că aceste chipuri ce realizează conversia numeric analogică au ca mărime de ieșire un curent, este important de reținut faptul că se poate utiliza un amplificator operațional pentru a transforma mărimea de ieșire într-o tensiune (figura 2.15 consideră că acest lucru este deja implementat). Acest lucru va fi tratat în detaliu la descrierea convertoarelor numeric analogice.
2.3.4. Puntea H
Metoda descrisă mai sus poate fi utilizată atunci când se comandă motoare de curent continuu. Unul dintre dezavantaje este legat de faptul ca nu asigură comanda motorului în ambele sensuri de rotație. Pentru a asigura și schimbarea sensului de rotație, se poate utiliza puntea H (figura 5.9). Aceasta conține patru tranzistoare de putere între care se conectează motorul. De exemplu, pentru un sens de rotație lucrează tranzistoarele T1 și T3 iar pentru rotația în sens opus, lucrează tranzistoarele T2 și T4. Puntea H este alimentată cu tensiune continuă. Ea poate fi comandată cu semnale modulate în lățime de puls (PWM). Pentru a scadea pretul de cost al acesteia, uneori se foloseste doar un singur tranzistor pentru comutație PWM (tranzistorul complementar fiind comandat în permanenta).
La funcționarea în regim de motor, puntea utilizează două tranzistoare aflate pe diagonala ei. Spre exemplu, dacă lucrează T1 și T3, atunci aceste două tranzistoare vor fi comandate în același timp. În intervalul de timp , curentul circulă prin tranzistorul T1, prin motor și prin T3 la masă. Când T1 și T3 sunt blocate, curentul se va închide prin diodele D2 și D4. În cazul utilizării unui singur tranzistor pentru comutație, prețul de cost al punții scade. Daca tranzistorul T1 lucrează în regim de comutație, atunci la blocarea acestuia curentul se închide prin D1 și T3.
La funcționarea în regim de frânare, motorul primește putere din exterior. În aceste condiții, există tensiune la bornele sale (tensiunea electromotoare indusă prin rotație). În cazul în care potențialul în punctul A este mai ridicat față de potențialul punctului B, dacă se comandă tranzistorul T4, curentul se închide prin acesta, dioda D3 și motor. Atunci când T4 este blocat, datoriă inductivitții infașurării rotorice, tensiunea ce apare datorită variației curentului (termenul ) iși schimbă semnul și se va aduna cu tensiunea electromotare indusă. Dacă suma acestor doua tensiuni este mai mare decât tensiunea de alimentare V a punții, atunci diodele D1 și D3 se vor deschide și motorul cedează energie electrică rețelei de alimentare (sau bateriei).
Așadar, pentru controlul punții H este necesară comanda on/off a elementelor de putere. Pentru deschiderea unui transistor NPN este necesară comanda bazei cu o tensiune pozitivă fața de emitorul lui. Tranzistoarele T3 și T4 au emitoarele conectate la mas tensiunii de alimentare V. Pentru comanda on/off a acestora se utilizează o sursa de tensiune separată ce are masa conectată la masa punții H (masa tensiunii V). Pentru T1 și T2 lucrurile sunt ceva mai complicate deoarece potențialele emitoarelor acestora pot varia. Ca urmare sunt necesare aici două surse separate (izolate galvanic) care să genereze tensiunea de alimentare necesară comenzii acestora. O sursa are masa conectată la emitorul tranzistorului T1 (punctul A) iar cea de a doua la emitorul tranzistorului T2 (punctul B). Pentru transmiterea semnalului de comandă către tranzistoare se pot utiliza așa-numitele “optocuploare”.
2.3.5. Chopperul
Chopperul este partea de electronică de putere folosită în tehnologia PWM pentru comanda motorului de curent continuu. Este important de subliniat faptul că în cazul acestui sistem de acționare, motorul lucrează doar în cadranul I (motor fără recuperare de energie). Ca urmare chopperul poate fi construit cu un singur tranzistor comandat de către modulator. Schema de principiu a acestuia se poate vedea în figura 2.9.
2.4. Convertoare numeric analogice
Convertoarele numeric analogice sunt module ce convertesc o secvența numerică într-una analogică. Sunt module intens folosite mai ales în cazul în care comenzile în sistemele de reglare sunt analogice. Exemplele includ sistemele electronică de putere comandate analogic.
O entitate numerică se poate reprezenta utilizând o secvență numerică pe n biti (ca în ecuația 2.9):
Intrarea unui convertor DAC este o secvență numerică formată cu biții , … . Semnalul de ieșire este însă o mărime analogică proporțională cu secvența numerică adusă la intrare și cu tensiunea de referință. Convertoarele numeric analogice includ o sursă de tensiune de referință, o retea de rezistoare de precizie și “comutatoare” electronice. Parametrii ce se iau în considerare la alegerea unui DAC sunt rezoluția (8 biti sau mai mult), timpul de conversie și semnalul de ieșire. Ieșirea este dată de ecuația 7.2 unde este o tensiune de referință constantă și bine stabilizată iar biții , … constituie secvența numerică adusă la intrare. Mărimea de ieșire este de obicei un curent. Pentru conversia acestuia în tensiune se utilizează înca un amplificator operațional.
Mărimea de intrare în cazul unui convertor numeric analogic este o secvență binară. Mărimea de ieșire este o tensiune analogică. Ca urmare, ecuația 2.9 se transformă și devine cea din 2.10:
Relația 7.2 arată însă și o particularitate interesantă a convertoarelor numeric analogice: aceea de a mixa semnale numerice cu semnale analogice. Într-adevar, în relatia 7.2 pot varia atât secvența numerică adusă la intrare cât și tensiunea de referință VREF. Proprietatea prezintă interes în cazul în care se dorește variația amplitudinii tensiunii de ieșire a convertorului în condițiile în care secvențele numerice aduse la intrare rămân aceleași. De obicei însă tensiunea de referință este constanta (și bine stabilizată). Un exemplu concret în care aceasta variază este generarea tensiunilor sinusoidale cu amplitudine reglabilă. În acest caz secvențele numerice sinusoidale sunt stocate într-o memorie (de exemplu o memorie ROM) care este baleiata cu ajutorul unui numărator de adrese. Prin modificarea tensiunii VREF se obține la ieșire o tensiune sinusoidală de amplitudine variabilă.
Un posibil inconvenient este necesitatea ca tensiunea VREF (ajustabilă sau nu) să fie de precizie. În acest caz se poate utiliza o tensiune de precizie de valoare fixă și un al doilea convertor numeric analogic la intrările căruia se aduce o a doua secvență numerică cu ajutorul careia se reglează tensiunea de referință a primului convertor. Prin modificarea celei de a doua secvențe numerice și prin baleierea memoriei ROM se poate obține o tensiune sinusoidală de frecvență și amplitudine variabile, acestea fiind controlate numeric.
2.4.1. Rețeaua R-2R
Cel mai adesea convertoarele numeric analogice se construiesc în jurul unei așa-zise rețele R-2R. Aceasta se poate vedea în figura 2.10.
Rezistența echivalentă a rețelei R-2R este R. Pentru ca acest lucru sa fie evident aceasta trebuie re-structurată ca în figura 2.11. Se poate vedea usor că ultimele doua rezistoare din partea dreapta sunt conectate în paralel. Ca urmare rezistența echivalentă a celor două este R. Combinând valoarea cu al treilea rezistor (de valoare R) rezultă un alt rezistor de valoare 2R legat la masa și procedeul se repetă. Valoarea echivalentă a rezistenței este R. Ca urmare, tensiunile în punctele A, B, C, D, E, F și G sunt , , , , , și respectiv . Curentul total prin circuit este deci:
Tensiunea de ieșire va fi deci:
Rețeaua R-2R se poate integra ușor (avand numai două valori ale rezistenței – R și 2R). În construcția sistemului de acționare se va folosi circuitul convertor DAC08. Acesta va fi descris în cele ce urmează. Circuitul integrat pentru conversie numeric-analogică folosit în proiectele descrise în aceasta carte este DAC08. Acesta este un convertor pe 8 biți cu ieșire în curent. O schemă electronic ce realizează conversia numeric analogică utilizând DAC08 se poate vedea în figura 2.13. Tensiunea de referință notată cu trebuie să fie constantă și bine stabilizată. Aceasta se aplică circuitului integrat prin rezistorul . Pinul notat cu se conectează la masă printr-un alt rezistor .
Schema unui convertor numeric analogic ce utilizează acest tip de rețea se poate vedea în figura 2.12.
Toma [7] indică următoarele valori pentru realizarea convertorului numeric-analogic cu DAC08: și . Datorită faptului ca ieșirea circuitului DAC08 este un curent, următorul etaj este folosit pentru conversia în tensiune. Ieșirea este pozitivă (de aceea schema este numită și “unipolară”). Cu cât mai mare este secvența numerică adusă la intrare, cu atât mai mare este curentul de ieșire al convertorului DAC08 și cu atât mai mare este tensiunea de ieșire a întregului circuit.
O schemă de conversie analog numerică bipolară este capabilă să genereze atat tensiuni pozitive cât și tensiuni negative la ieșire. Tensiunea corespunzătoare unei secvențe numerice de intrare corespunzatoare valorii 128 este 0V. Înca un amplificator operațional va fi adăugat schemei din figura 2.14. Acesta va avea rolul de translatare (deplasare) a tensiunii aplicate la intrarea lui. Circuitul obținut se poate vedea în figura 2.15.
Ultimul amplificator operațional are la intrare o tensiune constantă notată cu și o tensiune variabilă notată cu ce depinde de valoarea numerică adusă la intrare. Ca urmare:
Pe baza ecuației 2.12 și considerând că :
Considerând
1) Când secventa numerică adusă la intrare este 0=00H => and ,
2) Când secvența numerică adusă la intrare este 128=7FH => and ,
3) Când secvența numerică adusă la intrare este 255=FFH => and
Se poate observa că tensiunea de ieșire variază între to atunci când secvența numerică de la intrare variază între 0 to 255. Un astfel de convertor numeric-analogic se poate folosi cu success într-o buclă de reglare automată de tip PID.
2.5. Magistrala Industry Standard Architecture (ISA)
Industry Standard Architecture (ISA) este un port de calculator ce operează la 8MHz. Este o magistrală pe 16 biți. Conectorul furnizează și tensiunile de alimentare de ±12V, ±5V, precum și 15 linii de întrerupere (figura 2.16). În prezent portul ISA nu se mai folosește (PC-urile mai noi nu mai vin echipate cu acest slot). Și totuși, ISA oferă o oportunitate deosebită în ceea ce privește înțelegerea anumitor aspecte ale controlului digital. Avantajele ei țin mai ales de faptul că este ușor de înțeles, aplicațiile cu ISA neprezentând dificultăți majore. De asemenea, PC-urile vechi (care sunt echipate cu ISA) sunt ieftine și ușor procurabile.
Structural, magistrala ISA este similară cu magistrala PC104 ce echipează așa-numitele Single Board Computers (SBC). SBC-urile sunt PC-uri embedded dezvoltate de MicroSys (http://www.embeddedsys.com/) ce folosesc procesoare Pentium.
Pinii conectorului ISA se pot vedea în figura 3.9. Magistrala are două părți (A și B). Fiecare parte are 31 de pini (A1-A31 si B1-B31). Pinii A1 și B1 sunt localizați în partea din spate a calculatorului. Pinii conectorului ISA sunt descriși mai jos:
Partea “A”:
– A0-A19 (pini A31 – A12): magistrala de adrese
– D0-D7 (pini A9 – A2): magistrala de date
– AEN (pinul B11): Address Enable; este utilizat de către controllerul DMA
Partea "B":
– GND (pinii B1, B10, B31): pini de masă
– +5V (pinii B3, B29): 5V DC
– -5V (pinul B5): -5V DC
– -12V (pinul B7): -12V DC
– +12V (pinul B9): +12V DC
– MEMW (pinul B11): MEMory Write – utilizat de procesor pentru a scrie într-o locație de memorie,
– MEMR (pinul B12): MEMory Read – utilizat de procesor pentru a citi o locație de memorie,
– IOW (pinul B13): Input Output Write – utilizat de procesor pentru a scrie la un port,
– IOR (pin B14): Input Output Read – utilizat de procesor pentru a citi un port,
– DACK0-DACK3 (pinii B15, B17, B19 și B26): Data ACKnowledge; utilizați de către controlerul DMA,
– DRQ1-DRQ3 (pinii B6, B16 și B18): Data ReQuest; utilizați de către periferice pentru a cere utilizarea magistralei,
– +T/C (pinul B27): setat de către controler DMA pentru a informa sistemele periferice ca octeții au fost trimiși,
– IRQ2-IRQ7 (pinii B4, B21, B22, B23, B24 și B25): semnale de întrerupere,
– ALE (pinul 28): Address Latch Enable; utilizat de către procesor pentru a memora într-un latch o parte din adresă în timpul unei operații de citire/scriere,
– CLOCK (pinul 20): ceasul de sistem,
– OSC (pinul 30): semnal de tact.
Pinii IRQ2-IRQ7 pot fi utilizați pentru a cere o întrerupere. Câteva proiecte interesante ce utilizează magistrală ISA port fi găsite pe pagina de tutoriale a website-ului boondog (www.boondog.com).
2.7. Noțiuni despre sisteme
În cele ce urmează, prin sistem se întelege o combinație de module și/sau componente ce lucrează împreună pentru atingerea unui obiectiv comun. Ogata [8] aplică aceasta definiție și în cazul fenomenelor dinamice abstracte. Ca urmare, entități de tip fizic, economic și biologic pot fi numite sisteme.
Sistemele în care ieșirea nu are nici un efect asupra controlului sunt numite sisteme în buclă deschisă. Odata ce sistemul primeste comanda, acesta incearcă să o execute. Performanta nu este nici măsurată și nici estimată. În prezența perturbațiilor, ieșirea sistemului nu va fi la fel ca în cazul absenței acestora.
Sistemele în buclă închisă au avantajul de a fi în stare să corecteze efectul perturbațiilor. În cazul lor ieșirea este evaluată (măsurată și comparată cu valoarea dorită) iar sistemul ia măsuri de corectarea acesteia a aducere a ei la valoarea dorită. În cazul sistemelor în buclă închisă însă, stabilitatea este o problema de proiectare. Asigurarea ei este importantă, în caz contrar sistemul putând fi avariat.
O activitate/operație ce trebuie controlată este cunoscută uneori sub numele de proces. Exemple de procese pot fi considerate controlul de turație, controlul de poziție, etc. O aplicație de control digital de turație cu motorul de curent continuu este prezentată în aceasta carte.
Un semnal ce tinde să afecteze ieșirea unui sistem se numește perturbație. Acestea pot fi interne (daca sunt generate în interiorul sistemului) sau externe (daca provin din exterior). Pentru eliminarea perturbațiilor se utilizează controlul în buclă închisă. Mărimea de ieșire este comparată cu valoarea de referința iar diferența lor constituie un semnal de eroare. Acest semnal este aplicat unui circuit care implementeaza o așa-numită lege de reglare. Acesta stabilește (prin aplicarea legii de reglare asupra semnalului de eroare) semnalul ce trebuie aplicat sistemului pentru anularea erorii (reducerea/anularea perturbației). Exemple de astfel de sisteme în buclă închisă sunt cele de control a temperaturii în locuințe, sistemul cruise control de la autoturisme, etc.
Funcționarea sistemelor este descrisă mathematic de cele mai multe ori. Adesea se utlizează ecuații diferențiale pentru descrierea funcționării acestora. Relațiile ce descriu funcționarea sistemelor se numesc modele matematice. Obținerea modelelor matematice nu este intotdeauna simplă. Este posibil ca proiectantul să trebuiască să facă compromisuri între simplitate și acuratețe.
Un sistem se numește linear dacă acesta respectă principiul superpoziției. Cu alte cuvinte dacă suma a două semnale aplicată la intrarea sistemului generează o valoare a ieșirii ce poate fi obtinută prin insumarea ieșirilor sistemului atunci când la intrare se aplică cele doua semnale atunci sistemul este liniar. În realitate puține sisteme sunt liniare. Daca sistemul este descris cu ajutorul ecuațiilor diferențiale, atunci acesta este liniar dacă coeficienții sunt constanți sau funcții de variabilele independente. Sistemele descrise de ecuații diferențiale liniare și invariante în timp se numesc sisteme liniare și invariante în timp. Un exemplu de sistem liniar variant în timp este un vehicul spațial (masa acestuia variază din cauza arderilor de combustibil). Anumite sisteme au mai multe intrări și mai multe ieșiri. Acestea sunt cunoscute în literatura de specialitate ca sisteme multi input multi output. Pentru descrierea acestor tipuri de sisteme se utilizează calculul matriceal. Raportul între ieșirea și intrarea unui sistem se numeste funcție de transfer. În cazul sistemelor multi-imiput-multi-output, funcția de transfer devine matrice de transfer.
Pentru descrierea sistemelor de reglare se utilizează schemele bloc. Reprezentarea lor se facecu ajutorul componentelor și semnalelor de legătură. De multe ori semnalele se adună sau se scad între ele. O schema bloc este reprezentată în figura 2.17.
Un algoritm mathematic adesea utilizat în ingineria reglării automate este transformata Laplace. Aceasta permite exprimarea facilă a funcției de transfer a sistemelor. Ea transformă operațiile de integrare și diferențiere în operații algebrice. Figura 2.17 înfățișeaza schema bloc și semnalele exprimate cu ajutorul transformatei Laplace.
În figura 2.17. C(s) reprezintă funcția de transfer a controlerului ce implementează legea de reglare. P(s) reprezintă funcția de transfer a procesului de controlat iar S(s) reprezintă funcția de transfer a senzorului. Semnalele folosite sunt E(s) – eroarea și R(s) – referința. Prin referință se intelege valoarea dorită a parametrului reglat (valoarea prescrisă). Semnalul de eroare este diferența între referința și ieșirea sistemului. Ieșirea sistemului este notată cu O(s). Aceasta se calculează cu ecuația 2.15:
Semnalul de reacție este:
Semnalul de eroare se obține ca în ecuația 2.17.
Ieșirea este deci:
Prin re-aranjarea ecuației 2.18 se obține:
Se definește funcția de transfer ca fiind raportul dintre mărimea de ieșire și cea de intrare. Aceasta este:
2.8. Controller (lege de reglare)
Un controler este un modul care aplică o lege de reglare prestabilită unui semnalului de eroare adus la intrare. Semnalul de eroare se calculează ca diferența dintre referința și valoarea actual a mărimii ce se dorește a fi reglată. Rezultatul controlerului este aplicat procesului în vederea reglării mărimii de ieșire și reducerea erorii la zero.
În cele mai multe cazuri, eroarea este un semnal electric. Ca urmare, este necesară conversia semnalului necesar a fi reglat în semnal electric. Elementul ce realizează conversia se numește sensor. Mărimea de intrare a senzorului poate fi turația, poziția, temperatura, etc. Atunci cand procesul de controlat are dimensiuni mari, semnalul de la iesirea controlerului trebuie amplificat în consecință. De exemplu, în cazul comenzii unui motor de curent continuu, semnalul de la ieșirea controlerului se aplică unui modul de electronică de putere ce comandă motorul. Acesta poate fi un redresor comandat, un chopper, un amplificator de putere sau o sursă de tensiune în comutație. Ogata [8] clasifică controllerele dupa cum urmează:
• Controllere de tip on-off,
• Proportional (P),
• Integral (I),
• Proporțional-integral (PI),
• Proporțional-derivativ (PD),
• Proporțional-integral-derivativ (PID).
Ieșirea unui controller de tip on-off are două pozitii: pornit (on) și oprit (off). Ca urmare sistemul este fie pornit, fie oprit. Exemple de astfel de aplicații sunt controlul temperaturii pentru sistemele de încălzire (a apei si a locuințelor). În fiecare caz, dacă temperatura este mai mică decât cea dorită, încălzitorul este pornit. Datorită funcționării acestuia, temperatura va creste și la un moment dat va depași temperatura dorită (referința). Controllerul va opri atunci încălzitorul.
Controlerul de tip proporțional (P) leagă mărimea de ieșire de cea de intrare printr-o constantă. Semnalul de intrare este eroarea obținută prin scăderea mărimii măsurate (actuale) din ce de referință. Ca urmare, ieșirea controllerului este proporțională cu eroarea. Un asemenea controller poate fi văzut în figura 2.18.
Ieșirea acestuia este deci:
Cu alte cuvinte ieșirea acestuia este proporțională cu semnalul de eroare. Dacă se calculează funcția de transfer a controllerului aceasta este constanta Kp.
În cazul unui controller de tip integral, derivata semnalului de ieșire este o măsură a semnalului de eroare de la intrare (ecuația 2.22).
Mărimea u(t) se obține prin integrare (ecuația 2.23).
În ambele ecuații mărimea este o constantă (ce poate fi modificată). Prin aplicarea transformatei Laplace (Anexa A), se obține funcția de transfer a controlerului integral:
În cazul controlerului de tip Proporțional-Integral, ieșirea este suma a două componente. Prima componentă este proporțională cu semnalul adus la intrare (eroarea). Al doilea termen este proporțional cu integrala semnalului adus la intrare (ecuatia 2.25):
Prin aplicarea transformatei Laplace se obține:
În ecuațiile 2.25 și 2.26, este constantă de proporționalitate. Intervalul de timp este timpul de integrare. Controlerul proporțional-integral poate fi realizat utilizând circuite amplificatoare operaționale.
Funcționarea controllerului de tip proporțional-derivativ (PD) este guvernată de ecuația 2.27.
Prin aplicarea transformatei Laplace, funcția de transfer a controlerului devine:
În ecuațiile 2.27 și 2.28, este constanta de proporționalitate iar este timpul de derivare. Controlerul proporțional-derivativ se poate implementa utilizând circuite amplificatoare operaționale.
Controllerul proporțional-integral-derivativ este o combinație de cele trei legi de reglare. Ecuația de funcționare a acestuia este ecuația 2.29.
Prin aplicarea transformatei Laplace, funcția de transfer a controlerului devine:
În ecuațiile 2.29 si 2.30, este constanta de proporționalitate, este constanta de timp de integrare și este constanta de timp derivativă. Și controllerul proportional-integral-derivativ poate fi realizat cu amplificatoare operaționale.
2.9. Programul de reglare de turație de pe calculator
Este important de mențopmat faptul în acest proiect centrul de greutate cade pe proiectarea controllerului propportțional-integrator-derivativ în format numerci. Implementare acestuia din urmă poate fi făcută pe orice suport numeric (microprocesor, microcontroller, etc.). Pentru demonstrarea conceptului de proiectare s-a ales un calculator ce rulează sistemul de operare Windows.
Programul rulează sub formă ciclică. Astfel acesta citește tensiunea generată de cel de-al doilea motor (folosit ca și traductor de turație) după ce acesta este convertită în format numeric de către convertorul analog numeric. Odată ce această informație este disponibilă, ea este scalată obținându-se valoarea corespunzătoare turației (cunoscut fiind faptul că tensiunea electromotoare indusă prin rotație este mai mică decât tensiunea de alimentare necesară pentru obținerea acestei turații).
Valoarea scalată este comparată cu valoarea de referință (secvența numerică / valoarea corespunzăroare a turației dorite). Diferența dintre acestea va constitui semnal de eroare. Acesta este aplicat legii de reglare de tip proporțional-integrator-derivativ. Rezultatul va fi o altă secvență numerică ce va fi trimisă convertorului numeric analogic în vederea comenzii motorului. Odată acest lucru îndeplinit succesiunea de operații se reia.
Atât convertorul analog numeric cât și convertorul numeric analogic sunt amplasate pe aceeași placă ce folosește magistrala ISA. Programul ce implementează
Programul care rulează pe calculator are în principal rolul de a calcula periodic următoarea secvență numerică și de a o trimite către convertorul analog numeric. La momentul lansării în execuție a acestuia, utilizatorul va defini cinci puncte pe care curba generată numeric va trebui să le conțină iar programul va opera o interpolare. Rezultatul va fi o funcție ai cărei coeficienți vor fi calculați ori de câte ori punctele prin care curba va trece se modifică. Odată ce utilizatorul va porni pompa, programul va calcula valoarea ce trebuie trimisă către convertorul numeric-analogic pentru perioada imediat următoare și o va trimite acestuia.
Capitolul 3
3. Proiectarea sistemului de acționare și a legii de reglare
3.1. Noțiuni introductive
Sistemul de acționare cu reglarea digitală a turației este constituit din următoarele module:
– convertorul analog numeric,
– convertorul numeric analogic,
– controllerul (legea de reglare) transformată în digital,
– amplificatorul de putere.
O schemă bloc a acestuia se poate vedea în figura 3.1.
În figura 3.1 se prezintă și mărimile dintre blocurile ce compun sistemul precum și natura acestora. Așa cum ii spune și numele sistemul este constituit în buclă închisă. Mărimile din partea stângă a diagramei sunt numerice. Înainte de convertorul analog numeric și după convertorul numeric analogic acestea sunt tensiuni electrice. La ieșirea din sistem mărimea este turația. Acest sistem este exemplul ce justifică perfect nevoia de convertoare numeric analogice și analog numerice.
După descrierea teoretică a părților / modulelor incluse de către acesta, în acest capitol se prezintă proiectarea în detaliu a întregului sistem. Capitolul include atât proiectarea modulelor hardware cât și a programului ce controlează întregul modulator. Este descrisă funcționarea fiecărui modul utilizat și sunt prezentate calculele aferente.
3.2. Convertorul numeric analogic și convertorul analog numeric
Convertorul numeric analogic este modulul ce transformă mărimea de ieșire a controllerului din formă numerică în formă analogică. Acesta este construit în jurul circuitului integrat convertor numeric- analogic DAC08 [9]. Pentru conversia din curent în tensiune se utilizează amplificatorul operațional LF353. Fizic, din motive de ușurința interfațării și comenzii, modulul este localizat pe o placă ISA.
Convertorul analog-numeric este modulul care convertește în format numeric tensiunea provenită de la cel de al doilea motor ce joacă rolul de senzor de turație. Acesta este construit în jurul unui corcuit integra convertor analog numeric MAX 158 [10]. Circuitul MAX 158 este un convertor analog numeric multi-intrare de viteză. Durata unei conversii este de 2.5 µsec. Convertorul utilizează tehnologia cunoscută sub numele de "half flash". Semnalizarea încheierii conversiei se face cu pinul /INT care este activ în starea 0. În cazul schemei utilizate în acest proiect acest pin este conectat la circuitul driver de linei 74HC125 [11]. Acesta lansează o cerere de întrerupere (IRQ3) la sfârșitul conversiei. O conversie este inițiată prin activarea pinilor /CS și /RD (ambii activi în starea 0). Aceștia sunt pinul b14 (figura 2.16) și pinul chip select (activat la adresarea corespunzătoare). Și acest modul se află pe aceeași placă ISA. Schema celor două module se poate vedea în figura 3.2.
Utilizând un port al calculatorului, placa ISA trebuie să aibă o adresă de memorie. Adresa trebuie să se afle în spațiul de adresare rezervat de către IBM (proiectantul trebuie să asigure acest lucru pentru a evita un conflict). Pentru a satisface această cerință, adresa plăcii va fi 608. Un circuit integrat de tip 74138 va fi utilizat pentru decodarea acesteia. Circuitului decodor functionează dupa cum se vede în Tabelul 3.1. Circuitul integrat 74138 are trei intrări de control ce activează una dintre cele opt intrări. Dependent de valoarea adusă la cele trei intrări, una dintre ieșiri va fi pusă pe zero.
Pentru a putea modifica adresa plăcii în jurul valorii 608 se prevede un set de jumperi (figura 10.2). Dependent de liniile a, b și c, adresele utilizate sunt:
a = address line 7 (A7)
b= address line 6 (A6)
c= address line 5 (A5)
Ca urmare:
608 = 1 0011 0000
În acest caz liniile de adresă au valorile A7=0 (linia de control a), A6=0 (linia de control b) și A5=1 (linia de control c). Pentru a obține adresa 608, jumperul va trebui plasat în poziția a patra.
Table 3.1: Tabelul de adevăr pentru 74138
Placa ce conține modulele de conversie analog numerică și numeric analogică se poate vedea în figura 3.3.
3.3. Amplificatorul de putere
Amplificatorul de putere este modulul care asigură alimentarea motorului cu o tensiune și cu un curent adecvat. Acesta este practic elementul de acționare în această schemă bloc. Pentru această acționare s-a ales o schemă simplă ce conține un singur tranzistor de putere. Motorul este conectat în emitorul acestuia tranzistorul fortând un curent prin acesta. Schema se poate vedea în figura 3.4.
În baza tranzistorului se prevede un rezistor cu valoarea rezistenței de 100 de Ω. Tensiunea de alimentare de 12V se aplică în colectorul acestuia în vreme ce în emitor se conectează motorul. Pentru reducerea vârfurilor de tensiune generate de comutație se utilizează un condensator de 10nF. O diodă conectată invers este de asemenea utilizată pentru protecție.
Este important de menționat faptul că tranzistorul utilizat în amplificatorul de putere preia o anumită energie de la sursa de alimentare pe care o disipă sub formă de căldură (alimentarea motorului nu se face cu semnal PWM). Ca urmare acesta trebuie să fie unul de putere. Montarea lui se face obligatoriu pe radiator.
3.4. Parametri motorului
Pentru asigurarea unei turatii constante se prevede o bucla de reglare de turatie. Datorita faptului ca sistemele în buclă închisă pot intra în oscilație, stabilitatea acestora se studiază încă din faza de proiectare. Modul de funcționare a întregului sistem se simulează pe calculator. La simulare se utilizează modele pentru motor, pentru circuitele de putere și pentru controller.
Motoarele folosite pentru demonstrarea funcționării conceptului sunt motoare mici a căror funcție de transfer nu este cunoscută. Pentru determinarea acesteia motorul a fost alimentat cu o tensiune constantă suprapusă peste una variabilă. Pentru determinarea unei funcții de transfer pentru motorul de curent continuu se pot utiliza diagramele Bode. Motorul se alimenteaza cu o tensiune ce variază sinusoidal între două valori constante. O astfel de variație este data de ecuația 3.1.
Valoarea frecvenței tensiunii aplicate a fost variată pentru a determina răspunsul în frecvență a motorului. S-au măsurat valoarea vârf la vârf a tensiunii aplicate și a tensiunii electromotoare induse. S-a determinat cantitatea pentru fiecare frecvență. Graficul obținut constituie funcția de transfer a ansamblului alcătuit din convertorul digital analogic, amplificatorul de putere și motorul electric. Acesta se poate vedea în figura 3.5 (datele se pot vedea în Tabelul 3.1). Graficul sugerează un sistem de ordinul I (panta de cădere de ). Frecvența de tăiere este .
Admințând un curent de aproape constant prin motor, funcția de transfer a acestuia este:
Se determină așadar și . Funcția de transfer a motorului este deci:
Tensiunea electromotoare indusă funcție de timp (în secunde) se poate vedea în figura 3.6. Graficul este de fapt raspunsul la un semnal treapta. Turația acestuia crește la valoarea maximă într-un interval de 5 secunde. Pentru ridicarea acestui grafic s-a utilizat tehnica întreruperilor. Calculatorul a fost instruit sa execute cate o conversie de date in fiecare interval de 10ms. Generatorul de semnal a fost instruit sa genereze un semnal dreptunghiular cu frecventa de 100Hz intre 0 si 5V.
Așa după cum era de așteptat graficul tensiunii electromotoare induse este însoțit de zgomot. Explicația constă în existența unui contact mobil între perii și colector. Programul folosit pentru achiziția datelor tensiunii electromotoare induse este prezentat în paragraful 3.7.
În cazul alimentarii motorului cu un amplificator de putere, curentul se poate considera constant. Admițând și aplicând Laplace se obțin ecuațiile:
Combinând aceste ecuații se poate obține:
și
Rezistența înfășurării motorului a fost măsurata iar valoarea acesteia este . Pentru determinarea celorlalte caracteristici, motorul a fost alimentat cu cateva valori ale tensiunii. Datele obtinute se pot vedea in Tabelul 3.1.
TABEL 3.1: Caracteristica motorului de curent continuu
Constanta de cuplu a motorului se poate deduce:
3.6. Alegerea legii de reglare și transformarea ei în format numeric
Pentru aplicația de reglare de turație a fost ales un controller de tip Proportional-Integrator-Derivativ. Motivul principal în alegerea acestui controller este posibilitatea de asigurare a unei erori nule. Simularea funcționării sistemului cu acest controller s-a facut în programul Matlab. Prin încercări, valorile pentru constantele controllerului s-au stabilit cu ajutorul simulării ca fiind , și . Funcția de transfer a controllerului este reprezentata de ecuatia 3.8.
Sistemul în buclă închisă a fost simulat în Matlab. Răspunsul lui la semnal treaptă cu aceste valori este prezentat în figura 3.7. Se poate observă faptul că sistemul este stabil, răspunsul neprezentând nici un fel de oscilații.
Pentru transformarea legii de reglare în format discret se utilizează ecuația 3.9.
Pentru legea de reglare PID aleasă se obține:
Deci:
Mărimea T din ultima ecuație este intervalul de eșantionare. Ca urmare:
Sau:
Notând cu y(t) ieșirea controllerului se obține:
Ieșirea controllerului depinde de valoarea erorii curente și trecute (ecuația 3.14). O diagramă ce explică funcționarea sistemului în perioadele T se poate vedea în figura 3.8. Astfel, în fiecare perioadă, calculatorul va determina eroarea existentă și tensiunea necesar a fi aplicată motorului în vederea reducerii acesteia.
3.7. Programul ce controlează sistemul de acționare
În vederea proiectării întregului sistem (determinării parametrilor motorului, etc.) s-a dezvoltat un program care alimentează motorul în buclă deschisă și face achiziția de turație.
Programul normal de operare și control a sistemului de acționare este cel care convertește tensiunea generată prin rotație de către motorul antrenat în format numeric, compară secvența numerică obținută cu valoarea de referință și aplică eroarea controllerului. Acesta stabilește secvența numerică ce corespunde tensiunii de ieșire pentru iterația următoare. Odată ce valoarea numerică este stabilită, aceasta este trimisă către portul ISA la care se afla placa cu convertorul numeric analogic. Pentru ambele programe este prezentată schema logică. Ambele programe sunt prezentate în Anexă.
Capitolul 4
4. Testarea sistemului
4.1. Noțiuni introductive
În vederea testării sistemului (verificării funcționării normale a fiecărui modul) s-a utilizat programul în buclă deschisă. La început s-au trimis la port diverse constante numerice și s-au observat turațiile de rotație ale motorului. Tensiunea la terminalele acestuia a fost măsurată.
Tabelul 4.1. Variația turației cu tensiunea de alimentare
Pentru măsurarea tensiunii s-a folosit un disc împreună cu un emițător și un detector cu infraroșu. Datele culese au oferit informații atât despre motor cât și despre traductorul de turație. Acestea se pot vedea în tabelul 4.1 respectiv în figura 4.1.
Datele ce reprezintă tensiunea electromotoare indusă funcție de tensiunea de alimentare se pot vedea în tabelul 4.2.
Tabelul 4.2. Turația și tensiunea indusă funcție de tensiunea de alimentare
Variația tensiunii electromotoare induse funcție de tensiunea de alimentare se poate vedea în figura 4.2.
4.2. Schema logică a programului de reglare de turația
Odată ce algoritmul a fost proiectat și modulele hardware au fost testate, s-a trecut la dezvoltarea programului de reglare de turație numeric. Pentru acesta s-a proiectat o schemă logică ce reflectă funcționare acestuia. Schema se poate vedea în figura 4.3.
Programul cere utilizatorului să introducă turația de referință. Această valoare este convertită de program în tensiune ce trebuie aplicată motorului. Algoritmul citește tensiunea electromotoare generată de motorul ce joacă rol de traductor de turație. Acesta valoare (convertită deja în format numeric) este comparată cu valoarea de referință (valoarea citită se scade din cea de referință). Rezultatul (eroarea) este aplicat controllerului ce implementeză legea de reglare.
Algoritmul a fost testat prin lansarea programului în execuție și alimentarea sistemului. La arborele motorului s-a aplicat o perturbație (figurile 4.4 și 4.5). În aceste figuri se poate vedea cum tensiunea electromotoare indusă scade (datorită scăderii turației) și eroarea crește. Controlerul calculează noua valoare a tensiunii ce trebuie aplicată motorului cu ajutorul relației 3.14. În figurile 4.4. și 4.5 se poate vedea modul în care controllerul ia notă de schimbarea turației reale față de cea de referință și modifică tensiunea de alimentare a motorului și turația revine.
Programele (în buclă deschisă și în buclă închisă) sunt prezentate în paragrafele 5.2 respectiv 5.3.
4.3. Observații si concluzii
Așa după cum se poate vedea în figurile 3.7 și 4.2, tensiunea electromotoare indusă este însoțită de zgomot. Acesta poate avea un impact negativ asupra performanțelor controlerului. Contactele perii-colector sunt primele responsabile pentru apariția acestui zgomotul. Pentru eliminarea zgomotului prezent se pot considera câteva opțiuni prezentate mai jos:
• Utilizarea un filtru trece-jos pentru filtrarea acesteia si eliminarea zgomotului,
• Utilizarea unui filtru numeric implementat software (o variantă posibilă este un filtru de tip Kalman),
• Motorul ce furnizează informația de turație se poate înlocui cu un tahogenerator (acest traductor beneficiază de performanțe mult mai bune),
Ca și conluzii se pot enumera:
• Funcționalitatea sistemului (acesta menține turația de referință prin variația tensiunii aplicate motorului),
• Pentru dezvoltarea unui asemenea sistem este posibilă (în multe cazuri indicată) utilizarea unui microcontroller (de preferință unul echipat cu convertor analog numeric),
• Pentru o variantă mai performantă, se poate utiliza un traductor optic (de tip encoder) ce livrează pulsuri pe două canale (în vederea detecției sensului de rotație),
• Este posibilă combinarea legii de reglare cu una de tip feedforward care ar urmări o mărime de intrare (de exemplu tensiunea de la intrare). Ieșirile celor două controllere ar urma să fie adunate și aplicate elementului de execuție.
Anexa 5
5. Anexa
5.1. Transformata Laplace
Considerând:
O funcție temporală pentru care for ,
O variabilă complexă ,
– un operator matematic
Se defineste transformata Laplace a funcției ca fiind dată de
Transformata Laplace inversă este utilizată pentru obținerea funcției temporale a unei functii Laplace. Definitia acesteia se poate vedea in ecuatia A2.
Dacă expresia A1 converge integral, atunci transformata Laplace a funcției temporale există. Daca este continuă în orice interval finit pentru și dacă este de format exponențial, atunci integrala este convergentă.
În continuare orice rădăcină a numitorului va fi numita pol și orice rădăcină a numărătorului va fi numită zero.
5.2. Programul în buclă deschisă
/*
FILE: op_lp.c
AUT: Constantin RADU, R. STANCIU,
DATA: 28/05/2015
DESC: Program de reglare de turație în bucă închisă*/
DESC: Pornește motorul și colectează datele în fișierul op_lp.txt file. Pentru funcționare este necesar un generator de semnal legat la intreruperea IRQ4 (pin 24 ISA- B)
*/
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
#include<conio.h>
/* about IRQ3 */
#define IRQ3 0x0b /* IRQ3 */
/* about IRQ4 */
#define IRQ4 0x0c /* IRQ4*/
#define BASEADDRESS 608 /* Shorting block on row 4 of card */
#define TRUE 1 /* Boolean */
#define FALSE 0 /* Boolean */
#define MAXSIZE 5000 /* Total number of samples */
/* globals */
int EOC; /* End of conversion boolean */
int TMR; /* End of timing period */
int readData; /* Byte acquired from ADC (in decimal) */
int i; /* Sample iteration number */
unsigned long k=0; /* iteration for extSincro */
FILE* fp; /* File pointer to ASCII data file */
int j; /* Dummy counter variable */
/* prototypes */
void interrupt (*oldIrq3)(void); /* IRQ 3 original setting */
void interrupt (*oldIrq4)(void); /* IRQ 4 original setting */
void interrupt eocTrue(void); /* IRQ 3 new ISR */
void interrupt extSincro(void); /* IRQ 4 new ISR */
int main(void)
{
clrscr();
fp = fopen("c:\\tc\\op_lp.txt", "wt"); /* ASCII data file */
i = 0;
oldIrq3 = getvect(IRQ3); /* Set up the ISR we call eocTrue */
oldIrq4 = getvect(IRQ4); /* Set up the ISR we call extSincro*/
setvect(IRQ3, eocTrue);
setvect(IRQ4, extSincro);
outportb(0x21, ( inportb(0x21) & 0xE7 ) );
EOC = FALSE;
TMR = FALSE;
k=0;
printf("driving the motor\n");
/* outportb(BASEADDRESS, 255);*/
do {
while(TMR == FALSE) {/* do nothing until TMR true*/}
k++;
readData = inportb(BASEADDRESS); /* Do first read of Channel 0 */
while(EOC == FALSE) { /* do nothing until EOC true */ };
readData = inportb(BASEADDRESS); /* Read Channel 0 again */
EOC = FALSE; /* Reset to FALSE */
TMR = FALSE;
fprintf(fp, " %d \t%lu\n", readData, k);
outportb(BASEADDRESS, 255);
} while(!kbhit());
outportb(BASEADDRESS, 128);
/*printf("done\n");*/
fclose(fp);
setvect(IRQ3, oldIrq3);
setvect(IRQ4, oldIrq4);
outportb(0x21, (inportb(0x21) | 0x08) );
printf("Bye!\n");
return 0;
} /* end of main */
/* this ISR should execute each time IRQ3 is triggered i.e. IRQ3 = HIGH */
void interrupt eocTrue(void)
{
#pragma asm pushf;
#pragma asm cli;
EOC = TRUE;
outportb(0x20, 0x20);
#pragma asm popf;
return;
} /* end of eocTrue */
/* this ISR should execute each time IRQ 4 is triggered i.e. IRQ4 = HIGH*/
void interrupt extSincro(void)
{
#pragma asm pushf;
#pragma asm cli;
TMR = TRUE;
outportb(0x20, 0x20);
#pragma asm popf;
return;
}
5.3. Programul de reglare de turație în buclă închisă
/* FILE: 7
AUT: Constantin RADU, R. STANCIU,
DATA: 28/05/2015
DESC: Program de reglare de turație în bucă închisă*/
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
#include<conio.h>
#define IRQ3 0x0b /* IRQ3 */
#define BASEADDRESS 608 /* Shorting block on row 4 of card */
#define TRUE 1 /* Boolean */
#define FALSE 0 /* Boolean */
#define MAXSIZE 5000 /* Total number of samples */
/* globals */
int EOC; /* End of conversion boolean */
int readData; /* Byte acquired from ADC (in decimal) */
float i; /* Sample iteration number */
int U[2]; /* Array of acquired samples */
FILE *fp; /* File pointer to ASCII data file */
int j; /* Dummy counter variable */
float N;
float ii;
/* prototypes */
void interrupt (*oldIrq3)(void); /* IRQ 3 original setting */
void interrupt eocTrue(void); /* IRQ 3 new ISR */
int main(void) {
int speed, Nref;
float voltage;
clrscr();
fp = fopen("c:\\tc\\fingdata.txt", "wt"); /* ASCII data file */
/*****************************************************************/
gotoxy(6,6);
printf("Please input the desired speed [rpm]");
scanf("%d", &speed);
voltage = (0.00045*speed);
printf("voltage = %f\n", voltage);
Nref = (int)(voltage*128.0/5.0) + 128; /* Conversion to Binary on the 128-255 scale */
fprintf(fp," N Back Emf error\n");
getch();
/*****************************************************************/
/* initialize data array to 0.0 */
for(j=0; j < MAXSIZE; j++) {
U[0] = 0.1;
U[1] = 0.0;
};
oldIrq3 = getvect(IRQ3); /* Set up the ISR we call eocTrue */
setvect(IRQ3, eocTrue);
outportb(0x21, ( inportb(0x21) & 0xF7 ) );
EOC = FALSE;
do {
readData = inportb(BASEADDRESS); /* Do first read of Channel 0 */
while(EOC == FALSE) { /* do nothing until EOC true */ };
readData = inportb(BASEADDRESS); /* Read Channel 0 again */
EOC = FALSE; /* Reset to FALSE */
U[1] = (readData); /* Volts calculation */
ii = (U[1]*5.0/255.0); /* Conversion from binary to volts for Back EMF */
/* printf("Back EMF = %f\t", ii);*/
ii = (1.2346 * ii + .077); /* Conversion of Back EMF to Vin */
U[1] =(int)(ii/5.0*128.0 + 128.0); /* Conversion of Vin to Binary */
U[1]= Nref – U[1]; /* Calculation of error */
N =(100*U[1]+(40*0.0001-1)*U[0]); /* Controller */
if(N>255.0) N=255.0;
if(N<128.0) N=128.0;
printf("N = %f\n", N);
U[0] = U[1];
outportb(BASEADDRESS, (int)N);
fprintf(fp, " %f,\t %f\t %d\n", N, ii, U[0]);
} while(!kbhit());
outportb(BASEADDRESS, 128);
printf("done\n");
fclose(fp);
setvect(IRQ3, oldIrq3);
outportb(0x21, (inportb(0x21) | 0x08) );
printf("Bye!\n");
return 0;
} /* end of main */
/* this ISR should execute each time IRQ3 is triggered i.e. IRQ3 = HIGH */
void interrupt eocTrue(void)
{
#pragma asm pushf;
#pragma asm cli;
EOC = TRUE;
outportb(0x20, 0x20);
#pragma asm popf;
return;
} /* end of eocTrue */
Bibliografie 6
6. Bibliografie
Dordea T. – Mașini electrice,
Galan, N., Ghiță C., Cistelecan M. – Mașini electrice, Editura Didactică și Pedagogică, București, 1981,
Tunsoiu Gh., Seracin E., Saal C. – Acționări electrice, Editura Didactică și Pedagogică, Bucuresti, 1982,
Străinescu I. – Variatoare statice de tensiune continuă, Editura Tehnică, Bucuresti, 1982,
Brașovan, M., Seracin E., Bogoevici N., Kelemen A., Trifa V. – Acționări electrice: aplicatii industriale, Editura Tehnică, Bucuresti, 1977,
Muntean N. – Convertoare Statice, Editura Politehnica, Timisoara, 1998, ISBN 973-9389-12-0,
Toma L., – Sisteme de achizitie și prelucrare numerică a semnalelor, Editura de Vest, Timisoara, 1996, ISBN 973-36-0272-8,
Ogata K., – Modern Control Engineering, Prentice Hall, 2002, Upper Saddle River, New Jersey, USA, ISBN: 0-13-060907-2,
DAC08 datasheet,
MAX158 datasheet,
74HC125 datasheet.
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: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [311179] (ID: 311179)
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.
