68
UNIVERZA V MARIBORU FAKULTETA ZA STROJNIŠTVO Rok TUMPEJ OPTIMIZACIJA RAVNINSKIH PALIČNIH KONSTRUKCIJ Z UPORABO GENETSKIH ALGORITMOV Diplomsko delo univerzitetnega študijskega programa 1. stopnje Strojništvo Maribor, september 2017

UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

UNIVERZA V MARIBORU

FAKULTETA ZA STROJNIŠTVO

Rok TUMPEJ

OPTIMIZACIJA RAVNINSKIH PALIČNIH KONSTRUKCIJ Z

UPORABO GENETSKIH ALGORITMOV

Diplomsko delo

univerzitetnega študijskega programa 1. stopnje

Strojništvo

Maribor, september 2017

Page 2: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

OPTIMIZACIJA RAVNINSKIH PALIČNIH KONSTRUKCIJ Z

UPORABO GENETSKIH ALGORITMOV

Diplomsko delo

Študent: Rok TUMPEJ

Študijski program: univerzitetni študijski program 1. stopnje Strojništvo

Smer: Konstrukterstvo

Mentor: izr. prof. dr. Marko KEGL

Somentor: doc. dr. Boštjan HARL

Maribor, september 2017

Page 3: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta
Page 4: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

II

I Z J A V A

Podpisani ____Rok Tumpej________, izjavljam, da:

• je diplomsko delo rezultat lastnega raziskovalnega dela,

• predloženo delo v celoti ali v delih ni bilo predloženo za pridobitev kakršnekoli izobrazbe

po študijskem programu druge fakultete ali univerze,

• so rezultati korektno navedeni,

• nisem kršil-a avtorskih pravic in intelektualne lastnine drugih,

• soglašam z javno dostopnostjo diplomskega dela v Knjižnici tehniških fakultet ter

Digitalni knjižnici Univerze v Mariboru, v skladu z Izjavo o istovetnosti tiskane in

elektronske verzije zaključnega dela.

Maribor,_____________________ Podpis: ________________________

Page 5: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

III

ZAHVALA

Zahvaljujem se mentorju izr. prof. dr. Marku Keglu in

somentorju doc. dr. Boštjanu Harlu za pomoč in

vodenje pri opravljanju diplomskega dela.

Posebna zahvala velja staršem, ki so mi omogočili

študij.

Page 6: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

IV

OPTIMIZACIJA RAVNINSKIH PALIČNIH KONSTRUKCIJ Z UPORABO GENETSKIH

ALGORITMOV

Ključne besede: metoda končnih elementov, palične konstrukcije, linijski nosilci, optimizacija

oblike, genetski algoritmi, optimizacija z rojem delcev, programiranje, Python

UDK: [519.6+004.89]:624.04(043.2)

POVZETEK

V diplomskem delu je predstavljen razvoj programa, ki omogoča preračun statično

obremenjenih ravninskih paličnih konstrukcij in konstrukcij sestavljenih iz linijskih nosilcev.

Predstavljena je metoda končnih elementov in uporaba le te v računalniškem programiranju.

Pravilnost delovanja razvitega programa je potrjena z analitičnimi izračuni in s primerjavo s

programskim orodjem Abaqus. Delo zajema tudi optimizacijo oblike paličnih konstrukcij z

uporabo genetskih algoritmov in optimizacije z rojem delcev. Rezultati optimizacije so

prikazani na različnih primerih.

Page 7: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

V

PLANAR TRUSS OPTIMIZATION USING GENETIC ALGORITHMS

Key words: finite element method, trusses, frames, shape optimization, genetic algorithms,

particle swarm optimization, programming, Python

UDK: [519.6+004.89]:624.04(043.2)

ABSTRACT

This diploma work describes development of software application for finite element method

calculations of statically loaded planar trusses and frames. It explains finite element method

and its usage in computer programming. The results of application are verified by analytical

calculations and results provided by finite element software Abaqus. Developed application

has implementation of optimization module for shape optimization of planar trusses.

Optimization is done by using genetic algorithms or particle swarm optimization. Results of

optimizations are shown on different models.

Page 8: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

VI

KAZALO VSEBINE

1 UVOD ....................................................................................................... 1

1.1 Opis splošnega področja dela ............................................................. 1

1.2 Opredelitev problema ........................................................................ 2

1.3 Kratek opis strukture celotnega dela .................................................. 2

2 METODA KONČNIH ELEMENTOV .............................................................. 3

2.1 Splošno o metodi končnih elementov ................................................. 3

2.2 Matematični model elastičnega telesa ............................................... 4

2.3 Palični končni element........................................................................ 7

2.4 Končni element nosilca ....................................................................... 8

3 OPTIMIZACIJA ........................................................................................ 10

3.1 Gradientne metode .......................................................................... 11

3.2 Optimizacija s surovo silo ................................................................. 12

3.3 Hevristične metode .......................................................................... 12

3.4 Metahevristične metode .................................................................. 13

3.5 Genetski algoritmi ............................................................................ 14

3.6 Optimizacija z rojem delcev .............................................................. 19

3.7 Tipi optimizacij ................................................................................. 21

4 RAZVOJ PROGRAMA ZA OPTIMIZACIJO .................................................. 24

4.1 Načrt razvoja programa .................................................................... 24

4.2 Priprava programskega okolja .......................................................... 24

4.3 Programiranje grafičnega vmesnika .................................................. 27

4.4 Programiranje metode končnih elementov ...................................... 33

4.5 Programiranje optimizacijskega modula ........................................... 38

5 PREGLED REZULTATOV ........................................................................... 46

5.1 Potrditev rezultatov ......................................................................... 46

5.2 Rezultati optimizacije ....................................................................... 50

5.3 Primerjava optimizacijskih algoritmov .............................................. 54

6 SKLEP ..................................................................................................... 55

7 LITERATURA ........................................................................................... 56

Page 9: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

VII

KAZALO SLIK

Slika 2.1: Mreži končnih elementov z različno kvaliteto mreže ................................................. 3

Slika 2.2: Palični končni element ................................................................................................ 7

Slika 2.3: Končni element nosilca ............................................................................................... 8

Slika 2.4: Končni element nosilca z dodatnimi aksialnimi pomiki .............................................. 9

Slika 3.1: Prikaz lokalnih in globalnih maksimumov [13] ......................................................... 10

Slika 3.2: Rosenbrockova funkcija [14] ..................................................................................... 11

Slika 3.3: Eno-točkovno križanje [16] ....................................................................................... 17

Slika 3.4: Več-točkovno križanje [16] ........................................................................................ 17

Slika 3.5: Psevdokoda genetskih algoritmov ............................................................................ 18

Slika 3.6: Psevdokoda optimizacije z rojem delcev .................................................................. 20

Slika 3.7: Dimenzijska optimizacija palične konstrukcije [15] .................................................. 21

Slika 3.8: Odprava koncentracije napetosti z optimizacijo oblike [18] .................................... 22

Slika 3.9: Optimizacija oblike paličnih konstrukcij [7] .............................................................. 22

Slika 3.10: Optimizacija topologije volumskega modela .......................................................... 23

Slika 3.11: Optimizacija topologije paličja [17] ......................................................................... 23

Slika 4.1: Integrirano razvojno okolje PyCharm ....................................................................... 26

Slika 4.2: Orodje za urejanje grafičnega vmesnika WxFormBuilder......................................... 26

Slika 4.3: Glavno okno našega programa ................................................................................. 28

Slika 4.4: Grafično okno za prikaz konstrukcije ........................................................................ 29

Slika 4.5: Temeljna koda aplikacije, ki skrbi za zagon okna ...................................................... 29

Slika 4.6: Vnosna polja grafičnega vmesnika za vstavljanje vozlišč .......................................... 30

Slika 4.7: Vnosna polja za vnos elementa ................................................................................. 31

Slika 4.8: Modeliranje konzolno vpetega nosilca z 1 elementom ............................................ 32

Slika 4.9: Modeliranje konzolno vpetega nosilca z 20 elementi .............................................. 32

Slika 4.10: Diagram poteka za temeljni del metode končnih elementov ................................. 33

Page 10: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

VIII

Slika 4.11: Sestavljanje globalne togostne matrike za dva palična elementa .......................... 35

Slika 4.12: Redukcija globalne togostne matrike ..................................................................... 36

Slika 4.13: Koda, ki reši sistem enačb in vrne pomike .............................................................. 36

Slika 4.14: Diagram poteka za funkcijo uspešnosti .................................................................. 40

Slika 4.15: Grafični vmesnik za optimizacijski modul genetskih algoritmov ............................ 41

Slika 4.16: Podatkovna struktura osebkov in generacij v kodi ................................................. 42

Slika 4.17: Funkcija, ki nam vrne naključno število glede na Gaussovo distribucijo ................ 42

Slika 4.18 Pravilo, ki smo ga definirali za izbiro osebka ............................................................ 43

Slika 4.19: Verjetnost reproduciranja osebka v odvisnosti od uspešnosti ............................... 43

Slika 4.20: Vpliv variiranja parametra »selekcija«, na verjetnost reproduciranja osebkov ..... 43

Slika 4.21: Grafični vmesnik za optimizacijo z rojem delcev .................................................... 45

Slika 5.1: Največja napetost, ki jo izračuna program ................................................................ 47

Slika 5.2: Največji pomik, ki ga izračuna program .................................................................... 47

Slika 5.3: Palična konstrukcija, ki smo jo uporabili za verifikacijski test ................................... 48

Slika 5.4: Pomik v skrajni točki žerjava izračunan z našim programom ................................... 48

Slika 5.5: Pomik v skrajni točki žerjava izračunan z Abaqusom ................................................ 48

Slika 5.6: Napetosti izračunane z našim programom ............................................................... 49

Slika 5.7: Izračunane napetosti izračunane z Abaqusom ......................................................... 49

Slika 5.8: Izvirna konstrukcija, ki je bila uporabljena za optimizacijo ....................................... 50

Slika 5.9: Napetosti v konstrukcija po optimizaciji presekov ................................................... 51

Slika 5.10: Konstrukcija po optimizaciji oblike ......................................................................... 51

Slika 5.11: Izvirna konstrukcija uporabljena za optimizacijo .................................................... 52

Slika 5.12: Oblika mostu po prvi optimizaciji............................................................................ 52

Slika 5.13: Koraki, ki smo jih izvedli pri tej optimizaciji ............................................................ 53

Slika 5.14: Končni rezultat optimizacije .................................................................................... 53

Slika 5.15: Rezultati primerjave optimizacijskih metod ........................................................... 54

Page 11: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

IX

UPORABLJENI SIMBOLI

𝛔 napetostni tenzor

𝜎𝑖𝑗 komponenta napetostnega tenzorja

𝛆 tenzor deformacij

𝜀𝑖𝑗 komponenta tenzorja deformacij

𝑓𝑖 volumska sila

𝒖 vektor pomikov

𝑭 vektor obremenitev

𝐊 globalna togostna matrika

𝐊𝐞̅̅̅̅ togostna matrika elementa v lokalnem koordinatnem sistemu

𝐊𝐞 togostna matrika elementa v globalnem koordinatnem sistemu

𝐸 modul elastičnosti

𝐴 površina preseka končnega elementa

𝐿 dolžina elementa končnega elementa

𝐼 vztrajnostni moment končnega elementa

𝜑 kot zasuka elementa

𝑢1̅̅ ̅ pomik vozlišča v x smeri lokalnega koordinatnega sistema elementa

𝑢1 pomik vozlišča v x smeri globalnega koordinatnega sistema

𝑣1̅̅ ̅ pomik vozlišča v y smeri lokalnega koordinatnega sistema elementa

𝑣1 pomik vozlišča v y smeri globalnega koordinatnega sistema

𝜃2̅̅ ̅ zasuk elementa v vozlišču v lokalnem koordinatnem sistemu

𝜃2 zasuk elementa v vozlišču v globalnem koordinatnem sistemu

𝐹�̅� sila v x smeri lokalnega koordinatnega sistema elementa

𝐹𝑥 sila v x smeri globalnega koordinatnega sistema

𝐹�̅� sila v x smeri lokalnega koordinatnega sistema elementa

𝐹𝑦 sila v x smeri globalnega koordinatnega sistema

𝑀1̅̅ ̅̅ moment v z smeri lokalnega koordinatnega sistema elementa

𝑀1 moment v z smeri globalnega koordinatnega sistema

Page 12: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

1

1 UVOD

1.1 Opis splošnega področja dela

Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem

času. Razvoju te metode lahko sledimo v 40. leta prejšnjega stoletja, ko sta A. Hrennikoff in R.

Courant idejno predstavila to metodo v svojih delih. Metoda se je od tistega časa

izpopolnjevala, k čemur je svoj delež prispeval hiter razvoj računalnikov, ki je potekal

vzporedno.

Metoda se lahko relativno preprosto implementira za palične konstrukcije. Razlog zato tiči v

sami naravi paličnih konstrukcij, ki so sestavljene iz preprostih elementov – palic, ki so

preprosto matematično opisljive. Metoda je v primeru paličnih konstrukcij računsko in

pomnilniško precej manj zahtevna, kot če so uporabljeni zahtevnejši končni elementi.

To so tudi glavni razlogi, zakaj se je optimizacija konstrukcij pred desetletji začela ravno pri

paličnih konstrukcijah. V primeru paličnih konstrukcij se nam ponuja tudi preprosta možnost

določitve optimizacijskih spremenljivk. Izberemo lahko neposredne lastnosti konstrukcije, kot

so površina presekov palic in koordinate vozlišč. V začetnih letih razvoja optimizacije so bile

optimizacijske spremenljivke predvsem lastnosti prerezov konstrukcij. Sledila je optimizacija

oblike, pri kateri so spremenljivke koordinate vozlišč. V današnjem času pa se razvija tudi

relativno nov tip optimizacije – optimizacije topologije.

V diplomski nalogi se bomo optimizacije lotili s sodobnimi optimizacijskimi metodami.

Uporabili bomo genetske algoritme, ki so univerzalen optimizacijski algoritem. Ponašajo se z

robustnostjo, ki je neodvisna od obravnavanega problema. Primerni so za različne probleme,

od kombinatoričnih, zveznih problemov do problemov strojnega učenja. Dodatno bomo

uporabili tudi optimizacijo z rojem delcev, ki prav tako velja za enega izmed robustnejših

optimizacijskih algoritmov in je v sodobnem času doživel precej izboljšav in različic.

Page 13: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

2

1.2 Opredelitev problema

Cilj diplomske naloge je razviti uporabniku prijazen program, s katerim bo mogoče s pomočjo

metode končnih elementov izračunati poljubna ravninska paličja in konstrukcije, sestavljene

iz linijskih nosilcev. Dodatno je cilj, da se razvije optimizacijski modul, s katerim bo mogoče

optimizirati poljubna ravninska paličja z uporabo genetskih algoritmov in optimizacije z rojem

delcev.

Delo bo zajemalo precej obsežno programiranje v programskem jeziku Python. Uporabljene

bodo različne knjižnice, ki bodo omogočale razvoj grafičnega vmesnika in skrajšale tako

razvojni čas, kot računski čas kritičnih operacij.

1.3 Kratek opis strukture celotnega dela

V začetnih poglavjih je predstavljeno teoretično ozadje metode končnih elementov. Sledi

teoretično ozadje optimizacije, kjer so na splošno predstavljene različne skupine metod.

Natančneje sta predstavljeni metodi, ki sta implementirani v program: optimizacija z uporabo

genetskih algoritmov in optimizacija z rojem delcev. Predstavljeni so tudi glavni tipi

optimizacij, ki se uporabljajo za strojne konstrukcije.

V nadaljevanju je predstavljen razvoj programa. Prvotno je na kratko predstavljeno

programsko okolje, v katerem je bil razvit program. Prikazane so ideje za oblikovanje

grafičnega vmesnika programa, nato pa sledi razlaga temeljnih postopkov pri programiranju

metode končnih elementov, kar predstavlja jedro programa.

V zadnjem sklopu diplomskega dela je pregled rezultatov, pridobljenih z razvitim programom.

Rezultati so verificirani z analitičnim preračunom in s primerjavo s programskim orodjem

Abaqus. Sledi prikaz rezultatov optimizacije in primerjava uporabljenih optimizacijskih metod.

Page 14: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

3

2 METODA KONČNIH ELEMENTOV

2.1 Splošno o metodi končnih elementov

Metoda končnih elementov (v nadaljevanju MKE) je aproksimativna numerična metoda s

katero lahko zvezne probleme pretvorimo v diskretne in s tem omogočimo, da problem

postane obvladljiv. Zvezno območje razdelimo na manjše diskretne enote osnovnih oblik, ki

jih imenujemo končni elementi. Razdeljeno območje, ki ga sestavljajo končni elementi,

imenujemo mreža končnih elementov. Od te mreže končnih elementov je odvisna tudi

natančnost metode. Gostejša, kot je mreža, natančnejši so rezultati. Vendar z večanjem števila

končnih elementov hitro narašča tudi računski čas simulacije. V kolikor uporabljamo za MKE

analizo mrežo elementov dovolj visoke kakovosti (gostote) so rezultati dovolj dobri za namene

inženirskega dela.

Poznamo več tipov končnih elementov: linijske (palični končni element, končni element

nosilca), ploskovne končne elemente (lupinske) in volumske končne elemente (tetraedri in

heksaedri).

Čeprav se MKE uporablja za analiziranje različnih fizikalnih pojavov, kot so elektro-

magnetizem, vremenski pojavi, prenos toplote … se bomo v tem diplomskem delu omejili le

na probleme trdnosti statično obremenjenih konstrukcij.

Slika 2.1: Mreži končnih elementov z različno kvaliteto mreže

Page 15: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

4

2.2 Matematični model elastičnega telesa

Predpostavke za naš obravnavani sistem:

• Material je homogen

• Material je izotropen

• Material je obremenjen le do meje plastičnosti (velja Hookov zakon)

• Relativno majhne deformacije

Deformacijsko in napetostno stanje v vsaki točki telesa je popolnoma opisano, če poznamo

vektor pomikov u (3 neznanke), tenzor deformacij ε (6 neznank) in tenzor napetosti σ (6

neznank).

Fizikalno ozadje povezujejo tri skupine enačb [1]:

Ravnotežne enačbe (3 enačbe):

Te enačbe izpolnjujejo 1. Newtonov zakon.

𝜕𝜎𝑥𝑥

𝜕𝑥+

𝜕𝜎𝑦𝑥

𝜕𝑦+

𝜕𝜎𝑧𝑥

𝜕𝑧+ 𝑓𝑥 = 0 (2.1)

𝜕𝜎𝑥𝑦

𝜕𝑥+

𝜕𝜎𝑦𝑦

𝜕𝑦+

𝜕𝜎𝑧𝑦

𝜕𝑧+ 𝑓𝑦 = 0 (2.2)

𝜕𝜎𝑥𝑧

𝜕𝑥+

𝜕𝜎𝑦𝑧

𝜕𝑦+

𝜕𝜎𝑧𝑧

𝜕𝑧+ 𝑓𝑧 = 0 (2.3)

Kinematične enačbe (6 enačb):

Te vrste enačb povezujejo deformacije s pomiki.

𝜀𝑥𝑥 =𝜕𝑢𝑥

𝜕𝑥 , 𝜀𝑥𝑦 =

1

2(𝜕𝑢𝑥

𝜕𝑦+

𝜕𝑢𝑦

𝜕𝑥) (2.4)

𝜀𝑦𝑦 =𝜕𝑢𝑦

𝜕𝑦 , 𝜀𝑥𝑧 =

1

2(𝜕𝑢𝑥

𝜕𝑧+

𝜕𝑢𝑧

𝜕𝑥) (2.5)

𝜀𝑥𝑥 =𝜕𝑢𝑧

𝜕𝑧 , 𝜀𝑦𝑧 =

1

2(𝜕𝑢𝑦

𝜕𝑧+

𝜕𝑢𝑧

𝜕𝑦) (2.6)

Page 16: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

5

Konstitutivne enačbe (6 enačb):

Te vrste enačb povezujejo napetosti z deformacijami.

𝜎𝑥𝑥 = (𝜆 + 2𝜇)𝜀𝑥𝑥 + 𝜆(𝜀𝑦𝑦 + 𝜀𝑧𝑧), 𝜎𝑥𝑦 = 2𝜇𝜀𝑥𝑦 (2.7)

𝜎𝑦𝑦 = (𝜆 + 2𝜇)𝜀𝑦𝑦 + 𝜆(𝜀𝑥𝑥 + 𝜀𝑧𝑧), 𝜎𝑥𝑧 = 2𝜇𝜀𝑥𝑧 (2.8)

𝜎𝑧𝑧 = (𝜆 + 2𝜇)𝜀𝑧𝑧 + 𝜆(𝜀𝑥𝑥 + 𝜀𝑦𝑦), 𝜎𝑦𝑧 = 2𝜇𝜀𝑦𝑧 (2.9)

𝜆 =𝜈𝐸

(1 + 𝜈)(1 − 2𝜈), 𝜇 =

𝐸

2(1 + 𝜈) (2.10)

Kjer je:

𝜈 – Poisonov koeficient

𝐸 – Elastični modul

Torej vse skupaj imamo 15 neznank in 15 enačb, kar pomeni, da moramo rešiti sistem 15

parcialnih diferencialnih enačb.

Ker sedaj obravnavamo diskretni model, nas zanimajo le sile v vozliščih. Ravnovesne enačbe

lahko napišemo za vsako obremenitev v smereh prostostnih stopenj vozlišča:

𝐹𝑖 − 𝑅𝑖 = 0 (2.11)

Zunanja sila 𝑅 je konstanta, notranja sila 𝐹 pa se izračuna na osnovi notranjih napetosti.

Napetosti pa so linearno odvisne od pomikov. Zato lahko zapišemo Hookov zakon v matrični

obliki za celoten obravnavan sistem:

𝐊 ∙ 𝒖 = 𝑭 (2.12)

𝐊 je togostna matrika modela, ki je sestavljena iz togostnih matrik posameznih elementov. Če

želimo zapisati ravnovesne enačbe moramo torej sestaviti togostno matriko modela. Ko

imamo znano togostno matriko in zunanje sile na vozlišča 𝑭 (znano iz robnih pogojev), nam

ostanejo edine neznanke pomiki 𝒖, ki jih lahko sedaj preprosto izračunamo, saj imamo

nastavljen sistem n - linearnih enačb z n neznankami (kjer je n število prostostnih stopenj

modela).

Page 17: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

6

Ko rešimo sistem in imamo znane pomike modela lahko s kinematičnimi enačbami izračunamo

deformacije.

𝛆 = 𝑓(𝒖) (2.13)

Ko so znane deformacije pa lahko s konstitutivnimi enačbami izračunamo še napetosti.

𝛔 = 𝑓(𝛆) (2.14)

Globalna togostna matrika

Eden izmed temeljnih operacij pri metodi končnih elementov je sestavljanje globalne togostne

matrike.

Sistem linearnih enačb 𝐊 ∙ 𝒖 = 𝑭 lahko razširjeno zapišemo kot:

[ 𝐾11 𝐾12 𝐾13

𝐾21 𝐾22 𝐾23

𝐾31 𝐾32 𝐾33

⋯𝐾1𝑛

𝐾2𝑛

𝐾3𝑛

⋮ ⋱ ⋮𝐾𝑛1 𝐾𝑛2 𝐾𝑛3 ⋯ 𝐾𝑛𝑛]

[ 𝑞1

𝑞2

𝑞3

⋮𝑞𝑛]

=

[ 𝐹1

𝐹2

𝐹3

⋮𝐹𝑛]

(2.15)

Kjer je:

𝐾𝑖𝑗 – člen togostne matrike

𝑞𝑖 – posplošen pomik prostostne stopnje (pomik ali zasuk)

𝐹𝑖 – posplošena obremenitev v smeri prostostne stopnje (sila ali moment)

𝑛 – število prostostnih stopenj sistema

Globalna togostna matrika sistema je sestavljena iz togostnih matrik posameznih elementov.

Za vsak element posebej se izračuna togostna matrika elementa, ki je odvisna od njegovih

lastnosti. Način, kako sestavimo globalno togostno matriko je opisan v poglavju 4.4, kjer

opisujemo programiranje metode končnih elementov.

Globalna togostna matrika je simetrična in ima večino izven diagonalnih členov enakih 0. Te

značilnosti naredijo metodo končnih elementov zelo primerno za programiranje in za

varčevanje računalniškega spomina pri večjih modelih.

Page 18: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

7

2.3 Palični končni element

Palica je element, ki lahko prenaša le aksialno obremenitev. Parametri, ki nam definirajo

togost tega končnega elementa so elastični modul, površina preseka palice in dolžina palice.

Zanimajo nas le pomiki v aksialni smeri. Ko povežemo več palic skupaj v konstrukcijo to

konstrukcijo imenujemo paličje. Mesta na katerih se spajajo palice (vozlišča) matematično

idealiziramo, kot popolni točkovni tečaj, ki ne prenaša momenta.

Slika 2.2: Palični končni element

Togostna matrika za lokalni koordinatni sistem (enodimenzionalni):

𝐸𝐴

𝐿[

1 −1−1 1

] [𝑢1̅̅ ̅𝑢2̅̅ ̅

] = [𝐹1̅

𝐹2̅̅̅

] (2.16)

Preden pretvorimo matriko v globalni koordinatni sistem jo razširimo v dvodimenzionalni

koordinatni sistem.

𝐸𝐴

𝐿[

1 00 0

−1 00 0

−1 00 0

1 00 0

] [

𝑢1̅̅ ̅𝑣1̅̅ ̅𝑢2̅̅ ̅𝑣2̅̅ ̅

] = [

𝐹𝑥1̅̅ ̅̅

0𝐹𝑥2̅̅ ̅̅

0

] (2.17)

Nato jo transformiramo v globalni koordinatni sistem z enačbo:

𝐊𝐞 = 𝐓𝑇𝐊𝐞̅̅̅̅ 𝐓 (2.18)

Kjer je transformacijska matrika:

𝐓 = [

𝑐𝑜𝑠𝜑 𝑠𝑖𝑛𝜑 0 0

−𝑠𝑖𝑛𝜑0

𝑐𝑜𝑠𝜑 00 𝑐𝑜𝑠𝜑

0𝑠𝑖𝑛𝜑

0 0 −𝑠𝑖𝑛𝜑 𝑐𝑜𝑠𝜑

] (2.19)

Page 19: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

8

Končna togostna matrika paličnega elementa je:

𝐊𝐞 =

[

𝑐𝑜𝑠2𝜑 𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑

𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑 𝑠𝑖𝑛2𝜑

−𝑐𝑜𝑠2𝜑 −𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑

−𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑 −𝑠𝑖𝑛2𝜑

−𝑐𝑜𝑠2𝜑 −𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑

−𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑 −𝑠𝑖𝑛2𝜑

𝑐𝑜𝑠2𝜑 𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑

𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜑 𝑠𝑖𝑛2𝜑 ]

(2.20)

2.4 Končni element nosilca

Končni element nosilca pa lahko v nasprotju s paličnim elementom prenaša tudi momente v

vozliščih. V primeru nosilca nas zanimata dve prostostni stopnji v vsakem vozlišču – pomik

prečno na nosilec in zasuk v vozlišču (slika 2.3). Parametri, ki nam definirajo togost tega

elementa so elastični modul, dolžina elementa in vztrajnostni moment. S pomočjo končnih

elementov nosilcev lahko izračunamo upogibne momente in strižne sile.

Slika 2.3: Končni element nosilca

Togostna matrika za nosilec v lokalnem koordinatnem sistemu [3]:

𝐸𝐼

𝐿3[

12 6𝐿6𝐿 4𝐿2

−12 6𝐿−6𝐿 2𝐿2

−12 −6𝐿6𝐿 2𝐿2

12 −6𝐿−6𝐿 4𝐿2

]

[ 𝑣1̅̅ ̅

𝜃1̅̅ ̅

𝑣2̅̅ ̅

𝜃2̅̅ ̅]

=

[ 𝐹1̅

𝑀1̅̅ ̅̅

𝐹2̅̅̅

𝑀2̅̅ ̅̅ ]

(2.21)

Page 20: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

9

Končni element nosilca z aksialno obremenitvijo

Ko združimo togostno matriko elementa nosilca in togostno matriko palice, dobimo element,

ki lahko prenaša tudi aksialno obremenitev. Element ima šest prostostnih stopenj - dva pomika

in en zasuk za vsako vozlišče.

Slika 2.4: Končni element nosilca z dodatnimi aksialnimi pomiki

Togostna matrika elementa nosilca, ki prenaša tudi aksialno obremenitev [3]:

[

𝑎1 0 00 12𝑎2 6𝐿𝑎2

0 6𝐿𝑎2 4𝐿2𝑎2

−𝑎1 0 00 −12𝑎2 6𝐿𝑎2

0 −6𝐿𝑎2 4𝐿2𝑎2

−𝑎1 0 00 −12𝑎2 −6𝐿𝑎2

0 6𝐿𝑎2 4𝐿2𝑎2

𝑎1 0 00 12𝑎2 −6𝐿𝑎2

0 −6𝐿𝑎2 4𝐿2𝑎2 ]

[ 𝑢1̅̅ ̅𝑣1̅̅ ̅

𝜃1̅̅ ̅

𝑢2̅̅ ̅𝑣2̅̅ ̅

𝜃2̅̅ ̅]

=

[ 𝐹𝑥1̅̅ ̅̅

𝐹𝑦1̅̅ ̅̅

𝑀𝑧1̅̅ ̅̅ ̅

𝐹𝑥2̅̅ ̅̅

𝐹𝑦2̅̅ ̅̅

𝑀𝑧2̅̅ ̅̅ ̅]

(2.22)

𝑎1 =𝐸𝐴

𝐿, 𝑎2 =

𝐸𝐼

𝐿3 (2.23)

Končno togostno matriko elementa dobimo s transformacijo matrike v globalni koordinatni

sistem, za kar uporabimo naslednjo:

𝐊𝐞 = 𝐓𝑇𝐊𝐞̅̅̅̅ 𝐓 (2.24)

Kjer je transformacijska matrika:

𝐓 =

[ 𝑐𝑜𝑠𝜑 𝑠𝑖𝑛𝜑 0−𝑠𝑖𝑛𝜑 𝑐𝑜𝑠𝜑 0

0 0 1

0 0 00 0 00 0 0

0 0 00 0 00 0 0

𝑐𝑜𝑠𝜑 𝑠𝑖𝑛𝜑 0−𝑠𝑖𝑛𝜑 𝑐𝑜𝑠𝜑 0

0 0 1]

(2.25)

Page 21: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

10

3 OPTIMIZACIJA

Optimizacija je proces s katerim želimo naš obravnavani sistem izboljšati, pri tem pa želimo,

da sistem ostane znotraj okvirnih vrednosti. Pri optimizaciji našemu modelu spreminjamo

optimizacijske spremenljivke pri tem pa želimo zvišati ali znižati našo optimizacijsko ciljno

vrednost. Torej je za vse metode skupno, da moramo za naš model definirati naslednje

veličine:

• Optimizacijske spremenljivke

• Namensko funkcijo optimizacije

• Omejitveni pogoji optimizacije

Ko imamo naš model matematično opisan, lahko naš sistem obravnavamo kot matematično

funkcijo. Ta matematična funkcija nam vrne veličino, ki jo želimo izboljšati (npr. maso ali ceno),

zato jo imenujemo namenska funkcija optimizacije. Optimizacija je torej iskanje minimumov

ali maksimumov namenske funkcije.

Slika 3.1: Prikaz lokalnih in globalnih maksimumov [13]

Na splošno lahko optimizacijske algoritme delimo na deterministične in stohastične.

Deterministične so eksaktne metode in nam zmeraj vrnejo enako vrednost, v kolikor izvedemo

algoritem z istimi vhodnimi podatki. Nasprotno pa nam stohastične metode lahko vrnejo

nekoliko različne rezultate ob istih vhodnih podatkih, ker vključujejo naključne spremenljivke.

Deterministične metode so različne gradientne metode. V skupino stohastičnih metod pa

vključujemo različne hevristične in metahevristične metode.

Page 22: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

11

3.1 Gradientne metode

V kolikor je naša namenska funkcija odvedljiva, se lahko optimizacije lotimo z gradientnimi

metodami. Gradient oziroma odvod funkcije nam pove, v kateri smeri se nahaja minimum

oziroma maksimum. Iterativno se pomikamo v smeri gradienta, dokler ne dosežemo

konvergenčnega kriterija.

Prednosti gradientnih metod

• Gradientne metode so najhitrejše izmed optimizacijskih metod, saj se usmerjeno

približujejo minimumu. Zato so primerne za časovno zahtevne probleme.

• So eksaktne metode. Če optimizacijo poženemo z enakimi podatki in istimi pogoji,

pridemo do identičnega rezultata.

• Primerne so za zvezne probleme.

Težave gradientnih metod

• Gradientne metode gredo v smeri prvega »vidnega« minimuma, kar pomeni, da je

velika možnost, da je to lokalni minimum. Boljša rešitev oziroma globalni minimum pa

je lahko izven vidnega dosega algoritma.

• Zahtevajo odvedljivost funkcije, kar pa je v mnogo primerih nemogoče oziroma težko

dosegljivo.

• V primeru, da funkcija nima izrazitega minimuma oziroma je ta v obliki »doline« se čas

konvergence poveča, saj gre algoritem »cik-cak« v smeri proti minimumu. Primer je

Rosenbrockova funkcija, ki je v obliki dolge zavite doline, zato se jo uporablja kot

funkcijo za testiranje optimizacijskih algoritmov (Slika 3.2).

Slika 3.2: Rosenbrockova funkcija [14]

Page 23: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

12

3.2 Optimizacija s surovo silo

Optimizacija s surovo silo1 (ang. brute force) je najpreprostejši optimizacijski algoritem.

Preprosto preizkusi vse različne kombinacije optimizacijskih spremenljivk, ki so na voljo.

Mogoča je le za diskretne probleme in vrednosti optimizacijskih spremenljivk morajo pripadati

končni množici.

Seveda, se ta optimizacijska metoda v praksi le izjemoma uporablja, saj v realnih primerih

število preizkusov, ki bi jih moral izvesti algoritem, naraste v ogromna števila, ki niso

izračunljiva v realnem času.

Edina prednost te metode je, da nam algoritem zagotavlja, da je najdena rešitev najboljša,

torej je to globalni minimum (maksimum).

Primer: V strojništvu lahko za vzgled vzamemo preprosto konstrukcijo sestavljeno iz nekaj

različnih profilov. Optimizacijske spremenljivke so preseki posameznih profilov. Množica

optimizacijskih spremenljivk pa so vsi standardni profili. Preizkusimo vse možne kombinacije

profilov in zagotovo bomo našli globalni optimum problema.

3.3 Hevristične metode

Hevristični pristop [11] optimizacije temelji na principu iskanja približne optimalne vrednosti.

Algoritem ne preverja vseh mogočih kombinacij kot algoritem surove sile, temveč izbira le

potencialno optimalne primere. Optimizacija deluje iterativno in v vsaki iteraciji algoritem

predlaga naslednji nabor optimizacijskih spremenljivk. Zaradi tega, ker algoritem ne preverja

celotne množice nam ne zagotavlja, da je dobljena rešitev globalni optimum, vendar se ji lahko

dovolj približa, da je za nas praktično uporabna.

1 V splošnem metode s surovo silo ne obravnavamo, kot optimizacijske metode, vendar je tukaj predstavljena zaradi lažje definicije hevrističnih in metahevrističnih metod.

Page 24: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

13

3.4 Metahevristične metode

Metahevristične metode so nadgradnja hevrističnih metod. So višje nivojske metode, ki so

neodvisne od problema optimizacije, zato lahko naš problem obravnavamo kot »črno

skrinjico«. Večina metahevrističnih metod je idejno osnovanih na principih iz narave. [10]

V splošnem jih lahko delimo na populacijsko osnovane metode in trajektorne metode. [11]

Trajektorne metode začnejo proces optimizacije iz ene točke v optimizacijskem prostoru. Iz

te točke se »osebek«2 nato iterativno pomika k optimumu. Prednosti teh algoritmov so

majhno število izvajanj, vendar se pogosto ujamejo v lokalnih minimumih.

Nekaj primerov trajektorno osnovanih algoritmov so:

• Simulirano ohlajanje (ang. simulate annealing)

• Lokalno iskanje (ang. local searches)

• Plezanje po hribu (ang. hill climbing)

Populacijsko osnovane metode začnejo proces optimizacije z več primeri (osebki), ki so

naključno razpršeni po optimizacijskem prostoru. V vsaki iteraciji algoritem izvede namensko

funkcijo za vse primere. Skupno vsem metodam je, da med osebki poteka nekakšno

izmenjevanje informacij.

• Prednost teh algoritmov in izmenjevanja informacij je dobra odpornost proti prehitri

konvergenci zaradi ujetja v lokalni minimum, kar je ena izmed glavnih težav vseh

ostalih optimizacijskih algoritmov.

• Slabost populacijsko osnovanih algoritmov je, da je za dosego rezultatov zahtevano

relativno veliko število izračunov namenske funkcije, kar podaljša čas optimizacije.

S temi metodami lahko optimiziramo tako kombinatorične, diskretne, kot tudi zvezne

probleme.

2 Izraz »osebek«, se uporablja pri metahevrističnih metodah za eno »rešitev« optimizacije. Pri trajektornih metodah se iterativno izboljšuje ena sama rešitev. Pri populacijsko osnovanih metodah pa se vzporedno izboljšuje več rešitev – več osebkov.

Page 25: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

14

Nekaj primerov populacijsko osnovanih algoritmov:

• Genetski algoritmi (ang. genetic algorithms)

• Inteligenca roja delcev (ang. particle swarm optimization)

• Optimizacija s pomočjo kolonije mravelj (ang. ant colony optimization)

• Umetne kolonije čebel (ang. artificial bee colonies)

Vsi metahevristični algoritmi imajo dve fazi optimizacije, raziskovanje optimizacijskega

prostora (ang. exploration – globalno iskanje) in osredotočanje na tisti del optimizacijskega

prostora, ki daje najboljše rezultate (ang. exploitation – lokalno iskanje).

3.5 Genetski algoritmi

Genetski algoritmi spadajo v skupino evolucijskega računanja. So najpopularnejša metoda

izmed metahevrističnih metod. Algoritem temelji na inspiraciji iz narave – evoluciji. Dejansko

je algoritem simuliranje evolucije, zato tudi pri opisovanju metode uporabljamo celo paleto

izrazov iz biologije. Vključuje vse principe, ki so v naravi zaslužni za delovanje evolucije.

• Upošteva naravno selekcijo, saj v naravi preživijo le najmočnejši osebki, ti osebki imajo

tudi največ potomcev, kar je upoštevano v algoritmu.

• Upošteva križanje genskega materiala med dvema osebkoma.

• Upošteva mutacije, ki spremenijo genski material.

Osebki

En osebek v algoritmu predstavlja en nabor optimizacijskih spremenljivk. Ena optimizacijska

spremenljivka predstavlja en gen. Ta nabor spremenljivk lahko obravnavamo kot genski

material osebka. V literaturi zasledimo različne izrazoslovje, ki cilja na isto stvar (DNK,

kromosom, genotip). Temu osebku se izračuna namenska funkcija, ki jo v primeru genetskih

algoritmov imenujemo »ocena uspešnosti« (ang. fitness, fenotype), ki določa možnosti, da se

genski material osebka prenese v naslednjo generacijo.

Osebki so lahko v programu izraženi z različnimi podatkovnimi strukturami. Predstavimo nekaj

najbolj uveljavljenih struktur.[5]

Bitna Struktura, ki genski material zapiše, kot zaporedje bitov. Število bitov je odvisno

od števila parametrov, ki jih želimo zakodirati. Primer osebka: 011010010101101.

Page 26: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

15

Vektorska Struktura, ki genski material zapiše v vektorski obliki. Vsak parameter predstavlja

eno komponento vektorja. Primer osebka: [0.12, 3.65, 4.68, 1.45, 7.84].

Nizovna Struktura, ki genski material zapiše, kot zaporedje znakov. Primerna je za zapis

različnih navodil za stroje. Primer osebka: [12214212422113312], kjer so na

primer zakodirani pomiki: 1 – levo, 2 – desno, 3 – naprej, 4 – nazaj.

Permutacije Struktura, ki genski material zapiše kot zaporedje števil. Primerna je za različne

kombinatorične probleme. Primer osebka: [5,3,4,2,9,6,7,1,8].

Inicializacija

V inicializaciji ustvarimo osebke prve generacije. Vsem osebkom dodelimo nabor

optimizacijskih spremenljivk z naključnimi vrednostmi, za katere pa je priporočeno, da so

približno v rangu predvidenih končnih vrednosti.

Operatorji

Delovanje algoritma zagotavljajo trije glavni operatorji. To so: selekcija, križanje in mutacija.

Selekcija

Ključno pri genetskih algoritmih je, da osebki z boljšo funkcijo uspešnosti z večjo verjetnostjo

posredujejo svoje gene v naslednjo generacijo. Zato moramo napisati algoritem, ki bo

zagotavljal, da so boljši osebki večkrat izbrani za razmnoževanje. Predstavimo nekaj različnih

modelov za izbiranje boljših osebkov za razmnoževanje.

Proporcionalna izbira

Pri tem tipu selekcije ima vsak osebek možnost razmnoževanja, ki je proporcionalna njegovi

uspešnosti.

Verjetnost vsakega osebka za reprodukcijo lahko zapišemo kot:

𝑝𝑖 =𝑓𝑖

∑ 𝑓𝑗𝑛𝑗=1

(3.1)

Kjer je:

𝑝 – verjetnost posameznega osebka, da bo izbran

𝑓 – ocena uspešnosti

𝑛 – število vseh osebkov

Page 27: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

16

Slabost proporcionalne izbire je, da ni robustna. V kolikor bo kateri izmed osebkov imel precej

višjo oceno uspešnosti kot ostali osebki, bodo njegovi geni preplavili populacijo in zmanjšali

nabor alelov v populaciji, kar posledično vodi k prezgodnji konvergenci. Prav tako se slabost

tega tipa selekcije pokaže, ko imajo vsi osebki relativno podobno oceno uspešnosti, kar

pomeni, da bodo vsi osebki imeli podobne možnosti za predajo genov v naslednjo generacijo.

Izbira glede na rang osebka

Pri tem tipu selekcije osebke razvrstimo v vrsto in jih razvrstimo od najslabšega do najboljšega.

Vsak osebek ima možnost, da posreduje svoje gene v naslednjo generacijo, ki je

proporcionalna njegovemu rangu. Torej bo najslabši osebek imel rang 1 in najboljši osebek,

bo imel rang n (kjer je n število vseh osebkov).

Verjetnost vsakega osebka za reprodukcijo lahko zapišemo kot:

𝑝𝑖 =𝑟𝑖

∑ 𝑟𝑗𝑛𝑗=1

(3.2)

Kjer je:

𝑝 – verjetnost posameznega osebka, da bo izbran

𝑟 – rang osebka

𝑛 – število vseh osebkov

Ta tip selekcije se je pokazal za precej bolj robustnega, kot navadna proporcionalna izbira, saj

uspešno deluje tudi, ko imajo vsi osebki podobno oceno uspešnosti.

Turnirska izbira

Osebke lahko izbiramo tudi na podlagi turnirjev. Izvedemo virtualne »turnirje«, kjer se osebki

primerjajo po ocenah uspešnosti in zmagovalci so izbrani za reprodukcijo.

Najprej določimo število osebkov t, ki bo sodelovalo v turnirju. Določimo še verjetnost izbire

p. Najboljši izmed tekmovalcev dobi verjetnost izbire p, drugi najboljši ima verjetnost izbire

p(1-p), tretji najboljši ime verjetnost p(1-p)2, …

Če izberemo p = 1, potem zmeraj izberemo le najboljšega na turnirju. V kolikor pa je t = 1,

potem imamo naključno vzorčenje.

Page 28: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

17

Stohastično univerzalno vzorčenje

Stohastično univerzalno vzorčenje je podobno proporcionalnemu vzorčenju, le da v eni

iteraciji selekcije izberemo N naslednikov, kar poveča možnost, da bodo boljši osebki izbrani

vsaj enkrat. [5]

Elitizem

Elitizem lahko izvedemo pred selekcijo osebkov, in sicer majhen delež najboljših osebkov takoj

prenesemo v naslednjo generacijo brez sprememb genskega materiala ali križanja. S tem

zagotovimo, da bo vsaka naslednja generacija zagotovo imela vsaj enako dober osebek ali

boljši. Delež elite mora ostati ustrezno majhen, sicer lahko algoritem trpi zaradi prehitre

konvergence, če elita prevlada v populaciji.

Križanje

Križanje je proces, ko iz genskega materiala dveh osebkov kreiramo nova osebka za naslednjo

generacijo. DNK osebkov (staršev) prerežemo na istem mestu in sestavimo nov DNK.

Slika 3.3: Eno-točkovno križanje [16]

Poznamo eno-točkovno križanje ali več-točkovno križanje, vsa temeljijo na istem principu, ki

je prikazan na sliki 3.3 in sliki 3.4.

Slika 3.4: Več-točkovno križanje [16]

V kolikor želimo izboljšati uspešnost genetskega algoritma, moramo pri sestavljanju DNK-ja

paziti, da gene, za katere predvidevamo, da imajo medsebojno odvisnost, postavimo blizu

skupaj v genskem zapisu. S tem zagotovimo, da točka rezanja DNK-ja ne bo ločila medsebojno

odvisnih genov, saj verjetno ugodno vplivajo drug na drugega.

Page 29: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

18

Mutacija

Mutacija je nujen element pri genetskih algoritmih, saj zagotavlja, da se v populaciji pojavljajo

nove različice genov – novi aleli. V kolikor bi imeli algoritem brez mutacije, bi lahko bil najboljši

osebek sestavljen le iz genov, ki so bili v prvi generaciji.

Mutacija je postopek, ko en ali več genov naključno spremenimo. V kolikor imamo DNK,

zapisan z bitno reprezentacijo lahko preprosto eno 0 spremenimo v 1 ali obratno (primer:

0110100 → 0110110).

V kolikor pa imamo zapis v vektorski obliki pa lahko en gen preprosto mutiramo z naslednjim

nastavkom:

𝑔𝑝𝑜 = 𝑔𝑝𝑟𝑒𝑑 ∙ (1 + 𝑚) (3.3)

𝑚 ∈ [−𝑗, 𝑗]

Kjer je:

𝑔𝑝𝑟𝑒𝑑 – gen pred mutacijo

𝑔𝑝𝑜 – gen po mutaciji

𝑚 – mutacija

𝑗 – intenzivnost mutacije

Intenzivnost mutacije se lahko skozi optimizacijo spreminja.

Slika 3.5: Psevdokoda genetskih algoritmov

Page 30: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

19

3.6 Optimizacija z rojem delcev

Optimizacija z rojem delcev (ang. Particle Swarm Optimization – PSO) temelji na inspiraciji iz

narave, kot je gibanje jate ptic ali jate rib. Ta roj delcev skupaj išče optimalno točko v prostoru

in si med seboj sporoča uspešnost iskanja. Vsak delec se do neke mere giblje lokalno, vendar

ves roj skupaj se giblje v najobetavnejšo smer. Metoda je v prvi vrsti namenjena za optimizacijo

zveznih problemov.

Vsak delec predstavljata dva vektorja:

• Lokacijski vektor x = (x1, x2, …) predstavlja trenutno lokacijo osebka, komponente tega

vektorja, so optimizacijske spremenljivke našega obravnavanega sistema.

• Vektor hitrosti v = (v1, v2, …) predstavlja hitrost in smer potovanja delca v časovnem

koraku.

Na začetku vsak delec postavimo v prostor z naključnimi koordinatami v lokacijskemu vektorju.

Začetna hitrost delca je lahko enaka nič ali pa se delec pomika v naključni smeri z neko

relativno majhno hitrostjo. Zato, da roj ni le vsota posameznih obnašanj, je potrebna

izmenjava informacij o lokacijah potencialnih optimumov. Delec si ne izmenjuje informacij z

vsemi delci v roju, temveč le z nekaj posamezniki (sosednjimi delci ali naključno izbranimi delci)

ter z najboljšim delcem v roju.

V ta namen se hitrost (smer delca) izračuna na podlagi treh vektorjev:

• Vektor svoje najboljše lokacije xL

• Vektor najboljše lokacije svojih informatorjev xi

• Vektor najboljše lokacije celotnega roja xB

Delcu lahko določimo tudi neko vztrajnost gibanja, tako da delec obdrži neki delež svoje

prejšnje hitrosti.

Vsaka iteracija pri PSO algoritmu predstavlja en časovni korak. V vsakem časovnem koraku se

izračuna:

• Uspešnost delca – namenska funkcija (V kolikor je nova uspešnost delca njegova

najboljša, ga zapišemo v xL, če je pa nova uspešnost najboljša do sedaj za celotni roj,

ga zapišemo v xB

Page 31: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

20

• Spremenimo vektor hitrosti z upoštevanjem: prejšnje hitrosti, xL, xi, xB in nekaj

naključnega šuma

• Izračunamo novo lokacijo delca v smeri vektorja hitrosti

Kot vidimo je bistvo te metode izračunavanje vektorja hitrosti (smeri delca). Ta vektor je vsota

različnih komponent, ki jim lahko nastavimo različne uteži. Te uteži nam služijo za uravnavanje

algoritma in prilagajanje našemu problemu. Zapišemo jih kot:

• α – delež ohranitve dosedanjega vektorja hitrosti. Vztrajnost delca.

• β – delež najboljše lastne lokacije xL (daje prednost lokalnemu iskanju).

• γ – delež najboljše lokacije informatorjev (vmesna stopnja med lokalnim in globalnim

iskanjem).

• δ – delež najboljše lokacije roja (daje prednost globalnemu iskanju).

• ε – hitrost premikanja delcev (določa velikost skokov delcev).

Slika 3.6: Psevdokoda optimizacije z rojem delcev

Page 32: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

21

3.7 Tipi optimizacij

Tukaj bomo predstavili glavne tipe optimizacij, ki jih uporabljamo v strojništvu za strojne

konstrukcije in različne strojne elemente.

Dimenzijska optimizacija (ang. size optimization)

Pri tem tipu optimizacije so optimizacijske spremenljivke različne dimenzije strojne

konstrukcije. Primeri optimizacijskih spremenljivk so: premer debeline palice, debelina

škatlastega profila, radij zaokrožitve, površina preseka profila …

Večinoma je namen optimizacije zmanjšanje mase in boljši izkoristek materiala. Material je

ustrezno izkoriščen, v kolikor se v večini obremenjenih delov pojavlja napetost istega

velikostnega razreda. Izogibamo se predimenzioniranim delom in povečamo varnost kritičnim

delom konstrukcije.

Slika 3.7: Dimenzijska optimizacija palične konstrukcije [15]

Page 33: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

22

Optimizacija oblike (ang. shape optimization)

Pri tem tipu optimizacije so optimizacijske spremenljivke parametri oblike strojne konstrukcije

ali strojnega dela.

Praviloma spreminjamo koordinate vozlišč mreže končnih elementov. Optimizacijske

spremenljivke so lahko neposredno koordinate vozlišč. V primeru, da imamo opravka z večjim

številom spremenljivk pa se je izkazalo, da je vpeljevanje novih parametrov izboljšalo rezultate

optimizacije. V tem primeru so optimizacijske spremenljivke ti parametri ali kontrolne točke.

Koordinate vozlišč pa se premikajo v odvisnosti od teh parametrov ali kontrolnih točk.

V primeru volumskih elementov se ta tip optimizacije uporablja predvsem v končni fazi razvoja

za odpravo koncentracij napetosti.

Slika 3.8: Odprava koncentracije napetosti z optimizacijo oblike [18]

Slika 3.9: Optimizacija oblike paličnih konstrukcij [7]

Page 34: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

23

Optimizacija topologije (ang. topology optimization)

Optimizacija topologije prav tako spreminja obliko strojne konstrukcije/strojnega dela kot

optimizacije oblike. Vendar se z optimizacijo oblike razlikuje v tem, da za vhodne podatke

potrebuje le okvirno obliko konstrukcije, medtem ko pri optimizaciji oblike potrebujemo za

vhodne podatke relativno končno definicijo konstrukcije/dela. Pri optimizaciji topologije

konkretno posegamo v samo obliko strojne konstrukcije/strojnega dela, zato je še posebej

primerna za zgodnje faze razvoja.

Za palične konstrukcije to pomeni, da optimizacija oblike spreminja le koordinate vozlišč

konstrukcije. Pri optimizaciji topologije pa optimizacija spreminja sam način, kako so palice

povezane med seboj (slika 3.11).

Slika 3.10: Optimizacija topologije volumskega modela

Slika 3.11: Optimizacija topologije paličja [17]

Page 35: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

24

4 RAZVOJ PROGRAMA ZA OPTIMIZACIJO

4.1 Načrt razvoja programa

Pred samim razvojem programa smo si zadali cilje, ki jih želimo doseči. Cilji oziroma želje so se

med samim razvojem programa spreminjali, saj so se pojavljale nove ideje.

Osnovne zahteve, ki jih mora izpolnjevati program:

• Vstavljanje podatkov potrebnih za popolno definicijo ravninske palične konstrukcije s

pomočjo grafičnega vmesnika

• Jedro programa, ki izračuna željene veličine (pomike, napetosti) po metodi končnih

elementov (za palične končne elemente)

• Prikaz palične konstrukcije in rezultatov v grafičnem vmesniku

Dodatne zahteve, ki smo si jih postavili med razvojem programa:

• Jedro programa, ki podpira tudi končne elemente nosilca

• Optimizacija palične konstrukcije z uporabo genetskih algoritmov (optimizacijske

spremenljivke – koordinate vozlišč, namen optimizacije – minimalna masa, omejitve –

napetosti)

• Optimizacija palične konstrukcije z uporabo metode roja delcev (enak tip optimizacije

kot pri genetskih algoritmih)

• Možnost shranjevanja delovne seje na disk

4.2 Priprava programskega okolja

Razvoja programa smo se lotili v programskem jeziku Python. Glavni razlog za to odločitev je

bilo določeno predznanje. Kasneje se je izkazalo, da je bila odločitev ugodna.

Prednosti programskega jezika Python:

• Prosto dostopna odprtokodna rešitev

• Dobra tehnična podpora zaradi razširjenosti in priljubljenosti pri uporabnikih

• Preprosta sintaksa, ki omogoča hitrejše programiranje v primerjavi z drugimi jeziki

• Podpora za različne platforme

Page 36: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

25

Slabosti:

• Počasnost – ni primeren za časovno kritične operacije (je interpretiran programski

jezik, ki se med samim izvajanjem prevaja v strojno kodo)

• Paralelno izvajanje – programski jezik sicer podpira paralelno procesiranje vendar v

primerjavi z drugimi programskimi jeziki precej zaostaja na tem področju

Zaradi svojih značilnosti (preprostosti) se Python najpogosteje uporablja, kot skriptni jezik.

Zelo primeren je tudi za kakšne »prototipne« aplikacije. Žal pa zaradi same arhitekture

(interpretiran programski jezik) čisti Python ni primeren za časovno kritične procese, saj po

hitrosti ni primerljiv s prevedenimi programskimi jeziki, kot so C, C++, Fortran, ...

Mnoga znana podjetja (Google, Yahoo, Dropbox, Dassault Systèmes, AVL, …), ki uporabljajo

Python, se zato odločijo za kompromis med interpretiranimi programskimi jeziki in

prevedenimi. Za časovno kritične operacije se uporablja visoko optimizirana koda napisana v

enem izmed »prevedenih« programskih jezikov. Za povezovalni programski jezik (časovno

manj pomembne operacije) pa se uporablja Python (ali kateri izmed drugih manj zahtevnih

programskih jezikov). Tako se doseže kompromis med hitrostjo razvoja aplikacije (ceni) in med

učinkovitostjo aplikacije.

Za namene diplomske naloge smo celoten program napisali v Pythonu, vendar smo uporabili

različne knjižnice, ki pohitrijo delovanje in razvoj programa.

Tabela 4.1: Tehnične značilnosti programa

Tehnične značilnosti

Programski jezik: Python 2.7 [19]

Glavne uporabljene knjižnice:

Grafični vmesnik: WxPython [20]

Numerične operacije: NumPy [21]

Grafični vmesnik za prikaz grafov: Matplotlib [22]

Uporabljena programska okolja:

Integrirano razvojno okolje: PyCharm [23]

Orodje za urejanje grafičnega vmesnika: WxFormBuilder [24]

Page 37: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

26

Slika 4.1: Integrirano razvojno okolje PyCharm

Slika 4.2: Orodje za urejanje grafičnega vmesnika WxFormBuilder

Page 38: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

27

4.3 Programiranje grafičnega vmesnika

Grafični vmesnik smo oblikovali s ciljem, da bi bil čim bolj prijazen uporabniku. Zato je

pomembno, da je delovanje programa jasno že ob samem pogledu nanj.

Cilj našega programa je tudi, da je program samozadosten. Torej, da za samo uporabo in zagon

simulacije ne potrebujemo nobenega drugega programa. Da bi program ustrezal našim

zahtevam mora program ponujati naslednje funkcije:

• Sestavljanje konstrukcije

o Vstaviti vozlišča (koordinate, obremenitve vozlišča, morebitne podpore)

o Vstaviti elemente (kateri sta vozlišči elementa, lastnosti elementa (elastični

modul, površina preseka, vztrajnostni moment))

o Sprotno prikazovanje konstrukcije za boljšo uporabniško izkušnjo

• Post-procesiranje

o Prikaz magnitud napetosti (obarvani elementi: rdeča – tlak, zelena – nateg,

intenzivnost barve sorazmerna napetosti v elementu)

o Izpis pomikov v tabeli za vsa vozlišča

o Izpis napetosti v tabeli za vse elemente

• Optimizacija

o Izbira optimizacijskega algoritma

o Nastavljanje parametrov optimizacije

o Nastavljanje optimizacijskih spremenljivk (katera vozlišča in prostostne stopnje

bomo uporabili, kot optimizacijske spremenljivke)

o Nastavljanje največje dovoljene napetosti konstrukcije

Izdelave grafičnega vmesnika smo se lotili s programom WxFormBuilder. Ta program

omogoča, da na preprost način sestavimo okno grafičnega vmesnika in dodajamo gradnike

(besedilne oznake, vnosna polja, gumbe in ostale elemente). Te gradnike ustrezno

poimenujemo ter gumbom in ostalim aktivnim gradnikom definiramo funkcijo, ki se izvede ob

posameznem dogodku (npr. klik na gumb).

Program nam celotno izvorno kodo grafičnega vmesnika zapiše v datoteko »gui.py«. Ta

datoteka ni namenjena za urejanje, temveč jo vključimo v kodo programa, kot modul. Za

Page 39: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

28

delovanje tega grafičnega vmesnika mora biti na računalniku nameščena tudi knjižnica

WxPython.

Slika 4.3: Glavno okno našega programa

Zraven glavnega okna našega programa pa si lahko po želji odpremo tudi grafično okno, ki

skrbi za prikaz konstrukcije. Konstrukcija se samodejno osvežuje, ko dodajamo nova vozlišča

in elemente, kar nam olajša delo in zagotavlja, da imamo nadzor nad sestavljanjem modela.

Grafično okno je namenjeno tako pred-procesiranju, kot post-procesiranju. Pri pred-

procesiranju, ko sestavljamo konstrukcijo, so elementi obarvani z modro barvo. Prikazane so

tudi obremenitve in podpore vozlišč. Pri post-procesiranju se elementi obarvajo v odvisnosti

od napetosti. Elementi, obremenjeni na tlak, se obarvajo rdeče, elementi, obremenjeni na

nateg pa se obarvajo zeleno. Prikazano je deformirano stanje konstrukcije, po želji lahko vse

Page 40: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

29

pomike pomnožimo s skalirnim faktorjem. V ozadju pa se s svetlo sivo barvo izriše stanje

neobremenjene konstrukcije.

Slika 4.4: Grafično okno za prikaz konstrukcije

Slika 4.5: Temeljna koda aplikacije, ki skrbi za zagon okna

Page 41: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

30

Vstavljanje vozlišč

Ena izmed pomembnejših funkcij glavnega pogovornega okna je sestavljanje našega modela

konstrukcije. Da je konstrukcija polno definirana, moramo vnesti podatke za vozlišča in

podatke za elemente.

Slika 4.6: Vnosna polja grafičnega vmesnika za vstavljanje vozlišč

Koordinate vozlišč vstavimo v vnosno polje v metrih (Slika 4.6). Koordinati vozlišča pa morata

biti ločeni z vejico. Prvo število je koordinata v x-smeri, drugo število je koordinata v y-smeri.

Decimalno ločilo za vse vnose v grafični vmesnik je pika. Primer vnosa koordinat: »2.3, -1.0«.

Obremenitve na vozliščih vnesemo v drugo vnosno polje, pri čemer je enota za silo N in enota

za moment Nm. Obremenitve morajo med seboj biti ločene z vejico. Te si sledijo po vrsti: sila

v x-smeri, sila v y-smeri in moment v z-smeri. V primeru, da polje pustimo prazno so privzeto

vse obremenitve enake nič. Primer vnosa: »0, -1000, 5«.

V kolikor želimo, da je vozlišče podprto (pomik ali zasuk v tej prostostni stopnji je enak nič),

potem preprosto obkljukamo ustrezno okence.

Podatkovna struktura za vozlišče, s katero operira program, je shranjena s Pythonovo

strukturo »list«, ki lahko vsebuje različne podatkovne tipe. Primer enega vozlišča:

Vozlišče = [x, y, Fx, Fy, Mz, podx, pody, podMz, u1, u2, u3]

Pri čemer je:

x – koordinata v x smeri [mm] (realno število s plavajočo vejico)

y – koordinata v y smeri [mm] (realno število s plavajočo vejico)

Fx – Sila v x smeri [N] (realno število s plavajočo vejico)

Fy – Sila v y smeri [N] (realno število s plavajočo vejico)

Mz – Moment v z meri [Nmm] (realno število s plavajočo vejico)

podx – podpora v x smeri (Boolov operator)

Page 42: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

31

pody – podpora v y smeri (Boolov operator)

podMz – podpora v z smeri (Boolov operator)

u1 – pomik v x smeri [mm] (realno število s plavajočo vejico)

u2 – pomik v y smeri [mm] (realno število s plavajočo vejico)

u3 – zasuk v z smeri [rad] (realno število s plavajočo vejico)

Vstavljanje elementov

Potem ko imamo vnesena vozlišča, lahko začnemo vstavljati elemente. Program podpira le

palične elemente in elemente nosilca, zato ima element v obeh primerih le dve vozlišči. Ti dve

vozlišči lahko preprosto izberemo s spustnima seznamoma, na katerih so na izbiro vsa

vstavljena vozlišča.

Slika 4.7: Vnosna polja za vnos elementa

S spustnim seznamom izberemo tudi tip elementa. V kolikor je to palica moramo definirati le

elastični modul in površino preseka. V kolikor pa je to nosilec pa moramo definirati še

vztrajnostni moment nosilca.

Za elemente nosilcev se nam ponudi še dodatna možnost, da lahko med izbranima vozliščema

vstavimo večje število elementov z enakimi lastnostmi. V tem primeru program samodejno

izračuna koordinate dodatnih vozlišč in jih vstavi v bazo vozlišč. Ta funkcija nam omogoča, da

lahko bolj detajlno analiziramo pomike in napetosti nosilca.

Page 43: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

32

Slika 4.8: Modeliranje konzolno vpetega nosilca z 1 elementom

Slika 4.9: Modeliranje konzolno vpetega nosilca z 20 elementi

Ko vstavimo element, se mu samodejno izračuna tudi dolžina in kot elementa. Ta dva podatka

kasneje potrebujemo za izračun togostne matrike elementa.

𝐿 = √(𝑥2 − 𝑥1)2 + (𝑦2 − 𝑦1)2 (4.1)

𝜑 = arctan (𝑦2 − 𝑦1

𝑥2 − 𝑥1) (4.2)

Elementi so prav tako kot vozlišča shranjeni s Pythonovo podatkovno strukturo »list«.

Vsak element je shranjen z devetimi podatki:

Element = [tip, v1, v2, kot, L, E, A, I, Sigma]

Kjer je:

Tip – Tip elementa; 0 – Palica, 1 – Nosilec (Celo število)

v1 – Zaporedna števila vozlišča 1 (Celo število)

v2 – Zaporedna števila vozlišča 2 (Celo število)

kot – kot nosilca glede na x os [rad] (realno število s plavajočo vejico)

L – Dolžina elementa [mm] (realno število s plavajočo vejico)

E – Elastični modul elementa [MPa] (realno število s plavajočo vejico)

A – Površina preseka elementa [mm2] (realno število s plavajočo vejico)

I – Vztrajnostni moment elementa [mm4] (realno število s plavajočo vejico)

Sigma – Napetost [MPa] (realno število s plavajočo vejico)

Page 44: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

33

4.4 Programiranje metode končnih elementov

Jedro programa predstavlja numerični del, ki rešuje probleme mehanike po metodi končnih

elementov. Bistvo programiranja metode končnih elementov je, da nastavimo linearni sistem

enačb in ga rešimo. Časovno zahtevno ni le reševanje tega sistema, temveč tudi nastavljanje

sistema oziroma sestavljanje togostne matrike. Splošni postopek od vhodnih podatkov do

pridobljenih pomikov je prikazan na diagramu poteka na sliki Slika 4.10.

Slika 4.10: Diagram poteka za temeljni del metode končnih elementov

Page 45: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

34

Število neznank sistema je odvisno od števila vozlišč in števila prostostnih stopenj, ki jih ima

vsako vozlišče. V našem primeru ima vsako vozlišče 3 prostostne stopnje (DoF, ang. Degree of

Freedom) pomik v x smeri, pomik v y smeri in zasuk. Torej je število neznank sistema enako

številu vozlišč pomnoženo s številom prostostnih stopenj.

Število neznank linearnega sistema enačb:

𝑛 = 𝐷𝑜𝐹 ∙ 𝑛𝑣 (4.3)

Kjer je:

𝑛 – število neznank sistema

𝐷𝑜𝐹 – število prostostnih stopenj posameznega vozlišča

𝑛𝑣 – število vozlišč modela

Sistem linearnih enačb lahko splošno zapišemo, kot:

𝐊 ∙ 𝒖 = 𝑭 (4.4)

Kjer je:

𝐊 – Togostna matrika (velikosti 𝑛 x 𝑛)

𝒖 – vektor pomikov (velikosti 𝑛)

𝑭 – vektor obremenitev (velikosti 𝑛)

V enačbi sta znana togostna matrika in vektor obremenitev. Neznanke so pomiki, torej ko

rešimo naš sistem linearnih enačb (npr. z metodo Gaussove eliminacije) imamo znane vse

pomike in je naš problem rešen. Drugače je pri podporah, saj so tam znani pomiki in so

neznanke sile. Rešitev tega problema je razložena na naslednjih straneh.

Sestavljanje globalne togostne matrike

Pred sestavljanjem si pripravimo prazno globalno togostno matriko velikost 𝑛 x 𝑛. Indeksi

matrike po stolpcih in vrsticah si sledijo po naslednjem vrstnem redu: u1, v1, θ1, u2, v2, θ2, …

unv, vnv, θnv. Torej za vsako prostostno stopnjo posameznega vozlišča je ena vrstica in en

stolpec.

Ko imamo pripravljeno prazno globalno togostno matriko sledi prištevanje togostnih matrik

posameznih elementov. Prvotno se izračuna togostna matrika v lokalnem koordinatnem

sistemu elementa. Nato pa se togostna matrika elementa transformira v globalni koordinatni

Page 46: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

35

sistem. Členi transformirane matrike so tako pripravljeni za seštevanje k globalni togostni

matriki.

Elemente togostne matrike posameznega elementa sedaj prištejemo k elementom globalne

togostne matrike. Vrstica in stolpec posameznega člena matrike ustreza posameznemu

stolpcu in vrstici v globalni matriki. Členi, ki sovpadajo istemu vozlišču in prostostni stopnji se

seštejejo, kot je prikazano na sliki Slika 4.11. Slika zaradi poenostavitve prikazuje primer dveh

paličnih elementov, ki imata togostno matriko velikosti 4x4. Ta postopek lahko neposredno

prenesemo na togostne matrike elementov, ki imajo več prostostnih stopenj.

Togostna matrika elementa, ki je bila uporabljena pri programiranju našega programa, je

predstavljena v poglavju 2.4.

Slika 4.11: Sestavljanje globalne togostne matrike za dva palična elementa

Sedaj imamo pripravljeno globalno togostno matriko ter globalna vektorja pomikov in sil.

Načeloma je sistem pripravljen za reševanje. Vendar pa ugotovimo, da v vektorju pomikov

niso le neznanke in v vektorju sil niso znane vse sile. Izjema so prostostne stopnje vozlišč, ki so

podprta ali imajo predpostavljen pomik. Da pa je sistem rešljiv s pomočjo programske knjižnice

(NumPy) moramo v vektorju pomikov imeti le neznanke. To dosežemo s preprosto redukcijo

sistema, kot je prikazana na sliki Slika 4.12. Izbrišemo vrstice in stolpce tistih prostostnih

stopenj, ki imajo znan pomik.

Page 47: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

36

Slika 4.12: Redukcija globalne togostne matrike

Reševanje sistema enačb

Sledi reševanje sistema enačb. V našem primeru smo uporabili knjižnico NumPy, saj je uporaba

te knjižnice precej hitrejša kot pisanje lastne kode za reševanje sistemov enačb. Jedro knjižnice

je napisano v programskem jeziku C, kar je tudi neprimerljivo hitrejše, kot če bi bila ista zadeva

napisana v Pythonu.

Slika 4.13: Koda, ki reši sistem enačb in vrne pomike

Izračun napetosti

Funkcija nam vrne izračunan globalni vektor pomikov. Te pomike lahko sedaj vstavimo v bazo

naših vozlišč, kjer smo predhodno vsakemu vozlišču rezervirali mesto za njegove pomike.

Pred uporabo enačb za izračun napetosti moramo pomike iz globalnega koordinatnega

sistema transformirati nazaj v lokalni koordinatni sistem elementa.

Transformacijske enačbe:

𝑢1̅̅ ̅ = 𝑐𝑜𝑠𝜑 ∙ 𝑢1 + 𝑠𝑖𝑛𝜑 ∙ 𝑣1 (4.5)

𝑣1̅̅ ̅ = 𝑐𝑜𝑠𝜑 ∙ 𝑣1 − 𝑠𝑖𝑛𝜑 ∙ 𝑢1 (4.6)

𝜃1̅̅ ̅ = 𝜃1 (4.7)

Page 48: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

37

𝑢2̅̅ ̅ = 𝑐𝑜𝑠𝜑 ∙ 𝑢2 + 𝑠𝑖𝑛𝜑 ∙ 𝑣2 (4.8)

𝑣2̅̅ ̅ = 𝑐𝑜𝑠𝜑 ∙ 𝑣2 − 𝑠𝑖𝑛𝜑 ∙ 𝑢2 (4.9)

𝜃2̅̅ ̅ = 𝜃2 (4.10)

Nato lahko izračunamo natezno / tlačno napetost in upogibno napetost. Strig bomo v našem

primeru zanemarili.

Nateg/tlak:

𝜎𝑁𝑇 = 𝐸𝜀 = 𝐸 ∙𝑢2̅̅ ̅ − 𝑢1̅̅ ̅

𝐿 (4.11)

Upogibni moment [3]:

𝑀(𝑠) = 𝐸𝐼

𝐿2∙ [−6 + 12𝑠 𝐿(−4 + 6𝑠) 6 − 12𝑠 𝐿(−2 + 6𝑠)] ∙

[ 𝑣1̅̅ ̅

𝜃1̅̅ ̅

𝑣2̅̅ ̅

𝜃2̅̅ ̅]

(4.12)

𝑠 ∈ [0,1]

Ko v enačbo za moment vstavimo 0 dobimo moment na prvem vozlišču, ko pa vstavimo 1 pa

nam funkcija vrne moment za drugo vozlišče. Program preveri momenta za obe vozlišči ter

izračuna upogibno napetost za večji moment.

Upogibna napetost:

𝜎𝑈 =𝑀𝑚𝑎𝑥 ∙ 𝑦

𝐼 (4.13)

Ker sta obe napetosti normalni ju lahko preprosto seštejemo. Upogibna napetost se v nosilcu

pojavi v tlačni in v natezni obliki, zato prištejemo napetosti po naslednjem pravilu, ki nam

zagotavlja, da bo izpisana napetost dejansko največja napetost nosilca.

Če je 𝜎𝑁𝑇 > 0:

𝜎 = 𝜎𝑁𝑇+𝜎𝑈 (4.14)

Če je 𝜎𝑁𝑇 < 0:

𝜎 = 𝜎𝑁𝑇−𝜎𝑈 (4.15)

Page 49: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

38

4.5 Programiranje optimizacijskega modula

V tem poglavju je na kratko predstavljeno, kako smo se lotili programiranja optimizacijskega

modula našega programa. Teoretične osnove optimizacije in uporabljenih metod so opisane v

3. poglavju, tukaj pa bomo predstavili implementacijo teh metod za naš specifični primer

optimizacije.

Namen naše optimizacije je zmanjšanje mase konstrukcije, pri čemer pa napetosti ne smejo

preseči določene meje. V našem primeru smo se osredotočili le na optimizacijo konstrukcij,

sestavljeno iz paličnih elementov. V kolikor je konstrukcija mešana, torej, da je sestavljena iz

paličnih elementov in elementov nosilcev, bodo pri optimizaciji upoštevani le palični elementi.

Za ta namen smo implementirali dva tipa optimizacije: optimizacijo presekov, ki spreminja le

površino presekov palic, ter optimizacijo oblike, ki spreminja površino presekov palic ter

koordinate vozlišč.

Optimizacija presekov

Z optimizacijo presekov zagotovimo, da je celotna konstrukcija enakomerno obremenjena in

je material dobro izkoriščen. Ta tip optimizacije je preprosto implementirati, saj spreminjamo

le površino presekov palic.

Prvotno izvedemo normalno simulacijo, da dobimo znane napetosti v elementih. Nato

vsakemu elementu priredimo nov presek na naslednji način:

Izračunamo silo v palici, glede na napetost in sedanjo površino preseka:

𝐹 = 𝜎𝑝 ∙ 𝐴𝑝 (4.16)

Izračunano silo delimo z dopustno napetostjo in dobimo novo površino preseka elementa.

𝐴𝑛 =𝐹

𝜎𝑑 (4.17)

Kjer je:

𝐹 – Sila v palici

𝜎𝑝 – prejšnja napetost, 𝜎𝑑 – željena napetost

𝐴𝑝 – prejšnja površina preseka, 𝐴𝑛 – nova površina preseka

Page 50: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

39

V kolikor imamo statično določeno konstrukcijo je optimizacija zaključena, saj so sile v palicah

v tem primeru neodvisne od posameznih togosti palic.

V kolikor pa imamo statično nedoločeno konstrukcijo pa so sile v palicah odvisne tudi od

posameznih togosti palic. S tem ko pa smo spremenili preseke palic, smo spremenili tudi

togostno matriko konstrukcije, zato moramo simulacijo ponoviti, da pridemo do pravilnih

rezultatov.

Po ponovni simulaciji ugotovimo, da lahko napetosti v palicah odstopajo od dopustne

napetosti. To se je zgodilo zato, ker smo površino presekov palic prilagajali na prejšnjo togost

konstrukcije. Sama sprememba presekov pa spremeni togost. Če še enkrat ponovimo

optimizacijo in spremenimo preseke glede na novo togost, ugotovimo, da smo se precej

približali dopustni napetosti, saj tokrat sprememba togosti konstrukcije ni bila tako izrazita.

Optimizacija oblike

Namen optimizacije pri tem tipu je prav tako minimaliziranje mase. Za optimizacijske

spremenljivke tokrat izberemo koordinate vozlišč. Optimizacijska omejitev pa je zgornja meja

napetosti.

S tem ko spreminjamo koordinate vozlišč, spreminjamo obliko konstrukcije. Želimo dobiti

ugodnejšo obliko konstrukcije, ki bo zagotavljala boljši potek sil. V kolikor se bodo sile v palicah

zmanjšale, lahko zmanjšamo presek palic in posledično bo konstrukcija lažja.

Za našo optimizacijo oblike bomo uporabili dve metahevristični metodi za kateri je skupno, da

potrebujeta funkcijo, ki vrne oceno uspešnosti za določen nabor optimizacijskih spremenljivk.

Ocena uspešnosti je v našem primeru masa konstrukcije – manjša, kot je masa uspešnejša je

konstrukcija. Uporabljeni metodi obravnavata naš model kot »črno skrinjico«, zato je naša

glavna naloga, da kar se da učinkovito sestavimo to funkcijo uspešnosti.

Definiranje funkcije uspešnosti

Našo funkcijo mase, ki jo optimiziramo lahko zapišemo, kot:

𝑚 = 𝑓(𝑥1, 𝑦1, 𝑥2, 𝑦2, … , 𝑥𝑛, 𝑦𝑛) (4.18)

Kjer je:

𝑚 – masa konstrukcije, ocena uspešnosti našega modela

Page 51: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

40

(𝑥1, 𝑦1, 𝑥2, 𝑦2, … , 𝑥𝑛, 𝑦𝑛) – koordinate vozlišč, DNK pri genetskih algoritmih, pozicija pri

optimizaciji z rojem delcev

Masa konstrukcije je vsota posameznih mas elementov.

𝑚 = 𝜌 ∑𝐴𝑖 ∙ 𝐿𝑖

𝑒

𝑖=1

(4.19)

Kot vidimo, je skupna masa odvisna od posameznih dolžin in površin presekov elementov.

Nove dolžine elementov bi lahko izračunali takoj po spremembi koordinat vozlišč. Vendar pa

je naš namen, da se masa konstrukcije spreminja tudi v odvisnosti od sil v palicah, saj bomo le

v tem primeru dosegli uspešnejši potek silnic v konstrukciji. Zato je potrebno, da po

spremembi koordinat poženemo simulacijo in na podlagi izračunanih sil izračunamo

optimalno površino presekov palic. Torej v vsaki iteraciji izvedemo optimizacijo presekov.

Odvisnost mase lahko zapišemo kot: m = f(Ai(Fi), Li). S tem, ko smo spremenili površino

presekov smo spremenili togost, zato bi bilo korektno, da ponovno poženemo simulacijo.

Vendar se izkaže, da za optimizacijo to ni nujno potrebno, saj v vmesnih korakih optimizacije

ne potrebujemo točnih rešitev.

Slika 4.14: Diagram poteka za funkcijo uspešnosti

Page 52: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

41

Izbira optimizacijskih spremenljivk

Do zdaj smo govorili, da za optimizacijske spremenljivke preprosto vzamemo koordinate

vozlišč. Vendar pa ni vseeno katera vozlišča premikamo, če želimo ohraniti namembnost

konstrukcije. Določena vozlišča moramo ohraniti na prvotnem mestu. To so praviloma

vozlišča, ki so podprta ali vozlišča z zunanjimi obremenitvami.

Privzeto bo program izbral x in y koordinato vseh vozlišč, ki nimajo določenih zunanjih

obremenitev, niso podprta in niso vozlišča elementa nosilca.

V mnogo primerih pa je priročna dodatna funkcija, ki nam omogoča, da sami določimo, katere

koordinate izbranih vozlišč bodo služile kot optimizacijske spremenljivke. Vnosno polje je

prikazano na sliki Slika 4.15. V kolikor želimo spreminjati le določeno koordinato vozlišča,

vnesemo v izbrano polje »označba vozlišča, koordinata« npr. »A,x«. V kolikor vnesemo le

označbo vozlišča brez koordinate, bo program kot optimizacijski spremenljivki vzel obe

koordinati vozlišča. Vsak nov vnos mora biti v novi vrstici.

Slika 4.15: Grafični vmesnik za optimizacijski modul genetskih algoritmov

Page 53: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

42

Implementacija genetskih algoritmov

Programiranje genetskih algoritmov smo začeli neodvisno, ter preizkusili delovanje na

preprosti matematični funkciji. Tako smo dobili zagotovilo, da je naša koda algoritma pravilna

in resnično deluje. Teoretično ozadje in psevdokodo našega algoritma smo predstavili v

poglavju 3.5.

Sledilo je prilagajanje algoritma našemu specifičnemu primeru. Optimizacijske spremenljivke

(DNK osebkov) in funkcijo uspešnosti smo že predstavili. Podatkovna struktura osebkov in

generacij je prikazana na sliki, kjer smo za poenostavitev prikazali 5 generacij s 4 osebki.

Slika 4.16: Podatkovna struktura osebkov in generacij v kodi

Inicializacija

Na začetku algoritem ustvari prvo generacijo. V tej generaciji je toliko osebkov, kot smo vnesli

v vnosno polje okna. Za naše primere se je za ustrezno izkazalo okoli 100 osebkov. Ko

generiramo osebke prve generacije, se vsaki koordinati (genu) prišteje naključno število.

Privzeto je to število v intervalu [-100, 100] mm. Amplituda naključnega števila se mora

ustrezno povečati oziroma zmanjšati glede na velikost naše konstrukcije. Ko imamo ustvarjene

genske zapise vseh osebkov, izračunamo oceno uspešnosti (maso) za vsak osebek.

Selekcija

V našem primeru smo za tip selekcije izbrali prirejeno izbiro glede na rang osebka. Algoritem

razvrsti osebke v generaciji po uspešnosti, kjer si sledijo od najboljšega proti najslabšemu.

Nato upoštevamo Gaussovo distribucijo za naključno izbiro najboljšega osebka.

Slika 4.17: Funkcija, ki nam vrne naključno število glede na Gaussovo distribucijo

Page 54: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

43

Slika 4.18 Pravilo, ki smo ga definirali za izbiro osebka

Slika 4.19 prikazuje verjetnost reproduciranja glede na uspešnost osebka. Na absciso

razporedimo osebke od najboljšega proti najslabšemu. Njihova verjetnost reproduciranja se

spreminja z Gaussovo krivuljo. Spremenljivka »selekcija« nam omogoča kasnejše nastavljanje

optimizacije, da lahko algoritem priredimo našim zahtevam. Nižja, kot je vrednost parametra

»selekcija« višji bo selektivni pritisk na reproduciranje. Variiranje tega parametra je prikazano

na sliki Slika 4.20.

Slika 4.19: Verjetnost reproduciranja osebka v odvisnosti od uspešnosti

Slika 4.20: Vpliv variiranja parametra »selekcija«, na verjetnost reproduciranja osebkov

Page 55: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

44

Mutacija in križanje

Za reprodukcijo novega osebka smo uvedli eno točkovno križanje. Nato pa sledi mutacija

genskega materiala, ki je določena s tremi parametri:

• Začetna intenzivnost mutacije

• Končna intenzivnost mutacije

• Pogostost mutacije [%]

Za doseganje boljših rezultatov smo uvedli mutacijo, kateri se intenzivnost spreminja v

odvisnosti od zapovrstjo generacije. Intenzivnost mutacije linearno pada od začetne

intenzivnosti, ki je v prvi generaciji, do končne intenzivnosti, ki je v zadnji generaciji. S tem

dosežemo, da je na začetku optimizacije bolj osredotočeno na globalno iskanje minimuma,

kasneje pa k približevanju najdenemu minimumu.

Intenzivnost funkcije lahko zapišemo z enačbo:

𝑖𝑛𝑡𝑒𝑛𝑧 = 𝑖𝑛𝑡𝑒𝑛𝑧𝑧 − (𝑖𝑛𝑡𝑒𝑛𝑧𝑧 − 𝑖𝑛𝑡𝑒𝑛𝑧𝑘) ∙𝑔𝑒𝑛𝑒𝑟𝑎𝑐𝑖𝑗𝑎

š𝑡. 𝑣𝑠𝑒ℎ 𝑔𝑒𝑛𝑒𝑟𝑎𝑐𝑖𝑗 (4.20)

Kjer je:

𝑖𝑛𝑡𝑒𝑛𝑧 – intenzivnost mutacije v dani generaciji

𝑖𝑛𝑡𝑒𝑛𝑧𝑧 – intenzivnost mutacije v prvi generaciji

𝑖𝑛𝑡𝑒𝑛𝑧𝑘 – intenzivnost mutacije v zadnji generaciji

𝑔𝑒𝑛𝑒𝑟𝑎𝑐𝑖𝑗𝑎 – zaporedna številka generacije

Vsak mutiran gen se mutira po naslednjem pravilu:

𝑔𝑝𝑜 = 𝑔𝑝𝑟𝑒𝑑 + 𝑚 (4.21)

𝑚 ∈ [−𝑖𝑛𝑡𝑒𝑛𝑧, 𝑖𝑛𝑡𝑒𝑛𝑧]

Kjer je:

𝑔𝑝𝑟𝑒𝑑 - gen pred mutacijo

𝑔𝑝𝑜 - gen po mutaciji

𝑚 – mutacija

V našem primeru ne smemo množiti mutacije z genom (kot je to opisano v poglavju 3.5), saj

bi to pomenilo, da so vozlišča, ki so bolj oddaljena od koordinatnega izhodišča bolj mutirana.

Page 56: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

45

Zadnji parameter, ki določa mutacijo, je »pogostost mutacije«. Pove nam kolikšen delež genov

v genskem zapisu bo podvržen mutacijam, pri vsakem tvorjenju novega osebka.

Implementacija optimizacije z rojem delcev

Vključitev algoritma za optimizacijo z rojem delcev je potekalo relativno hitro, saj si precejšen

del kode deli z genetskimi algoritmi. Namen in tip optimizacije je ostal enak kot pri genetskih

algoritmih, zato smo uporabili enako funkcijo uspešnosti kot pri genetskih algoritmih. Prav

tako smo uporabili enako izbiro optimizacijskih spremenljivk.

Teorija tega algoritma je predstavljena v poglavju 3.6. Prav tako naša koda v Pythonu v grobem

sledi psevdokodi, ki je predstavljena v tem poglavju. Inicializacija delcev v prvem časovnem je

identična kot pri inicializaciji osebkov prve generacije pri genetskih algoritmih. Dodatno se v

tem primeru vsem delcem določi vektor hitrosti z naključnimi vrednostmi.

V našem primeru smo uporabili faktorje, ki sta jih definirala Kennedy in Clerc [12]. S pomočjo

teh faktorjev lahko lažje določimo uteži α, β, γ, in δ, ki določajo vpliv posameznih komponent

vektorja hitrosti. Ti faktorji prispevajo k stabilnosti algoritma, da ne »podivja«.

Parametri optimizacije:

• Število iteracij število časovnih korakov algoritma

• Število delcev število delcev

• Phi 1 faktor, ki daje prednost lokalnemu iskanju

• Phi 2 faktor, ki daje prednost globalnemu iskanju

• Kappa omejitveni faktor (ang. constriction factor)

Slika 4.21: Grafični vmesnik za optimizacijo z rojem delcev

Page 57: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

46

5 PREGLED REZULTATOV

5.1 Potrditev rezultatov

Eden izmed glavnih korakov v razvoju programa je tudi preverjanje rezultatov, ki jih dobimo iz

programa. V kolikor nam program vrača popolnoma nesmiselne rezultate takoj ugotovimo, da

je v programski kodi hrošč, ki ga je treba odpraviti. Te vrste napak v programu odpravljamo

sproti med programiranjem. Včasih pa se zgodi, da program vrača dokaj smiselne rezultate,

zato napake ne odkrijemo takoj. Zaradi tovrstnih napak moramo občasno ali pa vsaj ob koncu

razvoja programa rezultate detajlno preveriti. To lahko storimo s primerjanjem rezultatov z

analitičnimi ročnimi izračuni ali s primerjanjem rezultatov z isto namenskimi programskimi

orodji.

Potrditev rezultatov z analitičnim preračunom

Prvotno bomo preverili rezultate na preprostem jeklenem nosilcu, ki je konzolno vpet na eni

strani. Dolžina nosilca naj bo 1 m. Presek naj bo kvadraten, dimenzij 10 x 10 mm. Elastični

modul za jeklo je 210 000 MPa. Konec nosilca pa naj bo navzdol obremenjen s silo 50 N.

Podatki so:

𝐸 = 210 000 𝑀𝑃𝑎

𝐿 = 1000 𝑚𝑚

𝐹 = 50 𝑁

𝑦 = 𝑎

2=

10 𝑚𝑚

2= 5 𝑚𝑚

𝐼 =𝑎4

12=

(10 𝑚𝑚)4

12= 833,3 𝑚𝑚4

𝑀 = 𝐹 ∙ 𝐿 = 50 𝑁 ∙ 1000 𝑚𝑚 = 50 000 𝑁𝑚𝑚

Najprej izračunamo upogibno napetost [6]:

𝜎𝑢 =𝑀 ∙ 𝑦

𝐼=

50 000 𝑁𝑚𝑚 ∙ 5 𝑚𝑚

833,3 𝑚𝑚4 = 300,012

𝑁

𝑚𝑚2 (5.1)

Page 58: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

47

Slika 5.1: Največja napetost, ki jo izračuna program

Nato pa izračunamo še pomik [6]:

𝑢 =𝐹 ∙ 𝐿3

3𝐸𝐼=

50 ∙ 10003

3 ∙ 210000 ∙ 833,3= 95,242 𝑚𝑚 (5.2)

Slika 5.2: Največji pomik, ki ga izračuna program

Tako napetost kot pomik, ki ga izračuna program popolnoma sovpadata z našim analitičnim

izračunom. Naš program je v primeru preprostega nosilca uspešno prestal test.

Potrditev rezultatov s programskim orodjem Abaqus

Naslednja stopnja verifikacije je bolj kompleksen model. Izbrali bomo mešano konstrukcijo, ki

je sestavljena iz palic in nosilcev. Skupaj je 41 paličnih elementov in 20 elementov nosilcev.

Nosilec je na koncu roke »žerjava« in je modeliran z 20 končnimi elementi. Rezultate bomo

primerjali s programskim paketom Abaqus.

Page 59: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

48

Slika 5.3: Palična konstrukcija, ki smo jo uporabili za verifikacijski test

Primerjava pomikov

Primerjali smo pomike v skrajni točki žerjava, kjer se pojavi največji pomik. Tako lahko

predpostavljamo, da v kolikor se ta pomik popolnoma ujema z našim izračunom, se vsi pomiki

konstrukcije ujemajo.

Slika 5.4: Pomik v skrajni točki žerjava izračunan z našim programom

Slika 5.5: Pomik v skrajni točki žerjava izračunan z Abaqusom

Page 60: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

49

Rezultati pomikov iz obeh programov se ujemajo. Pomik v y smeri v skrajnem vozlišču

konstrukcije je -300,19 mm.

Primerjava napetosti

Za popolno verifikacijo izračuna napetosti smo primerjali dve napetosti: največjo napetost v

palicah in največjo napetost v nosilcu.

Slika 5.6: Napetosti izračunane z našim programom

Slika 5.7: Izračunane napetosti izračunane z Abaqusom

Največja napetost v palicah se v obeh primerih pojavi v zgornji levi palici, kjer nastopi tlačna

napetost -247,49 MPa.

Page 61: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

50

V primeru največje napetosti v nosilcu ugotovimo, da pride do odstopanja. Razlog za

odstopanje napetosti tiči v različnem pristopu izpisa napetosti. Abaqus nam izpiše napetost,

ki je povprečna za celotni element (izbrane imamo linearne elemente). Naš program pa nam

izpiše maksimalno napetost v elementu (kot je opisano v poglavju 4.4).

Ta razlika ne vpliva na napetosti v palicah, saj je napetost v palici čez celotno dolžino enaka.

V kolikor želimo primerjati rezultate moramo izračunati povprečno napetost elementa še za

naš program. Povprečno vrednost elementa dobimo, če seštejemo napetosti sosednjih

elementov in delimo z 2.

Napetost v izbranem elementu (maksimalna): 𝜎 = 234,375 MPa

Napetost v sosednjem elementu (maksimalna): 𝜎 = 210,9375 MPa

𝜎 =234,375 + 210,9375

2= 222,656 𝑀𝑃𝑎 (5.3)

Izračunana povprečna vrednost se popolnoma ujema z vrednostjo iz Abaqusa. Razlika je sicer

v predznaku, vendar v kolikor se v nosilcu pojavi le upogibna napetost imata tlačni in natezni

napetosti v elementu enaki amplitudi. Program je tudi v primeru zahtevnejše konstrukcije

uspešno prestal verifikacijski test.

5.2 Rezultati optimizacije

Optimizacija preprostega mostu

Za optimizacijo smo si izbrali preprost model mostu. Vse palice v začetnem modelu mostu

imajo enako površino preseka, zaradi tega je material v mnogih primerih neizkoriščen.

Ustrezna prerazporeditev uporabljenega materiala bi zmanjšala maso in zmanjšala

maksimalne napetosti. Masa mostu je 155,92 kg. Maksimalna napetost je 180 N/mm2.

Slika 5.8: Izvirna konstrukcija, ki je bila uporabljena za optimizacijo

Page 62: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

51

Nato izvedemo optimizacijo presekov, ki ustrezno prerazporedi material. Za maksimalno

napetost izberemo 100 N/mm2. Nova masa mostu je 84,39 kg, zmanjšali smo jo za 45,9 %.

Maksimalna napetost je 100 N/mm2.

Slika 5.9: Napetosti v konstrukcija po optimizaciji presekov

Naslednja stopnja optimizacije je optimizacija oblike. Uporabili smo genetske algoritme. Za

optimizacijske spremenljivke smo izbrali obe koordinati vseh vozlišč, ki nimajo predpisanih

zunanjih sil in niso podprta. Število generacij smo nastavili na 200 in število osebkov prav tako

na 200. Začetna intenzivnost mutacije je bila 300 mm, končna pa 0,1 mm. Masa tega mostu je

41,34 kg, glede na prejšnje stanje smo zmanjšali maso še za dodatnih 51 %. Glede na izvirno

stanje pa smo maso zmanjšali za 73,5 %. Maksimalna napetost je 100 N/mm2.

Slika 5.10: Konstrukcija po optimizaciji oblike

V primeru preprostega mostu se je naš program izvrstno izkazal. Sicer se je že pokazala

časovna zahtevnost našega algoritma, saj je za izvedbo 40 000 simulacij (200 generacij x 200

osebkov) program potreboval 3 minute in 25 sekund. Simulacija se je torej izvedla v 0,0051

sekunde, kar je neopazno za človeka, vendar pomembno v primerih optimizacij, kjer lahko

hitro dosežemo nekaj tisoč iteracij. Algoritem bi sicer lahko prišel do podobnih rezultatov z

10x manj iteracijami, vendar glede na to, da imamo preprost model, nam ni bilo treba

varčevati z računskim časom.

Page 63: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

52

Optimizacija »zahtevnejšega« mostu

V tem primeru smo izbrali primer mostu s štirimi podporami. Tokrat smo obremenili vsa

zgornja vozlišča z vertikalno silo navzdol, kot prikazuje slika Slika 5.11. Model ima v tem

primeru 65 elementov. Masa modela z že optimiziranimi preseki je 31,0 kg.

Slika 5.11: Izvirna konstrukcija uporabljena za optimizacijo

V tem primeru smo za optimizacijske spremenljivke izbrali le y koordinate vseh vozlišč brez

zunanjih obremenitev in podpor. Vključitev le ene koordinate, kot optimizacijske

spremenljivke, se je izkazalo ustrezno za takšne primere, kot so mostovi. S tem zmanjšamo

možnosti, da program zaide in ustvari nesmiselne rešitve. Manjše, kot je število optimizacijskih

spremenljivk (krajši DNK) manjše je tudi potrebno število osebkov za uspešno optimizacijo in

posledično skrajšamo tudi računski čas.

Tokrat smo izbrali 80 generacij in 100 osebkov, vse ostale nastavitve smo pustili privzete.

Slika 5.12: Oblika mostu po prvi optimizaciji

Rezultat, ki ga dobimo: Masa je 22,5 kg, glede na izvirni model smo maso zmanjšali za 28,1 %.

Delež mase, ki smo ga uspeli zmanjšat z optimizacijo je zadovoljiv. Vendar se pojavi dvom v

ustreznost oblike konstrukcije. Pričakovali smo lok zgoraj in ne spodaj. Vertikalne palice na

sredini mostu so zelo vitke in obremenjene na tlak. Te palice bi morali preveriti še na

sposobnost proti uklonu (saj program ne preverja uklona). Po vsej verjetnosti bi morali

povečati vztrajnostni moment in posledično bi se povečal presek in masa teh palic, nakar bi ta

optimizacija izgubila pomen.

Ugotovimo, da je dobljen rezultat neki lokalni minimum, ki ni primeren za realne konstrukcije.

Z nadaljevanjem optimizacije je relativno težko uiti temu lokalnemu minimumu, saj se

Page 64: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

53

konstrukcija vedno vrne v to obliko. Težave lokalnih minimumov se lahko mnogokrat rešimo

tako, da povečamo intenzivnost in pogostost mutacije. Vendar se posledično pojavijo težave

s konvergenco in nesmiselnimi rezultati.

Da pridemo do boljše rešitve, moramo optimizacijo izvesti v več korakih. Najprej malo

spremenimo izvirno obliko konstrukcije (Slika 5.13). Nato pri ustrezni obliki ustavimo

optimizacijo. Za izbrane optimizacijske spremenljivke izberemo le y koordinate sredinskih treh

vozlišč. Mutacijo povečamo na 2500 mm, nastavimo pogostost mutacije na 100 % in število

osebkov nastavimo na 300. Nato poženemo optimizacijo in po nekaj generacijah bi se moral

pojaviti osebek, ki ima lok pravilno oblikovan. V tem primeru lahko ustavimo optimizacijo in

nadaljujemo z običajnimi parametri (optimizacijske spremenljivke so vsa vozlišča, mutacija je

okoli 300 mm). Po koncu optimizacije dobimo zadovoljiv rezultat.

Slika 5.13: Koraki, ki smo jih izvedli pri tej optimizaciji

V kolikor želimo še izboljšati rezultat lahko poženemo optimizacijo še enkrat tako da

omogočimo optimizacijo obeh koordinat, vendar tokrat nastavimo mutacijo na manjše

vrednosti, saj želimo le manjše natančnejše izboljšave.

Končna konstrukcija ima maso 16,9 kg, glede na izvirni model smo maso zmanjšali za 45,4 %.

Slika 5.14: Končni rezultat optimizacije

Page 65: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

54

5.3 Primerjava optimizacijskih algoritmov

Metoda z genetskimi algoritmi in metoda optimizacije z rojem delcev imata precej različno

zasnovo. Kljub temu smo v večini primerov prišli do zelo podobnih rezultatov. Metodi sta v

našem primeru zahtevali tudi podobno število iteracij, da smo dobili primerljive rezultate.

Primerljivost metod lahko pokažemo na preprostem primeru mostu, ki je že bil predstavljen v

prejšnjem poglavju. Za obe metodi smo uporabili popolnoma enake pogoje. Obe metodi sta

imeli na razpolago skupno največ 5000 iteracij.

• Genetski algoritmi 50 generacij x 100 osebkov 5000 iteracij

• Optimizacija z rojem delcev: 125 čas. korakov x 40 delcev 5000 iteracij

Slika 5.15: Rezultati primerjave optimizacijskih metod

Z uporabo genetskih algoritmov smo zmanjšali maso konstrukcije za 38,4 % v primerjavi z

optimizacijo z rojem delcev, ko nam je uspelo zmanjšati maso za 37,2 %. Zadeva se ponovi, če

ponovimo test s 7500 iteracijami. Uporaba genetskih algoritmov je zmanjšala maso za -43,,1

% in optimizacija z rojem delcev je zmanjšala za -41,1 %. Zavedati se moramo tudi dejstva, da

sta obe metodi stohastični in nam zmeraj vrneta nekoliko drugačen rezultat.

En primer optimizacije ni dovolj, da bi lahko z zagotovostjo trdili, da je katera izmed teh dveh

metod, primernejša za ta tip optimizacije. V kolikor bi želeli favorizirati katero izmed metod,

bi morali opraviti vrsto preizkusov na različnih modelih in z različnimi parametri optimizacije,

kar pa presega namen tega diplomskega dela.

Page 66: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

55

6 SKLEP

Končni produkt diplomskega dela je presegel prvotna pričakovanja. Program, ki je bil napisan

za ta namen obsega več kot 1000 vrstic programske kode. Omogoča izračun poljubnih

ravninskih paličnih konstrukcij in konstrukcij, sestavljenih iz linijskih nosilcev.

Optimizacijski modul se je izkazal, kot učinkovit in robusten v primeru preprostejših

konstrukcij. V kolikor pa bi želeli optimizirati zahtevnejše konstrukcije z večjim številom vozlišč,

bi bilo treba uvesti nekakšno parametrizacijo oblike konstrukcije. S tem ko bi za optimizacijske

spremenljivke izbrali le te parametre, bi zmanjšali število dimenzij optimizacijskega prostora

in težavnost optimizacije bi se zmanjšala.

Program odpira možnosti za nadaljnji razvoj. Dodatno bi se lahko implementirala podpora za

prostorske konstrukcije in podpora za optimizacijo konstrukcij iz linijskih nosilcev. Uporabile

bi se lahko tudi druge optimizacijske metode.

Vloženo delo je zahtevalo znanja iz različnih področij: programiranja, mehanike, matematike

in optimizacije. Poglobilo je razumevanje metode končnih elementov in uporabljenih

optimizacijskih metod: genetskih algoritmov in optimizacije z rojem delcev.

Page 67: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

56

7 LITERATURA

[1] M. Kegl, B. Harl, Mehanika III. Maribor: Založništvo Fakultete za strojništvo Maribor,

2012.

[2] A. Alujevič, B. Harl, Mehanika I. Maribor: Založništvo Fakultete za strojništvo Maribor,

2009.

[3] R. Haftka, Finite element analysis of beams and frames, Dosegljivo:

http://web.mae.ufl.edu/nkim/eml5526/Lect05.pdf [Datum dostopa: 17. 5. 2017]

[4] what-when-how, FEM for Frames (Finite Element Method) Part 1, Dosegljivo:

http://what-when-how.com/the-finite-element-method/fem-for-frames-finite-

element-method-part-1/ [Datum dostopa: 17. 5. 2017]

[5] I. Kononenko, M. Robnik Šikonja, Inteligentni sistemi. Ljubljana: Založbe FE in FRI, 2010

[6] B. Kraut, Krautov strojniški priročnik, 15. izdaja. Ljubljana: Littera picta, 2011.

[7] B. Harl, M. Kegl, »Optimizacija oblike prostorske palične konstrukcije«, Strojniški

Vestnik-Journal of Mechanical Engineering, let. 51, št. 9, str. 570-588, september 2005.

[8] H. Kawamura, H. Ohmori, N. Kito, »Truss topology optimization by a modified genetic

algorithm«, Springer-Verlag, str. 467–472, 2002.

[9] R. Cazacu, L. Grama, »Steel truss optimization using genetic algorithms and FEA«,

Procedia Technology št.12, str. 339-346, oktober 2013.

[10] X. S. Yang, Nature-Inspired Metaheuristic Algorithms, 2. izdaja. Frome, Anglija: Luniver

Press, 2010.

[11] S. Desale, A. Rasool, S. Andhale, P. Rane, »Heuristic and Meta-Heuristic Algorithms and

Their Relevance to the Real World: A Survey«, International journal of computer

engineering in research trends, Vol. 2, str. 296-304, maj 2015.

[12] M. S. Innocente, J. Sienz, »Particle Swarm Optimization with Inertia Weight and

Constriction Factor«, v International conference on swarm intelligence. Cergy, Francija,

junij 2011.

[13] Color-coded contour lines with Mathematica, Dosegljivo:

http://mathgis.blogspot.si/2010/ [Datum dostopa: 27. 8. 2017]

[14] Rosenbrock function, Dosegljivo: https://en.wikipedia.org/wiki/Rosenbrock_function/

[Datum dostopa: 27. 8. 2017]

Page 68: UNIVERZA V MARIBORU - core.ac.uk · Metoda končnih elementov je najpopularnejša metoda za numerične simulacije v današnjem času. Razvoju te metode lahko sledimo v ð ì. leta

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

57

[15] Unique Innovations, Dosegljivo: http://unitions.com/services/ [Datum dostopa: 27. 8.

2017]

[16] Genetic Algorithms – Crossover, Tutorials Point, Dosegljivo:

https://www.tutorialspoint.com/genetic_algorithms/genetic_algorithms_crossover.h

tm [Datum dostopa: 27. 8. 2017]

[17] A. Friedlander, F. A. M. Gomes, Solution of a truss topology bilevel programming

problem by means of an inexact restoration method, Dosegljivo:

http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1807-03022011000100006

[Datum dostopa: 27. 8. 2017]

[18] D. Broekaart, What does it take to optimize your designs with the use of FEA. (30. 3.

2015) Dosegljivo: https://www.linkedin.com/pulse/what-does-take-optimize-your-

designs-use-fea-dolf-broekaart [Datum dostopa: 27. 8. 2017]

[19] Python website, Dosegljivo: https://www.python.org/ [Datum dostopa: 27. 8. 2017]

[20] wxPython website, Dosegljivo: https://wxpython.org/ [Datum dostopa: 27. 8. 2017]

[21] NumPy website, Dosegljivo: http://www.numpy.org/ [Datum dostopa: 27. 8. 2017]

[22] Matplotlib website, Dosegljivo: https://matplotlib.org/ [Datum dostopa: 27. 8. 2017]

[23] PyCharm website, Dosegljivo: https://www.jetbrains.com/pycharm/ [Datum dostopa:

27. 8. 2017]

[24] wxFormBuilder web, Dosegljivo: https://github.com/wxFormBuilder/wxFormBuilder

[Datum dostopa: 27. 8. 2017]