4. 离散化与采样:连续系统离散化方法及采样周期选择对算法性能的影响

数字控制器与模拟被控对象之间必然存在一个“翻译”过程:将连续时间域中的微分方程、传递函数或状态空间模型,转换为数字处理器能够逐拍执行的差分方程。这一过程称为离散化,而离散化的质量直接决定了数字控制系统的稳定性、动态响应与稳态精度。本章围绕三种经典离散化方法——前向欧拉、后向欧拉与双线性变换(Tustin变换),深入剖析其数学原理、适用边界与工程代价,并系统讨论采样周期选择对控制算法性能的深层影响。理解这些内容,是后续进行代码实现、参数整定与算法优化的前提。

连续系统离散化与采样周期选择——知识框架与工程链路 连续系统 G(s) / 微分方程 离散化方法(核心决策区) 前向欧拉 s ≈ (z-1)/T 简单但可能不稳定 后向欧拉 s ≈ (z-1)/(Tz) 稳定但频率畸变 双线性变换 s ≈ 2(z-1)/(T(z+1)) 精度高,最常用 选择依据:系统阶次、采样频率、稳定性要求、频率范围 工程经验:双线性变换优先,欧拉法用于快速原型 采样周期 T T 过大 · 相位滞后增加 · 稳定性裕度下降 · 信息丢失 T 过小 · 计算负担增加 · 数值灵敏度问题 · 字长效应凸显 离散化输出:差分方程 / 数字滤波器 / 状态空间离散模型 用于嵌入式实现(C/C++、Verilog、Python) 香农采样定理:T ≤ π / ω_max(闭环带宽的 5~20 倍) 工程经验:T = 1/(10~20)·f_闭环带宽

4.1 离散化的本质与数学基础

离散化的本质,是用一个差分方程去逼近微分方程的行为。连续系统通常以拉普拉斯变换传递函数 G(s) 或状态空间方程描述,而数字控制器只能处理离散序列。从数学角度看,离散化是在“给定采样周期 T”的前提下,寻找一个脉冲传递函数 G(z),使得在采样时刻 kT 处,G(z) 的输出序列尽可能逼近 G(s) 在相同采样时刻的响应。

这一逼近过程并非唯一。不同的数值积分方法对应不同的 s 域到 z 域的映射关系,从而产生不同的离散模型。三种最常用的映射关系如下表所示:

方法 映射关系 稳定性保持 频率响应保真度 典型应用场景
前向欧拉 s = (z-1)/T 不保证(可能将稳定连续系统映射为不稳定离散系统) 低频近似,高频畸变严重 快速原型、教学演示、对稳定性要求不高的场合
后向欧拉 s = (z-1)/(T·z) 保证(s 左半平面映射到 z 平面单位圆内) 频率压缩,高频段畸变明显 积分环节离散化、鲁棒性优先的场合
双线性变换 s = 2(z-1)/(T(z+1)) 保证(s 左半平面映射到 z 平面单位圆内) 全频段非线性压缩,但可通过预畸变校正 工业控制、滤波器设计、绝大多数工程场景

从数值积分的视角理解更为直观:前向欧拉相当于用矩形面积近似积分(显式方法),后向欧拉也是矩形近似但取右端点(隐式方法),双线性变换则等价于梯形面积近似(隐式方法)。梯形法在几何上更接近真实积分,因此精度更高。这一几何直觉在后续分析频率畸变时非常有用。

核心原理总结:离散化本质上是一个“数值积分”问题。前向欧拉是显式矩形法,后向欧拉是隐式矩形法,双线性变换是梯形法。梯形法的精度最高,且保持了连续系统的稳定性映射关系,因此成为工程首选。

4.2 三种离散化方法的详细推导与代码实现

4.2.1 前向欧拉法

前向欧拉法基于一阶导数的前向差分近似。对于连续传递函数中的 s,直接用 (z-1)/T 替换。例如,一个一阶惯性环节 G(s) = 1/(τs+1),替换后得到:

G(z) = 1 / (τ·(z-1)/T + 1) = T / (τ(z-1) + T)

对应的差分方程为:

y[k] = (T/(τ+T))·u[k] + (τ/(τ+T))·y[k-1]

前向欧拉的主要问题在于稳定性。连续系统的稳定条件是极点位于 s 左半平面,而映射 z = 1 + sT 将 s 左半平面映射到 z 平面上以 (1,0) 为圆心、半径为 1 的圆内。这意味着,如果连续系统的极点实部值较大(即系统响应较快),离散化后极点可能落在单位圆外,导致数字系统不稳定。实际使用中,前向欧拉要求采样周期 T 足够小,使得所有极点都落在稳定圆内。

4.2.2 后向欧拉法

后向欧拉法使用后向差分近似,映射关系为 s = (z-1)/(T·z)。同样对一阶惯性环节:

G(z) = 1 / (τ·(z-1)/(T·z) + 1) = T·z / (τ(z-1) + T·z)

差分方程为:

y[k] = (T/(τ+T))·u[k] + (τ/(τ+T))·y[k-1]

有趣的是,对于一阶系统,前向和后向欧拉得到的差分方程形式相同,但系数含义不同。后向欧拉的稳定性映射保证:s 左半平面映射到 z 平面单位圆内,因此稳定的连续系统离散化后必然稳定。然而,后向欧拉会压缩频率轴,导致离散模型的频率响应在高频段与连续系统偏差较大。例如,连续积分器 1/s 经后向欧拉离散化为 T·z/(z-1),其频率响应在接近奈奎斯特频率时幅值衰减比连续积分器更快。

4.2.3 双线性变换(Tustin 变换)

双线性变换采用梯形积分近似,映射关系为 s = 2(z-1)/(T(z+1))。这是工程中最常用的方法。对一阶惯性环节:

G(z) = 1 / (τ·2(z-1)/(T(z+1)) + 1) = T(z+1) / (2τ(z-1) + T(z+1))

整理后得到差分方程:

y[k] = (T/(2τ+T))·(u[k] + u[k-1]) + ((2τ-T)/(2τ+T))·y[k-1]

双线性变换的优点是:

  • 稳定性保持:s 左半平面精确映射到 z 平面单位圆内,连续稳定系统离散化后必然稳定。
  • 频率响应保真度较高:虽然存在频率压缩(s = jω 映射到 z = e^(jωT) 时,实际数字频率 ω_d 与连续频率 ω 满足 ω_d = (2/T)·arctan(ωT/2)),但在低频段(ωT << 1)近似线性。
  • 代数精度高:梯形积分对一阶系统精确,对高阶系统也有较好的逼近效果。

双线性变换的代价是频率畸变。如果需要在某个特定频率点(如谐振频率、截止频率)精确匹配,可以使用频率预畸变技术:先对连续频率进行预畸变处理,再进行双线性变换。具体做法是将连续传递函数中的 s 替换为 (ω_actual/ω_prewarp)·s,其中 ω_prewarp = (2/T)·tan(ω_actual·T/2)。

工程经验:在 PID 控制器离散化中,微分项 s 和积分项 1/s 分别使用双线性变换,可以得到无抖动的数字 PID。但要注意,纯微分项经双线性变换后会产生一个位于 z = -1 的零点,可能引入高频噪声放大,因此实际工程中通常对微分项做低通滤波处理。

4.3 采样周期选择对算法性能的影响

采样周期 T 是数字控制系统中最关键的“超参数”之一。它同时影响系统的稳定性、动态响应、抗干扰能力和计算负载。采样周期的选择需要遵循以下原则:

  1. 香农采样定理:采样频率 f_s = 1/T 必须大于信号最高频率分量的两倍。对于控制系统,这里的“信号”指的是闭环系统的带宽频率,而非被控对象的自然频率。工程上通常取 f_s 为闭环带宽的 10~20 倍。
  2. 相位裕度约束:采样保持器(ZOH)引入的相位滞后为 ωT/2。当 T 增大时,相位滞后增加,系统的相位裕度下降,可能导致系统振荡甚至不稳定。
  3. 计算负载约束:T 过小意味着单位时间内需要执行更多次控制算法,对处理器性能、ADC/DAC 转换速度、通信带宽都提出更高要求。
  4. 数值精度约束:T 过小时,差分方程中的系数可能变得非常接近 1 或 0,导致数值灵敏度增加,量化误差被放大。
采样周期 T 的变化 对系统性能的影响 典型问题 应对策略
T 过大(f_s < 10×带宽) 相位滞后显著,稳定裕度下降;信息丢失,无法响应快速扰动 系统振荡、超调增大、甚至不稳定 增大采样频率;或降低闭环带宽要求
T 适中(f_s = 10~20×带宽) 性能良好,相位滞后可接受,计算负载合理 无明显问题 保持当前设计
T 过小(f_s > 50×带宽) 计算负担增加;差分方程系数接近边界值;量化误差影响增大 控制量抖动、执行器磨损、数值不稳定 适当增大 T;或改用更高精度数据类型(如 double)

从频域角度理解,采样周期 T 决定了数字控制器的“有效频率范围”。当 T 较大时,奈奎斯特频率 f_N = 1/(2T) 较低,控制器无法有效处理高于 f_N 的频率分量。这会导致高频噪声混叠到低频段,污染控制信号。因此,在采样之前通常需要模拟抗混叠滤波器(低通滤波器),其截止频率应设置为 f_N 附近。

4.4 案例拆解:伺服电机速度环的离散化与采样周期优化

下面通过一个完整的工程案例,展示离散化方法选择和采样周期调整对实际系统性能的影响。

背景与约束:某直流伺服电机速度环,被控对象传递函数为 G(s) = 2 / (0.5s + 1)(0.05s + 1),即一个双惯性环节。控制器采用 PI 控制,连续域设计参数为 Kp = 3.5,Ki = 12。目标闭环带宽约为 20 rad/s。处理器为 32 位定点 MCU,ADC 采样精度 12 位,控制周期可配置为 1ms、2ms、5ms、10ms。

初始现象:工程师最初选择采样周期 T = 10ms(f_s = 100Hz),并使用前向欧拉法离散化 PI 控制器。调试时发现系统在转速 1500rpm 附近出现持续振荡,振荡频率约为 8Hz,且控制量输出存在明显抖动。

分析过程:

  1. 首先检查采样周期:闭环带宽 20 rad/s ≈ 3.2Hz,f_s = 100Hz 约为带宽的 31 倍,理论上满足采样定理。但考虑到速度环中存在机械谐振(约 25Hz),10ms 采样周期对应的奈奎斯特频率为 50Hz,谐振频率虽未混叠,但相位滞后已较明显。
  2. 检查离散化方法:前向欧拉法将 PI 控制器中的积分项 1/s 离散化为 T·z/(z-1),微分项(此处无)不涉及。前向欧拉对积分项的离散化在 T 较大时会产生较大相位误差。
  3. 计算相位裕度:连续 PI 控制器在穿越频率处提供约 55° 相位裕度。采样保持器引入的相位滞后为 ω_c·T/2 = 20 × 0.01 / 2 = 0.1 rad ≈ 5.7°。前向欧拉离散化额外引入约 3° 相位滞后。合计约 8.7°,理论上不应导致振荡。
  4. 进一步检查发现,前向欧拉法离散化后的积分器极点位于 z = 1,但零点位置偏移导致积分增益在高频段被放大,实际等效的相位裕度下降更多。通过仿真对比,前向欧拉离散化后的系统相位裕度实际只有约 38°,接近临界稳定。

解决方案:

  1. 将离散化方法改为双线性变换,PI 控制器的离散化公式为:
积分项: I(z) = (T/2)·(z+1)/(z-1)·Ki
比例项: P(z) = Kp
数字 PI 输出: u[k] = Kp·e[k] + Ki·(T/2)·(e[k] + e[k-1]) + I[k-1]
  1. 将采样周期从 10ms 缩短至 2ms(f_s = 500Hz),此时采样保持器相位滞后仅为 20 × 0.002 / 2 = 0.02 rad ≈ 1.1°。
  2. 在 ADC 前端增加一阶 RC 低通滤波器,截止频率 100Hz,抑制高频噪声混叠。

结果对比:

配置 相位裕度 超调量 调节时间 控制量抖动
前向欧拉 + T=10ms 38° 32% 0.8s 明显
双线性 + T=10ms 49° 18% 0.5s 轻微
双线性 + T=2ms 54° 8% 0.3s 无

风险与代价:缩短采样周期至 2ms 后,MCU 的中断负载从 10% 上升至 45%,但仍在可接受范围内。如果进一步缩短至 0.5ms,则中断负载将超过 80%,且 12 位 ADC 的量化噪声在高速采样下会引入新的抖动。因此,2ms 是本系统的最优折中。

复盘经验:

  • 前向欧拉法在采样周期较大时,其相位误差不可忽略,应避免在工程产品中使用。
  • 采样周期的选择不应仅满足香农定理,还要考虑相位裕度预算和计算负载。
  • 离散化方法改变后,控制器的增益可能需要重新微调,因为等效的连续频率响应发生了变化。

4.5 常见误区与总结复盘

误区一:认为采样频率越高越好。过高的采样频率会导致:① 计算负载增加,可能超出处理器能力;② 差分方程系数接近 1 或 0,定点实现时量化误差放大;③ 高频噪声被完整采样,反而需要更强的滤波。采样频率应匹配系统带宽,而非盲目追求高采样率。
误区二:所有环节都用同一种离散化方法。实际工程中,积分环节、微分环节、惯性环节对离散化方法的敏感度不同。例如,纯积分器用前向欧拉可能不稳定,但用后向欧拉或双线性变换则稳定。建议统一使用双线性变换,但对微分项额外增加低通滤波。
误区三:忽略零阶保持器(ZOH)的影响。在连续系统仿真中,ZOH 的相位滞后不可忽略。如果使用 MATLAB 的 c2d 函数,默认采用 ZOH 离散化,这与双线性变换得到的模型不同。实际系统输出由 DAC 保持,因此 ZOH 效应是真实存在的,应在仿真中体现。

总结复盘:离散化方法的选择本质上是“精度 vs 复杂度”的权衡。双线性变换在精度和稳定性之间取得了最佳平衡,是工程首选。采样周期的选择则应遵循“带宽匹配”原则:f_s = 10~20 × 闭环带宽,同时兼顾计算负载和数值精度。在实际项目中,建议通过仿真对比不同离散化方法和采样周期组合下的相位裕度、超调量和调节时间,以数据驱动的方式确定最优参数。

最后需要强调的是,离散化并非一劳永逸的步骤。当系统参数变化、采样周期调整或处理器升级时,应重新审视离散化模型的准确性。在代码实现层面,建议将离散化系数作为可配置参数,便于在线调整和优化。