Особенности применения MATLAB для исследования температурных полей
Программы, составленные для исследования температурных полей, описанные в первой части настоящего пособия инвариантны по отношению к материалам, подвергающимся воздействиям. Для того, чтобы осуществить вычисления для заданного материала достаточно только указать его имя. Это достигается путём использования специальной базы данных, содержащей имена и значения теплофизических констант для ряда материалов. Эти данные в символьном виде хранятся в специальном массиве с именем «mat», размещённом в рабочей области «work» системы MATLAB. Этот массив имеет следующий вид:
Al la=2.11;ce=0.940;ro=02.6;at=0.86;A=026.97;qpl=393.69;qis=9658.9;Tpl=0633;Tkp=2270;
W la=1.30;ce=0.147;ro=19.2;at=0.60;A=183.92;qpl=255.59;qis=4818.5;Tpl=3387;Tkp=5900;
Cu la=3.85;ce=0.465;ro=08.9;at=0.94;A=063.54;qpl=231.69;qis=5195.6;Tpl=1083;Tkp=2360;
Fe la=0.69;ce=0.451;ro=07.9;at=0.19;A=055.85;qpl=269.75;qis=6347.9;Tpl=1535;Tkp=2880;
Mo la=1.47;ce=0.256;ro=10.3;at=0.58;A=095.95;qpl=189.39;qis=7407.9;Tpl=2622;Tkp=4727;
Ni la=0.82;ce=0.553;ro=08.9;at=0.13;A=058.65;qpl=305.87;qis=7219.4;Tpl=1452;Tkp=2900;
Данные из массива извлекаются с помощью специальной программы «mview». Текст программы:
function pv=mview(matname)
im=matname;
[F,mes]=fopen('mat','rt');
if F ~=-1
while feof(F)==0
mat=fscanf(F,'%s',1);
if (mat==im)
pv=fscanf(F,'%s',1);
break
end
mat=fscanf(F,'%s',1);
end
fclose(F);
else
disp('ошибка')
disp(mes)
end
Входным параметром программы является переменная matname . Эта переменная должна содержать имя материала из имеющихся в массиве «mat», в символьном виде. Например:
>>m='Cu';
Программа «mview» извлекает строку данных по заданному имени из массива «mat» и возвращает её так же в символьном виде:
>> v=mview(matname)
v =
la=3.85;ce=0.465;ro=08.9;at=0.94;A=063.54;qpl=231.69;qis=5195.6;Tpl=1083;Tkp=2360;
Для того, что бы ввести переменные , перечисленные в символьной строке v, надо выполнить команду eval(v):
>> eval(v)
При исполнении этой команды выполняются все действия MATLAB, перечисленные в символьной строке v. В данном случае это операторы присваивания, с помощью которых зарезервированным именам теплофизических параметров присваиваются конкретные значения, соответствующие выбранному материалу. В результате имеем состав переменных в памяти:
>> whos
Name Size Bytes Class
Tkp 1x1 8 double array
Tpl 1x1 8 double array
at 1x1 8 double array
ce 1x1 8 double array
la 1x1 8 double array
m 1x2 4 char array
qis 1x1 8 double array
qpl 1x1 8 double array
ro 1x1 8 double array
v 1x102 84 char array
Для того, чтобы воспользоваться приведёнными данными в программах при написании формул надо использовать приведённые уникальные имена переменных и не подвергать их переприсваиванию. Эти имена имеют следующий смысл:
la – коэффициент теплопроводности, размерность - , обозначение в формулах - ;
ce – теплоёмкость, размерность - , обозначение в формулах – с;
ro – плотность, размерность , обозначение в формулах - ;
at – коэффициент температуропроводности, размерность , обозначение в формулах a;
A – атомный вес;
qpl – скрытая теплота плавления, размерность ;
qis - скрытая теплота испарения, размерность ;
Tpl – температура плавления С0;
Tkp – температура кипения при нормальном давлении С0.
Вычислим, например, с помощью введённых обозначений радиус изотермы плавления (формула 6 раздела 1.5.1) для меди и вольфрама:
>> E=0.01;m='Cu';
>> v=mview(m);
>> eval(v)
Все данные на медь в памяти. Теперь вычислим по формуле:
>> R=sqrt(3/((2*pi*exp(1)))*(2*E/(ce*ro*(Tpl-20))))^(1/3)
R = 0.0963
Тоже для вольфрама:
>> m='W';v=mview(m); eval(v)
>> R=sqrt(3/((2*pi*exp(1)))*(2*E/(ce*ro*(Tpl-20))))^(1/3)
R =0.0847
Ответ получен в сантиметрах.