基于PI双环控制的永磁同步电机仿真系统
项目介绍
本项目是一个基于MATLAB开发的永磁同步电机(PMSM)矢量控制仿真平台。系统通过数学建模的方式,完整模拟了电机在同步旋转坐标系(dq轴)下的物理特性。该仿真系统采用了工业界主流的场定向控制(FOC)框架,利用PI调节器实现稳态无静差的转速跟踪与电流解耦控制,旨在研究电机在启动、目标转速切换以及外部负载扰动等复杂工况下的动态性能。
功能特性
- 双闭环控制架构:实现了转速外环(ASR)与电流内环(ACR)的级联控制,保证了系统响应的速度与稳定性。
- 场定向控制(FOC)策略:采用 $i_d = 0$ 的控制方式,使电磁转矩完全受交轴电流 $i_q$ 约束,简化控制逻辑。
- 动态工况模拟:系统内置了阶跃转速变化(1000rpm至1500rpm)及突加负载转矩(5 N·m)的实验场景,用于考量系统的鲁棒性。
- 限幅保护机制:包含控制电流指令限幅与电压矢量过饱和限幅,模拟真实驱动器的硬件限制。
- 全参数化建模:电机物理参数(电阻、电感、磁链、惯量等)及控制增益均可灵活配置,便于进行参数优化。
- 多维度数据可视化:通过六轴联动图表同步展示转速、转矩、dq轴电流、三相电流波形及控制电压,直观呈现控制效果。
系统要求- 软件版本:MATLAB R2016b 及以上版本。
- 工具箱需求:无需特定的Simulink工具箱,仅需基础MATLAB运行环境。
实现逻辑说明程序的执行严格遵循电机控制的实时逻辑,仿真核心通过一个以 $10mu s$ 为采样步长的循环实现,具体流程如下:
- 参数初始化:定义电机的定子电阻、d/q轴电感、转动惯量等物理常数,并初始化PI控制器的比例(Kp)与积分(Ki)增益。
- 工况预设:构建时间向量,设定在 0.4s 时刻目标转速从 1000rpm 跳变至 1500rpm,在 0.6s 时刻加入 5 N·m 的外部负载。
- 转速外环控制:计算目标转速与反馈转速的偏差,经PI调节器输出参考交轴电流 $i_{q_ref}$,并实施限幅保护。
- 电流内环控制:以 $i_{d_ref}=0$ 为基准,通过PI调节器计算 $u_d$ 和 $u_q$ 指令。代码中加入了前馈补偿项,以抵消旋转电动势对电流环的影响。
- 电压矢量限幅:针对直流母线电压利用率,对合成的 $u_d$ 和 $u_q$ 电压进行幅值限制。
- 坐标变换(逆Park变换):将dq坐标系下的电压指令转换为静止坐标系下的 $alphabeta$ 电压,用于作用于电机模型。
- 电机物理模型求解:利用一阶欧拉数值积分法更新电机的状态变量。根据电压方程计算电流导数,根据机械方程计算转速和电角度变化。
- 信号采样与变换:将计算得到的dq电流通过变换还原为三相abc电流,用于波形输出和观测。
关键算法与细节分析
- FOC 解耦控制:通过在前馈控制中引入 $P cdot omega_m cdot L_q cdot i_q$ 等补偿项,抵消了d轴与q轴之间的交叉耦合电压,提高了电流环在高转速下的控制精度。
- 数值仿真方法:采用欧拉法(Euler method)对连续状态方程进行离散化。在每个采样周期 $T_s$ 内,基于当前的电压和反电势计算电流的变化率 $(di/dt)$,从而预测下一时刻的电流值。
- 磁链与转矩计算:电磁转矩 $T_e$ 的计算考虑了永磁磁链产生的转矩。由于模型中 $L_d = L_q$(隐极电机特性),磁阻转矩项在计算过程中趋近于零。
- 抗积分饱和(Anti-windup)思想:虽然采用基础PI,但通过对输出指令(电流及电压)的直接限幅,防止了控制器进入深度饱和,确保了系统在扰动后的快速恢复。
- 坐标变换逻辑:手动编写了 Park 变换与 Clarke 变换的数学矩阵逻辑,未调用外部库函数,完整体现了矢量控制的底层数学原理。
使用方法- 将仿真程序代码保存。
- 在MATLAB命令行窗口中直接运行。
- 程序运行结束后将自动弹出仿真曲线图表。
- 观察转速曲线的超调量、调节时间以及在0.6s突加负载时转速的跌落与恢复情况。
- 如需修改电机参数或控制增益,可在代码顶部的“系统参数初始化”部分进行调整并重新运行。