无感观测器理论模型(NTSM-SMO-PLL 与 SMO-PLL)
本文给出重汽重卡 115 kW IPMSM 无感观测器的完整理论模型。 两支观测器:NTSM-SMO-PLL (非奇异终端滑模,主方案)与 SMO-PLL (线性滑模,对照组)。 所有公式与 Simulink 模型
M9_Flux_weakening中的实现逐一对应。阅读说明 :第 3 节(NTSM-SMO)与第 6 节(PLL)从零基础写起,每引入一个概念都会先讲清"为什么需要它", 再给公式与推导。没接触过滑模控制或锁相环的读者可直接按顺序读完这两节。
0. 核心思路有没有变?------没有
| 环节 | NTSM-SMO | SMO | 是否改变 |
|---|---|---|---|
| 电流观测器结构 | Lqdi^/dt=u−Rsi^−v | 同左 | 未变 |
| 滑模控制量 v 的构造 | 终端滑模控制律 H | 线性切换项 z | 未变 |
| 滑模面 / 切换函数 | 积分非奇异终端滑模面 s | 电流误差饱和函数 | 未变 |
| 反电动势提取 | Eh=LPF(H,wc) | Eh=LPF(z,wc) | 未变 |
| 角度提取 | atan2 + 解卷绕 + 相位补偿 | 同左 | 未变 |
| 转速提取 | 同左 | ⭐ 唯一改变 | |
| 等效磁链 ψ 输出 | 仍保留供诊断 | 已不使用 | 接口未变 |
⇒ 本次改动只发生在"转速提取"这一个模块内部 ,两支观测器的滑模部分完全保持原样。 函数签名、输入输出端口数量与含义全部不变,模型连线无需改动。
1. 被控对象模型(IPMSM 在 αβ 域)
1.1 为什么用 αβ 域
电机三相绕组在物理上是耦合的。为了做无感观测,我们希望把模型写成 "两个独立的、与转子位置无关的电路" ------ 这就是 αβ(静止两相)坐标系。 它的好处是:电压、电流、反电动势都是可以直接测量或由三相量变换得到的 , 而转子位置 θe 只出现在反电动势里,正好成为我们要估计的对象。
1.2 三相到 αβ(Clarke 变换,等幅值形式)
iαiβ=3210−2123 −21−23 iaibic
利用 ia+ib+ic=0 消去 ic,可化简为模型中的实际实现:
iα=ia,iβ=3 1(ia+2ib)
模型实现 :
Clark子系统,两个 Interpreted MATLAB Function(u(1)与(1/sqrt(3))*(u(1)+2*u(2)))。 该式为等幅值 Clarke 的正确等价写法, ∣iαβ∣ 等于相电流幅值(已在模型中核实)。
1.3 αβ 电压方程
以 Lq 为电感基准(因为采用"扩展反电动势"建模,把凸极效应并入反电动势项):
uαβ=Rsiαβ+Lqdtdiαβ+Eex,αβ(1.1)
直观理解 :这就是一个 RL 串联电路 ------ 端电压 = 电阻压降 + 电感压降 + 反电动势。 观测器的任务,就是在不知道 Eex 的前提下,通过已知的 u 和 i 把它"抠"出来。
1.4 扩展反电动势(EEMF)
Eex,αβ=ωeψf−sinθecosθe+(Ld−Lq)T(θe)did/dtωeid,T(θe)=cosθesinθe−sinθecosθe
稳态 ( id、 iq 为常数, did/dt=0)时退化为:
Eex,αβ=E ωeψf+(Ld−Lq)id−sinθecosθe
定义等效磁链 (模型中的 psi):
ψ≜ψf+(Ld−Lq)id(1.2)
稳态下:
Eex,αβ=ωeψ−sinθecosθe,∣Eex∣=ωeψ(1.3)
三条重要性质:
- 幅值正比于转速 : ∣Eex∣=ωeψ。这是"幅值法求转速"的理论依据,也是它在高速段失效的根源(见 6.0.2 节)。
- 方向编码了转子位置 :矢量的相角就是 θe(差一个固定的 π/2)。这是"锁相法求转速"的依据。
- id≈0 时 ψ≈ψf ,反电动势幅值与凸极参数 Ld、 Lq 无关。
1.5 符号约定
模型采用余弦基准:
Eex,α=−Esinθe,Eex,β=+Ecosθe,E=ωeψ
反电动势矢量的相角:
arg(Eex,α+jEex,β)=arg(E(−sinθe+jcosθe))=arg(jEejθe)=θe+2π
⇒ 从反电动势取角度时必须用 atan2(−Eα,Eβ),而不是 atan2(Eβ,Eα)。 (前者恰好把 π/2 偏置抵消掉。)
2. 观测器总体结构
两支观测器共享同一套三层结构,唯一区别在第二层的构造:
ini
┌─────────────────────────────────────────────────────────────┐
│ 第一层:电流观测器 │
│ L_q · dî/dt = u − Rs·î − v │
│ 这是对象模型 (1.1) 的"复制品",v 是人为加入的修正量 │
├─────────────────────────────────────────────────────────────┤
│ 第二层:滑模控制量 v │
│ NTSM:v = H ← 终端滑模控制律 │
│ SMO :v = z ← 线性切换项 z = K·sat(x₁,φs) │
├─────────────────────────────────────────────────────────────┤
│ 第三层:反电动势提取与角度/转速 │
│ E_h = LPF(v, wc) │
│ θ = unwrap[atan2(−E_hα, E_hβ)] + atan(ωpll/wc) │
│ ωpll = PLL(E_h) ← 本版改动点 │
└─────────────────────────────────────────────────────────────┘
电流误差矢量(贯穿全文的核心变量):
x1≜i^αβ−iαβ(2.1)
3. NTSM-SMO 核心(主方案)
3.0 预备知识:滑模控制是什么(零基础可读)
3.0.1 基本思想
我们要让 i^ 跟踪 i,但不知道该施加多大的修正量 v(因为我们不知道 Eex)。
滑模控制的做法 是:不去"算出"这个修正量,而是让 v 在两个极端值之间高速切换 , 使误差 x1 被强行推向一个我们设计的曲面 s=0,并在上面保持。
举个最简例子:若希望 x1→0,取 v=Ksgn(x1)。
- x1>0 时 v=+K,把误差往负方向推;
- x1<0 时 v=−K,把误差往正方向推。
只要 K 足够大,误差就会被"夹"在 0 附近 ------ 这就是最简单的滑模。
3.0.2 两个阶段
| 阶段 | 含义 |
|---|---|
| 到达阶段(reaching) | s 从初始值被拉到 s=0 的过程 |
| 滑动阶段(sliding) | 到达后,系统被约束在 s=0 上运动 |
滑动阶段有一个极其重要的性质 :一旦 s≡0,系统的运动完全由曲面方程 s=0 决定, 与对象参数( Rs、 Lq)和外部扰动无关。
直观理解 :开关量 v 的"平均值"会自动调整到恰好抵消扰动的大小 ------ 这正是我们想要的反电动势。这就是滑模观测器能"不求而知"反电动势的根本原因。
3.0.3 为什么叫"终端"(Terminal)
- 线性滑模面 (如 s=x1):误差按指数衰减 x1(t)=x1(0)e−λt,理论上永远到不了零(渐近收敛)。
- 终端滑模面 (含 ∣x1∣rsgn(x1), 0<r<1 的分数幂): 误差在有限时间内精确到达零。
为什么分数幂能带来有限时间? 考虑标量方程 x˙=−k∣x∣rsgn(x), 0<r<1。分离变量积分:
∫x00∣x∣rdx=−k∫0Tdt ⟹ T=k(1−r)∣x0∣1−r<+∞
⇒ 收敛时间是有限的 (而指数收敛对应 T=∞)。
3.0.4 为什么叫"非奇异"(Nonsingular)
最原始的终端滑模面写成:
s=x1+βx˙1q/p,q>p⟹pq>1
对它求导会出现 x˙1q/p−1,指数 q/p−1>0 没问题; 但如果写成 s=x1+βx˙1p/q( p/q<1),求导后指数变成负数 p/q−1<0, 当 x˙1→0 时项趋于无穷 ------ 这就是奇异问题。
本方案采用"积分型"构造规避奇异 :把终端项放在积分号内部
s=x1+∫0tkn∣x1∣rsgn(x1)dτ
求导后得到的是 ∣x1∣rsgn(x1)(指数 r=0.6>0),在 x1=0 处不奇异 ✓
3.1 电流误差动态
由 (1.1) 与观测器第一层:
Lqdtdi^αβ=uαβ−Rsi^αβ−H
两式相减,消去已知的 uαβ:
Lqdtdx1=−Rsx1−H+Eex(3.1)
读法 :误差的变化率由三部分决定 ------ 电阻自衰减( −LqRsx1)、我们的控制量( −LqH)、 以及我们想知道的扰动( +LqEex)。滑模的任务就是让 H 恰好抵消 Eex。
3.2 积分非奇异终端滑模面
分数幂项:
∣x1∣rsgn(x1),r=qp,p=3, q=5 ⇒ r=0.6
这个函数作用在矢量上是逐分量进行的。它兼具"符号函数"(给方向)与"分数幂"(小误差处增益相对更大)两重作用。
滑模面(含两个积分项):
s=x1+Ij: 线性积分项 ∫0tjnx1dτ+Ik: 终端积分项 ∫0tkn∣x1∣rsgn(x1)dτ(3.2)
离散化(前向欧拉):
Ijk=Ijk−1+Tsjnx1k−1
Ikk=Ikk−1+Tskn∣x1k−1∣rsgn(x1k−1)
sk=x1k−1+Ijk+Ikk
⚠️ 实现细节 :模型中 Ij、 Ik 各加了 ±50 的抗饱和限幅,防止极端工况下无限累积。
两个积分项分别做什么?
| 项 | 作用 |
|---|---|
| Ij=∫jnx1 | 消除稳态误差(积分作用),使 x1 的平均值为零 |
| Ik=∫kn∥x1∥rsgn(x1) | 提供终端(有限时间)收敛特性 |
3.3 控制律
H=−Rsx1+Lq①线性积分项 jnx1+②终端项 kn∣x1∣rsgn(x1)+③线性滑模项 k1s+④自适应切换项 fsat(s,ϕs)(3.3)
饱和函数(边界层,用于抑制抖振):
sat(y,ϕ)={y/ϕ,sgn(y),∣y∣≤ϕ(线性区,减小抖振)∣y∣>ϕ(饱和区,全增益)
逐项解释:
| 项 | 名称 | 作用 |
|---|---|---|
| −Rsx1 | 电阻补偿 | 抵消 (3.1) 中的 −Rsx1,使误差动态"干净" |
| Lqjnx1 | 线性积分项 | 与滑模面中的 Ij 对应,保证滑模面可达 |
| Lqkn∥x1∥rsgn(x1) | 终端项 | 与 Ik 对应,提供有限时间收敛 |
| Lqk1s | 线性滑模项 | 指数收敛到滑模面,保证到达阶段稳定 |
| Lqfsat(s,ϕs) | 自适应切换项 | 主切换项,靠它抵消未知的 Eex |
3.4 自适应切换增益
f=min{δ+e−εa∣s∣m∣s∣(1+δ),3m}(3.4)
逐段分析:
| ∣s∣ | f 的近似值 | 说明 | |---|---|---| | →0 | f→0 | 小误差处自动减小增益,抑制抖振 | | 中等 | f≈m∥s∥ | 近似线性增长 | | 大 | f→3m(限幅) | 防止起动大误差时 H 过大 |
限幅 3m 的物理意义 :避免起动瞬间 ∣s∣ 很大时 H 出现不合理的巨大值。
⚠️ 已知特性 :由于 s→0 时 f→0,滑模面附近的切换能力主要由 k1s 承担。 但由 3.7 节估算,稳态 ∣s∣ 约 7 A(并不小), f 实际长期处于饱和区,故该特性不影响正常工作。
3.5 到达律推导
第一步:把控制律 (3.3) 代入误差方程 (3.1):
Lqdtdx1=−Rsx1−{−Rsx1+Lqjnx1+kn∣x1∣rsgn(x1)+k1s+fsat(s)}+Eex
−Rsx1 与括号内的 +Rsx1 恰好抵消:
Lqdtdx1=−Lqjnx1+kn∣x1∣rsgn(x1)+k1s+fsat(s)+Eex
两边除以 Lq:
dtdx1=−jnx1+kn∣x1∣rsgn(x1)+k1s+fsat(s)+LqEex(3.5)
第二步:对滑模面 (3.2) 求时间导数:
dtds=dtdx1+jnx1+kn∣x1∣rsgn(x1)
把 (3.5) 代入, jnx1 与 kn∣x1∣rsgn(x1) 也被抵消,得到到达律:
dtds=−k1s−fsat(s,ϕs)+LqEex(3.6)
这就把复杂的误差动态化简成了一个标量一阶方程 ------ 这就是控制律 (3.3) 中每个补偿项存在的意义。
滑模可达性 :只要 f(或其饱和值 3m)在滑模面附近大于 ∣Eex∣/Lq,就有 ss˙<0,滑模可达。
3.6 等效控制原理 ⭐(本节是全文枢纽)
3.6.1 什么是"等效控制"
开关量 v(即 H 中的切换部分)以极高频率在 ± 之间跳变。 虽然它本身是断续的,但它在一个开关周期内的平均值 是连续且有意义的 ------ 这个平均值称为等效控制 veq。
由 (3.6) :滑模发生时 s˙≈0( s 在一个电周期内均值为零),故
k1s+fsat(s,ϕs)=LqEex(3.7)
3.6.2 从等效控制到反电动势
把 (3.7) 代回控制律 (3.3),注意 (3.3) 中的括号恰好就是 (3.7) 的左端:
H=−Rsx1+Lqjnx1+kn∣x1∣rsgn(x1)+=Eex (由 3.7) Lqk1s+fsat(s)
H=−Rsx1+Lqjnx1+kn∣x1∣rsgn(x1)+Eex(3.8)
⇒ 当 x1→0(理想滑模)时:
Hx1→0 Eex(3.9)
3.6.3 结论与实现
(3.9) 就是"用低通滤波 H 即可提取反电动势"的全部理论依据:
Eh=LPF(H,wc)
低通在这里承担两个角色:
- 滤掉开关纹波 ( H 是高频切换量,我们只要它的平均值)
- 实现"取平均"这一数学操作(低通 = 滑动平均的连续形式)
⚠️ 实际偏差 :真实系统中 x1 不严格为 0,(3.8) 中的 −Rsx1+Lqjnx1+kn∣x1∣rsgn(x1) 会残留进入 Eh ,使其幅值偏离真实 Eex。 残余量与滑模紧度( ∣x1∣ 的大小)直接相关 ------ 这是 6.0.2 节讨论"幅值法为何不准"的物理根源。
3.7 稳态量级估算与参数意义
由 (3.7),在饱和区 fsat(s)=3m(取正),得
k1∣s∣+3m≈Lq∣Eex∣
以 3000 rpm 为例: ωe=1256.6 rad/s, ∣Eex∣=ωeψf=229.6 V, Lq=12 mH
Lq∣Eex∣=19133 A/s
代入 k1=1500、 3m=9000:
∣s∣≈150019133−9000≈6.8 A
⇒ 稳态 s 约 7 A, f 实际长期处于饱和区( f=3m),3.4 节提到的" f→0"只在过渡瞬间出现。
参数意义速查:
| 参数 | 增大后的效果 | 代价 |
|---|---|---|
| k1 | 到达更快,稳态 ∥s∥ 更小 | 抖振增大 |
| kn | 终端收敛更快 | 低速抖振 |
| m | 切换增益更强,滑模更紧 | 抖振增大 |
| ϕs | 边界层加宽,抖振减小 | 滑模精度下降 |
4. 线性 SMO 核心(对照组)
线性滑模观测器只有一个控制量:
z=Ksat(x1,ϕs)(4.1)
误差方程 (同 3.1,只是把 H 换成 z):
Lqdtdx1=−Rsx1−z+Eex(4.2)
滑模面 : x1=0(一阶滑模,无终端项、无积分项)
等效控制 :滑模发生时 x1=0 且 dx1/dt=0,代入 (4.2):
0=−0−zeq+Eex⟹zeq=Eex(4.3)
⇒ 比 NTSM 的推导简单得多: z 的平均值直接就是 Eex。
NTSM 与 SMO 的本质差异
| NTSM-SMO | 线性 SMO | |
|---|---|---|
| 滑模面 | s=x1+∫jnx1+∫kn∥x1∥rsgn(x1) | x1 |
| 控制量 | H(5 项) | z=Ksat(x1,ϕs)(1 项) |
| 收敛性 | 有限时间(终端项保证) | 渐近收敛 |
| 等效控制 | H→Eex,需 x1→0 | zeq=Eex,直接成立 |
| 参数个数 | 9 个( jn,kn,p,q,k1,m,δ,εa,ϕs) | 2 个( K,ϕs) |
| 抗参数摄动 | 理论上更强(滑模对匹配扰动不变) | 较强 |
| 抖振 | 相对更大(终端项在低速段增益高) | 相对更小 |
⇒ 对比实验要检验的核心假设:NTSM 的终端项能否带来更快的收敛与更强的鲁棒性。
5. 反电动势提取与角度
5.1 低通滤波提取
两支均采用一阶低通:
dtdEh=wc(v−Eh)v={H,z,NTSMSMO(5.1)
离散化:
Ehk=Ehk−1+wcTs(vk−1−Ehk−1)
频域特性:一阶低通的传递函数与频率响应
G(s)=s+wcwc⟹G(jω)=wc+jωwc
∣G(ω)∣=wc2+ω2 wc,∠G(ω)=−arctanwcω(5.2)
⚠️ 关键认识 :一阶低通对基波同时 造成幅值衰减 与相位滞后,二者都随转速变化。
- 相位滞后 → 5.3 节用 arctan(ωe/wc) 补偿;
- 幅值衰减 → 旧版用 corr 补偿,本版改用 PLL 后不再需要(见 6.0.2 节)。
数值示例( wc=1571 rad/s):1000 rpm( ωe=419)时衰减 0.966、滞后 14.9°; 3000 rpm( ωe=1257)时衰减 0.781、滞后 38.7°。
5.2 角度提取(atan2 + 解卷绕)
由 1.5 节的符号约定,反电动势矢量的角度是 θe+π/2,故取角度时需先交换分量、再取负:
θraw=atan2(−Eh,α,Eh,β)(5.3)
验算 :代入 Eh,α=−Esinθe、 Eh,β=Ecosθe: atan2(Esinθe,Ecosθe)=θe ✓
解卷绕 (消除 atan2 固有的 ±π 跳变,得到连续角度):
θk=θk−1+mod(θraw\[k−θk−1+π,2π)−π](5.4)
原理 :把每步的角度增量折算到 (−π,π] 内再加回上一步,从而跨过 ±π 边界时不跳变。 实现上
mod若得负值需再补 2π。
5.3 相位补偿
低通造成的相位滞后 φlpf=arctan(ωe/wc) 必须补回,否则角度会整体滞后:
θest=θ+arctan(wcωe,pll)(5.5)
⚠️ 这里用的是 PLL 输出的转速 ωe,pll。 旧版用幅值法得到的 we 本身有偏差(高速段偏低约 15%),导致补偿不足 → 角度滞后 ; 改用 PLL 后 ωe,pll 准确,补偿量随之准确 ------ 这是 PLL 带来的第二个收益。
5.4 等效磁链修正(凸极)
用补偿角做 Park 变换取出 id(低通平滑),再算等效磁链:
θcomp=θ+arctan(wcωe,pll)
id,inst=iαcosθcomp+iβsinθcomp
id,f←id,f+wfTs(id,inst−id,f)
ψ=ψf+(Ld−Lq)id,f(5.6)
说明 : ψ 在本版中已不参与转速计算(PLL 不需要它),但仍作为输出保留,供对照与诊断使用。
6. ⭐ 转速提取:二阶 PLL(本版核心改动)
6.0 预备知识:锁相环是什么(零基础可读)
6.0.1 一个生活类比
想象你在听一个音叉(频率未知)。你手上有一个可调音叉,你想让它和对方的音完全同频同相。
你的做法:
- 听两者的"拍频" (相位差引起的强弱变化)------ 这是鉴相器
- 根据拍频去拧调节旋钮 ------ 这是环路滤波器
- 旋钮控制你的音叉频率 ------ 这是压控振荡器
当拍频消失时,两者就"锁相"了。此时你旋钮的位置就代表了对方的频率。
PLL 就是把这个过程自动化、数学化。 在我们的场景里:
- "对方的音叉" = 反电动势矢量(它的旋转频率就是 ωe)
- "你的音叉" = 内部振荡器 θpll
- 锁相完成后, ωpll 就等于 ωe ------ 这就是我们要的转速
6.0.2 为什么"锁相"比"测幅"可靠 ⭐
这是本版改动的核心动机,值得讲透。
幅值法的逻辑 : ∣Eex∣=ωeψ,所以 ωe=∣E∣/ψ。
它依赖一个前提 :我们测到的 ∣E∣ 就是真实的 ∣Eex∣。
但实际测到的是 Eh=LPF(H),其中 ∣Eh∣ 受两个方向相反的效应影响:
| 效应 | 物理来源 | 对 ∥Eh∥ 的作用 |
|---|---|---|
| (a) 幅值衰减 | 一阶低通对 ωe 处正弦的固有衰减 wc/wc2+ωe2 | 使其偏低 |
| (b) 纹波整流 | H 中的开关纹波经 Ehα2+Ehβ2 这个非线性运算被"整流"抬高 | 使其偏高 |
⇒ 净效果 = (a) − (b),而两者都随转速、滑模紧度、参数变化,无法用单一系数覆盖全速域。
实测结果:3000 rpm 时转速偏高约 15%。
而 PLL 锁的是"相位":
反电动势矢量 Eh 虽然有幅值误差、有纹波,但它的旋转速度(也就是相位变化率)几乎不受影响 ------ 纹波是叠加在旋转矢量上的高频抖动,对"转过一圈需要多长时间"这件事影响极小。
一句话 :幅值被污染了,但相位是干净的。所以要从相位里取转速,而不是从幅值里取。
6.1 相位检测器(PD)
6.1.1 构造
我们要一个"与相位差成正比"的信号。把反电动势矢量投影到内部振荡器的 d 轴上:
εd=Eh,αcosθpll+Eh,βsinθpll(6.1)
6.1.2 推导
代入理想反电动势 Eh,α=−∣E∣sinθsig、 Eh,β=∣E∣cosθsig:
εd=−∣E∣sinθsigcosθpll+∣E∣cosθsigsinθpll=∣E∣(sinθpllcosθsig−cosθpllsinθsig)=∣E∣sin(θpll−θsig)(6.2)
用到的三角恒等式 : sin(A−B)=sinAcosB−cosAsinB
⇒ 鉴相器输出 = 幅值 × 相位差的正弦,正是我们想要的。
当相位差很小时 : sin(Δ)≈Δ,故 εd≈∣E∣(θpll−θsig),线性鉴相 ✓
6.1.3 归一化
εd 里含有 ∣E∣,而 ∣E∣=ωeψ 随转速变化 ------ 若不处理,PLL 的环路增益会随转速变化(高速时增益大、易振荡,低速时增益小、响应慢)。
做法:除以幅值
ε=−max(∣Eh∣,1)εd≈θsig−θpll(6.3)
⇒ 归一化后 ε 直接就是"相位差(弧度)",与转速、与幅值误差都无关 ✓
⚠️ 符号极其关键 :误差必须取 (θsig−θpll),才能构成负反馈 。 若取反,闭环特征方程会变成 s2−kps−ki=0,右半平面有根,必然发散(见 6.3 节)。
分母为何用 max(∣Eh∣,1) :防止低速时 ∣Eh∣→0 造成除零。 代价是极低速( ∣E∣<1 V)时归一化失效,可另加"低速冻结"保护(见 6.6.2 节)。
6.2 环路滤波器(LF)与压控振荡器(VCO)
6.2.1 为什么环路滤波器必须是 PI 而不是纯 P
先用直觉理解:
-
纯比例 P :输出频率正比于相位差。 锁定时要求相位差 →0,但若输入频率与初始频率不同,必须有非零相位差才能产生频率差 ------ 于是系统会稳定在"有固定相位误差"的状态(I 型系统,对频率阶跃有稳态误差)。
-
PI :积分器会累积 相位误差,直到它足够把频率拉到正确值,此时相位误差回到零。 ⇒ 锁定时相位误差为零,转速输出精确 ✓
6.2.2 数学表达
环路滤波器:
ωpll=kpε+ki∫εdt(6.4)
压控振荡器(积分器:频率 → 相位):
θpll=∫ωplldt(6.5)
离散实现:
scss
∫ε ← ∫ε + Ts·ε
ω_pll = kp·ε + ki·∫ε
ω_pll ← clamp(ω_pll, ±ω_max) % 限幅防跑飞
θ_pll ← θ_pll + Ts·ω_pll
θ_pll ← wrap(θ_pll) 到 (−π, π]
6.3 闭环传递函数与稳定性
6.3.1 建立模型
设相位差 x=θpll−θsig。由 (6.3), ε≈−x。
对 (6.4)(6.5) 求导:
θ˙pll=ωpll=kpε+ki∫ε=−kpx−ki∫x
而 x˙=θ˙pll−θ˙sig, θ˙sig=ωe:
x˙=−kpx−ki∫x−ωe(6.6)
两边再求导(消去积分):
x¨=−kpx˙−kix
特征方程:
s2+kps+ki=0(6.7)
6.3.2 稳定条件(劳斯判据)
二阶系统 s2+a1s+a0=0 稳定的充要条件是所有系数同号:
kp>0,ki>0
⇒ 只要 kp,ki 取正,闭环必稳定 ✓(这也再次说明 (6.3) 的符号取对了)
6.3.3 传递函数形式
以相位为输入、相位为输出的闭环传递函数:
Φ(s)=s2+kps+kikps+ki
误差传递函数:
Φe(s)=1−Φ(s)=s2+kps+kis2
关键观察 : Φe(s) 的分子含 s2 ------ 这意味着 直流( s=0)与频率阶跃( 1/s2)都没有稳态误差 ,只有频率斜坡( 1/s3)才有。
6.4 参数整定
二阶系统标准形式 s2+2ζωns+ωn2=0,与 (6.7) 对照:
ωn=ki ,ζ=2ki kp=2ωnkp(6.8)
反解出增益:
ki=ωn2,kp=2ζωn(6.9)
两个参数的物理意义:
| 参数 | 物理意义 | 增大后 |
|---|---|---|
| ωn | 环路带宽 | 跟踪更快、锁定更快;但抗噪变差 |
| ζ | 阻尼比 | 减小会超调振荡;增大响应变慢 |
本模型取值:
| 参数 | 值 | 说明 |
|---|---|---|
| ζ | 0.707 | 工程最佳阻尼(无超调、响应最快) |
| ωn | 2π×50=314.16 rad/s | 自然频率(≈50 Hz) |
| kp | 2×0.707×314.16=444.3 | 比例增益 |
| ki | 314.162=9.8696×104 | 积分增益 |
| ωmax | 3000 rad/s | 输出限幅(防跑飞) |
6.5 加速段的稳态相位误差
6.5.1 为什么会有误差
从误差传递函数 Φe(s)=s2+kps+kis2 出发,代入不同的输入:
| 输入类型 | 输入表达式 | 稳态误差 |
|---|---|---|
| 相位阶跃 | 1/s | 0 |
| 频率阶跃 | 1/s2 | 0(II 型系统) |
| 频率斜坡 | 1/s3 | ω˙e/ωn2 |
用终值定理验算频率阶跃 ( Δω):
s→0lims⋅s2+kps+kis2⋅s2Δω=s→0lims2+kps+kisΔω=0✓
用终值定理验算频率斜坡 (斜率 ω˙):
s→0lims⋅s2+kps+kis2⋅s3ω˙=s→0lims2+kps+kiω˙=kiω˙=ωn2ω˙
⇒ 得到
Δθss=ωn2ω˙e(6.10)
6.5.2 本模型数值
转速参考 0→3000 rpm 用 0.25 s,即 2000 rpm/s:
ω˙e=2000×30π×4=837.8 rad/s2
Δθss=314.162837.8=0.0085 rad=0.49∘
⇒ PLL 在加速段引入的附加相位误差仅 0.5°,可忽略。
6.5.3 带宽选择权衡
| ωn | 加速段相位误差 | 抗噪能力 | 适用 |
|---|---|---|---|
| 2π×30 | 1.36° | 更好 | 噪声大、加速慢 |
| 2π×50(当前) | 0.49° | 适中 | 本模型 |
| 2π×80 | 0.19° | 较差 | 加速快、噪声小 |
6.6 锁定过程与低速保护
6.6.1 锁定时间
二阶系统按 ζωn 的速率收敛,工程上取
tlock≈ζωn3=0.707×314.163≈13.5 ms
⇒ 起动后约 14 ms 内锁定。
6.6.2 低速问题与保护
问题 :起动瞬间反电动势接近 0,相位检测器输出被噪声主导, ωpll 会乱跳 (实测起动段 0~0.2 s 曲线有密集毛刺)。
保护措施(可选,一行代码):
matlab
if Emag_f > 5 % EMF 足够大才闭合环路
err = -Ed_pll / Emag_f;
else
err = 0; % 低速冻结,避免噪声驱动
end
代价:引入约 100 rpm 以下的死区(本模型无影响)。
6.7 PLL 与幅值法的完整对照
| 项 | 幅值法 | PLL |
|---|---|---|
| 提取依据 | ∥E∥=ωeψ | θ˙sig=ωe |
| 受幅值误差影响 | 强(衰减 + 纹波双重污染) | 弱 ✅ |
| 受纹波影响 | 强(经平方和非线性整流) | 弱 ✅ |
| 是否需要 ψ | 需要 (且 ψ 需标定) | 不需要 ✅ |
| 是否需要 corr 补偿 | 需要(且随转速变化,难标定) | 不需要 ✅ |
| 相位补偿准确性 | 受 we 偏差拖累 | 准确 ✅ |
| 加速段行为 | 无额外误差 | 有 ω˙/ωn2(0.49°,可忽略) |
| 低速行为 | 可用 | 有死区(可加保护) |
| 实现复杂度 | 简单 | 中等(多 6 行) |
实测对照(3000 rpm 稳态):
| 指标 | 幅值法(corr 理论式, m=6000) | PLL |
|---|---|---|
| 转速误差 | +15% ❌ | +2.6%(NTSM)/ +3.4%(SMO) ✅ |
| 角度误差(均值) | ~0 | ~0 ✅ |
| 角度误差(振荡带) | ±5.7° | 明显收窄 ✅ |
7. 完整离散算法
7.1 NTSM-SMO-PLL
scss
输入:u_α, u_β, i_α, i_β, T_s
参数:Rs, L(=Lq), Ld, ψf, j_n, k_n, p, q, k1, m, δ, εa, φs, wc, wf
持久状态:î_α, î_β, I_j, I_k, E_hα, E_hβ, θ_prev, Emag_f, id_f, θ_pll, ∫ε
① 电流误差与分数幂
x1 = [î_α − i_α ; î_β − i_β]
xp = sign(x1) ⊙ |x1|^(p/q)
② 积分终端滑模面(带抗饱和)
I_j ← I_j + Ts·j_n·x1 (限幅 ±50)
I_k ← I_k + Ts·k_n·xp (限幅 ±50)
s = x1 + I_j + I_k
③ 自适应切换增益
f = m·|s|·(1+δ) / (δ + exp(−εa·|s|))
f = min(f, 3m)
④ 控制律
H = −Rs·x1 + L·[ j_n·x1 + k_n·xp + k1·s + f ⊙ sat(s, φs) ]
⑤ 电流观测器
î ← î + Ts·(u − Rs·î − H)/L
⑥ 反电动势提取
E_h ← E_h + wc·Ts·(H − E_h)
⑦ 角度
θ_raw = atan2(−E_hα, E_hβ)
θ = θ_prev + [mod(θ_raw − θ_prev + π, 2π) − π]
θ_prev = θ
⑧ 幅值(仅用于 PLL 归一化)
Emag_inst = √(E_hα² + E_hβ²)
Emag_f ← Emag_f + wf·Ts·(Emag_inst − Emag_f)
⑨ PLL
ε_d = E_hα·cos(θ_pll) + E_hβ·sin(θ_pll)
ε = −ε_d / max(Emag_f, 1)
∫ε ← ∫ε + Ts·ε
ω_pll = kp·ε + ki·∫ε
ω_pll = clamp(ω_pll, ±ω_max)
θ_pll ← θ_pll + Ts·ω_pll
θ_pll ← wrap(θ_pll)
⑩ 凸极修正
θ_comp = θ + atan(ω_pll/wc)
id_inst = i_α·cos(θ_comp) + i_β·sin(θ_comp)
id_f ← id_f + wf·Ts·(id_inst − id_f)
ψ = ψf + (Ld − L)·id_f
⑪ 输出
θ_est = θ + atan(ω_pll/wc)
ω_est = ω_pll
E_α = E_hα, E_β = E_hβ, ψ
7.2 SMO-PLL(差异仅在 ②③④⑤⑥)
vbnet
②' 线性切换项(无滑模面)
z = K · sat(x1, φs) ← 用原始电流误差,不滤波
③' 无自适应增益
④' 无需单独控制律:v = z
⑤' î ← î + Ts·(u − Rs·î − z)/L
⑥' E_h ← E_h + wc·Ts·(z − E_h) ← 只滤切换项
⑦ 及其后各步与 NTSM 完全相同(含同一套 PLL 参数)。
8. 参数表
8.1 电机参数(PMSM 模块,与 InitFcn 一致)
| 符号 | 变量 | 值 | 单位 |
|---|---|---|---|
| Rs | Rs |
0.958 | Ω |
| Ld | Ld |
5.25e-3 | H |
| Lq | Lq / L |
12e-3 | H |
| ψf | flux |
0.1827 | Wb |
| p(极对数) | pole |
4 | --- |
| Vdc | Vdc |
311 | V |
| Ts | Ts |
1e-5 | s |
8.2 NTSM 参数
| 符号 | 变量 | 值 | 说明 | 调大后的效果 |
|---|---|---|---|---|
| jn | j_n |
500 | 线性积分系数 | 稳态误差消除更快 |
| kn | k_n |
4000 | 终端项系数 | 终端收敛更快,低速抖振增大 |
| p/q | p,q |
3/5 | 终端指数 r=0.6 | r 越小终端特性越强 |
| k1 | k1 |
1500 | 线性滑模项 | 到达更快,稳态 ∥s∥ 更小 |
| m | m |
3000 | 自适应增益基准 | 滑模更紧, H 相位误差更小 |
| δ | delta |
0.2 | 自适应律参数 | --- |
| εa | eps_a |
2 | 自适应律参数 | --- |
| ϕs | phi_s |
0.5 | 边界层厚度 | 抖振减小,滑模精度下降 |
8.3 SMO 参数
| 符号 | 变量 | 值 | 说明 |
|---|---|---|---|
| K | K_smo |
600 | 切换增益 |
| ϕs | phi_s_smo |
1.5 | 边界层厚度 |
8.4 滤波与 PLL 参数
| 符号 | 变量 | 值 | 说明 |
|---|---|---|---|
| wc | wc |
2π×250=1571 | 反电动势低通截止(rad/s) |
| wf | wf |
2π×150=942 | 幅值 / id 低通截止(rad/s) |
| ζ | 函数内常数 | 0.707 | PLL 阻尼比 |
| ωn | wn_pll(函数内) |
2π×50=314.16 | PLL 自然频率(rad/s) |
| kp | 由 (6.9) 算出 | 444.3 | PLL 比例增益 |
| ki | 由 (6.9) 算出 | 9.87×104 | PLL 积分增益 |
| ωmax | we_max(函数内) |
3000 | PLL 输出限幅(rad/s) |
⚠️ 两支观测器的 PLL 参数必须完全一致 ,否则对比不公平。 建议后续把
wn_pll、zeta、we_max提到 InitFcn 由外部传入统一管理。
9. 已知局限与后续工作
| # | 局限 | 影响 | 后续 |
|---|---|---|---|
| 1 | 反电动势幅值 Emag 仍被纹波整流抬高 | 仅影响诊断量,不影响转速/角度 | 可增大 m 使滑模更紧 |
| 2 | NTSM 的 H 含线性项,基波相位与 Eex 有约 2.7° 偏差 ( m=3000) | 贡献部分角度误差 | 增大 m(6000 时降到 0.15°) |
| 3 | 低速( ∥E∥≲5 V)时 PLL 无有效输入 | 起动段转速有毛刺 | 加低速冻结保护(6.6.2 节) |
| 4 | PLL 增益硬编码在函数内 | 不便统一调参 | 提到 InitFcn 由外部传入 |
| 5 | p/q、 jn、 kn、 k1、 m 等参数未做系统性整定 | 未必处于最优 | 后续做参数扫描 |
| 6 | 仅验证了 500~3000 rpm 区间 | 弱磁区(>2110 rpm 基准转速)未充分验证 | 补做高速工况 |
| 7 | 未做参数偏差鲁棒性对比 | NTSM 的理论优势未验证 | 改 PMSM 块参数对比 |
附录 A:关键公式速查
| 公式 | 编号 |
|---|---|
| uαβ=Rsiαβ+Lqdtdiαβ+Eex | (1.1) |
| ψ=ψf+(Ld−Lq)id | (1.2) |
| Eex=ωeψ−sinθe;cosθe, ∥Eex∥=ωeψ | (1.3) |
| x1=i^−i | (2.1) |
| Lqx˙1=−Rsx1−H+Eex | (3.1) |
| s=x1+∫jnx1+∫kn∥x1∥rsgn(x1) | (3.2) |
| H=−Rsx1+Lqjnx1+kn∥x1∥rsgn(x1)+k1s+fsat(s) | (3.3) |
| f=min{m∥s∥(1+δ)/(δ+e−εa∥s∥),3m} | (3.4) |
| x˙1=−jnx1+kn∥x1∥rsgn(x1)+k1s+fsat(s)+Eex/Lq | (3.5) |
| s˙=−k1s−fsat(s)+Eex/Lq | (3.6) |
| k1s+fsat(s)=Eex/Lq(准稳态) | (3.7) |
| H=−Rsx1+Lqjnx1+kn∥x1∥rsgn(x1)+Eex | (3.8) |
| H→Eex( x1→0) | (3.9) |
| z=Ksat(x1,ϕs), zeq=Eex | (4.1)(4.3) |
| Eh=LPF(v,wc) | (5.1) |
| ∥G∥=wc/wc2+ω2 , ∠G=−arctan(ω/wc) | (5.2) |
| θ=unwrapatan2(−Ehα,Ehβ) | (5.3)(5.4) |
| θest=θ+arctan(ωpll/wc) | (5.5) |
| ψ=ψf+(Ld−Lq)id,f | (5.6) |
| εd=Ehαcosθpll+Ehβsinθpll=∥E∥sin(θpll−θsig) | (6.1)(6.2) |
| ε=−εd/max(∥Eh∥,1)≈θsig−θpll | (6.3) |
| ωpll=kpε+ki∫ε, θpll=∫ωpll | (6.4)(6.5) |
| s2+kps+ki=0(闭环特征方程) | (6.7) |
| ωn=ki , ζ=kp/(2ωn); ki=ωn2, kp=2ζωn | (6.8)(6.9) |
| Δθss=ω˙e/ωn2 | (6.10) |