2、速度环控制模型:从电机方程到PI传递函数

好,我们正式开始啃速度环的硬核部分。这一章我会把永磁同步电机(PMSM)的数学模型、速度环PI控制器的结构,以及传递函数推导串起来讲。你可能会觉得公式有点多,但别怕——我会用项目里的实际例子帮你理解。

2.1 永磁同步电机的数学模型

先说说PMSM的数学模型。说白了,我们要控制速度,就得先知道电机本身长什么样。我习惯从电压方程和转矩方程入手。

在d-q旋转坐标系下,PMSM的电压方程是这样的:

ud = Rs * id + Ld * (did/dt) - ωe * Lq * iq
uq = Rs * iq + Lq * (diq/dt) + ωe * (Ld * id + ψf)

其中:

  • ud、uq —— d轴和q轴电压
  • id、iq —— d轴和q轴电流
  • Rs —— 定子电阻
  • Ld、Lq —— d轴和q轴电感
  • ωe —— 电角速度
  • ψf —— 永磁体磁链

嗯,这里要注意:对于表贴式PMSM(SPMSM),Ld ≈ Lq,方程会简化不少。但内嵌式(IPMSM)就不一样了,Ld和Lq差别挺大,我在做某个高速主轴项目时就吃过这个亏——一开始按Ld=Lq算,结果电流环响应总是不对。

再看电磁转矩方程:

Te = 1.5 * p * [ψf * iq + (Ld - Lq) * id * iq]

这里p是极对数。对于SPMSM,Ld - Lq = 0,转矩就简化为:

Te = 1.5 * p * ψf * iq

你看,转矩和iq成正比——这就是为什么我们常说q轴电流就是转矩电流。我个人习惯把id=0作为控制策略,这样转矩控制就变成了纯粹的iq控制,简单又直观。

最后是运动方程:

Te - TL = J * (dωm/dt) + B * ωm

其中:

  • TL —— 负载转矩
  • J —— 转动惯量
  • B —— 阻尼系数
  • ωm —— 机械角速度(ωm = ωe / p)

这三个方程合在一起,就是PMSM的完整数学模型。你想想看,速度环要控制的ωm,最终是通过iq来调节的,中间还隔着电流环。所以速度环的响应速度,天生就受限于电流环的带宽。

2.2 速度环PI控制器结构

速度环最常用的就是PI控制器。为什么不用PID?我在实际项目中试过加微分项,但速度反馈信号通常有噪声,微分项会把噪声放大,反而让系统抖得厉害。所以,PI就够了。

速度环PI控制器的结构框图如下:

速度环PI控制器结构

速度给定 ω* → [误差计算] → [比例项 Kp] → [积分项 Ki/s] → [限幅] → 电流给定 iq*

速度反馈 ωm ← [编码器/霍尔] ← 电机

用公式表达就是:

iq* = Kp * (ω* - ωm) + Ki * ∫(ω* - ωm) dt

其中:

  • Kp —— 比例增益,决定响应速度
  • Ki —— 积分增益,消除稳态误差
  • ω* —— 速度给定
  • ωm —— 速度反馈

这里有个坑:积分项的输出必须做限幅。我曾经在一个包装机械项目里没加积分限幅,结果启动时积分项一直累加,输出饱和,电机直接冲过了头——嗯,从那以后我再也不敢省略限幅了。

2.3 速度环传递函数推导

好,现在我们来推导速度环的传递函数。这一步是为了后续整定参数时能有个理论依据。

先做几个简化假设:

  1. 电流环响应足够快,近似为1(即iq ≈ iq*)
  2. 忽略阻尼系数B(B通常很小)
  3. 空载运行(TL = 0)

在这些假设下,运动方程简化为:

Te = J * (dωm/dt)

而Te = Kt * iq,其中Kt = 1.5 * p * ψf是转矩常数。

所以:

Kt * iq = J * (dωm/dt)

拉普拉斯变换后:

Kt * Iq(s) = J * s * ωm(s)

得到电机本身的传递函数:

Gm(s) = ωm(s) / Iq(s) = Kt / (J * s)

你看,电机本身就是一个积分环节。

现在加入PI控制器,其传递函数为:

Gpi(s) = Kp + Ki / s = (Kp * s + Ki) / s

整个速度环的开环传递函数就是:

Gopen(s) = Gpi(s) * Gm(s) = (Kp * s + Ki) / s * Kt / (J * s)
         = Kt * (Kp * s + Ki) / (J * s²)

闭环传递函数为:

Gclose(s) = Gopen(s) / (1 + Gopen(s))
          = [Kt * (Kp * s + Ki) / (J * s²)] / [1 + Kt * (Kp * s + Ki) / (J * s²)]
          = Kt * (Kp * s + Ki) / (J * s² + Kt * Kp * s + Kt * Ki)

这个二阶系统的标准形式是:

Gclose(s) = (2 * ζ * ωn * s + ωn²) / (s² + 2 * ζ * ωn * s + ωn²)

对比系数可得:

参数 表达式 物理意义
自然频率 ωn √(Kt * Ki / J) 系统响应的固有频率
阻尼比 ζ Kp / 2 * √(Kt / (J * Ki)) 决定超调量和振荡程度

有了这个关系,我们就可以根据想要的响应特性来反推Kp和Ki了。比如,想要临界阻尼(ζ=1),就令:

Kp = 2 * √(J * Ki / Kt)

我个人习惯先根据系统带宽要求确定ωn,再根据超调量要求确定ζ,最后算出Kp和Ki。这样比盲目试凑要靠谱得多。

小技巧: 如果你不确定J的值,可以用自整定功能让控制器自动辨识。很多现代伺服驱动器都支持这个功能,我一般在项目初期先用自整定拿到一个初始值,再手动微调。

注意: 上面的推导忽略了电流环延迟、采样延迟和PWM延迟。在实际系统中,这些延迟会降低相位裕度,导致系统不稳定。所以理论算出来的Kp和Ki通常要打个7-8折,再根据实际响应微调。

2.4 知识体系总览

为了让你更直观地理解这一章的内容,我画了一张结构图:

速度环控制模型知识体系 速度环控制模型知识体系 PMSM数学模型 PI控制器结构 传递函数推导 电压方程 转矩方程 运动方程 比例项 Kp 积分项 Ki 输出限幅 开环传递函数 闭环传递函数 ωn 与 ζ 关系 核心逻辑:从电机物理模型 → 控制器结构 → 传递函数 → 参数整定依据 三者环环相扣,缺一不可

这张图把这一章的核心内容串起来了。从左到右,从物理模型到控制器,再到传递函数,最后都指向参数整定。你后面调参数的时候,随时可以回来看这张图,思路会清晰很多。