+ All Categories
Home > Documents > Curs MATLAB Simulink

Curs MATLAB Simulink

Date post: 10-Nov-2015
Category:
Upload: claudiutrif
View: 698 times
Download: 63 times
Share this document with a friend
Description:
Curs pentru Matlab - simulink
216
MODELARE MODELARE Ş Ş I SIMULARE I SIMULARE Î Î N N MATLAB & MATLAB & Simulink Simulink ( ( Algoritmi Algoritmi de de simulare simulare in in Inginerie Inginerie Electrica Electrica - - ASIE ASIE ) ) Conf. dr. ing. Lucian MIHEŢ-POPA
Transcript
  • MODELARE MODELARE I SIMULARE I SIMULARE NNMATLAB & MATLAB & SimulinkSimulink

    ((AlgoritmiAlgoritmi de de simularesimulare in in InginerieInginerie ElectricaElectrica--ASIEASIE))

    Conf. dr. ing. Lucian MIHE-POPA

  • 2Cuprinsul cursuluiCuprinsul cursului parteapartea IIz Introducere in MATLAB & Simulinkz Instruciuni, funcii si operaii de baza ale

    MATLABuluiz Crearea graficelor. Reprezentri si funcii graficez Achiziia, interpolarea si aproximarea datelor

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

    z 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

  • 3Cuprinsul cursuluiCuprinsul cursului parteapartea IIII

    z Introducere in Simulink;z Modelarea si simularea sistemelor dinamice (in timp

    continuu si discret), sistemelor si elementelorneliniare;

    z Proiectarea sistemelor de reglare automata (SRA) utilizand RG-P, PI, PID;

    z Modelarea circuitelor electrice si a filtrelor de reteasi simularea diferitelor regimuri de funcionare;

    z Modelarea si simularea masinilor electrice Metode de pornire si franare a MCC cu excitatie separata Actionari cu MCC, reglarea vitezei in cascada.

  • 4Structura prezentarii: C1 + C2Structura prezentarii: C1 + C2

    1. Introducere in MATLAB & Simulinkz Ce este MATLABul ?z Lansarea in executie. Interfata MATLAB - utilizatorz Ce este Simulinkul ?z Informatii ajutatoare ale MATLABului (Helpul online)

    2. Instructiuni, functii si operatii de baza ale MATLABului Structura programelor MATLAB: fisiere script si function Matrice si operatii matriceale Operatii si functii matematice uzuale Programarea MATLAB. Instructiuni si functii de control

    3. Crearea graficelor. Reprezentari si functii grafice Reprezentri grafice elementare Reprezentri grafice tridimensionale 3D Crearea si controlul ferestrelor grafice

  • 51.Introducere in MATLAB &1.Introducere in MATLAB &SimulinkSimulink1.1. Ce este 1.1. Ce este MATLABulMATLABul??

    z MATLABul este un pachet de programe de nalta performanta dedicat calculului numeric, reprezentrilor grafice si evalurilor tehnice.

    z 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

    z MATLABul este de fapt un sistem interactiv care a fost iniial conceput astfel incat elementul de baza cu care opereaz sa fie matricea.

    MATLAB =MATrix LABoratory

  • 61.1. 1.1. FacilitatiFacilitati aleale MATLABulMATLABuluiui

    Cele mai importante facilitai oferite de MATLAB sunt:z Calcularea, evaluarea si analiza sistemelor (circuitelor

    electrice, acionari electrice, SRA etc)z Dezvoltarea algoritmilor de controlz Achiziia, prelucrarea si analiza datelorz Simulare, modelare, programarez Vizualizare, reprezentare grafica si animaiez Dezvoltarea unor aplicatii, bazate pe interfee grafice

    interactive (GUI)z Analiza si proiectarea sistemelor de reglare si

    conducere

  • 71.1. 1.1. BiblioteciBiblioteci MATLABMATLABz 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 descrisede (Fig. 1):

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

  • 81.1. 1.1. StructuraStructura MATLABMATLABPachetul de programe MATLAB conine cinci pari

    principale:z Mediul de dezvoltare (Development Environment):

    set de toolboxuriz Biblioteca cu functii matematice (The MATLAB

    Mathematical Function Library) : sum, sine etcz Limbajul MATLAB (The MATLAB Language):

    algoritmi, functii, structuri de control a datelor sicaracteristici de programare;

    z Grafica (Graphics): functii dedicate reprezentarilorgrafice in 2D si 3D;

    z Interfata cu un program de aplicatii (The MATLAB Application Program Interface-API)

  • 91.2. Lansarea in execu1.2. Lansarea in execuie. ie. InterfaInterfaa MATLAB a MATLAB -- utilizatorutilizator

    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 (currentdirectory), fereastra de afisare a comenzilor anterioare (commandhistory) si fereastra Launch Pad care permite accesarea urmatoarelorlibrarii-MATLAB, Toolboxes, Simulink si Blocksets (Fig. 2)

  • 10

    1.3. Ce este 1.3. Ce este SimulinkulSimulinkul??z SIMULINKul este un set de programe soft dedicat modelarii, simulrii si

    analizei sistemelor dinamice.

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

  • 11

    1.3. 1.3. LansareaLansarea in in executieexecutie a a SimulinkulSimulinkuluiui

    Lansarea pachetului de programe Simulink se face din MATLAB in doua moduri:

    z prin accesarea pictogramei Simulinkz sau din fereastra de comanda

    (command window) prin scrierea cuvantului simulink.

    Pe ecranul monitorului se va afia fereastra librriei simulink (simulinklibrary 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-definedfunctions), asa cum arata si figura

  • 12

    1.3. 1.3. FacilitatiFacilitati SimulinkSimulink

    Cele mai importante facilitai pe care le ofer Simulinkul sunt:z Modelarea, simularea si analiza sistemelor dinamicez Implementarea sistemelor liniare si neliniarez 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

  • 13

    1.4. 1.4. InformatiiInformatii ajutatoareajutatoare ale ale MATLABuluiMATLABului ((HelpulHelpul onlineonline))

    z MATLABul poseda o documentatie vasta care permite obtinerea informatiilornecesare despre invatarea si utilizarea acestui pachet de programe, atatonline cat si tiparit (in format pdf).

    z Comanda help furnizeaza informatii online despre orice functie MATLAB si Simulink sau realizata de un utilizator al pachetului de programe.

    z Cu comanda help se pot obtine informatii ajutatoare despre o anumita functie, se pot lista fisierele dintr-un director sau se poate lista continutulunui anumit fisier.

    z Informatii specifice despre o anumita functie sau despre un director se pot obtine tastand comanda help + subiect. De exemplu, tastand comandahelp elfun vom obtine informatii despre toate functiile matematice elementare: functiile trigonometrice (sin, cos), exponentiale (exp, log), complexe (real, imag).

    z Daca subiectul este un director helpul afiseaza fisierele continute in acesta.z Se pot scrie helpuri (linii cu informatii ajutatoare) pentru fisierele MATLAB

    (M-file) sau pentru toolboxurile proprii construite de utilizator.

  • 14

    2. 2. InstructiuniInstructiuni, , functiifunctii si si operatiioperatii de de baza ale baza ale MATLABuluiMATLABului

    z MATLABul este un limbaj de expresii. Expresiile tiparite de utilizator sunt interpretate si evaluate. Instructiunile MATLAB sunt de cele mai multe ori de forma : variabila = expresie

    z Daca numele variabilei si semnul = sunt omise, MATLABul creeaza automat o variabila cu numele ans (Fig. 4) in care este returnat rezultatul unui calcul, ca in exemplul urmator:

    z Tastand urmatoarea secventa (operatie matematica) in fereastra de comanda20 2 * 5

    z MATLABul va returna urmatorul raspuns: ans = 10z Orice instructiune sau linie de instructiuni este terminata cu enter. Utilizand tasta enter se

    trece la urmatoarea secventa de linie.z Daca ultimul caracter al liniei este punct-virgula ; , instructiunea este executata dar nu se

    tipareste nimic in fereastra de comenzi (command window).z MATLABul utilizeaza pentru reprezentarea numerelor, in notatia zecimala conventionala,

    punctul zecimal. De exemplu 0.15 = 0,15 sau 1.5021e-6 = 1,5021 * 10-6.

  • 15

    z 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:6va genera un vector linie coninnd numerele de la 1 la 6 avand incrementul

    unitate. MATLABul va genera rezultatul:

    t1 = 1 2 3 4 5 6z 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.00005.0000 4.80000 4.60000 4.40000 4.20000 4.0000

    z MATLABul are cateva variabile speciale predefinite. Acestea nu pot fi declarate si sunt accesibile global in orice fisier-M (M-file) si includ:

    i, j, pi=, inf= si NaN=Not-a-Number (0/0);z Ambele variabile i si j au aceeasi valoare si sunt folosite pentru a genera

    numerele complexe, ca in exemplul urmator: z=3+4*j.

    Va returna z = 3.0000 + 4.0000i

  • 16

    2.1. Structura programelor MATLAB2.1. Structura programelor MATLABz 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.

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

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

    z 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, posibilitatea scrierii de noi proceduri.

  • 17

    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

    cd Returneaza sau schimba directorul curent

    whos Listeaza variabilele curente din memorie, dimensiunile lor si tipul acestora

    dir Listeaza continutul directorului curent

    deleteSterge fisierul precizat de pe disc

    which +nume fisier Returneaza calea in care este localizat fisierul

  • 18

    2.1.1. Fi2.1.1. Fiiere iere scriptscript

    z Un fiier script este un fiier extern ferestrei de comenzi fiind plasat in directorul curent si care conine o secvena de comenzi MATLAB

    z Fiierele script sunt cele mai simple fiiere-m (cu extensia .m) deoarece ele nu au nici mrimi de intrare nici de ieire.

    z Dup execuia unui fiier script, variabilele cu care acesta a operat raman stocate in spaiul de lucru (workspace).

    z Fiierele script lucreaz cu date existente din workspace. De asemenea, ele pot crea date noi cu care sa opereze.

    z Daca avem mai multe fiiere intr-un director este de dorit sa includem cteva comentarii (explicative) la nceputul fiecrui fiier creat.

  • 19

    2.1.1. 2.1.1. FisiereFisiere scriptscript. . ExempluExempluz 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.

    z 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.4472Faza = -0.4636

    z Scriind comanda help amplitudine in fereastra de comenzi, MATLABul ne va afisaurmatorul text: -amplitudine.m: exemplu de fisier script pentru calcularea amplitudinii si fazei lui G pentru w=1.

  • 20

    2.1.2. 2.1.2. FisiereFisiere functionfunctionz Daca prima linie a unui fiier M conine cuvntul function, fisierul respectiv este

    declarat ca fiier funcie.z 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.

    z Un fiier funcie difer de unul script prin faptul ca poate lucra cu argumente (secvente ale functiei: intrri - ieiri).

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

    function printresults(x)

  • 21

    2.1.2. Fi2.1.2. Fiiere iere functionfunction. . ExempleExemplez Structura unui fisier function poate conine instruciuni (comenzi) MATLAB

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

    z Exemplul 2. Sa se scrie un program MATLAB de tip function care sa calculeze media aritmetica a unui vector x.

    z 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

  • 22

    2.1.2. Fi2.1.2. Fiiere iere functionfunction. . ExemplExempleez Exemplul 3: Sa se scrie un fisier function care sa calculeze rezistenta

    echivalenta a unor rezistoare conectate in serie.

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

    function Re = echivalent(R)

    z % 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 rezistoarelorRe = sum(R); %rezistenta echivalenta

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

    z Rezultatul obinut va fi:Rserie = 66

  • 23

    2.2. 2.2. MatricMatricee si operasi operaii ii matricmatriceealealez MATLABul lucreaz cu scalari, vectori si matrice. z 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).z 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.

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

    z De exemplu operatorul de nmulire a doua matrice A si B se simbolizeaz in cazul tablourilor prin A .* B

    z 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

  • 24

    2.2. Matrice si opera2.2. Matrice si operaii ii matricmatriceealealez 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

    z 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 In ambele cazuri se returneaz:A =

    1 2 34 5 67 8 9

    z Pentru a determina dimensiunea unei matrice A si lungimea acesteia se utilizeaz functiile MATLAB size (A) si length (A).

    z Suma matricei A se calculeaza cu comanda sum(A), si se obine rezultatul: ans = 12 15 18

    =

    987654321

    A

  • 25

    2.2.1. Calcule cu 2.2.1. Calcule cu matricmatricee. Generarea . Generarea matricmatriceelorlor

    z MATLABul ofera un set de functii pentru utilizarea matricelor.z Calculul determinantului unei matrice se face cu functia det, iar a inversei

    unei matrici cu functia inv.z Daca dorim sa adugam o noua linie unei matrice, de exemplu matricei B,

    acest lucru se poate realiza tastnd comanda: B = [B; [5 6]];

    z De asemenea, MATLABul ofer si facilitatea de a extrage o submatricedintr-o matrice, sau de-a transforma o matrice intr-un vector.

    z In cazul selectarii liniilor sau coloanelor se folosesc urmatoarele sintaxe: A(:, n) - selecteaza coloana n a matricei A A(m,:) - selecteaza linia m a matricei A(:) - selecteaza toate elementele matricei A, privite ca o singura

    coloana.z Utilizand functia eye, care se apeleaza cu una dintre sintaxele:

    I=eye(n), I=eye(m, n) sau I=eye(size(nume_matrice)) se poate genera matricea identitate (matricea cu elementele de pe diagonala

    principala egale cu unu, iar toate celelalte elemente zero).z Functia linspace genereaza un vector cu pas liniar iar functia logspace

    genereaza un vector cu pas logaritmic.

  • 26

    2.2.1. Calcule cu 2.2.1. Calcule cu matricmatricee. Generarea . Generarea matricmatriceelorlorz 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 utilizeazacomanda inv. 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]; I = inv(Z)*U;

    z MATLABul genereaza urmatorul rezultat:I = -3.6491

    1.28071.4737

    z Ceea ce inseamna ca I1 = -3.6491 A, I2 = 1.2807 A si I3 = 1.4737 A

    =

    2012912156963

    Z

  • 27

    2.2.1. Calcule cu matrice. Generarea matricelor2.2.1. Calcule cu matrice. Generarea matricelorz 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

    z 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 00 0 0 0

    N=0.6353 0.0860 -0.3210 -1.2316-0.6014 -2.0046 1.2366 1.05560.5512 -0.4931 -0.6313 -0.1132-1.0998 0.4620 -2.3252 0.3792

  • 28

    2.2.2. Generarea vectorilor2.2.2. Generarea vectorilorz 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 decatvaloarea maxima, iar daca pasul < 0, atunci valoarea minima este mai mare decat valoarea maxima:

    X1 = -5 : 0.5 : 5; X2 = 5 : -2 : -5z 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:

    x = 0.0100 0.1000 1.0000 10.0000 100.0000

  • 29

    2.3. Opera2.3. Operaii si funcii si funcii matematice uzualeii matematice uzuale

    z Pachetul de programe MATLAB conine numeroase functii pentru operatiimatematice 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.

    help elfun

  • 30

    2.3.1. Numere complexe2.3.1. Numere complexe

    z Numerele complexe sunt introduse in MATLAB utiliznd variabilele i si j;

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

    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.

    z Funcia real returneaz partea reala a numrului complex, iar imag returneaz partea imaginara.

  • 31

    2.3.1. Numere complexe2.3.1. Numere complexe. . ExempleExempleExemplul : Sa se calculeze amplitudinea si faza unei impedane (Z) de intrare a unui circuit, tiind ca:

    ( )( ) 030429

    8465 ++=

    jjjZ

    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 ZZ_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

  • 32

    2.3.2. Func2.3.2. Funciile putere, radical, logaritm si exponeniile putere, radical, logaritm si exponenialaiala

    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)

    z Functia exp calculeaz exponeniala (ex)z Functia log si log10 calculeaza logaritmul natural (ln) si

    zecimal (lg)z Functia sqrt calculeaz radicalul de ordinul 2 dintr-un numrz Calculul radicalului de ordinul 2 dintr-un numr ( ), poate

    utiliza functia putere sau funcia radical, apelata cu sintaxa sqrt (9).

    z Obs: Argumentul acestor funcii poate fi o matrice, caz in care se opereaz element cu element, sau poate fi un numr complex.

    9

  • 33

    2.3.3. Func2.3.3. Funcii trigonometriceii trigonometrice

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

    Principalele funcii trigonometrice

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

  • 34

    2.3.4. Calcule numerice cu polinoame2.3.4. Calcule numerice cu polinoame

    z In MATLAB polinoamele sunt reprezentate ca un vector linie care conine coeficienii in ordine descresctoare.

    z De exemplu polinomul g(x)=x4 + 2x2 + 0.5x - 6 este reprezentat in MATLAB prin vectorul:

    g = [1 0 2 0.5 -1].z 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.

  • 35

    Programarea MATLAB. Programarea MATLAB. InstrucInstruciuni si funciuni si funcii de controlii de control

    z Programele MATLAB sunt scrise pentru a realiza pai secveniali, operaiile fiind realizate una dup alta.

    z In multe cazuri, insa, este necesara repetarea unui set de instruciuni atta timp cat o condiie este realizata si pentru alt set de instruciuni.

    z Uneori este necesara repetarea unui grup de instruciuni de un anumit numr de ori.

    z Instruciunile cu ajutorul crora se poate realiza acest lucru sunt for si while.

  • 36

    InstructiuniInstructiuni si si functiifunctii de controlde controlz 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.

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

    z Instructiunea if poate fi implementata simpla sau poate include si clauzele elsesau elseif. Forma generala a unei instruciuni if este urmtoarea:

    if expresie_logicagrup_de_instruciuni

    endz 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_logicagrupul_de_instructiuni A

    elsegrupul_de_instructiuni B

    end

  • 37

    InstrucInstruciuneaiunea forforz 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_instruciuniend

    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;

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

    for k = initial : pas : finalz bucla se executa de:

    N = [(final-initial) / pas] + 1- daca N este pozitiv, si nu se executa daca N este negativ.

  • 38

    InstructiuneaInstructiunea for. for. ExempleExemple

    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)

    endSe afiseaza rezultatul:

    Nr. var1 var21 5 22 20 43 45 84 80 16

  • 39

    InstructiuneaInstructiunea forfor. Exemple. 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:10x(m) = m^2;

    enddisp(x)

    In exemplul anterior numrul de iteraii a fost controlat de var. m.

  • 40

    Descrierea Descrierea instructiuniiinstructiunii whilewhilez Instruciunea while se utilizeaz pentru repetarea unui set

    de instruciuni, atta timp cat o condiie specificata este adevrata.

    z Forma generala a acestei instructiuni este urmatoarea:

    while expresiegrup_de_instructiuni 1

    endgrup_de_instructiuni 2

    z Grupul de instruciuni 1 se executa cat timp expresieeste 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.

  • 41

    IInstructiunnstructiuneaea whilewhile. . ExempleExempleExemplu: 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

  • 42

    InstrucInstruciuni de intrare / ieiuni de intrare / ieireirez MATLABul conine instruciuni (comenzi) despre anumite

    mrimi de intrare din fereastra de comenzi si despre datele de ieire.

    z Instruciunea input transmite instantaneu un mesaj scriscatre utilizator, apoi asteapta introducerea marimii de intrarede la tastatura (R=input(expresie MATLAB));

    z Instruciunea return comanda ieirea din fiierul-m ctre funcia care la apelat sau ctre tastatura.

    z Instruciunea error permite afiarea unor mesaje la ntlnirea unei erori. Se apeleaza cu sintaxa:

    error (mesaj)z 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 ciclurilorfor si while.

    z disp - Afieaz un text sau o matricez fprintf - Afieaz texte si matricez pause - Cauzeaz oprirea executrii unui fisier-M

  • 43

    VectorizareaVectorizarea calculelorcalculelorz 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.

    z 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 uniformay = zeros(1,100); % genereaz o matrice cu toate elementele zero de la 1 la 100

    for i = 1:100y(i) = det(x(i)^(i-1));

    endz 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 prealocat acest pas este eliminat si execuia este mai rapida.

  • 44

    2.4.3. 2.4.3. VectorizareaVectorizarea calculelorcalculelor. . ExempleExempleEx. 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));

    endplot(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 orimai mare dect cel de-al doilea.

  • 45

    3. 3. Calcul grafic. ReprCalcul grafic. Reprezentri si funcezentri si funcii graficeii grafice

    z MATLABul furnizeaz un set de tehnici pentru reprezentarea graficaz Detine numeroase funcii grafice si ofer diferite facilitai pentru tiprirea si exportul

    fiierelor de date ;z 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;

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

    z 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

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

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

  • 46

    Reprezentri si funcReprezentri si funcii graficeii graficez 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.

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

    z Daca x este un vector, iar y o matrice, atunci coloanele lui y sunt trasate functiede vectorul x y = f(x);

    z Daca x e un numr complex, atunci plot (x) este echivalent cu plot(real(x),imag(x));

  • 47

    Reprezentri si funcReprezentri si funcii graficeii grafice. . ExempleExemple

    z De exemplu, daca x=[0 3.7 6.1 6.5 5.8 3.6]; Comanda plot(x) va genera

    graficul din figura ;z Daca x si y sunt 2 vectori de

    aceeai lungime, comanda plot(x, y) va trasa grafic elementele lui x (axa-x) funcie de elementele lui y(axa-y).

  • 48

    Reprezentri si funcReprezentri si funcii graficeii grafice. . ExempleExemple

    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.

    z Rezolvare: Se scrie un fisier script, sau urmtoarea secvena MATLAB in fereastra de comenzi (commandwindow):

    t = 0:0.05:4;y = 6 * exp(-2 *t);

    plot (t, y)

    z title ( Raspunsul unui circuit RC ) % tipareste titlul graficuluiz xlabel(Timpul (s))% tipareste numele variabilei axei xz ylabel(Tensiunea (V)) % precizeaza parametrul (variabila) axei yz grid %traseaza o retea de linii pe grafic

  • 49

    Reprezentri si funcReprezentri si funcii graficeii grafice. . ExempleExemple

    z 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 timpu = 10*cos(377*t);

    a_rad=(60*pi/180); %unghiul de faza in radianii=5*cos(377*t + a_rad);

    plot( t, u, t, u,*,t, i, t, i,o ), gridtitle(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)) Fig. Reprezentarea grafic a tensiunii si curentului unui circuit RLin regim stationar sinusoidal.

  • 50

    Reprezentarea grafica in coordonate Reprezentarea grafica in coordonate llogaritmiceogaritmice si polaresi polare

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

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

  • 51

    Reprezentarea grafica in coordonate logaritmiceReprezentarea grafica in coordonate logaritmice. . ExempluExemplu

    z 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 operationalf = [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))

  • 52

    3.1.2. Func3.1.2. Funcii pentru generarea graficelor. ii pentru generarea graficelor. Reprezentri grafice specialeReprezentri grafice specialez MATLABul conine o familie (set) de functii pentru generarea graficelor. Cele mai

    importante dintre ele sunt descrise in tabelul 10 (pg. 36).z 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 functiecreeaza 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.

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

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

    z Functia mesh - Traseaza grafic o retea sub forma de plasa;z Functia fplot genereza un grafic cu anumite restrictii intre limite specificate. Se

    apeleaza cu una dintre sintaxele urmatoare: fplot(fun, limite), fplot(fun, limite, n), fplot(fun, limite, n, unghi).

  • 53

    3.1.2. Func3.1.2. Funcii pentru generarea ii pentru generarea graficelorgraficelor. . ExempleExemple..

    z Ex. 20: Sa se reprezinte graficul in trepte al functiei y=sin(x).

    z Rezolvare: Cu urmatoarea secventa MATLAB se obtine graficul din figura 12:

    x=0:.2:6; y=sin(x); stairs(x, y);

    z Functia compass reprezinta grafic vectori cu originea in originea sistemului de coordonate. Se apeleaza cu una din sintaxele:

    compass(z) sau compass(x, y),z unde z este numarul complex z z = x + iy, iar x si y sunt numere reale

    (proiectia vectorului pe abscisa si ordonata).z Ex. 21: Sa se reprezinte grafic vectorii z1=2-5i

    si z2=3+2i.z Solutie: Cu secventa urmatoare se obtine

    graficul din figura:z=[2-5*i,3+2*i]; compass(z);grid

  • 54

    3.1.2. Func3.1.2. Funcii pentru generarea ii pentru generarea graficelorgraficelor. . ExempleExemple..

    z Ex. 22: Sa se scrie un fisierfunction 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 fisierfunction 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

  • 55

    3.1.3. 3.1.3. Reprezentri grafice cu axe multipleReprezentri grafice cu axe multiple

    z 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 functiafunction1(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 scalare proprie pentru fiecare axa (exemplul 24).

  • 56

    3.1.3. 3.1.3. Reprezentri grafice cu axe Reprezentri grafice cu axe multiplemultiple. . ExempluExemplu

    z Ex. 23: Sa se reprezinte pe acelasi grafic, tiparind axa y pe ambele parti, doua functiimatematice (exp si sin) utilizand comanda plotSolutie: Se scrie un fisier script cu urmatoareasecventa:

    z x = 0:0.01:20; y1 = 200 * exp(-.05 * x).*sin(x);z y2 = 0.8 * exp(-0.5 * x).*sin(10*x);z [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

    z set(get(AX(1),'ylabel'),'String','Axa-y partea stanga')

    z %comanda de inscriptionare a axei y din stangaz set(get(AX(2),'ylabel'),'String','Axa-y partea

    dreapta') z %comanda de inscriptionare a axei y din dreaptaz xlabel('0 la 20 \ musec'),title('Graficul este

    inscriptionat cu axa y pe ambele parti')z %comenzi % pentru inscriptionarea titlului si a axei x

  • 57

    3.2. 3.2. Reprezentri grafice tridimensionale Reprezentri grafice tridimensionale (3D)(3D)z Functia MATLAB plot3 este o functie analoaga functiei plot cu

    diferenta ca reprezinta grafic linii si puncte intr-un spatiutridimensional (3D).

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

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

    z Functia mesh (Fig. 19) reprezinta grafic suprafete 3D sub forma unor retele, functia meshc reprezinta grafic combinatia suprafata3D / 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.

    z Reprezentarea grafica a suprafetelor se realizeaza utilizandcomanda surf iar functia surfc genereaza un grafic tridimensional cu liniile de nivel proiectate pe planul bazei. Aceste reprezentarigrafice 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.

  • 58

    3.2. 3.2. Reprezentri grafice Reprezentri grafice 3D3D. . ExempleExemple

    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.

    z Soluie: Cu secvena urmtoare se obine graficul din figura:

    t = 0 : pi / 50 : 10*pi;plot3(sin(t), cos(t), t)

  • 59

    3.2. 3.2. ReprezentariReprezentari grafice 3Dgrafice 3D. . ExempleExemplez Ex. 26: Sa se reprezinte grafic intr-un spatiu

    3D trei matrici coloana (X, Y si Z) utilizandfunctia mesh.

    z Solutie: Se scrie un fisier script cu secventaurmatoare, 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 onz Ex. 27: Sa se reprezinte grafic functia

    Z=X*exp(-X2-Y2) ca suprafata mesh, meshasociata cu linii de contur (meshc) si ca suprafata cu plan de referinta (meshz).

    z Solutie: Cu secventa urmatoare se obtinreprezentarile 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)

  • 60

    3.3.3.3. Crearea si controlul ferestrelor graficeCrearea si controlul ferestrelor graficez MATLABul are doua ferestre grafice de baza: o fereastra de

    comanda si o fereastra grafica ;z Fereastra grafica poate fi impartita in mai multe ferestre ;z MATLABul ofera facilitatea de-a putea compara mai multe figuri

    sau grafice prin crearea, de exemplu, mai multor grafice in ferestre diferite pe aceeasi figura.

    z Functia subplot creeaza si controleaza ferestrele unui grafic si poate fi apelata cu una din sintaxele:

    subplot(m, n, p) sau subplot(h).z Functia subplot(m, n, p) mparte ecranul intr-o matrice [m x n],

    creeaz axele in subfereastra p si returneaza identificatorul de control al noilor axe.

    z Argumentele m, n si p trebuie sa fie numere intregi in intervalul (1, 9). Scalarul m precizeaza in cate subferestre se imparte fereastra pe verticala, iar n specifica impartirea ferestrei pe orizontala.

    z De exemplu comanda subplot(324) creaza sase ferestre intr-o figura (imparte o figura in 6 ferestre) si creaza a patra fereastra ca reprezentare grafica curenta

  • 61

    3.3.3.3. Crearea si controlul ferestrelor graficeCrearea si controlul ferestrelor grafice. . ExempluExemplu

    z 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 coloanasubplot(2, 2, 3), plot(x, w)

    % creaza a treia fereastra pentru functia tan(x) %pe a doua linie si prima coloana

  • 62

    4. Achizi4. Achiziia, interpolarea si aproximarea dateloria, 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.

  • 63

    4.1. 4.1. ImportulImportul sisi exportulexportul fisierelorfisierelor de datede date

    z MATLABul furnizeaz mai multe modaliti de a importa sau exporta fiiere de date din / n fereastra de lucru (workspace);

    z Formatul datelor poate fi text, binar sau standard;z 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;z Formatul binar reprezint imagini, sunete sau alte informaii;z 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);

    z Cea mai simpla metod, de a importa fiiere de date, utilizeaz editorul Import Wizard;

  • 64

    4.2. Prelucrarea datelor si calcule statistice4.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).z 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.

  • 65

    In tabelul urmtor se prezint principalele funcii MATLAB dedicate prelucrrii datelor si calculelor statistice.

    Functia Descrierea functieimin, 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

  • 66

    Prelucrarea datelor si calcule statisticePrelucrarea datelor si calcule statistice. . ExempluExempluz Datele eronate sau cele care nu ndeplinesc o anumita condiie, impusa

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

    z 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 1dist = abs(A e * m);

    mcond=dist

  • 67

    Derivarea si integrarea numerica a funcDerivarea si integrarea numerica a funciiloriilor

    z 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

  • 68

    Calculul numeric al integraleCalculul numeric al integraleii

    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.

  • 69

    FunctiileFunctiile MATLAB pentru integrare numericaMATLAB pentru integrare numerica

    z Functiile quad si quad8 se apeleaza cu sintaxele:quad(f, a, b), quad(f, a, b, tol), quad(f, a, b, tol, trace)

    z In care f este numele unui fisier functie care descrie functiaf(x), a si b sunt limitele de integrare, tol eroarea relativa admisa dintre 2 pasi consecutivi si trace controleazaafisarea pe ecran a valorilor intermediare.

    z Functia trapz poate fi apelata cu una dintre cele doua sintaxe:

    Z = trapz(X, Y) sau Z = trapz(Y)z 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.

  • 70

    IIntegrarentegrare numericanumerica. . ExempleExemple

    z Ex.: Sa se calculeze integrala functiei sin(x) pe intervalul [0, ] cu un pas de integrare de / 100.

    z Solutie: Cu urmatoarea secventa se obtinerezultatul cerut:

    X = 0 : pi / 100 : pi; Y = sin(X);Z = trapz(X, Y)

    z Se obtine rezultatulZ = 1.9998

  • 71

    z Ex. : Utiliznd regula lui Simpson si metoda trapezelor sa se calculeze integrala funciei y = sin(x) pe intervalul [0 - ].

    z Solutie: Se scrie un fisier m script cu secvena:

    z %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 + 1if k==1 | k==2*N+1

    w(k) = 1;elseif rem(k, 2)==0

    w(k) = 4;else

    w(k) = 2;endend

    z Intsimp = ((b-a) / (3*length(x)-1)) * sum(y .* w)z Inttrapz = trapz(x,y)

    z Se obtine rezultatul: Intsimp = 1.8464 Inttrapz = 1.9742

  • 72

    FunctiaFunctia MATLAB pentru derivareMATLAB pentru derivare

    z Functia MATLAB pentru derivare este diff si poate fi apelata cu sintaxele:

    Y = diff(X) sau Y = diff(X, n) sau Y = diff(X, n, dim)z daca X este un vector linie sau coloana, X = [x(1), x(2),...,

    x(n)], atunci functia diff(X) va returna vectorul diferentelorelementelor adiacente, adica XD = [x(2)-x(1), x(3)-x(2),..., x(n)-x(n-1)];

    z daca X este o matrice atunci diferentele se calculeaza pe fiecare coloana prin scaderea elementului din linia imediat urmatoare (superioara):

    Unde m reprezinta nr. de linii.:),1:1(:),:2()( = mXmXXdiff

  • 73

    DerivareaDerivarea numericanumerica. . ExempleExemplez 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:

    -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 1W =

    4 -3 2 4 3

    )(/).( XdiffYdiffdy =

  • 74

    DerivareaDerivarea numericanumerica. . ExempleExemple

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

    function dY = diffn(X, n)dY = X;

    for i = 1:ndY = diff(dY);

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

  • 75

    Derivarea si integrarea Derivarea si integrarea ecuatiilorecuatiilor diferentialediferentiale

    z O ecuaie difereniala de ordinul 1 are forma:z Unde x este variabila independenta iar y este functia

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

    z Metodele numerice cele mai cunoscute, pentru rezolvarea ecuaiilor difereniale, sunt metoda Euler si metoda Runge-Kutta (ode23, ode45).

    z Aceste functii se apeleaza cu sintaxa:[x, y] = ode23(yprim,x0, xf, y0, tol, trace)

    z In care x0 si xf sunt valorile iniiala si finala a variabilei x, y0 este vectorul coloana coninnd condiiile iniiale, tol reprezint toleranta iar trace parametrii care asigura tiprirea rezultatelor intermediare.

    ),(, yxgdxdyy ==

  • 76

    IIntegrareantegrarea ecuatiilorecuatiilor diferentialediferentiale. . ExempluExemplu

    z 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, intr-un fisier script:

    [x,yn] = ode23(g1, 2, 4, 0.5); %sol. numerica

    ya = x.^3 - 7.5; %solutia analiticaplot(x, yn, *, x, ya); grid

  • 77

    4.3. Interpolarea si aproximarea datelor4.3. Interpolarea si aproximarea datelor

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

  • 78

    FFunctiileunctiile MATLAB pentru interpolarea si aproximarea datelorMATLAB pentru interpolarea si aproximarea datelor..

    Functia Descrierea functiei

    table1, table2 Interpoleaza liniar si citeste datele din tabeleuni 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

  • 79

    Interpolarea Interpolarea functiilorfunctiilor de o singura variabilade 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.

    z 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 yieste vectorul returnat asociat vectorului xi.

    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 situate la distante egale.

  • 80

    Pentru a sublinia diferenPentru a sublinia diferena dintre cele doua tipuri de interpolri a dintre cele doua tipuri de interpolri (liniara (liniara si spline) si spline) se prezint exemplul urmtor cu reprezentare graficase prezint exemplul urmtor cu reprezentare grafica::

    z 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

  • 81

    Aproximarea datelor prin Aproximarea datelor prin metoda celor mai mici ptratemetoda celor mai mici ptrate

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

    2).^(_ 1yysumpsum =

  • 82

    Aproximarea datelor prin Aproximarea datelor prin mmetodaetoda celor mai mici celor mai mici ptrateptrate. . ExempleExemple..

    z 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, obinndu-se 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;

    %minimizarea sumei patratelor distantelorplot(x, y1, x, y, *)

  • 83

    Aproximarea datelor prin Aproximarea datelor prin mmetodaetoda celor mai celor mai mici ptratemici ptrate. . ExempluExemplu..

    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.

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

    z 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

  • 84

    Analiza Analiza FourierFourier si Transformata si Transformata FourierFourier Rapida (FFT)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.

    z Pentru eantionarea datelor vectoriale, analiza Fourier utilizeaz transformata Fourier discreta (discrete Fouriertransform-DFT).

    z Transformata Fourier rapida - FFT (Fast Fourier Transform) este un algoritm foarte eficient pentru calcularea transformatei Fourier, sau a transformatei Fourier discrete (DFT).

    z De asemenea, FFT este o unealta utila pentru filtrarea datelor, procesarea semnalelor sau pentru procesarea imaginilor in domeniul frecventei si pentru estimarea spectrului puterii.

  • 85

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

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

    z Unde w0 = 2*pi / T, a0 / 2 este componenta continua a seriei si reprezint valoarea medie a funciei g(t) pe o perioada.

    )()( pTtgtg =

    )sin()cos(2

    )( 001

    0 twnbtwnaatg nn

    n ++= =

  • 86

    4.4.3. Transformata 4.4.3. Transformata FourierFourierz 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 intr-un 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:

    ..(18)z Valoarea semnalului g(t) poate fi obinuta din expresia transformatei

    Fourier (ec. 18) utiliznd relaia transformatei Fourier inverse:

    = dtftjtgfG )2exp()()(

    = dtftjtgfG )2exp()()(

    = dfftjfGtg )2exp()()(

  • 87

    Transformata Transformata FourierFourier

    z Daca g(t) este un semnal continuu si periodic:

    z Unde Tp este perioada semnalului, va rezulta transformata Fourier a functiei g(t) sub forma:

    z iar cn se poate exprima prin relatia:

    )()( pnTtgtg =

    =

    = pnn

    p Tfc

    TfG 11)(

    = dttfnjtgTc pn )2exp()(1

    0

  • 88

    Transformata Transformata FourierFourier rapida (FFT)rapida (FFT)z Transformata Fourier rapida (FFT) este o metoda eficienta de

    calcul a transformatei Fourier discrete.z FFT reduce numrul de calcule matematice necesare pentru

    calculul transformatei Fourier discreta (DFT).z FFT poate fi utilizata pentru calculul spectrului puterii unui

    semnal, pentru filtrarea digitala a semnalelor sau pentru obinerea corelaiei dintre 2 semnale.

    z Functia MATLAB pentru calcularea transformatei Fouriediscrete (DFT) a unui vector x, utilizand algoritmul de calcul al transformatei Fourier rapide (FFT) este: fft(x).

    z Functia fft(x, N) se utilizeaz pentru a obine FFT pentru un vector de lungime N (cu N puncte).

    z Daca X este o matrice, functia fft returneaz transformata Fourier a fiecrei coloane.

    z Daca lungimea lui X este mai mica decat N, atunci matricea X este completata cu valoarea zero pana la dimensiunea N. Daca lungimea lui X este mai mare dect N, atunci secvena matricei X este trunchiata (redusa, micsorata).

  • 89

    MATLAB furnizeaz o colecMATLAB furnizeaz o colecie de ie de funcfuncii pentru calcularea si determinarea ii pentru calcularea si determinarea

    transformatei transformatei FourierFourier::

    Functia Descrierea functieifft Calculeaz transformata Fourier rapida

    fft2 Calculeaz transformata Fourier rapida (discreta) de ordinul 2fftn 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 in radiani

  • 90

    FFT FFT -- ExempleExemplez 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 fazasi amplitudinea semnalului.

    z Solutie: Se scrie un fisier script cu urmatorul continut, care va genera graficul din figura urmatoare:

    %Acest fisier calculeaza amplitudinea transformatei Fourier rapide a unei secventet = (0:99) / 100; % vectorul timp

    x = sin(2*pi*15*t) + sin(2*pi*40*t); %semnalul achizitionaty = fft(x); % calculeaza DFT a semnalului

    m = abs(y); %amplitudinea semnaluluif=(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

  • 91

    FFT FFT ReprezReprez. . grafgraf. a . a amplampl sisi fazeifazei unuiunui semnalsemnal

  • 92

    FFT FFT -- ExempleExemplez 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*350*t);si care sa returneze vectorii frecventa si amplitudine. Sa se reprezinte pe acelai grafic amplitudinea si faza funcie de frecventa.

    z Solutie: Se scrie urmtorul fiier function cu numele testfft:

    function [f, X] = testfftt = 0 : .001 : 0.39; % crearea vectorului timp

    fe = 1 / (t(2) - t(1)); % frecventa de esantionarex=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 secventeiXm = 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), subplot(313), plot(f,P*180 / pi)

  • 93

    FFT FFT -- ExempleExemple

  • 94

    5. Analiza circuitelor electrice5. 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.

    z 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 caracterizeazafunctionarea circuitului respectiv, atat in regim staionar cat si in regim tranzitoriu.

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

  • 95

    5.1. Circuite electrice de curent continuu5.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.

    z Calculul unui circuit electric se poate face pe baza schemei electrice a acestuia in care intervin doar parametrii elementelor de circuit.

    z In analiza circuitelor electrice in regim staionar intervin diferite conexiuni de rezistoare si surse de tensiune si / sau curent.

  • 96

    Analiza circuitelor in regim Analiza circuitelor in regim stationarstationarz Ex. 44: Se da circuitul rezistiv din figura.

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

    z Sa se calculeze si sa se reprezinte grafic curentul (I) prin circuit si tensiunea (U) la bornele rezistentei de sarcina (R2) a circuitului.

    z 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, cu pasul de 1 k.

    z Solutie: Marimea de intrare este tensiunea sursei (Us), iar parametrii de iesire sunt curentul (I) si tensiunea (U).

    z Aplicandu-se Teorema lui Kirchoff pentru tensiuni (teorema a doua) se obtine:

    IRUUUUs +=+= 11

    RUIL

    RUUIL s == :;: 2

    11

    21

    2

    RRRUU s+

    =

    ( )2212

    2

    2

    2

    2 RRRU

    RUP s+

    ==

  • 97

    z Se scrie un fisier function cu numele L1 care conine urmatoareasecventa:

    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;z Dupa rularea fisierului L1, se

    tasteaza urmatoarea comanda, in fereastra de comenzi (commandwindow),

    subplot(121), fplot('L1',[0,5]), grid, subplot(122), fplot('L2', [0,5]), grid

    z 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 functiiprogramul poate deveni dificil iar timpul de rulare poate fi suficient de mare.

    z Pentru a face legatura intre parametrii tuturor secventelorfunction, se utilizeaza functia global:

    z 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 r2us=5; I = (us-u) / r1;

    z De asemenea, se mai scrie un fisierscript cu numele TestL1, care trebuie apelat dupa rularea fisierulfunction L2, cu urmatoarea secventa,

    global r1 r2r1 = 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

  • 98

    z b) Puterea disipata pe rezistenta de sarcina se poate calcula cu urmtoarea secvena, utiliznd ecuaia (29):

    z %acest fiier script calculeaz

    % transferul maxim de putere %disipata pe rezistenta de sarcinaus=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 : kp2(i) = ((us/(r1 + r2(i)))^2) * r2(i);

    endplot(r2, p2, r2, p2,o), title(Puterea

    disipata pe rezistenta de sarcina);xlabel(R_2 (W)), ylabel(P_2 (W))

  • 99

    Calculul tensiunilor si curenCalculul tensiunilor si curenilor ilor intrintr--un circuit electricun 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 \ Uz 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.

  • 100

    z Ex. 45: Sa se calculeze tensiunile si curentiipentru circuitul din figura, stiind ca: RL = 2;

    z Solutie: Aplicand teoremele lui Kirchoff si legea lui Ohm putem scrie urmatoarele ecuatiipentru curentii si tensiunile circuitului electric din figura:

    z U1 = 5, U1-U2 = 50 I1, U2-U3 = 100 I2, U2 = 300 I3, U3 = 2 I2, I1 = I2+I3

    z Ansamblul ecuatiilor valorilor necunoscute ale tensiunilor si curentilor are forma matriciala (A):

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

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

    =

    11100002010030000010010001100050011000001

    A

  • 101

    RezolvareaRezolvarea circuitelorcircuitelor cu cu TeoremaTeoremacurentilorcurentilor de de conturcontur ((cicliciciclici))

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

    ==+

    10301040010)(30)(10

    321

    3121

    IIIIIII

    ( ) ( )

    =+=++

    053010051510

    321

    32212

    IIIIIIII

    ( ) ( )

    =+=++

    065530030530

    321

    32313

    IIIIIIII

  • 102

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

    z 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 R4fprintf('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 W

    =

    00

    10

    6553053010

    301040

    3

    2

    1

    III

  • 103

    RezolvareaRezolvarea circuitelorcircuitelor cu cu TeoremaTeoremapotentialelorpotentialelor la la nodurinoduri

    z Ex. 47: Pentru circuitul din figura 38, sa se gaseascatensiunea intre nodurile 1, 2 si 3 (U1, U2 si U3).

    z Solutie: Utilizand teorema lui Kirchoff si luand in considerare regula conform careia curentii care ies dintr-un nod sunt pozitivi, vor rezulta urmatoareleecuatii pentru fiecare nod:

    052010

    3121 =+ UUUU

    0405010

    32212 =++ UUUUU 024020

    2313 =+ UUUU

  • 104

    z In forma matriciala ecuatiile 44-46 devin:

    z 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 U3Y = [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) * Iz Se returneaz urmtorul rezultat:

    Tensiunile la noduri U1, U2 si U3 sunt: U =

    404.2857350.0000412.8571

    =

    205

    075.0025.005.0025.0145.01.005.01.015.0

    3

    2

    1

    UUU

  • 105

    Circuite electrice in regim tranzitoriuCircuite electrice in regim tranzitoriu

    z Calculul mrimilor circuitelor electrice in regim tranzitoriu se refera la circuitele cu caracter capacitiv si / sau inductiv

    z Se rezolva cu ajutorul Teoremelor lui Kirchoff, metoda transformatei Laplace (metoda operationala),Teorema curentilor de contur sau Teoremapotentialelor la noduri, Teorema conditiilor initiale, Teoremele generatoarelor echivalente (Teorema lui Tevenin si Teorema lui Norton) sau cu ajutorul marimilor de stare (MM - ISI).;

  • 106

    Circuite electrice in regim tranzitoriuCircuite electrice in regim tranzitoriu

    z Pentru analiza circuitelor de curent continuu in regim tranzitoriu se considera circuitul RC descris infigura

    z Studiul acestui circuit se poate face cu ajutorul Teoremei lui Kirchoffpentru curent;

    z Daca condensatorul este initialneincarcat, u(t) = 0 la t=0 (conditiiinitiale), atunci solutia ecuatiei este data de relatia:

    z u(t) reprezinta raspunsul in domeniu timp a unui circuit RC, sau iesireaunui circuit care are ca intrare o tensiune continua constanta, iar RCreprezinta constanta de timp a circuitului.

    0)()( =+R

    ustudt

    tduC

    =

    RCt

    eustu 1)(

  • 107

    Circuite electrice in regim tranzitoriuCircuite electrice in regim tranzitoriu -- ExempleExemple

    z Ex. 48: Sa se reprezinte grafic tensiunea (u(t)) la bornele unui condensator, stiindca C = 10 F, daca rezistenta R = 1 k, R = 10 k si R = 0.1 k.

    z Solutie: Se scrie un fisier script cu urmatorul continut:

    %incarcarea unui circuit RCc=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))

  • 108

    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:50t(i) = i / 100; v(i) = 5*(1-exp(-t(i) / tau));

    endvmax = v(50);for i=51:100

    t(i) = i / 100; v(i) = vmax*exp(-t(i-50) / tau);end

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

    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.

  • 109

    TransformataTransformata LaplaceLaplacez 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.

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

    z Necunoscutele circuitului (tensiunea sau curentul) vor fi calculate in acest caz in domeniul operational(s).

    z De asemenea, utiliznd Transformata Laplaceinversa, soluia unei ecuaii poate fi exprimata in domeniul timp.

  • 110

    z La t < 0, tensiunea la bornele condensatorului este uC(0) = 2 * 10 = 20V si curentul prin bobina iL = 0;

    z La t > 0, comutatorul se nchide si toate cele patru elemente sunt in paralel.

    z Utiliznd Teorema lui Kirchoff va rezulta ecuaia:

    z Aplicnd Transformata Laplace ecuaiei (57) vom obine:

    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.

    )0()(1)()(

    0L

    t

    s iduLdttduC

    RtuI +++=

    [ ]s

    IsLsUUsUsC

    RsU

    sI L

    cs )0()()0()()( +++=

  • 111

    Se scrie un fisier function, cu numele diff2, cu solutia ecuatiei diferentiale si un fisier scriptprincipal 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 condensatorxlabel('Timpul, s'), ylabel('Tensiunea pe condensator, V');

    %Analiza reg. tranzitoriu utilizand Transformata Laplacet2 = 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)');

  • 112

  • 113

    Circuite electrice de curent alternativCircuite electrice de curent alternativ

    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 cir


Recommended