三相桥式全控整流电路 MATLAB 纯代码仿真系统
项目介绍
本项目是一个基于纯 MATLAB 脚本(非 Simulink 图形化模块)构建的三相桥式全控整流电路高精度数值仿真模型。系统通过编写底层的微分方程求解器和逻辑状态机,模拟了电力电子技术中三相全控整流桥的工作原理。
该模型不依赖 Simulink 工具箱,而是直接在 MATLAB main 函数中通过时间步长迭代的方式,实现了从电源电压生成、脉冲触发逻辑、晶闸管开关状态判断到负载回路电流求解的全过程。它能够直观展示触发角(Alpha)对输出电压的影响,以及 R-L 阻感负载下的电流续流现象。
功能特性
- 参数化仿真配置:支持用户自定义线电压有效值、电源频率、晶闸管触发角(Alpha)、负载电阻(R)及负载电感(L)。
- 高精度时域求解:采用固定步长(默认 10us)的离散化算法,模拟真实的物理时间流逝,精确捕捉波形细节。
- 同步 6 脉冲发生器:内置符合三相桥自然换相规律的脉冲发生逻辑,包含相序处理和周期归一化算法。
- 晶闸管离散状态机:模拟了 VT1 至 VT6 六个晶闸管的导通与关断逻辑,包含共阴极组和共阳极组的择优导通机制。
- 灵活的负载模型:
*
纯电阻负载:模拟电流断续及电压波形切除特性。
*
阻感负载(R-L):模拟大电感作用下的电流平波及电压负半周续流效应。
- 数据统计与验证:自动计算输出电压/电流的平均值与有效值,并计算理论公式值进行精度对比。
系统要求
- MATLAB R2016b 或更高版本(仅需基础包,无需 Simulink 或 Power Electronics 工具箱)。
代码实现逻辑与算法分析
本项目核心代码并不调用现成的仿真模块,而是通过编程实现了电路的数学模型。以下是代码的关键实现细节:
1. 系统参数初始化
代码首先定义了三相交流电源的数学参数(幅值、频率、角频率),并将线电压转换为相电压峰值。同时建立了仿真时间轴向量
t,并预分配了电压
Va, Vb, Vc、脉冲数组
Pulses、输出电压
Ud 和电流
Id 的内存空间,以优化循环计算性能。
2. 同步 6 脉冲发生器算法
在时域循环中,代码实现这套逻辑的核心在于相角的归一化处理:
- 自然换相点定位:定义 VT1 的自然换相点为 A 相过零点后 30 度(pi/6),其余 5 个管子依次滞后 60 度。
- 实际触发计算:将自然换相点加上用户设定的触发角
Alpha_rad,计算出实际触发时刻。 - 脉冲生成:利用模运算
mod(theta, 2*pi) 处理周期循环,当当前角度落入触发时刻后的 10 度窗口内时,生成高电平触发信号。
3. 晶闸管桥路状态机(核心物理模型)
这是仿真的核心部分,模拟了三相桥的拓扑结构:
- 分组逻辑:将晶闸管划分为共阴极组(VT1, VT3, VT5,连接上桥臂)和共阳极组(VT4, VT6, VT2,连接下桥臂)。
- 换相策略:模拟了工程上的强迫换相逻辑。如果检测到某管有触发脉冲,且满足正向导通条件,则将该管状态置为 1(导通),同组其他管置为 0(关断)。
- 电压重构:根据当前导通的上桥臂索引(Index_Top)和下桥臂索引(Index_Bot),从三相瞬时电压向量中选取对应的相电压,两者之差即为整流输出电压
raw_ud。
4. 负载回路微分方程求解
代码通过欧拉前向差分法(Euler Forward Method)求解一阶电路微分方程:
- 公式:$i[k] = i[k-1] + frac{(U_d - R cdot i[k-1])}{L} cdot T_s$
- 阻性负载处理:当
L_load 设置极小(接近 0)时,直接使用欧姆定律 $I = U/R$ 计算,避免除零错误。
5. 单向导电性与续流约束
为了模拟晶闸管的物理特性,代码在每个时间步末端执行以下约束:
- 电流过零截断:如果计算出的电流
current_I 小于 0,强制将其置为 0,并将所有晶闸管状态复位为关断。这准确模拟了电流断续(DCM)模式。 - 电压修正:在纯阻性负载下,通过逻辑判断强制使得当电流为 0 时输出电压
Ud 也钳位为 0,防止出现非物理的负电压。对于阻感负载,则允许输出负电压(电感释放能量阶段)。
使用方法
- 打开 MATLAB 软件。
- 打开本项目提供的脚本文件。
- 修改参数:
* 找到代码顶部的
1. 系统参数设置 区域。
* 修改
Alpha_deg 改变触发角(范围 0-180 度)。
* 修改
R_load 和
L_load 调整负载特性(若需纯阻性负载,将
L_load 设为 0 或极小值)。
- 运行仿真:点击 MATLAB 编辑器的 "Run" 按钮。
- 查看结果:
* MATLAB 命令行窗口将暂时不输出文本(代码主要用于绘图)。
* 系统将弹出一个图形窗口 "三相桥式全控整流电路仿真系统",包含以下子图:
*
子图 1:三相交流输入电压波形(A/B/C 相)。
*
子图 2:展示六路晶闸管的触发脉冲时序。
*
其他:根据完整代码逻辑,通常还包括整流输出电压波形 ($U_d$) 和负载电流波形 ($I_d$)。