Sunteți pe pagina 1din 12

1.

2 – Noţiuni introductive despre MATLAB & Simulink 9

1. Introducere în MATLAB & Simulink

Pachetul de programe MATLAB este un software de înaltă performanţă dedicat calculului


numeric, reprezentărilor grafice şi evaluărilor tehnice. De asemenea, integrează calculele matriceale,
analiza numerică, vizualizarea grafică şi limbajul de programare, într-un mediu uşor de utilizat, în care
problemele şi soluţiile sunt exprimate printr-un model matematic familiar.
SIMULINKul este o bibliotecă extinsă a MATLABului dedicat modelării, simulării şi
analizei sistemelor dinamice. Acest mediu interactiv de simulare dinamică permite modelarea
sistemelor liniare şi neliniare sau hibride, atât în timp discret, cât şi în timp continuu. Poate fi
utilizat pentru studiul sistemelor dinamice într-un domeniu foarte larg, incluzând circuite
electrice, sisteme de acţionare electrică, mecanică şi termodinamică, autovehicule, navete spaţiale
etc.

1.1. Scopul şi obiectivele lucrării

Introducere în pachetul de programe software MATLAB & Simulink. Instrucţiuni,


funcţii şi operaţii de bază ale MATLABului. Generarea şi vizualizarea semnalelor în Simulink.

1.2. Noţiuni introductive despre MATLAB & Simulink

1.2.1. Noţiuni generale

Cele mai importante facilităţi oferite de MATLAB sunt:


 Calcularea, evaluarea şi analiza sistemelor (circuitelor electrice, maşini şi acţionări
electrice, convertoare statice etc.);
 Dezvoltarea algoritmilor de control;
 Achiziţia, prelucrarea şi analiza datelor;
 Modelare, simulare, programare, proiectare;
 Vizualizare şi explorare grafică;
 Dezvoltarea unor aplicaţii, bazate pe interfeţe grafice interactive (GUI);
 Analiza, optimizarea şi proiectarea sistemelor de reglare şi conducere.

Din punct de vedere structural MATLABul este realizat sub forma unui nucleu de bază,
cu interpretor propriu, în jurul căruia sunt construite aşa numitele toolboxuri (biblioteci).
MATLABul include aplicaţii specifice sau familii de caracteristici, dedicate unui anumit
domeniu, denumite TOOLBOXuri. Acestea sunt colecţii extinse de funcţii MATLAB, sub formă
de fişiere MATLAB (m-files), care dezvoltă mediul de programare de la o versiune la alta, şi care
permit învăţarea şi aplicarea unor tehnici specializate.

Pachetul de programe MATLAB conţine cinci părţi principale:


1. Mediul de dezvoltare (Development Environment): este un set de toolboxuri care
foloseşte funcţiile MATLAB. Unele dintre aceste unelte sunt interfeţe grafice
(graphical user interfaces-GUI), cum ar fi pictograma MATLAB (MATLAB
10 Introducere în MATLAB & Simulink - 1
desktop) şi fereastra de comenzi (command window).
2. Biblioteca cu funcţii matematice (The MATLAB Mathematical Function Library):
este o colecţie vastă a algoritmilor de calcul de la funcţii elementare, ca şi “sum”,
„sine”, până la funcţii matriceale complexe, cum ar fi: inversa unei matrice, funcţia
Gamma, Bessel sau transformata Fourier rapidă (fft).
3. Limbajul MATLAB (The MATLAB Language): acesta este un limbaj matriceal de
înaltă performanţă cu algoritmi uşor de utilizat, funcţii, structuri de control a datelor,
intrări/ieşiri şi caracteristici de programare pentru orientarea obiectelor.
4. Grafică (Graphics): MATLABul are facilităţi extinse pentru expunerea (afişarea)
vectorilor şi matricelor ca şi grafice. Această librărie conţine funcţii pentru grafice
în 2D sau 3D pentru vizualizarea datelor, procesarea imaginilor şi animaţie. De
asemenea, acest toolbox include funcţii ce permit construirea unei interfeţe grafice
performante pentru diferite aplicaţii şi o librărie ce permite scrierea unor programe
în C, C++, Fortran care interacţionează cu MATLABul.
5. Interfaţa cu un program de aplicaţii (The MATLAB Application Program
Interface-API): această bibliotecă este, de fapt, o interfaţă grafică ce permite
scrierea unor programe în C sau Fortran care interacţionează cu MATLABul. De
asemenea, oferă diferite facilităţi pentru chemarea rutinelor din MATLAB, ca un
motor de calcul, şi pentru scrierea şi citirea fişierelor MATLAB (mat-files).

MATLAB-ul lucrează, în principal, cu cinci tipuri de ferestre grafice, una principală


pentru comenzi (command window) şi alte patru ferestre grafice secundare: spaţiul de lucru
(workspace), directorul curent (current directory), fereastra de afişare a comenzilor anterioare
(command history) şi fereastra Launch Pad care permite accesarea următoarelor biblioteci-
MATLAB, Toolboxes, Simulink şi Blocksets (Fig. 1.1).
Fereastra de comandă este utilizată pentru scrierea comenzilor MATLAB şi pentru
afişarea paşilor şi rezultatelor simulării (în cazul Simulinkului).
În directorul curent se vor găsii toate fişierele MATLAB (cu extensia m sau mat) sau
Simulink (cu extensia mdl) care urmează a fi modelate şi / sau simulate.
În fereastra de lucru se afişează toate constantele şi variabilele din memorie,
dimensiunile şi tipul acestora, mărimi care au fost definite (rulate) prin intermediul ferestrei de
comenzi sau a unui fişier din directorul curent.
Fereastra de lucru conţine un set de variabile acumulate (construite) treptat, în timpul
unei sesiuni de lucru şi care sunt (au fost) stocate în memorie.
În fereastra de lucru pot fi adăugate diferite variabile, prin utilizarea unor funcţii
MATLAB, în timpul rulării unui fişier-M sau, încărcând în memorie diferite fişiere de date.
1.2 – Noţiuni introductive despre MATLAB & Simulink 11

Fig. 1.1. Pictograma cu ferestrele grafice principale ale MATLABului.

Pachetul de programe MATLAB posedă o documentaţie vastă care permite obţinerea


informaţiilor necesare despre învăţarea şi utilizarea acestui pachet de programe, atât online cât şi
tipărit (în format pdf). De asemenea, există informaţii despre toate funcţiile programului
completate cu foarte multe exemple ajutătoare.
O altă variantă de a obţine ajutor este prin accesarea butoanelor din toolbarul
programului, inclusiv a helpului (butonul ?) care deschide o fereastră interactivă cu toată
documentaţia necesară, atât despre cum este structurat MATLABul cât şi despre toate funcţiile şi
ferestrele/interfeţele grafice ale acestuia.
Comanda help furnizează informaţii online despre orice funcţie MATLAB şi Simulink
sau realizată de un utilizator al pachetului de programe.
Cu comanda help se pot obţine informaţii ajutătoare despre o anumită funcţie, se pot
lista fişierele dintr-un director sau se poate lista conţinutul unui anumit fişier.

Informaţii specifice despre o anumită funcţie sau despre un director se pot obţine tastând
comanda:
help + „subiect”

De exemplu, tastând comanda:


help elfun

vom obţine informaţii despre toate funcţiile matematice elementare: funcţiile trigonometrice (sin,
cos), exponenţiale (exp, log), complexe (real, imag) etc.
Dacă subiectul este un director, helpul afişează toate fişierele conţinute în acesta.
Se pot scrie linii cu informaţii ajutătoare (helpuri) pentru fişierele MATLAB (M-file)
sau pentru toolboxurile proprii construite de utilizator. Mai multe detalii vor fi prezentate în
capitolul următor.
12 Introducere în MATLAB & Simulink - 1
1.2.2. Instrucţiuni, funcţii şi operaţii de bază ale MATLABului.
Structura programelor MATLAB

A) Instrucţiuni, funcţii şi operaţii de bază


Instrucţiunile MATLAB sunt de cele mai multe ori de forma :
variabila = expresie
Expresiile sunt compuse din operatori aritmetici, cum ar fi:
+: adunarea, -: scăderea, *: înmulţirea, /: împărţirea la dreapta, \: împărţirea la stânga, ^:
ridicarea la putere, sau din funcţii şi nume de variabile.
Dacă numele variabilei şi semnul = sunt omise, MATLABul creează automat o variabilă
cu numele „ans” în care este returnat rezultatul unui calcul, ca în exemplul următor:
Tastând următoarea secvenţă (operaţie matematică) în fereastra de comandă:
20 – 2*5
MATLABul va returna răspunsul:
ans=
10
Orice instrucţiune sau linie de instrucţiuni este urmată (se termină) cu „enter”. De fapt,
utilizând tasta „enter” se trece la următoarea secvenţă a liniei de program.
Dacă ultimul caracter al liniei este punct-virgulă „ ; ”, instrucţiunea este executată, dar
nu se tipăreşte nimic în fereastra de comenzi (command window).
De exemplu, dacă în fereastra de comenzi scriem următoarea linie:

a=20 – 2*5;

urmată de comanda „enter”, vom observa că în fereastra de comenzi nu se tipăreşte nimic, dar în
spaţiul de lucru (workspace) variabila este afişată
Simbolul două puncte (:) este unul dintre cei mai importanţi operatori ai MATLAB-
ului. Poate fi utilizat pentru a crea vectori şi matrice, pentru a specifica submatrice şi vectori şi
pentru a executa iteraţii. De exemplu comanda:
t1=1:6

va genera un vector linie, conţinând numerele de la 1 la 6 având incrementul unitate. MATLAB-


ul va genera (returna) rezultatul:
t1=
123456
Incrementul poate fi pozitiv sau negativ şi poate fi diferit de unitate, ca în exemplul
următor. Linia de comenzi:
t2=[(0:2:10);(5:-0.2:4)]

va genera următorii 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
MATLAB-ul are câteva variabile speciale predefinite. Acestea nu pot fi declarate şi sunt
accesibile global în orice fişier-m (M-file) şi includ:
i   1 , j   1 , pi=π, inf=  şi NaN=Not-a-Number (de exemplu: 0/0);
Ambele variabile i şi j au aceeaşi valoare şi sunt folosite pentru a genera numerele
1.2 – Noţiuni introductive despre MATLAB & Simulink 13
complexe, ca în exemplul următor:
z=3+4*j.
Va returna z =
3.0000 + 4.0000i

Matrice şi operaţii matriceale


MATLAB-ul lucrează cu scalari, vectori şi matrice. Un scalar este interpretat ca o
matrice cu o linie şi 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 două dimensiuni), cu elemente reale
sau complexe.
Operaţiile matriceale cu tablouri (arrays) sunt operaţii aritmetice, element cu element
(între elemente situate în aceeaşi poziţie a tablourilor).
Pentru efectuarea operaţiilor cu tablouri se folosesc aceiaşi operatori ca şi în operaţiile
cu scalari, precedaţi de semnul „.”, semn ce indică, de fapt, efectuarea operaţiilor element cu
element.
De exemplu, operatorul de înmulţire a două matrice A şi B se simbolizează în cazul
tablourilor prin:
A .* B
Calculele matematice care operează cu tablouri de date pot fi:
o Operaţii după regulile calculului matriceal-operaţii cu matrice;
o Operaţii după regulile calculului scalar-operaţii cu tablouri.

Definirea matricelor se face prin una din metodele:


 Introducerea listei de elemente;
 Generarea prin instrucţiuni şi funcţii;
 Crearea de fişiere-m (M-files);
 Încărcarea din fişiere de date externe.
Cea mai simplă metodă de definire a matricelor constă în utilizarea unei liste explicite
care trebuie să respecte următoarele reguli:
- elementele unei linii trebuie separate prin spaţii libere (blankuri) sau virgule;
- liniile se separă prin semnul (;);
- elementele unei matrice sunt cuprinse între paranteze drepte.

1 2 3
Matricea A  4 5 6 poate fi introdusă în MATLAB cu una din cele două
 
7 8 9
secvenţe:

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

În multe domenii rezolvarea matriceală a problemelor a condus la o simplificare majoră


şi a făcut posibilă extinderea unor soluţii deja cunoscute la domenii mai noi.
MATLABul oferă un set de funcţii pentru utilizarea matricelor.
Calculul determinantului unei matrice se face cu funcţia det, iar a inversei unei matrice
(A)-1 cu funcţia inv.
Dacă dorim să adăugăm o nouă linie unei matrice, de exemplu matricea B, acest lucru
14 Introducere în MATLAB & Simulink - 1
se poate realiza tastând comanda:
B = [B; [5 6]]
Se obţine rezultatul: B = 1 2
3 4
5 6
De asemenea, MATLABul oferă şi facilitatea de a extrage o submatrice dintr-o matrice,
sau de-a transforma o matrice într-un vector.

În cazul selectării liniilor sau coloanelor se folosesc următoarele sintaxe:


 A(:, n)-selectează coloana n a matricei A;
 A(m,:) -selectează linia m a matricei;
 A(:) -selectează toate elementele matricei A, interpretate ca o singură coloană.

B) Structura programelor MATLAB


MATLAB-ul lucrează fie în modul linie de comandă, situaţie în care fiecare linie este
prelucrată imediat şi rezultatele sunt afişate, fie în programe conţinute în fişiere.
Fişierele ce conţin instrucţiuni MATLAB se numesc fişiere-m (au extensia .m).
Aceste fişiere constau dintr-o succesiune de instrucţiuni, cu posibilitatea apelării şi altor
fişiere – M şi sunt fişiere text de tip ASCII.
Un program MATLAB poate fi scris sub forma a două tipuri de fişiere „script” şi
„function”. Ambele tipuri sunt scrise în format ASCII (text), iar algoritmul care a fost
implementat poate fi urmărit cu uşurinţă, dacă se cunosc convenţiile şi sintaxa MATLAB. Aceste
tipuri de fişiere (cu extensia .m) permit crearea unor funcţii noi care să le completeze pe cele deja
existente. Prin această facilitate MATLABul poate fi extins la aplicaţii specifice utilizatorului
care are, de asemenea, posibilitatea scrierii de proceduri noi.
Un fişier script este un fişier extern ferestrei de comenzi, fiind plasat în directorul curent
şi care conţine o secvenţă de comenzi MATLAB. Fişierele script sunt cele mai simple fişiere-m
(cu extensia .m), deoarece nu conţin nici mărimi de intrare şi nici de mărimi ieşire.
Prin tastarea numelui fişierului (fără extensie), în fereastra de comenzi, sau utilizând
editorul de text, se execută secvenţa MATLAB conţinută în acesta.
După execuţia completă a unui fişier script, variabilele cu care acesta a operat rămân
stocate în spaţiul de lucru (workspace).
Aceste tipuri de fişiere pot fi folosite pentru rezolvarea unor probleme de analiză şi
proiectare care necesită secvenţe de comenzi succesive, cu multe linii de program, şi care ar
devenii greoaie pentru lucrul în mod interactiv.
Dacă prima linie a unui fişier – m conţine cuvântul „function”, fişierul respectiv este
declarat ca şi fişier funcţie.
Un fişier funcţie diferă de unul script, prin faptul că poate lucra cu argumente (secvenţe
ale funcţiei: intrări - ieşiri).
Variabilele definite şi manipulate în interiorul fişierului funcţie sunt localizate la nivelul
acesteia. Prin urmare, la terminarea execuţiei unei funcţii, în memoria calculatorului nu rămân
decât variabilele de ieşire ale acesteia.
Fişierele function pot fi utilizate pentru extinderea bibliotecii MATLAB, adică pentru
crearea de noi funcţii MATLAB.
Forma generală a primei linii a unui fişier function este:

function[param_ieşire]=nume_funcţie(param_intrare)
1.2 – Noţiuni introductive despre MATLAB & Simulink 15
unde function este cuvântul cheie care declară fişierul ca fişier funcţie, nume_funcţie este numele
funcţiei, adică numele sub care se salvează fişierul fără extensie, param_ieşire reprezintă
parametrii de ieşire care trebuie separaţi prin virgulă şi cuprinşi între paranteze drepte (dacă
funcţia nu are parametrii de ieşire parantezele drepte şi semnul egal nu mai au sens), iar
param_intrare reprezintă parametrii de intrare, care trebuie, deasemenea, separaţi prin virgulă,
dar cuprinşi între paranteze rotunde.
Un fişier funcţie care are mai multe intrări şi ieşiri poate fi de forma:
function [x, y, z] = sfera(theta, phi, rho)
Dacă fişierul function nu conţine nici un argument de ieşire, atunci prima linie poate
avea forma:
function printresults(x)
sau se pot utiliza paranteze drepte goale, ca-n secvenţa de mai jos:
function [] = printresults(x)
% Media(x), este media elementelor unui vector, unde x este un vector
y=sum(x) / length(x) %linie cu instructiuni
După cum am menţionat şi anterior, linia cu comentarii începe cu semnul procent (%),
iar în cazul fişierelor function poate urma imediat după prima linie şi reprezintă helpul online al
fişierului respectiv.
Dacă fişierul funcţie (function) se apelează cu
help nume_funcţie
se vor afişa liniile care încep cu semnul % (comentariile), care sunt situate între prima linie, după
declararea funcţiei, şi prima linie cu instrucţiuni (prima linie fără comentarii) sau prima linie
liberă. În cazul exemplului de mai sus nu există decât o linie de comentarii.
Structura unui fişier function poate conţine instrucţiuni (comenzi) MATLAB de control,
funcţii MATLAB care realizează calcularea şi alocarea valorilor pentru mărimile de ieşire.

1.2.3. Facilităţi şi Biblioteci ale Simulinkului

Lansarea pachetului de programe Simulink se face din MATLAB în două moduri:

 prin accesarea pictogramei Simulink sau


 din fereastra de comandă (command window) prin scrierea cuvântului „simulink”.
Pe ecranul monitorului se va afişa fereastra editorului librăriei Simulink (simulink
library browser); aceasta conţine toate instrumentele (toolboxes) şi toate blocurile nucleului de
bază simulink (începând de la „continuous” şi sfârşind prin blocurile definite de utilizator („user-
defined functions”), aşa cum arată şi figura 1.2 a).
16 Introducere în MATLAB & Simulink - 1

a)

b)
Fig. 1.2. a) Blocurile ataşate bibliotecii Simulink, din versiunea MATLAB 6.5.
şi b) modelarea unui amplificator cu rezultatul simulării, vizualizat cu ajutorul osciloscopului (blocul
Scope).

De asemenea, Simulink-ul include şi alte biblioteci (externe nucleului de bază), dedicate


unor domenii (aplicaţii) cum ar fi: sisteme de conducere/automatică (control system toolbox),
sisteme de procesare a semnalelor digitale (DSP), reţelelor neurale (neural network blockset),
logica fuzzy (fuzzy logic toolbox), maşini şi acţionări electrice (SimPower Systems).
Control System Toolbox este o bibliotecă dedicată analizei şi proiectării/optimizării
sistemelor de conducere în buclă închisă, DSP (Digital Signal Processing) Blockset este un set
de blocuri dedicat proiectării şi simulării sistemelor electronice de prelucrare a semnalelor
digitale, iar SimPower Systems este o bibliotecă dedicată modelării şi simulării circuitelor
electrice, dispozitivelor semiconductoare şi convertoarelor statice, maşinilor şi acţionărilor
electrice, sistemelor energetice de putere etc.
Cu ajutorul programului Simulink se pot construi blocuri, utilizând biblioteca standard
1.2 – Noţiuni introductive despre MATLAB & Simulink 17
existentă, sau realizând propriile blocuri (interfaţa grafică interactivă denumită „graphical user
interface” – GUI).
În principiu, se poate modela orice sistem dinamic real, prin selectarea şi interconectarea
corespunzătoare (potrivită) a blocurilor din biblioteca Simulink.
O diagramă bloc în Simulink este de fapt un model grafic al unui sistem dinamic, care
conţine un set de simboluri denumite blocuri, interconectate între ele prin linii (Fig. 1.2 b). Fiecare
bloc reprezintă un sistem dinamic elementar care generează o mărime de ieşire, sau mai multe,
care poate fi o mărime continuă sau discretă.
Liniile de legătură reprezintă conexiunile dintre mărimile de intrare şi de ieşire ale
blocurilor.
Tipul blocurilor, din sistemul modelat, determină relaţia dintre intrările, stările şi ieşirile
acestuia, în funcţie de timp, după cum se poate vedea în figura 1.2 b).
Modelele complexe se realizează ierarhic creând blocuri grupate în subsisteme. Aceste
subsisteme se pot cupla între ele, realizându-se un singur sistem în care se evidenţiază mărimile
de intrare şi de ieşire (mai multe detalii în [16-17]).

1.2.3.1. Vizualizarea traiectoriei unui semnal

Pentru vizualizarea semnalelor, biblioteca Simulink conţine blocul Scope, după cum se
poate vedea şi în Fig. 1.2b), care reprezintă grafic mărimile de ieşire ale sistemului modelat, în
funcţie de timp. De asemenea, blocul Scope poate fi setat, astfel încât să afişeze o fereastră cu axe
multiple (Fig. 1.3 b), toate având acelaşi domeniu pentru vectorul timp, axele o-y fiind diferite.
Fereastra blocului Scope deţine un Toolbar care oferă posibilitatea de a modifica
parametrii interni, de a printa un semnal, de a modifica setarea axelor, de a obţine autoscalarea
acestora, sau pentru a obţine un bloc Scope flotant (Floating scope). Blocul Scope flotant este
identic cu blocul Scope, cu deosebirea că, pentru vizualizarea traiectoriei unui semnal, trebuie
definită mărimea respectivă, deoarece blocul flotant este autonom. Suplimentar, pentru ca
semnalul selectat să fie afişat, este necesar să se selecteze Signal storage reuse pe off (din meniul
Simulation Parameters la fereastra Advanced). Un alt bloc dedicat vizualizării semnalelor este
XY Graph. Acesta afişează o fereastră cu două axe X-Y, reprezentând grafic datele primei mărimi
de intrare (pe axa X), în funcţie de a doua mărime de intrare (axa Y). Acest bloc este util pentru
a examina limitele unei perioade sau datele a două mărimi de stare (de exemplu caracteristica
mecanică (M=f(n)) la o maşină electrică).
Pentru vizualizarea semnalului de ieşire, se rulează simularea prin accesarea din meniul
principal a comenzii start simulation (sau direct din Toolbar), după care prin dublu clic pe Scope
se vizualizează forma de undă rezultantă (Fig. 1.2 b).
O altă metodă de vizualizare a semnalelor constă în setarea parametrilor interni blocului
Scope (ParametersData historySave data to workspace) şi în alegerea numelui şi a
formatului în care datele vor fi salvate.
Prin utilizarea acestei metode datele pot fi salvate, după executarea simulării, în fereastra
de lucru (workspace) a MATLABului, în cazul nostru sub denumirea ScopeData în formatul
Array, iar apoi pot fi prelucrate cu funcţiile (comenzile) acestuia, prezentate în capitolul trei.
De exemplu, pentru reprezentarea grafică în MATLAB a semnalului rezultat, după
executarea simulării prin utilizarea comenzii:
plot(ScopeData(:,1),ScopeData(:,2)), grid
O a treia metodă constă în utilizarea unui bloc din biblioteca Simulink standard – To
Workspace, situat în sub-biblioteca Sinks, care salvează temporar datele (mărimile) modelului în
fereastra de lucru (workspace) a MATLABului, sub denumirea simout în formatul
18 Introducere în MATLAB & Simulink - 1
StructureWithTime, iar după rularea simulării pot fi reprezentate grafic ca şi în cazul precedent,
obţinându-se acelaşi grafic.
A patra metodă de vizualizare a semnalelor constă în utilizarea variabilelor existente în
fereastra MATLAB workspace, returnate după rularea unei simulări (return variables), şi a unui
bloc de ieşire out din subbiblioteca Ports & Subsystems. Această metodă permite salvarea
vectorului timp şi a mărimilor de stare şi de ieşire, prin selectarea parametrilor time, states, output
din meniul SimulationSimulation parametersWorkspace I/O. După executarea simulării, în
fereastra de lucru a MATLABului (workspace) vor apare mărimile tout şi yout, iar, dacă datele
au fost salvate în formatul Array, se poate obţine graficul simulării, utilizând comanda:
plot(tout, yout)
Datele obţinute în urma simulării pot fi salvate, în fereastra de lucru a MATLABului, în
unul din cele trei formate:
1. Structure with time – permite salvarea datelor în workspace, atât a vectorului timp
- tout cât şi a semnalelor de ieşire – xout, yout, xFinal. Pentru afişarea valorilor xout
şi yout, în fereastra de comandă (command window) a MATLABului, se tastează
„xout.signals.values” sau „yout.signals.values”, după care se pot reprezenta grafic
în funcţie de timp. Vectorul timp (tout) este un vector coloană a timpului de
simulare, iar signals reprezintă o structură alcătuită din două câmpuri: values şi
dimensions. Values poate fi tot un vector coloană, fiecare valoare, având un
corespondent pentru vectorul timp, sau poate fi un tablou matriceal (array), dacă
există mai multe semnale. Dimensions precizează dimensiunile (lungimea)
vectorului values;
2. Structure – acest format este identic cu cel precedent (Structure with time), cu
deosebirea că nu afişează timpul;
3. Array – afişează mărimile stocate în workspace, sub formă de tabel (matrice), având
pe prima coloană vectorul timp. Asta înseamnă că, dacă vom avea două semnale,
matricea din fereastra de lucru va conţine trei coloane. Datele pot fi salvate, atât sub
formă de vectori cât şi sub formă de tablouri matriceale.

1.3. Desfăşurarea lucrării

În cadrul acestei lucrări se vor realiza/rezolva câteva exerciţii/exemple cu operaţii şi


funcţii matematice uzuale ale MATLAB-ului, cu ajutorul fişierelor de tip script şi function, cât şi
calcule cu matrice, utilizând şi funcţiile dedicate de generare ale acestora. De asemenea, se vor
realiza modele simple de implementare în Simulink, vizualizându-se diferite tipuri de semnale cu
ajutorul osciloscopului.

Exemplul 1.1: Să se scrie un fişier de tip script care să calculeze amplitudinea şi faza
unei impedanţe (Z) de intrare a unui circuit, ştiind că:
 5  j 6  4  j8
Z  4300
9  j2

Rezolvare: Se scrie un fişier 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
1.3 – Desfăşurarea lucrării 19
Z_unghi=angle(Z)*(180 / pi); %unghiul in grade
Z_polar=[Z_ampl, Z_unghi]
MATLAB-ul generează următorul rezultat: numărul complex Z în formă polară,
amplitudine şi fază
Z_polar = 11.2039 9.7942

Exemplul 1.2: Să se scrie un fişier de tip function care să calculeze rezistenţa


echivalentă a unor rezistoare conectate în serie.

Rezolvare: Se creează un fişier cu numele echivalent.m, care are următoarea


configuraţie:
function re = echivalent(r)
% echivalent este un program funcţie care calculează rezistenţa echivalentă a unor rezistoare
% conectate în serie, r fiind vectorul de intrare de lungime n iar
% re este mărimea de ieşire - rezistenţa echivalentă
n=length(r); %numărul rezistoarelor
re=sum(r) %rezistenţa echivalentă

Să presupunem că dorim să calculam rezistenţa echivalentă a următoarelor rezistenţe


conectate în serie, având valorile 10, 20, 15, 16 şi 5 Ohmi. Tastând următoarele două linii în
fereastra de comenzi:
r=[10 20 15 16 5];
Rserie=echivalent(r)
Rezultatul obţinut va fi:
Rserie=
66
Exemplul 1.3: Să se determine curenţii I1, I2 şi I3 unui sistem trifazat, ştiind că valorile
tensiunilor sunt U1=10V, U2=15V şi U3=12V, iar impedanţa echivalentă a circuitului este o
3 6 9
matrice pătratică de ordinul 3 de forma Z  6 15 12  ;
 
9 12 20

Soluţie: Pentru a rezolva sistemul trifazat de curenţi se utilizează funcţia inv.


Se poate scrie un fişier MATLAB-script sau se pot scrie următoarele linii de program
direct în fereastra de comenzi (command window):
Z=[3 6 9;6 15 12;9 12 20]; U=[10 15 12];
I=inv(Z)*U;

MATLABul generează următorul rezultat:


I = -3.6491
1.2807
1.4737
Ceea ce înseamnă că:
I1 = -3.6491 A, I2 = 1.2807 A şi I3 = 1.4737 A

Exemplul 1.4: Să se integreze şi să se deriveze un semnal sinusoidal, utilizând blocurile


standard din biblioteca Simulink, şi apoi să se reprezinte pe acelaşi grafic şi în ferestre diferite,
20 Introducere în MATLAB & Simulink - 1
cele trei semnale (semnalul de intrare şi cele două semnale de ieşire).

Rezolvare: Pentru a implementa un model în Simulink, se deschide o fereastră nouă


(untitled) după care se selectează, din bibliotecile Simulink, blocurile necesare realizării
modelului (schema bloc), din biblioteca Continuous se selectează blocurile Derivative şi
Integrator, din biblioteca Sinks se selectează blocul Scope iar din biblioteca Sources se selectează
blocul Sine Wave, care reprezintă semnalul de intrare sinusoidal. După ce avem toate blocurile în
fereastra nou creată, trebuie să le unim prin linii, pentru a realiza conexiunea dintre ele.
Pentru vizualizarea pe acelaşi grafic a mai multor semnale (mărimi de ieşire), se poate
utiliza blocul mux (multiplexor), iar pentru reprezentarea grafică în ferestre diferite se selectează
blocul Scope, astfel încât să accepte 3 intrări (ScopeParametersGeneralNumber of axes).
Diagramele bloc ale modelului (Fig. 1.3 a) şi rezultatul simulării (Fig. 1.3 b) sunt prezentate în
figura următoare:

a) b)
Fig. 1.3. a) Diagramele bloc ale modelului şi b) reprezentarea grafică în Simulink.

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