This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

structuralBodyLoad

Specify body load for structural model

Syntax

structuralBodyLoad(structuralmodel,'GravitationalAcceleration',GAval)
structuralBodyLoad(structuralmodel,'Temperature',Tval)
structuralBodyLoad(structuralmodel,'Temperature',Tresults)
structuralBodyLoad(structuralmodel,'Temperature',Tresults,'TimeStep',iT)
bodyLoad = structuralBodyLoad(___)

Description

example

structuralBodyLoad(structuralmodel,'GravitationalAcceleration',GAval) specifies acceleration due to gravity as a body load for a static or transient structural model. Structural models for modal analysis cannot have body loads.

example

structuralBodyLoad(structuralmodel,'Temperature',Tval) specifies a thermal load on a static structural analysis model.

Tip

If Tval is the temperature itself, and not a change in temperature, you also must specify a reference temperature. To specify it, assign the reference temperature value to structuralmodel.ReferenceTemperature. For details, see StructuralModel.

example

structuralBodyLoad(structuralmodel,'Temperature',Tresults) uses the steady-state or transient thermal analysis results Tresults to specify a thermal load on a static structural analysis model. If Tresults is the solution of a transient thermal problem, then this syntax uses the temperature and its gradients from the last time step.

example

structuralBodyLoad(structuralmodel,'Temperature',Tresults,'TimeStep',iT) uses the transient thermal analysis results Tresults and the time step index iT to specify a thermal load on a static structural analysis model.

bodyLoad = structuralBodyLoad(___) returns the body load object, using the input arguments from any of the previous syntaxes.

Examples

collapse all

Create a structural model.

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

Create and plot the geometry.

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

Specify the Young's modulus, Poisson's ratio, and mass density. The mass density value is required for modeling gravitational effects.

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

Specify the gravity load on the beam.

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

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

Specify a constant temperature rise for a thermal stress analysis of a bimetallic cantilever beam.

Create a static structural model.

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

Create and plot the geometry.

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

Set the reference temperature. This temperature corresponds to the state of zero thermal stress of the model.

structuralmodel.ReferenceTemperature = 20
structuralmodel = 
  StructuralModel with properties:

            AnalysisType: 'static-solid'
                Geometry: [1x1 DiscreteGeometry]
      MaterialProperties: []
               BodyLoads: []
      BoundaryConditions: []
    ReferenceTemperature: 20
                    Mesh: []

Apply the constant temperature as a structural body load.

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

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

Specify a thermal load using the solution from a steady-state thermal analysis on the same geometry and mesh.

Steady-State Thermal Model Analysis

Create a steady-state thermal model.

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

Create and plot the geometry.

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

Generate a mesh.

generateMesh(thermalmodel);

Specify the thermal conductivity of the material.

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

Specify constant temperatures on the left and right ends on the beam.

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

Specify the heat source over the entire geometry.

internalHeatSource(thermalmodel,10);

Solve the model.

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

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

Plot the temperature distribution.

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

Static Structural Analysis with Thermal Load

Create a static structural model.

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

Include the same geometry as for the thermal model.

structuralmodel.Geometry = gm;

Apply the solution of the thermal model analysis as a body load for the structural model.

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

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

Specify a thermal load using the solution from a transient thermal analysis on the same geometry and mesh.

Transient Thermal Model Analysis

Create a transient thermal model.

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

Create and plot the geometry.

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

Generate a mesh.

generateMesh(thermalmodel);

Specify the thermal properties of the material.

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

Specify the constant temperatures on the left and right ends on the beam.

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

Specify the heat source over the entire geometry.

internalHeatSource(thermalmodel,10);

Set the initial temperature.

thermalIC(thermalmodel,0);

Solve the model.

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]

Plot the temperature distribution for each time step.

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

Static Structural Analysis with Thermal Load

Create a static structural model.

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

Include the same geometry as for the thermal model.

structuralmodel.Geometry = gm;

Apply the solution of the thermal model analysis as a body load for the structural model. By default, structuralBodyLoad uses the thermal model solution for the last time step.

structuralBodyLoad(structuralmodel,'Temperature',thermalresults);

You also can specify the time step you want to use. For example, apply the thermal model solution for the second time step as a body load for the structural model.

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

Input Arguments

collapse all

Static or transient structural model, specified as a StructuralModel object. The model contains the geometry, mesh, structural properties of the material, body loads, boundary loads, and boundary conditions.

Example: structuralmodel = createpde('structural','transient-solid')

Acceleration due to gravity, specified as a numeric vector. GAval must be specified in units consistent with the geometry and material properties units.

Example: structuralBodyLoad(structuralmodel,'GravitationalAcceleration',[0;0;-9.8])

Data Types: double

Constant thermal load on a static structural model, specified as a real number. Tval must be specified in units consistent with the geometry and material properties units.

Example: structuralBodyLoad(structuralmodel,'Temperature',300)

Data Types: double

Thermal model solution applied as a body load on a static structural model, specified as a StaticThermalResults or TransientThermalResults object. Create Tresults by using solve.

Example: Tresults = solve(thermalmodel); structuralBodyLoad(structuralmodel,'Temperature',Tresults)

Time index, specified as a positive integer.

Example: structuralBodyLoad(structuralmodel,'Temperature',Tresults,'TimeStep',21)

Data Types: double

Output Arguments

collapse all

Handle to body load, returned as a BodyLoadAssignment object.

Introduced in R2017b