三相交直交变频电力电子仿真模型
项目简介
本项目是一个基于纯MATLAB代码实现的电力电子系统仿真模型。虽然项目背景提及Simulink平台,但核心计算逻辑完全由 main.m 脚本通过编写底层算法完成。该模型模拟了一套完整的“交-直-交”(AC-DC-AC)变频驱动系统,涵盖了从三相工频电网输入、整流、直流母线滤波、SPWM逆变到RL负载输出的全过程。
仿真求解器采用前向欧拉法(Forward Euler)进行数值积分,直接对电路微分方程进行离散化求解,不依赖Simulink图形化模块,适合用于深入理解电力电子变换器的数学模型与控制原理。
主要功能特性
- 全系统时域仿真:实现了从电网侧到负载侧的完整电路动态模拟。
- 三相不控整流:基于电压包络线物理模型模拟三相桥式整流电路,包含输入侧电感平滑作用。
- 动态直流母线:模拟大容量电容的充放电过程,反映直流母线电压波动(Ripple)。
- SPWM逆变控制:内置正弦脉宽调制(SPWM)算法,通过三角载波与正弦调制波的比较生成开关信号。
- RL负载响应:基于微分方程求解三相阻感负载的电流响应。
- 谐波分析:内置FFT(快速傅里叶变换)算法,自动计算输出电流的THD(总谐波失真)。
- 多维度可视化:提供电网电压/电流、直流电压、PWM调制细节及输出波形的实时绘图。
系统要求
- MATLAB R2016a 或更高版本
- 不需要额外的工具箱(基础MATLAB环境即可运行,使用了基本的数学运算和绘图函数)
使用方法
- 确保MATLAB当前工作路径包含本项目文件。
- 直接运行主函数。
- 控制台将输出仿真进度提示,运行结束后将自动弹出波形窗口并打印分析结果。
- 用户可直接修改代码顶部的“系统参数设置”部分(如
f_grid, C_dc, f_pwm, Ma 等)以验证不同工况。
---
核心算法与实现细节
本模型完全通过 main.m 脚本实现,代码逻辑分为以下几个关键模块:
1. 参数配置与初始化
脚本首先定义了仿真步长(默认为2微秒,以提供足够的PWM分辨率)和总时长。初始化了电网参数(380V线电压)、直流母线电容(2200uF)、逆变器载波频率(5kHz)以及负载参数。为了提高运行效率,所有状态变量数组均在仿真开始前进行了预分配。
2. 主循环仿真(数值积分求解)
核心仿真在一个
for 循环中进行,逐个时间步长(Ts)推演系统状态:
- 电网侧模型(AC Source & Rectifier)
* 生成标准的三相正弦交流电压。
*
整流逻辑:采用简化的物理模型,计算三相线电压的最大包络值作为理想整流电压。
*
导通判断:仅当整流电压高于当前直流母线电压时,二极管才导通并向电容充电。
*
输入电流重构:近似计算流经整流桥的脉冲电流,并根据输入电压极性分配给相应相。加入了模拟电网侧电感的一阶滞后滤波,使输入电流波形更贴近实际物理特性。
*
载波生成:利用反正弦函数生成标准的三角载波(范围-1到1)。
*
调制波生成:生成频率为50Hz的三相正弦参考信号,幅值由调制比(Ma)决定。
*
比较逻辑:将调制波与载波进行实时比较,生成三相上桥臂的开关状态(Sa, Sb, Sc)。
*
电压重构:根据开关状态和当前直流母线电压,计算逆变器输出的线电压和相电压(假设负载中性点悬空,利用相电压平衡原理推导Van, Vbn, Vcn)。
* 基于电路微分方程
L * di/dt = V - R*i。
* 使用前向欧拉法离散化方程,根据当前的相电压和上一时刻的电流,计算电流的变化率,从而更新下一时刻的负载电流。
* 根据功率守恒与开关状态,计算逆变器侧从直流母线抽取的瞬时电流 (
i_inv = Sa*Ia + Sb*Ib + Sc*Ic)。
* 计算电容净电流 (
整流输入电流 - 逆变输出电流)。
* 根据电容微分方程
i = C * dv/dt 更新直流母线电压,实现了直流侧电压波动的动态模拟。
3. 谐波分析 (FFT)
仿真结束后,代码截取最后两个工频周期的A相负载电流数据。使用
fft 函数将时域信号转换为频域信号,计算频谱幅值。通过寻找基波峰值并剔除直流分量,算法自动计算出总谐波失真(THD)指标,用于评估输出电能质量。
4. 结果可视化
代码利用MATLAB绘图句柄生成多张图表:
- 电网侧:展示三相输入电压及A相输入电流,清晰呈现非线性整流负载导致的电流脉冲特性。
- 直流母线:绘制电容电压随时间的变化曲线,并在图中标注电压均值,直观展示预充电过程及稳态纹波。
- PWM调制:局部放大展示三角载波与正弦调制波的截交过程,以及对应的PWM开关信号。
- 输出波形:展示最终输出的三相电流波形(注:代码可视化部分未完全截取,但逻辑上包含输出分析)。