Acoustic-Levitation-Particle-Manipulation

利用駐波聲場實現無接觸微粒操控:Gor'kov 勢阱理論、相控陣波束成形演算法與多軸懸浮系統的設計原理。

從科幻到實驗室:聲懸浮的物理魅力

想像一個液滴在沒有任何容器接觸的情況下懸浮在空中,被無形的力量揉捏、移動、融合。這並非魔術,而是聲懸浮(Acoustic Levitation)的現實應用。聲懸浮利用高強度超聲波在空氣中形成穩定的壓力節點(Pressure Node),微粒被囚禁在聲場的勢阱之中。由於消除了容器壁的接觸,這種技術在化學分析、生物樣本處理與材料科學中具有不可替代的價值——它完全免除了容器表面的成核效應與污染風險。

聲懸浮的核心思想奠基於英國物理學家 Gor'kov 在 1962 年提出的理論框架。他推導出作用於微小粒子(相對於聲波波長)上的聲輻射力公式,將複雜的聲散射問題簡化為一個勢能場的梯度。自此,聲懸浮從實驗室的奇觀轉變為可設計的工程系統。如今,基於相控陣超聲換能器的多軸懸浮裝置已經能夠同時操控數十個粒子,實現精密的 3D 列印中間體與無容器化學反應。

LEVITATION FORCE ~50 mN 典型陣列可在焦點處產生的徑向捕獲力
FREQUENCY 40 kHz 常用於空氣中超聲懸浮的換能器頻率
PARTICLE SIZE 10 μm – 5 mm 可穩定捕獲的液滴或固體顆粒直徑範圍
ARRAY ELEMENTS 256 ch 典型相控陣系統的獨立驅動通道數

Gor'kov 勢阱與聲輻射力

當一個粒子處於聲場中時,入射聲波在粒子表面發生散射,散射波與入射波的干涉產生了時間平均意義上的淨力——即聲輻射力(Acoustic Radiation Force)。Gor'kov 推導出,在粒子遠小於聲波波長(即 k·r ≪ 1)的條件下,聲輻射力可以表示為勢能場 U 的負梯度:F = −∇U。勢能 U 由兩個貢獻組成:來自聲壓場的單極子散射項與來自速度場的偶極子散射項。

具體而言,勢能表達式包含兩個材料相關的參數:f₁ = 1 − κₚ/κₘ(壓縮係數對比)與 f₂ = 2(ρₚ − ρₘ)/(2ρₚ + ρₘ)(密度對比)。當粒子密度大於介質時,f₂ 為正,粒子被推向聲壓節點;反之則被推向聲壓反節點。在空氣中,大部分液滴與固體顆粒的密度遠高於空氣,因此被穩定捕獲在壓力節點處——這就是為什麼水珠能夠懸浮在超聲陣列下方而不掉落。

Acoustic Levitation Laboratory Setup
Fig 1. 聲懸浮實驗平台:超聲換能器陣列與高速成像系統 Source: Unsplash

相控陣波束成形:從平面波到焦點勢阱

單個超聲換能器只能產生一維駐波,將粒子限制在一條線上。要實現三維空間中的自由操控,必須使用相控陣(Phased Array)技術。每個換能器單元由獨立的信號通道驅動,通過調節各通道的相位延遲,可以在空間中任意位置合成一個或多個焦點——這正是聲學版本的「光學透鏡」。

相位延遲的計算基於簡單的幾何聲學:對於一個位於 r₀ 的目標焦點,第 i 個換能器(位於 rᵢ)所需的相位延遲為 φᵢ = (2π/λ) × |r₀ − rᵢ|(模 2π)。通過疊加多個焦點的相位模式,還可以生成更複雜的聲場分佈,如渦旋聲束(Acoustic Vortex)用於旋轉粒子,或雙焦點勢阱用於拉伸液滴。以下 Python 程式碼示範了如何計算並可視化一個 16×16 陣列的焦點相位分佈。

Ultrasound Transducer Array
Fig 2. 超聲換能器相控陣列與焦點聲場壓力分佈模擬 Source: Unsplash

超聲陣列聚焦控制模擬

PhasedArrayBeamformer.py PYTHON 3.10 / ACOUSTICS
import numpy as np

class AcousticArray:
    def __init__(self, rows, cols, pitch_m, frequency_hz):
        self.rows = rows
        self.cols = cols
        self.pitch = pitch_m
        self.freq = frequency_hz
        self.c = 343.0  # Speed of sound in air (m/s)
        self.wl = self.c / self.freq
        self.transducers = self._build_grid()

    def _build_grid(self):
        """Generate transducer positions on a rectangular grid."""
        xs = np.arange(0, self.cols) * self.pitch
        ys = np.arange(0, self.rows) * self.pitch
        xg, yg = np.meshgrid(xs, ys)
        positions = np.stack([xg.ravel(), yg.ravel(), np.zeros_like(xg.ravel())], axis=-1)
        return positions

    def focus_at(self, target_x, target_y, target_z):
        """
        Compute phase delays to focus at a 3D point.
        Returns: phase_shift array (radians) for each transducer.
        """
        target = np.array([target_x, target_y, target_z])
        dists = np.linalg.norm(self.transducers - target, axis=1)
        # Phase shift = 2π * distance / wavelength (mod 2π)
        phases = (2 * np.pi * dists / self.wl) % (2 * np.pi)
        return phases

    def simulate_pressure_field(self, phases, grid_points):
        """
        Simulate the pressure amplitude at given grid points
        using Rayleigh-Sommerfeld diffraction integral (far-field).
        """
        pressure = np.zeros(len(grid_points), dtype=np.complex128)
        for i, pt in enumerate(grid_points):
            r_vec = pt - self.transducers
            dists = np.linalg.norm(r_vec, axis=1)
            # Spherical wave with phase delay
            pressure[i] = np.sum(np.exp(1j * (2 * np.pi * dists / self.wl - phases)) / dists)
        return np.abs(pressure)

# Example: 16x16 array at 40 kHz, focus at (0, 0, 0.2) meters
arr = AcousticArray(rows=16, cols=16,
                      pitch_m=0.01, frequency_hz=40000)
phases = arr.focus_at(target_x=0.0, target_y=0.0, target_z=0.2)
# Pressure field can be visualized as 2D slice for analysis
# pressure_xy = arr.simulate_pressure_field(phases, scan_grid)

結語:無接觸操控的無限可能

聲懸浮技術正在從實驗室走向工業應用。在製藥領域,聲懸浮用於無容器結晶篩選,消除容器壁對晶核形成的干擾;在分析化學中,它提供了一種即時、可重構的樣本載台,無需昂貴的微流控晶片;在材料科學中,聲場被用來操控沸騰中的氣泡以強化傳熱。隨著超聲換能器陣列的成本持續下降與 FPGA 波束成形控制器的普及,聲懸浮有望在未來十年內成為實驗室自動化與先進製造領域的標準配置。

免責聲明 (Disclaimer):
本文內容僅供技術探討與科學教育參考。文中提及之聲懸浮系統性能數據(懸浮力、粒徑範圍等)以學術文獻為參考,實際系統表現因換能器選型、驅動電路與環境條件而異。實施相關實驗應遵守當地實驗室安全規範,注意超聲暴露防護。