Sunteți pe pagina 1din 88

LUCRAREA 1

INTRODUCERE N MEDIUL DE PROGRAMARE SIMULINK


1.1. Obiectivele lucrrii
n aceast prim lucrare de laborator, creia i sunt rezervate patru ore, se
urmrete atingerea de ctre studeni a urmtoarelor obiective:
nsuirea modului de lucru cu mediul de programare SIMULINK;
familiarizarea cu obiectele din biblioteca SIMULINK;
construirea diagramelor destinate simulrii unor elemente simple de
simulare, n cadrul mediului de programare SIMULINK;
1.2. Prezentarea coninutului lucrrii
MATLAB este un pachet de programe de nalt performan, dedicat calculului
numeric i reprezentrilor grafice n domeniul tiinei i tehnici Una dintre aplicaiile
specifice versiunii 6.5 al mediului MATLAB este SIMULINK. Acest pachet de
programe este utilizat pentru simularea matematic a sistemelor dinamice cu ajutorul
unor elemente dinamice fundamentale.
1.2.1. Lansarea n execuie a mediului SIMULINK
Mediul SIMULINK poate fi activat prin intermediul mediului MATLAB, n
doua moduri:
1. Se face clikc pe icona Simulink
, din bara de instrumente a mediului
Matlab;
2. Din mediul Matlab, n linia de comanda se editeaz comanda simulink i se
execut, figura 1.1.

Fig. 1.1. Lansarea n execuie a mediului SIMULINK, utiliznd comanda simulink.

n urma aciunii uneia din comenzile specificate anterior, este lansat n execuie
mediul SIMULINK. Pe ecran se va deschide o fereastr ce conine componentele aflate
n biblioteca SIMULINK, figura 1.2.

Fig. 1.2. Biblioteca mediului Simulink.

Pentru construirea unei diagrame se vor selecta comenzile New, Model din
mediul de comenzi File al mediului Simulink, figura 1.3. n urma execuiei acestei
aciuni pe ecran se va deschide o fereastr destinat construirii i simulrii diagramelor,
figura 1.4.

Fig. 1.3. Lansarea n execuie a ferestrei de construire a unei diagrame.

Fig. 1.4. Imaginea ferestre diagramei destinat construiri i simulrii diagramelor.

1.2.2. Prezentarea componentelor din biblioteca Simulink


Biblioteca mediului Simulink (Library Simulink) conine un set componente
destinate realizrii unor operaii elementare, avnd semnificaie matematic sau de
natura generrii i prelucrrii semnalelor, figura 1.2. Semnificaia celor mai utilizate
componente din bibliotec sunt prezentate n tabelul 1.1.
Tabelul 1.1.
Semnificaia celor mai utilizate componente din biblioteca SIMULINK
Nr.
crt.
1

Denumire
Source

Sinks

3
4

Discrete

5
6

Math Operation
Signal Routing

Continuous

Semnificaie
Generarea semnalelor surs
Reprezentarea grafic a dinamicii
sistemelor
Simularea sistemelor discrete in timp
Simularea sistemelor liniare i sistemelor
neliniare
Realizarea operaiilor matematice
Realizarea conexiunilor

La rndul ei fiecare component conine un set de instrumente. Dac se va


executa dublu-click pe oricare dintre componentele din bibliotec, n partea dreapt a
ferestrei din fig 1.2 vor apare instrumentele componentei respective, figura 1.5. n cele
ce urmeaz se vor detalia cteva din cele mai utilizate componente ale bibliotecii
Simulink.

Fig.1.5. Instrumentele componentei Sinks.

A1. Componenta semnalelor surs (Signal Source Library)


Componenta semnalelor surs conine instrumente generatoare de semnale de
intrare aplicate sistemului studiat. Aceste instrumente sunt obinute prin activarea
componentei Sources. Principalele instrumente asociate componentei semnalelor surs
sunt prezentate n tabelul 1.2. Semnalele surs cele mai utilizate n cadrul aplicaiilor
sunt: semnalul de ceas, constanta, semnalul sinusoidal i semnalul treapt.
Tabelul 1.2.
Componenta Source
Nr.
crt.
1
2
3
4

Denumire
instrument
Constant

Semnificaie
Semnal
de
intrare
constant
Semnal de ceas
Semnal sinusoidal
Semnal treapt

Clock
Sine Wave
Step
4

Ramp

Semnal ramp

A2. Componenta semnalelor de ieire (Signal Sinks Library)


Instrumentele componentei Sinks sunt obinute prin activarea pictogramei Sinks.
Semnificaia principalelor instrumente ale componentei Sinks sunt prezentate n tabelul
1.3.
Tabelul 1.3
Componenta semnalelor de ieire
Nr.ct
r.
1
2
3

Denumire
Scope
To Workspace
Stop Simulation

Semnificaie
Vizualizare mrimi de ieire pe
osciloscop
Mediul de lucru
Sfritul simulrii

A3. Componenta sistemelor continue (Continuous-Library)


Instrumentele componentei sistemelor liniare i neliniare sunt obinute prin
activarea pictogramei Continuous. Principalele instrumente asociate componentei
sistemelor liniare sunt prezentate n tabelul 1.4. Componenta sistemelor liniare i
neliniare conine instrumente dedicate funciilor matematice algebrice: sumator,
amplificator etc.
Tabelul 1.4.
Componenta sistemelor liniare
Nr.crt.
1
2
3

Denumire
Integrator
Derivative
Transfer Fcn

Semnificaie
Integrator
Derivator
Funcia de transfer

A4. Componenta funciilor matematice


Prin activarea pictogramei Math Operation sunt obinute instrumentele
componentei funciilor matematice. Semnificaia componentelor din blocul funciilor
matematice sunt prezentate n tabelul 1.5. Meniul funciilor matematice conine
obiectele pentru funcii matematice algebrice, funcia histerezis, funcia de ntrziere i
saturare.
Tabelul 1.5.
Componenta sistemelor neliniare

Nr.crt.
1
2
3
4
5

Denumire
Sin
Min
Gain
Sum
Product

Semnificaie
Funcia trigonometric sinus
Funcia minim
Amplificator
Sumator
Produs

1.3. Partea experimental


Pentru a realiza simularea dinamic a unui sistem, utiliznd mediul SIMULINK,
sunt necesare parcurgerea urmtoarelor etape:
1. Determinarea modelului matematic.
2. Identificarea blocurilor corespunztoare elementelor dinamice, care
modeleaz sistemul.
3. Realizarea diagramei sistemului, format din blocuri standard (aflate n
biblioteca Simulink) sau a blocurilor proprii (create de utilizator).
4. Configurarea fiecrui bloc, n funcie de modelul matematic i parametrii
asociai sistemului.
5. Lansarea n execuie, etap realizat prin comanda Start din meniul
Simulation.
6. Selectarea opiunilor necesare vizualizrii rezultatelor simulrii.
Exemplul 1 Fie modelul de forma:
y 3u

(1.1)

asociat unui element proporional. S se construiasc diagrama care va


implementa relaia (1.1) n mediul Simulink, pentru u=5;
Rezolvare
A1. Identificarea blocurilor. Relaia 1.1. poate fi implementat prin intermediul
urmtoarelor blocuri:
pentru generarea semnalului de intrare u se va utiliza blocul Constant din
componenta Source Library.
Blocul Gain din componenta Math Operations, pentru amplificare intrri u
cu factorul de amplificare 3,
Blocul Display pentru vizualizarea rezultatului din componenta Sinks.
A2. Construirea diagramei. Pentru realizarea
diagramei
se
procedeaz n modul urmtor:
1. Toate blocurile necesare (Constant, Gain, Display) vor fi copiate din
biblioteca SIMULINK n fereastra de construire a diagramei. Pentru
realizarea acestei etape se execut succesiv operaiile:
Se activeaz fereastra Source-Library.

Se execut click pe blocul Constant cu butonul din dreapta mouse-ului.


Ct timp este apsat butonul, se realizeaz o copie a blocului i se
plaseaz n diagrama bloc.
Similar sunt copiate blocurile: Gain din fereastra Math Operations i
respectiv DisplayBlock din fereastra Sink-Library.

Operaii uzuale pentru copierea, mutarea i tergerea blocurilor:


copiere - se va utiliza butonul drept al mouse-ului;
mutarea blocurilor - se va utiliza butonul stng al mouse-ului;
tergerea blocurilor - se va utiliza butonul Delete.
2. Blocurile se vor conecta conform diagramei din figura 1.6. Acestea pot fi
conectate prin apsarea butonului drept al mouse-ului i tragerea unei sgei
de la ieirea unui bloc la intrarea altui bloc. In diagrama astfel
obinut, blocurile pot fi deplasate i aranjate cu ajutorul
butonului stng al mouse-ului.

Fig.1.6. Diagrama asociat relaiei 1.1.

A3. Configurarea blocurilor. Prin configurare se nelege setarea anumitor


parametri numerici asociai blocurilor. In cadrul diagramei din figura 1.6, sunt necesare
configurarea blocurilor Constant i Gain. Etapa de configurare decurge astfel:
(1) Blocul Constant
Se execut click pe blocul Constant;
In urma activrii blocului Constant se va deschide csua de dialog
specific blocului, figura 1.7. In cmpul specific introducerii
parametrului se seteaz:
Constant value: 5
Validarea valorilor introduse se face prin apsarea butonului Apply,
figura 1.7.
Pentru nchiderea csuei de dialog se utilizeaz butonul
Close.
(2) Blocul Gain

In urma activrii blocului Gain se va deschide csua de dialog specific


blocului, figura 1.8
In cmpul specific parametrilor se seteaz conform figurii 1.8.,
parametrul:
Gain: 3

Fig. 1.7. Configurarea blocului Constant.

Fig.1.8. Configurarea blocului Gain.

Diagrama se va salva sub numele de prob11, alegnd comanda File/SaveAs, cu


extensia mdl.

A4. Lansarea n execuie. Aceasta este realizat prin comanda Start din meniul
Simulation (figura 1.9). In cadrul blocului Display se va obine rezultatul evaluarii
expresiei 1.1.

Fig.1.10 .

Exemplul 2.
matematic:

Fie sistemul de ordinul 1, figura 1.10, descris prin modelul

T y y K u

(1.2)

unde T=0.9 reprezint constanta de timp a ecuaiei, exprimat n minute,iar


K=3 este factorul de amplificare asociat variabilei de intrare u, u 1 t .
u

Fig. 1.10. Structura sistemului descris de modelul matematic (1.2).

Condiia iniial a ecuaiei difereniale este y 0 1 . Sistemul va fi simulat pe


intervalul de timp 0, 10 s.
Rezolvare. Modelul matematic (1.2) se aduce la forma standard (1.3) :
dy

dt

1
T

y t Ku t

aceasta se integreaz ajungnd la expresia (1.4):

(1.3)

y t y 0 T1 y t Ku t dt

(1.4)

Ultima relaie este implementat prin intermediul diagramei bloc figura 1.12

Fig.1.11. Diagrama sistemului de ordinul 1.

Creare diagram. Pentru realizarea diagramei se vor avea n vedere


urmtoarele etape:
A. Toate blocurile necesare vor fi copiate din biblioteca SIMULINK n schema
bloc;
B. Conectarea blocurilor conform diagramei bloc din figura 1.11;
C. Configurarea fiecrui bloc, introducnd valorile numerice pentru parametrii
blocurilor prin intermediul csuei de dialog a fiecrui bloc.
Explicarea mai detaliat a pailor de realizare a diagramei:
A. Copierea blocurilor n cadrul noii diagrame
Se deschide Linear-Library. Click pe blocul Integrator cu butonul din dreapta
mouse-ului. Ct timp este apsat butonul se trage o copie a blocului peste
schema bloc i se plaseaz n diagrama bloc.
Se copiaz dou Gain-Block i un Sum-Block din Linear-Library.
Se copiaz Step-Block din Source-Library.
Se copiaz Scope-Block din Sink-Library.
B. Conectarea blocurilor
Conectarea blocurilor conform diagramei bloc din figura 1.11. Acestea pot fi
conectate prin apsarea butonului drept al mouse-ului i tragerea unei sgei de la
ieirea unui bloc la intrarea altui bloc.
C. Configurarea blocurilor
n csua de dialog a fiecrui bloc vom introduce valorile numerice ale
parametrilor n cmpurile specifice acestora:
Blocul Step necesit setarea parametrilor: grupul valorilor iniiale la 0;
grupul valorilor finale la 1; step time la 0.
n cadrul blocului Integrator sunt setate: 0 - limita inferioar; 10 - limita
superioar; 1 - condiia iniial.
Gain - necesit valoarea 0.9.
Gain1 - se seteaz amplificarea la valoarea 3.

10

n cadrul blocului Sum se seteaz nti + pentru calea direct urmat de -


pentru reacie.
Simulare dinamic. Aceasta este realizat prin comanda Start din meniul
Simulation. Pentru o mai bun reprezentare grafic a rezultatelor, n meniul
Simulation/Parameters/Solver vor fi setai urmtorii parametrii, figura 1.12 :
Start Time i Stop Time pentru setarea intervalului de integrare;
Euler, Adam sau Runge-Kutta din meniul Solver Options pentru
alegerea metodei de integrare.

Fig.1.12. Meniul Simulation parameters.

Vizualizarea rezultatelor simulrii este accesibil prin intermediul blocului


Scope. Blocul Scope prezint cteva trsturi, figura 1.13:
cel mai din stnga buton din fereastra Scope este butonul de Zoom care i
permite s modifici dimensiunile graficului n ambele direcii, x i y (alegi
aria de modificare cu mouse-ul);
urmtoarele dou butoane sunt de asemenea butoane Zoom. Ele i permit s
modifici graficul n direcia x, respectiv y.
butonul cu binoclul este butonul Auto-scale care arat ntreg rspunsul n
timp (anulnd orice modificare).
urmtorul buton este butonul Save-axes care salveaz sau nghea axele .
cel mai din dreapta buton este butonul Properties care permite n meniul
Axes configurarea blocului Scope. In cmpurile Ymax, Ymin se introduc
valori pentru determinarea limitelor de reprezentare pe axa y, figura 1.5.

11

Fig.1.13. Bara de obiecte a blocului Scope.

Fig.1.14. Csua de dialog a butonului Properties.

n figura 1.15 este redat dinamica ecuaiei de ordinul 1 (1.2) obinut n


condiiile impuse. Rspunsul este aperiodic de ordinul 1.

Fig.1.15. Rezultatul obinut prin simularea sistemului de ordinul 1.

Exemplu 3. S se construiasc diagrama care va implementa relaia (1.2) de la


exemplul 2, utiliznd blocul Subsystem.

12

n cazul n care o diagram devine foarte complicat, Simulink ofer


posibilitatea de a grupa mai multe blocuri ntr-un singur bloc, utiliznd blocul
Subsystem din componenta Port &Subsystem. Ca exemplu, vom crea un subsistem ce
va conine toate blocurile dintre blocul Step i blocul Scope din figura 1.11. Diagrama
rezultat se va fi prezenta n figura 1.16. Dac se va executa click pe blocul Subsystem
se va deschide o noua diagram, figura 1.17.

Fig. 1.16.

Fig.1.17.

1.4. ntrebri i exerciii


1. Care sunt avantajele mediului de simulare Simulink?
2. S se construiasc diagrama de simulare pentru urmtoarele ecuaii:
a) y=2u, unde u=4;
b) y 3 u e u , u=5;
c) 3 y y 2 u , y(0)=0, u(0)=1,5;
3. S se construiasc diagrama ce realizeaz conversia gradelor Celsius n
grade Fahrenheit.
TF

9
TC 32
5

13

14

LUCRAREA 2
ANALIZA EXPERIMENTAL A DINAMICII SISTEMELOR
2.1. Obiectivele lucrrii
n prezenta lucrare, creia i sunt afectate patru ore, se urmrete atingerea
urmtoarelor obiective:
nelegerea noiunilor: sistem tehnic, dinamica unui sistem tehnic, simulare;
cunoaterea elementelor de baza privind dinamica sistemelor.
2.2. Prezentarea coninutului lucrrii
n cele ce urmeaz va fi prezentat modul de determinare experimental a
modelului matematic dinamic asociat unei termorezistente.
Pentru o termorezisten PT1001, prevzut cu un adaptor ncorporat rezistentintensitate, care genereaz la ieire 4-20mA, se va determina experimental caracteristica
dinamic. In figura 2.1 sunt prezentate elementele de baza necesare efecturii
experimentului.
2
I
R

i 4 20mA
AM

TT

TT

T1

T2

Fig.2.1.Determinarea experimental a caracteristicii dinamice a unei termorezistene;


1- termorezistena; 2- adaptorul rezistena-intensitate; 3- aparat de msurat;
4,5- vase cu temperaturi T1 i T2 diferite.

Termorezisten cu R=100 la T=1000C.

15

Prin trecerea rapid din vasul 4 n vasul 5, sau invers, lichidele din vase avnd
temperaturile T1 T2, se aplic la intrarea termorezistentei un semnal treapt. Dup
aplicarea treptei de temperatur la intrare, se noteaz valorile intensitii i n timp.
2.3. Partea experimental
1. Se va determina experimental rspunsul n timp, la variaia treapt, pentru
traductorul de temperatur de tip termorezistent, conform celor precizate n paragraful
2.2. Se recomand urmtoarele:
se va face un experiment de prob pentru formarea unei imagini de ansamblu
i n mod deosebit, pentru stabilizarea scrii de timp i a intervalelor de timp
la care se vor face citirile;
se vor determina dou rspunsuri n timp: pentru treapta pozitiv (de la rece
la cald) i pentru treapta negativ(de la cald la rece);
2. Pe baza rspunsurilor n timp de la punctul 1 se va determina MMD al
traductorului. In acest scop se propun trei forme de modele matematice dinamice
(MMD) de aproximare:
MMD de ordinul I n variaii
a

di
i bT ,
dt

MMD de tip functie de trasfer


H s

(2.1)

b
,
as 1

(2.2.)

MMD cu valori absolute


a

di
i bT ;
dt

(2.3)

Constantele a i b ale relaiilor anterioare se vor determina astfel:


Constanta b se va calcula pe baza relaiei
b

i
,
T

(2.4)

Constanta a se va calcula pe baza relaiei


a a a3
a 1 2
,
3

(2.5)

Pentru a determina constanata a1 se va alege un punct pe grafic, prin care se duce o


tangenta n acel punct la grafic. Tangenta va intersecta dreapta ce determina starea
staionara a sistemului. Distana dintre punctul de pe grafic i punctul determinat de
intersecia tangentei cu dreapta ce determin starea staionara a sistemului, se va nota cu
a1, figura 2.2 . In acelai mod se vor determina i celelalte dou constante a2, a3.

16

Fig. 2.2.
4. Pentru sistemul
a

di
i bT ,
dt

unde a i b au valorile determinate la punctul 2, s se determine i(t) i graficul


su atunci cnd temperatura T variaz sub forma de treapt de la 20 0C la 90 oC.
4. Pentru sistemul de la punctul 3 se va construi diagrama de simulare a
sistemului n mediul de programare Simulink, conform celor nvate n cadrul primei
lucrrii de laborator.
2.3. ntrebri i exerciii
1. S se fac aprecieri privind calitatea MMD utilizat la aproximarea dinamicii
traductorului de temperatur investigat n paragraful 2.3.
2. Putei explica coninutul noiunii dinamica unui sistem tehnic?
3. Sa se construiasc raspunsul n timp al urmtoarei ecuaii difereniale
4

unde

dT
T 0,35 Qc
dt

Qc(t)=1000m3N/h; T(0)=335oC.

4. Pentru sistemul din figura 2.3. sunt presupuse urmtoarele modele


matematice dinamice:
a) y=2u;
dy
u ; y(0)=0;
dt
dy
c) 3 y 2u y(0)=0;
dt

b) 3

Fig. 2.3 Sistem monovariabil.

S se construiasc, pentru fiecare caz n parte, caracteristica dinamic a


sistemului atunci cnd intrarea u(t) variaz ca n figura 2.4.

17

1,5
t
Fig. 2.4. Variaia n timp a intrrii u(t).

18

LUCRAREA 3
SISTEME DE MSURAT

3.1. Obiectivele lucrrii


n cadrul acestei lucrri, creia i sunt afectate dou ore (o edin de laborator),
se urmrete atingerea de ctre studeni a urmtoarelor obiective:
nelegerea i nsuirea corect a noiunii msurare;
nsuirea structurii unui sistem de msurat (SM);
cunoaterea fizic a unor sisteme de msurat din laborator;
nelegerea caracteristicii statice a unui element fizic (traductor sau aparat de
afiare).
3.2. Prezentarea coninutului lucrrii
Pentru noiunea msurare se va purta o discuie n laborator care s aib la
baz cunotinele studenilor asupra acestei noiuni (predate la curs) i exemple fizice
concrete din activitatea practic.
Un sistem de msurat se compune principial din dou pri (fig. 3.1):
traductorul, care sesizeaz mrimea din proces (temperatur, debit, nivel,
presiune etc.) i genereaz la ieire un semnal corespunztor;
aparatul de afiare (indicare, nregistrare) sau de msurare, care prin
prelucrarea semnalului primit de la traductor determin i afieaz valoarea
mrimii din proces.
Cu ajutorul cadrului didactic, studenii vor cunoate fizic, principial,
urmtoarele SM: SM-P, SM-N, SM-D i SM-T. (P presiune, N nivel, D - debit, T
temperatur).

Fig. 3.1. Cele dou pri importante ale unui SM:


T traductorul; AA aparatul de afiare;
y mrimea din proces (debit, presiune, nivel etc.); ya mrimea afiat.

Divizai n dou semigrupe, studenii vor determina caracteristica static a


unui traductor de nivel (LT) sau a unui traductor de presiune (PT) i a unui aparat de
afiare.
Se va prezenta i discuta principial schema unui poteniometru electronic
(fig. 3.5 din subcap. 3.4);
19

Se va prezenta principial structura unui SM realizat cu ajutorul unui


calculator de proces.
3.3. Partea experimental
Aceast parte cuprinde:
cunoaterea fizic a SM amintite n subcapitolul anterior;
determinri experimentale asociate SM-P i SM-N.
Cunoaterea fizic, principial, a celor patru SM se va realiza prin
prezentarea acestora de ctre cadrul didactic, n laborator. Se va accentua componena
acestora prin punerea n eviden a traductorului i a aparatului de afiare. Se va observa
dac exist asemnri ntre aparatele de afiare ale celor patru sistem de msurat.
Pentru studiul experimental al SM-P va fi utilizat montajul din fig. 3.2.
PI
PI

Po

PT

2...3 bar

mA

PE

Fig. 3.2 Montaj pentru studiul experimental al SM-P:


R reductor de presiune; PI manometru (presiune indicat); mA
miliampermetru; PE poteniometru electronic.

Modul de lucru este prezentat n continuare.


1. Se noteaz mai nti domeniile mrimilor de intrare i ieire pentru PT i PE.
2. Cu ajutorul reductorului R se dau 6...10 valori presiunii P. pentru fiecare
valoare a presiunii P se citesc valoarea intensitii I i valoarea indicat de
poteniometrul electronic PE. Valorile presiunii P, intensistii I i celei indicate de
poteniometrul PE se trec ntr-un tabel de forma celui cu nr. 3.1.
Tabelul 3.1
Valori msurate pentru SM P

Presiunea P bar

P1

P2

...

Pn

Intensitatea I mA

I1

I2

...

In

Indicaia PE

IPE1

IPE2

...

IPEn

3. Cu datele din tabelul 3.1 se vor construi pe hrtie milimetric, graficele


I f(P) i IPE g(I). Aceste grafice reprezentnd caracteristicile statice ale
celor dou elemente.

20

4. Se va determina ecuaia caracteristicii statice (ca dreapta ce trece prin dou


puncte de coordonate curente) .
Pentru studiul experimental al SM N va fi utilizat montajul din fig. 3.3.
Modul de lucru este prezentat n continuare.
1. Se noteaz mai nti domeniile mrimilor de intrare i ieire pentru LT i PE.
2. Cu ajutorul pompei SP se transport apa din partea inferioar a vasului V n
partea superioar a acestuia.
3. Dup cum se observ din figur, nivelul apei este msurat n partea
superioar a vasului. Modificarea acestuia se realizeaz prin deschiderea treptat a
supapei dintre cele dou compartimente ale vasului V.
Pentru fiecare valoare a nivelului apei n compartimentul superior al vasului se
citesc valorile pentru nivelul H (cu ajutorul sticlei de nivel SN), pentru intensitatea I i
pentru indicaia IPE a poteniometrului electronic PE. Valorile mrimilor H, I i I PE pentru
cele 6... 10 determinri se trec ntr-un tabel asemntor cu tabelul 3.1.
4. Cu datele tabelate se construiesc, pe hrtie milimetric, graficele I = f(H) i
IPE = g(I). Aceste grafice reprezint caracteristicile statice ale celor dou elemente. Pe
baza analizei graficelor se vor determina concret expresiile funciilor f i g.
LT
+

mA

PE
-

SN

SP
V

Fig. 3.3. Montaj pentru studiul experimental al SM-N:


LT- traductor de nivel; mA - miliampermetru; PE- poteniometru electronic;
SN- sticl de nivel; SP- pomp centrifugal; V- vas cu dou compartimente.

In cadrul lucrrii de laborator va fi prezentat, de asemenea un SM realizat cu


calculatorul electronic (fig. 3.4).

21

T1

CE

ITF-P

yn

CP

rn

Tn

Fig. 3.4 Structura principiala a unui SM cu CE:


T1,, Tn-traductoare; ITF-P- interfa de proces; CEcalculator electronic; CP-calculator de proces.

3.4. Intrebri i exerciii


1. Stii ce este un manometru ? Solicitai cadrului didactic sau tehnicianului s
v arate un manometru secionat. Manometrul conine un traductor? Dar un aparat de
afiare ?
2. Ce natur fizic are semnalul r pentru SM-P analizat ?
3. Care este domeniul de variaie al acestui semnal ?
4. Prelucrai datele experimentale obinute la cele dou SM cu ajutorul
calculatorului electronic.
5. S se construiasc, pentru SM-P i SM-N, graficele IPE fl(P) i IPE f2(H). Ce
semnificaie au cele dou grafice ?
6. In fig. 3.5 se prezint schema principial a poteniometrului electronic.
ncercai s evideniai modul n care funcioneaz poteniometrul electronic(se va apela
la cunotinele predate la curs.). Se va avea n vedere faptul c acesta trebuie s
determine valoarea tensiunii Ui.
I=const.

E
-

DR
R

Ue -

Ui

MR
M
R

U
-

Fig.3.5 Schema principiala a potentiometrului electronic:


A-amplificator; MR-motor reversibil; DR-dispozitiv de inregistrare; Esursa de alimentare; R-potentiometru bobinat; Ui-tensiune aplicata la
intrare: Ue -tensiune culeas ntre poteniometru i cursor.

22

LUCRAREA 4
CUNOATEREA EXPERIMENTAL A REGULATOARELOR
ANALOGICE I NUMERICE

4.1. Obiectivele lucrrii


Prin efectuarea acestei lucrri de laborator, pentru care sunt alocate dou ore, se
urmrete atingerea urmtoarelor obiective:
familiarizarea cu funcionarea unui regulator analogic;
familiarizarea cu funcionarea unui regulator numeric ;
determinarea experimental a caracteristicii statice (CS) a unui regulator
proporional, cu aplicaie la un regulator numeric SHIMADEN.
implementarea regulatoarelor PI si PID cu ajutorul mediului de programare
Simulink.
4.2. Prezentarea coninutului lucrrii
n cadrul acestei lucrri se vor prezenta regulatoarele analogice i numerice
destinate SRA dup abatere.
4.2.1. Regulatoare analogice
Regulatorul reprezint unul dintre elementele de baz ale dispozitivului de
automatizare i este destinat elaborarii comenzii printr-o prelucrare adecvat a abaterii,
abatere rezultat ca urmare a comparaiei ntre referin i reacie. Aceast definiie este
valabil pentru regulatoarele destinate SRA dup abatere, spre deosebire de cele
destinate SRA dup perturbaie la care algoritmul pentru determinarea comenzii este
specific aplicaiei.
Regulatorul este caracterizat prin mrimile din figura 4.1.
uM

u
Regulator
r
Kp Ti

Td

Fig. 4.1. Mrimi caracteristice ale regulatorului


dup abatere:
i - referin; r - reacie; Kp,Ti,Td - parametrii de
acordare ai regulatorului; uM - comand manual;
u - comand.

23

Algoritmi pentru determinarea comenzii. La regulatoarele PID (proportionalintegrator-derivator) comanda se elaboreaz prin prelucrarea abaterii conform relaiei:

t
1
de

,
u u 0 K p e edt Td

T
dt
i 0

unde: u este valoarea curent a comenzii;


u0 - valoarea comenzii n absena abaterii;
Kp - factorul de proprionalitate;
Ti - constanta de integrare;
Td - constanta de derivare.
Din analiza relaiei rezult proporionalitatea comenzii cu abaterea, integrala i
derivata acesteia.
Dnd valori convenabile parametrilor Ti i Td se pot obine algoritmi specifici
regulatoarelor P (proporional), PI (proporional-integrator) i PD (proporionalderivator), aa cum este aratat n notele de curs.
Din punctul de vedere al realizrii fizice regulatoarele pot fi analogice i
numerice. Cu toate c astzi se utilizeaz n exclusivitate regulatoarele numerice, se
consider necesar prezentarea succint a elementelor regulatorului analogic ELC 113,
fabricat i utilizat n Romnia. La prezentarea standului Studiul regulatoarelor
analogice se va evidenia rolul regulatorului analogic ELC 113 i se va observa c
panoul frontal al acestuia permite afiarea referinei abaterii i comenzii.
4.2.2. Regulatoare numerice
n cadrul acestei lucrri de laborator se va studia experimental un regulator
numeric SHIMADEN.
Principalele mrimi caracteristice ale regulatorului numeric dup abatere sunt
aceleai cu cele prezentate n figura 4.1.
Acest tip de regulator se ncadreaz n clasa regulatoarelor automate discrete,
(prelucrarea semnalelor se face n form numeric) i prezint urmtoarele caracteristici
generale:
este destinat unei singure bucle de reglare;
are la baz un microprocesor specializat ;
poate comunica prin legtur serial cu nivelul ierarhic superior;
ofer faciliti sporite n ceea ce privete algoritmii de reglare;
ofer contacte de ieire care pot fi integrate n sisteme de avertizare,
protecie sau comand;
parametrii de acordare BP, Ti, Td pot fi modificai local ( de la tastatur) sau
de la distan (prin linia serial);
are posibilitatea acordrii automate (autotuning);
posed convertoare analog/numerice i numeric/analogice necesare pentru
trecerea de la semnal continuu (analogic) la cel discret (numeric) i invers;
24

la comutrile A/M i M/A echilibrrile se fac automat.


4.3. Partea experimental
4.3.1. Prezentarea standului experimental
Determinrile experimentale se execut la standul Studiul regulatoarelor
numerice. Standul cuprinde urmtoarele elemente:
regulatoare numerice SHIMADEN i FOXBORO;
elemente de comand manual ELX 227 destinate generrii semnalelor de
reacie pentru regulatoare;
nregistrator ELR 35, care vizualizeaz comanda generat de regulatorul
SHIMADEN;
4.3.2. Desfurarea lucrrii
naintea determinrilor experimentale se vor identifica elementele componente
de pe faa panoului, precum i elementele panoului frontal al regulatorului numeric
SHIMADEN, elemente ce sunt prezentate n anexa 4.2 a acestei lucrri. Operarea
regulatorului SHIMADEN i diagramele de operare sunt prezentate n anexele 4.1,
respectiv 4.3.
Determinarea caracteristicii statice a regulatorului P
Familia de caracteristici statice u=f(r,BP) se va trasa pentru situaia n care
prescrierea i este fixat, iar BP este parametru.
n vederea obinerii acestei familii de caracteristici se vor parcurge urmtoarele
etape:
a) scrierea expresiei analitice a CS a regulatorului P sub forma u=f(r,i,BP);
b) pe baza relaiei scrise la punctul a) se va determina analitic valoarea comenzii
pentru situaia i=r i se vor formula observaii privind dependena acesteia de
parametrul BP;
c) se alimenteaz panoul cu energie, numai n prezena cadrului didactic;
d) se va efectua configurarea regulatorului SHIMADEN, n vederea obinerii
algoritmului proporional;
e) cu regulatorul n modul M (manual) se stabilete , prin acionarea tastaturii,
valoarea comenzii u0 (exemplu 50%) care se citete la nregistrator i/sau pe
ecranul regulatorului;
f) de la elementul de generare a reaciei ELX 227 se stabilete o anumit valoare
pentru mrimea de reacie, r (exemplu 50%), care se citete pe indicatorul
aparatului respectiv sau pe ecranul regulatorului;
g) se stabilete o valoare identic pentru mrimea prescris, i (r=i=50%), care se
citete n zona de afiare a panoului frontal, n aa fel nct abaterea s fie nul;
h) se va fixa o valoare pentru BP (exemplu BP=100%);
i) se trece regulatorul pe modul A (automat) i se modific i cu raia de 10%, pn
cnd se acoper tot domeniul [0100%], citindu-se la nregistrator valorile
corespunztoare ale comenzii u.

25

Observaie. La comutarea M/A indicaia nregistratorului trebuie s rmn pe


valoarea u0 stabilit la punctul e), n condiiile abaterii nule.
Experimentul se repet pentru nc dou valori ale parametrului BP cuprinse n
intervalul 50200. Rezultatele experimentale se trec ntr-un tabel de felul urmtor:
Tabelul 3.1
Rezultate experimentale privind CS a regulatorului proporional

u0
Kp=
i
% mA

%
mA
u
% mA

Kp* efectiv=
*

Kp=
i
% mA

%
mA
Kp=

u
% mA

Kp* efectiv=

i
% mA

U
%

mA

Kp* efectiv=

Parametrul Kpefectiv se calculeaz.

Se reia experimentul pentru a se observa c la intrri egale i momente de timp


diferite regulatorul proporional genereaz comenzi egale.
4.3.3. Prelucrarea datelor experimentale
Pe baza rezultatelor experimentale obinute se traseaz pe hrtie milimetric
familia de caracteristici pentru cele trei valori ale parametrului BP. Se va determina
valoarea efectiv a parametrului BP.
4.4. Implementarea regulatoarelor PI si PID in mediul de programare SIMULINK
n biblioteca mediului de programare Simulink exist componenta Simulink
Extras, n cadrul creia se gsete instrumentul Additional Linear. Acesta conine, pe
lng alte blocuri, i blocurile corespunztoare regulatorului PID i regulatorului PID cu
aproximarea componentei derivatoare. Regulatorul PID este unul ideal, care este de
preferat a nu se folosi singur, ci conectat n serie cu un filtru trece-jos (cu funcia de
transfer de ordinul I). n cele mai multe cazuri poate fi utilizat regulatorul PID cu
aproximarea componentei derivative. Parametrizarea regulatorului PID se face n
fereastra de dialog corespunztoare acestuia, P fiind factorul de proporionalitate K p, I
reprezentnd Kp/Ti (Ti este timpul de integrare), iar D fiind asociat factorului K p*Td (Td
este timpul de derivare). N este utilizat pentru 1/T f, unde Tf este constant de timp a
filtrului).
Pentru o mai bun configurare este de preferat implementarea propriului
regulator, utiliznd blocurile din Linear Library.

26

4.5. ntrebri i exerciii


1.
2.
3.
4.
5.

Ce este un regulator?
n ce const diferena ntre un regulator analogic i unul numeric?
Ce reprezint mrimea u0?
S se scrie algoritmii de reglare pentru regulatoarele R-P, R-PI i R-PD.
Determinai pe cale grafic rspunsul unui algoritm
PI
pentru situaia din figura 4.2.
i,r
e = -i+r
6. Putei spune dac regulatoarele numerice sunt
i
superioare
celor analogice, i dac da, de ce?
7. Numii cei trei parametri de acordare ai unui regulator
r
PID.
8. Ce nseamn modul automat al regulatorului
Fig. 4.2
SHIMADEN? Dar modul manual?
9.

Cum se execut comutarea A/M la un regulator analogic? Dar la un regulator


numeric?

10. S se implementeze n mediul Simulink un regulator PI i un regulator


PID,utiliznd blocurile din Linear Library.

27

ANEXA 4.1
OPERAREA REGULATORULUI SHIMADEN
Regulatorul SHIMADEN are opt moduri de funcionare (0, 1, 2,,7), fiecare
mod avnd mai multe submoduri. Trecerea de la un mod la altul se face cu ajutorul
tastei MODE, iar n cadrul unui mod, trecerea de la un submod la altul cu ajutorul tastei
PARA. Pentru modificarea valorii i/sau tipului unui anumit parametru se vor utiliza
tastele: <(REMOTE),V(MAN), (AT). Validarea oricrei modificri se face apsnd
tasta ENT. Revenirea din orice mod sau submod la ecranul de baz se face apsnd de
dou ori tasta RET( a doua apsare trebuie efectuat la cel mult dou secunde fa de
prima). Eventualele erori sunt aduse la cunotina utilizatorului prin mesaje
corespunztoare.
n continuare sunt prezentate principalele probleme aferente operrii
regulatorului.
Comutarea A/M Din ecranul de baz (mod 0-0), apsnd tasta PARA, se
ajunge n ecranul out (submodul 0-1). n acest ecran, apsnd tastele RET(SHIFT) +
V(MAN) simultan, se aprinde lampa MAN ceea ce indic cuplarea modului de
comand manual. Setarea valorii ieirii (comenzii) se face folosind tastele <, i V i
se valideaz cu tasta ENT. Domeniul de ajustare al comenzii: -10.0% +110.0%.
Pentru introducerea n modul automat, se utilizeaz aceleai dou taste, n
acelai ecran out. Dup ntoarecerea n modul automat, lampa MAN se va stinge.
Pentru observarea simultan a valorii din proces PV i a valorii comenzii se
specific modul 0-2 (care are pe afiajul PV (de sus) valoarea din proces, iar pe afiajul
SV (de jos) valoarea ieirii (comenzii)).
Setarea tipului de algoritm i modificarea parametrilor de acordare. Att
pentru setarea tipului de algoritm (P, I, PI, PD, PID), ct i pentru setarea
corespunztoare a parametrilor de acordare este necesar parcurgerea submodurilor 0.9
(pentru BP), 0.10 (pentru Ti) i 0.11 (pentru Td). Acionnd tastele: <,V i se poate
seta o anumit valoare a parametrului de acordare respectiv. n cazul depirii limitelor
domeniului valid pentru componenta respectiv, n zona de afiare va apare mesajul
off. Pentru validarea modificrilor se va apsa tasta ENT.
Modificarea referinei (SV). n condiiile ecranului de baz (modul 0.0), n
modul automat, prin apsarea tastei < se va aprinde cea mai din dreapta cifr a ecranului
SV, care va ncepe s clipeasc, aceasta nsemnnd c poate fi modificat. Cnd se
apas din nou tasta <, va ncepe s clipeasc a doua cifr din drepta. Pentru modificarea
valorii respective se vor utiliza tastele i V, iar pentru validare tasta ENT.

28

ANEXA 4.2
PANOUL FRONTAL AL REGULATORULUI SHIMADEN
PV

SV

OUT

OUT

HB
EV3

EV2

AT

PRG COM REM MAN DISP

SHIFT
RET

DISP

LOCK

EXEC

MODE PARA

ENT

REM

MAN

AT

<

SHIMADEN

Afisare
numerica

Lampi de
semnalizare

Tastatura

SR 54

Panoul de operare al acestui tip de regulator conine trei zone i anume:


zona de afiare;
zona de semnalizare;
zona de operare.
Zona de afiare permite informarea utilizatorului n legtur cu valoarea
variabilelor asociate reglrii, valoarea unor parametrii ai regulatorului, modurile i
submodurile de lucru. n ecranul de baz (modul 0.0) sunt afiate n procente reacia
(PV - Process Value) i referina (SV - Set Value).
Zona de semnalizare realizeaz avertizarea optic n legtur cu starea
variabilelor procesului reglat i cu configuraia i modul de funcionare ale
regulatorului.
Zona de operare permite, prin intermediul a 7 taste cu dubl funcie,
introducerea de date i modificarea (setarea) configuraiei regulatorului.

29

ANEXA 4.3
DIAGRAME DE OPERARE ALE REGULATORULUI SHIMADEN

mod 0

mod 1

mod 2

mod 7

1 2 3. 4
1 2 3. 4

nd- 1
Pro G

nd-2
t nE

nd-7
o Pt

0.1
out
5 0. 0
0.2
1 2 3. 4
0. 0
0.3
LS
0. 0
0.4
rS
0. 0
0.5
S -b
1. 0
0.6
E -I
1 0. 0
0.7
E -2
1 0. 0
0.8
E -3
End
0.9
P
3. 0
0.10
I
120

1.8
ProG
on

7.10

2.4
t-nd

PrtC
oFF

0.11
d
0
0.13

0.12
nr

SF
0. 0

0 4. 0

30

nonL

LUCRAREA 5
ELEMENTE DE EXECUIE

5.1. Obiectivele lucrrii


n aceast lucrare de laborator se urmrete rezolvarea urmtoarelor obiective:
cunoaterea principial a construciei i a funcionrii unui robinet de reglare
(RR);
analiza teoretic i experimental a regimului staionar al RR;
nsuirea deprinderilor de calcul pentru dimensionarea hidraulic i alegerea
unui RR.
5.2. Prezentarea funcional a RR
Robinetul de reglare este element de execuie n cadrul unor sisteme de reglare
automat (cu aciune dup abatere sau dup perturbaie), care permite modificarea
debitului de fluid care circul prin el, ca urmare a variaiei comandate a seciunii de
trecere a sistemului de strangulare.
Mrimea de intrare a RR este un semnal pneumatic unificat (p c = 0,2 ... 1 bar)
sau un semnal electric unificat (ic = 2 ...10 mA sau ic = 4 ... 20 mA), iar mrimea de
ieire este debitul de fluid.
Robinetul de reglare se compune din dou subansamble: servomotorul S i
organul de reglare OR. n figura 5.1 este prezentat schema pricipial a unui RR cu
acionare pneumatic.
La variaia ntr-un sens a presiunii de comand p c, se modific cursa tijei h pn
cnd membrana elastic este n echilibru de fore (fora elastic a resortului este egal cu
fora exercitat de aerul comprimat) i n consecin se modific aria seciunii de trecere
obturator scaun i n final se modific debitul de fluid.
Legend:
S servomotor
pneumatic;
OR organ de reglare;
1 resort;
2 membran rigidizat;
3 tij;
4 sistem de etanare;
5 obturator;
6 scaun;
7 corp robinet.

Fig. 5.1. Schema principial a unui robinet de reglare normal nchis.

31

Organul de reglare poate fi acionat cu servomotor pneumatic, hidraulic sau


electric.
Servomotorul pneumatic cu membran se utilizeaz la curse relativ mici (10...80
mm), iar cel cu piston la curse mari (50...500 mm). Acestea se caracterizeaz prin
simplitate constructiv i funcional, robustee i siguran n exploatare, funcionare
fr interdicii n medii explozive.
5.3. Caracteristicile statice ale RR
Caracteristica static a unui sistem reprezint dependena n regim staionar
dintre mrimea de ieire i mrimile de intrare.
Unui RR i se asociaz urmtoarele caracteristici statice:
caracteristica static a servomotorului S, h = f(u), n care u = pc sau u = ic;
caracteristica static intrinsec a organului de reglare OR, Kv = f(h);
caracteristici statice de lucru ale OR, Q = f(h).
Caracteristica statica intrinsec a OR
Aceasta este o caracteristic hidraulic proprie a OR, care depinde numai de aria
i forma seciunii de trecere a OR.
Dac se trateaz OR ca o rezisten hidraulic, debitul de fluid care trece prin
acesta n regim de curgere turbulent, este
Q Ar

2 p r

[m3/s]

(5.1)

n care:
p r - cderea de presiune pe OR;

- densitatea fluidului;

Ar - aria seciunii de trecere a OR;


- coeficient de debit;
- coeficient de expansiune (detent).
Pentru simplificarea relaiei (5.1) se introduce noiunea de debit specific, ca fiind
egal cu debitul de ap cu densitatea 1Kg / dm 3 care la trecerea prin OR produce o
cdere de presiune remanent pr=1 bar. Expresia acestuia pentru condiiile etalon
precizate, este
K v Ar

2p r

(5.2)

Dependena Kv=f(h) reprezint caracteristica intrinsec a OR. n tehnica reglrii


s-au impus, prin profilarea corespunztoare a ventilului, urmtoarele caracteristici
intrinseci: logaritmic, liniar i cu deschidere rapid (figura 5.2). Reprezentarea grafic
este K v / K vs f (h / h100 ) , obinute prin raportarea valorilor curente la valorile lor
32

maxime corespunztoare strii complet deschis a OR. Debitul specific de scpri K v0,
pentru poziia nchis a OR, arat c RR nu asigur o etanare perfect.

Fig.5.2. Tipuri de caracteristici intrinseci: 1- logaritmic; 2 liniar; 3


cu deschidere rapid.

Caracteristici statice de lucru ale OR


Dependena Q f (h) n regim staionar, reprezint caracteristica static de lucru
a OR. Aceasta depinde att de timpul i mrimea OR, ct i de sistemul hidraulic n care
este montat acesta.

Fig.5.3. Caracteristici de lucru ale RR : a RR cu caracteristic intrinsec


liniar; b RR cu caracteristic intrinsec logaritmic

n figura 5.3 se prezint caracteristicile statice de lucru ale celor dou tipuri de
p r100
RR pentru diverse valori ale parametrului
. Se observ c pentru
p s 0

33

1(p s 0 p r100 ) , caracteristica static de lucru se confund cu caracteristica static

intrinsec.
5.4. Partea experimental
Determinrile experimentale vor fi efectuate cu ajutorul standului prezentat
principial n figura 5.4. Acest stand permite msurarea urmtoarelor mrimi:
valoarea comenzii u, n %;
cursa H a tijei robinetului de reglare;
debitul Q al apei vehiculate;
presiunea P0 la refularea pompei;
presiunea P1 din amontele robinetului de reglare;
presiunea P2 din avalul robinetului de reglare.
Cursa H poate fi msurat direct (n mm) sau indirect prin intermediul
sistemului de msurat deplasarea format din traductorul de deplasare XT i indicatorul
de deplasare XI.

Fig. 5.4. Schema principal a standului pentru determinarea caracteristicilor RR:


SP sursa de presiune (pomp centrifugal); PI manometru; FT trductor de debit;
FR nregistrator de debit; HC element de comand manual; XT traductor de deplasare; XI
indicator de deplasare.

Datele msurate vor fi trecute n tabelul 5.1.

Tabelul 5.1.
Date experimentale i calculate

34

Mrimi primare

Mrimi calculate

Nr.
crt.

u
[%]

Hd
[mm]

1
2
3

96
86
76

30
29
28

Hi

30
i x [mm
i30

Q
[%]

P0
[bar]

P1
[bar]

P2
[bar]

Pr

93
92
91

3
3
3,05

1,9
1,95
2

1,5
1,45
1,4

0,4
0,5
0,6

[bar]

Q
[m3/h]

Kv
[m3/h]

10,23
10,12
10,01

16,17
14,31
12,92

H
Kv Q
H100 K v100 Q100

]
1
0,96
0,93

1
0,88
0,79

1
0,98
0,97

Modul de lucru
Vor fi efectuate urmtoarele operaii:
1. Se va realiza traseul hidraulic pe stand astfel nct s se obin circuitul din
figura 5.4;
2. Cu ajutorul elementului de comand manual HC se va deschide complet
robinetul de reglare (H = H100);
3. Se nchide complet robinetul R1, se pornete pompa prin acionarea
butonului P (pornire) de pe panoul asociat SRA-D, apoi se deschide complet
R1;
4. Se aduce robinetul R2 ntr-o poziie convenabil (se recomand poziii pentru
R2 care, pentru H = H100 s conduc la P2 = 12 bar);
5. Avnd RR cu H = H100 (la sfritul punctului 4), se face prima serie de citiri
pentru tabelul anterior: u, H, Q, P0, P1,P2;
6. Se repet msurtorile de la puctul 5 pentru diferitele valori ale comenzii u,
respectiv cursei H. n total se vor efectua 710 msurtori, relativ uniform
distribuite n domeniul 0H100 al cursei (distribuite att pe sensul de
nchidere ct i pe cel de deschidere).
Msurtorile se vor efectua numai n regim staionar.
Prelucrarea datelor
Relaii de calcul:
Pr P1 P2 [bar];

Q[%]
Q
QSM 100
100

[m /h];

Kv

Q
Pr

Q
Pr ,

unde QSM100 este valoarea maxim a domeniului sistemului de msurat debitul


(QSM100=11 m3/h).
n continuare se va ilustra modul de calcul folosind exemplele de msurtori din
tabelul 5.1.
Exempul 1
Pr P1 P2 1,9 1,5 0,4 bar;

35

Q[%]
93
QSM 100
11 10,23 m3/h;
100
100
Q
10,23
Kv

16,17 m3/h;
Pr
0,4

Kv
H
30
16,17

1;

1;
H 100
30
K v100 16,17

Q
10,23

1.
Q100 10,23

Exempul 2
Pr P1 P2 1,95 1,45 0,5 bar;
Q[%]
92
Q
QSM 100
11 10,12 m3/h;
100
100
Kv

Q
Pr

10,12
0,5

14,31 m3/h;

Kv
H
29
14,31

0,96 ;

0,88;
H 100
30
K v100 16,17

Q
10,12

0,98 .
Q100 10,23

Exempul 3
Pr P1 P2 2 1,4 0,6 bar;
Q[%]
91
Q
QSM 100
11 10,01 m3/h;
100
100
Kv

Q
Pr

10,01
0,6

12,92 m3/h;

Kv
H
28
12,92

0,93 ;

0,79;
H100 30
K v100 16,17

Q
10,01

0,97 .
Q100 10,23

Cu rezultatele obinute vor fi construite:


H
Kv
;
f
K v100
H 100
H
Q
;
f
caracteristica static de lucru
Q100
H 100

caracteristica static intrinsec

( CSI i CSL vor fi construite pe acelai grafic).


n continuare se determin valoarea parametrului pentru CSL:

Pr100
Ps

unde :

(5.6)

Pr100 este Pr pentru deschiderea maxim a RR (prima linie din tabelul

5.1);

Ps P00 Pv gH ,

36

P00 valoarea lui P0 pentru Q = 0.

Pentru CLS, n cazul sistemelor hidraulice fr ramificaie este cunoscut relaia


Q

Q100

n care k v

1
1

1
2
kv

(5.7)

Kv
.
K v100
Q

k v CLS se confund cu
Se observ c n cazul n care 1 rezult
Q100

CSI.
5.5. ntrebri. Exerciii. Probleme
1. Utiliznd relaia (5.6) se vor determina valorile debitului de scpri relativ
Q
Q100

i absolut pentru cele trei caracteristici, respectiv pentru cele trei

valori ale lui .


2. Ce semnificaie are Kv i n ce uniti de msur se exprim acesta?
3. Ce se nelege prin CSI? Cte tipuri principale de CSI cunoatei?
4. Care este diferena dintre CSI i CSL?

37

LUCRAREA 6
38

SISTEME DE REGLARE AUTOMAT

6.1. Obiectivele lucrrii


n cadrul acestei lucrri de laborator, creia i sunt rezervate dou ore, se
urmrete atingerea de ctre studeni a urmtoarelor obiective:
nelegerea reglrii dup abatere;
studiul experimental al unui sistem de reglare automat dup abatere;
nelegerea reglrii dup perturbaie.
6.2. Prezentarea coninutului lucrrii
Pe parcursul lucrrii de fa se va studia un sistem de reglare automat dup
abatere a nivelului (SRA-N) i un simulator pentru un sistem de reglare automat dup
perturbaie.
Orice sistem de reglare automat (SRA) este constituit din dou pari principale:

yi

p
C

EE

m
r
T
DA
Fig. 6.1. Schema bloc a unui SRA: P- proces; DA - dispozitiv de automatizare; T - traductor; T*- traductor de
intrare; EE - element de executie; y - marime reglata; p - perturbatii; m - marime de executie; r - reactie; i referinta in semnal; yi - referinta in unitati ale marimii reglate; u - comanda.

procesul automatizat P i dispozitivul de automatizare DA. SRA care acionez n


baza legii reglrii dup abatere elaborez comanda pe baza prelucrrii diferenei
(abaterii) care apare ntre starea curent i o stare de referin. Dup cum se observ din
fig. 6.1. n structura DA intr traductorul, regulatorul i elementul de execuie, care
ndeplinesc cele trei funcii de baz ale oricrui SRA i anume: informarea, elaborarea
comenzii i execuia comenzii.
n cadrul lucrrii de fa va fi utilizat un stand experimental pentru SRA-N,
stand care este prezentat n figura 6.2.

39

Qe

Qi
V

Qe

R1
r

LT

LC

LI

RR

Qe

SP

Fig. 6.2. Schema principial a SRA-N existent n laborator:


V1 ,V2 - vase cu lichid (suprapuse); R1R4 - robinete de izolare; LI - indicator de nivel
(sticla de nivel).

n continuare vor fi discutate toate elementele ce compun SRA-N, n baza


cunotinelor acumulate la lucrrile de laborator anterioare, precum i a noiunilor
cunoscute la curs.
Robinetul de reglare (RR) este de tip normal nchis (NI) i are rolul de a mri
sau micora debitul Qe n funcie de modificrile comenzii u, primit de la LC.
Observaie. RR normal nchis nseamn c robinetul de reglare este nchis atunci
cnd comanda este minim.
Regulatorul de nivel (LC) este de tip PID. Scriei algoritmul PID care st la
baza funcionrii acestui tip de regulator (a se vedea lucrarea 4). Care este rolul LC n
cadrul SRA dup abatere?
Traductorul de nivel (LT) este un traductor de tip presiune diferenial. Spunei
care este rolul LT (a se vedea lucrarea 3)!
S se descrie sintetic funcionarea SRA-N pentru cazul n care Hi=ct. i Qi
crete cu 2 m3/h.
Reglarea dup perturbaie va fi discutat cu ajutorul sistemului din fig. 6.3.
u
RR

L
C

Qi

r
H
2

F
T

Qe2
SP2

SP1

Qe1

Fig.6.3. Exemplu de sistem de reglare dup perturbaie: V vas cilindric; FT


traductor de debit; LC regulator de nivel; RR robinet de reglare; SP1, SP2 surse de presiune
(pompe).

40

Alimentarea vasului are debitul Qi. Lichidul din vas este extras prin dou
conducte, cu debitele Qel, respectiv Qe2. Prin conductele 1 i 2 curgerea este forat, sub
presiunea creat de pompele SP1 i SP2.
Punerea problemei de reglare:
obiectivul sistemului const din meninerea constant a nivelului H, la o
anumit valoare, notat n continuare cu Hi;
debitele Qel i Qe2 au, din punctul de vedere al vasului, variaii aleatoare n
timp (acestea sunt perturbaii);
debitul Qi poate fi utilizat drept comand, ceea ce nseamn c acesta va fi
modificat astfel nct s se menin nivelul H la valoarea Hi (H Hi).
Sistemul de reglare din fig. 6.3 va fi investigat, n cadrul lucrrii de laborator, cu
ajutorul unui simulator.
6.3. Partea experimental
n laborator, standul experimental care permite studiul SRA-N este reprezentat
n fig. 6.2. n continuare vor fi parcurse urmtoarele etape:
1. Recunoaterea fizic a elementelor ce compun SRA-N;
2. Cu ajutorul tehnicianului sau a cadrului didactic va fi pus SRA-N n
funciune;
3. Cu SRA-N funcionnd n modul automat, se va urmri i consemna n
referat modul n care funcioneaz SRA-N la modificri ale valorii prescrise
Hi i a debitului de intrare n vas, Qi. Pentru aceasta vor fi parcurse etapele:
a. se aduce prescrierea regulatorului la 50% (H i=50%) i se ateapt pn
cnd SRA-N ajunge n regim staionar (mrimea reglat H a ajuns egal
cu prescris Hi);
b. se modific Hi cu 10% astfel nct Hi=60% i se urmrete modul n care
se modific mrimea reglat H;
c. se aduce, din nou, prescrierea regulatorului la 50% (H i=50%) i se
ateapt pn cnd SRA-N ajunge n regim staionar;
d. se modific debitul Qi acionnd robinetul R1 (se deschide sau se nchide
cu o tur) i se urmrete modul n care se modific mrimea reglat H.
7. Se vor face determinri ale formei i duratei regimului trazitoriu (dinamic)
pentru anumite variaii date prescrierii Hi i perturbaiei Qi.

41

n acest scop se vor ntocmi grafice de forma celor din figura 6.4, unde se va
pune n eviden aspectul calitativ al rspunsului SRA i durata regimului tranzitoriu.
Hi

Qi

40%

60%

50%

30%

t
H

t
Hi-H

Hi-H

t
Fig. 6.4. Grafice pentru analiza calitativ a rspunsului n timp pentru SRA-N.

Pentru SRA dupa perturbatie se va utiliza simulatorul existent in directorul


Simulatoare. Dup activarea simulatorului, fiecare student va analiza cu atenie ceea
ce ofer acesta cu ajutorul butoanelor, graficelor i altor elemente afiate pe ecran.
Se vor urmri:
reglarea automat a nivelului;
pertubarea sistemului prin debitele Qe1 sau Qe2 (precizare: debitul Qe2 va fi
modificat sub forme de treapt, pozitiv sau negativ, pe durate de timp
limitate);
reglarea manual a nivelului (dac aceast posibilitate este implementat n
simulator).
Se recomand studenilor s analizeze verosimilitatea fizic a evoluiei n timp a
mrimilor aferente SRA-N, afiate pe ecranul monitorului.
6.4. Intrebri i exerciii
1. Care este dezavantajul SRA-N dup abatere? Exemplificai pe graficele
experimentale obinute.
2. Care este avantajul SRA dup abatere?
3. Care sunt domeniile mrimilor de intrare i de ieire pentru: LT, LC,
EE(RR)?
4. Fie procesul de acumulare a unui gaz ntr-un vas, ilustrat n figura 6.5.

42

Qe

Qi

Qe(t) - aleator
Qi - comanda

Fig. 6.5. Procesul de acumulare a unui gaz ntr-un vas.

S se deseneze structura unui SRA-P dup perturbaie i apoi a unui SRA-P dup
abatere.
8. Pentru incinta din fig. 6.6 se cere construirea structurii unui SRA-T dup
perturbaie, perturbaia considerat fiind temperatura mediului exterior Tm.
T

Tm

Agent termic
Fig. 6.6. Reglarea temperaturii ntr-o incint.

43

44

LUCRAREA 7
GESTIUNEA TIMPULUI I GRAFICA N LIMBAJUL C
7.1. Obiectivele lucrrii
nsuirea modului de utilizare a funciilor de control C, funciilor de control
al timpului i funciilor video C in regim alfanumeric si in regim grafic;
Elaborarea funciei pentru trasarea si gradarea unui sistem de axe;
Elaborarea funciei pentru vizualizarea informaiei in bargraf.
7.2. Prezentarea coninutului lucrrii
Mediul de programare C este unul dintre cele mai populare limbaje de
programare. n cadrul acestei lucrri ne propunem s ne familiarizm cu acest mediu de
programare, cu funciile de baz utilizate, funciile de control, funciile de gestionare a
timpului i funciile grafice ale limbajului.
A.Funcii de intrare-ieire n limbajul C
Structura general a unui program C:

45

Etape n dezvoltarea unui program simplu n C:

Directiva preprocesor #include


Sintaxa: #include <nume_fis>
Efect: Include la compilare fiierul cu numele nume_fis (ca i cum s-ar "copia"
textul acestuia n programul ce conine directiva #include). n general fiierele ce sunt
incluse conin o serie de definiii i declaraii absolut obligatorii, ca de exemplu:
stdio.h - funcii standard de I/O

conio.h - extensie a funciilor de I/O la consol

stdlib.h - funcii standard ale bibliotecilor C;

graphics.h - funcii de lucru n regim grafic;

math.h - functii matematice

Tipuri de variabile des utilizate


a) variabile de tip caracter (char)
b) variabile de tip ntreg (int)
-short
-long
-unsigned
c) variabile de tip real
-float: simpl precizie
-double: dubl precizie
Functia printf()
Efect: afieaz un ir formatat pe ecran, n mod text.
Sintaxa: printf(<sir_formatat>,var1,var2,...);
<sir_formatat> este un ir de caractere ncadrat ntre ghilimele, care conine
textul ce va fi afiat pe ecran i specificatorii de format pentru afiarea variabilelor
46

var1,var2,... Fiecreia din variabilele var1,var2,... trebuie sa i corespund un


specificator de format:

%u - ntreg fr semn

%d ntreg

%ld - ntreg lung

%p pointer

%f real

%e - real n format exponenial

%c caracter

%s - ir de caractere

%x - ntreg n format hexazecimal

Caractere "escape" coninute n sir formatat


\n - linie nou
\t - TAB
\a - BELL
\b - BACKSPACE
\\ - \
Funcia scanf()
Efect: citete de la tastatur valorile variabilelor coninute n list.
Sintaxa: scanf(<ir_formatat>, &var1, &var2,...);
<sir_formatat> conine cte un specificator de format pentru fiecare din
variabilele var1,var2,... Caracterul & indic faptul c argumentele funciei scanf nu sunt
variabilele, ci adresele lor.
Functia gets()
Efect: citete de la tastatur un ir de caractere
Sintaxa: gets(ir_de_caractere);
ir_de_caractere este numele unei variabile vector de tip char. Folosirea lui
gets() este preferabil n locul lui scanf() (spre deosebire de scanf() utilizat pentru a citi
iruri de caractere, gets() recunoate i spaiile, pe care le stocheaza n ir_de_
caractere).
Functia clrscr()
Efect: are ca efect tergerea ecranului
Sintaxa: clrscr();
Functia gotoxy()
47

Efect: poziioneaz cursorul-text n linia i coloana specificate


Sintaxa: gotoxy(nr_coloan, nr_linie);
unde:

nr_coloana= 0 ... 79
nr_linie= 0 ... 24

Functia cprintf()
Efect: Aceast funcie este similar lui printf(), ns afiarea se face ncepnd din
poziia curent a cursorului-text.
B. Funcii de control n limbajul C
Instruciunea condiionat if ... else (selecia simpl)
Sintaxa:
if (expresie_c)
{
instruciune 1;
instruciune 2;
}
else
{
instruciune 1';
instruciune 2';
}
Efect: n funcie de valoarea de adevr a expresiei expresie_c se executa unul
din seturile de instruciuni instruciune 1, instruciune 2, sau instruciune 1', instruciune
2' ... . Daca expresie_c este adevrat se execut setul aferent lui if; dac expresie_c este
fals se execut setul aferent lui else.
Instruciunea condiionat switch ... case (selecia multipl)
Sintaxa:
switch(variabil)
{
case constant_1:
instruciuni1;
break;
case constant_2:
instruciuni2;
break;
.
48

.
.
default:
instruciuni
}
Efect: Este testat valoarea variabilei variabil i atunci cnd ea egaleaz
valoarea unei constante a unui case se vor executa instruciunile aferente acelui case;
daca variabil nu egaleaz nici o constant a unui case, se execut instruciunile aferente
lui default (in cazul n care exista un bloc default, prezenta sa nefiind obligatorie).
Variabila de test i constantele nu pot fi dect de tip int sau char.
Prezena lui break la un grup case este necesar atunci cnd se dorete numai
execuia instruciunilor aferente acelui case. Dac break lipsete i variabil a egalat o
constant, se vor executa nu numai instruciunile aferente acelui case, ci toate
instruciunile celorlalte case-uri care l succed (inclusiv default).
Ciclul for
Sintaxa:
for(iniializare; test_condiie; increment)
{
instruciuni;
}
Efect: se execut ciclic o secven de instruciuni, n funcie de o condiie dat.
Seciunea iniializare este folosit pentru a da o valoare iniial variabilei care
controleaz ciclul, fiind executat o singur dat, nainte ca ciclul s nceap.
Seciunea test_condiie testeaz variabila de control cu valoarea scop ori de cte
ori ciclul se repet. Daca testul are valoarea de adevr fals, atunci execuia ciclului este
ntrerupt. Acest test este fcut la nceputul fiecrui ciclu, la fiecare repetiie.
Seciunea increment realizeaz modificarea variabilei de control a ciclului cu o
anumita cantitate; ea este executat la sfritul fiecrui ciclu.
Oricare din cele trei seciuni poate lipsi; de asemenea, testul de condiie se poate
referi la orice alt variabil (nu numai la variabila de control a ciclului).
Ciclul while
Sintaxa:
while(expresie_c)
{
instruciuni;
}
Efect: se execut ciclic secvena de instruciuni aferent, att timp ct expresia
condiional expresie_c este adevrat. Testul condiional este efectuat la nceputul
fiecrui ciclu, n consecin, daca expresie_c este fals de la nceput ciclul nu se va
executa.
49

Ciclul do
Sintaxa:
do
{
instruciuni;
}
while(expresie_c);
Efect: se executa ciclic secvena de instruciuni aferent att timp ct expresia
condiional expresie_c este adevrat. Testul condiional este efectuat la sfritul
fiecrui ciclu, n consecin, ciclul va fi executat cel puin o dat.
Instruciunile break i continue
Au rolul de a controla forat execuia ciclurilor for, while i do. Instruciunea
break are ca efect ieirea forat din ciclu. Instruciunea continue foreaz ca
urmtoarea parcurgere a ciclului s aib loc trecnd peste instruciunile dintre ea i
ultima instruciune a ciclului inclusiv (acestea sunt "srite").
Funcia getch()
Sintaxa:ch=getch(); sau getch()
unde:
ch=variabil de tip char
Efect: Ateapt apsarea unei taste, dup care ntoarce codul acesteia variabilei
ch. Dac apelul lui getch() se face fr atribuirea valorii ntoarse unei variabile, efectul
este de oprire a programului pn la apsarea unei taste. Tasta apsat nu apare pe ecran.
Funcia getche()
Efect: Este similar cu getch(), singura deosebire fiind aceea c tasta apsat
este afiat (are "ecou") pe ecran.
Funcia kbhit()
Efect: Detecteaz dac a fost apsat sau nu o tast. Dac a fost apsat o tast,
kbhit() ntoarce valoarea "adevrat", n caz contrar ntoarce valoarea "fals".
Funcia delay()
Sintaxa: delay(timp_ms)
Efect: Temporizeaz execuia programului cu timp_ms milisecunde.
Observaie:
50

Aflarea restului mpririi numrului ntreg a la numrul ntreg b:


rest=a%b;

C. Funcii de gestionare a timpului


Prototipurile funciilor de gestionare a timpului-sistem se gasesc n header-ele
dos.h i time.h.
Precizrile urmtoare se refer la funciile cu prototipul n header-ul dos.h.
n dos.h se gsesc prototipurile urmtoarelor funcii ce permit gestionarea
resursei timp:

void getdate(struct date *datep)


void gettime(struct time *timep)
void setdate(struct date *datep)
void settime(struct time *timep)
void sleep(unsigned seconds)
void delay(unsigned milliseconds)
n care *datep i *timep sunt pointeri la structurile struct date i struct time;
seconds, milliseconds sunt numere ntregi pozitive.
Structurile aferente datei i orei sunt de forma:
struct date
{
int da_year;
char da_day:
char da_ mon;
};

/* pentru an */
/* pentru zi */
/* pentru lun */

respectiv:
struct time
{
unsigned char ti_min; /* pentru minute */
unsigned char ti_hour; /* pentru ore */
unsigned char ti_hund; /* pentru sec/100 */
unsigned char ti-sec;
/* pentru secunde */
};
Funciile getdate i gettime preiau data i ora curente iar funciile setdate i
settime permit iniializarea datei i orei.
Funciile delay i sleep permit ntrzierea execuiei programului cu numrul
specificat de milisecunde, respectiv secunde.
Modurile de utilizare a funciilor getdate, gettime i delay sunt evideniate n
programele P1 i P2 ale cror texte surs se prezint n continuare.
51

/*
Program P1 afisare data si ceas cu getdate() si gettime()
*/
#include <dos.h>
#include <stdlib.h>
struct date d; /* structura date */
struct time t; /* structura time */
int i,j;
char c;
void main(void)
{
clrscr();
gotoxy(30,5);
cprintf("E - iesire din program");
/* bucla infinita */
for(;;)
{
getdate(&d); /* se preia data */
gettime(&t); /* se preia ora */
i=t.ti_sec;
/* secunda curenta */
if(j!=i)
/* sezizare schimbare secunda */
{
gotoxy(58,3); /* tiparire in linia 3 coloana 58 */
cprintf("%02d-%02d-%4d", d.da_day, d.da_mon, d.da_year);
cprintf(" %02d:%02d:%02d", t.ti_hour, t.ti_min, t.ti_sec);
j=i; /* secunda anterioara */
}
if(kbhit()) c=getch(); /* citesc tasta apasata */
if((c=='e') || (c=='E')) exit(1);
}
/* sfirsit for */
}

/* sfirsit main */

/*
Program P2 varianta a P1, care afiseaza si sutimile de secunda
*/
#include <dos.h>
52

#include<stdlib.h>
struct date d;
struct time t;
void main(void)
{
gotoxy(30,5);
cprintf("E - iesire din program");
clrscr();
/* bucla infinita */
for(;;){
delay(10);
/* asteapta 10 ms */
getdate(&d);
/* se preia data */
gettime(&t);
/* se preia ora */
gotoxy(55,3);
/* scrie in coloana 55, linia 3 */
cprintf("%02d-%02d-%4d", d.da_day, d.da_mon, d.da_year);
cprintf(" %02d:%02d:%02d:%02d", t.ti_hour, t.ti_min, t.ti_sec,t.ti_hund);

}
}

if(kbhit()) c=getch();
if((c=='e' )|| (c=='E')) exit(1);
/* sfirsit for */
/* sfirsit main */

/* test apasare tasta */

Programul P1 afieaz data i ora cu periodicitate de o secund, iar P2 cu o


periodicitate de 10 ms (afind n plus fa de P1 sutimile de secund).
Ieirea din cele dou programe se face prin apsarea tastei E (funcia kbhit()).
D. Funcii video ale limbajului C
Adaptorul video poate opera n dou moduri de baz:
modul text (alfanumeric), de regul implicit;
modul grafic.
Modul text
n modul text unitatea minim adresabil este caracterul reprezentat de o matrice
de puncte (pixeli).
Stabilirea modului text se poate face cu funcia
void textmode(int mod);
unde pentru situaia 80 coloane i 25 linii mod=3, iar numerotarea se face conform
fig.7.1.

53

Coloana 1
Linia 1

Coloana 80

y
Linia 25
Fig.7.1. Numerotarea liniilor i coloanelor n cadrul modului
alfanumeric

Prototipurile funciilor specifice modului text se gsesc n header-ul conio.h ,al


crui coninut este prezentat n continuare.

CONIO.H
_________
Functions
_________
cgets
cputs
getche
gotoxy
inport
lowvideo
outport
puttext
textcolor
wherey

clreol
cscanf
getpass
highvideo
inportb
movetext
outportb
_setcursortype
textmode
window

clrscr
delline
gettext
insline
inpw
normvideo
outpw
textattr
ungetch

cprintf
getch
gettextinfo
inp
kbhit
outp
putch
textbackground
wherex

Constants, data types, and global variables


____________________________________________
BLINK
COLORS
directvideo
_NORMALCURSOR
_SOLIDCURSOR
text_info
_wscroll

_NOCURSOR
text_modes

Definirea i tergerea unei ferestre


O fereastr este o zon dreptunghiular de pe ecran care poate fi gestionat n
mod independent i care se creeaz cu ajutorul funciei window cu prototipul:
void window(int stnga, int sus, int dreapta, int jos);
La un moment dat este activ fereastra definit la ultimul apel al funciei
window.
Fereastra activ se terge cu funcia clrscr cu prototip void clrscr(void);
OBSERVAIE: dup execuia funciei textmode fereastra implicit este
reprezentat de tot ecranul.

54

Gestiunea cursorului
Cursorul se poate plasa pe un caracter al ferestrei active utiliznd funcia gotoxy
cu prototipul
void gotoxy(int x,int y);
unde x i y reprezint numrul coloanei, respectiv al liniei n fereastra activ.
Poziia curent a cursorului in fereastra activ se poate afla cu funciile:
int wherex(void);
int wherey(void);
Setarea culorilor
n tabelul 7.1 se prezint codurile culorilor din paleta principal.
Tabelul 7.1
Codurile culorilor

Culoare
negru
albastru
verde
turcoaz
rou
purpuriu
maron
gri deschis
gri nchis
albastru deschis
verde deschis
turcoaz deschis
rou deschis
purpuriu deschis
galben
alb
clipire

Functie C
BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
BLINK

Cod
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
128

Pentru setarea culorilor se folosesc funciile:


pentru fond
void textbackground(int culoare);
pentru caractere void textcolor(int culoare);
pentru atribut
void textattr (int atribut);
unde: culoare este un ntreg n intervalul [0,7] pentru fond si [0,15] pentru text;
atribut =16 cul_fond | cul_text | clipire.
Gestiunea textelor
55

Pentru afiarea caracterelor color n conformitate cu atributele definite prin


relaia de mai sus se pot folosi funciile:
putch - afieaz un caracter;
cputs - afieaz un ir (analog cu puts);
cprintf - afieaz date sub controlul formatelor de conversie (analog cu
printf).
n continuare se prezint un program care utilizeaz o parte din funciile
enumerate.
/*
Program GRAF1.C functii video in mod text
*/
#include <dos.h>
#include <conio.h>
void sunet(int f1)
{
sound(f1),delay(100),sound(2*f1),delay(200),
sound(f1),delay(100),nosound();
}
void main(void)
{
clrscr();
textbackground(BLUE),clrscr();
window(24,7,60,17);
textbackground(BLACK),clrscr();
window(22,6,58,16);
textattr(RED*16|WHITE|BLINK),clrscr();
gotoxy(6,2),cprintf("SISTEME CU MICROPROCESOARE");
textattr(GREEN*16|YELLOW);
gotoxy(7,5),cprintf("ECHIPAMENTE DE CONDUCERE");
textattr(BLUE*16|RED);
gotoxy(14,8),cprintf(Pentru iesire);
gotoxy(10,9),cprintf(se apasa orice tasta !);
for(;;)
{
if(kbhit())

/* se iese daca se apasa o tasta */


exit(1);

sunet(550);

/* altfel tiuie potrivit functiei sunet() */

}
}

56

Modul grafic
Prototipurile funciilor specifice modului grafic se gsesc n header-ul
graphics.h, al crui coninut este prezentat n continuare.

____________
GRAPHICS.H
____________
Functions
_________
arc
circle
closegraph
ellipse
floodfill
getbkcolor
getdrivername
getgraphmode
getmaxcolor
getmaxy
getpalette
gettextsettings
gety
_graphfreemem
imagesize
installuserfont
lineto
outtext
putimage
registerbgidriver
registerfarbgifont
setactivepage
setbkcolor
setfillstyle
setlinestyle
settextjustify
setviewport
textheight

bar
cleardevice
detectgraph
fillellipse
getarccoords
getcolor
getfillpattern
getimage
getmaxmode
getmodename
getpalettesize
getviewsettings
graphdefaults
_graphgetmem
initgraph
line
moverel
outtextxy
putpixel
registerfarbgidriver
restorecrtmode
setallpalette
setcolor
setgraphbufsize
setpalette
settextstyle
setvisualpage
textwidth

Constants, data types, and global variables


___________________________________________
arccoordstype
CGA_COLORS
EGA_colors
fill_patterns
font_names
graphics_drivers
graphics_modes
HORIZ_DIR
line_widths
linesettingstype
line_widths
linesettingstype
palettetype
pointtype
text_just
text directions
USER_CHAR_SIZE
VERT_DIR

57

bar3d
clearviewport
drawpoly
fillpoly
getaspectratio
getdefaultpalette
getfillsettings
getlinesettings
getmaxx
getmoderange
getpixel
getx
grapherrormsg
graphresult
installuserdriver
linerel
moveto
pieslice
rectangle
registerbgifont
sector
setaspectratio
setfillpattern
setgraphmode
setrgbpalette
setusercharsize
setwritemode

COLORS
fillsettingstype
graphics_errors
line_styles
MAXCOLORS
MAXCOLORS
putimage_ops
textsettingstype
viewporttype

Setarea modului grafic rezult din urmtoarea secvena de program:


#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
int gdrv=VGA,gmod=VGAHI,errorcode;
void main(void)
{
initgraph(&gdrv,&gmod,"c:\\bc\\bgi");
errorcode=graphresult();

/* adaptor VGA, submod VGAHI


(640 x 480 pixeli, 16 culori) */
/* iniializare mod grafic */
/* errorcode conine starea cu
care s-a terminat funcia
initgraph si
trebuie sa fie
grOk pentru o situatie normala */

if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
exit(1);
/* returneaza codul erorii */
}
outtextxy(100,100,"I S S C");
getch();
closegraph();
/* nchide modul grafic */
}
n cazul utilizrii modului grafic sunt utile i urmtoarele funcii de setare:
void restorcrtmode(void);
void setgraphmode(void);
void closegraph(void);
int getgraphmode(void);
grafic.

- restabilete modul text;


- restabilete modul grafic;
- nchide sistemul grafic.
- ntoarce o valoare intre 0 si 5 funcie de driverul

n modul grafic ecranul este vzut ca o matrice de 640 480 puncte, conform
fig. 7.2.
(0,0)

(639,0)

(0,479)

(479,639)

58
Fig. 7.2. Numerotarea liniilor si coloanelor in cazul modului grafic.

Setarea culorii
Pentru setarea culorii se folosesc funciile:
void setbkcolor(int culoare); - seteaz culoarea fondului;
void setcolor(int culoare); - seteaz culoarea de desenare;
unde culoare are una din semnificaiile prezentate in tabelul 7.1.
Desenarea n fereastra activ
n tabelul 7.2 sunt prezentate prototipurile funciilor de desenare, iar n
tabelele 7.3 i 7.4 codificrile pentru stilurile, respectiv pentru grosimile de linie.

Tabelul 7.2
Funcii de desenare n cadrul modului grafic
Prototip

Funcie

void moveto(int x,int y)

fixeaz poziia curent n (x,y)

void putpixel(int x,int y,int culoare);

nscrie pixelul (x,y) cu culoare

void lineto (int x,int y);

linie din poziia curent pn la (x,y)

void line(int x1,int y1,int x2,int y2);

linie din (x1,y1) n (x2,y2)

void circle(int x,int y,int r);

cerc cu centrul n (x,y) si raza r

void rectangle(int stinga,int sus,


int dreapta,int jos)

dreptunghi cu colurile menionate

void setlinestyle(int stil_linie,int _model,int


grosime);

fixeaz tipul liniei conform tabelelor


de mai jos

Tabelul 7.3
Codificarea stilurilor de linie
Nume

Cod

Descriere

SOLID_LINE

linie continu

DOTTED_LINE

linie punctat

CENTER_LINE

linie ntrerupt ( )

DASHED_LINE

linie intrerupt ( )

USERBIT_LINE

stil definit de utilizator

59

Tabelul 7.4
Codificarea grosimilor de linie
Nume

Cod

Descriere

NORM_WIDTH

1 pixel latime

THICK_WIDTH

3 pixel latime

n tabelul 7.2 parametrul model are valoarea nenul pentru tipul USERBIT.
Colorarea i haurarea figurilor
Colorarea figurilor nchise, rezultate prin utilizarea funciilor din tabelul 7.2, se
poate realiza cu funcia
void floodfill(int x, int y, int culoare_contur);
unde: x, y - coordonatele unui punct care aparine interiorului figurii;
culoare_contur - culoarea conturului figurii.
Specificarea modelului i a culorii de hasurare se fac cu funcia:
void setfillstyle(int model, int color);
unde: color - culoarea conform tabelului 7.1;
model - modelul conform tabelului 7.5.
Ferestre grafice
n modul grafic ferestrele sunt cunoscute sub denumirea de viewport, pentru
care n cele ce urmeaz se prezint funciile uzuale de lucru.
Funcia
setviewport(int stnga, int sus, int dreapta, int jos, int clip);
creeaz o fereastra cu coordonatele indicate.
Variabila de tip ntreg clip reglementeaz amplasarea n viewport a unor desene
sau texte. Daca clip=0 figura (textul) poate depai limitele ferestrei, n caz contrar nu.
La referire, colul stnga-sus are coordonatele (0,0), iar clip se definete la nceputul
programului.
Funcia
clearviewport();
realizeaz tergerea ferestrei curente.
Daca fereastra curent este reprezentat de tot ecranul, atunci pentru tergerea
acestuia se utilizeaza funcia:
cleardevice();

60

Afiarea textului n mod grafic


Reprezentarea caracterelor unui text n modul grafic se poate face prin:
descrierea imaginii fiecrui caracter prin cte o matrice de 8x8 pixeli (8x8
bit-mapped font);
descrierea printr-un set de vectori (stroked font).
Funcia
void settextjustify(int orizontal, int vertical);
permite alinierea textului referitor la poziia curent (PC) conform precizrilor
din tabelul 7.6. n mod implicit, alinierea orizontal este la stnga (LEFT_TEXT) iar cea
vertical este la baz (BOTTOM_TEXT).
.

Tabelul 7.5
Codificarea modelelor de haurare
Nume

Cod

Descriere

EMPTY_FILL

umple cu culoarea de fond

SOLID_FILL

umple uniform toi pixelii

LINE_FILL

haur orizontal

LTSLASH_FILL

haur ///

SLASH_FILL

haur /// linii groase

BKSLASH_FILL

haur \\\ linii groase

LTBKSLASH_FILL

haur \\\

HATCH_FILL

haur n cruce +++

XHATCH_FILL

haur n cruce oblic

INTERLEAVE_FILL

haur cu ntreesere

WIDE_DOT_FILL

10

umple cu puncte rare

CLOSE_DOT_FILL

11

umple cu puncte dese

USER_FILL

12

model utilizator

Tabelul 7.6
Alinierea textului in modul grafic
Descriere

Nume

Valoare

Aciune

Orizontal

LEFT_TEXT
CENTER_TEXT
RIGHT_TEXT

0
1
2

PC la stnga
PC in centru
PC la dreapta

vertical

BOTTOM_TEXT
CENTER_TEXT
TOP_TEXT

0
1
2

PC la baza
PC in centru
PC deasupra

61

Alegerea dimensiunii, a tipului de caracter i a direciei textului se face cu


funcia:
void settextstyle(int font, int directie, int mrime);
unde parametrii sunt explicitai in tabelele 7.7 i 7.8.
Tabelul 7.7
Tipuri de caractere (fonturi) asociate modului grafic
Nume

Valoare

Descriere

DEFAULT_FONT

8x8 mapped font

TRIPLEX_FONT

strk.trip.font

SMALL_FONT

strk. small font

SANS_SERIF_FONT

strk.sans serif font

GOTHIC_FONT

strk. gothic font

Tabelul 7.8
Codificarea direciei textului pentru modul grafic
Nume

Valoare

Descriere

HORIZ_DIR

stinga-dreapta

VERT_DIR

jos-sus

Precizrile anterioare sunt valabile pentru afiarea textului cu una din funciile:
void outtext(" char text "); n poziia curent
void outtextxy(int x,int y," char text "); ncepnd cu punctul (x,y).
Daca textul afiat are nevoie de formatare se poate folosi funcia sprinf conform
exemplului de mai jos.
char x[20];
sprintf("Valoarea lui x este:%d", x);
outtextxy(10, 20, x);
Observaii
1. elementele prezentate n tabelele 7.1 7.8 pot intra n functiile utilizate fie
cu numele complet, fie cu codul;
2. pentru detalii in legatur cu utilizarea modului grafic se poate consulta
documentaia mediului de programare.
n programul de mai jos sunt utilizate o parte din funciile specifice modului
grafic, descrise anterior.

62

/*
Program graf2.c functii video in modul grafic
*/
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define CLIP_ON 1
void sunet(int f1)
{
sound(f1),delay(100),sound(2*f1),delay(200),sound(f1),delay(100),nosound();
}
void main()
{
int i,j;
int gdrv=VGA,gmod=VGAHI,errorcode; /* adaptor VGA, submod VGAHI
(640 x 480 pixeli, 16 culori) */
initgraph(&gdrv, &gmod, "c:\\bc\\bgi"); /* initializare mod grafic */
errorcode=graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
exit(1);
}
cleardevice();

/* sterge ecranul */

setbkcolor(RED);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
outtextxy(90,50,"SUNTEM IN MODUL GRAFIC ! APASATI O TASTA !");
rectangle(100,100,400,400);
sunet(500);
getch();
setfillstyle(1,BLUE);
floodfill(200,200,WHITE);
sunet(600);
getch();
circle(250,250,150);
sunet(650);
getch();
setfillstyle(1,CYAN);
floodfill(250,250,WHITE);
63

sunet(700);
getch();
setviewport(175,175,325,325,CLIP_ON);clearviewport();
floodfill(250,250,WHITE);
setfillstyle(1,MAGENTA);
sunet(450);
getch();
settextstyle(4,0,4);
outtextxy(30,70,"ECHIPAMENTE");
outtextxy(40,80,"NUMERICE");
sunet(850);
getch();
restorecrtmode();
textattr(RED*16|WHITE|BLINK);
gotoxy(5,5);
cprintf(" SUNTEM IN MODUL ALFANUMERIC ! ");
sunet(750);
getch();
window(10,10,40,20);
textbackground(BLUE);
textcolor(YELLOW);
for(i=1; i<=10; i++)
{
for(j=1; j<=10; j++)
{
gotoxy(j,i);
cprintf("~");
}
}
gotoxy(3,5);cprintf("E.N.");
sunet(1000);
getch();
setgraphmode(getgraphmode()); /* se restaureaza modul grafic */
setbkcolor(LIGHTBLUE);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
outtextxy(90,50,"SUNTEM DIN NOU IN MODUL GRAFIC !");
outtextxy(90,60,"APASATI O TASTA!");
bar3d(100,100,300,300,20,1);
sunet(700);
getche();
}
7.3. Modul de lucru:
I. Etape pregtitoare:
a) Se pregtesc matrice de lucru (640x480) i (80x25) pentru lucrul n regim
grafic, respectiv alfanumeric. Matricele vor fi pregtite pe hrtie de calc i se vor
multiplica ulterior;
64

b) Se vor construi pentru modul grafic functiile:


- void axe(x0, y0, deltax, deltay)
- void bargraf(stinga, jos, sus, param, delta, culoare)
unde: x0, y0
- sunt coordonatele originii;
deltax, deltay - lungimile n pixeli ale axelor;
stinga, jos, sus - coordonatele bargrafului;
param
- valoarea n pixeli a parametrului care se vizualizeaz pe
bargraf;
delta
- limea n pixeli a bargrafului;
culoare
- culoarea de umplere a bargrafului;
(Toate variabilele sunt de tip ntreg).
c) Se construiesc programele de apel ale funciilor axe i bargraf.
II. Desfurarea lucrrii
a) Se pornete sistemul;
b) Se intra n subdirectorul de lucru al subgrupei ;
c) Se lanseaz mediul de programare;
d) Se compileaz, linkediteaz i se lanseaz n execuie programele P1, P2,
GRAF1, GRAF2.
e) Se va observa diferena ntre modurile alfanumeric i grafic;
f) Se vor edita, compila, linkedita i executa programele realizate in cadrul
etapei I;
g) Lucrarea se consider ncheiat cnd toate programele menionate sunt funcionale,
iar referatul va cuprinde principalele idei din breviar i codurile surs ale programelor
create.
7.4. ntrebri i exerciii
1. S se scrie un program care s citeasc de la tastatur un numr ntreg, apoi s
scrie pe ecran urmtoarele informaii:
Ai introdus numrul ... (numrul introdus)
Numrul este ... (negativ, zero, pozitiv)
Modulul sau este ... (modulul numrului introdus)
2. S se scrie un program care s afieze numerele de la 1 la 100, cte 5 pe un
rnd. De fiecare dat cnd se trece la un rnd nou acest fapt s fie semnalat printr-un
semnal sonor scurt.
3. S se scrie un program care s ceara introducerea de la tastatur a unui ir de
caractere pe care apoi s-l afieze liter cu liter pn la ntlnirea primului spaiu,
moment n care programul va trebui s se opreasc. Daca irul nu conine nici un spaiu,
el va fi afiat integral.
4. S se scrie un program care s citeasc de la tastatur un ir de caractere i o
liter, apoi sa numere apariiile literei respective n irul introdus. Mesajul dat trebuie s
fie de forma:
Litera ... apare de ... ori in irul introdus.

65

5. S se elaboreze un program care s testeze dac un numr natural introdus de


la tastatur este numr prim. Dup efectuarea testului utilizatorul va fi chestionat dac
dorete s testeze un alt numr (s se rspund cu D/N).
6. S se scrie un program care s simuleze funcionarea unui contor, astfel:
- la apsarea tastei S contorul s nceap numrarea, de la ultima valoare afiat;
- la apsarea tastei O contorul s se opreasc, rmnnd afiat valoarea acestuia
- la apsarea tastei R contorul s revin la zero si dac anterior funciona, s se
opreasc;
- la apsarea tastei E s se ias din program.

66

LUCRAREA 8

PROGRAMAREA SECTIUNII ANALOGICE A


INTERFEEI AX 5411 PENTRU INTRRI I IEIRI
ANALOGICE

8.1.Obiectivele lucrrii
nsuirea modului de utilizare a funciilor driver-ului interfeei de proces AX
5411;
Determinarea caracteristicilor statice pentru subsistemul intrrilor i ieirilor
analogice (SADA) al interfeei AX 5411;
Vizualizarea comportrii dinamice a subsistemelor intrrilor i ieirilor
analogice, cuplate;
Elaborarea unor programe pentru vizualizarea comportrii dinamice (n
planul u-t i pe bargraf ) a subsistemului intrrilor i al subsitemului ieirilor
analogice.
Elaborarea unui program pentru determinarea caracteristicii statice a
ansamblului celor dou subsisteme.
8.2. Prezentarea coninutului de lucru
CARACTERISTICI PRINCIPALE ALE SUBSISTEMULUI DE INTRRI ANALOGICE
PENTRU INTERFAA AX 5411
AX5411 este o interfa multifuncional care conine toate cele 4 subsisteme
(SADA, SADN, SDCA, SDCN) i care poate fi montat ntr-un slot disponibil al unui
sistem IBM PC AT sau compatibil.
n continuare se prezint principalele specificaii ale echipamentului.
Subsistemul de achiziie a datelor analogice (SADA)
Numr de intrri
16 simple (AI0 - AI15);
Rezoluie CAN
12 bit;
Frecven de achiziie
max. 60 kHz ;
Timpul de conversie A/D
max 15 microsec. ;
Timpul de achiziie
max 5 microsec./canal;
Domenii de intrare
+/-10V,+/-5V,+/-2.5V,+/-1.25V,
+/-0.625V,+/- 0.3125V (selectabile
software);
Impedana de intrare
>10 M,50pF;
Neliniaritate
+/- 1 LSB;
67

Eroare inerent

+/- 1 LSB.

Subsistemul de generare a comenzilor analogice (SDCA)


Numr de ieiri
2 (DO0,DO1);
Rezoluie
12 bit;
Frecven
max 33 kHz ;
Domenii de ieire
05V,010V (selectabile hardware);
Curent de ieire
5 mA max.
Subsistemul intrarilor/ieirilor numerice (SADN/SDCN)
Intrri numerice
24 dintre care disponibile 8 (DI0 - DI7 );
Ieiri numerice
24 dintre care disponibile 8 (DO0 - DO7 ).
Nivele intrare/ieire
Conector intrare/ieire

compatibile TTL;
50 pini

Caracteristici de interfaare cu calculatorul


Magistrala
compatibil IBM PC AT;
Bii adres utilizai
A9 - A0;
Adresa de baz (IOPORT) 0300 hexa;
Locaii necesare
16 (octei);
Nivele de ntrerupere
2,3,4,5,6,7 (controlabile soft);
Sursa de ntreruperi
FINISH bit conversie A/D;
Opiuni DMA
DMA1 sau DMA3 selectabile hard;
n fig. 8.1 se prezint asignarea pinilor n conectorul interfeei AX 5411.

CARACTERISTICILE DRIVER-ULUI C PENTRU SUBSISTEMUL INTRRILOR


ANALOGICE PENTRU INTERFAA AX 5411

sintaxa:
flag=ax5411(fun, dio, ary1, ary2);

68

AI0
AI1
AI2
AI3
AI4
AI5
AI6
AI7
AGND
+12 V
DA0
AGND
DO0
DO1
DO2
DO3
DGND
DO4
DO5
DO6
DO7
+5 VP
EXTRG
DGND

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50

AI8
AI9
AI10
AI11
AI12
AI13
AI14
AI5
AGND
-12 V
DA1
AGND
DI0
DI1
DI2
DI3
DGND
DI4
DI5
DI6
DI7
+12 V
DGND

Nume

I/O

Funcie

AIx

Intrare

DAx

Ieire

Dix

Intrare

DOx

Ieire

Canal x
Int.Anal.
Canal x Ieire
Anal.
Canal x Int.
Num.
Canal x Ieire
Num.

+12v

Surs

-12v

Surs

AGND

Mas

Analogic

DGND

Mas

Numeric

+5vp

Surs

PC +5v

+12v

Surs

PC +12v

-12v

Surs

PC -12v

EXTRG

Intrare

Trigger extern

Fig. 8.1. Asignarea i semnificaiile semnalelor din conectorul interfeei AX 5411.

if (flag == 0)
procesare normala;
else
procesare cu erori;

parametri:

int fun : va conine numele sau numrul funciei din driver (funciile ce
se vor utiliza n lucrrile de laborator sunt prezentate in tabelul 8.1);
int dio[ ] : tablou de ntregi (maximum 7 elemente), care conine toi
parametrii necesari funciei respective;
int far ary1: tablou de ntregi (maximum 32 Kwords);
int far ary2 : tablou de ntregi (maximum 32 Kwords);

69

n continuare sunt detaliate funciile din acest lucrare, urmnd ca celelalte s fie
prezentate pe msura utilizrii.
Tabelul 8.1
Codificarea principalelor funcii din driver
Numr

Funcie

Descriere

INIT

Iniializeaz funciile driver-ului AX5411

SET_CH

Seteaz canalul de achiziie

SET_GAIN

Seteaz domeniul pentru toate canalele

SFT_TRG

Realizeaz o achiziie pe un canal

13

DO_BYTE

nscrie un octet n canalele DO0...DO7

14

DI_BYTE

Citete un octet din canalele DI0...DI7

15

DAC_ONE

Trimite un semnal analogic pe un canal

16

DAC_TWO

Trimite semnale analogice pe ambele canale

Funcia INIT : iniializare AX 5411


Scop:
1. Seteaz adresa de baz conform dio[0];
2. Seteaz nivelul de ntreruperi conform dio[1];
3. Seteaz nivelul DMA conform dio[2];
4. Verific prezena modulului AX 5411;
5. Dezactiveaz alte ntreruperi externe.
Aceasta funcie se va executa o singur dat, naintea oricrei alte funcii.
Intrri:
fun
dio[0]
dio[1]
dio[2]
dio[3]
dio[4]
dio[5]
dio[6]
ary1
ary2

- INIT (sau 0);


- adresa portului de baz (IOPORT);
- nivel IRQ (de la 2 la 7);
- canal DMA (1 sau 3);
- neutilizat;
- neutilizat;
- neutilizat;
- neutilizat;
- neutilizat;
- neutilizat.

70

Ieiri:
flag

=
=
=
=
=
=

0 - far erori;
2 - funcie n afara domeniului;
3 - eroare de setare a IOPORT;
4 - nivel IRQ setat n afara domeniului;
5 - canal DMA setat n afara domeniului;
6 - defect hardware.

Exemplu de utilizare a funciei INIT:


#include <ax5411.h>
#include <stdio.h>
#define IOPORT 0x300
//
int fun, flag;
int far ary1;
int far ary2;
unsigned int dio[7];
//
main( )
{
fun=INIT;
dio[0]=IOPORT;
dio[1]=3;
dio[2]=3;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de initializare\n");
else
printf("Initializare reusita");
getch();
}

Funcia SET_CH : setare canale achiziie


Scop:
1. Seteaz numrul primului canal conform dio[0];
2. Seteaz numrul ultimului canal conform dio[1].
Aceasta funcie se va executa o singur dat, naintea funciei de achiziie.
Intrri:
fun - SET_CH (sau 1);
dio[0] - numrul canalului de start (0..15);
dio[1] - numrul canalului de stop (0..15);
dio[2] - neutilizat;
dio[3] - neutilizat;
71

dio[4] - neutilizat;
dio[5] - neutilizat;
dio[6] - neutilizat;
ary1 - neutilizat;
ary2 - neutilizat.
Ieiri:
flag

= 0 - fr erori;
= 1 - driver neiniializat;
= 2 - funcie n afara domeniului;
= 7 - nr. canal n afara domeniului (0..15).

Exemplu de utilizare a funciei SET_CH:


.

fun=SET_CH;
dio[0]=0;
dio[1]=15;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de setare canal\n");
else
printf("Setare reusita/n");
.

// funcia set canal


// nr. canal start
//nr. canal stop

Funcia SET_GAIN : setare domeniu canale achiziie


Scop:
Seteaz domeniul pentru toate canalele conform dio[0].
Aceasta funcie se va executa o singur dat, naintea funciei de achiziie.
Intrri:
fun - SET_GAIN (sau 2); *)
dio[0] - domeniul (1,2,4,8,16);
dio[1] - neutilizat;
dio[2] - neutilizat;
dio[3] - neutilizat;
dio[4] - neutilizat;
dio[5] - neutilizat;
dio[6] - neutilizat;
ary1 - neutilizat;
ary2 - neutilizat.

72

*)Valoare
1
2
4
8
16

Domeniu
-5/+5 V
-2.5/+2.5 V
-1.25/+1.25 V
-0.625/+0.625 V
-0.3125/+0.3125 V

Ieiri:
flag = 0 - fara erori;
= 1 - driver neiniializat;
= 2 - funcie n afara domeniului;
= 22 - eroare setare domeniu.
Exemplu de utilizare a funciei SET_GAIN:
.
fun=SET_GAIN;
// functia set domeniu
dio[0]=1;
// domeniu selectat
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de setare domeniu\n");
else
printf("Setare reusita/n");
.
Funcia SFT_TRG : realizeaz conversia A/N
Scop:
Aceast funcie realizeaz o achiziie i conversia analog/numeric pentru
canalele i domeniile selectate. Declanarea conversiei (start conversie) se realizeaz pe
cale software (SoFTware_TRiGger).
Funcia se va executa naintea unei conversii analog-numerice
Intrri:
fun
- SFT_TRG (sau 3);
dio[0] - neutilizat;
dio[1] - neutilizat;
dio[2] - neutilizat;
dio[3] - neutilizat;
dio[4] - neutilizat;
dio[5] - neutilizat;
dio[6] - neutilizat;
ary1 - neutilizat;
ary2 - neutilizat;
Ieiri:
flag

= 0 - fr erori;
= 1 - driver neiniializat;
= 2 - funcie n afara domeniului;
= 8 - eroare start conversie;
dio[0] = numr de cuante n zecimal -2048 la +2047;
dio[1] = numrul canalului pe care se achiziioneaz.

73

Exemplu de utilizare a funciei SFT_TRG:


.
fun=SFT_TRG;
// functia software trigger
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de achizitie\n");
else
printf("Data=%x, Canal=%x\n",dio[0],dio[1]);
.
UTILIZAREA DRIVER-ULUI C PENTRU AX 5411 N APLICAII PENTRU
SUBSISTEMUL INTRRILOR ANALOGICE
n vederea utilizrii driver-ului C pentru interfaa AX 5411, n aplicaii se va
proceda dup cum urmeaz:
a) se editeaz programul utilizator;
b) se construiete un proiect (extensia .prj) conform exemplului de mai jos;
c) se nscrie numele proiectului in funcia project a mediului de programare;
d) se efectueaz compilarea, linkeditarea i execuia conform metodologiei
cunoscute.
Exemplu: program de achiziie de pe canalul 0, domeniu -5/+5V i tiprirea
numrului de cuante. Acest program se gsete n subdirectorul de lucru sub numele
TESTAI.CPP.
// PROGRAM TESTAI TESTARE ACHIZITIE PE CANALUL 0
//
#include <ax5411.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#define IOPORT 0X300
// adresa port de baza pentru AX 5411
int fun,flag;
int far ary1;
int far ary2;
unsigned int dio[7];
int main( )
{
clrscr();
// initializare AX5411
fun=INIT;
dio[0]=IOPORT;
dio[1]=3;
dio[2]=3;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de initializare \n");

// functia de initializare

74

// setare numar canal


fun=SET_CH;
//functia set canal
dio[0]=0;
//nr. canal de start
dio[1]=0;
//nr. canal de stop
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de setare canal\n");
// setare domeniu
fun=SET_GAIN;
//functia set domeniu
dio[0]=1;
//domeniu selectat -5/+5V
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de setare domeniu\n");
textattr(GREEN*16|YELLOW);
// bucla infinita
for(;;)
{
delay(100);

//asteapta 100 ms

// achizitie
fun=SFT_TRG;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de achizitie\n");
else

//functia software trigger

// tiparire
gotoxy(20,20),
cprintf("Data=%d, Canal=%d\n",dio[0],dio[1]);
if(kbhit()) break;
// la apasarea unei taste iesire din ciclu
}
getch( );
return 0;
}

// iesire din program

CARACTERISTICI PRINCIPALE ALE SISTEMULUI IEIRLOR ANALOGICE


PENTRU INTERFAA AX 5411
n continuare se prezint funciile specifice subsistemului ieirilor analogice.
Pentru detalii privind caracteristicile sistemului de interfaa, vezi precizrile anterioare.
Subsistemul ieirilor analogice
Numr de ieiri
Rezoluie
Frecven
Domeniu de ieire
Curent de ieire

2 (DO0,DO1);
12 bit;
max. 33 kHz ;
0..5V;
max 5 mA .
75

CARACTERISTICILE DRIVER-ULUI C PENTRU AX 5411 N SISTEMUL IEIRILOR


ANALOGICE
Pentru detalii privind:
- utilizarea driver-ului;
- codificarea funciilor;
funciile INIT,SET_CH,SET_GAIN,SFT_TRG,
vezi subsistemul intrrilor analogice.
n continuare se prezint funciile aferente ieirilor analogice.
Funcia DAC_ONE : realizeaz conversia N/A pe un canal
Scop:
Aceasta funcie realizeaz o conversie numeric-analogica (N/A) i genereaz
tensiunea rezultat pe canalul specificat n domeniul setat pe cale hardware (0..5V
pentru prezenta lucrare).
Valoarea tensiunii generate se obine cu relaia:
U gen

Nr . cuante
5
4096

Intrri:
fun - DAC_ONE (sau 15);
dio[0] - canal nr. 0 sau 1;
dio[1] - nr. cuante care se aplic CNA (intre 0 si 4095);
dio[2] - neutilizat;
dio[3] - neutilizat;
dio[4] - neutilizat;
dio[5] - neutilizat;
dio[6] - neutilizat;
ary1 - neutilizat;
ary2 - neutilizat;
Ieiri:
flag = 0 - fr erori;
= 1 - driver neiniializat;
= 2 - functie n afara domeniului;
= 21 - nr. cuante n afara domeniului;
= 20 - nr. canal n afara domeniului (0 sau 1).
Exemplu de utilizare a funciei DAC_ONE:
.
fun=DAC_ONE;
// conversie N/A pe un canal
dio[0] = 0;
// canal 0
dio[1] = 1024;
// nr. cuante
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de conversie !,flag=%d\n",flag);
else
printf("Canal=%d, Tens=%.2f V\n",dio[0],dio[1]*4096/5);
76

Funcia DAC_TWO : realizeaz conversia N/A pe ambele canale.


Scop:
Aceasta funcie realizeaz o conversie N/A i genereaz tensiunea rezultat
pe ambele canale (0 i1), n domeniul setat pe cale hardware (0..5V pentru prezenta
lucrare).
Valoarea tensiunii generate se obine cu relaia:
U gen

Nr . cuante
5
4096

Intrri:
fun - DAC_TWO (sau 16);
dio[0] - nr. cuante pe canalul nr. 0 (0..4095);
dio[1] - nr. cuante pe canalul nr. 1 (0..4095);
dio[2] - neutilizat;
dio[3] - neutilizat;
dio[4] - neutilizat;
dio[5] - neutilizat;
dio[6] - neutilizat;
ary1 - neutilizat;
ary2 - neutilizat.
Iesiri:
flag = 0 - fr erori;
= 1 - driver neiniializat;
= 2 - funcie n afara domeniului;
= 21 - nr. cuante n afara domeniului.
Exemplu de utilizare a funciei DAC_TWO:
.
fun=DAC_TWO;
// conversie A/N pe un canal
dio[0] = 1024;
// nr. cuante pe canal 0
dio[1] = 2048;
// nr. cuante pe canal 1
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de conversie !,flag=%d\n",flag);
else
printf("Canal 0 Tens=%.2f V\n",dio[0]*4096/5);
printf("Canal 1 Tens=%.2f V\n",dio[0]*4096/5);
UTILIZAREA DRIVER-ULUI C PENTRU AX 5411 N APLICAII PENTRU
SISTEMUL IEIRLOR ANALOGICE
n vederea utilizrii driver-ului C pentru AX 5411 n aplicaii se va proceda dup
cum urmeaz:
a) se editeaz programul utilizator;
77

b) se construiete un proiect (extensia .prj) conform exemplului de mai jos;


c) se nscrie numele proiectului n funcia project a mediului de programare;
d) se efectueaz compilarea, linkeditarea i execuia conform metodologiei
cunoscute.
Exemplu:
Program de generare pe canalul de ieire 0 de tensiuni din 0.5 V n 0.5 V ,
achiziia acestora pe canalul de intrare 0 i tiprirea att a tensiunii generate ct i celei
achiziionate. Trecerea de la o valoare la alta se face prin apsarea tastei c. Acest
program se gsete n subdirectorul de lucru sub numele TESTAO.CPP.
//
// PROGRAM TESTARE IESIRI ANALOGICE PE CANALUL AO0
// SI ACHIZITIA VALORII GENERATE PE CANALUL AI0
//
#include <ax5411.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#define IOPORT 0x300
int fun,flag,i;
int far *ary1;
int far *ary2;
float uach[20],ugen[20];
unsigned int dio[7];
main( )
{
// initializare AX 5411
fun=INIT;
dio[0]=IOPORT;
dio[1]=3;
dio[2]=3;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de initializare\n");

// functia de initializare

// setare numar canal


fun=SET_CH;
// functia set canal
dio[0]=0;
// nr. canal start
dio[1]=0;
// nr. canal stop
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de setare canal\n");
// setare domeniu
fun=SET_GAIN;
dio[0]=1;
flag=ax5411(fun,dio,ary1,ary2);

// functia set domeniu


// domeniu selectat -5/+5V

78

if(flag != 0)
printf("Eroare de setare domeniu\n");
// tipareste cap de tabel
textbackground(BLACK);
clrscr( );
textattr(BLUE*16|YELLOW);
gotoxy(27,5);cprintf(" * DEMO SUBSISTEME D/A + A/D * ");
gotoxy(30,7);cprintf(" i ugen[V] uach[V] ");
gotoxy(30,8);cprintf(" ==================== ");
// bucla cu 9 pasi
for(i=1;i<=9;i++)
{
// generare tensiune
dio[0]=0;
// canal iesire nr. 0
ugen[i]=0.5*i;
dio[1]=(int)(409.6*i);
fun=DAC_ONE;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de conversie D/A\n");
else
// achizitie tensiune
fun=SFT_TRG;
// functia software trigger
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de achizitie\n");
else
uach[i]=dio[0]*0.00244;
// tiparire
gotoxy(30,8+i);
cprintf(" %d %.2f

%.2f \n",i,ugen[i],uach[i]);

// avans pentru o noua generare


getch( );
}
// iesire din program
getch( );
}
8.3 Partea experimental
A. Descrierea platformelor de lucru
Laboratorul CALCULATOARE DE PROCES conine
componente funcionale importante:
79

urmtoarele

panoul complex IAN;


platformele de lucru P1, P2, P3;
stand pentru reglarea presiunii.
Platformele de lucru P1, P2, P3 sunt conectate la panoul I.A.N. prin intermediul
cablurilor prezentate punctat n fig. 8.2 i pozate n interiorul unor bare casetate.
Conectarea fizic la panourile interfeelor de proces se realizeaz prin irurile de
conectori SC1 , SC2, SC3, care au configuraia din fig. 8.3.
Acest laborator este interconectat din punct de vedere funcional cu laboratorul
Automatizarea proceselor chimice de unde se preiau semnale n curent de la
traductoarele de debit (platforma P2) i nivel (platforma P1) i ctre care se trimit
semnale n curent la elementele de execuie aferente SRA debit i SRA nivel.
Comanda pompelor centrifugale ale celor dou SRA se poate realiza de la
panoul IAN.
La platforma P1 sunt conectate traductorul i elementul de execuie amplasate pe
standul pentru reglarea presiunii.
B. Desfurarea lucrrii
a) Se realizeaz pe rnd montajul din fig.8.2 respectiv cel din fig.8.3 pentru
fiecare platforma Pi (i=1,2,3);
b) Se pornete sistemul ;
c) Se intr n subdirectorul de lucru al subgrupei;
d) Se lanseaz mediul de programare;
e) Se editeaz proiectul dup cum urmeaz:
- pentru subsistemul intrrilor analogice:
- se tasteaz F10 i se selecteaz meniul Project;
- se selecteaz submeniul Open project...;
- se introduce numele proiectului;
- se apas tasta Insert i se adaug fiierele :
testai.cpp (existent n subdirectorul curent)
ax5411cl.lib (existent n subdirectorul C:\BC\LIB)
- se salveaz proiectul din meniul Options, submeniul Save...
- pentru subsistemul ieirilor analogice:
- se tasteaz F10 i se selecteaz meniul Project;
- se selecteaz submeniul Open project...;
- se introduce numele proiectului (LUC6.PRJ);
- se apsa tasta Insert i se adaug fiierele :
testao.cpp
(existent n subdirectorul curent)
ax5411cl.lib (existent n subdirectorul C:\BC\LIB)
- se salveaz proiectul din meniul Options, submeniul Save...
f) Se alimenteaz panoul cu tensiune;
g) Se compileaz proiectul;

80

G2

G1

PANOU
I. A. N.

Fig. 8.2. Modul de conectare a platformelor de lucru la


panoul I.A.N.:
I.A.N. - panou intrri analogice i numerice; G1, G2, G3
- generatoare de
semnal unificat; P1, P2, P3 platforme de lucru; SC1, SC2, SC3 - iruri de conectori.

G3

P1
SC1

P2
SC2

P3
SC3

81

Semnal
unificat
4...20 mA
+

10

11

Comanda

Semnal

1...5 V

traductor

12

Generator
de
semnal

Fig. 8.3. Configuraia irului de conectori.

Pi

AX 5411
17

MTM

SCi

12 11

250

De la Gi , i= 1...3
Fig. 8.4.Montajul utilizat pentru testarea intrrilor analogice:
SCi - sir de cleme; Gi - generator de semnal unificat; MTM - multimetru;
Pi - platforma de lucru.

h) Se linkediteaz i se lanseaz n execuie proiectul creat;


i) Pentru verificarea programului se modific tensiunea de la panou i se
urmresc valorile afiate pe ecran;
j) Se lanseaz din subdirectorul de lucru programul pr2_itf.exe i se determin
caracteristica static a canalului 0. Se noteaz tensiunile de intrare i ieire, coeficienii
dreptei de regresie, abaterea standard, dispersia i se traseaz pe hrtie milimetric
caracteristica static;
k) Se lanseaz n execuie din subdirectorul de lucru programul pr4_itf.exe i
prin modificri ale tensiunii de la panou se urmrete comportarea dinamic a achiziiei
pe canalul 0;
l) Se completeaz programul TESTAI n aa fel nct s permit vizualizarea
tensiunii achiziionate ntr-un sistem de axe u-t i pe bargraf. n acest scop se vor utiliza
82

funciile axe si bargraf elaborate n cadrul lucrrii anterioare. Achiziia se va realiza n


500 pai cu temporizare 200 ms;
m) Dup funcionarea programului se va nota sau, dup caz, se va lista textul
surs la imprimant;
n) Referatul va cuprinde principalele idei din breviar (referitoare la interfa i la
driver), caracteristicile statice ale SADA i forma surs a programului TESTAI
completat.

MTM

23

25

AX 5411

Fig. 8.5. Montajul utilizat pentru testarea ieirilor analogice :


MTM - multimetru numeric.

o) Prin program se genereaz pe canalul DAO tensiuni cresctoare ntre 0.5 i


4.5 V, trecerea de la o tensiune la alta efectundu-se prin apsarea unei taste. Se verific
concordana dintre valorile afiate pe ecran i cea indicat de multimetru;
p) Se lanseaz din subdirectorul de lucru programul pr3_itf.exe i se determin
caracteristica static a canalului DA0. Se noteaz tensiunile de intrare i ieire,
coeficienii dreptei de regresie, abaterea standard, dispersia i se traseaz pe hrtie
milimetric caracteristica static;
r) Se lanseaz n execuie din subdirectorul de lucru programul pr5_itf.exe i se
urmrete comportarea dinamic a canalelor cuplate DA0 i AI0 pentru diferite forme
de variaie a tensiunii generate (liniar, sinusoidal, exponenial);
s) Se completeaz programul TESTAO.CPP, astfel nct s permit trasarea
caracteristicii statice Uach = f(Ugen) a ansamblului celor dou canale. n sistemul de axe
se vor marca punctele experimentale i se va trasa dreapta obinut prin regresie liniar.
Se vor calcula i afia de asemenea abaterea standard i dispersia.

83

LUCRAREA 9
84

VERIFICAREA UNOR TEOREME I AXIOME ALE ALGEBREI


LOGICE
9.1.Obiectivele lucrrii
Revederea cunotinelor de programare n limbajul C;
Elaborarea de programe n limbajul C, prin care s se testeze proprietile
funciilor logice i s se verifice teoremele i axiomele algebrei binare,
9.2. Prezentarea coninutului lucrrii
Desfurarea lucrrii de laborator presupune deinerea de cunotine n domeniul
algebrei binare, dintre care, n continuare, se vor prezenta succint cele de baz.
Fie mulimea B = {x | x = 0; 1 }, unde prin definiie:
0 = elementul nul;
1 = elementul unitate (universal).
n exprimarea curent, referirea la unul din cele dou elemente ale mulimii B se
face prin noiunea de bit.
Pe mulimea B se definesc 3 operatori principali:
- complementarea (negaia, NOT)\
- disjuncia logic (suma logic, OR):
- conjuncia logic (produs logic, AND).
O modalitate comod de definire a unei funcii logice o reprezint utilizarea
TABELELOR DE ADEVR . n continuare se prezint simbolurile i implementarea cu
contacte (fig. 9.1) i tabelele de adevr pentru cele trei funcii logice fundamentale
(tabelul 9.1).

Fig. 9.1. Funcii logice elementare:


a - simbol; b - implementare cu contacte.

85

Tabelul 9.1
Funcii logice elementare (tabela de adevr )

A
0
0
1
1

B
0
1
0
1

AB AUB /A
0
0
1
0
1
1
0
1
0
1
1
0

Referitor la mulimea B i la operaiile definite mai cus sunt valabile 6 axiome i


5 teoreme care sunt prezentate sintetic n tabelul 9.2.
Tabelul 9.2
Axiomele i teoremele algebrei binare

Tip
A1

Denumire
nchiderea mulimii B n
raport cu operaiile +,

Forma sum

Forma produs

x yB x yB

x yB x yB

A2
A3
A4
A5
A6
T1
T2
T3
T4

Asociativitate
Comutativitate
Element neutru
Distributivitate
Existenta complementului
Idempotena (tautologia)
Element neutru
Teorema dublei negaii
Absorbia

x + (y + z) = (x + y) + z
x+y=y+x
x+0=0+x
x + y z = (x + y) (x +
z)
x x 1

x ( y z ) = ( x y ) z
x y = y x
x l = l x
x (y + z) = x y + x. z

x+x=x
x+l=l

xx=x
x 0 = 0

x x

x x

x+xy=x

x (x + y) = x

T5

Teoremele De Morgan

x y x y

x y x y

xx 0

Una din metodele de demonstrare a teoremelor este aceea n care sunt utilizate
tabelele de adevr.
Perechile de operatori (NOT, AND) i (NOT, OR) formeaz fiecare cte un
sistem complet, n sensul ca orice relaie definit pe mulimea B poate fi exprimat
numai cu operatorii unei perechi. Circuitul fizic care implementeaz un operator logic
poart denumirea general de poart logic.
Sisteme complete au fost realizate i sub forma unor pori logice denumite
NAND (NOT-AND), NOR (NOT-OR) pentru care sunt valabile urmtoarele funcii
logice

86

Alta poart logic des utilizat este cea care implementeaz operaia SAU
EXCLUSIV (EXCLUSIVE OR), creia i este specific funcia logic de mai jos.

Observaii:
1. Acest operator poate fi utilizat pentru determinarea coincidenei a doi operanzi.
2. Daca unul din operanzi este 1 atunci SAU EXCLUSIV poate fi utilizat ca
operator de negaie.
n continuare se prezint un program demonstrativ, n limbajul C, pentru testarea
funciei logice I.
/*
Program care implementeaza funcia SI
- se citesc valori pentru variabilele binare a si b
- se tiprete valoarea funciei f=ab
- pentru reluare se apas tasta y
*/
#include <sfdio.h>
#include <conio.h>
#include <std!ib.h>
void main(void)
{
int a,b,f;
char c;
clrscr();
while(1)
{
printf("a="); scanf("%d, &a);
printf("b="); scanf("%d", &b);
f=a & b;

/* se citete a */
/* se citete b */
/* se determina f */

printf("%d AND %d =%d\n", a, b, f); /* se tipresc a.b.f */


printf(alt test ? (y/n)");
/* se testeaz opiunea de
continuare */
c=getche();
if((c==n)||(c==N)) exit(1);

87

9.3. Desfurarea lucrrii


1.
2.
3.
4.
5.
6.

Se pornete sistemul.
Se intra n subdirectorul de lucru al subgrupei;
Se lanseaz mediul de programare ;
Se introduce programul demonstrativ ;
Se compileaz, se linkediteaz i se lanseaz n execuie acest program;
Lucrarea se consider ncheiat n momentul n care toate programele
(demonstrative i dezvoltate sunt funcionale). Referatul va cuprinde
principalele idei din breviar i textele surs ale programelor.

9.4. ntrebri i exerciii


1. Se completeaz programul n aa fel nct s se realizeze i testarea funciilor
SAU, NU, SAU EXCLUSIV (la intrarea n program se va testa opiunea
privind funcia);
2. Se va scrie i se va executa un program care sa permit
implementarea funciilor logice SI, SAU, NU cu ajutorul porilor NAND;
3. Se va scrie i se va executa un program care sa permit demonstrarea
echivalenei funciilor logice f1 i f2 din reprezentrile de mai jos.

88

S-ar putea să vă placă și