Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Расчёт распределения температуры с использованием конечно-разностных методов. Методические указания к расчётной работе по дисциплине «Математическое,
.pdf
Приложение 5
Начало
Ввод
данны
Подготовк
а
2
3
4
Расчёт шагов по
координатам и
времени
5
i
6
1
Формировани
е массива
x
i <N
7
8
j
9
Формировани
е массива
y
A
A
j <M
10
11
Формирование
массива
tau
12
k <K1
14
13
k =2
15
i
Формирование
левой и правой
сторон матрицы t
16
i <M
17
k
B
К стр. 31
Блок-схема программы реализации неявной схемы методом Гаусса-Зейделя
31

Продолжение приложения 5
C
22
18
j
Формирование
нижней и верхней
сторон матрицы t
19
j <N
20
k <K1
21
Обнуление
матрицы
ошибок R
Задание
начальных
значений r и kk
23
24
While
r>eps
25
i=2
j=2
26
Из стр. 30
B
34
C
k=2
Вычисление матрицы
ошибок и пересчёт
температуры
27
28
k <K1
29
j <N-1
30
i <M-1
31
32
i
33
j
К стр. 32
32

Окончание приложения 5
Из стр. 32
k
35
Нет
Да
36
37
k <K1
38
j <N
39
i <M
40
Счётчик
итераций
41
42
While
r>eps
Выделение
результата
E
43
E
Определение
температуры в
узлах сетки
Вывод
количества
итераций
Вывод
распределения
температур
Построение
графика
47
46
45
44
48
Конец
33

Приложение 6
Распечатка программы реализации неявной схемы методом Гаусса-Зейделя
// Решение параболического уравнения с
// помощью неявной разностной схемы методом Гаусса-Зейделя.
// N - количество узлов по х (0,L1);
// М - количество узлов по y (0,L2);
// K - количество узлов по tau (0,tk);
// a - коэффициент температуроводности,
// eps - точность решения методом Гаусса-Зейделя.
// Ввод исходных данных
// Начальная температура поля в градусах Цельсия
disp('Введите начальную температуру поля в градусах Цельсия');
t0=input('t0=');
// Температура окружающей среды в градусах Цельсия
disp('Введите температуру окружающей среды в градусах Цельсия');
tcp=input('tcp=');
// Коэффициент теплопроводности в Вт/(м*К)
disp('Введите коэффициент теплопроводности в Вт/(м*К)');
lam=input('lam=');
// Плотность, кг/м^3
disp('Введите плотность в кг/м^3');
ro=input('ro=');
// Теплоёмкость в Дж/(кг К)
disp('Введите теплоёмкость в Дж/(кг К)');
c=input('c=');
// Размеры пластины в м
disp('Введите размеры пластины в м');
L1=input('L1=');
L2=input('L2=');
// Время остывания, мин
disp('Введите время остывания в минутах');
tk=input('tk=');
// Введите точность решения
disp('Введите точность решения в градусах');
eps=input('eps=');
// Ввод технических параметров
// Количество узлов:
disp('Введите количество узловых точек по оси x');
N=input('N=');
disp('Введите количество узловых точек по оси y');
M=input('M=');
disp('Введите количество узловых точек по оси времени');
K1=input('K1=');
// Пересчёт времени в секунды
tk=tk*60;
// Определение коэффициента температуропроводности
a=lam/(c*ro);
// Правая часть дифференциального уравнения
function z=q(x, y, tau)
z=1.6e4*(1+(x)*(y))*abs(sin(2*%pi*(x/L1)*(y/L2)))
34

Продолжение приложения 6
endfunction
// Условие на левой границе
function y=yleft(x)
y=t0+0.03732*x
endfunction
// Условие на правой границе
function y=yright(x)
y=t0+0.03732*x
endfunction
// Условие на нижней границе
function y=xupper(x, t)
y=(t0+abs(cos(4*%pi*x/L1))*sqrt(112^2+0.0348*(t-tk)^2))
endfunction
// Условие на верхней границе
function y=xbottom(x, t)
y=(t0+abs(cos(2*%pi*x/L1))*sqrt(112^2+0.0348*(t-tk)^2))
endfunction
// Расчёт шагов по координатам и времени:
dx=L1/(N-1);
dy=L2/(M-1);
dt=tk/(K1-1);
// Формируем массив x
for i=1:N
x(i)=(i-1)*dx;
end
// Формируем массив y
for j=1:M
y(j)=(j-1)*dy;
end
// Формируем массив tau
for k=1:K1
tau(k)=(k-1)*dt;
end
// Занесение начальных условий
for i=1:M
for j=1:N
t(i,j,1)=t0;
end
end
for k=2:K1
// Формируем левую и правую стороны матрицы решений T
// из граничного условия
for i=1:M
t(i,1,k)=yleft(tau(k));
t(i,N,k)=yright(tau(k));
end
// Формируем нижнюю и верхнюю стороны матрицы решений T
// из граничного условия
for j=1:N
t(1,j,k)=xupper(x(j),tau(k));
35

Продолжение приложения 6
t(M,j,k)=xbottom(x(j),tau(k));
end
end
// Определяем матрицу ошибок R и заполняем ее нулями
R(M,N,K1)=0;
// Начальные значения технических параметров
r=1;
kk=0;
// Цикл while для организации итерационного процесса при
// решении системы уравнений методом Гаусса-Зейделя с
// точностью eps
while r>eps
// Вычисление матрицы ошибок R во внутренних точках
// и пересчет значений u во внутренних точках при решениии
// методом Гаусса-Зейделя
for i=2:M-1
for j=2:N-1
for k=2:K1
bb=(t(i-1,j,k)+t(i+1,j,k))/dy^2;
bb=((t(i,j-1,k)+t(i,j+1,k))/dx^2+bb)*a*dt;
bb=(bb+t(i,j,k-1)+dt*q(x(j),y(i),tau(k))/(ro*c))/(1+2*a*dt*(1/dx^2+1/dy^2));
R(i,j,k)=abs(t(i,j,k)-bb);
t(i,j,k)=bb;
end
end
end
// Поиск максимума в матрице ошибок
r=R(1,1,1);
for i=1:M
for j=1:N
for k=1:K1
if R(i,j,k)>r
r=R(i,j,k);
end
end
end
// Счётчик итераций
kk=kk+1;
end
t1=t(:,:,K1);
//Определение температуры в углах сетки
t(1,1,K1)=(t(1,2,K1)+t(2,1,K1))/2;
t(M,N,K1)=(t(M,N-1,K1)+t(M-1,N,K1))/2;
t(1,N,K1)=(t(1,N-1,K1)+t(2,N,K1))/2;
t(M,1,K1)=(t(M-1,1,K1)+t(M,2,K1))/2;
disp('Количество итераций');
disp(kk);
//Результат расчёта - распределение температуры в конечный момент времени
disp('Распределение температуры');
disp(t1);
36

mesh(y,x,t1');
title('Распределение температуры в конечный момент времени');
xlabel('y, м');
ylabel('x, м');
zlabel('Tемпература, °С');
end
Окончание приложения 6
37

Приложение 7
Распечатка диалога при задании исходной информации для неявной схемы
Введите начальную температуру поля в градусах Цельсия
t0=18
Введите температуру окружающей среды в градусах Цельсия
tcp=130
Введите коэффициент теплопроводности в Вт/(м*К)
lam=0.18
Введите плотность в кг/м^3
ro=1190
Введите теплоёмкость в Дж/(кг К)
c=1270
Введите размеры пластины в м
L1=0.04
L2=0.08
Введите время остывания в минутах
tk=50
Введите точность решения в градусах
eps=0.01
Введите количество узловых точек по оси x
N=20
Введите количество узловых точек по оси y
M=30
Введите количество узловых точек по оси времени
K1=30
38

118.1
106.3
45.4
62.9
116.5
128.4
93.8
27.2
79.2
123.9
123.9
79.2
27.2
93.8
128.4
116.5
62.9
45.4
106.3
118.1
129.9
111.7
93.3
93.6
104.5
106.7
96.3
83.2
92.7
104.5
104.5
92.8
83.4
96.6
107.1
104.9
94.0
93.6
111.9
129.9
129.9
118.2
109.1
105.9
106.4
105.7
102.3
99.2
100.9
103.8
103.9
101.2
99.7
102.9
106.4
107.2
106.6
109.7
118.6
129.9
129.9
121.6
115.4
111.6
109.8
108.3
106.7
105.6
105.8
106.5
106.6
106.2
106.3
107.6
109.4
110.9
112.8
116.3
122.2
129.9
129.9
123.2
118.1
114.5
112.1
110.5
109.3
108.6
108.5
108.7
108.8
109.1
109.5
110.5
111.9
113.6
115.9
119.2
123.9
129.9
129.9
123.9
119.2
115.8
113.4
111.7
110.6
109.9
109.7
109.7
110.0
110.4
111.0
112.0
113.3
115.1
117.4
120.6
124.7
129.9
129.9
124.1
119.6
116.2
113.7
111.9
110.8
110.1
109.8
109.8
110.1
110.6
111.3
112.3
113.7
115.6
118.0
121.1
125.0
129.9
129.9
124.1
119.5
116.0
113.4
111.5
110.3
109.6
109.2
109.2
109.5
110.0
110.8
111.9
113.4
115.4
117.9
121.1
125.0
129.9
129.9
123.9
119.2
115.5
112.8
110.8
109.4
108.6
108.1
108.1
108.4
108.9
109.8
111.0
112.7
114.8
117.4
120.8
124.9
129.9
129.9
123.7
118.8
114.9
112.0
109.8
108.3
107.4
106.9
106.8
107.0
107.6
108.6
109.9
111.6
113.9
116.8
120.3
124.6
129.9
129.9
123.5
118.4
114.3
111.2
108.9
107.2
106.1
105.5
105.4
105.6
106.2
107.2
108.6
110.5
112.9
116.0
119.7
124.4
129.9
129.9
123.4
118.0
113.8
110.5
108.0
106.2
105.0
104.4
104.1
104.3
104.9
106.0
107.4
109.4
112.0
115.2
119.2
124.0
129.9
129.9
123.2
117.7
113.4
109.9
107.3
105.4
104.1
103.4
103.1
103.2
103.8
104.8
106.4
108.4
111.1
114.4
118.6
123.7
129.9
129.9
123.1
117.6
113.1
109.6
106.9
104.9
103.5
102.7
102.3
102.4
103.0
104.0
105.5
107.6
110.3
113.8
118.1
123.5
129.9
129.9
123.1
117.5
113.0
109.4
106.7
104.6
103.2
102.3
101.9
101.9
102.4
103.4
104.9
107.0
109.7
113.3
117.7
123.2
129.9
129.9
123.1
117.6
113.1
109.5
106.8
104.7
103.3
102.3
101.8
101.8
102.2
103.1
104.6
106.6
109.4
113.0
117.5
123.1
129.9
129.9
123.2
117.7
113.3
109.9
107.2
105.1
103.6
102.7
102.1
102.0
102.4
103.2
104.6
106.6
109.3
112.8
117.4
123.1
129.9
129.9
123.4
118.0
113.8
110.4
107.8
105.8
104.4
103.4
102.8
102.6
102.9
103.6
104.9
106.8
109.5
113.0
117.5
123.2
129.9
129.9
123.6
118.4
114.4
111.1
108.6
106.8
105.4
104.4
103.8
103.6
103.8
104.4
105.6
107.4
110.0
113.4
117.9
123.4
129.9
129.9
123.8
118.9
115.0
112.0
109.7
107.9
106.6
105.6
105.0
104.8
104.9
105.4
106.5
108.2
110.7
114.1
118.4
123.7
129.9
129.9
124.1
119.4
115.8
112.9
110.8
109.2
107.9
107.1
106.5
106.2
106.2
106.6
107.6
109.2
111.7
114.9
119.0
124.0
129.9
129.9
124.3
119.8
116.4
113.8
111.8
110.4
109.3
108.5
107.9
107.6
107.5
107.9
108.8
110.3
112.6
115.7
119.5
124.3
129.9
129.9
124.4
120.1
116.8
114.4
112.6
111.3
110.4
109.7
109.2
108.9
108.8
109.0
109.8
111.2
113.4
116.3
119.9
124.5
129.9
129.9
124.4
120.1
116.8
114.5
112.8
111.8
111.1
110.6
110.2
109.9
109.7
109.8
110.4
111.7
113.6
116.4
120.0
124.5
129.9
129.9
124.1
119.6
116.1
113.6
112.1
111.3
111.0
110.9
110.7
110.4
110.0
109.9
110.2
111.1
113.0
115.8
119.6
124.3
129.9
129.9
123.4
118.2
114.1
111.3
109.8
109.4
109.9
110.4
110.7
110.4
109.7
108.9
108.5
109.0
110.8
114.0
118.3
123.6
129.9
129.9
122.3
115.7
110.2
106.3
104.6
105.3
107.2
109.3
110.4
110.2
108.7
106.5
104.6
104.1
106.0
110.1
115.8
122.4
129.9
129.9
120.7
111.8
103.3
96.8
94.6
97.5
103.0
108.1
111.0
110.8
107.7
102.5
97.1
94.2
96.7
103.3
111.9
120.9
129.9
129.9
119.9
107.4
92.7
79.1
74.2
84.0
97.5
108.8
115.1
115.0
108.6
97.2
83.8
74.0
79.0
92.7
107.4
120.0
129.9
126.9
123.9
106.3
79.2
45.4
27.2
62.9
93.8
116.5
128.4
128.4
116.5
93.8
62.9
27.2
45.4
79.2
106.3
123.9
126.9
Количество итераций
5070
Распределение температуры
Приложение 8
Распределение температуры для неявной схемы
39

Теплофизические свойства материалов
№
п/п
Материал
λ,
Вт/(м К)
ρ,
т/м3
с,
Дж/(кг К)
1
Алюминий
209,0
2,71
896
2
Полистирол
0,12
1,06
1230
3
Полиэтилен
0,42
0,96
1780
4
Плексиглас
0,18
1,19
1270
5
Силикатный кирпич
0,7
1,88
920
6
Сталь
45,0
7,85
450
7
Стекло
1,07
2,50
840
8
Фарфор
1.4
2,3
800
9
Чугун
56
7,4
540
10
Шамот
1,25
0,84
840
11
Диатомит
0,14
0,47
840
12
Газосиликат
0,14
0,5
1000
13
Красный кирпич
0,5
2,0
840
14
Древесина
0.15
0,5
2700
15
Мрамор
2,91
2,8
880
Приложение 9
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
