PID直流电机调速————课程设计报告解析(共五则)

时间:2019-05-12 05:28:48下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《PID直流电机调速————课程设计报告解析》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《PID直流电机调速————课程设计报告解析》。

第一篇:PID直流电机调速————课程设计报告解析

课程设计报告

课程名称:题

目:

单片机课程设计

基于51单片机PID直流电机调速

摘要

随着科技的日益进步,对自动化的要求也越来越高,直流电动机应用领域更加广泛。例如,军事方面的雷达天线惯性导航火炮瞄准等控制;工业方面的数控机床加工生产设备工业机器人的控制;计算机外围设备及办公设备中各种光盘驱动器扫描仪打印机传真机复印机等设备的控制。因此,设计一款可控性好精度高的电机控制系统是非常有意义的。本文介绍了一种以AT89S51单片机为控制核心的直流电机控制系统模型。

本设计主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。设计中采用了专门的芯片组成了PWM信号的发生系统并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节从而控制其输入信号波形等均作了详细的阐述。另外本系统中使用了红外对管对直流电机的转速进行测量,经过整形电路后将测量值送到单片机,并且最终作为反馈值输入到单片机进行PID运算从而实现了对直流电机速度的控制。在软件方面,文章中详细介绍了PID运算程序初始化程序等的编写思路和具体的程序实现。

[关键字] PWM信号 红外对管 PID运算

目录

一、设计任务、要求.......................................................................................................................3

1.1 设计任务............................................................................................................................3 1.2 设计要求............................................................................................................................3

二、方案总体设计...........................................................................................................................4

三、硬件设计...................................................................................................................................5

3.1 单片机最小系统................................................................................................................5 3.2 四位数码管显示................................................................................................................5 3.3 电机驱动电路....................................................................................................................5 3.4 红外测速电路....................................................................................................................6 3.5 整形电路............................................................................................................................7 3.6 整体电路............................................................................................................................7

四、软件设计...................................................................................................................................8

4.1 算法实现............................................................................................................................8 4.1 主程序流程........................................................................................................................8 4.2 定时器1中断流程............................................................................................................9

五、硬件设计.................................................................................................................................10

5.1 软件介绍..........................................................................................................................10 5.2 硬件调试..........................................................................................................................10 5.3 软件调试..........................................................................................................................10

六、设计总结、心得体会.............................................................................................................11

七、参考文献.................................................................................................................................12 附录一:源程序.............................................................................................................................13

一、设计任务、要求

1.1 设计任务

设计一个基于51单片机的PID直流电机调速系统。

1.2 设计要求

根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和存储器扩展设计、接口技术应用设计。其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。

具体的要求有以下几点:

 系统采用DXP软件设计电路原理,设计布局必须合理美观;  实物采用洞洞板焊接,布局采用万能板专用绘图软件;  4位数据显示功能;

 具有至少2个独立按键,通过按键可设置不同运行方式;  系统具有较好的模块化,功能、程序等分块合理;

二、方案总体设计

方案一:用三极管搭H桥,实现电机正反转的控制。电路部分较为复杂,焊接也显得更麻烦一点。

方案二:以驱动芯片ULN2003作为电机驱动,ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽等特点。UNL2003是是漏极开路输出,它的驱动能力为500mA,能够驱动直流电机、步进电机等。

由于这里不需正反转的控制,也为了使焊接更方便,提高成功率。所以电机芯片驱动方案选择方案二。

总体设计:

复位电路RESET四位数码管显示红外测速脉冲整形P3.4P1.0电机驱动按键控制P1.5P1.6P1.7P2.3蜂鸣器驱动 图1 整体硬件设计

总体方案工作原理:使用STC89C52单片机作为主控制芯片,按键控制改变电机的设定值,通过红外对管进行转速的测量,与设定值进行比较,通过PID算法控制电机达到设定转速。

三、硬件设计

3.1 单片机最小系统

单片机最小系统由51单片机,晶振电路,复位电路,电源组成。大家都比较熟悉,这里不再赘述。

3.2 四位数码管显示

在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。本系统中前三位显示电压的整数位,最后一位显示转速的小数位。

4-LED显示器引脚如图2所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。

图2 四位LED引脚

3.3 电机驱动电路

电机驱动电中是采用ULN2003来驱动。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。该电路的特点:ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据,输入5VTTL电平,输出可达500mA/50V。

图3 ULN2003引脚图

图3为ULN2003的引脚图,其中IN1~IN7为输入控制端;OUT1~OUT7为输出端;8脚为芯片的接地端;9脚为公共端,该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,实现续流作用。5

如果该脚接地,实际上就是达林顿管的集电极对地接通。

图4 一对达林顿管

图4为一对达林顿管示意框图,它反映了每一对输入与输出的内部结构。从图中可看出,它内部实际就是由三极管组成,所以实际电机驱动用三极管搭H桥或其他驱动电路也是可以实现驱动电机的。

图5 电机驱动电路

图5为本设计的直流电机驱动电路。当P1.0中为高电平时,其内部三极管导通,使电机转动。当P1.0为低电平时,内部三极管截止,电路断开,电机停止转动。所以在程序中可以利用P1.0口输出PWM波来控制电机的转速。

3.4 红外测速电路

图6 红外对管测速

红外测速部分电路如图6所示,发射管工作时发出红外线,当接收管收到红外信号时,其电阻变小(本设计相当于从无穷大变到1k左右)。利用其电阻变化,改变接收管分压情况。挡片是利用圆盘上剪四个孔,当挡片随电机转动时,接收管两端电平发生变化,产生脉冲。

3.5 整形电路

本设计的整形电路是用555定时器接成的施密特触发器。

图7 整形电路

其电路如图7所示,其特性为,输入信号从0逐渐升高的过程:当输入信号in< 1/3VCC,3引脚输出高电平;当1/3VCC < in < 2/3VCC,3引脚输出高电平保持不变;当in> 2/3VCC,3引脚输出低电平。

当输入信号从高于2/3VCC开始下降的过程:当1/3VCC < in < 2/3VCC,3引脚输出低电平不变;当in< 1/3VCC 3引脚输出高电平。

整形效果如下图所示:

图8 脉冲整形前后变化

3.6 整体电路

图9 整体电路原理图

四、软件设计

4.1 算法实现

(1)PID算法

数字PID调节器结构简单,参数易于调整。将其移植到单片机控制系统,通过软件编程实现,根据经验在线调整参数,灵活性强。采用数字PID调节算法,根据经验和实践,在线整定参数,具有很强的灵活性。PID控制的运算公式为:

u(n)KP[e(n)e(n1)]KIe(n)KD[e(n)2e(n1)e(n2)]u0

因此要实现PID控制就必须在单片机上存在上述算法,其流程图如图所示:

图10 PID算法流程图

(2)电机速度采集算法

本系统中电机速度采集是一个非常重要的部分,它的精度直接影响到整个控制的精度。在设计中采用了红外传感器做为测速装置,其计算公式为:

这里主要是采集圆盘边缘上凹槽数的多少决定的,圆盘有4个凹槽,每转一圈便会产生4个脉冲,通过上面的等式就可得出电机的转速。

4.1 主程序流程

主流程图如图11所示:

图11 主程序流程图

其中中断初始化中设置为定时器TO计脉冲数,定时器T1为高优先级中断。数码管显示的速度为三位整数,一位小数。当测得的速度在设定速度的正负5的范围之外时,蜂鸣器响。

4.2 定时器1中断流程

图12 T1中断程序流程图

五、硬件设计

5.1 软件介绍

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

5.2 硬件调试

当认真的把板子焊接完成,之后也认真的检查了一下连接线路,确认无误后,将程序下载进去后。发现数码管显示不正常,再次将与数码管连接的P0口线路认真检查一下后,发现与之连接的一个I/O口有虚焊的现象。将虚焊点重新焊接后显示正常。但单片机走程序时,第二位数码管显示变动很大,比电机速度的改变大很多。最后认真检查程序,发现程序中显示的那一部分按错了一个符号,导致其运算结果不正确。

5.3 软件调试

软件编写是在KEIL开发环境上编写的。是采用模块化程序的方法,各个功能的程序都使用不同的子程序编写。需要使用的时候,在主函数中进行调用即可。当发现问题的时候,首先检查主函数的调用是否有问题,如果没有问题,就到相应的子函数中,对子函数进行检查。可以使用Keil中的单步调试,查看程序运行是否流畅,同时还可以查看相应变量的值以及寄存器的值,这样就可以知道程序那里出现了问题。而不应该认为是软件出现了问题。或者认为是硬件连接的问题,因为之前的硬件都已经调试过没有问题了。在软件调试的过程中就不应该去怀疑硬件。

其实软硬件的调试是相辅相成的,并没有非常明确的界限。硬件的调试有时候需要通过软件的现象来检测,光看电路图是,或者只是单纯地用万用表检查有没有短路也是没有意义的。

六、设计总结、心得体会

设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。下面我对整个设计的过程做一下简单的总结。第一,接到任务以后进行选题。选题是设计的开端,选择恰当的、感兴趣的题目,这对于整个设计是否能够顺利进行关系极大。好比走路,这开始的第一步是具有决定意义的,第一步迈向何方,需要慎重考虑。否则,就可能走许多弯路、费许多周折,甚至南辕北辙,难以到达目的。因此,选题时一定要考虑好了。第二,题目确定后就是找资料了。查资料是做设计的前期准备工作,好的开端就相当于成功了一半,到图书馆、书店、资料室去虽说是比较原始的方式,但也有可取之处的。总之,不管通过哪种方式查的资料都是有利用价值的,要一一记录下来以备后用。第三,通过上面的过程,已经积累了不少资料,对所选的题目也大概有了一些了解,这一步就是在这样一个基础上,综合已有的资料来更透彻的分析题目。第四,有了研究方向,就应该动手实现了。其实以前的三步都是为这一步作的铺垫。通过这次设计,我对数字电路设计中的逻辑关系等有了一定的认识,对以前学的数字电路又有了一定的新认识,温习了以前学的知识,就像人们常说的温故知新,但在设计的过程中,遇到了很多的问题,有一些知识都已经不太清楚了,但是通过一些资料又重新的温习了一下数字电路部分的内容。在这次设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法我们更好的理解知识,所以在这里非常感谢帮助我的同学。

在此要感谢我的指导老师,感谢老师给我这样的机会锻炼。在整个设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次设计的最大收获和财富,将使我终身受益。

七、参考文献

1.李朝青.单片机原理及接口技术(简明修订版).北京:北京航空航天大学出版社,1999 2.李群芳,等.单片微型计算机与接口技术.北京:电子工业出版社,2001 3.钱逸秋.单片机原理与应用.北京:电子工业出版社,2002 4.朱定华,等.单片微型计算机原理与应用.北京:清华大学出版社,2003 5.何立民.单片机高级教程.北京:北京航空航天大学出版社,2004 12

附录一:源程序

#include #define uchar unsigned char #define uint unsigned int

uchar code table[10]={0x3f,0x06,0x5b, 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//共阴数码管显示码(0-9)

sbit xiaoshudian=P0^7;

sbit wei1=P2^4;

sbit wei2=P2^5;sbit wei3=P2^6;sbit wei4=P2^7;

sbit beep=P2^3;

sbit motor = P1^0;

sbit s1_jiasu = P1^4;

sbit s2_jiansu= P1^5;

sbit s3_jiting=P1^6;

uint pulse_count;

uint num=0;

uchar speed[3];

float bianhuasudu;

float reallyspeed;

float vv_min=0.0;vv_max=250.0;float vi_Ref=60.0;

float vi_PreError,vi_PreDerror;uint pwm=100;

int sample_time=0;

float v_kp=1.2,v_ki=0.6,v_kd=0.2;

//数码管位选定义

//蜂鸣器控制端

//电机控制

//加速按键

//减速按键

//停止/开始按键

//INT0接收到的脉冲数

//num相当于占空比调节的精度

//四位速度值存储

//当前速度(理论计算值)

//实际测得的速度

//给定值

//相当于占空比标志变量

//采样标志

//比例,积分,微分常数 13

/********************************************* *

函数名称:delay

* *

函数功能:不精确的延时

* *********************************************/ void delay(uint z)

{

} /********************************************* *

函数名称:time_init

* *

函数功能:将定时器初始化

* **********************************************/ void time_init(){

ET1=1;ET0=1;

//允许定时器T1中断

//允许定时器T0中断

//定时器0计数,模式1;定时器uint x,y;for(x=z;x>0;x--)for(y=20;y>0;y--);TMOD = 0x15;定时,模式1

TL1 =(65536-100)%256;

} TR0 = 1;TR1 = 1;IP=0X08;

TH1 =(65536-100)/256;

//定时器1值,负责PID中断 ,0.1ms定

//开定时器

//定时器1为高优级

EA=1;

//开总中断

/********************************************* *

函数名称: keyscan

* *

函数功能:

按键扫描,实现加、减速

*

开始/停止

* **********************************************/ 14 void keyscan(){

float j;

if(s1_jiasu==0)

//加速

{

delay(20);

if(s1_jiasu==0)

vi_Ref+=10;

j=vi_Ref;

}

while(s1_jiasu==0);

if(s2_jiansu==0)

//减速

{

delay(20);

if(s2_jiansu==0)

vi_Ref-=10;

j=vi_Ref;

}

while(s2_jiansu==0);

if(s3_jiting==0)

{

delay(20);

motor=0;

P1=0X00;

P3=0X00;

P0=0x00;

}

while(s3_jiting==0);} /********************************************* *

函数名称: v_PIDCalc

* *

函数功能:对测得的速度进行PID运算,其

* *

返回值为运算后的速度

* 15

**********************************************/ float v_PIDCalc(float vi_Ref,float vi_SpeedBack){

register float error1,d_error,dd_error;

error1=vi_Ref-vi_SpeedBack;

//偏差的计算

d_error=error1-vi_PreError;

//误差的偏差

dd_error=d_error-vi_PreDerror;

//误差变化率

vi_PreError=error1;

//存储当前偏差

vi_PreDerror=d_error;

bianhuasudu=(v_kp*d_error+v_ki*vi_PreError+v_kd*dd_error);

return(bianhuasudu);}

/********************************************* *

函数名称: v_Display

* *

函数功能:将速度值送给四位数码管显示

* **********************************************/ void v_Display(){

uint sudu;

sudu=(int)(reallyspeed*10);

//乘以10之后强制转化成整型

speed[3]=sudu/1000;

//百位

speed[2]=(sudu%1000)/100;

//十位

speed[1]=(sudu%100)/10;

//个位

speed[0]=sudu%10;

//小数点后一位

wei1=0;

//第一位打开

P0=table[speed[3]];

delay(5);

wei1=1;

//第一位关闭

wei2=0;

P0=table[speed[2]];

delay(5);

wei2=1;16

wei3=0;

P0=table[speed[1]];

xiaoshudian=1;

delay(5);

wei3=1;

wei4=0;

P0=table[speed[0]];

delay(5);

wei4=1;} /********************************************* *

函数名称:BEEP

* *

函数功能:当速度超过一定范围,蜂鸣器响 * **********************************************/ void BEEP(){

if((reallyspeed)>=vi_Ref+5||(reallyspeed<=vi_Ref-5))

{

beep=~beep;

delay(4);

}

} /********************************************* *

函数名称:main

* *

函数功能:扫描按键,显示速度,报警

* **********************************************/ void main(){

time_init();

motor=0;

while(1)17

{

v_Display();

BEEP();

}

if(s3_jiting==0)

//对按键3进行扫描,增强急停效果

{

delay(20);

motor=0;

P1=0X00;

P3=0X00;

P0=0x00;

}

while(s3_jiting==0);} /********************************************* *

函数名称:timer0

* *

函数功能:工作在计数方式,储存脉冲数

* **********************************************/ void timer0()interrupt 1 { } /********************************************* *

函数名称:timer1

* *

函数功能:进行PID计算和速度计算

* **********************************************/ void timer1()interrupt 3 {

TH1 =(65536-100)/256;

//1ms定时

TL1 =(65536-100)%256;sample_time++;if(sample_time==5000)

//采样时间0.1ms*5000=0.5s { TR0=0;

//关闭定时器0 sample_time=0;18 pulse_count=TH0*255+TL0;

//保存当前脉冲数

keyscan();

//扫描按键 reallyspeed=pulse_count/(4*0.6);

//计算速度

pwm=pwm+v_PIDCalc(vi_Ref,reallyspeed);

if(pwm<0)pwm=0;

if(pwm>100)pwm=100;

TH0=TL0=0;

TR0=1;

} num++;if(num==pwm)

{

motor=0;}

if(num==100)

{

num=0;

motor=1;} }

//开启定时器0

//此处的num值,就是占空比

//100相当于占空比调节的精度

第二篇:直流电机报告

《电机与电力拖动》

课程设计报告

设计题目: 直流电动机制动设计 学生姓名: 尤鹏达

专业班级: 14本科电气(1)班

学 号: 1412406502029 指导教师: 胡林林 课程设计时间: 2017.3.13-2017.3.17

目 录

一、设计目的...........................................................1

二、系统设计要求.......................................................1

三、正文...............................................................2

(一)、直流电动机的基本结构和工作原理................................2

(二)、反接制动......................................................3

(三)、回馈制动......................................................5

(四)、能耗制动......................................................6

(五)、参数设定和计算...............................................11

四、总 结............................................................12

五、参考文献..........................................................13

《直流电动机制动设计》课程设计报告

摘 要: 直流电动机是将直流电能转换为机械能的电动机。因其优良的起动、调速和制动性能而在电力拖动中得到广泛应用。直流电动机按励磁方式分为他励、并励、串励和复励四种。直流电动机有三种制动状态:能耗制动、反接制动(电压反向反接和电动势反向反接)和回馈制动。本文在直流电动机的结构与工作原理的基础上,给出了电机制动的定义,对电机制动的方法进行了简单介绍,并着重分析了他励直流电动机制动的三种制动状态,通过一系列实验重点介绍能耗制动。关键词:直流电动机;能耗制动;反接制动;回馈制动

一、设计目的

1、通过课程设计,对所学的直流电机的工作原理及其制动方式进行的复习与总结,巩固所学的理论知识。

2、通过本次课程设计提高学生分析问题和解决问题的能力。

3、学会使用网络资源进行相关文献和资料的查找。

4、培养团队合作的精神。

二、系统设计要求

能耗制动是一种制动形式。又分为直流电机的能耗制动和交流电机的能耗制动。他励直流电机的能耗制动:电动机在电动状态运行时若把外施电枢电压U突然降为零,而将电枢串接一个附加电阻R,即将电枢两端从电网断开,并迅速接到一个适当的电阻上。电动机处于发电机运行状态,将转动部分的动能转换成电能消耗在电阻上。随着动能的消耗,转速下降,制动转矩也越来越小,因此这种制动方法在转速还比较高时制动作用比较大,随着转速的下降,制动作用也随着减小。

能耗制动又分两种,分别用于不同场合:迅速停机和下放重物。若电动机拖动的是反抗性恒转矩负载,则通过迅速停机的方法进行能耗制动,若拖动位能性恒转矩负载,则通过下放重物进行能耗制动。

能耗制动是一种常见的制动方法,广泛应用在工业生产中,有优点同时也存在着缺点,在这份课程设计中,我们将会仔细分析能耗制动是怎么实现的,使得我们更好的了解和利用它,同时尽最大努力提出改进。

三、正文

直流电动机的启动·制动的动态性能好,可以在很多快速调速的场合应用。在生产过程中,经常需要采取一些措施使电动机尽快停转,或者从某高速降到某低速运转,或者限制位能性负载在某一转速下稳定运转,这就是电动机的制动问题。实现制动有两种方法,机械制动和电磁制动。电磁制动是使电机在制动时使电机产生与其旋转方向相反的电磁转矩,其特点是制动转矩大,操作控制方便。直流电机的电磁制动类型有能耗制动、反接制动和回馈制动。

(一)、直流电动机的基本结构和工作原理

直流电动机可分为两部分:定子与转子。其中定子包括:主磁极,机座,换向极,电刷装置等。转子包括:电枢铁芯,电枢绕组,换向器,轴和风扇等。如下图所示:

+FinAB-(1)、定子

φNib ciadSφ F电动机模型

图1-1电动机模型

定子就是发动机中固定不动的部分,它主要由主磁极、机座和电刷装置组成。主磁极是由主磁极铁芯(极心和极掌)和励磁绕组组成,其作用是用来产生磁场。极心上放置励磁绕组,极掌的作用是使电动机空气隙中磁感应强度分配最为合理,并用来阻挡励磁绕组。主磁极用硅钢片叠成,固定在机座上。机座也是磁路 的一部分,常用铸钢制成。电刷是引入电流的装置,其位置固定不变。它与转动的交换器作滑动连接,将外加的直流电流引入电枢绕组中,使其转化为交流电流。

直流电动机的磁场是一个恒定不变的磁场,是由励志绕组中的直流电流形成的磁场方向和励磁电流的关系确定。在微型直流电动机中,也有用永久磁铁作磁极的。

(2)、转子

转子是电动机的转动部分,主要由电枢和换向器组成。电枢是电动机中产生感应电动势的部分,主要包括电枢铁芯和电枢饶组。电枢铁芯成圆柱形,由硅钢片叠成,表面冲有槽,槽中放电枢绕组。通有电流的电枢绕组在磁场中受到电磁力矩的作用,驱动转子旋转,起了能量转换的枢纽作用,故称“电枢”。

换向器又称整流子,是直流电动机的一种特殊装置。它是由楔形铜片叠成,片间用云母垫片绝缘。换向片嵌放在套筒上,用压圈固定后成为换向器再压装,在转轴上电枢绕组的导线按一定的规则焊接在换向片突出的叉口中。

在换向器表面用弹簧压着固定的电刷,使转动的电枢绕组得以同外电路连接起来,并实现将外部直流电流转化为电枢绕组内的交流电流。

(二)、反接制动

反接制动可用两种方法实现,即转速反向(用于位能负载)与电枢反接(一般用于反抗性负载)。

(1)、转速反向的反接制动

他励直流电动机拖动位能性负载,如起重机下放重物时,若在电枢回路串入大电阻,致使电磁转矩小于负载转矩,这样电机将被制动减速,并被负载反拖进入第Ⅳ象限运行。

特点:RΩ较大,使TstTZ电枢电路的电压平衡方程式变为Ia(RaRΩ)U(Ea)UEa转速反向的反接制动特性方程式为nn0 RaRΩT<0(n为负)2CeCT 3

图1-2转速反向的反接制动电路图

转速反向的反接制动的机械特性曲线就是电动状态时电枢串电阻时的人为特性在第四象限的部分。

由曲线知,因TstTZ重物加速下放,直到D点TTZ时,获得稳速下放(一般nn0)

由于UEa可达到2UN,R必须较大,限制Ia,同时保证TstTZ,由Ia2(RaRΩ)UIaEaIa上式表明,UIa与EIa两者之和消耗在电枢电路的电阻RaRΩ 上。

(2)、电枢反接的反接制动

图1-3电枢反接的反接制动图

特点:U<0,RRaRΩ 机械特性:nn0RaRΩT 2CeCT电枢反接的反接制动机械特性是一条过-n0 的直线,在第二象限部分(BC段)。(n为正,T为负)

(三)、回馈制动

(1)、正向回馈制动

他励直流电动机通过降低电压来减速时,若电压下降幅度较大,会使得工作点经过第II象限,如图中的BC段,转速为正而电磁转矩为负,电动机运行于制动状态。在这一过程中,由于电源电压下降,使得Ea>U,电流方向改变,电能从电动机回馈到电源。

在电力机车下坡时,由于重力作用使得电动机转速高于原来的空载转速,Ea增大,超过U以后,电流也会反向,进入正向回馈制动状态。

(2)、反向回馈制动

他励电动机拖动势能性恒转矩负载运行。

反接电源电压并给电枢支路串入限流电阻。工作点将会稳定在第iv象限。在D点,电动机的转速高于理想空载转速,Ea>U,电流流向电源,属于反向回馈制动。

反向回馈制动常用于高速下放重物时限制电机转速。

(四)、能耗制动

(1)、制动方法制动和制动过程

直流电动机的制动方式有多种:能耗制动、反接制动和回馈制动。在此我们选择的研究方向是能耗制动。

直流电动机开始制动后,电动机的转速从稳态转速到零或反向一个转速值(下放重物的情况)的过程称为制动过程。对于电动机来讲,我们有时候希望它能迅速制动,停止下来,如在精密仪器的制动过程中,液晶显示屏幕的切割等等,但有的时候我们却希望电机能够慢慢地停下来,利用惯性来工作。于是,直流电动机能耗制动又分为迅速停机和下放重物两种方式。

(2)、能耗制动之迅速停机

1、迅速停机之机械特性

如图1-4所示,制动之前,转速n不为零,甚至相对较大,电动机平稳的运行。此时直流电动机的反电动势(E=Ce*Φ*n)存在甚至在某些场合很大,由于电枢电阻Ra较小,Ia=(U-E)/Ra。当我们开始制动瞬间,电动机系统因为惯性继续旋转,n的方向不变,由于磁场方向不变,故E的方向也不变。由于电源被瞬间切除,此时相对于之前正常运转状态,电流方向Ia改变,而磁场方向不变,使得T反向成为制动转矩。此时电动的转速就迅速下降至零(在T和TL的共同作用下)。当n=0时,E=0;Ia=0;制动转矩和负载转矩都消失,电动机自动停机。

图1-4迅速停机之机械特性图

2、迅速停机之状态分析

上述过程我们也可以用公式来说明,电动状态时,如图1-5:

图1-5能耗制动迅速停机电路图 n与T关系如下:

能耗制动时,如图1-6:

图1-6能耗制动迅速停机电路图

Ua=0,电枢回路中又增加制动电阻Rb.n与T关系如下:

n=-(Ra+Rb)*T/(CE*CT*Φ*Φ)

那么为什么要串入电阻Rb呢?如果没有Rb,在制动的瞬间,E的大小不变(E=Ce*Φ*n),一般情况E的值较大,那么此时的电流将会很大,很可能超出电枢回路电流的最大允许值Iamax,所以我们一般在迅速停机制动的同时,也串入一个电阻,并且这个电阻值有要求:

Iab=E/(Ra+Rb)<= Iamax 式中,Ea=Eb,是工作于b点和a点时的电动势。由此求得: Rb>=Eb/Iamax-Ra

(3)、能耗制动之下放重物

1、下放重物之机械特性

如图1-7,如果电动机位能性很转矩负载。制动前,系统工作在机械特性1与负载特性3的交点a上,电动机以一定的速度提升重物。在需要稳定下放重物时,速度 不会突变,则由a点移动b点,此时电动机处于能耗制动状态,此时由b点移动到O点,这个过程与能耗制动的迅速停机过程情况一样。但此时电动机不会停止不动而是,在负载转矩的作用下,电动机反转,即反向启动,工作点开始在第四象限继续下移,此时n反向,Ia又回到正向,那么T依旧提供向上拉力,TL不变,则当下降速度越来越大,E(正向)也越来越大(E=Ce*Φ*n),Ia也越来越大,T也越来越大(T=CT*Φ*Ia),最终在c点处达到平衡。这是能耗制动下放重物的过程。

能耗制动运行与能耗制动过程相比,由于n反向,引起E反向,使得Ia与最初的上升时方向相同,T也同样。下图是能耗制动过程中,n>0,T<0;在能耗制动运行时,n<0,T>0的情况。

图1-7能耗制动迅速停机过程

2、下放重物之状态分析

能耗制动的运行过程也可以用公式来说明。如图1-8:

图1-8制动后的电路图

n与T关系如下:

n=-(Ra+Rb)*T/(CE*CT*Φ*Φ)当平衡的时候,如图1-9:

图1-9制动后的电路图

T=TL,则可以得出: n=(Ra+Rb)*TL /(CE*CT*Φ*Φ)

同样,能耗制动运行的效果与制动电阻Rb的大小有关,Rb小,特性2 的斜率小,转速小,下放重物慢(Rb在满足要求内)。那么在c点时: Ra+Rb=Ec/Iac= CE*CT*Φ*Φ*n/(TL-To)下放重物时,To和TL方向相反,与T方向相同,故T= TL-To.可见,若要以转速下放负载转矩为TL的重物时,制动电阻应为: Rb=Ce*CT*Φ*Φ*n/(TL-To)-Ra 如果我们忽略了To,则: Rb= CE*CT*Φ*Φ*n/TL-Ra.(五)、参数设定和计算

一台他励直流电动机,参数如下:PN = 5.6kW,UN=220V,IN=31A,nN=1000r/min,电枢电阻Ra = 0.4Ω,负载转矩TL=49,电枢电流不能超过额定电流的2倍,忽略空载转矩T0。

电动机拖动反抗性负载,采用能耗制动停车,电枢回路应串入的制动电阻最小值是多少?若采用电枢反接制动停车,电阻最小值是多少?

电枢串联电阻值:

CeNUNINRa0.208nN

电动状态的稳定转速:

nUNRaT1010r/min2CeNCeCTN

能耗制动电阻:

RbkEaRa2.99Ibk

电枢反接制动电阻:

RbkUNEaRa6.54Ibk

电动机拖动位能性恒转矩负载,要求以300r/min速度下放重物,采用倒拉反接制动运行,电枢回路应串入多大电阻?若采用能耗制动运行,电枢回路应串入多大电阻?

倒拉反接稳定制动时的电枢电流:

Ibk TL24.67CTN 倒拉反接制动电阻:

RbkUNEaRa11.05Ibk

能耗制动稳定运行时的电阻:

RbkCeNnRa2.13Ibk

想使电动机以n =-1200r/min速度,在反向回馈制动运行状态下,下放重物,电枢回路应串多大的电阻?若电枢回路不串电阻,在反向回馈后制动状态下,下放重物的转速是多少?

反向回馈制动运行时的电阻:

RbkUNEaRa0.8Ibk

反向回馈制动运行,不串电阻时的转速:

nUNIbkRa1105r/minCeN

四、总结

直流电动机的制动方式有多种,本文设计的研究方向重点是能耗制动,根据制动要求和条件的不同能耗制动又分为迅速停机和下放重物,并以他励直流电动机为例进行分析。

通过本次课程设计,我对所学的直流电机的工作原理及其调速方式有了进一步的认识,巩固了所学的理论知识。

本次课程设计提高了我分析问题和解决问题的能力,提高了我的团队意识。

五、参考文献

[1] 刘锦波.张承.电机与拖动[M].北京:清华大学出版社.2006 [2]王中鲜.MATLAB建模与仿真应用[M].北京:机械工业出版社.2010 [3]许晓峰.电机与拖动学习指导[M].北京:高等教育出版社.2010

教师评语及成绩评定:

指导教师签名: 年 月 日

第三篇:基于FPGA的直流电机PWM调速系统设计与实现

FPGA课程设计

题目:基于FPGA的直流电机PWM调速系统设计与实现 班级:微电子学1202班 姓名:杜英 学号:1206080201 日期:2016年3月24日

基于FPGA的直流电机PWM调速系统设计与实现

1设计任务与要求

1.1设计任务

完成基于FPGA的直流电机PWM调速系统设计与实现,实现对直流电机的闭环调速,速度值采用LCD或数码管显示。

1.2设计要求

1.2.1了解PWM控制方法及应用;掌握PWM直流电机调速控制原理;掌握直流电机调速及驱动控制原理;完成基于FPGA的直流电机PWM调速系统设计。采用PWM(脉冲宽度调制)技术,速度值采用LCD或数码管显示。

1.2.2通过课程设计的实践,进一步了解和掌握硬件描述语言(VHDL或Verilog)和TOP-DOWN的设计流程,提高对实际项目的分析和设计能力,体会FPGA项目开发的过程,熟悉实验报告的编写规范。

2设计原理分析

2.1直流电机结构如下图1.1所示

图2.1 直流电机的构造

将直流电源通过电刷接通线组线圈,使线组线圈导体(电枢导体)有电流通过,在电磁的作用下,线组线圈将会产生磁场,同时产生的磁场与主磁极的磁场产生电磁力,这个电磁力作用于转子,使转子以一定的速度开始旋转,电机就开始工作。

在电机的外部电路加入开关型的霍尔元件,同时在电子转子的转盘上加入一个使霍尔元件产生输出的带有磁场的磁钢片。当直流电机旋转时转盘与磁钢片一起旋转,当磁钢片转到霍尔元件上方时,可以使霍尔元件的输出端高电平变为低电平。当磁钢片离开霍尔元件上方后,霍尔元件输出端又恢复高电平。如此,点击每旋转一周,会使霍尔元件的输出端产生一个低脉冲,可以通过检测单位时间内霍尔元件输出端低脉冲的个数推算出直流电机的转速。

本次设计中,调节PWM占空比进而控制直流电机转速,在本次设计中,为了保护霍尔元件,故设定程序每6秒刷新一次数据,所以在数码管显示的数据乘以10就是在该占空比时的直流电机每分钟转速。在这次的实验中数码管采用的8位共阴极数码管,通过锁存器输入数据使得数码管的8个段码数字显示,再通过选择输出数据对所需数码管进行选择。

2.2电路原理图

图2.2 电路原理图 3 设计方案

上述原理图中包含PWM模块、测速模块、计数模块、电机模块、滤波模块。电机的外部电路加入开关型的霍尔元件,同时在电子转子的转盘上加入一个使霍尔元件产生输出的带有磁场的磁钢片。当直流电机旋转时转盘与磁钢片一起旋转,当磁钢片转到霍尔元件上方时,可以使霍尔元件的输出端高电平变为低电平。当磁钢片离开霍尔元件上方后,霍尔元件输出端又恢复高电平。如此,点击每旋转一周,会使霍尔元件的输出端产生一个低脉冲,可以通过检测单位时间内霍尔元件输出端低脉冲的个数推算出直流电机的转速。本次设计为六秒记一次数,乘十就是每分钟转速值。再通过驱动模块显示数码管数据。

4设计步骤

(1)首先确定整体设计方案,确定设计需要使用的软件;(2)设计电路模块,编写各模块程序代码并进行仿真编译;(3)完成整体电路图设计后,使用QuartusⅡ软件对整体电路进行仿真调试;

(4)连接硬件,使用示波器观察产生的波形,对不足之处进行改进调试。

5调试结果说明

连接好试验箱,把硬件与实验箱接通,将程序下载到实验箱中。进行实验,示波器观察PWM脉冲波形(占空比),看实验结果与预期效果是否相同,若相同,则实验无误。其波形如下: 占空比为50%时

占空比为90%时

将程序下载到实验箱中后,其实际操作过程如下: K12为使能键,使K12=‘1’;输入时钟信号为1MHZ;(1)K4=1时,示波器和LED的显示如下:

示波器显示的是霍尔元件单位时间内计数的个数为31.011 显示器是每六秒电机转的圈数为186转

结论:31.011*6=186.066于186近似,所以结论符合要求。(2)K4=1,k3=1时,示波器和LED的显示如下:

结论:68.6338*6=411.8028于412近似,所以结论符合要求。(3)K4=1,k3=1,K2=1时,示波器和LED的显示如下:

结论:85.516*6=513.096于513近似,所以结论符合要求。(4)K4=1,k3=1,K2=1,K1=1时,示波器和LED的显示如下:

结论:90.0339*6=540.2034于541近似,所以结论符合要求。通过以上的比较,发现示波器中的结果与数码管上数据大概一致,即实验结果基本达到要求。

6心得体会

本次课程设计,用FPGA控制直流电机,完成直流电机PWM调速系统设计,实现对直流电机的闭环调速,速度值采用LCD或数码管显示。是一次很好的学习和实践的机会。通过课程设计,我明白了电机工作的原理,以及用FPGA控制电机的原理。最重要的是,对如何设计一个系统有了更进一步的了解,积累了很多经验。

从下载测试的结果来看,设计的要求基本上都实现了。但是仍存在不少问题。每个模块生成基本电路后,把各个模块的进行连接,仿真结果是正确的。但是当连接到试验箱后,电机正常转动,LED却无法显示。检查电路和程序还有电路图,并发现什么问题。无意中发现LED偶尔会出现数字,但也只是闪一下。最后才发现是因为电机转动太快了,LED无法及时显示或者是一直在闪,人眼无法识别。在程序中加入了滤波模块,才解决了问题。

在设计的过程中,开始照着EDA课本上的原理设计,后来才发现所设计的电路有很多地方都满足不了设计要求,使设计一度遭遇了很大困难。通过与同学讨论请教,逐步改进了设计,终于使设计的电路和设计要求相吻合。在这中间,通过不断提出问题,解决问题,我对这次设计的原理有了更深的了解,也给我分析问题,解决问题提供了很多好的方法,好的思路。同时,我也发现了自己存在的很多不足。发现自己在设计一个系统的时候不能够统筹兼顾,不能够从总体上把握设计的思路,也不能看清问题的核心与关键所在。这些都需要在下面不断学习实践,理论毕竟只是理论,要多参加实践,这样才能提高自己的能力,积累经验。

附录一

PWM模块程序 Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity PWM is port(clock:in std_logic;

duty_cycle:in std_logic_vector(3 downto 0);

pwm_en:in std_logic;

pwm_out:out std_logic);end entity;architecture art of PWM is

signal pwm_out_io:std_logic;

signal count:std_logic_vector(3 downto 0);begin

pwm_out<=pwm_out_io;

process(clock)

begin

if rising_edge(clock)then

if pwm_en='1' then

count<=count+1;

end if;

end if;

end process;

process(clock)

begin

if rising_edge(clock)then

if pwm_en='1' and count

pwm_out_io<='1';

else

pwm_out_io<='0';

end if;

end if;

end process;end;

测速模块程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cesu is port(clk : in

std_logic;

--时钟输入1Mhz

ena : out

std_logic;

--允许计数

clr : out

std_logic;

--计数器清零信号产生

load : out

std_logic);--锁存、显示输出允许高有效 end cesu;architecture behav of cesu is

signal clkk :std_logic;

--1HZ时钟信号

signal count :integer range 0 to 7;--6秒计数

signal clr1 :std_logic;

--清零信号

signal ena1 :std_logic;

--允许计数信号

signal load1 :std_logic;

--允许计数信号

--signal cq1,cq2,cq3,cq4 : INTEGER RANGE 0 TO 15;--计数数据 begin

process(clk)

variable c:std_logic;

variable cnt:integer range 0 to 500000;

begin

if clk'event and clk='1' then

cnt:=cnt+1;

if cnt=500000 then

cnt:=0;c:=not c;

end if;

end if;

clkk<=c;

end process;

process(clkk)

--6秒计数

begin

if clkk'event and clkk='1' then

count<=count+1;

if count<6 then

ena1<='1';load1<='0';clr1<='0';

elsif count=6

then

ena1<='0';load1<='1';clr1<='0';

elsif

count=7 then

ena1<='0';load1<='1';clr1<='1';

end if;

end if;

ena<=ena1;

load<=load1;

clr<=clr1;

end process;end behav;

计数模块程序 library ieee;use ieee.std_logic_1164.all;

entity cnt10 is

port(clk:in std_logic;

--计数时钟信号

clr:in std_logic;

--清零信号

ena:in std_logic;

--计数使能信号

cq :out integer range 0 to 15;--4位计数结果输出

carry_out:out std_logic);

--计数进位

end cnt10;architecture behav of cnt10 is signal cq1:integer range 0 to 15;begin process(clk,ena)begin

if

clr= '1' then cq1<= 0;

----计数器异步清零

elsif clk'event and clk= '1' then

if ena= '1' then

if cq1=10 then cq1<=1;

else cq1<=cq1+1;

end if;

----等于9,则计数器清零

end if;

end if;end process;process(cq1)

begin

if cq1=10 then carry_out<= '1';

----进位输出

else carry_out<= '0';

end if;end process;

cq<=cq1;end behav;

驱动模块程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qudong_8 is port(clk:in std_logic;

--动态显示刷新速度时钟

QQ1,QQ2,QQ3:in std_logic_vector(3 downto 0);--32位BCD码输入,最0~3低位,28~31最高位

qudong1:out std_logic_vector(7 downto 0);--驱动信号输出,0~7分别为abcdefgp contrl:buffer std_logic_vector(2 downto 0));--数码管位选输出,000最低位数码管有效,111最高位数码管有效 end qudong_8;architecture behavior of qudong_8 is signal disp:std_logic_vector(3 downto 0);signal temp:std_logic_vector(2 downto 0);begin process(clk)begin

if clk'event and clk='1' then

temp<=temp+1;

end if;

contrl<=temp;end process;

process(contrl)

--位选信号产生进程

begin

case contrl is

--when“000”=>disp<=QQ7;

--when“001”=>disp<=QQ6;

--when“010”=>disp<=QQ5;

--when“011”=>disp<=QQ4;

when“100”=>disp<=QQ3;

when“101”=>disp<=QQ2;

when“110”=>disp<=QQ1;

--when“111”=>disp<=“0000”;

when others=>disp<=“0000”;

end case;end process;process(disp)

--译码进程

begin

case disp is

when“0000”=>qudong1<=“00111111”;

when“0001”=>qudong1<=“00000110”;

when“0010”=>qudong1<=“01011011”;

when“0011”=>qudong1<=“01001111”;

when“0100”=>qudong1<=“01100110”;

when“0101”=>qudong1<=“01101101”;

when“0110”=>qudong1<=“01111101”;

when“0111”=>qudong1<=“00000111”;

when“1000”=>qudong1<=“01111111”;

when“1001”=>qudong1<=“01101111”;

when others=>qudong1<=“00000110”;

end case;end process;end behavior;

消抖模块程序 library ieee;use ieee.std_logic_1164.all;

entity xiaodou is port(clk,input: in std_logic;output: out std_logic);end xiaodou;

architecture behav of xiaodou is signal cp:std_logic;signal count:integer range 0 to 3;begin process(clk)begin if(clk'event and clk='1')then--检测上升沿 if(input='1')then--如果有输入信号

if(count=3)then count<=count;--当计数达到3时,保持计数值不变 else count<=count+1;--当其小于3时,进行加1处理 end if;if(count=2)then cp<='1';--如果计数达到2,cp置1 else cp<='0';--其余情况全部为0 end if;else count<=0;--如果计数出现非法状况,进行清零复位 end if;end if;output<=cp;--信号输出 end process;end behav;

第四篇:基于单片机的数字PID控制直流电机PWM调压调速器系统

题目: 基于单片机的数字PID控制直流电机PWM 调压调速器系统

目录

一、PID简介··································(6)

二、设计原理··································(7)

三、设计方案··································(8)

四、心得体会

·······························(16)

五、参考文献 ·······························(16)

二、设计原理

基本的设计核心是运用PID调节器,从而实现直流电机的在带动负载的情况下也能稳定的运行。运用A/D转换芯片将滑动变阻器的模拟电压转换为数字量作为控制直流电机速度的给定值;用压控振荡器模拟直流电机的运行(电压高-转速高-脉冲多),单片机在单位时间内对脉冲计数作为电机速度的检测值;应用数字PID模型作单片机控制编程,其中P、I、D参数可按键输入并用LED数码显示;单片机PWM调宽输出作为输出值,开关驱动、电子滤波控制模拟电机(压控振荡器)实现对直流电机的PID调压调速功能。

基于以上的核心思想,我们把这次设计看成五个环节组成,其具体的原理如下见原理图2.0

图2.0 PID调速设计原理图

如图可以知道,这是一个闭环系统,我们借助单片机来控制,我们现运用AD芯片,运用单片机来控制AD芯片来转换模拟电压到数字电压,AD给定的电压越大,则产生的数字量越大,单片机再控制这个数字量来产生一个PWM,PWM占空比越大,就驱动晶体管导通的时间越长,这样加到压频转换器的电压也就越大,电压越大,则压频转换器输出的计数脉冲再单位时间也就越多,这样就相当于电机的电压越大,其转速也就会越快,我们再用单片机对压频转换器的输出脉冲计数,PID调节器就把这个计数脉冲和预先设定的 值进行比较,比设定值小,这样就会得到一个偏差,再把这个偏差加到AD的给定电压,这样就相当于加大了PWM的占空比,要是比设定值大,这样也会得到一个偏差,就把这个变差与给定的电压向减,这样就可以减少PWM的占空比,通过改变占空比来改变晶体管的导通时间,就可以改变压频转换器的输入电压,也就改变压频转换器的单位计数脉冲,达到调电动机速度的目的。

三、设计方案

3.1 PWM的调制

AD芯片给定一定的电压,应用单片机来控制来产生一个PWM,给定的电压不同,就会的得到不同的PWM波形。在产生PWM波形我们采用ADC0808芯片和AT89C51两个核心器件。

ADC0808芯片是要外加电压和时钟,当输入不同的电压的时候,就可以把不同的电压模拟量转化为数字值,输入的电压越大,其转换的相应的数字也就会越大,ADC0808芯片有8个通道输入和8个通道输出。其具体的管脚图见3.01

图3.01 ADC0808芯片管脚图

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.02所示

图3.02 AT89C51芯片管脚图

3.2基于单片机的数字PID控制直流电机PWM调压调速器系统 3.21调速原理

当基于以上产生一个PWM后,就可以借助PWM脉冲来控制晶体管的导通和关断,来给压频转换器来提供一定的电压,在PROTUES中仿真中,给定一个+12V的电压,就通过晶体管的导通和关断来给压频转换器供电,压频转换器就会输出很多的脉冲,借助单片机P3.5来计数,其计数送给P0来显示,通过给定不同的ADC的输入电压,就可以的得到不同的计数显示,电压越大,其计数显示也就越大,通过改变计数脉冲的周期和硬件压频转换器(LM331)的电阻和电容,就可以得到与输入电压接近的数值显示,可能由于干扰的原因,其显示值和实际值有一点偏差,这是在没有什么负载的情况下,或者说是在空载的情况下,这样就可以得到一个很理想的开环系统,也为闭环PWM调节做好准备。

当开环系统稳定后,加上一个扰动,或者说是加上负载,这样就使的压频转换器的电压减少,在给定一定电压的时候,当负载分压的时候,也就相当于直流电机的电压就会减少,这样直流电机的转速就会下降,或者说当有负载的时候,压频转换器的输入电压就会减少,这样输入的脉冲在单位时间就会减少,这样PID调节器,通过改变PID的参数,PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)与输出u(t)的关系为 u(t)=kp(e((t)+1/TI∫e(t)dt+TD*de(t)/dt)式中积分的上下限分别是0和t 因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数; TI为积分时间常数; TD为微分时间常数这样就会得到一个偏差,通过这个偏差来改变原来的PWM的占空比,使得晶体管的导通时间加长或减少,这样就改变了直流电机的输入电压,也就是该变了在PROTUES压频转换器的输入电压,使得输出的计数脉冲在单位时间发生改变,也就是模拟了直流电机的转速的改变,我们希望通过PID的调节,使得输出的计数脉冲的显示值和预先设定的值接近,由于偏差的存在,使得PID调节器不断的去修正,使得显示值近可能的接近我们所预期的设定值。

3.22基于单片机的数字PID控制直流电机PWM调压调速器系统原理图

图3.07 PID调速原理图 3.23波形仿真

在不同的给定电压下开换系统会有不同的PWM波形和计数脉冲个数。在不同的波形中从上之下以此为pwm波形,经过驱动后的波形,LM331的输入电压,LM331的输出脉冲。

当给定电压为较高(E8H)其波形见如下图3.08、图3.09 中电压给定对应的波形

PID波形

图3.10 低电压给定对应的波形

;

图3.11 PID 控制LM331的输入电压波形

3.24 PID调速程序 PWM 输出驱动程序

ADC

EQU

35H

CLK

BIT

P2.4

ST

BIT

P2.5

EOC

BIT

P2.6

OE

BIT

P2.7

PWM

BIT

P3.7

;

PID 调节设置

EK0

EQU

40H

EK1

EQU

41H

EK2

EQU

42H

PP

EQU

43H

II

EQU

44H

DD

EQU

45H

UK0

EQU

70H

UK1

EQU

71H

ORG

00H

SJMP

START

ORG

0BH

LJMP

INT_TO

START:

MOV

TMOD, #62H

MOV

TH0, #00H

MOV

TL0, #00H

MOV

IE, #86H

SETB

TR0

;SETB

TR1

MOV

R0, #00

MOV

R1, #00

MOV

R2, #00

MOV

R3, #00

MOV

R4, #00

MOV

R5, #00

MOV

R6, #00

MOV

R7, #00

;PID 赋值

MOV

PP, #05

MOV

II, #03

MOV

DD, #02

MOV

EK0,#00H

MOV

EK1,#00H

MOV

EK2,#00H

MOV

UK0,#00H

MOV

UK1,#00H WAIT:

CLR

OE

INC

R7

CLR

ST

SETB

ST

CLR

ST

JNB

EOC, $

SETB

OE

MOV

ADC, P1

MOV

R0,ADC

MOV

A,70H

ADDC

A,ADC

MOV

ADC ,A

;CLR

OE

SETB

PWM

SETB TR1

MOV

A, ADC

LCALL

DELAY

CLR

PWM

;等待转换完成;高电平延时 8

MOV

A, #255

SUBB

A, ADC

LCALL

DELAY

;低电平延时

CJNE

R7, #20, WA2 WA1:

CLR

TR1

MOV

R7, #00

MOV

A, TL1

MOV 50H,A

mov P0,50H

;PID求偏差

MOV A,EK1

MOV EK2,A

MOV A,EK0

MOV EK1,A

MOV A,R0

SUBB A,50H

MOV EK0,A

;PP的计算

MOV

A,EK0

SUBB A,EK1

MOV B,PP

MUL AB

MOV R1,A

MOV R2,B

AJMP X

WAIT1:AJMP WAIT

;II的计算

X: MOV A,EK0

MOV B,II

MUL AB

MOV R3,A

MOV R4,B

;DD的计算

MOV A,EK1

RL A

MOV EK1,A

MOV A,EK0

SUBB A,EK1

ADDC A,EK2

MOV B,DD

MUL AB

MOV R5,A

MOV R6,B

;PID总的计算

MOV A,R1

ADDC A,R3

ADDC A,R5

MOV 60H,A

MOV A,R2

ADDC A,R4

ADDC A,R6

MOV 61H,A

MOV A,60H

ADDC A,70H

MOV

70H,A

MOV A,61H

ADDC A,71H

MOV

71H,A

MOV TL0,#00H

MOV

TL1,#00H

;SETB TR1

WA2:

SJMP

WAIT1

INT_TO:

CPL

CLK

RETI

DELAY:

MOV

R6, #1 D1:

DJNZ

R6, D1

DJNZ

ACC, D1

RET

END 10

四、心得体会

我们进行了为期一周的计算机控制技术课程设计。通过这两周的课程设计,我拓宽了知识面,锻炼了能力,综合素质得到了提高。

刚刚拿到课题,我感到有些茫然,对于以前没有做过的人来说要全部做完的确有一定的难度。由于我对计算机控制不是很熟悉,在设计的过程中走了不少弯路。

通过亲身体验做课程设计,我觉得安排课程设计的基本目的,在于通过理论与实际的结合,进一步提高观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。我的收获有一下几点:

第一,我对所学专业有了一些了解,增强了自己的兴趣和对以后可能从事的职业的热爱。第二,通过课程设计我明白到了理论到实践有一段很远的路程。设计过程中的每一步都是一门学问,我终于知道了每一个实现的过程,每一个认识的过程都存有人类无数的的汗水与对待事物一丝不苟得,缜密的思考以及不懈的努力,只有这样才会有一个新生事物的诞生。而以上种种的过程必须要你亲自去体会去认识去发现,那才是属于你的“收获”,只有这时才会对自己的作品无比的骄傲。

第三,通过这次设计加强了我们的设计创新能力。使我们的理论知识与实践充分地结合。第四,通过两周的课程设计,我学到了很多书本上学习不到的知识。两周的时间很短,但是我学到比两年的还多,在以后的学习生活中,我需要更努力地读书和实践。

对我们电气专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。

在设计过程中,体会到了设计一项课题的不易,也体会到了设计成功之后的小小成就感和同学之间相互合作的默契。更重要的是,通过课程设计,我发现了自身存在的更多不足之处和实际应用能力方面的欠缺,这些不足之处在今后的学习之中要有意识的弥补和改变。

最后,感谢在课程设计过程中关心帮助我的老师同学。

五、参考文献

许翏、王淑英主编.计算机技术.北京:机械工业出版社2005 2 王炳实主编.单片机技术.第3版.北京:机械工业出版社2004 3 易泓可主编,基于数字PID设计.北京:机械工业出版社 2004

第五篇:基于西门子PLC的变频调速和温度控制课程设计报告

PLC课程设计报告 变频调速和温度控制

姓 名: 学 号: 班 级: 学 院: 完成日期:

一.课程设计目的

1.了解常用电气控制装置的设计方法、步骤及设计原则

2.学以致用,巩固书本知识。通过训练,使学生初步具有设计电气控制装置的能力。从而培养和提高学生独立工作的能力和创造能力。

3.进行一次工程技术设计的基本训练。培养学生查阅书籍、参考资料、产品手册、工具书的能力;上网查寻信息的能力;运用计算机进行工程绘图的能力;编制技术文件的能力等等。从而提高学生解决实际工程技术问题的能力。二.设计题目

一.PLC控制变频调速系统设计与调试

控制要求:

1.变频调速器受 0 ~ 10V 输入电压控制:(实验室有可能是4-20mA电流信号)0V 输出频率为 0HZ,对应同步转速为 0 r/min; 5V 输出频率为 50HZ,对应同步转速为 1500 r/min; 10V 输出频率为 100HZ,对应同步转速为 3000 r/min;

输入电压与输出频率按线性关系变化。

2.要求输出转速按下图(见附图)函数变化,请编写梯形图控制程序,并完成调试。

课题要求:

1.按题意要求,画出 PLC 端子接线图及控制梯形图。

2.完成 PLC 端子接线工作, 并利用编程器输入梯形图控制程序,完成调试。3.完成课程设计说明书 二.温度控制 设计要求:

恒温控制实验模块,是一个简化的温控系统。其中,温度信号由Pt100传感器送致变送器的测温器提供为4~20mA的模拟量,送入PLC的EM235模拟量输入模块,经过控制程序处理后,以4~20mA的模拟量输出到晶体闸管调整器,晶闸管调整器控制电热丝的加热功率,使被加热的铝散热器温度控制再设定温度附近,组成一个恒温闭环控制系统。

1.要求用PLC内部PID调节功能设计恒温闭环控制系统的控制程序。

① 温度变送器出来的标准量范围是4~20mA,即输入值4mA对应0℃,20mA对应100℃。因此信号在使用之前必须将它划到对应的范围;

② PID调节功能直接使用PLC内部的PID回路指令;

③ 温度设定值为50℃,上限幅温度值为55℃,下限幅温度值为45℃;

④ 比例增益、采样时间、积分时间、微分时间、产生定时中断的间隔时间等参数值自行确定;

⑤ 由Q0.0到Q0.7输出8位BCD码(十进制两位)的温度值,到数码管上显示其0~99℃的温度值。

2.在设计梯形图程序之前,应画出流程图和I/O接线图(包括数码显示接线图)。

三.设计内容与过程

选题一:变频调速

PLC作为先进的、应用势头最强的工业控制器已风靡全球;变频器作为交流电动机的驱动器,广泛应用于现代的工业生产和民用生活中。通过本次设计掌握PLC控制系统、变频调速系统、电机拖动及测速显示系统的硬件的使用,电路、程序的综合设计方法及对编程软件的编辑及调试。

1. 实验设备

PLC控制电机变频调速系统由S7-200PLC、变频器、电机及电机测速系统、触摸屏等组成。需使用的实验设备有:上位计算机(PC机)一台;S7-200PLC一台、EM235模拟量扩展模块(4输入1输出)一块;PC/PPI编程电缆一根;模拟输入开关一套;JD-PLC变频调速实验模块一块;200VA自耦调压器一台;可加载/可测速的三相异步电动机系统一套。

2. 实验内容和步骤

AC220VKM变频器T1T2T3PCSTFSTRRHRMRLSD102SINK自耦调压器L三相电源1L2插座L3UVWP1+-ABCRUNSE1M涡流加载测速外部晶体管公共端DC24V电源接点输入公共(源型)正转启动反转启动高速中速低速接点输入公共3频率设定器(手动)2电机系统总成短路片FR-BEL端DC0.3~5V异常输出接PLC开关量输入运行运行状态输出集电极可接入PLC开开路输出关量输入端公共端(+)模拟信号输出(DC0~5V)(-)接PLCEM235SOURCE1电流输入(-)(来自PLC(+)EM235输出)(自动)5(公共端)AM54(DC4~20mA)RS-485接口主回路端子

图1 PLC控制电机变频调速实验总图

控制回路输入端子控制回路输出端子 三相控制电源模块AL1KMBL2CL3NNLSB1电源断变频调速实验模块变频器UU1VV1WW1NSB0电源通KMKML测速与加载M电机测速与加载实验台涡流制动电源输入端NLzL自偶调压器U2V2W2N

图2 PLC控制电机变频调速外部主电路接线图

控制过程:

0通过PLC控制变频器,使三相异步电动机按下图所示的曲线运行,电机运行可分为五个部分:第一部分要求电机起动后在25s内从0(r/min)线性增加到1168(r/min);第二部分进入恒转速运行阶段,运行时间为10s,转速仍为1168(r/min);第三部分进入减速阶段,电机转速要求在20s内降到584(r/min);第四部分保持584(r/min)10s;第五部分要求电机转速从584(r/min)在20s内降至0(r/min)

10V6.4V3.2V02535556585

参数计算及说明:

在电机变频调速控制系统中,变频器的输入信号是4~20mA 电流信号,而PLC的模拟量输出值范围是 0~20mA。0~20mA 的模拟量对应的 PLC 内部数字量是 0~32000,所以需要进行数据转换。4mA 对应的数字量是 6400,变频器输出 0Hz对应的电流信号为 4mA。所以第一部分加速阶段,要将频率设定电流信号从 4mA 增加到 16.8mA。编程时可以在6400刻度值的基础上,均匀地间隔一定时间逐步加刻度值到26880(如果间隔时间为0.1 s, 则82×250 =20500)。判断转速是否增加到1 168 r/min 的比较值必须是转速测量电压信号刻度值。照此法,同理可得到第三阶段(将频率设定电流信号从16.8mA减少至10.4mA,间隔时间为0.1 s, 则52×200 =10400)和第五阶段(将频率设定电流信号从10.4mA减少至4mA,间隔时间为0.1 s, 则51×200 =10200)减速部分输出的控制方法。

启动按钮SB1输入信号停止按钮SB2变频器线圈I0.0I0.1输出信号Q0.0

图3 I/O端口地址分配表

KM1LQ0.0Q0.1Q0.2Q0.31MI0.0I0.1I0.2I0.3SB1SB2

图4 I/O端子接线图

图5 PLC控制电机变频调速顺序功能图

开始初始化,调用子程序0电机启动按钮按下?YN定时器启动延时,电机加速加速时间25S已到(T37=1)?YN定时器T38启动,减速运行保持时间10S已到(T38=1)?NY定时器T39启动,减速运行减速时间20S一道(T39=1)?NY定时器T40启动,恒转速运行恒转速保持时间10S已到YN定时器T41启动,电机再次减速结束

图6 PLC控制电机变频调速流程图

PLC控制电机变频调速梯形图程序:

选题二:温度控制

本设计目的在于熟悉模拟量输入处理的一般方法,熟悉PID控制及模拟量模块的输入/输出及进一步熟悉子程序、中断等。

1.实验设备

上位计算机(PC机)一台;S7-200 PLC一台;PC/PPI编程电缆一根;模拟输入开关一套;JD-PLC9温度闭环控制系统实验模块;以及PLC,增加了EM235 4模入/1模出的模拟量扩展模块一块。

2.设计原理与内容

在这个闭环控制系统设计中,系统完全是采用实际工程中使用的小型器件组成,完全再现了温控装置的控制的真实工况。程序结构可分为输入信号处理和PID调节输出两大部分,其中两大部均涉及子程序调用,后一部分还涉及中断,具体也可为一段主程序、两段子程序、一段中断程序,主程序OBI中可以包含读入反馈信号、调用子程序、显示的平均值计算、两位显示换算和BCD码转换;子程序SBR_0是将所有待用的变量寄存器初始化清零,俗称“开辟空间”;子程序SBR_1为设置PID回路参数和产生定时中断,其中产生定时中断的中断事件号可查表;中断INT0是执行PID运算及输入/输出量换算。

因为PID回路指令的使用在回路表中只要填入输入信息和组态信息即可进行PID运算。要填好这些信息,有的还需要应用“自控” 方面的知识,加热系统的热惯性较大的系统,参数选择容易满足要求。由设计者填写的只是给定值(SPn)、增益(Kc)、采样时间(Ts)、积分时间(TI)、微分时间(TD)5个参数以及产生定时中断的间隔时间。如采样时间(Ts)可根据系统的特点适当放长一些,并可与定时中断的间隔时间同步。增益(Kc)、积分时间(TI)、微分时间(TD)在设计时系统参数无法获得,只要粗放地填写即可(为防止超调,一般取值较“小”),PID的这些调节参数可在调试时修整。恒温控制的限幅环节,主要是为了防止超调和失控而采取的保护措施。只要在温度超过限幅值时,将模拟量输出端电流信号置到4mA(最小输出)即可。但应注意模拟量模块的输入/输出的值都是选取的国际电工组织规定标准信号范围4~20mA,而西门子S7—200的模拟量扩展模块各种输入/输出档均是从0开始的,温度值与PLC的单极性刻度值的对应关系如图2-1所示。如果按原始“座标”0.5的给定值不是50℃温度设定值,因此,只要将原座标0点沿45°上移,将(4mA, 6400)作为新“座标”的的0点,这时0.5的给定值就是50℃温度设定值(最终0.5005)。编程时,可在信号读入/输出时将刻度值减/加6400,变化量为25600,即温度信号输入先减去6400,除以25600最后就转化过程变量PV。反之,可知PID输出值的转化。

刻度值32000(100%)2560019200(50%)6400(0%)04mA(0℃)12mA(50℃)20mAI(mA)(100℃)

图2-1 温度值与PLC的单极性刻度值的对应关系

实验模块上的温度显示,是将经取平均处理过的温度信号刻度值,通过四则运算指令化为0~99范围的温度值,再将其化为BCD码,送到QB1上输出,再经过导线将输出位与七段码译码器的输入端子连接,数码管上就能显示0~99℃的温度值。

℃0V+5VCOM12L3L十个温度显示B2C2D2A2A1B1C1D1Q1.0Q1.1Q1.2Q1.3Q1.4Q1.5Q1.6Q1.7S7-226开关量输出BCD码温度值

图2-2 数码管温度显示接线图

3.调试步骤

开机后,按预先设计好的恒温控制梯形图程序,键入程序编译下载(下位机需上电)后,运行该程序,调试时不断改变PID参数,使加热器总成的温度始终保持在50℃,达到设计要求,即完成实验。在运行该程序之前,应按图2-

2、图2-3和图2-4接线,特别应当注意数码管温度显示BCD码端接的是DC5V电源。当选择自动运行方式时,实验模块上的斜率调整电位器的接线端子R2和R3应短接

电流发送器RAMA+L++24V-A-RBMOB+VOB-„„IOEM235扩展模块接线端调功器信号端

图2-3 EM235接线图

EM235RAL0A+M0A-DC24V(+)(-)变送器~220V(插座)加热器Pt100to加热器总成C2C1-晶闸管调功器

图2-4恒温控制系统示意图

4.恒温控制梯形图程序: 四.本次设计心得体会

为期一周的PLC课程设计结束了,通过本次课程设计,我对S7-200系列PLC的特点有了更深的理解。利用了S7-200系列PLC的特点,对按钮、开关等输入/输出,模拟量输入/输出进行控制,主要实现了变频器在PLC控制作用下的变频调速。

在本次课程设计的实践环节中,我更深刻地理解和掌握了电器控制及可编程控制器(PLC)的理论知识和动手技能。参阅了大量的电器控制及可编程控制器(PLC)系统设计的书籍资料,查询了大量的图表、程序和数据,特别是PLC控制电机变频调速系统设计,使得课程设计的方案和数据更为翔实和准确,力求科学严谨,使本次以模拟量为主题的课程设计精益求精。

经历自己设计实验和查阅资料,让我了解了更多关于西门子S7-200和变频器方面的知识,让我了解了大概的选型和注意事项,并自己动手实验,参照一些编程试着去编一个看似很宏大的程序,资料上查到的是欧姆龙或者是三菱的编程语句,但是通过他们的编程思路,我们可以借鉴到自己的西门子S7-200程序设计中,编程序的过程中遇到了很多问题,通过不断的问同学,反复的思考,调试,终于编出了通过调用子程序和定时中断程序来达到控制的目的,此次课程设计让我收获颇多,在这个课程设计的过程中,既让我与同学加深了沟通,又让我学到关于西门子S7-200PLC的更多知识,对其他公司的PLC也有了一定的粗浅了解,我知道这知识仅是很少的一点,但我会在以后的学习中了解更多。而且通过本次综合性设计的实践和锻炼,我对PLC系统设计工作流程有了更深入的认识,也燃起了我努力把PLC学至精通的激情与信心。

最后我对于指导老师的不厌讲解和无私指导深表感谢!

参考文献

[1] 吴中俊,黄永红.可编程序控制器原理及应用[M].北京:机械工业出版社,2003.

下载PID直流电机调速————课程设计报告解析(共五则)word格式文档
下载PID直流电机调速————课程设计报告解析(共五则).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数字通信原理课程设计解析[范文模版]

    课 程 设 计 报 告 课程设计名称:通信原理 系 别:三系 学生姓名: 班 级: 学 号: 成 绩: 指导教师: 开课时间:2010~2011学年 学期 一.设计题目 数字频带传输系统的仿真设计......

    单闭环电压负反馈调速系统设计课程设计[合集五篇]

    2级电气工程及其自动化专业 电力拖动控制系统课程设计 单闭环电压负反馈调速系统设计 姓 名: 院 别: 工学院 专 业: 电气工程及其自动......

    高频课程设计报告

    一 设计课题名称 单边带调制解调电路的设计 二 课程设计目的、要求与技术指标 2.1 课程设计目的 (1) 巩固所学的相关理论知识; (2) 掌握电子系统的一般设计方法; (3) 会运用multisim......

    课程设计报告

    学 期:2014-2015-2 作 业:课程设计社会调研报告 班 级:社会工作131 学 号:1325012029 姓 名:蒋叶青 指导老师:钱雪飞老师 一.简介 时间:2015.5.26-5.28 地点:中国杭州......

    课程设计报告(范文)

    一. 设计题目 WFS-601面包电话制作 二. 主要内容 1、 分析面包电话机的功能,了解面包电话机的构造 2、 完成面包电话机的焊接,要求焊点符合焊接要求。电话要实现接听与呼叫以及......

    车站课程设计报告

    华东交通大学课程设计报告 车站信号控制系统课程设计报告 课题:基于AUTOCAD的电路图绘制及联 锁表制作 学院:轨道交通学院 专业: 交通设备信息工程 班级:姓名:学号:华东交通大......

    计算机网络课程设计报告

    目录 需求分析…………………………………………….3 总体设计…………………………………………….3 详细设计…………………………………………….4 测试的步骤………......

    网络课程设计报告

    《计算机网络课程设计报告》 学院:计算机科学学院 专业:计算机科学与技术 班级: 姓名: 学号: 小组成员: 2011-7-13 项目内容:基于Socket的文件传输服务设计与实现 实验目的:基于S......