半桥LLC谐振变换器软启动闭环仿真设计

半桥LLC谐振变换器软启动闭环仿真设计【附设计文档】 配套文档非常详细可以参考此文档及仿真设计不同功率电压等级的LLC谐振变换器 依据文档设计电路参数,在Matlab上进行开环、闭环、闭环+软启动三个仿真模型 整理好的设计文档:分析了稳态特性。 随后给出了谐振槽谐振元件参数的设计步骤,并对参数进行了完整设计。 在此基础上,对半桥 LLC 谐振电路进行仿真建模分析,面对电压闭环系统出现的浪涌电流问题,在电路启动时设置软启动方式,有效降低了浪涌电流。 [1]开环仿真模型 [2]闭环仿真模型 [3]软启动+闭环仿真模型

最近在研究半桥LLC谐振变换器软启动闭环仿真设计,这里跟大家分享一下我的经验,同时还有配套的详细设计文档哦。有了这份文档,我们可以参考它去设计不同功率电压等级的LLC谐振变换器。

前期准备:依据文档设计电路参数

在开始仿真之前,我们得先依据文档来设计电路参数。文档里详细分析了稳态特性,还给出了谐振槽谐振元件参数的设计步骤,并且对参数进行了完整设计。这就好比盖房子之前要先有详细的设计图纸一样,电路参数的设计就是我们后续仿真的基础。

假设我们已经根据文档得到了一些关键的参数,比如谐振电感 \(Lr\)、谐振电容 \(Cr\) 等。在Matlab里,我们可以用变量来表示这些参数,代码如下:

matlab 复制代码
% 定义谐振电感和电容
L_r = 1e-3; % 谐振电感,单位:H
C_r = 100e-6; % 谐振电容,单位:F

这里我们简单定义了谐振电感为 \(1mH\),谐振电容为 \(100\mu F\)。这些参数的具体数值要根据实际的设计需求和文档中的计算结果来确定。

三种仿真模型的搭建

开环仿真模型

开环仿真模型是最基础的,它不考虑输出反馈,只是按照我们设定的输入条件来运行电路。在Matlab中,我们可以利用Simulink来搭建这个模型。首先打开Simulink,添加电源、半桥LLC谐振电路、负载等模块,然后按照电路连接方式进行连接。

下面是一个简单的开环仿真代码示例:

matlab 复制代码
% 开环仿真设置
sim_time = 0.1; % 仿真时间,单位:s
Ts = 1e-6; % 采样时间,单位:s

% 创建Simulink模型
new_system('open_loop_LLC');
open_system('open_loop_LLC');

% 添加模块
add_block('simulink/Sources/Constant', 'open_loop_LLC/Input_Voltage');
add_block('powerlib/Electrical Sources/Voltage Source', 'open_loop_LLC/Voltage_Source');
add_block('powerlib/Elements/Series RLC Branch', 'open_loop_LLC/Resonant_Tank');
add_block('powerlib/Loads/Resistive Load', 'open_loop_LLC/Load');
add_block('simulink/Sinks/Scope', 'open_loop_LLC/Output_Scope');

% 设置模块参数
set_param('open_loop_LLC/Input_Voltage', 'Value', '200'); % 输入电压为200V
set_param('open_loop_LLC/Voltage_Source', 'Voltage', 'Input_Voltage');
set_param('open_loop_LLC/Resonant_Tank', 'R', '0', 'L', num2str(L_r), 'C', num2str(C_r));
set_param('open_loop_LLC/Load', 'Resistance', '100'); % 负载电阻为100Ω

% 连接模块
add_line('open_loop_LLC', 'Input_Voltage/1', 'Voltage_Source/1');
add_line('open_loop_LLC', 'Voltage_Source/2', 'Resonant_Tank/1');
add_line('open_loop_LLC', 'Resonant_Tank/2', 'Load/1');
add_line('open_loop_LLC', 'Load/2', 'Voltage_Source/3');
add_line('open_loop_LLC', 'Load/1', 'Output_Scope/1');

% 运行仿真
sim('open_loop_LLC', sim_time);

这段代码创建了一个开环的半桥LLC谐振变换器仿真模型。我们定义了仿真时间和采样时间,添加了各种模块并设置了参数,最后连接好模块并运行仿真。通过这个开环模型,我们可以初步观察电路的基本运行情况。

闭环仿真模型

闭环仿真模型引入了输出反馈,通过对输出电压的监测和调节,让电路的输出更加稳定。在开环模型的基础上,我们添加一个电压控制器,根据输出电压和参考电压的差值来调整输入信号。

以下是简单的闭环仿真代码:

matlab 复制代码
% 闭环仿真设置
ref_voltage = 100; % 参考电压,单位:V
Kp = 0.1; % 比例系数
Ki = 0.01; % 积分系数

% 创建Simulink模型
new_system('closed_loop_LLC');
open_system('closed_loop_LLC');

% 添加模块
add_block('simulink/Sources/Constant', 'closed_loop_LLC/Ref_Voltage');
add_block('simulink/Math Operations/Sum', 'closed_loop_LLC/Error_Calculation');
add_block('simulink/Continuous/PID Controller', 'closed_loop_LLC/Voltage_Controller');
add_block('open_loop_LLC/Input_Voltage', 'closed_loop_LLC/Input_Voltage');
add_block('open_loop_LLC/Voltage_Source', 'closed_loop_LLC/Voltage_Source');
add_block('open_loop_LLC/Resonant_Tank', 'closed_loop_LLC/Resonant_Tank');
add_block('open_loop_LLC/Load', 'closed_loop_LLC/Load');
add_block('simulink/Sinks/Scope', 'closed_loop_LLC/Output_Scope');

% 设置模块参数
set_param('closed_loop_LLC/Ref_Voltage', 'Value', num2str(ref_voltage));
set_param('closed_loop_LLC/Voltage_Controller', 'P', num2str(Kp), 'I', num2str(Ki));

% 连接模块
add_line('closed_loop_LLC', 'Ref_Voltage/1', 'Error_Calculation/1');
add_line('closed_loop_LLC', 'Load/1', 'Error_Calculation/2');
add_line('closed_loop_LLC', 'Error_Calculation/3', 'Voltage_Controller/1');
add_line('closed_loop_LLC', 'Voltage_Controller/1', 'Input_Voltage/1');
add_line('closed_loop_LLC', 'Input_Voltage/1', 'Voltage_Source/1');
add_line('closed_loop_LLC', 'Voltage_Source/2', 'Resonant_Tank/1');
add_line('closed_loop_LLC', 'Resonant_Tank/2', 'Load/1');
add_line('closed_loop_LLC', 'Load/2', 'Voltage_Source/3');
add_line('closed_loop_LLC', 'Load/1', 'Output_Scope/1');

% 运行仿真
sim('closed_loop_LLC', sim_time);

在这个闭环模型中,我们添加了参考电压、误差计算模块和电压控制器。误差计算模块计算参考电压和输出电压的差值,电压控制器根据这个差值来调整输入电压,从而让输出电压更加接近参考电压。

软启动+闭环仿真模型

在闭环系统中,启动时可能会出现浪涌电流问题。为了解决这个问题,我们在电路启动时设置软启动方式。软启动就是让输入电压在一段时间内逐渐升高,而不是一下子达到设定值。

以下是软启动+闭环仿真代码:

matlab 复制代码
% 软启动+闭环仿真设置
start_time = 0; % 启动时间,单位:s
ramp_time = 0.01; % 软启动斜坡时间,单位:s
final_voltage = 200; % 最终输入电压,单位:V

% 创建Simulink模型
new_system('soft_start_closed_loop_LLC');
open_system('soft_start_closed_loop_LLC');

% 添加模块
add_block('simulink/Sources/Ramp', 'soft_start_closed_loop_LLC/Soft_Start');
add_block('closed_loop_LLC/Ref_Voltage', 'soft_start_closed_loop_LLC/Ref_Voltage');
add_block('closed_loop_LLC/Error_Calculation', 'soft_start_closed_loop_LLC/Error_Calculation');
add_block('closed_loop_LLC/Voltage_Controller', 'soft_start_closed_loop_LLC/Voltage_Controller');
add_block('closed_loop_LLC/Voltage_Source', 'soft_start_closed_loop_LLC/Voltage_Source');
add_block('closed_loop_LLC/Resonant_Tank', 'soft_start_closed_loop_LLC/Resonant_Tank');
add_block('closed_loop_LLC/Load', 'soft_start_closed_loop_LLC/Load');
add_block('simulink/Sinks/Scope', 'soft_start_closed_loop_LLC/Output_Scope');

% 设置模块参数
set_param('soft_start_closed_loop_LLC/Soft_Start', 'Time', num2str(start_time), 'Slope', num2str(final_voltage/ramp_time));

% 连接模块
add_line('soft_start_closed_loop_LLC', 'Soft_Start/1', 'Voltage_Source/1');
add_line('soft_start_closed_loop_LLC', 'Ref_Voltage/1', 'Error_Calculation/1');
add_line('soft_start_closed_loop_LLC', 'Load/1', 'Error_Calculation/2');
add_line('soft_start_closed_loop_LLC', 'Error_Calculation/3', 'Voltage_Controller/1');
add_line('soft_start_closed_loop_LLC', 'Voltage_Controller/1', 'Soft_Start/1');
add_line('soft_start_closed_loop_LLC', 'Voltage_Source/2', 'Resonant_Tank/1');
add_line('soft_start_closed_loop_LLC', 'Resonant_Tank/2', 'Load/1');
add_line('soft_start_closed_loop_LLC', 'Load/2', 'Voltage_Source/3');
add_line('soft_start_closed_loop_LLC', 'Load/1', 'Output_Scope/1');

% 运行仿真
sim('soft_start_closed_loop_LLC', sim_time);

在这个模型中,我们添加了一个斜坡信号源作为软启动模块。在启动阶段,输入电压会按照斜坡信号逐渐升高,从而有效降低了浪涌电流。

通过这三种仿真模型的搭建和运行,我们可以更深入地了解半桥LLC谐振变换器的工作特性,并且通过软启动的方式解决了闭环系统中的浪涌电流问题。有兴趣的小伙伴可以根据我提供的代码和思路,结合设计文档去尝试一下不同功率电压等级的LLC谐振变换器的仿真设计哦。

相关推荐
BAGAE3 个月前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
linux_carlos1 年前
#lwIP 的 Raw API 使用指南
stm32·单片机·mcu·物联网·rtdbs
牛马大师兄2 年前
嵌入式数据库SQLite 3配置使用详细笔记教程
数据库·笔记·vscode·物联网·sqlite·嵌入式实时数据库·rtdbs
晚风_END2 年前
音视频剪辑|剪辑神器FFMPEG的详细介绍和一些基本的参数介绍
单片机·ffmpeg·51单片机·模块测试·rtdbs·mpeg-1·mpeg-2
嵌入式开发白菜2 年前
嵌入式学习笔记(16)反汇编工具objdump
笔记·单片机·嵌入式硬件·学习·嵌入式实时数据库·rtdbs
嵌入式开发白菜2 年前
嵌入式学习笔记(1)ARM的编程模式和7种工作模式
arm开发·笔记·嵌入式硬件·学习·iot·嵌入式实时数据库·rtdbs