摘要
压电执行器位移不足时,不要先提高驱动电压。正确顺序是:先确认位移传感器和测量方向,再比较命令电压与执行器负载端实际电压,然后分别测自由状态位移和安装后的工作位移。若静态位移正常、频率升高后位移变小,应重点检查压电负载电容、驱动器峰值电流、输出摆幅和线缆;若自由位移正常、安装后变小,应检查外部负载、预紧、结构刚度、平行度和侧向力。
压电执行器是把电场转换为微小机械位移的器件。实际位移同时受驱动电压、波形、频率、温度、外部刚度、预紧和测量链影响。任何位移结论都必须给出执行器对象、负载端实测电压、频率、负载、安装方式、传感器、采样率和统计方法。
本文Python代码用确定性教学数据计算电压达成率、相对位移、单位实测电压位移和传感器带宽比。代码不连接真实硬件,示例结果不代表鸿芯微控或任何具体产品的性能。
1. 压电执行器位移不足有哪几种表现
“位移不足”不是单一故障。先把现象分成静态位移不足、动态位移衰减、安装后位移下降和测量链误差,才能决定下一步测什么。
| 现象 | 优先检查 | 最有区分度的测量 |
|---|---|---|
| 低频或准静态位移也偏小 | 负载端电压、极性、行程定义、传感器标定 | 同步测实际电压和位移 |
| 低频正常,频率升高后变小 | 驱动器电流能力、压电电容、线缆和波形 | 比较不同频率下的负载端电压幅值 |
| 自由状态正常,安装后变小 | 外部刚度、预紧、平行度、摩擦和侧向力 | 同一执行器做自由和安装后的成对测试 |
| 只在某个传感器上变小 | 传感器量程、带宽、滤波、安装和单位换算 | 用第二测量原理或标准位移源交叉核对 |
| 位移随时间缓慢变化 | 蠕变、温度、结构热漂移和预紧变化 | 记录电压、位移和温度的同一时间轴 |
2. 从命令到位移的四段证据链
排查可以沿信号链分成四段。每一段都要保留输入和输出,避免在没有证据时把问题归到压电陶瓷本体。
- 命令段:上位机或控制器发送的电压、波形和频率是否正确。
- 驱动段:驱动器在真实压电负载和线缆条件下,输出幅值是否达到命令。
- 机械段:执行器自由状态和安装状态的位移差异,是否与负载、预紧和结构刚度有关。
- 测量段:位移传感器量程、采样率、带宽、滤波和安装方向是否适合当前信号。
| 记录量 | 建议定义 | 不能省略的条件 |
|---|---|---|
| 电压达成率 | 负载端实测电压除以命令电压 | 必须使用同一种幅值定义,例如峰值对峰值 |
| 相对位移 | 当前位移除以低频自由状态参考位移 | 参考测试必须是同一执行器和同一测量链 |
| 单位电压位移 | 实测位移除以负载端实测电压 | 只能在相同方向、负载和波形条件下比较 |
| 传感器带宽比 | 传感器带宽除以测试频率 | 该比值只用于记录,不自动代表测量合格 |
3. 为什么频率升高后位移会变小
压电执行器对驱动器主要表现为容性负载。电压变化越快,需要的瞬时电流通常越大。对正弦稳态的初步估算,电流幅值与电容、频率和电压幅值的乘积成正比。对三角波、阶跃或任意波形,应根据电压变化率和驱动器数据手册计算,不能把正弦公式直接套用。
当驱动器达到电流限制、压摆率限制或输出保护时,负载端波形可能幅值下降、边沿变缓或发生畸变。此时上位机命令仍然正确,但压电执行器没有得到预期电压。高压探头、差分探头、示波器输入范围和接地方式必须满足驱动器要求。
正弦稳态的教学估算:
电流幅值 = 2 x 3.1415926 x 频率 x 电容 x 电压幅值
适用边界:
1. 只用于正弦稳态的初步估算
2. 电容应在相关频率和温度下确认
3. 不代表驱动器实际峰值电流或热设计结论
4. 真实输出必须在负载端测量
4. 位移不足的测试架构
同步记录负载端电压和位移,才能区分驱动、电气负载、机械安装和测量链问题。
5. 软件、硬件、编译及测试条件
| 类别 | 必须记录的内容 |
|---|---|
| 压电执行器 | 型号、样品编号、额定电压边界、安装方向、预紧方式和温度状态 |
| 驱动器与线缆 | 输出范围、电流限制、波形、频率、线缆长度和负载端实际电压 |
| 位移测量 | 传感器原理、量程、分辨率、带宽、校准状态、采样率和滤波设置 |
| 机械条件 | 自由状态或安装状态、轴向负载、外部刚度、夹具平行度和侧向约束 |
| 测试序列 | 先低压低频确认,再按批准范围逐步改变一个变量;每个工况保留原始时间序列 |
| 本文软件 | Windows 11 64位,Python 3.12,仅使用csv、argparse、json和statistics标准库 |
| 代码状态 | 可运行的教学统计示例,不连接驱动器、传感器或真实压电执行器 |
6. 三阶段测试方法
6.1 阶段A:验证负载端实际电压
使用合适的探头在驱动器真实负载下测量输出。至少记录命令电压、实测幅值、波形、频率、负载电容或执行器对象和线缆。静态表读数不能代替动态波形。
6.2 阶段B:建立低频自由位移参考
在制造商允许的机械边界内,用低频或准静态条件测量自由状态位移。保持传感器方向、量程和滤波一致。该参考只用于同一执行器的相对比较,不应发布为通用产品规格。
6.3 阶段C:安装后逐项增加约束
安装后按预紧、轴向负载、外部刚度和频率逐项测试,每次只改变一个变量。若实际电压保持不变而位移下降,机械约束或测量链的优先级上升;若实际电压也下降,应先处理驱动器和电气负载。
| 阶段 | 保持不变 | 改变变量 | 主要输出 |
|---|---|---|---|
| A 电气验证 | 执行器、线缆、探头 | 频率或命令幅值 | 负载端实测电压和波形 |
| B 自由参考 | 低频、电压、传感器 | 不改变或只做重复测量 | 参考位移和重复性 |
| C 安装验证 | 实测电压、传感器、温度 | 预紧、负载、刚度或频率 | 相对位移和单位电压位移 |
7. Python代码:对比电压达成率和相对位移
CSV输入字段包括工况名称、命令电压、负载端实测电压、位移、频率、轴向负载和传感器带宽。程序不会自动给出合格或不合格,因为阈值必须来自具体产品规格和测试计划。
import argparse
import csv
import json
import statistics
REQUIRED = (
"condition", "command_v", "measured_v_peak", "displacement_um",
"frequency_hz", "load_n", "sensor_bandwidth_hz"
)
def analyse(rows, baseline_condition):
if not rows:
raise ValueError("no rows")
parsed = []
for row in rows:
item = {"condition": row["condition"]}
for key in REQUIRED[1:]:
item[key] = float(row[key])
if item["command_v"] <= 0 or item["measured_v_peak"] <= 0:
raise ValueError("voltage must be positive")
if item["frequency_hz"] <= 0 or item["sensor_bandwidth_hz"] <= 0:
raise ValueError("frequency and bandwidth must be positive")
parsed.append(item)
baseline_rows = [
item for item in parsed if item["condition"] == baseline_condition
]
if not baseline_rows:
raise ValueError("baseline condition not found")
baseline_displacement = statistics.fmean(
item["displacement_um"] for item in baseline_rows
)
if baseline_displacement == 0:
raise ValueError("baseline displacement cannot be zero")
output = []
for item in parsed:
output.append({
"condition": item["condition"],
"voltage_achievement_percent":
item["measured_v_peak"] / item["command_v"] * 100.0,
"relative_displacement_percent":
item["displacement_um"] / baseline_displacement * 100.0,
"displacement_per_measured_volt_um_per_v":
item["displacement_um"] / item["measured_v_peak"],
"sensor_bandwidth_ratio":
item["sensor_bandwidth_hz"] / item["frequency_hz"],
"load_n": item["load_n"],
})
return output
def read_csv(path):
with open(path, newline="", encoding="utf-8") as handle:
reader = csv.DictReader(handle)
missing = [key for key in REQUIRED if key not in (reader.fieldnames or [])]
if missing:
raise ValueError("missing columns: " + ",".join(missing))
return list(reader)
def self_test():
rows = [
{"condition": "free_reference", "command_v": "100",
"measured_v_peak": "99", "displacement_um": "9.9",
"frequency_hz": "1", "load_n": "0",
"sensor_bandwidth_hz": "1000"},
{"condition": "installed", "command_v": "100",
"measured_v_peak": "98", "displacement_um": "8.7",
"frequency_hz": "1", "load_n": "20",
"sensor_bandwidth_hz": "1000"},
{"condition": "dynamic", "command_v": "100",
"measured_v_peak": "82", "displacement_um": "7.1",
"frequency_hz": "500", "load_n": "20",
"sensor_bandwidth_hz": "5000"},
]
result = analyse(rows, "free_reference")
assert len(result) == 3
assert abs(result[0]["voltage_achievement_percent"] - 99.0) < 1e-12
assert abs(result[1]["relative_displacement_percent"] - 87.8787878788) < 1e-9
assert abs(result[2]["sensor_bandwidth_ratio"] - 10.0) < 1e-12
print("SELF_TEST_OK")
print(json.dumps(result, indent=2))
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("csv_path", nargs="?")
parser.add_argument("--baseline", default="free_reference")
parser.add_argument("--self-test", action="store_true")
args = parser.parse_args()
if args.self_test:
self_test()
elif args.csv_path:
print(json.dumps(
analyse(read_csv(args.csv_path), args.baseline), indent=2
))
else:
parser.error("provide csv_path or --self-test")
python piezo_displacement_check.py --self-test
python piezo_displacement_check.py test_data.csv --baseline free_reference
自检数据包含自由参考、安装状态和动态状态三个教学工况。真实项目应把每个工况的多次测量分别保存,不能只把平均值填入CSV后删除原始时间序列。
8. 教学数据与结果判读
| 教学工况 | 命令电压 | 实测电压 | 位移 | 频率 | 轴向负载 |
|---|---|---|---|---|---|
| 自由参考 | 100 V | 99 V | 9.9 um | 1 Hz | 0 N |
| 安装状态 | 100 V | 98 V | 8.7 um | 1 Hz | 20 N |
| 动态状态 | 100 V | 82 V | 7.1 um | 500 Hz | 20 N |
这组数据是人为构造的代码自检输入。自由参考的电压达成率为99.0%。安装状态相对位移约为87.88%。动态状态的传感器带宽比为10.0,负载端电压达成率为82.0%。这些数字只用于验证计算过程,不能用来推断真实驱动器或压电执行器的能力。
工程判读时,应先看动态工况的负载端电压是否下降。如果电压明显下降,不能把全部位移损失解释为机械负载。若电压保持稳定而安装后位移下降,再检查外部刚度、预紧、平行度、摩擦和侧向约束。若第二种传感器给出不同结果,应先解决测量链一致性。
位移排查先看实际电压,再比较自由状态和安装状态,最后做单变量验证。
9. 常见失效场景与调试建议
| 现象 | 优先检查 | 验证方法 |
|---|---|---|
| 命令电压正常,负载端电压变小 | 驱动器电流限制、压摆率、线缆和负载电容 | 降低频率后复测波形,核对驱动器数据手册 |
| 实际电压正常,自由位移仍偏小 | 测量方向、传感器标定、温度和执行器状态 | 更换测量原理或标准位移源做交叉验证 |
| 自由位移正常,安装后明显下降 | 外部刚度、预紧、平行度、摩擦和侧向力 | 按安装步骤逐项增加约束并保存成对结果 |
| 高频位移波形失真 | 驱动输出失真、机械共振和传感器带宽 | 同步查看电压、位移和频谱,逐步降低频率 |
| 重复安装后结果差异很大 | 预紧一致性、夹具接触、传感器位置和线缆 | 规定装配扭矩或力值并做多次拆装重复试验 |
不能通过超过额定电压、取消必要预紧或强行夹紧来“补回”位移。这些操作可能导致介质击穿、拉应力、侧向载荷或机械损伤。任何调整必须受具体执行器和驱动器规格约束。

10. 常见问题
10.1 压电执行器位移不足,先调电压还是先检查负载
先测负载端实际电压,再比较自由位移和安装后位移。没有这两组数据时,无法区分电气输出不足和机械约束过强。
10.2 上位机显示100 V,为什么执行器不一定得到100 V
上位机显示通常是命令值。驱动器在容性负载、高频和长线缆条件下可能受电流、压摆率或保护限制,因此需要在负载端测实际波形。
10.3 频率升高后压电陶瓷位移变小正常吗
可能发生,但不能直接判定正常。应检查驱动电压幅值是否下降、机械系统是否接近共振、传感器带宽是否足够,并与具体产品规格比较。
10.4 预紧越大,压电执行器工作越稳定吗
不是。预紧用于维持受压和机械接触,但过大预紧会占用力和位移裕量,甚至损伤器件。预紧值必须来自具体产品和结构设计要求。

10.5 为什么安装夹具会让压电执行器位移变小
夹具和外部机构具有刚度并形成反力,装配还可能引入摩擦、偏载和侧向约束。应通过自由和安装后的成对测试定量比较。
10.6 位移传感器采样率高就代表测量准确吗
不代表。采样率、模拟带宽、滤波、量程、噪声、标定和安装方向共同影响结果。高采样率不能补偿传感器带宽不足或标定错误。
10.7 可以用单位电压位移判断压电执行器损坏吗
不能单独判断。该指标还受负载、温度、频率、预紧、迟滞和测量链影响。损坏判断需要电气、机械和重复测量证据。
10.8 Python代码输出的相对位移可以作为产品规格吗
不能。程序只比较输入数据。正式规格必须绑定具体型号、样本、仪器、环境、负载、统计方法和审批状态。

11. 结论
压电执行器位移不足的有效排查方法,是沿命令信号、驱动器输出、压电执行器机械状态和位移测量链逐段建立证据。先测负载端实际电压,再比较低频自由位移和安装后位移,可以快速区分驱动能力、容性负载、外部刚度、预紧和传感器问题。
本文代码把电压达成率、相对位移、单位电压位移和传感器带宽比放在同一结果中,便于记录不同工况。教学数据不代表产品性能,正式测试仍需真实型号、样本编号、额定边界、原始时间序列和测量不确定度。
参考资料
- IEEE Std 176-1987,IEEE Standard on Piezoelectricity,Institute of Electrical and Electronics Engineers。https://ieeexplore.ieee.org/document/26560
- Physik Instrumente,Piezo Technology,压电技术原理资料。https://www.physikinstrumente.com/en/expertise/technology/piezo-technology
- PI Ceramic,Piezo Technology,压电陶瓷原理与应用资料。https://www.piceramic.com/en/expertise/piezo-technology/
- ISO 17025:2017,General requirements for the competence of testing and calibration laboratories,International Organization for Standardization。https://www.iso.org/standard/66912.html
- NIST Technical Note 1297,Guidelines for Evaluating and Expressing the Uncertainty of NIST Measurement Results,National Institute of Standards and Technology。https://www.nist.gov/pml/nist-technical-note-1297
- Python Software Foundation,csv、argparse、json和statistics标准库文档,Python 3.12。https://docs.python.org/3.12/library/index.html
正式项目还应引用具体压电执行器、驱动器、位移传感器、探头和夹具的当前规格书及校准文件。外部链接发布前需在当前网络环境复核。



342

被折叠的 条评论
为什么被折叠?



