Documente Academic
Documente Profesional
Documente Cultură
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.
4
Figura 1. Fereastra Simulink Library Browser.
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.
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.
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.
9
integratorului, în care putem prescrie condiţia iniţială în caseta de text Initial
condition.
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.
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.
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
14
Tabelul Tabelul 7 arată câteva opţiuni de reprezentare a unui bloc.
+ Culoare albastru
+ Bloc rotit
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.
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.
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.
Bloc Simbolizare
Add
Subtract
Sum
Sum of Elements
Gain
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.
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.
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.
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.
23
3.6 Parametrii simulării
Parametrii simulării se prescriu cu opţiunile meniului Simulation din Figura 19.
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.
25
>> xlabel('time')
26
Figura 23. Model cu blocuri tip Outport.
Rezultatele transmise în spaţiul Matlab se reprezintă grafic în Figura 24 cu programul
următor:
>> 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.
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:
ce corespunde stării iniţiale x0=0 şi x’0=1. Rezultatul simulării este cel din Figura 26.
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:
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.
Buton Semnificaţie
Tipărire
Parametrii blocului
Zoom
Zoom axa X
Zoom axa Y
Autoscale (Autoscalare)
31
a) Meniu contextual al blocului Scope b) Alegerea proprietăţilor axelor
Tabelul 14. Alegerea parametrilor blocului Scope.
32
Figura 29. Modelul ecuaţiei diferenţiale x’’+3x’+2x=0.
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.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ă.
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.
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.
37
Figura 36. Blocul Floating Scope.
Bloc Simbolizare
To File
To Workspace
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.
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.
Blocul To Workspace scrie datele în spaţiul Matlab. Caseta de dialog a blocului este
arătată în Figura 39.
>> simout
simout =
40
time: [51x1 double]
signals: [1x1 struct]
blockName: 'data/To Workspace'
>> simout.signals
ans =
Bloc Simbolizare
From File
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
42
Figura 41. Caseta de dialog a blocului From Workspace.
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
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
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.
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.
47
Figura 47. Blocul Scope cu primele două semnale.
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.
49
Figura 51. Al doilea port al blocului Demux.
50
Figura 53. Primul port al blocului Demux1.
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.
Bloc Simbolizare
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.
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.
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 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.
Bloc Simbolizare
Autocorelaţie
Corelaţie
Analizor de spectru
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.
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
60
Figura 63. calculul autocorelaţiei 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.
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
63
>> bode(tfa)
>> grid
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.
65
Viewer se arată că ieşirea blocului de semnal nu este conectată, vezi Figura
70,
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,
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,
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.
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ă.
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.
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.
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
75
Figura 84. Sistem neliniar.
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)
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.
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.
81
Figura 91. Modelul ecuaţiie diferenţiale Mx’’++Kx+Qx3=Fsin(ωt)
82
Figura 93. Soluţia sistemului din Figura 91.
>> 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.
84
Figura 96. Caseta de dialog cu parametrii blocului MATLAB Fcn.
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';
ts = [0, 10]
x0 = [0 0]
[t, x] = ode45(@sfct, ts, x0, [], 1);
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
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.
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 {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.
89
Figura 99. Caseta cu parametrii a blocului S-Function.
Ieşirea modelului este cea din Figura 100.
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
91
Rezultatul simulării modelului este cel din Figura 102.
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.
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.
94
Figura 106. Caseta de dialog cu parametrii blocului Transfer Fcn.
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 [].
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.
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.
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.
99
9 Crearea de subsisteme
Simulink permite crearea de subsisteme care pot fi utilizate în mai multe locuri în
sistem.
Bloc Simbolizare
Inport
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.
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.
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
105
Vom utiliza subsistemul creat pentru a modela sistemul din Figura 119.
num = [1];
den1 = conv([0.1 1], [0.05 1]) ;
den = [den1 0];
rlocus(num, den) ;
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.
107
Figura 124. Reprezentarea unui model cu subsisteme.
108
Figura 125. Modelul parţial al sistemului în care s-a reprezentat subsistemul.
109
Figura 127. Modelul sistemului din Figura 119.
Subsistemul creat de Simulink este arătat în Figura 128.
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.
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"
}
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.
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.
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.
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.
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.
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
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 2ft
u qs 2U n sin 2ft
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);
global Ainv R L MC J
asyncmotsim
J = 0.024;
123
Blocul Mux crează un semnal cu patru componente, ce corespunde vectorului U.
Parametrii celorlalte elemente din model sunt cei din Tabelul 34.
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.
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
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.
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 2ft
u qs 2U n sin 2ft
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.
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.
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.
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 =
133
Figura 150. Turaţia motorului reprezentată grafic în Matlab.
Curenţii statorici ai motorului sunt cei din Figura 151.
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 =
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.
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
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.
141
Figura 162. Turaţia morului de curent continuu.
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:
'
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
' '
Model Semnificaţie
143
Model simplificat în unităţi SI
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.
>> ScopeData
ScopeData =
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