Documente Academic
Documente Profesional
Documente Cultură
MATLABul lucrează in
principal cu cinci tipuri de
ferestre, una principala
pentru comenzi
(command window) si
alte patru ferestre
secundare: spatiul de
lucru (workspace),
directorul curent (current
directory), fereastra de
afisare a comenzilor
anterioare (command
history) si fereastra
Launch Pad care permite
accesarea urmatoarelor
librarii-MATLAB,
Toolboxes, Simulink si
Blocksets (Fig. 2) 9
1.3. Ce este Simulinkul?
z SIMULINKul este un set de programe soft dedicat modelarii, simulării si
analizei sistemelor dinamice.
10
1.3. Lansarea in executie a Simulinkului
12
1.4. Informatii ajutatoare ale
MATLABului (Helpul online)
z MATLABul poseda o documentatie vasta care permite obtinerea informatiilor
necesare despre invatarea si utilizarea acestui pachet de programe, atat
online cat si tiparit (in format pdf).
z Comanda help furnizeaza informatii online despre orice functie MATLAB si
Simulink sau realizata de un utilizator al pachetului de programe.
z Cu comanda help se pot obtine informatii ajutatoare despre o anumita
functie, se pot lista fisierele dintr-un director sau se poate lista continutul
unui anumit fisier.
z Informatii specifice despre o anumita functie sau despre un director se pot
obtine tastand comanda help + „subiect”. De exemplu, tastand comanda
help elfun vom obtine informatii despre toate functiile matematice
elementare: functiile trigonometrice (sin, cos), exponentiale (exp, log),
complexe (real, imag).
z Daca subiectul este un director helpul afiseaza fisierele continute in acesta.
z Se pot scrie helpuri (linii cu informatii ajutatoare) pentru fisierele MATLAB
(M-file) sau pentru toolboxurile proprii construite de utilizator.
13
2. Instructiuni, functii si operatii de
baza ale MATLABului
z MATLABul este un limbaj de expresii. Expresiile tiparite de utilizator sunt interpretate si
evaluate. Instructiunile MATLAB sunt de cele mai multe ori de forma : variabila = expresie
z Daca numele variabilei si semnul = sunt omise, MATLABul creeaza automat o variabila cu
numele „ans” (Fig. 4) in care este returnat rezultatul unui calcul, ca in exemplul urmator:
z Tastand urmatoarea secventa (operatie matematica) in fereastra de comanda
20 – 2 * 5
z MATLABul va returna urmatorul raspuns: ans = 10
z Orice instructiune sau linie de instructiuni este terminata cu „enter”. Utilizand tasta „enter” se
trece la urmatoarea secventa de linie.
z Daca ultimul caracter al liniei este punct-virgula „ ; ”, instructiunea este executata dar nu se
tipareste nimic in fereastra de comenzi (command window).
z MATLABul utilizeaza pentru reprezentarea numerelor, in notatia zecimala conventionala,
punctul zecimal. De exemplu 0.15 = 0,15 sau 1.5021e-6 = 1,5021 * 10-6.
14
z Simbolul doua puncte (:) este unul dintre cei mai importanţi operatori ai
MATLABului. Poate fi utilizat pentru a crea vectori si matrice, pentru a
specifica submatrice si vectori si pentru a executa iteraţii.
z De exemplu comanda: t1 = 1:6
va genera un vector linie conţinând numerele de la 1 la 6 avand incrementul
unitate. MATLABul va genera rezultatul:
t1 = 1 2 3 4 5 6
z Incrementul poate fi pozitiv sau negativ si poate fi diferit de unitate, ca in
exemplul urmator:
t2 = [(0:2:10); (5:-0.2:4)]
va genera urmatorii vectori:
t2=
0 2.0000 4.0000 6.0000 8.0000 10.0000
5.0000 4.80000 4.60000 4.40000 4.20000 4.0000
z MATLABul are cateva variabile speciale predefinite. Acestea nu pot fi
declarate si sunt accesibile global in orice fisier-M (M-file) si includ:
i, j, pi=π, inf= si NaN=Not-a-Number (0/0);
z Ambele variabile i si j au aceeasi valoare si sunt folosite pentru a genera
numerele complexe, ca in exemplul urmator:
z=3+4*j.
Va returna z = 3.0000 + 4.0000i 15
2.1. Structura programelor MATLAB
z MATLABul lucrează fie in modul linie de comanda, situaţie in
care fiecare linie este prelucrata imediat si rezultatele sunt
afişate, fie in programe conţinute in fişiere.
z Fişierele ce conţin instrucţiuni MATLAB se numesc fişiere-m
(au extensia .m). Aceste fişiere constau dintr-o succesiune
de instrucţiuni cu posibilitatea apelării si altor fişiere – m si
sunt fişiere text de tip ASCII.
z Un program MATLAB poate fi scris sub forma a doua tipuri
de fişiere „script” si / sau „function”. Ambele tipuri sunt
scrise in format ASCII (text) iar algoritmul care a fost
implementat poate fi urmărit cu uşurinţa daca se cunosc
convenţiile si sintaxa MATLAB.
z Aceste tipuri de fişiere (cu extensia .m) permit crearea unor
funcţii noi care sa le completeze pe cele deja existente. Prin
aceasta facilitate MATLABul poate fi extins la aplicaţii
specifice utilizatorului care are, de asemenea, posibilitatea16
scrierii de noi proceduri.
In tabelul 1 se vor prezenta cateva functii MATLAB de control al fisierelor:
what Listeaza fisierele cu extensia .m, .mat, .dat, .mex din directorul curent
who Listeaza variabilele curente din memorie
whos Listeaza variabilele curente din memorie, dimensiunile lor si tipul acestora
delete
Sterge fisierul precizat de pe disc
17
2.1.1. Fişiere script
z Un fişier script este un fişier extern ferestrei de comenzi fiind
plasat in directorul curent si care conţine o secvenţa de
comenzi MATLAB
z Fişierele script sunt cele mai simple fişiere-m (cu extensia
.m) deoarece ele nu au nici mărimi de intrare nici de ieşire.
z După execuţia unui fişier script, variabilele cu care acesta a
operat raman stocate in spaţiul de lucru (workspace).
z Fişierele script lucrează cu date existente din workspace. De
asemenea, ele pot crea date noi cu care sa opereze.
z Daca avem mai multe fişiere intr-un director este de dorit sa
includem câteva comentarii (explicative) la începutul fiecărui
fişier creat. 18
2.1.1. Fisiere script. Exemplu
z Exemplul 1: Sa se scrie un program MATLAB sub forma de fisier script care sa
calculeze amplitudinea si faza unei functii de transfer G(jw)=1 / (jw+2) pentru w = 1.
%Amplitudine.m: exemplu de fisier script pentru calcularea amplitudinii si fazei lui G pentru w=1.
unde function este cuvântul cheie care declara fişierul ca fişier funcţie, nume_functie
este numele functiei, adica numele sub care se salvează fişierul fara extensie,
param_iesire reprezintă parametrii de ieşire care trebuie separaţi prin virgula si
cuprinşi intre paranteze drepte (daca functia nu are parametrii de ieşire parantezele
drepte si semnul egal nu mai au sens), iar param_intrare reprezintă parametrii de
intrare, care trebuie, de asemenea, separati prin virgula dar cuprinsi intre paranteze
rotunde.
z Un fişier funcţie care are mai multe intrari si iesiri poate fi de forma:
function [x, y, z] = sfera (theta, phi, rho)
z Daca fişierul function nu conţine nici un argument de iesire, atunci prima linie poate
avea forma:
function printresults(x) 20
2.1.2. Fişiere function. Exemple
z Structura unui fisier function poate conţine instrucţiuni (comenzi) MATLAB
de control, funcţii MATLAB care realizează calcularea si alocarea valorilor
pentru marimile de iesire.
function Re = echivalent(R)
24
2.2.1. Calcule cu matrice. Generarea matricelor
z MATLABul ofera un set de functii pentru utilizarea matricelor.
z Calculul determinantului unei matrice se face cu functia det, iar a inversei
unei matrici cu functia inv.
z Daca dorim sa adăugam o noua linie unei matrice, de exemplu matricei B,
acest lucru se poate realiza tastând comanda:
– B = [B; [5 6]];
z De asemenea, MATLABul oferă si facilitatea de a extrage o submatrice
dintr-o matrice, sau de-a transforma o matrice intr-un vector.
z In cazul selectarii liniilor sau coloanelor se folosesc urmatoarele sintaxe:
– A(:, n) - selecteaza coloana n a matricei A
– A(m,:) - selecteaza linia m a matricei
– A(:) - selecteaza toate elementele matricei A, privite ca o singura
coloana.
z Utilizand functia eye, care se apeleaza cu una dintre sintaxele:
I=eye(n), I=eye(m, n) sau I=eye(size(nume_matrice))
– se poate genera matricea identitate (matricea cu elementele de pe diagonala
principala egale cu unu, iar toate celelalte elemente zero).
z Functia linspace genereaza un vector cu pas liniar iar functia logspace
genereaza un vector cu pas logaritmic.
25
2.2.1. Calcule cu matrice. Generarea matricelor
z Exemplul 4: Sa se determine curentii I1, I2 si I3 unui sistem trifazat,
stiind ca valorile tensiunilor sunt U1=10V, U2=15V si U3=12V iar
impedanta echivalenta a circuitului Z este o matrice patratica de
ordinul 3;
z Solutie: Pentru a rezolva sistemul trifazat de curenti se utilizeaza
comanda inv.
– Se poate scrie un fişier MATLAB-script sau se pot introduce
următoarele linii in fereastra de comenzi (command window):
– Z=[3 6 9;6 15 12;9 12 20];
– U=[10 15 12]; ⎡3 6 9 ⎤
– I = inv(Z)*U;
Z = ⎢⎢6 15 12 ⎥⎥
z MATLABul genereaza urmatorul rezultat:
⎢⎣9 12 20 ⎥⎦
I = -3.6491
1.2807
1.4737
z Ceea ce inseamna ca
– I1 = -3.6491 A, I2 = 1.2807 A si I3 = 1.4737 A
26
2.2.1. Calcule cu matrice. Generarea matricelor
z MATLABul include patru functii de baza pentru generarea matricelor:
– zeros: Genereaza o matrice cu toate elementele zero
– ones: Genereaza o matrice cu toate elementele 1 (matricea unitate)
– rand: Genereaza o matrice aleatoare cu distributie uniforma
– randn: Genereaza o matrice aleatoare cu distributie normala
29
2.3.1. Numere complexe
Z=
(5 + j6)(4 − j8) + 4∠300
9 − j2
Rezolvare: Se scrie un fisier script de forma:
34
Programarea MATLAB.
Instrucţiuni si funcţii de control
z Programele MATLAB sunt scrise pentru a realiza
paşi secvenţiali, operaţiile fiind realizate una după
alta.
z In multe cazuri, insa, este necesara repetarea unui
set de instrucţiuni atâta timp cat o condiţie este
realizata si pentru alt set de instrucţiuni.
z Uneori este necesara repetarea unui grup de
instrucţiuni de un anumit număr de ori.
z Instrucţiunile cu ajutorul cărora se poate realiza
acest lucru sunt for si while.
35
Instructiuni si functii de control
z Instrucţiunea for este folosita pentru repetarea unui grup de instrucţiuni de un
anumit număr de ori. Un contor de ciclu va tine evidenta numărului de repetări ale
instrucţiunilor unui ciclu si il opreşte când contorul ajunge la valoarea precizata.
while expresie
grup_de_instructiuni 1
end
grup_de_instructiuni 2
Solutie: se scriu doua fişiere script care reprezintă grafic functia sin(t), primul
utilizând bucla for iar al doilea convertit in forma vectoriala, după cum urmează:
t = 0:.01:10;
N = length(t);
for i=1:N;
y(i) = sin(t(i));
end
plot(t, y)
are si versiunea vectorizata:
t = 0 : .01 : 10;
y = sin(t);
plot(t, y)
Primul exemplu necesita un timp de execuţie a comenzilor de 10-15 ori
mai mare decât cel de-al doilea. 44
3. Calcul grafic. Reprezentări si funcţii grafice
46
Reprezentări si funcţii grafice. Exemple
z De exemplu, daca
x=[0 3.7 6.1 6.5 5.8 3.6];
Comanda plot(x) va genera
graficul din figura ;
z Daca x si y sunt 2 vectori de
aceeaşi lungime, comanda
plot(x, y) va trasa grafic
elementele lui x (axa-x)
funcţie de elementele lui y
(axa-y).
47
Reprezentări si funcţii grafice. Exemple
t = 0:0.05:4;
y = 6 * exp(-2 *t);
plot (t, y)
54
3.1.3. Reprezentări grafice cu axe multiple
z Exemplu: Sa se reprezinte
grafic in 3D cu un pas de π
/ 50, un arc spiralat (spirala)
utilizând funcţiile sin(t) si
cos(t), ştiind ca t=(0-10π).
Sa se inscripţioneze cele
trei axe x, y si z.
z Soluţie: Cu secvenţa
următoare se obţine graficul
din figura:
t = 0 : pi / 50 : 10*pi;
plot3(sin(t), cos(t), t)
58
3.2. Reprezentari grafice 3D. Exemple
z Ex. 26: Sa se reprezinte grafic intr-un spatiu
3D trei matrici coloana (X, Y si Z) utilizand
functia mesh.
z Solutie: Se scrie un fisier script cu secventa
urmatoare, care va returna graficul din fig. 19.
[X, Y] = meshgrid([-2:0.1:2]);
Z = X.*exp(-X.^2-Y.^2);
plot3(X,Y,Z), grid on
z Ex. 27: Sa se reprezinte grafic functia
Z=X*exp(-X2-Y2) ca suprafata mesh, mesh
asociata cu linii de contur (meshc) si ca
suprafata cu plan de referinta (meshz).
z Solutie: Cu secventa urmatoare se obtin
reprezentarile grafice din fig. 20.
[X, Y] = meshgrid(-2 : 0.2 : 2, -2 : 0.2 : 2);
Z = X.*exp(-X.^2-Y.^2);
subplot(131), mesh(X,Y,Z),
subplot(132), meshc(X,Y,Z),
subplot(133), meshz(X,Y,Z)
59
3.3. Crearea si controlul ferestrelor grafice
z MATLABul are doua ferestre grafice de baza: o fereastra de
comanda si o fereastra grafica ;
z Fereastra grafica poate fi impartita in mai multe ferestre ;
z MATLABul ofera facilitatea de-a putea compara mai multe figuri
sau grafice prin crearea, de exemplu, mai multor grafice in ferestre
diferite pe aceeasi figura.
z Functia subplot creeaza si controleaza ferestrele unui grafic si
poate fi apelata cu una din sintaxele:
subplot(m, n, p) sau subplot(h).
z Functia subplot(m, n, p) împarte ecranul intr-o matrice [m x n],
creează axele in subfereastra p si returneaza identificatorul de
control al noilor axe.
z Argumentele m, n si p trebuie sa fie numere intregi in intervalul (1,
9). Scalarul m precizeaza in cate subferestre se imparte fereastra
pe verticala, iar n specifica impartirea ferestrei pe orizontala.
z De exemplu comanda subplot(324) creaza sase ferestre intr-o
figura (imparte o figura in 6 ferestre) si creaza a patra fereastra ca
reprezentare grafica curenta
60
3.3. Crearea si controlul ferestrelor grafice.
Exemplu
z Ex.: Sa se reprezinte grafic o forma de unda
sinusoidala, una cosinusoidala si o forma de
unda tangenţiala, pe aceeaşi figura dar in
ferestre diferite.
z Solutie: Se scrie un fisier-M cu următorul
continut:
x = linspace(0, 2*pi, 50);
z %functia linspace generează un vector
%linie cu 50 de puncte intre (0 - 2π)
y = sin(x); z = cos(x), w = tan(x);
subplot(2, 2, 1), plot(x, y)
%genereaza o figura cu patru ferestre si creaza
%prima fereastra cu functia sin(x)
subplot(2, 2, 2), plot(x, z)
% creaza a doua fereastra pentru functia cos(x)
%pe prima linie si a doua coloana
subplot(2, 2, 3), plot(x, w)
% creaza a treia fereastra pentru functia tan(x)
%pe a doua linie si prima coloana
61
4. Achiziţia, interpolarea si aproximarea datelor
65
Prelucrarea datelor si calcule statistice. Exemplu
z Datele eronate sau cele care nu îndeplinesc o anumita condiţie, impusa
de utilizator, pot fi înlocuite, ca in exemplul următor:
z %Utilizarea regulii lui Simpson si metoda trapezelor pt. calculul integralei functiei y = f(x)
z Se obtine rezultatul:
– Intsimp = 1.8464
– Inttrapz = 1.9742
71
Functia MATLAB pentru derivare
z Functia MATLAB pentru derivare este diff si poate fi apelata
cu sintaxele:
Y = diff(X) sau Y = diff(X, n) sau Y = diff(X, n, dim)
z daca X este un vector linie sau coloana, X = [x(1), x(2),...,
x(n)], atunci functia diff(X) va returna vectorul diferentelor
elementelor adiacente, adica XD = [x(2)-x(1), x(3)-x(2),..., x(n)-
x(n-1)];
z daca X este o matrice atunci diferentele se calculeaza pe
fiecare coloana prin scaderea elementului din linia imediat
urmatoare (superioara):
diff ( X ) = X (2 : m,:) − X (1 : m −1,:)
Unde m reprezinta nr. de linii.
72
Derivarea numerica. Exemple
z Ex. 34: Sa se aproximeze derivata numerica a unei functii y(x) pentru
X = [0, 1, 2, 3, 4, 5] si Y = [2, 6, 3, 5, 9, 12].
z Solutie: Functia diff permite aproximarea derivatei numerice a unei functii
y(x) cu relatia:
dy = diff ( Y ). / diff ( X )
74
Derivarea si integrarea ecuatiilor diferentiale
dy
y =
,
= g ( x, y )
z O ecuaţie diferenţiala de ordinul 1 are forma: dx
z Unde x este variabila independenta iar y este functia
necunoscuta.
z Un exemplu de ecuaţie diferenţiala de ordinul 1 este y’=3x2.
Cunoscând condiţia iniţiala y(0) = -7.5 va rezulta soluţia
y’ = x3-7.5.
z Metodele numerice cele mai cunoscute, pentru rezolvarea
ecuaţiilor diferenţiale, sunt metoda Euler si metoda Runge-
Kutta (ode23, ode45).
z Aceste functii se apeleaza cu sintaxa:
[x, y] = ode23(’yprim’,x0, xf, y0, tol, trace)
z In care x0 si xf sunt valorile iniţiala si finala a variabilei x, y0
este vectorul coloana conţinând condiţiile iniţiale, tol reprezintă
toleranta iar trace parametrii care asigura tipărirea rezultatelor75
intermediare.
Integrarea ecuatiilor diferentiale. Exemplu
77
Functiile MATLAB pentru interpolarea si aproximarea datelor.
85
4.4.3. Transformata Fourier
z Unealta matematica pentru analiza unui semnal in domeniul frecventei
este Transformata Fourier care poate lua diferite forme in funcţie de
semnalul analizat.
z Ceea ce au in comun aceste semnale este faptul ca sunt alcătuite
dintr-un număr de componente sinusoidale de frecvente diferite,
fiecare având o anumita amplitudine si faza initiala.
z Transformata Fourier face conversia unui semnal din domeniul timp intr-
un semnal discret in domeniul frecventa.
z Daca g(t) este un semnal neperiodic exprimat ca funcţie de timp,
transformata Fourier a funcţiei g(t) este data de expresia integrala:
∞
G( f ) = ∑ g (t ) exp( − j 2π ft ) dt
∞
…..(18)
−∞ ∑
G ( f ) = g (t ) exp(− j 2πft ) dt
−∞
z Valoarea semnalului g(t) poate fi obţinuta din expresia transformatei
Fourier (ec. 18) utilizând relaţia transformatei Fourier inverse:
∞
g (t ) = ∫ G ( f ) exp(
−∞
j 2 π ft ) df 86
Transformata Fourier
z Daca g(t) este un semnal continuu si periodic:
g (t ) = g (t ± nTp )
87
Transformata Fourier rapida (FFT)
z Transformata Fourier rapida (FFT) este o metoda eficienta de
calcul a transformatei Fourier discrete.
z FFT reduce numărul de calcule matematice necesare pentru
calculul transformatei Fourier discreta (DFT).
z FFT poate fi utilizata pentru calculul spectrului puterii unui
semnal, pentru filtrarea digitala a semnalelor sau pentru
obţinerea corelaţiei dintre 2 semnale.
z Functia MATLAB pentru calcularea transformatei Fourie
discrete (DFT) a unui vector x, utilizand algoritmul de calcul al
transformatei Fourier rapide (FFT) este: fft(x).
z Functia fft(x, N) se utilizează pentru a obţine FFT pentru un
vector de lungime N (cu N puncte).
z Daca X este o matrice, functia fft returnează transformata
Fourier a fiecărei coloane.
z Daca lungimea lui X este mai mica decat N, atunci matricea X
este completata cu valoarea zero pana la dimensiunea N. Daca
lungimea lui X este mai mare decât N, atunci secvenţa matricei
X este trunchiata (redusa, micsorata). 88
MATLAB furnizează o colecţie de
funcţii pentru calcularea si determinarea
transformatei Fourier:
Functia Descrierea functiei
Calculează transformata Fourier rapida
fft
fft2 Calculează transformata Fourier rapida (discreta) de ordinul 2
Calculează transformata Fourier rapida (discreta) de ordinul n
fftn
Calculează transformata Fourier discreta inversa
ifft
Calculează modulul (amplitudinea)
abs
Calculează unghiul de faza
angle
Elimina discontinuităţile unghiului de faza si generează un semnal
unwrap in radiani 89
FFT - Exemple
z Ex. : Sa se calculeze si sa se reprezinte grafic amplitudinea unui semnal x
= sin(2π*15*t) utilizand functia fft. b) Sa se reprezinte pe acelasi grafic faza
si amplitudinea semnalului.
z Solutie: Se scrie un fisier script cu urmatorul continut, care va genera
graficul din figura urmatoare:
%Acest fisier calculeaza amplitudinea transformatei Fourier rapide a unei secvente
t = (0:99) / 100; % vectorul timp
x = sin(2*pi*15*t) + sin(2*pi*40*t); %semnalul achizitionat
y = fft(x); % calculeaza DFT a semnalului
m = abs(y); %amplitudinea semnalului
f=(0 : length(y) - 1) '/ length(y)*100; % vectorul frecventei
subplot(211), plot(t,x), xlabel('timpul (s)'), ylabel('x(t)'),
title(’Semnalul achizitionat in domeniul timp’)
subplot(212), plot(f,m), xlabel('frecventa(Hz)'), ylabel('Amplitudinea
semnalului'),title('Amplitudinea unui semnal calculata cu functia fft')
p = unwrap(angle(y));
%functia angle calculeaza faza semnalului si functia unwrap elimina discontinuitatile fazei
figure, subplot(211), plot(f,m), ylabel('Amplitudinea semnalului'), grid;
subplot(212), plot(f, p*180 / pi), xlabel('Frecventa (Hz)'), ylabel('Faza
(grade)'),grid
90
FFT – Reprez. graf. a ampl si fazei unui semnal
91
FFT - Exemple
z Ex.: Sa se scrie un fisier function care sa calculeze transformata
Fourier rapida a unui semnal de forma:
x=2*sin(2*pi*50*t)+1.5*sin(2*pi*100*t)+sin(2*pi*200*t)+0.5*sin(2*pi*35
0*t);si care sa returneze vectorii frecventa si amplitudine. Sa se
reprezinte pe acelaşi grafic amplitudinea si faza funcţie de frecventa.
93
5. Analiza circuitelor electrice
R2 (R 1 + R2 )
2
96
z Se scrie un fisier function cu z Pentru a face legatura intre
numele L1 care conţine urmatoarea parametrii tuturor secventelor
secventa:
function, se utilizeaza functia global:
function I=L1(u)
r1=100; r2=100;us=5; z 2) Se scrie un fisier function cu
I=(us-u)/r1; numele L2, utilizand functia global:
function I = L2(u)
function I=L2(u) global r1 r2
r1=100; r2=100; us=5; us = 5; I = u / r2;
I=u / r2;
function I = L1(u)
z Dupa rularea fisierului L1, se
tasteaza urmatoarea comanda, in global r1 r2
fereastra de comenzi (command us=5; I = (us-u) / r1;
window),
subplot(121), fplot('L1',[0,5]), grid, z De asemenea, se mai scrie un fisier
subplot(122), fplot('L2', [0,5]), grid script cu numele „TestL1”, care
trebuie apelat dupa rularea fisierul
z In fisierul function L1 de mai sus function L2, cu urmatoarea secventa,
trebuie declarate valorile numerice global r1 r2
ale celor doua rezistente in
definirea fiecarei functii. Daca avem r1 = 100; r2 = 100; u=0:0.01:5;
mai mult de doua astfel de functii I1 = L1(u); I2 = L2(u);
programul poate deveni dificil iar
timpul de rulare poate fi suficient de figure, subplot(121), plot(u, I1),
mare. grid,subplot(122), plot(u, I2), grid
97
z b) Puterea disipata pe rezistenta
de sarcina se poate calcula cu
următoarea secvenţa, utilizând
ecuaţia (29):
z %acest fişier script calculează
UI = 5.0000
3.0178
0.0592
0.0396
0.0296
100
0.0101
Rezolvarea circuitelor cu Teorema
curentilor de contur (ciclici)
z Ex. 46: Utilizând teorema curenţilor
de contur sa se calculeze curentul (I)
care trece prin rezistenta R4 a
circuitului din figura si puterea (P)
furnizata de sursa de tensiune (us =
10 V), ştiind ca R = 10 Ω, R1 = 30 Ω,
R2 = 15 Ω si R3 = 30 Ω:
z Solutie: Utilizând teorema curenţilor ⎧10⋅ (I1 − I2 ) +30⋅ (I1 − I3) −10= 0⎫
de contur si alegând sensurile ⎨ ⎬
acestora ca in figura se poate 40
⎩ 1⋅ I − 10 ⋅ I 2 −30⋅ I3 =10 ⎭
observa ca puterea furnizata de sursa
de tensiune este P = 10 I1 iar ⎧10⋅ (I2 − I1 ) +15⋅ I2 + 5⋅ (I2 − I3 ) = 0⎫
curentul care trece prin rezistenta R4 ⎨ ⎬
⎩−10 ⋅ I1 + 30 ⋅ I 2 − 5⋅ I3 = 0 ⎭
este I = I3 – I2.
z Se scriu ecuaţiile corespunzătoare
fiecărui ochi de reţea: ⎧30⋅ (I3 − I1 ) + 5⋅ (I3 − I2 ) + 30101
⋅ I3 = 0⎫
⎨ ⎬
⎩− 30 ⋅ I1 − 5 ⋅ I 2 + 65⋅ I 3 = 0 ⎭
z In forma matriciala ecuatiile (37) - (39) devin:
⎡ 40 − 10 − 30⎤ ⎡ I1 ⎤ ⎡10⎤
⎢ − 10 30 − 5 ⎥ ⋅ ⎢ I ⎥ = ⎢ 0 ⎥
⎢ ⎥ ⎢ 2⎥ ⎢ ⎥
⎢⎣− 30 − 5 65 ⎥⎦ ⎢⎣ I 3 ⎥⎦ ⎢⎣ 0 ⎥⎦
z La t < 0, tensiunea la
bornele condensatorului
este uC(0) = 2 * 10 = 20V si
curentul prin bobina iL = 0;
z La t > 0, comutatorul se
închide si toate cele patru
elemente sunt in paralel.
z Utilizând Teorema lui t
u(t) du(t) 1
Kirchoff va rezulta ecuaţia: Is = +C⋅ + ⋅ ∫ u(τ ) ⋅dτ + iL (0)
R dt L 0
z Aplicând Transformata
Laplace ecuaţiei (57) vom Is U(s) U(s) IL(0)
= +C[s⋅U(s)−Uc(0)] + +
obţine: s R sL s
110
Se scrie un fisier function, cu numele diff2, cu solutia ecuatiei diferentiale si un fisier script
principal care apeleaza fisierul function si care reprezinta grafic tensiunea la bornele
condensatorului utilizand functia MATLAB ode23 si Transformata Laplace:
% Fisierul function cu Solutia unei ecuatii diferentiale de ordinul 2
function xderivat = diff2(t, x)
is=2;C=50e-6;L=1/32;R=10; k1=1/C; k2=1/L; k3=1/(R*C);
xderivat = [0 k2; -k1 -k3]*[x]+[0; k1*is];
%Fisierul script principal pentru analiza regimurilor tranzitorii a unui circuit RLC paralel
%utilizand functia ode (solutie numerica) si Transformata Laplace
%Analiza reg. tranzitoriu cu functia ode23
t0 = 0; tf = 30e-3; tspan = [t0 tf];
x0 = [0 20]; % conditiile initiale
[t, x] = ode23('diff2', tspan, x0);
subplot(211), plot(t, x(:,2)); %coloana 2-a a matricii x reprezinta tensiunea pe condensator
xlabel('Timpul, s'), ylabel('Tensiunea pe condensator, V');
T
1
I ef = I = ⋅ ∫i ( t ) ⋅ dt
2
– a) metoda analitica T 0
– b) metoda numerica.
T
1 P 114 P
Pmedie = p(t) = ⋅ ∫u(t) ⋅ i(t) ⋅ dt k= =
T 0 S U ⋅I
z Solutie: Se scrie fisierul script cu urmatorul continut, care va apela si un
fisier function („Tensiunea”) creat pentru a defini tensiunea, curentul si
puterea:
z %Acest fisier calculeaza puterea medie si efectiva si factorul de putere
z %utilizand functia MATLAB de integrare numerica quad
z
%Calcul numeric
T = 2*pi / (220*pi);%perioada formei de unda sinusoidale
a = 0;b = T; %limitele de integrare
x = 0 : 0.02 : 1; t = x .* b;
Uint = quad('Tensiunea', a, b);
Uef = sqrt(Uint / b); %tensiunea efectiva
Iint = quad('Curentul', a, b);
Ief = sqrt(Iint / b); %Valoarea efectiva a curentului
Pint = quad('Putereainstantanee',a,b);
Pmedie = Pint / b; %puterea medie
k = Pmedie / (Ief * Uef); %factorul de putere
%Solutia analitica:
P_amedie = (60 / 2)*cos(30*pi / 180);
115
U_aef = 10 / sqrt(2); k_a = cos(30*pi / 180);
z fprintf('Puterea medie analitica %f \ n Puterea medie numerica:
%f\n',P_amedie,Pmedie)
z fprintf('Tensiunea efectiva analitica % f \ n Tensiunea efectiva numerica:
%f \ n', U_aef, Uef)
z fprintf('Factorul de putere analitic % f \ n Factorul de putere numeric:
%f\n', k_a, k)
function Pt = Putereainstantanee(t)
%aceasta functie defineste puterea instantanee
It = 6*cos(220 * pi * t + 30 * pi / 180);
Ut = 10 * cos(220* pi * t + 60 * pi / 180);
Pt = It .* Ut; 116
Circuite de curent alternativ RC, RL si RLC
119
120
Exemplul urmator va descrie rezolvarea unui circuit RLC cu
ajutorul MATLABului utilizand o metoda iterativa de ordinul
2 si o metoda de integrare numerica ode.
z Ex. 54: Sa se calculeze si sa se
reprezinte grafic tensiunea pe
condensator in functie de timp pentru
circuitul RLC din figura 50, pe
intervalul , stiind ca LC=1, RC=3 si
ω=1.
z Ecuatia care calculeaza tensiunea
pe condensator a circuitului RLC din
figura este: d 2U C dU C
LC + RC + U C = U (t )
z Ecuatia diferentiala de ordinul 2 se dt 2 dt
poate scrie sub forma: d2y dy
– In care a = LC, b = RC si c = 1 sunt a 2 +b + cy = sin( ω t )
dt dt
constantele de timp ale circuitului.
z Solutia ec. diferentiale este data de ⎛ 1 ⎞
D2 (1) = ⎜⎜ ⎟⎟ ⋅ (− b(1) ⋅ D(1) − c(1) ⋅ y(1) + u(1))
relatia: ⎝ a(1) ⎠
121
z Solutie 1: Pentru conditiile initiale y(t=0)=y’(t=0)=0 se scrie un fisier
script cu urmatoarea secventa :
z %Reprezentarea grafica a tensiunii pe condensator pt. un circuit de c.a. RLC
tin = 0; tfin = 16*pi;
t=linspace(tin,tfin,2000);%genereaza un vector linie cu 2000 de puncte intre tin si tfin
1
H (s) =
s 2 + 10 ⋅ s + 20
126
Locul geometric al radacinilor si
alocarea polilor
z Functia
MATLAB pt.
alocarea
polilor:
pzmap
z Iar pt. locul
geometric al
radacinilor
rlocus;
127
Răspunsul in frecventa
z Răspunsul în frecvenţă sau diagrama Bode,
alături de algoritmii de reglare ai regulatoarelor
de tip proporţional-integrator-derivativ (RG-PID),
sunt cele mai utilizate metode de proiectare ale
sistemelor de conducere utilizate în industrie.
z Mărimea de ieşire a unui sistem liniar, având ca
mărime de intrare un semnal sinusoidal, este tot
o sinusoidă de aceeaşi frecvenţă, dar de
amplitudine şi fază diferite.
z Se poate aplica sistemelor de tip SISO sau
MIMO, considerând sistemul respectiv liniar.
z Este utilizat pentru proiectarea sistemelor de
conducere, acordarea parametrilor unor
regulatoare sau pentru proiectarea diferitelor128
filtre electronice/filtre de reţea etc.
Reprezentarea grafica a raspunsului
in domeniul frecventa
z Dacă se doreşte
reprezentarea
grafică a
răspunsului
sistemului în
domeniul
frecvenţă, se
utilizează funcţia
bode(sys), sau
bodemag(sys)
care reprezintă
grafic doar
amplitudinea
diagramei Bode.
129
Funcţii dedicate creării şi conversiei
modelelor liniare
z BibliotecaControl System furnizează şi un
set de funcţii (tf, ss, zpk, frd) pentru crearea
a patru tipuri de modele liniare, invariante în
timp (Linear Time Invariant-LTI), şi pentru
conversia dintr-un model în altul
130
Conversia modelelor
z Funcţia c2d realizează conversia modelelor continue în
modele discrete echivalente, implementate prin tf, zpk şi ss;
z Se poate realiza şi conversia inversă, utilizând funcţia d2c;
z Metodele care realizează această conversie (discretizarea
sistemelor liniare) sunt: zero-order-hold, first-order-hold,
Tustin biliniar approximation (metoda trapezului), Tustin with
frequency prewarping şi matched poles and zeros.
z Aceste funcţii pot fi apelate cu următoarele sintaxe:
133
Diagrama Nyquist
z Diagrama Nyquist este utilizată, în tandem cu diagrama
Bode, la estimarea performanţelor sistemelor de reglare
automată, în buclă închisă (cu buclă de reglare/reacţie), pe
baza proprietăţilor sistemului fără buclă de reglare, folosind
fdt a acestuia, atunci când diagrama Bode oferă informaţii
confuze despre stabilitatea sistemului în buclă deschisă.
z Criteriul Nyquist este cel mai important criteriu de apreciere a
stabilităţii SRA, în timp continuu.
z De asemenea, diagrama Nyquist poate fi utilizată pentru a
găsi domeniul de variaţie al factorului de amplificare (gain) al
regulatorului, pentru care sistemul în buclă închisă este
stabil.
z Funcţia MATLAB, pentru reprezentarea grafică a diagramei
Nyquist, este:
nyquist (num, den)
134
Diagrama Nyquist - Exemplu
nyquist(50,[1 9 30 40]) După cum rezultă din figura
sistemul modelat prin fdt este
stabil, deoarece diagrama
Nyquist nu conţine nici o
încercuire (suprapunere) a
celor două axe în jurul valorii
de -1 (punctul critic). Acest
lucru se datorează faptului
că, polii fdt ai sistemului nu
sunt alocaţi în semiplanul
drept.
Utilizarea diagramei Nyquist
permite vizualizarea intuitivă
şi aprecierea gradului de
stabilitate a sistemului şi a
influenţei modificării unor
parametrii ai acestuia asupra
stabilităţii.
135
Diagrama Nyquist - Exemplu
136
Analiza circuitelor electrice utilizând
răspunsul în frecvenţă
z Să se calculeze şi să se
reprezinte grafic răspunsul în
frecvenţă al circuitului RLC
din figura ştiind că:
z R=10 kΩ, C=1,12 µF şi L =
5H
d2UC dU ce se întâmplă dacă
LC 2 + RC C +UC =Ui (t),uc (0) = 0 z
dt dt rezistenţa se modifică la
H (s) =
U 0 (s)
=
R
= 2
sRC
=
valoarea R = 100 Ω în timp
U i (s) R + sL +
1 s LC + sRC + 1 ce L şi C rămân
sC
s
R neschimbate?
= L 137
R 1
s2 + s +
L LC
z Soluţie: Se scrie fişierul script (raspunsulfrecventaRLC.m) cu
următoarea secvenţă:
z L=5; C=1.25e-6; R1=10000; R2=100; %parametrii circuitului
z num1=[R1 / L 0]; den1=[1 R1/L 1/(L*C)];%numărătorul şi numitorul fdt
z w=logspace(1, 4); f=w / (2*pi); h1=freqs(num1, den1,w);
z mag1=abs(h1); phase1=angle(h1)*180 / pi;
z num2=[R2/L 0]; den2=[1 R2/L 1/(L*C)];
z h2=freqs(num2,den2,w);
mag2=abs(h2);phase2=angle(h2)*180/pi;
z subplot(221),loglog(f,mag1,'+'),title('Raspunsul amplitudine pt.
R=10k'),ylabel('Amplitudinea')
z subplot(222),loglog(f,mag2,'--'),title('Raspunsul amplitudine pt.
R=0.1k'),ylabel('Amplitudinea')
z subplot(223),semilogx(f,phase1,'--'),title('Raspunsul faza pt. R =
10k'),
z xlabel('Frecventa (Hz)'),ylabel('Unghiul de faza (grade)')
z subplot(224),semilogx(f,phase2),title('Raspunsul faza pt. R =
0.1k'),
z xlabel('Frecventa (Hz)'),ylabel('Unghiul de faza (grade)')
138
Fig. arata ca, deoarece rezistenta rezistorului R2 scade de la 10k la 0.1k,
latimea de banda a raspunsului in domeniul frecventa scade si totodata factorul (indicatorul)
139
de calitate al circuitului creste.
6. Introducere in Simulink (1)
z Simulinkul este un mediu interactiv de modelare, simulare si
analiza dinamică a sistemelor liniare(continue), neliniare,
discrete, (continue în timp, discrete în timp) sau hibride.
z Cu ajutorul pachetului de programe Simulink se pot construi
diagrame bloc, utilizând biblioteca standard (nucleului de
baza) sau realizând propriile blocuri (interfaţa grafică
interactiva denumită „graphical user interface” – GUI ).
z Modelele complexe se realizează ierarhic creând blocuri
grupate în subsisteme. Aceste subsisteme se pot cupla între
ele realizându-se un singur sistem în care se evidenţiază
mărimile de intrare şi de ieşire.
z După realizarea modelului matematic al sistemului, următorul
pas este simularea dinamică utilizând una din metodele de
140
integrare numerică oferită de program (Ode23, Ode45 etc).
6. Introducere in Simulink (2)
z Simularea dinamică a sistemului analizat se bazează pe
cunoaşterea sistemului de ecuaţii diferenţiale, pe realizarea
shemei bloc şi desigur pe utilizarea unei metode de integrare
numerică. Rezultatele simulării pot fi afişate atât grafic cât şi
sub forma unor tabele numerice.
z Utilizând blocurile bibliotecii S-Functions se pot crea propriile
blocuri, care se integrează în schemele existente, realizate cu
blocuri din biblioteca standard a Simulinkului.
z Utilizarea Simulinkului pentru studiul diferitelor regimuri de
functionare ale sistemelor dinamice permite si vizualizarea mai
multor ferestre grafice în acelaşi timp.
z Biblioteca Simulink conţine mai multe seturi (colecţii) de blocuri
dedicate diferitelor domenii de activitate, cum ar fi ingineria
electrica – maşini, convertoare statice si acţionări electrice,
electronica - procesarea digitala a semnalelor etc.
141
6.1. Editorul Simulinkului
z Când se doreşte accesarea bibliotecii
Simulink sau deschiderea unui model,
Simulinkul afişează instantaneu fereastra
editorului său.
z Pentru a deschide o fereastră Simulink si
implicit pentru a crea un model nou se
acceseaza new model din meniul principal.
Aceasta fereastră conţine cele mai uzuale
comenzi ale Simulinkului, cum ar fi:
deschiderea unui model, salvarea acestuia,
accesarea bibliotecii, setarea parametrilor
simulării si rularea unei simulări etc 142
Editorul
Simulinkului
d 2 y1 1 dy1 dy 2
= −ω 2
⋅ y1
y2 = ⋅ = −ω ⋅ y1
dt 2
ω dt dt
y 2 = − ω ∫ y 1 ⋅ dt
153
y1 = ω ∫y 2 ⋅ dt
154
Modelarea si simularea sistemelor dinamice
z Modelarea si simularea unui sistem dinamic conţine
doua etape:
– Crearea unui model grafic utilizând editorul modelelor
din nucleul de baza al librăriei Simulink (modelarea
sistemului dinamic). Modelul dinamic descrie ecuaţiile
matematice ale sistemului pe care dorim sa-l simulam, in
funcţie de timp, stabilind mărimile de intrare – stare –
ieşire (MM-ISI). Aceste ecuaţii pot conţine ecuaţii
algebrice, integrale si diferenţiale;
– Simularea regimurilor de funcţionare ale sistemului intr-
un anumit interval de timp. Simulinkul utilizează
informaţiile de intrare ale utilizatorului in interiorul
modelului pentru realizarea propriu-zisa a simulării
(simularea sistemului dinamic).
155
Modelarea sistemelor dinamice (1)
z Simulinkul conţine o librărie cu blocuri standard si un editor
grafic ce permite realizarea conexiunilor dintre ele. Astfel, prin
selectarea si interconectarea corespunzătoare a blocurilor se
poate implementa, intr-o lume virtuala, orice sistem dinamic
real.
z Fiecare bloc reprezintă un sistem dinamic elementar ce
poate avea la ieşire o variaţie liniara (continua in timp), sau
discreta (variabila in timp).
z Tipul fiecărui bloc determina legătura dintre mărimile de intrare,
stare si cele de ieşire ale sistemului si variaţia acestuia in timp.
Conexiunile dintre blocuri se realizează prin linii.
z Fiecare bloc poate sa contina una sau mai multe mărimi de
intrare - stare – ieşire, după cum descrie si figura:
156
Modelarea sistemelor dinamice (2)
z Majoritatea blocurilor conţin parametrii care trebuie
definiţi înaintea comenzii de simulare a sistemului, cum ar
fi condiţiile iniţiale, pasul de eşantionare etc.
z Mărimile de ieşire ale unor blocuri depind de mărimile de
stare ale sistemului. Aceste blocuri trebuie sa retina
(memoreze) valorile de stare anterioare pentru a calcula
actualele mărimi de stare. Pentru a realiza acest lucru
aceste blocuri trebuie sa contina o memorie interna. De
exemplu, blocul integrator realizează integrala semnalului
de intrare si conţine ca mărime de stare valoarea
anterioara mărimii de intrare. Blocuri care nu conţin
mărimi de stare sunt, de exemplu: blocul sumator (sum),
blocul gain etc.
z Principala caracteristica a blocurilor din biblioteca
Simulink consta in posibilitatea de-a modifica parametrii
acestora. Blocul gain conţine un parametru cu acelaşi
nume care poate fi modificat corespunzător. 157
Simularea sistemelor dinamice
z Simularea sistemelor dinamice se refera la procesul de evaluare
(calculare) a marimilor de stare si marimilor de iesire intr-un
anumit interval de timp, utilizand informatii furnizate de modelul
matematic al sistemului.
z Simularea propriu-zisa a unui sistem include doua faze:
1. Initializarea modelului
2. Executia modelului
z In timpul procesului de initializare Simulinkul evaluează expresiile
parametrilor din blocurile modelului matematic pentru a
determina valorile acestora, determina calitatea semnalului (tipul
si dimensiunile datelor), si verifica daca fiecare bloc poate
accepta semnalele generate de parametrii de intrare.
– De asemenea, in aceasta faza Simulinkul determina memoria necesara
calculului parametrilor de stare si timpul de simulare necesar determinarii
timpului de esantionare al blocurilor existente in modelul respectiv si le
sorteaza in ordinea in care trebuie sa fie rulate (executate).
z In faza de executie Simulinkul evalueaza succesiv marimile de
stare si marimile de iesire ale sistemului pe intervalul de timp
setat (simulation start time – stop time) utilizand informatiile
furnizate de modelul matematic al sistemului dinamic. 158
z Înainte de lansarea in execuţie a simulării unui sistem
dinamic se setează parametrii care definesc timpul
de simulare (valoarea iniţială si finală), metoda de
integrare (ode23, ode45 etc) si pasul simulării (pas
variabil, pas fix – continuu sau discret). Acest lucru
se poate realiza din meniul principal al editorului
Simulink accesând fereastra Simulation
Parameters, după cum descrie si figura:
159
z Simulinkul oferă posibilitatea simulării unui sistem atât cu pas continuu (fix) cat si
cu pas variabil. Diferenţa consta in faptul ca daca se alege pasul variabil se
poate imbunatatii precizia simulării prin reducerea mărimii pasului (paşii inutili vor
fi eliminaţi).
z De asemenea, se poate alege metoda de integrare numerica din meniul Solver.
Metodele de integrare a sistemelor continue sunt metodele numerice clasice
(Runge-Kutta, Adams, Euler, Rosenbrock, metoda trapezelor etc).
163
Discretizarea modelelor
z Prin discretizarea unui model se înţelege înlocuirea
blocurilor continue ale modelului cu blocuri discrete
echivalente, utilizând o anumită metodă de discretizare
(Tustin, zoh etc).
z Simulinkul poate discretiza un model existent, utilizând o
fereastră grafică interactivă (GUI), prin accesarea
meniului
toolsÆmodel discretizer.
z Această metodă (GUI) de discretizare permite automat
identificarea blocurilor continue ale modelului existent.
z Următorul pas constă în modificarea parametrului intern
sample time (de la Ts=0 la Ts>0) al blocului respectiv
pentru ai da acestuia caracter discret.
z Discretizarea modelelor reprezintă un pas important în
proiectarea regulatoarelor (filtrelor) digitale şi este foarte
utilă pentru simularea sistemelor de control în buclă
deschisă şi cu buclă de reglare (SRA, acţionare electrică 164
etc).
Figura de mai jos ne arată cum se poate discretiza un model liniar
existent prin utilizarea interfeţei grafice interactive GUI – Model
Discretizer. Această metodă de discretizare permite automat identificarea
blocurilor continue ale modelului existent. In cazul nostru există doar un
singur bloc în această situaţie, blocul „Generator de semnal” :
165
Controlul in timp discret al SRA
z Pentru reducerea erorilor şi a timpului de simulare,
regulatoarele / controlerele continue pot fi înlocuite cu
cele discrete.
z Diferenţa principală între cele două tipuri de
regulatoare constă în faptul că sistemele digitale
operează cu semnale discrete (discretizate cu un
timp/perioada de eşantionare).
z Proiectarea unui sistem discret implică, în prima fază,
discretizarea/conversia blocurilor continue iar apoi
obţinerea unui model discret echivalent, implementat
prin fdt sau prin mărimi de stare.
2 z −1
s= ⋅ 166
Ts z + 1
Modelarea şi simularea sistemelor neliniare de control
z Sistemele neliniare sunt acele sisteme care nu satisfac
principiul superpoziţiei, adică nu sunt liniare şi omogene ;
z De exemplu, pentru un semnal de intrare sinusoidal, semnalul
de ieşire al unui sistem neliniar (convertor static) va conţine
mai multe semnale de amplitudine şi fază diferite faţă de
fundamentală (armonici), în timp ce un sistem liniar va conţine
la ieşire doar o mărime sinusoidală.
z Un model neliniar conţine componente interne cum ar fi
sursele controlate de tensiune sau curent, condensatoare,
bobine sau elemente ce depind, de exemplu, de tensiunea
aplicată la intrare.
z Elementele care au caracteristici neliniare se numesc
regulatoare sau algoritmi de reglare, şi pot fi întâlnite, de
exemplu, la protecţia sistemelor bazate pe scheme electrice
cu relee, în interfeţele de ieşire ale echipamentelor de
conducere numerică (convertoare numeric-analogice) etc.
167
Implementarea SRA cu elemente neliniare
z În sistemele de reglare automată (SRA) elementele
neliniare se întâlnesc ca blocuri intermediare între
regulatoare şi elementele de execuţie.
z Blocul de saturaţie modelează cel mai frecvent tip de
neliniaritate, deoarece, în general domeniile de variaţie ale
mărimilor fizice sunt limitate (cuplurile dezvoltate de
servomecanisme şi motoare electrice, puterile surselor de
alimentare, valorile absolute ale tensiunilor şi curenţilor
etc).
z Un sistem neliniar poate fi modelat printr-o ecuaţie
diferenţială de stare de forma:
dx
= f ( x, t ); x(0) = x0
dt
168
Sistemul de reglare automată (SRA) are în componenţă
un element neliniar (blocul de saturaţie), utilizat
pentru limitarea semnalului de intrare al unui
servomecanism, modelat printr-o funcţie de transfer
cu poli şi zerouri descrisă de relaţia:
10( s + 10) ⋅ ( s + 10)
H (s) =
( s + 1) ⋅ ( s + 0.3 + i ) ⋅ ( s + 0.3 − i ) 169
Modelarea şi implementarea elementelor
de circuit neliniare
z Modelarea elementelor neliniare de circuit (rezistenţă variabilă,
inductanţă de saturaţie) se poate realiza prin utilizarea
blocurilor Look-up-table, pentru implementarea vectorilor de
intrare-ieşire, care caracterizează funcţionarea elementelor
respective, sau prin utilizarea unui bloc neliniar din biblioteca
Discontinuities, cum ar fi: Saturation, DeadZone, Relay etc.
z Dacă se cunoaşte expresia analitică de variaţie a parametrilor
(de ex. I=f(U)), modelarea elementelor neliniare se poate face
direct prin utilizarea unui bloc Fcn, în interiorul căruia se
introduce ecuaţia respectivă.
z Biblioteca SimPowerSystems furnizează o colecţie vastă de
modele neliniare.
170
Modelarea unei inductanţe variabile
z Pentru modelarea unei inductanţe variabile se pleacă
de la ecuaţiile de definiţie:
di dΨ Ψ
u = L⋅ = Ψ = ∫ u ⋅ dt i=
L(Ψ)
dt dt
171
Implementarea inductanţei neliniare in Simulink
di
Uca = i ⋅ R + L ⋅ ;i(0) = i0
dt
t
1
i(t ) = ∫ (U ca − i ⋅ R)dt + i(0)
L0
174
Exemplu: Să se implementeze în Simulink prin fdt modelul matematic
(MM) al unui circuit RLC serie şi al unui circuit RLC paralel, iar apoi
să se simuleze răspunsul treaptă aplicat la t=0, dacă R=1.5, L=2 şi C=2.
1/ LC 1/ LC
G(s) = 2 G(s) = 2
s + s ⋅ R/ L +1/ LC s +s⋅1/ RC+1/ LC 175
Implementarea in Simulink a unui circuit
RLC serie si paralel prin fdt
176
Biblioteca SimPowerSystems(SPS)
z Setul de blocuri din biblioteca SimPowerSystems
extinde bibliotecile Simulinkului cu blocuri dedicate
modelării, simulării şi analizei circuitelor electrice,
maşinilor şi acţionărilor electrice, convertoarelor
statice şi a sistemelor energetice de putere;
z Biblioteca SimPowerSystems poate fi utilizată
împreună cu biblioteca Simulink standard pentru a
construi diferite diagrame bloc prin conectarea
elementelor unui sistem dinamic (acţionare electrică)
cu diferiţi algoritmi de control în scopul studiului
diferitelor strategii de comandă şi efectele acestora
asupra întregului sistem energetic de putere.
177
Caracteristicile Bibliotecii SimPowerSystems
z Modelează şi simulează circuitele electrice şi
electronice utilizând simboluri standard, cum ar fi:
rezistorul, bobina, condensatorul sau dioda, tiristoare,
tranzistoare etc;
z Furnizează blocuri care modelează diferite tipuri de
maşini electrice (mcc, maşina de inducţie, maşina
sincronă), convertoare statice (redresoare în punte,
invertoare);
z Furnizează blocuri pentru modelarea unui sistem
energetic complet de putere (Transport, Distributie);
z Utilizează metoda de discretizare a unui sistem
dinamic pentru a creşte viteza de execuţie a unei
simulări;
z Permite diferite metode de analiză a unui sistem
(circuit electric) în vederea obţinerii MM-ISI şi 178
calculează transferul de putere.
Biblioteca SimPowerSystems(versiunea 6.5)
conţinea nouă biblioteci cu componente electrice şi
electronice (powerlib):
179
Analiza sistemelor in SimPowerSystems(SPS)
z Afişeaza tensiunea şi curentul în regim staţionar (Interfaţa
grafică interactivă (GUI) afişează valorile curenţilor şi
tensiunilor măsurate în regim staţionar şi toate variabilele
mărimilor de stare, incluzând curenţii prin bobine şi tensiunile
la bornele condensatoarelor);
z Afişeaza şi modifica valorile iniţiale ale mărimilor de stare;
z Calculeaza circulaţia de putere şi iniţializeaza parametrii unei
maşini electrice;
z Genereaza un raport care include calcularea mărimilor de
regim staţionar.
z Cu ajutorul bibliotecii SimPowerSystems se pot analiza
diferite configuraţii de circuite electrice şi se pot calcula
modelele matematice echivalente ale mărimilor de stare
(MM-ISI) fără sa fie necesară rularea unei simulări
180
Modelarea şi simularea dispozitivelor
electronice şi a convertoarelor statice
z Pachetul de programe MATLAB
& Simulink este o unealtă
convenabilă şi pentru
modelarea, simularea şi analiza
convertoarelor statice de
comutaţie, utilizând atât
funcţii/blocuri de stare (MM-ISI)
cât şi fdt/blocuri cu fdt.
z Biblioteca SimPowerSystems
oferă un set de blocuri dedicate
modelării dispozitivelor
electronice (dioda, tiristoare şi
tranzistoare) şi a convertoarelor
statice (redresoare şi invertoare
monofazate sau trifazate în
punte) denumit Power 181
Electronics
Suplimentar această bibliotecă mai conţine două seturi de blocuri,
Discrete Control blocks şi Control blocks, având în componenţă atât
blocuri dedicate controlului convertoarelor statice cât şi diferitelor
configuraţii de filtre şi regulatoare discrete:
182
Diferite configuraţii de blocuri dedicate controlului
convertoarelor statice si filtre şi regulatoare discrete
183
184
185
186
187
188
Modelarea si simularea acţionărilor cu MCC
z In general un sistem electromecanic (acţionare
electrica) are ca marimi de intrare - tensiunea si
cuplul mecanic rezistent, ca marimi de stare –
tensiunea electromotoare indusa, curentul, fluxul,
rezistente, inductanţe sau capacitaţi, iar ca mărimi de
ieşire – turaţia, cuplul electromagnetic sau poziţia.
z Etapele de modelare si simulare ale ME sunt:
– Stabilirea variabilelor independente si asociate;
– Stabilirea funcţiilor de stare (relaţiile dintre mărimi);
– Scrierea ecuaţiilor de definiţie;
– Rezolvarea ecuaţiilor (prin metode analitice si numerice);
– Implementarea modelului matematic;
189
– Simularea diferitelor regimuri de functionare.
Modelarea MCC cu excitaţie separata
z MCC cu excitaţie separata se poate utiliza ca
servomotor, controlul miscarii realizându-se atât prin
indus (rotor) cat si prin infasurarea de excitaţie.
z Reglajul prin indus utilizează ca semnal de comanda
tensiunea la bornele masinii (Ua) la un flux sau
curent de excitaţie constant (IE=ct, Φ=ct), iar reglajul
prin excitaţie reprezintă variaţia curentului din
infasurarea de excitaţie cu tensiunea din indus
constanta (Ua=ct).
z Ecuaţiile de definiţie ale MCC (modelul matematic al
masinii) cu excitaţie separata se utilizează frecvent
in analiza sistemelor de reglare automata (SRA).
z Pentru a modela o maşina de curent continuu
(MCC) se pleacă de la ecuaţia volt-amper si de la
ecuaţia de mişcare. 190
dIa
Ua = Ia ⋅ RT + La ⋅
dt
+Ue Ue = ka ⋅φ⋅Ω
M em − M R = J ⋅
dΩ
Mem = ka ⋅φ ⋅ Ia
dt
t
1 1
t
192
Simularea pornirii in sarcina a unei MCC
193
Implementarea MCC cu excitaţie separata luând in
considerare constantele de timp ale maşinii
z Pentru a simplifica implementarea modelului matematic al MCC
cu excitaţie separata si pentru a evidenţia mărimile de intrare
– ieşire ale modelului, ecuaţiile de definiţie pot fi exprimate in
unitati relative (u.r.) si implementate in Simulink prin utilizarea
blocurilor Fcn, din libraria User-Defined Functions.
z In exemplul următor se prezintă implementarea modelului
matematic al MCC cu excitaţie separata luând in calcul si
constantele de timp ale maşinii si având parametrii exprimaţi
in u.r.:
z Exemplul : Sa se implementeze MM al MCC cu excitatie
separata, cu parametrii exprimaţi in u.r. si având ca mărimi de
intrare: tensiunea indusului-ua, tensiunea aplicata infasurarii de
excitatie-ue si cuplul rezistent la arborele masinii-Mr, iar ca
mărimi de ieşire: curentul prin rotor – ia, curentul din
infasurarea de excitatie - ie, cuplul electromagnetic – Mem si
turatia - n.
– Sa se simuleze o pornire in regim de gol, o încărcare si
modificarea turaţiei prin slăbire de câmp, reprezentând grafic
mărimile de ieşire ale sistemului, stiind ca Ta=0.1, TE=0.1 si194
Tm=0.3.
di a 1
= ⋅ (u a − i a − Ω ⋅ i E )
dt Ta
La LE J ⋅ Ra
Ta = ;TE = ;Tm = 2 2 di E 1
Ra RE k ⋅φ = ⋅ (u E − i E )
dt TE
dΩ 1
= ⋅ (i a ⋅ i E − M R )
dt Tm
195
196
Modelul matematic al MCC implementat
prin funcţii de transfer
z Modelul matematic al MCC poate fi implementat in
Simulink si prin funcţii de transfer (fdt) utilizând
Transformata Laplace
z S-a notat cu ke-constanta corespunzătoare tensiunii
maşinii, cu km-constanta cuplului maşinii. In SI cele
doua constante sunt numeric egale, dupa cum
rezulta si din ecuaţiile puterilor electrica si mecanica
(Pe=Pm).
z Luând in considerare si constantele de timp electrice
(Ta, TE) si mecanica (Tm) si notand – kM=km*Φ si
kE=ke*Φ, se pot obţine funcţiile de transfer ale
modelului matematic al MCC, corespunzătoare
reglajului prin indus si excitaţie: 197
U a ( s ) = I a ( s ) ⋅ (R a + s ⋅ L a ) + U e ( s )
U e (s) = ke ⋅φ ⋅ Ω (s) ∞
M em ( s ) = k m ⋅ φ ⋅ I a ( s ) = I E ( s ) ⋅ I a ( s ) F ( s ) = ∫ f (t ) ⋅ e − st dt
0
M em ( s ) = M R ( s ) + J ⋅ Ω ( s ) ⋅ s
U E (s) = (RE + s ⋅ LE ) ⋅ I E (s)
Ω(s) kM 1
H1(s) = |MR (s)=0 = =
Ua (s) (
s ⋅ J ⋅ (Ra + s ⋅ La ) + kM ⋅ kE kE ⋅ s2 ⋅Tm ⋅Ta + s ⋅Tm +1 )
Ω(s) Ra + s ⋅ La kM ⋅ (1+ s ⋅Ta )
H2 (s) = |Ua (s)=0 = = 2
MR (s) (
s ⋅ J ⋅ (Ra + s ⋅ La ) + kM ⋅ kE s ⋅Tm ⋅Ta + s ⋅Tm +1 )
Ω(s) k E − k a (1 + s ⋅ T a )
H 3 (s) = |U a ( s ) = 0 =
U e (s) (
(1 + s ⋅ T E ) ⋅ 1 + s ⋅ T m + s 2 ⋅ T m ⋅ T a )
Ω(s) kM
H 4 (s) = | I a ( s )=0 =
U e (s) (1 + s ⋅ T m ) ⋅ (1 + s ⋅ T E ) 198
z Exemplu: Sa se modeleze un servomotor de CC cu
magneti permanenţi prin fdt.
z Sa se simuleze pornirea MCC in sarcina (MR=0.35 u.r.) si
reversarea brusca a tensiunii la borne, stiind ca Ta=4.05 ms si
Tm=11.7 ms, kE=53 V / 1000 rpm, kM=0.5 Nm / A.
kM Ra +sLa
Ω(s) = ⋅Ua (s) − ⋅ MR(s)
(Ra +s⋅ La )⋅ sJ+kM ⋅kE (Ra +s⋅ La )⋅ sJ+kM ⋅kE
199
200
Simularea unei porniri in sarcina si
reversarea brusca a tensiunii la borne
201
Pornirea cu rezistoare si frânarea dinamica
z Pornirea MCC se poate realiza prin:
– conectarea directa la reţea,
– modificarea tensiunii de alimentare (cresterea progresiva prin trepte de
tensiune sau prin alimentarea prin convertoare statice)
– cu rezistoare (rezistenta se modifica in trepte).
z Frânarea MCC poate fi:
– recuperativa,
– dinamica (reostatica)
– in contracurent (conexiuni contrare).
z Exemplul următor va prezenta o pornire a MCC cu excitaţie
separata cu un starter rezistiv si o frânare dinamica.
z La pornirea cu rezistoare rezistenta se va modifica in trei
trepte pana când maşina va ajunge la turaţia nominala.
z Franarea dinamica (reostatica) se realizează prin
deconectarea indusului (rotorului) de la reţea si conectarea lui
peste un rezistor.
202
203
204
205
Acţionări reversibile cu MCC cu excitatie separata
si redresoare comandate
z O acţionare electrica reversibila trebuie sa asigure
funcţionarea, cel puţin in regim de motor, in ambele
sensuri de rotaţie.
z Daca maşina de curent continuu este alimentata
printr-un redresor comandat, care furnizează ambele
polarităţi ale tensiunii redresate medii, MCC poate
funcţiona atât in regim de motor cat si in regim de
frână recuperativă, caz in care convertorul devine
invertor.
z MCC funcţionează ca motor in cadranul 1 al
caracteristicii mecanice (Mem=f(Ω)) iar ca frână
recuperativa in cadranul 4.
z Frânarea recuperativa (generator pe reţea) se
realizează atunci când Ue>Ua si Ia=-Ia iar turaţia este
mai mare decât valoarea nominala de mers in gol. 206
Schema de reglare a vitezei (turatiei) acţionării electrice
reprezintă un sistem de reglare automata (SRA) cu bucla
închisă de reglare, care include si o bucla de reglare a
curentului din indus
207
Schema bloc de reglare implementata in Simulink
208
Simularea reg. de motor si frână recuperativă a unei
actionări reversibile cu MCC si redresor comandat
209
Reglarea vitezei unei MCC utilizând
controlul in cascada
z Reglarea vitezei (turaţiei) sau a poziţiei unui
servomotor de curent continuu se poate realiza ca in
figura următoare.
z Schema bloc din figura următoare este o schema de
reglare a turaţiei in cascada având o bucla interna
de reglare a cuplului electromagnetic sau a
curentului din indus. Regulatoarele de turaţie si de
cuplu pot fi de tip PI, cel mai frecvent, sau de tip
PID.
z In acest caz maşina de curent continuu este
alimentata printr-un convertor de cc-cc (chopper),
care poate conţine un tiristor GTO in paralel cu o
210
dioda.
Schema bloc de reglare a turaţiei in cascada
utilizând o bucla interna de reglare a cuplului
electromagnetic
211
212
213
214
215
Final Conclusion
216