Documente Academic
Documente Profesional
Documente Cultură
z
z
z
Introducere in Simulink;
Modelarea si simularea sistemelor dinamice (in timp
continuu si discret), sistemelor si elementelor
neliniare;
Proiectarea sistemelor de reglare automata (SRA)
utilizand RG-P, PI, PID;
Modelarea circuitelor electrice si a filtrelor de retea
si simularea diferitelor regimuri de funcionare;
Modelarea si simularea masinilor electrice
Metode de pornire si franare a MCC cu excitatie separata
Actionari cu MCC, reglarea vitezei in cascada.
3
Structura prezentarii: C1 + C2
Introducere in MATLAB & Simulink
1.
z
z
z
z
Ce este MATLABul ?
Lansarea in executie. Interfata MATLAB - utilizator
Ce este Simulinkul ?
Informatii ajutatoare ale MATLABului (Helpul online)
2.
3.
7
Fig. 1. Lista principalelor toolboxuri ale versiunii MATLAB 6.5.
10
z
z
z
z
Daca numele variabilei si semnul = sunt omise, MATLABul creeaza automat o variabila cu
numele ans (Fig. 4) in care este returnat rezultatul unui calcul, ca in exemplul urmator:
Tastand urmatoarea secventa (operatie matematica) in fereastra de comanda
20 2 * 5
MATLABul va returna urmatorul raspuns: ans = 10
Orice instructiune sau linie de instructiuni este terminata cu enter. Utilizand tasta enter se
trece la urmatoarea secventa de linie.
Daca ultimul caracter al liniei este punct-virgula ; , instructiunea este executata dar nu se
tipareste nimic in fereastra de comenzi (command window).
MATLABul utilizeaza pentru reprezentarea numerelor, in notatia zecimala conventionala,
punctul zecimal. De exemplu 0.15 = 0,15 sau 1.5021e-6 = 1,5021 * 10-6.
z
z
z
z
z
14
Simbolul doua puncte (:) este unul dintre cei mai importani operatori ai
MATLABului. Poate fi utilizat pentru a crea vectori si matrice, pentru a
specifica submatrice si vectori si pentru a executa iteraii.
z De exemplu comanda: t1 = 1:6
va genera un vector linie coninnd numerele de la 1 la 6 avand incrementul
unitate. MATLABul va genera rezultatul:
z
t1 = 1 2 3 4 5 6
z Incrementul poate fi pozitiv sau negativ si poate fi diferit de unitate, ca in
exemplul urmator:
t2 = [(0:2:10); (5:-0.2:4)]
va genera urmatorii vectori:
t2=
0 2.0000 4.0000 6.0000 8.0000 10.0000
5.0000 4.80000 4.60000 4.40000 4.20000 4.0000
z MATLABul are cateva variabile speciale predefinite. Acestea nu pot fi
declarate si sunt accesibile global in orice fisier-M (M-file) si includ:
i, j, pi=, inf= si NaN=Not-a-Number (0/0);
z Ambele variabile i si j au aceeasi valoare si sunt folosite pentru a genera
numerele complexe, ca in exemplul urmator:
z=3+4*j.
15
Va returna z = 3.0000 + 4.0000i
Descrierea functiei
what
Listeaza fisierele cu extensia .m, .mat, .dat, .mex din directorul curent
who
whos
dir
cd
delete
Sterge fisierul precizat de pe disc
which +nume fisier
17
z
z
z
z
%Amplitudine.m: exemplu de fisier script pentru calcularea amplitudinii si fazei lui G pentru w=1.
z
z
Daca prima linie a unui fiier M conine cuvntul function, fisierul respectiv este
declarat ca fiier funcie.
Variabilele definite si manipulate in interiorul fiierului functie sunt localizate la
nivelul acesteia. Prin urmare la terminarea execuiei unei functii, in memoria
calculatorului nu raman dect variabilele de ieire ale acesteia.
Un fiier funcie difer de unul script prin faptul ca poate lucra cu argumente
(secvente ale functiei: intrri - ieiri).
Forma generala a primei linii a unui fiier function este:
Daca fiierul function nu conine nici un argument de iesire, atunci prima linie poate
avea forma:
20
function printresults(x)
21
z
z
Ceea mai simpla metoda de definire a matricelor consta in utilizarea unei liste
explicite care trebuie sa respecte urmatoarele reguli:
elementele unei linii trebuie separate prin spatii libere (blankuri) sau virgule
liniile se separa prin semnul (;)
elementele unei matrice sunt cuprinse intre paranteze drepte
z
z
1 2 3
A = 4 5 6
7 8 9
A=
1 2 3
4 5 6
7 8 9
Pentru a determina dimensiunea unei matrice A si lungimea acesteia se utilizeaz
functiile MATLAB size (A) si length (A).
Suma matricei A se calculeaza cu comanda sum(A), si se obine rezultatul:
ans = 12 15 18
24
B = [B; [5 6]];
1.2807
1.4737
z
Ceea ce inseamna ca
I1 = -3.6491 A, I2 = 1.2807 A si I3 = 1.4737 A
26
M=0 0 0 0
0 0 0 0
N=
0.6353 0.0860 -0.3210 -1.2316
-0.6014 -2.0046 1.2366 1.0556
0.5512 -0.4931 -0.6313 -0.1132
-1.0998 0.4620 -2.3252 0.3792
27
29
Z=
9.7942
31
z
z
z
z
Programarea MATLAB.
Instruciuni si funcii de control
z
z
z
if expresie_logica
grup_de_instruciuni
end
z
Clauza else este utila pentru a executa un set de instructiuni, daca expresia
logica este adevarata, si un alt set de instructiuni, daca expresia logica este falsa.
Sintaxa instructiunii if este combinata cu clauza else, si are forma generala:
if expresie_logica
grupul_de_instructiuni A
else
grupul_de_instructiuni B
36
end
Instruciunea for
z
end
In care index este numele contorului, expresie este o matrice, un vector sau un
scalar, iar grupul de instruciuni poate fi orice expresie(functie) MATLAB (de
exemplu k = initial : pas : final).
z
z
z
z
z
z
Vectorizarea calculelor
z
z
z
z
z
De exemplu, daca
x=[0 3.7 6.1 6.5 5.8 3.6];
Comanda plot(x) va genera
graficul din figura ;
Daca x si y sunt 2 vectori de
aceeai lungime, comanda
plot(x, y) va trasa grafic
elementele lui x (axa-x)
funcie de elementele lui y
(axa-y).
47
t = 0:0.05:4;
y = 6 * exp(-2 *t);
plot (t, y)
z title ( Raspunsul unui circuit RC )
% tipareste titlul graficului
z xlabel(Timpul (s))
% tipareste numele variabilei axei x
z ylabel(Tensiunea (V))
% precizeaza parametrul (variabila) axei y
z
50
51
z
z
MATLABul conine o familie (set) de functii pentru generarea graficelor. Cele mai
importante dintre ele sunt descrise in tabelul 10 (pg. 36).
Reprezentarea grafica cu bare se face cu functia bar si se apeleaza cu una
dintre sintaxele: bar(y) care traseaza un vector de bare cu elementele
vectorului y, sau bar(x, y ) care traseaza un grafic de bare cu elementele
vectorului y la locatiile specificate de vectorul x, adica y=y(x). Aceasta functie
creeaza un grafic de bare vertical, in care valorile vectorului y sunt utilizate pt. a
determina inaltimea barei, iar valorile vectorului x sunt folosite pt. a eticheta
fiecare bara.
Reprezentarea grafica a semnalelor discrete se face cu functia stem, sub forma
unor linii terminate cu cerculet la extremitatea opusa axei. Se apeleaza cu
sintaxa stem(y) sau stem(x, y).
Graficele in trepte sunt utilizate la reprezentarea diagramelor sistemelor
numerice de esantionare si prelucrare a datelor. Reprezentarea grafica in trepte
se face cu functia stairs, care se apeleaza cu una din sintaxele stairs(y) sau
stairs(x, y).
Functia mesh - Traseaza grafic o retea sub forma de plasa;
Functia fplot genereza un grafic cu anumite restrictii intre limite specificate. Se
apeleaza cu una dintre sintaxele urmatoare:
52
fplot(fun, limite), fplot(fun, limite, n), fplot(fun, limite, n, unghi).
z
z
z
z
54
z
z
z
set(get(AX(2),'ylabel'),'String','Axa-y partea
dreapta')
Exemplu: Sa se reprezinte
grafic in 3D cu un pas de
/ 50, un arc spiralat (spirala)
utiliznd funciile sin(t) si
cos(t), tiind ca t=(0-10).
Sa se inscripioneze cele
trei axe x, y si z.
Soluie: Cu secvena
urmtoare se obine graficul
din figura:
t = 0 : pi / 50 : 10*pi;
plot3(sin(t), cos(t), t)
58
61
Functia
Descrierea functiei
min, max
mean
prod, sum
std
diff
trapz
67
z Daca
%Utilizarea regulii lui Simpson si metoda trapezelor pt. calculul integralei functiei y = f(x)
Se obtine rezultatul:
Intsimp = 1.8464
Inttrapz = 1.9742
71
72
dy = diff ( Y ). / diff ( X )
74
z
z
z
z
z
76
77
Functia
Descrierea functiei
table1, table2
interpft
spline
polyfit
interp1
80
plot(x, y1, x, y, *)
82
83
g(t) = g(t Tp )
z
Si daca in orice interval finit g(t) are cel puin un numr de discontinuitati
si un numar finit de minimuri si maximuri (condiiile lui Dirichlet), atunci
g(t) poate fi exprimata cu o serie de functii sinusoidale:
a0
g (t ) = + an cos(n w0 t ) + bn sin(n w0 t )
2 n=1
z
g (t ) exp( j 2 ft ) dt
G ( f ) = g (t ) exp( j 2ft ) dt
G( f ) =
..(18)
z Valoarea semnalului g(t) poate fi obinuta din expresia transformatei
Fourier (ec. 18) utiliznd relaia transformatei Fourier inverse:
g (t ) =
G ( f ) exp(
j 2 ft ) df
86
Transformata Fourier
z
1
Tp
f 1
c
Tp
n =
1
g (t ) exp( j 2 n f 0 t )dt
Tp
87
z
z
z
Descrierea functiei
fft
fft2
fftn
ifft
abs
angle
unwrap
FFT - Exemple
91
FFT - Exemple
z
FFT - Exemple
93
P2 =
R2
(R 1 +
R2 )
96
98
z
z
z
z
z
0
0
0
1 0 0
1 1 0 50
0
0
0 1 1 0
100
0
A=
0
0
300
0 1 0
0 0 1
0
2
0
1
1
1
0 0 0
100
40
10
30
=
10
I
I
I
2
3
1
10
+
30
=
0
I
I
I
1
2
3
I3 = 0
30 (I3 I1 ) + 5 (I3 I2 ) + 30101
30
+
65
=
0
I
I
I
1
2
3
2
30 5 65 I 3 0
0
.
025
2
0.05 0.025 0.075 U 3 2
104
du(t ) u(t ) us
C
+
=0
dt
R
t
u (t ) = us 1 e RC
106
107
Ex. 49: Pentru o tensiune de intrare dreptunghiulara (us) cu amplitudinea de 5V si latimea pulsului de 0.5 sec
si un condensator C = 10 F, sa se reprezinte grafic tensiunea la bornele condensatorului u(t)
pentru o rezistenta de 2.5 k si apoi pentru una de 10 k.
z
108
Transformata Laplace
z
Ex. 51: Sa se determine tensiunea u(t) la bornele unui condensator pentru circuitul
RLC paralel din figura 45, tiind ca R = 10 , L = 1 / 32 H, C = 50 F, Is = 2 A.
z
z
La t < 0, tensiunea la
bornele condensatorului
este uC(0) = 2 * 10 = 20V si
curentul prin bobina iL = 0;
La t > 0, comutatorul se
nchide si toate cele patru
elemente sunt in paralel.
Utiliznd Teorema lui
Kirchoff va rezulta ecuaia:
Aplicnd Transformata
Laplace ecuaiei (57) vom
obine:
u(t)
du(t) 1
Is =
+C
+ u( ) d + iL (0)
R
dt L 0
Is U(s)
U(s) IL(0)
=
+C[sU(s)Uc(0)] +
+
s R
sL s
110
Se scrie un fisier function, cu numele diff2, cu solutia ecuatiei diferentiale si un fisier script
principal care apeleaza fisierul function si care reprezinta grafic tensiunea la bornele
condensatorului utilizand functia MATLAB ode23 si Transformata Laplace:
% Fisierul function cu Solutia unei ecuatii diferentiale de ordinul 2
t2 = 0:1e-3:30e-3;
ut = -6.667*exp(-1600*t2)+26.667*exp(-400*t2);
subplot(212), plot(t2, ut);
xlabel('Timpul (s)'),ylabel('Tensiunea pe condensator (V)');
111
112
z
z
Conceptual nu exista nici o diferena intre studiul circuitelor electrice pur rezistive,
in regim staionar (permanent sinusoidal), si studiul circuitelor electrice inductive si
capacitive, daca scriem ecuaiile circuitelor in forma matriciala sau le nlocuim cu
fazori. Singura diferena, fata de circuitele rezistive, consta in faptul ca matricele
conin ca elemente numere complexe si impedana acestor circuite depinde de
frecventa.
Relaiile fazoriale tensiune curent pentru rezistor, bobina si condensator sunt:
I
U R = I R ; U L = I ( j L ); U C =
( j C )
Si in acest caz pentru studiul diferitelor regimuri de funcionare se utilizeaz
Teoremele lui Kirchoff, Teorema potenialelor la noduri, Teorema curenilor ciclici
(de contur) etc.
MATLABul utilizeaz funcii de integrare numerica (quad, quad8) pentru a obine
valorile efective, medii sau instantanee ale diferiilor parametrii, cum ar fi curentul,
tensiunea sau puterea.
Circuitele trifazate pot fi analizate prin conversia in domeniul frecventa
Daca se cunoate funcia de transfer (fdt) a unui circuit, librria de funcii MATLAB
conine funcii dedicate care pot evalua fdt la o anumita frecventa, sau pot calcula
polii si zerourile funciei respective
113
u (t ) = 10 cos( 220t + 30 0 )
i (t ) = 6 cos( 220t + 60 0 )
U
ef
= U =
I ef = I =
T
1
Pmedie = p(t) = u(t) i(t) dt
T 0
T
1
( t ) dt
( t ) dt
P 114 P
k= =
S U I
%Calcul numeric
T = 2*pi / (220*pi);%perioada formei de unda sinusoidale
a = 0;b = T; %limitele de integrare
x = 0 : 0.02 : 1; t = x .* b;
Uint = quad('Tensiunea', a, b);
Uef = sqrt(Uint / b); %tensiunea efectiva
Iint = quad('Curentul', a, b);
Ief = sqrt(Iint / b); %Valoarea efectiva a curentului
Pint = quad('Putereainstantanee',a,b);
Pmedie = Pint / b; %puterea medie
k = Pmedie / (Ief * Uef); %factorul de putere
%Solutia analitica:
P_amedie = (60 / 2)*cos(30*pi / 180);
U_aef = 10 / sqrt(2); k_a = cos(30*pi / 180);
115
116
dUC
+UC =U(t)
RC
dt
dy
a + by = sin(2t);a = RC,b =1
dt
2a(k) y(k 1)
diferentiale de ordinul 1
+b(k)
+a(k) D(k 1) +u(k)
y(k) =
t
t
(Tensiunea pe condensator):
118
z
120
d 2U C
dU C
LC
+
RC
+ U C = U (t )
dt
dt 2
d2y
dy
a 2 +b
+ cy = sin( t )
dt
dt
1
( b(1) D(1) c(1) y(1) + u(1))
D2 (1) =
a
(
1
)
121
function zp=RLC(t,z)
%Acest fisier function reprezinta grafic tensiunea pe condensator intr-un
%circ RLC cu metoda ode45(Runge-Kutta) si include sistemul de ecuatii
a = 1;b = 3;c = 1; zp(1,1) = z(2,1);
zp(2,1) = (1/a) * (sin(t) b * z(2,1) c * z(1,1));
%Acest fisier script reprezinta grafic tensiunea pe condensator intr-un
%circ RLC cu metoda ode45(Runge-Kutta) si acceseaza fisierul function RLC
tspan = [0 16 * pi]; zin = [0; 0];
[t, z] = ode45('RLC', tspan, zin);
plot(t,z(:,1),t,sin(t)),axis([0 50 -1 1]), xlabel('Timpul'),title('Comparatie intre
Tensiunea pe condensator intr-un circuit RLC si Tensiunea sursei de
alimentare')
123
124
Dac se dorete s
se reprezinte grafic
rspunsul n
domeniul timp
pentru un semnal
treapt i impuls, se
utilizeaz comenzile
step(sys) i
impulse(sys).
H (s) =
1
s 2 + 10 s + 20
126
Functia
MATLAB pt.
alocarea
polilor:
pzmap
Iar pt. locul
geometric al
radacinilor
rlocus;
127
Rspunsul in frecventa
Rspunsul n frecven sau diagrama Bode,
alturi de algoritmii de reglare ai regulatoarelor
de tip proporional-integrator-derivativ (RG-PID),
sunt cele mai utilizate metode de proiectare ale
sistemelor de conducere utilizate n industrie.
z Mrimea de ieire a unui sistem liniar, avnd ca
mrime de intrare un semnal sinusoidal, este tot
o sinusoid de aceeai frecven, dar de
amplitudine i faz diferite.
z Se poate aplica sistemelor de tip SISO sau
MIMO, considernd sistemul respectiv liniar.
z Este utilizat pentru proiectarea sistemelor de
conducere, acordarea parametrilor unor
regulatoare sau pentru proiectarea diferitelor
128
filtre electronice/filtre de reea etc.
z
Dac se dorete
reprezentarea
grafic a
rspunsului
sistemului n
domeniul
frecven, se
utilizeaz funcia
bode(sys), sau
bodemag(sys)
care reprezint
grafic doar
amplitudinea
diagramei Bode.
129
130
Conversia modelelor
z
z
z
133
Diagrama Nyquist
z
z
z
136
d2UC
dU
LC 2 + RC C +UC =Ui (t),uc (0) = 0
dt
dt
U 0 (s)
R
sRC
=
= 2
=
1
1
U i (s)
s
LC
sRC
+
+
R + sL +
sC
R
s
L
=
1
R
s2 + s +
L LC
H (s) =
S se calculeze i s se
reprezinte grafic rspunsul n
frecven al circuitului RLC
din figura tiind c:
R=10 k, C=1,12 F i L =
5H
ce se ntmpl dac
rezistena se modific la
valoarea R = 100 n timp
ce L i C rmn
neschimbate?
137
z
z
z
z
z
z
z
z
z
z
z
z
z
139
Editorul
Simulinkului
146
Crearea modelelor
Crearea modelelor in Simulink
utiliznd biblioteca standard
(nucleul de baza).
z Modelul alturat integreaz i
deriveaz un semnal sinusoidal
(o forma de unda sinusoidala) i
reprezint pe acelai grafic cele 3
semnale. Pentru a vizualiza pe
acelai grafic mai multe semnale
se utilizeaz blocul mux
(multiplexor).
z Diagrama bloc a modelului i
rezultatul simulrii sunt prezentate
in figurile alturate:
z
147
151
Crearea subsistemelor
z
z
z
y1
dt 2
1 dy1
y2 =
dt
y 2 = y 1 dt
y1 =
dt
dy 2
= y1
dt
153
154
156
159
z
z
z
z
z
z
Simulinkul ofer posibilitatea simulrii unui sistem att cu pas continuu (fix) cat si
cu pas variabil. Diferena consta in faptul ca daca se alege pasul variabil se
poate imbunatatii precizia simulrii prin reducerea mrimii pasului (paii inutili vor
fi eliminai).
De asemenea, se poate alege metoda de integrare numerica din meniul Solver.
Metodele de integrare a sistemelor continue sunt metodele numerice clasice
(Runge-Kutta, Adams, Euler, Rosenbrock, metoda trapezelor etc).
Simulinkul ofer opt metode de integrare numerica a ecuaiilor difereniale
care pot fi utilizate pentru rezolvarea unor sisteme flexibile (non-stiff) sau pentru
sisteme rigide (stiff) si de asemenea pentru sisteme discrete (cu pas variabil).
Al doilea meniu Workspace I/O din fereastra Simulation Parameters (fig. )
permite afisarea semnalelor de iesire. Acest meniu are trei opiuni:
Structure with time permite salvarea datelor in workspace (timpul - tout si a
semnalelor de iesire xout, yout, xFinal). Pentru afiarea valorilor xout si yout se
tasteaza in fereastra de comanda (command window) a MATLABului
xout.signals.values sau yout.signals.values;
Structure acest meniu este identic cu primul cu deosebirea ca nu afieaz
timpul;
Array afiseaza marimile definite in workspace, avnd pe prima coloana
vectorul timp.
Meniul Diagnostic ne permite sa urmrim toate evenimentele decurse in timpul
simulrii: de atentionare (warning), eroare (error) sau de loc (non).
Meniul Advance si meniul Real-Time Workshop permit stabilirea diferitelor opiuni
care pot afecta rezultatele simulrii precum si o extensie a posibilitilor de
realizare a unor modele complexe in vederea utilizrii unor algoritmi in timp
real.
160
163
Discretizarea modelelor
z
z
z
165
166
dx
= f ( x, t ); x(0) = x0
dt
168
169
= u dt
i=
L()
171
di
Uca = i R + L ;i(0) = i0
dt
t
1
i(t ) = (U ca i R)dt + i(0)
L0
174
1/ LC
G(s) = 2
s + s R/ L +1/ LC
1/ LC
G(s) = 2
s +s1/ RC+1/ LC
175
176
Biblioteca SimPowerSystems(SPS)
z
z
z
179
z
z
z
z
181
182
183
184
185
186
187
188
dIa
Ua = Ia RT + La
+Ue
dt
d
M em M R = J
dt
t
1
Ia(t) = (Ua Ia RT Ue)dt+Ia(0)
La 0
Ue = ka
Mem = ka Ia
t
1
(t ) = (M em M R ) dt + (0)
J0
191
Implementarea MM al MCC in
Simulink
192
193
La
J Ra
LE
Ta =
;TE =
;Tm = 2 2
Ra
RE
k
di a
1
=
(u a i a i E
dt
Ta
di E
1
=
(u E i E
dt
TE
d
1
=
(i a i E M
dt
Tm
195
196
U a ( s ) = I a ( s ) (R a + s L a ) + U e ( s )
U e (s) = ke (s)
F ( s ) = f (t ) e st dt
M em ( s ) = k m I a ( s ) = I E ( s ) I a ( s )
M em ( s ) = M R ( s ) + J ( s ) s
U E (s) = (RE + s LE ) I E (s)
kM
1
(s)
|MR (s)=0 =
H1(s) =
=
Ua (s)
s J (Ra + s La ) + kM kE kE s2 Tm Ta + s Tm +1
Ra + s La
kM (1+ s Ta )
(s)
H2 (s) =
|Ua (s)=0 =
= 2
MR (s)
s J (Ra + s La ) + kM kE s Tm Ta + s Tm +1
k E k a (1 + s T a )
(s)
H 3 (s) =
|U a ( s ) = 0 =
U e (s)
(1 + s T E ) 1 + s T m + s 2 T m T a
H 4 (s) =
kM
(s)
| I a ( s )=0 =
(1 + s T m ) (1 + s T E )
U e (s)
198
z
z
Ra +sLa
kM
(s) =
Ua (s)
MR(s)
(Ra +s La ) sJ+kM kE
(Ra +s La ) sJ+kM kE
199
200
201
z
z
z
203
204
205
207
208
209
211
212
213
214
215
Final Conclusion
216