Sunteți pe pagina 1din 216

MODELARE I SIMULARE N

MATLAB & Simulink


(Algoritmi de simulare in Inginerie Electrica-ASIE)

Conf. dr. ing. Lucian MIHE-POPA

Cuprinsul cursului partea I


z
z
z
z

Introducere in MATLAB & Simulink


Instruciuni, funcii si operaii de baza ale
MATLABului
Crearea graficelor. Reprezentri si funcii grafice
Achiziia, interpolarea si aproximarea datelor

Prelucrarea datelor si calcule statistice


Aproximarea datelor prin metoda celor mai mici ptrate
Analiza Fourier si FFT

Analiza circuitelor electrice si electronice

Analiza circuitelor electrice de cc si ca


Rspunsul in domeniul timp si frecventa
Metode de proiectare a RG-PID
Tehnici de analiza a circuitelor electronice

Cuprinsul cursului partea II


z
z

z
z
z

Introducere in Simulink;
Modelarea si simularea sistemelor dinamice (in timp
continuu si discret), sistemelor si elementelor
neliniare;
Proiectarea sistemelor de reglare automata (SRA)
utilizand RG-P, PI, PID;
Modelarea circuitelor electrice si a filtrelor de retea
si simularea diferitelor regimuri de funcionare;
Modelarea si simularea masinilor electrice
Metode de pornire si franare a MCC cu excitatie separata
Actionari cu MCC, reglarea vitezei in cascada.
3

Structura prezentarii: C1 + C2
Introducere in MATLAB & Simulink

1.

z
z
z
z

Ce este MATLABul ?
Lansarea in executie. Interfata MATLAB - utilizator
Ce este Simulinkul ?
Informatii ajutatoare ale MATLABului (Helpul online)

Instructiuni, functii si operatii de baza ale MATLABului

2.

Structura programelor MATLAB: fisiere script si function


Matrice si operatii matriceale
Operatii si functii matematice uzuale
Programarea MATLAB. Instructiuni si functii de control

Crearea graficelor. Reprezentari si functii grafice

3.

Reprezentri grafice elementare


Reprezentri grafice tridimensionale 3D
Crearea si controlul ferestrelor grafice
4

1.Introducere in MATLAB &Simulink


1.1. Ce este MATLABul?
MATLAB =MATrix LABoratory
z

MATLABul este un pachet de programe de nalta


performanta dedicat calculului numeric,
reprezentrilor grafice si evalurilor tehnice.
Integreaza calcule matriceale, analiza numerica,
vizualizarea grafica si limbajul de programare intr-un
mediu usor de utilizat, in care problemele si soluiile
sunt exprimate printr-un model matematic
MATLABul este de fapt un sistem interactiv care a
fost iniial conceput astfel incat elementul de baza
cu care opereaz sa fie matricea.
5

1.1. Facilitati ale MATLABului


Cele mai importante facilitai oferite de MATLAB sunt:
z Calcularea, evaluarea si analiza sistemelor (circuitelor
electrice, acionari electrice, SRA etc)
z Dezvoltarea algoritmilor de control
z Achiziia, prelucrarea si analiza datelor
z Simulare, modelare, programare
z Vizualizare, reprezentare grafica si animaie
z Dezvoltarea unor aplicatii, bazate pe interfee grafice
interactive (GUI)
z Analiza si proiectarea sistemelor de reglare si
conducere
6

1.1. Biblioteci MATLAB


Din punct de vedere structural
MATLABul este realizat sub forma
unui nucleu de baza in jurul cruia
sunt construite asa numitele
toolboxuri.
z MATLABul include aplicaii specifice
sau familii de caracteristici, dedicate
unui anumit domeniu .
z Acestea sunt colecii extinse de
funcii MATLAB, sub forma de fiiere
(m-files), care dezvolta mediul de
programare de la o versiune la alta, si
care permit invatarea si aplicarea
unor tehnici specializate.
z Principalele domenii in care aceste
toolboxuri pot fi utilizate sunt descrise
de (Fig. 1):
z

7
Fig. 1. Lista principalelor toolboxuri ale versiunii MATLAB 6.5.

1.1. Structura MATLAB


Pachetul de programe MATLAB conine cinci pari
principale:
z Mediul de dezvoltare (Development Environment):
set de toolboxuri
z Biblioteca cu functii matematice (The MATLAB
Mathematical Function Library) : sum, sine etc
z Limbajul MATLAB (The MATLAB Language):
algoritmi, functii, structuri de control a datelor si
caracteristici de programare;
z Grafica (Graphics): functii dedicate reprezentarilor
grafice in 2D si 3D;
z Interfata cu un program de aplicatii (The MATLAB8
Application Program Interface-API)

1.2. Lansarea in execuie.


Interfaa MATLAB - utilizator
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)

1.3. Ce este Simulinkul?


z

SIMULINKul este un set de programe soft dedicat modelarii, simulrii si


analizei sistemelor dinamice.

Permite modelarea sistemelor liniare si neliniare atat in timp discret cat si


in timp continuu sau hibride
z Simulinkul are la baz programul MATLAB fiind o unealta a acestuia; Ca
si extensie a MATLABului, Simulinkul conine suplimentar mai multe
caracteristici specifice ale sistemelor dinamice.
z O diagrama bloc in Simulink reprezint un model grafic al unui sistem
dinamic, care conine un set de simboluri denumite blocuri, interconectate
intre ele prin linii. Fiecare bloc reprezinta un sistem dinamic elementar
care genereaza o marime de iesire, sau mai multe, care poate fi o marime
continua in timp sau discreta.
z Liniile de legatura reprezinta conexiunile dintre marimile de intrare si de
iesire ale blocurilor. Tipul blocurilor, din sistemul modelat, determina
relatia dintre intrarile, starile si iesirile acestuia, in functie de timp.
z

10

1.3. Lansarea in executie a Simulinkului

Lansarea pachetului de programe


Simulink se face din MATLAB in
doua moduri:
z prin accesarea pictogramei Simulink
z sau din fereastra de comanda
(command window) prin scrierea
cuvantului simulink.
Pe ecranul monitorului se va afia
fereastra librriei simulink (simulink
library browser); aceasta conine
toate instrumentele (toolboxes) i
toate blocurile nucleului de baza
simulink (ncepnd de la
continuous i sfrind prin blocurile
definite de utilizator (user-defined
functions), asa cum arata si figura
11

1.3. Facilitati Simulink


Cele mai importante facilitai pe care le ofer Simulinkul sunt:
z Modelarea, simularea si analiza sistemelor dinamice
z Implementarea sistemelor liniare si neliniare
z Construirea unor diagrame bloc (continue si discrete),
utiliznd biblioteca existent sau crearea propriilor blocuri
(librarii)
z Vizualizarea mai multor ferestre in acelai timp si a mai
multor variabile pe acelai grafic
z Incorporarea unor programe scrise in C, C++, Ada, Fortran
intr-un model de simulare dinamica utiliznd librria funciilor
S (S-functions)
z Implementarea hard si testarea diferitelor strategii de control
12

1.4. Informatii ajutatoare ale


MATLABului (Helpul online)
z

z
z

z
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).
Comanda help furnizeaza informatii online despre orice functie MATLAB si
Simulink sau realizata de un utilizator al pachetului de programe.
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.
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).
Daca subiectul este un director helpul afiseaza fisierele continute in acesta.
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

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:
Tastand urmatoarea secventa (operatie matematica) in fereastra de comanda
20 2 * 5
MATLABul va returna urmatorul raspuns: ans = 10
Orice instructiune sau linie de instructiuni este terminata cu enter. Utilizand tasta enter se
trece la urmatoarea secventa de linie.
Daca ultimul caracter al liniei este punct-virgula ; , instructiunea este executata dar nu se
tipareste nimic in fereastra de comenzi (command window).
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.

z
z
z
z
z

14

Simbolul doua puncte (:) este unul dintre cei mai importani operatori ai
MATLABului. Poate fi utilizat pentru a crea vectori si matrice, pentru a
specifica submatrice si vectori si pentru a executa iteraii.
z De exemplu comanda: t1 = 1:6
va genera un vector linie coninnd numerele de la 1 la 6 avand incrementul
unitate. MATLABul va genera rezultatul:
z

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.
15
Va returna z = 3.0000 + 4.0000i

2.1. Structura programelor MATLAB


z

MATLABul lucreaz fie in modul linie de comanda, situaie in


care fiecare linie este prelucrata imediat si rezultatele sunt
afiate, fie in programe coninute in fiiere.
Fiierele ce conin instruciuni MATLAB se numesc fiiere-m
(au extensia .m). Aceste fiiere constau dintr-o succesiune
de instruciuni cu posibilitatea apelrii si altor fiiere m si
sunt fiiere text de tip ASCII.
Un program MATLAB poate fi scris sub forma a doua tipuri
de fiiere script si / sau function. Ambele tipuri sunt
scrise in format ASCII (text) iar algoritmul care a fost
implementat poate fi urmrit cu uurina daca se cunosc
conveniile si sintaxa MATLAB.
Aceste tipuri de fiiere (cu extensia .m) permit crearea unor
funcii noi care sa le completeze pe cele deja existente. Prin
aceasta facilitate MATLABul poate fi extins la aplicaii
specifice utilizatorului care are, de asemenea, posibilitatea16
scrierii de noi proceduri.

In tabelul 1 se vor prezenta cateva functii MATLAB de control al fisierelor:


Functia

Descrierea functiei

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

dir

Listeaza continutul directorului curent

cd

Returneaza sau schimba directorul curent

delete
Sterge fisierul precizat de pe disc
which +nume fisier

Returneaza calea in care este localizat fisierul

17

2.1.1. Fiiere script


z

z
z
z
z

Un fiier script este un fiier extern ferestrei de comenzi fiind


plasat in directorul curent si care conine o secvena de
comenzi MATLAB
Fiierele script sunt cele mai simple fiiere-m (cu extensia
.m) deoarece ele nu au nici mrimi de intrare nici de ieire.
Dup execuia unui fiier script, variabilele cu care acesta a
operat raman stocate in spaiul de lucru (workspace).
Fiierele script lucreaz cu date existente din workspace. De
asemenea, ele pot crea date noi cu care sa opereze.
Daca avem mai multe fiiere intr-un director este de dorit sa
includem cteva comentarii (explicative) la nceputul fiecrui
18
fiier creat.

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.

Solutie: Se creaza un fisier-m (M-file) cu numele amplitudine in care se scriu


urmtoarele linii:

%Amplitudine.m: exemplu de fisier script pentru calcularea amplitudinii si fazei lui G pentru w=1.

w=1; G=1 / (j*w+2);


Amplitudinea = abs(G)
Faza = atan(imag(G) / real(G))
z

Scriind cuvntul amplitudine in fereastra de comenzi (command window) vom


obtine urmtorul rspuns:
Amplitudine = 0.4472
Faza = -0.4636
Scriind comanda help amplitudine in fereastra de comenzi, MATLABul ne va afisa
urmatorul text:
-amplitudine.m: exemplu de fisier script pentru calcularea amplitudinii si fazei lui G
pentru w=1.
19

2.1.2. Fisiere function


z
z

z
z

Daca prima linie a unui fiier M conine cuvntul function, fisierul respectiv este
declarat ca fiier funcie.
Variabilele definite si manipulate in interiorul fiierului functie sunt localizate la
nivelul acesteia. Prin urmare la terminarea execuiei unei functii, in memoria
calculatorului nu raman dect variabilele de ieire ale acesteia.
Un fiier funcie difer de unul script prin faptul ca poate lucra cu argumente
(secvente ale functiei: intrri - ieiri).
Forma generala a primei linii a unui fiier function este:

function [param_iesire] = nume_functie (param_intrare)


unde function este cuvntul cheie care declara fiierul ca fiier funcie, nume_functie
este numele functiei, adica numele sub care se salveaz fiierul fara extensie,
param_iesire reprezint parametrii de ieire care trebuie separai prin virgula si
cuprini intre paranteze drepte (daca functia nu are parametrii de ieire 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 fiier funcie care are mai multe intrari si iesiri poate fi de forma:

function [x, y, z] = sfera (theta, phi, rho)


z

Daca fiierul function nu conine nici un argument de iesire, atunci prima linie poate
avea forma:
20
function printresults(x)

2.1.2. Fiiere function. Exemple


z

Structura unui fisier function poate conine instruciuni (comenzi) MATLAB


de control, funcii MATLAB care realizeaz calcularea si alocarea valorilor
pentru marimile de iesire.

Exemplul 2. Sa se scrie un program MATLAB de tip function care sa


calculeze media aritmetica a unui vector x.

Solutie: Se creeaza un fisier-m (M-file) cu numele medie care trebuie sa


aibe acelasi nume cu al functiei ce urmeaza sa fie definita in prima linie,
dupa cum urmeaza:
function [mean] = medie(x)
N = length(x); mean = sum(x) / N;
z Tastand urmatoarele linii in fereastra de comenzi:
x = [1:10];
mean(x)
z MATLABul va returna urmatorul raspuns:
ans = 5.5000
z

21

2.1.2. Fiiere function. Exemple


z

Exemplul 3: Sa se scrie un fisier function care sa calculeze rezistenta


echivalenta a unor rezistoare conectate in serie.

Rezolvare: Se creaza un fisier cu numele echivalent.m, care are urmatoarea


configuratie:
function Re = echivalent(R)

% echivalent este un program funcie care calculeaz rezistenta echivalenta a


unor rezistoare conectate in serie, R fiind vectorul de intrare de lungime n iar Re
este mrimea de ieire, rezistenta echivalenta
n = length(R); %numarul rezistoarelor
Re = sum(R); %rezistenta echivalenta
Sa presupunem ca dorim sa calculam rezistenta echivalenta a urmtoarelor
rezistente conectate in serie, avnd valorile 10, 20, 15, 16 si 5 Ohmi. Tastnd
urmtoarele linii in fereastra de comenzi:
R = [10 20 15 16 5];
Rserie=echivalent(R)
Rezultatul obinut va fi:
Rserie =
66
22

2.2. Matrice si operaii matriceale


z
z
z

z
z

MATLABul lucreaz cu scalari, vectori si matrice.


Un scalar este interpretat ca o matrice cu o linie si o coloana (1 x 1), iar
un vector este o matrice linie (1 x n) sau coloana (n x 1).
MATLABul este de fapt un pachet de programe care lucreaz numai cu
un singur tip de obiecte-matrice numerice rectangulare (tablou numeric cu
doua dimensiuni), cu elemente reale sau complexe.
Operaiile matriceale cu tablouri (arrays) sunt operaii aritmetice element
cu element (intre elemente situate in aceeasi pozitie a tablourilor). Pentru
efectuarea operaiilor cu tablouri se folosesc aceeai operatori ca in
operatiile cu scalari, precedati de semnul ., semn ce indica de fapt
efectuarea operaiilor element cu element.
De exemplu operatorul de nmulire a doua matrice A si B se
simbolizeaz in cazul tablourilor prin A .* B
Definirea matricelor se face prin una din metodele:

Introducerea listei de elemente


Generarea prin instructiuni si functii
Crearea de fisiere-m (m-files)
ncrcarea din fiiere de date externe
23

2.2. Matrice si operaii matriceale


z

Ceea mai simpla metoda de definire a matricelor consta in utilizarea unei liste
explicite care trebuie sa respecte urmatoarele reguli:
elementele unei linii trebuie separate prin spatii libere (blankuri) sau virgule
liniile se separa prin semnul (;)
elementele unei matrice sunt cuprinse intre paranteze drepte

Matricea A poate fi introdusa in MATLAB cu una din cele 2 secvente:


A = [1 2 3; 4 5 6; 7 8 9] sau A = [1, 2, 3; 4, 5, 6; 7, 8, 9].

z
z

In ambele cazuri se returneaz:

1 2 3
A = 4 5 6
7 8 9

A=
1 2 3
4 5 6
7 8 9
Pentru a determina dimensiunea unei matrice A si lungimea acesteia se utilizeaz
functiile MATLAB size (A) si length (A).
Suma matricei A se calculeaza cu comanda sum(A), si se obine rezultatul:
ans = 12 15 18
24

2.2.1. Calcule cu matrice. Generarea matricelor


MATLABul ofera un set de functii pentru utilizarea matricelor.
Calculul determinantului unei matrice se face cu functia det, iar a inversei
unei matrici cu functia inv.
z Daca dorim sa adugam o noua linie unei matrice, de exemplu matricei B,
acest lucru se poate realiza tastnd comanda:
z
z

B = [B; [5 6]];

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

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


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

Se poate scrie un fiier MATLAB-script sau se pot introduce


urmtoarele 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

Exemplul : Sa se genereze o matrice M cu 2 linii si 4 coloane (cu


dimensiunea 2 x 4) cu toate elementele zero si o matrice patratica N de
ordinul 4 aleatoare cu distributie normala.
Solutie: Cu secventele:

M = zeros(2, 4); N = randn(4, 4)


Se obtin rezultatele:

M=0 0 0 0
0 0 0 0
N=
0.6353 0.0860 -0.3210 -1.2316
-0.6014 -2.0046 1.2366 1.0556
0.5512 -0.4931 -0.6313 -0.1132
-1.0998 0.4620 -2.3252 0.3792

27

2.2.2. Generarea vectorilor


Generarea vectorilor cu pas liniar implica cunoaterea limitelor intervalului
(min, max) si a pasului de esantionare dintre doua elemente, sau numrul
de elemente ale vectorului.
z Daca se cunosc limitele intervalului si pasul dintre doua elemente ale
vectorului X, cu instruciunea: X = min: pasul de eantionare: max
Se genereaz numrul de elemente ale vectorului rezultant
N = [(max-min) / pas].
z Daca pasul > 0 este necesar ca valoarea minima sa fie mai mica decat
valoarea maxima, iar daca pasul < 0, atunci valoarea minima este mai mare
decat valoarea maxima:
X1 = -5 : 0.5 : 5; X2 = 5 : -2 : -5
z Daca pasul este omis atunci valoarea acestuia este considerata egala cu
unitatea.
z De asemenea, se pot genera vectori cu pas logaritmic utiliznd sintaxa
logspace, ca in exemplul de mai jos:
Sa se genereze un vector cu N = 5 elemente distribuite logaritmic pe
intervalul [10-2, 102].
Cu sintaxa:
x = logspace(-2, 2, 5)
Se obtine rezultatul:
28
x = 0.0100 0.1000 1.0000 10.0000 100.0000
z

2.3. Operaii si funcii matematice uzuale


help elfun
Pachetul de programe MATLAB conine numeroase functii pentru operatii
matematice fundamentale si pentru prelucrarea datelor
z Aceste operatii matematice se refera la:
calcule cu polinoame (f(x) = x3 + 3x + 15),
vectori,
numere complexe (a + j*b),
functii trigonometrice (sin, cos),
exponentiale (exp) si logaritmice (log, log10).
ecuatii diferentiale (diff),
integrale (quad, trapz) si
metode de integrare numerica (ode23, ode45) etc.
z

29

2.3.1. Numere complexe


z
z

Numerele complexe sunt introduse in MATLAB utiliznd


variabilele i si j;
Un numr complex z se poate exprima sub forma carteziana
(z = a+i*b) sau sub forma polara (z = r*ei), unde a si b sunt
partile reala si imaginara ale acestuia, iar r si reprezint
modulul si argumentul numrului complex z.
Funcia abs determina modulul elementelor unui vector sau a
unei matrice iar funcia angle calculeaz argumentul
elementelor unui vector sau a unei matrice si se exprima in
radiani.
Funcia real returneaz partea reala a numrului complex, iar
30
imag returneaz partea imaginara.

2.3.1. Numere complexe. Exemple


Exemplul : Sa se calculeze amplitudinea si faza unei impedane (Z) de intrare a unui circuit, tiind ca:

Z=

(5 + j6)(4 j8) + 4300


9 j2

Rezolvare: Se scrie un fisier script de forma:


Z1 = 5+6*j; Z2 = 4-8*j; Z3 = 9-2*j;
theta = (30 / 180)*pi % unghiul in radiani
Z4=4*exp(j*theta);
Z = (Z1 * Z2 / Z3) + Z4;
Z_ampl = abs(Z) % amplitudinea lui Z
Z_unghi = angle(Z)*(180 / pi); % unghiul in grade
Z_polar = [Z_ampl, Z_unghi] % disp (Z_polar)
MATLABul genereaz urmtorul rezultat:
numrul complex Z in forma polara, cu amplitudinea si faza egale cu:
Z_polar = 11.2039

9.7942

31

2.3.2. Funciile putere, radical, logaritm si exponeniala


z

z
z
z
z

MATLABul dispune de doua functii pentru ridicarea la


putere:
pow2: pentru a ridica cifra 2 la puterea n (2n)
^: pentru a ridica un numr a la puterea n (an)
Functia exp calculeaz exponeniala (ex)
Functia log si log10 calculeaza logaritmul natural (ln) si
zecimal (lg)
Functia sqrt calculeaz radicalul de ordinul 2 dintr-un numr
Calculul radicalului de ordinul 2 dintr-un numr ( 9), poate
utiliza functia putere sau funcia radical, apelata cu sintaxa
sqrt (9).
Obs: Argumentul acestor funcii poate fi o matrice, caz in
care se opereaz element cu element, sau poate fi un numr
32
complex.

2.3.3. Funcii trigonometrice


Functiile trigonometrice se apeleaz cu sintaxa:
x = nume_funcie(argument)
in care nume_functie este numele uneia dintre functiile trigonometrice prezentate in
tabelul 6, argumentul este valoarea pentru care se evalueaz funcia, iar x este
variabila in care se returneaza rezultatul.
Obs: Daca argumentul este o matrice se folosesc operatori specifici tablourilor
matriciale.
z

Principalele funcii trigonometrice


z
z
z
z
z
z
z

sin - Determina sinusul argumentului, cu rezultatul in radiani


cos - Calculeaza cosinusul argumentului
tan - Calculeaza tangenta argumentului
asin - Calculeaza arcsinusul (sin-1) argumentului in radiani
acos - Determina cos-1 in radiani
atan - Calculeaza arctangenta (tan-1) argumentului, cu rezultatul in radiani
atan2 - Calculeaza arctangenta unui argument complex
33

2.3.4. Calcule numerice cu polinoame


z
z

In MATLAB polinoamele sunt reprezentate ca un vector linie


care conine coeficienii in ordine descresctoare.
De exemplu polinomul g(x)=x4 + 2x2 + 0.5x - 6 este
reprezentat in MATLAB prin vectorul:
g = [1 0 2 0.5 -1].
Cele mai uzuale funcii pentru calculele cu polinoame sunt:

roots calculeaz rdcinile unui polinom


poly calculeaz coeficienii unui polinom cu rdcinile date
polyder calculeaz derivata polinoamelor
polyfit aproximeaz un set de date cu un polinom de gradul n
residue descompune in fracii simple raportul a doua polinoame.
34

Programarea MATLAB.
Instruciuni si funcii de control
z

z
z

Programele MATLAB sunt scrise pentru a realiza


pai secveniali, operaiile fiind realizate una dup
alta.
In multe cazuri, insa, este necesara repetarea unui
set de instruciuni atta timp cat o condiie este
realizata si pentru alt set de instruciuni.
Uneori este necesara repetarea unui grup de
instruciuni de un anumit numr de ori.
Instruciunile cu ajutorul crora se poate realiza
acest lucru sunt for si while.
35

Instructiuni si functii de control


z

Instruciunea for este folosita pentru repetarea unui grup de instruciuni de un


anumit numr de ori. Un contor de ciclu va tine evidenta numrului de repetri ale
instruciunilor unui ciclu si il oprete cnd contorul ajunge la valoarea precizata.
Instruciunea while este folosita atunci cnd calculele efectuate cu un grup de
instruciuni trebuie repetate pana cnd o anumita condiie este ndeplinita.
Numrul de iteratii nu este cunoscut iniial. Ieirea din ciclu se realizeaz la
indeplinirea conditiei impuse, care este testata la nceputul fiecrei iteraii.
Instructiunea if poate fi implementata simpla sau poate include si clauzele else
sau elseif. Forma generala a unei instruciuni if este urmtoarea:

if expresie_logica
grup_de_instruciuni

end
z

Clauza else este utila pentru a executa un set de instructiuni, daca expresia
logica este adevarata, si un alt set de instructiuni, daca expresia logica este falsa.
Sintaxa instructiunii if este combinata cu clauza else, si are forma generala:
if expresie_logica
grupul_de_instructiuni A
else
grupul_de_instructiuni B
36
end

Instruciunea for
z

Instruciunea for permite repetarea unui grup de instruciuni dintr-o bucla, de un


anumit numr de ori. Are urmtoarea structura generala:

for index = expresie


grupul_de_instruciuni

end
In care index este numele contorului, expresie este o matrice, un vector sau un
scalar, iar grupul de instruciuni poate fi orice expresie(functie) MATLAB (de
exemplu k = initial : pas : final).
z

La folosirea buclei for trebuie respectate urmtoarele reguli:

indexul buclei for trebuie sa fie o variabila;


daca expresia este o matrice goala, bucla nu se executa; se va trece la urmtoarea instruciune
dup end;
daca expresia este un scalar, bucla se executa o singura data, cu indexul dat de valoarea scalarului;
daca expresia este un vector linie, bucla se executa de attea ori de cate elemente are vectorul, de
fiecare data indexul avnd valoarea egala cu urmtorul element al vectorului;
daca expresia este o matrice, indexul va avea la fiecare iteraie valorile coninute in urmtoarea
coloana a matricei;
la terminarea ciclului for, indexul are ultima valoare utilizata;

daca se utilizeaz operatorul doua puncte (:) pentru a defini expresia, ca in


exemplul:
for k = initial : pas : final
bucla se executa de:
N = [(final-initial) / pas] + 1
37
- daca N este pozitiv, si nu se executa daca N este negativ.

Instructiunea for. Exemple


Exemplu: Sa se scrie un program utiliznd instruciunea for pentru generarea unei
matrice cu valorile corespunztoare lui i = [1, 4] afiate pe coloane, tiind ca
y = [i 5i2 2i].
Rezolvare: Se scrie urmtoarea secvena MATLAB:
disp('Nr. var1 var2')
for i=1:4
y = [i, 5*i^2, 2^i];
disp(y)
end
Se afiseaza rezultatul:
Nr.
var1
var2
1
5
2
2
20
4
3
45
8
4
80
16
38

Instructiunea for. Exemple


Pentru a realiza un numr mare de calcule iterative, fara a defini de
fiecare data valoarea unui parametru (variabila) cnd acesta (aceasta)
se modifica, se utilizeaz instruciunea for.
Exemplu: Sa se scrie un fiier script care sa utilizeze instruciunea
for pentru a genera ptratul primelor 10 numere ntregi si sa se afieze
rezultatul.
Soluie: Se scrie un fiier script cu urmtoarea secvena:
for m = 1:10
x(m) = m^2;
end
disp(x)
In exemplul anterior numrul de iteraii a fost controlat de var.39m.

Descrierea instructiunii while


z

Instruciunea while se utilizeaz pentru repetarea unui set


de instruciuni, atta timp cat o condiie specificata este
adevrata.
Forma generala a acestei instructiuni este urmatoarea:
while expresie
grup_de_instructiuni 1
end
grup_de_instructiuni 2

Grupul de instruciuni 1 se executa cat timp expresie


este adevarata. La sfritul execuiei instruciunii 1, expresie
este retestata. Daca expresie este tot adevarata, grupul de
instruciuni 1 se executa din nou. Daca expresie este falsa,
programul iese din bucla while si trece la grupul de
instruciuni 2.
40

Instructiunea while. Exemple


Exemplu: Sa se scrie un program, utiliznd bucla while, care calculeaz
suma elementelor vectorului: x = [5 2 -9 10 -1 9 -1] pana cnd intalneste un
numr mai mare sau egal cu 8.
Solutie: O varianta de program este urmatoarea:
x = [5 2 -9 10 -1 9 -1];
sum = 0; k = 1;
while (x(k) < = 8) & (k <= length(x))
sum = sum + x(k)
k=k+1
end
Se obtine rezultatul:
sum = 5 k = 2
sum = 7 k = 3
sum = -2 k = 4
Iesirea din bucla while realizandu-se dupa ce au fost insumate 41
primele trei elemente, al patrulea element neindeplinind conditia impusa.

Instruciuni de intrare / ieire


z

z
z

z
z
z

MATLABul conine instruciuni (comenzi) despre anumite


mrimi de intrare din fereastra de comenzi si despre datele
de ieire.
Instruciunea input transmite instantaneu un mesaj scris
catre utilizator, apoi asteapta introducerea marimii de intrare
de la tastatura (R=input(expresie MATLAB));
Instruciunea return comanda ieirea din fiierul-m ctre
funcia care la apelat sau ctre tastatura.
Instruciunea error permite afiarea unor mesaje la ntlnirea
unei erori. Se apeleaza cu sintaxa:
error (mesaj)
Instruciunea break se utilizeaz pentru a iesi dintr-o bucla
nainte ca aceasta sa se fi terminat. Se recomanda sa se
utilizeze daca o condiie de eroare este detectata in interiorul
unei bucle. Aceasta instruciune nceteaz execuia ciclurilor
for si while.
disp - Afieaz un text sau o matrice
fprintf - Afieaz texte si matrice
42
pause - Cauzeaz oprirea executrii unui fisier-M

Vectorizarea calculelor
z

Deoarece operaiile cu matrice si vectori sunt executate de pachetul de


programe MATLAB mai repede cu un ordin de mrime dect operaiile
compilate / interpretate, se obine o viteza de lucru mai mare daca
algoritmii nscrii in fisiere-M sunt vectorizai.

Oriunde este posibil, ciclurile while si for trebuie convertite in operaii cu


vectori sau matrice, aa cum ilustreaz si exemplele 14 si 15:
z In cazurile in care nu se poate vectoriza o parte din program, pentru a
scdea timpul de execuie, se procedeaz la prealocarea unor vectori in
care vor fi reinute rezultatele.
z De exemplu, incluznd o prima instruciune de prealocare folosind funcia
zeros, ciclul for urmtor se executa semnificativ mai repede:
x = rand(1,100); % genereaz o matrice aleatoare cu distribuie uniforma
y = zeros(1,100); % genereaz o matrice cu toate elementele zero de la 1 la 100
for i = 1:100
y(i) = det(x(i)^(i-1));
end
z Explicaia consta in faptul ca daca nu se face prealocarea, interpretorul
MATLAB trebuie sa redimensioneze vectorul y la o dimensiune mai mare,
de fiecare data cnd trece printr-o iteraie a ciclului. Daca vectorul este
43
prealocat acest pas este eliminat si execuia este mai rapida.
z

2.4.3. Vectorizarea calculelor. Exemple


Ex. 14: Sa se scrie un program care calculeaz sinusul in 1000 de puncte,
de la 1 la 10 cu pasul de 0.01, utiliznd bucla for.
Solutie: se scriu doua fiiere script care reprezint grafic functia sin(t), primul
utiliznd 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 execuie a comenzilor de 10-15 ori
44
mai mare dect cel de-al doilea.

3. Calcul grafic. Reprezentri si funcii grafice


z
z
z

z
z

MATLABul furnizeaz un set de tehnici pentru reprezentarea grafica


Detine numeroase funcii grafice si ofer diferite facilitai pentru tiprirea si exportul
fiierelor de date ;
Tipul reprezentrii grafice depinde in mare msura de natura datelor (formatul
acestora) si de felul informatiilor pe care dorim sa le obtinem de la graficul
respectiv;
Pachetul de programe MATLAB conine o librarie de functii, atat pentru generarea
graficelor in coordonate liniare (bidimensionale x-y) 2D cat si pentru generarea
graficelor in coordonate tridimensionale (3D) ;
Reprezentarea grafica se poate face prin linii (continue, punctate, de contur etc), cu
bare, in trepte, tip histograma si de asemenea, reprezentarea grafica a suprafetelor
MATLABul permite si personalizarea graficelor (afisarea titlului, denumirea axelor,
scrierea unui text pe grafic etc), adaugarea unei retele pe grafic (grid) sau crearea
si controlul ecranului (divizarea ferestrelor) si al axelor;
Exista posibilitatea crerii interfetelor grafice interactive (Graphics User Interface)
cu ajutorul unor funcii MATLAB (uicontrol, uimenu, uigetfile, uisetcolor). Pentru
realizarea crerii acestor interfee MATLABul foloseste programarea pe obiecte
pentru controlul interactiv al graficelor, utilizand cateva elemente de control
45
predefinite .

Reprezentri si funcii grafice


z

Pentru crearea graficelor exista trei modalitati de baza:


utilizarea funciilor MATLAB pentru generarea graficelor
utilizarea liniilor de comenzi, utiliznd fereastra de comenzi (command window), sau
crend diferite fiiere-m
prin combinarea celor doua metode de mai sus. De exemplu prin utilizarea unei
comenzi pt. crearea graficelor iar apoi prin folosirea uneia dintre uneltele (tools)
interactive se poate modifica (personaliza) reprezentarea grafica obinuta.

Comanda plot genereaz un grafic in coordonate liniare. Se apeleaza cu una din


sintaxele:
plot(x); plot(x, y); plot(x1, y1, x2, y2, ..., xn, yn)
Daca x e un vector (linie sau coloana), comanda plot (x) va genera un grafic liniar
al elementelor vectorului x ca functie de indexul acestora, x = x(i), unde i = 1, 2,
..., n este nr. de ordine al elementului x.
MATLABul va unii punctele vectorului printr-o linie dreapta.

z
z

Daca x este o matrice, fiecare coloana va fi trasata separat pe acelai grafic.


Daca x si y sunt matrice de aceeasi dimensiune, atunci comanda plot(x, y) va
trasa grafic coloanele lui y in functie de coloanele lui x.
Daca x este un vector, iar y o matrice, atunci coloanele lui y sunt trasate functie
de vectorul x y = f(x);
Daca x e un numr complex, atunci plot (x) este echivalent cu
plot(real(x),imag(x));
46

Reprezentri si funcii 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 ;
Daca x si y sunt 2 vectori de
aceeai lungime, comanda
plot(x, y) va trasa grafic
elementele lui x (axa-x)
funcie de elementele lui y
(axa-y).
47

Reprezentri si funcii grafice. Exemple


z

Ex. 16. Sa se reprezinte grafic funcia y(t)=6e-2t pentru


intervalul de timp t=(0-4) secunde, avand pasul de
eantionare de 0.05.
Rezolvare: Se scrie un fisier script, sau urmtoarea
secvena MATLAB in fereastra de comenzi (command
window):

t = 0:0.05:4;
y = 6 * exp(-2 *t);
plot (t, y)
z title ( Raspunsul unui circuit RC )
% tipareste titlul graficului
z xlabel(Timpul (s))
% tipareste numele variabilei axei x
z ylabel(Tensiunea (V))
% precizeaza parametrul (variabila) axei y
z

grid %traseaza o retea de linii pe grafic


48

Reprezentri si funcii grafice. Exemple


Ex. 17: Sa se reprezinte pe acelai grafic
tensiunea (u(t)) si curentul (i(t)) unui
circuit RL, pentru intervalul de timp
t=(0-20) ms tiind ca u(t)=10cos(377t) si
i(t)=5cos(377t+600).
z Soluie: Se scrie un fiier MATLAB-script
cu urmtoarele secvene de comenzi:
%Tensiunea si curentul unui circuit RL
t = 0:1e-3:20e-3; %vectorul timp
u = 10*cos(377*t);
a_rad=(60*pi/180); %unghiul de faza in radiani
i=5*cos(377*t + a_rad);
plot( t, u, t, u,*,t, i, t, i,o ), grid
title(tensiunea si curentul unui circuit RL),
xlabel(timpul (s)), ylabel(tensiunea (V)
si curentul (mA));
text(0.003,1.5,u(t)), text(0.009,2,i(t))
z

Fig. Reprezentarea grafic a tensiunii


si curentului unui circuit RL
49
in regim stationar sinusoidal.

Reprezentarea grafica in coordonate logaritmice si polare


Pentru reprezentarile grafice in coordonate logaritmice sau
semilogaritmice se utilizeaza functiile loglog, semilogx si semilogy.
Utilizarea acestor functii grafice este similara cu a celor utilizate in
paragraful anterior.
z Descrierea acestor comenzi este urmatoarea:
z

loglog(x, y) scaleaza ambele axe generand graficul logaritmului in baza 10


(log10(x) vs log10(y));
semilogx (x, y) scaleaza logaritmic doar axa x (log10(x)), cealalta axa fiind
scalata liniar;
semilogy (x, y) scaleaza logaritmic doar axa y (log10(y)), cealalta axa fiind
scalata liniar;
z

Obs: Trebuie retinut faptul ca, deoarece logaritmul numerelor negative si


zero nu exista, datele care urmeaza sa fie reprezentate grafic pe o axa
logaritmica sau semilogaritmica, nu trebuie sa includa valoarea zero sau
valori negative.

Reprezentarea grafica in coordonate polare se face cu functia polar, si


se apeleaza cu una din sintaxele urmatoare:
polar (theta, rho) sau polar (theta, rho, linie tip)
z Unde theta si rho sunt vectori, theta fiind unghiul in radiani iar rho
reprezinta amplitudinea semnalului respectiv.
z

50

Reprezentarea grafica in coordonate logaritmice.


Exemplu
Exemplu: Se da fisierul de date (f,g), care
reprezinta frecventa functie de factorul de
amplificare (gain) a unui amplificator
operational. Sa se reprezinte grafic in
coordonate semilogaritmice frecventa
versus factorul de amplificare (scala
logaritmica pentru frecventa si liniara
pentru factorul de amplificare). Sa se
tipareasca titlul graficului si marimile celor
doua axe reprezentate.
z Solutie: Se scrie urmatorul fisier script:
z %Reprezentarea grafica Bode pentru un
%amplificator operational
f = [20 40 80 100 120 2000 5000 8000 10000
12000 15000 20000];
g=[5 10 30 32 34 34 34 34 32 30 10 5];
semilogx(f, g)
title(Diagrama Bode pt. un amplificator),
xlabel(Frecventa (Hz)), ylabel(Gain
(dB))
z

51

3.1.2. Funcii pentru generarea graficelor.


Reprezentri grafice speciale
z
z

z
z

MATLABul conine o familie (set) de functii pentru generarea graficelor. Cele mai
importante dintre ele sunt descrise in tabelul 10 (pg. 36).
Reprezentarea grafica cu bare se face cu functia bar si se apeleaza cu una
dintre sintaxele: bar(y) care traseaza un vector de bare cu elementele
vectorului y, sau bar(x, y ) care traseaza un grafic de bare cu elementele
vectorului y la locatiile specificate de vectorul x, adica y=y(x). Aceasta functie
creeaza un grafic de bare vertical, in care valorile vectorului y sunt utilizate pt. a
determina inaltimea barei, iar valorile vectorului x sunt folosite pt. a eticheta
fiecare bara.
Reprezentarea grafica a semnalelor discrete se face cu functia stem, sub forma
unor linii terminate cu cerculet la extremitatea opusa axei. Se apeleaza cu
sintaxa stem(y) sau stem(x, y).
Graficele in trepte sunt utilizate la reprezentarea diagramelor sistemelor
numerice de esantionare si prelucrare a datelor. Reprezentarea grafica in trepte
se face cu functia stairs, care se apeleaza cu una din sintaxele stairs(y) sau
stairs(x, y).
Functia mesh - Traseaza grafic o retea sub forma de plasa;
Functia fplot genereza un grafic cu anumite restrictii intre limite specificate. Se
apeleaza cu una dintre sintaxele urmatoare:
52
fplot(fun, limite), fplot(fun, limite, n), fplot(fun, limite, n, unghi).

3.1.2. Funcii pentru generarea


graficelor. Exemple.
z
z

z
z
z
z

Ex. 20: Sa se reprezinte graficul in trepte al


functiei y=sin(x).
Rezolvare: Cu urmatoarea secventa MATLAB
se obtine graficul din figura 12:
x=0:.2:6; y=sin(x); stairs(x, y);
Functia compass reprezinta grafic vectori cu
originea in originea sistemului de coordonate.
Se apeleaza cu una din sintaxele:
compass(z) sau compass(x, y),
unde z este numarul complex
z = x + iy, iar x si y sunt numere reale
(proiectia vectorului pe abscisa si ordonata).
Ex. 21: Sa se reprezinte grafic vectorii z1=2-5i
si z2=3+2i.
Solutie: Cu secventa urmatoare se obtine
graficul din figura:
z=[2-5*i,3+2*i]; compass(z);grid
53

3.1.2. Funcii pentru generarea


graficelor. Exemple.
Ex. 22: Sa se scrie un fisier
function care sa reprezinte grafic
functia y=sin(x) / x intre limitele
[-20, 20] cu n=50 de esantioane,
utilizand functia MATLAB de
reprezentare grafica fplot.
z Solutie: Se scrie urmatorul fisier
function cu numele test.m:
function y = test(x)
y = sin(x) . / x;
z Cu secventa urmatoarea scrisa in
fereastra de comanda:
fplot(test, [-20 20], 50); grid
z

54

3.1.3. Reprezentri grafice cu axe multiple


Funciile pentru reprezentrile grafice cu axe multiple difera fata de celelalte
funcii grafice prin modalitile de scalare a axelor.
z Funcia MATLAB plotyy genereaza un grafic cu 2 axe y (pe ambele parti).
z Se apeleaza cu una din sintaxele:
plotyy(x1, y1, x2, y2) sau plotyy(x1, y1, x2, y2, function1, function2);
in care irul de caractere function, poate fi inlocuit cu orice functie MATLAB ce
accepta sintaxa h = function(x, y), cum ar fi functiile, care genereaza
reprezentri grafice: plot, semilogx, semilogy, loglog sau stem.
z Comanda plotyy(x1, y1, x2, y2) reprezinta grafic vectorul (matricea) x1
funcie de y1, cu axa y inscriptionata pe partea stanga, si x2 functie de y2 cu
axa y pe partea dreapta.
z Comanda plotyy(x1, y1, x2, y2, function1, function2) utilizeaza functia
function1(x1, y1) pentru a reprezenta grafic setul de date pentru axa din
partea stanga a ferestrei si functia function2(x2, y2) pentru a trasa grafic
setul de date pentru axele din partea dreapta.
z De asemenea, se pot genera grafice cu axe multiple, doua axe x si cu doua
axe y (axe duble) independente. Prin aceasta facilitate se pot reprezenta pe
acelasi grafic mai multe seturi de date, avand domenii diferite, utilizand o
55
scalare proprie pentru fiecare axa (exemplul 24).
z

3.1.3. Reprezentri grafice cu axe


multiple. Exemplu
z

z
z
z

Ex. 23: Sa se reprezinte pe acelasi grafic,


tiparind axa y pe ambele parti, doua functii
matematice (exp si sin) utilizand comanda plot
Solutie: Se scrie un fisier script cu urmatoarea
secventa:
x = 0:0.01:20; y1 = 200 * exp(-.05 * x).*sin(x);
y2 = 0.8 * exp(-0.5 * x).*sin(10*x);
[AX, H1, H2] = plotyy(x, y1, x, y2, plot)
%comanda care separa cele doua axe,
%atribuindu-i cate o figura (H1, H2) pentru
%fiecare axa
set(get(AX(1),'ylabel'),'String','Axa-y partea
stanga')

%comanda de inscriptionare a axei y din stanga

set(get(AX(2),'ylabel'),'String','Axa-y partea
dreapta')

%comanda de inscriptionare a axei y din dreapta

xlabel('0 la 20 \ musec'),title('Graficul este


inscriptionat cu axa y pe ambele parti')

%comenzi % pentru inscriptionarea titlului si a axei x


56

3.2. Reprezentri grafice tridimensionale (3D)


z

Functia MATLAB plot3 este o functie analoaga functiei plot cu


diferenta ca reprezinta grafic linii si puncte intr-un spatiu
tridimensional (3D).
Daca x, y si z sunt trei vectori de aceeasi lungime functia plot3(x,
y, z) genereaza o linie reprezentata tridimensional prin punctele
ale cror coordonate sunt elementele celor trei vectori.
Daca X, Y si Z sunt trei matrici coloana de aceeai dimensiune
atunci functia plot3(X, Y, Z) va genera un grafic de linii
tridimensional obinute din cele trei coloane ale matricii respective.
Functia mesh (Fig. 19) reprezinta grafic suprafete 3D sub forma
unor retele, functia meshc reprezinta grafic combinatia suprafata
3D / linii de contur, reprezentate sub suprafata respectiva ca
proiectii in planul bazei, iar functia meshz reprezinta grafic
suprafete tridimensionale cu plan de referinta la cota zero.
Reprezentarea grafica a suprafetelor se realizeaza utilizand
comanda surf iar functia surfc genereaza un grafic tridimensional
cu liniile de nivel proiectate pe planul bazei. Aceste reprezentari
grafice sunt utile in special pentru vizualizarea matricilor, care sunt
prea mari pentru a putea fi reprezentate sub forma numerica, si
pentru functiile grafice de doua variabile.
57

3.2. Reprezentri grafice 3D. Exemple


z

Exemplu: Sa se reprezinte
grafic in 3D cu un pas de
/ 50, un arc spiralat (spirala)
utiliznd funciile sin(t) si
cos(t), tiind ca t=(0-10).
Sa se inscripioneze cele
trei axe x, y si z.
Soluie: Cu secvena
urmtoare se obine 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.
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
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).
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
z
z

MATLABul are doua ferestre grafice de baza: o fereastra de


comanda si o fereastra grafica ;
Fereastra grafica poate fi impartita in mai multe ferestre ;
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.
Functia subplot creeaza si controleaza ferestrele unui grafic si
poate fi apelata cu una din sintaxele:
subplot(m, n, p) sau subplot(h).
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.
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.
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
Ex.: Sa se reprezinte grafic o forma de unda
sinusoidala, una cosinusoidala si o forma de
unda tangeniala, pe aceeai figura dar in
ferestre diferite.
z Solutie: Se scrie un fisier-M cu urmtorul
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
z

61

4. Achiziia, interpolarea si aproximarea datelor


z

MATLABul deine o biblioteca de funcii dedicate


analizei datelor, incluznd si:
-reprezentrile grafice interactive (GUI);
-metode de statistica descriptiva;
-coeficieni si metode de corelare, interpolare
sau filtrare;
-aproximarea unui set de date cu o functie;
-cautarea datelor in tabele;
-analiza Fourier si FFT.
62

4.1. Importul si exportul fisierelor de date


z
z
z
z
z

MATLABul furnizeaz mai multe modaliti de a importa sau


exporta fiiere de date din / n fereastra de lucru (workspace);
Formatul datelor poate fi text, binar sau standard;
Datele text sunt n format ASCII, iar cele binare nu sunt in
format ASCII i nici nu pot fi vzute ntr-un editor de text;
Formatul binar reprezint imagini, sunete sau alte informaii;
Fiierele de date pot fi importate sau exportate i prin
utilizarea unor funcii MATLAB dedicate. Pentru utilizarea
acestor funcii este necesar s se cunoasc formatul fiierului
(txt, dat, csv, mat);
Cea mai simpla metod, de a importa fiiere de date,
utilizeaz editorul Import Wizard;
63

4.2. Prelucrarea datelor si calcule statistice


z

Pentru a crea o matrice C care conine elementele


maxime sau minime ale matricelor de aceeai
dimensiune A si B, se folosete sintaxa:
C = max(A, B) sau C = min(A, B).
Daca fiierul de date conine mai multe coloane,
analiza acestora si calculul statistic sunt realizate
separat (independent) pentru fiecare coloana. Asta
nseamn ca daca dorim sa calculam, de exemplu,
maximul unei matrice, rezultatul va fi un vector linie
care conine valorile maxime ale datelor de pe
fiecare coloana.
64

In tabelul urmtor se prezint principalele funcii MATLAB


dedicate prelucrrii datelor si calculelor statistice.

Functia

Descrierea functiei

min, max

Determina minimul sau maximul unui vector sau matrici

mean

Determina valoarea medie

prod, sum

Calculeaza produsul si suma

std

Calculeaza abaterea standard

diff

Calculeaza diferenta dintre 2 numere succesive

trapz

Calculeaza integrala folosind metoda trapezelor


65

Prelucrarea datelor si calcule statistice. Exemplu


z

Datele eronate sau cele care nu ndeplinesc o anumita condiie, impusa


de utilizator, pot fi nlocuite, ca in exemplul urmtor:

Exemplu: Fie matricea A = [9 1000 4 8; 1 6 5 5; 3 2 7 1]; Sa se elimine


coloanele matricei A care conin cel puin un element ce se abate de la
valoarea medie cu mai mult de trei ori abaterea standard (legea celor 3
sigma din statistica).
z Solutie: Se scrie un fisier - m cu secventa:
m = mean(A); %valoarea medie
sigma = std(A); %abaterea standard
[n, p] = size(A);
e = ones(n, 1); % genereaz o matrice coloana cu toate elem. egale cu 1
dist = abs(A e * m);
mcond=dist<3*e*sigma; %genereaza o matrice (3 x 4) cu toate elementele unu
Y = A(: , find(all(mcond)))
celim = p - length(find(all(mcond)))
z Daca variabila celim = 0, matricea Y va fi identica cu matricea A, deci nu
se elimina nici o coloana. Daca Y e diferit de 0, atunci coloanele care nu
indeplinesc conditia sunt eliminate din matricea A.
66
z

Derivarea si integrarea numerica a funciilor


Integrarea si derivarea sunt concepte fundamentale
pentru rezolvarea unui numr mare de probleme
atat in inginerie cat si in tiina.
z In unele situaii nu pot fi obinute soluii analitice fiind
necesara aplicarea metodelor de integrare si
derivare numerica.
z Derivata unei funcii f(x) reprezinta viteza de variaie
a funciei in raport cu variabila x, notata cu dx:
-Interpretarea geometrica a derivatei intr-un
punct este panta tangentei la graficul funciei in
punctul considerat ;
z Integrala funciei f(x) pe intervalul [a, b] are
semnificaia ariei delimitata de axa ox, curba f(x)
si dreptele x = a si x = b
z

67

Calculul numeric al integralei


z Calculul

numeric al unei integrale, denumit si


cuadratura, se poate face prin:
aproximarea funciei de integrat f(x) printr-o alta
funcie g(x) pe intervale finite;
aproximarea funciei f(x) cu un set de funcii
liniare pe poriuni, aria calculndu-se ca suma
trapezelor care o compun (metoda trapezelor)

z Daca

aproximarea se face cu funcii ptratice


pe poriuni, metoda de integrare se numete
metoda lui Simpson.
68

Functiile MATLAB pentru integrare numerica


z
z

Functiile quad si quad8 se apeleaza cu sintaxele:


quad(f, a, b), quad(f, a, b, tol), quad(f, a, b, tol, trace)
In care f este numele unui fisier functie care descrie functia
f(x), a si b sunt limitele de integrare, tol eroarea relativa
admisa dintre 2 pasi consecutivi si trace controleaza
afisarea pe ecran a valorilor intermediare.
Functia trapz poate fi apelata cu una dintre cele doua
sintaxe:
Z = trapz(X, Y) sau Z = trapz(Y)
Cand functia trapz este apelata cu doua argumente,
calculeaza integrala functiei y(x), X fiind un vector coloana
care conine abscisele iar Y este un vector coloana sau o
matrice, cu acelasi numar de linii ca X. Z este un scalar daca
Y este un vector, sau un vector linie daca Y este o matrice.
69

Integrare numerica. Exemple


z
z

Ex.: Sa se calculeze integrala functiei sin(x) pe


intervalul [0, ] cu un pas de integrare de / 100.
Solutie: Cu urmatoarea secventa se obtine
rezultatul cerut:
X = 0 : pi / 100 : pi; Y = sin(X);
Z = trapz(X, Y)
Se obtine rezultatul
Z = 1.9998
70

Ex. : Utiliznd regula lui Simpson si metoda trapezelor sa se calculeze integrala


funciei y = sin(x) pe intervalul [0 - ].
Solutie: Se scrie un fisier m script cu secvena:

%Utilizarea regulii lui Simpson si metoda trapezelor pt. calculul integralei functiei y = f(x)

a = 0; b = pi; N = 4; x = linspace(a, b, 2*N + 1); y = sin(x);


for k = 1 : 2 * N + 1
if k==1 | k==2*N+1
w(k) = 1;
elseif rem(k, 2)==0
w(k) = 4;
else
w(k) = 2;
end
end
Intsimp = ((b-a) / (3*length(x)-1)) * sum(y .* w)
Inttrapz = trapz(x,y)

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


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

dy = diff ( Y ). / diff ( X )

-Cu urmatoarea secventa MATLAB:


X = [0, 1, 2, 3, 4, 5]; Y = [2, 6, 3, 5, 9, 12];
Z = diff(X); W = diff(Y); % dy = W = diff(Y)
-Se returneaza rezultatele:
Z=
1 1 1 1 1
W=
4 -3 2 4 3
73

Derivarea numerica. Exemple


Ex. 35: Sa se scrie un fisier function, utilizand instructiunea for, care sa
realizeze aproximarea derivatei numerice a unei functii y(x) stiind ca X si
Y sunt aceleasi ca in exemplul precedent.
z Solutie: Se scrie un fisier function cu numele diffn.m cu urmatorul
continut:
function dY = diffn(X, n)
dY = X;
for i = 1:n
dY = diff(dY);
end
z Dupa rularea fisierului function diffn.m se tasteaza in fereastra de
comanda:
dy = diff(Y) ./ diff(X) sau dY
z si se obtine acelasi rezultat ca in exemplul 34.
z

74

Derivarea si integrarea ecuatiilor diferentiale


dy
y =
= g ( x, y )
dx
,

z
z
z

z
z

O ecuaie difereniala de ordinul 1 are forma:


Unde x este variabila independenta iar y este functia
necunoscuta.
Un exemplu de ecuaie difereniala de ordinul 1 este y=3x2.
Cunoscnd condiia iniiala y(0) = -7.5 va rezulta soluia
y = x3-7.5.
Metodele numerice cele mai cunoscute, pentru rezolvarea
ecuaiilor difereniale, sunt metoda Euler si metoda RungeKutta (ode23, ode45).
Aceste functii se apeleaza cu sintaxa:
[x, y] = ode23(yprim,x0, xf, y0, tol, trace)
In care x0 si xf sunt valorile iniiala si finala a variabilei x, y0
este vectorul coloana coninnd condiiile iniiale, tol reprezint
toleranta iar trace parametrii care asigura tiprirea rezultatelor
75
intermediare.

Integrarea ecuatiilor diferentiale. Exemplu


Ex. Sa se integreze ecuaia
difereniala y = 3x2 pe intervalul
[2, 4] cu condiia iniiala y(2) = 0.5 si sa se
reprezinte grafic funcia rezultanta.
z Soluie: Se scrie un fiier function cu
urmtorul coninut:
function dy = g1(x, y)
dy = 3 * x^2;
z Care se apeleaz cu urmtoarea
secvena MATLAB, scrisa in fereastra
de comanda sau, mai convenabil, intrun fisier script:
[x,yn] = ode23(g1, 2, 4, 0.5);
%sol. numerica
ya = x.^3 - 7.5; %solutia analitica
plot(x, yn, *, x, ya); grid
z

76

4.3. Interpolarea si aproximarea datelor


Interpolarea unui set discret de date [xi, yi] presupune determinarea unei
funcii f(x) a.i. f(xi)=yi.
z Sa presupunem ca dorim sa estimam valoarea y(x) pentru 2 puncte de
coordonate (x1, y1) si (x2, y2), unde x1 < x < x2:
Daca punctele sunt unite printr-o dreapta, interpolarea se numeste
liniara,
daca sunt unite printr-un polinom de gradul 3, interpolarea se numeste
spline cubica.
z O alta problema, frecvent ntlnita in inginerie electrica, consta in
aproximarea unui set de date cu o funcie care reprezint cea mai buna
aproximare. In acest caz funcia determinata nu va trece prin toate punctele
si va ncerca sa elimine posibilele erori de msurare.
De exemplu, metoda celor mai mici ptrate furnizeaz cea mai buna
aproximare in sensul minimizrii ptratului distantelor dintre punctele
date si functia de aproximare.
z

77

Functiile MATLAB pentru interpolarea si aproximarea datelor.

Functia

Descrierea functiei

table1, table2

Interpoleaza liniar si citeste datele din tabele


uni si bi-dimensionale

interpft

Interpoleaza datele din tabele unidimensionale


prin metoda transformatei Fourier

spline

Interpoleaza datele din tabele unidimensionale


prin metoda Spline

polyfit

Aproximeaza un set de date cu un polinom de


gradul n

interp1

Interpoleaza liniar, spline sau cubic date din


tabele unidimensionale
78

Interpolarea functiilor de o singura variabila


z

Obiectivul interpolrii il constituie estimarea valorilor unei


funcii f(x) pentru orice punct x=[x1, x2] al unui set de date.
Curba de interpolare trece prin toate punctele care o definesc.
Legea de interpolare poate fi liniara, cubica sau polinomiala.

Interpolarea spline cubica reprezint o curba neteda dintre


fiecare pereche de puncte, definita de un set de polinoame de
gradul trei. De exemplu sase puncte sunt conectate intre ele
prin cinci curbe diferite de gradul trei. Se apeleaza cu sintaxa:
yi = spline(x, y, xi)
unde x si y sunt vectorii care conin abscisele si ordonatele
setului de date (cu pas de eantionare mare), xi este un vector
care conine noile abscise, de regula cu un pas mai fin, iar yi
este vectorul returnat asociat vectorului xi.
z

Obs: Toate legile de interpolare necesita ca elementele lui x sa fie ordonate


crescator. In plus, metoda cubic cere ca punctele de pe axa x sa fie 79
situate
la distante egale.

Pentru a sublinia diferena dintre cele doua tipuri de interpolri (liniara


si spline) se prezint exemplul urmtor cu reprezentare grafica:
Ex: Sa se reprezinte grafic o
interpolare liniara si una spline
cubica prin 6 puncte.
z Soluie: Cu secvena:
x = [0, 1, 2, 3, 4, 5];
y = [0, 20, 55, 60, 90, 100];
xi = 0 : 0.1 : 5;
yi = spline(x , y, xi);
plot(x, y, xi, yi, x, y,o)
title(Comparatie intre interpolare
liniara si spline);
xlabel(Timpul (s)),
ylabel(Temperatura (grade));grid
z

80

Aproximarea datelor prin


metoda celor mai mici ptrate
Pentru ca aproximarea sa fie considerata cea mai buna suma ptratelor
distantelor de la fiecare punct la curba (dreapta) aproximata (linie sau
polinom) trebuie sa fie minima. Este posibil ca nici un punct sa nu se
gseasc pe curba aproximata. Acest lucru separa foarte clar
aproximarea de interpolare.
z Aproximarea datelor printr-o linie dreapta se numete regresie liniara iar
aproximarea unor date printr-un polinom se numete regresie
polinomiala.
z Regresia liniara minimizeaz suma ptratelor dintre dreapta de
aproximare si punctele date. Msura calitii unei aproximri liniare este
data de suma ptratelor, dup cum reiese si din ecuaia:
z

sum _ p = sum ( y y1 ).^ 2


Determinarea parametrilor m si n ai dreptei de aproximare y = mx+n se
face utiliznd funcia polyfit.
z Determinarea celei mai bune aproximri a unui set de date (x, y) cu un
polinom de ordinul n, poate fi apelata cu sintaxa: p = polyfit(x, y, n) 81
z

Aproximarea datelor prin metoda celor mai mici


ptrate. Exemple.
Exemplu: Sa se aproximeze un set
de date (x, y), utiliznd metoda
celor mai mici ptrate.
z Soluie:Se scrie un fiier MATLAB
cu secvena urmtoare, obinnduse graficul din figura:
x = [0, 1, 2, 3, 4, 5];
y = [0, 20, 55, 60, 90, 100];
coef = polyfit(x, y, 1);
%determinarea parametrilor
m = coef(1); n = coef(2);
%parametrii dreptei de aproximare
y1 = m * x + n;
sum_p = sum((y-y1).^2;
z

%minimizarea sumei patratelor distantelor

plot(x, y1, x, y, *)

82

Aproximarea datelor prin metoda celor mai


mici ptrate. Exemplu.
z

Funcia polyfit returneaz coeficienii (ai)


ai polinomului p(x), care in punctele
precizate de vectorul x are, in sensul celor
mai mici ptrate, valorile date de vectorul
y.
Ex: Fie polinomul p(x) = x3-6x2+11x-6,
peste care este suprapus un zgomot cu
distribuie normala. Aproximai datele
rezultate cu un polinom de gradul 3
utiliznd metoda celor mai mici ptrate.
Reprezentai grafic datele cu zgomot si
polinomul aproximat.
Solutie: Cu secvena urmtoare se obine
graficul din figura:
p = [1, -6, 11, -6]; x = 0 : .25 : 4;
y = polyval(p, x) + randn(size(x));
%generarea polinomului p(x) peste care s-a
%suprapus un zgomot cu distributie normala

c = polyfit(x, y, 3); % aproximeaza un


polinom de ord. 3
poli3 = polyval(c, x);
% evaluarea polinomului c pt. valorile precizate de x

plot(x, poli3, x, y,*);grid

83

Analiza Fourier si Transformata Fourier Rapida (FFT)


z

Analiza Fourier este extrem de utila pentru procesarea


datelor, deoarece descompune un semnal intr-un sir de
componente sinusoidale de frecvente diferite, fcnd
trecerea din domeniul timp in domeniul frecventa, realiznd
calculul amplitudinii si fazei variabilelor (datelor, semnalelor)
transformate.
Pentru eantionarea datelor vectoriale, analiza Fourier
utilizeaz transformata Fourier discreta (discrete Fourier
transform-DFT).
Transformata Fourier rapida - FFT (Fast Fourier Transform)
este un algoritm foarte eficient pentru calcularea
transformatei Fourier, sau a transformatei Fourier discrete
(DFT).
De asemenea, FFT este o unealta utila pentru filtrarea
datelor, procesarea semnalelor sau pentru procesarea
imaginilor in domeniul frecventei si pentru estimarea
spectrului puterii.
84

Analiza seriei Fourier


z

Daca g(t) este o functie periodica, cu perioada Tp:

g(t) = g(t Tp )
z

Si daca in orice interval finit g(t) are cel puin un numr de discontinuitati
si un numar finit de minimuri si maximuri (condiiile lui Dirichlet), atunci
g(t) poate fi exprimata cu o serie de functii sinusoidale:

a0
g (t ) = + an cos(n w0 t ) + bn sin(n w0 t )
2 n=1
z

Unde w0 = 2*pi / T, a0 / 2 este componenta continua a seriei si reprezint


valoarea medie a funciei g(t) pe o perioada.
85

4.4.3. Transformata Fourier


Unealta matematica pentru analiza unui semnal in domeniul frecventei
este Transformata Fourier care poate lua diferite forme in funcie de
semnalul analizat.
z Ceea ce au in comun aceste semnale este faptul ca sunt alctuite
dintr-un numr de componente sinusoidale de frecvente diferite,
fiecare avnd o anumita amplitudine si faza initiala.
z Transformata Fourier face conversia unui semnal din domeniul timp intrun semnal discret in domeniul frecventa.
z Daca g(t) este un semnal neperiodic exprimat ca funcie de timp,
transformata Fourier a funciei g(t) este data de expresia integrala:
z

g (t ) exp( j 2 ft ) dt

G ( f ) = g (t ) exp( j 2ft ) dt

G( f ) =

..(18)
z Valoarea semnalului g(t) poate fi obinuta din expresia transformatei
Fourier (ec. 18) utiliznd relaia 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 )

Unde Tp este perioada semnalului, va rezulta transformata


Fourier a functiei g(t) sub forma:
G( f ) =

1
Tp

f 1
c

Tp
n =

iar cn se poate exprima prin relatia:


cn =

1
g (t ) exp( j 2 n f 0 t )dt
Tp
87

Transformata Fourier rapida (FFT)


z
z
z

z
z
z

Transformata Fourier rapida (FFT) este o metoda eficienta de


calcul a transformatei Fourier discrete.
FFT reduce numrul de calcule matematice necesare pentru
calculul transformatei Fourier discreta (DFT).
FFT poate fi utilizata pentru calculul spectrului puterii unui
semnal, pentru filtrarea digitala a semnalelor sau pentru
obinerea corelaiei dintre 2 semnale.
Functia MATLAB pentru calcularea transformatei Fourie
discrete (DFT) a unui vector x, utilizand algoritmul de calcul al
transformatei Fourier rapide (FFT) este: fft(x).
Functia fft(x, N) se utilizeaz pentru a obine FFT pentru un
vector de lungime N (cu N puncte).
Daca X este o matrice, functia fft returneaz transformata
Fourier a fiecrei coloane.
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 dect N, atunci secvena matricei
X este trunchiata (redusa, micsorata).
88

MATLAB furnizeaz o colecie de


funcii pentru calcularea si determinarea
transformatei Fourier:
Functia

Descrierea functiei

fft

Calculeaz transformata Fourier rapida

fft2

Calculeaz transformata Fourier rapida (discreta) de ordinul 2

fftn

Calculeaz transformata Fourier rapida (discreta) de ordinul n

ifft

Calculeaz transformata Fourier discreta inversa

abs

Calculeaz modulul (amplitudinea)

angle

Calculeaz unghiul de faza

unwrap

Elimina discontinuitile unghiului de faza si genereaz un semnal


89
in radiani

FFT - Exemple

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

%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 acelai grafic amplitudinea si faza funcie de frecventa.

Solutie: Se scrie urmtorul fiier function cu numele testfft:


function [f, X] = testfft
t = 0 : .001 : 0.39; % crearea vectorului timp
fe = 1 / (t(2) - t(1)); % frecventa de esantionare
x=2*sin(2*pi*50*t)+1.5*sin(2*pi*100*t)+sin(2*pi*200*t)+0.5*sin(2*pi*350*t);

Xt = fft(x); % calcularea DFT a secventei


Xm = abs(Xt); % calcularea amplitudinii FFT
N=length(x);X=Xm(1:N / 2+1);Xp=Xt(1:N / 2+1);P=unwrap(angle(Xp));
f = [0 : N / 2] * fe / N; % crearea vectorului frecventa
subplot(311), plot(t,x), subplot(312), plot(f,X),
92
subplot(313), plot(f,P*180 / pi)

FFT - Exemple

93

5. Analiza circuitelor electrice


z

Utilizarea MATLABului pentru rezolvarea circuitelor electrice


poate fi vzuta ca o metoda alternativa sau ca o soluie
simultana pentru rezolvarea ecuaiilor care le definesc.
Prin scrierea unor programe, ca fiiere script sau function, si
prin utilizarea funciilor MATLAB, cum ar fi: ode, diff, fplot,
plot, global etc, se pot calcula si vizualiza diferii parametrii
(curentul, tensiunea, puterea etc) care caracterizeaza
functionarea circuitului respectiv, atat in regim staionar cat si
in regim tranzitoriu.
Variaia parametrilor unui circuit poate fi studiata prin
aplicarea teoremelor si legilor din electrotehnica (Teoremele
lui Kirchoff, Legea lui Ohm etc). Teoremele lui Kirchoff
reprezint, de fapt, relaiile fundamentale pentru calculul
circuitelor electrice.
94

5.1. Circuite electrice de curent continuu


z

Circuitele electrice de curent continuu sunt circuitele


aflate in regim electrocinetic staionar. Ele sunt
formate dintr-un ansamblu de surse electrice
(tensiune, curent), rezistoare, bobine si /sau
condensatoare.
Calculul unui circuit electric se poate face pe baza
schemei electrice a acestuia in care intervin doar
parametrii elementelor de circuit.
In analiza circuitelor electrice in regim staionar
intervin diferite conexiuni de rezistoare si surse de
tensiune si / sau curent.
95

Analiza circuitelor in regim stationar


z

Ex. 44: Se da circuitul rezistiv din figura.


Cunoscandu-se parametrii R1 = 100 , R2
= 100 , Us = 5V.

Sa se calculeze si sa se reprezinte grafic


curentul (I) prin circuit si tensiunea (U) la
bornele rezistentei de sarcina (R2) a
circuitului.
Sa se calculeze si sa se reprezinte grafic
transferul maxim de putere (puterea
disipata pe rezistenta de sarcina), tiind ca
U = 10 V, R1 = 10 k, rezistenta de
sarcina se modifica in plaja R2 = (0-50) k,
Us =U +U1 =U + R1 I
cu pasul de 1 k.
Solutie: Marimea de intrare este
U U
U
U s R2
tensiunea sursei (Us), iar parametrii de
L1 : I = s
; L2 : I =
U =
R1
R
R1 + R 2
iesire sunt curentul (I) si tensiunea (U).
Aplicandu-se Teorema lui Kirchoff pentru
2
tensiuni (teorema a doua) se obtine:
U R
U 2

P2 =

R2

(R 1 +

R2 )

96

Se scrie un fisier function cu


numele L1 care conine urmatoarea
secventa:
function I=L1(u)
r1=100; r2=100;us=5;
I=(us-u)/r1;
function I=L2(u)
r1=100; r2=100; us=5;
I=u / r2;
Dupa rularea fisierului L1, se
tasteaza urmatoarea comanda, in
fereastra de comenzi (command
window),
subplot(121), fplot('L1',[0,5]), grid,
subplot(122), fplot('L2', [0,5]), grid
In fisierul function L1 de mai sus
trebuie declarate valorile numerice
ale celor doua rezistente in
definirea fiecarei functii. Daca avem
mai mult de doua astfel de functii
programul poate deveni dificil iar
timpul de rulare poate fi suficient de
mare.

Pentru a face legatura intre


parametrii tuturor secventelor
function, se utilizeaza functia global:
2) Se scrie un fisier function cu
numele L2, utilizand functia global:
function I = L2(u)
global r1 r2
us = 5; I = u / r2;
function I = L1(u)
global r1 r2
us=5; I = (us-u) / r1;
De asemenea, se mai scrie un fisier
script cu numele TestL1, care
trebuie apelat dupa rularea fisierul
function L2, cu urmatoarea secventa,
global r1 r2
r1 = 100; r2 = 100; u=0:0.01:5;
I1 = L1(u); I2 = L2(u);
figure, subplot(121), plot(u, I1),
grid,subplot(122), plot(u, I2), grid
97

b) Puterea disipata pe rezistenta


de sarcina se poate calcula cu
urmtoarea secvena, utiliznd
ecuaia (29):
z %acest fiier script calculeaz
z

% transferul maxim de putere


%disipata pe rezistenta de sarcina
us=10; r1=10e3; r2=0:1e3:50e3;
k = length(r2);
%componentele vectorului r2
z

%Secventa urmtoare va calcula


puterea disipata pe R2
for i = 1 : k
p2(i) = ((us/(r1 + r2(i)))^2) * r2(i);
end
plot(r2, p2, r2, p2,o), title(Puterea
disipata pe rezistenta de sarcina);
xlabel(R_2 (W)), ylabel(P_2 (W))

98

Calculul tensiunilor si curenilor


intr-un circuit electric
Rezolvarea circuitelor electrice se poate face prin:
z Aplicarea teoremelor lui Kirchoff si legea lui Ohm ;
I = inv(Z)*V sau I = Z \ U
z Utilizarea Teoremei curentilor ciclici (de contur). Prin
aceasta metoda se pot calcula curentii din ochiurile
de retea a circuitului respectiv.
z Teorema potentialelor la noduri. Prin aplicarea
aceastei metode, daca circuitul respectiv conine N
noduri si noi selectam unul dintre ele ca referinta,
vor rezulta N-1 ecuatii din care putem calcula
tensiunea intre nodurile circuitului respectiv.
99

z
z

z
z
z

Ex. 45: Sa se calculeze tensiunile si curentii


pentru circuitul din figura, stiind ca: RL = 2;
Solutie: Aplicand teoremele lui Kirchoff si
legea lui Ohm putem scrie urmatoarele ecuatii
pentru curentii si tensiunile circuitului electric
din figura:
U1 = 5, U1-U2 = 50 I1, U2-U3 = 100 I2, U2 =
300 I3, U3 = 2 I2, I1 = I2+I3
Ansamblul ecuatiilor valorilor necunoscute ale
tensiunilor si curentilor are forma matriciala (A):
Construim un vector coloana UI, cu primele trei
componente reprezentand tensiunea (U1, U2,
U3) iar urmatoarele trei componente se refera
la curentii din circuit (I1, I2, I3). Dupa care
scriem un fisier script cu urmatoarea secventa:
A=[1 0 0 0 0 0;1 -1 0 -50 0 0;0 1 -1 0 -100 0;0 1
0 0 0 -300;0 0 1 0 -2 0;0 0 0 1 -1 -1];
Us=[5; 0; 0; 0; 0; 0]; UI = A \ Us;
UI = 5.0000
3.0178
0.0592
0.0396
0.0296
0.0101

0
0
0
1 0 0
1 1 0 50

0
0

0 1 1 0
100
0
A=

0
0
300
0 1 0
0 0 1
0
2
0

1
1
1
0 0 0

100

Rezolvarea circuitelor cu Teorema


curentilor de contur (ciclici)
Ex. 46: Utiliznd teorema curenilor
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: Utiliznd teorema curenilor
de contur si alegnd sensurile
acestora ca in figura se poate
observa ca puterea furnizata de sursa
de tensiune este P = 10 I1 iar
curentul care trece prin rezistenta R4
este I = I3 I2.
z Se scriu ecuaiile corespunztoare
fiecrui ochi de reea:
z

10 (I1 I2 ) +30 (I1 I3) 10= 0

40

10

30

=
10
I
I
I
2
3
1

10 (I2 I1 ) +15 I2 + 5 (I2 I3 ) = 0

10

+
30

=
0
I
I
I
1
2
3

I3 = 0
30 (I3 I1 ) + 5 (I3 I2 ) + 30101

30

+
65

=
0
I
I
I
1
2
3

In forma matriciala ecuatiile (37) - (39) devin:


40 10 30 I1 10
10 30 5 I = 0

2
30 5 65 I 3 0

Programul MATLAB pentru calcularea curentilor I1, I2 si I3 si I si a puterii P


poate fi scris intr-un fisier script:
Z = [40 -10 -30;
-10 30 -5;
-30 -5 65];
U = [10 0 0] ;
I = inv(Z)*U;
Ir4 = I(3) I(2);%curentul prin rezistenta R4
fprintf('Curentul prin rezistorul R4 este: %8.3f A \n', Ir4')
P = I(1)*10; %puterea furnizata de sursa de tensiune
z fprintf('Puterea furnizata de o sursa de tensiune de 10V este:
% 8.4 f W \ n , P)
z MATLABul genereaza urmatorul raspuns:
Curentul prin rezistorul R4 este: 0.037 A
Puterea furnizata de o sursa de tensiune de 10V este: 4.7531 W102
z

Rezolvarea circuitelor cu Teorema


potentialelor la noduri
z

Ex. 47: Pentru circuitul din


figura 38, sa se gaseasca
tensiunea intre nodurile 1, 2
si 3 (U1, U2 si U3).
Solutie: Utilizand teorema
lui Kirchoff si luand in
U1 U2 U1 U3
considerare regula conform
+
5 = 0
10
20
careia curentii care ies
dintr-un nod sunt pozitivi,
U2 U1 U2 U2 U3
U3 U1 U3 U2
+ +
=0
vor rezulta urmatoarele
+
2=0
10
50
40
20
40
ecuatii pentru fiecare nod:
103

In forma matriciala ecuatiile 44-46 devin:


0 .1
0.05 U 1 5
0.15
0 .1
U = 0
0
.
145

0
.
025

2
0.05 0.025 0.075 U 3 2

Fiierul script care calculeaz sistemul matricial de ecuaii si care


genereaz valorile tensiunilor la noduri are forma:

%Acest fiier calculeaz tensiunile la noduri U1, U2 si U3


Y = [0.15 -0.1 -0.05; -0.1 0.145 -0.025; -0.05 -0.025 0.075];
I = [5; 0; 2];
fprintf( Tensiunile la noduri U1, U2 si U3 sunt: \ n ')
U = inv(Y) * I
z Se returneaz urmtorul rezultat:
Tensiunile la noduri U1, U2 si U3 sunt:
U=
404.2857
350.0000
412.8571

104

Circuite electrice in regim tranzitoriu


z

Calculul mrimilor circuitelor electrice in regim


tranzitoriu se refera la circuitele cu caracter capacitiv
si / sau inductiv
Se rezolva cu ajutorul Teoremelor lui Kirchoff,
metoda transformatei Laplace (metoda operationala),
Teorema curentilor de contur sau Teorema
potentialelor la noduri, Teorema conditiilor initiale,
Teoremele generatoarelor echivalente (Teorema lui
Tevenin si Teorema lui Norton) sau cu ajutorul
marimilor de stare (MM - ISI).;
105

Circuite electrice in regim tranzitoriu


Pentru analiza circuitelor de curent
continuu in regim tranzitoriu se
considera circuitul RC descris in
figura
z Studiul acestui circuit se poate face
cu ajutorul Teoremei lui Kirchoff
pentru curent;
z Daca condensatorul este initial
neincarcat, u(t) = 0 la t=0 (conditii
initiale), atunci solutia ecuatiei este
data de relatia:
z u(t) reprezinta raspunsul in domeniu
timp a unui circuit RC, sau iesirea
unui circuit care are ca intrare o
tensiune continua constanta, iar RC
reprezinta constanta de timp a
circuitului.
z

du(t ) u(t ) us
C
+
=0
dt
R
t


u (t ) = us 1 e RC

106

Circuite electrice in regim tranzitoriu - Exemple


z

Ex. 48: Sa se reprezinte grafic tensiunea


(u(t)) la bornele unui condensator, stiind
ca C = 10 F, daca rezistenta R = 1 k,
R = 10 k si R = 0.1 k.
Solutie: Se scrie un fisier script cu
urmatorul continut:
%incarcarea unui circuit RC
c=10e-6; r1 = 1e3; tau1 = c*r1;
t = 0 : 0.002 : 0.05;
u1 = 10*(1-exp(-t / tau1));
r2 = 10e3; tau2 = c*r2;
u2 = 10*(1-exp(-t / tau2));
r3 = 0.1e3; tau3 = c*r3;
u3 = 10*(1-exp(-t / tau3));
plot(t,u1,t,u2,t,u3), title(Incarcarea unui
condensator cu trei constante de timp);
axis([0 0.06 0 12]); xlabel(Timpul (s)),
ylabel(Tensiunea pe condensator (V))

107

Ex. 49: Pentru o tensiune de intrare dreptunghiulara (us) cu amplitudinea de 5V si latimea pulsului de 0.5 sec
si un condensator C = 10 F, sa se reprezinte grafic tensiunea la bornele condensatorului u(t)
pentru o rezistenta de 2.5 k si apoi pentru una de 10 k.
z

Solutie: Se scrie un fisier function cu


numele rceval care va conine secventa:
function [v, t] = rceval(r, c)
tau = r*c;
for i = 1:50
t(i) = i / 100; v(i) = 5*(1-exp(-t(i) / tau));
end
vmax = v(50);
for i=51:100
t(i) = i / 100; v(i) = vmax*exp(-t(i-50) / tau);
end

Si un fisier script cu numele testrceval, care va


apela fisierul function rceval, si care conine
secventa :
c=10.0e-6;r1=2500;
[v1,t1] = rceval(r1,c); r2 = 10000;
[v2, t2] = rceval(r2, c);
figure, plot(t1,v1,t1,v1,'*b',t2,v2,t2,v2,'og'),
axis([0 1 0 6])
title('Raspunsul unui circuit RC pentru un semnal
de intrare dreptunghiular')
xlabel('Timpul (s)'), ylabel('Tensiunea pe
condensator (V)')

108

Transformata Laplace
z

Una din cele mai simple modalitati ale MATLABului


de a calcula si de-a reprezenta grafic curentul si
tensiunea unui circuit RLC, pentru studiul diferitelor
regimuri tranzitorii, este utilizarea transformatei
Laplace.
Un sistem de ecuaii, care definete funcionarea
unui circuit RLC, conine ecuaii difereniale care pot
fi convertite foarte simplu in ecuaii algebrice cu
ajutorul Transformatei Laplace.
Necunoscutele circuitului (tensiunea sau curentul)
vor fi calculate in acest caz in domeniul operational
(s).
De asemenea, utiliznd Transformata Laplace
inversa, soluia unei ecuaii poate fi exprimata in
domeniul timp.
109

Ex. 51: Sa se determine tensiunea u(t) la bornele unui condensator pentru circuitul
RLC paralel din figura 45, tiind ca R = 10 , L = 1 / 32 H, C = 50 F, Is = 2 A.

z
z

La t < 0, tensiunea la
bornele condensatorului
este uC(0) = 2 * 10 = 20V si
curentul prin bobina iL = 0;
La t > 0, comutatorul se
nchide si toate cele patru
elemente sunt in paralel.
Utiliznd Teorema lui
Kirchoff va rezulta ecuaia:
Aplicnd Transformata
Laplace ecuaiei (57) vom
obine:

u(t)
du(t) 1
Is =
+C
+ u( ) d + iL (0)
R
dt L 0

Is U(s)
U(s) IL(0)
=
+C[sU(s)Uc(0)] +
+
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');
%Analiza reg. tranzitoriu utilizand Transformata Laplace

t2 = 0:1e-3:30e-3;
ut = -6.667*exp(-1600*t2)+26.667*exp(-400*t2);
subplot(212), plot(t2, ut);
xlabel('Timpul (s)'),ylabel('Tensiunea pe condensator (V)');

111

112

Circuite electrice de curent alternativ


z

z
z

Conceptual nu exista nici o diferena intre studiul circuitelor electrice pur rezistive,
in regim staionar (permanent sinusoidal), si studiul circuitelor electrice inductive si
capacitive, daca scriem ecuaiile circuitelor in forma matriciala sau le nlocuim cu
fazori. Singura diferena, fata de circuitele rezistive, consta in faptul ca matricele
conin ca elemente numere complexe si impedana acestor circuite depinde de
frecventa.
Relaiile fazoriale tensiune curent pentru rezistor, bobina si condensator sunt:
I
U R = I R ; U L = I ( j L ); U C =
( j C )
Si in acest caz pentru studiul diferitelor regimuri de funcionare se utilizeaz
Teoremele lui Kirchoff, Teorema potenialelor la noduri, Teorema curenilor ciclici
(de contur) etc.
MATLABul utilizeaz funcii de integrare numerica (quad, quad8) pentru a obine
valorile efective, medii sau instantanee ale diferiilor parametrii, cum ar fi curentul,
tensiunea sau puterea.
Circuitele trifazate pot fi analizate prin conversia in domeniul frecventa
Daca se cunoate funcia de transfer (fdt) a unui circuit, librria de funcii MATLAB
conine funcii dedicate care pot evalua fdt la o anumita frecventa, sau pot calcula
polii si zerourile funciei respective
113

Analiza circuitelor electrice de c.a. in


regim stationar
z

MATLABul conine doua functii


pentru integrarea numerica, quad
si quad8, a circuitelor electrice.
Ex. 52: Pentru circuitul din figura
se cunosc valorile instantanee
ale tensiunii si curentului. Sa se
determine puterea medie,
valoarea efectiva a tensiunii si
factorul de putere utilizand
a) metoda analitica
b) metoda numerica.

u (t ) = 10 cos( 220t + 30 0 )
i (t ) = 6 cos( 220t + 60 0 )
U

ef

= U =

I ef = I =
T

1
Pmedie = p(t) = u(t) i(t) dt
T 0

T
1

( t ) dt

( t ) dt

P 114 P
k= =
S U I

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);
U_aef = 10 / sqrt(2); k_a = cos(30*pi / 180);

115

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

Fisierul function Tensiunea are urmtorul coninut:


function Usq = Tensiunea(t)
%aceasta functie este utilizata pt. a defini tensiunea instantanee
Usq = (10*cos(220 * pi * t + 60 * pi / 180)).^2;
function Isq = Curentul(t)
%Aceasta functie defineste curentul instantaneu
Isq = (6*cos(220 * pi * t + 30 * pi / 180)).^2;
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


z

Rezolvarea circuitelor de curent alternativ (studiul


diferitelor conditii de functionare), cu ajutorul
MATLABului, se poate face prin metode analitice si
prin metode numerice iterative.
In inginerie electrica se apeleaza de multe ori la
ecuatii diferentiale pentru studiul diferitelor probleme
tehnice, cum ar fi rezolvarea circuitelor electrice.
Se scriu ecuatiile unui astfel de circuit aplicand, de
exemplu Legea lui Ohm sau Teoremele lui Kirchoff,
dupa care se rescriu ecuatiile intr-o forma diferentiala
simplificata de ordinul 1 sau 2, in functie de
elementele componente ale circuitului respectiv
117
(bobine, condensatoare).

Ex. 53: Sa se calculeze si sa se


reprezinte grafic tensiunea la bornele
condensatorului (tensiunea de iesire)
pentru circuitul RC din figura, pentru
intervalul de timp 0<=t<=6, stiind ca
tensiunea de alimentare (tensiunea de
intrare) este un semnal sinusoidal
(u=sin(t)).

Ecuatia diferentiala care descrie


tensiunea pe condensator a circuitului
din figura este data de relatia:

Ecuatia (71) poate fi rescrisa sub


forma simplificata:

dUC
+UC =U(t)
RC
dt
dy
a + by = sin(2t);a = RC,b =1
dt

Solutie: Inlocuind ecuatia (73) in


ecuatia diferentiala (72) a circuitului
RC va rezulta solutia ecuatiei
1
2
a
(
k
)

2a(k) y(k 1)

diferentiale de ordinul 1
+b(k)
+a(k) D(k 1) +u(k)
y(k) =
t
t

(Tensiunea pe condensator):
118
z

Considernd a = 1 / 2, se scrie fiierul script care va calcula si reprezenta grafic


tensiunea pe condensator (uC(t)):

%Reprezentarea grafica a tensiunii pe condensator pt. un circuit de c.a. RC


tin = 0; tfin = 6; t = linspace(tin, tfin, 3000);
%genereaza un vector linie cu 3000 de puncte intre tin si tfin
N = length(t); %dimensiunea vectorului timp
y = zeros(1, N); dt = (tfin - tin) / (N-1);
u = sin(t); %semnalul de intrare
a = (1 / (2*pi)) * ones(1, N); %a=RC
b = ones(1, N);
y(1) = 0; %conditie initiala
D(1) = (1 / a(1)) * (u(1) - b(1) * y(1));
for k = 2 : N
y(k) = ((2*a(k) / dt + b(k))^(-1)) * (2*a(k) * y(k-1) / dt + a(k) * D(k-1) + u(k));
% tensiunea pe condensator
D(k) = (2 / dt) * (y(k) - y(k-1)) - D(k-1);
end
plot(t,y,t,u,'--'), xlabel('Timpul'), ylabel('Tensiunea'),
title('Tensiunea pe condensator si tensiunea de intrare a unui circuit RC'), grid
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.
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:
z Ecuatia diferentiala de ordinul 2 se
poate scrie sub forma:
z

In care a = LC, b = RC si c = 1 sunt


constantele de timp ale circuitului.
z

Solutia ec. diferentiale este data de


relatia:

d 2U C
dU C
LC
+
RC
+ U C = U (t )
dt
dt 2
d2y
dy
a 2 +b
+ cy = sin( t )
dt
dt
1
( b(1) D(1) c(1) y(1) + u(1))
D2 (1) =
a
(
1
)

121

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
z

a = 1;b = 3;c = 1; w = 1; %a = LC, b = RC, c = 1


N = length(t); %dimensiunea vectorului timp
y = zeros(1,N); dt = (tfin - tin) / (N-1);
u = sin(w * t); %semnalul de intrare
y(1) = 0; D(1) = 0;
D2(1)=(1/a)*(-b*D(1)-c*y(1)+u(1));
for k=2:N
y(k)=((4*a/dt^2+2*b/dt+c)^(-1))*(y(k-1)*(4*a/dt^2+2*b/dt)+D(k1)*(4*a/dt+b)+a*D2(k-1)+u(k)); %tensiunea pe condensator
D(k) = (2 / dt) * (y(k) - y(k - 1)) - D(k - 1);
D2(k) = (4 / dt^2)*(y(k) - y(k-1)) - (4/dt) * D(k-1) - D2(k-1);
end
plot(t,y,t,u,'--'), xlabel('Timpul'), ylabel('Tensiunea'),title('Tensiunea pe
condensator si tensiunea de intrare a unui circuit RC'),axis([0 50 -1 1])
122

Solutie 2: Sa se calculeze si sa se reprezinte grafic tensiunea pe


condensator pentru circuitul RLC din figura 50, utilizand metoda de
integrare numerica ode45 (Runge-Kutta) si sa se compare graficul
rezultant cu cel obtinut anterior.

Se scrie un fisier function cu numele RLC.m care va include sistemul de ecuatii,


dupa care se va scrie un fisier script test RLC care-l va include (apela) pe cel
function:

function zp=RLC(t,z)
%Acest fisier function reprezinta grafic tensiunea pe condensator intr-un
%circ RLC cu metoda ode45(Runge-Kutta) si include sistemul de ecuatii
a = 1;b = 3;c = 1; zp(1,1) = z(2,1);
zp(2,1) = (1/a) * (sin(t) b * z(2,1) c * z(1,1));
%Acest fisier script reprezinta grafic tensiunea pe condensator intr-un
%circ RLC cu metoda ode45(Runge-Kutta) si acceseaza fisierul function RLC
tspan = [0 16 * pi]; zin = [0; 0];
[t, z] = ode45('RLC', tspan, zin);
plot(t,z(:,1),t,sin(t)),axis([0 50 -1 1]), xlabel('Timpul'),title('Comparatie intre
Tensiunea pe condensator intr-un circuit RLC si Tensiunea sursei de
alimentare')
123

124

Rspunsul in domeniul timp si frecventa


z

Rspunsul n domeniul timp:


- furnizeaz informaii despre regimul tranzitoriu al
modelelor liniare invariante n timp, pentru diferite
tipuri de semnale de intrare i perturbaii;
- permite determinarea unor caracteristici i parametri
(indicatori) ai sistemului respectiv, necesare n
proiectare, cum ar fi: timpul de cretere, timpul de
rspuns, timpul de reglare sau eroarea de regim
staionar.
Rspunsul n domeniul frecven / pulsaie a unui
sistem reprezint diferena amplitudinii i fazei
unui semnal sinusoidal de la intrarea i ieirea
acestuia.
125

Raspunsul in domeniul timp


z

Dac se dorete s
se reprezinte grafic
rspunsul n
domeniul timp
pentru un semnal
treapt i impuls, se
utilizeaz comenzile
step(sys) i
impulse(sys).

H (s) =

1
s 2 + 10 s + 20
126

Locul geometric al radacinilor si


alocarea polilor
z

Functia
MATLAB pt.
alocarea
polilor:
pzmap
Iar pt. locul
geometric al
radacinilor
rlocus;
127

Rspunsul in frecventa
Rspunsul n frecven sau diagrama Bode,
alturi de algoritmii de reglare ai regulatoarelor
de tip proporional-integrator-derivativ (RG-PID),
sunt cele mai utilizate metode de proiectare ale
sistemelor de conducere utilizate n industrie.
z Mrimea de ieire a unui sistem liniar, avnd ca
mrime de intrare un semnal sinusoidal, este tot
o sinusoid de aceeai frecven, dar de
amplitudine i faz diferite.
z Se poate aplica sistemelor de tip SISO sau
MIMO, considernd sistemul respectiv liniar.
z Este utilizat pentru proiectarea sistemelor de
conducere, acordarea parametrilor unor
regulatoare sau pentru proiectarea diferitelor
128
filtre electronice/filtre de reea etc.
z

Reprezentarea grafica a raspunsului


in domeniul frecventa
z

Dac se dorete
reprezentarea
grafic a
rspunsului
sistemului n
domeniul
frecven, se
utilizeaz funcia
bode(sys), sau
bodemag(sys)
care reprezint
grafic doar
amplitudinea
diagramei Bode.
129

Funcii dedicate crerii i conversiei


modelelor liniare
z Biblioteca

Control System furnizeaz i un


set de funcii (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
z
z

Funcia c2d realizeaz conversia modelelor continue n


modele discrete echivalente, implementate prin tf, zpk i ss;
Se poate realiza i conversia invers, utiliznd funcia d2c;
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.
Aceste funcii pot fi apelate cu urmtoarele sintaxe:
sysd = c2d(sysc, Ts, Metoda)
Sysc = d2c(sysd, Metoda)

Dac nu se specific metoda de discretizare, atunci


MATLABul va realiza conversia, utiliznd metoda zoh (zeroorder-hold).
O funcie similar, cu cele de mai sus, este d2d, care poate fi
utilizat atunci cnd se dorete discretizarea modelului131cu
un alt pas de eantionare dect cel precedent.

Parametrii si caracteristici de baza pt.


proiectarea SRA
z
z

Eroarea de regim staionar caracterizeaz precizia de


funcionare a SRA n regim staionar.
Suprareglajul este un indice de calitate al SRA n regim
tranzitoriu, provocat de o variaie a mrimii de intrare, i
reprezint depirea maxim de ctre mrimea de ieire a
valorii staionare.
Gradul de amortizare este tot un indice de calitate al
regimului tranzitoriu i reprezint diferena dintre unitate i
raportul amplitudinilor a dou semioscilaii succesive ale
mrimii de ieire, raportate la valoarea de regim staionar.
Timpul de cretere, timpul atingerii primului maxim i
timpul primei atingeri a valorii staionare sunt indici de
calitate care caracterizeaz rapiditatea rspunsului tranzitoriu
al SRA.
Timpul de rspuns al SRA reprezint timpul msurat de la
nceputul procesului tranzitoriu pn cnd, diferena dintre
mrimea de ieire i valoarea sa staionar scade sub o132
anumit limit (de ex. 5 %).

Conceptul de instabilitate a unui sistem n bucl nchis (RG+plant) este


definit de marginea/rezerva de stabilitate. n acest sens, diagrama Bode
furnizeaz doi parametrii: marginea de amplitudine (gain margin-GM) i
marginea / rezerva de faz (phase margin-PM), dup cum descrie figura
din dreapta.
z Un SRA liniar este stabil dac marginea de faz (PM) i marginea de
amplitudine (GM) sunt pozitive. Dac PM=0 sistemul se afl la limita de
stabilitate, iar dac unul din cei doi parametri este negativ sistemul liniar
este instabil.
z

133

Diagrama Nyquist
z

z
z

Diagrama Nyquist este utilizat, n tandem cu diagrama


Bode, la estimarea performanelor sistemelor de reglare
automat, n bucl nchis (cu bucl de reglare/reacie), pe
baza proprietilor sistemului fr bucl de reglare, folosind
fdt a acestuia, atunci cnd diagrama Bode ofer informaii
confuze despre stabilitatea sistemului n bucl deschis.
Criteriul Nyquist este cel mai important criteriu de apreciere a
stabilitii SRA, n timp continuu.
De asemenea, diagrama Nyquist poate fi utilizat pentru a
gsi domeniul de variaie al factorului de amplificare (gain) al
regulatorului, pentru care sistemul n bucl nchis este
stabil.
Funcia 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 conine 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 alocai n semiplanul
drept.
Utilizarea diagramei Nyquist
permite vizualizarea intuitiv
i aprecierea gradului de
stabilitate a sistemului i a
influenei modificrii unor
parametrii ai acestuia asupra
stabilitii.
135

Diagrama Nyquist - Exemplu

136

Analiza circuitelor electrice utiliznd


rspunsul n frecven
z

d2UC
dU
LC 2 + RC C +UC =Ui (t),uc (0) = 0
dt
dt
U 0 (s)
R
sRC
=
= 2
=
1
1
U i (s)
s
LC
sRC
+
+
R + sL +
sC
R
s
L
=
1
R
s2 + s +
L LC
H (s) =

S se calculeze i s se
reprezinte grafic rspunsul n
frecven al circuitului RLC
din figura tiind c:
R=10 k, C=1,12 F i L =
5H
ce se ntmpl dac
rezistena se modific la
valoarea R = 100 n timp
ce L i C rmn
neschimbate?
137

z
z
z
z
z
z
z
z
z
z
z
z
z

Soluie: Se scrie fiierul script (raspunsulfrecventaRLC.m) cu


urmtoarea secven:
L=5; C=1.25e-6; R1=10000; R2=100; %parametrii circuitului
num1=[R1 / L 0]; den1=[1 R1/L 1/(L*C)];%numrtorul i numitorul fdt
w=logspace(1, 4); f=w / (2*pi); h1=freqs(num1, den1,w);
mag1=abs(h1); phase1=angle(h1)*180 / pi;
num2=[R2/L 0]; den2=[1 R2/L 1/(L*C)];
h2=freqs(num2,den2,w);
mag2=abs(h2);phase2=angle(h2)*180/pi;
subplot(221),loglog(f,mag1,'+'),title('Raspunsul amplitudine pt.
R=10k'),ylabel('Amplitudinea')
subplot(222),loglog(f,mag2,'--'),title('Raspunsul amplitudine pt.
R=0.1k'),ylabel('Amplitudinea')
subplot(223),semilogx(f,phase1,'--'),title('Raspunsul faza pt. R =
10k'),
xlabel('Frecventa (Hz)'),ylabel('Unghiul de faza (grade)')
subplot(224),semilogx(f,phase2),title('Raspunsul faza pt. R =
0.1k'),
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)
de calitate al circuitului creste.

139

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.
Cu ajutorul pachetului de programe Simulink se pot construi
diagrame bloc, utiliznd biblioteca standard (nucleului de
baza) sau realiznd propriile blocuri (interfaa grafic
interactiva denumit graphical user interface GUI ).
Modelele complexe se realizeaz ierarhic crend blocuri
grupate n subsisteme. Aceste subsisteme se pot cupla ntre
ele realizndu-se un singur sistem n care se evideniaz
mrimile de intrare i de ieire.
Dup realizarea modelului matematic al sistemului, urmtorul
pas este simularea dinamic utiliznd 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


cunoaterea sistemului de ecuaii difereniale, pe realizarea
shemei bloc i desigur pe utilizarea unei metode de integrare
numeric. Rezultatele simulrii pot fi afiate att grafic ct i
sub forma unor tabele numerice.
Utiliznd blocurile bibliotecii S-Functions se pot crea propriile
blocuri, care se integreaz n schemele existente, realizate cu
blocuri din biblioteca standard a Simulinkului.
Utilizarea Simulinkului pentru studiul diferitelor regimuri de
functionare ale sistemelor dinamice permite si vizualizarea mai
multor ferestre grafice n acelai timp.
Biblioteca Simulink conine mai multe seturi (colecii) de blocuri
dedicate diferitelor domenii de activitate, cum ar fi ingineria
electrica maini, convertoare statice si acionri electrice,
electronica - procesarea digitala a semnalelor etc.
141

6.1. Editorul Simulinkului


z Cnd

se dorete accesarea bibliotecii


Simulink sau deschiderea unui model,
Simulinkul afieaz instantaneu fereastra
editorului su.
z Pentru a deschide o fereastr Simulink si
implicit pentru a crea un model nou se
acceseaza new model din meniul principal.
Aceasta fereastr conine cele mai uzuale
comenzi ale Simulinkului, cum ar fi:
deschiderea unui model, salvarea acestuia,
accesarea bibliotecii, setarea parametrilor
simulrii si rularea unei simulri etc
142

Editorul
Simulinkului

Editorul Simulink conine urmtoarele componente de baza:


z Menu Bar conine comenzile pentru crearea, editarea,
vizualizarea, printarea si simularea modelelor;
z Toolbar conine cele mai utilizate comenzi Simulink care
pot fi accesate printr-un simplu click pe butonul respectiv;
z Canvas afieaz diagrama bloc a modelului si implicit
permite editarea acesteia;
z Status Bar afieaz situaia simulrii cnd aceasta este in
progres. De asemenea, afieaz si timpul simulrii curente si
143
numele metodei de integrare numerica selectata.

Vizualizarea traiectoriei unui semnal.


Crearea modelelor i a subsistemelor.
z

Vizualizarea traiectoriei unui semnal necesita intr-o


prima etapa crearea unui model matematic,
implementat in Simulink printr-o schema bloc.
Pasul urmtor include alegerea metodei de integrare
i a pasului minim i maxim, simularea modelului i
implicit vizualizarea diferitelor forme de unda.
Crearea modelelor in Simulink reprezint:
construirea unei diagrame (scheme) bloc bazata
pe modelul matematic al sistemului, aranjat
astfel incat sa rezulte mrimile de intrare stare
ieire (MM-ISI).
144

Vizualizarea traiectoriei unui semnal


z

Pentru vizualizarea traiectoriei unui semnal se considera


exemplul urmator: Sa se vizualizeze semnalul de iesire a unui
amplificator care are factorul de amplificare (gain) egal cu 0.5 si
care are ca marime de intrare un semnal sinusoidal.
Primul pas consta in accesarea librariei Simulink, dupa care se
deschide o fereastra pentru a crea modelul cerut. Din libraria
standard se selecteaza blocurile necesare implementarii
modelului, dupa cum urmeaza:
din libraria Math operation se selecteaza blocul Gain, care
reprezinta un amplificator, si se muta in fereastra nou creata.
Acest bloc are un singur parametru care este setat la
valoarea unu. Desigur ca orice parametru intern al diferitelor
blocuri poate fi modificat. In cazul modelului nostru am setat
parametrul intern gain la valoarea ceruta (0.5);
din libraria Sources se selecteaza blocul Sine Wave care
reprezinta semnalul de intrare sinusoidal;
din libraria Sinks se selecteaza blocul Scope care reprezinta
145
un Osciloscop;

Crearea modelelor/Vizualizarea semnalelor


Odat ce blocurile modelului sunt plasate
in noua fereastra se pot unii prin linii
pentru a realiza conexiunile dintre
mrimile de intrare stare ieire.
z Conectarea blocurilor se poate face
manual, utiliznd mouseul, sau automat,
prin selectarea blocurilor care urmeaz a fi
conectate, innd apsat tasta Ctrl.
z Pentru vizualizarea semnalului de ieire a
blocului amplificator se poate selecta din
meniul principal comanda start simulation
dup care prin dublu click pe Scope se
vizualizeaz forma de und rezultant.
z O alta metod de vizualizare a semnalelor
este prin setarea parametrilor interni
blocului Scope (ParametersData
historySave data to workspace). Prin
aceasta metoda datele pot fi salvate in
fereastra de lucru a MATLABului si apoi
prelucrate cu funciile (comenzile)
acestuia.
z

146

Crearea modelelor
Crearea modelelor in Simulink
utiliznd biblioteca standard
(nucleul de baza).
z Modelul alturat integreaz i
deriveaz un semnal sinusoidal
(o forma de unda sinusoidala) i
reprezint pe acelai grafic cele 3
semnale. Pentru a vizualiza pe
acelai grafic mai multe semnale
se utilizeaz blocul mux
(multiplexor).
z Diagrama bloc a modelului i
rezultatul simulrii sunt prezentate
in figurile alturate:
z

147

Modelarea sistemelor in timp continuu


z

In biblioteca Simulink standard exista att blocuri


analogice (continue) cat si discrete. In cazul
blocurilor analogice acestea genereaz la ieire
mrimi continue chiar daca mrimea de intrare este
un semnal variabil. Blocurile analogice se regsesc
in libraria standard in setul de funcii al bibliotecii
Continuous precum si in alte biblioteci, cum ar fi
Math Operations (gain, sum), Sinks (Scope) si
Sources (Constant, Clock).
Unele blocuri pot fi analogice sau discrete, in funcie
de mrimea de intrare la care sunt conectate, de
148
exemplu blocul gain.

Un sistem continuu poate fi modelat cu


ajutorul unei ecuaii difereniale de
ordinul 1, de forma : dxdt = 2 x (t ) + u (t ) (*)
Unde u(t) reprezint mrimea de intrare a sistemului si este un
semnal dreptunghiular (forma de unda ptratica) cu amplitudinea si
frecventa egale cu unu (1 rad/sec).
z Pentru a implementa acest model in Simulink avem nevoie de un
bloc integrator (integer), din biblioteca Continuous, care sa integreze
mrimea proprie de intrare dx/dt pentru a obine mrimea de ieire x
a sistemului.
z Pentru a genera un semnal dreptunghiular se utilizeaz blocul Signal
Generator din biblioteca Sources, la care se va seta forma de unda
corespunztoare si unitatea de msura se modifica in rad/sec. Alte
blocuri necesare pentru a construi schema bloc a modelului sunt
blocurile gain si sum din biblioteca Math Operations, iar pentru
vizualizarea semnalului de ieire este necesar si un osciloscop
(scope) accesibil in biblioteca Sinks.
z Schema bloc a modelului si reprezentarea grafica a mrimii de iesire
x a sistemului continuu sunt prezentate in figura urmtoare: 149
z

In ecuaia (*), x reprezint mrimea de ieire a


integratorului si a sistemului dar este in acelai timp
si una din mrimile de intrare care calculeaz
derivata dx/dt.
Ecuaia (*) poate fi scrisa si cu ajutorul operatorului
Laplace (s):
s x = 2 x + u
Care are ca soluie funcia de transfer:
u x
1
x=
; =
s+2 u s+2

Pentru a implementa ecuaia de mai sus este


necesar blocul Transfer Fcn, la care se seteaz
corespunztor coeficienii de la numrtor si numitor
(numerator [1], denominator [1 2]).
Prin utilizarea Transformatei Laplace modelul devine
mai simplu si are forma diagramei bloc din fig. 150
urmat.:

151

Crearea subsistemelor
z

z
z

Daca modelul pe care dorim sa-l implementam in Simulink


creste ca dimensiune si complexitate, poate fi simplificat prin
gruparea diferitelor blocuri intr-un subsistem sau in mai multe.
Prin aceasta facilitate se reduce numrul blocurilor modelului si
se menine ordinea de conectare a diagramei bloc a sistemului.
Crearea subsistemelor se poate realiza prin doua modalitati:
Prin adugarea unui bloc subsystem, din libraria Ports &
Subsistems, la un model deja creat, iar apoi prin
deschiderea acestuia se poate copia modelul existent in
interiorul subsistemului;
prin gruparea blocurilor, prin selectarea acestora se fixeaz
mouse-ul pe unul din blocuri i se face clic pe butonul din
dreapta. Din meniul ce apare se alege create subsystem i
cu un clic se obine un singur bloc numit subsystem. Prin
clic pe subsystem se obine un nou meniu din care alegnd
edit mask se obine n final fereastra mask editor
152

Exemplul urmtor utilizeaz una din cele doua metode de


creare a subsistemelor descrisa mai sus si va reprezenta
grafic rezultatul att utiliznd metoda directa din Simulink,
prin utilizarea unui osciloscop, cat si prin utilizarea unui bloc
mascat care apeleaz un fiier MATLAB script.
Exemplul . Sa se modeleze un oscilator cu frecventa variabila
si amplitudine constanta care sa genereze doua funcii
ortogonale, sinus si cosinus, iar apoi sa se reprezint grafic
rezultatul simularii.
Solutie: Modelul matematic al unui oscilator are forma:
d 2 y1
2
=

y1

dt 2

1 dy1
y2 =
dt
y 2 = y 1 dt
y1 =

dt

dy 2
= y1
dt

153

154

Modelarea si simularea sistemelor dinamice


z

Modelarea si simularea unui sistem dinamic conine


doua etape:
Crearea unui model grafic utiliznd editorul modelelor
din nucleul de baza al librriei Simulink (modelarea
sistemului dinamic). Modelul dinamic descrie ecuaiile
matematice ale sistemului pe care dorim sa-l simulam, in
funcie de timp, stabilind mrimile de intrare stare
ieire (MM-ISI). Aceste ecuaii pot conine ecuaii
algebrice, integrale si difereniale;
Simularea regimurilor de funcionare ale sistemului intrun anumit interval de timp. Simulinkul utilizeaz
informaiile de intrare ale utilizatorului in interiorul
modelului pentru realizarea propriu-zisa a simulrii
(simularea sistemului dinamic).
155

Modelarea sistemelor dinamice (1)


z

Simulinkul conine o librrie cu blocuri standard si un editor


grafic ce permite realizarea conexiunilor dintre ele. Astfel, prin
selectarea si interconectarea corespunztoare a blocurilor se
poate implementa, intr-o lume virtuala, orice sistem dinamic
real.
Fiecare bloc reprezint un sistem dinamic elementar ce
poate avea la ieire o variaie liniara (continua in timp), sau
discreta (variabila in timp).
Tipul fiecrui bloc determina legtura dintre mrimile de intrare,
stare si cele de ieire ale sistemului si variaia acestuia in timp.
Conexiunile dintre blocuri se realizeaz prin linii.
Fiecare bloc poate sa contina una sau mai multe mrimi de
intrare - stare ieire, dup cum descrie si figura:

156

Modelarea sistemelor dinamice (2)


Majoritatea blocurilor conin parametrii care trebuie
definii naintea comenzii de simulare a sistemului, cum ar
fi condiiile iniiale, pasul de eantionare etc.
z Mrimile de ieire ale unor blocuri depind de mrimile de
stare ale sistemului. Aceste blocuri trebuie sa retina
(memoreze) valorile de stare anterioare pentru a calcula
actualele mrimi 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 conine ca mrime de stare valoarea
anterioara mrimii de intrare. Blocuri care nu conin
mrimi 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 conine un parametru cu acelai
157
nume care poate fi modificat corespunztor.
z

Simularea sistemelor dinamice

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.
Simularea propriu-zisa a unui sistem include doua faze:
1. Initializarea modelului
2. Executia modelului

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

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
158
furnizate de modelul matematic al sistemului dinamic.

nainte de lansarea in execuie a simulrii unui sistem


dinamic se seteaz parametrii care definesc timpul
de simulare (valoarea iniial si final), metoda de
integrare (ode23, ode45 etc) si pasul simulrii (pas
variabil, pas fix continuu sau discret). Acest lucru
se poate realiza din meniul principal al editorului
Simulink accesnd fereastra Simulation
Parameters, dup cum descrie si figura:

159

z
z

z
z
z
z

Simulinkul ofer posibilitatea simulrii unui sistem att cu pas continuu (fix) cat si
cu pas variabil. Diferena consta in faptul ca daca se alege pasul variabil se
poate imbunatatii precizia simulrii prin reducerea mrimii pasului (paii inutili vor
fi eliminai).
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).
Simulinkul ofer opt metode de integrare numerica a ecuaiilor difereniale
care pot fi utilizate pentru rezolvarea unor sisteme flexibile (non-stiff) sau pentru
sisteme rigide (stiff) si de asemenea pentru sisteme discrete (cu pas variabil).
Al doilea meniu Workspace I/O din fereastra Simulation Parameters (fig. )
permite afisarea semnalelor de iesire. Acest meniu are trei opiuni:
Structure with time permite salvarea datelor in workspace (timpul - tout si a
semnalelor de iesire xout, yout, xFinal). Pentru afiarea valorilor xout si yout se
tasteaza in fereastra de comanda (command window) a MATLABului
xout.signals.values sau yout.signals.values;
Structure acest meniu este identic cu primul cu deosebirea ca nu afieaz
timpul;
Array afiseaza marimile definite in workspace, avnd pe prima coloana
vectorul timp.
Meniul Diagnostic ne permite sa urmrim toate evenimentele decurse in timpul
simulrii: de atentionare (warning), eroare (error) sau de loc (non).
Meniul Advance si meniul Real-Time Workshop permit stabilirea diferitelor opiuni
care pot afecta rezultatele simulrii precum si o extensie a posibilitilor de
realizare a unor modele complexe in vederea utilizrii unor algoritmi in timp
real.
160

Modelarea si simularea sistemelor discrete (1)


Simulinkul ofer si facilitatea de-a simula sisteme discrete
(date/semnale eantionate), incluznd sisteme ale cror
componente opereaz la rate de eantionare diferite si sisteme
care au in componenta att mrimi discrete cat si continue.
z Blocurile discrete sunt redate in librria Discrete, dar pot fi ntlnite
si in alte librarii cum ar fi Sources (Pulse Generator) sau Sinks.
Aceste blocuri prezint un timp de discretizare (eantionare),
unele dintre ele avnd setat acest timp iar alte blocuri permit
modificarea acestui parametru intern.
z Sistemele discrete din biblioteca Simulink au doua caracteristici de
baza:
z

Blocuri care conin parametrii ce pot fi setai pentru a defini timpul de


eantionare (de ex. blocurile sine wave sau pulse generator). Aceste
blocuri pot fi gsite in biblioteca Sources sau Discrete.
Blocuri care pot primi timpii de eantionare de la alte blocuri conectate
ca marimi de intrare ale acestora.
161

Modelarea si simularea sistemelor discrete (2)


z

Facilitatea setrii timpului de eantionare a unui bloc permite


modelarea sistemelor care conin att componente discrete
care funcioneaz la diferite rate de eantionare cat si sisteme
hibride care conin att componente continue cat si
componente discrete.
Timpul de eantionare al unui bloc nu poate fi modificat in
timpul unei simulri. Daca se dorete modificarea acestuia
simularea trebuie oprita iar dup modificarea parametrului
respectiv se poate reporni simularea pentru a avea efect.
In continuare se prezint un exemplu in care blocul integrator
cu timp discret (Discrete-Time-Integrator) va genera la ieire
tot un semnal discret deoarece are ca mrime de intrare un
bloc analogic care genereaz un semnal continuu (blocul
constant cat si blocul gain sunt mrimi analogice) care nu-i
162
modifica parametrii interni (timpul de eantionare).

Simularea sistemelor discrete

163

Discretizarea modelelor
z

z
z

Prin discretizarea unui model se nelege nlocuirea


blocurilor continue ale modelului cu blocuri discrete
echivalente, utiliznd o anumit metod de discretizare
(Tustin, zoh etc).
Simulinkul poate discretiza un model existent, utiliznd o
fereastr grafic interactiv (GUI), prin accesarea
meniului
toolsmodel discretizer.
Aceast metod (GUI) de discretizare permite automat
identificarea blocurilor continue ale modelului existent.
Urmtorul pas const n modificarea parametrului intern
sample time (de la Ts=0 la Ts>0) al blocului respectiv
pentru ai da acestuia caracter discret.
Discretizarea modelelor reprezint un pas important n
proiectarea regulatoarelor (filtrelor) digitale i este foarte
util pentru simularea sistemelor de control n bucl
164
deschis i cu bucl de reglare (SRA, acionare electric
etc).

Figura de mai jos ne arat cum se poate discretiza un model liniar


existent prin utilizarea interfeei 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 situaie, 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.
Diferena principal ntre cele dou tipuri de
regulatoare const n faptul c sistemele digitale
opereaz cu semnale discrete (discretizate cu un
timp/perioada de eantionare).
Proiectarea unui sistem discret implic, n prima faz,
discretizarea/conversia blocurilor continue iar apoi
obinerea unui model discret echivalent, implementat
prin fdt sau prin mrimi de stare.
2 z 1
s=
Ts z + 1

166

Modelarea i simularea sistemelor neliniare de control


z
z

Sistemele neliniare sunt acele sisteme care nu satisfac


principiul superpoziiei, adic nu sunt liniare i omogene ;
De exemplu, pentru un semnal de intrare sinusoidal, semnalul
de ieire al unui sistem neliniar (convertor static) va conine
mai multe semnale de amplitudine i faz diferite fa de
fundamental (armonici), n timp ce un sistem liniar va conine
la ieire doar o mrime sinusoidal.
Un model neliniar conine componente interne cum ar fi
sursele controlate de tensiune sau curent, condensatoare,
bobine sau elemente ce depind, de exemplu, de tensiunea
aplicat la intrare.
Elementele care au caracteristici neliniare se numesc
regulatoare sau algoritmi de reglare, i pot fi ntlnite, de
exemplu, la protecia sistemelor bazate pe scheme electrice
cu relee, n interfeele de ieire ale echipamentelor de
conducere numeric (convertoare numeric-analogice) etc.
167

Implementarea SRA cu elemente neliniare


n sistemele de reglare automat (SRA) elementele
neliniare se ntlnesc ca blocuri intermediare ntre
regulatoare i elementele de execuie.
z Blocul de saturaie modeleaz cel mai frecvent tip de
neliniaritate, deoarece, n general domeniile de variaie ale
mrimilor fizice sunt limitate (cuplurile dezvoltate de
servomecanisme i motoare electrice, puterile surselor de
alimentare, valorile absolute ale tensiunilor i curenilor
etc).
z Un sistem neliniar poate fi modelat printr-o ecuaie
diferenial de stare de forma:
z

dx
= f ( x, t ); x(0) = x0
dt

168

Sistemul de reglare automat (SRA) are n componen


un element neliniar (blocul de saturaie), utilizat
pentru limitarea semnalului de intrare al unui
servomecanism, modelat printr-o funcie de transfer
cu poli i zerouri descris de relaia:
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 saturaie) se poate realiza prin utilizarea
blocurilor Look-up-table, pentru implementarea vectorilor de
intrare-ieire, care caracterizeaz funcionarea elementelor
respective, sau prin utilizarea unui bloc neliniar din biblioteca
Discontinuities, cum ar fi: Saturation, DeadZone, Relay etc.
Dac se cunoate expresia analitic de variaie a parametrilor
(de ex. I=f(U)), modelarea elementelor neliniare se poate face
direct prin utilizarea unui bloc Fcn, n interiorul cruia se
introduce ecuaia respectiv.
Biblioteca SimPowerSystems furnizeaz o colecie vast de
modele neliniare.
170

Modelarea unei inductane variabile


z

Pentru modelarea unei inductane variabile se pleac


de la ecuaiile de definiie:
di d
u = L =
dt
dt

= u dt

i=

L()

Curentul care trece prin bobin este o funcie neliniar


a fluxului de dispersie (legtur), care depinde de
tensiunea care cade la bornele acesteia. De aceea
modelul unei inductane neliniare poate fi implementat
ca o surs controlat de curent, ca n figura:

171

Implementarea inductanei neliniare in Simulink

Pentru implementarea caracteristicii neliniare i=f() s-a


utilizat un bloc Look-up-table din biblioteca Look-up-tables a
nucleului de baz al Simulinkului, n interiorul cruia s-au
setat parametrii de intrare-ieire descrii de figura 6.28:
Vector of input values (fluxul): [-1.25 -1 1
1.25]*(120*sqrt(2)/(2*pi*60)), Vector of output values
(curentul): [-2 -1 1 2]*(120*sqrt(2)/(2*pi*60)).
172

Modelarea circuitelor electrice


z

Pentru modelarea circuitelor electrice n Simulink, se


pleac de la ecuaiile matematice de definiie obinute
prin aplicarea teoremelor i legilor din electrotehnic,
care se aranjeaz ntr-o form convenabil
implementrii, n funcie de mrimile de intrare stare
ieire (MM-ISI).
Implementarea circuitelor electrice se poate face i
prin funcii de transfer, mrimi de stare sau utiliznd
blocurile bibliotecii SimPowerSystems.
Dup implementarea schemei bloc a circuitului
electric, se seteaz corespunztor fiecare parametru
din interiorul blocului respectiv, iar apoi se alege
metoda de integrare numeric i se trece la simularea
rspunsului dinamic al circuitului.
173

Exemplul urmtor ilustreaz implementarea n Simulink a unui circuit


electric RL alimentat de la o surs de tensiune alternativ i simularea
regimului tranzitoriu precum i staionar al acestuia.

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 rspunsul treapt aplicat la t=0, dac R=1.5, L=2 i C=2.
z

Circuitele electrice pot fi implementate n Simulink mult mai


simplu prin reducerea ecuaiilor matematice la funcii de
transfer (fdt) sau la MM-ISI. Aceast metod de implementare
se poate utiliza doar atunci cnd parametrii circuitului sunt
constani.
Soluie: n ambele cazuri, un circuit electric RLC poate fi
implementat ca un sistem de ordinul doi, care este stabil pentru
valori reale pozitive ale parametrilor R, L i C. Funcia de
transfer a circuitului serie si paralel RLC utilizat ca filtru de reea
(filtru trece jos), are forma:

1/ LC
G(s) = 2
s + s R/ L +1/ LC

1/ LC
G(s) = 2
s +s1/ 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
modelrii, simulrii i analizei circuitelor electrice,
mainilor i acionrilor electrice, convertoarelor
statice i a sistemelor energetice de putere;
Biblioteca SimPowerSystems poate fi utilizat
mpreun cu biblioteca Simulink standard pentru a
construi diferite diagrame bloc prin conectarea
elementelor unui sistem dinamic (acionare electric)
cu diferii algoritmi de control n scopul studiului
diferitelor strategii de comand i efectele acestora
asupra ntregului sistem energetic de putere.
177

Caracteristicile Bibliotecii SimPowerSystems


z

z
z

Modeleaz i simuleaz circuitele electrice i


electronice utiliznd simboluri standard, cum ar fi:
rezistorul, bobina, condensatorul sau dioda, tiristoare,
tranzistoare etc;
Furnizeaz blocuri care modeleaz diferite tipuri de
maini electrice (mcc, maina de inducie, maina
sincron), convertoare statice (redresoare n punte,
invertoare);
Furnizeaz blocuri pentru modelarea unui sistem
energetic complet de putere (Transport, Distributie);
Utilizeaz metoda de discretizare a unui sistem
dinamic pentru a crete viteza de execuie a unei
simulri;
Permite diferite metode de analiz a unui sistem
(circuit electric) n vederea obinerii MM-ISI i
178
calculeaz transferul de putere.

Biblioteca SimPowerSystems(versiunea 6.5)


coninea nou biblioteci cu componente electrice i
electronice (powerlib):

179

Analiza sistemelor in SimPowerSystems(SPS)


z

z
z
z
z

Afieaza tensiunea i curentul n regim staionar (Interfaa


grafic interactiv (GUI) afieaz valorile curenilor i
tensiunilor msurate n regim staionar i toate variabilele
mrimilor de stare, incluznd curenii prin bobine i tensiunile
la bornele condensatoarelor);
Afieaza i modifica valorile iniiale ale mrimilor de stare;
Calculeaza circulaia de putere i iniializeaza parametrii unei
maini electrice;
Genereaza un raport care include calcularea mrimilor de
regim staionar.
Cu ajutorul bibliotecii SimPowerSystems se pot analiza
diferite configuraii de circuite electrice i se pot calcula
modelele matematice echivalente ale mrimilor de stare
(MM-ISI) fr sa fie necesar rularea unei simulri
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
comutaie, utiliznd att
funcii/blocuri de stare (MM-ISI)
ct i fdt/blocuri cu fdt.
Biblioteca SimPowerSystems
ofer un set de blocuri dedicate
modelrii dispozitivelor
electronice (dioda, tiristoare i
tranzistoare) i a convertoarelor
statice (redresoare i invertoare
monofazate sau trifazate n
punte) denumit Power
Electronics

181

Suplimentar aceast bibliotec mai conine dou seturi de blocuri,


Discrete Control blocks i Control blocks, avnd n componen att
blocuri dedicate controlului convertoarelor statice ct i diferitelor
configuraii de filtre i regulatoare discrete:

182

Diferite configuraii de blocuri dedicate controlului


convertoarelor statice si filtre i regulatoare discrete

183

184

185

186

187

188

Modelarea si simularea acionrilor cu MCC


z

In general un sistem electromecanic (acionare


electrica) are ca marimi de intrare - tensiunea si
cuplul mecanic rezistent, ca marimi de stare
tensiunea electromotoare indusa, curentul, fluxul,
rezistente, inductane sau capacitai, iar ca mrimi de
ieire turaia, cuplul electromagnetic sau poziia.
Etapele de modelare si simulare ale ME sunt:

Stabilirea variabilelor independente si asociate;


Stabilirea funciilor de stare (relaiile dintre mrimi);
Scrierea ecuaiilor de definiie;
Rezolvarea ecuaiilor (prin metode analitice si numerice);
Implementarea modelului matematic;
189
Simularea diferitelor regimuri de functionare.

Modelarea MCC cu excitaie separata


z

MCC cu excitaie separata se poate utiliza ca


servomotor, controlul miscarii realizndu-se att prin
indus (rotor) cat si prin infasurarea de excitaie.
Reglajul prin indus utilizeaz ca semnal de comanda
tensiunea la bornele masinii (Ua) la un flux sau
curent de excitaie constant (IE=ct, =ct), iar reglajul
prin excitaie reprezint variaia curentului din
infasurarea de excitaie cu tensiunea din indus
constanta (Ua=ct).
Ecuaiile de definiie ale MCC (modelul matematic al
masinii) cu excitaie separata se utilizeaz frecvent
in analiza sistemelor de reglare automata (SRA).
Pentru a modela o maina de curent continuu
(MCC) se pleac de la ecuaia volt-amper si de la
ecuaia de micare.
190

dIa
Ua = Ia RT + La
+Ue
dt
d
M em M R = J
dt
t

1
Ia(t) = (Ua Ia RT Ue)dt+Ia(0)
La 0

Ue = ka
Mem = ka Ia
t

1
(t ) = (M em M R ) dt + (0)
J0
191

Implementarea MM al MCC in
Simulink

192

Simularea pornirii in sarcina a unei MCC

193

Implementarea MCC cu excitaie separata lund in


considerare constantele de timp ale mainii

Pentru a simplifica implementarea modelului matematic al MCC


cu excitaie separata si pentru a evidenia mrimile de intrare
ieire ale modelului, ecuaiile de definiie pot fi exprimate in
unitati relative (u.r.) si implementate in Simulink prin utilizarea
blocurilor Fcn, din libraria User-Defined Functions.
In exemplul urmtor se prezint implementarea modelului
matematic al MCC cu excitaie separata lund in calcul si
constantele de timp ale mainii si avnd parametrii exprimai
in u.r.:
Exemplul : Sa se implementeze MM al MCC cu excitatie
separata, cu parametrii exprimai in u.r. si avnd ca mrimi de
intrare: tensiunea indusului-ua, tensiunea aplicata infasurarii de
excitatie-ue si cuplul rezistent la arborele masinii-Mr, iar ca
mrimi de ieire: 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 ncrcare si
modificarea turaiei prin slbire de cmp, reprezentnd grafic
mrimile de ieire ale sistemului, stiind ca Ta=0.1, TE=0.1 si194
Tm=0.3.

La
J Ra
LE
Ta =
;TE =
;Tm = 2 2
Ra
RE
k

di a
1
=
(u a i a i E
dt
Ta
di E
1
=
(u E i E
dt
TE

d
1
=
(i a i E M
dt
Tm

195

196

Modelul matematic al MCC implementat


prin funcii de transfer
z

Modelul matematic al MCC poate fi implementat in


Simulink si prin funcii de transfer (fdt) utiliznd
Transformata Laplace
S-a notat cu ke-constanta corespunztoare tensiunii
mainii, cu km-constanta cuplului mainii. In SI cele
doua constante sunt numeric egale, dupa cum
rezulta si din ecuaiile puterilor electrica si mecanica
(Pe=Pm).
Lund in considerare si constantele de timp electrice
(Ta, TE) si mecanica (Tm) si notand kM=km* si
kE=ke*, se pot obine funciile de transfer ale
modelului matematic al MCC, corespunztoare
197
reglajului prin indus si excitaie:

U a ( s ) = I a ( s ) (R a + s L a ) + U e ( s )
U e (s) = ke (s)

F ( s ) = f (t ) e st dt

M em ( s ) = k m I a ( s ) = I E ( s ) I a ( s )

M em ( s ) = M R ( s ) + J ( s ) s
U E (s) = (RE + s LE ) I E (s)

kM
1
(s)
|MR (s)=0 =
H1(s) =
=
Ua (s)
s J (Ra + s La ) + kM kE kE s2 Tm Ta + s Tm +1

Ra + s La
kM (1+ s Ta )
(s)
H2 (s) =
|Ua (s)=0 =
= 2
MR (s)
s J (Ra + s La ) + kM kE s Tm Ta + s Tm +1

k E k a (1 + s T a )
(s)
H 3 (s) =
|U a ( s ) = 0 =
U e (s)
(1 + s T E ) 1 + s T m + s 2 T m T a

H 4 (s) =

kM
(s)
| I a ( s )=0 =
(1 + s T m ) (1 + s T E )
U e (s)

198

z
z

Exemplu: Sa se modeleze un servomotor de CC cu


magneti permaneni prin fdt.
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.

Ra +sLa
kM
(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 frnarea dinamica


z

Pornirea MCC se poate realiza prin:


conectarea directa la reea,
modificarea tensiunii de alimentare (cresterea progresiva prin trepte de
tensiune sau prin alimentarea prin convertoare statice)
cu rezistoare (rezistenta se modifica in trepte).

Frnarea MCC poate fi:


recuperativa,
dinamica (reostatica)
in contracurent (conexiuni contrare).

z
z
z

Exemplul urmtor va prezenta o pornire a MCC cu excitaie


separata cu un starter rezistiv si o frnare dinamica.
La pornirea cu rezistoare rezistenta se va modifica in trei
trepte pana cnd maina va ajunge la turaia nominala.
Franarea dinamica (reostatica) se realizeaz prin
deconectarea indusului (rotorului) de la reea si conectarea lui
peste un rezistor.
202

203

204

205

Acionri reversibile cu MCC cu excitatie separata


si redresoare comandate
z

O acionare electrica reversibila trebuie sa asigure


funcionarea, cel puin in regim de motor, in ambele
sensuri de rotaie.
Daca maina de curent continuu este alimentata
printr-un redresor comandat, care furnizeaz ambele
polariti ale tensiunii redresate medii, MCC poate
funciona att in regim de motor cat si in regim de
frn recuperativ, caz in care convertorul devine
invertor.
MCC funcioneaz ca motor in cadranul 1 al
caracteristicii mecanice (Mem=f()) iar ca frn
recuperativa in cadranul 4.
Frnarea recuperativa (generator pe reea) se
realizeaz atunci cnd Ue>Ua si Ia=-Ia iar turaia este
206
mai mare dect valoarea nominala de mers in gol.

Schema de reglare a vitezei (turatiei) acionrii electrice


reprezint un sistem de reglare automata (SRA) cu bucla
nchis de reglare, care include si o bucla de reglare a
curentului din indus
MCC cu excitaie separata va funciona att in regim de motor
cat si in regim de frn recuperativa, fiind alimentata de la un
convertor bialternan (redresor in punte) de patru cadrane
prin care se regleaz tensiunea de alimentare a indusului
masinii

207

Schema bloc de reglare implementata in Simulink

208

Simularea reg. de motor si frn recuperativ a unei


actionri reversibile cu MCC si redresor comandat

209

Reglarea vitezei unei MCC utiliznd


controlul in cascada
z

Reglarea vitezei (turaiei) sau a poziiei unui


servomotor de curent continuu se poate realiza ca in
figura urmtoare.
Schema bloc din figura urmtoare este o schema de
reglare a turaiei in cascada avnd o bucla interna
de reglare a cuplului electromagnetic sau a
curentului din indus. Regulatoarele de turaie si de
cuplu pot fi de tip PI, cel mai frecvent, sau de tip
PID.
In acest caz maina de curent continuu este
alimentata printr-un convertor de cc-cc (chopper),
care poate conine un tiristor GTO in paralel cu o
210
dioda.

Schema bloc de reglare a turaiei in cascada


utiliznd o bucla interna de reglare a cuplului
electromagnetic

211

212

213

214

215

Final Conclusion

216

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