Clamped, Square Isotropic Plate with Uniform Pressure Load

This example shows how to calculate the deflection of a structural plate acted on by a pressure loading.

PDE and Boundary Conditions For A Thin Plate

The partial differential equation for a thin, isotropic plate with a pressure loading is


where D is the bending stiffness of the plate given by


and E is the modulus of elasticity, ν is Poisson's ratio, and h is the plate thickness. The transverse deflection of the plate is w and p is the pressure load.

The boundary conditions for the clamped boundaries are w=0 and w=0 where w is the derivative of w in a direction normal to the boundary.

The Partial Differential Equation Toolbox™ cannot directly solve the fourth order plate equation shown above but this can be converted to the following two second order partial differential equations.



where v is a new dependent variable. However, it is not obvious how to specify boundary conditions for this second order system. We cannot directly specify boundary conditions for both w and w. Instead, we directly prescribe w to be zero and use the following technique to define v in such a way to insure that w also equals zero on the boundary. Stiff "springs" that apply a transverse shear force to the plate edge are distributed along the boundary. The shear force along the boundary due to these springs can be written nDv=-kw where n is the normal to the boundary and k is the stiffness of the springs. The value of k must be large enough that w is approximately zero at all points on the boundary but not so large that numerical errors result because the stiffness matrix is ill-conditioned. This expression is a generalized Neumann boundary condition supported by Partial Differential Equation Toolbox™

In the Partial Differential Equation Toolbox™ definition for an elliptic system, the w and v dependent variables are u(1) and u(2). The two second order partial differential equations can be rewritten as



which is the form supported by the toolbox. The input corresponding to this formulation is shown in the sections below.

Create the PDE Model

Create a pde model for a PDE with two dependent variables.

numberOfPDE = 2;
model = createpde(numberOfPDE);

Problem Parameters

E = 1.0e6; % modulus of elasticity
nu = .3; % Poisson's ratio
thick = .1; % plate thickness
len = 10.0; % side length for the square plate
hmax = len/20; % mesh size parameter
D = E*thick^3/(12*(1 - nu^2));
pres = 2; % external pressure

Geometry Creation

For a single square, the geometry and mesh are easily defined as shown below.

gdm = [3 4 0 len len 0 0 0 len len]';
g = decsg(gdm,'S1',('S1')');

Create a geometry entity.


Plot the geometry and display the edge labels for use in the boundary condition definition.

axis equal
title 'Geometry With Edge Labels Displayed';

Coefficient Definition

The documentation on PDE coefficients shows the required formats for the a and c matrices. The most convenient form for c in this example is nc=3N from the table where N is the number of differential equations. In this example N=2. The c tensor, in the form of an N×N matrix of 2×2 submatrices is shown below.


The six-row by one-column c matrix is defined below. The entries in the full 2×2 a matrix and the 2×1 f vector follow directly from the definition of the two-equation system shown above.

c = [1 0 1 D 0 D]';
a = [0 0 1 0]';
f = [0 pres]';

Boundary Conditions

k = 1e7; % spring stiffness

Define distributed springs on all four edges.

bOuter = applyBoundaryCondition(model,'neumann','Edge',(1:4),...
                                     'g',[0 0],'q',[0 0; k 0]);

Mesh generation

generateMesh(model, 'Hmax', hmax);

Finite Element and Analytical Solutions

The solution is calculated using the solvepde function and the transverse deflection is plotted using the pdeplot function. For comparison, the transverse deflection at the plate center is also calculated using an analytical solution to this problem.

res = solvepde(model);
u = res.NodalSolution;
numNodes = size(model.Mesh.Nodes,2);
title 'Transverse Deflection'

numNodes = size(model.Mesh.Nodes,2);
fprintf('Transverse deflection at plate center(PDE Toolbox) = %12.4e\n',...
Transverse deflection at plate center(PDE Toolbox) =  -2.7632e-01

Compute analytical solution.

wMax = -.0138*pres*len^4/(E*thick^3);
fprintf('Transverse deflection at plate center(analytical) = %12.4e\n', wMax);
Transverse deflection at plate center(analytical) =  -2.7600e-01