PMSM滑模控制仿真无位置 永磁电机 可提供文档if启动 如果没有收敛,将1e-4搞小一点 e-6或者e-5试下 本次滑模模型文档包括: 1 simulink界面调整,由于使用这个仿真的时候很可能会出现因为软件环境不同导致无法使用, 或者导致的波形错误,特写了一个关于参数界面的设置,按照那个设置,结合主框图,能够 避免使用出问题。 2 波形记录,将转速波形,转矩波形,位置估计+实际位置波形,三项定子电流波形, 给定转速(蓝绿色)+实际转速(红色)+估算转速(蓝色) 3 另外仿真程序内部,里面标注了各个功能模块的位置及部分原理。 4 论文的话推荐看 13 16 开头的论文,其他的可以拓展性的看。
在玩PMSM无感控制仿真时,最头疼的就是Simulink模型换个电脑就跑不起来。上次隔壁实验室老张拿了我模型,硬说我的转速波形有毛刺,结果发现是他显示器缩放比例设了150%,滑模观测器模块都被压变形了(别笑,真事)。今天咱们就聊聊怎么让仿真稳如老狗。
先说模型界面这个坑。打开Simulink第一件事,按住Ctrl+E进模型设置,把Solver选成ode23t,步长模式切成auto。重点来了——把Relative tolerance从默认1e-3改成1e-4,系统不收敛时直接砍到1e-6。见过有人在这卡了一周,最后发现是求解器没调:
% 脚本批量设置模型参数 set_param('PMSM_SMC/Sliding Mode Observer', 'MaxStep', '0.0001'); set_param(gcs, 'StopTime', '0.5'); % 跑0.5秒足够看收敛滑模观测器里的sign函数建议用饱和函数过渡,实测能减少约30%的抖振。看这段S函数核心逻辑:
// 滑模观测器核心计算 double s = e_alpha * cos_theta_est + e_beta * sin_theta_est; if(fabs(s) > 0.02) { // 边界层厚度 theta_est += (s>0) ? 0.05 : -0.05; // 增益别超过观测带宽 } else { theta_est += K_slide * s; // K_slide建议从5开始试 }波形记录有门道。转速环要把给定值(那个蓝绿色线)、真实转速(红)、估算转速(蓝)叠在一起看。遇到过估算转速总比真实值慢半拍?八成是锁相环参数没调,把PI调节器的积分时间调小一个量级试试。转矩波形要是出现2倍频波动,重点检查电流环的dq轴解耦。
PMSM滑模控制仿真无位置 永磁电机 可提供文档if启动 如果没有收敛,将1e-4搞小一点 e-6或者e-5试下 本次滑模模型文档包括: 1 simulink界面调整,由于使用这个仿真的时候很可能会出现因为软件环境不同导致无法使用, 或者导致的波形错误,特写了一个关于参数界面的设置,按照那个设置,结合主框图,能够 避免使用出问题。 2 波形记录,将转速波形,转矩波形,位置估计+实际位置波形,三项定子电流波形, 给定转速(蓝绿色)+实际转速(红色)+估算转速(蓝色) 3 另外仿真程序内部,里面标注了各个功能模块的位置及部分原理。 4 论文的话推荐看 13 16 开头的论文,其他的可以拓展性的看。
功能模块布局有讲究。建议把滑模观测器和锁相环打包成子系统,用淡紫色背景标出——别小看颜色标记,凌晨三点调参数时能救命。电流控制器模块里的抗饱和处理必须加,见过有人没加这个,电机启动直接过流保护。
最后推荐两篇神论文:13开头的讲滑模增益自适应调整的骚操作,16开头的提出了新型切换函数,能把稳态误差压到0.2%以内。不过新手建议先吃透传统结构,别急着追新算法——就像改车先练好漂移,别一上来就刷ECU。