Program za izracun staticno dolocenih ali nedolocenih palicij

Datum izdelave: junij 1996

KAZALO NUMERICNEGA DELA - PAL.C

UVOD

ZAHTEVE

TEORETICNE OSNOVE

PREDSTAVITEV PRINCIPOV DELOVANJA PROGRAMA

PRIMER OMEJITVE IN POMANJKLJIVOSTI PROGRAMA

MOZNE IZBOLJSAVE

PRILOGE

ZAKLJUCEK

KAZALO GRAFICNEGA DELA - POST.C

Program za izracun staticno dolocenih ali nedolocenih palicij

UVOD

ZAHTEVE

TEORETICNE OSNOVE

PREDSTAVITEV PRINCIPOV DELOVANJA PROGRAMA

PRIMER

OMEJITVE IN POMANKLJIVOSTI PROGRAMA

MOZNE IZBOLJSAVE

PRILOGE

ZAKLJUCEK

Uvod

Dandanes izgublja svojo vlogo klasicen izracun palicij zaradi prevelikega obsega palic oz. vozlisc. Izracun na klasicen nacin bi bil dolgotrajen; to pa si danes podjetja ne morejo privosciti. To je glavni razlog za uporabo numericnih algoritmov, ki se jih da uporabiti na racunalnikih (manjsi primeri) ali na delovnih postajah (vecji primeri). Numericne metode so omogocile obravnavo napetostno-deformacijskih stanj na matematicno nepravilnih oblikah konstrukcij.

Najbolj primerna in tudi najbolj uporabljena numericna metoda za resevanje omenjenih problemov je metoda koncnih elementov (MKE), ki sem jo uporabil na danem primeru.

V nasem primeru je glavni razlog za uporabe te metode hitrost izracuna.

Zahteve

Izdelaj program za izracun staticno dolocenih in staticno nedolocenih palicij. Vhodni podatki naj bodo podani v datoteki. Oblika vhodnih podatkov je prikazana v predlogi. Program naj napravi izracun, rezultate pa naj zapise v izhodno datoteko (palpost.txt v mojem primeru). Izhodna datoteka naj vsebuje podatke, ki jih bo potreboval postprocesor za graficni prikaz.

Teoreticne osnove

Kot sem ze v uvodu omenil, je osnova za izracun MKE. Metoda temelji na prenosnih matrikah, ki prenasajo oz. transformirajo silo iz enega vozlisca preko elementa do drugega vozlisca. V nasem primeru je ta transformacija zelo enostavna, ker je sila po vsem elementu konstantna. Sila v palici je:

F=(Dl/l)EA

kjer je:

Raztezek palice dl nadomestimo s totalnim diferencialom dl (predloga enacba 3 in 4). Sile razcepimo na posamezne komponente (predloga enacba 5).

V vsakem vozliscu morajo biti sile v ravnotezju.

Prav tako pa mora biti zadosceno sistemu enacb, ki ga simbolicno prikazemo z naslednjo enacbo:

kjer predstavlja:

To so grobe teoreticne osnove, ki pa so osnova za izracun problema.

Predstavitev principov delovanja programa

Prototipi

Prototipi so navedeni v vrsticah #include. Vsi razen zadnjih dveh so potrebni za definiranje ukazov, ki sem jih uporabil v programu. Zadnja dva pa sta potrebna za pomozno funkcijo za resevanje sistema linearnih enacb.

Odpiranje datotek

Po deklaraciji spremenljivk sledi podajanje zelene vhodne datoteke in nato odpiranje vhodne ter izhodne datoteke (palpost.txt).

Branje vhodne datoteke

Branje iz vhodne datoteke poteka na osnovi kljucnih besed, ki jih program prebere in shrani v polje znakov key[ ]. Sledi serija if stavkov, ki dolocajo vrednosti spremenljivk. Branje poteka tako dolgo, dokler ni prebrani znak znak za konec datoteke (EOF - end of file). To mi omogoca vrstica

			while(feof(data)==0)

Izracun dolzin palic

Prvi del izracuna je izracun dolzin palic, ki jih program shrani v polje lSmembers], kjer je neznanka members stevilo palic. Dolzine palic potrebujem v nadaljevanju pri kreiranju togostne matrike k in pri izracunu sil v palicah.

Kreiranje togostne matrike

Velikost togostne matrike je enaka produktu dimenzije in stevila vozlisc na kvadrat. Ker so doloceni cleni enaki 0, matriko k najprej inicializiram. S tem avtomatsko postavim clene matrike, ki jih program ne zajame na 0. Togostna matrika ima naslednjo shematsko obliko:

Matrika je kvadratna in simetricna glede na glavno diagonalo. Diagonalni cleni (ce je dimenzija = 2, so to cleni k11, k12, k21, k22 - prvi paket, k33, k34, k43, k44 - drugi paket, ... ,ce pa je dimenzija = 3, so to cleni k11, k12, k13, k21, k22, k23, k31, k32, k33 - prvi paket, k44, k45, k46, k54, k55, k56, k64, k65, k66 - drugi paket, ...) se izracunajo po naslednji formuli:

i=j

Formuli za preostali smeri (y in z) sta analogni, le da x nadomestimo z y oziroma z.

i&eq;j

Za preostali kombinaciji x - z in y - z sta formuli analogni, le da namesto x in y vstavimo preostali kombinaciji. Ker je matrika glede na glavno os simetricna, nastopa v formuli za izracun kji namesto dyi dxi (oziroma preostali dve kombinaciji).

V formulah (4) in (5) imajo oznake naslednji pomen:

Preostali koeficienti imajo obliko:

oziroma

Oznake imajo enak pomen kot v formulah (5) in (4).

Vse te formule so izpeljane iz ravnotezne enacbe (2), s pomocjo izrazov za totalni diferencial dl in izrazov za sile v komponentni obliki (predloga: enacbe (4) in (5)).

Program deluje tako, da zapis diagonalnih cenov zagotovim s pomocjo spremenljivk c,c1,c2,k1,k2 in k3. Zapis diagonalnih in izven diagonalnih koeficientov togostne matrike poteka tako, da za dano vozlisce poisce vse palice, ki se stikajo v danem vozliscu in na podlagi ravnotezne enacbe zapise clene togostne matrike k.

Zamenjava vrstic

Ker pomike nekaterih vozlisc ze poznamo, premiki v podporah so enaki 0, moramo transformirati togostno matriko tako, da bomo izracunali le pomike razlicne od 0, ker ne poznamo vrednosti reakcij v podporah - nepoznani koeficienti vektorja sil. Matriko transformiramo tako, da vrstice, ki vsebujejo pomike enake nic prestavimo na konec oziroma spravimo sistem linearnih enacb v obliko (10) - predloga.

Najprej program ugotovi katere vrstice je potrebno zamenjati in shrani te podatke v dvodimenzionalno polje vrstice[i][j], kjer je i indeks reakcije, j pa je 1 - za vrstico, ki jo je potrebno zamenjati in 2 - za vrstico s katero jo je potrebno zamenjati. Program gre od zadnje proti prvi reakciji. Zamenjava poteka tako, da zadnjo reakcijo postavi na zadnje mesto, predzadnjo na predzadnje...

Nato sledi zamenjava vrstic in stolpcev. Pred vsako zamenjavo program kontrolira pozicijo vrstice, ki jo hocem zamenjati, in ce je le-ta na pravem mestu se zamenjava ne izvede. Ko zamenjamo i-to vrstico, moramo zamenjati tudi i-ti stolpec, da ohranimo sistem linearnih enacb nespremenjen.

Potem sledi inicializacija matrike sil FSi] in zapis zunanjih obremenitev na ustrezna mesta. Ker je program transformiral togostno matriko, mora transformirati tudi matriko sil po istem principu.

Izracun neznanih pomikov

Neznane pomike izracunam tako, da resim sistem enacb (14) v predlogi. To izvedem s pomocjo podprogramov za izracun linearnega sistema enacb ludcmp in lubksb. Vhodni podatki za omenjena pod- programa so togostna matrika k, velikost sistema dimenzija stevilo vozlisc - stevilo reakcij, permutacijska matrika indx (nima pomena za moj program; potreben za podprograma), kazalec y, ki tudi nima vpliva na moj program, in matriko sil F. Podprograma vrneta neznane pomike shranjene v matriki F.

Izracun reakcij

Reakcije izracuna program po naslednji formuli:

kjer je:

Zamenjava pomikov

Sledi zamenjava pomikov na prvotna mesta v obratnem vrstnem redu kot prvotna zamenjava. S tem korakom dobim ponovno urejen prvotni vrstni red pomikov vozlisc (pomembno za izracun sil in zapis v izhodno datoteko).

Izracun sil v palicah

Sile izracuna program po sledeci formuli:

Izpis na ekran in zapis v izhodno datoteko

Preostanek programa je preprost izpis pomikov vozlisc, velikosti reakcij in velikosti sil v palicah na ekran (v istem vrstnem redu) ter zapis podatkov, ki so pomembni za postprocesor, v izhodno datoteko palpost.txt.

Primer

Vhodni podatki

TESTNI PRIMER
space
joints 16
members 38
reactions 12
loads 2

coordinates
1     0.0    0.0    0.0
2  1000.0    0.0    0.0
3  1000.0 1000.0    0.0
4     0.0 1000.0    0.0
5     0.0    0.0 1000.0
6  1000.0    0.0 1000.0
7  1000.0 1000.0 1000.0
8     0.0 1000.0 1000.0
9     0.0    0.0 2000.0
10 1000.0    0.0 2000.0
11 1000.0 1000.0 2000.0
12    0.0 1000.0 2000.0
13    0.0 1000.0 3000.0
14 1000.0 1000.0 3000.0
15 1000.0 3000.0 2000.0
16    0.0 3000.0 2000.0

incidences
1  1  5  5e6
2  1  6  5e6
3  2  6  5e6
4  2  7  5e6
5  3  7  5e6
6  3  8  5e6
7  4  8  5e6
8  4  5  5e6
9  5  6  5e6
10 6  7  5e6
11 7  8  5e6
12 5  8  5e6
13 6  8  5e6
14 5  9  5e6
15 5  10 5e6
16 6  10 5e6
17 6  11 5e6
18 7  11 5e6
19 7  12 5e6
20 8  12 5e6
21 8  9  5e6
22 9  10 5e6
23 10 11 5e6
24 11 12 5e6
25 9  12 5e6
26 10 12 5e6
27 9  13 5e6
28 10 14 5e6
29 11 14 5e6
30 13 14 5e6
31 12 13 5e6
32 12 14 5e6
33 12 16 5e6
34 15 16 5e6
35 11 15 5e6
36 12 15 5e6
37 13 16 5e6
38 14 15 5e6

forces
15 0.0 0.0 -1000.0
16 0.0 0.0 -1000.0

supports
1  x
1  y
1  z
2  x
2  y
2  z
3  x
3  y
3  z
4  x
4  y
4  z
solve

Rezultati

Pomiki vozlisc

1   -0.0000   -0.0000   -0.0000
2   -0.0000   -0.0000   -0.0000
3   -0.0000   -0.0000   -0.0000
4   -0.0000   -0.0000   -0.0000
5   -0.3593    0.4205    0.4352
6   -0.3795    0.5847    0.3648
7   -0.6407    0.5795   -0.5648
8   -0.6205    0.4153   -0.6352
9   -0.6117    1.9630    0.8554
10   -0.6117    2.4169    0.7446
11   -1.3883    2.0370   -1.1446
12   -1.3883    1.5831   -1.2554
13   -0.8990    5.8050   -1.8554
14   -0.8990    6.0375   -1.7446
15   -0.6961    1.2370  -13.5816
16   -0.6961    0.7831  -14.1352

Prva stevilka pomeni zaporedno stevilko vozliçsc. Nato sledijo pomiki vozlisca v x,y in z smeri.

Reakcije

1 x     25.91
1 y      0.00
1 z  -2149.99
2 x      0.00
2 y    -25.91
2 z  -1850.01
3 x    -25.90
3 y      0.00
3 z   2850.01
4 x      0.00
4 y     25.91
4 z   3149.99

Prva stevilka je oznacba vozlisca. Drugi znak doloca smer delovanja podpore. Tretja stevilka je velikost reakcije v N.

Sile v palicah

1   2175.89
2    -36.64
3   1824.10
4     36.64
5  -2824.10
6    -36.63
7  -3175.90
8     36.64
9   -100.90
10    -25.91
11   -100.90
12    -25.91
13    179.33
14   2100.90
15    142.70
16   1899.10
17   -142.69
18  -2899.10
19    142.70
20  -3100.90
21   -142.69
22      0.00
23  -1899.10
24      0.00
25  -1899.10
26   -142.70
27   2828.43
28   2828.42
29  -3000.00
30      0.00
31  -3000.00
32     -0.00
33  -2000.00
34      0.00
35  -2000.00
36     -0.00
37   2236.07
38   2236.07

Prva stevilka je zaporedna stevilka palice, druga pa velikost sile v N.

Omejitve in pomankljivosti programa

Mozne izboljsave

Priloge

Zakljucek

Omenjeni program prikazuje eno (najenostavnejso) izmed uporab metode koncnih elementov v konstrukterske namene. Program je primeren za izracune manjsih 2D ali 3D palicij. Rezultati so cloveku dokaj tuji; tezka predstava obremenitveno - deformacijskega stanja. Zato bom v drugem, graficnem delu postprocesorju vizualiziral konstrukcijo v zelenem pogledu.


Avtor: Samo ZAVOLOVSEK, Vikrce 34a, 1211 Lj. - Smartno