1
REPREZENTĂRI GRAFICE TRIDIMENSIONALE UTILIZÂND MATLAB
Funcţie de o singură variabilă y=f(x)↓
linie↓
Reprezentare grafică bidimensională 2D
Funcţie cu două variabile z=f(x,y)↓
suprafaţă↓
Reprezentare grafică tridimensională 3D
Reprezentări grafice 3D:1. Linii de contur
2. Reţele spaţiale
3. Suprafeţe spaţiale
Pentru a putea reprezenta ofuncţie de două variabile z=f(x,y)este necesară generarea unei reţelede noduri în planul x-y. În nodurilereţelei se calculează valoareafuncţiei de reprezentat.
[X,Y]=meshgrid(x,y)
• Această funcţie transformă domeniul plandefinit de cei doi vectori x şi y monotoncrescători şi cu pas constant în matricele(tablourile) X şi Y.• Acestea din urmă practic conţin perechilede coordonate ale nodurilor definite înplanul respectiv, şi pot fi utilizate atât laevaluarea funcţiilor de două variabile, câtşi pentru reprezentările graficetridimensionale.
• Dacă vectorul x este de lungime n, iar y arem elemente, atunci matricele X şi Y voravea dimensiunea nxm.• Cele m linii ale matricei X vor coincide cuvectorul x. Cealaltă matrice generată, Y, vaavea n coloane identice cu vectorul y.• Aceste două matrice se vor putea utilizapentru definirea unei funcţii de douăvariabile în nodurile definite
2
x=-1:1;y=-2:0.5:3;[X,Y]=meshgrid(x,y);
X =-1 0 1-1 0 1
-1 0 1 -1 0 1 -1 0 1 -1 0 1
Y = -2 -2 -2
-1 -1 -1 0 0 0
1 1 1 2 2 2 3 3 3
ExempluExemplu
2222
22
)1(33
)1(2
31
510
)1(3),(
yxyx
yx
eeyxxexyxz
−+−−−
+−
−⎟⎠⎞
⎜⎝⎛ −−−
−−=
În toate exemplele care vor urma se vareprezenta următoarea funcţie de douăvariabile:
peaks.m
11..RREEPPRREEZZEENNTTĂĂRRII CCUULLIINNIIII DDEE CCOONNTTUURR
contour(X,Y,Z)C=contour(X,Y,Z)[C,h]=contour(X,Y,Z)contour(X,Y,Z,n)contour(X,Y,Z,v)
1. Desenează 10 linii de contur2. Pe lângă cele 10 linii de contur se obţine
şi matricea liniilor de contur (C)3. Se obţine şi identificatorul grafic al
obiectului grafic desenat (h)4. Se prescrie numărul liniilor de contur de
desenat (n)5. Se vor desena liniile de contur aferente
valorilor date în vectorul v
% Generarea retelei de noduri pe domeniului considerat[X,Y]=meshgrid(-3.75:0.05:3.5);
% Evaluarea functiei de doua variabile de reprezentatZ=peaks(X,Y);
% Reprezentarea liniilor de conturcontour(X,Y,Z)
ExempluExemplu
3
Dacă se doreşte să se reprezinte 50 de linii decontur funcţia trebuie apelată astfel:
contour(X,Y,Z,50)
Cu ajutorul următoarei secvenţe de programse vor desena liniile de contur aferentevectorului v cu linii de grosime 1,5 şi deculoare galbenă:
% Specificarea nivelelor de reprezentatv=[-1:2:7];
% Lansarea comenzii pentru reprezentarea grafica[C,h]=contour(X,Y,Z,v,'y');
% Setarea grosimii liniilor de conturset(h,'LineWidth',1.5);
Există posibilitatea desenării liniilor de contur aferentevalorilor pozitive şi negative cu diferite tipuri de linii.Pentru acesta după încărcarea matricei Z se lanseazăurmătoarea secvenţă de program:
% Incarcarea nivelelor negative de reprezentatv_neg=-3:0.5:-1;
% Incarcarea nivelelor pozitive de reprezentatv_poz=1:0.5:7;
% Desenarea liniilor de contur corespunzatoare% - nivelelor negative cu linii intrerupte albastre
contour(X,Y,Z,v_neg,'b--');hold on
% - nivelelor pozitive cu linii continue rosiicontour(X,Y,Z,v_poz,'r-');hold off
4
Prin utilizarea comenzii clabel există posibilitatea etichetării liniilor de contur desenate
1. Etichetează automat liniile de contur dejadesenate
2. Etichetează doar liniile de contur aferentevalorilor cuprinse în vectorul v
3. Etichetarea manuală
clabel(C)clabel(C,v)clabel(C,'manual')
clabel(C)
ExempluExemplu
Cu ajutorul funcţiei contour3 se pot desena linii de contur tridimensionale.
Toate sintaxele prezentate în cazul funcţieicontour sunt valabile şi în acest caz.
Să se reprezinte funcţia dată cu 30 de liniicontur spaţiale de grosime 1,5 şi să sepersonalizeze reprezentarea grafică obţinutăprin:• Specificarea unui titlu• Etichetarea axelor• Plasare unui caroiaj peste figură
ExempluExemplu
% Evaluarea functiei considerate[X,Y]=meshgrid(-3.75:0.25:3.5);Z=peaks(X,Y);
% Comanda destinata desenarii a 30 de linii de% contur spatiale corespunzatoare functiei date
[C,h]=contour3(X,Y,Z,30);% Setarea grosimii liniilor de contur la 1,5 puncte
set(h,'LineWidth',1.5)% Plasarea unui grid (3D in acest caz)
grid on% Determinarea limitelor axelor de coordonate
axis([-3,3,-3,3,-6,6])% Etichetarea celor trei axe
xlabel('x')ylabel('y')zlabel('z')
% Scrierea unui titlu deasupra figuriititle('REPREZENTAREA CU LINII DE CONTUR SPATIALE')
5
22..DDEESSEENNAARREEAA
SSUUPPRRAAFFEEŢŢEELLOORRSSPPAAŢŢIIAALLEE
a. Reprezentarea cu o reţea spaţială
Matricea de culoare C defineşte modulde colorare al reţelei
mesh(X,Y,Z,C)
Funcţia mesh mai are alte trei variante: 1. meshc – desenează suplimentar sub reţeaua
spaţială liniile de contur2. meshz – sub reţeaua mai trasează suplimentar
un plan de referinţă până la valoarea minimă afuncţiei (un fel de piedestal)
3. waterfall – desenaeză o figură foarte asemănătoare cu cea obţinută cu ajutorulfuncţiei meshz, cu singura diferenţă că în acest caz se desenează dintre liniile careformează reţeaua doar cele de pe axa y.
% Evaluarea functiei date pe domeniul considerat[X,Y]=meshgrid(-3.75:0.2:3.5);Z=peaks(X,Y);
% Lansarea comenzii mesh destinata% reprezentarii grafice dorite
mesh(X,Y,Z)
ExempluExemplu
b. Reprezentarea cu suprafeţe netede
Funcţia surface are de asemenea o serie de variante:1. surfc – sub suprafaţa netedă desenează
şi liniile de contur2. surfl – se poate specifica punctul de
iluminare a suprafeţei3. surfnorm - pe lângă suprafaţa generată se
mai desenează şi normala la fiecareelement al reţelei
surf(X,Y,Z,C)
6
surf(X,Y,Z)
ExempluExemplu
Legendă de culori
Reprezentărilor spaţiale se poate ataşa olegendă de culori, care indică la ce nivelece nuanţe de culori corespund înreprezentarea dată.
unde orientare poate fi: vert horz
colorbar('orientare')
mesh(X,Y,Z) surf(X,Y,Z)
colorbar colorbar('horz')
ExempluExemplu
33..AAllttee ggrraaffiiccee
ttrriiddiimmeennssiioonnaallee
Uneşte cu drepte punctele spaţialedefinite de coordonatele x, y şi z (stocateîn cei trei vectori x, y, respectiv z).Toate variantele de apelare ale funcţieiplot sunt valabile şi aici.
plot3(x,y,z)ExempluExemplu
Să se reprezinte în spaţiu spirala luiArhimede dată de următorul sistemde ecuaţii:
⎩⎨⎧
==
)cos()()()sin()()(ttrtyttrtx
unde:tctr ⋅=)(
pentru c=0,3 pe intervalul t∈[0, 100].
7
% Incarcarea variabilei c si a vectorului tc=0.3;t=0:0.1:100;
% Determinarea coordonatelor punctelor% definite de sistemul de ecuatii
r=c.*t;x=r.*sin(t);y=r.*cos(t);
% Trasarea liniei spatiale reprezentand spirala lui% Arhimede cu o linie rosie de grosime 1,5
plot3(x,y,t,'r','LineWidth',1.5)% Plasarea unui rastru spatial
grid% Etichetarea celor trei axe
xlabel('x')ylabel('y')zlabel('t')
Desenează poliedre spaţiale. Vârfurilepoliedrelor sunt determinate de vectoriix, y, z,Variabila c defineşte culoarea dedesenare a feţeloor poliedrului.
fill3(x,y,z,c)
ExempluExemplu
Să se reprezinte un poliedru spaţial cu trei feţeperpendiculare, de diferite culori.
% Incarcarea vectorilor cu coordonatele varfurilor% celor trei dreptunghiuri care vor forma% poliedrul spatial
x1=[0,1,1,0]; y1=[0,0,-1,-1]; z1=[0,0,0,0];x2=[1,1,1,1]; y2=[0,0,-1,-1]; z2=[0,1,1,0];x3=[0,1,1,0]; y3=[0,0,-1,-1]; z3=[1,1,1,1];
% Comanda formata din trei unitati, fiecare% desemnand cate-o fata a poliedrului spatial
fill3(x1,y1,z1,'r',x2,y2,z2,'g',x3,y3,z3,'b');
Generează un obiect de tip cilindru (practic osuprafaţă de revoluţie) de înălţime, măsuratăpe direcţia z, unitară.• Vectorul r precizează punctele care definesc
dreapta sau curba rotită în jurul axei z.• Scalarul n indică numărul punctelor de pe
circumferinţa corpului generat• Implicit se consideră n=20 şi r=[1,1].
Alegând corespunzător r şi n se pot desenadiferite corpuri spaţiale: con, trunchi de con,piramidă, trunchi de piramidă, etc.
cylinder(r,n)[X,Y,Z]=cylinder(r,n)
8
cylinder
ExempluExemplu ExempluExemplu
Să se deseneze un con cu raza 2 şi înălţime 10.
% Precizarea punctelor de pe dreapta care defineste% suprafata de rotatie si a inaltimii corpului
r=[2,0];hm=10;
% Incarcarea celor trei matrice cu datele suprafetelor[X,Y,Z]=cylinder(r,50);
% Impunerea inaltimii corpuluiZ=hm*Z;
% Desenarea corpuluih=surf(X,Y,Z);
% Setarea colorilor utilizate la desenare:% - albastru pentru desenarea laturilor% - galben pentru culoarea suprafetelor
set(h,'EdgeColor','b')set(h,'FaceColor','y')
Desenează o sferă unitară.sphere
ExempluExemplusphereaxis equal
44..FFUUNNCCŢŢIIII UUTTIILLEE ÎÎNNRREEPPRREEZZEENNTTĂĂRRII
SSPPAAŢŢIIAALLEE
Reprezentările grafice tridimensionale, fiindobiecte spaţiale, pot fi vizionate din diferitepuncte (sub diferite unghiuri) ale spaţiului.Controlul acesteia se poate face cu funcţia:
1. Se fixează unghiul din care se vedeobiectul prezentat, compus din unghiul derotire în plan, pe orizontală (azimutul) şiunghiul pe verticală, făcut cu planulorizontal (elevaţia).
2. Se stabilesc cele trei coordonate alepunctului de observare.
view(v,h)view([x,y,z])
9
view([1,0,0]) view(30,65)
ExempluExempluModul de desenare şi de colorare alreprezentărilor grafice spaţiale ajută mult lainterpretarea lor corectă.
Funcţia shading setează modul de desenare a lor
1. Fiecare ochi al reţelei este colorat cu culoareacorespunzătoare nivelului vârfului din stânga-sus al ochiului
2. Ca şi în cazul precedent, cu diferenţa că pefigură se desenează şi reţeaua spaţială (estesetarea implicită)
3. Fiecare element este colorat cu o nuanţărezultată din interpolarea liniară a culorilorcorespunzătoare liniilor sau colţurilorsuprafeţei, rezultând o trecere de la o nuanţă laalta mai plastică
shading flatshading facetedshading interp
Pentru colorarea suprafeţelor se utilizează hărţi deculori (color maps), stocate în matrice dedimensiuni mx3.• O asemenea matrice defineşte m culori.• Pe fiecare dintre cele m rânduri ale matricei este
un triplet RGB.• Primul rând din această matrice defineşte
culoarea corespunzătoare nivelului cel mai micdin figură
• Cele trei valori de pe ultimul rând specificăcomponentele culorii ataşată celui mai mare nivel
• Restul nivelelor se colorează interpolând scara deculori în funcţie de valoarea nivelului.
1. Se utilizează harta colorată nume_hartaconţinând m combinaţii de culori (implicitm=64)
2. Se utilizează harta colorată C definită deutilizator
3. Returnează matricea c aferentă hărţii colorateimplicite
colormap(nume_harta(m))colormap(C)C=colormap
Există 17 hărţi de culori predefinite dintre careamintim:• bone (cu nuanţe de albastru) • cool (culori albastru-mov) • copper (nuanţe de arămiu) • flag (alternativ roşu, alb, albastru şi negru) • gray (nuanţe de gri) • hot (combinaţii de negru, roşu, galben şi alb) • hsv (culori determinate sub forma HSV nuanţă-
saturaţie-luminozitate, Hue-Saturation-Value)• jet (nuanţe saturate date sub formă HSV) • pink (nuanţe de pastel) • prism (repetă ciclic cele şase culori ale
curcubeului: roşu, portocaliu, galben, verde,albastru şi violet)
10
Alte funcţii utile:
• Cu caxis se poate utiliza doar o parte a matricei de culori
• Cu brighten se poate seta luminozitatea (stărlucirea) repfrezentării grafice
• contrast reglează contarcstul reprezentării garfice
Toate acestea practic modifică harta deculori utilizată.
shading flat surfl(X,Y,Z,[0,90])colormap(pink)
colormap(jet(250)) shading interp
ExempluExemplu
33.. UUttiilliizzaarreeaa ggrraaffiicceelloorr ssppaaţţiiaalleellaa rreepprreezzeennttaarreeaa
ccaarraacctteerriissttiicciilloorr îînn ffuunnccţţiiee ddeeuunn ppaarraammeettrruu aallee mmaaşşiinniilloorr
eelleeccttrriiccee
a. Reprezentareacaracteristicilor de viteză alemaşinilor de c.c. cu excitaţie
serie şi derivaţie
Φ+−
=Ωe
aextaK
IRRU )(
• Ω viteza• U tensiunea la borne• Ra rezistenţa indusului• Rext rezistenţa externă• Ia curentul din indus• Ke constanta comună a maşinii• Φ fluxul util de excitaţie
Caracteristicile de viteză ale maşinilor de c.c. cuexcitaţie serie şi derivaţie pentru caul în care înexistă rezistenţe externe în circuit sunt date de Să se reprezinte pentru diferite valori ale
rezistenţei exterioare caracteristicile deviteză ale maşinii de c.c. având următoareledate:
UN=220 VRa=0.82 ΩΩN=50*π rad/sIN=22 AKeΦ=1.285 Vs
Rezistenţa exterioară să se varieze între 0 şi7 Ω (din 1 în 1 Ω).
ExempluExemplu
11
Varianta 1.
Reprezentarea grafică bidimensională
clear all; clf% datele masinii
UN=220; %[V]Ra=0.82; %[ohm]OmegaN=50*pi; %[rad/s]IN=22; %[A]KeFi=1.285; %[Vs]
% Ciclu pentru desenarea diferitelor caracteristicifor Rext=0:7;
I=0:0.1:25;Omega=(UN-(Rext+Ra)*I)/KeFi;plot(I,Omega,'b','LineWidth',1.5)
hold onendaxis([0,30,0,180])xlabel('I [A]')ylabel('\Omega [rad/s]')hold off
% Ciclu pentru etichetarea caracteristicilor desenatefor Rext=0:7;
I=25;Omega=(UN-(Rext+Ra)*I)/KeFi;text(I,Omega,[' R_ext=',num2str(Rext),' \Omega'])
end
Varianta 2.
Reprezentarea grafică în spaţiu
clear all; clfRext=0:0.5:7;I=0:25;[X,Y]=meshgrid(I,Rext);nrx=0;for x=I
nrx=nrx+1;nry=0;for y=Rext
nry=nry+1;Z(nry,nrx)=mcc1(x,y);
end;end;mesh(X,Y,Z,'LineWidth',1.25)view([1,1,1])axis([0,25,0,7,0,175])set(gca,'Xtick',0:5:25)set(gca,'ytick',[0,2,4,6,7])set(gca,'Ztick',0:25:175)xlabel('I [A]')ylabel('R_ext [\Omega]') zlabel('\Omega [rad/s]')hidden offgrid on
În programul precedent s-a utilizat pentrucalcularea vitezei maşinii o funcţie (mcc1.m) având două variabile la intrare:
function Omega=mcc1(I,Rext)UN=220; %[V]Ra=0.82; %[ohm]OmegaN=50*pi; %[rad/s]IN=22; %[A]KeFi=1.285; %[Vs]
Omega=(UN-(Rext+Ra)*I)/KeFi;
12
Compararea figurilorCompararea figurilor
b. Reprezentareacaracteristicilor
mecanice ale maşinilorasincrone cu rotorul
bobinat
Caracteristica mecanică a maşinii asincrone curotorul bobinat, M=f(s), este dată de relaţia:
( )2212
21
22
11 1
2XX
sRR
U
sR
fpmM f
′++⎟⎠⎞
⎜⎝⎛ ′
+
′=
π
m1 numărul fazelorp numărul perechilor de poliUf1 tensiunea de alintaref1 frecvenţa tensiunii de alimentareR1 rezistenţa statoricăR'
2 rezistenţa rotorică raportată la statorX1 reactanţa de scăpări ale înfăşurărilor statoriceX'
2 reactanţa de scăpări ale înfăşurărilor rotoriceraportată la stator
Să se reprezinte caarcteristicile mecaniceale maşinii asincrone cu rotorul bobinatavând datele următoare:
m1=3, p=3Uf1=220 V, f1=50 HzR1=0,472 Ω, R2'=0,568 ΩX1=2,3 Ω, X2'=2,272 Ω,
Se vor considera rezistenţele rotorice avândvalorile cuprinse între limitele R2' şi 11•R2'.
ExempluExemplu
Varianta 1.
Reprezentarea grafică bidimensională
13
clear all; clfUN=220; % Vm=3; p=3;f=50; % HzR1=0.472; R2=0.568; % ohmX1=2.3; X2=2.272; %ohmnr=0;for k=1:2:11;
nr=nr+1;s=-2:0.005:2;if s==0 M=0;
elseM=m*p/2/pi/f*k*R2./s*UN^2./((R1+k*R2./s).^2+(X1+X2)^2);
endMM(:,nr)=M';SS(:,nr)=s';
endplot(SS,MM,'LineWidth',1.5)xlabel('s'); ylabel('M [Nm]')h=legend('R2','3R2','5R2','7R2','9R2','11R2');grid onaxes(h);refresh
Varianta 2.
Reprezentarea grafică în spaţiu
clear all; clfk=1:0.5:11;s=-2:0.25:2;[X,Y]=meshgrid(s,k);nrx=0;for x=s
nrx=nrx+1;nry=0;for y=k
nry=nry+1;Z(nry,nrx)=mas1(x,y);
end;end;surf(X,Y,Z)colorbarview(15,50)axis([-2,2,1,11,-175,125])set(gca,'ytick',[1,2,3,5,7,9,11])set(gca,'Ztick',[-150,-100,-50,0,50,100,150])xlabel('s')ylabel('k \cdot R2 [\Omega]') zlabel('M [Nm]')grid on
Programul precedent utilizează funcţiamsa1.m destinată calculării cuplului maşinii sincrone cu rotorul bobinat. Are ca variabilede intrare alunecarea (s), respectivmultiplicatorul rezistenţei rotorice (k).
function M=mas1(s,k)UN=220; %[V]m=3; p=3;f=50; % HzR1=0.472; %ohm R2=0.568; % ohmX1=2.3; %ohmX2=2.272; %ohm
if s==0 M=0;elseM=m*p/2/pi/f*k*R2./s*UN^2./((R1+k*R2./s).^2+(X1+X2)^2);
end
14
Compararea figurilorCompararea figurilor
VVVăăă mmmuuulllţţţuuummmeeessscccpppeeennntttrrruuu aaattteeennnţţţiiiaaa
aaacccooorrrdddaaatttăăă!!!