手把手教你学simulink(31.18)--双向DCDC电源场景示例:基于双闭环控制的simulink双向dcdc应用电动汽车实例
项目实例:基于Simulink平台的双向开关转换器用于电动汽车(EV),采用了双重闭环调节
1. 项目背景
电动汽车(EV)的车载充电器和能量管理系统是确保车辆高效运行的关键组件。双向DC-DC变换器不仅可以在充电时将电网电能转换为适合电池的直流电,还可以在制动能量回收或电力回馈时将电池的能量反向传输给其他系统或电网。为了实现这一功能,并确保系统的稳定性和高效性,通常需要引入双闭环控制策略,即电压外环和电流内环。
- 电压外环:用于调节电池电压,并维持在预定范围。
- 电流内环:迅速反应负载变化并迅速调整以维持电流稳定,并保证系统的动态特性。
采用双闭环调节策略的系统能够实现对电压与电流的精准调控;确保充电与放电过程既稳定又高效;同时提升充电与放电过程的快速响应能力。
2. 项目目标
- 开发一个基于Simulink的双向DC-DC变换器模型,并将其应用于电动汽车的车载充电器及能量管理系统中。*
- 采用电压外环与电流内环相结合的双闭环控制策略来优化充放电过程。* 系统设计过程中重点考虑了系统的稳定性和高效性。*
- 通过仿真研究发现,在电压、电流以及能量转换效率等方面表现优异。*
- 在仿真实验中成功实现了制动能量回收系统的建模与验证。*
3. 系统架构
该系统由以下几个主要部分组成:
- 电源侧:模拟电网或外部电源(如太阳能板)。
- 双向DC-DC变换器:实现能量的双向流动,既可以充电也可以放电。
- 电池模型:模拟车载电池的行为。
- 双闭环控制器:
- 电压外环:PI控制器,用于调节电池电压。
- 电流内环:PI控制器,用于快速响应负载变化,稳定电流输出。
- PWM生成器:根据双闭环控制器的输出生成PWM信号,控制变换器的开关状态。
- 传感器:监测电池电压和电流,反馈给控制器。
- 负载:模拟电动汽车的其他用电设备(如电机驱动、照明等)。
- 制动能量回收系统:在制动过程中回收能量并存储到电池中。
4. 详细步骤
4.1 创建新模型
首先,打开MATLAB并创建一个新的Simulink模型文件。
matlab
% 创建新的Simulink模型
model_name = 'ev_bidirectional_dc_dc_dual_loop';
new_system(model_name);
4.2 添加必要的模块
从Simscape Electrical库中添加以下模块:
- 该系统模仿电网或外部电源的行为。\n
- 此转换器完成能量双向流动。\n
- 此模型复制车载电池的行为。\n
- 电流传感器用于监测电流;电压传感器用于监测电压。\n
- 此控制器负责电压外环控制。\n
- 此控制器负责电流内环控制。\n
- 此生成器生成PWM信号以控制变换器的开关状态。\n
- 此设备显示仿真结果。\n
- 此加载器模仿电动汽车电机负载行为。\n
- 此系统模仿制动能量回收系统行为。\n
matlab
% 添加模块
add_block('simscapes/Simscape Electrical/Specialized Power Systems/Sources/DC Voltage Source', [model_name '/DC Voltage Source']);
add_block('simscapes/Simscape Electrical/Specialized Power Systems/Power Electronics/Bidirectional DC-DC Converter', [model_name '/Bidirectional DC-DC Converter']);
add_block('simscapes/Simscape Electrical/Electrical Elements/Battery', [model_name '/Battery']);
add_block('simscapes/Simscape Electrical/Specialized Power Systems/Measurements/Current Measurement', [model_name '/Current Sensor']);
add_block('simscapes/Simscape Electrical/Specialized Power Systems/Measurements/Voltage Measurement', [model_name '/Voltage Sensor']);
add_block('simulink/Continuous/PI Controller', [model_name '/PI_Voltage']); % 电压外环控制器
add_block('simulink/Continuous/PI Controller', [model_name '/PI_Current']); % 电流内环控制器
add_block('simscapes/Simscape Electrical/Specialized Power Systems/Control & Measurements/Pulse & Signal Generators/PWM Generator (2-Level)', [model_name '/PWM Generator']);
add_block('simulink/Sinks/Scope', [model_name '/Scope']);
add_block('simscapes/Simscape Electrical/Machines/AC Motors/Asynchronous Machine SI Units', [model_name '/Motor Load']); % 电机负载
add_block('simscapes/Simscape Electrical/Specialized Power Systems/Power Electronics/Boost Converter', [model_name '/Brake Energy Recovery System']); % 制动能量回收系统
通过依次排列各个模块进行连接,从而形成完整的电路系统.特别强调在双闭环控制中的具体连接方式,并确保制动能量回收系统的有效对接.
matlab
% 连接模块
add_line(model_name, 'DC Voltage Source/1', 'Bidirectional DC-DC Converter/1'); % 电源到变换器
add_line(model_name, 'Bidirectional DC-DC Converter/1', 'Battery/1'); % 变换器到电池
add_line(model_name, 'Battery/1', 'Bidirectional DC-DC Converter/2'); % 电池到变换器
add_line(model_name, 'Battery/1', 'Voltage Sensor/1'); % 电池电压监测
add_line(model_name, 'Battery/1', 'Current Sensor/1'); % 电池电流监测
% 电压外环
add_line(model_name, 'Voltage Sensor/1', 'PI_Voltage/1'); % 电池电压反馈到电压外环控制器
add_line(model_name, 'PI_Voltage/1', 'PI_Current/Setpoint'); % 电压外环输出作为电流内环的参考
% 电流内环
add_line(model_name, 'Current Sensor/1', 'PI_Current/1'); % 电池电流反馈到电流内环控制器
add_line(model_name, 'PI_Current/1', 'PWM Generator/DutyCycle'); % 电流内环输出控制PWM占空比
% PWM控制
add_line(model_name, 'PWM Generator/1', 'Bidirectional DC-DC Converter/3'); % PWM信号控制变换器
% 电机负载和制动能量回收
add_line(model_name, 'Battery/1', 'Motor Load/1'); % 电池到电机负载
add_line(model_name, 'Motor Load/1', 'Brake Energy Recovery System/1'); % 电机负载到制动能量回收系统
add_line(model_name, 'Brake Energy Recovery System/1', 'Bidirectional DC-DC Converter/2'); % 制动能量回收系统到变换器
% 显示结果
add_line(model_name, 'Voltage Sensor/1', 'Scope/1'); % 显示电池电压
add_line(model_name, 'Current Sensor/1', 'Scope/2'); % 显示电池电流
4.4 配置模块参数
在第4.4.1节中设置DC电压源时,请指定其电压值以便模拟电网环境或其他外部电源配置。例如,请将其设置为400伏特直流电位器。
matlab
set_param([model_name '/DC Voltage Source'], 'Amplitude', '400');
4.4.2 双向DC-DC转换器配置
设置双向DC-DC转换器的参数以实现能量双向传输功能。通过采用默认设置即可保证系统稳定运行。
matlab
set_param([model_name '/Bidirectional DC-DC Converter'], 'SwitchingFrequency', '100000'); % 开关频率为100kHz
设置电池模型的相关参数涉及初始电压、容量和内阻等要素。此处设定电池的额定电压为300V,并将储存容量设定为50Ah,并将电阻值设定为0.1Ω。
matlab
set_param([model_name '/Battery'], 'InitialVoltage', '300'); % 初始电压为300V
set_param([model_name '/Battery'], 'Capacity', '50'); % 容量为50Ah
set_param([model_name '/Battery'], 'InternalResistance', '0.1'); % 内阻为0.1Ω
4.4.4 PI Controllers (双闭环控制)
- 电压调节外环控制器:用于维持电池电压稳定,并使其保持在预设工作范围。根据具体情况进行优化,可以分别调整比例系数Kp和积分系数Ki。
- Kp = 50
- Ki = 500
- 电流内环控制器:迅速响应负载波动,并维持稳定的电流值以保证系统的动态特性。根据具体应用场景可以选择合适的参数设置来调节比例增益(Kp)与积分增益(Ki)。
- Kp = 100
- Ki = 1000
matlab
% 电压外环控制器
set_param([model_name '/PI_Voltage'], 'P', '50'); % 电压外环的比例增益
set_param([model_name '/PI_Voltage'], 'I', '500'); % 电压外环的积分增益
% 电流内环控制器
set_param([model_name '/PI_Current'], 'P', '100'); % 电流内环的比例增益
set_param([model_name '/PI_Current'], 'I', '1000'); % 电流内环的积分增益
4.4.5 PWM Waveform Generator
通过调整PWM波形发生器的参数设置来实现合适的波形输出,并保证其能够产生相应的PWM信号。其中将PWM频率设定为100kHz,并将初始占空比设为50%以满足系统需求。
matlab
set_param([model_name '/PWM Generator'], 'Frequency', '100000'); % PWM频率为100kHz
set_param([model_name '/PWM Generator'], 'DutyCycle', '0.5'); % 初始占空比为0.5
在4.4.6节中设置了与电机负载相关的参数,并模仿电动汽车电机的工作模式。本节假设电机的最大功率设定为100kW,并且同时设定额定转速为3000rpm以确保系统运行效率。
matlab
set_param([model_name '/Motor Load'], 'NominalPower', '100e3'); % 最大功率为100kW
set_param([model_name '/Motor Load'], 'NominalSpeed', '3000'); % 额定转速为3000rpm
4.4.7 制动能量回收系统
设置制动能量回收系统的关键参数设置,旨在实现制动过程中将多余的能量反馈回电池系统。本系统采用Boost变换器技术构建能量回收模块。
matlab
set_param([model_name '/Brake Energy Recovery System'], 'SwitchingFrequency', '100000'); % 开关频率为100kHz
4.4.8 Scope
配置Scope的参数,确保能够清晰地显示电池电压和电流的变化。
matlab
set_param([model_name '/Scope'], 'NumInputs', '2'); % 两个输入通道
set_param([model_name '/Scope'], 'TimeRange', '0.01'); % 时间范围为0.01秒
确定仿真终止时间和选择求解器类型。其中将仿真时间设定为0.05秒,并采用ode23tb求解器以提升数值稳定性。
matlab
set_param(model_name, 'StopTime', '0.05'); % 仿真时间为0.05秒
set_param(model_name, 'Solver', 'ode23tb'); % 使用ode23tb求解器
进行仿真运行并观察结果。Simulink会自动完成仿真,并在Scope中呈现电池电压和电流的波动情况。
matlab
% 运行仿真
sim(model_name);
% 打开Scope查看结果
open_system([model_name '/Scope']);
5. 分析结果
5.1 电池电压波形
- 充能模式:电池在充能过程中其工作状态下的运行参数设置为逐步升高的状态,并最终稳定在额定充能电压值。
- 耗电模式:在耗电状态下运行时的工作参数设置为逐步降低的状态,并最终稳定在额定耗电电压值。
监测电池电流的变化情况,在充电过程中必须呈现正值,在放电过程中则为负值。该控制器需具备迅速追踪负载变化的能力,并以维持电流的稳定运行为目标。
- 充能状态:采用正向电流表明电池已处于充电模式。
- 放能状态:采用负向电流表明电池已处于放电模式。
- 动能回收装置:在制动时采用正向电流表征能量已被返还至电池。
评估电池电压与电流的纹波特性,并要求其维持在可接受的范围内;若出现显著纹波,则可能对电池寿命及系统稳定性造成负面影响;采用双闭环控制策略,在电流内环环节中实施相应的调节措施,则有助于有效降低纹波幅值
对系统能量转换效率进行评估,并深入探讨不同工作模式(包括充电与放电)的能量转换效率变化情况。通过对比输入功率与输出功率的变化来分析系统的能量转化水平。其中采用双闭环控制策略能够在电流内环环节中实现更为精准的电流控制,在此过程中可有效减少能量损耗。
5.5 制动能量回收效果
分析制动能量回收系统的性能表现, 以确保其在运行过程中的高效能运作. 通过实时监测刹车过程中的电流与电压波形, 可对能量回收效率进行动态评估. 当系统处于制动状态时, 观察电池电路中的电流值, 其正值表明成功将多余动能传递回电池存储系统.
6. 进一步优化和分析
6.1 动态响应
调节系统的工作参数(包括负载值或输入电压)以监测其动态响应特性,并分析系统运行时的表现。通过施加突变性的工作条件(例如突然增加或减少负荷)来验证系统的抗干扰能力。采用双闭环控制策略能够明显增强系统动态响应速度,在电流内环电路的支持下使系统能够更快地跟踪并适应外部负载的变化
6.2 参数优化
探索不同配置的PI控制器参数设置以达成最佳控制效果的目标。通过实际试验或者借助MATLAB提供的自动优化工具pidTuner来进行调节。特别地,在电流内环系统中进行合理参数设定时,则能显著提升系统的动态响应能力和稳定性保障。
改写说明
采用热模型来评估系统温度上升情况,并通过在模型中引入温度传感器和热模型来模拟变换器和电池的发热情况。双闭环控制机制有助于减少电流波动程度,并进而降低系统发热水平以延长系统的使用寿命
6.5 故障保障
在系统中配置相应的故障防护功能,并涵盖包括但不限于过电压抑制、电流过高时的切断以及短路时的保险装置等基本保障措施。模型中可集成限幅电路和断路开关组件以实现上述功能目标,并能有效防止在异常运行状态下引发不可预见的风险。通过双闭环控制系统设计,在发生异常时能够迅速识别并启动相应的防护措施以保障系统的稳定运行状态
7. 总结
这个项目实例展示了如何使用Simulink和Simscape Electrical构建一个带有双闭环控制的双向DC-DC变换器,用于电动汽车的车载充电器和能量管理系统。通过引入双闭环控制,系统可以更精确地控制电压和电流,确保充电和放电过程的稳定性和高效性。此外,制动能量回收系统的加入使得车辆在制动时能够有效回收能量,进一步提高能源利用效率。
- 电压外环:作为调节系统的核心环节,在预定工作电压范围内稳定运行。
- 电流内环:对负载波动做出迅速反应,并维持恒定的输出电流以提升系统的动态响应能力。
该系统采用双闭环控制策略,在面对多变的工况挑战时能够更有效地实现更高的效率与稳定性能。
