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
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 '