С помощью MATLAB PDE Toolbox, есть ли способ для ссылки на температуру в месте на одной ячейке для расчета скорости конвекции? - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь рассчитать тепло, накопленное в тепловой массе, подаваемой встроенной паронаполненной трубой.

Мой подход к решению этой проблемы заключался в использовании MATLAB PDE Toolbox. Сначала я настроил многоцилиндровую модель с двумя ячейками. Внутренний цилиндр (ячейка 1) представляет собой пар, а внешний цилиндр (ячейка 2) представляет тепловую массу (бетон). Труба не моделируется.

Коэффициент конвективного теплообмена для потока пара в трубе можно определить с помощью модифицированной формы уравнения числа Нуссельта, которое включает в себя отношение температуры пара к температуре стенки бетона. Поскольку температуры пара и стенки изменяются вдоль осевого направления, коэффициент конвективного теплообмена не является постоянным, поэтому я попытался использовать вспомогательную функцию, но я не могу понять, как вспомогательная функция может ссылаться на состояние двух разных ячеек одновременно.

Я приложил фрагмент кода, в котором я использую вспомогательные функции для настройки тепловых свойств бетона и пара. Мне пришлось использовать приближения для свойств steam, потому что XSteam и набор инструментов PDE не работают вместе (но это проблема для другого поста).


Concrete_Thermal_Conductivity = @(location,state) 1.467 - 6.667 * 10^-4 * state.u;   % [W/m-K]
Concrete_Specific_Heat = @(location,state) 0.7 + 8.75 * 10^-4 * state.u;     % [kJ/kg-K]

thermalProperties(Thermal_Model,'cell',2,'ThermalConductivity',Concrete_Thermal_Conductivity,"MassDensity",Concrete_Density,"SpecificHeat",Concrete_Specific_Heat);


%Determine properties for steam.
Steam_Thermal_Conductivity = @(location,state) 0.0109 + 1.19 * 10^-4 * state.u; % [W/m•K]
Steam_Density = @(location,state) 27 - 0.0745 * state.u + 101 * 10^-4 * state.u^2 -5.07 * 10^-8 * state.u^3; % [kg/m^3]
Steam_Specific_Heat = @(location,state) 6.19 - 0.0215 * state.u + 3.79 * 10^-5 * state.u^2 -2.16 * 10^-8 * state.u^3; % [kJ/kg•K]
Steam_Velocity = @(location,state) Steam_Mass_Flow_Rate / (Steam_Density * Tube_Cross_Sectional_Area);  % [m/s]
Prandtl_Number = @(location,state) 1.16 - 4.07 * 10^-4 * state.u; % [N/A]
Steam_Viscosity = @(location,state) 7.6 * 10^-6 + 4.17 * 10^-8 * state.u; % [N•s/m^2]
Reynolds_Number = @(location,state) Steam_Density * Steam_Velocity * Concrete_Inner_Radius * 2 / Steam_Viscosity; % [N/A]
Nusselt_Number = @(location,state) 0.027 * Reynolds_Number^0.8 * Prandtl_Number^(1/3) * (state.u / Thermal_Model.Cell1.Temperature)^0.55;     % modified Nusselt Number equation
Steam_Convective_Heat_Transfer_Coefficient = @(location,state) Nusselt_Number * Steam_Thermal_Conductivity / (Concrete_Inner_Radius * 2);      % [W/m^2•K]

thermalProperties(Thermal_Model,'Cell',1,'ThermalConductivity',Steam_Thermal_Conductivity,'MassDensity',Steam_Density,'SpecificHeat',Steam_Specific_Heat);


%% Specify Boundary Conditions

thermalBC(Thermal_Model,'Face',1,"Temperature",Steam_Inlet_Temperature);
thermalBC(Thermal_Model,'Face',[4,5,6],"HeatFlux",0);
thermalBC(Thermal_Model,'Face',3,"ConvectionCoefficient",Steam_Convective_Heat_Transfer_Coefficient,'AmbientTemperature',Thermal_Model.Cell1.Temperature);

Граничные условия установлены так, что тепло передается только между двумя ячейками посредством конвекции. Температура пара должна снижаться при прохождении через трубу, в то время как тепловая масса медленно увеличивает температуру изнутри.

Вместо этого я получаю сообщение об ошибке "Нераспознанный метод, свойство или поле 'Cell1' для класса" pde.ThermalModel "."

Я не уверен, как еще я могу ссылаться на температуру ячейки 1 в вспомогательной функции числа Нуссельта или в пределах граничного теплового условия для «AmbientTength».

...