永磁同步发电机(PMSG)转速滑模控制器

1. 被控对象:从运动方程到"控制输入是谁"

PMSG 常用 表贴式\(L_d=L_q=L_s\))且采用 \(i_d=0\) 控制(无弱磁、无需凸极利用时的最优选择)。

1.1 机电运动方程(真正的速度环被控对象)

\[J\dot\omega_m + B\omega_m = T_e - T_m \]

电磁转矩(id=0):

\[T_e = \frac{3}{2}n_p\psi_f\,i_q \triangleq K_t\,i_q,\qquad K_t=\frac{3}{2}n_p\psi_f \]

所以

\[\boxed{\dot\omega_m = -\frac{B}{J}\omega_m + \frac{K_t}{J}\,i_q - \frac{T_m}{J}} \tag{1} \]

关键视角:对速度环而言,控制输入 = \(i_q\)(q轴电流指令),而 \(T_m\)(原动机输入机械转矩)是有界慢变扰动/负载


2. 滑模面与等效控制

Step 1 — 跟踪误差

\[e = \omega_{ref} - \omega_m \]

Step 2 — 线性滑模面

\[\boxed{s = \dot e + \lambda e = (\dot\omega_{ref}-\dot\omega_m)+\lambda(\omega_{ref}-\omega_m),\qquad \lambda>0} \tag{2} \]

\(s=0\)\(\dot e + \lambda e = 0\)\(e(t)\to 0\) 指数收敛,时间常数 \(\tau=1/\lambda\)

Step 3 — 把 \(\dot\omega_m\) 代入,解出 \(i_q^*\)

由 (1):

\[\dot\omega_m = \underbrace{-\frac{B}{J}\omega_m - \frac{T_m}{J}}_{f(\cdot)} + \frac{K_t}{J}i_q \]

代入 \(s\)

\[s = \dot\omega_{ref} + \frac{B}{J}\omega_m + \frac{T_m}{J} - f_{\text{nom}} - \frac{K_t}{J}i_q + \lambda e \]

标称部分不确定部分分开。记标称摩擦/惯量(\(\hat J,\hat B\)),真实值存在偏差,\(\Delta T_m\) 为未建模+实际负载波动:

\[\begin{aligned} \dot\omega_m &= -\frac{\hat B}{\hat J}\omega_m + \frac{\hat K_t}{\hat J}i_q + \underbrace{\left[\left(\frac{K_t}{J}-\frac{\hat K_t}{\hat J}\right)i_q - \frac{B-\hat B}{\hat J}\omega_m - \frac{T_m}{J}\right]}_{d(t)} \end{aligned} \]

于是 \(s\) 的动态为:

\[\dot s = \ddot\omega_{ref} + \frac{\hat B}{\hat J}\dot\omega_m - \frac{\hat K_t}{\hat J}\dot i_q + \dot d(t) + \lambda\dot e \]

在速度外环设计中,通常假定电流内环远快于速度环(即 \(i_q \approx i_q^*\) 准稳态),把 \(i_q\) 当直接输入,得到等效代数关系而非微分方程:

更干净的做法——直接从 (2) 写出趋近条件求 \(i_q^*\)

令滑模到达条件:

\[\boxed{\tfrac{1}{2}\tfrac{d}{dt}s^2 \le -\eta|s|\quad\Rightarrow\quad s\dot s \le -\eta|s|} \]

用标称模型反推使 \(s\to 0\) 所需的 \(i_q^*\)

\[\begin{aligned} s &= \underbrace{\dot\omega_{ref}+\frac{\hat B}{\hat J}\omega_m+\lambda e}_{v_{eq}} - \frac{\hat K_t}{\hat J}i_q + d(t) \end{aligned} \]

为了让 \(s\) 收缩,令

\[\frac{\hat K_t}{\hat J}i_q^* = v_{eq} + K\,\mathrm{sat}\!\left(\frac{s}{\phi}\right) \]

最终得到最实用的控制律

\[\boxed{ i_q^* = \frac{\hat J}{\hat K_t}\Bigg[ \underbrace{\dot\omega_{ref}+\frac{\hat B}{\hat J}\omega_m+\lambda(\omega_{ref}-\omega_m)}_{\text{等效连续项 }v_{eq}} \;+\;K\,\mathrm{sat}\!\left(\frac{s}{\phi}\right) \Bigg] } \tag{3} \]

其中

符号 含义 整定经验
\(\lambda\) 滑动面指数收敛率 \(5\sim30\) rad/s(看你期望 ω 响应速度)
\(K\) 切换增益(抗扰强度) 初估 \(K > \max|d(t)|\cdot\hat J/\hat K_t\),再往下调到临界稳定,最后加 20–30% 余量
\(\phi\) 边界层厚度 先设 \(\phi=0.5\%\sim2\%\)\(\omega_{rated}\),越小越"硬"但抖振越大

sat(z) = clip(z, -1, 1),即 \(|z|>1\) 时截为 ±1。


3. 完整双闭环接线架构

                 ┌──────────────────────────┐
 ω_ref(k) ──►   │  SMC 速度环               │
                 │  e=ωref-ωm                │
                 │  s = ė + λe                │
                 │  iq* = (J/Kt)[ v_eq       │
                 │        + K·sat(s/φ) ]      │
                 │  id* = 0                   │
                 └──────┬──────────┬──────────┘
                        │          │
                   id*, iq*  ──►  │ 电流环(PI or SMC)│──► SVPWM ──► Inverter ──► PMSG
                                    ↑                               ↑
                               (id,iq) from Park(θe)           ωm, θe from encoder / PLL-less obs

电流内环(id=0)最小可用版

\[\begin{aligned} u_d^* &= (K_{p\_i}(0-i_d)- \omega_e L_s i_q) \\ u_q^* &= (K_{p\_i}(i_q^*-i_q)+ \omega_e(L_s i_d+\psi_f)) \end{aligned} \]

如果追求一致的高性能,电流环也可用超螺旋滑模预测电流控制,但工程上 PI + 前馈解耦已经够让速度环假设"iq≈iq*"成立。


采样周期 \(T_s\),实测 \(\omega_m(k)\)\(\omega_{ref}\) 可预设或来自上层功率调度:

/* ---- 参数 ---- */
float lambda = 15.0f;     // 滑动面收敛率
float Ksw    = 80.0f;     // 切换增益 (A/s量级,看iq量程)
float phi    = 2.0f;      // 边界层 (rad/s),≈0.5~2% of rated ω
float Jhat   = 0.003f;    // kg·m² 估的就行
float Kt_hat = 0.18f;     // Nm/A = 3/2*np*ψf

/* ---- 差分 ---- */
float e      = omega_ref - omega_m;
float de     = (e - e_prev) / Ts;          // 或带LPF微分
e_prev       = e;

float s      = de + lambda * e;

/* ---- sat(·) ---- */
float sat_s  = s / phi;
if(sat_s >  1.0f) sat_s =  1.0f;
if(sat_s < -1.0f) sat_s = -1.0f;

/* ---- iq* ---- */
float v_eq   = (omega_ref - omega_m_prev)/Ts   // ė_ref ≈ 0 if ωref step
             + (Bhat/Jhat)*omega_m
             + lambda * e;
omega_m_prev = omega_m;

float iq_cmd = (Jhat/Kt_hat) * (v_eq + Ksw * sat_s);

/* ---- 限幅 ---- */
iq_cmd = clamp(iq_cmd, -Iq_max, Iq_max);

** 微分炸噪怎么办?**
de 换成 一阶滤波微分
de_filtered += (de_raw - de_filtered)*(Ts/τ_filt) with τ_filt≈3~10 ms,或直接用 (s·ωm) 的替代形式避免显式微分


5. 免微分 / 低噪声写法

显式 \(\dot e=\dot\omega_{ref}-\dot\omega_m\) 对编码器量化/噪声敏感。等价改写:

\[s = (\dot\omega_{ref}-\dot\omega_m)+\lambda e \]

\(\omega_{ref}\) 变化缓慢(\(\dot\omega_{ref}\approx 0\)),则

\[s \approx -\dot\omega_m + \lambda e \]

\(\dot\omega_m\) 可以用 一阶惯性观测

\[\widehat{\dot\omega}_m(k)=\alpha\widehat{\dot\omega}_m(k-1)+(1-\alpha)\frac{\omega_m(k)-\omega_m(k-1)}{T_s}, \qquad \alpha\in[0.9,0.99] \]

或者更优雅地——把滑模面改成积分型,彻底消掉微分:

\[s = \underbrace{\int_0^t e(\tau)d\tau}_{\xi} + \frac{1}{\lambda}e(t)\quad\Rightarrow\quad \dot s=e-\frac{\dot e}{\lambda}\text{…} \]

但实操中最划算的就是:滤波微分 + 边界层 sat(),别抠理论完美性

参考代码 永磁同步发电机速度控制的滑模控制器 www.youwenfan.com/contentcnv/81344.html

6. 参数整定速查

步骤 做什么 现象指示
① 设 \(K=0\) 只有等效项,看开环响应趋势 若有静差/爬不上去 → \(K\) 不够
② 从小到大拉 \(K\) 直到阶跃响应无静差且快 看到高频抖振 → \(K\) 大了,进③
③ 调 \(\phi\) 增大 \(\phi\) 平滑,减小 \(\phi\) 收紧 \(\phi\) 太小=抖振,太大=边界层里变线性(软滑模)
④ 调 \(\lambda\) 决定收敛快慢 过大→iq* 容易撞限幅;过小→响应拖尾

经验初值区间(中等惯性负载):

\[\lambda \sim (3\sim8)\,\omega_{BW,\text{closed-loop}},\quad K\sim (0.5\sim2)\times \frac{J_{\max}\cdot|\dot\omega_{\max}|}{K_t} \]

posted @ 2026-06-17 09:39  cozicx  阅读(18)  评论(0)    收藏  举报