Univerzitet u BeograduMaxinski fakultet
Matlab i Simulinku automatskom upravljanju
Radixa �. Jovanovi�
Beograd, 2016.
Dr Radixa �. Jovanovi�, dipl. in�. max., docentUniverzitet u Beogradu, Maxinski fakultet
Matlab i Simulink u automatskom upravljanjuI izdanje
Recenzenti:Prof. dr Zoran Ribar, Univerzitet u Beogradu, Maxinski fakultetProf. dr Zoran Buqevac, Univerzitet u Beogradu, Maxinski fakultet
Izdavaq:Maxinski fakultet Univerziteta u Beograduul. Kraljice Marije 16, 11120, Beograd 35tel. (011) 3302-384faks (011) 3370-364
Za izdavaqa:Prof. dr Radivoje Mitrovi�, dekan
Glavni i odgovorni urednik :Prof. dr Milan Leqi�
Odobreno za xtampu odlukom dekana Maxinskog fakulteta u Beogradubr. 3/16 od 12.04.2016. godine
Dizajn korica:Mina Mihailovi�
Tira�:300 primeraka
Xtampa:PLANETA PRINT
ISBN 978-86-7083-896-3
Sva prava zadr�avaju izdavaq i autor.Zabranjeno prextampavanje i umno�avanje.
Sadr�aj
I UVOD U MATLAB 1
1 Uvod u Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Radno okru�enje Matlaba 3
1.1.1 Komandni prozor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Prozor s prethodnim naredbama . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Radni prostor Matlaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Prozor radnog direktorijuma . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.5 Korisne naredbe za rad u komandnom prozoru . . . . . . . . . . . . . 5
1.1.6 Editor m-datoteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Promenljive i tipovi podataka . . . . . . . . . . . . . . . . . 7
2.1 Promenljive 7
2.1.1 Operator dodele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Izrazi i operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 Podrazumevane promenljive i rezervisane reqi . . . . . . . . . . . 10
2.2 Numeriqki tipovi podataka 11
2.2.1 Celobrojni tipovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Brojevi u pokretnom zarezu . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3 Kompleksni brojevi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Logiqki tip podataka 13
2.4 Znakovni tip podatka 14
ii
3 Nizovi i operacije nad nizovima . . . . . . . . . . . . . . 15
3.1 Vrste nizova 15
3.2 Matrice i vektori 16
3.2.1 Pojam i vrste matrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2 Kreiranje vektora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.3 Kreiranje matrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.4 Specijalne matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.5 Transponovana matrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.6 Inverzna matrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.7 Determinanta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.8 Operacije nad matricama . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.9 Matriqno mno�enje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.10 Stepenovanje matrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.11 Pristup elementima vektora i matrica . . . . . . . . . . . . . . . . . 28
3.2.12 Elementne operacije nad vektorima i matricama . . . . . . . . . 30
3.2.13 Funkcije za analizu nizova . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.14 Funkcija meshgrid() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.15 Vektori i matrice kao argumenti funkcija . . . . . . . . . . . . . . 35
3.2.16 Promena tipa matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Nizovi karaktera 39
3.3.1 Spajanje stringova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Kreiranje i podexavanje stringova . . . . . . . . . . . . . . . . . . . . . 43
3.3.3 Komparacija stringova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.4 Konverzija izme�u stringova i drugih tipova podataka . . . . 45
3.4 Nizovi �elija 45
4 Programiranje u Matlabu . . . . . . . . . . . . . . . . . . . . . . 49
4.1 Algoritmi 49
4.2 Matlab skript 50
4.2.1 Dokumentovanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3 Ulaz i izlaz 52
4.3.1 Ulazne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.2 Izlazne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.3 Funkcija disp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.4 Funkcija fprintf() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4 Skript sa ulazom i izlazom 58
4.4.1 Snimanje podataka u datoteku . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4.2 Dodavanje podataka u datoteku . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4.3 Uqitavanje podataka iz datoteke . . . . . . . . . . . . . . . . . . . . . . . 60
iii
4.5 Funkcije 60
4.5.1 Kreiranje funkcijske datoteke . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5.2 Radni prostor funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.5.3 Lokalne promenljive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.5.4 Globalne promenljive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.5.5 Perzistentne promenljive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.5.6 Podfunkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.5.7 Ugne�dene funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.5.8 Anonimne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.5.9 Primena pokazivaqa funkcija . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5.10 Funkcije sa funkcijama kao argumentima . . . . . . . . . . . . . . . . 72
5 Simboliqka matematika . . . . . . . . . . . . . . . . . . . . . . . . 73
5.1 Simboliqke promenljive i izrazi 73
5.1.1 Rad sa simboliqkim izrazima . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.1.2 Prikazivanje izraza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1.3 Rexavanje algebarskih jednaqina . . . . . . . . . . . . . . . . . . . . . . 76
5.1.4 Simboliqka matematiqka analiza . . . . . . . . . . . . . . . . . . . . . . 78
5.2 Rexavanje diferencijalnih jednaqina 79
5.2.1 Rexavanje skalarne diferencijalne jednaqine . . . . . . . . . . . . 80
5.2.2 Rexavanje sistema diferencijalnih jednaqina . . . . . . . . . . . 81
5.2.3 Definisanje poqetnih i graniqnih uslova . . . . . . . . . . . . . . . 81
5.2.4 Rexavanje nelinearnih diferencijalnih jednaqina . . . . . . . . 82
6 Operatori i kontrola toka programa . . . . . . . . . . 85
6.1 Relacioni operatori 85
6.2 Logiqki operatori 87
6.3 Uslovno grananje 89
6.3.1 If uslov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 Switch struktura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.4 Petlje 92
6.4.1 For petlja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.4.2 Vixestruke petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4.3 Kombinacija vixestrukih for petlji i if naredbi . . . . . . . . . 96
6.4.4 Petlja while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.5 While petlja sa ulaznom funkcijom . . . . . . . . . . . . . . . . . . . . . 98
6.4.6 Brojaq u while petlji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.4.7 Provera grexke sa ulaznom funkcijom u while petlji . . . . . . 99
6.4.8 Naredbe break i continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.4.9 Izbegavanje petlji, vektorizacija i prealokacija . . . . . . . . . 101
iv
7 2-D grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.1 Funkcija plot() 105
7.1.1 Grafik eksperimentalnih podataka . . . . . . . . . . . . . . . . . . . . 105
7.1.2 Grafik funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.1.3 Argumenti funkcije plot() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.1.4 Crtanje vixe grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.1.5 Vixe grafika u jednom grafiqkom prozoru . . . . . . . . . . . . . . 107
7.2 Formatiranje grafika 109
7.2.1 Naslov, natpisi, mre�a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.2.2 Linije, boje, markeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.2.3 Podgrafici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.2.4 Grafici sa logaritamskom podelom osa . . . . . . . . . . . . . . . . . 111
7.2.5 Pristup parametrima grafika . . . . . . . . . . . . . . . . . . . . . . . . 114
II NUMERIQKE METODE U MATLABU 115
8 Sistemi linearnih jednaqina . . . . . . . . . . . . . . . . . 117
8.1 Osnovni pojmovi i broj rexenja 117
8.2 Rexavanje sistema linearnih jednaqina 119
8.2.1 Sistem jednaqina sa m = n . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2.2 Sistemi linearnih jednaqina: sluqaj m > n . . . . . . . . . . . . . 121
8.2.3 Sistemi linearnih jednaqina: sluqaj m < n . . . . . . . . . . . . . 122
8.3 Sopstvena vrednost i sopstveni vektor matrice 123
8.3.1 Sopstvene vrednosti i sopstvene matrice u Matlabu . . . . . . 125
9 Aproksimacija i interpolacija . . . . . . . . . . . . . . . 129
9.1 Opxti problem aproksimacije 129
9.2 Interpolacija 130
9.3 Interpolacija polinomima 131
9.4 Interpolacija polinomima po delovima 132
9.4.1 Linearni splajn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.4.2 Kubni splajn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
9.4.3 Funkcije za interpolaciju u Matlabu . . . . . . . . . . . . . . . . . . 134
9.5 Metoda najmanjih kvadrata 136
9.5.1 Linearni model najmanjih kvadrata . . . . . . . . . . . . . . . . . . . . 137
9.5.2 Metoda najmanjih kvadrata u Matlabu . . . . . . . . . . . . . . . . . . 137
v
10 Nelinearne algebarske jednaqine . . . . . . . . . . . . . 139
10.1 Nelinearna jednaqina jedne promenljive 139
10.1.1 Rexavanje nelinearnih jednaqina u Matlabu . . . . . . . . . . . . . 140
10.1.2 Funkcija fzero() i jednaqina sa vixe korenova . . . . . . . . . . . 142
10.1.3 Taqke prekida i funkcija fzero() . . . . . . . . . . . . . . . . . . . . . . 143
10.1.4 Nule polinoma i funkcija roots() . . . . . . . . . . . . . . . . . . . . . 144
10.2 Optimizacija funkcije jedne promenljive 145
11 Numeriqko diferenciranje i integraljenje . . . 147
11.1 Numeriqko diferenciranje 147
11.1.1 Aproksimacija prvog izvoda . . . . . . . . . . . . . . . . . . . . . . . . . . 148
11.1.2 Aproksimacija drugog izvoda . . . . . . . . . . . . . . . . . . . . . . . . . 150
11.1.3 Matlab funkcije za numeriqko diferenciranje . . . . . . . . . . . 150
11.2 Numeriqko integraljenje 153
11.2.1 Trapezno pravilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
11.2.2 Matlab funkcija trapz() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
11.2.3 Simpsonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
11.2.4 Matlab funkcije quad() i integral() . . . . . . . . . . . . . . . . . . . 157
12 Numeriqko rexavanje obiqnih diferencijalnihjednaqina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
12.1 Pojam diferencijalne jednaqine 159
12.2 Koxijev problem 160
12.3 Jednokoraqne metode 161
12.3.1 Ojlerova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
12.3.2 Poboljxanje Ojlerove metode . . . . . . . . . . . . . . . . . . . . . . . . . . 163
12.3.3 Metode Runge Kuta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
12.3.4 Lokalna grexka numeriqke metode . . . . . . . . . . . . . . . . . . . . . 167
12.3.5 Globalna grexka i stabilnost numeriqke metode . . . . . . . . . 168
12.4 Vixekoraqne metode 168
12.4.1 Adams-Baxfortova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
12.4.2 Adams-Moltonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
12.5 Adaptivne metode 170
12.6 Metode u Matlabu za numeriqko rexavanje 171
12.7 Funkcija ode..() u Matlabu 172
vi
III UVOD U SIMULINK 179
13 Uvod u Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
13.1 Kako radi Simulink 182
13.2 Poqetak rada u Simulinku 183
13.2.1 Pokretanje Simulinka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
13.2.2 Kreiranje novog modela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
13.2.3 Otvaranje postoje�eg modela . . . . . . . . . . . . . . . . . . . . . . . . . . 183
13.3 Osnovni elementi Simulink modela 183
13.3.1 Blokovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
13.3.2 Linije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
13.3.3 Kreiranje modela sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
13.3.4 Unoxenje blokova u model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
13.3.5 Modifikovanje blokova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
13.3.6 Povezivanje blokova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
13.3.7 Pokretanje simulacije i parametri simulacije . . . . . . . . . . 186
14 Osnovni blokovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
14.1 Bibilioteka ulaza 187
14.1.1 Constant blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
14.1.2 Signal Generator blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
14.1.3 Pulse Generator blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
14.1.4 Step blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
14.1.5 Ramp blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
14.1.6 Sine wave blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
14.1.7 Clock blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
14.1.8 Ground blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
14.2 Biblioteka izlaza 191
14.2.1 Display blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
14.2.2 Scope blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
14.2.3 Terminator blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
14.2.4 Stop simulation blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
14.2.5 To Workspace blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
14.2.6 To File blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
14.3 Biblioteka signala 193
14.3.1 Bus Creator i Bus Selector blok . . . . . . . . . . . . . . . . . . . . . . 193
14.3.2 Mux i Demux blokovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
14.3.3 Switch blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
14.3.4 Prikaz signala u modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
14.3.5 Gain blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
vii
14.4 Matematiqka biblioteka 195
14.4.1 Sum, Add i Subtract blokovi . . . . . . . . . . . . . . . . . . . . . . . . . 195
14.4.2 Math Function blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
14.4.3 Trigonometric Function blok . . . . . . . . . . . . . . . . . . . . . . . . . 197
14.5 Biblioteka blokova kontinualnih sistema 197
14.5.1 Integrator blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
14.6 Biblioteka blokova sa nelinearnostima 198
14.6.1 Saturation blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
14.6.2 Dead Zone blok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
15 Simulacija dinamiqkih sistema . . . . . . . . . . . . . . 201
15.1 Simulacija sistema prvog reda 201
15.1.1 Kreiranje Simulink modela sistema . . . . . . . . . . . . . . . . . . . 201
15.1.2 Simulacija sistema za odskoqnu promenu ulaza . . . . . . . . . . 202
15.1.3 Simulacija sistema za promenu ulaza uobliku pulsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
15.1.4 Simulacija sistema za nagibnu promenu ulaza . . . . . . . . . . . 204
15.1.5 Simulacija sistema za nagibnu promenu ulaza sa zasi�enjem 205
15.2 Simulacija sistema drugog reda 207
15.2.1 Kreiranje Simulink modela . . . . . . . . . . . . . . . . . . . . . . . . . . 207
15.3 Simulacija iz komandnog prozora 209
15.4 Podsistemi 211
15.5 Algebarske petlje 213
15.6 Numeriqki postupci u Simulinku 217
IV MATEMATIQKI MODELI DINAMIQKIH SISTEMA 219
16 Matematiqko modelovanje dinamiqkih sistema 221
16.1 Matematiqko modelovanje sistema 221
16.1.1 Primeri matematiqkog modelovanja sistema . . . . . . . . . . . . . 222
16.2 Matematiqki modeli UI sistema 231
16.3 Matematiqki modeli USI sistema 231
16.4 Linearni stacionarni dinamiqki sistemi 232
16.4.1 Linearni stacionarni dinamiqki UI sistemi . . . . . . . . . . . 232
16.4.2 Linearni stacionarni dinamiqki USI sistemi . . . . . . . . . . 233
16.4.3 Izbor veliqina stanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
16.5 Matematiqki modeli po odstupanjima 237
viii
V LINEARNI SISTEMI 239
17 Laplasova transformacija . . . . . . . . . . . . . . . . . . . . 241
17.1 Definicija Laplasove transformacije 241
17.2 Inverzna Laplasova transformacija 241
17.3 Osobine Laplasove transformacije 242
17.4 Laplasova transformacija u Matlabu 242
17.5 Hevisajdov razvoj 243
17.5.1 Funkcije sa jednostrukim polovima . . . . . . . . . . . . . . . . . . . . 244
17.5.2 Funkcije sa vixestrukim polovima . . . . . . . . . . . . . . . . . . . . 245
17.6 Hevisajdov razvoj u Matlabu 245
18 Predstavljanje linearnih sistema u Matlabu . 249
18.1 Prenosna funkcija i prenosna matrica 249
18.1.1 TF oblik prenosne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . 250
18.1.2 Zero-Pole-Gain oblik prenosne funkcije . . . . . . . . . . . . . . . . . . 251
18.1.3 TF i ZPK oblici prenosnih matrica . . . . . . . . . . . . . . . . . . . 252
18.1.4 Prenosna funkcija u Simulinku . . . . . . . . . . . . . . . . . . . . . . . 256
18.2 Model sistema u prostoru stanja 257
18.2.1 Model sistema u prostoru stanja u Simulinku . . . . . . . . . . . 258
18.3 Pretvaranja izme�u razliqitih modela 258
18.3.1 Pretvaranje u TF model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
18.3.2 Pretvaranje u ZPK model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
18.3.3 Realizacija u prostoru stanja . . . . . . . . . . . . . . . . . . . . . . . . . 263
18.3.4 Dobijanje SS i TF modela iz Simulink modela . . . . . . . . . . . 264
18.3.5 Dobijanje parametara iz LTI objekata . . . . . . . . . . . . . . . . . . . 266
18.4 Blok dijagrami 267
18.4.1 Ekvivalentni blok dijagrami za osnovne sprege . . . . . . . . . . 268
18.4.2 Slo�ene sprege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
19 Analiza linearnih sistema . . . . . . . . . . . . . . . . . . . 279
19.1 Tipiqne promene ulaznih veliqina 279
19.1.1 Znaqaj i vrste tipiqnih promena ulaznih veliqina . . . . . . . 279
19.1.2 Odskoqna funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
19.1.3 Jediniqna impulsna funkcija . . . . . . . . . . . . . . . . . . . . . . . . . 281
19.1.4 Nagibna funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
19.1.5 Eksponencijalna funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
19.1.6 Sinusna funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
ix
19.2 Odre�ivanje odziva UI sistema 284
19.2.1 Odre�ivanje odziva sistema primenomLaplasove transformacije . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
19.2.2 Odre�ivanje odziva primenom simboliqkog paketa . . . . . . . . 288
19.3 Odre�ivanje odziva i kretanja USI sistema 289
19.3.1 Kretanje i odziv u slobodnom radnom re�imu . . . . . . . . . . . . 290
19.3.2 Kretanje i odziv u prinudnom radnom re�imu . . . . . . . . . . . . 290
19.3.3 Primena Laplasove transformacije u odre�ivanju kretanja iodziva USI sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
19.3.4 Odre�ivanje kretanja i odziva USI sistema u Matlabu . . . 292
19.4 Numeriqka analiza linearnih sistema 294
19.4.1 Jediniqni odskoqni odziv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
19.4.2 Impulsni odziv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
19.4.3 Odre�ivanje odziva sistema na proizvoljan ulaz . . . . . . . . . . 300
19.4.4 Odziv na poqetne uslove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
19.5 Pokazatelji prelazne funkcije 308
19.5.1 Pokazatelji kvaliteta prelazne funkcijeu Matlabu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
x
PREDGOVOR
Knjiga Matlab i Simulink u automatskom upravljanju je koncipirana takoda obuhvata oblasti predvi�ene nastavnim planom i programom predmetaProgramiranje u automatskom upravljanju, koji se sluxa na Osnovnim akadem-skim studijama na Maxinskom fakultetu u Beogradu. Me�utim, uzimaju�iu obzir aktuelnost i znaqaj upoznavanja sa nekim od softverskih alata zarazliqite vrste in�enjerskih proraquna i analiza (a Matlab je jedan odnajzastupljenijih, gotovo nezaobilazan), knjiga je napisana tako da mogu daje koriste i studenti sa drugih fakulteta u qijim nastavnim planovima iprogramima je zastupljenja ova problematika. U tom smislu, programskijezik Matlab (u daljem tekstu Matlab) i njegov paket Simulink (u daljem tek-stu Simulink) predstavljeni su u prva tri dela knjige. Qetvrti i petideo knjige se odnose na primenu Matlaba i Simulinka u oblasti sistemaautomatskog upravljanja, i dobrim delom predstavljaju podrxku nastaviiz predmeta Osnove automatskog upravljanja koji je obavezan predmet naosnovnim akademskim studijama na Maxinskom fakultetu u Beogradu. Ko-naqno, knjiga mo�e da poslu�i kao osnova za budu�e napredno korix�enjeMatlaba i Simulinka.
Kompozicija knjige je organizovana u pet delova. Osnova programiranjau Matlabu je izlo�ena u prvom delu. Prvo poglavlje donosi uvod o Mat-labu kao mo�nom programskom jeziku, opis njegovog razvojnog okru�enja iosnovnih operacija. Promenljive i osnovni tipovi podataka tema su dru-gog poglavlja. U tre�em poglavlju uvodi se koncept niza, koji predstavljafundamentalni element u Matlabu, i detaljno se obra�uju numeriqki ni-zovi (vektori i matrice), znakovni nizovi i nizovi �elija, kao i osnovneoperacije nad njima. Prvi deo se nastavlja qetvrtim poglavljem koje sebavi pisanjem programa u Matlabu, poqev od jednostavnih skriptova ilogiqkih instrukcija do razliqitih tipova funkcija i funkcijskih da-toteka. U petom poglavlju se razmatraju simboliqki paket Matlaba imetode za simboliqko rexavanje algebarskih i diferencijalnih jednaqina.Xesto poglavlje je posve�eno relacionim i logiqkim operatorima i kon-troli toka programa. Pa�nja je u sedmom poglavlju posve�ena i delu
xii
grafiqkih mogu�nosti Matlaba a koje se odnose na dvodimenzionalnu gra-fiku.
U drugom delu knjige se izla�u osnovne numeriqke metode koje su sadr-�ane i implementirane u ugra�enim funkcijama Matlaba. Sistemi line-arnih jednaqina i problemi sopstvenih vrednosti matrica su tema osmogpoglavlja. Deveto poglavlje je posve�eno problemu aproksimacije funkcijejedne promenljive, pri qemu znaqajno mesto zauzima i interpolacija alge-barskim polinomima i splajnovima, kao i metoda najmanjih kvadrata kaojedna od metoda za aproksimaciju funkcija. U desetom poglavlju se ilus-truju metode za rexavanje nelinearnih algebarskih jednaqina. Sadr�ajjedanestog poglavlja qine osnove metoda numeriqkog diferenciranja i in-tegraljenja, pri qemu je posebna pa�nja posve�ena metodama na kojima sezasnivaju ugra�ene funkcije Matlaba za numeriqko diferenciranje i in-tegraljenje. U dvanaestom poglavlju se razmatraju metode za rexavanjeobiqnih diferencijalnih jednaqina i njihova implementacija u Matlabu.
Tre�i deo knjige se odnosi na Simulink, gde se u trinaestom i qetr-naestom poglavlju izla�u osnovni elementi Simulink modela i osnovniblokovi iz biblioteke blokova. Petnaesto poglavlje je posve�eno pri-meni Simulinka u simulaciji dinamiqkih sistema, linearnih i neline-arnih. Qetvrti deo knjige kroz xesnaesto poglavlje donosi osnovne poj-move iz modelovanja dinamiqkih sistema, sa posebnim osvrtom na osobinei oblike modela linearnih stacionarnih dinamiqkih sistema. PrimenaLaplasove transformacije u odre�ivanju odziva linearnih stacionarnihsistema tretira se u petom delu knjige, u sedamnaestom poglavlju. Osamna-esto poglavlje se detaljno bavi predstavljanjem linearnih sistema u Mat-labu i njihovim razliqitim modelima. Analiza linearnih sistema, ana-litiqka i numeriqka, teme su devetnaestog poglavlja.
Izlo�eni materijal je ilustrovan brojnim primerima. Tamo gde jeneophodno, dati su i rezultati izvrxavanja odre�enih naredbi, skriptova,a odre�eni broj primera, posebno u petom delu, ura�en je i analitiqkimputem.
Recenzentima na korisnim sugestijama, kao i svima onima koji su naneki naqin pomogli u toku pisanja ove knjige, autor se najtoplije zahvaljuje.
Beograd, mart 2016. godine Radixa. �. Jovanovi�
POGLAVLjE 2Promenljive i tipovi podataka
2.1 Promenljive
Koncept promenljivih, qije se vrednosti menjaju u toku izvrxavanja pro-grama, predstavlja sastavni deo svih programskih jezika. Pojam promenlji-ve u Matlabu (i u programskom jeziku uopxte) oznaqava apstraktan po-jam memorijske �elije raqunara ili skupa memorijskih �elija. Drugimreqima, promenljive predstavljaju u neku ruku imena (simboliqka) memo-rijskih lokacija, i svakako je programerima lakxe i prirodnije da radesa takvim, simboliqkim imenima, nego sa njihovim apsolutnim adresama.Definisanje promenljive se u Matlabu vrxi naredbom dodele.
2.1.1 Operator dodeleU Matlabu se znak = naziva operatorom dodele. On ovde ima drugaqije
znaqenje od znaka jednakosti poznatog iz matematike. Kada se otkuca naprimer x = 5, to govori Matlabu da dodeli vrednost 5 promenljivoj x.Prema tome, ovaj operator dodeljuje vrednost promenljivoj:
ImePromenljive = numeriqka vrednost ili izraz
Prethodna upotreba se ne razlikuje od one poznate iz matematike. Me-�utim, u Matlabu je mogu�e imati i ovakav oblik: x = x+2. Ova naredbagovori Matlabu da doda broj 2 trenutnoj vrednosti promenljive x i zame-njuje trenutnu vrednost od x sa tom novom vrednox�u. Ukoliko originalnox ima vrednost 5, njegova nova vrednost �e biti 7. Ova primena operatora= je razliqita od njegove primene u matematici. Na primer, u matematicijednaqina x = x+ 2 nema smisla, jer ona implicira da je 0 = 2.
Na levoj strani operatora dodele mo�e biti jedna i samo jedna prome-nljiva. Stoga se u Matlabu ne mo�e koristiti, na primer, ovako nexto: 6 =x, jer bi to znaqilo da numeriqkoj vrednosti treba da se dodeli sadr�aj
8 Promenljive i tipovi podataka
neke memorijske lokacije. Naredna posledica ovog ograniqenja je da se uMatlabu ne mogu pisati izrazi kao:
>> x + 6 = 10
Odgovaraju�a jednaqina x + 6 = 10 je prihvatljiva u algebri i ona imarexenje x = 4, ali Matlab ne mo�e da rexi ovaku jednaqinu bez dodatnihnaredbi (ove naredbe su dostupne u Simboliqkom paketu, i bi�e reqi otome u petom poglavlju.
Jox jedno ograniqenje je da desna strana operatora dodele mora imativrednost koja se mo�e izraqunati. Na primer, ako promenljivoj y nijedodeljena vrednost, slede�i izraz �e generisati grexku u Matlabu:
>> x = 5 + y
Levo od operatora dodele mo�e biti ime samo jedne promenljive. Desnomo�e biti broj ili izraz koji sadr�i brojeve i/ili promenljive kojimasu prethodno dodeljene numeriqke vrednosti. Kada se pritisne taster En-ter, numeriqka vrednost sa desne strane dodeljuje se promenljivoj, a Mat-lab u slede�a dva reda prikazuje promenljivu i njoj dodeljenu vrednost.Nove promenljive se mogu definisati korix�enjem prethodno definisanihpromenljivih.
Ako se na kraj reda naredbe dodele upixe operator ; (taqka sa za-petom) i pritisne Enter, Matlab ne�e prikazati promenljivu i njoj dode-ljenu vrednost, ali �e joj vrednost ipak dodeliti i snimiti je u memoriju.Kada se otkuca ime postoje�e promenljive i pritisne Enter, u slede�a dvareda prikaza�e se ime i vrednost te promenljive.
U isti red mo�e se upisati nekoliko naredbi dodele. Razdvajaju sezapetama (posle zapete mo�e se otkucati vixe razmaka). Kada se pritisneEnter, vrednosti se dodeljuju sleva udesno, a promenljive i njima dodeljenevrednosti prikazuju se u slede�im redovima. Ukoliko se umesto zapeteotkuca taqka sa zapetom, vrednost promenljive ne�e biti prikazana.
Uopxteno, mo�e se re�i da promenljivu karakterixe niz atributa (sli-ka 2.1) i o svakom od njih �e se ukratko nexto re�i, a tokom daljeg izlaganjamnogi od ovih atributa �e biti detaljnije objaxnjeni.
ime adresa tip vrednost vidªivost traja©e
promenªiva
Slika 2.1: Atributi promenljive
Imena promenljivihIme promenljive je niz znakova upotrebljen kao njen identifikator u
programu. Xtavixe, imena se u programu ne upotrebljavaju samo za pro-menljive nego i za neke druge elemente (entitete) u programu (funkcije,formalne parametre). Imena promenljivih, maksimalne du�ine do 63 znaka,
60 Programiranje u Matlabu
Ovo rezultuje da datoteka ,,testdat.dat” sada sadr�i slede�e podatke:
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
0.2785 0.9649 0.9572
0.5469 0.1576 0.4854
0.9575 0.9706 0.8003
4.4.3 Uqitavanje podataka iz datoteke
Uqitavanje podataka iz datoteke se posti�e korix�enjem naredbe load.Kada se datoteka jednom kreira (kao u prethodno navedenom sluqaju), njensadr�aj se mo�e uqitati u neku matriqnu promenljivu. Ukoliko je to da-toteka sa numeriqkim podacima, funkcija load() �e uqitati podatke iz da-toteke ,,ImeDatoteke.ext” (na primer, ekstenzija mo�e biti .dat) i kreiratimatricu sa istim imenom kao xto je ime datoteke. Na primer, ako se isko-risti datoteka ranije kreirana, ,,testdat.dat”, slede�im naredbama �e seuqitati podaci iz nje, i smestiti rezultat u matriqnu promenljivu koja senaziva testdat:
>> clear
>> load testdat.dat
>> who
Your variables are:
testdat
>> testdat
testdat =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
0.2785 0.9649 0.9572
0.5469 0.1576 0.4854
0.9575 0.9706 0.8003
Funkcija load() radi jedino ako postoji isti broj vrednosti u svakoj li-niji tako da podaci mogu biti smexteni u matricu, i naredba save jedinoupisuje podatke iz matrice u datoteku. Ukoliko to nije sluqaj, morajuse koristiti ulazno/izlazne naredbe ni�eg nivoa, koje nisu predmet ovihizlaganja.
4.5 Funkcije
Matlab poseduje bogatu biblioteku ugra�enih funkcija, i one se mogukoristiti u matematiqkim izrazima jednostavno – kucanjem njihovih imenai vrednosti njihovih argumenata, kao xto su primeri sin(x), sqrt(x), itd.Najqex�e u raqunarskim programima postoji potreba da se izraqunavajuvrednosti funkcija koje nisu unapred definisane u Matlabu. Kada jeizraz funkcije jednostavan, i ako je potrebno izraqunati je samo jednom,ta funkcija mo�e biti deo programa. Me�utim, ukoliko je neku funkcijupotrebno izraqunavati mnogo puta, i pri tome i sa razliqitim vrednosti-
4.5 Funkcije 61
ma njenih argumenata, uobiqajeno je da se kreira tzv. korisniqki definisanafunkcija. Jednom kada se kreira i saquva, ona se kasnije mo�e koristitina isti naqin kao i ugra�ene funkcije Matlaba.
Dakle, korisniqki definisana funkcija predstavlja program koji kre-ira korisnik, snima ga kao funkcijsku datoteku koja se potom koristikao xto se koriste i ugra�ene funkcije. Funkcija mo�e da predstavljajedan matematiqki izraz, ili da sadr�i niz komplikovanih izraqunavanjai izraza. U mnogim sluqajevima to je u stvari jedan potprogram unutarprograma. Glavna karakteristika funkcijske datoteke je da ona ima ulaz iizlaz. To znaqi da se izraqunavanja u funkcijskoj datoteci vrxe koriste�iulazne podatke, i rezultat izraqunavanja se prenosi izvan funkcije pomo�unjenog izlaza. Ulaz i izlaz mogu biti jedna ili vixe promenljivih, i svakaod njih mo�e biti skalar, vektor, ili niz bilo koje veliqine.
4.5.1 Kreiranje funkcijske datoteke
Funkcijske datoteke se kreiraju i edituju kao i skript datoteke u pro-zoru Editora, koji se otvara iz komadnog prozora. Izborom opcije New,potom Function, pojavljuje se prostor datoteke. Editor sadr�i nekolikopodrazumevanih linija koje predstavljaju strukturu funkcijske datoteke.Prva linija predstavlja definicionu liniju funkcije, iza koje se nalaze ko-mentari koji opisuju funkciju. Nakon toga slede izraqunavanja, i poslednjalinija je end naredba, koja nije obavezna.
Definiciona linija funkcije
Prva izvrxna linija u funkcijskoj datoteci mora da bude definicionalinija funkcije. U suprotnom, datoteka se tretira kao skript. Defini-ciona linija funkcije:
� definixe datoteku kao funkcijsku datoteku,
� definixe ime funkcije,
� definixe broj i redosled ulaznih i izlaznih argumenata.
Opxti oblik definicione linije funkcije je:
function [izlazni argument] = ime funkcije (ulazni argumenti)
Req function otkucana malim slovima mora biti prva req u defini-cionoj liniji funkcije. Ime funkcije sledi nakon operatora dodele, znaka=. Pravila za ime funkcije su identiqna pravilima koja va�e za izborimena promenljivih. Dobra praksa je izbegavanje imena ve� postoje�ih,ugra�enih funkcija, kao i imena promenljivih definisanih od strane ko-risnika, ili podrazumevanih u Matlabu.
62 Programiranje u Matlabu
Ulazni i izlazni argumenti funkcije
Ulazni i izlazni argumenti se koriste za prenos podataka u funkciju iiz funkcije, sledstveno. Obiqno, funkcija ima najmanje jedan ulazni argu-ment, mada je mogu�e definisati i funkciju koja nema ulazne argumente.Ukoliko ih ima vixe, ulazni argumenti su razdvojeni zapetom. Program-ski kod koji izvrxava izraqunavanja u funkciji se pixe uz korix�enje up-ravo tih ulaznih argumenata, uz pretpostavku da su im dodeljene numeriqkevrednosti. To znaqi da se matematiqki izrazi u funkcijama moraju pisatiu skladu sa dimenzijama ulaznih argumenata, koji mogu biti skalari, vek-tori ili matrice. Trenutne vrednosti argumenata se dodeljuju prilikompoziva funkcije.
Funkcija mo�e imati jedan ili vixe izlaznih argumenata, ili nijedan.U sluqaju jednog izlaznog argumenta on se mo�e koristiti bez zagrade.
Da bi se funkcija mogla koristiti, u telu funkcije mora postojatinaredba koja dodeljuje vrednosti izlaznim promenljivim, tj. izlaznim ar-gumentima. Ako funkcija nema izlazni argument, operator dodele u de-finicionoj liniji mo�e se izostaviti. Na primer, funkcija bez izlaznogargumenta mo�e biti neka funkcija koja crta dijagrame, xtampa ili upi-suje podatke u datoteku itd.
Uobiqajeno je da se svi ulazi u funkcijsku datoteku, kao i izlazi iznje, prenose preko ulaznih i izlaznih argumenata. Pored toga, me�utim,sve ulazno-izlazne karakteristike skript datoteke se mogu koristiti i ufunkcijskoj datoteci. To znaqi da �e se svaka promenljiva kojoj je dodeljenavrednost u telu funkcije prikazati na ekranu komandnog prozora ukolikose na kraju naredbe dodele ne nalazi znak ;. Tako�e, funkcija input() semo�e koristi za interaktivni unos podataka, a funkcije disp(), fprintf()i plot() se mogu koristiti za prikaz informacija na ekranu, snimanje udatoteku ili crtanje dijagrama, bax kao i u skript datotekama.
Na primer, neka je potrebno da se napixe funkcija koja raquna obimi povrxinu kruga za zadati polupreqnik. To se mo�e uraditi na slede�inaqin:
function [Obim, Povrsina] = krug_op(radijus)
% Funkcija vraca obim i povrshinu kruga.
% Ulazni argument: radijus (skalar)
% Izlazni argumenti: Obim i Povrsina (skalari)
Obim = 2*radijus*pi;
Povrsina = radijus^2*pi;
end
Dakle, funkcija ima jedan ulazni i dva izlazna parametra, i svi onipredstavljaju skalare. Primer poziva funkcije bi bio:
>> [O,P] = krug_op(3)
O =
18.8496
P =
28.2743
4.5 Funkcije 63
Va�no je voditi raquna o tome da se funkcija pozove sa odgovaraju�imbrojem argumenata, i da su oni odgovaraju�eg tipa. Na primer, poziv
>> [O,P] = krug_op
Error using krug_op (line 6)
Not enough input arguments.
rezultuje grexkom, zbog izostavljanja argumenta. Sa druge strane, ukolikose funkcija pozove na slede�i naqin:
>> krug_op(3)
ans =
18.8496
oqito je da je informacija o drugom izlaznom argumentu izgubljena. Upozivu funkcije ne postoji promenljiva u koju bi se rezultat smestio isaquvao.
Prethodni primer se mo�e modifikovati tako da funkcija raquna obimi povrxinu za niz ulaznih vrednosti, tj. za vektor ulaznih podataka, takoxto se u izrazu za izraqunavanje povrxine upotrebi elementni operatormno�enja.
function [Obim, Povrsina] = krug_opv(radijus)
% Funkcija vraca obim i povrshinu kruga.
% Ulazni argument: radijus (vektor)
% Izlazni argumenti: Obim i Povrsina (vektori)
Obim = 2*radijus*pi;
Povrsina = radijus.^2*pi;
end
Izvrxavanjem naredbi:
>> x = 1:5;
>> [O,P] = krug_opv(x)
O =
6.2832 12.5664 18.8496 25.1327 31.4159
P =
3.1416 12.5664 28.2743 50.2655 78.5398
rezultat izraqunavanja funkcije su dva vektora, istih dimenzija kao iulazni vektor.
Zapa�anje 4.1. Kada se poziva neka funkcija, va�no je znati kakav obliknjenog izlaza se oqekuje, tj. da li je u pitanju skalar, vektor ili matrica;naravno, va�no je znati i broj izlaznih veliqina.
H1 linija i komentari
H1 linija i tekst pomo�i su linije komentara (linije koje poqinju saznakom procenta), a koje slede nakon definicione linije funkcije. H1 li-nija je prva linija komentara i obiqno sadr�i ime i kratak opis funkcije.Kada korisnik u komandnom prozoru otkuca naredbu lookfor neka rech,Matlab tra�i req neka rech u H1 linijama svih funkcija, i ako je na�e,
64 Programiranje u Matlabu
prikazuje H1 liniju u kojoj je req na�ena.Linije teksta pomo�i su linije komentara koje slede nakon H1 linije.
Ove linije sadr�e objaxnjenje funkcije i bilo kakve instrukcije koje seodnose na ulazne i izlazne argumente funkcije. Linije komentara koje senalaze izme�u definicione linije funkcije i prve linije koja ne pred-stavlja komentar se prikazuju kada korisnik otkuca u komandnom prozoruhelp ImeFunkcije. Ovo va�i i za ugra�ene i za korisniqki definisanefunkcije. Funkcijska datoteka mo�e da sadr�i dodatne linije komentarau telu funkcije, koje se tako�e ignorixu pri pozivu naredbe help.
4.5.2 Radni prostor funkcije
U prethodnom izlaganju pomenuta je ideja radnog prostora u kome se qu-vaju promenljive kreirane u komandnom prostoru i skriptovima. Funkcijetako�e imaju svoj memorijski (radni) prostor. Radni prostor funkcijeje prostor u memoriji raqunara koji se rezervixe za promenljive koje sekreiraju unutar te funkcije. Ovaj radni prostor nije deo radnog prostorakomandnog prozora. To znaqi da nekoj promenljivoj u funkciji mo�e bitidodeljeno ime, a da pri tome postoji promenljiva sa istim imenom izvanposmatrane funkcije. Radni prostor funkcije se otvara svaki put kada sefunkcija koristi.
Zaxto postoje posebni radni prostori za svaku funkciju, a ne jedan, za-jedniqki? Iako mo�da deluje nelogiqno, postojanje posebnog radnog pros-tora je svrsishodno za velike projekte, koji se sastoje od velikog brojafunkcija. Na primer, ako je jedan programer odgovoran za pisanje funkcijefun_1, a drugi za pisanje funkcije fun_2, nijedan od njih ne mora da zna nitida vodi raquna o imenima promenljivih koje koristi. Namera i jeste da onirade nezavisno i da ne utiqu jedan na drugog. Prema tome, posebni radniprostori xtite funkciju od spoljaxnjeg uticaja. Iz spoljaxnjosti radnogprostora neke funkcije uticaj na ono xto se u njoj dexava jedino imajuulazni argumenti funkcije. I obratno, radni prostor funkcije utiqe naspoljaxnjost svojim izlaznim argumentima, kada se funkcija izvrxi.
4.5.3 Lokalne promenljive
Podruqje va�nosti neke promenljive je radni prostor u kome ona pos-toji. Sve promenljive u funkcijskoj datoteci (ulazni i izlazni argumentii bilo koje promenljive kojima se dodeljuju vrednosti u funkcijskoj da-toteci) su lokalne promenljive. To znaqi da su ove promenljive definisanei prepoznaju se jedino unutar funkcije. Lokalne promenljive postoje samodok se funkcija izvrxava: kada se funkcija zavrxi, one prestaju da postoje.Na primer, u slede�oj funkciji koja izraqunava sumu elemenata vektora,postoji lokalna promenljiva k.
% suma_vect.m
function suma = suma_vect(vektor)
% suma_vect vraca sumu elemenata datog vektora
% Format: suma_vect(vektor)
POGLAVLjE 5Simboliqka matematika
Simboliqka matematika podrazumeva bavljenje matematikom nad sim-bolima, a ne nad brojevima, kao na primer, a+a = 2a. Simboliqke matema-tiqke funkcije deo su Matlabovog Simboliqkog paketa, koji koristi pose-ban i nov proizvod MuPAD. Pre njegove pojave i njegovog razvijanja Mat-lab je kroz stotine razvijenih funkcija koristio Maple za podrxku sim-boliqkim izraqunavanjima. Danas, funkcionalnost MuPAD jezika, zajednosa ukljuqenim bibliotekama je znaqajno ispred prvobitnog simboliqkogmatematiqkog paketa. Imena i funkcionalnost mnogih funkcija dostup-nih u ovom paketu su identiqni funkcijama koje postoje u Matlabu, alije razlika upravo u tome xto funkcije u simboliqkom paketu rade sasimboliqkim objektima, za razliku od onih u Matlabu, koje rade sa nu-meriqkim vrednostima.
Osnovni element za simboliqke operacije je simboliqki objekt. Simbo-liqki objekti se sastoje od promenljivih i brojeva koji kada se koriste umatematiqkim izrazima govore Matlabu da izvrxi operacije simboliqki.Ukoliko je potrebno simboliqki izrazi se mogu koristiti i u numeriqkimoperacijama.
5.1 Simboliqke promenljive i izrazi
Simboliqki objekt mo�e biti promenljiva (bez prethodno dodeljene nu-meriqke vrednosti), broj, ili izraz sastavljen od numeriqkih promenljivihi brojeva. Za kreiranje simboliqkog objekta koristi se funkcija sym()
i/ili naredba syms. Ako je ulazni argument funkcije sym() string, rezul-tat je simboliqki broj ili promenljiva. Za sluqaj da je ulazni argumentnumeriqki skalar ili matrica, rezultat je simboliqka prezentacija datihnumeriqkih vrednosti. Na primer, naredba x=sym(’x’) kreira simboliqkupromenljivu pod imenom x i smexta rezultat u x. Naredba y=sym(’1/7’)
ili y=sym(1/7) kreira jedan simboliqki broj, qime se izbegava aproksi-
78 Simboliqka matematika
>> [X Y Z] = solve(4*x-2*y+z==7,'x+y+5*z==10','-2*x+3*y-z==2')
X =
124/41
Y =
121/41
Z =
33/41
5.1.4 Simboliqka matematiqka analiza
Diferenciranje
Funkcija diff() se koristi za simboliqko odre�ivanje izvoda funkcija.Iako ova funkcija ima isto ime kao funkcija koja se koristi za numeriqkoizraqunavanje konaqnih razlika, Matlab prepoznaje koju funkciju �e ko-ristiti u konkretnom sluqaju. Osnovna sintaksa funkcije je diff(F), priqemu se vra�a izvod izraza funkcije F u odnosu na podrazumevanu neza-visnu promenljivu.
>> syms x f
>> f = x^3 + 2*x^2 - 4*x +3 ;
>> diff(f) % ili direktno diff(x^3+2*x^2-4*x+3)
ans =
3*x^2 + 4*x - 4
Ukoliko funkcija zavisi od vixe promenljivih, onda funkcija raqunaparcijalni izvod reda n po izabranoj promenljivoj var, i tada je sintaksapoziva oblika diff(F,var,n).
>> syms a x, f = sin(a*x^2);
>> dfdx = diff(f)
dfdx =
2*a*x*cos(a*x^2)
>> dfda = diff(f,a)
dfda =
x^2*cos(a*x^2)
>> d2fdx2 = diff(f,2)
d2fdx2 =
2*a*cos(a*x^2) - 4*a^2*x^2*sin(a*x^2)
Integraljenje
Funkcija int() se pozivom oblika int(expr,var) koristi za odre�ivanjeneodre�enog integrala simboliqkog izraza expr u odnosu na simboliqkupromenljivu var. Funkcija pokuxava da na�e simboliqki izraz I takoda je diff(I,var)=expr. Parametar var je opcioni, i ako se ne navede,funkcija vra�a integral izraza expr u odnosu na podrazumevanu nezavisnupromenljivu. Ukoliko integral ne postoji u zatvorenom obliku, ili Mat-
5.2 Rexavanje diferencijalnih jednaqina 79
lab ne mo�e da ga izraquna iako on postoji, tada se naredba vra�a neizvr-xena (dakle, onako kako je uneta).
Na primer, neodre�eni integral funkcije f(x) = 3x2 − 1 mo�e se na�ina slede�i naqin:
>> syms x
>> int(3*x^2-1)
ans =
x^3 - x
Sa druge strane, odre�eni integral ove funkcije u granicama x = 2 dox = 4 mo�e se dobiti sa:
>> int(3*x^2-1,2,4)
ans =
54
Graniqne vrednosti
Graniqne vrednosti funkcije mogu se na�i funkcijom limit(), qija jeopxta sintaksa limit(expr,x,a), i kojom se raquna graniqna vrednostiizraza expr kada promenljiva x te�i promenljivoj a, tj. lim
x→aexpr. Para-
metar x se mo�e izostaviti, i onda se koristi podrazumevana promenljiva.Na primer, graniqne vrednosti:
limx→2
x− 2
x2 − 4=
1
4, lim
h→0
cos(x+ h)− cos(x)
h= − sin(x)
se dobijaju na slede�i naqin:
>> syms h x
>> limit((x-2)/(x^2-4),2)
ans =
1/4
>> limit((cos(x+h)-cos(x))/h,h,0)
ans =
-sin(x)
Ukoliko se parametar a izostavi, graniqna vrednost se odre�uje kadapromenljiva te�i nuli.
5.2 Rexavanje diferencijalnih jednaqina
Funkcija dsolve() se koristi za rexavanje obiqnih diferencijalnih jed-naqina. Razliqiti oblici poziva funkcije odre�eni su dimenzionalnox-�u problema koji se rexava, tj. u zavisnosti da li je u pitanju skalarnadiferencijalna jednaqina ili sistem jednaqina, kao i postojanjem ili ne-postojanjem poqetnih i graniqnih uslova. Funkcija dsolve() podrazumevada je unapred definisana nezavisna promenljiva t a ne x, kao kod drugihsimboliqkih funkcija.
5.2 Rexavanje diferencijalnih jednaqina 81
5.2.2 Rexavanje sistema diferencijalnih jednaqinaSistem diferencijalnih jednaqina mo�e se rexiti funkcijom dsolve(),
a odgovaraju�a sintaksa je:
dsolve(’eqn1’,’eqn2’,...)
Funkcija vra�a simboliqko rexenje sistema jednaqina definisanih sim-boliqkim izrazima eqn1, eqn2, itd. Na primer, sistem jednaqina:
x1 = 3x1 + 4x2,
x2 = −4x1 + 3x2
ima rexenje x1 = C2e3t cos 4t+ C1e
3t sin 4t, x2 = C1e3t cos 4t− C2e
3t sin 4t:
>> [x1,x2] = dsolve('Dx1 = 3*x1 + 4*x2','Dx2 = -4*x1 + 3*x2')
x1 =
C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t)
x2 =
C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t)
5.2.3 Definisanje poqetnih i graniqnih uslovaPoqetni i graniqni uslovi jednaqine se mogu uzeti u obzir pozivom
funkcije na slede�i naqin:
dsolve(eqn,cond1,cond2,...)
Ovako pozvana, funkcija vra�a simboliqko rexenje diferencijalne jed-naqine definisane simboliqkim izrazom eqn, a koje zadovoljava uslovedefinisane u izrazima cond1, cond2 itd. Ukoliko je zavisna promenljiva naprimer x, tada se uslovi definixu na slede�i naqin: x(a) = b, Dx(a) = c,D2x(a) = d i sliqno. Ovi uslovi odgovaraju vrednostima x(a), x(a), x(a),itd. Ukoliko je broj uslova manji od reda jednaqine, rexenje �e sadr�atii proizvoljne konstante C1, C2 itd. Na primer, problem
x = sin(at), x(0) = b
ima rexenje x =1
a− 1
acos at+ b, koje se mo�e odrediti na slede�i naqin:
>> dsolve('Dx = sin(a*t)','x(0) = b')
ans =
b - cos(a*t)/a + 1/a
Dakle, u jednaqini i poqetni uslovi mogu biti simboliqke promenljive.Osim poqetnih uslova, kao u prethodnom primeru, mogu biti definisani igraniqni uslovi, tj. vrednosti zavisnih promenljivih u bilo kom vremen-skom trenutku t. Na primer,
x+ 4x = 0, x(0) = 1, x(π) = 1.
POGLAVLjE 6Operatori i kontrola toka programa
Programi razmatrani u prethodnim poglavljima bili su strukturnojednostavni, jer su se naredbe izvrxavale jedna za drugom, onako kako supisane, bez ikakvog grananja i ponavljanja. Me�utim, ve�ina programer-skih problema nije tako jednostavna. Qinjenica je u stvari, da velikamo� programskih jezika dolazi iz njihove mogu�nosti da daju instrukcijeraqunaru da izvrxi isti zadatak vixe puta, sa ponavljanjem, ili da izvrxirazliqite zadatke ako se odre�eni parametri menjaju ili su zadovoljeniodre�eni uslovi. U vixim programskim jezicima ovo se posti�e uz pomo�naredbi za kontrolu toka programa. Naredbe za kontrolu toka programa semogu podeliti u dve osnovne grupe: naredbe za uslovno grananje, i naredbepetlji. Uslovno grananje predstavlja mogu�nost odluke da li se odre�enikod izvrxava ili ne, a u zavisnosti od vrednosti nekog izraza. Petlje, ilidrugim reqima iteracije, predstavljaju sposobnost da se izvrxi skup istihoperacija vixe puta, dok se specijalni zahtev ne zadovolji. U naredbamaodluqivanja, grananja, i uopxte u kontroli toka programa, jednu od va�nihuloga igraju logiqki i relacioni operatori, i o njima �e tako�e biti reqiu daljem tekstu.
6.1 Relacioni operatori
Relacioni operatori (ili operatori pore�enja) su operatori odnosa iz-me�u dveju promenljivih ili izraza, a kao rezultat daju logiqki tip po-datka. Oni dozvoljavaju bilo koju varijantu operanada, xto znaqi dase mogu primenjivati izme�u skalara, vektora i matrica, ali i izme�uskalara i matrice (vektora). Tako�e, relacioni operatori se mogu prime-njivati i na kompleksne brojeve, i u tom sluqaju se upore�uju samo njihovirealni delovi.
Dakle, rezultat pore�enja skalara primenom relacionih operatora jeili 0 (ako pore�enje nije taqno) ili 1 (ako je pore�enje taqno), i rezultat
6.3 Uslovno grananje 89
poruka o grexkama kod izraza kod kojih bi se u nekim okolnostima to moglopojaviti (na primer, deljenje nulom).
Logiqki operatori se mogu koristiti sa svim numeriqkim tipovimapodataka, uzimaju�i u obzir da se sve numeriqke vrednosti razliqite odnule tretiraju kao logiqka vrednost true, a vrednost nula se tretira kaologiqka vrednost false.
6.3 Uslovno grananje
Uslovno grananje je najosnovniji element za kontrolu toka u bilo komprogramskom jeziku. On omogu�ava programu da donosi odluke i d odluqujeda li �e se izvrxiti ili ne�e niz naredbi, a na osnovu vrednosti nekogizraza. Kako se vrednost ovog izraza mo�e razlikovati sa razliqitimizvrxavanjima programa, pomenuta karakteristika omogu�ava da programreaguje dinamiqki na razliqite podatke. U Matlabu se uslovno izvrxa-vanje programa posti�e kljuqnim reqima if, else i elseif.
6.3.1 If uslovOblik jedne if naredbe je veoma jednostavan. Nakon kljuqne reqi if
sledi jedan logiqki izraz, koji se drugaqije i naziva uslov if iskaza. Uko-liko uslov ima vrednost true (1), izvrxava se niz naredbi koje slede izaiskaza if, sve do iskaza end (grupa naredbi iz sintakse). U suprotnom, akoje logiqka vrednost izraza uslov false, program preskaqe grupu naredbiizme�u if i end, i izvrxavanje programa se nastavlja prvom naredbom izakljuqne reqi end.
if uslovgrupa naredbi
end
Izraz uslov nakon kljuqne reqi if mo�e biti slo�en izraz koji se sastojiod relacionih i/ili logiqkih operatora. Xto se tiqe dimenzija, mo�ebiti skalar, vektor ili matrica.
Struktura if-else omogu�ava izvrxavanje jedne od dve mogu�e grupenaredbi, a u zavisnosti od istinitosne vrednosti uslova if iskaza i njenopxti oblik je (slika 6.1):
if uslovgrupa naredbi 1
else
grupa naredbi 2end
Ako izraz uslov nakon kljuqne reqi if ima vrednost true, izvrxava se niznaredbi oznaqen sa grupa naredbi 1, koji se nalazi izme�u kljuqnih reqiif i else, a zatim se preskaqu ostale naredbe do iskaza end. Ukoliko jevrednost izraza uslov false, program preskaqe naredbe do iskaza else, azatim izvrxava niz naredbi oznaqen sa grupa naredbi 2 izme�u else i end.
6.4 Petlje 93
definixe kada petlja poqinje. Nasuprot tome, kod while petlje broj pro-laza nije poznat unapred i proces ponavljanja petlje se nastavlja sve dok sespecificirani uslov ne zadovolji. Obe vrste petlje mogu se prekinuti ubilo kom trenutku naredbom break.
6.4.1 For petljaFor petlja izvrxava naredbu ili niz naredbi unapred odre�eni broj
puta. Struktura for petlje je jednostavna i njen opxti oblik je:
for indeks petlje = vrednostigrupa naredbi
end
Prva linija identifikuje petlju i definixe promenljivu indeks petlje,koja se naziva promenljiva petlje ili indeks petlje, a predstavlja broj qijase vrednost menja tokom prolaska kroz petlju. Izraz vrednosti, koji mo�ebiti vektor ili matrica, predstavlja skup vrednosti koje promenljiva in-deks petlje uzima dok se petlja izvrxava. Suxtinski, broj elemenata u vek-toru vrednosti (ili broj kolona, ukoliko je u pitanju matrica) odre�ujebroj prolazaka kroz petlju. Naredba ili grupa naredbi koja sledi, oz-naqena sa grupa naredbi , naziva se telo petlje, i ono se izvrxava pri svakomprolazu. Kljuqna req end identifikuje kraj for petlje. Petlja se izvrxavajedanput za svaku vrednost promenljive indeks petlje. U primeru:
for k = [1 3 7 2]
x = k^2;
fprintf(' %d', x)
end
fprintf('\n')
promenljiva k predstavlja indeks petlje, a vektor[1 3 7 2
]predstavlja
skup vrednosti. Tokom prvog prolaza kroz petlju promenljiva k ima vred-nost 1, xto je prva vrednost iz vektora vrednosti. U telu petlje se raqunakvadrat promenljive k i dodeljuje promenljivoj x, a potom se vrednostpromenljive x xtampa na ekranu. Tokom slede�eg prolaza vrednost k semenja na vrednost 3, xto je druga vrednost u vektoru vrednosti, i izvr-xava se ponovo telo petlje. Pri svakom prolasku kroz petlju vrednostpromenljive k se menja i dodeljuju joj se slede�a vrednost iz promenljivevrednosti. Izvrxavanjem skripta dobija se:
1 9 49 4
U prethodnom primeru indeks petlje je uzimao vrednosti iz vektora,izme�u qijih elemenata ne postoji nikakva uoqljiva zavisnost. Me�utim,najqex�e je primena for petlje u slede�em obliku (slika 6.3):
for k = m:s:n
grupa naredbi
end
Dakle, vektor vrednosti ovde predstavlja vektor sa osobinom da je razlikaizme�u dva susedna elementa konstantna i jednaka s. Izraz m:s:n dodeljuje
94 Operatori i kontrola toka programa
indeksu petlje k poqetnu vrednost m koja se tokom svakog prolaza pove�avaza s, pa se veliqina s naziva korak petlje. Petlja se zavrxava kada vrednostindeksa k dostigne vrednost n. U tom sluqaju, program se ne vra�a vixena naredbu for, ve� nastavlja sa izvrxavanjem prve slede�e naredbe izakljuqne reqi end. Na primer, ako je k = 1 : 3 : 10, bi�e 4 prolaza kroz petlju,a vrednosti indeksa k u prolazima kroz petlju su 1, 4, 7 i 10, sledstveno.
true
false
for (ulaz)
end
k = m
k > n
(izlaz)
grupa naredbi
k = k + s
Slika 6.3: Dijagram toka for petlje
Korak petlje k mo�e biti i negati-van. Tako, na primer, k = 20 : −5 : 10rezultuje sa 3 prolaza u kojima je k =20, 15, 10. Ukoliko nije zadat korak petlje,podrazumeva se da je on jednak 1. Ako jem = n, petlja �e se izvrxiti samo jednom.U sluqaju da je m > n i s > 0, ili pakm < n i s < 0, petlja se ne�e izvrxitinijednom. Specijalno, ako su vrednostik, s i n takve da k ne mo�e biti jednakon, ukoliko je korak s pozitivan, poslednjiprolaz �e se izvrxiti kada k ima najve�uvrednost koja je manja od n. Na primer,k = 1 : 2 : 6 daje 3 prolaza u kojima jek = 1, 3, 5. Ako s ima negativnu vrednost,poslednji prolaz �e se izvrxiti kada kima najmanju vrednost koja je ve�a od n.I treba napomenuti – svakoj naredbi for u programu mora biti dodeljenaodgovaraju�a kljuqna req end. Kada se petlja zavrxi, indeks petlje imaposlednju dodeljenu mu vrednost.
Matrica kao indeks petlje
Indeks petlje mo�e biti i matrica, za razliku od prethodnih primeragde je to bio vektor. Na primer, neka je data matrica A tipa m×n. Naredbe
for k = A
grupa naredbi
end
dodeljuje indeksu k vektor A(:, i), gde i predstavlja teku�i broj iteracijepetlje, odnosno prolaza petlje. U prvom prolazu, k je jednako A(:, 1), udrugom k = A(:, 2), u i-tom k = A(:, i) i sve do k = A(:, n). Dakle, brojprolaza je jednak broju kolona matrice A, a u svakom prolazu indeks kpredstavlja odgovaraju�u kolonu matrice A. Jedan takav primer je:
>> A = [1 2 3; 4 5 6]
A =
1 2 3
4 5 6
>> for k = A, y = 2*k , endy =
2
8
POGLAVLjE 9Aproksimacija i interpolacija
9.1 Opxti problem aproksimacije
Neka je funkcija f : X −→ R, X ⊆ R funkcija realne promenljive.Problem aproksimacije funkcije f(·) svodi se na odre�ivanje neke drugefunkcije
ϕ(x) = ϕ(x; a0, a1, . . . , am)
koja zavisi od m + 1 parametara a0, a1, . . . , am, tako da va�i ϕ(x) ≈ f(x).Funkcija ϕ(·) se naziva aproksimaciona funkcija. U praksi se problemaproksimacije mo�e javiti iz dva razloga. Prvi je xto analitiqki ob-lik funkcije f(·), iako je poznat, mo�e biti veoma komplikovan, pa jeizraqunavanje njenih vrednosti slo�eno. Sa druge strane, analitiqki ob-lik funkcije nije poznat, ve� su poznate samo vrednosti funkcije na nekomskupu taqaka. To je qest sluqaj u mnogim nauqnim i in�enjerskim prime-nama, kada se podaci prikupljaju u eksperimentima pri raznim merenjimarazliqitih fiziqkih veliqina, na primer kod eksperimentalnih odre�i-vanja statiqkih karakteristika, kao xto je sluqaj kod krive sila-izdu�enjeu postupku odre�ivanja krutosti opruge, i sliqno.
Jedan od osnovnih problema aproksimacije je kako odrediti, odnosnoizabrati funkciju aproksimacije. U principu, sve aproksimacione funk-cije se mogu podeliti na linearne i nelinearne. Opxti oblik linearneaproksimacione funkcije je
ϕ(x) = a0ϕ0(x) + a1ϕ1(x) + . . .+ amϕm(x), (9.1)
pri qemu sistem funkcija ϕk(·) zadovoljava odre�ene osobine. Ovde se pojamlinearne funkcije odnosi na linearnost po parametrima ai, i = 0, 1, . . . ,m, adobra strana ovog oblika aproksimacije je xto se odre�ivanje parametarasvodi na sisteme linearnih jednaqina.
130 Aproksimacija i interpolacija
U specijalnom sluqaju, kada je ϕk(x) = xk, k = 0, 1, . . . ,m, tj.
ϕ(x) = a0 + a1x+ a2x2 + . . .+ amxm, (9.2)
req je o aproksimaciji algebarskim polinomima. Funkcije ϕk(·) mogu bititrigonometrijske funkcije, pa je u pitanju aproksimacija trigonometrij-skim polinomima, ili pak u delovima polinomijalne funkcije, a kao ne-linearne aproksimacione funkcije koriste se na primer eksponencijalne iracionalne funkcije. Kod pribli�nog predstavljanja funkcija postoje dvarazliqita pristupa, odnosno kriterijuma, koji se postavljaju aproksima-cionoj funkciji (slika 9.1):
� Interpolacija se karakterixe zahtevom da se vrednosti funkcija f(·)i ϕ(·) podudaraju na nekom konaqnom skupu podataka. U tim pozna-tim taqkama se mogu, ali i ne moraju poklapati vrednosti izvodafunkcija.
� Aproksimacijom se dobijaju funkcije koje aproksimiraju skup podata-ka uz minimizaciju nekog postavljenog kriterijuma, i bez obaveznogzahteva da se vrednosti funkcija f(·) i ϕ(·) podudaraju u taqkama togskupa.
x
1 1,2 1,4 1,6 1,8 2 2,2 2,4 2,6 2,8 3
y
-0,2
0
0,2
0,4
0,6
0,8
1
1,2
interpolacija
aproksimacija
diskretna taqka
Slika 9.1: Aproksimacija i interpolacija diskretnog skupa podataka
9.2 Interpolacija
Neka je funkcija f(·) data na segmentu [a, b] skupom parova (xk, yk), k =0, 1, . . . , n i gde je yk = f(xk). Ako je za aproksimaciju funkcije f(·) funkci-jom ϕ(·) kriterijum za izbor parametara a0, a1, . . . , an dat sistemom jed-naqina:
ϕ(xk; a0, a1, . . . , an) = f(xk), k = 0, 1, . . . , n (9.3)
134 Aproksimacija i interpolacija
9.4.3 Funkcije za interpolaciju u MatlabuInterpolacioni kubni splajn se mo�e odrediti korix�enjem ugra�ene
funkcije Matlaba, spline(), qija je opxta sintaksa oblika:
yi = spline(x,y,xi)
gde su x i y vektori koji sadr�e taqke interpolacije, a yi vektor kojisadr�i rezultate interpolacije izraqunate u taqkama vektora xi. Po-drazumevani graniqni uslov je tzv. not-a-knot uslov. U sluqaju da vektor ysadr�i dve vrednosti vixe nego xto ima vektor x, tada se prva i poslednjavrednost u vektoru y koriste kao izvodi u krajnjim taqkama. Na taj naqinova opcija omogu�ava da se implementira i clamped-end uslov, tj. da sedobije potpuni splajn.
Ugra�ena funkcija interp1() omogu�ava da se implementira nekolikotipova u delovima jednodimenzijskih interpolacija. Njena opxta sintaksaje:
yi = interp1(x,y,xi,method)
gde su x i y vektori koji sadr�e vrednosti koje se interpoliraju, yi jevektor koji sadr�i rezultate interpolacije dobijene u taqkama vektora xi
primenom metode definisane u parametru method. Dostupne metode su:
� ’nearest’: interpoliranoj taqki se dodeljuje vrednost njoj najbli�etaqke. Prema tome, predstavlja interpolaciju polinomom nultog reda.
� ’linear’: linearna interpolacija. Ova metoda koristi prave linijeza povezivanje taqaka.
� ’spline’: interpolacija u delovima kubnim splajnom. Ova metoda jeidentiqna funkciji spline().
� ’pchip’ i ’cubic’: u delovima kubna Ermitova interpolacija.
Ukoliko se argument method u pozivu funkcije izostavi, podrazumevanametoda je metoda linearne interpolacije.
Primer 9.1. Na osnovu proizvoljno odabranih taqaka interpolirati funk-ciju f(x) = (x2 − 3x+ 5)e−5xsinx na intervalu [0, 1].
Rexenje: Primer rexenja dat je slede�om funkcijom, sa kra�im objaxnje-njima i komentarima o pojedinim naredbama. Grafiqki prikaz rezultatadat je na slici 9.3.
function inter_primer
% Primer interpolacije funkcije
% y = f(x) = (x.^2 - 3*x + 5).*exp(-5*x).*sin(x);
% razlichitim metodama interpolacije
% generisanje chvorova interpolacije
x = 0:0.1:1;
y = (x.^2 - 3*x + 5).*exp(-5*x).*sin(x);
9.4 Interpolacija polinomima po delovima 135
% definisanje vektora u kojima ce se funkcija interpolirati
x1 = 0:.02:1;
% tachna vrednost funkcije y=f(x) za vrednosti xi
y0 = (x1.^2 - 3*x1 + 5).*exp(-5*x1).*sin(x1);
% interpolacija razlichitim metodama
y1 = interp1(x,y,x1); % linearna
y2 = interp1(x,y,x1,'pchip'); % u delovima kubna Ermitova
y3 = interp1(x,y,x1,'spline'); % u delovima kubnim splajnom
y4 = interp1(x,y,x1,'nearest'); % najblizhom tachkom
% grafichki prikaz rezultata
figure()
subplot(2,2,1)
plot(x1,y1,x1,y0,'--',x,y,'o')
ispis('linear')
subplot(2,2,2)
plot(x1,y2,x1,y0,'--',x,y,'o')
ispis('pchip')
subplot(2,2,3)
plot(x1,y3',x1,y0,'--',x,y,'o')
ispis('spline')
subplot(2,2,4)
plot(x1,y4',x1,y0,'--',x,y,'o')
ispis('nearest')
function ispis(metoda)
% Funkcija koja ispisuje naslove osa i legendu
% sa ulaznim parametrom koji predstavlja metodu interpolacije
title(sprintf('Metoda interpolacije: %s', metoda), 'Interpreter', ...'Latex')
xlabel('$x$','Interpreter','Latex')
ylabel('$y$','Interpreter','Latex')
legend(metoda,'funkcija'), grid
end
end
U Matlabu postoji funkcija interp2() koja vrxi dvodimenzionalnu in-terpolaciju, qija je sintaksa:
z1 = interp2(x0,y0,z0,x1,y1,method)
Ulazni argumenti x0, y0, z0 predstavljaju diskretne taqke formirane funk-cijom meshgrid(). Argumenti x1, y1 predstavljaju taqke koje se interpoli-raju, i one mogu da budu u bilo kom obliku – skalari, vektori, matrice,dakle, nije obavezna meshgrid forma. Izlazni argument funkcije z1 jerezultat interpolacije, oblika kao x1 ili y1. Parametar method mo�eimati vrednosti kao i u jednodimenzionalnom sluqaju. Xtavixe, mogu�aje i n−dimenzionalna interpolacija, funkcijom interpn(), ali to prevazi-lazi okvire ovog izlaganja.
POGLAVLjE 10Nelinearne algebarske jednaqine
10.1 Nelinearna jednaqina jedne promenljive
U mnogim problemima u nauci i in�enjerstvu neophodno je odreditirexenje neke nelinearne jednaqine oblika:
f(x) = 0. (10.1)
Grafiqki, rexenje ili koren jednaqine predstavlja taqku preseka funkcijef(·) i x−ose. Prema tome, u zavisnosti od funkcije f(·), jednaqina (10.1)mo�e imati jedinstveno rexenje, vixe rexenja ili ne�e imati rexenje.Koren jednaqine se nekad mo�e odrediti analitiqki i onda je to taqnorexenje. Me�utim, u ve�ini situacija to nije mogu�e, pa se koreni jedna-qine moraju na�i primenom neke numeriqke procedure. Jedan takav primerje jednaqina oblika 1− x+ cosx = 0. Slika 10.1 prikazuje da ova jednaqinaima samo jedno rexenje, koje se mo�e aproksimirati sa �eljenom taqnox�uuz pomo� neke numeriqke metode.
Zapa�anje 10.1. Treba obratiti pa�nju na terminologiju i upotrebu poj-mova rexenje, koren i nula. Koren predstavlja rexenje jednaqine f(x) = 0, ato rexenje u stvari predstavlja nulu funkcije f(·).
Numeriqke metode za rexavanje nelinearnih jednaqina se mogu podelitiu dve glavne kategorije: metode na zatvorenom intervalu i metode naotvorenom intervalu, ili kra�e – otvorene metode. Metode na zatvorenomintervalu zahtevaju da se identifikuje, tj. odredi, poqetni interval kojisadr�i koren jednaqine. Prema slici 10.2a, koja prikazuje osnovni prin-cip metoda na zatvorenom intervalu, to znaqi da treba odrediti interval[a, b] tako da je f(a)f(b) < 0. Poqetni interval se tada sistematski sma-njuje na podintervale u kojima se tako�e nalazi taj koren jednaqine, svedok se ne zadovolji �eljena taqnost. Kako se taqno menja du�ina intervalau svakom koraku zavisi od metode koja se koristi. Oqito je da metode
140 Nelinearne algebarske jednaqine
x-4 -3 -2 -1 0 1 2 3 4
-4
-2
0
2
4
6
f(x)=
1−x+cosx
pribli¼no rexe©e
Slika 10.1: Pribli�no rexenje jednaqine 1− x+ cosx = 0
na zatvorenom intervalu uvek konvergiraju rexenju, tj. korenu. Primeritakvih metoda su metoda bisekcije (metoda polovljenja intervala) i regulafasi (metoda pogrexnog polo�aja).
Kod otvorenih metoda u toku iterativnog postupka ne postoji ograni-qenje da se aproksimacija mora nalaziti u unapred utvr�enom zatvorenomintervalu. Nasuprot prethodno opisanim metodama, otvorene metode zahte-vaju samo jednu vrednost promenljive x za poqetak iteracije, tj. zahtevajupoqetnu procenu rexenja, blisku stvarnom korenu. Doduxe, neke otvorenemetode mogu tako�e da zahtevaju dve ili vixe taqaka, ali ne zahtevaju dase koren izoluje u zatvorenom intervalu. Nakon poqetne procene rexenja,taqnije aproksimacije, rexenja se generixu sukcesivno, posebnim metodama(slika 10.2b). Ove metode, uopxteno, ne garantuju konvergenciju sve dokpoqetna pretpostavka x0 nije dovoljno bliska korenu jednaqine. Me�utim,qak i tada, numeriqki algoritam mo�e da divergira. Uprkos tome, pred-nost otvorenih metoda je u tome xto ako konvergiraju, one demonstrirajumnogo bolju brzinu konvergencije u pore�enju sa metodama na zatvorenomintervalu. Neke od otvorenih metoda su metoda fiksne taqke, Njutnovametoda, metoda seqice (ona zahteva dve taqke za poqetak iteracije) i inver-zna kvadratna interpolacija (zahteva tri poqetne taqke).
10.1.1 Rexavanje nelinearnih jednaqina u MatlabuMatlab poseduje samo dve funkcije za odre�ivanje korena jednaqine. To
su funkcija fzero(), koja se mo�e primeniti za bilo koju funkciju jednepromenljive, i funkcija roots() za odre�ivanje nula polinoma. Funkcijafzero() koristi kombinaciju metoda bisekcije, seqice i inverzne kvadratneinterpolacije za nala�enje rexenja. Opxti oblik poziva funkcije je:
x = fzero(fun, x0)
Funkcija pokuxava da na�e nulu funkcije fun uzimaju�i x0 kao poqetnuaproksimaciju rexenja. Ukoliko je x0 skalar, procedura za tra�enje nule
POGLAVLjE 11
Numeriqko diferenciranje i integraljenje
11.1 Numeriqko diferenciranje
U mnogim in�enjerskim problemima zahteva se izraqunavanje izvoda,kao na primer odre�ivanje brzine na osnovu podataka o poziciji, odnosnopre�enom putu. Nekada je poznat analitiqki opis funkcije koja se dife-rencira, ali je analitiqko diferenciranje veoma komplikovano. U tomsluqaju, funkcija se diskretizuje i generixe odre�en broj taqaka koje sepotom koriste u nekoj numeriqkoj metodi za aproksimaciju izvoda funkcije.Sa druge strane, qesto su dostupni podaci upravo u obliku diskretnogskupa taqaka, kao rezultat eksperimentalnih merenja. U tom sluqaju, izvodse mo�e numeriqki aproksimirati na jedan od slede�a dva naqina. Jedannaqin je diferenciranjem interpolacionih formula, kada se podaci aprok-simiraju pogodnom krivom, lakom za diferenciranje, a potom diferenciraanalitiqki izraz dobijene funkcije. Na primer, za sluqaj interpolacijenepoznate funkcije f(·) polinomom, aproksimaciona funkcija je oblika
ϕ(x) = Pn(x) = anxn + an−1x
n−1 + · · ·+ a1x+ a0, (11.1)
tako da je postupak diferenciranja jednostavan, tj. f (k)(x) ≈ ϕ(k)(x). Me�u-tim, treba napomenuti da ovakav postupak diferenciranja mo�e da budenestabilan i netaqan, jer mala odstupanja aproksimacione funkcije odstvarne, |f(x)− Pn(x)| ne znaqe obavezno i mala odstupanja njihovih izvoda|f ′
(x) − P′
n(x)|. Sa druge strane, dobra osobina je xto poznat, diskretanskup taqaka ne mora da bude ekvidistantan.
Drugi prilaz je primena konaqnih razlika u kojima se koriste podaciu okolini taqke od interesa za aproksimaciju izvoda, i o ovim metodama�e biti vixe reqi u nastavku.
152 Numeriqko diferenciranje i integraljenje
Primer 11.1. Pokazati primenu funkcije diff() u pribli�nom odre�ivanjuizvoda funkcije
f(x) = 0, 2 + 25x− 200x2 + 675x3 − 900x4 + 400x5.
i uporediti dobijene rezultate sa taqnim rexenjem na intervalu x ∈ [0, 0, 8].
Rexenje: Predlog rexenja dat je u slede�em skriptu. Pore�enje analitiq-kog i pribli�nih rexenja dato je na slici 11.2, pri qemu je prikazan dija-gram koji odgovara grafiku figure(2) u skriptu. Iz prikazanog rezultatamo�e se uoqiti da se primenom konaqnih razlika unazad i unapred ne mo�edobiti vrednost izvoda u prvoj, odnosnoj poslednjoj taqki intervala, sled-stveno, a primenom centralnih razlika se ne mogu dobiti vrednosti izvodau krajnjim taqkama posmatranog intervala.
f = @(x) 0.2 + 25*x - 200*x.^2 + 675*x.^3 - 900*x.^4 + 400*x.^5;
x = 0:0.05:0.8; n = length(x);
y = f(x); % izrachunavanje funkcije u izabranim tachkama
xa = 0:0.01:0.8; % za crtanje analitichkog reshenja
% analitichko reshenje:
yda = 25 - 400*xa + 3*675*xa.^2 - 4*900*xa.^3 + 5*400*xa.^4;
d = diff(y)./diff(x);
% Aproksimacija izvoda: razlike unazad
subplot(3,1,1)
plot(x(2:n),d,'bo'), hold on, plot(xa,yda), grid
% Aproksimacija izvoda: razlike unapred
subplot(3,1,2)
plot(x(1:n-1),d,'rd'), hold on, plot(xa,yda), grid
% Aproksimacija izvoda: centralne razlike.
dc = (y(3:n) -y(1:n -2))./(x(3:n)-x(1:n-2));
subplot(3,1,3)
plot(x(2:n-1),dc,'k*'), hold on, plot(xa,yda), grid
% Na jednom dijagramu
figure(2)
plot(x(2:n),d,'bo', x(1:n-1),d,'rd', x(2:n-1),dc, 'k*')
hold on, grid on, plot(xa,yda)
legend('razlike unazad', 'razlike unapred', 'centralne razlike')
Funkcija polyder()
Funkcija polyder() omogu�ava da se analitiqki odredi izvod poli-nomske funkcije, odre�ene njenim koeficijentima. Pri tome, funkcijadozvoljava tri oblika poziva:
� b=polyder(p) – vra�a vektor b koji sadr�i koeficijente izvodapolinoma definisanog vektorom p (po opadaju�em stepenu),
� b=polyder(p1,p2) – vra�a vektor b koji sadr�i koeficijente izvodaproizvoda polinoma p1 i p2,
� [n,d]=polyder(p1,p2) – vra�a vektore n i d koji sadr�e koeficijentebrojioca i imenioca izvoda koliqnika polinoma p1 i p2.
11.2 Numeriqko integraljenje 153
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8-30
-20
-10
0
10
20
30
razlike unazad
razlike unapred
centralne razlike
x
f(x)
Slika 11.2: Pore�enje pribli�nih i taqnih izvoda funkcije iz primera 11.1.3
Na primer, izvod polinoma p(x) = 2x3 − 5x+ 3 je p′(x) = 6x2 − 5 je:
>> p = [2 0 -5 3]
>> polyder(p)
ans =
6 0 -5
U Matlabu se mo�e odrediti i gradijent skupa podataka koji predstav-ljaju dvodimenzionalnu funkciju pomo�u funkcije gradient(). Jedan odoblika poziva funkcije je
[Fx,Fy] = gradient(F,dx,dy)
gde je F matrica, a Fx i Fy su vektori parcijalnih izvoda ∂F/∂x i ∂F/∂y,sledstveno. Vixe o funkciji se mo�e na�i naredbom help gradient.
11.2 Numeriqko integraljenje
Veoma va�no mesto u mnogim in�enjerskim problemima zauzima i nu-meriqko integraljenje (na primer, izraqunavanje pre�enog puta na osnovuzavisnosti brzine kretanja od vremena). Osnovna ideja numeriqke inte-gracije je izraqunavanje integrala
I =
∫ b
a
f(x)dx (11.19)
korix�enjem vrednosti funkcije f(·) na nekom konaqnom skupu taqaka. For-mule za pribli�no integraljenje funkcija jedne promenljive zovu se i kva-draturne formule, zbog interpretacije integrala kao povrxine ispod kri-ve, tj. ispod funkcije f(·).
Od mnogih metoda, u nastavku �e se ukratko izlo�iti dve, trapeznoi Simpsonovo pravilo, a na kojima se zasnivaju ugra�ene funkcije Mat-laba. Obe metode se dobijaju iz Njutn-Kotesovih (Newton-Cotes) formula
11.2 Numeriqko integraljenje 155
gde integrand malo varira, a kra�i intervali u oblastima gde integrandpokazuje nagle promene. U analizi koja sledi, me�utim, pretpostavlja seda su taqke ekvidistantne. Na svakom od podintervala [xi, xi+1] integralse aproksimira povrxinom trapeza. Sabiranjem povrxina trapeza dolazise do pribli�ne vrednosti odre�enog integrala:
∫ b
a
f(x)dx ≈n∑
i=1
f(xi) + f(xi+1)
2(xi+1 − xi). (11.22)
Grexka opxteg trapeznog pravila je reda h2, tj. O(h2).
11.2.2 Matlab funkcija trapz()
U Matlabu je implementirana trapezna metoda pribli�ne integracijeu obliku funkcije trapz(). Njena sintaksa je
I=trapz(x,y)
gde niz y sadr�i vrednosti funkcije izraqunate za taqke sadr�ane u nizux, a I je vrednost integrala. Ukoliko se �eli integral jedne funkcije,tada je y vektor, a za sluqaj vixe funkcija njihove vrednosti se morajudefinisati u obliku matrice Y . Tada �e funkcija izraqunati integralsvake od kolona matrice Y . Va�no je da se ne mo�e analitiqki definisatifunkcija kao integrand, ve� integrand mora biti diskretan skup podataka.
Primer 11.2. Odrediti integral∫ 1
−1
1
x+ 3dx primenom trapeznog pravila.
Rexenje: Da bi se primenilo trapezno pravilo, potrebno je generisatidiskretni skup taqaka i potom pozvati funkciju trapz(). Slede�i niznaredbi ilustruje rexenje:
>> x = -1:0.1:1;
>> y = 1./(x+3);
>> I = trapz(x,y)
I =
0.6933
Analitiqko rexenje je:∫ 1
−1
1
x+ 3dx = ln |x+ 3|
∣∣1−1
= ln 4− ln 2 = ln 2 = 0.6931.
To se mo�e proveriti i primenom simboliqkog raquna:
>> syms x
>> int(1/(x+3),-1,1)
ans =
log(2)
Podelom intervala integracije [−1, 1] na ve�i broj taqaka mo�e se dobitijox taqniji rezultat.
POGLAVLjE 12Numeriqko rexavanje obiqnih
diferencijalnih jednaqina
12.1 Pojam diferencijalne jednaqine
Za razliku od algebarskih jednaqina, u diferencijalnim jednaqinamanepoznata koja se odre�uje je realna (ili kompleksna) funkcija. U dife-rencijalnoj jednaqini figurixu nezavisna promenljiva t, nepoznata funk-cija y(·) i neki njeni izvodi. Opxti oblik skalarne diferencijalne jedna-qine je:
ϕ(t, y, y, y, . . . , y(n)) = 0 (12.1)
Ukoliko je req o funkciji jedne realne promenljive, kao u jednaqini (12.1),tada je u pitanju obiqna diferencijalna jednaqina. Osim obiqnih, postojei parcijalne diferencijalne jednaqine kod kojih nepoznata funkcija zavisiod vixe nezavisno promenljivih, pa u diferencijalnoj jednaqini figuri-xu parcijalni izvodi. Nadalje, predmet razmatranja �e biti samo obiqnediferencijalne jednaqine. Sliqno algebarskim jednaqinama, postoje i sis-temi diferencijalnih jednaqina. Diferencijalne jednaqine se javljaju kaomatematiqki modeli razliqitih pojava, procesa i sistema u prirodi itehnici, i o tome �e biti reqi nexto kasnije.
Najvixi izvod tra�ene funkcije koji se pojavljuje u diferencijalnojjednaqini predstavlja red diferencijalne jednaqine. Rexiti diferenci-jalnu jednaqinu znaqi odrediti nepoznatu funkciju y(·) koja se u njoj javlja.Rexenje diferencijalne jednaqine na nekom intervalu J je preslikavanjey(·) : J −→ R diferencijalno n puta, tako da je jednaqina (12.1) zadovolje-na za svako t ∈ J . Ako se pretpostavi da se jednaqina (12.1) mo�e rexitipo najve�em izvodu nepoznate funcije y(·), dobija se jednaqina
y(n) = φ(t, y, y, y, . . . , y(n−1)) = 0, (12.2)
12.3 Jednokoraqne metode 161
Zadavanjem n uslova koje rexenje jednaqine (12.5) treba da zadovoljava,iz opxteg rexenja se odre�uje tzv. partikularno rexenje. Jednaqina (12.5)zajedno sa uslovima zadatim u jednoj taqki, oznaqenoj sa x0, predstavljaproblem koji se naziva problem poqetnih vrednosti ili Koxijev problem.
U cilju razumevanja metoda za numeriqko rexavanje Koxijevog problema,i zbog pogodnosti grafiqke interpretacije a bez gubitka u opxtosti, raz-matra se skalarna diferencijalna jednaqina prvog reda sa datim poqetnimuslovom:
x(t) = f(t, x), x(t0) = x0. (12.6)
Sve metode koje se ilustruju u nastavku va�e i u opxtem sluqaju vektorskogoblika prethodne jednaqine.
Prema tome, Koxijev problem se sastoji iz odre�ivanja onog rexenjajednaqine (12.6) koje prolazi kroz datu taqku, tj. rexenja koje zadovoljavauslov x(t0) = x0. U nastavku, usvaja se da va�i slede�a pretpostavka:
Pretpostavka 12.1. Sistem (12.6) ima jedinstveno rexenje na intervalu[a, b].
Numeriqko rexenje ovog problema generixe niz vrednosti nezavisnepromenljive t0, t1, . . . , tn i odgovaraju�i niz vrednosti zavisne promenljivex0, x1, . . . , xn, tako da svako xi aproksimira rexenje u taqki ti:
xi ≈ x(ti), ∀i = 0, 1, . . . , n.
Razlika hk, hk = tk − tk−1 predstavlja korak diskretizacije, ili korak inte-gracije na k-tom segmentu [tk−1, tk] i on u opxtem sluqaju ne mora bitikonstantan, xto je naznaqeno indeksom k. Naravno, u sluqaju konstantnogkoraka integracije i podele intervala na kome se Koxijev problem rexavana n segmenata (podintervala), va�i slede�e:
t1 = t0 + h, t2 = t0 + 2h, . . . , tn = t0 + nh, gde je h =tn − t0
n.
Rexenje u taqki t0 je poznato iz datog poqetnog uslova. Cilj je na�i pri-bli�na rexenja u slede�im taqkama t1, t2, . . . , tn.
12.3 Jednokoraqne metode
Jednokoraqnim metodama se pribli�no rexenje u taqki xi+1 koje odgo-vara vrednosti ti+1 dobija ekstrapolacijom, a na osnovu vrednosti xi uprethodnoj taqki ti. Na koji naqin se ova nova vrednost dobija ekstrapo-lacijom zavisi od vrste numeriqke metode koja se koristi. Na slici 12.1 jeprikazana jednostavna jednokoraqna metoda, gde se vrednost nagiba ϕ(ti, xi)prave kroz taqku (ti, xi) koristi za odre�ivanje vrednosti xi+1, tj.:
xi+1 = xi + hϕ(ti, xi), i = 0, 1, . . . , n. (12.7)
162 Numeriqko rexavanje obiqnih diferencijalnih jednaqina
it +1it t
h
ix
hϕ
ix
hϕ+ix=+1ix
nagib=ϕx
taqno rexe©e
Slika 12.1: Jednokoraqna metoda.
Vrednost ϕ(ti, xi) se mo�e tu-maqiti kao pribli�ni prirax-taj po jediniqnom koraku igeometrijski predstavlja nagibpostavljene prave u taqki (ti, xi),a naziva se i funkcija pri-raxtaja. Poqevxi od unapredpoznatog poqetnog uslova x0,prethodna jednaqina se pri-menjuje na svaki podinterval[ti, ti+1] za nala�enje pribli�nogrexenja u taqkama t1, t2, . . . , tn.Opxti oblik jednaqine (12.7)opisuje sve jednokoraqne metode,pri qemu se metode razlikuju u svom prilazu za odre�ivanje ϕ(ti, xi).Metode su dobile naziv po tome xto se za aproksimaciju xi+1 koristi samovrednost xi u prethodnoj taqki, odnosno, u jednom koraku se iz xi dobijaxi+1. Najjednostavnija jednokoraqna metoda je Ojlerova metoda, kojoj jeposve�en naredni odeljak.
12.3.1 Ojlerova metodaOjlerova metoda obiqno daje najmanje taqne rezultate, ali ipak pru�a
dobru osnovu za razumevanje sofisticiranih metoda, te se stoga razmatrau nastavku. Kod ove metode se za vrednost funkcije ϕ(ti, xi) uzima vrednostfunkcije f(ti, xi), tj. uzima se nagib na poqetku intervala kao aproksi-macija srednjeg nagiba na celom intervalu.
xi+1 = xi + hf(ti, xi), i = 0, 1, . . . , n. (12.8)
Prethodna jednaqina se mo�e dobiti na razliqite naqine, pa se u nastavkukroz pomenutu metodu ilustruje suxtina numeriqkog rexavanja diferenci-jalne jednaqine.
Geometrijski aspekt
Posmatra se grafik taqnog rexenja Koxijevog problema x(t). Poznatipoqetni uslov predstavlja taqku koja se nalazi na taqnom rexenju, tako da je(t0, x0) prirodan i logiqan izbor za poqetnu taqku postupka aproksimacije.Da bi se dobilo pribli�no rexenje u taqki t1, izraqunava se nagib tan-gente u taqki (t0, x0) kao x0 = f(t0, x0), i tangenta predstavlja pravu linijuqija je jednaqina
T0(t) = x0 + (t− t0)x0. (12.9)
Za pribli�no rexenje x1 u taqki t1 mo�e se iskoristiti vrednost tangenteT0 u toj taqki, tj.:
x1 = T0(t1) = x0 + (t1 − t0)x0 = x0 + hf(t0, x0). (12.10)
172 Numeriqko rexavanje obiqnih diferencijalnih jednaqina
ode23s. Ovaj jednokoraqni numeriqki postupak je zasnovan na modi-fikovanoj Rosenbrokovoj formuli drugog reda i namenjen je za simulacijukrutih dinamiqkih sistema. U sluqaju grubljih tolerancija ovaj postupakje efikasniji od ode15s postupka.
ode23tb. Predstavlja implicitnu metodu Runge Kuta koja koristi kom-binaciju trapeznog pravila i diferencijalne formule drugog reda. Kaoi ode23s, ovaj postupak mo�e biti efikasniji u odnosu na ode15s postupakpri grubljim tolerancijama.
12.7 Funkcija ode..() u MatlabuSintaksa poziva je ista za sve numeriqke metode, to jest rexavaqe. Nu-
meriqka metoda se mo�e pozvati iz komandne linije na slede�i naqin:
[t,x]= odesolver(odefun,tspan,x0)
[t,x]=odesolver(odefun,tspan,x0,options)
Parametar odefun predstavlja ime funkcijske datoteke ili anonimnefunkcije koja se koristi za izraqunavanje desne strane diferencijalne jed-naqine (12.6) za date vrednosti nezavisne i zavisne promenljive. Ukolikose koristi m-datoteka, definiciona linija funkcije obiqno ima oblik
function xdot = odefun(t,x)
i datoteka se snima pod imenom odefun.m. Izlazna veliqina xdot mora bitivektor iste dimenzije kao x. Mo�e se uoqiti da nezavisna promenljiva tmora biti deo liste ulaznih argumenata, qak i ako se ona ne pojavljujeeksplicitno u izrazu koji se koristi za izraqunavanje xdot. Promenljivaodefun mo�e da sadr�i ime m-datoteke ili mo�e da bude pokazivaq gene-risan anonimnom funkcijom. Dvoelementni vektor tspan definixe inter-val integracije [t0 tf ], gde je t0 poqetni a tf krajnji trenutak simulacije.Osim toga, to mo�e biti vektor vrednosti za koje se �eli rexenje. Vektorx0 predstavlja vektor poqetnih uslova za zavisnu promenljivu. Naravno,potrebno je onoliko poqetnih uslova koliko ima zavisnih promenljivih.Parametar options predstavlja jednu Matlab strukturu (koju kreira funk-cija odeset()), i ona omogu�ava da se utiqe na parametre izraqunavanja.Ovaj argument je opcionalan, i ukoliko se ne koristi, rexavaq �e koristipodrazumevane vrednosti, o kojima �e biti reqi nexto kasnije. Vektor tsadr�i vrednosti nezavisne promenljive za koje se niz rexenja x izraqu-nava. Treba imati u vidu da, u podrazumevanom sluqaju, ove vrednosti nepredstavljaju ekvidistantan skup vrednosti. Svaka kolona od x predstavljarazliqitu zavisnu promenljivu. Veliqina niza je length(t)× length(x0).
Primena funkcije bi�e ilustrovaana na primeru. Posmatra se najpreskalarna diferencijalna jednaqina
x(t) = −x(t)− 5e−t sin 5t, x(0) = 1
koju treba rexiti na intervalu 0 ≤ t ≤ 3. Kreira se anonimna funkcija
12.7 Funkcija ode..() u Matlabu 173
xdot = @(t,x) -x - 5*exp(-t)*sin(5*t);
i nizom slede�ih naredbi dobija se rexenje, prikazano na slici 12.6:
tspan=[0 3]; x0=1;
[t,x] = ode45(xdot,tspan,x0);
plot(t,x,'*-.')
grid on
xlabel('$t$','Interpreter','Latex')
ylabel('$x(t)$','Interpreter','Latex')
t0 1 2 3
-1
-0,5
0
0,5
1
x(t)
Slika 12.6: Rexenje skalarne diferencijalne jednaqine
Dakle, ulazni argumenti pri pozivu funkcije su pokazivaq na funkcijuxdot, dvoelementni vektor tspan koji definixe interval na kome se tra�irexenje, i poqetni uslov x0. Izlazni argumenti su vektori t i x. Vred-nosti vektora t su u opsegu [0, 3], i x(i) aproksimira rexenje u trenutku t(i).To znaqi da je t(1) = 0 i t(end) = 3, dok su taqke t(2 : end − 1) automatskiizabrane od strane rexavaqa u procesu adaptivnog rexavanja jednaqine.
Ako se �eli rexenje jednaqine u odre�enim vremenskim trenucima (a neu onima u kojima sama funkcija ode45() vra�a), tada vektor tspan trebada sadr�i �eljene vrednosti. Slede�i niz naredbi prikazuje jedan takavprimer.
>> tspan_2 = 0:4; x0 = 1;
>> [t2,x2] = ode45(xdot,tspan_2,x0);
>> disp([t2,x2])
0 1.0000
1.0000 0.1043
2.0000 -0.1136
3.0000 -0.0378
4.0000 0.0075
Ovakav zahtev za rexenjima u specifiqnim trenucima ima mali uticajna brzinu numeriqkog rexavanja. Va�no je da specificiranje ovih vred-nosti ne znaqi da rexavaq rexava diferencijalnu jednaqinu samo u timtrenucima. On i dalje sam adaptivno odre�uje korake i vremenske trenutkeu procesu dobijanja rexenja koje �e da zadovolji tra�enu taqnost, a ovispecifirani trenuci su samo povratne vrednosti funkcije – funkcija ne
POGLAVLjE 13Uvod u Simulink
Ponaxanje dinamiqkih sistema opisano je diferencijalnim jednaqinamaili skupom diferencijalnih jednaqina koje su uopxteno nelinearne. Os-novni problem kod analize takvih sistema je nepostojanje opxte metodo-logije za rexavanje nelinearnih diferencijalnih jednaqina. Kao logiqnorexenje problema analize ponaxanja ovakvih sistema name�e se simulacijasistema na digitalnom raqunaru. Simulink predstavlja grafiqki alatkoji koristi matematiqku osnovu Matlaba i obezbe�uje grafiqki koris-niqki interfejs koji koristi mnoxtvo elemenata koji se nazivaju blokoviza simulaciju dinamiqkih sistema. Grafiqki interfejs omogu�ava da seblokovi pozicioniraju, da se menja njihova veliqina, daju nazivi, specifi-ciraju parametri blokova, me�usobno povezuju i kombinuju u grupe blokovaili podsisteme, a u cilju opisivanja komplikovanih sistema za simulaciju.
Izrada simulacionog modela unutar Simulinka obavlja se na jednos-tavan naqin korix�enjem biblioteke gotovih grafiqkih blokova. Osimpostoje�ih blokova korisnik mo�e napisati i vlastite blokove koriste�ibilo Matlabove m-funkcije ili funkcije napisane u programskom jezikuC/C + + (takozvane S-funkcije). Simulacioni model u Simulinku se sas-toji od blokova i linija koje predstavljaju signale a kojima se povezujupojedini blokovi, i time realizuju jednaqine koje opisuju sistem. Simu-lacija unutar Simulinka se mo�e podeliti u tri faze i to:
(1) prevo�enje modela,
(2) povezivanje modela i
(3) simulacija.
Prevo�enje modela. U ovoj fazi model se prevodi u izvrxni oblik,pri qemu se obavljaju slede�e operacije:
� izraqunavaju se parametri blokova,
14.5 Biblioteka blokova kontinualnih sistema 197
14.4.3 Trigonometric Function blokTrigonometric Function blok (slika 14.27) na svoj ulazni signal prime-
njuje trigonometrijske funkcije, zatim inverzne trigonometrijske funkci-je, hiperboliqke funkcije i inverzne hiperboliqke funkcije. Nakon izbora�eljene funkcije njeno ime se pojavljuje na ikoni bloka.
14.5 Biblioteka blokova kontinualnih sistema
14.5.1 Integrator blokIntegrator blok (slika 14.28) se koristi za vremenski neprekidne sig-
nale i on na svom izlazu daje signal koji predstavlja integral ulazne veli-qine. Ukoliko je xu(t) ulazna veliqina u Integrator blok, a xi(t) izlaznaveliqina iz njega, onda je jednaqina njegovog ponaxanja oblika:
xi(t) = xi(0) +
∫ t
t0
xu(t)dt. (14.1)
Integrator
s
1 ixux
Slika 14.28: Integratorblok
Simulink tretira Integrator blok kao jedandinamiqki sistem sa jednim stanjem, i to je nje-gov izlaz. Prema tome, ulazni signal u blok ustvari predstavlja prvi izvod po vremenu nje-govog stanja. Izabrani rexavaq izraqunavavrednost izlaza iz bloka u teku�em vremen-skom trenutku na osnovu trenutne vrednostiulaza i stanja bloka u prethodnom vremen-skom trenutku. Da bi rexavaq znao vrednostpoqetnog stanja bloka na samom poqetku simu-lacije, neophodno ju je definisati, i to se
qini pomo�u parametra Initial condition, qija je podrazumevana vrednost0.
Prozor za podexavanje parametara bloka, Function Block Parameters,omogu�ava da se definixe neka druga vrednost za poqetni uslov, ili pak,da se kreira ulazni port bloka za definisanje poqetne vrednosti. Tako�e,omogu�ava da se definixe gornja i donja granica integracije, da se kreirajedan ulazni port koji �e resetovati izlaz (stanje) bloka na njegovu poqetnuvrednost u zavisnosti od promene ulaza, i da se kreira jedan opcioni izlazkoji �e omogu�iti da se koristi vrednost izlaza bloka za njegovo reseto-vanje ili pobu�ivanje. U zavisnosti od mogu�ih izbora, izgled Integratorbloka se menja, sa intuitivnim prikazom izabranih varijanti.
Primer 14.1. Kreirati Simulink model za numeriqko rexavanje diferenci-jalne jednaqine:
Xi(t) = −10Xi(t) +Xu(t),
za Xu(t) = 2 sin(4t) i Xi(0) = 1.
15.2 Simulacija sistema drugog reda 207
lacije je 100 s. Rezultati simulacije su prikazani na slici 15.7b.
15.2 Simulacija sistema drugog reda
Posmatra se jedan mehaniqki sistem sa masom m, oprugom i priguxiva-qem (slika 15.9), na koji deluje spoljaxnja sila F .
Y
oc
pc
m F
Slika 15.9: Mehaniqki masa-opruga-priguxivaq sistem
Na osnovu jednaqine dinamiqke ravnote�e sila, i usvajaju�i da je pozi-cija tela Y njegova izlazna veliqina, Xi = Y , a sila F njegova ulaznaveliqina, Xu = F , mo�e se dobiti matematiqki model sistema u obliku:
mXi(t) + cpXi(t) + coXi(t) = Xu(t), (15.5)
gde co predstavlja krutost opruge, a cp koeficijent viskoznog trenja. Ovajednaqina predstavlja obiqnu linearnu diferencijalnu jednaqinu sa kon-stantnim koeficijentima drugog reda.
Zapa�anje 15.1. Matematiqki model mehaniqkog sistema sa slike 15.9 de-taljnije se razmatra u xesnaestom poglavlju.
15.2.1 Kreiranje Simulink modelaPre nego xto se bilo xta uradi u Simulinku, diferencijalna jednaqina
ponaxanja (15.5) �e se napisati u obliku koji je neophodan – rexi�e se ponajve�em izvodu izlazne veliqine. Kako je najve�i izvod izlazne veliqineXi njen drugi izvod, dobija se:
Xi(t) = −cpm
Xi(t)−comXi(t) +
1
mXu(t). (15.6)
Dakle, drugi izvod izlazne veliqine je jednak algebarskom zbiru nekihfunkcija, xto znaqi da �e u simulacionom modelu Xi(t) upravo biti izlaziz sabiraqa, u koji ulaze sve funkcije sa desne strane prethodne jedna-qine. Treba primetiti da se jednaqina rexava po Xi(t), a na desnoj stranisu tako�e nepoznate funkcije Xi(t) i Xi(t)). Postavlja se pitanje, kako do-biti te funkcije sa desne strane? Odgovor je: na osnovu ,,poznavanja” Xi(t)i qinjenice da se Xi(t) mo�e dobiti integracijom veliqine Xi(t), a Xi(t)
208 Simulacija dinamiqkih sistema
integracijom Xi(t). Dakle, pretpostavlja se da je poznata veliqina Xi(t),xto se predstavlja vertikalnom crtom u simulacionom modelu, i dodajuse dva integratora na red. Izlaz iz prvog integratora predstavlja sig-nal Xi(t), a izlaz iz drugog integratora veliqinu Xi(t). Sada je poznatakompletna desna strana jednaqine (15.6), uz pretpostavku da je promenaulazne veliqine Xu(t) uvek poznata. Slede�i prethodno opisani postupak,dobija se Simulink model prikazan na slici 15.10. S obzirom na zajed-
StepIntegrator1
1
s
Integrator
1
sGain1
1/m
Gain3
co/m
Gain2
cp/m
Xi(t) ..
Xi(t) .
Xi(t)Xu(t)
Clock
t
To Workspace1
xi
To Workspace
Scope
Slika 15.10: Simulink model mehaniqkog sistema masa-opruga-priguxivaq
niqki qlan 1/m u svim sabircima na desnoj strani jednaqine (15.6), onase mo�e napisati i u obliku:
Xi(t) =1
m
(−cpXi(t)− coXi(t) +Xu(t)
). (15.7)
za koju se dobija Simulink model kao na slici 15.11. Da bi se pokrenulasimulacija, neophodno je definisati sve konstante. To se mo�e uraditina dva naqina:
• unoxenjem konkretnih, brojqanih vrednosti u model, ili• pisanjem posebnog skripta, u kome �e se definisati sve konstante, i
izvrxavanjem tog skripta u radnom okru�enju Matlaba.Dakle, veliqine iz radnog okru�enja Matlaba su dostupne Simulinku,
i obratno. Prethodna qinjenica ukazuje da izbor da se radi u opxtimbrojevima ima za posledicu da se dobija u neku ruku univerzalni model,koji se mo�e pokrenuti sa razliqitim skupovima parametara, a bez ikakvemodifikacije samog Simulink modela.
Primer 15.1. Napraviti simulacioni model i izvrxiti simulacije radamehaniqkog sistema za slede�e vrednosti parametara:
m = 1, c0 = 10, cp = {0, 2, 8}.
242 Laplasova transformacija
naqava se i definixe na slede�i naqin:
x(t) = L−1 {X(s)} , x(t) =1
2πj
∫ c+jω
c−jω
X(s)estds, (17.3)
gde je c realna konstanta izabrana tako da je ve�a od apscise apsolutnekonvergencije funkcije x(t), a qija je Laplasova transformacija X(s).
17.3 Osobine Laplasove transformacije
Neke od osobina Laplasove transformacije koje imaju primenu u prouqa-vanju sistema automatskog upravljanja daju se u nastavku, a pod pretpostav-kom da postoje Laplasove transformacije svih funkcija koje u narednimizrazima figurixu.
• Laplasova transformacija je linearni operator:
L∓{ n∑
k=1
αkxk(t)
}=
n∑k=1
αkL∓ {xk(t)} .
• Ako je funkcija x(·) diferencijabilna k puta, onda va�i:
L∓{x(k)(t)
}= skX(s)−
k∑i=1
si−1x(k−i)(0), gde je x(k)(0) =dx(t)
dtk
∣∣∣∣t=0
.
• Ako je funkcija integrabilna, onda je
L{∫ t
0
x(t)dt
}=
1
sX(s).
• Laplasova transformacija funkcije sa kaxnjenjem xTk= x(t− Tk) je
L{x(t− Tk)} = e−TksX(s).
17.4 Laplasova transformacija u Matlabu
Laplasova transformacija se mo�e odrediti korix�enjem simboliqkogpaketa Matlaba i funkcije laplace() pozivom:
L=laplace(F )
gde je F simboliqki izraz koji predstavlja funkciju x(t) u (17.1), a L pred-stavlja njenu Laplasovu transformaciju. Podrazumevana nezavisna pro-menljiva je t, a rezultat je funkcija simboliqke promenljive s. Primenafunkcije laplace() ilustruje se u nastavku kroz nekoliko primera.
Primer 17.1. Odrediti Laplasove transformacije funkcija: f1(t) = 3t2,f2(t) = e−at i f3(t) = sin bt.
17.6 Hevisajdov razvoj u Matlabu 245
17.5.2 Funkcije sa vixestrukim polovimaU opxtem sluqaju funkcija X(s) ima jednostruke i vixestruke polove.
Pretpostavlja se da X(s) ima jedan pol s = s∗i reda νi > 1 (vixestrukostiνi > 1), i da su svi ostali polovi od X(s) jednostruki (ν1 = ν2 = . . . = νi−1 =νi+1 = . . . = νn = 1). Tada Hevisajdov razvoj od X(s) ima slede�i oblik:
X(s) = R0+R1
s− s∗1+ . . .+
Ri−1
s− s∗i−1
+Ri+1
s− s∗i+1
+ . . .+Rn
s− s∗n+
Ri1
(s− si)∗+
Ri2
(s− s∗i )2+ . . .+
Riνi
(s− s∗i )νi.
(17.7)
I ovde va�i da u sluqaju R0 = 0 treba X(s) zameniti sa X−(s).Koeficijenti Rij funkcije X(s) koji odgovaraju polu s∗i vixestrukosti
νi odre�eni su sa:
Rij =1
(νi − j)!
dνi−j
dsνi−j
[(s− s∗i )
νiφ(s)
f(s)
]∣∣∣∣s=s∗i
. (17.8)
Zapa�anje 17.1. U sluqaju degenerativne funkcije X (s) po�eljno je prvotu funkciju dovesti na njen nedegenerativni oblik skra�ivanjem svih jed-nakih nula i polova, pa tek onda pristupiti Hevisajdovom razvoju nedege-nerativnog oblika. Na ovaj naqin se znaqajno pojednostavljuju izraqunavanja.
17.6 Hevisajdov razvoj u Matlabu
Matlab poseduje funkciju za Hevisajdov razvoj funkcije X(s), to jestza njeno rastavljanje na parcijalne qinioce. Posmatra se funkcija X(s),koja se mo�e prikazati na slede�i naqin:
X(s) =φ(s)
f(s)=
bmsm + bm−1sm−1 + · · ·+ b1s+ b0
ansn + an−1sn−1 + · · ·+ a1s+ a0, (17.9)
gde neki od koeficijenata bi i ai mogu biti jednaki nuli. U Matlabu vek-tori vrste num i den odre�uju koeficijente brojioca i imenioca funkcijeX(s), to jest:
num = [bm bm−1 . . . b1 b0], den = [an an−1 . . . a1 a0].
Funkcija
[r,p,k]= residue(num,den)
odre�uje vektor koeficijenata r, vektor polova p i direktni qlan razvojak u parcijalne razlomke koliqnika dva polinoma φ(s)/f(s). Funkcija X(s)tada postaje
X(s) =φ(s)
f(s)=
r(1)
s− p(1)+
r(2)
s− p(2)+ . . .+
r(n)
s− p(n)+ k. (17.10)
246 Laplasova transformacija
Upore�uju�i jednaqine (17.5) i (17.10) oqigledna je slede�a veza:
r(1) = R1, r(2) = R2, . . . , r(n) = Rn,
p(1) = s∗1, p(2) = s∗2, . . . , p(n) = s∗n,
k = R0.
Va�no je uoqiti da ako postoji pol p(j) koji je reda ν (tj. vixestrukostiν), tada razvoj u parcijalne razlomke ukljuquje qlanove
r(j)
s− p(j)+
r(j + 1)
(s− p(j))2+ . . .+
r(j + ν − 1)
(s− p(j))ν.
Zapa�anje 17.2. U opxtem sluqaju, u Matlabu je mogu�e rastaviti u par-cijalne razlomke i racionalnu funkciju koja je koliqnik dva polinoma, gde jepolinom u brojiocu vixeg reda od polinoma u imeniocu. U tom sluqaju direk-tni qlan k je funkcija promenljive s, to jest k = k(s). S obzirom na to dau sistemima automatskog upravljanja diferencijalne jednaqine predstavlja-ju matematiqke modele realnih, fiziqkih sistema, i nije mogu�e da stepenpolinoma brojioca bude ve�i od stepena polinoma imenioca, u nastavku sene�e tretirati takvi sluqajevi.
Primer 17.3. Rastaviti na parcijalne razlomke funkciju kompleksne pro-menljive s:
X(s) =s3 + s2 − 2s− 9
s3 − 3s+ 2.
Rexenje: Izvrxavanjem slede�ih naredbi:
>> num = [1 1 -2 -9]; den = [1 0 -3 2];
>> [r,p,k] = residue(num,den)
r =
-1.0000
2.0000
-3.0000
p =
-2.0000
1.0000
1.0000
k =
1
dobija se
X(s) = 1− 1
s+ 2+
2
s− 1− 3
(s− 1)2.
Primer 17.4. Rastaviti na parcijalne razlomke funkciju kompleksne pro-menljive s:
X(s) =s2 + 4s+ 13
(2s2 + 12s2 + 20s+ 16)(s+ 3).
POGLAVLjE 18Predstavljanje linearnih sistema u Matlabu
Control System Toolbox omogu�ava da se modeli linearnih, stacionarnihsistema generixu i koriste kao objekti, koji se nazivaju LTI objekti. Todozvoljava da se linearnim sistemima mo�e manipulisati kao posebnim,jedinstvenim entitetima u Matlabu, a ne kao skupom vektora ili matrica.
LTI objekti
TF ZPK SS FRD
prenosna
funkcija
prostor
sta©a
frekventni
domen
Slika 18.1: LTI objekti u Matlabu
Podr�ani su svi standardni obli-ci matematiqkih modela, tj. prenosnafunkcija, opis sistema u prostorustanja, kao i frekventna karakteristi-ka. Prenosna funkcija kao LTI objektima dva svoja oblika, TF i ZPK ob-lik, koji se razlikuju po tome kakosu predstavljeni brojilac i imenilacprenosne funkcije. Za opis sistema uprostoru stanja koristi se SS objekt au frekventnom domenu FRD objekt.
18.1 Prenosna funkcija i prenosna matrica
Definicija 18.1. Funkcija W (s) je prenosna funkcija sistema ako i samoako je ona koliqnik levih Laplasovih transformacija X−
i (s) i X−u (s) njegove
izlazne i ulazne veliqine pri svim poqetnim uslovima jednakim nuli:
W (s) =X−
i (s)
X−u (s)
, x(k)u
(0−)= 0, k = 0, 1, · · · ,m−1; x
(k)i
(0−)= 0, k = 0, 1, · · · , n−1.
Prema tome, prenosna funkcija jednostruko prenosnog linearnog, sta-cionarnog sistema je u obliku koliqnika polinoma, tj. oblika racionalne
250 Predstavljanje linearnih sistema u Matlabu
funkcije kompleksne promenljive s:
W (s) =p(s)
q(s)=
bmsm + bm−1sm−1 + . . .+ b1s+ b0
ansn + an−1sn−1 + . . .+ a1s+ a0, m ≤ n. (18.1)
18.1.1 TF oblik prenosne funkcijeDa bi se formirao model u Matlabu, neophodno je brojilac i imeni-
lac prenosne funkcije, tj. polinome, predstaviti vektorima vrste qiji suelementi koeficijenti odgovaraju�eg stepena od s u polinomima, po opa-daju�em stepenu. Neka vektor num =
[bm bm−1 . . . b1 b0
]predstavlja
polinom brojioca, a vektor den =[an an−1 . . . a1 a0
]polinom imenioca
prenosne funkcije W (s). Naredbom
W=tf(num,den)
se generixe prenosna funkcija sistema (18.1).
Primer 18.1. Predstaviti u Matlabu sistem dat prenosnom funkcijom:
W (s) =p(s)
q(s)=
4s2 + 8s+ 5
s3 + 2s2 + 4s+ 8.
Rexenje: Brojilac i imenilac prenosne funkcije se mogu predstaviti vek-torima num =
[4 8 5
]i den =
[1 2 4 8
], sledstveno. Tada se prenosna
funkcija mo�e dobiti sa:
>> num = [4 8 5]; den = [1 2 4 8];
>> W = tf(num,den)
W =
4 s^2 + 8 s + 5
---------------------
s^3 + 2 s^2 + 4 s + 8
Continuous-time transfer function.
>> whos W
Name Size Bytes Class Attributes
W 1x1 1081 tf
Dakle, sistem postoji u radnom prostoru Matlaba kao LTI objekt u TFobliku prenosne funkcije.
Zapa�anje 18.1. Funkcija tf() se mo�e koristiti i tako xto se vektorikoji definixu polinome brojioca i imenioca direktno unose kao argumentifunkcije, bez definisanja posebnih vektorskih promenljivih. Prema tome,prethodna prenosna funkcija se mo�e dobiti i naredbom:
>> W = tf([4 8 5], [1 2 4 8])
Prenosna funkcija se mo�e definisati i direktno kao funkcija kom-pleksne promenljive s tako xto se s definixe kao TF model, a potom iprenosna funkcija kao racionalan izraz u funkciji od s. Na primer:
18.4 Blok dijagrami 269
)s(1W
)s(2W
)s(uX )s(iX
Slika 18.7: Paralelna sprega
)s(gW
)s(pW
)s(uX )s(iX
+_
Slika 18.8: Povratna sprega
Ako su u Matlabu definisane prenosne funkcije Wg(s) i Wp(s) svojimLTI objektima u formi prenosne funkcije Wg i Wp, sledstveno, tada seekvivalentna prenosna funkcija povratne sprege sa slike 18.8 mo�e dobitinaredbom
W =feedback(Wg,Wp, znak)
gde parametar znak ima vrednost znaka povratne sprege (+1 ili −1). Uko-liko je u pitanju negativna povratna sprega (xto je podrazumevana opci-ja), prethodna naredba se mo�e koristiti u obliku bez parametra znak,W = feedback(Wg,Wp).
Primer 18.14. Na�i prenosnu funkciju zatvorenog SAU qiji je blok dijagramprikazan na slici 18.9. Odrediti LTI objekt u Matlabu u formi prenosnefunkcije i odrediti njene nule i polove.
)s(uX )s(iX
+ 5)s(s
+ 2)s3(
+ 5s+ 42s
2
Slika 18.9: Blok dijagram sistema iz primera 18.14
Rexenje: Najpre se definixu podsistemi posmatranog sistema, tj. prenos-ne funkcije W1(s) i W2(s). Prenosna funkcija W1(s) je data u faktorizo-vanom obliku: ima jednu nulu, s0 = −2, dva pola s∗1 = 0 i s∗2 = −5, a pojaqanjeje k = 3, pa se mo�e definisati funkcijom zpk(). Prenosna funkcija W2(s)je data u razvijenom obliku polinoma u imeniocu, pa se mo�e definisatifunkcijom tf(). Ova dva sistema su povratno spregnuta, te se naredbama:
>> W1 = zpk(-2, [0 -5], 3); W2 = tf([2], [1 4 5]);
>> W = feedback(W1,W2)
W =
3 (s+2) (s^2 + 4s + 5)
-------------------------------------------
(s+5.312) (s+0.6638) (s^2 + 3.024s + 3.403)
19.2 Odre�ivanje odziva UI sistema 285
uslova, je vremenski odziv sistema, ili kra�e odziv sistema. U matemati-qkom smislu, odziv sistema predstavlja rexenje diferencijalne jednaqineponaxanja sistema. S obzirom na to da su UI sistemi opisani linearnimdiferencijalnim jednaqinama sa konstantnim koeficijentima, odziv sis-tema se mo�e odrediti primenom metode Laplasove transformacije. Pos-tupak bi se mogao prikazati na slede�i naqin:
1. diferencijalna jednaqina se transformixe u kompleksni domen pro-menljive s primenom Laplasove transformacije,
2. algebarska jednaqina u s domenu se rexi po izlaznoj promenljivoj, tojest odredi se njen kompleksni lik,
3. ukoliko je potrebno, kompleksni lik izlazne promenljive se razvija usumu parcijalnih razlomaka (Hevisajdov razvoj),
4. odziv se dobija primenom inverzne Laplasove transformacije pomo�utablica Laplasovih transformacija.
Primer 19.1. Odrediti odziv sistema opisanog diferencijalnom jednaqi-nom
xi(t) + 3xi(t) + 2xi(t) = 5xiz(t), za xiz(t) = h(t), xi(0−) = −1, xi(0
−) = 2.
Rexenje: Primenom Laplasove transformacije na diferencijalnu jedna-qinu ponaxanja sistema dobija se
s2X−i (s)− sxi(0)− xi(0) + 3sX−
i (s)− 3xi(0) + 2X−i (s) =
5
s,
pri qemu je iskorix�ena qinjenica da je L{h(t)} =1
s.
Zamenom poqetnih uslova u poslednju jednaqinu i njenim rexavanjem poizlaznoj promenljivoj X−
i (s) dobija se
X−i (s) =
−s2 − s+ 5
s(s2 + 3s+ 2)=
−s2 − s+ 5
s(s+ 1)(s+ 2).
Racionalna funkcija Xi(s) predstavljena je koliqnikom dva polinoma
X−i (s) =
φ(s)
f(s), gde su φ(s) = −s2 − s+ 5, f(s) = s3 + 3s2 + 2s.
Polovi funkcije X−i (s) su s∗1 = 0, s∗2 = −1 i s∗3 = −2 i oqito je da su oni
jednostruki, pa je njen Hevisajdov razvoj na parcijalne razlomke
X−i (s) = R0 +
R1
s+
R2
s+ 1+
R3
s+ 2.
286 Analiza linearnih sistema
S obzirom da je f ′(s) =df(s)
ds= 3s2 + 6s+ 2, rezidijumi u polovima su:
R1 =φ(s)
f ′(s)
∣∣s=s∗1
=−s2 − s+ 5
3s2 + 6s+ 2
∣∣∣∣s=0
=5
2,
R2 =φ(s)
f ′(s)
∣∣s=s∗2
=−s2 − s+ 5
3s2 + 6s+ 2
∣∣∣∣s=−1
= −5,
R3 =φ(s)
f ′(s)
∣∣s=s∗3
=−s2 − s+ 5
3s2 + 6s+ 2
∣∣∣∣s=−2
=3
2.
Kako je stepen polinoma φ(s) manji od stepena polinoma f(s), to je R0 = 0.Konaqno,
X−i (s) =
5
2s− 5
s+ 1+
3
2(s+ 2).
Primenom inverzne Laplasove transformacije na poslednju jednaqinu do-bija se
xi(t) = L−1
{X−
i (s)
}= L−1
{5
2s− 5
s+ 1+
3
2(s+ 2)
}.
Korix�enjem osobine Laplasove transformacije da je linearni operator,dobija se odziv posmatranog sistema:
xi(t) = L−1
{5
2s
}− L−1
{5
s+ 1
}+ L−1
{3
2(s+ 2)
}=[
5
2− 5e−t +
3
2e−2t
]h(t), t ≥ 0+.
Skript kojim se u Matlabu vrxi rastavljanje na parcijalne razlomke datje u nastavku.
syms s
num = [-1 -1 5]; den = [1 3 2 0];
[r,p,k] = residue(num,den)
Xis = r(1)/(s-p(1)) + r(2)/(s-p(2)) + r(3)/(s-p(3))
xi = ilaplace(Xis)
Dobijeni rezultati iz komandnog prozora Matlaba su:
R =
1.5000
-5.0000
2.5000
P =
-2
-1
0
K =
[]
300 Analiza linearnih sistema
Oblici poziva kao i znaqenje parametara u njima su identiqni onima upozivu funkcije step(), te stoga ovde ne�e biti ponavljani.
Primer 19.9. Odrediti impulsni odziv sistema
xi + 2xi + kxi = 3xu, xi(0−) = 0, xi(0
−) = 0
za k = 2 i k = 3. Impulsne odzive prikazati na istom grafiku.
Rexenje: S obzirom na to da su dati nulti poqetni uslovi, mo�e se isko-ristiti funkcija impulse() za dobijanje impulsnog odziva. U nastavku jekratak skript kojim se dobija rexenje prikazano na slici 19.10.
num = 3; den1 = [1 2 2]; den2 = [1 2 3];
sys1 = tf(num,den1); sys2 = tf(num,den2);
impulse(sys1,'-b',sys2,'--r')
title('Impulsni odziv sistema'), legend('k=2','k=3'), grid
xlabel('$t [s]$','Interpreter','Latex')
ylabel('$x_{i1}, x_{i2}$','Interpreter','Latex')
0 1 2 3 4 5 6 7 8-0,2
0
0,2
0,4
0,6
0,8
1Impulsni odziv sistema
k=2
k=3
t [s]
2i
,x
1i
x
Slika 19.10: Impulsni odziv sistema iz primera 19.9
19.4.3 Odre�ivanje odziva sistema na proizvoljan ulazZa dobijanje odziva sistema na proizvoljnu promenu ulaza mo�e se ko-
ristiti funkcija lsim(), qiji je osnovni oblik poziva:
lsim(sys,u, t)
Ovakvim pozivom, bez izlaznih argumenata, funkcija grafiqki prika-zuje odziv sistema. Vektor t predstavlja vektor vremenski ekvidistantnihtrenutaka simulacije, oblika t = 0 : dt : tf , gde je tf krajnje vreme simu-lacije. Ulaz u je niz koji ima onoliko vrsta koliko vremenskih trenutaka
19.4 Numeriqka analiza linearnih sistema 305
initial(sys,x0,t)
kada koristi unapred definisani vektor vremenskih trenutaka t. U svimnavedenim sluqajevima, bez izlaznih argumenata, funkcija generixe gra-fiqki prikaz odziva. Dodavanjem povratnih vrednosti funkcije:
[xi,t,x]=initial(...)
za sve prethodne sluqajeve, funkcija vra�a vektor izlaza xi i vektor stanjax, kao i sam vektor vremenskih trenutaka t. Tada je za dobijanje grafiqkogprikaza neophodno koristiti funkciju plot(). Treba napomenuti da, sobzirom da se koristi za model opisan u prostoru stanja, dakle LTI objekttipa SS, to funkcija dozvoljava i da se pozove direktno sa matricama A,B, C i D, na primer kao:
[xi,t,x]=initial(A,B,C,D,x0)
Primer 19.13. Za sistem opisan diferencijalnom jednaqinom ponaxanja
...x i + 7xi + 14xi + 8xi = 5xu
odrediti model u prostoru stanja. Za xu(t) = 0 i xi(0) = 2, xi(0) = 1 ixi(0) = 0, 5 odrediti kretanje i odziv sistema.
Rexenje: Izborom faznih veliqina stanja x1 = xi, x2 = xi i x3 = xi dobijajuse skalarne jednaqine stanja i jednaqina izlaza:
x1 = x2,
x2 = x3,
x3 = −8x1 − 14x2 − 7x3 + 5xu,
xi = x1.
Kako se zahteva kretanje i odziv sistema u slobodnom radnom re�imu (zaxu(t) = 0), prethodne jednaqine koje opisuju sistem se svode na
x1 = x2,
x2 = x3,
x3 = −8x1 − 14x2 − 7x3,
xi = x1,
odakle su matrice
A =
0 1 00 0 1−8 −14 −7
, B =
000
, C =[1 0 0
], D = 0,
a poqetni uslovi su x1(0) = 2, x2(0) = 1 i x3(0) = 0, 5. Slede�i skript semo�e iskoristiti za odre�ivanje kretanja i odziva sistema u Matlabu.