交错并联Boost PFC仿真电路模型
采用输出电压外环,电感电流内环的双闭环控制方式
交流侧输入电流畸变小,波形良好,如效果图所示 simulink仿真
matlab/simulink仿真模型
在这里插入图片描述
MATLAB Function 代码。

选项一:解释图中的关键模块

输入端:AC Voltage (交流电压源) 和 Rectifier (整流桥,虽然图中简化为几个 Gain 和 Sum 模块,但逻辑上是整流)。
主电路:交错并联Boost。这通常包含两个电感(L1, L2)、两个开关管(MOSFET/IGBT)和两个二极管,它们并联工作,相位差 180 度,以减少输入电流纹波。
控制回路:
PFC (Power Factor Correction):功率因数校正环。通常是一个外环电压环,用来稳定输出电压。
Current Loop:电流环。内环用来控制电感电流跟随电压波形。
PWM Generator:生成脉宽调制信号来驱动开关管。

选项二:模型的 MATLAB 脚本框架

% 创建一个新的Simulink模型
modelName = ‘Interleaved_Boost_PFC’;
new_system(modelName);

% 打开模型
open_system(modelName);

% — 添加电源模块 —
add_block(‘powerlib/Power Electronics/Universal Bridge’, [modelName ‘/Rectifier’]);
add_block(‘powerlib/Electrical Sources/AC Voltage Source’, [modelName ‘/AC Source’]);
set_param([modelName ‘/AC Source’], ‘Amplitude’, ‘220’, ‘Frequency’, ‘50’);

% — 添加Boost电路元件 (简化版) —
% 电感
add_block(‘powerlib/Elements/Series RLC Branch’, [modelName ‘/Inductor1’]);
set_param([modelName ‘/Inductor1’], ‘BranchType’, ‘L’, ‘Inductance’, ‘1e-3’);

add_block(‘powerlib/Elements/Series RLC Branch’, [modelName ‘/Inductor2’]);
set_param([modelName ‘/Inductor2’], ‘BranchType’, ‘L’, ‘Inductance’, ‘1e-3’);

% 开关 (使用MOSFET)
add_block(‘powerlib/Power Electronics/Mosfet’, [modelName ‘/Switch1’]);
add_block(‘powerlib/Power Electronics/Mosfet’, [modelName ‘/Switch2’]);

% 二极管
add_block(‘powerlib/Power Electronics/Diode’, [modelName ‘/Diode1’]);
add_block(‘powerlib/Power Electronics/Diode’, [modelName ‘/Diode2’]);

% 输出电容
add_block(‘powerlib/Elements/Series RLC Branch’, [modelName ‘/Capacitor’]);
set_param([modelName ‘/Capacitor’], ‘BranchType’, ‘C’, ‘Capacitance’, ‘470e-6’);

% 负载
add_block(‘powerlib/Elements/Series RLC Branch’, [modelName ‘/Load’]);
set_param([modelName ‘/Load’], ‘BranchType’, ‘R’, ‘Resistance’, ‘100’);

% — 添加控制模块 —
% PID控制器
add_block(‘simulink/Continuous/PID Controller’, [modelName ‘/Voltage_PID’]);
add_block(‘simulink/Continuous/PID Controller’, [modelName ‘/Current_PID’]);

% PWM发生器
add_block(‘simulink/Sources/Repeating Sequence’, [modelName ‘/PWM_Gen’]);

% — 布局整理 (简单排列) —
set_param([modelName ‘/AC Source’], ‘Position’, [100, 100, 140, 130]);
set_param([modelName ‘/Rectifier’], ‘Position’, [200, 80, 250, 150]);
% … (此处省略大量位置调整代码)

% 保存模型
save_system(modelName);
disp(['模型 ‘, modelName, ’ 已生成。’]);

选项三:你需要具体的控制算法代码吗?

// 伪代码示例:PFC 电流参考计算
float v_in = read_input_voltage(); // 读取整流后的输入电压
float v_out = read_output_voltage(); // 读取输出电压
float v_ref = 400.0; // 目标输出电压 400V

// 电压环 PI 控制器 (简化)
float error_v = v_ref - v_out;
float i_ref_amplitude = PI_Controller(&Voltage_PI, error_v);

// 生成正弦电流参考
float i_ref = i_ref_amplitude * (v_in / 220.0); // 归一化输入电压形状

r在这里插入图片描述

MATLAB 绘图代码

% 模拟时间轴 (假设仿真时间为 0.5秒)
t = linspace(0, 0.5, 1000);

% 1. 设定参考电压 (Vref) - 红线
% 图中红线稳定在 400V
Vref = 400 * ones(size(t));

% 2. 构建实际电压 (Vdc) - 蓝线
% 初始化
Vdc = zeros(size(t));

% 模拟启动过程 (0 ~ 0.05s): 快速上升并带有超调 (Overshoot)
idx_rise = t 0.05;
t2 = t(idx_stable);

% 基础稳定值 + 衰减振荡 + 中间的电压跌落(扰动)
% 扰动模拟:在 t=0.25s 左右的一个高斯函数凹陷
disturbance = -40 * exp(-((t2-0.25).*100).^2);

% 高频纹波模拟 (交错并联通常纹波较小,这里加一点噪声)
ripple = 5 * sin(pi1000*t2); % 假设开关频率纹波

% 组合信号
Vdc(idx_stable) = 400 + 2exp(-10t2)sin(2p60t2) + disturbance + ripple;

% — 绘图 —
figure(‘Color’, ‘w’); % 设置背景为白色
plot(t, Vdc, ‘b-’, ‘LineWidth’, 1.5); hold on; % 绘制 Vdc (蓝线)
plot(t, Vref, ‘r-’, ‘LineWidth’, 1.5); % 绘制 Vref (红线)

% — 格式化图形以匹配原图 —
grid on;
xlabel(‘Time (s)’);
ylabel(‘Voltage (V)’);
title(‘输出直流电压’);
legend(‘Vdc’, ‘Vref’, ‘Location’, ‘NorthEast’);

% 设置坐标轴范围
ylim([0 500]);
xlim([0 0.5]);

% 添加图例框
box on;

波形分析(供参考)

启动阶段(左侧):电压迅速上升,但出现了明显的 超调,最高达到了约 440V 左右(参考值为 400V)。这说明 PI 控制器的比例增益可能偏大,或者积分时间常数偏小。
扰动阶段(中间):电压突然跌落到了 360V 左右,然后迅速恢复。这通常模拟的是 负载突变(例如负载突然加重),系统经过了短暂的波动后重新稳定。
稳态阶段(右侧):电压稳定在 400V,但可以看到蓝线上有细密的 锯齿状纹波,这是 Boost 电路开关动作产生的正常现象。

在这里插入图片描述

上图(紫色):输入交流电压 vac,是标准的正弦波。
中图(绿色):输入交流电流 iac,它是经过整流和斩波后的波形,但整体包络跟随电压的正弦形状,说明功率因数很高。
下图(红蓝):两相电感电流 iL1 和 iL2,这是典型的 交错并联(Interleaved) 特征,两个电感的电流相位互补(相差180度),从而在输入端互相抵消纹波。

MATLAB 绘图代码

% — 1. 参数设置 —
fs = 50000; % 采样率 (50kHz)
f_line = 50; % 工频 (50Hz)
t_start = 0.7; % 开始时间
t_end = 0.78; % 结束时间
t = (t_start:1/fs:t_end)'; % 时间向量

% — 2. 生成波形数据 —

% 上图:输入交流电压 (vac) - 220V RMS, 峰值约 311V,图中显示约 200V 峰值
Vac_peak = 220;
vac = Vac_peak * sin(pif_line*t);

% 下图:两相电感电流 (iL1, iL2) - 交错并联特征
% 假设电感电流包含:工频包络 + 高频开关纹波 + 直流偏置(整流后)
% 这里用绝对值正弦模拟整流后的工频包络
I_peak = 6; % 电流峰值

% 生成高频开关纹波 (三角波近似)
f_sw = 2000; % 开关频率 2kHz (为了演示效果,实际通常更高)
switching_ripple = sawtooth(pif_sw*t, 0.5); % 三角波

% 相位1电流 (iL1)
% 包络跟随 |sin(wt)|,叠加高频纹波
iL1 = abs(sin(pif_line*t)) * (I_peak/2) + …
1.5 * abs(sin(pif_lint)) . switching_ripple;

% 相位2电流 (iL2) - 交错180度 (即开关纹波相位相反,或者时间上延迟半个工频周期)
% 在交错并联Boost中,两路电感电流在输入侧是交替导通的
% 简单的模拟方法是将开关纹波反相,或者将时间轴错开
iL2 = abs(sin(pif_line*t)) * (I_peak/2) - …
1.5 * abs(sin(pif_lint)) . switching_ripple;

% 中图:输入交流电流 (iac)
% 输入电流是两路电感电流之和,且经过整流桥,所以是正弦绝对值形状
% 但在交流侧看,它应该是跟随电压的正弦波 (正负交替)
% 这里为了匹配图中绿色的形状(全波整流后的形状,但在交流侧看是正弦)
% 注意:图中绿色的 iac 看起来像是整流前的交流侧电流,它是正弦波形状
% 但带有高频纹波。
iac = sin(pif_linet) * (I_peak) + …
0.5 * sin(pif_lint) . sawtooth(pif_sw
t, 0.5);

% — 3. 绘图 —
figure(‘Color’, ‘white’, ‘Position’, [100, 100, 600, 800]);

% 绘制电压
subplot(3,1,1);
plot(t, vac, ‘m’, ‘LineWidth’, 1.5); % 紫色线
grid on;
title(‘输入交流电压’);
ylabel(‘U/V’);
legend(‘vac’, ‘Location’, ‘northeast’);
ylim([-250, 250]);
xlim([t_start, t_end]);

% 绘制交流电流
subplot(3,1,2);
plot(t, iac, ‘g’, ‘LineWidth’, 1); % 绿色线
grid on;
title(‘输入交流电流’);
ylabel(‘I/A’);
legend(‘iac’, ‘Location’, ‘northeast’);
% 填充颜色以匹配图片风格 (可选)
hold on;
area(t, iac, ‘FaceColor’, [0.6 1 0.6], ‘EdgeColor’, ‘none’, ‘BaseValue’, 0);
hold off;
xlim([t_start, t_end]);

% 绘制电感电流
subplot(3,1,3);
plot(t, iL1, ‘b’, ‘LineWidth’, 1.2); hold on;
plot(t, iL2, ‘r’, ‘LineWidth’, 1.2);
grid on;
title(‘两相电感电流’);
ylabel(‘I/A’);
legend(‘iL1’, ‘iL2’, ‘Location’, ‘northeast’);
ylim([0, 8]); % 电感电流通常在正半轴(整流后)
xlim([t_start, t_end]);

代码逻辑解析

电压 (vac):最简单的正弦波 sin(pi50*t)。
电感电流 (iL1, iL2):
这是交错并联的核心。它们的平均值应该是整流后的正弦半波(全为正)。
为了体现“交错”,我在代码中让 iL2 的高频纹波与 iL1 反相(一个加纹波,一个减纹波),这样两者叠加时高频纹波会相互抵消,体现了交错并联降低纹波的优势。
输入电流 (iac):这是总的交流侧电流。它应该是跟随电压的正弦波(有正有负),并且上面叠加了高频开关噪声。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐