Осесимметричный тепловой и структурный анализ дискового тормоза

Этот пример показывает квазистатический рабочий процесс осесимметричного теплового анализа напряжения путем воспроизведения результатов упрощенной модели дискового тормоза, обсужденной в [1]. Дисковые тормоза поглощают механическую энергию посредством трения и преобразуют ее в тепловую энергию, которая затем рассеивается. Пример использует упрощенную модель дискового тормоза в одном процессе торможения от постоянной начальной угловой скорости до остановки. Рабочий процесс состоит из двух шагов:

  1. Переходный тепловой анализ для вычисления распределения температуры в диске с помощью теплового потока от тормозных колодок

  2. Квазистатический структурный анализ для вычисления тепловых напряжений в несколько решении раз с использованием ранее полученного распределения температуры для определения тепловых нагрузок

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

Свойства и геометрия дискового тормоза

Основываясь на допущениях, используемых в [1], пример уменьшает область анализа до прямоугольной области, соответствующей осесимметричному сечению кольцевого диска. Из-за геометрической и нагрузочной симметрии диска, пример моделирует только половину толщины диска и эффект одной площадки. На следующем рисунке левый край соответствует внутреннему радиусу диска rd. Правое ребро соответствует внешнему радиусу диска Rd а также совпадает с внешним радиусом колодки Rp. Диск испытывает давление от колодки, которая генерирует тепловой поток. Вместо явного моделирования колодки включите ее эффект в тепловой анализ, указав этот тепловой поток как граничное условие от внутреннего радиуса колодки rp к внешнему радиусу колодки Rp.

Тепловой анализ: Вычисление распределения температуры

Создайте переходную осесимметричную тепловую модель.

modelT = createpde('thermal','transient-axisymmetric');

Создайте геометрию с двумя соседними прямоугольниками. Верхний край более длинного прямоугольника (справа) представляет область контакта диск-вкладыш.

R1 = [3,4, [  66,  76.5,  76.5,   66, -5.5, -5.5, 0, 0]/1000]';
R2 = [3,4, [76.5, 113.5, 113.5, 76.5, -5.5, -5.5, 0, 0]/1000]';

gdm = [R1 R2];
ns = char('R1','R2');
g = decsg(gdm,'R1 + R2',ns');

Присвойте геометрию тепловой модели.

geometryFromEdges(modelT,g);

Постройте график геометрии с метками ребер и граней.

figure
pdegplot(modelT,'EdgeLabels','on','FaceLabels','on')

Figure contains an axes. The axes contains 10 objects of type line, text.

Сгенерируйте mesh. Чтобы соответствовать mesh, используемой в [1], используйте линейный геометрический порядок вместо квадратичного порядка по умолчанию.

generateMesh(modelT,'Hmax',0.5E-04,'GeometricOrder','linear');

Задайте свойства теплового материала диска.

alphad = 1.44E-5; % Diffusivity of disc
Kd = 51;
rhod = 7100;
cpd = Kd/rhod/alphad;
thermalProperties(modelT,'ThermalConductivity',Kd, ...
                         'MassDensity',rhod, ...
                         'SpecificHeat',cpd);

Задайте граничное условие теплового потока для расчета области колодки. Для определения qFcn функция, см. Функция теплового потока.

thermalBC(modelT,'Edge',6,'HeatFlux',@qFcn);

Установите начальную температуру.

thermalIC(modelT,20);

Решите модель для времени, использованного в [1].

tlist = [0 0.1 0.2 1.0 2.0 3.0 3.96];
Rt = solve(modelT,tlist);

Постройте график изменения температуры со временем в трех ключевых радиальных местоположениях. Получившийся график сопоставим с графиком, полученным в [1].

iTRd = interpolateTemperature(Rt,[0.1135;0],1:numel(Rt.SolutionTimes));
iTrp = interpolateTemperature(Rt,[0.0765;0],1:numel(Rt.SolutionTimes));
iTrd = interpolateTemperature(Rt,[0.066;0],1:numel(Rt.SolutionTimes));

figure
plot(tlist,iTRd)
hold on
plot(tlist,iTrp)
plot(tlist,iTrd)
title('Temperature Variation with Time at Key Radial Locations')
legend('R_d','r_p','r_d')
xlabel 't, s'
ylabel 'T,^{\circ}C'

Figure contains an axes. The axes with title Temperature Variation with Time at Key Radial Locations contains 3 objects of type line. These objects represent R_d, r_p, r_d.

Структурный анализ: Вычисление теплового напряжения

Создайте осесимметричную статическую модель структурного анализа.

model = createpde('structural','static-axisymmetric');

Присвойте геометрию и mesh, используемые для тепловой модели.

model.Geometry = modelT.Geometry;
model.Mesh = modelT.Mesh;

Задайте структурные свойства диска.

structuralProperties(model,'YoungsModulus',99.97E9, ...
                           'PoissonsRatio',0.29, ...
                           'CTE',1.08E-5);

Ограничьте модель, чтобы предотвратить твердое движение.

structuralBC(model,'Edge',[3,4],'ZDisplacement',0);

Задайте эталонную температуру, которая соответствует состоянию нулевого теплового напряжения модели.

model.ReferenceTemperature = 20;

Задайте тепловую нагрузку при помощи переходных тепловых результатов Rt. Время решения то же, что и в анализе тепловой модели. Для каждого времени решения решите соответствующую задачу статического структурного анализа и постройте график распределения температуры, радиального напряжения, напряжения обруча и напряжения фон Мизеса. Для определения plotResults функция, см. Plot Results Function. Результаты сопоставимы с рисунком 5 из [1].

for n = 2:numel(Rt.SolutionTimes)
structuralBodyLoad(model,'Temperature',Rt,'TimeStep',n);
R = solve(model);
plotResults(model,R,modelT,Rt,n);
end

Figure contains 4 axes and another object of type subplottext. Axes 1 with title Temperature max = 40.5839^{\circ}C contains 12 objects of type patch, line. Axes 2 with title Radial Stress min = -23.17 MPa max = 5.51 MPa contains 12 objects of type patch, line. Axes 3 with title Hoop Stress min = -24.78 MPa max = 4.62 MPa contains 12 objects of type patch, line. Axes 4 with title Von Mises Stress max = 23.16 MPa contains 12 objects of type patch, line.

Figure contains 4 axes and another object of type subplottext. Axes 1 with title Temperature max = 48.5403^{\circ}C contains 12 objects of type patch, line. Axes 2 with title Radial Stress min = -28.70 MPa max = 10.20 MPa contains 12 objects of type patch, line. Axes 3 with title Hoop Stress min = -31.55 MPa max = 8.36 MPa contains 12 objects of type patch, line. Axes 4 with title Von Mises Stress max = 29.35 MPa contains 12 objects of type patch, line.

Figure contains 4 axes and another object of type subplottext. Axes 1 with title Temperature max = 76.533^{\circ}C contains 12 objects of type patch, line. Axes 2 with title Radial Stress min = -29.49 MPa max = 16.52 MPa contains 12 objects of type patch, line. Axes 3 with title Hoop Stress min = -40.69 MPa max = 26.30 MPa contains 12 objects of type patch, line. Axes 4 with title Von Mises Stress max = 35.61 MPa contains 12 objects of type patch, line.

Figure contains 4 axes and another object of type subplottext. Axes 1 with title Temperature max = 93.497^{\circ}C contains 12 objects of type patch, line. Axes 2 with title Radial Stress min = -18.96 MPa max = 12.98 MPa contains 12 objects of type patch, line. Axes 3 with title Hoop Stress min = -37.56 MPa max = 42.13 MPa contains 12 objects of type patch, line. Axes 4 with title Von Mises Stress max = 43.51 MPa contains 12 objects of type patch, line.

Figure contains 4 axes and another object of type subplottext. Axes 1 with title Temperature max = 100.0329^{\circ}C contains 12 objects of type patch, line. Axes 2 with title Radial Stress min = -8.56 MPa max = 9.08 MPa contains 12 objects of type patch, line. Axes 3 with title Hoop Stress min = -31.20 MPa max = 48.08 MPa contains 12 objects of type patch, line. Axes 4 with title Von Mises Stress max = 49.49 MPa contains 12 objects of type patch, line.

Figure contains 4 axes and another object of type subplottext. Axes 1 with title Temperature max = 96.8461^{\circ}C contains 12 objects of type patch, line. Axes 2 with title Radial Stress min = -0.39 MPa max = 6.41 MPa contains 12 objects of type patch, line. Axes 3 with title Hoop Stress min = -22.44 MPa max = 45.94 MPa contains 12 objects of type patch, line. Axes 4 with title Von Mises Stress max = 47.15 MPa contains 12 objects of type patch, line.

Функция теплового потока

Эта вспомогательная функция вычисляет переходное значение теплового потока от площадки к диску. Он использует эмпирическую формулу от [1].

function q = qFcn(r,s)
alphad = 1.44E-5; % Diffusivity of disc
Kd = 51; % Conductivity of disc
rhod = 7100; % Density of disc
cpd = Kd/rhod/alphad; % Specific heat capacity of disc

alphap = 1.46E-5; % Diffusivity of pad
Kp = 34.3; % Conductivity of pad
rhop = 4700; % Density of pad
cpp = Kp/rhop/alphap; % Specific heat capacity of pad

f = 0.5; % Coefficient of friction
omega0 = 88.464; % Initial angular velocity
ts = 3.96; % Stopping time
p0 = 1.47E6*(64.5/360); % Pressure only spans 64.5 deg occupied by pad

omegat = omega0*(1 - s.time/ts); % Angular speed over time

eta = sqrt(Kd*rhod*cpd)/(sqrt(Kd*rhod*cpd) + sqrt(Kp*rhop*cpp));
q = (eta)*f*omegat*r.r*p0;
end

Функция результатов построения графика

Эти графики функций распределения температуры, радиального напряжения, напряжения обруча и напряжения фон Мизеса.

function plotResults(model,R,modelT,Rt,tID)
figure
subplot(2,2,1)
pdeplot(modelT,'XYData',Rt.Temperature(:,tID), ...
               'ColorMap','jet','Contour','on')
title({'Temperature'; ...
      ['max = ' num2str(max(Rt.Temperature(:,tID))) '^{\circ}C']})
xlabel 'r, m'
ylabel 'z, m'

subplot(2,2,2)
pdeplot(model,'XYData',R.Stress.srr, ...
              'ColorMap','jet','Contour','on')
title({'Radial Stress'; ...
       ['min = ' num2str(min(R.Stress.srr)/1E6,'%3.2f') ' MPa']; ...
       ['max = ' num2str(max(R.Stress.srr)/1E6,'%3.2f') ' MPa']})
xlabel 'r, m'
ylabel 'z, m'

subplot(2,2,3)
pdeplot(model,'XYData',R.Stress.sh, ...
              'ColorMap','jet','Contour','on')
title({'Hoop Stress'; ...
      ['min = ' num2str(min(R.Stress.sh)/1E6,'%3.2f') ' MPa']; ...
      ['max = ' num2str(max(R.Stress.sh)/1E6,'%3.2f') ' MPa']})
xlabel 'r, m'
ylabel 'z, m'

subplot(2,2,4)
pdeplot(model,'XYData',R.VonMisesStress, ...
              'ColorMap','jet','Contour','on')
title({'Von Mises Stress'; ...
      ['max = ' num2str(max(R.VonMisesStress)/1E6,'%3.2f') ' MPa']})
xlabel 'r, m'
ylabel 'z, m'

sgtitle(['Time = ' num2str(Rt.SolutionTimes(tID)) ' s'])
end

Ссылки

[1] Адамович, Адам. Осесимметричная модель для анализа тепловых напряжений на тормозном диске. Журнал теоретической и прикладной механики 53, выпуск 2 (апрель 2015): 357-370. https://doi.org/10.15632/jtam-pl.53.2.357.

Для просмотра документации необходимо авторизоваться на сайте