07.01.2015 Views

Program FlexPDE w zastosowaniu do symulacji pól temperatury

Program FlexPDE w zastosowaniu do symulacji pól temperatury

Program FlexPDE w zastosowaniu do symulacji pól temperatury

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Program</strong> <strong>FlexPDE</strong><br />

w <strong>zastosowaniu</strong> <strong>do</strong> <strong>symulacji</strong> pól <strong>temperatury</strong><br />

Marek Markowski<br />

Wydział Nauk Technicznych<br />

Uniwersytet Warminsko Mazurski w Olsztynie<br />

Konspekt zawiera materiały pomocnicze <strong>do</strong> zajęć z modelowania systemów o parametrach<br />

rozłożonych w <strong>zastosowaniu</strong> <strong>do</strong> ustalonych i nieustalonych pól <strong>temperatury</strong>. Przedstawiono opis<br />

oprogramowania <strong>FlexPDE</strong> oraz przykłady zastosowań.<br />

Część opisowa programu <strong>FlexPDE</strong> została w znaczącym stopniu przygotowana w oparciu o<br />

materiały dr inż. Andrzeja Jackiewicza-Korczyńskiego z Akademii Górniczo-Hutniczej w<br />

Krakowie pt. „Technika Wysokich Napiec. Laboratorium. Ćwiczenie: Modelowanie<br />

komputerowe rozkładu pola elektrycznego w układach izolacyjnych WN”, pobrane 27.11.2010 z<br />

http://home.agh.edu.pl/~ajk/dydaktyka/konspekty/twn/modelowanie.pdf


<strong>FlexPDE</strong><br />

<strong>Program</strong> <strong>FlexPDE</strong> (www.pdesolutions.com) korzysta ze specjalnego formatu plików<br />

przetwarzanych w trakcie uruchomienia obliczeń. Pliki te <strong>do</strong>myślnie maja rozszerzenie *.pde.<br />

Bu<strong>do</strong>wa pliku pozwalającego na przeprowadzenie obliczeń nie ma charakteru sekwencyjnego.<br />

Plik ten składa sie z pewnych grup, opisanych niżej, pozwalających na pełną kontrolę nad<br />

procesem obliczeniowym. Grupy w pliku *.pde muszą być uszeregowane w odpowiedniej<br />

kolejności w grupach (patrz przykłady na końcu).<br />

TITLE<br />

SELECT<br />

VARIABLES<br />

DEFINITIONS<br />

INITIAL VALUES<br />

EQUATIONS<br />

BOUNDARIES<br />

TIME<br />

MONITORS<br />

PLOTS<br />

HISTORIES<br />

END<br />

Istnieje ponadto możliwość generacji geometrii układu w programie AUTOCAD. Konieczne jest<br />

przy tym odpowiednie nazewnictwo warstw na rysunku formatu AUTOCAD a także zapisanie<br />

rysunku w formacie *.dxf (najlepiej w wersji 12).<br />

1. Grupa TITLE<br />

Grupa ta zawiera tytuł analizy ujęty w pojedynczych apostrofach, który jest wyświetlany na<br />

każdym z wykresów.<br />

2. Grupa SELECT<br />

Grupa ta pozwala na wybranie odpowiednich ustawień <strong>do</strong>tyczących metody całkowania,<br />

wymaganej minimalnej gęstości siatki dla całego modelu (NGRID), zmiany palety kolorów przy<br />

tworzeniu wykresów konturowych i przestrzennych (THERMAL COLORS), ustalenia rzędu<br />

elementów (CUBIC), (ORDER) oraz wielu innych parametrów związanych ze specyficznymi<br />

dla pozostałych grup komendami. Poniżej lista wybranych opcji.<br />

ALIAS<br />

BLACK<br />

CONTOURS<br />

CUBIC<br />

ERRLIM<br />

(coord) alternatywna nazwa wymiarów (dla potrzeb opisu osi wykresów)<br />

wykresy czarno-białe<br />

liczba izolinii dla wykresów konturowych<br />

element trójkątny z funkcją bazową w postaci wielomianu trzeciego<br />

stopnia<br />

poziom <strong>do</strong>kładności rozwiązania (odniesiony <strong>do</strong> względnego błędu<br />

zmiennych stanu)


GRAY<br />

wykresy w 32-stopniowej skali szarości<br />

GRIDLIMIT maksymalna liczba ponownych generacji siatki przed wystąpieniem<br />

ostrzeżenia. W trybie wsa<strong>do</strong>wym przerywa wykonanie skryptu<br />

LOGLIMIT maksymalna liczba dekad dla wykresów w skali logarytmicznej<br />

NGRID liczba liczba wierszy siatki w każdym wymiarze<br />

NODELIMIT maksymalna liczba węzłów<br />

NOMINMAX usuniecie wskaźników położenia wartości maksymalnej i minimalnej na<br />

wykresach konturowych<br />

NOTIPS<br />

wykresy wektorowe z wektorami bez oznaczenia zwrotu<br />

ORDER<br />

rząd funkcji interpolującej<br />

PAINTED wykresy konturowe wypełnione kolorem, możliwe wypełnienie<br />

wybranych wykresów po <strong>zastosowaniu</strong> tej opcji w sekcji PLOTS<br />

REGRID<br />

adaptacyjna poprawa siatki elementów<br />

STAGEGRID wymuszenie regeneracji siatki po każdym wariancie obliczeń<br />

wielowariantowych<br />

STAGES<br />

liczba wariantów w obliczeniach<br />

TEXTSIZE rozmiar tekstu na wykresach (w liniach na stronę)<br />

THERMAL COLORS kolejność palety kolorów. Włączenie sprawia, że największe wartości<br />

oznaczone są kolorem czerwonym (gorąco)<br />

3. Grupa COORDINATES<br />

Grupa ta pozwala na określenie układu współrzędnych. Do wyboru są układy:<br />

CARTESIAN(’X’,’Y’)<br />

XCYLINDER(’Z’,’R’)<br />

YCYLINDER(’R’,’Z’)<br />

współrzędne kartezjańskie (prostokątne) w przestrzeni 2D<br />

współrzędne cylindryczne dla poziomej osi symetrii<br />

współrzędne cylindryczne dla pionowej osi symetrii<br />

CARTESIAN3(’X’,’Y’,’Z’) współrzędne kartezjańskie (prostokątne) w przestrzeni 3D<br />

4. Grupa VARIABLES<br />

W tej grupie umieszcza sie nazwy skalarnych zmiennych stanu w równaniach różniczkowych<br />

cząstkowych. W przypadku pól <strong>temperatury</strong> lub stężenia substancji zmienną stanu jest<br />

odpowiednio temperatura lub stężenie substancji. Ponieważ program nie posiada możliwości<br />

prowadzenia obliczeń dla zespolonych zmiennych stanu, w razie potrzeby należy wprowadzić<br />

dwie zmienne stanu odpowiednio dla wartości rzeczywistej i urojonej. Wektorowe zmienne<br />

stanu należy rozdzielić na skalarne skła<strong>do</strong>we geometryczne. Zmienna T oraz t jest zastrzeżona<br />

dla czasu i nie może być stosowana jak zmienna stanu.<br />

5. Grupa DEFINITIONS<br />

Grupa ta pozwala na zdefiniowanie wartości parametrów wykorzystywanych <strong>do</strong> stworzenia<br />

numerycznego modelu układu, np. parametrów geometrycznych, lub zmiennych związanych ze<br />

zmiennymi stanu, np. strumień ciepła lub strumień substancji. Ponadto można tu definiować


własności materiałów. Tworząc wyrażenia można stosować następujące operatory algebraiczne<br />

<strong>do</strong>dawania, odejmowania, mnożenia, dzielenia i potęgowania: +, -, *, / ,^. Można także stosować<br />

wszystkie funkcje zdefiniowane w systemie <strong>FlexPDE</strong>. Szczególne znaczenie mają funkcje<br />

umożliwiające obliczanie całek liniowych, powierzchniowych i objętościowych.<br />

Zastosowanie:<br />

zmienna = wyrazenie<br />

obliczana jest wartość wyrazenie i<br />

przypisywana <strong>do</strong> zmienna.<br />

Funkcje <strong>do</strong> obliczania całki opisane są poniżej.<br />

TIME_INTEGRAL(wyr)<br />

oblicza całkę z wyr względem czasu w<br />

przedziale od chwili początkowej <strong>do</strong> chwili<br />

bieżącej<br />

LINE_INTEGRAL(wyr, nazw_brzeg)<br />

oblicza całkę liniową z wyr wzdłuż linii<br />

lub<br />

nazw_brzeg. Jeśli nazw_brzeg jest<br />

LINE_INTEGRAL (wyr, nazw_brzeg, nazw_obsz) pominięta to całkowanie odbywa się po<br />

lub<br />

całym obwodzie konturu. Dla geometrii<br />

LINE_INTEGRAL (wyr, nazw_brzeg, nr_obsz) CARTESIAN2 polecenie to jest tożsame z<br />

poleceniem SURF_INTEGRAL. Dla<br />

geometrii CARTESIAN3 całka ta może<br />

wyznaczona jedynie na „wyciskanej”<br />

płaszczyźnie. Opcjonalnie może być<br />

podana nazwa lub (dla 3D) numer obszaru:<br />

nazw_obsz lub nr_obsz<br />

SURF_INTEGRAL(wyr)<br />

lub<br />

SURF_INTEGRAL(wyr, nazw_brzeg)<br />

oblicza całkę z wyr po całej zewnętrznej<br />

powierzchni (3D).<br />

oblicza całkę z wyr po powierzchni<br />

nazw_brzeg<br />

lub<br />

SURF_INTEGRAL(wyr, nazw_brzeg, nazw_obsz ) oblicza całkę z wyr po powierzchni<br />

nazw_brzeg leżącej w obszarze nazw_obsz<br />

lub<br />

SURF_INTEGRAL(wyr, plaszcz, obsz, warstw)<br />

oblicza całkę z wyr po powierzchni<br />

nazw_brzeg leżącej w obszarze nazw_obsz<br />

w warstwie warstw<br />

INTEGRAL(wyr)<br />

lub<br />

INTEGRAL(wyr, obsz)<br />

lub<br />

oblicza całkę z wyr po całej objętości (3D)<br />

oblicza całkę z wyr po objętości obszaru<br />

nazw_obsz


INTEGRAL(wyr, obsz, warstw )<br />

lub<br />

VOL_INTEGRAL(wyr, obsz)<br />

lub<br />

VOL_INTEGRAL(wyr, obsz, warstw)<br />

oblicza całkę z wyr po objętości obszaru<br />

nazw_obsz leżącego w warstwie warstw<br />

oblicza oblicza to samo co<br />

INTEGRAL(wyr, obsz)<br />

oblicza oblicza to samo co<br />

INTEGRAL(wyr, Obsz, warstw)<br />

6. Grupa INITIAL VALUES<br />

W przypadku problemu ustalonego nieliniowego związanego z parametrami śro<strong>do</strong>wiska a także<br />

problemu nieustalonego pozwala na określenie wartości początkowych zmiennych stanu. W<br />

przeprowadzanej analizie pól statycznych i quasi-statycznych liniowych wartości a także cała<br />

grupa są nieistotne.<br />

7. Grupa EQUATIONS<br />

Grupa ta pozwala na zapisanie cząstkowych równań różniczkowych opisujących rozkład<br />

zmiennych stanu przy użyciu operatorów różniczkowych gradientu (GRAD), dywergencji<br />

(DIV), rotacji (CURL) i laplasjanu DEL2. Jeżeli jest to konieczne, można również zastosować<br />

operatory różniczkowania cząstkowego w postaci Nazwa lub Dnazwa1nazwa2, gdzie nazwa<br />

odpowiada nazwie współrzędnej przyjętego układu współrzędnych. Gdy w modelu wykorzystuje<br />

się więcej niż jedną zmienną stanu należy definicję równania poprzedzić nazwą odpowiedniej<br />

zmiennej. Przykłady poniżej.<br />

Jedna zmienna stanu, Tp:<br />

EQUATIONS<br />

dx(Tp)+dy(Tp) = A<br />

Dwie zmienne stanu, Tp, u:<br />

EQUATIONS<br />

Tp: dx(Tp)+dy(Tp)+dx(u)= A<br />

u: dx(u)+dy(u) +dt(Tp) = B<br />

8. Grupa EXTRUSION<br />

Grupa pozwala na wygenerowanie geometrii 3D poprzez „wyciśnięcie” obszaru 2D w trzeci<br />

wymiar (oś „z”).<br />

Polecenie definicji geometrii trzeciego wymiaru:<br />

SURFACE ‘nazwa_plaszczyzny’ z = wart<br />

definicja płaszczyzny przecinającej oś „z”<br />

w punkcie o współrzędnej równej wart.


Muszą być zdefiniowane co najmniej dwie<br />

płaszczyzny. Każdej z nich jest przypisany<br />

kolejny numer zaczynając od 1. Warunki<br />

brzegowe na płaszczyznach określa się w<br />

grupie BOUNDARIES.<br />

LAYER ‘nazwa_warstwy’<br />

definicja warstwy leżącej pomiędzy<br />

sąsiednimi płaszczyznami. Warstwy mogą<br />

się różnić właściwościami fizycznymi<br />

9. Grupa BOUNDARIES<br />

Grupa ta pozwala na stworzenie geometrii modelu. Wewnątrz tej grupy analizowany obszar jest<br />

dzielony na regiony (podgrupa REGION), o zróżnicowanych własnościach materiałowych. W tej<br />

grupie mogą sie ponadto znaj<strong>do</strong>wać nie<strong>do</strong>mknięte linie i obwiednie (podgrupa FEATURE).<br />

Ponadto możliwe jest wyłączenie wewnętrznej części regionu z analizy przy <strong>zastosowaniu</strong><br />

podgrupy EXCLUDE lub stałej VOID.<br />

Grupa BOUNDARIES pozwala na stworzenie geometrii modelu (polecenia START, LINE,<br />

ARC i FINISH), przypisanie wybranym krzywym odpowiednich warunków granicznych<br />

(polecenia VALUE, NATURAL, NEUMAN i NOBC), oraz określenie wymaganej gęstości<br />

węzłów (polecenia NODE DENSITY i NODE SPACING). Warunek brzegowy jest aktywny na<br />

kolejnych krawędziach (płaszczyznach”, aż <strong>do</strong> odwołania go przez kolejny warunek brzegowy.<br />

Składnie wybranych poleceń przedstawiono poniżej.<br />

Polecenia definicji geometrii:<br />

ARC TO (x1,y1) to (x2,y2)<br />

ARC (RADIUS=r) to (x,y)<br />

ARC (CENTER=x1,y1) to (x2,y2)<br />

ARC (CENTER=x,y) ANGLE=<br />

FINISH<br />

LINE TO FINISH<br />

LINE TO (x,y)<br />

START(x,y)<br />

łuk przez punkty x1,y1 i x2,y2<br />

łuk o promieniu r <strong>do</strong> punktu x,y<br />

łuk o środku w punkcie x1,y1 i końcu w<br />

punkcie x2,y2. Jeżeli podane parametry<br />

nie definiują okręgu wyznaczana jest<br />

elipsa o podanych parametrach<br />

łuk o środku w punkcie x,y i szerokości<br />

kątowej <br />

współrzędne punktu początkowego<br />

linia <strong>do</strong> punktu początkowego<br />

linia <strong>do</strong> punktu x,y<br />

początek granicy regionu w punkcie x,y


Polecenia definicji warunków brzegowych:<br />

VALUE(u)<br />

NATURAL(u)<br />

NEUMANN(u)<br />

DNORMAL(u)<br />

DTANGENTIAL(u)<br />

NOBC(u)<br />

SURFACE ‘nazwa_plaszczyzny’ def_war_brzeg<br />

ustalona (opisana wyrażeniem) wartość<br />

zmiennej stanu. Warunek graniczny<br />

pierwszego rodzaju (Dirichleta)<br />

warunek brzegowy określa strumień<br />

zmiennej u w kierunku prostopadłym <strong>do</strong><br />

obszaru. W analizach termicznych jest to<br />

strumień ciepła przechodzący przez<br />

granice.<br />

wartość gradientu zmiennej stanu w<br />

kierunku prostopadłym <strong>do</strong> brzegu. Warunek<br />

graniczny drugiego rodzaju rodzaju<br />

(Neumanna)<br />

synonim polecenia NEUMANN<br />

wartość gradientu zmiennej stanu w<br />

kierunku stycznym <strong>do</strong> brzegu.<br />

wyłączenie poprzednio ustalonych<br />

warunków granicznych. Formalnie<br />

przyjmuje sie wówczas NATURAL(u)=0<br />

definiuje warunek brzegowy na skrajnej<br />

płaszczyźnie prostopadłej <strong>do</strong> osi „z”<br />

wykorzystując w.w. definicje warunku<br />

brzegowego. Muszą być zdefiniowane co<br />

najmniej dwa warunki brzegowe na<br />

skrajnych płaszczyznach prostopadłych <strong>do</strong><br />

osi „z”.<br />

10. Grupa TIME<br />

Z punktu widzenia analizowanych problemów statycznych grupa ta nie jest istotna. Pozwala na<br />

określenie przedziału czasowego i rozdzielczości czasowej przy rozwiązywaniu problemów<br />

dynamicznych. Definicja chwili początkowej, końcowej oraz, ewentualnych, odstępów<br />

czasowych prowadzona jest przy <strong>zastosowaniu</strong> jednej z poniżej opisanych komend.<br />

Po zakończeniu sekcji BOUNDARIES:<br />

TIME czasstart TO czasstop<br />

symulacja od czasstart <strong>do</strong> czasstop przy<br />

kroku czasowym równym 1


lub<br />

TIME start TO koniec BY przyrost<br />

symulacja od czasstart <strong>do</strong> czasstop przy<br />

kroku czasowym równym przyrost<br />

Po słowie kluczowym PLOTS:<br />

FROM czasstart TO czasstop<br />

lub<br />

FROM czasstart BY przyrost TO czasstop<br />

lub<br />

FROM czasstart TO czasstop BY przyrost<br />

kreślenie wykresów w przedziale<br />

czasowym od czasstart <strong>do</strong> czasstop przy<br />

kroku czasowym równym 1<br />

kreślenie wykresów w przedziale<br />

czasowym od czasstart <strong>do</strong> czasstop przy<br />

kroku czasowym równym przyrost<br />

kreślenie wykresów w przedziale<br />

czasowym od czasstart <strong>do</strong> czasstop przy<br />

kroku czasowym równym przyrost<br />

11. Grupa MONITORS<br />

W tej grupie przy użyciu komend CONTOUR, VECTOR, SURFACE, ELEVATION oraz GRID<br />

można uzyskać wykresy zmiennych stanu lub zdefiniowanych parametrów kreślone w trakcie<br />

realizacji procesu obliczeniowego.<br />

12. Grupa PLOTS<br />

W tej grupie przy użyciu komend CONTOUR, VECTOR, SURFACE, ELEVATION oraz GRID<br />

można uzyskać wykresy zmiennych stanu lub zdefiniowanych parametrów po zakończeniu<br />

procesu obliczeniowego. Wszystkie z tworzonych wykresów mogą być zapisane w różnych<br />

formatach graficznych lub wyeksportowane <strong>do</strong> formatu tekstowego jako rozkład zmiennej<br />

(polecenie EXPORT). Składnie poleceń przedstawiono niżej.<br />

CONTOUR(u)<br />

CONTOUR(u,v)<br />

ELEVATION(u) (linia)<br />

GRID(x,y)<br />

GRID(x,y,z)<br />

SURFACE(u)<br />

wykres konturowy funkcji skalarnej u<br />

wykres konturowy funkcji skalarnych u i v<br />

wykres liniowy funkcji skalarnej na linii<br />

zdefiniowanej w grupie OUNDARIES<br />

(komenda ’ON (nazwa)’ lub komenda<br />

FROM (x1,y1) TO (x2,y2)<br />

wykres siatki elementów w przestrzeni 2D<br />

wykres siatki elementów w przestrzeni 3D<br />

przestrzenny wykres powierzchniowy.


VIEWPOINT(x,y,kat))<br />

TRANSFER(u)<br />

VECTOR(u)<br />

VECTOR(u,v)<br />

definicja punktu obserwacji wykresu<br />

powierzchniowego<br />

komenda dla zapisu rozkładu<br />

przestrzennego zmiennej skalarnej u dla<br />

potrzeb wymiany danych miedzy analizami<br />

w formacie właściwym dla programu<br />

<strong>FlexPDE</strong><br />

wykres wektorowy zmiennej wektorowej u<br />

wykres wektorowy zmiennej wektorowej o<br />

skła<strong>do</strong>wych skalarnych — poziomej u i<br />

pionowej v<br />

Dodatkowe polecenia pozwalają modyfikować uzyskane rozkłady. Wybrane komendy tego typu<br />

opisano niżej.<br />

AREA INTEGRATE<br />

AS ’zmienna’<br />

BMP<br />

EMF<br />

EPS<br />

EXPORT(n)<br />

EXPORT(nx,ny)<br />

FILE ’zmienna’<br />

FIXED RANGE(min,max)<br />

FORMAT ’zmienna’<br />

zmiana całkowania powierzchni w układzie<br />

współrzędnych cylindrycznych (względem<br />

elementów 2rdrdz) na całkowanie proste<br />

(względem elementów drdz)<br />

zmiana etykiety wykresu<br />

zapis w formacie BMP<br />

zapis w formacie EMF<br />

zapis w formacie EPS<br />

zapis danych w matrycy lub wektorze.<br />

Wymiar matrycy definiowany jest<br />

parametrem n<br />

j.w., lecz wymiary matrycy definiowane<br />

są oddzielnie dla liczby wierszy i kolumn<br />

nazwa pliku zawierającego dane<br />

zakres wartości prezentowanych na<br />

wykresie<br />

ciąg znaków określający bu<strong>do</strong>wę pliku<br />

zawierającego eksportowane dane. Format


ustalany jest przy <strong>zastosowaniu</strong> znaków<br />

sterujących #, które określają kolejność<br />

danych w wierszu pliku. Symbole #x, #y,<br />

#z i #t podaja współrzędne geometryczne i<br />

czasowe punktu, symbole #1 <strong>do</strong> #9 —<br />

wartości argumentów poleceń wykresów,<br />

symbol #b — znak tabulacji.<br />

LOG<br />

LINLOG<br />

LOGLIN<br />

LOGLOG<br />

MERGE<br />

NORM<br />

PNG<br />

PPM<br />

XPM<br />

ZOOM(x,y,s,w)<br />

zmiana skalowania osi<br />

zmiana skalowania osi<br />

zmiana skalowania osi<br />

zmiana skalowania osi<br />

zapis danych dla wszystkich wariantów<br />

lub chwil czasu w pojedynczym pliku<br />

dla wykresu wektorowego ustala<br />

jednakowa długość wektorów (wartość<br />

jest wówczas ko<strong>do</strong>wana jedynie<br />

kolorem)<br />

zapis w formacie PNG<br />

zapis w formacie PPM<br />

zapis w formacie XPM<br />

zmiana zakresu dziedziny rozkładów<br />

2D. Lewy <strong>do</strong>lny róg rozkładu określony<br />

jest punktem x, y, a zakres obszaru<br />

zmiennymi s i w<br />

13. Grupa HISTORIES<br />

Grupa ta, istotna dla procesów dynamicznych, pozwala na zarejestrowanie w odpowiednich<br />

chwilach czasu wartości zmiennych stanu i zdefiniowanych parametrów (np. <strong>temperatury</strong>,<br />

strumienia ciepła lub stężenia substancji) w wybranych miejscach analizowanej geometrii.<br />

14. Grupa REPORT i SUMMARY<br />

Grupa REPORT zwraca wartość wyrażenia zapisaną w ostatnim wierszu aktywnego okna. Grupa<br />

SUMMARY wyświetla okno z tekstowym raportem.


Wybrane komendy tego typu opisano niżej.<br />

REPORT wyr AS ‘tekst’ lub RAPORT wyr<br />

SUMMARY<br />

oblicza wartość wart wyrażenia wyr i<br />

wyświetla ją w formacie: tekst = wart, lub<br />

w formacie: wart<br />

generuje okno, w którym wyświetla wyniki<br />

działania grupy poleceń REPORT<br />

zapisanych po poleceniu SUMMARY<br />

15. Grupa END<br />

Wymagana pusta grupa kończąca plik PDE<br />

16. Przykła<strong>do</strong>we skrypty<br />

Poniżej podano przykład plików PDE pozwalających wyznaczyć nieustalony i ustalony rozkład<br />

temperatur w chłodzonym wielowarstwowym pojemniku, ustawionym na glebie.<br />

Przykład 1. Stan ustalony. Plastikowy prostopadłościan pusty w środku ze styropianem.<br />

TITLE 'Przeplyw ciepla'<br />

{ Ustalony przeplyw ciepla przez plastikowy prostopadloscian pusyu w srodku wypelniony<br />

styropianem i stojacy na glebie }<br />

{ Plastikowy prostopadloscian pustu w srodku wypelniony styropianem o poczatkowej<br />

temperaturze T0 ustawiono na glebie<br />

o temperaturze Tgleb. Temperatura powietrza wynosila Tpow. Zasymulować stan w warunkach<br />

ustalenych }<br />

COORDINATES<br />

Cartesian3<br />

SELECT<br />

errlim = 1e-4<br />

VARIABLES<br />

Tp { temperatura }<br />

DEFINITIONS<br />

k { przewodność cieplna }<br />

q = -k*grad(Tp) { strumien ciepla }<br />

a1 = 0.3 { polowa grubosci bloku }


1 = 0.4 { polowa szerokosci bloku }<br />

c1 = 0.6 { polowa wysookosci bloku }<br />

a2 = 0.25 { polowa grubosci wypelnienia }<br />

b2 = 0.35 { polowa szerokosci wypelnienia }<br />

T0 = 15 { temperatura poczatkowa }<br />

Tpow = 25 { temperatura powietrza }<br />

Tgleba = 2 { temperatura gleby }<br />

hT = 10 { wspolczynnik wnikania ciepla }<br />

V = VOL_INTEGRAL(1)<br />

{ calkowita objetosc zbiornika wraz z<br />

wypelnieniem }<br />

Vz = VOL_INTEGRAL(1,'zbiornik') { objetosc zbiornika bez wypelnienia }<br />

Vw = VOL_INTEGRAL(1,'wypelnienie') { objetosc wypelnienia }<br />

INITIAL VALUES<br />

Tp = T0<br />

EQUATIONS<br />

div(q) = 0<br />

EXTRUSION<br />

SURFACE 'denko zbiornika' z = -c1<br />

SURFACE 'wieczko zbiornika' z = c1<br />

BOUNDARIES<br />

SURFACE 'denko zbiornika' VALUE(Tp) = Tgleba<br />

SURFACE 'wieczko zbiornika' NATURAL(Tp) = hT*(Tp - Tpow)<br />

REGION 1 'zbiornik' { plastik }<br />

k = 0.22 { przewodność cieplna scianek }<br />

START(0,0)<br />

NATURAL(Tp) = 0 LINE TO (a1,0)<br />

NATURAL(Tp) = hT*(Tp - Tpow) LINE TO (a1,b1)<br />

LINE TO (0,b1)<br />

NATURAL(Tp) = 0 LINE TO CLOSE<br />

REGION 2 'wypelnienie' { styropian }<br />

k = 0.033 { przewodność cieplna wypelnienia }


START(0,0)<br />

LINE TO (a2,0)<br />

LINE TO (a2,b2)<br />

LINE TO (0,b2)<br />

LINE TO CLOSE<br />

PLOTS<br />

{ Plaszczyzny symetrii: x = 0 oraz y = 0 }<br />

GRID(y,z) ON x = 0 AS 'Siatka elementow skonczonych'<br />

GRID(x,z) ON y = 0 AS 'Siatka elementow skonczonych'<br />

GRID(x,y) ON z = 0 AS 'Siatka elementow skonczonych'<br />

CONTOUR(Tp) ON x = 0 AS 'Temperatura'<br />

CONTOUR(Tp) ON y = 0 AS 'Temperatura'<br />

CONTOUR(Tp) ON z = 0 AS 'Temperatura'<br />

VECTOR(q) ON x = 0 AS 'Strumien ciepla'<br />

VECTOR(q) ON y = 0 AS 'Strumien ciepla'<br />

VECTOR(q) ON z = 0 AS 'Strumien ciepla'<br />

ELEVATION(Tp) FROM (0,0,-c1) TO (0,0,c1) AS 'Temperatura'<br />

ELEVATION(Tp) FROM (0,-b1,0) TO (0,b1,0) AS 'Temperatura'<br />

ELEVATION(Tp) FROM (-a1,0,0) TO (a1,0,0) AS 'Temperatura'<br />

SUMMARY<br />

END<br />

REPORT(V) AS 'Calkowita objetosc zbiornika '<br />

REPORT(Vz) AS 'Objetosc zbiornika bez wypelnienia '<br />

REPORT(Vw) AS 'Objetosc wypelnienia '<br />

Przykład 2. Stan nieustalony. Plastikowy zbiornik ze styropianem w środku.<br />

TITLE 'Przeplyw ciepla'<br />

{ Nieustalony przeplyw ciepla przez plastikowy zbiornik wypelniony styropianem i stojacy na<br />

glebie }<br />

{ Plastikowy, prostopadloscienny zbiornik wypelniony styropianem o poczatkowej temperaturze<br />

T0 ustawiono na glebie<br />

o temperaturze Tgleb. Temperatura powietrza wynosila Tpow. Zasymulować proces<br />

nagrzewania/chlodzenia zbiornika }


COORDINATES<br />

Cartesian3<br />

SELECT<br />

errlim = 1e-4<br />

VARIABLES<br />

Tp { temperatura }<br />

DEFINITIONS<br />

k { przewodność cieplna }<br />

ro { gestość }<br />

cp {cieplo wlasciwe }<br />

r = 0.5 { promien dziury }<br />

q = -k*grad(Tp) { strumien ciepla }<br />

a1 = 0.3 { polowa grubosci zbiornika }<br />

b1 = 0.4 { polowa szerokosci zbiornika }<br />

c1 = 0.6 { polowa wysookosci zbiornika }<br />

a2 = 0.25 { polowa grubosci wypelnienia }<br />

b2 = 0.35 { polowa szerokosci zbiornika }<br />

c2 = 0.55 { polowa wysokosci zbiornika }<br />

T0 = 15 { temperatura poczatkowa }<br />

Tpow = 25 { temperatura powietrza }<br />

Tgleba = 2 { temperatura gleby }<br />

hT = 10 { wspolczynnik wnikania ciepla }<br />

V = VOL_INTEGRAL(1)<br />

{ calkowita objetosc zbiornika wraz z<br />

wypelnieniem }<br />

Vz = VOL_INTEGRAL(1,'zbiornik') { objetosc zbiornika bez wypelnienia }<br />

Vw = VOL_INTEGRAL(1,'wypelnienie') { objetosc wypelnienia }<br />

Tsred = VOL_INTEGRAL(Tp)/V { srednia temperatura zbiornika z wypelnieniem<br />

}<br />

Tzsred = VOL_INTEGRAL(Tp,'zbiornik')/Vz { srednia temperatura zbiornika bez<br />

wypelnienia }<br />

Twsred = VOL_INTEGRAL(Tp,'wypelnienie')/Vw { srednia temperatura wypelnienia<br />

}<br />

Minuta = 60<br />

Godzina = 60*Minuta


Liczba_godzin = 3<br />

CzasSym = Godzina*Liczba_godzin { czas <strong>symulacji</strong> w godzinach }<br />

DeltaCzas = 60 { interwal czasowy w sekundach }<br />

INITIAL VALUES<br />

Tp = T0<br />

EQUATIONS<br />

ro*cp*dt(Tp)+div(q) = 0<br />

EXTRUSION<br />

SURFACE 'denko zbiornika' z = -c1<br />

LAYER '<strong>do</strong>lna warstwa zbiornika'<br />

SURFACE 'denko wypelnienia' z = - c2<br />

LAYER 'wypelnienie'<br />

SURFACE 'wieczko wypelnienia' z = c2<br />

LAYER 'gorna warstwa zbiornika'<br />

SURFACE 'wieczko zbiornika' z = c1<br />

BOUNDARIES<br />

SURFACE 'denko zbiornika' VALUE(Tp) = Tgleba<br />

SURFACE 'wieczko zbiornika' NATURAL(Tp) = hT*(Tp - Tpow)<br />

REGION 1 'zbiornik' { plastik }<br />

k = 0.22 { przewodność cieplna scianek }<br />

ro = 1200 { gestość scianek }<br />

cp = 1250 {cieplo wlasciwe scianek }<br />

START(0,0)<br />

NATURAL(Tp) = 0 LINE TO (a1,0)<br />

NATURAL(Tp) = hT*(Tp - Tpow) LINE TO (a1,b1)<br />

LINE TO (0,b1)<br />

NATURAL(Tp) = 0 LINE TO CLOSE<br />

LIMITED REGION 2 'wypelnienie' { styropian }<br />

LAYER 2<br />

k = 0.033 { przewodność cieplna wypelnienia }<br />

ro = 40 { gestość wypelnienia }<br />

cp = 1300 {cieplo wlasciwe wypelnienia }<br />

START(0,0)<br />

LINE TO (a2,0)<br />

LINE TO (a2,b2)


LINE TO (0,b2)<br />

LINE TO CLOSE<br />

TIME 0 BY DeltaCzas TO CzasSym<br />

PLOTS<br />

FOR t = 0 BY DeltaCzas TO CzasSym<br />

{ Plaszczyzny symetrii: x = 0 oraz y = 0 }<br />

GRID(y,z) ON x = 0 AS 'Siatka elementow skonczonych'<br />

GRID(x,z) ON y = 0 AS 'Siatka elementow skonczonych'<br />

GRID(x,y) ON z = 0 AS 'Siatka elementow skonczonych'<br />

CONTOUR(Tp) ON x = 0 AS 'Temperatura'<br />

CONTOUR(Tp) ON y = 0 AS 'Temperatura'<br />

CONTOUR(Tp) ON z = 0 AS 'Temperatura'<br />

VECTOR(q) ON x = 0 AS 'Strumien ciepla'<br />

VECTOR(q) ON y = 0 AS 'Strumien ciepla'<br />

VECTOR(q) ON z = 0 AS 'Strumien ciepla'<br />

ELEVATION(Tp) FROM (0,0,-c1) TO (0,0,c1) AS 'Temperatura'<br />

ELEVATION(Tp) FROM (0,-b1,0) TO (0,b1,0) AS 'Temperatura'<br />

ELEVATION(Tp) FROM (-a1,0,0) TO (a1,0,0) AS 'Temperatura'<br />

HISTORY(Tp) AT (0,0,0) (a1,b1,c1) AS 'Temperatura w centrum i w narozniku' {historia<br />

zmian <strong>temperatury</strong> w centrum }<br />

HISTORY(Tsred, Tzsred, Twsred) AS 'Srednia temperatura calosci, zbiornika, wypelnienia'<br />

{historia zmian sredniej <strong>temperatury</strong> + zbiornika + wypelnienia }<br />

SUMMARY<br />

END<br />

REPORT(V) AS 'Calkowita objetosc zbiornika '<br />

REPORT(Vz) AS 'Objetosc zbiornika bez wypelnienia '<br />

REPORT(Vw) AS 'Objetosc wypelnienia '<br />

Przykład 3. Stan nieustalony. Plastikowy zbiornik z próżnią w środku.<br />

TITLE 'Przepływ ciepla'<br />

{ Nieustalony rzeplyw ciepla przez plastikowy zbiornik z proznia w srodku i stojacy na glebie }


{ Plastikowy, hermetyczny z proznia w srodku, prostopadloscienny zbiornik o poczatkowej<br />

temperaturze T0 ustawiono na glebie<br />

o temperaturze Tgleb. Temperatura powietrza wynosila Tpow. Zasymulować proces<br />

nagrzewania/chlodzenia zbiornika }<br />

COORDINATES<br />

Cartesian3<br />

SELECT<br />

errlim = 1e-4<br />

VARIABLES<br />

Tp { temperatura }<br />

DEFINITIONS<br />

k { przewodność cieplna }<br />

ro { gestość }<br />

cp {cieplo wlasciwe }<br />

r = 0.5 { promien dziury }<br />

q = -k*grad(Tp) { strumien ciepla }<br />

a1 = 0.3 { polowa grubosci zbiornika }<br />

b1 = 0.4 { polowa szerokosci zbiornika }<br />

c1 = 0.6 { polowa wysookosci zbiornika }<br />

a2 = 0.25 { polowa grubosci wypelnienia }<br />

b2 = 0.35 { polowa szerokosci zbiornika }<br />

c2 = 0.55 { polowa wysokosci zbiornika }<br />

T0 = 15 { temperatura poczatkowa }<br />

Tpow = 25 { temperatura powietrza }<br />

Tgleba = 2 { temperatura gleby }<br />

hT = 10 { wspolczynnik wnikania ciepla }<br />

V = VOL_INTEGRAL(1)<br />

{ calkowita objetosc zbiornika wraz z<br />

wypelnieniem }<br />

Vz = VOL_INTEGRAL(1,'zbiornik') { objetosc zbiornika bez wypelnienia }<br />

Vw = VOL_INTEGRAL(1,'wypelnienie') { objetosc wypelnienia }<br />

Tzsred = VOL_INTEGRAL(Tp,'zbiornik')/Vz<br />

wypelnienia }<br />

{ srednia temperatura zbiornika bez<br />

Minuta = 60


Godzina = 60*Minuta<br />

Liczba_godzin = 3<br />

CzasSym = Godzina*Liczba_godzin { czas <strong>symulacji</strong> w godzinach }<br />

DeltaCzas = 60 { interwal czasowy w sekundach }<br />

INITIAL VALUES<br />

Tp = T0<br />

EQUATIONS<br />

ro*cp*dt(Tp)+div(q) = 0<br />

EXTRUSION<br />

SURFACE 'denko zbiornika' z = -c1<br />

LAYER '<strong>do</strong>lna warstwa zbiornika'<br />

SURFACE 'denko wypelnienia' z = - c2<br />

LAYER 'wypelnienie'<br />

SURFACE 'wieczko wypelnienia' z = c2<br />

LAYER 'gorna warstwa zbiornika'<br />

SURFACE 'wieczko zbiornika' z = c1<br />

BOUNDARIES<br />

SURFACE 'denko zbiornika' VALUE(Tp) = Tgleba<br />

SURFACE 'wieczko zbiornika' NATURAL(Tp) = hT*(Tp - Tpow)<br />

REGION 1 'zbiornik' { plastik }<br />

k = 0.22 { przewodność cieplna scianek }<br />

ro = 1200 { gestość scianek }<br />

cp = 1250 {cieplo wlasciwe scianek }<br />

START(-a1,-b1)<br />

NATURAL(Tp) = hT*(Tp - Tpow) LINE TO (a1,-b1)<br />

LINE TO (a1,b1)<br />

LINE TO (-a1,b1)<br />

LINE TO CLOSE<br />

LIMITED REGION 2 'wypelnienie' { pustka }<br />

LAYER 2 VOID { proznia w zbiorniku }<br />

START(-a2,-b2)<br />

LINE TO (a2,-b2)<br />

LINE TO (a2,b2)<br />

LINE TO (-a2,b2)<br />

LINE TO CLOSE


TIME 0 BY DeltaCzas TO CzasSym<br />

PLOTS<br />

FOR t = 0 BY DeltaCzas TO CzasSym<br />

{ Plaszczyzny symetrii: x = 0 oraz y = 0 }<br />

GRID(y,z) ON x = 0 AS 'Siatka elementow skonczonych'<br />

GRID(x,z) ON y = 0 AS 'Siatka elementow skonczonych'<br />

GRID(x,y) ON z = 0 AS 'Siatka elementow skonczonych'<br />

CONTOUR(Tp) ON x = 0 AS 'Temperatura'<br />

CONTOUR(Tp) ON y = 0 AS 'Temperatura'<br />

CONTOUR(Tp) ON z = 0 AS 'Temperatura'<br />

VECTOR(q) ON x = 0 AS 'Strumien ciepla'<br />

VECTOR(q) ON y = 0 AS 'Strumien ciepla'<br />

VECTOR(q) ON z = 0 AS 'Strumien ciepla'<br />

ELEVATION(Tp) FROM (0,0,-c1) TO (0,0,c1) AS 'Temperatura'<br />

ELEVATION(Tp) FROM (0,-b1,0) TO (0,b1,0) AS 'Temperatura'<br />

ELEVATION(Tp) FROM (-a1,0,0) TO (a1,0,0) AS 'Temperatura'<br />

HISTORY(Tp) AT (a1,b1,c1) AS 'Temperatura w narozniku' {historia zmian <strong>temperatury</strong> w<br />

narozniku }<br />

HISTORY(Tzsred) AS 'Srednia temperatura, zbiornika'<br />

{historia zmian sredniej <strong>temperatury</strong> zbiornika }<br />

SUMMARY<br />

END<br />

REPORT(V) AS 'Calkowita objetosc zbiornika '<br />

REPORT(Vz) AS 'Objetosc zbiornika bez wypelnienia '<br />

REPORT(Vw) AS 'Objetosc pustki w zbiorniku '

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!