首页 / 资讯中心 / 文章详情

【PMSM例程分享】(10)永磁同步电机(PMSM)基于EKF的转速与转子位置观测与控制

【PMSM例程分享】(10)永磁同步电机(PMSM)基于EKF的转速与转子位置观测与控制 ★ FEATURED ARTICLE
原创代码附下载链接。可联系我获取定制和讲解请勿翻卖文章目录程序简介算法与仿真设置结果分析程序特点运行结果命令行输出MATLAB源代码程序简介本程序基于MATLAB搭建永磁同步电机PMSM仿真模型采用扩展卡尔曼滤波EKF实现机械转速与转子电角度的在线估计并将估计结果引入磁场定向控制FOC系统实现基于状态观测反馈的闭环转速控制。传统FOC通常依赖编码器提供转子位置和转速反馈而基于EKF的状态观测方法可以利用电机数学模型、电压及电流测量信息估计相关状态为减少对机械位置传感器的依赖提供参考。本程序重点研究从编码器反馈切换至EKF估计反馈后的控制表现并与编码器反馈控制进行对比。算法与仿真设置程序采用四维EKF状态模型将d轴电流、q轴电流、机械角速度和转子电角度作为估计状态通过电机模型预测与电流量测更新完成状态估计。仿真设置两组控制方案编码器反馈控制控制器始终使用真实转速和转子角度作为反馈信息。EKF观测反馈控制初始阶段使用编码器反馈在0.30秒时切换至EKF估计转速和转子角度实现观测反馈闭环运行。仿真总时长为1.2秒设置0.30秒反馈接管以及0.60秒附近转速给定由80 rad/s向100 rad/s变化的工况。两组方案采用相同的电机参数、控制器参数及电流测量噪声序列以比较不同反馈方式下的闭环控制表现。结果分析程序主要输出以下结果闭环转速响应对比转速给定、编码器反馈及EKF反馈控制下的实际转速。转速跟踪误差分析不同反馈方式的转速跟踪性能。反馈接管过程展示0.30秒附近反馈模式切换、速度估计误差和电角度估计误差。电流与电磁转矩展示dq轴实际电流、电磁转矩及接管瞬态下的q轴电流变化。性能评价输出转速估计RMSE、电角度估计RMSE、闭环跟踪误差及接管阶段的最大转速偏差等指标。程序特点本程序采用在线交替执行的仿真结构将FOC控制、电机真实状态推进和EKF更新结合起来而不是仅对预先生成的数据进行离线滤波。程序包含完整的PMSM数学模型、FOC控制器、EKF状态观测、反馈接管、误差统计与结果可视化功能。电机参数、控制器参数、反馈切换时间、转速给定及滤波协方差等均可自行修改适用于PMSM状态观测、EKF反馈控制、无位置传感器控制相关算法及闭环控制性能分析等方向的学习与仿真研究。运行结果EKF观测反馈转速控制反馈接管与观测误差接管局部电流观测反馈电流与转矩命令行输出MATLAB源代码% 观测反馈转速控制独立MATLAB例程% 2026-10-09/Ver1作者matlabfilterV同号可获取代码定制、讲解等% 只使用基础MATLAB。参数为普通标量信号为数值数组不使用结构体。% 点击运行即可末尾含全部局部函数。Figure无水印配套PNG由维护工具导出。clear;clc;close all;rng(0);%% 共用教学参数与单位不将本例解释为Word中15 kW电机的实机验证Rs0.45;Ld3e-3;Lq3.6e-3;psi_f0.075;pole_pairs4;J2e-3;B5e-4;Ts1e-4;simulation_time1.2;dc_voltage120;voltage_limitdc_voltage/sqrt(3);current_limit10;Kp_speed0.25;Ki_speed4.0;current_bandwidth1200;Kp_dLd*current_bandwidth;Kp_qLq*current_bandwidth;Ki_dRs*current_bandwidth;Ki_qRs*current_bandwidth;time0:Ts:simulation_time;sample_countnumel(time);Kt1.5*pole_pairs*psi_f;Kr1.5*pole_pairs*(Ld-Lq);% 维护用汇总也是数值向量各指标仍以独立、有意义的变量保留。speed_rmseNaN;angle_rmse_degNaN;load_rmseNaN;parameter_relative_rmse_pctNaN;secondary_parameter_rmse_pctNaN;improvement_pctNaN;current_rmseNaN;peak_speed_errorNaN;gap_speed_rmseNaN;recovery_speed_rmseNaN;final_parameterNaN;final_secondary_parameterNaN;disturbance_speed_peakNaN;control_current_peakNaN;takeover_speed_peakNaN;recovery_timeNaN;covariance_minInf;covariance_chol_failures0;jacobian_error0;state_is_finite1;%% 在线交替控制、真值推进与EKF更新不是离线数据回放完整代码https://download.csdn.net/download/callmeup/93690677如需帮助或有滤波相关的MATLAB代码定制需求可从个人主页左侧联系我
阅读完成 · 觉得有帮助?
咨询建站