3、迟滞非线性问题:迟滞现象成因、Preisach模型、Prandtl-Ishlinskii模型
好,咱们今天聊点硬核的。压电陶瓷的精度提升,绕不开一个“老大难”——迟滞非线性。
说实话,我刚开始接触压电微位移平台那会儿,被这个迟滞坑得不轻。明明给同样的电压,回来却不在同一个位置。你想想看,做精密定位,这怎么行?
这一节,我就把迟滞的来龙去脉、还有两个经典模型——Preisach和Prandtl-Ishlinskii,掰开了讲清楚。
3.1 迟滞现象:它到底是怎么来的?
迟滞,说白了就是“记忆效应”。压电陶瓷内部的电畴翻转,不是瞬间完成的。你给它加电压,一部分电畴转向了,但还有一部分“懒洋洋”地不动。等你把电压降下来,那些转过去的电畴又不愿意完全回来。
为什么会这样?
- 电畴的摩擦与钉扎:电畴在翻转过程中,会受到晶格缺陷、杂质等“钉扎点”的阻碍。就像你推一块石头,石头在粗糙地面上走走停停。
- 非180°畴壁运动:压电陶瓷中,除了180°畴壁,还有90°、71°等非180°畴壁。这些畴壁运动时会产生内应力,导致位移与电压之间不是一一对应的关系。
- 材料本身的非线性:压电系数d33并不是常数,它随电场强度变化。电场强了,d33会饱和,这也是迟滞的一个来源。
核心结论:迟滞是压电陶瓷的固有属性,无法消除,只能建模补偿。你越早接受这个事实,就越早能搞定它。
我在一个纳米定位项目中,遇到过迟滞导致重复定位精度差了30%的情况。当时我试过各种PID参数,都没用。后来才明白,不解决迟滞,PID就是瞎调。
3.2 Preisach模型:经典中的经典
Preisach模型最早是用来描述磁滞的,后来被移植到压电领域。它的核心思想很简单:把整个迟滞系统看成无数个“基本迟滞单元”的叠加。
每个基本单元,就是一个简单的“开关”:
- 输入电压超过某个阈值α,单元“打开”,输出为1。
- 输入电压低于某个阈值β,单元“关闭”,输出为0。
- 在α和β之间,单元保持之前的状态。
整个系统的输出,就是所有这些单元输出的加权和。
我的经验:Preisach模型精度高,但计算量大。如果你用DSP或者FPGA做实时控制,要小心内存和计算时间。我曾经在一个项目中,用了100×100的Preisach网格,结果控制周期直接超了,后来压缩到50×50才勉强跑起来。
Preisach模型的数学表达是这样的:
f(t) = ∬ μ(α,β) · γ[α,β](u(t)) dα dβ
其中:
- f(t) 是输出位移
- u(t) 是输入电压
- μ(α,β) 是密度函数,需要实验辨识
- γ[α,β] 是基本迟滞算子
实际应用中,我们通常把α-β平面离散化,变成网格。每个网格点对应一个权重,通过实验数据来拟合这些权重。
3.3 Prandtl-Ishlinskii模型:更轻量级的方案
Preisach模型虽然强大,但参数太多。于是,Prandtl-Ishlinskii(PI)模型应运而生。它用更少的参数,实现了不错的精度。
PI模型的核心是“Play算子”。你可以把它想象成一个有间隙的弹簧:
- 输入变化小时,输出不变(间隙效应)。
- 输入变化超过间隙,输出才开始跟随。
多个不同阈值的Play算子加权叠加,就能拟合出复杂的迟滞曲线。
PI模型的数学形式:
f(t) = w0 · u(t) + Σ wi · Pi[ri](u(t))
其中:
- w0 是线性增益
- wi 是第i个算子的权重
- Pi[ri] 是阈值为ri的Play算子
注意:PI模型对对称迟滞拟合很好,但压电陶瓷的迟滞往往是非对称的(上升和下降曲线不一样)。这时候,你需要用“广义PI模型”或者“修正PI模型”。我吃过这个亏,一开始用标准PI模型,误差一直降不下来,后来换成广义PI才搞定。
3.4 两个模型的对比
我整理了一个表格,方便你对比:
| 特性 | Preisach模型 | Prandtl-Ishlinskii模型 |
|---|---|---|
| 参数数量 | 多(网格点数量) | 少(通常10-20个算子) |
| 精度 | 高(可逼近任意形状) | 中等(对对称迟滞好) |
| 计算复杂度 | 高(需要查表和插值) | 低(解析计算) |
| 逆模型求取 | 困难(需要数值方法) | 容易(有解析逆) |
| 适用场景 | 高精度离线补偿 | 实时控制、嵌入式系统 |
3.5 知识体系结构图
下面这张图,帮你理清本章的知识脉络:
3.6 我的建议
如果你刚开始做压电迟滞补偿,我建议你先从PI模型入手。原因很简单:
- 实现快:代码量小,调试方便。
- 逆模型好求:PI模型的逆模型也是PI形式,可以直接用于前馈补偿。
- 够用:对于大多数微位移平台,PI模型能把迟滞误差从15%降到2%以内。
等你对迟滞有了感觉,再上Preisach模型去抠那最后的1%精度。
避坑指南:我曾经在一个项目中,直接用PI模型的逆模型做开环补偿,结果发现补偿后的误差反而变大了。后来排查才发现,是我用的Play算子阈值分布不合理。记住,阈值要覆盖整个输入范围,而且最好在中间区域密一些,两端疏一些。
好了,这一节就到这里。迟滞非线性是压电控制的核心难点,但也是你展现技术功底的地方。把模型吃透,你的微位移平台精度就能上一个台阶。