structuralBodyLoad

Задайте загрузку тела для структурной модели

Описание

пример

structuralBodyLoad(structuralmodel,'GravitationalAcceleration',GAval) задает ускорение из-за силы тяжести как загрузка тела для статической или переходной структурной модели. Структурные модели для модального анализа не могут иметь загрузок тела.

пример

structuralBodyLoad(structuralmodel,'Temperature',Tval) задает тепловую нагрузку на статической модели структурного анализа.

Совет

Если Tval сама температура, и не изменение в температуре, также необходимо задать ссылочную температуру. Чтобы задать его, присвойте ссылочное температурное значение structuralmodel.ReferenceTemperature. Для получения дополнительной информации смотрите StructuralModel.

пример

structuralBodyLoad(structuralmodel,'Temperature',Tresults) использует установившиеся или переходные тепловые результаты анализа Tresults задавать тепловую нагрузку на статической модели структурного анализа. Если Tresults решение переходной тепловой проблемы, затем этот синтаксис использует температуру и ее градиенты от последнего временного шага.

пример

structuralBodyLoad(structuralmodel,'Temperature',Tresults,'TimeStep',iT) использует переходные тепловые результаты анализа Tresults и временной шаг индексирует iT задавать тепловую нагрузку на статической модели структурного анализа.

bodyLoad = structuralBodyLoad(___) возвращает объект загрузки тела, с помощью входных параметров от любого из предыдущих синтаксисов.

Примеры

свернуть все

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

structuralModel = createpde('structural','static-solid');

Создайте и постройте геометрию.

gm = multicuboid(0.5,0.1,0.1);
structuralModel.Geometry = gm;
pdegplot(structuralModel,'FaceAlpha',0.5)

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

structuralProperties(structuralModel,'YoungsModulus',210E3, ...
                                     'PoissonsRatio',0.3, ...
                                     'MassDensity',2.7E-6);

Задайте нагрузку силы тяжести на луч.

structuralBodyLoad(structuralModel,'GravitationalAcceleration',[0;0;-9.8])
ans = 
  BodyLoadAssignment with properties:

                   RegionType: 'Cell'
                     RegionID: 1
    GravitationalAcceleration: [3x1 double]
                  Temperature: []
                     TimeStep: []

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

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

structuralmodel = createpde('structural','static-solid');

Создайте и постройте геометрию.

gm = multicuboid(0.5,0.04,[0.03,0.03],'Zoffset',[0,0.03]);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,'CellLabels','on')

Установите ссылочную температуру. Эта температура соответствует состоянию нулевого теплового напряжения модели.

structuralmodel.ReferenceTemperature = 20
structuralmodel = 
  StructuralModel with properties:

              AnalysisType: 'static-solid'
                  Geometry: [1x1 DiscreteGeometry]
        MaterialProperties: []
                 BodyLoads: []
        BoundaryConditions: []
      ReferenceTemperature: 20
    SuperelementInterfaces: []
                      Mesh: []
             SolverOptions: [1x1 pde.PDESolverOptions]

Примените постоянную температуру как структурную загрузку тела.

structuralBodyLoad(structuralmodel,'Temperature',300)
ans = 
  BodyLoadAssignment with properties:

                   RegionType: 'Cell'
                     RegionID: [1 2]
    GravitationalAcceleration: []
                  Temperature: 300
                     TimeStep: []

Задайте тепловую нагрузку с помощью решения от установившегося теплового анализа той же геометрии и mesh.

Установившийся тепловой анализ модели

Создайте установившуюся тепловую модель.

thermalmodel = createpde('thermal','steadystate');

Создайте и постройте геометрию.

gm = multicuboid(0.5,0.1,0.05);
thermalmodel.Geometry = gm;
pdegplot(thermalmodel,'FaceLabels','on','FaceAlpha',0.5)

Сгенерируйте mesh.

generateMesh(thermalmodel);

Задайте теплопроводность материала.

thermalProperties(thermalmodel,'ThermalConductivity',5e-3);

Задайте постоянные температуры на левых и правых концах на луче.

thermalBC(thermalmodel,'Face',3,'Temperature',100);
thermalBC(thermalmodel,'Face',5,'Temperature',0);

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

internalHeatSource(thermalmodel,10);

Решите модель.

thermalresults = solve(thermalmodel)
thermalresults = 
  SteadyStateThermalResults with properties:

    Temperature: [3870x1 double]
     XGradients: [3870x1 double]
     YGradients: [3870x1 double]
     ZGradients: [3870x1 double]
           Mesh: [1x1 FEMesh]

Постройте температурное распределение.

pdeplot3D(thermalmodel,'ColorMapData',thermalresults.Temperature)

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

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

structuralmodel = createpde('structural','static-solid');

Включайте ту же геометрию что касается тепловой модели.

structuralmodel.Geometry = gm;

Примените решение теплового анализа модели как загрузка тела для структурной модели.

structuralBodyLoad(structuralmodel,'Temperature',thermalresults)
ans = 
  BodyLoadAssignment with properties:

                   RegionType: 'Cell'
                     RegionID: 1
    GravitationalAcceleration: []
                  Temperature: [1x1 pde.SteadyStateThermalResults]
                     TimeStep: []

Задайте тепловую нагрузку с помощью решения от переходного теплового анализа той же геометрии и mesh.

Переходный тепловой анализ модели

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

thermalmodel = createpde('thermal','transient');

Создайте и постройте геометрию.

gm = multicuboid(0.5,0.1,0.05);
thermalmodel.Geometry = gm;
pdegplot(thermalmodel,'FaceLabels','on','FaceAlpha',0.5)

Сгенерируйте mesh.

generateMesh(thermalmodel);

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

thermalProperties(thermalmodel,'ThermalConductivity',5e-3, ...
                               'MassDensity',2.7*10^(-6), ...
                               'SpecificHeat',10);

Задайте постоянные температуры на левых и правых концах на луче.

thermalBC(thermalmodel,'Face',3,'Temperature',100);
thermalBC(thermalmodel,'Face',5,'Temperature',0);

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

internalHeatSource(thermalmodel,10);

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

thermalIC(thermalmodel,0);

Решите модель.

tlist = [0:1e-4:2e-4];
thermalresults = solve(thermalmodel,tlist)
thermalresults = 
  TransientThermalResults with properties:

      Temperature: [3870x3 double]
    SolutionTimes: [0 1.0000e-04 2.0000e-04]
       XGradients: [3870x3 double]
       YGradients: [3870x3 double]
       ZGradients: [3870x3 double]
             Mesh: [1x1 FEMesh]

Постройте температурное распределение для каждого временного шага.

for n = 1:numel(thermalresults.SolutionTimes)
    figure
    pdeplot3D(thermalmodel,'ColorMapData',thermalresults.Temperature(:,n))
    title(['Time = ' num2str(tlist(n))])
    caxis([0 100])
end

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

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

structuralmodel = createpde('structural','static-solid');

Включайте ту же геометрию что касается тепловой модели.

structuralmodel.Geometry = gm;

Примените решение теплового анализа модели как загрузка тела для структурной модели. По умолчанию, structuralBodyLoad использует тепловое решение модели, в последний раз продвигаются.

structuralBodyLoad(structuralmodel,'Temperature',thermalresults);

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

structuralBodyLoad(structuralmodel,'Temperature',thermalresults, ...
                                   'TimeStep',2);

Входные параметры

свернуть все

Статическая или переходная структурная модель, заданная как StructuralModel объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок и граничных условий.

Пример: structuralmodel = createpde('structural','transient-solid')

Ускорение из-за силы тяжести, заданной как числовой вектор. GAval должен быть задан в модулях, сопоставимых с модулями свойств материала и геометрией.

Пример: structuralBodyLoad(structuralmodel,'GravitationalAcceleration',[0;0;-9.8])

Типы данных: double

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

Пример: structuralBodyLoad(structuralmodel,'Temperature',300)

Типы данных: double

Тепловое решение модели, примененное как нагрузка тела на статическую структурную модель, заданную как StaticThermalResults или TransientThermalResults объект. Создайте Tresults при помощи solve.

Пример: Tresults = solve(thermalmodel); structuralBodyLoad(structuralmodel,'Temperature',Tresults)

Индекс времени, заданный как положительное целое число.

Пример: structuralBodyLoad(structuralmodel,'Temperature',Tresults,'TimeStep',21)

Типы данных: double

Выходные аргументы

свернуть все

Обработайте к загрузке тела, возвращенной как BodyLoadAssignment объект.

Введенный в R2017b