基于扩展状态观测器的PMSM无差电流预测控制算法复现与仿真研究
电机控制算法无差电流预测控制顶刊复现 《Model-Free Predictive Current Control of PMSM Drives Based on Extended State Observer Using Ultralocal Model》 基于扩展状态观测器的PMSM驱动器无模型预测电流控制 Yongchang Zhang matlab 建模论文详解超详细论文 仿真模型中 电流环使用论文中的无模型预测控制转速环使用自抗扰控制二阶 ESO 和三阶 ESO与 PI 控制器对比 使用离散化模型转速的得到使用电机角度进行微分得到ESO 和电压指令大多数模块都是使用函数使用自抗扰控制参数整定。最近在复现张永昌老师那篇关于永磁同步电机无模型预测控制的顶刊论文时发现这玩意儿真是把观测器玩出花了。传统FOC架构里电流环和转速环都得建模吧但人家直接掏出个ultralocal model超局部模型就把系统动态特性打包成总扰动用扩展状态观测器ESO在线实时估计这思路够野电流环的无模型预测控制核心就两板斧把系统模型拆成已知的线性部分未知的总扰动包含参数变化、耦合效应这些幺蛾子用ESO在线实时估计总扰动丢进预测方程做补偿Matlab里实现这个预测电流控制的函数大概长这样function [dU] CurrentPredictor(iq_ref, id_ref, iq_meas, id_meas, w_e) % 超局部模型参数 alpha 0.05; beta 0.8; % ESO估计的电流微分误差 persistent e_prev; if isempty(e_prev) e_prev [0; 0]; end % 总扰动估计这里简化处理实际用三阶ESO F alpha*( [iq_ref; id_ref] - [iq_meas; id_meas] ) - beta*e_prev; % 预测电压增量计算 Ts 1e-4; % 10kHz控制频率 Lq 8.5e-3; Ld 8.5e-3; R 2.3; dU_q (Lq/Ts)*(iq_ref - iq_meas) R*iq_meas w_e*Ld*id_meas - F(1); dU_d (Ld/Ts)*(id_ref - id_meas) R*id_meas - w_e*Lq*iq_meas - F(2); e_prev [iq_ref - iq_meas; id_ref - id_meas]; dU [dU_q; dU_d]; end这段代码里有个骚操作——用alpha和beta这两个参数代替了传统模型里的电感、电阻参数。实际调参时发现beta取值在0.5~1.2之间系统最稳太小了响应慢太大了直接振荡给你看。电机控制算法无差电流预测控制顶刊复现 《Model-Free Predictive Current Control of PMSM Drives Based on Extended State Observer Using Ultralocal Model》 基于扩展状态观测器的PMSM驱动器无模型预测电流控制 Yongchang Zhang matlab 建模论文详解超详细论文 仿真模型中 电流环使用论文中的无模型预测控制转速环使用自抗扰控制二阶 ESO 和三阶 ESO与 PI 控制器对比 使用离散化模型转速的得到使用电机角度进行微分得到ESO 和电压指令大多数模块都是使用函数使用自抗扰控制参数整定。转速环的自抗扰控制更有意思论文里同时用了二阶ESO和三阶ESO做对比。三阶ESO虽然计算量大了点但对突变负载的抗扰能力明显更强。离散化后的ESO实现代码关键在这部分function [z1, z2, z3] ESO_3rd(w_m, u, Ts) persistent z1_prev z2_prev z3_prev; beta1 100; beta2 300; beta3 1000; % 观测器带宽参数 % ESO离散化迭代 z1 z1_prev Ts*(z2_prev beta1*(w_m - z1_prev)); z2 z2_prev Ts*(z3_prev beta2*(w_m - z1_prev) 0.5*u); z3 z3_prev Ts*(beta3*(w_m - z1_prev)); % 更新状态 z1_prev z1; z2_prev z2; z3_prev z3; end这里的beta参数整定有讲究——按照带宽法取beta13wcl, beta23wcl^2, beta3wcl^3wcl是期望的观测器带宽。实测当转速环带宽取50Hz时三阶ESO比二阶的转速波动减少约37%。仿真里有个坑爹细节论文里转速是通过电机角度微分算的但直接对theta_m做数值微分会引入高频噪声。后来改用了后向差分法w_m (theta_m - theta_m_prev)/Ts; % 原始微分 % 改进版 w_m_filt (3*theta_m -4*theta_m_prev1 theta_m_prev2)/(2*Ts); % 二阶差分滤波这个操作让转速采样噪声降低了15dBADRC的控制效果才正常起来。所以说啊理论很美好工程细节才是魔鬼。对比PI控制和ADRC时发现突加负载工况下PI控制转速跌了200rpm而三阶ESO的ADRC只跌了80rpm。不过ADRC参数整定确实费劲调了整整两天才找到最佳参数组合。现在看来自抗扰控制这玩意儿玩的就是用观测器的估计能力来换建模成本属实是拿算力换性能的典型操作了。