直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx

上传人:b****4 文档编号:13718726 上传时间:2022-10-13 格式:DOCX 页数:15 大小:181.66KB
下载 相关 举报
直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx_第1页
第1页 / 共15页
直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx_第2页
第2页 / 共15页
直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx_第3页
第3页 / 共15页
直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx_第4页
第4页 / 共15页
直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx

《直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

直流电机PWM调速系统的设计与仿真Word文档下载推荐.docx

总体方案设计框图

三、硬件电路图

3.1PWM产生方式

(1)PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。

PWM可以应用在很多方面,比如:

电机调速、温度控制、压力控制等等。

在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开的电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。

通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。

正因为如此,PWM又被称为“开关驱动装置”。

PWM波形如图所示:

PWM波形图

设电机始终接通电路时,电机转速最大为,设占空比为:

则电机的平均转速为

其中指的是电机的平均速度,是指电机在全通电时最大速度,D指的是占空比。

由上面的公式可见,当改变占空比D时,就可以得到不同电机平均速度,从而达到调速的目的。

(2)单片机片内软件生成PWM信号

PWM信号采用单片机定时中断的方式软件模拟产生,这样实现比较容易,可以节约硬件成本。

//===================定时器0初始化设置===================

voidTime0_Init()//定时器0初始化函数

{

TMOD=0x01;

//定时器0为工作方式1

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

//初始化为定时时间为50ms

ET0=1;

//开定时器0中断

TR0=1;

//开定时器

EA=1;

//开总开关

}

//==================定时器0中断服务程序===============

voidtimer0_server(void)interrupt3

if(PWM_flag)

{

TH0=(65536-PWM_data*200)/256;

TL0=(65536-PWM_data*200)%256;

PWM=1;

PWM_flag=~PWM_flag;

}

else

{

TH1=(45536+PWM_data*200)/256;

TL1=(45536+PWM_data*200)%256;

//初始化为定时时间为20ms

PWM=0;

3.2拨码开关模块的设计

本设计输入用8位的拨码开关,能产生256数值,每一种数值对应于一个占空比的值,当输入为256时,最大的占空比为99%,能调节到最大的电机转速。

3.3显示模块的设计

本设计用LCD1602作为显示模块,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,可以显示两行,提供各种控制命令,如:

清屏、字符闪烁、光标闪烁、显示移位等多种功能。

3.4直流电机驱动模块

本设计采用光电隔离器,光耦合器以光为媒介传输电信号。

它对输入、输出电信号有良好的隔离作用,然后把信号通过晶体管IRF640进行放大,驱动直流电机的驱动和调速。

3.3模拟直流电机测速模块

555定时器,构成简单的振荡电路,利用电阻和电容充放电原理,是输出端产生方波信号,即可模拟简单的脉冲,代替电机的测速,电机测速一般都是利用霍尔元件测出电机转了多少圈,电机转一圈,霍尔元件检测电机触发的脉冲,则会输出响应的信号。

光电隔离主要用来处理控制部分和强电部分的信号,减少控制部分受强电的干扰。

起隔离作用。

四、程序流程图

五、仿真说明

(1)初始界面时,拨码开关没有设置PWM,直流电机处于停止状态,LCD1602显示PWM为000%

在LCD上显示Motor_Speed为256,这就是在一定时间内低电平的数目。

由于INT0是属于低电平输入中断类型的,根据这个原理再通过计数器T1来记录INT0的中断次数即是转速。

(2)通过调节拨码开关的值,使占空比增大,从而使直流电机的转速变大。

六、心得体会

本设计通过仿真基本能实现对直流电机的调速和测速。

课程设计重点在于对单片机的应用与理解,引入了555芯片的使用与了解其作用,对掌握驱动直流电机的方法有一定得要求,通过这几天网上的一些相关资料的查阅,顺利的完成了这个课程设计,但在仿真过程中的一些细节问题上还有着纰漏,在电机的测速的模块的编程不够完美。

通过本次课程设计,加深了之前的单片机知识和相应仿真软件的使用。

拓宽了本人的知识面,拓展了视野和思维。

设计一个直流电机调速系统,无论从学习还是实践的角度上来说,对电气专业的大学生都会产生积极的作用,有利于提高学习热情。

参考文献:

1.单片机技术及系统设计周美娟清华大学出版社

2.微型计算机控制技术实用教程潘新民王燕芳电子工业出版社

附录

#include<

reg52.h>

math.h>

string.h>

absacc.h>

lcd1602.h>

//==========================

#defineucharunsignedchar

#defineuintunsignedint

#defineData_BusP1

sbitPWM=P3^0;

bitPWM_flag=0;

unsignedcharTime_flag=0;

unsignedcharDSW_data=0x00;

unsignedcharPWM_data=0;

unsignedintSpeed_data=0;

unsignedcharPWM_Precent[5]={0x30,0x30,'

%'

};

unsignedcharMotorSpeed[5]={0x30,0x30,0x30};

//--------------------------

//-------函数声明--------

voiddelay(uint);

voiddelay_ms(unsignedintii);

//1ms延时函数

voidget_PWM(void);

voidget_Speed(void);

//====================延时子函数=========================

voiddelay(uintz)

uintx,y;

for(x=z;

x>

0;

x--)

for(y=110;

y>

y--);

voiddelay_ms(unsignedintii)//1ms延时函数

unsignedinti,x;

for(x=0;

x<

ii;

x++)

for(i=0;

i<

200;

i++);

//===================外部中断0初始化程序===============

voidInit_int0(void)

EX0=1;

//开外部中断0

IT0=1;

//触发

//==================外部中断0服务程序===================

voidInt0_server(void)interrupt0

EA=0;

Speed_data++;

//==================定时器0中断服务程序===============

voidTime0_Int()interrupt1//定时器0中断子函数

Time_flag++;

if(Time_flag==20)

Time_flag=0;

get_Speed();

//====================定时器1初始化设置===============计算方波数

voidinit_timer1(void)

TMOD|=0x10;

//定时器1为工作方式116bit

TH1=0xFF;

TL1=0xFE;

ET1=1;

//开定时器1中断

TR1=1;

//==================定时器1中断服务程序===============

voidtimer1_server(void)interrupt3

TH1=(65536-PWM_data*200)/256;

TL1=(65536-PWM_data*200)%256;

//==================get_PWM============================

voidget_PWM(void)

DSW_data=Data_Bus;

if(DSW_data==0x00)

TR1=0;

PWM_Precent[0]=0x30;

PWM_Precent[1]=0x30;

PWM_data=DSW_dat

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1