Overview & Types
Piezoelectric actuators exploit the inverse piezoelectric effect — applying an electric field to certain crystals or ceramics causes them to mechanically deform. They deliver nanometer-level positioning accuracy, microsecond response times, and zero backlash, making them indispensable in precision optics, semiconductor manufacturing, and medical ultrasound.
Types
- Stack Actuator (Multilayer): Many thin PZT layers bonded in series mechanically, parallel electrically. Low voltage (60–200 V), high force (kN range), short stroke (5–150 µm). The workhorse for nanopositioning.
- Bimorph/Bending Actuator: Two piezo layers bonded together — one expands, the other contracts, causing bending. Larger displacement (0.1–2 mm) but lower force. Used in valves and optical switches.
- Tube Actuator: Hollow PZT cylinder with 4 external electrodes. Applying voltage to opposite quadrants causes scanning motion in X/Y. Used in atomic force microscopes (AFM) and scanning probe microscopy.
- Shear Actuator: Electric field applied perpendicular to poling direction causes shear deformation. Used in precision stages and interferometers.
- Amplified Piezo Actuator (APA): Stack actuator with a mechanical flexure amplifier. Trades force for displacement, achieving 0.5–5 mm stroke. Used in aerospace and optical alignment.
- Ultrasonic Piezo Motor: Standing or traveling wave excitation produces continuous rotation or linear motion. Very high positioning accuracy, self-locking when de-energized. Used in camera autofocus and watch movements.
Working Principle
Inverse Piezoelectric Effect
Piezoelectric materials (PZT ceramics, quartz, PVDF polymer) have an asymmetric crystal structure. Applying an electric field distorts the crystal lattice, producing mechanical strain. The relationship is approximately linear at small fields:
Fundamental Equation
ΔL = d33 × V × n
Where: ΔL = displacement, d33 = piezoelectric coefficient (for PZT: ~300–600 pm/V), V = applied voltage, n = number of layers in stack.
Example: 100-layer stack, d33=400 pm/V, 150 V → ΔL = 400×10⁻¹² × 150 × 100 = 6 µm
Hysteresis
PZT exhibits 10–15% hysteresis between voltage increase and decrease curves. For precision positioning, closed-loop control with strain gauge or capacitive sensor feedback is essential to compensate.
Creep
After a voltage step, piezos continue to slowly deform (1–2% logarithmic creep over minutes). Closed-loop operation or charge-drive (instead of voltage-drive) mitigates this.
Electrical & Mechanical Specifications
| Parameter | Multilayer Stack | Bimorph Bender | Amplified (APA) |
|---|---|---|---|
| Displacement | 5–180 µm | 0.1–2 mm | 0.5–5 mm |
| Blocking Force | 200–30,000 N | 0.1–5 N | 10–500 N |
| Drive Voltage | 60–200 V | 60–250 V | 60–200 V |
| Capacitance | 0.1–50 µF | 10–500 nF | 0.5–20 µF |
| Response Time | 1–10 µs | 0.1–10 ms | 0.5–5 ms |
| Resolution | Sub-nm (open loop) | ~1 µm | 0.1–1 µm |
| Hysteresis | 10–15% | 10–20% | 5–15% (flexure guided) |
| Lifespan | 10⁹–10¹² cycles (no wear, no friction) | ||
Driver Circuits
High-Voltage Amplifier
Piezos are capacitive loads requiring high-voltage, high-current drivers. Commercial amplifiers (e.g., Thorlabs MDT694B, PI E-709) provide 0–150 V or 0–1000 V output with bandwidth up to 10 kHz.
PWM Boost Converter (DIY)
For hobbyist applications, a boost converter can step up 5–12 V to 100–200 V. Use a half-bridge or full-bridge to drive the piezo bidirectionally. Critical: current limiting during fast voltage transitions (I = C × dV/dt).
- Charge Amplifier: Instead of voltage drive, a charge amplifier delivers precise charge, eliminating hysteresis (to ~1%). More complex but essential for high-precision open-loop operation.
- Current Limiting: A 10 µF piezo driven to 150 V in 10 µs draws I = 10×10⁻⁶ × 150/10×10⁻⁶ = 150 A peak! Slew-rate limiting is essential.
Feedback Sensors
- Strain Gauge (SGS): Bonded to piezo stack, measures actual displacement. Resolution ~1 nm. Requires bridge amplifier.
- Capacitive Sensor: Non-contact measurement with sub-nm resolution. Gold standard for nano-positioning stages.
Control Methods
Open-Loop Voltage Drive
Apply voltage, get displacement. Simple but limited by 10–15% hysteresis and creep. Acceptable for vibration generation and coarse positioning.
Closed-Loop Position Control
Strain gauge or capacitive sensor feedback with PID controller. Eliminates hysteresis, creep, and temperature drift. Standard for nanopositioning stages. Typical bandwidth: 100 Hz–10 kHz.
Charge Drive
Charge amplifier linearizes the voltage-displacement relationship, reducing hysteresis to ~1% without external feedback. Less common but elegant for open-loop precision.
Waveform Generation
For ultrasonic motors and vibration applications, piezo is driven with sinusoidal or sawtooth waveforms at 20–200 kHz. DDS (Direct Digital Synthesis) ICs generate precise frequencies.
Code Example — Arduino & ESP32
Arduino: Piezo Buzzer / Simple Positioning
// Drive a piezo element with variable voltage via PWM + low-pass filter
// Output: 0-5V analog via filtered PWM → amplifier → piezo
// Wiring: D9 (PWM) → RC filter (10k + 1µF) → amplifier input
const int PIEZO_PWM = 9; // PWM output pin
const int POT_PIN = A0; // Position command potentiometer
void setup() {
Serial.begin(9600);
pinMode(PIEZO_PWM, OUTPUT);
// Set PWM frequency to 31.25 kHz for smooth filtering
TCCR1B = (TCCR1B & 0b11111000) | 0x01;
Serial.println("Piezo Positioner (open-loop)");
Serial.println("Turn pot to set position");
}
void loop() {
int potVal = analogRead(POT_PIN);
int pwmVal = map(potVal, 0, 1023, 0, 255);
analogWrite(PIEZO_PWM, pwmVal);
float voltage = (pwmVal / 255.0) * 5.0;
// Assuming 10x amplifier → 0-50V, d33=400pm/V, 100 layers
float displacement_um = voltage * 10.0 * 400e-6 * 100.0;
Serial.print("PWM: "); Serial.print(pwmVal);
Serial.print(" | Voltage: "); Serial.print(voltage, 2);
Serial.print("V | Est. displacement: ");
Serial.print(displacement_um, 2);
Serial.println(" um");
delay(50);
}
ESP32: Waveform Generator for Piezo Vibration
// ESP32 DAC waveform generator for piezo vibration testing
// Output: GPIO25 (DAC) → amplifier → piezo element
// Generates sine, triangle, and sawtooth waveforms
#include <Arduino.h>
#include <math.h>
#define DAC_PIN 25
#define BTN_PIN 0 // Boot button to cycle waveforms
enum Waveform { SINE, TRIANGLE, SAWTOOTH, NUM_WAVEFORMS };
Waveform currentWave = SINE;
const char* waveNames[] = {"Sine", "Triangle", "Sawtooth"};
float frequency = 100.0; // Hz
int amplitude = 127; // 0-127 (centered at 128)
void setup() {
Serial.begin(115200);
pinMode(BTN_PIN, INPUT_PULLUP);
Serial.println("Piezo Waveform Generator");
Serial.printf("Waveform: %s at %.0f Hz\n",
waveNames[currentWave], frequency);
}
uint8_t generateSample(float phase) {
float value = 0;
switch (currentWave) {
case SINE:
value = sin(phase * 2.0 * PI);
break;
case TRIANGLE:
value = (phase < 0.5) ? (4.0*phase - 1.0) : (3.0 - 4.0*phase);
break;
case SAWTOOTH:
value = 2.0 * phase - 1.0;
break;
default: break;
}
return (uint8_t)(128 + amplitude * value);
}
void loop() {
static unsigned long lastBtnTime = 0;
// Cycle waveform on button press
if (digitalRead(BTN_PIN) == LOW && millis() - lastBtnTime > 300) {
currentWave = (Waveform)((currentWave + 1) % NUM_WAVEFORMS);
Serial.printf("Waveform: %s\n", waveNames[currentWave]);
lastBtnTime = millis();
}
// Generate waveform samples
float period_us = 1000000.0 / frequency;
unsigned long t0 = micros();
float phase = fmod((float)t0, period_us) / period_us;
uint8_t sample = generateSample(phase);
dacWrite(DAC_PIN, sample);
delayMicroseconds(10); // ~100 kHz sample rate
}
Real-World Applications
Precision Science
- Atomic Force Microscope (AFM) scanning
- Laser beam steering & adaptive optics
- Semiconductor lithography stage
- Fiber optic alignment
Industrial & Medical
- Inkjet printer head nozzles
- Diesel fuel injector valves
- Ultrasonic surgical tools
- Vibration energy harvesting
Advantages vs. Alternatives
| vs. Actuator | Piezo Advantage | Piezo Disadvantage |
|---|---|---|
| Stepper Motor | Sub-nm resolution, no backlash, microsecond response | Micrometers of travel only, high voltage required |
| Voice Coil | No cogging, infinite resolution, billions of cycles | Much shorter stroke, very stiff (no compliance) |
| MEMS Actuator | Much higher force and displacement at macro scale | Larger, higher voltage, not CMOS-compatible |
| Thermal (SMA) | 1000× faster response, no hysteresis (with feedback) | Tiny displacement compared to SMA contraction |
Limitations & Considerations
- Tiny Displacement: Raw stacks produce only 0.1% strain. A 10 mm stack moves just 10 µm. Amplified designs add stroke but reduce stiffness and force.
- High Voltage: Most actuators need 60–200 V drive electronics. Not directly compatible with microcontroller I/O.
- Hysteresis: 10–15% open-loop hysteresis limits accuracy without feedback. Charge drive or closed-loop control is needed for precision.
- Creep: Logarithmic drift continues for minutes after voltage step. Problematic for static positioning without feedback.
- Fragile: PZT ceramics are brittle and crack under tensile stress. Always preload stacks in compression. Avoid mechanical shock.
- Temperature Sensitivity: Piezoelectric coefficient decreases above ~150°C and material depoles above Curie temperature (~300°C for PZT).