Elektroenergetska omrežja Uvod v MATLAB Ljubljana, 2014 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Stran: 2 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Kazalo KAZALO ..................................................................................................................................... 3 1. UVOD V MATLAB.............................................................................................................. 4 1.1 Kako pognati program MATLAB ............................................................................................4 1.2 M-datoteke............................................................................................................................5 1.2.1 Kako odpreti in zagnati M-datoteko? ............................................................................5 1.3 Prireditev vrednosti ...............................................................................................................6 1.3.1 Skalarji in kompleksna števila ........................................................................................6 1.3.2 Vektorji in matrike..........................................................................................................6 1.4 Operatorji in osnovne matematične funkcije .......................................................................7 1.4.1 Aritmetični operatorji .....................................................................................................7 1.4.2 Osnovne matematične funkcije .....................................................................................7 1.4.3 Trigonometrične funkcije ...............................................................................................8 1.4.4 Logični operatorji ...........................................................................................................8 1.5 Zaokroževanje .......................................................................................................................9 1.6 Manipulacije z matrikami in vektorji ...................................................................................10 1.6.1 Delo s členi vektorjev....................................................................................................10 1.6.2 Delo s členi, vrsticami, stolpci in podmatrikami matrik ...............................................11 1.6.3 Osnovne matematične operacije z vektorji in matrikami ............................................11 1.6.4 Vgrajene matrične operacije ........................................................................................12 1.7 2D grafi ................................................................................................................................14 1.8 Pogojni stavki ......................................................................................................................16 1.9 Odprtokodne alternative MATLAB-u ..................................................................................18 Stran: 3 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje 1. Uvod v MATLAB Programski paket MATLAB je izdelek podjetja MathWorks. MATLAB je moderno programsko orodje za numerično reševanje problemov. Razvijati so ga pričeli v univerzitetnem okolju in je šele kasneje postal širše dostopen komercialni produkt. Program je napisan tako, da omogoča enostavno izvajanje matričnih operacij, reševanje diferencialnih enačb z numerično integracijo, grafični prikaz rezultatov vključno z animacijami. Edina podatkovna struktura MATLAB-a je kompleksna matrika. Najenostavnejši način podajanja matrik je eksplicitni, to je način, ko priredimo imenu matrike seznam elementov, ki so ločeni s presledki ali vejicami. Od tod tudi ime MATLAB (matrični laboratorij). V tako imenovanih M-datotekah lahko zapišemo lasten program. Vsako tako napisano datoteko lahko obravnavamo kot novo funkcijo in jo uporabljamo na enak način kot že vgrajene funkcije. Z združevanjem M-datotek (funkcij) lahko vsakdo ustvari obsežno orodje za namensko uporabo. 1.1 Kako pognati program MATLAB MATLAB ima ob zagonu lahko različen izgled in ga sestavlja eno ali več oken. MATLAB namreč omogoča da ga priredimo po lastnih potrebah in nato se izbrana nastavitev ohrani tudi ob naslednjem zagonu. Ob zagonu se zato lahko odpre eno ali več oken. Najpogosteje so to okna Command Window, Launch Pad in Command History lahko pa tudi okna Current Directory,Workspace in Help. Osnovno nastavitev prikličemo s klikom v meniju Home/Layout/Default. Velikokrat se zgodi, da je ob prvem zagonu pisava izredno majhna. To spremenimo s klikom na Home/Preferences/Fonts, kjer si izberemo želeno pisavo. Slika 1.1: Programsko okolje MATLAB Stran: 4 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Oglejmo si malce bolj podrobno glavna okna: Command Window je glavno okno MATLAB-a v katerega lahko neposredno vpisujemo ukaze. Delo v njem je priporočljivo le za reševanje enostavnih problemov in za hitre izračune. Za ponoven izračun z drugačnimi vhodnimi podatki je namreč potrebno vse ukaze še enkrat napisati. Slika 1.2: Glavno okno – Command Window Command History prikazuje staro vsebino okna Command Window. Current Directory prikaže delovno mapo s seznamom vseh *.m datotek in *.mdl datotek (Simulink sheme), ki se nahajajo v njem. Workspace podaja sezam, tip in dimenzijo vseh spremenljivk, definiranih v delovnem prostoru. 1.2 M-datoteke So datoteke v katerih so lahko zapisani uporabniški programi in že izdelani programi (v okviru osnovnega MATLABA-a ali njegovih orodij). V M-datoteko torej lahko zapišemo svoj program. Iz M-datoteke lahko kličemo tudi druge M-datoteke. 1.2.1 Kako odpreti in zagnati M-datoteko? Novo M-datoteko odpremo v meniju Editor/New/Script. Odpre se novo okno z MATLAB-ovim urejevalnikom besedil v katerega napišemo program. Za pisanje M-datotek lahko uporabimo tudi katerikoli drug urejevalnik besedil kot npr. beležnico. MATLAB-ov editor lahko odpremo tudi brez zagona MATLAB-a. Že obstoječo datoteko odpremo tako, da v MATLAB-ovem oknu v meniju izberemo File/Open in nato poiščemo iskano datoteko. M-datoteko shranimo s končnico .m. Če delamo z MATLAB-ovim urejevalnikom se ta končnica doda avtomatsko, če pa uporabljamo kakšen drug urejevalnik pa jo je potrebno dodati. Ime datoteke ne sme vsebovati šumnikov in presledkov. Stran: 5 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Program zapisan v M-datoteki poženemo tako, da pritisnemo ikono Editor/Run ali s klikom na F5. Program je potrebno predhodno shraniti in če tega nismo storili, nas MATLAB avtomatsko prosi, da ga shranimo. Prav tako poda zahtevo po spremembi delovne mape in praktično vedno pritisnemo »Change Folder«. Če želimo pognati samo del programa, označimo želeno kodo in pritisnemo F9. Če smo v programu omogočili izpis rezultatov (to pomeni da se ustrezne vrstice ne zaključijo s podpičjem) vidimo rezultate v delovnem oknu. Na začetku vsakega programa po navadi zapišemo tri ukaze, to so clc – pobriše vsebino glavnega okna. clear all – izbriše vse predefinirane spremenljivke in close all – zapre vsa grafična okna. 1.3 Prireditev vrednosti 1.3.1 Skalarji in kompleksna števila Decimalna števila se vpisujejo s piko. V MATLAB odtipkajte naslednjo kodo in interpretirajte rezultate: a b c d e f g = = = = = = = 10 20; 1.07 5e-4 5*10^5 3 + i*1 1 - j 1.3.2 Vektorji in matrike Vrstični vektor vpišemo v oglatih oklepajih, člene vektorja med seboj ločimo z vejico ali presledkom x = [1,2,3]. Stolpčni vektor vpišemo v oglatih oklepajih, njegove člene pa ločimo s podpičji x=[4;3;2;1]. Vektor z enakomerno naraščajočimi/padajočimi členi generiramo na sledeči način x=1:0.2:2. Matriko vpišemo tako, da vrstice ločimo s podpičjem, člene v vrstici pa z vejico ali presledkom A = [1,2,3;4,5,6;7,8,9]. x=[x1, x2, x3 ,..] Vpis vrstičnega vektorja. y=[y1; y2; y3; y4; ..] Vpis stolpčnega vektorja x=x_začetni : korak : x_končni Avtomatsko generiranje vektorja A = [A11, A12, A13,.. ; A21, A22, A23,.. ; Vpis matrike A31, A32, A33,..;..] Stran: 6 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje V MATLAB odtipkajte naslednjo kodo in interpretirajte rezultate: % a b c d e A Za komentiranje zapišemo znak »%« pred vsako vrstico = [1,2,3,4] = [1 2 3 4] = [1; 2; 3; 4] = 1:10 = 1:0.5:10 = [1 2 3; 4 5 6; 7 8 9] % Transponirajmo vektor a: a_transponiran = a' % Izračunajmo inverzno matriko matrike A inv_A = A^-1 % Inverzno matriko A lahko izračunamo tudi z uporabo funkcije inv() inv_A = inv(A) % Izračun inverzne matrike na način 1/A je napačen! 1.4 Operatorji in osnovne matematične funkcije 1.4.1 Aritmetični operatorji +, - seštevanje,odštevanje *, / množenje, deljenje ^ potenca sqrt(x) kvadratni koren \ levo deljenje 1.4.2 Osnovne matematične funkcije exp(x) Eksponentna funkcija ex log(x) Naravni logaritem log10(x) Desetiški logaritem abs(x) Absolutna vrednost Stran: 7 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje 1.4.3 Trigonometrične funkcije Argumenti (koti) se podajajo v radianih. Vrednost konstante v izrazih: cos (x) Kosinus kota sin(x) Sinus kota tan (x) Tangens kota acos(x) Inverzni kosinus asin(x) Inverzni sinus atan(x) Inverzni tangens sinh(x) Hiperbilični sinus cosh(x) Hiperbolični kosinus tanh(x) Hiperbolični tangens je vgrajena in jo lahko uporabljamo 1.4.4 Logični operatorji Se uporabljajo predvsem kot argumenti v pogojnih stavkih: ~ negacija ~= ni enako == ekvivalentno < manjše <= manjše ali enako > večje >= večje ali enako & logični in | logični ali ~ komplement Stran: 8 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje V MATLAB odtipkajte naslednjo kodo in interpretirajte rezultate: a =10; b =20; c = a + b d = a - b e = a * b f = a / b g = a \ b h = a ^ 2 i=exp(1) j=exp(2) % Sedaj ne i ne j nista več kompleksni števili, saj smo jima priredili % določeno vrednost. Če želimo poenostaviti njune vrednosti, to % naredimo z ukazom clear: clear i j % Ne pozabite kako je potrebno vnašati kote kadar računamo s kotnimi % funkcijami - radiane ali stopinje. Ponovite kako se pretvori iz stopinj % v radiane in obratno! sin(1) sin(pi) sqrt(2) % kvadratni koren 27^(1/3) % kubični koren log(exp(1)) % naravni logaritem log10(10) % desetiški logaritem 7/0 % deljenje z ničlo Inf + Inf % 1 3 3 3 Logični operatorji (vrnejo 0 ali 1): == 2 ~= 2 > 3 >= 3 1.5 Zaokroževanje Za zaokroževanje rezultatov uporabljamo ukaze fix, floor, ceil, round. fix(x) Z aokrožitev navzdol na celo število round(x) Zaokrožitev na najbližje celo število floor(x) Zaokrožitev na najbližje celo število, proti minus neskončno ceil (x) Zaokrožitev na najbližje celo število, proti neskončnosti Stran: 9 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje V MATLAB odtipkajte naslednjo kodo in interpretirajte rezultate: floor(-4.8) floor(4.8) fix(-4.8) fix(4.8) ceil(4.8) ceil(4.2) ceil(-4.8) Manipulacije z matrikami in vektorji 1.6 Nekaj osnovnih pravil za manipulacije z vektorji in matrikami: Z vejico ločimo člene v stolpcu, z dvopičjem preidemo v novo vrstico. Pri delu z matrikami, oziroma členi matrik, se prvo število v oklepaju nanaša na vrstico, drugo na stolpec. A(i,j) tako pomeni i to vrstico in j-ti člen v vrstici Če delamo s celim stolpcem ali vrstico, nadomestimo številko člena z dvopičjem. A(i,:) tako pomeni i-to vrstico in je torej vrstični vektor, A(:,j) pomeni vse člene v j-tem stolpcu in je stolpčni vektor. Če bomo priredili vrednost nekega člena matriki, ki še ni definirana, bodo imeli ostali členi matrike vrednost 0. Če npr. uporabimo ukaz C(3,4) = 10 in matrike C še ni, bo generirana matrika C dimenzije 3x4, ki bo imela člen C(3,4) = 10, vsi ostali členi pa bodo nič. Pri dodajanju členov matriki je potrebno paziti na dimenzijo. Tako lahko matriki dodamo le stolpec, ki ima toliko členov kot ima matrika vrstic ali vrstico, ki ima toliko členov kot ima matrika stolpcev. 1.6.1 Delo s členi vektorjev xi=x(i) Branje i-tega člena vektorja x(i)=xi Prirejanje vrednosti i-temu členu vektorja x=[x, a1, a2, a3,..] Dodajanje členov a1,a2,... vrstičnem vektorju x=[x; a1; a2; a3,..] Dodajanje členov a1,a2,... stolpčnem vektorju Stran: 10 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje 1.6.2 Delo s členi, vrsticami, stolpci in podmatrikami matrik Aij=A(i,j) Branje člena matrike a=A(:,j) Branje j-tega stolpca matrike a=A(i,:) Branje i-te vrstice matrike B=A(i:j,k:l) Branje podmatrike A(i,j)=Aij Prirejanje nove vrednosti členu matrike A(:,i)=[Ai1; Ai2; Ai3;...] Prirejanje nove vrednosti stolpcu matrike A(i,:)=[A1i, A2i, A3i,...] Prirejanje nove vrednosti vrstici matrike A(:,j)=[] Brisanje stolpca iz matrike A(i,:)=[] Brisanje vrstice iz matrike C=[A,x] Dodajanje stolpca matriki C=[A;y] Dodajanje vrstice matriki 1.6.3 Osnovne matematične operacije z vektorji in matrikami MATLAB omogoča dva tipa operacij med vektorji in matrikami. Prvi način je takšen kot ga poznamo z matematike, npr. množenje dveh matrik. Drug način pa je bolj splošen in omogoča tudi operacije po elementih, npr. množenje istoležnih členov dveh matrik. Ta možnost izhaja iz dejstva, da MATLAB temelji na uporabi polj (array), matrike pa so samo posebna oblika teh polj s posebej definiranimi (matričnimi in vektorskimi) operacijami. Oba tipa operacij sta opisana spodaj. A (+, -, *, /) a Prištevanje /odštevanje/množenje/deljenje vseh členov matrike ali vektorja s skalarjem. A*y Množenje matrike z vektorjem. A (+, -, *, /) B Prištevanje /odštevanje/množenje/deljenje matrike z matriko. A ( .*, . /) B Množenje/deljenje matrike z matriko po členih. a (+, -, *, /) b Prištevanje /odštevanje/množenje/deljenje vektorja z vektorjem. a (. *, . /) b Množenje/deljenje vektorja z vektorjem po členih. A' Transponiranje vektorja ali matrike. Prištevanje/odštevanje/množenje/deljenje matrike ali vektorja s skalarjem: Vsakemu členu matrike ali vektorja lahko prištejemo/odštejemo vrednost skalarja a oziroma jih z a delimo/množimo z ukazi A+a , A-a , A*a , A/a . Stran: 11 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Množenje matrike z vektorjem: Matriko A z vektorjem y pomnožimo z ukazom A*y. y mora biti stolpčni vektor dimenzije, ki je enaka številu stolpcev matrike A. Prištevanje/odštevanje/množenje/deljenje matrike z matriko: Prišteti in odšteti je možno le matrike enakih dimenzij. Operacija se izvrši člen s členom. Pomnožimo (matrično množenje) lahko le matriki, kjer ima prva enako število stolpcev kot druga vrstic. Delimo lahko le matriki, ki imata enako število stolpcev. Množenje/deljenje matrike z matriko po členih: Operacijo lahko izvajamo samo na matrikah enakih dimenzij. Operacijo po členih označimo s piko pred operatorjem, npr. operator za množenje po členih je (.*). Zmnožijo/delijo se istoležni členi v matrikah (torej ne gre za množenje matrik, kot ga poznamo iz matematike). Prištevanje /odštevanje/množenje/deljenje vektorja z vektorjem: Prišteti/odšteti/deliti je možno le vektorje enakih dimenzij. Pri tem se operacija izvede na istoležnih členih. Množenje/deljenje vektorja z vektorjem po členih: Operacijo po členih označimo s piko pred operatorjem, npr. operator za množenje po členih je (.*). Zmnožijo/delijo se istoležni členi v vektorjih (torej ne gre za množenje vektorjev, kot ga poznamo iz matematike). Transponiranje: Matriko oziroma vektor transponiramo z ukazom A', oziroma y'. 1.6.4 Vgrajene matrične operacije sum(x) Vsota členov vektorja ali stolpca matrike max(x) Največji člen vektorja ali stolpca matrike inv(A) Inverzna matrika rank(A) Rang matrike det(A) Determinanta matrike eig(A) Lastne vrednosti matrike poly(A) Koeficienti karakterističnega polinoma norm(A) Norma matrike ali vektorja Stran: 12 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje V MATLAB odtipkajte naslednjo kodo in interpretirajte rezultate: A = [1 2 3; 4 5 6; 7 8 9] A' % Transponiranje matrike A + 10 A / 10 % Pozorno opazujte razliko med * in .* A * A A .* A [5 5 5] * A [5 5 5] .* A % Branje členov A(:,1) A(1,:) A(end,2) A(2:3,3) % drugi in tretji člen tretjega stolpca % Matriki spreminjamo člene A(3,2) = 0 A(:,3) = 1 A = [A A] % matriki dodamo matriko in jih združimo v eno b(1:5) = 1 b = [b 6] % vektorju dodamo še en člen c = b' % c je transponiran vektor b c (2:4) = 2 c .* c c * c c * b % % % % Ponovite operacije z matrikami: - kdaj lahko množimo in kdaj ne - inverzne matrike - pri množenju matrik je pomembno zaporedje! length(b) % izpis dolžine vektorja size(A) % izpis dimenzij matrike Stran: 13 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje 1.7 2D grafi Za izris, opremljanje osnovnih 2D grafov in delo z njimi uporabljamo naslednje ukaze: figure(i) Odpre grafično okno številka i. plot(x,y,x1,y1,x2,y2,..) V okno izriše x,y graf. title('Naslov') Graf opremi z naslovom. xlabel('Oznaka na X osi') X os opremi z oznako. ylabel('Oznaka na Y osi') Y os opremi z oznako. grid V graf nariše mrežo. axis([Xmin, Xmax, Ymin,Ymax]) Določitev območja X in Y osi grafičnega okna.. hold on Zadrži trenutno sliko v grafičnem oknu, tako da lahko kasneje dodamo še več potekov. legend ('Prvi graf', 'Drugi graf','..) V grafično okno z več poteki doda legendo. subplot(2,2,1) , plot(x1,y1) Grafično okno razdeli v 4 podokna (2x2), V prvo nariše graf (x1,y1) close all Zapre vsa grafična okna Ukaz figure: Z ukazom figure(i) se odpre i-to grafično okno. Ta ukaz je potrebno uporabiti zmeraj, ko želimo narisati graf v novo okno, to je pred ukazom plot. V primeru ko tega ukaza ne uporabimo se graf nariše v zadnje odprto grafično okno. Stara vsebina tega okna se (razen če smo uporabili ukaz hold on) izbriše. Če še ni odprto nobeno grafično okno in uporabimo ukaz plot, se avtomatsko odpre. Ukaz plot: XY graf izrišemo torej z ukazom plot(x,y) . X in Y morata biti vektorja enake dolžine. V primeru če je eden vektor stolpčni drugi pa vrstica je potrebno enega izmed njiju transponirati. Namesto vektorjev x i n y lahko vpišemo v ukaz plot tudi kakšen izraz, npr. plot(t,cos(t)) . Če želimo v grafično okno izrisati istočasno več grafov v ukazu plot navedemo x , y pare po vrsti, npr. plot(x,y,x1,y1,x2,y2). Vsak potek se izriše s svojo barvo. Stran: 14 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Preizkusimo do sedaj prikazane ukaze na enostavnih primerih. Odtipkajte vsak odstavek v MATLAB in opazujte razliko na grafu: x=-10:10; % najprej definirajmo vektor od -10 do 10 s korakom 1 figure(1) plot(sin(x)) xlabel('vodoravna os') ylabel('navpicna os') % Vidimo, da je korak prevelik. Zmanjšajmo korak in izrišimo še enkrat: x=-10:0.1:10; figure(2) plot(sin(x)) xlabel('vodoravna os') ylabel('navpicna os') % Na sliki 2 želimo, da gre x os od -10 do 10 in ne od 1 do konca dolžine % vektorja x figure(3) plot(x,sin(x)) xlabel('vodoravna os') ylabel('navpicna os') % Izris dveh slik na enem grafu figure(4) hold on plot(x,sin(x),'red') plot(x,sin(x+pi/2),'green') xlabel('vodoravna os') ylabel('navpicna os') % namesto črte lahko za vsako točko izrišemo različne simbole figure(5) hold on plot(x,sin(x),'*') plot(x,sin(x+pi/2),'r+') xlabel('vodoravna os') ylabel('navpicna os') % omejimo x os od 0 do 2*pi in y od od -1 do 1 in dodamo mrežo figure(6) hold on grid on plot(x,sin(x)) xlabel('vodoravna os') ylabel('navpicna os') axis([0 2*pi -1 1]) Stran: 15 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje % dodajmo legendo figure(7) hold on grid on plot(x,sin(x),'yellow') plot(x,sin(x+pi/2)) xlabel('vodoravna os') ylabel('navpicna os') legend('sin(x)','sin(x+pi/2)',4) axis([0 2*pi -1.5 1.5]) title('To je naslov') % Še en zahtevnejši graf: figure(10) hold on grid on spodnja_meja(1:length(x))=-1; zgornja_meja(1:length(x))=1; plot(x,sin(x),'green') plot(x,sin(x+pi/2)) plot(x,spodnja_meja,'r','LineWidth',2) plot(x,zgornja_meja,'r','LineWidth',2) ylabel('\itNapetost \rm / U') xlabel('\itČas \rm / 24ur') % "\it" pomeni posevno, "\rm" pa pokoncno legend('sin(x)','sin(x+pi/2)',4) title('naslov grafa') axis([0 2*pi -1.5 1.5]) 1.8 Pogojni stavki if Pogojni stavek for zanka Zanka z določenim številom ponovitev while zanka Zanka z logičnim pogojem switch Pogojni skoki break Skok iz zanke ali pogojnega stavka Stran: 16 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje Ukaz if: Ukazi napisani v okviru pogojnega stavka se izvedejo če je izpolnjen podan logični pogoj. Splošna oblika if stavka je naslednja: if pogoj1 stavki1; elseif pogoj2 stavki2; else stavki3; end V primeru če je izpolnjen pogoj1 se torej izvedejo stavki1 . Sicer se preveri pogoj2 in če je izpolnjen ta, se izvedejo stavki2 . Če nista izpolnjena ne pogoj1 ne pogoj2 se izvedejo stavki3 . Seveda lahko v if stavku nastopa še več elseif pogojev, pa tudi else stavek ni nujen. If stavke je možno tudi gnezditi. Pri pisanju pogojev uporabljamo logične operatorje <, >=, >=, ~=, = =. Ukaz for: Z ukazom for generiramo zanko, ki se bo izvedla tolikokrat, kot smo določili. Splošna oblika for zanke je naslednja: for stevec = zacetni:korak:koncni, stavki; end Število ponovitev je torej določeno z začetno in končno vrednostjo števca ter korakom s katerim se števec povečuje. Stran: 17 Katedra za elektroenergetska omrežja in naprave Elektroenergetski elementi - vaje V MATLAB odtipkajte naslednjo kodo in interpretirajte rezultate: b = 0; for i = 1 : 10 b = b + 1; end b b = 0; for i = 1 : 10 b = b + 1; if b == 5 break end end b c = [10 5 11 3 20 55]; for i =1:length(c) d(i)= 10*c(i); end d % vse člene v vektorju d, ki so večji ali enaki 100, damo na nič: for i = 1 : length(d) if d(i) >= 100 d(i) = 0; end end d 1.9 Odprtokodne alternative MATLAB-u Octave je odprtokodni računalniški program za numerične matematične izračune. Večinoma je združljiv s programom MATLAB. Je brezplačna alternativa MATAB-u. Omogoča tudi podporo Matpower-ju. V praksi lahko torej izdelamo povsem enake optimizacijske programe in simulacije kot v MATLAB-u. Delo pa je oteženo, ker Octave nima grafičnega vmesnika Stran: 18
© Copyright 2024