预畸变双线性变换

先搞懂核心前提:我们做离散化的终极目标

把我们在连续域(仿真 / 理论设计)里做好的滤波器、PID 控制器等,1:1 复刻到 MCU 里(离散时域),让 MCU 实际跑出来的效果,和仿真设计的完全一致,没有偏差。

所有离散化方法的优劣,都围绕「复刻的准确度稳定性计算量」这三个核心指标展开。

预畸变的基础

预畸变是为了解决普通双线性变换的频率畸变缺陷。

双线性变换的时域本质:梯形积分(比前向欧拉更准)

积分方法 时域近似逻辑 离散公式(积分项) 精度
前向欧拉 用「矩形面积」近似积分 I(k)=I(k−1)+e(k)⋅Ts​ 一阶精度,误差大
双线性变换 用「梯形面积」近似积分 I(k)=I(k−1)+(e(k)+e(k−1))​⋅Ts​/2 二阶精度,误差小 1 个数量级

梯形面积显然比矩形面积更接近真实的积分值,这就是双线性变换比前向欧拉精度更高的核心原因。

从梯形积分,推导出双线性变换的核心映射公式

连续域的积分运算,用拉普拉斯算子表示为:

把梯形积分的离散公式做 z 变换,整理后可以得到s 域(连续)→z 域(离散)的映射关系,这就是双线性变换的核心公式:

普通双线性变换的致命缺陷:频率畸变

双线性变换的精度、稳定性都远超前向欧拉,但它有一个天生的问题:连续域和离散域的频率映射是非线性的,会导致频率畸变

频率畸变的数学本质

连续域的频率用 角频率Ω表示(单位 rad/s,Ω=2πf,f是 Hz),对应 s 域的虚轴s=jΩ; 离散域的频率用 角频率ω表示,对应 z 域单位圆上的点

把s=jΩ和代入双线性变换公式,化简后可以得到连续频率和离散频率的映射关系

这个公式是理解频率畸变和预畸变的核心,我们拆解它的含义:

当Ω很小(也就是目标频率f远小于采样频率fs​=1/Ts​)时,tan(x)≈x,此时Ω≈ω,几乎没有畸变;

当Ω变大(目标频率接近采样频率的 1/5 以上)时,tan(x)会比x大很多,此时连续频率和离散频率出现严重的非线性偏差,也就是频率畸变

比如:

结论:不用预畸变,连续域设计 1kHz,离散后实际只有 968Hz,比目标值偏低(因为双线性变换的压缩效应),这就是频率畸变。

所以怎么让离散后刚好得到 1kHz?

我们的目标是让最终的离散频率ω=6283rad/s(1kHz),现在反向代入公式,求需要用多大的连续域频率Ω设计,才能让压缩后的结果刚好是 1kHz:

这就是预畸变的本质:我们提前把连续域的设计频率,从 1kHz 放大到 1034Hz,让双线性变换的压缩效应,刚好把它压回我们想要的 1kHz。

应用场景

一阶低通滤波器

预畸变双线性变换后的离散差分方程

也就是说,如果希望离散域截止频率为1khz,那么通过这个1khz反推,得到反向畸变后的连续域截止频率,得到预畸变后的连续域截止频率后,带入正向畸变,就得到了所需要的离散域1khz截止频率

位置式 PID 控制器

连续域标准 PID 公式

预畸变双线性变换后的离散差分方程

比如在PMSM电流环的PI参数整定中:

微分项本身已经完全匹配双线性变换的全局频率映射,不存在额外的频率畸变,因此不需要对Kd​单独做预畸变修正:

但是Kp,Ki的整定直接决定了最终的截止频率,所以通过对Kp,Ki进行预畸变,从而实现对PID算法的预畸变:

连续域 Kp、Ki 与系统带宽的绑定关系(PMSM为例子):

PMSM 电流环按典型 I 型系统设计时,为了实现最优阻尼比ξ=0.707,会令控制器零点抵消被控对象的极点,即:

又因为PI 控制器 + 电机被控对象的开环传递函数,为控制器与被控对象的乘积::

将公式 (5) 代入公式 (4),开环传递函数可以化简为最简形式:

系统的闭环传递函数为:

这是一个典型的一阶惯性系统,闭环带宽(截止频率)等于系统的转折频率,即:

结合公式 (5) 的零点极点对消条件,我们可以直接得到Kp、Ki 与目标带宽的一一对应公式

什么情况下可以忽略这个畸变?

采样频率远大于目标带宽:采样频率fs​ ≥ 100× 目标带宽fc​,比如 10kHz 采样,目标带宽 50Hz,此时tan(x)≈x,畸变 < 1%,几乎无影响;

单环控制,无多环级联:不需要严格的带宽配比,仅单环控制,对动态性能要求不高;

对稳定性、鲁棒性要求低:比如简单的风机、水泵控制,不需要精准的动态性能。

PID算法通过双线性变化,频率发生了畸变,会出现什么问题?

闭环带宽直接决定了系统的响应速度:带宽越高,阶跃响应的上升时间越短,跟随指令的速度越快。频率畸变导致实际带宽低于设计值,系统的响应速度会直接变慢。

系统响应速度变慢,动态性能不达标;多环级联的带宽配比被打破,系统易震荡甚至失稳;抗干扰能力大幅下降;仿真与实际运行效果严重脱节等

相关推荐
无垠的广袤2 小时前
【Titan RA8P1 Board】J-Link 调试
单片机·嵌入式·开发板·调试器·jlink
wuweijianlove2 小时前
算法复杂度估算的实验建模与可视化表达的技术6
算法
执笔画流年呀2 小时前
7大排序算法
java·算法·排序算法
AI成长日志2 小时前
【算法学习专栏】动态规划基础·中等两题精讲(198.打家劫舍、322.零钱兑换)
学习·算法·动态规划
计算机安禾2 小时前
【数据结构与算法】第28篇:平衡二叉树(AVL树)
开发语言·数据结构·数据库·线性代数·算法·矩阵·visual studio
测试_AI_一辰2 小时前
AI 如何参与 Playwright 自动化维护:一次自动修复闭环实践
人工智能·算法·ai·自动化·ai编程
未来之窗软件服务3 小时前
算法设计—计算机等级考试—软件设计师考前备忘录—东方仙盟
算法·软件设计师·计算机等级考试
未来之窗软件服务3 小时前
哈夫曼树构造—计算机等级考试—软件设计师考前备忘录—东方仙盟
算法·软件设计师·计算机等级考试·仙盟创梦ide·东方仙盟
SUNNY_SHUN3 小时前
VLM走进农田:AgriChat覆盖3000+作物品类,607K农业视觉问答基准开源
论文阅读·人工智能·算法·开源