Upload
trannhi
View
239
Download
1
Embed Size (px)
Citation preview
UNIVERZA V MARIBORU
FAKULTETA ZA GRADBENIŠTVO, PROMETNO INŽENIRSTVO IN
ARHITEKTURO
Marcel Kuferšin
Računalniško programiranje v
gradbeništvu z uporabo Texas Basic in Matlab Java
Projektna naloga
univerzitetnega študijskega programa 1. stopnje
Maribor, maj 2015
Smetanova ulica 17 2000 Maribor, Slovenija
I
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Diplomski izpit univerzitetnega študijskega programa 1. stopnje
RAČUNALNIŠKO PROGRAMIRANJE V GRADBENIŠTVU Z UPORABO TEKSAS BASIC IN MATLAB JAVA
Študent: Marcel Kuferšin
Študijski program: Univerzitetni, Gradbeništvo
Mentor: doc. dr. Andrej Tibaut
Maribor, maj 2015
II
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
RAČUNALNIŠKO PROGRAMIRANJE V GRADBENIŠTVU Z UPORABO TEXAS BASIC IN MATLAB JAVA
Ključne besede: gradbeništvo, programiranje, Texas basic, Nspire CAS, Matlab, Java.
Povzetek
Diplomsko delo obravnava osnovne elemente programskega jezika Texas Basic in
programskega jezika Java v Matlabu. Diplomsko delo se osredotoča na praktično uporabo
teh dveh programskih jezikov. Praktični primeri se stopnjujejo po zahtevnosti in
obravnavajo področja geotehnike, statike in mehanike linijskih elementov. Oba
programska jezika sta v splošnem primerna za gradbene inženirje. Diplomska naloga je
osnova za poglobljeno spoznavanje zakonitosti in zmogljivosti programskih jezikov ter
njihovo uspešno aplikacijo na področju gradbeništva.
III
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
COMPUTER PROGRAMMING IN CIVIL ENGINEERING USING TEXAS BASIC AND MATLAB JAVA
Key words: civil engineering, programming, texas basic, nspire cas, matlab.
Abstract
The thesis will provide the reader with a basic explanation of two programming
languages, Texas Basic and Matlab's proprietary programming language similar to Java.
Introduction to the two languages will followwith practical examples from civil
engineering. With each example the syntax complexity will gradually rise. Despite the
complexity the syntax is appropriate for beginners and a good introduction to other more
advanced programming languages , like Java sinc it is similar to Matlab’s programming
language. The intention of this thesis is to introduce and explore practical use of
programming for a civil engineering professional.
IV
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
VSEBINA
1 UVOD .............................................................................................................................. 1
Namen naloge ......................................................................................................... 1
Struktura poglavij .................................................................................................... 1
2 UVOD V PROGRAMIRANJE (TEXAS BASIC) ..................................................................... 3
2.1 Vnos nove funkcije .................................................................................................. 3
2.2 Vnos novega programa ........................................................................................... 3
2.3 Razlike med programi in funkcijami ....................................................................... 6
2.4 Podstrani dokumenta ter Lists & Spreadsheet ....................................................... 6
2.5 Splošno o operatorjih v okolju Texas Basic ............................................................. 9
2.6 Matrike in seznami ................................................................................................ 18
3 PRIMERI ........................................................................................................................ 20
3.1 Izračun notranjih statičnih količin krožnega dela nosilca. .................................... 20
3.2 H-Diagram in delta h ............................................................................................. 27
3.3 Izračun α koeficientov pri betonski plošči ............................................................ 30
4 OKOLJE MATLAB ........................................................................................................... 42
4.1 Uvod ...................................................................................................................... 42
4.2 Vmesnik ................................................................................................................. 44
4.3 Osnovni ukazi ........................................................................................................ 45
4.4 Ukazi za brisanje ................................................................................................... 45
4.5 Prikazovanje teksta in števil .................................................................................. 47
4.6 Definiranje............................................................................................................. 49
4.7 Vnos ...................................................................................................................... 50
4.8 If elseif else. For .................................................................................................... 51
V
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
5 Primeri .......................................................................................................................... 52
5.1 Izračun jedra prereza ............................................................................................ 52
5.2 Preračun podpornega zidu ................................................................................... 60
6 ZAKLJUČEK .................................................................................................................... 95
7 VIRI IN LITERATURA ...................................................................................................... 97
8 PRILOGE ........................................................................................................................ 98
8.1 Seznam slik ............................................................................................................ 98
8.2 Seznam preglednic .............................................................................................. 100
8.3 Naslov študenta .................................................................................................. 100
8.4 Kratek življenjepis ............................................................................................... 100
VI
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
UPORABLJENI SIMBOLI
𝜑 – kot pri krožnem delu konstrukcije
𝜑 – strižni kot zemljine
𝜑𝑑 – projektni strižni kot zemljine
Fx, Fy – sile
Q,q,p – zvezna obtežba
Xa, Ya, Xb, Yb – reakcije v podporah
N - notranja statična količina (osna)
V - notranja statična količina (prečna)
M - notranja statična količina (moment)
𝜈 – poissonov količnik
dh, Δh – razlika h diagramov
α – vplivni koeficient zaradi enotine obtežbe
Ez – elastični modul zemljine
Iy, Iz – vztrajnostni moment
Iyz – deviatorični vztrajnostni moment
𝑌𝑓, 𝑍𝑓 – koordinate jedra prereza
A – površina
iz, iy – vztrajnostni polmer
𝛾𝜑 , 𝛾𝑐, 𝛾𝑅;ℎ, 𝛾𝐺,𝑑𝑠𝑡, 𝛾𝐺,𝑠𝑡𝑏 – varnostni faktorji
𝛿𝑎,𝑝 – trenje med zidom in zaledno zemljino
𝐾𝑎𝑔,𝑝𝑔 - koeficient aktivnega oz. pasivnega zemeljskega pritiska
𝐾𝑎𝑐 – koeficient kohezijskega odpora
𝐸𝑎𝑔,𝑎𝑝 – aktivni zemeljski pritisk
VII
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
𝑐𝑐 – faktorirana kohezija zemljine
𝐸𝑎𝑐 – rezultantni odpor zaradi kohezije
𝐻𝑑 - projektna vrednost rezultantne sile, ki deluje vzporedno z osnovo temelja
𝑉𝑑 - projektna vrednost rezultantne sile, ki deluje normalno na osnovo temelja
𝑅𝑑,𝑧𝑑𝑟𝑠 – odpor proti zdrsu, ki deluje vzporedno z osnovo temelja
𝛿𝑑 – trenje med osnovo temelja in zemljino
e – ekscentričnost
𝜎𝐿,𝐷, 𝜎𝑅 – kontaktne napetosti
𝑁𝑞, 𝑁𝑐, 𝑁𝛾 - brezdimenzijski faktorji za nosilnost
𝑏𝑞, 𝑏𝑐, 𝑏𝛾 - brezdimenzijski faktorji za naklon temelja
𝑠𝑞, 𝑠𝑐, 𝑠𝛾 - brezdimenzijski faktorji za obliko temelja
𝑖𝑞, 𝑖𝑐, 𝑖𝛾 - brezdimenzijski faktorji zaradi nagiba zaradi obtežbe Hd
Rd – nosilnost temeljnih tal
UPORABLJENE KRATICE
Ti – Texas instruments
NaN – Not a Number
CAS – computer aided software
Smetanova ulica 17 2000 Maribor, Slovenija
1
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
1 UVOD
Namen naloge
Danes živimo v času, kjer nam na vsakem vogalu vsakdana potek življenja krojijo orodja in
naprave, ki jih upravljajo programi. Ta nov ekosistem, če mu lahko tako rečemo, je postalo
nepogrešljivo orodje s katerim pomagamo oblikovati svet, kjer seveda pomembno vlogo
igra gradbeništvo. S pomočjo programov in avtomatiziranih orodij, ki jih poganjajo
programi, gradimo in oblikujemo objekte, katerih v preteklosti ni bilo mogoče računsko
preveriti niti ne zgraditi z zagotovilom, da bo objekt zadostil trdnostim pogojem. V
zastavljeni nalogi se bomo tako predvsem ukvarjali z uvodom v svet programiranja in prikaz
nekaj pogostih računskih gradbenih problemov.
Za večino programskih rešitev praktične (ne znanstvene) narave, zadoščajo že funkcije in
principi, ki so opisani in prikazani v tem delu. Pri kreiranju programa je v grobem potrebno
misliti na tri stvari. Te so vnos (input), glavni del programa, kjer teče izračun in rezultat
(output). Pri pisanju zahtevnejših in daljših programov je zlasti pomemben pravilni vrstni
red definiranja in izvajanja funkcij in spremenljivk.
Pri pisanju programov je torej ključnega pomena zaporedje dogodkov. Pravilno delujoč
program je tako nepogrešljivo orodje pri izračunu ponavljajočih se problemov, ki so v
gradbeništvu pogosti in časovno zahtevni.
Namen naloge je torej, obravnava Texas Basic in Matlab, na osnovi praktičnih primerov iz
gradbeništva.
Struktura poglavij
Diplomska naloga je sestavljena iz osmih poglavij. Prvo in šesto poglavje sta uvod in
zaključek, vmes so 4 poglavja vsebine. Zadnji dve poglavji sta priloge in literatura.
2
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- Prvo poglavje je uvod.
- Drugo poglavje je uvod v programiranje v Texas Basicu, kjer so opisani osnovni
elementi sintakse, uporaba preglednic in druge zakonitosti jezika.
- Tretje poglavje so programski primeri v Texas Basicu: izračun krožnega dela
konstrukcije, h oz. dh diagram in α koeficienti pri betonski plošči.
- Četrto poglavje je uvod v programiranje v Matlabu, kjer so obrazložene
najpogostejše funkcije in zakonitosti.
- Peto poglavje so programski primeri v Matlabu, ki zajemajo izračun jedra prereza z
grafičnim rezultatom ter izračun podpornega zidu, ki vsebuje grafični uporabniški
vmesnik in grafični rezultat. Slednji program je bistveno daljši od ostalih.
- Šesto poglavje je zaključek s splošno primerjavo obeh programskih okolij.
- Sedmo in osmo poglavje navajata literaturo in seznam slik in tabel.
3
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
2 UVOD V PROGRAMIRANJE (TEXAS BASIC)
Tako imenovan Texas basic je programski jezik podjetja Texas Instruments. Uporablja se
za pisanje programov v sklopu njihove linije grafičnih kalkulatorjev Nspire CAS with
Touchpad in Nspire CX CAS.
Texas basic je napram drugim jezikom precej poenostavljen in uporabniško prijazen, dokler
gre za majhne programe. Zaradi tega je primeren za začetnike in za hitre programske
rešitve, če ne želimo dolgotrajnejšega privajanja na sintakso.
2.1 Vnos nove funkcije
Program lahko pišemo ali v kalkulatorju samem ali pa v TI-Nspire™ CAS Student Software
namiznem okolju za računalnik. Slednje je veliko preglednejše in bolj praktično. Resnih oz.
večjih programov je skoraj nemogoče pisati v kalkulatorju, ker je preglednost slaba zaradi
mahnega zaslona. Na samem kalkulatorju je praktično pisati le funkcije direktno v
calculator aplikaciji z ukazom Define.
V kalkulator jo vpišemo tako, kot je prikazano na
sliki 2.1. Uporabimo funkcijo Define, sledi ime iz, ki
je poljubno, v oklepaju sledita spremenljivki (širina
in višina nosilca) in še dejanska funkcija. S tipko
enter potrdimo definicijo funkcije. Takšne funkcije
lahko definiramo v aplikaciji calculator ali znotraj
programa in jo potem uporabljamo vedno znova
(kličemo znotraj programa).
2.2 Vnos novega programa
Na računalniku odpremo TI-Nspire CAS Student Software→File→New Ti Nspire Document
Computer page size→Add calculator→Insert→Program editor→New (slika 2.2) Že v tem
koraku ni vse samoumevno, saj se je potrebno držati pravil pisanja imen datotek in
programov. V splošnem rečeno, če program v tem oknu poimenujemo „hello world“ s
presledkom in če ga shranimo s tem imenom se ta ne bo pokazal v katalogu programov na
Slika 2.1: Funkcija define
4
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
kalkulatorju. Zato si velja zapomniti, da se je treba presledkov v imenih izogibati oz.
uporabljati druge znake (npr. _). Torej program poimenujemo hello_world in datoteko
kasneje shranimo na enak način in bo program deloval. V drugem podmeniju izberemo ali
hočemo pisati program ali funkcijo.
V tretjem podmeniju izberemo vidnost programa. Če nastavimo na LibPub (library public),
bo program viden v katalogu programov. V nasprotnem primeru ne bo viden. Ko kliknemo
ok se okno na sliki 2.2 zapre in se znajdemo v praznem dokumentu, kjer je mogoče pisati
sintakso.
Slika 2.2: Okno za vnos novega programa
5
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Program pišemo v vrsticah med Prgm in EndPrgm (slika 2.3). V oklepajih takoj za imenom
hello_world prve vrstice lahko definiramo vhodne vrednosti, na primer b in h, vendar
definicija ni obvezna. Za prvič napišemo: Disp "Hello World". Ko bomo program zagnali se
bo izpisalo na zaslonu „Hello World“. Funkcija Disp (Display) prikaže poljuben tekst ali
izraz, ki je znotraj narekovajev ””.
Pravtako pokaže rezultate nekega
računa.
Da spravimo program v delujoče
stanje moramo preveriti
pravilnost sintakse in ga shraniti v
katalog. To naredimo z desnim
klikom in klikom na check syntax
and store. Nato ga še moramo
shraniti (ctrl+s) s poljubnim
imenom, s tem, da pazimo pravila
poimenovanja: hello_world.
Končno še osvežimo knjižnico:
Tools→Refresh libraries.
Isti postopek shranjevanja
programa velja za namizno okolje
in za kalkulator.
Sedaj je program v katalogu, do katerega pridemo tako, da stisnemo gumb s simbolom
knjige na tipkovnici in pod zavihkom 6 najdemo program (slika 2.4). Če smo pisali program
na računalniku je ta shranjen samo na računalniku. Da ga shranimo na kalkulator gremo v:
File→Save to handheld. Shraniti ga moramo v My lib mapo na kalkulatorju, ker je to privzeta
Slika 2.3: Prvi program hello_world
6
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
mapa za programe. Postopek dodajanja programa v knjižnico v kalkulatorju ponovimo, tako
kot na računalniku. Če poženemo program, dobimo (slika 2.5):
2.3 Razlike med programi in funkcijami
- -Funkcije je mogoče direktno predstaviti na grafu, programov ne.
- -Funkcije lahko algebrajično uporabljamo znotraj izrazov: 3*iz(2,5), programov ne
moremo
- -Programe lahko poganjamo le iz Calculator in Notes, funkcije pa lahko iz
Calculator, Notes, Lists &Spreadsheet, Graphs & Geometry, in Data & Statistics
- -Programi definirajo svoje spremenljivke globalno ali lokalno, kar pomeni, da je
neka vrednost znotraj programa zdaj tudi dostopna v Calculatorju.
- -Funkcija lahko kliče funkcijo, program lahko kliče funkcijo, ne more pa program
delovati znotraj funkcije
- -Funkcije so lokalne, kar pomeni, da če smo funkcijo definirali v Calculatorju, ta ni
definirana v programu ampak jo je potrebno znova definirati znotraj programa.
2.4 Podstrani dokumenta ter Lists & Spreadsheet
Vsako novo datoteko, ki jo odpremo lahko vsebuje več podstrani oz. aplikacij. Meni za
podstrani odpremo v levi orodni vrstici (Page sorter). Če programi in funkcije niso shranjene
v MyLib mapi, bodo dostopne le znotraj posameznega dokumenta. Dokumentu lahko
dodamo npr. stran za računanje (aplikacija Calculator), Program editor, kjer lahko pišemo
Slika 2.4: seznam programov Slika 2.5: Rezultat programa
7
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
programe in funkcije, stran s preglednicami, kjer hranimo vhodne in izhodne vrednosti
(slika 2.6), aplikacijo za grafe itd.
Kot rečeno, lahko v preglednicah uporabljamo le funkcije, saj programov ne podpira. Liste
vrednosti, ki jih vnesemo v preglednico lahko nato uporabimo v funkcijah in programih, pri
čemer se programi lahko izvajajo le v Calculatorju.
Ko naslavljamo vrednosti iz preglednice preprosto napišemo: ali[1], kar pomeni, da želimo
uporabiti prvi člen iz stolpca A, imenovanega „ali“ (slika 2.7). Če delamo izračun direktno v
preglednici, potem uporabljamo podobne oznake kot v excelu: a1:a5, a1$, a$1. Oznaka a$1
fiksira vrednost, ki je v celici a1, a1$ je pa enak simbolu „a1“.
Slika 2.6: Preglednica in podstrani na levi strani
8
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 2.7:Podstran za pisanje programov (program editor) v dokumenu
9
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
2.5 Splošno o operatorjih v okolju Texas Basic
Našteli bomo nekaj najpogostejših operatorjev (funkcij), s katerimi oblikujemo program.
Velja še omeniti, da Texas basic pri pravilnosti sintakse ni občutljiv na velike in male
začetnice, saj če napišemo disp se pri preverjanju samodejno popravi v Disp. V sintaksi tudi
ne moremo vseh ukazov nizati drugega za drugim v isti vrstici ampak jih je potrebno vnesti
v naslednjo vrstico.
Nekaj pogostih funkcij:
- Disp
Ukaz Disp (display), prikaže poljuben tekst ali rezultat računskega postopka. V
programu se rezultati ne izpišejo avtomatsko kot pri funkcijah, zato je potrebno
uporabiti ukaz Disp. Uporablja se tudi ukaz Text in v drugih jezikih Print.
Pri prvem Disp na sliki 2.8 se samo izpiše tekst
„Hello World“. Takoj za ukazom Disp mora biti
presledek in predvideni tekst v narekovajih.
Pri drugem primeru nam Disp pokaže rezultat
a+b. Uporaba narekovajev je nujna samo za
tekst. Pravtako, če pišemo komentarje v
programih, jih damo v narekovaje, da jih ločimo
od sintakse.
V tretjem primeru se nam izpiše: „Vztrajnostni moment Iz je“ in takoj za tem še vrednost
spremenljivke iz. Številčna vrednost iz se komentarju pripne tako, da takoj za narekovaji
postavimo vejico in spremenljivko iz, ki je vrednost nekega vztrajnostnega momenta.
Slika 2.8: Uporaba disp funkcije
10
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- := (store)
Store (:=) je eden izmed najbolj uporabljanih
znakov na splošno. Z njim priredimo
spremenljivki neko vrednost ali izraz.
Spremenljivki, ki ji poljubno dodelimo ime
(upoštevajoč pravila poimenovanja), lahko
definiramo fiksno vrednost ali poljuben izraz
(slika 2.9). Te spremenljivke so v programih
globalne, kar pomeni, da so dostopne tudi v
Calculatorju, razen če jih po izvršbi programa zbrišemo s funkcijo DelVar.
- Request
Funkcija Request je združba funkcij Disp in :=.
Request prikaže tekst in hkrati shrani (:=)
vrednost v spremenljivko, ki stoji za vejico. Ko
program izvede funkcijo Request, se na
zaslonu izpiše tekstovno okno, kamor
vnesemo zahtevano vrednost.
Slika 2.9: Deklariranje vrednosti
Slika 2.10: Request funkcija
11
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- If Then, ElseIf, EndIf
If stavek je eden izmed najpomembnejših oblik
obvladovanja poteka sintakse in različnih pogojev
nasploh. If stavek je sestavljen iz začetka „If“ in konca
„EndIf“. Zraven še pripadata Then in ElseIf. ElseIf
uporabimo, če ima stavek več pogojev. Znotraj If stavka
lahko uporabimo več If stavkov. Primer enojnega If
stavka z večjimi zaporednimi pogoji je na sliki 2.11,
primer večpogojnega vzporednega pa na sliki 2.13 in
2.14. Uporabljamo lahko tudi operatorje <> in and in or.
Slika 2.11
Slika 2.13
Slika 2.14 Slika 2.12
12
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- Goto Lbl
Goto je posebej priročen, ko je potrebno preskočiti velik del kode ali če hočemo v en
program spraviti več različne kode, ki mora druga drugo preskočiti. Sicer bi se dalo z If
stavkom, vendar je mnogo manj pregledno. Goto je sestavljen iz Goto >tekst< in Lbl >
tekst <. Goto deluje tako, da iz Goto > tekst < skoči na Lbl > tekst <.
Recimo, da pišemo program za izračun vitkih podpornih konstrukcij. V tistem delu kode,
kjer računamo zemeljske tlake je za vse načine enaka (če gre za isti sistem). Naprej se
pa program razdeli na več samostojnih metod. Te so lahko metoda linearne
porazdelitve, blumova metoda, metoda plastifikacije, sidrana metoda.
Tako bo program preskočil metode, ki jih ni potrebno računati in takoj pričel z metodo,
ki smo si jo izbrali že v začetku.
Na sliki 2.15 je začetni del Goto funkcije, ki se
aktivira s pomočjo If stavka.
Na sliki 2.16 je del
sintakse, kamor bo
Goto funkcija skočila.
Prvi del tega sklopa je
na sliki 2.15.
Slika 2.15 : Začetni del Goto funkcije
Slika 2.16: Končni del Goto funkcije
13
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- For EndFor
For se uporablja, ko se pri izračunu pojavlja ciklična sprememba iste spremenljivke.
Primer za to je izračun notranjih statičnih količin krožnega dela konstrukcije na sliki
2.17. V tem primeru je program razdeljen na dva dela. Prvi del gre od ϕ=0° do ϕ=45°,
drugi pa od ϕ=45° do ϕ=90°. Pri For funkciji moramo spremenljivko, ki se bo ciklično
spreminjala, lokalizirati z Local ϕ. Vidimo,
da For potrebuje 4 argumente, ki so ločeni z
vejicami. Prvi argument pove, katera
spremenljivka se bo ciklično spreminjala
(ϕ), druga pove začetno vrednost, tretja
končno vrednost in četrta korak (angl.
increment). For stavek se konča z EndFor. V
primeru na sliki 2.17, se bo izračun za normalno silo ponavljal tolikokrat, dokler ne bo
kot ϕ dosegel 45°.
- While EndWhile
While je podobno kot For. Je zanka, ki se
ponavlja, dokler pogoj ne preneha veljati. V
primeru na sliki 2.18 je potrebno najprej
definirati pogoj za kot ϕ, ki mora biti manjši
ali enak 45°. Znotraj zanke zapišemo, da bo
novi kot ϕ ob vsaki ponovitvi pridobil 5°. Ta
zanka na prvi pogled zgleda čudno.
Razumeti moramo, da je ϕ, ki je v izrazu
ϕ+5 stari ϕ, ki je nastal pri prejšnji zanki. Ta se bo sedaj povečal za 5 in bo do konca te
zanke novi ϕ, ki stoji pred znakom :=. Ob začetku nove zanke bo pa ta spet stari ϕ...
Primer z While da enake rezultate, kot primer z For (slika 2.17.)
Slika 2.17
Slika 2.18
14
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- Min, Max, Sum, Mean
Omenjenih funkcij ni potrebno posebej opisovati, saj iz liste števil dajo točno to, kar
pričakujemo od njih. Težavno je predvsem za začetnike, saj ni eksplicitno pojasnjeno,
kaj so argumenti. Vsaka funkcija ima prostor za dva argumenta, kar ne pomeni, da lahko
vnesemo le dve števili ampak tudi dve množici števil (Listi). Množice kreiramo tako:
api:={2,6,7,12,34} in bi:={3,6,9}. Listi, ki se imenujeta api in bi sta zdaj kreirani.
Za minimum med množicama zapišemo: min(api,bi) ali min({2,6,7,12,34},{3,6,9}).
Liste lahko kreiramo tudi v Lists & Spreadsheets in jih uporabljamo v Calculatorju. Če
uporabljamo te funkcije v Lists & Spreadsheets moramo vedeti, da funkcije ne poiščejo
minimuma med vsemi števili, ampak samo med vzporedno primerjanimi celicami (npr
a1 in b1). Funkcija mean deluje po enakem principu kot min in max.
Potrebno je paziti, da je v stolpcih enako število števil. Če ni, dobimo napako Dimension
mismatch. Pozorni moramo biti, da v praznih celicah ni kakšnih drugih znakov
(-,_,error), ker ti povzročajo prej omenjeno napako.
V stolpcu C je uporabljena funkcija za povprečno vrednost, kjer argument a[] pomeni,
da števila črpamo iz stolpca A, ne glede na to, da je poimenovan ali.
Slika 2.19: Primeri funkcij v Texasovi preglednici
15
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V stolpcu D deluje funkcija mini, ki sem jo v ozadju spisal in je identična funkciji za
maksimum (max). Nauk stolpca F je naslednji: funkcija mini je napisana tako, da ni
potrebno navesti argumentov v oklepajih (abi,bi), saj sta argumenta že uporabljena v
sintaksi in zadošča le mini(). Torej, tudi, če nimamo argumentov v oklepajih, morajo biti
zraven prazni oklepaji, saj drugače dobimo error.
Še ena pomembna lastnost v zvezi z uporabo Cas Student paketa je, da ko spremenimo
program ali funkcijo moramo vedno program shraniti in osvežiti knjižnico (refresh libraries).
Če tega ne storimo, se lahko zgodi, da v različnih aplikacijah uporabljamo različne različice
funkcij in programov. Če naredimo le Check syntax and store, bo funkcija sicer posodobljena
in če jo uporabljamo na način, da navedemo le njeno ime (npr. mini()), bo uporabljena
najnovejša različica. Če pa iz kakršnegakoli razloga dostopamo do nje, kot to delamo s
programi, se pravi, da najprej navedemo ime dokumenta v katerem je funkcija shranjena
(v mojem primeru listsmin\mini()1), bo uporabljena tista funkcija, ki je nazadnje bila
shranjena (ctrl+s) v DATOTEKO in ne tista, ki smo jo shranili s Check syntax and store.
1 Funkcija mini na sliki 2.20 ni ista kot funkcija v stolpcu F na sliki 2.19
Slika 2.20 : Funkcija mini s predpisanimi argumenti v oklepajih
16
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- setMode
Nekatere enačbe in postopki zahtevajo svoje parametre, pri katerih moramo dobiti
rezultate, ki smo jih „vajeni“. H-diagrame računamo tako, da imamo kalkulator
nastavljen na radiane. Kakšen drugi program pa spet potrebuje zgolj „navadne“
stopinje. Da ne bi stalno ročno spreminjali teh nastavitev lahko to naredimo s funkcijo
setMode. SetMode() vsebuje dva argumenta, ki se nanašata na tabelo spodaj. Primer,
da želimo spremeniti nastavitev kalkulatorja, da bo računal v radianih:
setMode(2,1)
Tabela 2.1: Tabela velja Za Nspire CAS in CAS CX kalkulatorje
Nastavitev Zaporedna št.
Pomen
Izpis rezultata 1 Število prikazanih števk
FLOAT N= [1,13] Fiksno število decimalnih mest. Od 0 do 12 mest.
FIX N= [14,26] Skupno število števk.
Kot 2 Tip kota
Radian 1
Stopinja 2
Grad 3
Eksponentni izpis 3 Definira način izpisa rezultatov
Normalno 1 Normalen zapis, razen za večja števila, ki so v 10^e
Znanstveno 2 Vse prikazano kot x.yz*10^e
Inženirsko 3 Enako kot znanstveni, le da je eksponent večkratnik od 3.
Tretiranje rezultatov
4 Kompleksna in realna števila
Realna 1 a,b,c
Kompleksna 2 x+bi
Polarna 3 𝑟𝑒𝜃𝑖 Zaokrožitev rezultata
5
Avtomatsko 1
Približno 3 Rezultati so decimalni
Oblika vektorja 6
Kartezični x,y,z 1
Polarni/cilindrični 2
Sferični 3
17
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Tabela 2.2: Tabela velja za starejše kalkulatorje
Nastavitev Zaporedna št.
Pomen
Graf 1 Tip grafa za risanje
Funkcija 1 Navadne funkcije tipa f(x)
Parametrična 2 Funkcije tipa x(t), y(t)
Polarna 3 Funkcije tipa r(θ)°
Sekvenca 4 Nariše sekvenco števil u(n)
3D 5 Funkcija tipa z(x,y)
Diferencialna 6 Nariše rešitve in polja enostavnih diferencialnih enačb
Izpis rezultata 2 Število prikazanih števk
FIX N= [1,13] Fiksno število decimalnih mest. Od 0 do 12 mest.
FLOAT 14 Enakovredno nastavitvi FLOAT 12
FLOAT N= [15,26] Skupno število števk.
Kot 3 Tip kota
Radian 1
Stopinja 2
Grad 3
Eksponentni izpis 4 Definira način izpisa rezultatov
Normalno 1 Normalen zapis, razen za večja števila, ki so v 10^e
Znanstveno 2 Vse prikazano kot x.yz*10^e
Inženirsko 3 Enako kot znanstveni, le da je eksponent večkratnik števila 3.
Tretiranje rezultatov
5 Kompleksna in realna števila
Realna 1 a,b,c
Kompleksna 2 x+bi
Polarna 4 𝑟𝑒𝜃𝑖 Izpis formul 7 Način izpisa enačb
Izključeno 1 Enačbe so napisane tako, kot se jih tipka
vključeno 2 Enačbe so napisane tako, kot na papirju
Delitev zaslona 8 Razdelitev zaslona na dva dela
En zaslon 1 En zaslon; fullscreen
Zgoraj in spodaj 2 Zaslon se razdeli na dva dela; zgoraj in spodaj
Levo in desno 3 Zaslon se razdeli na dva dela; levo in desno
Zaokrožitev ali ne 14
Avtomatsko 1
Točno 2 Rezultati so ulomki
Približno 3 Rezultati so decimalni
18
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
2.6 Matrike in seznami
Če programiramo nekaj, kar zahteva dosti vnosov in je dosti rezultatov, je praktično te
rezultate sortirati v dvodimenzionalnih podatkovnih strukturah, Texas Basic v ta namen
ponuja dvodimenzionalna polja oz. matrike.. Poleg matrik, se kot podatkovna struktura
pogosto uporablja seznam in preglednica.
Na sliki 2.21 je prikazanih nekaj primerov operacij, ki uporabljajo matrike.
Na sliki 2.21 je prikazanih nekaj primerov operacij, ki uporabljajo matrike.
Neki spremenljivki lahko priredimo poljubno matriko in nato dostopamo do poljubnega
člena in poljubni člen v matriki lahko tudi spremenimo.
Da dostopamo do števila 5 v matriki m moramo zapisati m[2,2]. Da ga spremenimo v 17 ga
enostavno definiramo: m[2,2]:=17. Enako počnemo s seznami .
Slika 2.21: Nekatere operacije z matrikami
19
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Pri izvleku x in y koordinat iz matrik uporabimo funkcijo subMat(m,1,1,1,3), kjer argumenti
povrsti pomenijo: matriko, prvi dve števili sta kordinati kjer se začne izvlek, tretja pomeni,
da se pomikamo samo po prvi vrstici, zadnja pa pri katerem stolpcu se ustavimo.
S funkcijo x:=mat▶list([1.,2.,3.]) spremenimo enovrstično matriko [1.,2.,3.] v listo {1.,2.,3.}.
Liste lahko nato predstavimo na grafu s funkcijo Scatter Plot.
20
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
3 PRIMERI
3.1 Izračun notranjih statičnih količin krožnega dela nosilca.
Pri tem primeru bomo avtomatizirali izračun notranjih statičnih količin krožnega dela
narisane konstrukcije. Podatke bo program jemal in zapisoval v preglednico.
Sistem:
Q= 5 kN/m'
Fx=Fy= 1 kN
Slika 3.1: Statični sistem konstrukcije
21
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Izrazi za normalne in prečne sile ter momente:
𝑁[0,45] = −𝑦𝑎 ∙ 𝑐𝑜𝑠 φ − 𝑥𝑎 ∙ sin φ (3.1)
𝑉[0,45] = −𝑥𝑎 ∙ 𝑐𝑜𝑠 φ + 𝑦𝑎 ∙ sin φ (3.2)
𝑀[0,45] = −𝑥𝑎 ∙ 𝑟 ∙ 𝑠𝑖𝑛 φ + 𝑦𝑎 ∙ 𝑟 ∙ (1 − cos φ) (3.3)
𝑁[45,90] = −𝑦𝑎 ∙ 𝑐𝑜𝑠 φ − 𝑥𝑎 ∙ sin φ − 𝑓𝑦 ∙ 𝑐𝑜𝑠 φ − 𝑓𝑥 ∙ 𝑠𝑖𝑛 φ (3.4)
𝑉[45,90] = −(𝑥𝑎 − 𝑓𝑥) ∙ 𝑐𝑜𝑠 φ − (−𝑦𝑎 − 𝑓𝑦) ∙ sin φ (3.5)
𝑉[45,90] = −𝑥𝑎 ∙ 𝑟 ∙ 𝑠𝑖𝑛 φ + 𝑦𝑎 ∙ 𝑟 ∙ (1 − cos φ) − 𝑓𝑥 ∙ 𝑟 ∙ (𝑠𝑖𝑛 φ − 𝑠𝑖𝑛 45) + 𝑓𝑦 ∙ 𝑟 ∙
(cos 45 − cos φ) (3.6)
Reakcije:
Xa=5.28 kN Xb=6.28 kN
Ya=6.28 kN Yb=14.72 kN
Kako zelo omejeno delovanje programa želimo imeti, je odvisno od nas. Sili Fx in Fy sta v
tem primeru fiksirani na polovici krožnega dela, torej na 45 stopinjah. To pomeni, da bo
omejen le na sistem, kjer bosta sili le na tej lokaciji.
Najpomembneje je imeti pred seboj jasen računski postopek in potek izračuna. Ko imamo
to, nam preostane le še, da povežemo enačbe v delujoč program.
22
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Sintaksa:
Začnemo tako, da odpremo nov dokument, dodamo Calculator aplikacijo in vstavimo
Program editor. Naš program je poimenovan statika1kroz2 (slika 3.3). Vstavljali bomo le 5
podatkov, zato je priročno, da jih ob zagonu programa vnesemo kot parametre v oklepaj
takoj za imenom programa:
statika1kroz2(xa,ya,fx,fy,r)=
Za vnos podatkov bi seveda lahko uporabili tudi funkcijo Request.
Elegantna rešitev za naš problem je funkcija For. Intervali so nastavljeni na 5 stopinj, kar
pomeni, da bo program za vsakih 5 stopinj izračunal vse notranje statične količine. Podoben
zapis bi bil mogoč tudi z While zanko.
Ker se pri funkciji For ciklično spreminja spremenljivka ϕ, jo moramo pred tem definirati
kot lokalno, saj mora biti omejena le na stavek For. To naredimo z Local ϕ. Če dobljene
rezultate gledamo v Calculatorju, potem si je smiselno predvideti vmesne komentarje za
orientacijo v gruči števil. Ti komentarji se izpišejo pred izračunanimi vrednostmi.
Torej pred začetkom for stavka zapišemo Disp“N od 0 do 45“. Sledi For stavek, ki je jedro
programa. Ostali deli programa se zgolj ponovitve tega jedra s prirejenimi parametri za
prečne sile in momente.
23
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
For bo sedaj ciklično računal vse, kar je v stavku od ϕ=0 do ϕ=45, s korakom 5 stopinj.
Čeprav ne moremo programov direktno uporabljati v preglednici, je možno jemati
vrednosti iz preglednice in jih shranjevati v preglednico. Spomnimo, da so posamezni
stolpci v preglednicah definirane kot seznami, zato bo program zapisoval rezultate v
sezname.
Slika 3.2: Prvi del programa
24
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Prvi seznam ima ime n (slika 3.3). Ime je poljubno. Izraz n[i]:= pomeni, da se bo rezultat
shranil v seznam n, v zaporedno celico i, pri čemer se i z vsakim ciklom mora spremeniti. V
nasprotnem primeru se bodo rezultati le prepisovali v eni celici. Majhen problem nastane
le pri začetnem i-ju. Operacija i:=0 se mora izvesti le na začetku in to enkrat. Zato zapišemo
If stavek znotraj For stavka, da se izvede le takrat ko je ϕ=0. Tako bo na koncu prvega cikla
vrednost izraza i=i+1 enak 1. V naslednjem ciklu bo sedaj If stavek preskočen, ker je ϕ že
večji od 0 in se bo prejšnji i seštel v 2 in tako
naprej.
Ko poženemo program bodo rezultati izpisani v
preglednici. Ker rezultate shranjujemo v
sezname, morajo seznami v preglednici biti že
vnaprej zapolnjeni s poljubnimi vrednostmi, saj
ta izraz v bistvu le spreminja vrednosti že prej
definiranega seznama. Če tega ne naredimo,
dobimo dimension mismatch, ker se sklicujemo
na člen, ki še sploh ne obstaja. Da se tudi na drug
način in sicer tako, da neposredno kreiramo listo
n:={n[1],n[2]...}, ampak je to stvar odločitve.
Ostali elementi programa so bolj ali manj enaki, z nekaj korekturami glede na i, ki spremeni
pozicijo kje se bodo rezultati drugega dela programa zapisovali.
Pri tem programu ne smemo na koncu pobrisati spremenljivk n,v in m, ker potem
rezultati izginejo iz preglednice.
Prvi del programa je na sliki 3.2 drugi del pa na sliki 3.5.
Rezultati v preglednici so na sliki 3.4.
Slika 3.3: Jedro programa
25
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Rezultati:
Slika 3.4: Izpis notranjih statičnih količin v preglednici
26
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 3.5: Drugi del programa, ki velja za interval od 45°-90°
27
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
3.2 H-Diagram in delta h
H-diagrami oz. vplivni koeficienti se uporabljajo za določitev vertikalnih posedkov pod
ogljiščno točko pravokotne in gibke obremenitvene ploskve. Določijo se po osnovni
enačbi:
𝐼𝑠 =1
𝜋(1 − 𝜈2) ∙ [𝑙𝑛
(𝑎
𝑏+√1+(
𝑎
𝑏)
2)∙√1+(
𝑧
𝑏)
2
𝑎
𝑏+√1+(
𝑎
𝑏)
2+(
𝑧
𝑏)
2+
𝑎
𝑏𝑙𝑛
(1+√1+(𝑎
𝑏)
2)∙√(
𝑎
𝑏)
2+(
𝑧
𝑏)
2
𝑎
𝑏(1+√1+(
𝑎
𝑏)
2+(
𝑧
𝑏)
2)
] +
+1
𝜋(1 − 𝜈 − 2 ∙ 𝜈2)
𝑧
𝑏𝑎𝑟𝑐𝑡𝑎𝑛 (
𝑎
𝑏
𝑧
𝑏√1+(
𝑎
𝑏)
2+(
𝑧
𝑏)
2) (3.7)
Pri pogoju: a≥b ter kot v radianih
Dejanska vrednost h-diagrama je razlika med Is(a, b, z=∞, 𝜈) in Is(a, b, z, 𝜈). Tako se
„neskončni z“ nastavi na zelo visoko število npr. z=1*1020. Drugi z je globina, za katero
iščemo h diagram.
To velja za običajni izračun vplivnih koeficientov. Pri izračunu vplivnih koeficientov npr. za
segmente betonske plošče, pa nas zanima razlika vrednosti med globino z=0 in neko
globino npr z=10m. Zato poimenujmo dobljene vrednosti delta h (Δh).
Zaradi razlike dveh vrednosti h diagramov bodo v programu za izračun ene vrednosti Δh
nastopale 4 enačbe Is.
Sintaksa:
Najprej v prvih vrsticah poskrbimo za kritične vhodne podatke: poissonov količnik, globino
z in dolžini stranic a in b (slika 3.6). Nadalje definiramo zn, ki je nadomestek za neskončno
velik z in je 𝒁𝒏 = 𝟏𝟎𝟐𝟎. Z1, ki bi dejansko moral biti nič je zaradi matematičnih razlogov
0.00001. Sledi enačba za vrednost hz in h0. Na sliki 3.6 je zaradi preglednosti enačba
nadaljevana v novi vrstici, kar ni pravilno. Dolge enačbe morajo ostati v enem kosu, razen,
če jih razdelimo na dva samostojna dela in ju na koncu seštejemo.
28
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Ostane še, da zapišemo razliko h vrednosti in jo shranimo pod dh. Z disp in komentarjem
„Δh“ ponazorimo kaj se bo izpisalo. Na koncu lahko še pobrišemo spremenljivke z DelVar.
Slika 3.6: Program za delta h vrednost
29
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Shranjen program zaženemo v calculatorju in vnesemo zahtevane podatke. Rezultati so
na sliki 3.7.
Slika 3.7: Rezultat programa
30
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
3.3 Izračun α koeficientov pri betonski plošči
Prejšnji program bo sedaj uporabljen v tem primeru. Ker pri izračunu α koeficientov
potrebujemo Δh koeficiente, bo tale program le klical že obstoječi program za Δh
koeficiente, namesto, da bi znova vpisovali vse potrebne enačbe za izračun v novi program.
Ploščo razdelimo na enake segmente in shranimo korrdinate njihovih težišč v preglednici
(slika 3.9). Koordinatni sistem ima izhodišče v težišču prvega segmenta.
Naprej v programu bodo naslovi teh koordinat v obliki: y[x1], x[x2] oziroma y[x2], x[x1]
Simbola x1 in x2 v oglatem oklepaju se nanašata na zaporedno številko segmenta (npr.
x1=3 in x2=5). To vrednost vnesemo po želji za vsak novi izračun. Vrednost je celo število.
Slika 3.8: Betonska plošča razdeljena na enake segmente
31
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 3.9: Preglednica, kjer so shranjene koordinate segmentov
32
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Sintaksa:
V tem programu bomo klicali program dhdiagram iz prejšnjega primera. Da dobimo
pravilne rezultate iz njega, mora biti kot nastavljen na radiane. Nastavimo ga s
setMode(2,1). Setmode spremeni nastavitev kalkulatorja samo za čas izvajanja programa.
To lahko nastavimo v trenutnem programu ali v klicanem programu.
Sledijo zahtevki za podatke. Ti se pravtako prenesejo v klican program in ni potrebno imeti
posebej zahtevkov za a, b, z, ν. Zaradi tega je potrebno v klicanem programu iz prejšnjega
primera odstraniti te zahtevke ali jih pa preprosto damo v narekovaje, da niso več aktivni.
Slika 3.10: Začetni del programa
33
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Naprej naredimo dva zahtevka z Request za vnos lokacije obravnavanega segmenta.
S spremenljivkama x1 in x2 definiramo za katera dva segmenta bo program izvajal izračun
npr: 1,1. (pomeni sam s seboj)
Vplivni koeficient α se računa po enačbi:
𝛼𝑖,𝑖 =𝑞∙𝑏
𝐸𝑧∙ ∆ℎ (3.8)
kjer je:
-α pove, kolikšen je vpliv enotine obtežbe q iz k-tega na i-ti element
-b krajša stranica obravnavanega pravokotnika
-Ez elastični modul zemljine
-q enotina sila
-Δh razlika vplivnih koeficientom med višino z=0 in z=z
1.) Segment v težišču
Če računamo vpliv segmenta na samega sebe (slika 3.11), se segment razdeli na 4 vogalne
like in se izračuna Δh za enega. Za celoten segment se množi s 4. Vpliv se po postopku
računa na vogalno točko, ne na središče segmenta. V tem primeru je izračun enostaven.
Kompleksneje je, ko je potrebno pri oddaljenih segmentih uporabiti superpozicijo ter
sešteti in odšteti imaginarne segmente, da dobimo pravi
rezultat. V programu bo nastopalo 7 takih situacij vključno
s tem. Identificiramo jih z geometričnimi pogoji s pomočjo
If stavkov. Prvi primer, ki je na sliki 3.11 ima naslednji
pogoj:
If Ιy[x2]-y[x1] Ι=0 and Ιx[x2]-x[x1]Ι=0
Slika 3.11: Enojni element
34
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Pogoj enostavneje pomeni Y2-Y1=0 in X2-X1=0. Pogoj velja samo za primer, kadar
računamo segment s samim seboj. Zapis je v absolutni obliki. Absolutnost lahko zapišemo
z matematičnimi simboli ali s funkcijo abs().
Sledi dhdiagram\hdiagram(b/2,a/2)(slika 3.10). S tem kličemo program iz prejšnjega
primera. Klicanje programa mora biti izvedeno z novo vrstico, saj programa ne moremo
klicati, če je umeščen znotraj kakšnega izraza. Niti ga ne moremo množiti s preprostim
številom. Vse kar nam vrne ta vrstica je spremenljivko dh , ki jo potem uporabimo v enačbi
za α koeficient.
Spremenljivki z0 in 𝝂 sta že definirani v trenutnem programu, zato ostane le še, da
definiramo b0 in a0. Klican program tako spremenimo, da ne zahteva teh dveh spremenljivk
tako kot je to narejeno v originalni izvedbi ampak jih predvidimo v oklepaju
dhdiagram\hdiagram(b0,a0). Izraz v oklepaju mora voditi do števila.
Program nam sedaj vrne vrednost dh, ki ga nato uporabimo za izračun α koeficienta. Sledi
konec If stavka.
35
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
2.) Diagonalni segmenti
V drugem delu imamo opravka z oddaljenimi
segmenti, kjer najprej vzamemo velik modri
pravokotnik, nato ga pa ustrezno odštejemo in
prištejemo. Ponazorjeno je na sliki 3.13. Modremu
pravokotniku odštejemo zelenega in vijoličnega in
prištejemo rdečega. Končano seštevanje in
odštevanje nam da pravo vrednost.
Parametri koordinat na sliki 3.13 veljajo le za
primere, ko sta segmenta „raztegnjena“ v ordinatni
smeri. Ko sta raztegnjena v abscisni smeri
upoštevamo še pogoje za rjavi pravokotnik (slika 3.12), ki je nadomestek vijoličnega
pravokotnika. V tem primeru se tudi X in Y pogoji povsem analogno zamenjajo. Ker
Slika 3.12: Dodatni pravokotnik pri horizontalno raztegnjenih kombinacijah
Slika 3.13: Superpozicije likov pri izračunu vplivov med diagonalnimi segmenti
36
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
definicija zahteva, da je b vedno krajša stranica, je tako tudi definirano za b0 in a0. Prvi
segment je bil le kratek If stavek. Preostanek programa je v If stavku vse do konca, ki gre
tako:
If pogoj za modri pravokotnik Potem
Računaj modri pravokotnik
Računaj zeleni pravokotnik
Računaj rdeči pravokotnik
If pogoj za rjavi pravokotnik Potem
Računaj rjavi pravokotnik
ElseIf pogoj za vijolični pravokotnik Potem
Računaj vijolični pravokotnik
EndIf
ElseIf je pogoj za vzporedne pravokotnike potem
Računaj vzporedne pravokotnike
EndIf
To z drugimi besedami pomeni, da med računanjem razlikujemo diagonalno umeščene
segmente in segmente, ki so samo premeščeni vzdolž y ali x osi. Pri diagonalnih segmentih
sta še dodatna pogoja za razlikovanje vijoličnega in rjavega pravokotnika.
Tako je pogoj za nevzporedno (diagonalno) geometrijsko situacijo sledeč:
abs(y[x2]-y[x1])>0 and abs(x[x2]-x[x1])>0.
Kar pomeni, da segmenta nista vzporedna ne v x in ne v y smeri. Opreator and pomeni, da
morata biti oba pogoja izpolnjena.
Nato kličemo program za dh (slika 3.14) in za b0 in a0 definiramo odgovarjajoče pogoje.
Ker je prvi argument v oklepajih b0 in to mora biti najkrajša stranica, uporabimo funkcijo
min(). Ravno obratno sledi za a0. Min, max in geometrijski pogoj bosta v tem primeru
37
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
poskrbela, da bo moder pravokotnik (“veliki kvadrat“), vedno največji oz. tisti, od katerega
se bo odštevalo:
dhdiagram\hdiagram(min(abs(y[x2]-y[x1])+b/2,abs(x[x2]-x[x1])+a/2,max(abs(y[x2]-
y[x1])+b/2,abs(x[x2]-x[x1])+a/2)
Glede na pozicijo, je enkrat b0 v y smeri, drugič pa v x smeri. Zato zapišemo dvojna pogoja
za b0 in a0, ločena z vejico.
Slika 3.14: Izračun modrega in zelenega pravokotnika
38
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Dhdiagram vrne vrednost dh, ki jo nato uporabimo za izračun delnega količnika α. Delni
količniki α so označeni z α161, α162, α163, α164, ki jih na koncu seštejemo ali odštejemo,
da dobimo končni α koeficient.
Naslednji del je zeleni segment, ki ima take pogoje, da je v vsakem primeru izbran najožji in
najdaljši segment („ožji segment“ na sliki 3.14).
Vrstici Disp "b je" in Disp "a je" sta namenjeni kontroli, saj se izpišejo vrednosti stranic
pravokotnikov. Na ta način lahko na hitro preverimo, če so bili izračunani pravilno.
Slika 3.15: Izračun vijoličnega ali rjavega pravokotnika
39
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Na sliki 3.15 sledi notranji If stavek, ki razlikuje med vijoličnim in rjavim pravokotnikom.
Spomnimo, da ta dva pravokotnika nastopata v odvisnosti od orientacije diagonalnih
segmentov.
Pred njim je še pogoj:
If abs(x[x2]-x[x1])>abs(y[x2]-y[x1]), -kar pomeni, da če sta segmenta v x smeri v večji
medsebojni oddaljenosti kot v y smeri se izvede izračun, ki sledi takoj za pogojem. Če ne,
se izvede izračun, kjer je Else.
Največji in najmanjši pravokotnik lahko definiramo enolično, v primeru vijoličnega
pravokotnika sta pa dve možnosti. Problem je v pogoju za b0 saj pri določenih pogojih
sovpada s pogojem od zelenega pravokotnika.
In še zadnji del diagonalnih segmentov. Prišteti je potrebno rdeči pravokotnik. Delne
koeficiente na koncu združimo (minusi so definirani že pri delnih koeficientih) in dobimo
končno α vrednost za diagonalne segmente.
Slika 3.16: Izračun rdečega pravokotnika
40
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
3.) Vzporedni segmenti
Čisto na koncu imamo še izračun vzporedno premaknjenih segmentov. Pogoj:
If abs(x[x2]-x[x1])>0 and abs(y[x2]-y[x1])=0 or abs(x[x2]-x[x1])=0 and abs(y[x2]-y[x1])>0
Pri vzporednih segmentih sta pravokotnika enaka v
x in y smereh. Dodatno, ker sta paroma enaka, ju
zgolj množimo z 2. Preostanek postopka je bolj ali
manj enak kot v prejšnjih segmentih.
Slika 3.18: Izračun roza in rumenega pravokotnika
Slika 3.17: Vzporedna segmenta
41
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
- Rezultati:
Na sliki 3.20 je prikaz izpisa rezultatov programa za segmenta 1 in 6 za obravnavano
ploščo.
Ob zagonu programa vstavimo zahtevane podatke in izberemo, za katera dva elementa
želimo, da se izračun izvede. Izpis je sestavljen iz izpisov posameznih dh elementov in
njihovih vrednosti za b0 in a0. α koeficient je izpisan na koncu.
Slika 3.19: Rezultati
42
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
4 OKOLJE MATLAB
4.1 Uvod
Matlab (Matrix Laboratory) je izdelek podjetja MathWorks (Massachusetts ZDA), ki je
nastal leta 1984. Uporabljajo ga znanstveniki in inženirji po vsem svetu.
Poglavitne lastnosti Matlaba so numerično in simbolično računsko okolje, lastni
programski jezik, dodelano manipuliranje z matričnimi sistemi, grafični prikaz problemov
in podatkov, izdelava grafičnega uporabniškega vmesnika, simulacije in povezljivost z
drugimi programskimi jeziki, kot so C, C++, Java, Fortran in Python [8].
Programski jezik v Matlabu je bistveno obširnejši kot Texas basic. Predvsem v področju
grafičnega prikaza je jezik zelo močan. Funkcij je seveda bistveno več in ker se jezik izvaja
v glavnem na osebnih računalnikih se lahko izvajajo zahtevnejši izračuni, ki bi drugače na
kalkulatorjih prepočasi delovale.Temeljna razlika, ki jo opazimo iz prehoda iz Texas basica
na Matlab je ta, da je Texas basic kontinuirano narejen tako, da ga pišemo na naraven
način in da je simbolna kalkulacija skoraj povsod prisotna (razen v funkcijah). Matlab po
drugi strani je „tipkan jezik“, kar pomeni, da je vse tipkano s pomočjo simbolov in ukazov,
ki so na tipkovnici. Ne moremo vstaviti ulomkove črte in korenov, integralov, grških črk,
itd. Še ena bistvena očitna razlika je občutljivost na male in velike znake. Texas Basic
sintakso sam popravi, če so male/velike črke pri ukazih nepravilno uporabljene, medtem
ko Matlab tega ne naredi. Kljub temu navede točno mesto napake za hitro razreševanje.
Texas basic, pozna spremenljivke, ki so sestavljene iz samo malih simbolov in številk,
Matlab razlikuje med malimi in velikimi črkami pri spremenljivkah, vendar sintaksa ne
dovoljuje grških črk. Simbolno reševanje in naravni prikaz računov v Matlabu seveda
obstaja in se izvaja v podaplikaciji imenovani MuPad. Začetne enačbe je vseeno potrebno
natipkati (slika 4.1 ).
To sta bistveni dve razliki, ki ju je potrebno premostiti. Kar je še vredno omeniti v tej točki
je to, da Matlab ne podpira funkcije Goto.
43
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 4.1: Vmesnik za simbolno računanje Mupad
44
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
4.2 Vmesnik
Vmesnik je intuitiven in čist (slika 4.2). Levo zgoraj je prikazana vsebina mape, kamor
shranjujemo programe (skripte), delovni prostor (workspace) in slike. Ustvarimo lahko več
map. Privzeta mapa je v Moji dokumenti/Matlab. Slike, ki jih želimo uporabiti (jih klicati),
morajo biti v tej mapi, ker drugače je potrebno navesti celotno pot do njihovih lokacij.
Okno nižje od tega zgolj pokaže predogled izbrane datoteke v prejšnjem oknu.
Prostor, kjer je tabela ni obvezen ampak se aktivira, ko odpremo spremenljivko in ali če
želimo zasidrati grafično okno (figure) na to mesto.
Pod njim je glavno ukazno okno. V njem izvajamo ukaze in izračune. Izračuni, ki se
dogajajo v programih, se izpisujejo v tem oknu. Izpiše se tekst, ki ga predvidimo in napake,
ki se zgodijo.
Slika 4.2: Glavno okno Matlaba
45
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Desno zgoraj je okno, kjer je seznam spremenljivk. Ločeno okno s spremenljivkami
omogoča lažji nadzor nad dogajanjem v programu. Z dvojnim klikom na spremenljivko
lahko spremenimo njeno ime in vrednost.
Desno spodaj je okno z zgodovino ukazov. Ko shranimo in zapremo delovno okolje
(workspace), se ukazno okno pobriše, zgodovina ukazov se pa shrani v to namensko okno
in nam tako omogoča, da se vedno lahko vrnemo nazaj na pretekli ukaz.
4.3 Osnovni ukazi
Ukazov v Matlabu je veliko. Iščemo jih lahko tako, da prikličemo iskalnik s pomočjo ikone
fx. V veliko pomoč je baza ukazov na uradni spletni strani, vendar so tam opisi za
najnovejšo verzijo Matlaba in se pogosto zgodi, da opisi niso povsem kompatibilni.
Če želimo uporabiti ukaz, ki ga že poznamo vendar potrebujemo dodatne informacije,
zapišemo v delovno okno npr.: doc display in se v novem oknu odpre opis funkcije display
s primeri.
4.4 Ukazi za brisanje
Spomnimo, da smo pri Teksasu uporabljali Delvar za brisanje spremenljivk. Tukaj
uporabljamo clear. Clear zbriše vse spremenljivke, medtem ko clear a zbriše samo a.
Pobrišemo lahko tudi delovno okolje z clc.
Nenazadnje pri mnogih odprtih figure oknih jih zapremo z close all ali posamično z
close figure(1)) ali close(1), oz. če smo okno odprli v obliki a=figure(17), jo zapremo z
close (a).
46
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 4.3: Okno z razlago in primeri
47
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
4.5 Prikazovanje teksta in števil
Pri Texas basicu smo v glavnem bili omejeni na funkcijo Disp. Če v programu nismo
uporabili funkcije Disp, se vrednost ni izpisala v kalkulatorju. V Matlabu je ravno obratno.
Vse vrednosti, ki se izračunavajo, se privzeto izpisujejo v glavnem oknu. Če ne želimo, da
se izpisujejo, moramo vsako vrstico končati s podpičjem ;.
Kot že povedano, je v Matlabu pester izbor ukazov in načinov, kako priti do iste rešitve.
Prikazani ukazi bodo tisti, ki so pogosteje uporabljani.
Ukaz, ki je v drugi vrstici (na sliki 4.4) je še najbližje Teksasovi funkciji. Uporabljena je
funkcija display in v oklepaju tekst, ki mora biti naveden v apostrofih. Če hočemo prikazati
število, je brez apostrofov.
Način, ki je prikazan v 3. in 4. vrstici je tak, da tekst (string) shranimo pod spremenljivko a
in jo program v četrti vrstici izpiše.
Slika 4.4: Funkcije za prikazovanje
48
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
6. vrstica preprosto izpiše dani navedek.
Ukaz disp v vrstici 7 izpiše vrednost/tekst, ki je v spremenljivki a, brez da bi izpisal, da je to
vrednost, ki je bila v spremenljivki a.
Izraz v vrstici 8 je uporaben, ko želimo vdelati nek tekstovni/številčni izpis v oknih in
uporabniških vmesnikih. Annotation sprejme več argumentov, s katerimi lahko
oblikujemo svoj izpis po lastnih željah. Če pogledamo sintakso bo izpis v 'textbox' obliki,
zatem sledi vejica in za njo parametri, ki definirajo velikost tekstovnega okna. V oglatem
oklepajo so najprej x in y koordinate tekstovnega okna in zadnji dve vrednosti sta velikost
okna. Vrednosti so dane kot razmerja velikosti pojavnega okna, torej v procentih.
Tropičje, ki sledi je zgolj prelom vrstice. Tako lahko zelo dolg ukaz nadaljujemo v večjih
vrsticah, namesto v eni dolgi. Za identifikatorjem 'string' zapišemo tekst, ki se bo izpisal v
okvirju.
Izraz v 10. vrstici je že naprednejši. Funkcija fprintf ima to dobro lastnost, da lahko
vrinemo izpis poljubne spremenljivke direktno v tekst. In ne samo ene ampak lahko
manevriramo z večjimi spremenljivkami znotraj teksta. Identifikator za številčno vrednost
je znak %. Za njim pride identifikator, ki razlikuje med tekstom (string je pod oznako s),
float f, double d in drugimi. Ukaz \n ni obvezen in pomeni, da se za vsak element, ki je v
spremenljivki a zapiše v novi vrstici. Za vejico na koncu pride še seveda spremenljivka.
Rezultat vrstice 10 bo tako izpis teksta, ki je v apostrofih in teksta, ki je shranjen pod
spremenljivko a.
V vrstici 11 imamo spremenljivko b, ki je število. Uporabimo identifikator za float in pred
njim še izraz, ki pomeni, da se bo število izpisalo na tri decimalna mesta natančno.
Negativni predznak, ki je v izrazu %-.3f pomeni, da nismo definirali enega izmed
argumentov, ker ga ne potrebujemo, se pa zavedamo, da obstaja. Z izpuščenim
argumentom nastavljamo minimalno število števk v izpisu. Tako bi izraz lahko bil tudi
%1.3f.
49
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
4.6 Definiranje
Za dodeljevanje vrednosti ali teksta spremenljivkam se uporablja navadni enačaj.
Uporablja se tudi operator :=, ki smo ga vajeni pri teksasu, vendar se uporablja le v
aplikaciji MuPad, ki ima tako kot navadni enačaj v drugih delih Matlaba, funkcijo
definiranja vrednosti spremenljivkam (slika 4.1).
V primeru if stavkov se za „je enako“uporablja dvojni enačaj ==. Pri if stavkih se poleg
dvojnega enačaja uporabljata še <>. And in or sta pri if stavkih && in || (slika 4.5).
Dejanska and in or se uporabljata za matrične operacije.
Slika 4.5: Operatorja and in or pri if stavkih
50
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
4.7 Vnos
Matlab ima veliko načinov vnosa podatkov in predvsem zmožnost uvažanja iz drugih
programov, kot tudi branje podatkov iz oddaljenega strežnika.
Vnos podatkov v matrike je skoraj identična zadeva kot pri Teksas basicu. Če hočemo
zapisati matriko, ki ima dimenzije 3x3 to napravimo tako, kot je prikazano v vrstici 2 na
sliki 4.6. Podpičje nakazuje novo vrstico, če delamo večvrstično matriko, lahko pa vse
zapišemo v dolgo listo. Dostopamo in spreminjamo posamezne elemente matrike na
podoben način, kot pri Teksasu npr.: mat(2,2) je število 5.
Izraz v 3. vrstici je funkcionalno ekvivalent Teksasovemu Requestu. Input je funkcija, ki
spremenljivki iz dodeli vrednost, ki jo po zahtevi vnesemo. Pred tem se seveda izpiše tekst
v oklepaju: „Vnesi iz“.
Slika 4.6: Vnos točk s pomočjo miške
51
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V vrstici 4 imamo grafični vnos, ki se izvaja s funkcijo getpts. Getpts se uporablja za zajem
točk s pomočjo miške. Po aktivaciji se odpre okno s koordinatami, kjer naklikamo željene
točke. Točke se nato shranijo v matriko s koordinatami [x,y]. Z desnim klikom končamo
vnos. Ginput je podoben getpts z nekaj razlikami.
4.8 If elseif else. For
Logika teh operacij
seveda ostaja ista z
nekaj
spremembami. If in
ostali deli morajo
biti pisani z malimi
črkami in ni več
besede „Then“. Prvi
else mora biti elseif
in vsak naslednji
mora biti zgolj else.
Kot že prej
omenjeno, se
uporablja dvojni
enačaj ==, <> ter
and in or, ki se
pišeta kot && in ||.
For stavki so
pravtako brez
posebnosti. Vrstica 10 pomeni, da se bo zanka izvajala od n do 2 s korakom -1. Vrstico 11
moramo »zadušiti« s podpičjem. Če tega ne storimo in imamo po več sto ponovitev, se
bodo vse izpisovale v glavno ukazno okno.
Slika 4.7: Primeri if in for stavkov
52
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
5 Primeri
Programska primera v Matlabu bosta dva. Prvi je izračun jedra prereza, ki je preprost
primer nekaj for stavkov in grafične predstavitve rezultatov.
Drugi primer bo preračun podpornega zidu, ki bo zaradi daljšega računskega postopka in
dodatnih funkcionalnosti bistveno daljši od prejšnjih primerov.
5.1 Izračun jedra prereza
Jedro prereza je območje v prerezu nekega nosilca, kamor lahko apliciramo neko silo in bo
prerez nosilca vedno tegnjen ali tlačen. Poznavanje jedra prereza nam omogoča analizo in
dimenzioniranje nosilcev, ki slabo prenašajo natege. Tipični primer so nearmirani betonski
nosilci, ki mnogo boljše prenašajo tlake kot natege. V primeru, da pri takem nosilcu sila
(čeprav je tlačna) deluje izven jedra prereza, obstaja nevarnost (odvisno od obtežbe), da
se zaradi navora ustvari natezna cona in tam lahko nosilec poči. Če pa sila deluje v jedru
prereza, bo v tem primeru celoten prerez tlačen.
Program za izračun jedra prereza je poenostavljen in je primeren za enoosno simetrične
nosilce (Iyz=0). V program je potrebno vstaviti zunanje koordinate preseka glede na
koordinatni sistem na sliki 5.1. Začetno točko zaradi praktičnosti program še enkrat zapiše
kot peto točko. Vstavljamo samo 4 točke.
Enačbi za izračun koordinat jedra prereza sta zato poenostavljeni in sta sledeči:
𝑌𝑓 =𝐼𝑧∙(𝑧𝑖−𝑧𝑖−1)
𝐴∙(𝑦𝑖∙𝑧𝑖−1−𝑦𝑖−1∙𝑧𝑖) (5.1)
𝑍𝑓 =−𝐼𝑦∙(𝑦𝑖−𝑦𝑖−1)
𝐴∙(𝑦𝑖∙𝑧𝑖−1−𝑦𝑖−1∙𝑧𝑖) (5.2)
kjer je:
𝐼𝑧 - Vztrajnostni moment
𝐴 - Površina preseka
53
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
𝐼𝑧 = 70437,5 𝑐𝑚4
𝐼𝑦 = 31972 𝑐𝑚4
𝐴 = 735 𝑐𝑚2
𝑖𝑧2 =𝐼𝑧
𝐴= 95.833 𝑐𝑚2
𝑖𝑦2 =𝐼𝑦
𝐴= 43.5 𝑐𝑚2
Sintaksa:
Urejevalnik skript odpremo s klikom na „New Script“, ki se nahaja levo zgoraj v glavnem
Matlab oknu. Za razliko od Teksasovega vmesnika ta nima Prgm in EndPrgm oznake.
Program ne zahteva dosti spremenljivk, zato se mi je zdel vnos z nekaj input funkcijami
zadosten. Še pred tem shranimo koordinate lika v matriki z0 in y0, kar naredimo tako:
Z0=[-15 15 6 -6] in y0=[0 0 35 35].
Vrednosti v matrikah z0 in y0 so preprosto zaporedne koordinate pripadajočih osi y in z.
Slika 5.1: Obravnavani prerez
54
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V primerih, ko je lik bolj razgiban (T nosilec), je za izris poligona nosilca potrebno posebej
vstaviti koordinate vseh točk, ne samo tistih, ki so potrebne za izračun jedra prereza.
Te koordinate se vstavijo v spremenljivki zPol in yPol na enak način, kot zgoraj.
V prvi vrstici začnemo s vprašanjem, ki vpraša ali želimo vnesti še preostale podatke. Če
večkrat ponavljamo izračun ali če so bili podatki že shranjeni v Workspaceu, pride prav, da
ponovni vnos podatkov preskočimo. V prvi vrstici (slika 5.2) vidimo, da je Matlabov input
malo drugačen od Teksasovega. Pri Teksasu, bi spremenljivka bila takoj za tekstom, v
Matlabu pa je pred enačajem. Princip je kljub temu podoben. Pravtako presledki Matlabove
sintakse ne motijo, medtem ko pri Teksasu se pa lahko spremenijo v znak krat in to seveda
povzroča težave. Matlabovo sintakso je tudi lažje razhroščevati, saj Matlab navede točno
mesto, kje je do napake prišlo. V Teksasovi sintaksi je to pogosto iskanje igle v senu.
Torej, če ni potrebno vnesti podatkov vnesemo število 1 in If stavek bo preskočil vnos
členov 𝒊𝒛𝟐 in 𝒊𝒚𝟐. V 9. vrstici funkcija numel prešteje število elementov v matriki z0 (vseeno
je če je y0 ali z0) in vrednost shrani pod spremenljivko n0. Ta se rabi za prepis prve
koordinate na zadnje mesto. V vrstici 12 sledi for stavek, ki prepiše z0 in y0 matriki v y in z.
To je potrebno zato, ker v vrstici 16 in 17 sledi podvojitev prve koordinate, ki se zapiše na
zadnje mesto v matriki. To ne bi bilo možno direktno narediti, saj bi veljalo samo ob prvem
izračunu. Numel (z0) mora ostati statična vrednost zato, ker bi se drugače ob vsakem
ponovnem zagonu izračuna koordinatni matriki povečali za en set koordinat.
V 19. vrstici funkcija numel prešteje število elementov v novih matrikah. Vrednost n sedaj
služi za meje pri for stavkih.
Razne opombe, opozorila in vodila lahko izpišemo s pomočjo display funkcije. Sledi
komentar, ki je viden samo znotraj programa in služi kot navodilo programerju. Začetek
komentarja označimo s %.
Količina yi pove, za koliko je trenutna točka oddaljena od težišča. Zato je potrebno vsaki
točki odšteti vrednost težišča. Paziti je potrebno na koordinatne osi in predznake.
55
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Zi količin ni potrebno računati, ker y os sovpada s simetralo, kar pomeni, da bi od z
vrednosti odštevali 0, kar je pa enako z. Zato so zi==z. To je tudi trenutno pomanjkljivost
kode v takšni obliki kot je zdaj; y os mora sovpadati s simetralo lika, da pravilno deluje.
Torej od 25 do 27 vrstice poteka for stavek, kjer se i-tim elementom matrike y odšteva y
vrednost težišča in jih shranjuje v matriko yi. Spremenljivka i gre od n do 1 s korakom -1.
Od 30 do 32 je naslednji if stavek, kjer se odštevajo yi vrednosti med seboj. Tukaj so meje
drugačne, saj odštevamo yi(i)-yi(i-1). Zaradi tega mora zadnja vrednost i-ja biti dva, ker na
koncu zanke se odštevata yi(2)- yi(1), ki je zadnji člen. Tako sedaj, ko imamo n elementov v
matriki y in z, dobimo n-1 vrednosti yi, kar na koncu rezultira v n-1 točk, ki jih iščemo.
Od 35. do 37. vrstice je isto kot za prejšnji for stavek, le da se tokrat računa za z vrednosti.
Slika 5.2: Zahteve za vnos podatkov in prepis točk v novo matriko
56
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Naslednji for stavek računa količino yz, kar je imenovalec ulomka glavne enačbe za
izračun koordinat jedra prereza (enačbi 5.1 in 5.2).
Kar se tiče izračuna koordinat jedra prereza ostajata le še dva for stavka (vrstici 45 in 50).
Enačbi v for stavkih sta 5.1 in 5.2, ki sta sedaj zapisani bolj kompaktno, saj so posamezni
elementi bili izračunani ločeno. Vse for stavke, razen prvega, bi lahko združili v enega, saj
imajo iste meje in korake. Vzrok, zakaj je ločeno je v glavnem zaradi lažjega iskanja napak
in v splošnem boljša preglednost vmesnih rezultatov med pisanjem sintakse.
Na koncu ostane le še predstavitev rezultatov. Najprej narišemo prerez nosilca. Funkcija fill
nariše zapolnjen poligon za vrednosti zPol in yPol, argument 'b' je pa barva (blue). Prerez
nosilca in jedro prereza hočemo dobiti v isti sliki, zato je potrebno uporabiti funkcijo patch,
ki je ista kot fill, a s to lastnostjo, da nariše poligon v že obstoječo sliko. To je en način. Drugi
način je, da uporabimo hold on. Hold on pomeni, da se vsak naslednj graf nariše v istem
oknu. Končni efekt je isti.
Slika 5.3: Izračun cikličnih elementov
57
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Vrstica 58 spremeni smer y koordinate. Naša y koordinata namreč gleda navzdol.
Axis equal normira obe osi tako, da je skala enaka. Se pravi da je y:z=1:1 na ekranu.
In na koncu še izpišemo dobljene koordinate s komentarjem.
Slika 5.4: Grafični prikaz rezultatov (od 55 dalje)
58
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Rezultati:
Rezultat programa je narisan poligon prereza z vrisanim jedrom prereza. Izpišejo se tudi
koordinate v tekstovni obliki.
Opomba: V začetek skripte (še posebej, če jo večkrat ponavljamo ) je pametno vstaviti
vrstico, ki pobriše rezultate iz prejšnjega izračuna. Vmesni rezultati, ki se vpisujejo v
matrike se v bistvu samo prepisujejo. Kar pomeni, da če smo v prejšnjem izračunu imeli
prerez z več točkami kot sedaj, se bodo vrednosti, ki segajo prek trenutne dimenzije
matrike, ohranile. Taki rezultati pa seveda niso uporabni. Torej zapišemo na začetek
skripte:
clear n n0 y yi yf yyi yz z zzi zf
Slika 5.5: Jedro prereza lika
59
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
-Dodatni primer I nosilca v težišču
Ni potrebno, da postavimo koordinatni sistem na zgornjo linijo prereza, kot je to bilo
storjeno s prvim primerom. To je zgolj praktično iz stališča vnašanja koordinat, saj če bo
težišče neko število 15.23984 bo lažje, če izhodišče ni v težišču.
Koordinatno izhodišče je v primeru I nosilca postavljeno v težišče in v tem smislu tudi
vstavimo koordinate. Točke T3, T4,T7 in T8 niso nujne za izračun jedra prereza v tem
primeru. Vstavitev večjih točk je služila zgolj za preveritev delovanja skripte z večjim
številom točk.
Slika 5.6: I nosilec
Slika 5.7: Jedro prereza I nosilca
60
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
5.2 Preračun podpornega zidu
Program bo služil za preračun podpornega zidu. Osnovni model zidu je na skici slike 5.8.
Program bo upošteval različne variacije na ta model, ki bodo prikazani kasneje.
Ker je pri tem izračunu
potrebno vstaviti več
podatkov kot do zdaj, bomo
dodali samodejno generirano
tabelo z imeni spremenljivk.
Vgrajen bo tudi meni, kjer
bomo lahko izbirali med
različnimi opcijami in še
dodaten meni za izbor
projektnega postopka.
Rezultat programa bo narisan
poligon zidu in vrisane
napetosti s pripadajočima
napetostima.
Slika 5.8: Osnovni model zidu
61
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Na sliki 5.9 so prikazani vplivi, odpornosti in vsi možni koti.
Slika 5.9: Polni model s vplivi in rezultantami
62
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 5.10: Možne variacije zidov za program
63
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Za avtomatski izračun teže zidu in njegovega
prijemališča od točke A se naredi tako, da se
razdeli na preprosto izračunljive enote OPC
in S. Njim pripadajo ročice r.
Slika 5.11: Ročice posameznih segmentov in dodatne točke
64
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Program je po količini vrstic obsežnejši od prejšnjih. Predvsem je potrebno vstaviti več
podatkov. Uporabljen bo popup meni in samodejno generirana tabela podatkov.
Na sliki 5.12 je okno, ki se odpre ob zagonu programa. V okviru je nekaj navodil o vstavljanju
podatkov zidu. Pod njim sta dva „drop down“ menija. V prvem izbiramo med matriko
podatkov, izračunom in prikazom rezultatov.
Drugi meni vsebuje projektne pristope, ki določajo faktorje za računski postopek. Ko
določimo izbor nadaljujemo z gumbom „Nadaljuj“.
Slika 5.12: Vstopno okno programa
65
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Sintaksa:
Okno na sliki 5.12 je rezultat sintakse med vrsticami 3 in 16. Ukaz v vrstici 3 odpre splošno
figure okno, ki ga lahko poljubno oštevilčimo. Figure okno je v splošnem nadrejen (parent)
drugim grafičnim elementom kot so teksti, meniji, gumbi itd. Zaradi tega se bodo elementi
(tako imenovani otroci - children), ki sledijo odprli v tem oknu.
V 4. in 8. vrstici sta definirana pop up menija. Upravljata se s funkcijo uicontrol.
V argumentih te funkcije je možno uporabiti mnogo nastavitev za dano vrsto elementa.
Lahko določimo pozicijo, font, barve, velikosti okvirjev itd.
Sintaksa deluje tako, da najprej navedemo nastavitev, ki jo želimo spreminjati in nato
parameter npr.: hpop = uicontrol('Style','popup', )
Kar pomeni, da bo zahtevani stil grafičnega elementa pop up meni. Lahko je tudi
checkbox, pushbutton...
Slika 5.13: Sintaksa vstopnega okna
66
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Sledijo tekstualne vrednosti (string), ki se prikažejo v meniju. Vsak samostojni element
ločimo z znakom |.
V vrstici 6 se določi pozicija, pri čemer sta prvi dve števili koordinati x in y, drugi dve pa
dimenziji okna. Enote so piksli.
Izbrana vrednost menija, ko ga bomo uporabljali med delovanjem programa se shrani v
sklopu hpop.
Od 8 do 11 je naslednji meni, ki je s programskega stališča bolj ali manj enak kot prejšnji.
V vrstici 12 definiramo gumb „Nadaljuj“. Privzeti element funkcije uicontrol je pushbutton,
zato ni potrebno posebej navajati, da gre za gumb. V vrstici 16 funkcija uiwait preprečuje
izvajanje programa. Tako je za nadaljevanje izvajanja sintakse potrebno klikniti prej
omenjeni gumb „Nadaljuj“, pri čemer se ob kliku aktivira uiresume in nadaljuje izvajanje
programa. Gcf v oklepaju se nanaša na trenutno aktivno okno. Se pravi, da če je več gumbov
„Nadaljuj“, se upošteva tisti, ki je v trenutno aktivnem oknu. Lahko pa seveda definiramo
po svoje npr:
uiresume(figure(7))
uiwait(figure(7)).
V vrstici 14 je definiran tekst, ki se izpiše v oknu. V tem primeru sta pozicija in dimenzija
okvirja opisani z relativnimi velikostmi. V prejšnjem primeru so to bili piksli, v tem primeru
so pa odstotki od dimenzij okna.
Vrstici 19 in 20 sta pomembni saj izvlečeta zaporedno številko izbranega podmenija. Če v
podmeniju hpop2 izberemo tretjo opcijo bo val2=3. V nadaljevanju se bo ta informacija
uporabila za definiranje if stavka.
Nenazadnje še zapremo trenutno aktivno okno z vrstico 22.
67
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
If stavek na sliki 5.14 odloča med Matriko podatkov, Izračunom in Rezultati. Stavek poteka
od vrstice 24 in vse do konca programa saj se izbor 2 nanaša na izračun, ki je dolg. Matrika
podatkov, v vrstici 25, je zaradi preglednosti na sliki 5.14 zamenjana s podprogramom
Tocke_zidu. V podprogramu je to, kar bi moralo biti v if stavku in bo prikazano v naslednji
sliki. Podprogram Tocke_zidu je samo dodaten program, ki je bil spisan posebej in ga na
enostaven način kličemo.
Torej val==1 odpre matriko podatkov, kamor vnesemo podatke, val==2 opravi izračun in
val==3 odpre matriko rezultatov.
Slika 5.14: Začetek if stavka, ki se aktivira glede na izbor iz vstopnega okna
68
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Nadaljujemo pri val==1, ki je zdaj razširjen in ni več Tocke_zidu. Takoj za njim sledi novi if
stavek, ki se navezuje na prej izbrani projektni pristop iz drugega podmenija.
Da kreiramo novo spremenljivko ali matriko
obstaja več načinov. Poleg ročnega vpisa in
poimenovanja se da s sklicevanjem na novo
matriko ali stolpec, ki še ne obstaja. Kljub
temu, da ne obstaja, bo avtomatsko
generirana. Tega načina se poslužujemo na
sliki 5.15.
Vrstica 26 pomeni, da matrika, ki se imenuje
podatki, vsebuje stolpec imenovan x in da
želimo vrstici 7 pripisati vrednost 0. S tem se
generira matrika podatki in stolpec imenovan
x.
Da bi kreirali prazno matriko s tem načinom ne
gre. Iz tega razloga je potrebno dodeliti neko
vrednost, najbolje 0. V sklopu if stavka in v
istem smislu kot v vrstici 26 se sintaksa izvaja
do vrstice 61, kjer je konec notranjega if
stavka.
Slika 5.15: Projektni pristopi
69
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Nadaljevanje po koncu if stavka od vrstice 63 do 69 se še zapišejo drugi prazni stolpci za
vnos specifične teže zidu in zemljine, kohezije c, strižni kot zemljine fi, obtežbe p, kot
površja zaledne zemljine beta in globino D.
Trenutno se še vedno nahajamo v if stavku za matriko podatkov. V tem delu se še odpre
okno s sliko, ki prikazuje možne variacije zidov s kratkim navodilom na vrhu okna. Sintaksa
za to poteka od 71 do 74.
Slika 5.16: Začetek računskega dela
70
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Funkcija imshow odpre poljubno sliko v danem oknu. Shranjene morajo biti v izvorni mapi,
kjer so shranjeni programi in workspace datoteke. V nasprotnem primeru je potrebno
navesti celotno pot do slike.
Vrstica 75 je končno tista, ki dejansko odpre matriko „podatki“. Sicer jo lahko tudi ročno
odpremo iz seznama spremenljivk vendar je vseeno bolj fino, če se sama odpre.
Rezultat pogoja v vrstici 77 je zgolj odprtje matrike rezultatov.
Pri vrstici 80 se začne glavno telo izračuna. Pričetek sta dva for stavka, ki prepišeta x in y
vrednosti iz podatkovne matrike v samostojni matriki X inY. To je dobro zato, ker bi drugače
pri dostopu posameznih koordinat bilo potrebno navajati dolgo ime podatkovne matrike
(npr. podatki(5).x). Zdaj je pa samo x(5), kar je bistveno enostavneje in pregledneje.
Med vrsticami 97 in 104 na sliki 5.17 je vstavljeno eno okno z nekaj napotki za delovanje s
programom in gumbom za nadaljevanje. Okno se pojavi pred začetkom izračuna. Elementi
v kodi so bolj ali manj isti kot za gumb na začetku programa. Vrstice med 107 in 121 zgolj
prepišejo podatke iz matrike podatki v spremenljivke, ki so krajšega zapisa in bolj praktične
za nadaljno uporabo.
71
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Naprej je še potrebno izračunati kot gama in zaledni kot alfa (na sliki 5.9).
Sledi if stavek (127), ki razlikuje računanje sprednjega kota zidu med primeroma, ko ima
zid spredaj nogo in ko je nima.
Slika 5.17: Informativno okno in prepis vrednosti iz matrike v lokalne spremenljivke
72
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Podobno kot v vrstici 127 se tukaj (137) razlikuje med dvema različnima površinama in
ročicama elementa OPC5. Spet zaradi slučaja, ko ima zid spredaj nogo in ko je nima.
Slika 5.18: Izračun kotov, težišč in ploščin likov
73
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V nadaljevanju (158) še sledijo izračuni ostalih segmentov S1 in S2, skupna teža sumag in
navor teže zidu okoli točke A sumarg.
Slika 5.19: Izračun ploščinske teže segmentov in njihovih navorov na točko A
74
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Strižni kot zemljine (175) mora biti reduciran s predpisanim faktorjem in se izračuna z:
𝜑𝑑 = 𝑡𝑎𝑛−1 (𝑡𝑎𝑛 𝜑)
𝛾𝜑 (5.3)
kjer je:
𝜑 - kot notranjega trenja zemljine
𝛾𝜑 - varnostni faktor
Deltap je trenje med zidom in zaledno zemljino, ki je uporabniško določen, v programu je
privzet kot:
𝛿𝑎,𝑝 =2
3∙ 𝜑𝑑 (5.4)
Koeficient aktivnega zemeljskega pritiska (ka):
𝐾𝑎𝑔ℎ,𝑝𝑔ℎ =𝑐𝑜𝑠2(𝜑±𝛼)
𝑐𝑜𝑠2𝛼[1±√𝑠𝑖𝑛(𝜑±𝛿𝑎,𝑝)∙𝑠𝑖𝑛 (𝜑±𝛽)
𝑐𝑜𝑠(𝛼−𝛿𝑎,𝑝)∙𝑐𝑜𝑠 (𝛼+𝛽)]
2 . (5.5)
Slika 5.20: Izračun geomehanskih koeficientov
75
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Za sprispevek obtežbe p je uporabljen ka2, s katerim se izračuna dodatek obtežbe v
rezultantni smeri:
𝐾𝑎𝑔,𝑝𝑔 =𝐾𝑎𝑔ℎ,𝑝𝑔ℎ
𝑐𝑜𝑠(𝛼−𝛿𝑎,𝑝) . (5.6)
Potrebno je še izračunati koeficient pasivnega odpora zemljine v horizontalni smeri (kp):
𝐾𝑝𝑔ℎ = 𝑡𝑎𝑛2(45 + 𝜑/2). (5.7)
Sledi izračun horizontalne in vertikalne projekcije aktivnega zemeljskega pritiska eah in
eav ter njunih ročic (185):
𝐸𝑎𝑔ℎ,𝑝𝑔ℎ =ℎ2
2∙ 𝛾𝑧𝑒𝑚 ∙ 𝐾𝑎𝑔ℎ,𝑝𝑔ℎ (5.8)
kjer je:
h - višina zidu
𝛾𝑧𝑒𝑚 - specifična teža zemljine
𝐸𝑎𝑔𝑣,𝑝𝑔𝑣 = 𝐸𝑎𝑔ℎ,𝑝𝑔ℎ ∙ 𝑡𝑎𝑛(𝛿𝑎,𝑝 − 𝛼). (5.9)
Ročice in koti so prikazani na sliki 5.9. V vrstici 189 imamo if stavek, ki računa ročici, ko je
zaledni del zidu nagnjen za nek kot 𝛼 in ko je navpičen. Po definiciji je kot 𝛼 negativen, če
je zid nagnjen k sebi. Od tod tudi pogoj alfa<0. V primeru ko je alfa==0 in je zid navpičen
je ročica preprosto x komponenta točke 3 ali točke 4, saj sta x vrednosti enaki.
V tej točki je še potrebno omeniti, da če hočemo, da kotne funkcije računajo v stopinjah,
moramo zapisati sind, cosd, tand. Dodaten „d“ pomeni degree. Če napišemo brez
dodanega d-ja, se računa v radianih.
76
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Ker obtežba v zaledju zidu lahko je ali ni, zapišemo pogojni stavek. Ko je p večji od nič
računamo dodatno obtežbo zaradi obtežbe p, ki je imenovana eahdod v sintaksi:
𝐸𝑎𝑝 = 𝑝 ∙ ℎ ∙ 𝐾𝑎𝑔,𝑝𝑔 ∙𝑐𝑜𝑠 𝛼∙𝑐𝑜𝑠 𝛽
cos (𝛼+𝛽) (5.10)
Ročici teh dveh dodatnih napetosti (206,207) delujejo na polovici višine zidu za
horizontalno obtežbo, prijemališče vertikalne projekcije je pa na polovici zaledne
osnovnice zidu.
Upoštevati je še potrebno prispevek kohezije each in eacv:
𝐾𝑎𝑐ℎ,𝑝𝑐ℎ =2∙𝑐𝑜𝑠 𝜑∙cos 𝛽∙(1−tan 𝛼∙tan 𝛽)∙𝑐𝑜𝑠(𝛼−𝛿𝑎,𝑝)
1±sin (𝜑±𝛿𝑎,𝑝±𝛼±𝛽) (5.11)
𝐸𝑎𝑐ℎ = ±ℎ ∙ 𝑐𝑑 ∙ 𝐾𝑎𝑐ℎ,𝑝𝑐ℎ (5.12)
𝐸𝑎𝑐𝑣 = 𝐸𝑎𝑐ℎ ∙ tan (𝛿𝑎,𝑝 − 𝛼) (5.13)
Slika 5.21: Obtežbe zaradi zemeljskega pritiska, kohezije in zaledne obtežbe
77
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Kjer je:
𝑐𝑑 - projektirana kohezija zemljine
Ročici se izračunata podobno kot v rsticah 189 do 193 s to razliko, da je prijemališče ročic
enako kot za obtežbo 𝐸𝑎𝑝.
Sedaj, ko so vse komponente vplivov znane, jih seštejemo v vertikalni in horizontalni
smeri.
Splošni izrazi za vertikalne (Vd) in horizalne (Hd) vplive:
𝑉𝑑 = 𝛾𝐺;𝑠𝑡𝑏 ∙ (𝛴𝐺𝑖 + 𝐸𝑎𝑔𝑣 + 𝐸𝑎𝑝𝑣+𝐸𝑎𝑐𝑣) (5.14)
kjer je:
𝑉𝑑 - projektna vrednost rezultantne sile, ki deluje
normalno na osnovo temelja.
𝛾𝐺;𝑠𝑡𝑏 - varnostni faktor,ki temelji na projektnem pristopu
Slika 5.22: Vsota vplivov v X in Y smeri, preverba na zdrs ter pasivni odpor
78
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
𝐻𝑑 = 𝛾𝐺;𝑑𝑠𝑡 ∙ (𝐸𝑎𝑔ℎ + 𝐸𝑎𝑝ℎ+𝐸𝑎𝑐ℎ) (5.15)
kjer je:
𝐻𝑑 - projektna vrednost rezultantne sile, ki deluje
vzporedno z osnovo temelja
Osnovni izraz za zdrs :
𝑅𝑑;𝑧𝑑𝑟𝑠 =𝑡𝑎𝑛(𝛿𝑑)∙𝑉𝑑
𝛾𝑅;ℎ (5.16)
kjer je:
𝛿𝑑 = 𝜑𝑑 - za betonski temelj izveden na mestu
𝛿𝑑 =2
3𝜑𝑑 - za montažni temelj
Izrazi za pasivni odpor:
𝐸𝑝𝑔 =𝐷2
2∙ 𝛾𝑧𝑒𝑚 ∙ 𝐾𝑝 (5.17)
𝐸𝑝𝑐 = 𝐷 ∙ 𝑐𝑑 ∙ √𝐾𝑝 (5.18)
kjer je:
𝐷 - globina (slika 5.8)
Izpolnjen mora biti pogoj:
𝐻𝑑 ≤ 𝑅𝑑,𝑧𝑑𝑟𝑠 + 𝐸𝑝𝑔 + 𝐸𝑝𝑐 (5.19)
Kar pomeni, da vplivi na levi strani enačbe morajo biti manjši od odporov na desni.
79
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V vrstici 238 se začne dvojni if stavek, ki preverja zdrs temelja. Če je odpornost na zdrs večja
od vpliva Hd, potem se izpiše „Rd>Hd zato temelj ne zdrsne“. Če odpornost ni dovolj velika,
se izvede prvi else, ki potem napiše, da je potrebno še dodatno upoštevati pasivni odpor.
Pasivni odpor Rpd je že bil izračunan prej in je že upoštevan v odpornosti. Izpis je tako zgolj
formalnost, ki opozori, da osnovni odpor ni zadoščal.
Torej če osnovni odpor ne zadošča, se aktivira notranji if stavek, ki preverja ali zadošča
vsota obeh odporov. Če zadošča se izpiše tretji komentar, če pa še vedno ne zadošča se pa
izpiše zadnji komentar.
Izraz v vrstici 255 je vsota navorov okoli točke A. Sumarg je navor teže zidu, ki je bil
izračunan v prejšnjih vrsticah.
Slika 5.23: Ugotavljanje odpornosti, ter navor vplivov na točko A
80
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Izraz v 258. vrstici nam da ročico do prijemališča rezultante vplivov. Če jo odštejemo
polovici širine temelja, dobimo ekscentričnost e (260). J1 in j2 sta pogoja, ki določita
nadaljnjo predpostavko določitve kontaktnih tlakov pod temeljem. V bistvu ugotavljamo,
če je rezultanta v jedru prereza ali ne.
V naslednjem if stavku zato razlikujemo med dvema razporeditvama napetosti. Ko je
rezultanta v jedru prereza imamo tlačne napetosti na levem in na desnem koncu zidu;
sigmal in sigmad. Ko rezultanta ni v jedru prereza se tlaki predpostavljajo po trikotni
razporeditvi sigmar. Vsak izid tako še izpiše ali je v jedru prereza ali pa ni.
Enačbe za kontaktne tlake:
𝜎𝐿,𝐷 =𝑉𝑑
𝐵∙𝐿∙ (1 ∓
6∙𝑒
𝐵 ); L=1m' (5.20)
𝜎𝑅 =2∙𝑉𝑑
3∙(𝐵
2−𝑒)
∙ (1 ∓6∙𝑒
𝐵 ) (5.21)
Slika 5.24: Ugotavljanje prijemališča ter izračun napetosti pod temeljem
81
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V zgornjem oknu sledijo izrazi za izračun koeficientov nosilnosti in na dnu glavna enačba
za izračun nosilnosti temeljnih tal. Iz programskega stališča nič posebnega.
Brezdimenzijski faktorji za nosilnost:
𝑁𝑞 = 𝑒𝜋 𝑡𝑎𝑛 𝜑𝑑′
∙ 𝑡𝑎𝑛2(45° +𝜑𝑑
2) (5.22)
𝑁𝑐 = (𝑁𝑞 − 1) ∙ 𝑐𝑜𝑡𝜑𝑑 (5.23)
𝑁𝛾 = 2 ∙ (𝑁𝑞 − 1) ∙ 𝑡𝑎𝑛𝜑𝑑 (5.24)
Brezdimenzijski faktorji za naklon temelja:
𝑏𝑞 = 𝑏𝛾 = (1 − 𝛼′ ∙ 𝑡𝑎𝑛𝜑𝑑)2 (5.25)
− 𝛼′ je kot osnove temelja v radianih
𝑏𝑐 = 𝑏𝑞 −1−𝑏𝑞
𝑁𝑐∙𝑡𝑎𝑛𝜑𝑑 (5.26)
Slika 5.25: Izračun koeficientov potrebnih za določitev odpornosti nosilnih tal
82
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Brezdimenzijski faktorji za obliko temelja:
𝑠𝑐 =𝑠𝑞∙𝑁𝑞−1
𝑁𝑞−1 (5.27)
𝑠𝑞 = 1 +𝐵′
𝐿∙ 𝑠𝑖𝑛𝜑𝑑 (5.28)
𝑠𝛾 = 1 −𝐵′
𝐿∙ 𝑠𝑖𝑛𝜑𝑑 (5.29)
Pri daljših zidovih so ti količniki približno enaki 1, ker gre izraz 𝐵′
𝐿 proti 0;
𝐵′ = 𝐵 − |2𝑒|.
Nagib obtežbe zaradi H:
𝑖𝑞 = (1 −𝐻𝑑
𝑉+𝐴′∙𝐶𝑑∙𝑐𝑜𝑡𝜑𝑑)𝑚 (5.30)
𝑖𝛾 = (1 −𝐻𝑑
𝑉+𝐴′∙𝐶𝑑∙𝑐𝑜𝑡𝜑𝑑)𝑚+1 (5.31)
𝑖𝑐 = 𝑖𝑞 −1−𝑖𝑞
𝑁𝑐∙𝑡𝑎𝑛𝜑𝑑
(5.32)
- 𝑚 =2+𝐵′/𝐿′
1+𝐵′/𝐿′ ≅ 2 kadar H deluje v smeri 𝐵′.
Glavna enačba za nosilnost temeljnih tal:
𝑅𝑑 = 𝐴′ ∙ 𝑐𝑑 ∙ 𝑁𝑐 ∙ 𝑏𝑐 ∙ 𝑠𝑐 ∙ 𝑖𝑐 + 𝑞′ ∙ 𝑁𝑞 ∙ 𝑏𝑞 ∙ 𝑠𝑞 ∙ 𝑖𝑞 + 0.5 ∙ 𝛾𝑧𝑒𝑚 ∙ 𝐵′ ∙ 𝑁𝛾 ∙ 𝑏𝛾 ∙ 𝑠𝛾 ∙ 𝑖𝛾
(5.33)
kjer je:
𝑞′ = ℎ ∙ 𝛾𝑧𝑒𝑚
𝐴′ = 𝐵′ ∙ 𝐿′
𝐿′ = 1, ker računamo na tekoči meter.
83
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Sedaj, ko je vse izračunano še preostane zapis rezultatov v lahko berljivo tabelo oziroma
matriko. Uporabimo isti pristop kot v začetku, ko so se podatki iz matrike „podatki“
zapisovali v samostojne spremenljivke. Postopek za to je od 296. do 354. vrstice. Rezultat
bo strukturna matrika (struct) s 42 polji. If stavki, ki so na slikah 5.26 in 5.27 skrbijo za urejen
Slika 5.26: Vnašanje rezultatov v matriko
84
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
izpis podatkov. Če nimamo obtežbe p ali kohezije c, je izpis rezultatov, ki izhajajo iz teh
količin nesmiseln, ker so nič. Zato s pogoji dosežemo izpis samo relevantnih podatkov.
Izpis podatkov lahko naredimo tudi drugače.
Matlab vsebuje funkcijo publish, ki lahko izvozi celoten program, medtem pa še v realnem
času požene program in zajame računske in grafične rezultate. Projekt lahko objavimo v
več formatih; html, .doc, .pdf, .xml, .latex, .ppt. Prikaz izračuna in rezultatov je tako lepo
urejen dokument, ki je berljiv na najbolj pogostih platformah.
Z dodatnim tekstom, slikami in pojasnili je izpis lahko še boljši in bolj informativen.
Slika 5.27: Nadaljevanje vnosa rezultatov v matriko
85
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
V naslednjih vrsticah bo prikazano, kako se lotiti preprostega grafičnega prikaza dobljenih
rezultatov.
Celotni sklop je if stavek, ki razlikuje med razporeditvijo napetosti, ko je rezultanta znotraj
jedra prereza in ko ni znotraj jedra prereza. Na sliki 5.28 je del, ki predvideva prvo od
omenjenih situacij. Narisati poligon računanega zidu ni problem, saj smo koordinate s
prepisom shranili v x in y matriki. Kar je bolj zanimivo, je prikazati napetosti z njihovimi
vrednostmi. Ker vemo, da je skupna obremenitev Vd normalna na osnovo temelja, bo moral
poligon za napetosti tudi biti tako narisan. Torej moramo kreirati dvojico koordinat, ki bodo
orisale zeleni poligon, prikazan na sliki 5.29. Vrednosti k in l so te koordinate.
Vrednost napetosti na obeh straneh je tista, ki daje zunanjima točkama distanco od osnove
temelja. Zato je pomik točk 3 in 4 odvisen od teh dveh vrednosti. Napetosti so skalirane s
količnikom 75, saj bi drugače bil poligon prevelik.
Slika 5.28: Grafični izpis napetosti pod temeljem
86
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Zaradi temelja z osnovo pod kotom, je potrebno v y
smeri točki 2 in 3 zamakniti za y vrednost točke 3
rdečega poligona. Tako se rdeči in zeleni poligon ne
prekrivata in se le dotikata.
S tem so koordinate poligona določene. Preostane še
nekaj nastavitev grafičnega okna (slika 5.28). Prej
smo uporabljali samo osnovno obliko okna (figure
(8)), sedaj bo zapis bolj razširjen.
Okno lahko nastavimo tako, da se prikazuje vedno na
istem mestu. To določita prvi dve števili (370), ki sta
izhodišče grafičnega okna. Drugi dve števili sta
dimenziji okna.
Okno lahko poimenujemo, kar omogoči argument
'Name'.
Zapis v vrstici 371 nariše rdeči poligon, funkcija patch pa omogoči, da še naprej rišemo v
isto okno, sicer se odpre novo okno.
S fiksiranjem okna se zdaj lahko poslužimo statične umestitve tekstovnih oken pod
temeljem. Zapisi koordinat v annotation funkciji so v deležih od trenutne ločljivosti figure
okna. Ker je le-to določeno, bo tekst vedno na istem mestu. Vsebino tekstovnega okna
zapišemo za identifikatorjem 'String'. Če bi želeli imeti tekst, bi napisan tekst moral biti v
apostrofih. Ker pa je tekst v tem primeru številčna vrednost spremenljivke pa mora biti brez
apostrofov.
Nenazadnje hočemo, da je razmerje med koordinatami 1:1, da bo izris poligona realen. To
določa izraz v 377. vrstici.
Slika 5.29: Napetosti pod temeljem
87
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Za drugi del if stavka velja isto kot za prvi del z to razliko, da gre za poligon s tremi
točkami.
Pri koncu damo izpisati matriko rezultatov s tem namenom (vrstica 400), da če bomo
objavili (publish) rezultate, da se v datoteki lepo izpišejo.
Izraz 401 se ne objavi ampak se le odpre matrika v delovnem okolju Matlaba.
In čisto na koncu še end, ki je del if stavka omenjenega v začetku, ki odloča med matriko
podatkov, izračunom in rezultati.
Slika 5.30: Lastnosti grafičnega okna
88
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
-Primer zidu z zaledno obtežbo in kohezijo
Težnostni podporni zid je potrebno preveriti na zdrs, nosilnost temeljnih tal ter lego in
naklon rezultante (po standardu EN-1997-1: drenirano stanje). Uporabimo projektni
pristop 1 s kombinacijo delnih količnikov A2 »+« M2 »+« R1.
Fizikalni podatki:
-𝛾𝑧𝑒𝑚𝑙𝑗𝑖𝑛𝑒 = 19 𝑘𝑁
𝑚3
-𝛾𝑧𝑖𝑑𝑢 = 25 𝑘𝑁
𝑚3
-𝑐 = 20 𝑘𝑃𝑎
-𝜑 = 29°
Faktorji varnosti:
-𝛾𝑐 = 1.25
-𝛾𝜑 = 1.25
-𝛾𝐺,𝑑𝑠𝑡 = 1.0
-𝛾𝐺,𝑠𝑡𝑏 = 1.0
-𝛾𝑅;ℎ = 1.0
Nalogo bomo seveda izvedli s programom.
Slika 5.31: Model obravnavanega zidu
89
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Program zaženemo v Matlabu tako, da vpišemo njegovo ime in stisnemo enter. Lahko bi
ga tudi odprli v levem seznamu in ga potem zagnali iz tistega okna.
Slika 5.32: Zagon programa
90
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Ob zagonu se pojavi vstopno okno. Če nimamo že od prej vnešenih podatkov, izberemo
„Matrika podatkov“ in željeni projektni pristop.
Slika 5.33: Izbirno okno programa
91
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Po kliku na gumb „Nadaljuj“ se v zgornjem oknu odpre razpredelnica, kamor vnesemo
koordinate zidu in druge podatke v zvezi z geometrijo in zemljino. Opazimo, da so zaradi
izbora projektnega pristopa v prejšnjem meniju že izpolnjene vrednosti varnostnih
faktorjev.
Hkrati z razpredelnico se še odpre slika, ki prikazuje pomen določenih podatkov in možne
oblike zidov, ki jih program lahko računa (slika Figure 6 je pomanjšana, zato je izgled na
sliki 5.35 popačen).
Slika 5.34: Pojavno okno s skicami izračunjivih zidov
92
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Po vnosu podatkov zaženemo program še enkrat, da pridemo do vstopnega okna. V tem
primeru sedaj izberemo „Izračun“ in kliknemo „Nadaljuj“.
Slika 5.35: Vnos podatkov v podatkovno matriko
93
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Program problem izračuna in na koncu odpre matriko rezultatov kot je prikazano na slikah
5.38 in 5.39.
Slika 5.37: Matrika rezultatov Slika 5.36: Matrika rezultatov
94
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
In na koncu še grafični prikaz napetosti pod
temeljem.
Iz rezultatov tako lahko zaključimo, da
odpornost proti zdrsu zadošča in je:
𝑅𝑑,𝑧𝑑𝑟𝑠 ≥ 𝐻𝑑
99.64𝑘𝑁
𝑚′≥ 63.68
𝑘𝑁
𝑚′
Rezultanta vplivov ni v jedru prereza, zato je
predvidena trikotna razporeditev kontaktnih
tlakov (slika 5.39).
In še odpornost zemljine Rd presega vrednost
vpliva Vd:
𝑅𝑑,𝑡𝑎𝑙 ≥ 𝑉𝑑
619.55𝑘𝑁
𝑚′≥ 224.69
𝑘𝑁
𝑚′
Slika 5.38: Grafični prikaz napetosti pod temeljem
95
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
6 ZAKLJUČEK
Obravnavali smo dva jezika za programiranje. Tako imenovani Texas Basic in Matlabov
lastni jezik. Ob natančnem pregledu sintakse ugotavljamo, da je jedro logike sintakse bolj
ali manj enako. Texas Basic je jezik, ki je po našem mnenju zelo primeren za začetnike. Sama
sintaksa je enostavno berljiva in razumljiva. Matlabov jezik je na prvi pogled mnogo bolj
kompliciran, kot se pa zdi. Resnica je ta, da je Matlabov jezik prav tako udoben , ko se ga
navadimo.
Oba jezika imata prednosti in slabosti. Kot že omenjeno prej, je glavna prednost Texas
Basica njegova izjemna podpora za simbolno računanje. Vnos, rezultati, zapiski, vse
simbolne operacije izvajamo z neverjetno lahkoto. Tega Matlab nima, vsaj ne v taki meri.
Tak dodelan simbolni sistem dela CAS kalkulatorje kot izjemno prilagodljivo in nepogrešljivo
orodje. Ni važno, koliko oklepajev ali korenov ali ulomkov imamo, vnos je vedno enostaven
in naraven. Zaradi tega je primeren za hitre in spontane programske rešitve, ki večinoma
ne zahtevajo dolge sintakse.
To je tudi slabost Texasovega jezika, saj ni primarno namenjen za pisanje velikih programov.
Ne zato, ker ni zmogljiv, ampak zato, ker je izjemno nepraktično pisati daljšo kodo, tudi na
računalniku.
Vmesnik za pisanje Matlabove sintakse je čisto nasprotje. Preglednost je neprimerljivo
boljša in sintakso je mogoče lepo urediti, saj podpira tudi barvanje kode. Spremenljivke
imajo svoje okno in samega programa ni potrebno ročno shranjevati po mučnem
Teksasovem postopku. Razhroščevanje je dodelano in hitrejše. Nastale napake v sintaksi
imajo tudi boljše opise, zaradi česar je lažje ugotoviti, za kakšno napako gre.
Z vsemi temi elementi je očitno, da je Matlabov jezik narejen za zahtevnejšo rabo, saj resnici
na ljubo, se v tem delu dotikamo le površine zmogljivosti tega jezika.
Kar se tiče praktičnih računskih postopkov, sta oba jezika dovolj zmogljiva. Razlika je v
udobju. Včasih je bolj priročno imeti prenosljiv kalkulator, ki ima hkrati še zmogljivost
razvitost jezika, diverziteta ukazov, hitrost in njegova prepletenost z drugimi platformami.
96
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Pri opisu osnovnih funkcij smo videli, koliko več možnosti za določeno funkcijo ima Matlab.
Če ima Texas Basic dve jih ima Matlab vsaj 10. Torej imamo možnost izbrati tisti pristop, ki
našemu problemu najbolj ustreza.
Tako lahko zaključimo, da je Texasov jezik zelo pomemben prispevek v svetu računskih
problemov. Najboljša točka tega jezika je naraven simbolni vnos, ki nam prihrani veliko
muk. Še boljše je to, da lahko naravni izraz kopiramo iz Texas Basica in prilepimo v Matlabov
urejevalnik. Naraven zapis se nato prevede v tipkan zapis in nam prihrani veliko časa.
Matlabov programski jezik je odlična izbira za pisanje programov na namiznem računalniku
Kombinacija obeh naprav in obeh programskih jezikov pa je najbolj učinkovita.
97
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
7 VIRI IN LITERATURA
[1] B. Macuh, 2011, Zemeljska dela in temeljenje, 3. izdaja,Univerza v Mariboru.
[2] B. Macuh, 2008, Zbirka enačb, diagramov in tabel s področja geotehnike, 3.
izdaja,Univerza v Mariboru.
[3] B. Macuh, 2010, Zapiski iz vaj statike, Fakulteta za gradbeništvo, Maribor.
[4] H. Vrecl Kojc, 2012 Zapiski iz vaj temeljenja, Fakulteta za gradbeništvo, Maribor.
[5] M. Skrinar, 2014 Zapiski iz predavanj Mehanike linijskih elementov, Fakulteta za
gradbeništvo, Maribor.
[6] Texas Instruments, 2006 - 2011 TI-nspire student software guidebook, Texas
Instruments Incorporated
[7] MathWorks, 2015, Spletna dokumentacija Matlab. Dostopno na:
http://www.mathworks.com/help/matlab/, [18.3.2015]
[8] https://en.wikipedia.org/wiki/MATLAB, [15.9.2015]
OSTALI INTERNETNI VIRI:
- http://www.dummies.com/how-to/content/use-the-tinspire-define-command-to-store-
a-functio.html. [18.3.2015]
- http://www.dummies.com/how-to/content/how-to-reference-a-rectangular-block-of-
cells.html. [18.3.2015]
- http://math.kendallhunt.com/documents/daa2/cntns/daa2cntns_014_06.pdf.
[18.3.2015]
- http://tibasicdev.wikidot.com/68k:mode-settings. [18.3.2015]
- http://www.manualslib.com/manual/325944/Ti-Ti-Nspire.html?page=77#manual.
[18.3.2015]
- https://nf.nci.org.au/facilities/software/Matlab/techdoc/ref/uicontrol.html.
[18.3.2015]
98
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
8 PRILOGE
8.1 Seznam slik
Slika 2.1: Funkcija define ....................................................................................................... 3
Slika 2.2: Okno za vnos novega programa ............................................................................. 4
Slika 3.1: Statični sistem konstrukcije .................................................................................. 20
Slika 3.2: Prvi del programa ................................................................................................. 23
Slika 3.3: Jedro programa .................................................................................................... 24
Slika 3.4: Izpis notranjih statičnih količin v preglednici ....................................................... 25
Slika 3.5: Drugi del programa, ki velja za interval od 45°-90° ............................................. 26
Slika 3.6: Program za delta h vrednost ................................................................................ 28
Slika 3.7: Rezultat programa ................................................................................................ 29
Slika 3.8: Betonska plošča razdeljena na enake segmente ................................................. 30
Slika 3.9: Preglednica, kjer so shranjene koordinate segmentov ........................................ 31
Slika 3.10: Začetni del programa ......................................................................................... 32
Slika 3.11: Enojni element ................................................................................................... 33
Slika 3.12: Dodatni pravokotnik pri horizontalno raztegnjenih kombinacijah ................... 35
Slika 3.13: Superpozicije likov pri izračunu vplivov med diagonalnimi segmenti ............... 35
Slika 3.14: Izračun modrega in zelenega pravokotnika ....................................................... 37
Slika 3.15: Izračun vijoličnega ali rjavega pravokotnika ...................................................... 38
Slika 3.16: Izračun rdečega pravokotnika ............................................................................ 39
Slika 3.17: Vzporedna segmenta ......................................................................................... 40
Slika 3.18: Izračun roza in rumenega pravokotnika ............................................................ 40
Slika 3.19: Rezultati.............................................................................................................. 41
Slika 4.1: Vmesnik za simbolno računanje Mupad .............................................................. 43
Slika 4.2: Glavno okno Matlaba ........................................................................................... 44
Slika 4.3: Okno z razlago in primeri ..................................................................................... 46
Slika 4.4: Funkcije za prikazovanje ...................................................................................... 47
Slika 4.5: Operatorja and in or pri if stavkih ........................................................................ 49
99
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 4.6: Vnos točk s pomočjo miške .................................................................................. 50
Slika 4.7: Primeri if in for stavkov ........................................................................................ 51
Slika 5.1: Obravnavani prerez .............................................................................................. 53
Slika 5.2: Zahteve za vnos podatkov in prepis točk v novo matriko ................................... 55
Slika 5.3: Izračun cikličnih elementov .................................................................................. 56
Slika 5.4: Grafični prikaz rezultatov (od 55 dalje) ............................................................... 57
Slika 5.5: Jedro prereza lika ................................................................................................. 58
Slika 5.6: I nosilec ................................................................................................................. 59
Slika 5.7: Jedro prereza I nosilca .......................................................................................... 59
Slika 5.8: Osnovni model zidu .............................................................................................. 60
Slika 5.9: Polni model s vplivi in rezultantami ..................................................................... 61
Slika 5.10: Možne variacije zidov za program ..................................................................... 62
Slika 5.11: Ročice posameznih segmentov in dodatne točke ............................................. 63
Slika 5.12: Vstopno okno programa .................................................................................... 64
Slika 5.13: Sintaksa vstopnega okna .................................................................................... 65
Slika 5.14: Začetek if stavka, ki se aktivira glede na izbor iz vstopnega okna ..................... 67
Slika 5.15: Projektni pristopi ................................................................................................ 68
Slika 5.16: Začetek računskega dela .................................................................................... 69
Slika 5.17: Informativno okno in prepis vrednosti iz matrike v lokalne spremenljivke ...... 71
Slika 5.18: Izračun kotov, težišč in ploščin likov .................................................................. 72
Slika 5.19: Izračun ploščinske teže segmentov in njihovih navorov na točko A ................. 73
Slika 5.20: Izračun geomehanskih koeficientov .................................................................. 74
Slika 5.21: Obtežbe zaradi zemeljskega pritiska, kohezije in zaledne obtežbe ................... 76
Slika 5.22: Vsota vplivov v X in Y smeri, preverba na zdrs ter pasivni odpor ...................... 77
Slika 5.23: Ugotavljanje odpornosti, ter navor vplivov na točko A ..................................... 79
Slika 5.24: Ugotavljanje prijemališča ter izračun napetosti pod temeljem ......................... 80
Slika 5.25: Izračun koeficientov potrebnih za določitev odpornosti nosilnih tal ................ 81
Slika 5.26: Vnašanje rezultatov v matriko ........................................................................... 83
Slika 5.27: Nadaljevanje vnosa rezultatov v matriko........................................................... 84
Slika 5.28: Grafični izpis napetosti pod temeljem ............................................................... 85
100
Računalniško programiranje v gradbeništvu z uporabo Texas Basic in Matlab Java
Slika 5.29: Napetosti pod temeljem .................................................................................... 86
Slika 5.31: Lastnosti grafičnega okna ................................................................................... 87
Slika 5.32: Model obravnavanega zidu ................................................................................ 88
Slika 5.33: Zagon programa ................................................................................................. 89
Slika 5.34: Izbirno okno programa ....................................................................................... 90
Slika 5.35: Pojavno okno s skicami izračunjivih zidov.......................................................... 91
Slika 5.36: Vnos podatkov v podatkovno matriko ............................................................... 92
Slika 5.37: Matrika rezultatov .............................................................................................. 93
Slika 5.38: Matrika rezultatov .............................................................................................. 93
Slika 5.39: Grafični prikaz napetosti pod temeljem ............................................................ 94
8.2 Seznam preglednic
Tabela 2.1: Tabela velja Za Nspire CAS in CAS CX kalkulatorje ........................................... 16
Tabela 2.2: Tabela velja za starejše kalkulatorje ................................................................. 17
8.3 Naslov študenta
Marcel Kuferšin
Pot na Novine 6
2212 Šentilj v Slovenskih goricah
8.4 Kratek življenjepis
Rojen 20. 6. 1990 v Murski Soboti. Obiskoval osnovno šolo med 1997-2005 in srednjo šolo
med 2005-2009. Od leta 2009 vpisan na fakulteto za gradbeništvo in med tem časom
pridobil interes za programiranje in lesene energetsko učinkovite zgradbe.