Skip to content

Pull-in analysis of a MEMS device

In this tutorial, pull-in analysis is simulated for a MEMS device.

Pull-in analysis is performed to determine the pull-in voltage of a MEMS device. At this voltage, the device becomes unstable as the electrostatic forces can no longer be balanced by the stiffness of the device.

Model definition

The model consists of two parallel square plates with a certain thickness, separated by a vacuum gap. A DC voltage is applied to the bottom plate while the top plate is grounded. The bottom plate is clamped and the top plate is attached to a spring with stiffness KK. The displacement of the top plate is constrained to move only in the ZZ-direction. The interaction between the top plate and attached spring is determined using a lumped model:

Fz=KUz F_z = -K \cdot U_z

INTRO_pull-in-2D-model

Parameters

The model parameters, that should be defined as shared expressions in Allsolve, are defined as follows:

  • Length of the square plate, L=50L = 50 μm
  • Height of the square plate, H=3H = 3 μm
  • Gap between the two parallel square plates, d=1d = 1 μm
  • Stiffness of the spring, K=10000K = 10000 N/m
  • Overlapping area between the two parallel plates, A=L×L A = L \times L ~

Geometric elements

ElementSizeCenter point (X, Y, Z)
Bottom plateL ×\times L ×\times H(0, 0, 0)
Top plateL ×\times L ×\times H(0, 0, H + d)
Vacuum boxL ×\times L ×\times d(0, 0, H/2 + d/2)

Output Results

  • Plot of applied voltage vs resulting displacement.

Material Data

  1. Vacuum for the gap between the parallel plates
    • Electric permittivity: ϵ\epsilon = ϵ0 \epsilon_0 ~ [F/m]
  2. Silicon dioxide for the top and bottom plate
    • Young’s modulus: EE = 70 70 ~ [GPa]
    • Poisson’s ratio: ν\nu = 0.170.17
    • Electric permittivity: ϵ\epsilon = 3.9ϵ0 3.9 \cdot \epsilon_0 ~ [F/m]

Boundary conditions

  • Bottom plate

    • Electrode: VV = VDCV_{\rm DC}
    • Clamped: [ux,uy,uz][u_x, u_y, u_z] = [0,0,0][0, 0, 0]
  • Top plate

    • Grounded: VV = 00
    • in-plane clamp: [ux,uy][u_x, u_y] = [0,0][0, 0]

Analytical solution

For the model setup defined above, the analytical solution to the pull-in voltage VpV_{\rm p} is given by the formula: 1

Vp=827Kd3ϵAV_{\rm p} = \sqrt{\frac{8}{27}\frac{Kd^3}{\epsilon A}}

where,

  • KK is the spring stiffness [N/m].
  • dd is the initial gap between the parallel plates [m].
  • ϵ\epsilon is the electric permittivity of the gap medium [F/m].
  • AA is the overlapping area between the parallel plates [m²].

The corresponding displacement upu_{\rm p} of the top plate at pull-in voltage is one-third of the initial gap between the plates.

x=13dx = \frac{1}{3} d

The pull-in voltage and the corresponding displacement based on the values defined in Parameters:

Vp=365.9 voltsup=0.3333 μmV_{\rm p} = 365.9 ~ volts \\ u_{\rm p} = 0.3333 ~ μm

Step-by-step guide

Here you’ll find a detailed step-by-step tutorial on how to simulate this in Quanscient Allsolve

Step 1 - Build the geometry

  1. Start with a new project, and name it as Pull-in analysis.

  2. In the project starting options dialog, choose box as a starting point.

  3. Finish model editing for now and go to the Properties section.

  4. Add shared expressions:

    NameDescriptionExpression
    LPlate size [m]50e-6
    HPlate thickness [m]3e-6
    dGap between plates [m]1e-6
    VdcDC Voltage [V]1
    KSpring stiffness [N/m]1e4
    AOverlap area between plates [m]L*L
  5. Go back to the Model section to finish model editing.

  6. Change the box size (X; Y; Z) to (L; L; H):

    NameElement typeCenter point [m]Size [m]Rotation [deg]
    boxBoxX: 0X: LX: 0
    Y: 0Y: LY: 0
    Z: 0Z: HZ: 0

    Example image

  7. To build the other parallel plate, use the Translate geo operation:

    NameElement typeTargetTranslation [m]CopyRepeat count
    translateTranslationVolume 1X: H + dYes1
    Y: 0
    Z: 0
  8. Confirm the settings and build the translation.

    Example image

  9. To fill the gap between the parallel plates, build another box:

    NameElement typeCenter point [m]Size [m]Rotation [deg]
    box 2BoxX: 0X: LX: 0
    Y: 0Y: LY: 0
    Z: H/2 + d/2Z: dZ: 0

Your geometry is now finished.

Example image

Step 2 - Define the materials

  1. Go to the Properties section.

  2. Add the Vacuum material and assign it to the gap between the plates (volume 25). Add the target region as a shared region.

  3. Add the Silicon dioxide material and assign it to the plates (volumes 1, 2). Add the target as a shared region.

Example image

Step 3 - Define physics and interactions

  1. Go to the Physics section.

  2. Add the Solid Mechanics, Electrostatics and Mesh deformation physics. Example image

Physics 1 - Solid mechanics

  1. Select the silicon dioxide shared region (volumes 1, 2) as solid mechanics target.

    PhysicsTarget
    Solid mechanicsSilicon dioxide region (volumes 1, 2)
  2. Add a Clamp interaction to Solid mechanics.

    Interaction nameInteraction typeTargetValue
    ClampClampBottom plate (volume 1)
  3. Add a Constraint interaction to Solid mechanics:

    Interaction nameInteraction typeTargetValue
    in-plane clampConstraintTop plate (volume 2)[1, 0; 1, 0; 0, 0]

    The in-plane clamp interaction is used to constraint the movement of the top plate in X and Y directions. Z-directional movement is left unconstrained.

    Example image

  4. Add Lump U/F to Solid mechanics:

    Interaction nameInteraction typeTargetActuation modeValue
    Lump U/FLump U/FTop plate top surface (surface 12)Circuit coupling[0, 0; 0, 0; 1, lump.Fz + K*lump.Uz]

    Example image

    Lump U/F is used to attach a spring to the top surface of the top plate via circuit coupling.

  5. Add the Electric force interaction, which couples Solid mechanics to Electrostatics.

  6. Add the Large displacement interaction, which couples Solid mechanics to Mesh deformation.

Physics 2 - Electrostatics

  1. Let the electrostatics target default to the whole geometry.

    PhysicsTarget
    ElectrostaticsAll volumes (1, 2, 25)
  2. Add a Constraint interaction to Electrostatics.

    Interaction nameInteraction typeTargetValue
    groundConstraintTop plate (volume 2)0
  3. Add another Constraint interaction to Electrostatics:

    Interaction nameInteraction typeTargetValue
    electrodeConstraintBottom plate (volume 1)Vdc
  4. Add the Large displacement interaction, which couples Electrostatics to Mesh deformation.

Physics 3 - Mesh deformation

  1. Let the mesh deformation target default to the whole geometry.

    PhysicsTarget
    Mesh deformationAll volumes (1, 2, 25)
  2. Add a Constraint interaction to Mesh deformation:

    Interaction nameInteraction typeTargetValue
    ConstraintConstraintSilicon dioxide target (volumes 1, 2)[1, compx(u); 1, compy(u); 0, compz(u)]

    Example image

  3. Add another Constraint interaction to Mesh deformation:

    Interaction nameInteraction typeTargetValue
    in-plane constraintConstraintVacuum gap (volume 25)[1, 0; 1, 0; 0, 0]

    Example image

All your physics and interactions are now added.

Example image

Step 4 - Generate the mesh

  1. Go to the Simulations section.

  2. Add a new mesh.

  3. Set Mesh quality to Expert Settings.

  4. Set Used Mesher to Basic.

  5. Set Scale factor to 0.75.

  6. Add Mesh extrusion:

    Mesh entityOverlap modeTargetSublayer counts
    Mesh extrusionPreventAll volumes 1, 2, 2510
    8
    10
  7. Run meshing and check the preview.

Example image

Step 5 - Apply settings and run the simulation

  1. Add a new simulation.

  2. Set Analysis Type to Steady state.

  3. Select the mesh you created in Step 4 as the mesh for your simulation.

  4. Add a Vdc sweep input with override expression linspace(5, 365, 73).

  5. Add a custom value output and name it as max displacement in um. Set Output expression to maxvalue(reg.silicon_dioxide_target, -compz(u), 5) * 1e6.

  6. The Solid mechanics physics considers geometric nonlinearity due to the Large displacement interaction. It is sufficient to consider geometric linearity for this simulation. To make this change, open the script and toggle on Scripting mode.

  7. Scroll down to # Solid mechanics in the script, and replace the formulation with the line below:

    form += qs.integral(reg.silicon_dioxide_target, qs.predefinedelasticity(qs.dof(fld.u), qs.tf(fld.u), par.H()))

    Example image

Your settings are now applied, and you can run the simulation.

Example image

Step 5 - Plot results

Add a plot with Vdc in the X axis, and max displacement in um in the Y axis.

Example image

References

Footnotes

  1. Kaajakari, V. MEMS Tutorial: Pull-in voltage in electrostatic microactuators, 1-2. https://www.kaajakari.net/~ville/research/tutorials/pull_in_tutorial.pdf