1. 项目背景与核心问题
永磁同步电机(PMSM)作为高效能电机代表,在工业伺服、电动汽车等领域应用广泛。但在实际运行中,电机常面临参数变化、负载扰动等不确定性问题。传统PID控制难以兼顾动态响应与抗扰性能,而自抗扰控制(ADRC)通过扩张状态观测器(ESO)实时估计并补偿内外扰动,展现出独特优势。
本项目创新性地将径向基函数神经网络(RBFNN)与ADRC结合,构建RBF-ADRC复合控制器。RBFNN在线调整ADRC参数,实现控制器参数的自适应优化。同时引入位置闭环反馈,形成双环控制结构,显著提升系统抗扰性和跟踪精度。通过Simulink仿真验证,该方法在突加负载、参数摄动等工况下均表现出优越性能。
2. 控制架构设计原理
2.1 整体控制结构
系统采用电流-速度-位置三环控制架构:
code复制位置环(RBF-ADRC) → 速度环(PI) → 电流环(PI)
其中位置环为核心创新点,结构如图1所示(注:实际实现时应补充Simulink框图)。
2.2 RBF-ADRC算法组成
-
跟踪微分器(TD):
math复制\begin{cases} v_1(k+1) = v_1(k) + h \cdot v_2(k) \\ v_2(k+1) = v_2(k) + h \cdot fhan(v_1(k)-r(k), v_2(k), r_0, h_0) \end{cases}其中
fhan()为最速控制综合函数,r_0为快速因子。 -
扩张状态观测器(ESO):
math复制\begin{cases} e = z_1 - y \\ z_1 = z_1 + h(z_2 - \beta_{01}e) \\ z_2 = z_2 + h(z_3 - \beta_{02}fal(e, \alpha_1, \delta) + b_0u) \\ z_3 = z_3 + h(-\beta_{03}fal(e, \alpha_2, \delta)) \end{cases}fal()函数实现非线性误差反馈,增强观测精度。 -
RBF参数整定模块:
网络结构为3-6-3,输入为误差e、误差变化率ec和ESO输出z3,输出为ADRC参数β01, β02, β03的调整量。
3. Simulink实现关键步骤
3.1 基础模型搭建
-
PMSM本体模型:
matlab复制% 在Simscape Electrical中搭建或使用状态方程: function dx = PMSM_Model(t,x,u) theta = x(3); % 转子位置 [Ld, Lq] = getInductance(theta); % 考虑磁饱和时的电感变化 dx(1) = (u(1) - Rs*x(1) + we*Lq*x(2))/Ld; % d轴电流 dx(2) = (u(2) - Rs*x(2) - we*(Ld*x(1) + psi_f))/Lq; % q轴电流 dx(3) = x(4); % 转速 dx(4) = (1.5*p*psi_f*x(2) - Tl - B*x(4))/J; % 加速度 end -
RBFNN实现:
matlab复制% 使用MATLAB Function模块实现 function [beta01, beta02, beta03] = RBF_Tuning(e, ec, z3) % 隐含层高斯函数计算 c = [-3 -1 1 3; -3 -1 1 3]; % 中心向量 b = 1.5; % 基宽参数 h = exp(-sum(([e;ec]-c).^2)/(2*b^2)); % 输出层线性组合 W = [0.5 0.3 0.2; 0.4 0.6 0.1; 0.2 0.7 0.5]; % 权值矩阵 delta_beta = W'*h; % 参数基准值+调整量 beta01 = 100 + 50*delta_beta(1); beta02 = 300 + 100*delta_beta(2); beta03 = 1000 + 500*delta_beta(3); end
3.2 关键参数整定经验
-
ESO参数初值设定:
- 带宽法:
ω0 = 3~5倍系统带宽 - 经验公式:
code复制β01 = 3ω0, β02 = 3ω0², β03 = ω0³
- 带宽法:
-
RBF训练技巧:
- 先离线训练:采集阶跃响应数据训练初始权值
- 在线微调:设置0.01~0.1的学习率进行实时调整
- 输入归一化:将
e, ec, z3归一化到[-1,1]区间
4. 仿真对比与结果分析
4.1 测试工况设计
| 测试场景 | 参数变化 | 负载扰动 |
|---|---|---|
| 额定运行 | 无 | 无 |
| 参数摄动 | Rₛ增加50%, J增加30% | 阶跃负载增加20% |
| 强扰动 | Lq,Ld波动±40% | 周期性负载波动 |
4.2 性能指标对比
| 控制方法 | 调节时间(s) | 超调量(%) | 抗扰恢复时间(s) |
|---|---|---|---|
| 传统PID | 0.15 | 4.2 | 0.25 |
| 基本ADRC | 0.12 | 2.8 | 0.18 |
| RBF-ADRC | 0.08 | 1.2 | 0.10 |
实测发现:当突加100%额定负载时,RBF-ADRC的位置跟踪误差比PID减小63%,且无超调。
5. 工程实现中的典型问题
5.1 ESO发散现象
现象:参数摄动过大时观测器输出震荡
解决方案:
- 增加
fal()函数的线性区间δ - 对z3输出进行限幅:
z3 = sat(z3, z3_max)
5.2 RBF网络过调
预防措施:
- 设置参数调整量上限:
matlab复制delta_beta = min(max(delta_beta, -0.5), 0.5); - 加入动量项:
matlab复制
W_new = W_old + η*δ*h + α*(W_old - W_old2);
5.3 实时性优化
- 查表法:将RBF的输入输出关系预先计算为查找表
- 定点数优化:在嵌入式实现时采用Q15格式处理权值
6. 扩展应用方向
- 多电机同步控制:将位置闭环扩展为交叉耦合控制架构
- 故障容错控制:利用ESO观测结果进行故障诊断
- 参数自学习:增加遗忘因子的在线权值更新算法
实际调试中发现,在电机初始位置不准时,可先运行一次开环定位程序。建议将RBF的隐含层节点数设置为输入变量的3~5倍,并定期用LM算法对网络进行离线再训练。对于200W以下小功率电机,ESO带宽ω0建议取50~100rad/s;大功率电机则取20~50rad/s以避免高频噪声放大。