news 2026/6/23 18:48:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
半桥LLC谐振变换器软启动闭环仿真设计

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

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

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

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

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

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

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

三种仿真模型的搭建

开环仿真模型

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

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

% 开环仿真设置 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谐振变换器仿真模型。我们定义了仿真时间和采样时间,添加了各种模块并设置了参数,最后连接好模块并运行仿真。通过这个开环模型,我们可以初步观察电路的基本运行情况。

闭环仿真模型

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

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

% 闭环仿真设置 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);

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

软启动+闭环仿真模型

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

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

% 软启动+闭环仿真设置 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谐振变换器的仿真设计哦。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:45:18

探索ICEEMDAN算法:信号处理的利器

【05】ICEEMDAN算法是一种用于信号处理的高级方法,是经验模态分解(EMD)的一个改进版本。 ICEEMDAN的主要目的是更有效地分解复杂信号为一系列本征模函数(Intrinsic Mode Functions,IMFs)。 以下是ICEEMDAN算…

作者头像 李华
网站建设 2026/6/22 23:53:04

数控冷拔丝调直机程序:送料与切刀双伺服的三菱PLC实现

数控冷拔丝调直机程序,送料,切刀双伺服,三菱PLC,艾莫讯触摸屏最近在做一个数控冷拔丝调直机的项目,用到了三菱PLC和艾莫讯触摸屏,并且采用了送料和切刀双伺服系统。今天就和大家分享一下这个项目的一些心得和相关程序的…

作者头像 李华
网站建设 2026/6/23 10:53:00

基于运动学模型的非线性模型预测控制轨迹跟踪纯代码版本:开启学习 NMPC 的奇妙之旅

基于运动学模型的非线性模型预测控制轨迹跟踪纯代码版本 1.实时的曲线跟踪动画2.重要参数一键出图3.详细的代码分区及重点注释进行了误差分析以及曲线对比,代码计算了横向跟踪误差最大值,横向跟踪误差均方根值5.适合学习非线性模型预测控制(NMPC)、车辆运…

作者头像 李华
网站建设 2026/6/23 5:53:58

Linux命令-gdb命令(命令行调试工具)

🧭 说明 GDB(GNU Debugger)是Linux下功能强大的命令行调试工具,主要用于C、C等由GNU编译器集合(GCC)编译的程序。它允许开发者在程序运行时检查其内部状态,帮助定位和修复错误。 下面是一个GDB核…

作者头像 李华
网站建设 2026/6/22 22:51:46

泊车场景搭建与最优算法选取

泊车场景搭建和最优算法选取。 rrt,双向rrt和混合a算法在六个方面的对比及相应算法路径规划。 。 。 。在智能驾驶领域,泊车是一个重要的应用场景。要实现智能泊车,首先得搭建合适的泊车场景,然后选取最优的算法来完成路径规划。今…

作者头像 李华
网站建设 2026/6/23 17:00:15

CNN - BiGRU - Attention 多输出回归:适合小白的 Matlab 实现

CNN-BiGRU-Attention多输出回归 基于卷积神经网络(CNN)-双向门控循环单元(BiGRU)-注意力机制的数据多输出回归预测,Matlab代码,可直接运行,适合小白新手(多输入多输出回归预测) 程序已经调试好,仅需根据需要修改outdim值(输出个数…

作者头像 李华