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

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


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

PMSG 常用 表贴式)且采用 控制(无弱磁、无需凸极利用时的最优选择)。

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

电磁转矩(id=0):

所以

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


2. 滑模面与等效控制

Step 1 — 跟踪误差

Step 2 — 线性滑模面

指数收敛,时间常数

Step 3 — 把 代入,解出

由 (1):

代入

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

于是 的动态为:

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

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

令滑模到达条件:

用标称模型反推使 所需的

为了让 收缩,令

最终得到最实用的控制律

其中

符号 含义 整定经验
滑动面指数收敛率 rad/s(看你期望 ω 响应速度)
切换增益(抗扰强度) 初估 ,再往下调到临界稳定,最后加 20–30% 余量
边界层厚度 先设 ,越小越"硬"但抖振越大

sat(z) = clip(z, -1, 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)最小可用版

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


4. 离散化(MCU / Simulink 落地写法)

采样周期 ,实测 可预设或来自上层功率调度:

/* ---- 参数 ---- */
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. 免微分 / 低噪声写法

显式 对编码器量化/噪声敏感。等价改写:

变化缓慢(),则

可以用 一阶惯性观测

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

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

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

6. 参数整定速查

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

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

 

专注于matlab/simulink,电子电路,编程