首页 > 其他分享 >m基于PID控制器的电动车充放电系统的simulink建模与仿真

m基于PID控制器的电动车充放电系统的simulink建模与仿真

时间:2023-06-14 23:32:42浏览次数:41  
标签:simulink end 充放电 T2 电动汽车 PID ans 1000

1.算法仿真效果 matlab2022a仿真结果如下: 1.png2.png4.png3.png5.png

2.算法涉及理论知识概要 随着全球经济的增长、人口的增多,能源消耗速率越来越快。而化石类能源总量有限,难以满足未来人类日益庞大的能源需求。此外,环境污染、能源危机和能源安全等因素将电动汽车推上了历史的舞台,成为了全世界研究和关注的热点。和传统汽车产业相比,电动汽车具有环保和节能的双重效益。特别是纯电动汽车在能量转换效率和尾气排放等方面具有明显优势,是未来汽车产业重要的发展方向。电动汽车作为一种低碳、清洁的交通工具,受到世界各国政府的高度关注。但是在电动汽车中电池是否能够合理充放电是制约电动汽车能否得到广泛发展的重要因素[01]。

随着计算机技术的快速发展,基于计算机建模的仿真手段在电动汽车研发阶段充分显示了较强的经济适用性。采用计算机仿真技术可以大大缩减实际工作中系统开发时间,节约研发成本,同时可以有效的规避实验过程中可能存在的安全隐患。本课题将要研究的电动车电池充放电控制策略是电动车充放电技术的一个重要领用领域[02]。因此,通过计算机仿真技术对电动汽车电池充放电的控制策略进行研究对于电动车的发展有着重大的实际作用和巨大的经济价值。

    随着全球经济的增长、人口的增多,传统的化石类能源难以满足未来人类日益庞大的能源需求。因此,对于新能源的使用有着越来越大的需求。和传统汽车产业相比,电动汽车具有环保和节能的双重效益。特别是纯电动汽车在能量转换效率和尾气排放等方面具有明显优势,是未来汽车产业重要的发展方向。而对电动车电池的充放电的控制策略则是电动汽车研究的一个重要环节。对电动汽车蓄电池充放电控制策略的基本原理进行了介绍,包括PID控制器,基于PID和PWM充放电控制策略以及蓄电池模型。并通过SIMULINK对相关原理进行了建模,设计了一个基于SIMULINK电动车充放电控制策略仿真模型。对该仿真模型进行了仿真分析,分别对充电过程和放电过程进行了仿真验证分析,仿真结果验证了充放电控制策略的正确性。

  蓄电池种类可以分为:铅酸蓄电池、镍氢蓄电池、镍氢蓄电池、锂离子电池、镍镉电池、钠硫蓄电池、镍锌蓄电池、飞轮电池[12]。其中较为常用的电池类型为锂离子电池、铅酸蓄电池等。这里以锂离子电池为例对蓄电池的基本原理进行介绍。

   锂离子电池作为一种新型高电压、高能量密度的可充电电池,其独特的物理和电化学性能,具有广泛的民用(如新能源汽车)前景。其突出的特点是:重量轻、储能大、无污染、无记忆效应、使用寿命长。在同体积重量情况下,锂电池的蓄电能力是镍氢电池的1.6倍,是镍镉电池的4倍,开发前景非常光明。同时它是一种真正的绿色环保电池,不会对环境造成污染,是目前最佳的能应用到电动车上的电池。

电动汽车的充电控制结构框图如下图所示:

6.png

   该控制器结构的基本原理为在充电控制阶段,将输入电流 信号和设定的参考电流信号进行比较,经 PID 调节器后与三角波比较,产生输出信号控制开关的通断,实现恒流充电。  

   电动汽车的放电模式采用电流负反馈控制方式,其结构和充电控制结构相似,放电控制结构框图如下图所示:

7.png

    该控制器结构的基本原理为根据需求,设定放电参考电流 。电池放电电流实测值 与参考值进行比较,产生控制信号控制开关管的开通时间来控制放电电流的稳定,实现恒电流放电的目的。最后,根据上述原理介绍,最终基于PID的PWM充放电控制结构的SIMULINK建模如下图所示:

8.png 3.MATLAB核心程序

9.png10.png

PWM2 = ans.Data;
T2   = ans.Time;
figure;
subplot(211);
plot(T2(1:100:end),PWM2(1:100:end),'linewidth',2);
grid on
xlabel('t/s');
title('charge PWM');
axis([0,6,0,1.2]);
 
load PWM2.mat
PWM2 = ans.Data;
T2   = ans.Time;
subplot(212);
plot(T2(1:1000:end),PWM2(1:1000:end),'linewidth',2);
grid on
xlabel('t/s');
title('discharge PWM');
axis([0,6,0,1.2]);
 
 
 
load speed.mat
speed2 = ans.Data;
T2     = ans.Time;
figure;
plot(T2(1:1000:end),max((max(speed2)-speed2(1:1000:end)-50)/1000,0),'linewidth',2);
grid on
xlabel('t/s');
title('speed');
axis([2.5,6,0,0.8]);
 
 
load I.mat
I = ans.Data;
T2   = ans.Time;
figure;
subplot(211);
plot(T2(10000:1000:end),I(10000:1000:end),'linewidth',2);
grid on
xlabel('t/s');
title('I/A');
axis([0,6,-20,50]);
 
load V.mat
V = ans.Data;
T2   = ans.Time;
subplot(212);
plot(T2(10000:1000:end),V(10000:1000:end),'linewidth',2);
grid on
xlabel('t/s');
title('U/V');
axis([0,6,0,250]);
 
load V.mat
V = ans.Data;
T2   = ans.Time;
subplot(212);
plot(T2(10000:1000:end),V(10000:1000:end),'linewidth',2);
grid on
xlabel('t/s');
title('U/V');
axis([0,6,0,250]);
load SOCs.mat
t    = ans(1,:);
s   = ans(2,:);
figure;
plot(t(10000:1000:end),s(10000:1000:end),'linewidth',2);
grid on
xlabel('t/s');
title('SOC');
axis([0,6,0.4,0.6]);

标签:simulink,end,充放电,T2,电动汽车,PID,ans,1000
From: https://blog.51cto.com/matworld/6482673

相关文章

  • m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要      MPC(ModelPredictiveControl)模型预测控制算法是一种先进的控制算法,能够有效地解决非线性、多变量、约束条件等复杂系统的控制问题。永磁直线同步电机是一种高性能、高效率的电机,广泛应用于机......
  • 【每日一题】Problem 120F. Spiders
    原题解决思路通过给定的数据,将其构建称树,取其中最大的深度进行拼接,最后得到最终结果如何获取最大的深度以每个节点作为root构建树,然后取其中最大的深度#include<bits/stdc++.h>/***@paramvec*@paramcur当前节点*@paramlast上一个访问的节点*@param......
  • 学无止境--linux 代码中获取pid的方法
    #include<linux/resource.h>#include<unistd.h>#include<signal.h>pid_twd_pid;charline[8];FILE*cmd;intpri;/*创建管道并创建shell子进程,执行pidofbspInit0命令:‘bspInit0’是进程名*/cmd=popen("pidofbspInit0","r");/*从文件流......
  • kill -SIGHUP pid
    在Linux中,kill命令用于向指定进程发送信号。kill命令的格式为:CopyCodekill[signal][pid]其中signal可以是信号名称或者信号编号,pid是要发送信号的进程ID。特殊地,如果不指定signal,则默认是SIGTERM信号,表示请求进程正常退出。常用的几种信号及其编号和含义如下:......
  • mysql启动报can't create/write to file 'var/run/mysqld/mysqld.pid 错误解决办法
    msql启动报错,启动不了。进入mysql日志默认的路径为/var/log/mysqld.log查看日志,发现报错信息如下:can'tcreate/writetofile'var/run/mysqld/mysqld.pid解决办法:将/var/run/mysqld/权限赋给mysql执行以下命令即可:chown-Rmysql/var/run/mysqldchgrp-Rmysql/var/ru......
  • 根据端口找到进程pid
    [root@localhostluban]#netstat-anp|grep"8999"tcp600:::8999:::*LISTEN93234/./luban#这里的93234就是占用8999端口进程的pid[root@localhostluban]#ps-ef|greplubanroot9323491770016:......
  • PID控制算法:位置式PID & 增量式PID
    前面的文章已经介绍过什么是pid了,现在再回顾一下:PID:是过程控制中常用的一种针对某个对象或者参数进行自动控制的一种算法。这一篇分享不打算再深究pid的理论知识,如果有不懂或者对pid感兴趣的朋友,可以自行查阅资料,或者看我前面的文章。这次分享一下pid算法的常见实现和流程。主要简......
  • m基于FPGA的FOC控制器verilog实现,包括CLARK,PARK,PID及SVPWM,含testbench
    1.算法仿真效果QuartusII12.1(64-Bit) ModelSim-Altera6.6dStarterEdition 仿真结果如下:   2.算法涉及理论知识概要整个系统的结构如下所示: 1、采集到两相电流 2、经过clarke变换后得到两轴正交电流量, 3、经过旋转变换后得到正交的电流量Id、Iq......
  • simulink之S函数--实践
    若系统G(s)=1/(3s+2),乳选取状态变量x=y,则其状态空间方程可表示为dx=(-2x+u)/3且y=x,对系统建立S-函数,绘制该控制系统的阶跃响应曲线。零、分析,其实该题若不是要求建立S-函数,绘制系统的阶跃响应曲线,完全可以直接用系统的传递函数,采用如下方式,直接完成的。一、传递函数......
  • simulink之S函数
    simulink中用户可以使用已有的模块构建系统模型,如果遇到无法由内建模块构成的模型时,编写S-函数也能完成仿真,不但灵活,而且可以采用C,C++,Fortran或Ada云烟,只要生成dll文件,就可以在simulink中直接调用。S-函数允许用户向模型中添加自己编写的模块,按照简单规则,在S-函数添加算法。将......