Sunteți pe pagina 1din 151

Simulink

1
1 Lansarea aplicaţiei Simulink..................................................................................4
1.1 Editorul de modele.........................................................................................4
1.2 Bibliotecile aplicaţiei Simulink......................................................................7
2 Crearea unui model................................................................................................9
2.1 Plasarea blocurilor..........................................................................................9
2.2 Prescrierea proprietăţilor şi parametrilor blocurilor.....................................10
2.3 Legende........................................................................................................15
2.4 Conectarea blocurilor. Semnale...................................................................16
2.5 Blocurile Integrator, Gain şi Sum, Add, Subtract, Sum of Elements...........18
2.6 Parametrii simulării......................................................................................24
2.6.1 Scrierea stării şi ieşirilor porturilor în spaţiul Matlab..........................25
2.6.2 Citirea stării iniţiale şi a intrărilor porturilor din spaţiul Matlab..........28
2.7 Afişarea rezultatelor.....................................................................................31
2.7.1 Blocul Scope........................................................................................31
2.7.2 Blocul XYGraph..................................................................................35
2.7.3 Blocul Display......................................................................................36
2.7.4 Blocul Floating Scope..........................................................................37
2.8 Salvarea datelor în fişiere şi spaţiul de lucru Matlab...................................38
2.9 Citirea datelor din fişiere şi spaţiul de lucru Matlab....................................41
2.10 Simularea unui model Simulink în Matlab..................................................43
2.11 Blocurile Mux şi Demux..............................................................................45
2.11.1 Crearea semnalelor cu blocul Mux......................................................45
2.11.2 Extragerea semnalelor din blocul Demux............................................45
2.12 Blocurile Bus Creator şi Bus Selector..........................................................52
2.12.1 Crearea unui bus...................................................................................53
2.12.2 Selectarea semnalelor din bus..............................................................55
3 Blocuri pentru generarea şi analiza semnalelor...................................................57
3.1 Blocuri pentru generarea semnalelor...........................................................57
3.2 Blocuri pentru analiza semnalelor................................................................58
3.3 Analiza modelelor la diverse intrări.............................................................64
4 Blocuri de calcul..................................................................................................71
5 Blocuri neliniare...................................................................................................75
6 Funcţii definite de utilizator.................................................................................81
6.1 Funcţii definite printr- o expresie.................................................................81
6.2 Utilizarea funcţiilor Matlab..........................................................................83
6.3 Funcţii definite de utilizator (S-Funcţii)......................................................85
7 Simularea sistemelor liniare continue cu coeficienţi constanţi............................91
7.1 Blocul Transfer Fcn......................................................................................92
7.2 Blocul Zero-Pole..........................................................................................96
7.3 Blocul State-Space.......................................................................................97
8 Crearea de subsisteme........................................................................................100
8.1 Crearea unui subsistem prin inserarea unui bloc Subsystem.....................100
8.2 Crearea unui subsistem prin gruparea blocurilor.......................................108
9 Descrierea fişierului creat de editorul de modele...............................................111
10 Secvenţa de calcul a elementelor modelului..................................................114
11 Explorarea modelului.....................................................................................117
11.1 Explorarea modelului.................................................................................117
11.2 Navigarea în model....................................................................................120
12 Simularea unui motor asincron......................................................................121

2
13 Simularea maşinilor electrice.........................................................................128
13.1 Maşina asincronă........................................................................................128
13.2 Maşina de curent continuu.........................................................................138
13.3 Maşina sincronă.........................................................................................142

3
2 1 Lansarea aplicaţiei Simulink
Aplicaţia Simulink se lansează în unul din următoarele moduri:
 în fereastra de comandă Matlab se tastează comanda simulink,
 clic pe butonul din bara de instrumente a ferestrei Matlab.
Aceste comenzi deschid fereastra Simulink Library Browser din Figura 1. Fereastra
afişază în stânga arborele bibliotecilor, în dreapta secţiunile bibliotecii selectate, iar în
partea de sus informaţii asupra bibliotecii sau blocului selectat.

2.1 Editorul de modele


Pentru a crea un nou model se lansează editorul de modele în unul din următoarele
moduri:
 se execută un clic pe File  New  Model din fereastra Simulink Library
Browser vezi Figura 2 şi se deschide o nouă fereastră a unui model Simulink,
din Figura 3.
 clic pe File  New  Model din fereastra Matlab şi se deschide o nouă
fereastră a unui model Simulink, din Figura 3. In acest caz este posibil de a
deschide fereastra Simulink Library Browser cu un clic pe opţiunile View 
Library Browser din fereastra modelului Simulink din Figura 3 sau pe
butonul din bara de instrumente din aceeaşi figură.

4
Figura 1. Fereastra Simulink Library Browser.

Figura 2. Crearea unui nou model

Figura 3. Fereastra editorului de modele în cazul unui nou model Simulink.


Bibliotecile existente conţin elemente ce pot fi utilizate în model. Deschiderea unei
biblioteci se face cu un clic pe numele bibliotecii sau pe nodul din arborele cu
biblioteci. In Figura 1 este expandat nodul corespunzător bibliotecii Simulink ce
conţine elemente generale.
Meniurile File, Edit şi View ale editorului de modele sunt arătate în Tabelul 1. Ele
conţin în general opţiunile cunoscute. Celelalte meniuri vor fi prezentate ulterior.
Opţiunile meniului File realizează operaţiile următoare:
 New crează un nou model,
 Open deschide un model existent,
 Close inchide modelul curent,
 Save salvează modelul curent,
 Save As salvează modelul current sub un nume nou,
 Print tipăreşte modelul curent,
 Print Setup prescrie modul de tipărire,
 Exit Matlab închide aplicaţia Matlab.

5
a) Meniul File b) Meniul Edit c) Meniul View
Tabelul 1. Meniurile File, Edit şi View ale ferestrei unui model.
Opţiunile meniului Edit realizează următoarele operaţii:
 Undo anulează ultima operaţie,
 Redo reface ultima operaţie,
 Cut mută în Clipboard blocul selectat,
 Copy copiază în Clipboard blocul selectat,
 Paste copiază în model blocul din Clipboard,
 Clear şterge blocul selectat,
 Select All selectează întregul model,
 Copy model to clipboard copiază modelul în Clipboard.
Celelalte opţiuni ale meniului Edit vor fi prezentate ulterior.
Opţiunile meniului View realizează următoarele operaţii:
 Toolbar afişază sau ascunde bara de instrumente,
 Status bar afişază sau ascunde bara de stare,
 Zoom in măreşte aria selectată,
 Zoom out micşorează aria selectată,
 Fit selection to view adaptează diagrama modelului la dimensiunea ferestrei
modelului.
Celelalte opţiuni ale meniului View vor fi prezentate ulterior.
O parte din funcţiunile meniurilor File şi Edit pot fi realizate cu butoanele barei de
instrumente a ferestrei editorului de modele, arătată în Figura 4.

Figura 4. Bara de instrumente a editorului de modele.


Semnificaţia butoanelor este cea din Tabelul 2.

6
Buton Funcţie
New
Open
Save
Print
Cut
Copy
Paste
Undo
Redo
Tabelul 2. Butoanele barei de instrumente a editorului de modele.
Editorul de modele crează din model un fişier cu extensia .mdl.

2.2 Bibliotecile aplicaţiei Simulink


Bibliotecile aplicaţiei Simulink sunt cele din Figura 5. Biblioteca Simulink cuprinde
secţiuni cu blocurile de bază, utilizate în modele : pentru simularea sistemelor
descrise de ecuaţii diferenţiale ordinare, a sistemelor discrete, funcţii matematice,
blocuri de geneare a semnalelor, de afişare a semnalelor, etc. In cele ce urmează vom
prezenta câteva elemente de interes general din aceste biblioteci. Celelalte biblioteci
conţin elemente pentru simularea diverselor aplicaţii din telecomunicaţii, sisteme
automate, maşini electrice, mecanică, etc.

7
Figura 5. Bibliotecile aplicaţiei Simulink.

8
3 Crearea unui model
Pentru a crea un model se plasează mai întâi blocurile în fereastra modelului şi apoi se
interconectează aceste blocuri cu săgeţi.

3.1 Plasarea blocurilor


Plasarea blocurilor în model se face astfel:
1. se expandează nodul corespunzător bibliotecii cu un clic pe butonul din
arborele din stânga ferestrei Simulink Library Browser din Figura 1; în partea
dreaptă apar secţiunile bibliotecii selectate,
2. se selectează secţiunea necesară din bibliotecă cu un clic pe numele ei ; în
dreapta sunt afişate elementele din secţiunea corespunzătoare, vezi Figura 6; în
partea de sus a ferestrei este afişată descrierea elementului selectat,
3. se trage blocul din bibliotecă în model, (drag and drop),
4. se deschide caseta de dialog specifică blocului, de unde se aleg parametrii
blocului.

Figura 6. Fereasta Simulink Library Browser.


In Figura 7 se arată fereastra unui nou model cu un element integrator inserat din
biblioteca Continuous. In Figura 8 se arată caseta de dialog corespunzătoare

9
integratorului, în care putem prescrie condiţia iniţială în caseta de text Initial
condition.

Figura 7. Fereastra unui nou model cu un integrator.


Pentru a efectua diverse operaţii cu un bloc, (Cut, Copy, afişarea casetei de dialog cu
parametrii blocului, etc.), acesta trebuie selectat. Selectarea unui bloc se face cu un
clic cu butonul drept sau stâng pe bloc. Atunci când blocul este selectat, în colţurile
lui apar patru marcaje ca în Figura 7. La un moment dat se pot selecta mai multe
blocuri din model. Acest lucru se face în unul din următoarele moduri :
 se selectează pe rând câte un bloc ţinând apăsată tasta Shift şi executând clic
pe bloc,
 se trasează un dreptunghi cu mousul în jurul blocurilor ce trebuie selectate ; se
poziţionează mousul în unul din colţurile dreptunghiului şi se trage mousul cu
butonul apăsat în colţul opus al dreptunghiului,
 se pot selecta toate blocurile din model cu opţiunea Select All a meniului Edit.
Un bloc odată selectat se poate deselecta cu un clic pe bloc. Un bloc din model poate
fi şters, mutat sau copiat în Clipboard. Acest lucru se face astfel :
1. se selectează blocul cu un clic,
2. se afişază meniul Edit sau meniul contextual al blocului cu un clic cu butonul
drept pe bloc, vezi Tabelul 3 pentru opţiunile celor două meniuri,
3. clic pe opţiunea necesară, Clear, Cut sau Copy.

3.2 Prescrierea proprietăţilor şi parametrilor blocurilor


In cazul unui bloc selectat se pot afişa trei meniuri ce permit, printre altele, alegerea
proprietăţilor şi parametrilor blocului. Aceste meniuri sunt:
 meniul Edit al editorului de modele din Tabelul 3a,
 meniul contextual al blocului din Tabelul 3b,
 meniul Format al editorului de modele din Tabelul 5.

10
Parametrii uni bloc se prescriu în caseta de dialog Block Parameters, specifică fiecărui
bloc. Această casetă se afişază în două feluri :
 cu dublu clic cu butonul stâng al mousului pe bloc,
 cu clic pe opţiunea xxx parameters a meniului Edit sau a meniului contextual
al blocului (în meniurile din Tabelul 3, această opţiune este Integrator
parameters).
Caseta de dialog cu parametrii blocului în cazul unui integrator este cea din Figura 8.

Figura 8. Caseta de dialog cu parametrii unui integrator.


Parametrii unui bloc pot fi valori numerice introduse în caseta de dialog sau
variabile ce primesc valori în spaţiul de lucru Matlab.
Caseta de dialog cu parametrii unui bloc conţine în partea superioară descrierea
blocului, în exemplul nostru integrarea semnalului de intrare. Caseta de dialog cu
parametrii uni bloc are un buton Help care afişază o descriere detaliată a blocului. In
Figura 9 se arată fereastra Help a elementului Integrator.

11
Figura 9. Fereastra Help cu descrierea blocului Integrator.
Menţionăm că, în general, blocurile Simulink au mai multe intrări şi ieşiri. Intrările şi
ieşirile pot fi variabile scalare, vectori sau matrice ale căror elemente depind de timp.
Blocul efectuează aceeaşi operaţie asupra fiecărui semnal de intrare (analog
vectorizării funcţiilor în Matlab). In general, dimensiunea semnalelor de intrare şi de
ieşire se poate verifica din dimensiunea parametrilor blocului. In cazul integratorului,
condiţia iniţială trebuie să fie un număr, un vector sau o matrice. Dimensiunile
condiţiei iniţiale trebuie să corespundă celor ale semnalului de intrare, iar
dimensiunea ieşirii este egală cu dimensiunea intrării.
Opţiunile Foreground color şi Background color ale meniului contextual al
elementului din Tabelul 3b permit alegerea culorii fondului şi primplanului blocului.
Opţiunea Format a aceluiaşi meniu şi meniul Format al editorului de modele permit
alegerea fontului, rotirea blocului, reprezentarea în oglindă a blocului sau numelui,
etc.

12
a) Meniul Edit b) Meniu contextual
Tabelul 3. Meniuri ale unui bloc selectat.
Submeniurile corespunzând acestor opţiuni sunt arătate respective în Tabelul 4a,
Tabelul 4b.

a) Submeniurile Foreground b) Submeniul Format


color şi Background color al blocului
Tabelul 4. Meniul contextual al unui bloc.
Submeniurile Foreground color, Background color şi Format.

13
1) Align Blocks

2) Distribute Blocks

3) Resize Blocks
a) Meniul Format b) Submeniuri
Tabelul 5. Meniul Format al editorului de modele.
Meniul Format al editorului de modele este arătat în Tabelul 5. Câteva opţiuni de
aranjare a desenului sunt arătate în Tabelul 6.

Desen Opţiune

Align Centers Horizontally

Make Blocks Same Size

Make Horizontal Gaps Even

Tabelul 6. Opţiuni de desenare a modelului.

14
Tabelul Tabelul 7 arată câteva opţiuni de reprezentare a unui bloc.

Reprezentare bloc Opţiuni

+ Font bold, italic, dimensiunea12

+ Culoare albastru

+ Nume bloc reprezentat în oglindă (flip)

+ Bloc reprezentat în oglindă (flip)

+ Bloc rotit

Tabelul 7. Opţiuni de reprezentare a unui bloc.


Numele blocurilor se poate modifica pentru a corespunde semnificaţiei din model. Se
execută un clic pe numele blocului şi se introduce numele dorit. Numele blocurilor se
poate ascunde cu un clic pe opţiunea Hide name a meniului Format al blocului din
Tabelul 4b şi se poate afişa cu opţiunea Show name a aceluiaşi meniu.
Culoarea fondului modelului se prescrie prin selectarea opţiunii Screen color din
meniului Format al editorului de modele ce afişază meniul din Tabelul 4a (de data
aceasta pentru fondul modelului).

3.3 Legende
Legendele conţin informaţii despre model. Un model poate conţine mai multe
legende. Pentru a crea o legendă se execută un clic dublu într-un punct al ferestrei şi
în caseta de text afişată se introduce legenda dorită. Textul legendei poate conţine şi
caractere speciale şi litere greceşti definite cu regulile limbajului Latex, vezi capitolul
privind reprezentările grafice din Matlab. Stilul legendei se prescrie cu opţiunile
meniului Format vezi Tabelul 5 sau cu opţiunile meniului contextual din Tabelul 8a
afişat la un clic cu butonul drept pe legendă. Stilul fontului legendei se alege cu
opţiunile Font, Enable Tex command şi Text alignment. Culorile fondului şi
primplanului se aleg cu opţiunile Background color şi Foreground color. Opţiunea
Show drop shadow afişază o umbră în jurul legendei.

15
a) la selectarea legendei b) la selectarea textului legendei
Tabelul 8. Meniuri contextual ale unei legende.
Opţiunile Cut şi Copy din Tabelul 8a mută şi respectiv copiază în Clipboard legenda.
Opţiunea Clear şterge legenda. O legendă odată copiată în Clipboard poate fi copiată
în orice loc din model cu opţiunea Paste a meniului Edit al modelului. Meniul
contextual din Tabelul 8b se afişază cu un clic cu butonul drept pe legendă, după ce
textul legendei a fost selectat. Opţiunile Cut, Copy, Paste şi Delete efectuează
operaţiile aceleaşi operaţii ca mai sus cu textul legendei. Opţiunea Select All a
aceluiaşi meniu selectează tot textul legendei.

3.4 Conectarea blocurilor. Semnale


Blocurile modelului sunt conectate de săgeţi. Săgeţile corespund conexiunilor de la
ieşirile unor blocuri la intrările altor blocuri. Fiecare săgeată corespunde unui semnal
din model.
Conectarea blocurilor se poate face în mai multe feluri :
1. conectarea automată a două blocuri:
 se selectează blocul sursă cu un clic,
 se apasă tasta Ctrl şi clic pe blocul destinaţie cu butonul stâng al mousului
sau cu butonul drept al mousului, după care se eliberează tasta Ctrl.
Simulink trasează conexiunea între ieşirea blocului sursă şi intrarea
blocului destinaţie. In cazul în care blocul sursă are mai multe ieşiri şi
blocul destinaţie mai multe întrări, Simulink trasează cât de multe
conexiuni sunt posibile între cele două blocuri.
2. conectarea manuală a două blocuri, prima metodă
 se uneşte ieşirea blocului sursă cu intrarea blocului destinaţie cu butonul
stâng al mousului sau cu butonul drept al mousului apăsat.
3. conectarea manuală a două blocuri, a doua metodă
 se uneşte intrarea blocului destinaţie cu ieşirea blocului sursă cu butonul
stâng al mousului sau cu butonul drept al mousului apăsat.
In multe cazuri este nevoie de mai multe conexiuni de la ieşirea unui bloc la mai
multe intrări ale altor blocuri. Pentru a trasa o linie suplimentară de la o ieşire a unui
bloc la o intrare a altui bloc se procedează astfel :
 se poziţionează cursorul pe linie în punctul de ramificare,
 se apasă tasta Ctrl şi cu butonul stâng al mousului apăsat se trage cursorul
până la intrarea blocului ce trebuie conectat, după care se eliberează tasta
Ctrl şi butonul mousului.
Semnalele se pot selecta cu un clic pe săgeata corespunzătoare.
Menţionăm că, în general, blocurile Simulink au mai multe intrări şi ieşiri. Intrările şi
ieşirile pot fi variabile scalare, vectori sau matrice ale căror elemente depind de timp.

16
Este posibil de a afişa dimensiunea semnalelor, iar semnalele nescalare se pot afişa cu
linie îngroşată. Pentru a afişa dimensiunea semnalelor multidimensionale se
selectează un semnal şi se execută cu clic pe opţiunea Signal dimensions a meniului
Format din Tabelul 5. Pentru a desena îngroşat semnalele multidimensionale se
selectează un semnal şi clic pe opţiunea Wide nonscalar lines a meniului Format.
Semnalele pot avea nume date de programator. Pentru a da un nume unui semnal se
procedează în unul din următoarele moduri :
 clic cu butonul drept pe semnal şi se afişază meniul contextual din Tabelul 9a.
La un clic pe opţiunea Signal Properties se afişază caseta Signal Properties
din Tabelul 9b. In caseta de text Signal name se introduce numele dorit pentru
semnal,
 se selectează semnalul cu un clic cu butonul stâng pe semnal ; se execută un
clic pe meniul Edit; un clic pe opţiunea Signal Properties se afişază caseta
Signal Properties din Tabelul 9b.

a) meniu contextual b) caseta Signal Properties


Tabelul 9. Meniu contextual şi caseta cu proprietăţile semnalelor.
Se pot afişa blocul sursă sau blocurile destinaţie pentru un semnal oarecare. Pentru
aceasta se afişază meniul contextual din Tabelul 9a şi clic pe opţiunea Highlight to
source respectiv Highlight to destination. Se obţin reprezentările din Tabelul 10.
Opţiunea Remove highlighting anulează opţiunile anterioare.

17
a) afişarea destinaţiei semnalului b) afişarea sursei semnalului
Tabelul 10. Afişarea sursei şi destinaţiei semnalelor.
In principiu, orice ieşire a unui bloc trebuie conectată la intrarea unui alt bloc. In cazul
când ieşirea unui bloc nu trebuie conectată la intrarea altui bloc, această ieşire se
conectează la un bloc Terminator din Figura 10.

Figura 10. Blocul Terminator

3.5 Blocurile Integrator, Gain şi Sum, Add, Subtract, Sum of


Elements
Blocurile Integrator, Gain şi Sum, Add, Subtract sunt des folosite la simularea
sistemelor descrise de ecuaţii diferenţiale ordinare.
Blocurile Gain înmulţeşte intrarea cu o constantă. Intrarea şi constanta pot fi scalari,
vectori sau matrice.
Blocurile Sum, Add, Subtract şi Sum of Elements realizează funcţii identice. Ele
adună sau scad intrările lor. Intrările pot fi scalari, vectori sau matrice. Blocurile pot
avea mai multe intrări şi putem prescrie semnele intrărilor.
Aceste blocuri sunt arătate în Tabelul 11. Ele se găsesc în biblioteca Math
Operations.

Bloc Simbolizare
Add

Subtract
Sum
Sum of Elements

Gain

Tabelul 11. Blocuri de însumare şi inmulţire cu o constantă.


Exemplu. Să calculăm soluţia ecuaţiei diferenţiale ordinare
x'' + 3x' + 2x = 0
în condiţiile iniţiale x0 = 1 şi x'0 = 0 pe o durată de 5s. Modelul este arătat în Figura 11.
La intrarea integratorului x' trebuie să introducem mărimea x''. Din ecuaţia
diferenţială deducem
x'' = -3x' – 2x
Inmulţirea mărimilor x şi x' cu 2 şi respectiv 3 se face cu blocuri Gain. Ele sunt
însumate în blocul Sum.

18
Figura 11. Modelul ecuaţiei diferenţiale ordinare x'' + 3x' + 2x = 0.
In Figura 11 sunt adăugate semnalelor numele x şi respectiv x', pentru a corespunde
semnificaţiei din model. Aceasta se face cu procedura prezentată anterior:
1. clic cu butonul drept pe semnal,
2. în meniul contextual afişat clic pe opţiunea Signal properties,
3. în caseta de text Signal name se introduce numele dorit.
S-a adăugat o legendă a modelului. Pentru aceasta se execută un clic dublu într-un
punct al ferestrei şi în caseta de text afişată se introduce legenda dorită, în cazul nostru
Modelul ecuaţiei diferenţiale x’’ + 3x’ + 2x= 0. Fontul legendei a fost modificat.
Caseta de dialog cu parametrii blocului Sum este arătaţă în Figura 12. In această
casetă se pot alege în zona Parameters:
 forma elementului, dreptunghi sau rotund, din caseta Icon shape,
 semnele semnalelor de intrare, + sau -. In lista respectivă se introduce plus
dacă semnalul va fi adunat şi – dacă va fi scăzut.
După cum s-a spus mai înainte, caseta cu parametrii blocului conţine în partea
superioară descrierea blocului. In cazul blocului Sum se arată cum se completează
lista de semne.
Blocurile Add, Subtract şi Sum of Elements au aceeaşi caseta cu parametrii ca blocul
Sum.

19
Figura 12. Caseta de dialog cu parametrii elementului Sum.
Casetele de dialog cu parametrii blocurilor Integrator nu sunt arătate.
Caseta de dialog a blocului Gain este cea din Figura 13. In caseta de text Gain se
introduce factorul de amplificare, în cazul celor două blocuri din modelul nostru, 3 şi
respectiv 2. Blocul Gain poate avea mai multe intrări şi ieşiri. In acest caz parametrul
blocului este o matrice, după cum se va explica mai jos. Modul de prescriere al
factorului de amplificare este specificat în partea superioară a casetei din Figura 13.

Figura 13. Caseta de dialog cu parametrii blocului Gain.


Menţionăm că blocurile Gain care înmulţesc ieşirile integratoarelor x cu 2 şi respectiv
x’ cu 3 sunt desenate iniţial de către editorul de modele rotite cu 1800 faţa de desenul
din Figura 11. Ele sunt rotite ca în Figura 11 astfel:
1. clic cu butonul drept pe blocul Gain şi se afişază Meniul contextual din Tabelul
3b,
2. clic pe opţiunea Format şi se afişază meniul contextual din Tabelul 4b; clic pe
opţiunea Flip block şi blocul este rotit cu 1800 şi apare desenat ca în Figura 11.

20
Operaţia de rotire a blocului poate fi realizată şi din meniul Format al editorului de
modele.
Rezultatul simulării modelului este cel din Figura 14.

Figura 14. Rezultatul simulării sistemului din Figura 11.


Reamintim că, în general, blocurile Simulink au mai multe intrări şi ieşiri. Blocurile
realizează aceeaşi operaţie asupra tuturor semnalelor de intrare. De exemplu, intrarea
unui bloc Integrator poate fi un scalar, un vector sau o matrice de semnale şi ieşirea
acestui bloc are aceeaşi dimensiune cu intrarea. Fiecare semnal de intrare este integrat
separat, iar condiţiile iniţiale se prescriu separat pentru fiecare semnal (un scalar, un
vector sau o matrice).
Blocul Gain necesită o discuţie separată. Fie u intrarea în blocul Gain, y ieşirea, iar K
este factorul de amplificare. Intrarea şi ieşirea unui bloc Gain pot fi scalari, vectori sau
matrice de semnale. Factorul de amplificare K poate fi un scalar, un vector sau o
matrice. Blocul Gain poate realiza următoarele operaţii, vezi Figura 13 şi Figura 15:
 înmulţire element cu element (Element-wise gain)
y = K .* u
 înmulţire matricială (Matrix gain):
y=K*u
y=u*K
In cazul înmulţirii element cu element, matricea K şi intrarea u trebuie să aibe
dimensiunile compatibile operaţiei .*.
In cazul înmulţirii matriciale, K este o matrice compatibilă pentru înmulţirea cu
intrarea u, nu neapărat o matrice patrată. Dimensiunea ieşirii y este dimensiunea
matricei rezultat. Tipul operaţiei realizate de bloc se alege din lista Multiplication a
casetei de dialog a blocului Gain, vezi Figura 15.

21
Figura 15. Lista Multiplication a blocului Gain.
Exemplu. Fie din nou ecuaţia diferenţială
x’’ + 3*x’ + 2x = 0
Vrem să calculăm soluţia ecuaţiei în condiţiile iniţiale x 0 = 1 şi x0’ = 0. Vom pune
ecuaţia sub forma unui sistem de ecuaţii diferenţiale de ordin întâi. Cu substituţiile
y = x1
y' = x2
obţinem sistemul
0 1
y'   y
 2  3
Modelul este cel din Figura 16, în care semnalele sunt vectori cu dimensiunea 2. In
cazul semnalelor multidimensionale se poate afişa dimensiunea semnalelor. Se
selectează un semnal şi se execută un clic pe opţiunea Signal dimension a meniului
Format. Dimensiunile semnalelor apar ca în Figura 16.

Figura 16. Modelul ecuaţiei diferenţiale x’’ + 3x’ + 2x = 0.

22
Parametrul blocului Gain este matricea
0 1
K  
 2  3
Caseta de dialog a blocului Gain în acest caz este arătată în Figura 17. In lista
Multiplication s-a ales opţiunea K * u.

Figura 17. Parametrii blocului Gain.


Rezultatul simulării sistemului este arătat în Figura 18.

Figura 18. Rezultatul simulării sistemului din Figura 16.

23
3.6 Parametrii simulării
Parametrii simulării se prescriu cu opţiunile meniului Simulation din Figura 19.

Figura 19. Meniul Simulation.


La un clic pe opţiunea Simulation parameters se afişază caseta de dialog Simulation
Parameters secţiunea Solver din Figura 20. In această casetă se aleg:
 timpul iniţial al simulării (Start time) şi timpul final (Stop time) în zona
Simulation time,
 metoda de integrare şi tipul metodei, cu pas fix sau variabil din listele Type ale
zonei Solver options.
 în cazul metodelor cu pas variabil se pot alege erorile, relativă (Relative
tolerance) şi absolută (Absolute tolerance), dimensiunea iniţială a pasului de
integrare (Iniţial step size), dimensiunile minimă (Min step size) şi maximă
(Max step size) ale pasului de integrare, etc.
Menţionăm că în dreapta jos a ferestrei modelului este afişată metoda de integrare
utilizată.

Figura 20. Caseta de dialog Simulation Parameters, secţiunea Solver.

24
Pentru a începe simularea clic pe opţiunea Start a meniului Simulation din Figura 19
sau pe butonul din bara de instrumente. Pentru oprirea simulării clic pe opţiunea
Stop a meniului Simulation sau pe butonul din bara de instrumente. Rezultatul
simulării se afişază pe blocul Scope. Figura 14 prezintă rezultatul simulării sistemului
din Figura 11.
Este posibil ca rezultatele simulării să fie transmise în spaţiul de lucru Matlab pentru
prelucrări ulterioare sau să se citească din spaţiul Matlab starea iniţială a modelului şi
intrări pentru anumite blocuri. Pentru aceasta se utilizează secţiunea Workspace I/O a
casetei de dialog Simulation Parameters din Figura 21.

Figura 21. Caseta de dialog Simulation parameters, secţiunea Workspace I/O.


Vom arăta utilizarea cestor facilităţi în paragrafele următoare.

3.6.1 Scrierea stării şi ieşirilor porturilor în spaţiul Matlab


In zona Save to Workspace se marchează datele ce vor fi transmise în spaţiul de lucru
Matlab:
 se marchează opţiunea Time şi se transmite vectorul tout cu momentele de
timp în care s-a calculat soluţia,
 se marchează opţiunea States şi se transmite matricea xout ce conţine pe
coloane valorile variabilelor de stare ce compun soluţia (ieşirile
integratoarelor).
 se marchează opţiunea Output şi se transmite matricea yout ce conţine pe
coloane ieşirile blocurilor tip Outport, porturile de ieşire din model.
Menţionăm că numele acestor variabile pot fi schimbate după dorinţă în caseta de text
corespunzătoare.
Pentru exemplul de mai sus s-au transmis în spaţiul Matlab vectorul tout şi matricea
xout şi s-a reprezentat soluţia cu următorul program :

>> plot(tout, xout)


>> grid

25
>> xlabel('time')

Rezultatul programului este cel din Figura 22.

Figura 22. Soluţia sistemului din Figura 16 reprezentată în Matlab.


Fie acum modelul din Figura 23, în care ieşirile unor blocuri sunt conectate la blocuri
tip Outport, care sunt aici porturi de ieşire ale modelului. Pentru a transmite ieşirile
blocurilor tip Outport, Out1 şi Out2 în spaţiul de lucru Matlab, se marchează opţiunea
Output din Figura 21.

26
Figura 23. Model cu blocuri tip Outport.
Rezultatele transmise în spaţiul Matlab se reprezintă grafic în Figura 24 cu programul
următor:

>> plot(tout, yout)


>> grid
>> xlabel('time')
>> ylabel('1-cos(time), cos(time)')
>> legend('1-cos(time)', 'cos(time)', 2)

Menţionăm că s-a transmis în spaţiul Matlab şi vectorul tout cu momentele de timp la


care s-a calculat soluţia. In cazul nostru matricea yout are două coloane cu ieşirile
celor două blocuri tip Outport, Out1 şi Out2. Câteva din elementele matricei yout sunt
prezentate mai jos.

>> yout
yout =
0 0
0.0199 0.9933
0.0789 0.9537
0.1747 0.8761
0.3033 0.7636
0.4597 0.6206
0.6376 0.4528
0.8300 0.2671
1.0292 0.0706
1.2272 -0.1286

27
Figura 24. Soluţia sistemului din Figura 23 reprezentată în Matlab.

3.6.2 Citirea stării iniţiale şi a intrărilor porturilor din spaţiul Matlab


Este posibil de a prescrie ca stare iniţială a modelului un vector din spaţiul Matlab şi
de a importa date care să fie intrările blocurilor tip Inport din model (porturile de
intrare ale modelului). Datele vor fi în forma unei matrice care conţine în prima
coloană valorile timpului în ordine crescătoare, iar în coloanele următoare valorile
funcţiilor de timp ce vor fi importate .
Prescrierea stării iniţiale a modelului se face astfel :
1. se validează opţiunea opţiunea Initial state din zona Load from workspace din
Figura 21,
2. în spaţiul de lucru Matlab se defineşte vectorul xInitial cu valorile dorite pentru
starea iniţială a modelului.
Vom exemplifica acest lucru pe modelul din Figura 16. In caseta de dialog din Figura
25 se marchează opţiunea Initial state.

28
Figura 25. Prescrierea stării iniţiale a modelului în spaţiul de lucru Matlab.
In spaţiul Matlab prescriem vectorul stării iniţiale xInitial ca mai jos:

>> xInitial = [0 1]';

ce corespunde stării iniţiale x0=0 şi x’0=1. Rezultatul simulării este cel din Figura 26.

Figura 26. Rezultatul simulării sistemului din Figura 16.


Vom arăta acum modul de a importa date care vor fi intrările elementelor tip Inport
(porturile de intrare ale modelului). Datele au forma unei matrice care conţine în
prima coloană valorile timpului în ordine crescătoare, iar în coloanele următoare
valorile funcţiilor de timp ce vor fi importate.
Fie modelul din Figura 27 în care vom integra o serie de timp citită din spaţiul de
lucru Matlab. In caseta Simulation Parameters, secţiunea Workspace I/O din Figura

29
25 vom marca opţiunea Input din zona Load from workspace, iar în caseta de text
corespunzătoare vom scrie numele variabilelor din spaţiul de lucru Matlab ce conţin
timpul şi seria de timp citită. Numele implicite ale acestor variabile sunt [t, u]. In
cazul nostru vom păstra numele implicite. Instrucţiunile Matlab ce dau valori acestor
variabile sunt:

>> t = (0: 0.1: 5)';


>> u = [sin(2 * t)];

In model aceste date sunt ieşirea elementului Inport In1.

Figura 27. Importarea datelor din spaţiul de lucru Matlab.

Figura 28. Rezultatul simulării modelului din Figura 27.

30
3.7 Afişarea rezultatelor
Aplicaţia Simulink are blocuri pentru reprezentarea grafică a rezultatelor, pentru
scrierea rezultatelor într-un fişier sau pentru transmiterea lor în spaţiul de lucru
Matlab pentru prelucrări ulterioare. In acest paragraf vom prezenta blocurile pentru
afişarea grafică a rezultatelor.
Blocurile Scope, Floating Scope şi XYGraph se utilizează pentru reprezentarea
grafică a rezultatelor. Blocul Scope are intrări ce pot fi scalari, vectori sau matrice şi
reprezintă rezultatele în funcţie de variabila independentă a simulării, de regulă
timpul. Blocul XYGraph are două intrări, X şi Y şi reprezintă curbe de forma Y(X).
Blocul Floating Scope nu este conectat la elemente.
Blocul Display afişază valoarea intrării pe icoana blocului.
Aceste blocuri sunt simbolizate ca în Tabelul 12. Ele se găsesc în biblioteca Sinks.

Bloc Simbolizare
Scope

XY graph

Floating Scope
Display
Tabelul 12. Blocuri de afişare a rezultatelor.

3.7.1 Blocul Scope


Fereastra blocului Scope a fost arătată în Figura 14, Figura 18 şi Figura 26. Butoanele
barei de instrumente a blocului Scope au semnificaţia din Tabelul 13.

Buton Semnificaţie
Tipărire
Parametrii blocului
Zoom
Zoom axa X
Zoom axa Y
Autoscale (Autoscalare)

Tabelul 13. Bara de instrumente a blocului Scope.


Butoanele Zoom permit extinderea anumitor zone ale figurii. Opţiunea Autoscale
(Autoscalare) extinde graficul la întreaga fereastră. Acelaşi efect se obţine cu un clic
cu butonul drept pe axele figurii sau pe figură. Se afişază meniul contextual din
Tabelul 14 în care se poate activa opţiunea Autoscale şi se pot alege proprietăţile
axelor. Acestea sunt : valorile minimă şi maximă pentru axa Y, Y-min şi Y-max şi
titlul graficului.

31
a) Meniu contextual al blocului Scope b) Alegerea proprietăţilor axelor
Tabelul 14. Alegerea parametrilor blocului Scope.

Butonul permite alegerea parametrilor blocului. La un clic pe buton se afişază


caseta de dialog din Tabelul 15 ; în secţiunile ei se prescriu în secţiunea General
parametrii axelor, iar în secţiunea Data history numărul de puncte reprezentate, dacă
se vor salva datele în spaţiul Matlab, etc.
Un parametru important este numărul de axe (implicit 1), care dă numărul de intrări
ale blocului Scope care este şi numărul de ferestre ale blocului.

a) Secţiunea General b) Secţiunea Parameters


Tabelul 15. Alegerea parametrilor blocului Scope.
Vom exemplifica utilizarea parametrilor blocului Scope la modelul de mai jos. Acesta
este sistemul din Figura 11, repetat în Figura 29, pentru care dorim să reprezentăm
grafic mărimile x şi x’ în două ferestre. Pentru aceasta se modifică parametrul
Number of axes la 2 ca în Figura 30 ; acum blocul Scope are două intrări şi afişază
fiecare intrare într-o fereastră separată.

32
Figura 29. Modelul ecuaţiei diferenţiale x’’+3x’+2x=0.

Figura 30. Modificarea parametrilor blocului Scope.


Rezultatul simulării este cel din Figura 31.

33
Figura 31. Rezultatul simulării sistemului din Figura 29.
Pentru a transmite în spaţiul de lucru Matlab rezultatele reprezentate grafic de blocul
Scope se validează opţiunea Save data to workspace din caseta de dialog Scope’s
parameters, secţiunea Data history, vezi Tabelul 15b. In caseta de text
corespunzătoare se poate prescrie numele structurii de date ce va fi exportată în
spaţiul Matlab. Numele implicit al acestei structuri este ScopeData. Formatul ei poate
fi ales din lista din Figura 32. In cazul când se alege formatul Structure sau
Structure with time, elementele structurii sunt cele de mai jos.

>> ScopeData
ScopeData =
time: [56x1 double]
signals: [1x2 struct]
blockName: 'ex1a/Scope'

ScopeData.time este un vector cu momentele de timp ale soluţiei. Elementul


ScopeData.signals este o structură ce conţine:
 valorile mărimilor reprezentate grafic, ScopeData.signals.values,
 numărul de mărimi reprezentate pe fiecare grafic,
ScopeData.signals.dimensions,
 titlul, ScopeData.signals.title,
 etichetele graficelor, ScopeData.signals.label.
Elementele structurii sunt afişate în Matlab ca mai jos.

>> ScopeData.signals
ans =
1x2 struct array with fields:
values
dimensions
label
title
plotStyle

34
Figura 32. Alegerea tipului variabilei ScopeData.
In cazul nostru blocul Scope are două ferestre. In consecinţă, structura
ScopeData.signals are două câmpuri, vezi mai sus. Valorile memorate în primul câmp
se accesează cu indicele 1, ScopeData.signals(1).values, ScopeData.signals(1).label,
etc. Avem de exemplu

>> ScopeData.signals(1).label
ans =
x'

>> ScopeData.signals(2).label
ans =
x

Opţiunea Array se poate alege doar dacă blocul Scope are o singură intrare. Structura
de date este asemănătoare cu cea anterioară.

3.7.2 Blocul XYGraph


Este posibil să reprezentăm traiectoria de fază x' = f(x) cu ajutorul blocului XYGraph.
Blocul are două intrări scalare, prima intrare corespunde axei X. Vom reprezenta
planul fazelor pentru modelul din Figura 33 in condiţiile iniţiale x0=1 şi x’0=0. Ieşirile
x' şi x sunt conectate la un bloc XYGraph.

35
Figura 33. Modelul ecuaţiei diferenţiale ordinare x'' + 3x' + 2x = 0.
Traiectoria de fază a sistemului este cea din Figura 34.

Figura 34. Planul fazelor pentru ecuaţia diferenţială ordinară x'' + 3x' + 2x = 0.
Pentru a prescribe limitele axelor X şi Y se selectează blocul şi clic pe opţiunea Mask
Parameters a meniului Edit sau a meniului contextual al blocului.

3.7.3 Blocul Display


Blocul Display afişază valoarea intrării în icoana sa. Exemple de utilizare a acestui
bloc vor fi prezentate ulterior.

36
3.7.4 Blocul Floating Scope
Blocul Floating Scope poate reprezenta semnalele de pe una sau mai multe linii.
Pentru aceasta se include în model un bloc Floating Scope şi se procedează astfel:
1. se selectează blocul cu un clic,
2. se selectează semnalele ce vor fi afişate de bloc ţinând apăsată tasta Shift şi
executând clic pe fiecare semnal ce va fi afişat.
Se execută apoi simularea.
Fie sistemul din Figura 35. Se calculează ieşirea lui la o treaptă aplicată la timpul 1.

Figura 35. Calculul ieşirii unui sistem.


Semnalele sunt afişate de blocul Floating Scope ca în Figura 36.
In Figura 35 se observă că blocul Floating Scope şi semnalele u şi y sunt selectate.

37
Figura 36. Blocul Floating Scope.

3.8 Salvarea datelor în fişiere şi spaţiul de lucru Matlab


Pentru a salva rezultatele simulării în fişiere sau în spaţiul de lucru Matlab se
utilizează blocurile To File şi To Workspace. Reamintim că putem transmite în spaţiul
de lucru Matlab starea sistemului, ieşirile blocurilor tip Outport, etc. prescriind
anumiţi parametri ai simulării, ca într-un paragraf anterior. Blocurile To File şi To
Workspace sunt simbolizate ca în Tabelul 16. Ele se găsesc în biblioteca Sinks.

Bloc Simbolizare
To File

To Workspace

Tabelul 16. Blocuri de salvare a datelor în fişiere şi în Matlab.


Fie sistemul din Figura 37 care utilizează blocuri To Workspace şi To File.

38
Figura 37. Blocurile To file şi To simout.
Caseta cu parametrii blocului To File este arătată în Figura 38. Parametrii blocului
sunt următorii :
 Filename este numele fişierului în care se scriu datele. Blocul To File scrie o
coloană la fiecare moment de timp, primul rând este timpul, următoarele
rânduri sunt datele simulării (intrarea în blocul To File).
 Variable name este numele matricei cu date ce va fi scrisă în fişier. Numele
implicit al matricei este ans.

Figura 38. Caseta de dialog cu parametrii blocului To file.

39
In exemplul de mai sus numele fişierului este data.mat, iar numele matricei ce va fi
scrisă în acest fişier Matlab este sinrez.
Primele coloane a matricei sinrez în cazul modelului din Figura 37 sunt reprezentate
mai jos. Programul Matlab de mai jos încarcă datele din fişierul data.mat şi afişază
matricea sinrez din acest fişier.

>> load data.mat


>> sinrez
sinrez =
Columns 1 through 7

0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000


-1.0000 -0.9801 -0.9211 -0.8253 -0.6967 -0.5403 -0.3624

Blocul To Workspace scrie datele în spaţiul Matlab. Caseta de dialog a blocului este
arătată în Figura 39.

Figura 39. Caseta de dialog cu parametrii blocului To Workspace.


Parametrii blocului sunt următorii:
 în caseta de text Variable name se introduce numele structurii ce va conţine
datele ; numele implicit este simout,
 în lista Save format se alege formatul în care se vor salva datele.
Formatul datelor este asemănător cu cel al blocului Scope. In cazul când formatul este
Array datele se scriu într-o matrice cu valorile pe coloane. In celelalte cazuri formatul
datelor este structura de mai jos.

>> simout

simout =

40
time: [51x1 double]
signals: [1x1 struct]
blockName: 'data/To Workspace'

Dacă formatul ales este StructureWithTime, componenta simout.time conţine


momentele de timp în care este calculată soluţia.
Componenta values conţine datele simulării. Ea are formatul de mai jos.

>> simout.signals

ans =

values: [51x1 double]


dimensions: 1
label: ''

Componenta simout.signals.values conţine datele simulării.

3.9 Citirea datelor din fişiere şi spaţiul de lucru Matlab


Este posibil de a citi date din fişiere sau din spaţiul de lucru Matlab pentru a fi
utilizate ca întrări ale unor blocuri din model. Blocurile utilizate sunt From Workspace
şi From File. Ele se găsesc în biblioteca Sources.
Menţionăm că putem citi din spaţiul Matlab starea iniţială a sistemului şi intrările
blocurilor tip Inport, prescriind anumiţi parametri ai simulării, ca într-un paragraf
anterior.

Bloc Simbolizare
From File
From Workspace

Tabelul 17. Blocuri de citire a datelor din fişiere şi Matlab.


Modelul din Figura 40 utilizează blocul From Workspace.

41
Figura 40. Blocul From Workspace.
Caseta de dialog a blocului From Workspace este arătată în Figura 41. In caseta Data
se introduce numele matricei ce conţine datele. Numele implicit al matricei este simin.
Un format al datelor citite este acela de matrice care conţine valorile timpului în prima
coloană şi valorile corespunzătoare ale funcţiei de timp în a doua coloană.. In
exemplul de mai sus matricea este generată cu instrucţiunile de mai jos

>> t = (0: 0.1: 5)';


>> u = sin(t);
>> simin = [t, u];

Rezultatul derivării funcţiei sin(t) este arătat în Figura 42.

42
Figura 41. Caseta de dialog a blocului From Workspace.

Figura 42. Rezultatul simulării sistemului din Figura 40.

3.10 Simularea unui model Simulink în Matlab


Un model Simulink odată creat poate fi simulat în Matlab cu funcţia sim
[t, x, y] = sim('model', tspan, options, ut)
Parametrii instrucţiunii sunt:
 'model' - numele modelului (numele fişierului . mdl)
 tspan - vectorul [tstart, tfinal], cu timpii de început şi de sfârşit ai simulării

43
 options - vector cu opţiunile simulării, cu perechi nume, valoare
 ut - intrare externă opţională, utilizată când modelul are porturi de intrare
(blocuri de tip Inport).
Rezultatul funcţiei sim este matrice ce conţine
 t - vector cu timpii soluţiei,
 x - matrice cu starea modelului, stările continue (ieşirile integratoarelor) şi
stările discrete (ieşirile elementelor discrete),
 y - matrice cu ieşirile porturilor modelului (blocuri de tip Outport).
Ca exemplu vom simula în Matlab modelul ex1 din Figura 11. Programul

[t, x, y] = sim('ex1', [0, 5], [], []);


plot(t, x);
grid
xlabel('timp')
ylabel('x', 'x''')
legend('x', 'x''')

are ca rezultat curbele din Figura 43.

Figura 43. Rezultatul simulării ecuaţiei x'' + 3x' + 2x = 0.

44
3.11 Blocurile Mux şi Demux
In general, blocurile Simulink pot avea ca intrare un scalar, un vector, sau o matrice.
Un asemenea bloc este integratorul. Pentru a lucra cu semnale multidimensionale
există blocul Mux, care grupează semnalele într-un vector de semnale, şi blocul
Demux, ce extrage semnalele grupate anterior. Blocurile Mux şi Demux sunt
simbolizate ca în Tabelul 18. Ele se găsesc în biblioteca Signal Routing.

Bloc Simbolizare
Mux

Demux

Tabelul 18. Blocurile Mux şi Demux.


Semnalele de la intrările şi ieşirile blocurilor Mux şi Demux sunt, în general,
multidimensionale. In model, putem evidenţia aceste semnale astfel :
 Putem reprezenta aceste semnale îngroşat, cu clic pe Format  Port / Signal
Display  Wide Nonscalar Lines,
 Putem afişa pe fiecare semnal din model dimensiunea lui, cu clic pe Format
 Port / Signal Display  Signal Dimensions,
 Putem afişa pe fiecare semnal tipul semnalului cu clic pe Format  Port /
Signal Display  Port Data Types.

3.11.1Crearea semnalelor cu blocul Mux


Blocul Mux are un parametru, Number of inputs, ce specifică numărul de porturi de
intrare în bloc. Dacă acest parametru este un număr, el specifică numărul de intrări în
bloc şi fiecare semnal de intrare poate fi scalar sau vector de orice dimensiune. Dacă
parametrul este un vector, numărul de componente ale vectorului dă numărul de
intrări ale blocului, şi fiecare element al vectorului dă dimensiunea semnalului la
intrarea respectivă.
Semnalele de intrare în blocul Mux pot fi scalari, vectori, de tip numeric. Ordinea
semnalelor este cea în care ele apar la intrările blocului Mux.

3.11.2Extragerea semnalelor din blocul Demux


Blocul Demux are două moduri de lucru :
 modul Bus Selection, în care blocul poate avea ca intrare un semnal creat de un
bloc Mux, sau ieşirea unui alt bloc Demux,
 modul Vector în care blocul poate avea ca semnal de intrare un semnal scalar,
vector sau matrice, generat de un bloc de alt tip.
Blocul Demux are un parametru Bus selection mode care arată modul de lucru al
blocului. Dacă parametrul este marcat, intrarea trebuie să fie generată de un bloc Mux,
sau să fie ieşirea unui alt bloc Demux.
Blocul are un parametru Number of outputs în care se specifică numărul de ieşiri
(porturi) ale blocului Demux şi dimensiunea fiecărei ieşiri.
Modul de extragere a semnalelor din blocul Demux. depinde de modul de lucru al
blocului.

45
3.11.2.1 Extragerea semnalelor în modul de lucru Vector
Extragerea semnalelor în modul de lucru Vector se face astfel : când valoarea
parametrului Number of outputs este un număr p, egal cu numărul de intrări n, acest
număr specifică numărul de ieşiri scalare ale blocului. Când valoarea parametrului
Number of outputs este un număr p, mai mic decât numărul de intrări n, acest număr
p specifică numărul de ieşiri. Dimensiunea fiecărei ieşiri se calculează astfel :
 dacă n mod p = 0, fiecare ieşire are dimensiunea n / p,
 dacă n mod p = m, m ieşiri au n / p+1 elemente, celelalte p – m ieşiri au n / p
elemente.
Când parametrul Number of outputs este un vector, dimensiunea vectorului dă
numărul de ieşiri (porturi), şi fiecare component dă dimensiunea semnalului unei ieşiri
a blocului.
Fie de exemplu modelul din Figura 44, în care blocul Sin Wave generează trei
semnale sinusoidale, decalate cu 2*pi/3. Vom reprezenta cele trei semnale pe acelaşi
grafic, în blocul Scope3, şi primele două semnale pe un grafic în blocul Scope şi al
treilea semnal pe un grafic în blocul Scope1.

Figura 44. Demultiplexarea semnalelor.


Semnalele au fost desenate îngroşat şi cu dimensiunile lor, aşa cum s-a arătat mai sus.
Parametrii blocului Demux sunt cei din Figura 45. Parametrul Number of outputs are
ca valoare vectorul [2 1].

46
Figura 45. Parametrii blocului Demux.
Semnalele sunt cele din Figura 46, pentru blocul Scope3 cu cele trei semnale, şi în
Figura 47 şi Figura 48 pentru semnalele demultiplexate.

Figura 46. Blocul Scope3 cu cele trei semnale.

47
Figura 47. Blocul Scope cu primele două semnale.

Figura 48. Blocul Scope1 cu al treilea semnal.

3.11.2.2 Extragerea semnalelor în modul de lucru Bus Selection


Extragerea semnalelor în modul de lucru Bus Selection se face astfel :
 dacă valoarea parametrului Number of outputs este un scalar, el dă numărul
de porturi de ieşire. Acest număr trebuie să fie egal cu numărul de semnale de
intrare în blocul Demux,
 dacă parametrul Number of outputs este un vector, componentele vectorului
dau numărul de semnale ale fiecărui port.
Fie modelul din Figura 49, în care blocul Sin Wave generează un semnal cu
dimensiunea trei, blocul Pulse Generator un semnal cu dimensiunea doi, iar blocul
Random Number un semnal cu dimensiunea doi. Intrarea blocurilor tip Demux este
ieşirea blocului tip Mux. Se observă că linia ce conectează ieşirea blocului Mux cu
intrarea blocurilor Demux este diferită în acest mod de lucru faţă de modul Vector.

48
Figura 49. Demultiplexarea semnalelor.
Pe liniile ce conectează blocurile Mux şi Demux sunt marcate numărul de semnale şi
suma dimensiunilor acestor semnale.
Parametrul Bus Selection Mode al blocurilor Demux este marcat. Blocul Demux are
ca parametru Number of Outputs valoarea trei, care este numărul de semnale şi deci
numărul de porturi de ieşire. Semnalele la cele trei ieşiri ale blocului Demux sunt
arătate în Figura 50, Figura 51, Figura 52.

Figura 50. Primul port al blocului Demux.

49
Figura 51. Al doilea port al blocului Demux.

Figura 52. Al treilea port al blocului Demux.


Blocul Demux1 are ca parametru Number of Outputs vectorul [2 1], care arată că
blocul are două porturi (ieşiri), la primul port sunt conectate primele două semnale, la
cel de al doilea port este conectat al treilea semnal. Figura 53 arată prima ieşire a
blocului Demux1, ce conţine primele două semnale. Figura 54 arată a doua ieşire a
blocului Demux1 cu al treilea semnal.

50
Figura 53. Primul port al blocului Demux1.

Figura 54. Al doilea port al blocului Demux1.


Vom exemplifica utilizarea blocurilor Mux şi Demux la un model ce integrează
ecuaţia diferenţială
x'' + 3x' + 2x = 0
în condiţiile iniţiale x0=1 şi x0'=0.
Ieşirile blocului Integrator vor fi x şi x', iar intrările vor fi x' şi x'' unde
x'' = -3x' – 2x
Vom crea o magistrală cu semnalele x’ şi x’’ cu un bloc Mux, ce va fi introdusă la
intrarea blocului integrator. Condiţia iniţială pentru elementul integrator este vectorul
coloană [1 0]'. Pentru a crea semnalele x’ şi x’’ vom utiliza un bloc Demux ce extrage
din magistrală semnalele x şi x’. Modelul ecuaţiei diferenţiale este cel din Figura 55.
Parametrul Bus selection mode nu este marcat, deci blocul Demux lucrează în modul
Vector. Parametrul Number of outputs are valoarea doi.

51
Figura 55. Modelul ecuaţiei diferenţiale x'' + 3x' + 2x = 0.
Intrarea în blocul Scope este ieşirea integratorului, vectorul [x x’]’. Dimensiunea
semnalelor multidimensionale este afişată selectând un semnal şi executând clic pe
opţiunea Signal dimensions a meniului Format. Semnalele multidimensionale sunt
desenate îngroşat, selectând un semnal şi executând clic pe opţiunea Wide nonscalar
lines a aceluiaşi meniu. Rezultatul simulării modelului este cel din Figura 18.

3.12 Blocurile Bus Creator şi Bus Selector


Un bus (magistrală) este un semnal compus ce are o structură ierarhică. Semnalele
componente pot fi, la rândul lor, semnale compuse şi pot fi de tipuri diferite. Pentru a
lucra cu semnale compuse de tip bus, există trei blocuri: Blocul Bus Creator crează un
semnal tip bus din semnalele de la intrarea sa. Blocul Bus Selector selectează
semnalele din bus. Blocul Bus Assignment atribuie valori semnalelor din bus. Ele sunt
simbolizate ca în Tabelul 19 şi se găsesc în biblioteca Signal Routing.

Bloc Simbolizare
Bus Creator

Bus Selector

Bus Assignment

Tabelul 19. Blocurile Bus Creator, Bus Selector, Bus Assignment.

52
3.12.1 Crearea unui bus
Blocul Bus Creator crează un bus din semnalele de la intrările sale. Fiecare semnal are
un nume, atribuit de bloc (implicit), sau de utilizator. Semnalul poate avea numele
semnalului conectat la intrare (implicit), sau alt nume.
Vom exemplifica utilizarea blocului Bus Creator pe modelul din Figura 56, în care
creăm un bus cu două semnale, unul cu dimensiunea unu, creat de blocul Pulse
Generator, altul cu dimensiunea doi, creat de blocul Sine Wave.

Figura 56. Crearea unei magistrale (bus).


Blocul Bus Creator are caseta cu parametri din Figura 57.
In caseta Number of inputs introducem numărul de semnale, care este numărul de
intrări în bloc.
Numele semnalelor apar în lista Signals in bus. Aceste nume se aleg astfel:
 dacă în lista din zona Parameters alegem opţiunea Inherit bus signal name
from input ports, blocul atribuie semnalelor numele semnalelor conectate la
porturi, sau numele inplicite signal1, signal2, …, dacă aceste semnale nu au
nume.
 dacă alegem opţiunea Require input signal names to match signals below,
putem alegem numele dorite pentru semnale.
Pentru a modifica numele unui semnal se procedează astfel:
1. selectăm opţiunea Require input signal names to match signals below,
2. selectăm semnalul în lista Signals in bus,
3. în lista Rename selected signal se introduce noul nume al semnalului,
4. clic pe butonul Apply.

53
Figura 57. Caseta cu parametrii a blocului Bus Creator.
Putem afla sursa unui semnal selectând semnalul cu un clic şi apoi clic pe butonul
Find. In Figura 58 este afişată sursa semnalului signal1

54
Figura 58. Afişarea sursei unui semnal.

3.12.2 Selectarea semnalelor din bus


Blocul Bus Selector selectează semnalele din bus. Selectarea semnalelor la ieşiri se
face în caseta cu parametrii blocului din Figura 59. In lista Signals in the bus sunt
afişate semnalele din bus cu numele lor, în ordinea în care au fost introduse în bus. In
lista Selected signals sunt semnalele selectate pentru fiecare ieşire, în ordinea dorită.
Implicit, semnalele la ieşiri au ordinea din bus. Selectarea semnalelor la ieşiri, în
ordinea în care vrem se face astfel:
1. se selectează un semnal în caseta Signals in the bus,
2. clic pe butonul Select, .
Se poate şterge un semnal din lista Selected Signals selectându-l în lista Selected
signals şi apoi clic pe butonul .
Se poate naviga prin semnalele din lista Selected signals cu butoanele Up,
şi Down, .

55
Figura 59. Caseta cu parametri a blocului Bus Selector.

56
4 Blocuri pentru generarea şi analiza semnalelor
4.1 Blocuri pentru generarea semnalelor
In Simulink există blocuri de semnal pentru generarea de semnale standard : treaptă,
rampă, sinusoidă, zgomote aleatoare cu distribuţie uniformă şi gaussiană, etc. Câteva
din aceste blocuri sunt prezentate în Tabelul 20. Ele se găsesc în biblioteca Sources.

Bloc Simbolizare
Ceasul simulării

Constantă

Treaptă

Rampă

Generator de zgomot uniform

Generator de zgomot gaussian

Generator sinusoidal

Generator de impulsuri
Generator de zgomot alb cu
bandă limitată
Tabelul 20. Blocuri de generare a semnalelor.
O descriere a acestor blocuri este următoarea:
 blocul Ceasul simulării generează timpul simulării,
 blocul Constantă generează o constantă care poate fi scalar, vector sau matrice,
 blocul Treaptă (Step), generează semnale treaptă, scalare, vectori sau matrice.
Pentru fiecare semnal se prescriu parametrii valoarea iniţială, finală şi
momentul saltului,
 blocul Rampă generează semnale rampă scalare, vectori sau matrice. Pentru
fiecare semnal se prescriu parametrii momentul de începere, panta şi valoarea
iniţială a semnalului,
 blocul Generator de zgomot uniform generează zgomote aleatoare uniforme
scalare, vectori sau matrice. Pentru fiecare semnal se prescriu parametrii
valoarea minimă şi maximă. Semnalele necesită un parametru suplimentar, un
număr natural impar,
 blocul Generator de zgomot gaussian generează zgomote aleatoare gaussiene
scalare, vectori sau matrice. Pentru fiecare semnal se prescriu parametrii
valoarea medie şi dispersia. Semnalele necesită un parametru suplimentar, un
număr natural impar.
 blocul Generator sinusoidal (Sin Wave), generează semnale sinusoidale,
scalare, vectori sau matrice. Pentru fiecare semnal se prescriu parametrii
amplitudine, faza (rad) şi frecvenţa (rad/s),

57
 blocul Generator de impulsuri generează trenuri de impulsuri scalare, vectori
sau matrice. Pentru fiecare semnal se prescriu parametrii amplitudine, perioada
(s), lăţimea impulsului (% din perioadă) şi întârzierea de fază (s),
 blocul Generator de zgomot alb cu bandă limitată generează zgomot alb
gaussian.

4.2 Blocuri pentru analiza semnalelor


Blocurile de analiza semnalelor sunt cele din Tabelul 21. Ele sunt definite în
biblioteca Simulink Extras / Additional Sinks.

Bloc Simbolizare
Autocorelaţie

Corelaţie

Analizor de spectru

Tabelul 21. Blocuri de analiza semnalelor.


Menţionăm că, pentru toate blocurile ce nu sunt definite în biblioteca Simulink, vezi
Figura 5, putem afişa biblioteca unui bloc în felul următor:
1. se selectează bloc,
2. clic pe Edit  Link Options  Go To Library Block, sau pe opţiunile Link
Options  Go To Library Block ale meniului contextual al blocului.
De exemplu, biblioteca Simulink Extras / Additional Sinks din Figura 60, se afişază
cu clic pe blocul Cross Correlator din Figura 61.

Figura 60. Biblioteca Simulink Extras / Additional Sinks.

58
Primul exemplu de utilizare a blocurilor de semnal este calculul corelaţiei a două
semnale sinusoidale, sin(2πt) şi sin(2πt) + n(t), unde n(t) este zgomot alb gaussian cu
valoare medie nulă şi dispersia unu. Modelul sistemului este cel din Figura 61.
Corelaţia este calculată de blocul Cross Correlator care are ca intrări cele două
semnale. Funcţia de corelaţie este cea din Figura 62.

Figura 61. Calculul corelaţiei a două semnale sinusoidale.

59
Figura 62. Corelaţia a două semnale sinusoidale.
Al doilea exemplu este calculul funcţiei de autocorelaţie a unui semnal sinusoidal.
Funcţia de autocorelaţie a unui semnal se defineşte ca
P
1
R    lim  f  t  f  t    dt
P  2 P  P

In cazul unei funcţii periodice, se arată că se poate calcula integrala doar pe o


perioadă. Pentru funcţia
f  t   A sin   c t 
Funcţia de autocorelaţie este
A2
R    cos  c 
2
Fie de calculat funcţia de autocorelaţie pentru semnalul f  t   sin  2t  .
Modelul este cel din Figura 63, iar rezultatul este cel din Figura 64.

60
Figura 63. calculul autocorelaţiei unui semnal sinusoidal.

Figura 64. Autocorelaţia unui semnal sinusoidal.

61
Al treilea exemplu este analiza spectrului semnalului la ieşirea unei funcţii de transfer.
Modelul este cel din Figura 65, iar spectrul este cel din Figura 66.
Parametrii blocului Band Limited White Noise sunt puterea zgomotului = 0.1, timpul
de eşantionare 0.1s. Parametrii blocului Spectrum Analyzer sunt dimensiunea
transformatei Fourier 256 puncte, timpul de eşantionare 0.1s.

Figura 65. Analiza spectrului unei funcţii de transfer.

62
Figura 66. Spectrul unei funcţii de transfer.
Vom reprezenta caracteristicile logaritmice de frecvenţă ale funcţiei de transfer de mai
sus.
 creăm un obiect funcţie de transfer

>> M = [1];
>> N = [1 1];
>> tfa = tf(M, N);
>> tfa

Transfer function:
1
-----
s+1

 reprezentăm grafic caracteristicile amplitudine şi fază la scară logaritmică

63
>> bode(tfa)
>> grid

Rezultatul este cel din

Figura 67. Caracteristicile logaritmice ale funcţiei de transfer 1 / (s + 1).

4.3 Analiza modelelor la diverse intrări


Aplicaţia Signal & Scope Manager ne permite să aplicăm la intrarea unui model
diverse intrări şi să observăm ieşirea.
Aplicaţia se lansează cu clic pe Tools  Signal & Scope Manager al ferestrei
editorului de modele. Fereastra aplicaţiei este cea din Figura 68. In partea stângă
există fereastra Types cu tipurile de elemente generatoare de semnal şi elemente de
afişare a semnalelor. In partea dreaptă sus există fereastra Generators / Viewers in
model, cu secţiunile Generators şi Viewers cu liste cu generatoarele de semnal şi
elemente de afişare a semnalelor ataşate modelului. Fereastra are trei butoane:
 Open parameters for selection, , care afişază caseta cu parametri a
elementului selectat,
 Edit signal connection for selection, , care afişază caseta Port Selector
pentru elementul selectat. In această casetă alegem elemental din model la care
conectăm generatorul de semnal sau elementul de afişare selectat,

64
 Delete selection, , care şterge generatorul de semnal sau elementul de
afişare selectat.
In dreapta jos este lista Signals connected to generator / Viewer. La un clic pe un
generator de semnal / element de afişare se afişază semnalele conectate la generatorul
de semnal / elementul de afişare.

Figura 68. Fereastra aplicaţiei Signal & Scope Manager.


Fie de exemplu, modelul din Figura 69, la care aplicăm o treaptă unitară şi înregistrăm
ieşirea.

Figura 69. Model testat la intrare treaptă.


Se adaugă un generator de semnal la model astfel:
1. se expandează nodul Simulink şi clic pe Constant,
2. clic pe butonul Attach to model. In secţiunea Genarators apare blocul
(generatorul de semnal) Constant1. In lista Signals connected to generator /

65
Viewer se arată că ieşirea blocului de semnal nu este conectată, vezi Figura
70,

Figura 70. Ataşarea unui generator de semnal la model.

3. clic pe butonul Edit signal connection for selection, , care afişază caseta
Port Selector pentru elementul selectat. In fereastra din dreapta apar blocurile
din model şi se selectează cel la a cărui intrare se aplică semnalul, vezi Figura
71,

Figura 71. Fereastra Port Selector pentru generatorul de semnal.


In lista Signals connected to generator / Viewer se arată că ieşirea blocului de
semnal este conectat la intrarea elementului Transfer Fcn, vezi Figura 72.

66
Figura 72. Generator de semnal conectat la model.
Se procedează în acelaşi mod şi pentru elementul Scope:
1. se expandează nodul Simulink şi clic pe Scope,
2. clic pe butonul Attach to model,
3. clic pe butonul Edit signal connection for selection, , care afişază caseta
Port Selector pentru elementul selectat. In fereastra din dreapta apar blocurile
din model şi se selectează cel la a cărui ieşire se afişază, vezi Figura 73,

Figura 73. Fereastra Port Selector pentru elemental de afişare a semnalelor.


Modelul cu generatorul de semnal ataşat este cel din Figura 74.

67
Figura 74. Modelul cu generatorul de semnal ataşat.
Se simulează modelul. Se afişază fereastra aplicaţiei Signal & Scope Manager şi clic
pe butonul Open parameters for selection, . Reazultatul simulării este cel din
Figura 75.

Figura 75. Ieşirea elementului Transfer Fcn.


Un generator de semnal are meniul contextual din Figura 76. Cu acest meniu putem
modifica proprietăţile generatorului, deconecta sau şterge generatorul, etc.

68
Figura 76. Meniul contextual al unui generator de semnal.
Ca un alt exemplu, fie blocurile tip Transfer Fcn din Figura 77 la intrarea cărora
aplicăm acelaşi semnal treaptă.

Figura 77. Model cu generator de semnal ataşat.


Ieşirile celor două elemente la acelaşi semnal treaptă unitară sunt cel din Figura 78.

69
Figura 78. Ieşirile elementelor Transfer Fcn.

70
5 Blocuri de calcul
Simulink are blocuri de calcul ce realizează operaţiile aritmetice şi funcţiile
matematice uzuale din Matlab. Câteva dintre ele sunt prezentate în Tabelul 22. Ele se
găsesc în biblioteca Math Operations.

Bloc Simbolizare
Valoare absolută

Gain

Funcţie matematică

Reshape

Produs

Produs scalar

Funcţie trigonometrică
Sumator
Tabelul 22. Blocuri de calcul.
Blocul Abs calculează valoarea absolută a intrării.
Blocurile Gain, Matrix Gain şi Sumator au fost prezentate anterior.
Blocul Reshape redimensionează o matrice.
Blocul Produs înmulţeşte sau împarte intrările. Intrările pot fi scalare, vectori sau
matrice. Operaţia se poate realiza :
 element cu element (Element-wise),
 matricial (Matrix) .
Intrările trebuie să aibe dimensiuni compatibile cu operaţia realizată : în primul caz
compatibile pentru operaţia element cu element, în al doilea caz intrările trebuie să
aibă dimensiuni compatibile pentru înmulţirea matricelor sau pentru înmulţirea cu
matricea inversă.
In exemplul din Figura 79 se împart două mărimi scalare.

71
Figura 79. Inpărţirea a două mărimi.

Figura 80. Caseta de dialog cu parametrii elementului Produs.


In caseta de text Number of inputs se introduce pentru fiecare intrare * pentru
înmulţire şi / pentru împărţire. In cazul în care în caseta de text Multiplication se
alege opţiunea Matrix se face înmulţirea matricială a intrărilor în cazul operaţiei de
înmulţire (*), sau înmulţirea cu inversa în cazul operaţiei de împărţire (/). In cazul
când toate intrările se inmulţesc, în caseta de text Number of inputs se poate scrie
doar numărul intrărilor.
In exemplul de mai sus parametrul Number of inputs are valoarea */ deoarece
intrările se împart.

72
Blocul Produs scalar, (Dot product), calculează produsul scalar al celor două intrări.
Intrările pot fi vectori linie sau coloană sau scalari.
Blocul Funcţie trigonometrică realizează funcţii trigonometrice sau hiperbolice.
Funcţiile disponibile sunt cele din caseta Function arătate în Figura 81.

Figura 81. Caseta de dialog cu parametrii blocului Funcţie trigonometrică.


Blocul Funcţie matematică poate realiza funcţiile din Figura 82. Intrarea blocului
poate fi scalară, vector sau funcţie. Blocul aplică funcţia alesă asupra fiecărui element
al intrării.

Figura 82. Caseta de dialog cu parametrii blocului Funcţie matematică.


Vom exemplifica aplicarea blocului calculând ln(a) pentru matricea
a = [1 2; 3 4]
Rezultatul este prezentat în Figura 83.

73
Figura 83. Calculul matricei ln(a).

74
6 Blocuri neliniare
Matlab defineşte blocuri neliniare corespunzând neliniarităţilor des întâlnite: saturaţie,
relee, zonă moartă, etc. Câteva din blocurile neliniare existente sunt cele din Tabelul
23. Ele se găsesc în biblioteca Discontinuities.

Bloc Simbolizare
Saturaţie

Releu

Zonă moartă

Cuantizare

Tabelul 23. Blocuri neliniare.


O descriere a acestor blocuri este dată în continuare.
 blocul Saturaţie realizează o caracteristică tip saturaţie. Parametrii blocului
sunt limita superioară şi limita inferioară la care este limitat semnalul. Blocul
poate avea mai multe intrări,
 blocul Releu realizează o caracteristică tip releu. Parametrii blocului sunt cele
două valori minimă şi maximă ale semnalului de intrare la care releul comută
şi cele două valori ale ieşirii la comutare,
 blocul Zonă Moartă realizează o caracteristică tip zonă moartă. Parametrii
blocului sunt cele două valori limită, minimă şi maximă ale zonei moarte.
 blocul Cuantizare realizează o caracteristică de cuantizare. Parametrul blocului
este intervalul de cuantizare.
Vom exemplifica utilizarea blocurilor neliniare prin simularea sistemului din Figura
84. In primul caz vom utiliza un releu ideal. Ieşirea releului este +1 când intrarea este
pozitivă şi -1 când intrarea este negativă. In cazul al doilea utilizăm un releu cu
histerezis, ieşirea releului este +1 sau -1, limitele când ieşirea îşi schimbă starea sunt
0.2 şi respectiv -0.2. Traiectoriile de fază şi ieşirile sistemului pentru cele două tipuri
de relee sunt prezentate în Tabelul 24 şi Tabelul 25. Reamintim că parametrii blocului
XYGraph sunt limitele axelor. Aceşti parametrii se pot prescrie în caseta respectivă
afişată cu un clic pe opţiunea Mask Parameters a meniului Edit sau a meniului
contextual al elementului.
Rezultatele pot fi salvate şi în spaţiul de lucru Matlab. Pentru aceasta se afişază caseta
Simulation Parameters cu un clic pe opţiunea Simulation parameters a meniului
Simulation din Figura 85. In secţiunea Workspace I / O, zona Save to workspace se
marchează opţiunile Time şi States.Valorile momentelor la care este calculată soluţia
sunt scrise în vectorul tout, iar valorile soluţiei la aceste momente în matricea xout pe
coloane. Figura 86 prezintă traiectoria de fază a sistemului trasată în Matlab cu
instrucţiunea
plot(xout(:, 1), xout(:, 2))

75
Figura 84. Sistem neliniar.

a) releu ideal b) releu cu histerezis


Tabelul 24. Traiectoria de fază a sistemului din Figura 84 pentru două tipuri de relee.

a) releu ideal b) releu cu histerezis


Tabelul 25. Răspunsul sistemului din Figura 84 pentru două tipuri de relee.

76
Figura 85. Caseta Simulation Parameters.

Figura 86. Traiectoria de fază a sistemului din Figura 84 in cazul releului ideal.
Două blocuri ce modelează convertoare analog-numerice, (CAN), şi numeric-
analogice, (CAN), sunt cele din Tabelul 26. Ele se găsesc în biblioteca Signal
Processing Blockset / Quantizers.

77
Bloc Simbolizare
Decoder uniform (CNA)

Encoder uniform (CAN)

Tabelul 26. Convertoare analog-numerice şi numeric analogice.


Blocul Encoder uniform, (CAN), are la intrare un semnal continuu, iar la ieşie un
număr binar. Parametrii blocului sunt numărul de biţi ai ieşirii, 8, 16 sau 32 şi tipul
ieşirii număr cu semn sau fără semn.
Blocul Decoder uniform, (CAN), are la intrare un număr întreg şi la ieşire un semnal
continuu. Parametrii blocului sunt numărul de biţi, 8, 16 sau 32 şi valoarea de vârf
corespunzătoare numărului maxim la intrare (Peak).
Un exemplu de conversie analog-numerică şi apoi numeric – analogică a unui semnal
este cel din Figura 87. Numărul de biţi ale celor două convertoare s-a ales opt.
Valoarea de vârf a blocului Decoder uniform este unu, egală cu amplitudinea
sinusoidei generate de blocul Sine Wave.

Figura 87. Utilizarea blocurilor Decoder uniform şi Encoder uniform.


Semnalul generat de blocul Sine Wave este arătat în Figura 88.

78
Figura 88. Semnalul de intrare generat de blocul Sine Wave.
Semnalul de la ieşirea blocului Encoder uniform este arătat în Figura 89. Valoarea lui
este cuprinsă între [-128, +127] corespunzând celor 8 biţi ai convertorului.

Figura 89. Semnalul de ieşire al blocului Encoder uniform.


Semanlul de la ieşirea blocului Decoder uniform este arătat în Figura 90. Ieşirea
blocului este cuprinsă între [-1, +1] conform valorii de vârf a ieşirii blocului
(parametrul Peak).

79
Figura 90. Semnalul de ieşire al blocului Decoder uniform.

80
7 Funcţii definite de utilizator
Utilizatorul poate defini propriile funcţii utilizate în simulare. Pentru aceasta se
utilizează blocurile din Tabelul 27. Ele se găsesc în biblioteca User Defined
Functions.

Bloc Simbolizare
Funcţie

Funcţie Matlab

Funcţie utilizator
Tabelul 27. Blocuri pentru funcţii definite de utilizator.

7.1 Funcţii definite printr- o expresie


Utilizatorul poate defini propria funcţie, ce constă dintr-o expresie, cu blocul Fcn.
Blocul poate avea ca intrare un scalar sau un vector şi o ieşire scalară. Funcţia constă
într-o singură expresie aritmetică, în care se pot folosi funcţiile matematice standard
din Matlab, aplicate asupra elementelor scalare ale intrării. Intrarea este notată cu u.
Fie de exemplu u un vector de intrare linie cu două componente. O expresie posibilă
pentru blocul Fcn este
u(1) * u(1) + u(2) * u(2)
dar nu u * u’.
Ca exemplu, fie de integrat ecuaţia diferenţială Duffing
Mx’’ + Kx + Qx3=F sin(ωt)
în condiţii iniţiale nule. Parametrii ecuaţiei sunt K = 10, Q = -0.4, F = 5, ω=10 şi M =
0.041. Modelul ecuaţiei este prezentat în Figura 91. Expresia Kx + Qx3 este realizată
cu un bloc Fcn. Caseta cu expresia blocului este arătată în Figura 92. Ieşirea
modelului este arătată în Figura 93.

81
Figura 91. Modelul ecuaţiie diferenţiale Mx’’++Kx+Qx3=Fsin(ωt)

Figura 92. Funcţie definită de utilizator.

82
Figura 93. Soluţia sistemului din Figura 91.

7.2 Utilizarea funcţiilor Matlab


Utilizatorul poate folosi în simulare funcţii Matlab definite în fişiere cu extensia m.
Pentru aceasta se introduce în model un bloc MATLAB Fcn care apelează o funcţie
Matlab. Vom exemplifica utilizarea acestui bloc la calculul inversei unei matrice.
Vom scrie funcţia Matlab din Figura 94. După calculul matricei inverse, aceasta este
convertită la un vector coloană cu funcţia reshape, care pune coloanele într-un vector,
una după alta.

Figura 94. Funcţie Matlab ce inversează o matrice.


Pentru a testa funcţia din fişierul ainv.m, fie programul Matlab de mai jos, în care
1 2
inversăm matricea  .
3 4
>> a = [1 2;3 4]
a=
1 2
3 4

>> inv(a)
ans =
-2.0000 1.0000
1.5000 -0.5000

>> ainv(a)

83
ans =
-2.0000
1.5000
1.0000
-0.5000

Modelul pentru calculul inversei unei matrice este cel din Figura 95. In blocul
Constant se defineşte matricea [1 2; 3 4]. In blocul MATLAB Fcn se apelează funcţia
din fişierul ainv.m. Rezultatul blocului este matricea inversă sub forma unui vector ce
conţine coloanele matricei. Blocul Reshape redimensionează matricea inversă din
vectorul furnizat de blocul MATLAB Fcn. Rezultatele sunt afişate de cele două
blocuri Display.

Figura 95. Calculul inversei unei matrice.


Caseta cu parametrii blocului MATLAB Fcn este arătată în Figura 96.

84
Figura 96. Caseta de dialog cu parametrii blocului MATLAB Fcn.

Figura 97. Caseta de dialog cu parametrii blocului Reshape.

7.3 Funcţii definite de utilizator (S-Funcţii)


La simularea unui model descris de un sistem de ecuaţii diferenţiale este posibil să
definim funcţia ce calculează derivatele (membrul drept al sistemului de ecuaţii
diferenţiale) într-un fişier Matlab şi să definim un bloc ce utilizează această funcţie
pentru a calcula soluţia sistemului de ecuaţii diferenţiale în cadrul unui model.
Vom arăta cum se rezolvă ecuaţiile diferenţiale în Matlab cu exemplul următor. Fie de
rezolvat ecuaţia diferenţială
x'' + 3 x' + 2 x = u
în condiţiile iniţiale x(0) = 0, x'(0) = 0 şi u(t) = 1. Punem ecuaţia sub forma sistemului
de ordin I cu substituţiile y1 = x, y2 = x', şi avem sistemul
 0 1  0 
y  y   u
 2  3 1 

85
Pentru a rezolva sistemul în Matlab cu funcţia ode45(), procedăm în felul următor.
Definim o funcţie Matlab care calculează membrul drept al ecuaţiei diferenţiale.
Funcţia are ca parametrii de intrare :
1. t, timpul la care se calculează derivata,
2. x, vector cu soluţia la momentu t,
3. parametrii funcţiei, (opţional),
Funcţia pentru exemplul de mai sus este definită în fişierul sfct.m, în care u este un
parametru al funcţiei.

function dx = fct(t, x, u)

dx(1) = x(2);
dx(2) = -2 * x(1) - 3 * x(2) + u;
dx = dx';

Parametrii funcţiei ode45() ce integrează ecuaţii diferenţiale ordinare sunt următorii :


1. variabilă tip handle a funcţiei ce calculează membrul drept al sistemului de
ecuaţii diferenţiale,
2. vector ce conţine limitele intervalului de integrare,
3. vector cu condiţiile iniţiale,
4. variabilă cu opţiuni pentru funcţia ode45(), de exemplu eroarea relativă sau
absolută la integrare, etc.,
5. vector cu parametrii ce vor fi pasaţi funcţiei ce calculează membrul drept al
sistemului de ecuaţii diferenţiale.
Funcţia are ca rezultat :
1. un vector coloană t, cu momentele de timp la care s-a calculat soluţia,
2. matricea x ce conţine pe coloane soluţiile corespunzătoare elementelor
vectorului de stare.
Apelăm funcţia ode45() astfel :

ts = [0, 10]
x0 = [0 0]
[t, x] = ode45(@sfct, ts, x0, [], 1);

Ultimul parametru al funcţie are valoarea 1 şi el corespunde intrării u(t) = 1.


Avem posibilitatea de a defini un bloc ce integrează acelaşi sistem de ecuaţii
diferenţiale şi să-l utilizăm în cadrul unui model. Blocul va apela funcţia sfct ce
calculează membrul drept al sistemului de ecuaţii diferenţiale la fiecare pas de
integrare. Acest bloc este de tipul S-Function în Tabelul 27.
Pentru a defini un asemenea bloc procedăm în felul următor.
Definim o funcţie cu informaţii despre sistemul de ecuaţii diferenţiale ce trebuie
integrat, numită în continuare S-funcţie. Funcţia este apelată de Simulink la diferite
momente ale simulării. Prototipul funcţiei este

function [sys, x0, str, ts] =sfcn(t, x, u, flag, p1, p2, …)

switch flag

case 0 % initializare
……………..

86
case 1 % informatii despre derivate
……………..
case 2 % informatii in cazul sistemelor discrete
……………..
case 3 % informatii despre iesire
………………
case 4 %
………………..
case 9 % calcule la sfarsitul simularii
………………..
otherwise
error([' unhandled flag = ', num2str(flag)]);
end

Parametrii de intrare ai funcţiei sunt :


t- variabila timp,
x – vector cu soluţia la momentul t, (variabilele de stare),
u – vector cu variabilele de intrare la momentul t,
flag – variabilă cu valorile
0 – se definesc dimensiunile vectorilor de intrare, ieşire, etc. şi vectorul
condiţiilor iniţiale,
1 – informaţii despre derivate; funcţia ce calculează membrul drept al sistemului
de ecuaţii diferenţiale,
2 – utilizat pentru ecuaţii discrete,
3 – informatii despre iesire ; se definesc ieşirile în funcţie de vectorul x al
variabilelor de stare,
4-
9 – calcule la sfârşitul simulării.
p1, p2, … - parametri suplimentari ai funţiei sfcn, introduşi în caseta cu parametrii a
blocului S-Function.
Parametrii t, x, u, flag sunt pasaţi funcţiei de către Simulink.
Parametrii de ieşire ai funcţiei sunt :
sys – vector cu valori ce depind de parametrul flag, cu valorile :
0 - sys = [nsc, nsd, ne, ni, ne, nf, nst], unde :
nsc – numărul de stări continue (ordinul sistemului de ecuaţii diferenţiale),
nsd - numărul de stări discrete,
ne – numărul de ieşiri,
ni - numărul de intrări,
ne = 0,
nf – 1 dacă există legătură directă de la intrare la ieşire şi 0 în caz contrar,
nst –
1 – sys = vectorul derivatelor sistemului de ecuaţii diferenţiale,
2 – sys = ,
3 – sys = vectorul ieşirilor,
4 – sys = ,
9 – sys = .
In cazul când sys este un vector vid, vom scrie sys = [].
x0 – vector cu condiţiile iniţiale,
str = []
ts – vector cu două componente ce specifică timpul de eşantionare.

87
Informaţiile din vectorul sys pentru flag = 0 se prescriu astfel. Se crează o structură cu
următoarele câmpuri :
NumContStates - numărul de stări continue,
NumDiscStates - numărul de stări discrete,
NumOutputs - numărul de ieşiri,
NumInputs - numărul de intrări,
DirFeedthrough - 1 dacă există legătură directă de la intrare la ieşire şi 0 în
caz contrar,
NumSampleTimes - numărul de
Completarea vectorului sys pentru flag = 0 se face cu funcţia simsizes astfel :
1. se crează o structură s, neiniţializată, cu instrucţiunea
s = simsizes
2. se completează elementele structurii s,
3. se transformă valorile structurii într-un vector cu instrucţiunea
sys = simsizes(s)
In cazul nostru, funcţia este cea de mai jos şi este definită în fişierul sfuns.m.

function [sys, x0, str, ts] = sfuns(t, x, v, flag)

switch flag

case 0 % initializare
str = [];
ts = [0 0];
s = simsizes;
s.NumContStates = 2;
s.NumDiscStates = 0;
s.NumOutputs = 2;
s.NumInputs = 1;
s.DirFeedthrough = 0;
s.NumSampleTimes = 1;
sys = simsizes(s);
x0 = [0 0]; % vector cu condiţiile iniţiale

case 1 % informatii despre derivate


u = v; % valoarea parametrului u
sys = sfct(t, x, u); % funcţia ce calculează derivatele

case 3 % informatii despre iesire


sys = x;

case {2 4 9}
sys = [];

otherwise
error([' unhandled flag = ', num2str(flag)]);
end

88
In cazul flag = 1, sys va conţine vectorul derivatelor. Acesta este rezultatul funcţiei
sfct care are ca parametru u intrarea sistemului, u. Aceasta este chiar intrarea în bloc,
parametrul v al funcţiei sfuns. Avem deci instrucţiunile de mai jos.

case 1 % informatii despre derivate


u = v; % valoarea parametrului u
sys = sfct(t, x, u); % funcţia ce calculează derivatele

In cazul flag = 3 sys conţine vectorul ieşirilor, în cazul nostru vectorul x.

case 3 % informatii despre iesire


sys = x;

Modelul este cel din Figura 98.

Figura 98. Model cu bloc S-Function.


Caseta cu parametrii blocului este cea din Figura 99. Numele S-funcţiei se introduce
în caseta S-function name. La clic pe butonul Edit, , se afişază funcţia în
editorul Matlab, unde poate fi modificată. Parametrii suplimentari ai S-funcţiei se
introduc în caseta S-function parameters.

89
Figura 99. Caseta cu parametrii a blocului S-Function.
Ieşirea modelului este cea din Figura 100.

Figura 100. Rezultatul simulării sistemului din Figura 98.

90
8 Simularea sistemelor liniare continue cu coeficienţi
constanţi
Vom considera sisteme descrise prin (sisteme de) ecuaţii diferenţiale liniare cu
coeficienţi constanţi. Acestea pot fi simulate:
 construind modelul ecuaţiilor diferenţiale ordinare, ca mai înainte,
 utilizând blocuri Transfer-Fcn ce descriu funcţii şi matrice de transfer,
 utilizând blocuri Zero-Pole ce descriu funcţii şi matrice de transfer,
 utilizând blocuri State-Space ce descriu sisteme de ecuaţii diferenţiale liniare.
Blocurile corespunzătoare sunt cele din Tabelul 28. Ele se găsesc în biblioteca
Continuous.

Bloc Simbolizare
Matrice de transfer dată prin
coeficienţii polinoamelor
Matrice de transfer dată prin poli
şi zerouri

Ecuaţii de stare

Tabelul 28. Blocuri de simulare a sistemelor liniare continue cu coeficienţi constanţi.


Exemplu. Să calculăm soluţia ecuaţiei diferenţiale ordinare
x'' + 3x' + 2x = 1
în condiţii iniţiale nule, pe o durată de 5s.
Modelul, construit cu elemente Integrator, Sum şi Gain ca mai sus, este arătat în
Figura 101. Treapta unitară este generată de un bloc Constant.

Figura 101. Modelul ecuaţiei diferenţiale ordinare x''+3x'+2x=1.

91
Rezultatul simulării modelului este cel din Figura 102.

Figura 102. Rezultatul simularii sistemului din Figura 101.

8.1 Blocul Transfer Fcn


Blocul Transfer Fcn poate simula sisteme liniare descrise printr-o funcţie sau matrice
de transfer. Fie din nou ecuaţia diferenţială
x'' + 3x' + 2x = 1
Să calculăm soluţia ecuaţiei diferenţiale în condiţii iniţiale nule.Funcţia de transfer
corespunzătoare ecuaţiei este
1
H  s 
s  3s  2
2

Modelul corespunzător din Figura 103 este construit cu blocul Transfer Fcn.

92
Figura 103. Modelul unei funcţii de transfer.
Pentru a prescrie numărătorul şi numitorul funcţiei de transfer se execută un clic cu
butonul drept pe bloc şi se afişază caseta de dialog din Figura 104.

Figura 104. Caseta de dialog cu parametrii blocului Transfer Fcn.


Polinomul de la numitor se defineşte prin vectorul coeficienţilor în ordinea
descrescătoare a puterilor lui s. Numărătorul funcţiei de transfer este definit în acelaşi
fel, aici o matrice de dimensiune 1. Rezultatul simulării este cel din Figura 102.

93
Blocul Transfer Fcn poate modela şi matrice de transfer corespunzând unui sistem cu
o intrare şi mai multe ieşiri la care funcţiile de transfer corespunzătoare canalelor
intrare – ieşire au acelaşi numitor. In acest caz numărătorul este o matrice, cu numărul
de linii egal cu numărul de ieşiri. Numitorul este vectorul corespunzător polinomului
numitorului comun al tuturor canalelor intrare - ieşire, cu coeficienţii daţi în ordinea
descrescătoare a puterilor lui s. Polinoamele numărătorilor fiecărui canal intrare –
ieşire trebuie să aibă acelaşi grad. Aceste polinoame sunt date tot în ordinea
descrescătoare a puterilor lui s, în liniile matricei de la numărător.
Fie de exemplu matricea de transfer
1  s  2
H  s  2  
s  3s  2  s  1 
Vom simula această matrice de transfer la intrare treaptă în condiţii iniţiale nule.
Modelul este cel din Figura 105.

Figura 105. Simularea unei matrice de transfer.


Caseta de dialog cu parametrii blocului este cea din Figura 106. Aceşti parametrii sunt
în cazul numărătorului matricea
[1 2; 1 1]
iar în cazul numărătorului vectorul
[1 3 2]
Rezultatul simulării este prezentat în Figura 107.

94
Figura 106. Caseta de dialog cu parametrii blocului Transfer Fcn.

Figura 107. Rezultatul simulării unei matrice de transfer.


Pentru a calcula valoarea staţionară a ieşirilor se poate aplica teorema valorii finale a
transformatei Laplace. Transformata Laplace a intrării este
1
U  s 
s
Transformata Laplace a ieşirii este
1 1  s  2
Y  s   H  s U  s  
s s 2  3s  2  s  1 
1 2  1 
lim sY  s       
s 0 2 1 0.5

95
8.2 Blocul Zero-Pole
Blocul Zero-Pole poate simula sisteme liniare descrise printr-o matrice de transfer.
Exemplu. Fie din nou ecuaţia diferenţială
x'' + 3x' + 2x = 1
Să calculăm soluţia ecuaţiei diferenţiale în condiţii iniţiale nule. Funcţia de transfer
corespunzătoare ecuaţiei diferenţiale este
1
H  s 
s  3s  2
2

Pentru modelarea funcţiei de transfer vom folosi blocul Zero-Pole care are ca
parametrii polii, zerourile şi factorul de amplificare ale funcţiei de transfer. Modelul
corespunzător este cel din Figura 108.
Caseta de dialog a blocului Zero-Pole este arătată în Figura 109. In exemplu polii
funcţiei de transfer sunt -1 şi -2. Factorul de amplificare are valoarea 1. Deoarece nu
avem nici un zero, matricea corespunzătoare zerourilor este [].

Figura 108. Modelul unei funcţii de transfer.

96
Figura 109. Parametrii blocului Zero-Pole.
Blocul poate modela şi o matrice de transfer a unui sistem cu o intrare şi mai multe
ieşiri. In acest caz numărătorul este o matrice, cu numărul de linii egal cu numărul de
ieşiri la care funcţiile de transfer corespunzătoare canalelor intrare – ieşire au acelaşi
numitor. Numitorul este un vector ce conţine polii corespunzători canalelor intrare –
ieşire. Deoarece funcţiile de transfer corespunzătoare canalelor intrare – ieşire au
acelaşi numitor, polii sunt comuni. Zerourile sunt elementele unei matrice, fiecare
linie a matricei conţine zerourile corespunzătoare unui canal intrare-ieşire. Factorii de
amplificare pentru fiecare canal intrare-ieşire sunt elementele unui vector.

8.3 Blocul State-Space


Exemplu. Fie din nou ecuaţia diferenţială
y'' + 3y' + 2y = 1
Să calculăm soluţia ecuaţiei diferenţiale în condiţii iniţiale nule.Vom scrie ecuaţia
diferenţială sub forma unui sistem de ecuaţii diferenţiale de ordinul I, liniar şi cu
coeficienţi constanţi de forma:
x' = Ax + Bu
y = Cx + Du
Cu substituţiile:
y = x1
y' = x2
avem
 0 1 0 
A  B    C  1 0 D   0
 2  3 1
Blocul utilizat în acest caz este State-Space. Modelul este cel din Figura 110.

97
Figura 110. Modelul unui sistem de ecuaţii diferenţiale ordinare cu coeficienţi constanţi.
Parametrii blocului State-Space sunt arătaţi în Figura 111. Ei sunt cele patru matrice,
A, B, C, D şi condiţiile iniţiale, vectorul x0. Rezultatul simulării este cel din Figura
102.

Figura 111. Parametrii blocului State-Space.


Este posibil ca parametrii blocului State-Space să fie citiţi din spaţiul de lucru Matlab.
Pentru acesta parametrii sunt definiţi ca nişte variabile în spaţiul Matlab şi în caseta de
dialog cu parametrii blocului se introduc aceste variabile în locul valorilor numerice.

98
Fie de exemplu parametrii modelului de mai sus definiţi în spaţiul de lucru Matlab
astfel :

>> A = [0 1; -2 -3];
>> B = [0; 1];
>> C = [1 0];
>> D = 0;
Caseta de dialog cu parametrii blocului este cea din Figura 112.

Figura 112. Caseta de dialog cu parametrii blocului State-Space.

99
9 Crearea de subsisteme
Simulink permite crearea de subsisteme care pot fi utilizate în mai multe locuri în
sistem.

9.1 Crearea unui subsistem prin inserarea unui bloc


Subsystem
Un mod de a crea un subsistem este prin inserarea unui bloc Subsystem simbolizat ca
în Figura 113. La un clic pe acest bloc se deschide ferestra subsistemului în care se
adaugă blocurile ce formează subsistemul. Iniţial subsistemul conţine un bloc Inport
ce constituie intrarea subsistemului, conectat la un bloc Outport ce constituie ieşirea
subsistemului, ca în Figura 113.

Figura 113. Blocul Subsystem.


Un subsistem poate avea oricâte intrări şi ieşiri. Blocurile Inport reprezintă intrările în
subsistem, blocurile Outport reprezintă ieşirile din subsistem, vezi Tabelul 29.

Bloc Simbolizare
Inport
Outport

Tabelul 29. Blocurile Inport şi Outport.

100
Ele se găsesc în biblioteca Ports & Subsystems.
Vom exemplifica crearea unui subsistem ce modelează funcţia de transfer
k
Ts  1
Vom scrie ecuaţia diferenţială corespunzătoare funcţiei de transfer
Ty ' (t )  y (t )  ku (t )
de unde deducem expresia derivatei
1
y ' (t )   ku (t )  y (t ) 
T
Subsistemul va avea o intrare, u(t) şi doi coeficienţi, k şi T şi este cel din Figura 114.

Figura 114. Subsistem ce modelează funcţia de transfer k/(Ts+1).


Pentru a prescrie parametrii k şi T putem proceda în două moduri:
 se deschide fereastra subsistemului şi se afişază caseta de parametri a
elementelor Gain în care se introduc valorile dorite,
 se defineşte o caseta de dialog a subsistemului în care se prescriu toţi
parametrii subsistemului.
Definirea unei casete de dialog a subsistemului
Subsistemul va avea o casetă de dialog definită de programator pentru prescrierea
celor doi parametri, k şi T. In consecinţă, parametrii celor două blocuri Gain sunt
variabile, k şi respectiv 1/T.

101
Figura 115. Parametrii blocurilor Gain ale subsistemului din Figura 114.
Un subsistem odată creat poate fi deschis astfel:
1. se selectează blocul cu un clic,
2. clic pe opţiunea Open block a meniul Edit.
Alternativ se procedează astfel:
1. se afişază meniul contextual din Tabelul 30,
2. clic pe opţiunea Open block sau pe opţiunea Open block in new window.

a) meniul Edit b) meniu contextual


Tabelul 30. Afişarea unui subsistem.

102
a) meniul Edit b) meniu contextual
Tabelul 31. Creare casetei de dialog a unui subsistem.
Definirea casetei de dialog a subsistemului, în care se prescriu coeficienţii k şi T se
face astfel :
1. se deschide caseta de dialog a editorului Mask din Figura 116 cu un clic pe
opţiunea Mask subsystem a meniului Edit sau a meniului contextual din
Tabelul 31,
2. se afişază secţiunea Parameters a casetei de dialog din Figura 117,
3. în tabelul Dialog parameters din Figura 117 se introduc în coloana Prompt
numele parametrilor şi în coloana Variable numele variabilelor din modelul
subsistemului ; acestea vor apărea în caseta de dialog a subsistemului.

103
Figura 116. Caseta de dialog a editorului Mask, secţiunea Icon.
In cazul subsistemului din exemplu, tabelul Dialog parameters se completează ca în
Figura 117. Pentru inserarea unei linii, ştergerea unei linii şi navigarea între liniile
tabelei se utilizează butoanele din Tabelul 32. Caseta de dialog a subsistemului este
cea din Figura 118.

104
Figura 117. Caseta de dialog a editorului Mask, secţiunea Parameters.

Buton Funcţie
Crează o nouă linie în tabel
Sterge linia selectată din tabel
Selectează linia precedentă
Selectează linia următoare

Tabelul 32. Butoanele editorului Mask, secţiunea Parameters.

Figura 118. Caseta de dialog a subsistemului din Figura 114.

105
Vom utiliza subsistemul creat pentru a modela sistemul din Figura 119.

Figura 119. Sistem de reglare.


Vom studia stabilitatea sistemului cu metoda locului rădăcilor. Vom determina
polinoamele de la numărător şi de la numitor. Pentru înmulţirea polinoamelor de la
numitor se utilizează funcţia conv.

num = [1];
den1 = conv([0.1 1], [0.05 1]) ;
den = [den1 0];
rlocus(num, den) ;

Locul rădăcinilor sistemului este cel din Figura 120.

Figura 120. Locul rădăcilor sistemului din Figura 119.


Răspunsul sistemului la intrare treaptă pentru factorul de amplificare din Figura 119
este cel din Figura 121.

106
Figura 121. Răspunsul sistemului din Figura 119 la intrare treaptă.
In cazul în care factorul de amplificare se modifică după cum se arată în Figura 122,
se obţine răspunsul din Figura 123.

Figura 122. Sistem de reglare.

Figura 123. Răspunsul sistemului din Figura 122 la intrare treaptă.


Un model ce conţine subsisteme este un model ierarhic ce poate fi reprezentat sub
forma unui arbore ca în Figura 124. Acesta se face clic pe View  Model Browser
Options  Model Browser. La un clic pe un subsistem din arbore se afişază modelul
subsistemului într-o fereastră separată.

107
Figura 124. Reprezentarea unui model cu subsisteme.

9.2 Crearea unui subsistem prin gruparea blocurilor


Un alt mod de a crea un subsistem este acele de a grupa blocurile unui model ce vor
constitui un subsistem. Ca exemplu, vom crea un subsistem ce modelează funcţia de
transfer
k
Ts  1

Subsistemul va avea trei intrări, u(t) şi coeficienţii k şi T. Vom construi modelul


sistemului şi al subsistemului ca mai jos :
1. se construieşte modelul parţial al sistemului din Figura 125 în care s-a
reprezentat şi blocurile ce vor constitui subsistemul,
2. se încadrează într-un dreptunghi blocurile subsistemului şi conexiunile între ele
cu butonul stâng al mousului apăsat,
3. se selectează opţiunea Create subsystem a meniului Edit; Simulink crează un
subsistem ca în Figura 126,
4. se copiază subsistemul unde este necesar şi rezultă modelul din Figura 119.
In modelul parţial al sistemului am introdus un bloc Outport cu numele Out1 doar
pentru a marca semnalul de ieşire ce va fi selectat. După crearea subsistemului el va fi
şters.

108
Figura 125. Modelul parţial al sistemului în care s-a reprezentat subsistemul.

Figura 126. Subsistem creat de Simulink.

109
Figura 127. Modelul sistemului din Figura 119.
Subsistemul creat de Simulink este arătat în Figura 128.

Figura 128. Modelul subsistemului k/(Ts+1).

110
10 Descrierea fişierului creat de editorul de modele
Editorul de modele crează un fişier cu extensia mdl din modelul sistemului în care
sunt descrise interfaţa grafică şi caracteristicile elementelor.
Vom prezenta fişierul creat de editorul de modele pentru modelul din Figura 11,
repetat în Figura 129.

Figura 129. Modelul ecuaţiei diferenţiale ordinare x'' + 3x' + 2x = 0.

Pentru fiecare bloc din model este definită o structură Block ce conţine:
 tipul blocului, BlockType,
 numele atribuit de programator, Name,
 parametrii blocului din caseta Block Parameters: InitialCondition, Gain, etc.,
 numărul de porturi de intrare şi de ieşire, Ports,
şi informaţii pentru desenare:
 poziţia în cadrul desenului, Position,
 orientarea, Orientation.
Mai jos sunt arătate structurile pentru trei blocuri din model.

Block {
BlockType Gain
Name "Gain1"
Position [170, 135, 200, 165]
Orientation "left"
Gain "3"
}

Block {
BlockType Integrator
Name "Integrator1"

111
Ports [1, 1]
Position [260, 85, 290, 115]
InitialCondition "1"
Port {
PortNumber 1
Name "x"
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "2"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
}

Block {
BlockType Sum
Name "Sum"
Ports [2, 1]
Position [120, 90, 140, 110]
ShowName off
IconShape "round"
Inputs "--"
InputSameDT off
OutDataTypeMode "Inherit via internal rule"
}

Editorul defineşte o structură Line pentru săgeţile ce conectează blocurile în care se


înscriu:
 blocul sursă SrcBlock şi portul sursă ScrPort,
 blocul destinaţie DstBlock şi portul destinaţie DstPort,
 numele semnalului Name, dacă există.
Mai jos sunt arătate structurile pentru două linii, prima fără ramificaţii, ce conectează
blocul Sum cu blocul Integrator2 şi a doua cu ramificaţii, ce conectează blocul
Integrator2 cu blocurile Integrator1 şi Gain1.
Line {
SrcBlock "Sum"
SrcPort 1
DstBlock "Integrator2"
DstPort 1
}

Line {
Name "x'"
Labels [0, 0]
SrcBlock "Integrator2"
SrcPort 1
Points [20, 0]
Branch {
DstBlock "Integrator1"
DstPort 1
}
Branch {
Points [0, 50]

112
DstBlock "Gain1"
DstPort 1
}
}

113
11 Secvenţa de calcul a elementelor modelului
Fie de integrat ecuaţia diferenţială
x’ = f(x, t) x(0) = x0
care corespunde modelului din Figura 130.

Figura 130. Modelul unei ecuaţii diferenţiale.


Presupunem că utilizăm pentru integrare formula lui Euler cu pasul de integrare h.
Integrarea ecuaţiei se face astfel:
 se calculează derivate la momentul 0
x'  0   f  x 0 ,0 
 se calculează soluţia la momentul h
x h   x 0   h x'  0 
 se calculează derivate la momentul h
x'  h   f  x h  , h 
 se calculează soluţia la momentul 2 h
x 2 h   x h   h x'  h 
………………………………
ceea ce corespunde calculului tuturor blocurilor din model ce nu sunt integratoare la
momentul tn = n h, urmat de calculul ieşirilor integratoarelor la momentul tn+1=tn+h.
Considerând un model oarecare, trebuie să calculăm la fiecare pas de integrare:
1. ieşirile elementelor din model ce nu sunt integratoare (ceea ce înseamnă
calculul intrărilor integratoarelor la momentul tn = n h),
2. urmează calculul ieşirilor integratoarelor la momentul tn+1=tn+h prin aplicarea
formulei de integrare.
Pentru calcului elementelor din model ce nu sunt integratoare aplicaţia Simulonk
trebuie să deducă secvenţa în care se calculează aceste elemente.

Alegerea secvenţei de calcul a elementelor unui model

Secvenţa corectă de calcul a elementelor unui model asigură că ieşirea fiecărui


element al modelului la momentul t este calculată pe baza valorilor intrărilor
elementului la acelaşi moment t. Considerând momentul t = 0, la acest moment sunt
cunoscute ieşirile integratoarelor (egale cu condiţiile iniţiale), ieşirile elementelor de
întârziere şi intrările externe. Variabila independentă a simulării, timpul, este de
asemenea cunoscută în orice moment. Se pot calcula deci la momentul t = 0
elementele ce au ca intrări ieşirile integratoarelor şi ale elementelor de întârziere şi
întrări externe. Se calculează apoi ieşirile altor elemente ce au ca intrări şi ieşirile
elementelor deja calculate.
Algoritmul de alegere a secvenţei de calcul este următorul:
1. se pun într-o listă integratoarele şi elementele de întârziere din model,
2. se pun într-o listă intrările externe în model,

114
3. se pun într-o listă de elemente ordonate mai întâi elementele ce au ca intrări
ieşirile integratoarelor, ale elementelor de întârziere şi intrări externe. Urmează
apoi alte elemente ce au ca intrări şi ieşirile elementelor puse anterior în listă.
Pasul 3 al algoritmului se repetă până când toate elementele modelului au fost puse în
listă. Secvenţa de calcul se deduce doar pentru elementele ce nu sunt integratoare.
Intrările externe sunt blocurile de semnal din biblioteca Source: Constant, Clock
(timpul simulării), etc. Ieşirile lor sunt cunoscute la începutul unui nou pas de
integrare.
Fie de exemplu modelul din Figura 131.

Figura 131. Sistem de reglare.


Intrarea în sistem este este blocul Constant, ce generează o treaptă unitară. Ieşirea
acestui bloc este cunoscută la orice moment de timp.
Secvenţa de calcul a elementelor ce nu sunt integratoare şi intrări externe este:
Sum, Sum1, Gain, Saturation, Gain1
sau
Saturation, Gain1, Sum, Sum1, Gain
sau
Sum, Saturation, Sum1, Gain1, Gain
etc.
Deci secvenţa de calcul a elementelor nu este unică.
Secvenţa de calcul a elementelor în model se afişază cu clic pe Format  Bloc
Displays  Sorted Order.
Secvenţa de calcul a elementelor în modelul de mai sus este arătată în Figura 132.
Pentru elementele ce nu sunt integratoare sau intrări externe, ea este
Sum, Sum1, Gain, Saturation, Gain1
Blocul Constant este calculat primul, fiind intrare externă.

115
Figura 132. Secvenţa de calcul a elementelor în model.

116
12 Explorarea modelului
12.1 Explorarea modelului
Simulink are aplicaţia Model Explorer care ne permite să explorăm elementele unui
model.
Lansarea aplicaţiei Model Explorer se face cu clic pe View  Model Explorer a
editorului de modele sau cu clic pe opţiunea Explore a meniului contextual al unui
element al modelului.
Fie de exemplu modelul din Figura 29, repetat în Figura 133.

Figura 133. Modelul ecuaţiei diferenţiale x’’ + 3 x’ + 2 x = 0.Figura 133.


Fereastra aplicaţiei Model Explorer este cea din Figura 134. Ea conţine următoarele
secţiuni:
 Model Hierarchy, afişază structura ierarhică a modelului, sub forma unui
arbore,
 Content of : nodul selectat, afişază conţinutul elementului selectat în
secţiunea (arborele) Model Hierarchy,
 Model Properties afişază proprietăţile elementului selectat.
Secţiunea Model Hierarchy conţine nodul rădăcină Simulink Root şi nodurile
 Base Workspace ce reprezintă spaţiul Matlab,
 Modelul, reprezintă configuraţia modelului,
 Configuration Preferences, dacă este marcată opţiunea View  Show
Configuration Preferences în fereastra Model Explorer.

117
Figura 134. Fereastra aplicaţiei Model Explorer.
Nodul Base Workspace reprezintă spaţiul Matlab şi este spaţiul de bază pentru
Simulink. Orice variabilă Matlab poate fi utilizată în orice model Simulink. La un
clic pe acest nod, în secţiunea Content of Base Workspace sunt afişate toate
variabilele Matlab ce pot fi utilizate în model, cu numele şi tipul lor.
In cazul exemplului nostru, după simularea lui, în secţiunea Content of : Base
Workspace apar variabilele ScopeData şi tout, scrise în spaţiul Matlab de către
blocul Scope, vezi Figura 135.

Figura 135. Conţinutul nodului Base Workspace.


Nodul Configuration Preferences conţine parametrii modelului. La un clic pe acest
nod în secţiunea Content of : Configuration Preferences sunt afişate opţiunile din
caseta Configuration Parameters a modelului, afişată cu clic pe Simulation 
Configuration Parameters a editorului de modele.
Nodul modelului conţine configuraţia modelului, elementele modelului şi parametrii
lor şi semnalele cu nume. Ele sunt afişate în secţiunea Content of : nodul selectat,
vezi Figura 134. La clic pe un element, în secţiunea Model Properties este afişată o
casetă cu parametrii elementului, aceiaşi parametrii ca în caseta afişată în editorul de
modele, vezi Figura 136 pentru un exemplu.

118
Figura 136. Caseta de proprietăţi a elementului Integrator1.
In această casetă putem modifica parametrii elementului.
La un clic cu butonul drept pe un element se afişază meniul contextual din Figura 137.
Opţiunea Properties a acestui meniu afişază caseta de proprietăţi a elementului din
editorul de modele, în care putem modifica parametrii elementului.

Figura 137. Meniul contextual al unui element.


Putem căuta elemente din model după un anumit criteriu. Pentru aceasta se utilizează
bara din Figura 138.

Figura 138. Bara de căutare.


Opţiunile de căutare sunt cele din Tabelul 33. In lista Search din Tabelul 33a se alege
modul de căutare, după nume, după tipul blocului, etc. In caseta din dreapta se
introduce numele elementului, tipul blocului, etc. Opţiunile de căutare se prescriu din

meniul afişat cu butonul Search Options, , din Tabelul 33b. Butonul Search,
, iniţiază o nouă căutare.

119
b) opţiuni de căutare
a) modul de căutare

Tabelul 33. Opţiuni de căutare.


Un exemplu de căutare a elementelor cu numele Gain din model este arătat în Figura
139.

Figura 139. Rezultatul căutării elementelor cu numele Gain.

12.2 Navigarea în model


Navigarea în model se face cu aplicaţia Model Browser, care se lansează cu clic pe
View  Model Browser Options  Model Browser a editorului de modele.
Pentru un exemplu vezi Figura 124.

120
13 Simularea unui motor asincron
In acest capitol vom prezenta un exemplu semnificativ, simularea unui motor
asincron.
Ecuaţiile ce descriu motorul asincron sunt:
di di '
Ls ds  Lsh dr  u ds  Rs i ds
dt dt
di qs di qr'
Ls  Lsh  u qs  Rs i qs
dt dt
didr'
L'r
dt
di
 Lsh ds  u dr'  Rr' idr'   L'r iqr'  Lsh i qs
dt
 
diqr' diqs
L'
r
dt
 Lsh
dt
 u qr
'

 Rr' i qr'   L'r idr'  Lsh i ds 
J d
 M  Mr
p dt
unde cuplul electromagnetic M are expresia
pLsh  iqs idr  ids iqr' 
3
M  '

2
şi M r este cuplul rezistent. In cazul motorului avem
u ds  2U n cos 2ft 
u qs  2U n sin  2ft 
u '
dr 0
u '
qr 0
Ls  Ls  Lsh
L'r  L'r  Lsh
'
In ecuaţiile de mai sus Ls şi Lr sunt inductivităţile de pierderi în stator şi rotor,
Lsh este inductivitatea mutuală, Ls şi L'r sunt inductivităţile totale, iar Rs şi Rr'
sunt rezistenţele electrice ale statorului şi rotorului. J este momentul de inerţie, p este
numărul de perechi de poli. i ds şi i qs sunt curenţii din axa d, i dr , i qr sunt curenţii
din axa q,  este viteza unghiulară a câmpului învârtitor. u ds şi u qs sunt tensiunile
' '
statorice în axele de şi q, u dr şi u qr sunt tensiunile rotorice în axele d şi q. f este
frecvenţa tensiunii de alimentare.
Parametrii motorului sunt:
U n  220V , f= 50 Hz, Rs  1.16 , Rr'  3.515 , Ls  0.024 H ,
L'r  0.0034 H , Lsh  0.2986 H , p = 2, J  0.024kgm 2
Vectorul de stare al sistemului este

i ds i qs i dr' iqr'  
Vom considera acest vector de stare format din vectorul x  ids iqs idr iqr şi  .
' '
 
Facem următoarele notaţii:

121
 Ls 0 Lsh 0  Rs 0 0 0
0 Ls 0 
Lsh  0 Rs 0 0 
A , R ,
 Lsh 0 L'
r 0  0 0 Rr' 0
   
0 Lsh 0 L'r  0 0 0 Rr' 

 0 0 0 0  u ds 
 0 u 
0 0 0 
L , U  ' 
qs
 0  Lsh 0  Lsh  u dr 
   ' 
 Lsh 0 Lsh 0 
u qr 
Cu aceste notaţii, rescriem sistemul de ecuaţii diferenţiale de mai sus ca
dx
A  U  Rx  Lx
dt
dx
Pentru a calcula derivata trebuie să calculăm matricea inversă A-1.
dt
Pentru a calcula cuplul electromagnetic M vom defini matricea
0 0 0  1
0 0 1 0 
MC  
0 0 0 0
 
0 0 0 0
şi expresia  iqs idr  i ds i qr  se calculează ca x’ MC x. Ecuaţia de mişcare
' '

J d
 M  Mr
p dt
se va scrie ca
d 1 3
 p pLsh x' MCx
dt J 2
Vom defini aceste matrice în fişierul Matlab asyncmotsim.m de mai jos, în care
matricele sunt declarate ca variabile globale.

function asyncmot

global Ainv R L MC J

rs = 1.16;
rpr = 3.515;
lss = 0.024;
lprs = 0.0034;
lsh = 0.2986;
lpr = lsh + lprs;
ls = lss + lsh;
p = 2;
J = 0.024;

A = [ls 0 lsh 0
0 ls 0 lsh
lsh 0 lpr 0
0 lsh 0 lpr];

R = [rs 0 0 0
0 rs 0 0

122
0 0 rpr 0
0 0 0 rpr];

L = [0 0 0 0
0 0 0 0
0 -lsh 0 -lsh
lsh 0 lsh 0];

MC = [0 0 0 -1
0 0 1 0
0 0 0 0
0 0 0 0];
MC = MC * 1.5 * p * lsh * p;
Ainv = inv(A);

In spaţiul Matlab vom defini variabilele globale R, L, MC şi J corespunzând


matricelor de mai sus, Ainv care este A-1 şi momentului de inerţie J. Instrucţiunea
global din spaţiul Matlab este aceeaşi ca cea din funcţia asyncmotsim. Apoi apelăm
funcţia asyncmotsim.

global Ainv R L MC J
asyncmotsim

Este posibil să definim variabile utilizate în model în spaţiul Matlab. Ca exemplu, am


putea defini în spaţiul Matlab momentul de inerţie J (fără să-l mai definim în funcţie)

J = 0.024;

In acest caz, nu trebuie ca variabila respectivă să fie declarată într-o instrucţiune


global, nici în spaţiul Matlab şi nici în funcţie.
Modelul simulink este cel din Figura 140.

Figura 140. Modelul motorului asincron.

123
Blocul Mux crează un semnal cu patru componente, ce corespunde vectorului U.
Parametrii celorlalte elemente din model sunt cei din Tabelul 34.

Bloc Funcţia Ieşirea


Clock Timpul simulării t
Gain 2*pi*50 2*pi*50*t
cos cos cos(2*pi*50*t)
sin sin sin(2*pi*50*t)
Gain6 220*sqrt(2) U  220 * sqrt  2 *  cos 2 50t  sin  2 50t  0 0 '
dx
Gain1 Ainv  Ainv * U  R * x   * L * x 
dt
Gain2 R R*x
Gain3 L L*x
Gain4 MC MC * x
d 1
Gain5 1/j  x '*MC * x
dt j
Product  *L*x  *L*x
Dot product x’MC x x’ * MC * x
t
dx
Integrator  dt dt  x 0
0
x

d
t

Integrator1  dt    0 
0
dt
Constant 0 0
Sum Sum U  R*x *L*x
Tabelul 34. Elementele modelului.
In blocurile Gain1, Gain2, Gain3, Gain4 factorul de amplificare este o matrice, ce
înmulţeşte intrarea în bloc, în acest caz un vector. In consecinţă, vom alege parametrul
Multiplication ca Matrix (K*u) sau Matrix (K*u) (u vector), vezi Figura 15.
Vom simula modelul pe o durată de 3 s, în condiţii iniţiale nule şi M r  0 . Parametrii
configuraţiei relative la exportul datelor în spaţiul Matlab sunt cei din Figura 141.

124
Figura 141. Parametrii pentru exportul datelor.
S-au marcat opţiunile Time şi States şi se vor salva în spaţiul Matlab vectorul tout cu
timpii soluţiei şi respectiv matricea xout cu cele cinci variabile de stare pe coloane.
Curenţii motorului sunt cei din Figura 142, iar turaţia cea din Figura 143.

Figura 142. Curenţii motorului asincron.

125
Figura 143. Turaţia motorului asincron.
Rezultatele se pot prelucra ulterior în Matlab. De exemplu, curentul i ds este memorat
în prima coloană a matricei xout, şi este reprezentat în Figura 144 cu instrucţiunile

plot(tout, xout(:, 1))


grid
xlabel(‘t [s]’)
ylabel(‘i_{ds} [A]’)
pause

126
Figura 144. Curentul ids.

127
14 Simularea maşinilor electrice
Blocurile utilizate în simularea maşinilor electrice sunt definite în bibliotecile grupate
sub numele SimPowerSystems.

14.1 Maşina asincronă


Convenţiile utilizate în scrierea ecuaţiilor sunt următoarele: mărimile din axele d şi q
au indicii d şi respectiv q, mărimile statorice şi rotorice au indicii s şi respectiv r.
Inductivităţile de pierderi au indicele l, inductivitatea de magnetizare are indicele m.
Maşina asincronă este descrisă de ecuaţiile:
dids didr'
Ls  Lm  u ds  Rs ids
dt dt
diqs diqr'
Ls  Lm  u qs  R s iqs
dt dt
didr'
 Lm ds  u dr'  Rr' idr'   L'r i qr'  Lm i qs 
di
L'r
dt dt
diqr' diqs
L'r
dt
 Lm
dt
 u qr
'

 Rr' iqr'   L'r idr'  Lm ids 
d
J  Te  F  Tm
dt
d

dt
unde cuplul electromagnetic Te are expresia
pLm  iqs idr 
3
M  '
 ids iqr
'

2
Tm este cuplul mecanic şi J este momentul de inerţie, p este numărul de perechi de
poli, F este coeficientul de frecare Coulomb. Ω este viteza unghiulară a rotorului iar
 este poziţia rotorului. Cuplul de frecare Coulomb are expresia
T f  F
In ecuaţiile de mai sus
Ls  Lls  Lm
L'r  L'lr  Lm
Lls şi L'lr sunt inductivităţile de pierderi în stator şi rotor, Lm este inductivitatea de
magnetizare, Ls şi L'r sunt inductivităţile totale, iar Rs şi Rr' sunt rezistenţele
electrice ale statorului şi rotorului. i ds şi i qs sunt curenţii din axa d, i dr , i qr sunt
curenţii din axa q.
Menţionăm că, relaţia între viteza unghiulară a rotorului, Ω, şi viteza unghiulară a
câmpului învârtitor, ω, este
ω=pΩ
In cazul motorului avem
u ds  2U n cos 2ft 
u qs  2U n sin  2ft 
u '
dr 0
u '
qr 0

128
Există două modele ale maşinii asincrone, unul cu parametrii reali şi altul cu
parametrii raportaţi (per unit, pu), arătate în Tabelul 35.

a) în unităţi relative b) în unităţi SI


Tabelul 35. Modelele maşinii asincrone.
Ele se află în biblioteca SimPowerSystems / Machines.
Maşina poate funcţiona ca motor sau generator, după cum Tm este pozitiv sau negativ.
Dacă Tm este pozitiv, maşina funcţionează în regime de motor, iar pentru T m negativ în
regime de generator.
Parametrii maşinii se prescriu în caseta din Figura 145. Aceşti parametri sunt:
1. cuplul rezistent, în cazul motorului, sau cuplul de antrenare în cazul generatorului,
în Nm; cuplul rezistent este pozitiv, cuplul de antrenare este negativ,
2. puterea nominală, Pn [VA], tensiunea de linie, U n [V], frecvenţa tensiunii de
alimentare, f n [Hz],
3. rezistenţa şi inductivitatea de pierderi ale statorului, Rs [Ω], şi Lls [H] ,
4. rezistenţa şi inductivitatea de pierderi ale rotorului, Rr' [Ω], şi L’lr [H],
5. inductivitatea de magnetizare, Lm [H],
6. momentul de inerţie J, [kg m2], coeficientul de frecare vâscoasă F, [Nms], şi
numărul de perechi de poli, p,
7. condiţiile iniţiale sunt
[s, θ0, isa, isb, isc ]
unde s este alunecarea, θ0 este poziţia iniţială a rotorului, isa, isb, isc sunt curenţii
statorici.

129
Figura 145. Caseta cu parametrii maşinii asincrone.
Variabilele de ieşire, în număr de 21, sunt următoarele:
' ' ' ' '
1. i ra , i rb , i rc , i qr , i dr ,
2.  qr ,  dr
' '
,
' '
3. u qr , u dr ,
4. i sa , i sb , i sc , i qs , i ds ,
5.  qs ,  ds
6. u qs , u ds ,
7. viteza rotorului, Ω [rad/s],
8. cuplul electromagnetic, [Nm],
9. unghiul rotorului,  [rad].
Vom prezenta rezultatele simulării motorului din exemplul anterior, ai cărui parametrii
sunt repetaţi aici.

130
U n  220V , fn= 50 Hz, Rs  1.16 , Rr'  3.515 , Lls  0.024 H ,
L'lr  0.0034 H , Lm  0.2986 H , p = 2, J  0.024kgm 2
Cuplul mecanic Tm este luat 20 Nm. Modelul este cel din Figura 146.

Figura 146. Modelul motorului asincron.


Semnalul de la ieşirea maşinii, m în Figura 146, este un semnal virtual. El nu are
semnificaţie fizică sau matematică. El este demultiplexat şi trimis la blocurile Scope
cu un bloc Demux.
In model mai utilizăm o sursă de tensiune trifazată programabilă şi un aparat de
măsurare a tensiunii între două noduri, din Tabelul 36. Ele se găsesc în bibliotecile
SimPowerSystems/Electrical Sources şi respectiv Measurements.

Bloc Simbolizare
Sursă de tensiune programabilă trifazată
Măsoară tensiunea electrică instantanee
între două noduri.
Tabelul 36. Blocuri utilizate în model.

131
Figura 147. caseta cu parametrii sursei de tensiune trifazată programabilă.
Turaţia motorului este cea din Figura 148.

Figura 148. Turaţia motorului.


Menţionăm că, în capitolul precedent, am reprezentat viteza unghiulară a câmpului
învârtitor, ω, iar în exemplul de aici reprezentăm viteza rotorului, Ω.
Vom transmite în Matlab variabila reprezentată în blocul Scope2. Pentru aceasta vom
modifica parametri blocului ca în Figura 149.

132
Figura 149. Parametrii blocului Scope2.
In Matlab vom afişa componentele structurii ScopeData2 şi apoi vom reprezenta
grafic turaţia rotorului. Pentru numele structurii vezi caseta Variable name din Figura
149.

>> ScopeData2

ScopeData2 =

time: [10006x1 double]


signals: [1x1 struct]
blockName: 'asyncmodel2/Scope2'

>> plot(ScopeData2.time, ScopeData2.signals.values(:,1))


>> grid
>> xlabel('t[s]')
>> ylabel('\Omega [rad/s]')

Turaţia este cea din Figura 150.

133
Figura 150. Turaţia motorului reprezentată grafic în Matlab.
Curenţii statorici ai motorului sunt cei din Figura 151.

Figura 151. Curenţii statorici ai motorului asincron.

134
Vom transmite în Matlab componentele structurii ScopeData1 şi apoi vom reprezenta
grafic curentul ids. Conform celor de mai sus, curentul ids este al cincilea din cele nouă
componente reprezentate în blocul Scope1.

>> ScopeData1

ScopeData1 =

time: [10006x1 double]


signals: [1x1 struct]
blockName: 'asyncmodel2/Scope1'

>> plot(ScopeData1.time, ScopeData1.signals.values(:,5))


>> grid
>> xlabel('t[s]')
>> ylabel('i_{ds} [A]')

Figura 152. Curentul ids al motorului asincron.


Cuplul dezvoltat de motor este cel din Figura 153.

135
Figura 153. Cuplul motorului asincron.
Pentru a vedea modelul motorului asincron se procedează astfel:
1. se afişază meniul contextual al blocului cu clic pe bloc cu butonul drept şi apoi
clic pe Look under mask.
2. se selectează blocul şi clic pe Edit  Look under mask.
Se afişază modelul din Figura 154.

136
Figura 154. Modelul motorului asincron.
Pentru afişa modelele celor două subsisteme, electric şi mechanic, se procedează
astfel
1. se afişază meniul contextual al subsistemului şi clic pe Open Bloc.
2. se selectează blocul şi clic pe Edit  Open Bloc.
Modelele celor două subsisteme, electric şi mecanic, sunt cele din Figura 155 şi
Figura 156.

137
Figura 156. Modelul părţii electrice a motorului asincron.

Figura 157. Modelul părţii mecanice a motorului asincron.

14.2 Maşina de curent continuu


Modelul maşinii de curent continuu este o maşină cu excitaţie separată.

Figura 158. Simbolizarea maşinii de current continuu.


Terminalele F+ şi F- corespund infăşurării de excitaţie, iar A+ şi A- circuitului rotoric.
Ecuaţiile maşinii sunt:

138
di f
Lf  Rf if  U f
dt
di
La a  R a i a  U a  K E 
dt
d
J  Te  TL  Bm  T f
dt
unde:
 i f , i a sunt curenţii circuitului de excitaţie şi rotoric,
  este viteza rotorului,
 L f , R f sunt inductivitatea şi rezistenţa circuitului de excitaţie,
 La , Ra sunt inductivitatea şi rezistenţa circuitului rotoric,
 U f , U a sunt tensiunile la bornele înfăşurărilor de excitaţie şi rotorice,
 J este momentul de inerţie în kg m 2, Bm este coeficientul de frecare vâscoasă în
N m s, T f este cuplul de frecare Coulomb în N m.
Tensiunea contraelectromotoare este K E  . Constanta K E este dată de relaţia
K E  Laf i f unde Laf este inductivitatea mutuală excitaţie-rotor . Cuplul dezvoltat de
maşină este
Te  K T i a
unde KT = KE.
Intrarea în model este cuplul aplicat la arbore, TL. Pentru Te TL > 0 maşina
funcţionează înregim de motor, pentru Te TL < 0 în regime de generator.
Simbolul maşinii de curent continuu în biblioteca SimPowerSystems/Machines. este
cel din Tabelul 37.

Bloc Simbolizare
Maşina de current continuu

Tabelul 37. Maşina de curent continuu.


Caseta cu parametrii maşinii de current continuu este arătată în Figura 159. Parametrii
sunt:
1. intrarea mecanică, cuplu, TL sau viteza,
2. rezistenţa şi inductivitatea circuitului rotoric, Ra [Ω], La [H],
3. rezistenţa şi inductivitatea circuitului de excitaţie, Rf [Ω], Lf [H],
4. inductivitatea Laf [H],
5. momentul de inerţie J [kg m2],
6. coeficientul de frecare vâscoasă, Bm [N m s],
7. cuplul de frecare Coulomb, Tf [N m].
Condiţia iniţială este viteza iniţială în [rad/s].
Ieşirea maşinii este formată din:
1. viteza unghiulară a rotorului,  , [rad/s],
2. curentul rotoric i a [A],
3. curentul de excitaţie ie [A],
4. cuplul electric [N m]

139
Figura 159. Caseta cu parametrii maşinii de curent continuu.
Vom exemplifica simularea unui motor de current continuu cu următorii parametri:
Ua = 120 V, Ue = 120 V, Ra = 0.075 Ω, La = 0.003 H, Rf = 30 Ω, Lf = 30 H, KE = 0.75
H.
Caseta cu parametrii modelului este cea din Figura 159, iar modelul cel din Figura
160.

140
Figura 160. Modelul motorului de curent continuu.
In model utilizăm surse de curent continuu pentru tensiunea de excitaţie şi tensiunea
de alimentare. Simbolizarea sursei de curent continuu şi caseta cu parametri sunt cele
din Tabelul 38 şi Figura 161. Ea se găseşte în biblioteca
SimPowerSystems/Electrical Sources.

Bloc Semnificaţie
Sursă de current continuu.

Tabelul 38. Sursa de curent continuu.

Figura 161. Caseta cu parametrii sursei de curent continuu.

141
Figura 162. Turaţia morului de curent continuu.

14.3 Maşina sincronă


Modelele maşinii sincrone descriu o maşină cu poli aparenţi sau înecaţi.
Covenţiile utilizate în scrierea ecuaţiilor sunt următoarele: mărimile din axele d şi q
au indicii d şi respectiv q, mărimile din înfăşurările de amortizare au indicele k, cele
din înfăşurarea de excitaţie au indicele f. Inductivităţile de pierderi au indicele l,
inductivitatea de magnetizare are indicele m.
Maşina sincronă este descrisă de ecuaţiile următoare:
d d
u d  Rs id   q 
dt
d q
u q  Rs i q   d 
dt
d 'fd
u 'fd  R fd i fd 
' '

dt
d kd'
u kd'  Rkd' ikd' 
dt
d kq'
1
1  R kq1i kq1 
' ' '
u kq
dt
d kq
'
2
2  R kq 2 i kq 2 
' ' '
u kq
dt
'
R
In aceste ecuaţii s este rezistenţa infăşurărilor din axele d şi q, R fd este rezistenţa
' ' '
înfăşurării de excitaţie, R kd , R kq1 , Rkq 2 sunt rezistenţele înfăşurărior de amortizare
din axele d şi q. Fluxurile  d ,  q din axele d şi q,  fd din înfăşurarea de excitaţie
'

şi  kd
'
,  kd
'
1 ,  kd 2 ale înfăşurărilor de amortizare au expresiile:
'

 d  Ld id  Lmd  i 'fd  ikd' 


 q  Lq iq  Lmq ikq
'

 'fd  L' fd i 'fd  Lmd  id  ikd' 

142
 kd'  L'kd i kd'  Lmd  i d  i 'fd 
 kq
'
1  L kq1 i kq1  L mq i q
' '

 kq
'
2  L kq 2 i kq 2  Lmq i q
' '

unde Ld şi Lq sunt inductivităţile înfăşurărilor din axele d şi q, Lmd şi Lmq sunt


'
inductivităţile de magnetizare în axele d şi q, L fd este inductivitatea înfăşurării de
' '
excitaţie, L'kd , Lkq1 şi Lkq 2 sunt inductivităţile înfăşurărilor de amortizare din axele
d şi q. Aceste inductivităţi sunt date de relaţiile:
Ld  Ll  Lmd
Lq  Ll  Lmq
L' fd  L'lfd  Lmd
L'kd  L'lkd  Lmd
L'kq1  Llkq1  Lmq
L'kq 2  Llkq 2  Lmq
In relaţiile de mai sus Ll, L'lfd, L'lkd, L'lkq1 şi L'lkq2 sunt inductivităţile de scăpări.
Ecuaţia de mişcare este
d
J  Te  T f  Tm
dt
la care se adaugă ecuaţia
d

dt
unde cuplul electromagnetic Te are expresia
Te  p  i d q  iq d 
J este momentul de inerţie, p este numărul de perechi de poli,  este viteza
unghiulară a rotorului, iar  este poziţia rotorului. Tm este cuplul mecanic la arborele
maşinii. Cuplul de frecare vâscoasă Tf are expresia
Tf = FΩ
unde F este coeficientul de frecare Coulomb.
In cazul maşinii cu poli aparenţi, în axa q există o singură înfăşurare de amortizare.
Modelele maşinii sincrone sunt cele din Tabelul 39.

Model Semnificaţie

143
Model simplificat în unităţi SI

Model simplificat în unităţi pu

Maşină cu magneţi permanenţi

Tabelul 39. Modelele maşinii sincrone.


Maşina poate funcţiona în regim de motor sau generator.
Simbolizarea modelului fundamental al maşinii sincrone cu parametrii în sistemul SI
este cea din Figura 163.

Figura 163. Simbolizarea maşinii sincrone.


In aceste modele uA, uB, uC sunt tensiunile statorice, uf este tensiunea înfăşurării de
excitaţie, Pm este puterea mecanică. Modul de funcţionare este dat de semnul puterii
mecanice, Pm, pozitiv în caz generatorului, negativ în cazul motorului.
Parametrii maşinii se prescriu în caseta din Figura 166. Aceşti parametri sunt
1. intrarea mecanică, puterea mecanică Pm sau viteza w.
2. tipul rotorului, cu poli aparenţi, sau cu poli înecaţi,
3. puterea nominală, Pn [VA], tensiunea de linie nominală, Un [V], frecvenţa
nominală, fn [Hz], curentul de excitaţie nominal, ifn [A],
4. parametrii infăşurării statorice, rezistenţa, Rs [Ω], inductivitatea de pierderi, Ll [H],
inductivităţile de magnetizare, Lmd [H], Lmq [H],
5. parametrii infăşurării de excitaţie, rezistenţa, Rf' [Ω], inductivitatea de pierderi,
L'lfd [H],
6. parametrii infăşurărilor de amortizare, în axa d, rezistenţa, R'kd [Ω], inductivitatea
de pierderi, L'lkd [H], în axa q, Rkq1 [Ω], L'lkq1 [H], Rkq2 [Ω], L'lkq2 [H],
7. momentul de inerţie J [kg m2], factorul de frecare F [Nm s], numărul de perechi de
poli, p,
8. condiţiile iniţiale, deviaţia iniţială a vitezei, ∆Ω, în procente din viteza iniţială,
unghiul electric al rotorului,  e [ ] , curenţii de linie ia, ib, ic [A], unghiurile iniţiale
o

ale fazelor,  a ,  b ,  c , [o], tensiunea de excitaţie iniţială, Uf [V].


Tensiunea de excitaţie iniţială se introduce astfel: dacă se cunoaşte curentul de
excitaţie nominal, (ultimul parametru din prima linie), se marchează opţiunea Display
Vfd which produces nominal Vt, care afişază caseta din Figura 164.

144
Figura 164. Calculul tensiunii iniţiale de excitaţie.
In caz contrar se introduce curentul de excitaţie nominal zero şi se introduce tensiunea
de excitaţie în V cc raportată la stator.
Variabilele de ieşire, în număr de 22, sunt următoarele:
1. curenţii statorici, isa, isb, isc, isq, isd, [A],
2. curentul de excitaţie, ifd [A],
3. curenţii infăşurărilor de amortizare în axa q, ikq1, ikq2, [A],
4. curenţii infăşurărilor de amortizare în axa d ikd, [A],
5. fluxurile în axele q şi d,  mq ,  md , [V s],
6. tensiunile statorice în axele q şi d, uq, ud [V],
7. deviaţia unghiului rotorului ∆  [rad],
8. viteza unghiulară Ω [rad/s] ,
9. puterea electrică, Pe, [VA],
10. deviaţia vitezei rotorului, ∆Ω [rad/s],
11. unghiul mecanic al rotorului,  [rad],
12. cuplu electromagnetic, Te, [N m],
13. unghiul de sarcină, [Nm]
14. puterile activă şi reactivă, Peo, Qeo, la ieşire.
Vom exemplifica utilizarea modelului pentru un motor cu parametrii:
R s  32.967 m , R 'fd  1.798m , L'kd  92.046 mH , L'kq1  0.921mH ,
L'kq 2  0
Lmd  11 .2mH , Lmq  6.692mH ,
p = 2, f = 50 Hz, J = 616 kg m2, F = 0, nn = 1500 rot/min
Pn = 8000 Kw, Un = 2887 / 5000 V.
Modelul este cel din Figura 165, iar caseta cu parametrii motorului este cea din Figura
166.

145
Figura 165. Modelul motorului sincron.
Am introdus curentul de excitaţie nominal zero şi tensiunea de excitaţie este u’fd = 2
V, puterea mecanică Pm = -1 w.

146
Figura 166. Parametrii maşinii sincrone.

147
Figura 167. Variabilele de ieşire ale motorului sincron.
Valorile lor au fost transmise în spaţiul Matlab cu parametrii blocului Scope din
Figura 168.

Figura 168. Parametrii blocului Scope.


In spaţiul Matlab, în structura ScopeData este cea de mai jos.

>> ScopeData

ScopeData =

time: [10006x1 double]


signals: [1x1 struct]
blockName: 'syncmodel2/Scope'

Valorile pentru curentul id, viteza unghiulară şi cuplul electric sunt arătate în figurile
următoare.

148
Figura 169. Curentul id al motorului.

149
Figura 170. Viteza unghiulară.

150
Figura 171. Cuplul electric.

151

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