Video Tutorial: Capacitive Pressure Sensor

June 16, 2014

If you are searching for a tutorial on how to model a miniaturized 3D electromechanics problem, then look no further. We have just published an updated version of our video tutorial on how to simulate a capacitive pressure sensor. COMSOL Multiphysics version 4.4 and the MEMS Module are used to simulate the electrostatic, structural, and thermal physics that occur.

Video: Modeling Electromechanics in COMSOL Multiphysics

A capacitive pressure sensor is achieved by engineering a circuit such that its capacitance is dependent on the ambient pressure in which it is operating. In this model, a vacuum cavity serves as the dielectric in a miniature parallel plate capacitor. The cavity is sandwiched between a silicon die and a thin silicon membrane, which is exposed to the ambient atmosphere. Changes in the ambient air pressure induce deflections in the membrane, which alter the distance between the capacitor plates. The capacitance of the device is thus dependent on the ambient pressure and, when connected to suitable circuitry, can be used as the basis for a pressure sensor.

The silicon capacitor is packaged onto a steel base plate using a thermal bonding technique that requires a temperature that is much higher than that at which the sensor is intended to operate. Since silicon and steel have different coefficients of thermal expansion, the capacitor and the base plate contract at different rates as the device cools back down to its operating temperature. This results in mechanical stresses at the interface between the two materials, which can cause additional temperature-dependent deflections of the membrane. In this example, we examine the performance of the pressure sensor both with and without the thermal stresses induced by the packaging. The video demonstrates the importance of considering multiphysics effects when designing electromechanical devices.

Model Download

Video Transcription

Today, we will be simulating a capacitive pressure sensor, both with and without stresses induced by the packaging. The geometry of the sensor is symmetric, so only a single quadrant is modeled. The sensor consists of a thin chamber, sealed under high vacuum, acting as the dielectric in a capacitor. It is separated from the ambient air by a thin membrane, which is electrically isolated from the grounded body of the sensor. We will investigate the deflections of the membrane due to both ambient pressure changes and thermal stresses resulting from a poor choice of package. In both cases, the deflections are detected by measuring a change in the capacitance between the membrane and ground.

To begin, we select the Model Wizard and then choose a 3D Space Dimension. Next, we add the Electromechanics physics interface. From the Preset Studies list, we choose a Stationary study.

The first step is to import some model parameters, which we’ll use to specify variables within the model. Click “Parameters” and then select the desired file. Here, you can see there are three imported parameters: “p0” is a pressure. This is the ambient pressure at which the device is operating and we have two temperatures: “T0”, the ambient temperature at which the device operates, and a reference temperature, “Tref”, which is the temperature at which the device is bonded to its package.

Next, the geometry is configured. For convenience, the geometry is imported from an external file. To do this from the Home tab, select “Import” and choose the desired file. Here, you can see we’ve imported a pre-made geometry, which is one quarter of the device we are modeling.

To simply the configuration of the physics interface and to aid with postprocessing of the results, it is convenient to now define some coupling components and some geometry selections. Two coupling components have been added. An Average operator, which operates on boundary 12. Boundary 12 corresponds to the underside of the silicon membrane.

So, here we have the silicon membrane, the cavity, and the silicon die. You can see, highlighted in blue, the underside of the silicon membrane. And an Integration operator, which integrates one point. This point is the point where we expect the maximum deflection. It’s right in the center of the underside of the membrane.

We’ve also created a collection of boundaries, which make up the YZ-Symmetry Plane and a collection of boundaries, which make up the XZ-Symmetry Plane. These will be used when specifying the symmetry boundary conditions in the physics interface. All the domains, which make up the steel base, have been selected. This is useful when we assign materials to the model.

An Explicit selection has been used to select the cavity domain. So, this is that vacuum cavity between the silicon membrane and the grounded body of the sensor. A second explicit selection has been used to select all domains and, then, a Difference operator has been used to remove the cavity domain. Leaving a selection, which is everything except for the cavity. This will be useful when assigning the linear elastic material properties later.

Next, we add the physics settings to the model. These include the pressure forces acting on the sensor, the applied voltages, and other appropriate domain and boundary conditions.

First, we add a Linear Elastic Material node to the Electromechanics physics interface. From the Physics ribbon, we select “Domains”, “Electromechanics”, and “Linear Elastic Material”. Here, we can use one of our selections created earlier. We can assign the Linear Elastic Material to the Linear Elastic selection, which encompasses all domains except for the vacuum cavity.

Next, we can apply the symmetry boundary conditions. From the physics ribbon, we select the boundary conditions, and under structural, we choose “Symmetry”. For the selection, we simply choose one of the symmetry planes we created earlier. We then repeat the process and select the other symmetry plane we created earlier.

Next, we need to add a Prescribed Displacement to a point on the model. Through the Physics ribbon, we choose from the Points, and from Electromechanics, choose “Prescribed Displacement”. You’re going to apply this to point 44 only, which is this corner point here.

The reason we apply this boundary condition is to constrain the position of this geometry in the Z-axis. This will prevent COMSOL from searching for solutions in which the whole geometry is translated arbitrarily up or down the Z-axis. So, to do that, we click “Prescribed in z direction” and we leave the default “0” here. So, now the structure is pinned in place in the Z-coordinates and although it can deflect, it can’t translate in its entirety.

Next, we need to add a Boundary Load condition. This is used to apply the pressure to the device. From the Physics ribbon, we select “Boundaries”, and from Structural we choose “Boundary Load”. This is applied to boundary 13 only, which corresponds to the top of the deflecting membrane. We’re going to set it to take a Pressure as its Load type, and we’re going to set the value of the Pressure to “p0”.

Next, moving mesh boundary conditions must be applied on the boundaries adjacent to the cavity. This will allow for the mesh to move as the surrounding material deforms. From the Electromechanics interface, we select the Prescribed Mesh Displacement node. Here, we clear the “Prescribed z displacement”, which allows the mesh to move up and down in the Z-direction as the membrane deflects.

Now, we specify the electrostatic boundary conditions required. From the Physics ribbon, we choose “Boundary”, and from Electrical, we choose “Terminal”. This Terminal boundary condition is used to apply a voltage to the underside of the silicon membrane. Select boundary number 12 again and we’re going to change the Terminal type to “Voltage” and the default Electrical potential of “1 Volt” is sufficient.

Next, we once again return to the boundary conditions and the Electrical section, and we select Ground. And this we want to apply to the top of the silicon die directly below the cavity. So, we choose the corresponding boundary and choose boundary 9. If we zoom in, we can see the selection of these electrical boundary conditions. So, you can see the voltage of “1 Volt” has been applied on the underside of the silicon membrane and the Ground has been applied on the other side of the cavity.

Now that the physics has been configured, it’s a suitable time to apply some materials to the model. From the Home ribbon, select “New Material”. You can see that the new material by default is applied to all domains and COMSOL knows which physical properties are required for the model to compute. The first material we shall rename “Silicon” and we’ll use it for the silicon part of the model. Enter some values appropriate for the silicon material.

Next, we add a second new material. This material is going to be added only to the cavity. Here, COMSOL knows that in this domain, all that’s required is the Relative permittivity, which we set to “1” to represent the vacuum.

Finally, we can use a built-in material to specify the steel domains. From the Home ribbon, we click “Add Material”, and from the Built-In library list, select “Steel”. Apply this to the steel base selection we made earlier. Notice how the materials override each other as they’re subsequently added. Initially, the silicon material was applied to all domains and now it’s overridden by the vacuum and the steel in the appropriate domains.

Next, we set up a structured mesh to solve the problem on. From the Mesh ribbon, we select “Edit” to allow us to edit the default physics-induced mesh sequence. Rather than the default Free Tetrahedral, the geometry here calls for a Mapped, Swept Mesh.

First, we disable the default, Free Tetrahedral. We would like our mesh to be densest around the region of interest, which is the membrane that we expect to deflect. To do this, we add a Size node and select “Custom” and then specify a Maximum element size of “50 micrometers”. Apply this to a boundary and we’re going to choose boundary 3 only, which you can see is this boundary on the bottom of the device, which marks the cross section of the membrane.

Now, we add a Mapped mesh to the lower surface of the model. Choose boundaries 3, 16, and 32, which make up this bottom surface of the model, and here you can see that the smaller Maximum size node has reduced the area of the surface elements in this region directly below the deflecting membrane, and then we have nice sweeping, radial mesh elements.

Then, the final step is to sweep this mesh up along the Z-axis through the structure. So, we add a swept mesh node, Build All, and there you have it! A nice structured mesh suitable for this geometry. Now that the parameters, geometry, physics, and mesh are all configured, we can prepare the study.

We will configure the study so that it sweeps over a range of applied pressures so that the response of the sensor can be assessed as a function of the ambient pressure. Within the study node, we find study Step 1: Stationary, and expand the Study Extensions section. Here we can check an Auxiliary sweep, and add the “p0” pressure variable. Choose an appropriate range.

Now that the auxiliary sweep is configured, from the Home ribbon, we may Compute.

The default plot shows the total displacement. It is clear that much of the structure is not displaced at all in this initial study. In order to quantify the displacement, we can use the two coupling components that were created earlier.

From the Home ribbon, we’re going to Add Plot Group and choose to add a 1D Plot Group. Now, we want to add a Global plot and first we can use the Average operator. So, this will take the average of “w”, which is the vertical displacement over the “aveop” boundary, which was the underside of the silicon membrane.

Select micrometers, a more appropriate unit, and we can use the point integration operator to allow us to plot the maximum displacement. Now, we can tidy up the plot a bit. You’ll see here I’ve renamed this 1D plot group to Membrane Displacement and this shows the displacement of the membrane, as a function of pressure. I’ve added a title for the plot and labeled the axes.

Now, we can plot the capacitance as a function of pressure. Once again, from the Home ribbon, we select “Add Plot Group”, choose a “1D Plot Group” and a “Global plot”. This time, we choose the capacitance variable, which is output automatically by the Electrostatics interface. Picofarads is a more appropriate unit. Now, we can tidy up this graph a bit. And here, we have created our plot for the capacitance as a function of pressure. I’ve added a title for the plot, labeled the axes, and moved the legend to the left side of the plot.

Now that the stress-free study has been completed, we can add the effects of thermal expansion to the model. In the Electromechanics interface, we right-click “Linear Elastic Material” and choose the “Thermal Expansion” sub node. We set the temperature of the device to the parameter “T0” and we set the reference temperature, which is the temperature at which there is zero stress due to thermal expansion, to be “Tref”, which is the temperature of the device when it was packaged.

Now that we have added additional physics to the physics interface, we see that the Materials section requires additional parameters. Specifically, we need to enter the coefficient of thermal expansion for the silicon. Note that the steel, as it came from the Built-In library, does not require us to add the additional coefficient of thermal expansion as this was already available.

In order to include the additional effects of thermal expansion, without overwriting the initial solution, we add a second study to the model. From the Study ribbon, we select “Add Study” and we add a second stationary study. Once again, we need to configure the study to perform an Auxiliary sweep over the “p0”, pressure, parameter.

Enter the same range as before, and then we can Compute.

Once again, the default plot shows the surface displacement. Notice now that the entire structure is displaced as a result of the differing rates of thermal expansion between the steel base plate and the silicon device. To compare these results with the first study, we can add the new solutions to the same plot groups.

Duplicate this Global plot and then change which solution it gets its data from. Tidy up the graph a bit. So, the solid lines correspond to the initial study with no thermal effects, and the dotted lines show that with the thermal effects, there is an increased deflection for a given pressure. For this plot, I moved the legend out of the way and changed the line style for clarity.

I can do the same for the capacitance. I can duplicate the original plot, change the solution from which it gets its data, and tidy the plot up a bit. And here we have created our plot for the capacitance as a function of pressure. I’ve changed the line color, and made some minor changes to the data labels in the legend, and you can see now the response of the capacitor to pressure is very different now that the effects of thermal stress are included in the simulation.

Learn more about this and similar models at

Comments (3)

Leave a Comment
Log In | Registration
Malkhaz Meladze
Malkhaz Meladze
February 9, 2015

A very useful and well presented post.
Thank you!

Prasanna Kumar Routray
Prasanna Kumar Routray
June 15, 2021

A very good tutorial. How to do the same for the 3plate capacitive structure?

Prasanna Kumar Routray
Prasanna Kumar Routray
July 25, 2021

This is 1-axis. How can we do for 3-axis?