永磁同步电机(PMSM)弱磁调速控制系统MATLAB仿真
项目介绍
本项目是一个基于MATLAB/Simulink原理(纯代码实现)的永磁同步电机(PMSM)矢量控制与弱磁调速仿真系统。系统完整实现了从电机本体建模到高级控制策略的全过程,核心采用带前馈解耦的转子磁场定向控制(FOC)架构。
针对PMSM在高速运行时受直流母线电压限制的问题,本项目实现了基于电压反馈法的弱磁控制策略,能够在基速以上自动调节d轴电流,从而扩展电机的运行速度范围。代码通过离散化时间步进的方式,模拟了数字控制器的实际运行机制。
功能特性
- 全代码建模:不依赖Simulink图形化模块,直接使用MATLAB脚本实现电机微分方程求解和控制器算法,便于深入理解算法原理。
- FOC矢量控制:实现了经典的双闭环控制架构(外环转速环、内环电流环),并包含dq轴电压前馈解耦。
- 智能弱磁控制:
* 采用电压反馈法(Voltage Feedback),实时监测逆变器输出电压幅值。
* 当电压接近母线极限时,自动积分生成负向d轴电流指令,实现平滑弱磁。
* 具备抗饱和与积分限幅机制,保证控制系统稳定性。
* 基速以下:采用 $i_d=0$ 控制策略(适用于表贴式PMSM)。
* 基速以上:在电流极限圆($i_d^2 + i_q^2 leq I_{max}^2$)约束下,优先分配弱磁电流。
- 动态工况模拟:预设了复杂的测试工况,包含启动加速、突加负载干扰以及高速弱磁区的进入与稳定运行。
- 可视化分析:提供丰富的数据绘图,包括转速跟踪、转矩响应、三相电流波形以及dq轴电流矢量轨迹图。
系统要求
- MATLAB R2016b 及以上版本
- 无需额外工具箱(主要使用基础数学运算和绘图功能)
仿真逻辑与算法实现细节
本项目的核心逻辑集中在主程序脚本中,仿真步长设定为 50us (20kHz),主要包含以下关键模块:
1. 仿真初始化与参数设定
- 定义了表贴式PMSM($L_d = L_q$)的物理参数,包括电阻、电感、磁链、转动惯量等。
- 设定了系统限制参数,如直流母线电压(311V)和最大电流幅值(15A)。
- 初始化PI控制器增益、历史状态变量以及用于数据记录的数组。
2. 工况时序控制
仿真总时长为1.0秒,模拟了以下三个阶段:
- 0 ~ 0.3s:电机空载加速至基速(1000 RPM)。
- 0.3 ~ 0.6s:并在1000 RPM下突加 5 N.m 负载转矩,测试抗干扰能力。
- 0.6 ~ 1.0s:转速指令阶跃至 3000 RPM(远超基速),测试系统进入弱磁区的动态性能。
3. 控制算法流程(单步循环)
在每个仿真步长内,按以下顺序执行控制算法:
A. 转速环控制
- 计算转速误差,通过PI控制器计算初步的q轴电流指令。
- 输出结果作为各轴电流分配的基础。
B. 弱磁控制策略(电压反馈法)
- 电压检测:计算上一时刻输出的电压矢量幅值。
- 裕量判断:将当前电压幅值与设定阈值(95%的基波电压限制)进行比较。
- 积分调节:
* 如果电压幅值超过阈值,误差为负,积分器累积导致 $i_d$ 参考值向负方向增加。
* 如果电压裕量充足且 $i_d$ 为负,积分器反向调节使 $i_d$ 回归至0。
- 安全限幅:对弱磁电流进行幅度限制,防止去磁电流过大。
C. 电流指令与限幅
- 确定 $i_d$ 参考值直接来源于弱磁控制器。
- 根据电机最大电流限制($I_{max}$),动态计算q轴电流的允许范围($i_{q,max} = sqrt{I_{max}^2 - i_d^2}$)。
- 对转速环输出的 $i_q$ 进行动态钳位,确保合成电流矢量始终在电流极限圆内。
D. 电流环FOC控制
- 计算dq轴耦合项电压($u_{dq_decouple}$),用于前馈补偿,提高动态响应。
- 分别对d轴和q轴电流误差进行PI调节。
- 叠加前馈补偿电压,得到最终的dq轴电压指令。
- 电压圆限幅:如果计算出的电压矢量幅值超过SVPWM线性区限制,按比例缩小 $v_d$ 和 $v_q$,防止SVPWM过调制失真。
E. 坐标逆变换与调制
- 利用转子电角度位置,通过Inverse Park变换将dq轴电压转换为 $alpha-beta$ 轴电压。
- 调用SVPWM计算模块计算占空比(逻辑上存在,实际仿真中利用平均电压模型驱动电机)。
4. 电机物理模型仿真
代码未使用Simulink模块,而是通过数学方程手动更新电机状态:
- 电磁方程:使用欧拉法求解dq轴电压微分方程,更新 $i_d, i_q$ 电流状态。
- 转矩方程:根据实时电流和磁链参数计算电磁转矩 $T_e$。
- 机械方程:根据 $T_e$、负载 $T_L$ 和摩擦系数求解机械运动方程,更新转速 $omega_m$ 和转子位置 $theta_e$。
数据可视化
仿真结束后,系统会自动生成两张图表窗口:
- 综合性能图:
*
转速响应:展示给定转速与实际转速的跟随情况,观察超调量和调节时间。
*
转矩响应:展示电磁转矩跟随负载转矩的动态过程。
*
dq轴电流:红色曲线表示d轴电流。在此图中可以清晰看到在0.6s后,随着转速升高,d轴电流自动变为负值(进入弱磁区)。
*
三相电流:展示稳态运行时的正弦波形。
- 电流轨迹图:
* 在dq坐标系下绘制运行轨迹,验证电流矢量是否始终被限制在最大电流圆(虚线)内部,直观展示MTPA/弱磁策略的有效性。
使用方法
- 打开MATLAB,将工作路径切换到脚本所在目录。
- 直接运行主函数脚本(
main)。 - 等待控制台输出“仿真开始”及“仿真结束”提示。
- 观察弹出的波形窗口分析仿真结果。可以直接修改脚本开头部分的
Kp_spd, Ki_fw 等参数来观察不同参数对系统稳定性的影响。