Особенности применения 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 – коэффициент теплопроводности, размерность - Особенности применения MATLAB для исследования температурных полей - student2.ru , обозначение в формулах - Особенности применения MATLAB для исследования температурных полей - student2.ru ;

ce – теплоёмкость, размерность - Особенности применения MATLAB для исследования температурных полей - student2.ru , обозначение в формулах – с;

ro – плотность, размерность Особенности применения MATLAB для исследования температурных полей - student2.ru , обозначение в формулах - Особенности применения MATLAB для исследования температурных полей - student2.ru ;

at – коэффициент температуропроводности, размерность Особенности применения MATLAB для исследования температурных полей - student2.ru , обозначение в формулах a;

A – атомный вес;

qpl – скрытая теплота плавления, размерность Особенности применения MATLAB для исследования температурных полей - student2.ru ;

qis - скрытая теплота испарения, размерность Особенности применения MATLAB для исследования температурных полей - student2.ru ;

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

Ответ получен в сантиметрах.

Наши рекомендации