Main Content

StructuralModel

Structural model object

Domain-specific structural workflow is not recommended. New features might not be compatible with this workflow. For help migrating your existing code to the unified finite element workflow, see Migration from Domain-Specific to Unified Workflow.

Description

A StructuralModel object contains information about a structural analysis problem: the geometry, material properties, damping parameters, body loads, boundary loads, boundary constraints, superelement interfaces, initial displacement and velocity, and mesh.

Creation

To create a StructuralModel object, use createpde and specify 'structural' as its first argument.

Properties

expand all

Type of structural analysis, specified as one of these values.

Static analysis:

  • 'static-solid' for static structural analysis of a solid (3-D) problem

  • 'static-planestress' for static structural analysis of a plane-stress problem

  • 'static-planestrain' for static structural analysis of a plane-strain problem

  • 'static-axisymmetric' for static structural analysis of an axisymmetric (2-D) problem

Transient analysis:

  • 'transient-solid' for transient structural analysis of a solid (3-D) problem

  • 'transient-planestress' for transient structural analysis of a plane-stress problem

  • 'transient-planestrain' for transient structural analysis of a plane-strain problem

  • 'transient-axisymmetric' for transient structural analysis of an axisymmetric (2-D) problem

Modal analysis:

  • 'modal-solid' for modal analysis of a solid (3-D) problem

  • 'modal-planestress' for modal analysis of a plane-stress problem

  • 'modal-planestrain' for modal analysis of a plane-strain problem

  • 'modal-axisymmetric' for modal analysis of an axisymmetric (2-D) problem

Frequency response analysis:

  • 'frequency-solid' for frequency response analysis of a solid (3-D) problem

  • 'frequency-planestress' for frequency response analysis of a plane-stress problem

  • 'frequency-planestrain' for frequency response analysis of a plane-strain problem

  • 'frequency-axisymmetric' for frequency response analysis of an axisymmetric (2-D) problem

To change a structural analysis type, assign a new type to model.AnalysisType. Ensure that all other properties of the model are consistent with the new analysis type. Note that you cannot change the spatial dimensionality. For example, you can change the analysis type from 'static-solid' to 'modal-solid', but cannot change it to 'static-planestress'.

Example: model = createpde('structural','static-solid')

Data Types: char

Geometry description, specified as AnalyticGeometry for a 2-D geometry or DiscreteGeometry for a 2-D or 3-D geometry.

Material properties within the domain, specified as a StructuralMaterialAssignment object containing the material property assignments. For details, see StructuralMaterialAssignment Properties.

To create the material properties assignments for your structural analysis model, use the structuralProperties function.

Loads acting on the domain or subdomain, specified as a BodyLoadAssignment object containing body load assignments. For details, see BodyLoadAssignment Properties.

To create body load assignments for your structural analysis model, use the structuralBodyLoad function.

Structural loads and boundary conditions applied to the geometry, specified as a StructuralBC object containing the boundary condition assignments. For details, see StructuralBC Properties.

To specify boundary conditions for your model, use the structuralBC function. To specify boundary loads, use structuralBoundaryLoad.

Damping model for transient or frequency response analysis, specified as a StructuralDampingAssignment object containing damping assignments. For details, see StructuralDampingAssignment Properties.

To set damping parameters for your structural model, use the structuralDamping function.

Reference temperature for a thermal load, specified as a number. The reference temperature corresponds to state of zero thermal stress of the model. The default value 0 implies that the thermal load is specified in terms of the temperature change and its derivatives.

To specify the reference temperature for a thermal load in your static structural model, assign the property value directly, for example, structuralmodel.ReferenceTemperature = 10. To specify the thermal load itself, use the structuralBodyLoad function.

Data Types: double

Initial displacement and velocity, specified as a GeometricStructuralICs or NodalStructuralICs object. For details, see GeometricStructuralICs Properties and NodalStructuralICs Properties.

To set initial conditions for your transient structural model, use the structuralIC function.

Superelement interfaces for the component mode synthesis, specified as a StructuralSEIAssignment object containing superelement interface assignments. For details, see StructuralSEIAssignment Properties.

To specify superelement interfaces for your frequency response structural model, use the structuralSEInterface function.

Mesh for solution, specified as a FEMesh object.

To create the mesh, use the generateMesh function.

Inputs for a linearized model, specified as a structure array. The inputs are used by the linearize that extracts mechss (Control System Toolbox) model from a structural model.

Inputs for a linearized model, specified as a structure array. The outputs are used by the linearize that extracts mechss (Control System Toolbox) model from a structural model.

Algorithm options for the PDE solvers, specified as a PDESolverOptions Properties object. The properties of PDESolverOptions include absolute and relative tolerances for internal ODE solvers, maximum solver iterations, and so on.

Object Functions

geometryFromEdgesCreate 2-D geometry from decomposed geometry matrix
geometryFromMeshCreate 2-D or 3-D geometry from mesh
importGeometryImport geometry from STL or STEP file
structuralBC Specify boundary conditions for structural model
structuralSEInterfaceSpecify structural superelement interface for component mode synthesis
structuralBodyLoadSpecify body load for structural model
structuralBoundaryLoadSpecify boundary loads for structural model
structuralICSet initial conditions for a transient structural model
structuralPropertiesAssign structural properties of material for structural model
solveSolve structural analysis, heat transfer, or electromagnetic analysis problem
reduceReduce structural or thermal model
linearizeLinearize structural or thermal model
linearizeInputSpecify inputs to linearized model
linearizeOutputSpecify outputs of linearized model

Examples

collapse all

Create a static structural model for solving a solid (3-D) problem.

structuralModel = createpde("structural","static-solid")
structuralModel = 
  StructuralModel with properties:

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

Create and plot the geometry.

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

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Specify Young's modulus, Poisson's ratio, and the mass density.

structuralProperties(structuralModel,"Cell",1,"YoungsModulus",210E3, ...
                                              "PoissonsRatio",0.3, ...
                                              "MassDensity",2.7E-6)
ans = 
  StructuralMaterialAssignment with properties:

           RegionType: 'Cell'
             RegionID: 1
        YoungsModulus: 210000
        PoissonsRatio: 0.3000
          MassDensity: 2.7000e-06
                  CTE: []
    HystereticDamping: []

Specify the gravity load on the rod.

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

                   RegionType: 'Cell'
                     RegionID: 1
    GravitationalAcceleration: [0 0 -9.8000]
              AngularVelocity: []
                  Temperature: []
                     TimeStep: []
                        Label: []

Specify that face 6 is a fixed boundary.

structuralBC(structuralModel,"Face",6,"Constraint","fixed")
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 6
                Vectorized: 'off'

   Boundary Constraints and Enforced Displacements
              Displacement: []
             XDisplacement: []
             YDisplacement: []
             ZDisplacement: []
                Constraint: "fixed"
                    Radius: []
                 Reference: []
                     Label: []

   Boundary Loads
                     Force: []
           SurfaceTraction: []
                  Pressure: []
    TranslationalStiffness: []
                     Label: []

Specify the surface traction for face 5.

structuralBoundaryLoad(structuralModel, ...
                       "Face",5, ...
                       "SurfaceTraction",[0;0;100])
ans = 
  StructuralBC with properties:

                RegionType: 'Face'
                  RegionID: 5
                Vectorized: 'off'

   Boundary Constraints and Enforced Displacements
              Displacement: []
             XDisplacement: []
             YDisplacement: []
             ZDisplacement: []
                Constraint: []
                    Radius: []
                 Reference: []
                     Label: []

   Boundary Loads
                     Force: []
           SurfaceTraction: [3x1 double]
                  Pressure: []
    TranslationalStiffness: []
                     Label: []

Generate a mesh.

generateMesh(structuralModel)
ans = 
  FEMesh with properties:

             Nodes: [3x8013 double]
          Elements: [10x5010 double]
    MaxElementSize: 0.0208
    MinElementSize: 0.0104
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

View the properties of structuralModel.

structuralModel
structuralModel = 
  StructuralModel with properties:

              AnalysisType: "static-solid"
                  Geometry: [1x1 DiscreteGeometry]
        MaterialProperties: [1x1 StructuralMaterialAssignmentRecords]
                 BodyLoads: [1x1 BodyLoadAssignmentRecords]
        BoundaryConditions: [1x1 StructuralBCRecords]
      ReferenceTemperature: []
    SuperelementInterfaces: []
                      Mesh: [1x1 FEMesh]
             SolverOptions: [1x1 pde.PDESolverOptions]

Version History

Introduced in R2017b

expand all