Sunteți pe pagina 1din 84

1

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
dou moduri:
1. Se face click 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.

2
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,
ilustrat n figura 1.4.


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



3


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. Denumire Semnificaie
1 Source Generarea semnalelor surs
2 Sinks Reprezentarea grafic a dinamicii sistemelor
3 Discrete Simularea sistemelor discrete in timp
4 Continuous Simularea sistemelor liniare i sistemelor neliniare
5 Math Operation Realizarea operaiilor matematice
6 Signal Routing 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.

4

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. Denumire instrument Semnificaie
1 Constant Semnal de intrare constant
2 Clock Semnal de ceas
3 Sine Wave Semnal sinusoidal
4 Step Semnal treapt
5 Ramp Semnal ramp


5


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.ctr. Denumire Semnificaie
1 Scope Vizualizare mrimi de ieire pe osciloscop
2 To Workspace Mediul de lucru
3 Stop Simulation 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. Denumire Semnificaie
1 Integrator Integrator
2 Derivative Derivator
3 Transfer Fcn 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. Denumire Semnificaie
1 Sin Funcia trigonometric sinus
2 Min Funcia minim
3 Gain Amplificator
4 Sum Sumator
5 Product Produs


6

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:

u y = 3
(1.1)
asociat unui eleme
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;

7
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





8

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.

9

Fig.1.10 .

Exemplul 2. Fie sistemul de ordinul 1, figura 1.10, descris prin modelul
matematic:

u K y y T = + (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, ( ) t u 1 = .





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

Condiia iniial a ecuaiei difereniale este ( ) 1 0 = y . Sistemul va fi simulat pe
intervalul de timp | | 10 , 0 s.
Rezolvare. Modelul matematic (1.2) se aduce la forma standard (1.3) :

( ) ( ) | | t Ku t y
dt
dy
T
1
+ = (1.3)

aceasta se integreaz ajungnd la expresia (1.4):

( ) ( ) ( ) ( ) | |dt t Ku t y 0 y t y
T
1
+ + =
}
(1.4)

u y
S

10
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.
n cadrul blocului Sum se seteaz nti + pentru calea direct urmat de -
pentru reacie.

11
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.

12
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.
n cazul n care o diagram devine foarte complicat, Simulink ofer
posibilitatea de a grupa mai multe blocuri ntr-un singur bloc, utiliznd blocul

13
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)
u
e u y + = 3 , u=5;
c) u y y = + 2 3 , y(0)=0, u(0)=1,5;
3. S se construiasc diagrama ce realizeaz conversia gradelor Celsius n
grade Fahrenheit.
32
5
9
+ =
C F
T T

LUCRAREA 2

14

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 PT100
1
, prevzut cu un adaptor ncorporat rezistent-
intensitate, care genereaz la ieire 4-20mA, se va determina experimental caracteristica
dinamic. In figura 2.1 sunt prezentate elementele de baza necesare efecturii
experimentului.



Fg.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 T
1
i T
2
diferite.



1
Termorezisten cu R=100 O la T=100
0
C.
2
1
| | mA i 20 4 e
-
+
TT TT
T1 T2
4 5
3

R
I
AM

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

, T b i
dt
i d
a A = A +
A
(2.1)
- MMD de tip functie de trasfer

( )
1 +
=
as
b
s H , (2.2.)
- MMD cu valori absolute

; bT i
dt
di
a = + (2.3)

Constantele a i b ale relaiilor anterioare se vor determina astfel:
- Constanta b se va calcula pe baza relaiei

T
i
b = , (2.4)
- Constanta a se va calcula pe baza relaiei

3
3 2 1
a a a
a
+ +
= , (2.5)

Pentru a determina constanata a
1
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
a
1,
figura 2.2 . In acelai mod se vor determina i celelalte dou constante a
2
, a
3
.


16

Fig. 2.2.
4. Pentru sistemul
, bT i
dt
di
a = +

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
0
C la 90
o
C.
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
c
Q T
dt
dT
= + 35 , 0 4
unde Q
c
(t)=1000m
3
N/h; T(0)=335
o
C.

4. Pentru sistemul din figura 2.3. sunt presupuse urmtoarele modele
matematice dinamice:
a) y=2u;
b) u
dt
dy
= 3 ; y(0)=0;
c) u y
dt
dy
2 3 = + y(0)=0;

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.
y u
S

17

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






































u
t
1,5

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.); y
a
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.

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| P
1
P
2
. . . P
n

Intensitatea I |mA| I
1
I
2
. . . I
n

Indicaia PE I
PE1
I
PE2
. . . I
PEn


3. Cu datele din tabelul 3.1 se vor construi pe hrtie milimetric, graficele
I = f(P) i I
PE
= g(I). Aceste grafice reprezentnd caracteristicile statice ale
celor dou elemente.
Fig. 3.2 Montaj pentru studiul experimental al SM-P:
R reductor de presiune; PI manometru (presiune indicat); mA
miliampermetru; PE poteniometru electronic.
PE
PT
+
-
-
I
-
+
+
mA
PI
Po
2...3 bar
PI
R
P

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 I
PE
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
I
PE
= g(I). Aceste grafice reprezint caracteristicile statice ale celor dou elemente. Pe
baza analizei graficelor se vor determina concret expresiile funciilor f i g.
In cadrul lucrrii de laborator va fi prezentat, de asemenea un SM realizat cu
calculatorul electronic (fig. 3.4).


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.
PE
SN
V
SP
LT
+
-
-
I
-
+
+
mA

21
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 I
PE
= f
l
(P) i I
PE
= f
2
(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 U
i
.





















Fig. 3.4 Structura principiala a unui SM cu CE:
T
1
,, T
n
-traductoare; ITF-P- interfa de proces; CE-
calculator electronic; CP-calculator de proces.
ITF-P
CE
T1
Tn
y1
yn
r1
r
n

CP
~
Fig.3.5 Schema principiala a potentiometrului electronic:
A-amplificator; MR-motor reversibil; DR-dispozitiv de inregistrare; E-
sursa de alimentare; R-potentiometru bobinat; U
i
-tensiune aplicata la
intrare: U
e
-tensiune culeas ntre poteniometru i cursor.
-
A
M
R
E
I=const.
-
Ue
+
-
Ui
U
R
+
DR
MR

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.















Regulator
i
r
u
M

Kp Ti Td
u
Fig. 4.1. Mrimi caracteristice ale regulatorului
dup abatere:
i - referin; r - reacie; Kp,Ti,Td - parametrii de
acordare ai regulatorului; u
M
- comand manual;
u - comand.

23

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

,
1
0
0
|
|
.
|

\
|
+ + + =
}
dt
de
T edt
T
e K u u
d
t
i
p


unde: u este valoarea curent a comenzii;
u
0
- valoarea comenzii n absena abaterii;
K
p
- factorul de proprionalitate;
T
i
- constanta de integrare;
T
d
- constanta de derivare.

Din analiza relaiei rezult proporionalitatea comenzii cu abaterea, integrala i
derivata acesteia.
Dnd valori convenabile parametrilor T
i
i T
d
se pot obine algoritmi specifici
regulatoarelor P (proporional), PI (proporional-integrator) i PD (proporional-
derivator), 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;
la comutrile A/M i M/A echilibrrile se fac automat.


24
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 u
0
(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.

Observaie. La comutarea M/A indicaia nregistratorului trebuie s rmn pe
valoarea u
0
stabilit la punctul e), n condiiile abaterii nule.

25
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
u
0
% r %
mA mA
K
p
= K
p
= K
p
=
i u i u i U
% mA % mA % mA % mA % mA % mA

K
p
*
efectiv= K
p
*
efectiv= K
p
*
efectiv=

*
Parametrul K
p
efectiv 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 K
p
/T
i
(T
i
este timpul de integrare), iar D fiind asociat factorului K
p
*T
d
(T
d

este timpul de derivare). N este utilizat pentru 1/T
f
, unde T
f
este constant de timp a
filtrului).
Pentru o mai bun configurare este de preferat implementarea propriului
regulator, utiliznd blocurile din Linear Library.




26
i,r
i
r
e = -i+r
t
Fig. 4.2

4.5. ntrebri i exerciii

1. Ce este un regulator?
2. n ce const diferena ntre un regulator analogic i unul numeric?
3. Ce reprezint mrimea u
0
?
4. S se scrie algoritmii de reglare pentru regulatoarele R-P, R-PI i R-PD.
5. Determinai pe cale grafic rspunsul unui algoritm PI
pentru situaia din figura 4.2.
6. Putei spune dac regulatoarele numerice sunt superioare
celor analogice, i dac da, de ce?
7. Numii cei trei parametri de acordare ai unui regulator
PID.
8. Ce nseamn modul automat al regulatorului
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 SHI MADEN

























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.







Afisare
numerica
PV
SV
%
DISP MAN REM COM PRG
ENT PARA MOD
E
RET
SHIFT EXEC LOCK DISP
REM MAN AT

Lampi de
semnalizare

Tastatura
AT
HB
EV3
EV2 OUT OUT
- - - -
- - - -
SHIMADEN
. v
<
SR 54

29
ANEXA 4.3

DIAGRAME DE OPERARE ALE REGULATORULUI SHI MADEN


o u t
5 0. 0
1 2 3. 4
1 2 3. 4
0.1
n r
0. 0
0.12
0.13
S F
0 4. 0
d
0
0.11
I
1 2 0
0.10
P
3. 0
0.9
E - 3
E n d
0.8
E - 2
1 0. 0
0.7
E - I
1 0. 0
0.6
S - b
1. 0
0.5
r S
0. 0
0.4
L S
0. 0
0.3
1 2 3. 4
0. 0
0.2
7.10
P r t C
n o n L
n d - 7
o P t
mod 7
2.4
t - n d
o F F
n d - 2
t n E
mod 2
1.8
P r o G
o n
n d - 1
P r o G
mod 1 mod 0

30
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 (i
c
= 2 ...10 mA sau i
c
= 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.
Fig. 5.1. Schema principial a unui robinet de reglare normal nchis.
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.

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 = p
c
sau u = i
c
;
caracteristica static intrinsec a organului de reglare OR, K
v
= 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

oc
r
r
p
A Q
A
=
2
[m
3
/s] (5.1)

n care:

r
p A - cderea de presiune pe OR;
- densitatea fluidului;
A
r
- aria seciunii de trecere a OR;
o - coeficient de debit;
c - coeficient de expansiune (detent).

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

oc
r
r v
p
A K
A
=
2
(5.2)

Dependena K
v
=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

32
este ) / ( /
100
h h f K K
vs v
= , obinute prin raportarea valorilor curente la valorile lor
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.






Caracteristici statice de lucru ale OR

Dependena ) (h f Q = 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.2. Tipuri de caracteristici intrinseci: 1- logaritmic; 2 liniar; 3
cu deschidere rapid.
Fig.5.3. Caracteristici de lucru ale RR : a RR cu caracteristic
intrinsec liniar; b RR cu caracteristic intrinsec logaritmic

33
n figura 5.3 se prezint caracteristicile statice de lucru ale celor dou tipuri de
RR pentru diverse valori ale parametrului
0
100
s
r
p
p
A
A
= . Se observ c pentru
) ( 1
100 0 r s
p p A = A = , 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 P
0
la refularea pompei;
presiunea P
1
din amontele robinetului de reglare;
presiunea P
2
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.







34

Tabelul 5.1.
Date experimentale i calculate


Nr.
crt.
Mrimi primare Mrimi calculate

u
[%]
H
Q
[%]

P
0

[bar]

P
1

[bar]

P
2

[bar]

r
P A
[bar]

Q
[m
3
/h]

K
v

[m
3
/h]

100
H
H

100 v
v
K
K


100
Q
Q

H
d

[mm]
H
i
x
i
i

30
30
[mm]
1 96 30 93 3 1,9 1,5 0,4 10,23 16,17 1 1 1
2 86 29 92 3 1,95 1,45 0,5 10,12 14,31 0,96 0,88 0,98
3 76 28 91 3,05 2 1,4 0,6 10,01 12,92 0,93 0,79 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 = H
100
);
3. Se nchide complet robinetul R
1
, se pornete pompa prin acionarea
butonului P (pornire) de pe panoul asociat SRA-D, apoi se deschide complet
R
1
;
4. Se aduce robinetul R
2
ntr-o poziie convenabil (se recomand poziii pentru
R
2
care, pentru H = H
100
s conduc la P
2
= 12 bar);
5. Avnd RR cu H = H
100
(la sfritul punctului 4), se face prima serie de citiri
pentru tabelul anterior: u, H, Q, P
0
, P
1
,P
2
;
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 0H
100
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:
2 1
P P P
r
= A [bar];
100
100
[%]
SM
Q
Q
Q = [m
3
/h];
r r
v
P
Q
P
Q
K
A
=
A
=

,
unde Q
SM100
este valoarea maxim a domeniului sistemului de msurat debitul
(Q
SM100
=11 m
3
/h).
n continuare se va ilustra modul de calcul folosind exemplele de msurtori din
tabelul 5.1.

35

Exempul 1

4 , 0 5 , 1 9 , 1
2 1
= = = A P P P
r
bar;
23 , 10 11
100
93
100
[%]
100
= = =
SM
Q
Q
Q m
3
/h;
17 , 16
4 , 0
23 , 10
= =
A
=
r
v
P
Q
K m
3
/h;
1
30
30
100
= =
H
H
; ; 1
17 , 16
17 , 16
100
= =
v
v
K
K
1
23 , 10
23 , 10
100
= =
Q
Q
.

Exempul 2

5 , 0 45 , 1 95 , 1
2 1
= = = A P P P
r
bar;
12 , 10 11
100
92
100
[%]
100
= = =
SM
Q
Q
Q m
3
/h;
31 , 14
5 , 0
12 , 10
= =
A
=
r
v
P
Q
K m
3
/h;
96 , 0
30
29
100
= =
H
H
; ; 88 , 0
17 , 16
31 , 14
100
= =
v
v
K
K
98 , 0
23 , 10
12 , 10
100
= =
Q
Q
.


Exempul 3

6 , 0 4 , 1 2
2 1
= = = A P P P
r
bar;
01 , 10 11
100
91
100
[%]
100
= = =
SM
Q
Q
Q m
3
/h;
92 , 12
6 , 0
01 , 10
= =
A
=
r
v
P
Q
K m
3
/h;
93 , 0
30
28
100
= =
H
H
; ; 79 , 0
17 , 16
92 , 12
100
= =
v
v
K
K
97 , 0
23 , 10
01 , 10
100
= =
Q
Q
.

Cu rezultatele obinute vor fi construite:
caracteristica static intrinsec
|
|
.
|

\
|
=
100 100
H
H
f
K
K
v
v
;
caracteristica static de lucru
|
|
.
|

\
|
=
100 100
H
H
f
Q
Q
;
( CSI i CSL vor fi construite pe acelai grafic).

n continuare se determin valoarea parametrului +pentru CSL:


36
s
r
P
P
A
A
= +
100
(5.6)

unde :
100 r
P A este
r
P A pentru deschiderea maxim a RR (prima linie din tabelul 5.1);
( ),
00
gH P P P
v s
+ = A

00
P valoarea lui P
0
pentru Q = 0.

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

|
|
.
|

\
|
+ +
=
1
1
1
1
2
100
v
k
Q
Q

(5.7)

n care .
100 v
v
v
K
K
k =
Se observ c n cazul n care 1 = + rezult =
v
k
Q
Q
100
CLS se confund cu
CSI.

5.5. ntrebri. Exerciii. Probleme

1. Utiliznd relaia (5.6) se vor determina valorile debitului de scpri relativ
100
Q
Q
i absolut pentru cele trei caracteristici, respectiv pentru cele trei valori
ale lui +.
2. Ce semnificaie are K
v
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

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:

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
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; y
i
- referinta in unitati ale marimii reglate; u - comanda.

T
*

T
P EE C
- - -
r
y
m
p
u
i
y
i

DA

38
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.

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 m
3
/h.
Reglarea dup perturbaie va fi discutat cu ajutorul sistemului din fig. 6.3.











Qi
LI
V
1

R1
LT
Qe
Qe
V
2

H
RR
SP
R
3
R
2
Qe
H
i
LC
u
r
R
4
Fig. 6.2. Schema principial a SRA-N existent n laborator:
V
1
,V
2
- vase cu lichid (suprapuse); R
1
R
4
- robinete de izolare; LI - indicator de nivel
(sticla de nivel).

SP2
Qe2
2 V
H
Qi
RR
FT
LC
SP1
Qe1
1
r
u

39


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; SP
1
, SP
2
surse de presiune
(pompe).
Alimentarea vasului are debitul Q
i
. Lichidul din vas este extras prin dou
conducte, cu debitele Q
el
, respectiv Q
e2
. Prin conductele 1 i 2 curgerea este forat, sub
presiunea creat de pompele SP
1
i SP
2
.

Punerea problemei de reglare:
obiectivul sistemului const din meninerea constant a nivelului H, la o
anumit valoare, notat n continuare cu H
i
;
debitele Q
el
i Q
e2
au, din punctul de vedere al vasului, variaii aleatoare n
timp (acestea sunt perturbaii);
debitul Q
i
poate fi utilizat drept comand, ceea ce nseamn c acesta va fi
modificat astfel nct s se menin nivelul H la valoarea H
i
(H = H
i
).
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
H
i
i a debitului de intrare n vas, Q
i
. 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 H
i
);
b. se modific H
i
cu 10% astfel nct H
i
=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 Q
i
acionnd robinetul R
1
(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 H
i
i perturbaiei Q
i
.

40
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.

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 Q
e1
sau Q
e2
(precizare: debitul Q
e2
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.
t
t
t
Hi
H
Hi-H
30%
40%
t
t
t
Qi
H
Hi-H
50%
60%
Fig. 6.4. Grafice pentru analiza calitativ a rspunsului n timp pentru SRA-N.

41

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 T
m
.








Fig. 6.6. Reglarea temperaturii ntr-o incint.
























P
Qe Qi
Qe(t) - aleator
Qi - comanda
T
Agent termic
Tm

42
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:






43
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
var1,var2,... Fiecreia din variabilele var1,var2,... trebuie sa i corespund un
specificator de format:


44
%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()

Efect: poziioneaz cursorul-text n linia i coloana specificate
Sintaxa: gotoxy(nr_coloan, nr_linie);


45
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;
.
.
.
default:
instruciuni
}

46

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.

Ciclul do

Sintaxa:


47
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:
Aflarea restului mpririi numrului ntreg a la numrul ntreg b:
rest=a%b;




48
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; /* pentru an */
char da_day: /* pentru zi */
char da_ mon; /* 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.







49
/*
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>
#include<stdlib.h>

struct date d;
struct time t;


50
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(); /* test apasare tasta */
if((c=='e' )|| (c=='E')) exit(1);
} /* sfirsit for */
} /* sfirsit main */

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.



Coloana 80
Linia 25
Linia 1
Coloana 1
y
x
Fig.7.1. Numerotarea liniilor i coloanelor n cadrul modului
alfanumeric

51
Prototipurile funciilor specifice modului text se gsesc n header-ul conio.h ,al
crui coninut este prezentat n continuare.




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.

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);

CONIO.H
_________
Functions
_________
cgets clreol clrscr cprintf
cputs cscanf delline getch
getche getpass gettext gettextinfo
gotoxy highvideo insline inp
inport inportb inpw kbhit
lowvideo movetext normvideo outp
outport outportb outpw putch
puttext _setcursortype textattr textbackground
textcolor textmode ungetch wherex
wherey window

Constants, data types, and global variables
____________________________________________
BLINK COLORS directvideo _NOCURSOR
_NORMALCURSOR _SOLIDCURSOR text_info text_modes
_wscroll

52

Setarea culorilor

n tabelul 7.1 se prezint codurile culorilor din paleta principal.

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

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.


Tabelul 7.1
Codurile culorilor
Culoare Functie C Cod
negru BLACK 0
albastru BLUE 1
verde GREEN 2
turcoaz CYAN 3
rou RED 4
purpuriu MAGENTA 5
maron BROWN 6
gri deschis LIGHTGRAY 7
gri nchis DARKGRAY 8
albastru deschis LIGHTBLUE 9
verde deschis LIGHTGREEN 10
turcoaz deschis LIGHTCYAN 11
rou deschis LIGHTRED 12
purpuriu deschis LIGHTMAGENTA 13
galben YELLOW 14
alb WHITE 15
clipire BLINK 128



53
/*
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() */
}
}



Modul grafic

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


54


Setarea modului grafic rezult din urmtoarea secvena de program:



____________
GRAPHICS.H
____________
Functions
_________
arc bar bar3d
circle cleardevice clearviewport
closegraph detectgraph drawpoly
ellipse fillellipse fillpoly
floodfill getarccoords getaspectratio
getbkcolor getcolor getdefaultpalette
getdrivername getfillpattern getfillsettings
getgraphmode getimage getlinesettings
getmaxcolor getmaxmode getmaxx
getmaxy getmodename getmoderange
getpalette getpalettesize getpixel
gettextsettings getviewsettings getx
gety graphdefaults grapherrormsg
_graphfreemem _graphgetmem graphresult
imagesize initgraph installuserdriver
installuserfont line linerel
lineto moverel moveto
outtext outtextxy pieslice
putimage putpixel rectangle
registerbgidriver registerfarbgidriver registerbgifont
registerfarbgifont restorecrtmode sector
setactivepage setallpalette setaspectratio
setbkcolor setcolor setfillpattern
setfillstyle setgraphbufsize setgraphmode
setlinestyle setpalette setrgbpalette
settextjustify settextstyle setusercharsize
setviewport setvisualpage setwritemode
textheight textwidth

Constants, data types, and global variables
___________________________________________
arccoordstype CGA_COLORS COLORS
EGA_colors fill_patterns fillsettingstype
font_names graphics_drivers graphics_errors
graphics_modes HORIZ_DIR line_styles
line_widths linesettingstype MAXCOLORS
line_widths linesettingstype MAXCOLORS
palettetype pointtype putimage_ops
text_just text directions textsettingstype
USER_CHAR_SIZE VERT_DIR viewporttype


55
#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>

int gdrv=VGA,gmod=VGAHI,errorcode; /* adaptor VGA, submod VGAHI
(640 x 480 pixeli, 16 culori) */
void main(void)
{
initgraph(&gdrv,&gmod,"c:\\bc\\bgi"); /* iniializare mod grafic */
errorcode=graphresult(); /* 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); - restabilete modul text;
void setgraphmode(void); - restabilete modul grafic;
void closegraph(void); - nchide sistemul grafic.
int getgraphmode(void); - ntoarce o valoare intre 0 si 5 funcie de driverul
grafic.

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











(0,0) x (639,0)
(0,479) (479,639)
y
Fig. 7.2. Numerotarea liniilor si coloanelor in cazul modului grafic.

56

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.3
Codificarea stilurilor de linie
Nume Cod Descriere
SOLID_LINE 0 linie continu
DOTTED_LINE 1 linie punctat
CENTER_LINE 2 linie ntrerupt ( )
DASHED_LINE 3 linie intrerupt ( )
USERBIT_LINE 4 stil definit de utilizator

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


57

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();



Tabelul 7.4
Codificarea grosimilor de linie
Nume Cod Descriere
NORM_WIDTH 1 1 pixel latime
THICK_WIDTH 3 3 pixel latime


58
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.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

. Tabelul 7,5
Codificarea modelelor de haurare
Nume Cod Descriere
EMPTY_FILL
0 umple cu culoarea de fond
SOLID_FILL
1 umple uniform toi pixelii
LINE_FILL
2 haur orizontal
LTSLASH_FILL
3 haur ///
SLASH_FILL
4 haur /// linii groase
BKSLASH_FILL
5 haur \\\ linii groase
LTBKSLASH_FILL
6 haur \\\
HATCH_FILL
7 haur n cruce +++
XHATCH_FILL
8 haur n cruce oblic
INTERLEAVE_FILL
9 haur cu ntreesere
WIDE_DOT_FILL
10 umple cu puncte rare
CLOSE_DOT_FILL
11 umple cu puncte dese
USER_FILL
12 model utilizator



59
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 0 8x8 mapped font
TRIPLEX_FONT 1 strk.trip.font
SMALL_FONT 2 strk. small font
SANS_SERIF_FONT 3 strk.sans serif font
GOTHIC_FONT 4 strk. gothic font


Tabelul 7.8
Codificarea direciei textului pentru modul grafic
Nume Valoare Descriere
HORIZ_DIR 0 stinga-dreapta
VERT_DIR 1 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.


60
/*
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);

61
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;

62
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.

63
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.



































64
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 MO,50pF;
Neliniaritate +/- 1 LSB;
Eroare inerent +/- 1 LSB.

65


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 compatibile TTL;

Conector intrare/ieire 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);

66

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);


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
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
25 26
27 28
29 30
31 32
33 34
35 36
37 38
39 40
41 42
43 44
45 46
47 48
49 50
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
Nume I/O Funcie
AIx Intrare
Canal x
Int.Anal.
DAx Ieire
Canal x Ieire
Anal.
Dix Intrare
Canal x Int.
Num.
DOx Ieire
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.

67
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
0 INIT
Iniializeaz funciile driver-ului AX5411
1
SET_CH Seteaz canalul de achiziie
2 SET_GAIN
Seteaz domeniul pentru toate canalele
3 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 - INIT (sau 0);
dio[0] - adresa portului de baz (IOPORT);
dio[1] - nivel IRQ (de la 2 la 7);
dio[2] - canal DMA (1 sau 3);
dio[3] - neutilizat;
dio[4] - neutilizat;
dio[5] - neutilizat;
dio[6] - neutilizat;
-ary1 - neutilizat;
-ary2 - neutilizat.



68

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;

69
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; // funcia set canal
dio[0]=0; // nr. canal start
dio[1]=15; //nr. canal stop
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de setare canal\n");
else
printf("Setare reusita/n");
.

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.



*)Valoare Domeniu
1 -5/+5 V
2 -2.5/+2.5 V
4 -1.25/+1.25 V
8 -0.625/+0.625 V
16 -0.3125/+0.3125 V

70
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.



71
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; // functia de initializare
dio[0]=IOPORT;
dio[1]=3;
dio[2]=3;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de initializare \n");
// setare numar canal

72
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; //functia software trigger
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de achizitie\n");
else
// 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( ); // iesire din program
return 0;
}



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 2 (DO0,DO1);
Rezoluie 12 bit;
Frecven max. 33 kHz ;
Domeniu de ieire 0..5V;
Curent de ieire max 5 mA .


73
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
Nr cuante
gen
= -
.
4096
5
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);


74
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
Nr cuante
gen
= -
.
4096
5

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;
b) se construiete un proiect (extensia .prj) conform exemplului de mai jos;

75
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; // functia de initializare
dio[0]=IOPORT;
dio[1]=3;
dio[2]=3;
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)
printf("Eroare de initializare\n");
// 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; // functia set domeniu
dio[0]=1; // domeniu selectat -5/+5V
flag=ax5411(fun,dio,ary1,ary2);
if(flag != 0)

76
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 urmtoarele
componente funcionale importante:
- panoul complex IAN;

77
- platformele de lucru P1, P2, P3;
- stand pentru reglarea presiunii.
Platformele de lucru P
1
, P
2
, P
3
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 SC
1
, SC
2
, SC
3,
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 P
i
(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;

78


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.
PANOU
I. A. N.
G2 G1
G3
P1
P2
P3
SC3
SC1
SC2

79






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;


AX 5411
MTM
SC
i

De la G
i
, i= 1...3
17 1
P
i

12 11
-
-
+
+
Fig. 8.4.Montajul utilizat pentru testarea intrrilor analogice:
SC
i
- sir de cleme; G
i
- generator de semnal unificat; MTM - multimetru;
P
i
- platforma de lucru.
Fig. 8.3. Configuraia irului de conectori.
Semnal

traductor
Generator
de
semnal
Semnal
unificat
4...20 mA
Comanda

1...5 V
+ + +

+
1 2 3 4 5 6 7 8 9 10
11 12

250

80
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 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.




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 U
ach
= f(U
gen
) 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.






AX 5411
MTM
+

23
25
1
Fig. 8.5. Montajul utilizat pentru testarea ieirilor analogice :
MTM - multimetru numeric.


81

LUCRAREA 9

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.

82


Tabelul 9.1
Funcii logice elementare (tabela de adevr )

A B AB AUB /A
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 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 Denumire Forma sum Forma produs
A
1
nchiderea mulimii B n
raport cu operaiile +,
B y x B y x e e + B y x B y x e + e
A
2
Asociativitate x + (y + z) = (x + y) + z x ( y z ) = ( x y ) z
A
3
Comutativitate x + y = y + x x y = y x
A
4
Element neutru x+0=0+x x l = l x
A
5
Distributivitate x + y z = (x + y) (x + z) x (y + z) = x y + x. z
A
6
Existenta complementului
1 = + x x 0 = x x
T
1
Idempotena (tautologia) x + x = x x x = x
T
2
Element neutru x + l = l x 0 = 0
T
3
Teorema dublei negaii
x x =
x x =
T
4
Absorbia x + x y = x x (x + y) = x
T
5
Teoremele De Morgan y x y x = + y x y x + =


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

83

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); /* se citete a */
printf("b="); scanf("%d", &b); /* se citete b */
f=a & 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);
}
}






84
9.3. Desfurarea lucrrii

1. Se pornete sistemul.
2. Se intra n subdirectorul de lucru al subgrupei;
3. Se lanseaz mediul de programare ;
4. Se introduce programul demonstrativ ;
5. Se compileaz, se linkediteaz i se lanseaz n execuie acest program;
6. 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.

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