数字PID直流调速系统_第1页
数字PID直流调速系统_第2页
数字PID直流调速系统_第3页
数字PID直流调速系统_第4页
数字PID直流调速系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字PID直流调速系统

1.调试软件介绍

Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、

交流和直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存

在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的

信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,

例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,

Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号

和数字信号。提供SchematicDrawing、SPICE仿真与PCB设计功能,同时可以

仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供

周边设备的仿真,例如373、led、示波器等。Proteus提供了大量的元件库,有

RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分HC器

件,编译方面支持Keil和MPLAB等编译器。一台计算机、-套电子仿真软件,

在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软

代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数

字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。当电路设计

完成之后,为了减少在电路板上调试时的难度,保证电路设计的正确性,将Keil

c51编译生成的*.HEX文件载入Proteus软件,实现电路仿真。

2.调速设计方案

调速采用PWM(PulseWidthModulation)脉宽调制的工作原理是通过产生

矩形波,改变占空比,以达到调整脉宽的目的。脉宽调制(PWM)是利用微处理器

的数字输出来对模拟电路进行控制的一种技术,它广泛应用在测量、通信到功率

控制与变换的许多领域中。模拟信号与数字信号的区别在于后者的取值通常只能

属于预先确定的可能取值集合之内,例如在{0V,5V}这一集合中取值。模拟电压

和电流可直接用来进行控制。模拟控制看起来直观而简单,而且模拟信号的值可

以连续变化,其时间和幅度的分辨率都没有限制。但它也有缺点,模拟电路容易

随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路非常庞大、笨重

和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的

乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流

值的大小。所以通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功

耗。此外,许多微控制器和DSP已经在芯片上都包含了PWM控制器,这使数字控

制的实现变得更加容易了。

3.LCD显示模块

液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点

阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、

和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母

“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图

形显示出来,我们就能看到字母“A”。因为其识别的是ASCII码,试验可

以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,

如‘A'。LCD采用标准的14脚接口,其中:

第1脚:VSS为电源地

第2脚:VDD接5V电源正极

第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接

地电源时对比度最高。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选

择指令寄存器。

第5脚:RW为读写信号线,高电平⑴时进行读操作,低电平(0)时进行

写操作。

第6脚:E(或EN)端为使能(enable)端。

第7〜14脚:D0〜D7为8位双向数据端。

LCD图如下

LCD1

UIO16L

♦59,H*l第0H

4.系统程序如下:

ftinclude<reg51.h>

ttdefineucharunsignedchar

ttdefineuintunsignedint

sbitopen=P20;

sbitclose=P21;

sbitswap=P22;

sbitsub__speed=P2'3;

sbitadd_speed=P24;

sbitPW1=P3-0;

sbitPWM2=P3」;

/************************液晶显示*************/

sbitE=P37;

sbitRW=P36;

sbitRS=P3'5;

sbittest=P34;

inttime=0;

inthigh=20;

intperiod=30;

intchange=0;

intflag=0;

intnum_medium=0;

intnum_display=0;

intcount_speed=0;

ucharword[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};

/*******************延时t毫秒****************/

voiddelay(uchart)

(

uinti;

while(t)

(

/*对于11.0592MHz时钟,延时1ms*/

for(i=0;i<125;i++);

t—;

)

)

〃写命令函数LCD

voidwc51r(ucharj)

RS=O;

RW=O;

Pl=j;

E=1;

E=0;

delay⑶;

)

〃写数据函数LCD

voidwc51ddr(ucharj)

(

RS=1;

RW=0;

Pl=j;

E=l;

E=0;

delay(2);

〃初始化函数LCD

voidinit()

(

wc51r(0x01);〃清屏

wc51r(0x38);〃使用8位数据,显示两行,使用5*7的字型

wc51r(0x0c);〃显示器件,光标开,字符不闪烁

wc51r(0x06);〃字符不动,光标自动右移一格

/***********8T0中断服务程序************PWM波的生成**********/

voidtimeO_int(void)interrupt1

(

time++;

THO=Oxec;

TLO=0x78;

if(change==0)

(

PWM2=1;

if(time==high)

PWM1=O;

elseif(time==period)

!

PWMl=1:

time=0:

)

)

else

{PWMl=1;

if(time==high)

PWM2=0;

elseif(time==period)

PWM2=1;

time=0;

)

)

)

/****T1中断服务程序********单位时间(S)方波的个数*************/

voidtimel_int(void)interrupt3

(

count_speed++;

if(count_speed==20)

{count_speed=0;

numdisplay=num_medium;

num_medium=0;

}

)

/************************速度显示的数据处理*********************/

voiddatamadeO

(

uintdataMM,NN;

wc51r(0xc2);

wc51ddr('S');

wc51ddr('p');

wc51ddr('e');

wc51ddr('e);

wc51ddr(,d');

wc51ddr(0x3a);

NN=numdisplay%100;

MM=numdisplay/100;

wc51ddr(wword[MM]);

MM=NN/10;

NN=NN%10;

wc5Iddr(wword[MM]);

wc5Iddr(wword[NN]);

)

/**********通过按键实现对电机开关、调速、转向的控制***************/

voidmotor_control()

{

if(open==1)

EA=1;

if(close==1)

EA=0;

if(swap==1)

(

change=^change;

while(swap!=0)

()

if(sub_speed==1)

(

high++;

if(high==30)

EA=0;

while(sub_speed!=0)

()

)

if(add_speed==1)

(

high—;

if(high==5)

high=5;

while(add_speed!=0)

(}

voidmain()

(

P2=0x00;

ETO=1;

ET1=1;

TMOD=Oxll;

THO=Oxec;〃定时器TO设置参数

TLO=0x78;

TH1=0x3c;〃定时器T1设置参数

TL1=OxbO;

TRO=1;

TRI=1;

init();〃液晶显示初始化程序

while(l)

(

wc51r(0x84);

wc51ddr('H');

wc51ddr('e');

wc51ddr(T');

wc51ddr('1');

wc51ddr('o');

if(test==0)

num_medium++;

datamade();

motor_control();

)

}

5.直流电机的调速功能仿真

系统总框图

1.调速前的波形图

2.调速后的波形图

6.电机速度的测量并显示功能仿真

对电机转速的显示,可以根据液晶显示屏上的数字,调整电机的转速,为调

速提供了方便。从显示数字的稳定程度,也可以判断电机转速的稳定性。若显示

数字几乎不变,则说明电机工作十分稳定;与之相反,显示数字不停地变化,则

说明电机工作非常不稳定。

7.设计心得

本次作业要求我们设计一套数字PID直流控制直流电机PWM调压调速器系

统。这一整套系统的设计要求我们不仅仅要设计出完整得PID调制的电路,同时

也需要编写出相应的程序。要在有限的时间内完成这两项任务对我们是一个非常

大的挑战。但是,但是通过我们查找资料和其他同学的帮助最终完成了整套系统

的设计。

在进行设计的过程中,我们把与自动控制系统相关的知识和与单片机相关的

知识结合起来,通过分析具体的问题,首先列出解决课题的方案,从中论证出较

合适的方案作为最终的实际方案。在具体进行过程中,我采用了将大系统分解为

零的方法,将其中的各个独立部分分别设计最后进行整合。这样也大大提高了设

计的效率,也便于我们之间的分工协作。

总的来说,本次设计锻炼了我们把理论联系到实际的能力,同时在设计的过

程中,通过查阅各种资料,我们对整个行业的发展和最新的技术都有了一定的了

解。通过同学的帮助和我们团结协作使这次课程设计得以顺利的完成。

03班

化07

自动

315

6050

070

李磊

04班

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论