Sunteți pe pagina 1din 131

COMPLEMENTE DE MECATRONICÃ

CIPRIAN I. RIZESCU

SILVIA N. MIU

DANA RIZESCU

COMPLEMENTE D E M E C A T R O N I C Ã CIPRIAN I.
COMPLEMENTE D E M E C A T R O N I C Ã CIPRIAN I.
COMPLEMENTE D E M E C A T R O N I C Ã CIPRIAN I.
COMPLEMENTE D E M E C A T R O N I C Ã CIPRIAN I.
COMPLEMENTE D E M E C A T R O N I C Ã CIPRIAN I.
COMPLEMENTE D E M E C A T R O N I C Ã CIPRIAN I.

1.Introducere

CAPITOLUL 1 INTRODUCERE

1.1 Obiectul lucrării

În această lucrare sunt prezentate exemple de reprezentare grafică, calcul numeric, diferenţiere grafică sau de citire a datelor de pe grafic bazate pe anumite aplicaţii întâlnite în practică. Totodată sunt amintite şi principalele funcţii şi comenzi utilizate în programele scrise în spaţiul de programare MATLAB. Trebuie subliniat faptul că dintre numeroasele software– uri existente în prezent în comerţ, cel mai indicat pentru analiza statică şi dinamică a sistemelor mecatronice este programul Matlab, datorită răspândirii sale pronunţate atât în mediul academic cât şi în cel industrial. Totodată mai trebuie spus că limbajul de programare permite o construcţie simplă a algoritmilor de calcul şi permite o vizualizare rapidă şi uşoară a rezultatelor. Mediul de programare dispune de multe comenzi pentru analiza numerică, pentru calculul matricial şi vectorial, pentru generarea şi procesarea semnalelor, pentru analiza sistemelor de control şi pentru integrarea numerică a sistemelor liniare sau neliniare. Mai trebuie amintite şi comenzile eficiente pentru generarea graficelor bidimensionale şi tridimensionale, ce pot fi foarte uşor personalizate. Scrierea modelelor în mediul MATLAB apelează sintaxe şi notaţii foarte asemănătoare cu cele utilizate pentru definirea analitică a modelelor, ceea ce face ca programarea propriu-zisă să fie destul de uşoară. În cadrul cursurilor predate de autori sunt prezentate mai multe modele matematice ale sistemelor statice sau dinamice, sunt prezentate diferite standuri experimentale, pentru care modelarea şi simularea în MATLAB este indispensabilă.

1.2 Generalităţi

După tastare Matlab, sau dacă se utilizează mediul Windows se “clichează” de două ori pe pictograma MATLAB şi se intră în spaţiul de lucru (Workspace) al Matlab-ului. În acest spaţiu se pot executa toate comenzile, se pot afişa index-urile, rezultatele. Câteva din comenzile şi informaţiile importante sunt:

1

Complemente de mecatronică

WHO

listează toate variabilele prezente în Workspace;

WHOS

asemănătoare cu WHO, dar în plus, furnizează dimensiunea variabilei

(numărul de linii sau de coloane ce aparţin variabilei);

WHAT

listează fişierele *. m sau *.mat, prezente în directorul curent;

HELP

furnizează informaţii “on-line” despre MATLAB şi funcţiile acestuia;

%

o linie precedată de % este interpretată ca un comentariu şi nu

este executată;

apăsând această tasta se readuce pe ecran ultima comandă tastată;

!

execută comenzi din sistemul de operare DOS, fără părăsirea

MATLAB-ului;

QUIT, EXIT

comenzi pentru ieşirea din MATLAB.

Notă: Programul MATLAB face distincţie între literele majuscule şi cele mici (g nu este

acelaşi lucru cu G). Toate comenzile în MATLAB se vor scrie utilizându-se literele mici, în

caz contrar se vor afişa mesaje de eroare ce avertizează ca o anume comandă nu există. În

această introducere comenzile au fost scrise într-un mod unic cu litere majuscule tocmai

pentru a evidenţia mai bine cele spuse mai sus.

1.3 Utilizarea matricelor şi vectorilor

Elementul de bază utilizat de MATLAB este matricea. Anumite matrice ce conţi

numere cu aşezări particulare au nume specifice (scalari, vectori linie, vectori coloană,

matrice pătrată, diagonală, zero, unitate).

Există multe tipuri de matrice şi de moduri de definire a lor. Cele prezentate în tabelul

1.1 se referă la liniile scrise în MATLAB pentru evidenţierea modului de definire a

matricelor.

Tabelul 1.1 Definirea matricelor în MATLAB

Linia tastată

Semnificaţie

Comentarii

A=12 A

= 12

scalar

C=[1;2;3]

C = 1

2

3

vector coloană

B=[1 4 6]

B = 1

4

6

vector linie

2

1.Introducere

D=[1 2 3]’

D

= 1

 

apostroful ‘ semnifică

 

2

matrice transpusă

3

E=[2 5 4; 3 7 5]

E

= 2

5

4

matrice definită în general

 

3

7

5

F=ones(2,3)

F =

1

1

1

matrice compusă din valori unitare

1

1

1

G=diag([1 2 3])

G

= 1

0

0

matrice diagonală

 

0

2

0

0

0

3

D=eye(4)

D

= 1 0 0

0

matrice unitate

 

0

1 0 0

0

0 1 0

0

0 0 1

I=zeros(2,3)

I = 0

0

0

matrice nulă

 

0

0

0

L=1:5

L= 1 2 3 4 5

vector cu elemente echidistante

M=0:0.5:2.5

M=0 0.5 1 1.5 2 2.5

această comandă defineşte un vector indicând: primul număr, intervalul între două numere succesive, ultimul număr

N=logspace(0,2,5)

N=1 3.1623 10 31.6228 100

această comandă defineşte un vector format din 5 numere, dispuse logaritmic între 10 0 şi 10 2

O=E(2,1)

O = 3

 

alegerea elementului aflat în linia a doua şi prima coloană a matricei E

P=E(2:2,2:3)

P = 7 5

 

selectarea unei matrice din matricea E constituită din linia secundă şi coloanele 2 şi 3

Q=E(:,2)

Q = 5

 

Vectorul Q este constituit

 

7

din toate elementele coloanei secunde a matricei E. Caracterul :

 

semnifică considerarea tuturor elementelor

R=E(2,:)

R = 3 7 5

 

Vectorul R conţine toate elementele liniei a doua din matricea E

3

Complemente de mecatronică

1.4 Operaţii între matrice

Transpusă B=A’

Adunare, scădere A+B , A-B

Înmulţire (dimensiunile matricelor trebuie să corespundă)

Împărţire

 

-

cu scalari (/)

-

cu matrice

1)

pentru o matrice pătrată A, împărţirea A\B=INV(A)*B, conduce la soluţia unui set de

2)

ecuaţii liniare A*X=B în mod similar B\A este echivalent cu B*INV(A) şi conduce la soluţia sistemului X*A=B

Determinantul matricei A: det(A)

Inversa matricei A: inv(A)

Valori proprii ale matricei A: eig(A)

1.4.1 Operaţii aritmetice

Calculele aritmetice aplicate matricelor sau vectorilor pot fi clasificate în :

operaţii după regulile calculului matriceal – operaţii cu matrice;

operaţii după regulile calculului scalar – operaţii cu tablouri.

Operatorii folosiţi în calculele aritmetice cu matrice şi tablouri sunt prezentaţi în tabelul 1.2.

Tabelul 1.2 Operatori folosiţi în calculele aritmetice

Operaţia

Scalari

Matrice

Tablouri

Adunare

+

+

+

Scădere

-

-

-

Înmulţire

*

*

.*

Împărţire la stânga

\

\

.\

Împărţire la dreapta

/

/

./

Ridicare la putere

^

^

.^

Transpunere

.’

1.4.2 Operaţii aritmetice cu scalari

Operaţiile aritmetice între doi scalari sunt date în tabelul 1.3.

Tabelul 1.3 Operaţii aritmetice cu scalari

Operaţia

Forma algebrică

Forma de scriere în MATLAB

Adunare

a+b

a+b

Scădere

a-b

a-b

Înmulţire

axb

a*b

Împărţire la dreaptă

a:b

a/b

Împărţire la stânga

b:a

a\b

4

1.Introducere

Ridicare la putere

a

b

a^b

În ceea ce priveşte ordinea în care sunt executate operaţiile matematice în MATLAB

trebuie precizat că aceasta este identică cu ordinea din matematica elementară cunoscută,

adică:

1 . parantezele;

2.

ridicarea la putere;

3.

înmulţirea şi împărţirea;

4.

adunarea şi scăderea.

1.4.3

Operaţii aritmetice cu vectori

1.4.3.1 Produs scalar. Produsul scalar a doi vectori de aceeaşi dimensiune este un scalar

egal cu suma produselor componentelor corespunzătoare ale celor doi vectori. Pentru a

exemplifica produsul scalar se va considera următorul exemplu:

Exemplu Să se calculeze produsul scalar şi unghiul dintre vectorii:

a

= 4i 5

j

şi

b = i + 3j3k

.

Programul de calcul este:

%Program de calcul produs scalar si unghi; a=[4 -5 0]; b=[1 3 -3]; ab=sum(a.*b); %calcul produs scalar; mod_a=norm(a); mod_b=norm(b);

alfa=acos(ab/(mod_a*mod_b))*180/pi;

disp(ab);

disp(alfa);

iar în urma rulării programului se obţin respectiv:

produsul scalar ab = - 11 şi unghiul dintre cei doi vectori alfa = 113.2108.

1.4.3.2 Produs vectorial. Se numeşte produs vectorial (sau exterior) a doi vectori

r

c r perpendicular pe planul celor doi vectori

r

a, b

r

un

a, r b , al cărui modul este egal cu produsul

vector

r

a

r

bsin(a, b)

r

r

r

r

r

şi care are faţă de vectorii a, b o orientare pozitivă. Această operaţie se notează:

a

r × =

b

r

c

şi ea se mai poate scrie şi sub o formă simetrică:

5

Complemente de mecatronică

 

r

r

r

i

j

k

r

a r × b =

 

a a

x

y

a

z

 

b b

x

y

b

z

Exemplu. Să se calculeze produsul vectorial şi produsul scalar dintre vectorii:

r

r

a

=

7

i

3

j

5

k

şi

b

=− ⋅ −

2

i

3

j

k

O altă variantă de calculare a produsului scalar, diferită de cea prezentată la 1.4.3.1., este

aceea de însumare a elementelor diagonalei principale cu comanda:

PS2=sum(diag(C)); %calcul produs scalar.

Programul de calcul pentru produsul vectorial şi produsul scalar este prezentat mai jos.

%Program pentru calculul produsului vectorial % si al produsului scalar; a=[7 -3 -5]; b=[-2 -3 -1]; C=a'*b;

cx=C(2,3)-C(3,2);

cy=C(3,1)-C(1,3);

cz=C(1,2)-C(2,1);

PV=[cx cy cz]; % calcul produs vectorial PS1=sum(a.*b); % calcul produs scalar cu metoda 1; PS2=sum(diag(C)); % calcul produs scalar cu metoda 2; disp(['PV = ',num2str(PV)]); %afisare rezultate disp(['PS1 = ',num2str(PS1)]); disp(['PS2 = ',num2str(PS2)]);

Se obţin rezultatele:

PV = -12 17 -27

PS1 = 0

PS2 = 0

1.5 Salvarea şi încărcarea datelor

Variabilele pot fi salvate în cadrul unui fişier utilizându-se comanda SAVE.

SAVE ‘fname’ salvează toate variabilele prezente în spaţiul de lucru într-un “MAT-file”

binar denumit fname.mat.

SAVE ‘fname’X salvează variabila X în fname.mat.

SAVE ‘fname’ X Y Z salvează variabilele X Y Z în fname.mat.

6

1.Introducere

SAVE ‘fname’ X Y Z-ascii utilizează un format ascii de 8 digit în locul formatului binar;

acest format poate fi mult mai comod pentru o procesare succesivă a datelor în afara spaţiului

MATLAB. Ca exemplu, se poate utiliza spaţiul Pascal sub DOS.

Datele care sunt salvate în cadrul unui fişier pot fi apelate oricând în spaţiul de lucru prin

comanda LOAD ‘filename’. MATLAB în mod automat caută un fişier cu extensia ‘*.mat’.

Exerciţiu

Un exemplu de încărcare a datelor conţinute într-un fişier, este acela prin care se consideră

înălţimile anumitor puncte de pe o suprafaţă aspră, înălţimi ce sunt obţinute în urma unei

analize a unei suprafeţe prin prelucrarea imaginilor. Datele, respectiv înălţimile suprafeţei,

sunt conţinute în fişierul cip1h9.dat. Pentru reprezentarea grafică a înălţimilor suprafeţei

(profilograma suprafeţei) este elaborat programul de mai jos.

%program prelucrare date din import load d:\supraf\rugozit\cip1h9.dat;

%

vectorii X , Y sunt continuti in fisierul cip1h9.dat

%

fisierul cip1h9.dat se gaseste pe discul d

X

= cip1h9(:,1);

Y = cip1h9(:,2); plot(X,Y);grid xlabel('X - [pixels]');

ylabel('Y - [pixels]');

De remarcat că fişierul cip1h9.dat se găseşte pe discul dur D, în directorul supraf şi

subdirectorul rugozit. În ceea ce priveşte conţinutul fişierului cip1h9.dat mai trebuie spus că

vectorul X este dat de prima coloană din fişierul cip1h9.dat, iar vectorul Y reprezintă cea de-a

doua coloana a fişierului cip1h9.dat.

Se reamintesc cazurile în care se utilizează funcţia load:

pentru încărcarea datelor dintr-un fişier;

load

pentru încărcarea datelor din fişiere în format binar, cu extensie *.mat;

load nume_fişier

pentru încărcarea datelor din fişiere în format binar, cu extensie:

load nume_fişier.extensie-mat

pentru încărcarea datelor din fişiere în format ascii, fără extensie:

load nume_fişier-ascii

7

Complemente de mecatronică

pentru încărcarea datelor din fişiere în format ascii, cu extensie:

load nume_fişier.extensie-ascii. În toate cazurile, datele încărcate trebuie să fie tablouri complete. După încărcarea datele se regăsesc în memoria calculatorului cu numele pe care l-a avut fişierul de date (fără extensie), indiferent de forma în care au fost stocate anterior. În urma executării acestui program se obţine graficul din figura 1.1.

ă rii acestui program se ob ţ ine graficul din figura 1.1. Fig. 1.1 1.6 Fi

Fig. 1.1

1.6 Fişierele ‘filename’.m, fişiere script şi funcţiile ‘function’

MATLAB se poate utiliza în mod direct, tastând o singură linie de comandă după prompter (>>) şi apoi enter, MATLAB execută imediat şi vizualizează rezultatele. Mai mult, MATLAB poate executa şi secvenţe de comenzi conţinute în fişiere. Aceste fişiere se vor numi M-file deoarece au extensia ‘.m’. Pentru scrierea unui M-file:

Este suficient un editor care să salveze caracterele în formatul ASCII şi apoi dând fişierului extensia ‘.m’ să se obţină fişierul M-file. Dacă se utilizează sistemul de operare Windows se alege din

8

1.Introducere

meniul File, opţiunea New : M-file pentru obţinerea unei ferestre în care se pot scrie

comenzile ce vor constitui noul fişier M-file.

Pentru executarea unui fişier M-file:

Este suficient să se tasteze numele fişierului fără extensie; dacă fişierul nu este găsit

aceasta se datorează faptului că fişierul este plasat într-un director ce nu este conţinut în calea

de căutare a MATLAB-ului. (Se va utiliza HELP PATH pentru rezolvarea acestei probleme).

Există două tipuri de fişiere M-file:

fişierele propriu-zise (script files) ce sunt utilizate pentru executarea automată a

secvenţelor de comandă;

funcţii (function files) ce constituie practic o extensie a programului MATLAB. Acestea

din urmă permit obţinerea unor noi funcţii cu ajutorul funcţiilor existente.

Fişiere script

Când se apelează numele unui fişier script, atunci MATLAB execută liniile de

comandă întâlnite în fişierul apelat, iar datele se pot introduce de la tastatura calculatorului.

Instrucţiunile prezente într-un fişier script acţionează global asupra datelor din tot spaţiul de

lucru (workspace); de aceea fişierele script sunt utilizate pentru realizarea analizelor,

rezolvarea problemelor precum şi reprezentarea grafică cerută. Un exemplu în care se va

prezenta o secvenţă de sinusoide de frecvenţe diferite este dat în cele ce urmează. Funcţiile

%nume sinus.m; %program ce execută reprezentarea unei serii de frecvenţe %de diferite frecvenţe; clear fmax=input(’frecventa maxima [Hz] =’); fmin=input(‘frecventa minima [Hz] =’); nsin=input(‘numarul de sinusoide desenate’); Tmax=1/fmin; %perioada maxima a sinusoidei; t=0:Tmax/100:Tmax; %axa timpului; for i=0:(nsin-1),

y(i+1,:)=sin(2*pi*((fmax-fmin)/(nsin-1)*i+fmin)*t);

end plot(t,y); grid; title(‘variatia sinusoidelor cu frecventa’); xlabel(‘timp [s]’);

utilizate pentru reprezentarea grafică vor fi explicate în capitolul Elemente de grafică.

9

Complemente de mecatronică

Pentru reprezentarea grafică s-au ales următoarele date ce au fost ulterior introduse de

la tastatura calculatorului în spaţiul de lucru MATLAB:

frecventa maxima Hz =50

frecventa minima Hz =25

numarul de sinusoide desenate =3

Graficul obţinut cu programul prezentat mai sus este dat în figura 1.2.

cu programul prezentat ma i sus este dat în figura 1.2. Fig.1.2 M-file: Func ţ ii

Fig.1.2

M-file: Funcţii

Dacă prima linie a unui fişier M-file conţine cuvântul “function”, atunci fişierul

respectiv este de tip funcţie. Un exemplu de utilizare a acestui tip de fişier este dat mai jos. Să

se calculeze volumul unui cilindru dacă se cunosc: raza cercului de bază al cilindrului (r) şi

înălţimea cilindrului (h).

function v=volumcil(r,h); %VOLUMCIL execută calculul volumului unui cilindru %trebuie precizate raza cercului de bază r %şi înălţimea cilindrului h %unităţile de măsură trebuie să fie în concordanţă % date de intrare

v=pi*r^2*h

10

1.Introducere

Prin scrierea acestui fişier este definită o nouă funcţie denumită volumcil. Noua funcţie este utilizată ca orice altă funcţie MATLAB. Dacă se scrie :

raza=1;

inaltime=10;

volumcil(raza, inaltime); se va obţine:

ans=31.4159

În tabelul 1.4 sunt prezentate principalele funcţii matematice, în tabelul 1.5 sunt arătate câteva elemente pentru analiza datelor, tabelul 1.6 conţine principalele comenzi pentru trasarea graficelor, tabelul 1.7 conţine instrucţiuni pentru control logic, iar tabelul 1.8 este util pentru analiza neliniară Toate funcţiile matematice, elementele pentru analiza datelor, comenzile pentru trasarea graficelor precum şi instrucţiunile de control logic vor fi utilizate în exemplele ce se vor prezenta în capitolele următoare.

Tabelul 1.4 Funcţii matematice elementare

abs

valoare absolută

sqrt

rădăcină pătrată

real

parte reală

imag

parte imaginară

conj

complex conjugat

round

rotunjire la valoarea cea mai apropiată

fix

rotunjire la zero

floor

rotunjire la -

ceil

rotunjire la +

sign

funcţia semn

sin

funcţia sinus

cos

funcţia cosinus

tan

funcţia tangentă

asin

funcţia arc sinus

acos

funcţia arc cosinus

atan

funcţia arc tangentă

atan2

funcţia arc tangentă pentru patru cadrane

sinh

funcţia sinus hiperbolic

cosh

funcţia cosinus hiperbolic

tanh

funcţia tangentă hiperbolică

exp

funcţia exponenţială în bază e

log

funcţia logaritm natural

log10

funcţia logaritm în bază 10

11

Complemente de mecatronică

Tabelul 1.5 Analiza datelor

max

valoarea maximă

min

valoarea minimă

mean

valoarea medie

std

abaterea standard

median

valoarea mediană

sort

ordonarea valorilor

sum

însumarea elementelor

prod

înmulţirea elementelor

diff

derivată

spline

interpolare cubică a datelor

1.7. Elemente de grafică

În acest paragraf sunt prezentate principalele funcţii MATLAB (vezi tabelul 1.6) utilizate pentru executarea reprezentărilor grafice.

PLOT Reprezintă grafice în coordonatele liniare x-y. Pentru reprezentarea datelor în coordonate liniare se utilizează funcţia plot apelată cu una din sintaxele:

plot(y)

plot(x,y)

plot(x,y,’y--‘)

plot(x1,y1,x2,y2,

)

plot (y) – reprezintă grafic argumentul y funcţie de indici, ţinând cont de următoarele precizări:

1. dacă argumentul y este complex, plot(y) este echivalent cu plot(real(y), imag(y));

2. dacă y este vector (linie sau coloană), funcţia plot trasează graficul y=y(i), unde

i=1,2,

n

este numărul de ordine al elementului y;

3. dacă y este o matrice m x n, atunci funcţia plot trasează graficele y j = y j (i), unde

i=1,2,

n

este numărul de ordine al elementului de pe coloana j;

plot(x,y) – reprezintă grafic vectorul y funcţie de vectorul x, cu următoarele precizări:

dacă x este vector, iar y este matrice, atunci coloanele lui y sunt trasate funcţie de

vectorul x; dacă x şi y sunt matrice de aceeaşi dimensiune, atunci se reprezintă coloanele lui y în funcţie de coloanele lui x.

12

1.Introducere

La comanda plot(x,y,’y--‘) se specifică în plus faţă de comenzile precedente, tipul de linie şi culoarea cu care linia este trasată.

se referă la reprezentarea simultană a mai multor

grafice, în acelaşi sistem de coordonate. SEMILOGX, SEMILOGY Prin aceste comenzi se generează grafice cu scară semilogaritmică (în bază 10) pe axa x sau respectiv y; trebuie menţionat ca sintaxa acestei comenzi este identică cu cea de la plot.

Ultima comandă, plot(x1,y1,x2,y2,

),

XLABEL, YLABEL xlabel (‘text’) introduce textul sub axa x a graficului, în mod analog este şi comanda

ylabel.

TITLE title(‘text’) introduce textul dorit în partea superioară a graficului.

Tabelul 1.5 Grafică

plot

grafic cu scară liniară

loglog

grafic cu scară logaritmică

semilog

grafic cu scară semilogaritmică

polar

grafic în sistem polar

mesh

grafic tridimensional

grid

desenarea unui caroiaj pe grafic

title

titlul graficului

label

etichetă pentru axe

text

text

axis

stabileşte sau returnează caracteristicile axelor

figure

creează o figură lăsând neşterse figurile anterioare

clf

şterge figura curentă

gcf

returnează caracteristicile figurii curente

close

închide figura curentă

Pentru realizarea reprezentărilor grafice se vor da în acest paragraf doar câteva explicaţii succinte, urmând ca în cazul unor exemple mai complexe să fie explicate şi anumite aspecte privind reprezentarea grafică utilizată. Se vor preciza aici câteva consideraţii privind reprezentarea suprafeţelor.

1.7.1 Reprezentarea grafică a suprafeţelor netede

1. Suprafeţele 3D se pot reprezenta cu una din funcţiile surf sau surfc, asociate cu liniile de nivel proiectate pe planul bazei. Pentru a exemplifica reprezentarea grafică se va considera

13

Complemente de mecatronică

următoarea problemă.

Să se reprezinte grafic suprafaţa netedă dată de ecuaţia:

z

=

4

k

2 2 cos 2 ⋅ x + y ⋅ 2 2 x + y
2
2
cos
2
x
+
y
2
2
x
+ y

,

unde k este un termen ce ia valori aleatoare între 0 şi 1.

Pentru obţinerea numărului aleator k se va utiliza funcţia rand. Programul care

generează suprafaţa dată de ecuaţia de mai sus este dat în continuare. Funcţia z = f(x,y) are

aplicaţii în descrierea formei grăunţilor de materiale pulverulente, a formei rocilor, în teoria

fractalilor.

%program forma graunte

k=randn(1);

[x,y]=meshgrid(-10:0.55:10, -10:0.55:10);

z=4*k*cos(sqrt(2*x.^2.+y.^2))./sqrt(x.^2.+y.^2);

surfc(x,y,z); xlabel('coordonata X [mm]'); ylabel('coordonata Y [mm]'); zlabel('coordonata Z [mm]'); disp(k);

X [mm]'); ylabel('coordonata Y [mm]'); zlabel('coordonata Z [mm]'); disp(k); Fig.1.3 14

Fig.1.3

14

1.Introducere

Reprezentarea grafică a suprafeţei z = f(x,y) , obţinută în urma rulării programului,

pentru k = 0,2877 este dată în figura 1.3. Se observă că semnul numărului aleator k cu

distribuţie normală dă orientarea suprafeţei.

2. Un alt exemplu ales pentru reprezentarea grafică a suprafeţelor este cel al funcţiei z =

z(x,y) definită prin relaţia:

z

(

x, y

)

=

+

(

x a

(

)

x

+

a

)

ln

⎧ ( y ) 2 ⎫ ⎪ + a + ( y + a )
( y
)
2
+
a
+
(
y
+
a
)
2 +
(
x
+
a
)
⎪ ⎩
( y
a
)
2
+
(
y
a
)
2 +
(
x
+
a
)
⎪ ⎭

+

(

y + a

)

ln

⎧ ( x + a ) + ( y + a ) 2 + (
( x
+
a
)
+
(
y
+
a
)
2 +
(
x
+
a
)
2
⎪ ⎩
( x
)
(
)
(
2
a
+
y
+
a
2 +
x
a
)⎪ ⎭

ln

⎧ ( y ) ( ) ( ) 2 ⎫ ⎪ − a + y
( y
)
(
)
(
)
2
a
+
y
a
2 +
x
a
⎪ ⎩
( y
+
a
)
+
(
y
)
2 +
(
)
2
+
a
x
a
⎪ ⎭

+

(

y a

)

ln

⎧ ( x ) ( ) ( ) 2 ⎫ ⎪ ⎨ − a +
( x
)
(
)
(
)
2
a
+
y
a
2 +
x
a
( x
+
a
)
2
+
(
y
a
)
2 +
(
x
+
a
)⎪ ⎭
⎪ ⎩

unde a este un parametru geometric, a=0,2. Această funcţie a fost utilizată pentru simularea

unei suprafeţe aspre care este supusă unor apăsări (apăsare cu un cilindru rigid). Utilizând

teoria lui Boussinesq se pot calcula deformaţiile şi tensiunile din zona de contact. Programul

pentru reprezentarea suprafeţei z = z(x,y) este dat mai jos:

%program pentru reprezentare grafica suprafete;

% se dau parametrii functiei;

E=220;p=140;k=p/E; a=.2; [x, y]=meshgrid(-10:1:10, -10:1:10); %se da functia zp;

zp=(x+a).*log(((y+a)+sqrt((y+a).^2+(x+a).^2))./

((y-a)+sqrt((y-a).^2+(x+a).^2)))

+(y+a).*log(((x+a)+sqrt((y+a).^2+(x+a).^2))./

((x-a)+sqrt((y+a).^2+(x-a).^2)))

+(x-a).*log(((y-a)+sqrt((y-a).^2+(x-a).^2))./

((y+a)+sqrt((y+a).^2+(x-a).^2)))

+(y-a).*log(((x-a)+sqrt((y-a).^2+(x-a).^2))./

((x+a)+sqrt((y-a).^2+(x+a).^2)));

% se da functia z;

z=zp.*k; %se traseaza suprafetele utilizându-se cele doua funcţii:; subplot(2,1,1) ;surfc(x,y,z); %funcţia surfc; subplot(2,1,2); mesh(x,y,z); %funcţia mesh;

end

In acest caz trebuie semnalată utilizarea a două posibilităţi de reprezentare a

suprafeţelor prin funcţia surfc şi prin funcţia mesh. Funcţia mesh reprezintă grafic suprafeţe

3D sub forma unei “reţele”, în timp ce funcţia surf reprezintă grafic suprafeţe pline 3D. Mai

trebuie precizat că funcţia surfc reprezintă grafic combinaţia dintre suprafaţa 3D (continuă) şi

15

Complemente de mecatronică

liniile de contur trasate sub suprafaţă. Executarea programului de mai sus conduce la

reprezentarea grafică din figura 1.4.

mai sus conduce la reprezentarea grafic ă din figura 1.4. Fig.1.4 3 . Un ultim exemplu

Fig.1.4

3. Un ultim exemplu pe care îl supunem atenţiei cititorului este cel al funcţiei date de ecuaţia

(1), în care intervine funcţia sinus.

z(x

i

,

y

k

) =

n β

2

j ⎢ ⎣

= 1

j

⎢ λ

sin


2 π x

i

λ

j

+

ϕ j

⎟ ⎟ − δ

β

2

j

sin

2 π

y

k

δ

j

+ ϕ

⎞ ⎤

⎥ ⎦

j

(1.1)

unde s-au considerat următorii parametrii : λ j = λ 0 /j ; λ 0 = 10 ; β = 0.8 ; x i = (i-1)/x ;

y k = (k-1)/y ; δ j = 0,5/j ; ϕ j = 2πq; iar q este un număr aleator iar i, k = 1

500. Cu aceste valori s-a obţinut suprafaţa din figura 1.5.

50 şi j = 1 : 50 :

r aleator iar i, k = 1 500. Cu aceste valori s-a ob ţ inut suprafa

Fig.1.5

16

1.Introducere

Funcţia dată de relaţia (1.1), dar aplicată spaţiului bidimensional este utilizată în

geometria fractalilor [??]. Simularea grăunţilor, care sunt de înălţimi diferite, se poate face,

prin alegerea fazei ϕ ca un număr aleator.

În programul elaborat s-a utilizat ciclul for (vezi tabelul 1.7) pentru obţinerea sumelor

%program pentru reprezentarea grafica a suprafeţelor

l0=10;

%lambda = l0;

b=0.8;

%beta = b

q=randn(1);

% q este un număr aleator

f=2*q*pi/180;

dx=1/0.2; dy=1/0.3; for i=1:5:100

xi=(i-1)*dx;

for k=1:5:100

yk=(k-1)*dy;

j=1:50:1000;

lj=l0./j;

fj=0.5./j;

s=(lj.^(b/2)).*sin((2*pi*xi./lj)+f)-(fj.^(b/2))

.*sin((2*pi*yk./fj)+f);

t(i,k)=sum(s);

end;

end; i=1:5:50; k=1:5:50; xi=(i-1)./dx; yk=(k-1)./dy; [yk,xi]=meshgrid(yk,xi); Z(i,k)=t(i,k); surfc(yk,xi,Z(i,k)); end.

ce intervin în expresia funcţiei z(x i ,y k ). Ciclul for a fost utilizat de două ori: pentru i, respectiv

pentru k.

Un exemplu de scriere a programului este dat mai sus. Şi în acest caz a fost utilizată

funcţia de generare a suprafeţelor netede, surfc.

1.7.2. Reprezentarea suprafeţelor riglate

Să se reprezinte grafic un trunchi de con de raze rc1=84.85 şi rc2=10, iar înălţimea

trunchiului de con este hc=120.

17

Complemente de mecatronică

Programul care execută reprezentarea trunchiului de con este prezentată mai jos.

%program de reprezentare obiecte spaţiale ; %reprezentarea unui trunchi de con; rc1=84.852814; rc2=10; hc=120; N=30;

[xc,yc,zc]=cylinder([rc1,rc2],N);

zc=zc*hc; figure view([-30,30]); surface(xc,yc,zc); grid; end.

Se obţine reprezentarea din figura 1.6.

grid; end. Se ob ţ ine reprezentarea din figura 1.6. Fig.1.6 Tabelul 1.7 Instruc ţ iuni

Fig.1.6

Tabelul 1.7 Instrucţiuni de control logic

if

comandă pentru execuţie condiţionată

elseif

utilizat cu if

else

utilizat cu if

end

termină if, for, while

for

comandă pentru repetarea unui ciclu

while

execută până

break

instrucţiune pentru terminarea forţată într-un ciclu

return

returnează execuţia la funcţia precizată

pause

execută o pauză până la prima atingere a tastei

18

1.Introducere

Tabelul 1.8 Analiză neliniară

nelder

minimizarea pentru funcţii neliniare

ode23

soluţie pentru ecuaţii diferenţiale ordinare

ode45

soluţie pentru ecuaţii diferenţiale ordinare

zeroin

caută zerourile unei funcţii

quad

integrare numerică a unei funcţii (cuadratură)

19

Complemente de mecatronică

CAPITOLUL 2 CLASIFICAREA MODELELOR MATEMATICE

2.1 Generalităţi

Modelarea matematică a unui sistem fizic înseamnă descrierea comportamentului unui sistem prin intermediul ecuaţiilor şi relaţiilor matematice corespunzător alese. Deoarece sistemul este real, modelul este întotdeauna imperfect şi de aceea sistemul nu este reprezentat de un model unic, ci de o tipologie sau de o familie de modele. În faza iniţială, de cele mai multe ori este convenabilă alegerea unui model simplu pentru sistemul studiat. Astfel, se pot cunoaşte mai uşor factorii determinanţi ce caracterizează sistemul, fără a irosi un timp preţios pentru definirea analitică a modelului. În primul rând se analizează modelul simplu, iar apoi se măreşte gradul de dificultate al modelului prin considerarea efectelor care iniţial au fost neglijate. Diferenţa între tipurile de modele constă în natura ecuaţiilor considerate, pentru care deosebirea între tipurile de modele duce în mod necesar la o deosebire între tipurile de ecuaţii ce descriu modelele.

Sistemele fizice ce fac obiectul modelării sunt aşezate în spaţiu şi evoluează în timp. Spre exemplu, mişcarea de vibraţie a unei structuri depinde de punctul în care este măsurată şi de momentul în care este observată. Pentru a preciza din punct de vedere matematic aceste noţiuni se adoptă următoarele definiţii:

1. Variabile independente spaţial:

Un sistem fizic real, cu volumul V, având conturul Σ poate fi definit într-un sistem

cartezian ortogonal O(x, y, z) cu originea în O şi axele carteziene (x, y, z). Coordonatele punctului P din volumul V se definesc ca variabile independente spaţial.

2. Variabile independente temporal Se defineşte drept variabilă independentă temporal variabila t aparţinând intervalului I

, care este necesară pentru descrierea stării fizice a sistemului.

3. Variabile de stare Se defineşte drept variabila de stare ansamblul X = {x 1 , x 2 ,

n } de n variabile x i , fiecare

fiind o funcţie de variabilele independente (t, x, y, z) ce asigură (în modelul matematic) descrierea stării sistemului fizic.

,x

20

2. Clasificarea modelelor matematice

4. Parametrii de identificare

Se definesc drept parametri de identificare parametrii liberi ce caracterizează modelul

matematic şi care devin esenţiali pentru a face comparaţia între comportamentul real al

sistemului şi cel prevăzut de modelul elaborat pentru acest sistem.

Termenul de “liberi” semnifică faptul că este vorba despre parametrii ce nu pot fi

măsuraţi direct, dar pot fi definiţi unic pentru a compara comportamentul sistemului real şi

comportamentul modelului.

O clasificare a modelelor este prezentată în figura 2.1.

Modele Dinamice
Modele
Dinamice

Continue ecuaţii diferenţiale cu derivate parţiale de (x, y, z)

Discrete

ecuaţii

diferenţiale

cu derivată

în funcţie

de timp

Static
Static
Discrete ecuaţii algebrice
Discrete
ecuaţii
algebrice

Continue ecuaţii diferenţiale cu derivate parţiale de (x, y, z)

Fig. 2.1

O primă diferenţiere între tipurile de modele este legată de prezenţa sau absenţa

variabilelor independente temporale. Dacă starea sistemului este independentă de timp se

poate crea un model static, iar în caz contrar se va obţine un model dinamic. Spre exemplu,

pentru evaluarea solicitărilor produse de acţiunea unei sarcini constante se utilizează un model

static, dar pentru studiul vibraţiilor este necesar, în mod evident, un model dinamic.

După cum s-a prezentat în figura 2.1, la diferite tipuri de modele corespund diferite

tipuri de ecuaţii. Clasificarea de mai sus, chiar dacă nu este exhaustivă, acoperă majoritatea

cazurilor ce pot fi întâlnite în sistemele reale în general şi în mecatronică în special. Din figura

21

Complemente de mecatronică

de mai înainte se poate constata că modelele statice discrete sunt descrise de ecuaţii algebrice,

în timp ce modelele statice continue sunt descrise de ecuaţii cu derivate parţiale pentru

variabilele independente spaţiale. Considerând apoi modelele dinamice discrete, acestea

depind în mod unic de variabila independentă temporală şi sunt descrise de ecuaţii

diferenţiale ordinare în funcţie de timp, faţă de modelele dinamice continue, ce ţin cont şi de

variaţiile în spaţiu şi sunt descrise de ecuaţii diferenţiale cu derivate parţiale funcţie de timp şi

spaţiu.

O altă clasificare este prezentată în figura 2.2 şi introduce alte aspecte privind natura şi

variaţia în timp a parametrilor. Aceasta clasificare permite definirea cu o precizie superioară a

modelelor dinamice posibile, precum şi diferenţierea lor în modele continue şi modele

discrete.

Modelul dinamic

în modele continue ş i modele discrete. Modelul dinamic Discret (ecua ţ ii cu derivate ordinare)
în modele continue ş i modele discrete. Modelul dinamic Discret (ecua ţ ii cu derivate ordinare)

Discret (ecuaţii cu derivate ordinare)

Modelul dinamic Discret (ecua ţ ii cu derivate ordinare) Continuu (ecua ţ ii cu derivate par

Continuu (ecuaţii cu derivate parţiale)

Variaţia în timp a parametrilor

par ţ iale) Varia ţ ia în timp a parametrilor Liniar Varia ţ ia în timp
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r

Liniar

Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r

Variaţia în timp a parametrilor

Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Liniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r

Neliniar

Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r

Variaţia în timp a parametrilor

Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
Neliniar Varia ţ ia în timp a p arametrilo r
r Neliniar Varia ţ ia în timp a p arametrilo r Aleator Deterministic constant Deterministic constant
Aleator
Aleator
Neliniar Varia ţ ia în timp a p arametrilo r Aleator Deterministic constant Deterministic constant Aleator
Deterministic constant Deterministic constant
Deterministic
constant
Deterministic
constant
Aleator
Aleator

Deterministic

variabil

Deterministic

variabil

Fig. 2.2

22

2. Clasificarea modelelor matematice

După cum este prezentat în figura 2.2 comportarea modelului poate fi liniară sau

neliniară. Acest fapt se referă atât la forma ecuaţiilor şi relaţiilor matematice cât şi la

variabile. În ceea ce priveşte “Variaţia în timp a parametrilor” prin aceasta felul în care

evoluează parametrii în timp. Parametrii pot evolua în mod aleator sau în mod deterministic,

în acest caz menţinându-se constanţi sau modificându-se în timp.

Se alege ca exemplu cazul în care variabila de stare, x, depinde de timp şi de spaţiul

bidimensional (y, z), modelul matematic continuu poate fi descris prin următoarea relaţie:

Dacă sistemul este static,

sistemului devine:

Funcţia

x

x x x

y z ∂∂ z

2

= f t, y, z, x,

t

,

,

y

⎛ ∂ x

t

= 0

şi atunci ecuaţia ce descrie evoluţia în spaţiu a

f (y, z, x,K)= 0

x = x(t, y, z)

este soluţia modelului dinamic continuu ce respectă condiţiile iniţiale şi satisface ecuaţia

diferenţială a modelului.

După cum este prezentat în figura 2.2, modelele discrete se pot subdivide în modele

liniare şi modele neliniare, iar această diferenţiere are o mare influenţă asupra analizei

sistemelor şi modelelor.

Pentru sistemele continue, Variaţia în timp a parametrilor” semnifică posibilitatea ca

modelul ales să prezinte variaţii în timp a parametrilor. În general, toţi parametrii unui sistem,

au variaţii de tip aleator în timp cum ar fi, spre exemplu: variaţiile temperaturii în mediul

ambiant, umiditatea, presiunea, vibraţiile, sau factorii perturbatori în general. În majoritatea

cazurilor, aceste variaţii aleatoare sunt mici faţă de variaţiile valorilor lor medii, ce pot fi

definite în mod deterministic şi de aceea ele pot fi neglijate.

Dintre numeroasele expresii ce pot fi considerate pentru modelele matematice discrete,

unele sunt utilizate mai frecvent. Ca exemplu se consideră cazul unei singure variabile de

stare, ce depinde numai de timp. Pentru aceasta se poate scrie:

dx =

dt

f (t, x)

.

Această ecuaţie este cel mai simplu model dinamic discret. El se poate interpreta în

felul următor: variaţia în timp a unei variabile de stare (derivata) depinde de valoarea obţinută

23

Complemente de mecatronică

de variabila însăşi precum şi de momentul de timp considerat. Se pot dezvolta astfel modele

cu derivate de ordin superior:

d

n

x

=

f t

d

n

1

x

dt

n

,

x

,

K

,

dt

n 1

.

Este evident că funcţia f poate fi liniară sau neliniară astfel încât găsirea unei soluţii

necesită o muncă de căutare mai mică sau mai mare. Ecuaţia diferenţială de ordinul n, de mai

sus, poate conduce la un sistem de n ecuaţii diferenţiale de ordinul întâi printr-o schimbare a

variabilelor:

x 1 = x ,

x

2

=

dx d

,
dt

n 1

x

K

,

x

=

n dt

n

1

.

Astfel se obţine sistemul de n ecuaţii:

dx

1

dt

= x

2

.

.

.

dx

n 1

dt

= x

n

dx

n

dt

= f

(

t

,

x

1

,

K

,

x

n

1

)

Această schimbare de variabile este foarte utilă atunci când se utilizează programe de

calcul în rezolvarea problemelor inginereşti.

Pentru sistemele dinamice discrete soluţia este o funcţie de tipul:

x = x(t)

2.2 Un exemplu de model matematic: motorul electric rotativ în curent continuu

Pentru efectuarea unei comparaţii între două metode de modelare a sistemelor liniare

discrete: * metoda funcţiilor de transfer ş