基于PID控制器的电动车充放电系统的simulink建模与仿真 对电动汽车蓄电池充放电控制策略的基本原理进行了介绍,包括 PID 控制器,基于 PID 和 PWM 充放电控制策略以及蓄电池模型。并通过 SIMULINK 对相关原理进行了建模,设计了一个基于 SIMULINK 电动车充放电控制策略仿真模型。对该仿真模型进行了仿真分析,分别对充电过程和放电过程进行了仿真验证分析,仿真结果验证了充放电控制策略的确性。 操作视频+paper+参考文献+simulink 整个系统主要分为三个部分,简化后的车辆模型,蓄电池,PID控制器。下面我们对这三个部分分别进行介绍说明和仿真分析。 蓄电池: 这个部分,主要使用了simulink内部自带的模块,其主要结构如下所示: 这里,一个是充电控制器,一个是放电控制器,他们都是通过PID控制器来实现的,双击这两个方框,可以看到控制器内部的结构:

说到电动车充放电控制,PID这个老伙计真是绕不过去。今天咱们就用Simulink搭个模型,看看这玩意儿到底怎么让电池乖乖听话。先剧透个重点——PID参数调好了比对象还贴心,调不好嘛...你懂的。

先看蓄电池模型,Simulink自带的Battery模块参数设置可是有讲究。SOC(荷电状态)算法选个经典的Peukert方程,内阻设置千万别用默认值,实际电池的充放电内阻曲线得用查表模块实现。这里给大家个代码片段:

battery.R0 = 0.05;  % 初始内阻
battery.Capacity = 200;  % Ah
battery.NominalVoltage = 360;
% 充放电内阻曲线用1D Lookup Table实现
battery.R_charge = [0.06 0.05 0.055]';
battery.R_discharge = [0.04 0.045 0.05]';

注意看内阻随SOC变化的非线性特性,这直接关系到后面控制器的设计难度。

基于PID控制器的电动车充放电系统的simulink建模与仿真 对电动汽车蓄电池充放电控制策略的基本原理进行了介绍,包括 PID 控制器,基于 PID 和 PWM 充放电控制策略以及蓄电池模型。并通过 SIMULINK 对相关原理进行了建模,设计了一个基于 SIMULINK 电动车充放电控制策略仿真模型。对该仿真模型进行了仿真分析,分别对充电过程和放电过程进行了仿真验证分析,仿真结果验证了充放电控制策略的确性。 操作视频+paper+参考文献+simulink 整个系统主要分为三个部分,简化后的车辆模型,蓄电池,PID控制器。下面我们对这三个部分分别进行介绍说明和仿真分析。 蓄电池: 这个部分,主要使用了simulink内部自带的模块,其主要结构如下所示: 这里,一个是充电控制器,一个是放电控制器,他们都是通过PID控制器来实现的,双击这两个方框,可以看到控制器内部的结构:

重点来了——PID控制器的双模结构。充电时用电压环作为外环,电流环当内环;放电时反过来。这种嵌套结构有个隐藏福利:自动实现恒流充电到恒压充电的平滑切换。看个典型的充电控制代码结构:

PID_Charge/
├── Voltage_Comparator
├── Anti_Windup_Module
└── PWM_Generator

特别注意抗饱和模块的处理,这里用了个Clamping抗饱和算法而不是简单的积分限幅。调试时发现,当电池接近满电状态时,积分项会累积巨大误差值,这时候Clamping算法能让积分项及时刹车。

说到PID参数整定,个人经验是先用Ziegler-Nichols法初调,然后根据电池特性微调。举个栗子:在充电控制中,当SOC>90%时要把比例系数Kp砍半,不然电压超调能给你表演个"过山车"。这里分享个调试时用的参数自整定脚本:

function auto_tune_PID(soc)
    if soc < 0.9
        Kp = 2.5; Ki = 0.8; Kd = 0.1;
    else
        Kp = 1.2; Ki = 0.3; Kd = 0.05;
    end
    set_param('PID_Charge','P',num2str(Kp));
    %...其他参数设置
end

仿真结果相当有趣:充电时电流曲线像个听话的乖宝宝,先恒流再恒压过渡平滑;放电遇到突加负载时,电压跌落不超过3%,恢复时间控制在200ms内。有个小插曲——最开始没加PWM死区控制,结果H桥上下管直通,仿真时直接冒烟警告(虽然Simulink里不会真炸)。

最后说个容易踩的坑:电池模型的采样时间和控制器采样时间不同步的话,会出现诡异的震荡。建议用Rate Transition模块做同步处理,别问我是怎么知道的...总之,这个模型拿去课程设计或者毕设绝对够用,想要更精准的话可以加入温度补偿模块,不过那就是另一个故事了。

Logo

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

更多推荐