【毕业设计】55-动力电池充电系统设计(mtalab+proteus仿真+答辩PPT+答辩论文+英文文献)

【毕业设计】55-动力电池充电系统设计(mtalab+proteus仿真+答辩PPT+答辩论文+英文文献)

资料要求

包含此题目毕业设计全套资料:
资料包含:毕业设计全套资料(精品)
原理图工程文件
原理图截图
仿真模型工程文件
源代码工程
仿真截图
搭建视频
答辩论文低重复率文档,25196字
英文文献及翻译
答辩PPT
visio流程图工程
matlab仿真截图

任务书

1.选定某一类动力电池(组)为研究对象,分析电池特性,建立动力电池模型;
2.研究动力电池充电方法,确定充电幅值、充电时间、放电幅值及放电时间;
3.搭建动力电池充电系统平台,包括单相桥式整流电路、全桥DC-DC电路、变压器、功率开关管等;
4.利用Simulink搭建软件模型包括SPWM模型、PID控制模型和控制策略模型。
5.分析动力电池充电系统常见故障及处理方法。

设计说明书

摘要

现在科技水平发展巨大,并且新能源技术也得到了相应发展,随着油价的增高以及社会的进步,新能源技术也成为了目前汽车行业汽车领域中需要改进的方向。随着国家政策以及世界能源的紧缺,新能源汽车已经开始大规模生产和发展。动力电池充电管理系统也成为了管理中最为核心的部分。
本文题目为动力电池充电系统设计,通过对动力电池的发展背景以及研究情况详细的了解后,对磷酸铁锂电池的充放电特性、电池优势以及内部电池结构以及工作原理掌握。电池的基本参数主要有电池的容量、电压以及存储性能与放电性能。针对与动力电池组特性设计出硬件电路方案,使用电压电流检测传感器、LCD显示器、按键等核心部件对系统进行设计。完成整个系统的全部电路模块合计,根据电路模块实现系统的控制电气部分设计,完成硬件电路的逻辑电路设计与验证。最后使用MATLAB对系统的核心功能进行仿真,SPWM模型搭建、PID控制模型以及控制策略模块来优化系统的软件部分。
本文还针对动力电池组常见故障分析、并且引用目前已经确认的实际故障案例,可以根据故障案例对动力电池组进行故障分析。本次设计通过硬件、软件以及仿真软件MATLAB来对系统进行设计与验证,充分的对动力电池充电系统进行研究。可对此系统进行推广。

设计框架架构

前言 1
第一章 绪论 2
第一节 概述 2
第二节 国内研究 现状 2
第三节 国外研究现状 3
第三节 本文的主要研究内容 4
第四节 本章小结 5
第二章 充电系统方案分析 6
第一节 磷酸铁锂电池的工作特性介绍 6
一、磷酸铁锂电池的充放电特性 6
二、磷酸铁锂离子电池优势 8
第二节 磷酸铁锂离子电池的结构与工作原理 8
第三节 动力蓄电池的基本参数介绍 10
一、动力蓄电池的容量 10
二、动力蓄电池的电压 10
三、储存性能和自放电 10
第四节 系统需要实现的功能 11
第五节 传感器的功能和选择 12
一、电流、电压信号采集器的功能和选择 12
二、A/D转换器的功能和选择 12
三、单片机的功能和选择 12
四、显示屏的功能和选择 13
第六节 系统方案确定 14
第七节 本章小结 14
第四章 硬件设计 15
第一节 单片机最小系统设计 15
一、STC89C52单片机介绍 15
二、单片机最小系统设计 16
第二节 按键电路设计 16
第三节 A/D功率转换电路设计 17
第四节 全桥整流电路设计 17
第五节 DC-DC转换电路设计 18
第六节 显示电路设计 18
第七节 报警电路设计 19
第八节 总电路设计 19
第九节 本章小结 20
第五章 软件设计 21
第一节 主函数程序设计 21
第二节 电流、电压信号采集程序设计 23
第三节 A/D转换程序设计 23
第四节 LCD液晶显示器程序设计 24
第五节 自动断电程序设计 25
第六节 充电程序设计 25
第七节 软件仿真及结果 26
第十节 本章小结 28
第五章 系统的仿真实现 29
第一节 Matlab仿真软件介绍 29
一、MATLAB介绍 29
二、SIMULINK简介 30
第二节 仿真模型搭建 30
一、SPWM仿真模型搭建 30
二、PID控制仿真模型搭建 32
第四节 动力电池常见充电问题故障分析 33
一、动力电池故障分析方法 33
二、常见故障案例分析 34
第五节 本章小结 35
结 论 36
致 谢 37
参考文献 38
附 录 40
一、英文原文 40
二、英文翻译 44
三、工程图纸 49

在这里插入图片描述

设计说明书及设计文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
字数:25196
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

源码展示

#include <reg52.h>
#include <intrins.h> 
#include <math.h>
#define uchar  unsigned char
#define uint   unsigned int
#include "1602.h"
#include "ad.h"	
//定义按键
sbit key1=P3^4;//设置
sbit key2=P3^5;//+
sbit key3=P3^6;//-
//蜂鸣器
sbit    beer=P3^7;
//喇叭控制
void beerc()
{
  beer=0;_delay_ms(60);
  beer=1;_delay_ms(60);
}
//输出电路	
sbit out=P2^7;
//充电电压和电流
uint u1=0;
uint i1=0;
//被充电电压和电流
uint u2=0;
uint i2=0;
//被充电电压和电流目标值
uint ux=1150;//
uint ix=50;//
//显示模式
uchar  moshi=0;
//显示充电参数------------------------------
void xianshi0()
{
   u1=adc0832(0);
   u1=u1*200/44;
   i1=adc0832(1);
   u2=adc08322(0)*10/51*25;
   i2=adc08322(1)*200/255;
	//充电电压和电流
   lcd1602_adr(0x00); 
   lcd1602_writenumber('1');
   lcd1602_writenumber(':');
   lcd1602_writenumber(0x30+u1%10000/1000);
   lcd1602_writenumber(0x30+u1%1000/100);	 
   lcd1602_writenumber(0x30+u1%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+u1%10);	 
   lcd1602_writenumber('v');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(0x30+i1%1000/100);	 
   lcd1602_writenumber(0x30+i1%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+i1%10);	 
   lcd1602_writenumber('A');
   //被充电电压和电流
   lcd1602_adr(0x40); 
   lcd1602_writenumber('2');
   lcd1602_writenumber(':');
   lcd1602_writenumber(0x30+u2%10000/1000);
   lcd1602_writenumber(0x30+u2%1000/100);	 
   lcd1602_writenumber(0x30+u2%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+u2%10);	 
   lcd1602_writenumber('v');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(0x30+i2%1000/100);	 
   lcd1602_writenumber(0x30+i2%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+i2%10);	 
   lcd1602_writenumber('A');
   //充电
   if((u2>=ux)&&(i2>=ix))	out=1;
   else out=0;
  
}
//------------------------------
//设置目标电压------------------------------
void xianshi1()
{
   lcd1602_adr(0x00); 
   lcd1602_writenumber('S');
   lcd1602_writenumber('E');
   lcd1602_writenumber('T');
   lcd1602_writenumber(' ');
   lcd1602_writenumber('u');
   lcd1602_writenumber('x');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');

   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');

   lcd1602_adr(0x40); 
   lcd1602_writenumber('-');
   lcd1602_writenumber('-');
   lcd1602_writenumber(0x30+ux%10000/1000);
   lcd1602_writenumber(0x30+ux%1000/100);	 
   lcd1602_writenumber(0x30+ux%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+ux%10);	 
   lcd1602_writenumber('v');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(0x30+ix%1000/100);	 
   lcd1602_writenumber(0x30+ix%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+ix%10);	 
   lcd1602_writenumber('A');
   if(key2==0){ux=(ux+1)%500;while(key2==0);}
   if(key3==0){ux=(ux-1)%500;while(key3==0);}
}
//------------------------------
//设置目标电流------------------------------
void xianshi2()
{
   lcd1602_adr(0x00); 
   lcd1602_writenumber('S');
   lcd1602_writenumber('E');
   lcd1602_writenumber('T');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber('i');
   lcd1602_writenumber('x');
   lcd1602_writenumber(' ');

   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(' ');

   lcd1602_adr(0x40); 
   lcd1602_writenumber('-');
   lcd1602_writenumber('-');
   lcd1602_writenumber('-');
   lcd1602_writenumber(0x30+ux%1000/100);	 
   lcd1602_writenumber(0x30+ux%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+ux%10);	 
   lcd1602_writenumber('v');
   lcd1602_writenumber(' ');
   lcd1602_writenumber(0x30+ix%1000/100);	 
   lcd1602_writenumber(0x30+ix%100/10);	 
   lcd1602_writenumber('.');
   lcd1602_writenumber(0x30+ix%10);	 
   lcd1602_writenumber('A');
   if(key2==0){ix=(ix+1)%800;while(key2==0);}
   if(key3==0){ix=(ix-1)%800;while(key3==0);}
}

//主函数
void main()
{ 
  _delay_ms(1);
  //初始化
  lcd1602_init();
  while(1)
  {
   if(moshi==0)xianshi0();
   if(moshi==1)xianshi1();
   if(moshi==2)xianshi2();
   if(key1==0){beerc();moshi=(moshi+1)%3;while(key1==0);}
 } 
}

 

猜你喜欢

转载自blog.csdn.net/cqtianxingkeji/article/details/135011936
今日推荐