simulink

177
Simulink 1

Upload: tugui-razvan

Post on 24-Jul-2015

156 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Simulink

Simulink

1

Page 2: Simulink

1 Lansarea aplicaţiei Simulink..................................................................................41.1 Editorul de modele.........................................................................................41.2 Bibliotecile aplicaţiei Simulink......................................................................7

2 Crearea unui model................................................................................................92.1 Plasarea blocurilor..........................................................................................92.2 Prescrierea proprietăţilor şi parametrilor blocurilor.....................................102.3 Legende........................................................................................................152.4 Conectarea blocurilor. Semnale...................................................................162.5 Blocurile Integrator, Gain şi Sum, Add, Subtract, Sum of Elements...........182.6 Parametrii simulării......................................................................................24

2.6.1 Scrierea stării şi ieşirilor porturilor în spaţiul Matlab..........................252.6.2 Citirea stării iniţiale şi a intrărilor porturilor din spaţiul Matlab..........28

2.7 Afişarea rezultatelor.....................................................................................312.7.1 Blocul Scope........................................................................................312.7.2 Blocul XYGraph..................................................................................352.7.3 Blocul Display......................................................................................362.7.4 Blocul Floating Scope..........................................................................37

2.8 Salvarea datelor în fişiere şi spaţiul de lucru Matlab...................................382.9 Citirea datelor din fişiere şi spaţiul de lucru Matlab....................................412.10 Simularea unui model Simulink în Matlab..................................................432.11 Blocurile Mux şi Demux..............................................................................45

2.11.1 Crearea semnalelor cu blocul Mux......................................................452.11.2 Extragerea semnalelor din blocul Demux............................................45

2.12 Blocurile Bus Creator şi Bus Selector..........................................................522.12.1 Crearea unui bus...................................................................................532.12.2 Selectarea semnalelor din bus..............................................................55

3 Blocuri pentru generarea şi analiza semnalelor...................................................573.1 Blocuri pentru generarea semnalelor...........................................................573.2 Blocuri pentru analiza semnalelor................................................................583.3 Analiza modelelor la diverse intrări.............................................................64

4 Blocuri de calcul..................................................................................................715 Blocuri neliniare...................................................................................................756 Funcţii definite de utilizator.................................................................................81

6.1 Funcţii definite printr- o expresie.................................................................816.2 Utilizarea funcţiilor Matlab..........................................................................836.3 Funcţii definite de utilizator (S-Funcţii)......................................................85

7 Simularea sistemelor liniare continue cu coeficienţi constanţi............................917.1 Blocul Transfer Fcn......................................................................................927.2 Blocul Zero-Pole..........................................................................................967.3 Blocul State-Space.......................................................................................97

8 Crearea de subsisteme........................................................................................1008.1 Crearea unui subsistem prin inserarea unui bloc Subsystem.....................1008.2 Crearea unui subsistem prin gruparea blocurilor.......................................108

9 Descrierea fişierului creat de editorul de modele...............................................11110 Secvenţa de calcul a elementelor modelului..................................................11411 Explorarea modelului.....................................................................................117

11.1 Explorarea modelului.................................................................................11711.2 Navigarea în model....................................................................................120

12 Simularea unui motor asincron......................................................................121

2

Page 3: Simulink

13 Simularea maşinilor electrice.........................................................................12813.1 Maşina asincronă........................................................................................12813.2 Maşina de curent continuu.........................................................................13813.3 Maşina sincronă.........................................................................................142

3

Page 4: Simulink

2 1 Lansarea aplicaţiei SimulinkAplicaţ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.

1.1 Editorul de modelePentru 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

Page 5: Simulink

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

Page 6: Simulink

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

Page 7: Simulink

Buton FuncţieNewOpenSavePrint

CutCopyPaste

UndoRedo

Tabelul 2. Butoanele barei de instrumente a editorului de modele.

Editorul de modele crează din model un fişier cu extensia .mdl.

1.2 Bibliotecile aplicaţiei SimulinkBibliotecile 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 telecomulnicaţii, sisteme automate, meşini electrice, mecanică, etc.

7

Page 8: Simulink

Figura 5. Bibliotecile aplicaţiei Simulink.

8

Page 9: Simulink

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

2.1 Plasarea blocurilorPlasarea 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

Page 10: Simulink

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.

4.1 Prescrierea proprietăţilor şi parametrilor blocurilorIn 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

Page 11: Simulink

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

Page 12: Simulink

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

Page 13: Simulink

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 color şi Background color

b) Submeniul Format al blocului

Tabelul 4. Meniul contextual al unui bloc.

Submeniurile Foreground color, Background color şi Format.

13

Page 14: Simulink

1) Align Blocks

2) Distribute Blocks

3) Resize Blocksa) 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

Page 15: Simulink

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

4.2 LegendeLegendele 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

Page 16: Simulink

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.

4.3 Conectarea blocurilor. SemnaleBlocurile 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 blobcului 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

Page 17: Simulink

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 4c. 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 highlightning anulează opţiunile anterioare.

17

Page 18: Simulink

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

4.4 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 ordinarex'' + 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' – 2xInmulţirea mărimilor x şi x' cu 2 şi respectiv 3 se face cu blocuri Gain. Ele sunt însumate în blocul Sum.

18

Page 19: Simulink

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

Page 20: Simulink

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

Page 21: Simulink

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 * uy = 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

Page 22: Simulink

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 x0 = 1 şi x0’ = 0. Vom pune

ecuaţia sub forma unui sistem de ecuaţii diferenţiale de ordin întâi. Cu substituţiiley = x1

y' = x2

obţinem sistemul

yy

32

10'

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

Page 23: Simulink

Parametrul blocului Gain este matricea

32

10K

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

Page 24: Simulink

3.1 Parametrii simulăriiParametrii 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

Page 25: Simulink

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.

3.1.1 Scrierea stării şi ieşirilor porturilor în spaţiul MatlabIn 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>> xlabel('time')

25

Page 26: Simulink

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

Page 27: Simulink

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.

>> youtyout =

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

Page 28: Simulink

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

3.1.2 Citirea stării iniţiale şi a intrărilor porturilor din spaţiul MatlabEste posibil de a prescrie ca stare iniţială a modelului un vector din spaţiul Matlab şi de a importa date î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 care să fie intrările blocurilor tip Inport din model (porturile de intrare ale modelului).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 Figura25 se marchează opţiunea Initial state.

28

Page 29: Simulink

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.

Este posibil de a importa date î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, care vor fi intrările elementelor tip Inport (porturile de intrare ale modelului). 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

Page 30: Simulink

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

Page 31: Simulink

2.1 Afişarea rezultatelorAplicaţ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.

2.1.1 Blocul ScopeFereastra 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ţieTipă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

Page 32: Simulink

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

Page 33: Simulink

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

Page 34: Simulink

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.

>> ScopeDataScopeData = 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.signalsans = 1x2 struct array with fields: values dimensions label title plotStyle

34

Page 35: Simulink

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).labelans =x'

>> ScopeData.signals(2).labelans =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ă.

2.1.2 Blocul XYGraphEste 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

Page 36: Simulink

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.

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

36

Page 37: Simulink

2.1.4 Blocul Floating ScopeBlocul 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

Page 38: Simulink

Figura 36. Blocul Floating Scope.

2.2 Salvarea datelor în fişiere şi spaţiul de lucru MatlabPentru 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. Aceste blocuri sunt simbolizate ca în Tabelul 16. Ele se găsesc în biblioteca Sinks.

Bloc SimbolizareTo 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

Page 39: Simulink

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

Page 40: Simulink

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>> sinrezsinrez = 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

Page 41: Simulink

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.

2.3 Citirea datelor din fişiere şi spaţiul de lucru MatlabEste 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 SimbolizareFrom File

From Workspace

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

Modelul din Figura 40 utilizează blocul From Workspace.

41

Page 42: Simulink

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

Page 43: Simulink

Figura 41. Caseta de dialog a blocului From Workspace.

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

2.4 Simularea unui model Simulink în MatlabUn 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' este numele modelului (numele fişierului . mdl) tspan este vectorul [tstart, tfinal], cu timpii de început şi de sfârşit ai simulării options este un vector cu opţiunile simulării, cu perechi nume, valoare

43

Page 44: Simulink

ut este o 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.

2.5 Blocurile Mux şi DemuxIn 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

44

Page 45: Simulink

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.

2.5.1 Crearea semnalelor cu blocul MuxBlocul 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. Dcă 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.

2.5.2 Extragerea semnalelor din blocul DemuxBlocul 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.

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

45

Page 46: Simulink

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

Page 47: Simulink

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

Page 48: Simulink

Figura 47. Blocul Scope cu primele două semnale.

Figura 48. Blocul Scope1 cu al treilea semnal.

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

Page 49: Simulink

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

Page 50: Simulink

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

Page 51: Simulink

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' – 2xVom 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

Page 52: Simulink

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.

2.6 Blocurile Bus Creator şi Bus SelectorUn 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

Page 53: Simulink

2.6.1 Crearea unui busBlocul 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 listă 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

Page 54: Simulink

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

Page 55: Simulink

Figura 58. Afişarea sursei unui semnal.

2.6.2 Selectarea semnalelor din busBlocul 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

Page 56: Simulink

Figura 59. Caseta cu parametri a blocului Bus Selector.

56

Page 57: Simulink

3. Blocuri pentru generarea şi analiza semnalelor

3.1 Blocuri pentru generarea semnalelorIn 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

Page 58: Simulink

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.

3.2 Blocuri pentru analiza semnalelorBlocurile de analiza semnalelor sunt cele din Tabelul 21. Ele sunt definite în biblioteca Simulink Extras / Additional Sinks.

Bloc SimbolizareAutocorelaţ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

Page 59: Simulink

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

Page 60: Simulink

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

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

Funcţia de autocorelaţie este

Fie de calculat funcţia de autocorelaţie pentru semnalul .Modelul este cel din Figura 63, iar rezultatul este cel din Figura 64.

60

Page 61: Simulink

Figura 63. calculul autocorelaţiei unui semnal sinusoidal.

Figura 64. Autocorelaţia unui semnal sinusoidal.

61

Page 62: Simulink

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

Page 63: Simulink

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ă

>> bode(tfa)

63

Page 64: Simulink

>> grid

Rezultatul este cel din

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

3.3 Analiza modelelor la diverse intrăriAplicaţ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

Page 65: Simulink

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

Page 66: Simulink

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

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 Figura71,

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

Page 67: Simulink

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

Page 68: Simulink

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

Page 69: Simulink

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

Page 70: Simulink

Figura 78. Ieşirile elementelor Transfer Fcn.

70

Page 71: Simulink

4. Blocuri de calculSimulink 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

Page 72: Simulink

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

Page 73: Simulink

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

Page 74: Simulink

Figura 83. Calculul matricei ln(a).

74

Page 75: Simulink

5. Blocuri neliniareMatlab 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 Tabelul23. 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 Figura84. 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

Page 76: Simulink

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

Page 77: Simulink

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

Page 78: Simulink

Bloc SimbolizareDecoder 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

Page 79: Simulink

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

Page 80: Simulink

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

80

Page 81: Simulink

6. Funcţii definite de utilizatorUtilizatorul 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.

6.1 Funcţii definite printr- o expresieUtilizatorul 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

Page 82: Simulink

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

Figura 92. Funcţie definită de utilizator.

82

Page 83: Simulink

Figura 93. Soluţia sistemului din Figura 91.

6.2 Utilizarea funcţiilor MatlabUtilizatorul 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

inversăm matricea

43

21.

>> a = [1 2;3 4]a = 1 2 3 4

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

>> ainv(a)

83

Page 84: Simulink

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

Page 85: Simulink

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

Figura 97. Caseta de dialog cu parametrii blocului Reshape.

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

85

Page 86: Simulink

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

Page 87: Simulink

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

otherwiseerror([' 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

Page 88: Simulink

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 = simsizes2. 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

Page 89: Simulink

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

Page 90: Simulink

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

Page 91: Simulink

7. 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 SimbolizareMatrice de transfer dată prin coeficienţii polinoamelorMatrice 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 ordinarex'' + 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

Page 92: Simulink

Rezultatul simulării modelului este cel din Figura 102.

Figura 102. Rezultatul simularii sistemului din Figura 101.

7.1 Blocul Transfer FcnBlocul 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 = 1Să calculăm soluţia ecuaţiei diferenţiale în condiţii iniţiale nule.Funcţia de transfer corespunzătoare ecuaţiei este

23

12

ss

sH

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

92

Page 93: Simulink

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

Page 94: Simulink

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

2

23

12 s

s

sssH

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

Page 95: Simulink

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

s

sU1

Transformata Laplace a ieşirii este

1

2

23

112 s

s

ssssUsHsY

5.0

1

1

2

2

1lim

0

ssYs

95

Page 96: Simulink

7.2 Blocul Zero-PoleBlocul Zero-Pole poate simula sisteme liniare descrise printr-o matrice de transfer.Exemplu. Fie din nou ecuaţia diferenţială

x'' + 3x' + 2x = 1Să 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

23

12

ss

sH

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

Page 97: Simulink

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.

7.3 Blocul State-SpaceExemplu. Fie din nou ecuaţia diferenţială

y'' + 3y' + 2y = 1Să 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 + Buy = Cx + Du

Cu substituţiile:y = x1

y' = x2

avem

32

10A

1

0B 01C 0D

Blocul utilizat în acest caz este State-Space. Modelul este cel din Figura 110.

97

Page 98: Simulink

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

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

Page 99: Simulink

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

Page 100: Simulink

8. Crearea de subsistemeSimulink permite crearea de subsisteme care pot fi utilizate în mai multe locuri în sistem.

8.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 SimbolizareInport

Outport

Tabelul 29. Blocurile Inport şi Outport.

100

Page 101: Simulink

Ele se găsesc în biblioteca Ports & Subsystems.Vom exemplifica crearea unui subsistem ce modelează funcţia de transfer

1Ts

k

Vom scrie ecuaţia diferenţială corespunzătoare funcţiei de transfer)()()(' tuktytTy

de unde deducem expresia derivatei

)()(1

)(' tytkuT

ty

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

Page 102: Simulink

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

Page 103: Simulink

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

Page 104: Simulink

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

Page 105: Simulink

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

Buton FuncţieCrează 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

Page 106: Simulink

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

Page 107: Simulink

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

Page 108: Simulink

Figura 124. Reprezentarea unui model cu subsisteme.

8.2 Crearea unui subsistem prin gruparea blocurilorUn 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

1Ts

k

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

Page 109: Simulink

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

Figura 126. Subsistem creat de Simulink.

109

Page 110: Simulink

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

Page 111: Simulink

9. Descrierea fişierului creat de editorul de modeleEditorul 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" Ports [1, 1]

111

Page 112: Simulink

Position [260, 85, 290, 115] InitialCondition "1" Port

PortNumber 1Name "x"TestPoint offLinearAnalysisOutput offLinearAnalysisInput offRTWStorageClass "Auto"DataLogging offDataLoggingNameMode "SignalName"DataLoggingDecimateData offDataLoggingDecimation "2"DataLoggingLimitDataPoints offDataLoggingMaxPoints "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]DstBlock "Gain1"

112

Page 113: Simulink

DstPort 1

113

Page 114: Simulink

10. Secvenţa de calcul a elementelor modeluluiFie 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

se calculează soluţia la momentul h

se calculează derivate la momentul h

se calculează soluţia la momentul 2 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

Page 115: Simulink

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, Gain1sau

Saturation, Gain1, Sum, Sum1, Gainsau

Sum, Saturation, Sum1, Gain1, Gainetc.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, Gain1Blocul Constant este calculat primul, fiind intrare externă.

115

Page 116: Simulink

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

116

Page 117: Simulink

11. Explorarea modelului

11.1 Explorarea modeluluiSimulink 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

Page 118: Simulink

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

Page 119: Simulink

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

Page 120: Simulink

a) modul de căutareb) opţiuni 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 Figura139.

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

11.2 Navigarea în modelNavigarea î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

Page 121: Simulink

12. Simularea unui motor asincronIn acest capitol vom prezenta un exemplu semnificativ, simularea unui motor asincron.Ecuaţiile ce descriu motorul asincron sunt:

unde cuplul electromagnetic M are expresia

şi este cuplul rezistent. In cazul motorului avem

In ecuaţiile de mai sus şi sunt inductivităţile de pierderi în stator şi rotor,

este inductivitatea mutuală, şi sunt inductivităţile totale, iar şi sunt rezistenţele electrice ale statorului şi rotorului. J este momentul de inerţie, p este numărul de perechi de poli. şi sunt curenţii din axa d, , sunt curenţii din axa q, este viteza unghiulară a câmpului învârtitor. şi sunt tensiunile

statorice în axele de şi q, şi sunt tensiunile rotorice în axele d şi q. f este frecvenţa tensiunii de alimentare.Parametrii motorului sunt:

, f= 50 Hz, , , ,

, , p = 2, Vectorul de stare al sistemului este

Vom considera acest vector de stare format din vectorul şi . Facem următoarele notaţii:

121

Page 122: Simulink

, ,

,

Cu aceste notaţii, rescriem sistemul de ecuaţii diferenţiale de mai sus ca

Pentru a calcula derivata trebuie să calculăm matricea inversă A-1.

Pentru a calcula cuplul electromagnetic M vom defini matricea

şi expresia se calculează ca x’ MC x. Ecuaţia de mişcare

se va scrie ca

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 0 0 rpr 0

122

Page 123: Simulink

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 Jasyncmotsim

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

Page 124: Simulink

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şireaClock Timpul simulării t Gain 2*pi*50 2*pi*50*tcos cos cos(2*pi*50*t) sin sin sin(2*pi*50*t) Gain6 220*sqrt(2)

Gain1 Ainv

Gain2 R R * xGain3 L L * xGain4 MC MC * x

Gain5 1/j

Product *L*x *L*xDot product x’MC x x’ * MC * x

Integrator x

Integrator1

Constant 0 0Sum Sum

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 . Parametrii configuraţiei relative la exportul datelor în spaţiul Matlab sunt cei din Figura 141.

124

Page 125: Simulink

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

Page 126: Simulink

Figura 143. Turaţia motorului asincron.

Rezultatele se pot prelucra ulterior în Matlab. De exemplu, curentul ids este memorat în prima coloană a matricei xout, şi este reprezentat în Figura 144 cu instrucţiunile

plot(tout, xout(:, 1))gridxlabel(‘t [s]’)ylabel(‘i_ds [A]’)pause

126

Page 127: Simulink

Figura 144. Curentul ids.

127

Page 128: Simulink

13. Simularea maşinilor electriceBlocurile utilizate în simularea maşinilor electrice sunt definite în bibliotecile grupate sub numele SimPowerSystems.

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

unde cuplul electromagnetic Te are expresia

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

In ecuaţiile de mai sus

şi sunt inductivităţile de pierderi în stator şi rotor, este inductivitatea de

magnetizare, şi sunt inductivităţile totale, iar şi sunt rezistenţele electrice

ale statorului şi rotorului. şi sunt curenţii din axa d, , 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

128

Page 129: Simulink

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 Tm 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ă, [VA], tensiunea de linie, [V], frecvenţa tensiunii de

alimentare, [Hz],3. rezistenţa şi inductivitatea de pierderi ale statorului, [Ω], şi Lls [H] ,

4. rezistenţa şi inductivitatea de pierderi ale rotorului, [Ω], şi L’lr [H],

5. inductivitatea de magnetizare, [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

Page 130: Simulink

Figura 145. Caseta cu parametrii maşinii asincrone.

Variabilele de ieşire, în număr de 21, sunt următoarele:1. , , , , ,

2. , ,

3. , ,

4. , , , , ,5. , 6. , ,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

Page 131: Simulink

, fn= 50 Hz, , , ,

, , p = 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

Page 132: Simulink

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

Page 133: Simulink

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

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

Page 134: Simulink

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

Page 135: Simulink

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

Page 136: Simulink

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

Page 137: Simulink

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

Page 138: Simulink

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

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

13.2 Maşina de curent continuuModelul 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

Page 139: Simulink

unde: , sunt curenţii circuitului de excitaţie şi rotoric, este viteza rotorului, , sunt inductivitatea şi rezistenţa circuitului de excitaţie, , sunt inductivitatea şi rezistenţa circuitului rotoric, , sunt tensiunile la bornele înfăşurărilor de excitaţie şi rotorice, este momentul de inerţie în kg m2, este coeficientul de frecare vâscoasă în N

m s, este cuplul de frecare Coulomb în N m.Tensiunea contraelectromotoare este . Constanta este dată de relaţia

unde este inductivitatea mutuală excitaţie-rotor . Cuplul dezvoltat de maşină este

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 [A],3. curentul de excitaţie [A],4. cuplul electric [N m]

139

Page 140: Simulink

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

140

Page 141: Simulink

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

Page 142: Simulink

Figura 162. Turaţia morului de curent continuu.

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

In aceste ecuaţii este rezistenţa infăşurărilor din axele d şi q, este rezistenţa

înfăşurării de excitaţie, , , sunt rezistenţele înfăşurărior de amortizare din

axele d şi q. Fluxurile , din axele d şi q, din înfăşurarea de excitaţie şi ,

, ale înfăşurărilor de amortizare au expresiile:

142

Page 143: Simulink

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

inductivităţile de magnetizare în axele d şi q, este inductivitatea înfăşurării de

excitaţie, , şi sunt inductivităţile înfăşurărilor de amortizare din axele d şi q. Aceste inductivităţi sunt date de relaţiile:

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

la care se adaugă ecuaţia

unde cuplul electromagnetic Te are expresia

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

Page 144: Simulink

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, , curenţii de linie ia, ib, ic [A], unghiurile iniţiale

ale fazelor, , , , [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

Page 145: Simulink

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, , , [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:

, , , ,

, ,p = 2, f = 50 Hz, J = 616 kg m2, F = 0, nn = 1500 rot/minPn = 8000 Kw, Un = 2887 / 5000 V.

Modelul este cel din Figura 165, iar caseta cu parametrii motorului este cea din Figura166.

145

Page 146: Simulink

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

Page 147: Simulink

Figura 166. Parametrii maşinii sincrone.

147

Page 148: Simulink

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

Page 149: Simulink

Figura 169. Curentul id al motorului.

149

Page 150: Simulink

Figura 170. Viteza unghiulară.

150

Page 151: Simulink

Figura 171. Cuplul electric.

151