univerzitet u beogradu maxinski fakultet

59

Upload: others

Post on 20-Nov-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Univerzitet u Beogradu Maxinski fakultet
Page 2: Univerzitet u Beogradu Maxinski fakultet

Univerzitet u BeograduMaxinski fakultet

Matlab i Simulinku automatskom upravljanju

Radixa �. Jovanovi�

Beograd, 2016.

Page 3: Univerzitet u Beogradu Maxinski fakultet

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.

Page 4: Univerzitet u Beogradu Maxinski fakultet

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

Page 5: Univerzitet u Beogradu Maxinski fakultet

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

Page 6: Univerzitet u Beogradu Maxinski fakultet

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

Page 7: Univerzitet u Beogradu Maxinski fakultet

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

Page 8: Univerzitet u Beogradu Maxinski fakultet

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

Page 9: Univerzitet u Beogradu Maxinski fakultet

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

Page 10: Univerzitet u Beogradu Maxinski fakultet

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

Page 11: Univerzitet u Beogradu Maxinski fakultet

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

Page 12: Univerzitet u Beogradu Maxinski fakultet

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

Page 13: Univerzitet u Beogradu Maxinski fakultet

x

Page 14: Univerzitet u Beogradu Maxinski fakultet

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

Page 15: Univerzitet u Beogradu Maxinski fakultet

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�

Page 16: Univerzitet u Beogradu Maxinski fakultet

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

Page 17: Univerzitet u Beogradu Maxinski fakultet

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,

Page 18: Univerzitet u Beogradu Maxinski fakultet

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-

Page 19: Univerzitet u Beogradu Maxinski fakultet

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.

Page 20: Univerzitet u Beogradu Maxinski fakultet

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

Page 21: Univerzitet u Beogradu Maxinski fakultet

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,

Page 22: Univerzitet u Beogradu Maxinski fakultet

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)

Page 23: Univerzitet u Beogradu Maxinski fakultet

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-

Page 24: Univerzitet u Beogradu Maxinski fakultet

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-

Page 25: Univerzitet u Beogradu Maxinski fakultet

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.

Page 26: Univerzitet u Beogradu Maxinski fakultet

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.

Page 27: Univerzitet u Beogradu Maxinski fakultet

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

Page 28: Univerzitet u Beogradu Maxinski fakultet

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.

Page 29: Univerzitet u Beogradu Maxinski fakultet

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

Page 30: Univerzitet u Beogradu Maxinski fakultet

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

Page 31: Univerzitet u Beogradu Maxinski fakultet

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.

Page 32: Univerzitet u Beogradu Maxinski fakultet

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)

Page 33: Univerzitet u Beogradu Maxinski fakultet

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

Page 34: Univerzitet u Beogradu Maxinski fakultet

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.

Page 35: Univerzitet u Beogradu Maxinski fakultet

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

Page 36: Univerzitet u Beogradu Maxinski fakultet

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

Page 37: Univerzitet u Beogradu Maxinski fakultet

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.

Page 38: Univerzitet u Beogradu Maxinski fakultet

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.

Page 39: Univerzitet u Beogradu Maxinski fakultet

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

Page 40: Univerzitet u Beogradu Maxinski fakultet

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.

Page 41: Univerzitet u Beogradu Maxinski fakultet

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)

Page 42: Univerzitet u Beogradu Maxinski fakultet

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)

Page 43: Univerzitet u Beogradu Maxinski fakultet

162 Numeriqko rexavanje obiqnih diferencijalnih jednaqina

it +1it t

h

ix

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)

Page 44: Univerzitet u Beogradu Maxinski fakultet

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

Page 45: Univerzitet u Beogradu Maxinski fakultet

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

Page 46: Univerzitet u Beogradu Maxinski fakultet

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,

Page 47: Univerzitet u Beogradu Maxinski fakultet

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.

Page 48: Univerzitet u Beogradu Maxinski fakultet

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)

Page 49: Univerzitet u Beogradu Maxinski fakultet

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

Page 50: Univerzitet u Beogradu Maxinski fakultet

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.

Page 51: Univerzitet u Beogradu Maxinski fakultet

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)

Page 52: Univerzitet u Beogradu Maxinski fakultet

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

Page 53: Univerzitet u Beogradu Maxinski fakultet

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

Page 54: Univerzitet u Beogradu Maxinski fakultet

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:

Page 55: Univerzitet u Beogradu Maxinski fakultet

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)

Page 56: Univerzitet u Beogradu Maxinski fakultet

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.

Page 57: Univerzitet u Beogradu Maxinski fakultet

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 =

[]

Page 58: Univerzitet u Beogradu Maxinski fakultet

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

Page 59: Univerzitet u Beogradu Maxinski fakultet

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.