直流电机闭环调速课程设计.docx

上传人:b****5 文档编号:30004376 上传时间:2023-08-04 格式:DOCX 页数:30 大小:321.49KB
下载 相关 举报
直流电机闭环调速课程设计.docx_第1页
第1页 / 共30页
直流电机闭环调速课程设计.docx_第2页
第2页 / 共30页
直流电机闭环调速课程设计.docx_第3页
第3页 / 共30页
直流电机闭环调速课程设计.docx_第4页
第4页 / 共30页
直流电机闭环调速课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

直流电机闭环调速课程设计.docx

《直流电机闭环调速课程设计.docx》由会员分享,可在线阅读,更多相关《直流电机闭环调速课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

直流电机闭环调速课程设计.docx

直流电机闭环调速课程设计

课程设计报告

课程名称:

计算机控制系统

设计题目:

直流电机闭环调速

院系:

电气信息学院

班级:

姓名:

学号:

姓名:

学号:

姓名:

学号:

指导教师:

设计时间:

摘要

在电气时代的今天,电动机在工农业生产、人们日常生活中起着十分重要的作用。

直流电机是最常见的一种电机,在各领域中得到广泛的应用。

研究直流电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。

电机调速问题一直是自动化领域中比较重要的问题之一。

不同领域对于电机的调速性能有着不同的要求,因此,不同的调速方法有着不同的应用场合。

为了提高直流调速系统的动态、静态性能,通常采用闭环控制系统(主要包括单闭环、双闭环)。

而在对调速指标要求不高的场合,采用单闭环即可。

闭环系统较之开环系统能自动侦测把输出信号的一部分拉回到输入端,与输入信号相比较,其差值作为实际的输入信号;能自动调节输入量,能提高系统稳定性。

在对调速系统性能有较高要求的领域常利用直流电动机,但直流电动机开环系统稳定性不能满足要求,可利用转速单闭环提高稳态精度。

本次课程设计利用软件定时方式采用Intel8255A可编程外设接口芯片唐都TD-PITC实验系统上模拟直流电动机闭环调速系统,A/D转换器实现模拟信号到数字信号的转换,设置电机转速的给定值,通过PWM方式可实现电机转速的调节,LED灯显示电机转速的大小状态。

关键字:

闭环调速、inter8255A、A/D转换器、PWM、LED

目  录

摘要

1控制系统总体设计方案……………………………………………………………3

2系统的组成及工作原理……………………………………………………………4

2.18255工作原理……………………………………………………………4

2.2转速调节原理………………………………………………………………5

2.3A/D转换原理………………………………………………………………5

2.4LED灯的工作原理…………………………………………………………6

2.5实现两位十进制数的显示…………………………………………………6

3硬件设计……………………………………………………………………………7

3.1接线图……………………………………………………………………7

4软件设计……………………………………………………………………………8

4.1转速调节程序设计框图……………………………………………………8

4.2主程序流程图………………………………………………………………9

4.3程序清单…………………………………………………………………10

5调试及结果………………………………………………………………………21

5.1调试步骤…………………………………………………………………21

5.2结果分析……………………………………………………………………21

5.2结论…………………………………………………………………………21

参考文献……………………………………………………………………………22

 

1控制系统总体设计方案

本设计是利用PC微机一台、TD-PIT实验系统一套实现对直流电机转速调节的应用。

编写程序,用ADC0809完成模拟信号到数字信号的转换。

输入模拟信号有A/D转换单元可调电位器提供的0~5V,将其转换后的数字信号读入累加器,做为控制电机的给定转速。

用8255的B口作为直流电机的控制信号输出口,通过对电机转速反馈量的运算,调节控制信号,达到控制电机匀速转动的的作用。

并将累加器中给定的转速和当前测量转速显示在屏幕上。

再通过LED灯显示出转速的大小变化。

整个程序设计过程分为基本功能实现阶段,检测程序阶段,功能扩展和功能验证及程序补充四个实验阶段。

基本功能实验阶段,在“轻松编程”软件中完成,主要完成各个子程序的调试;在检测程序阶段,在“轻松编程”软件中通过编译和链接,并反复检查没有逻辑错误;调试结果正确以后在进行相应的连接,将各个子模块联系起来功能扩展及程序的补充,在实验室里完成,使用唐都硬件实验箱,用TDPIT来编程实现;功能验证阶段,在实验室里完成。

 

2系统的组成及工作原理

2.18255工作原理:

本设计利用8255的A口作为输出口,控制8个单色LED灯,来实现电机转速的大小调节。

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息,CPU和接口之间的数据传递总是并行的,即可以同时进行传递8位,16位,32位等。

8255可编程外围接口芯片是具有A、B、C三个并行接口,+5V单电源供电,能在以下三种方式下工作:

方式0—基本输入/出方式、方式1—选通输入/出方式、方式2—双向选通工作方式。

其控制字、内部结构图和引脚图见图1-1-1、图1-1-2.

图2-1-18255控制字

图2-1-28255内部结构图和引脚图

2.2转速调节原理:

PWM的占空比决定输出到直流电机的平均电压.

PWM不是调节电流的.PWM的意思是脉宽调节,也就是调节方波高电平和低电平的时间比,一个20%占空比波形,会有20%的高电平时间和80%的低电平时间,而一个60%占空比的波形则具有60%的高电平时间和40%的低电平时间,占空比越大,高电平时间越长,则输出的脉冲幅度越高,即电压越高.如果占空比为0%,那么高电平时间为0,则没有电压输出.如果占空比为100%,那么输出全部电压.

所以通过调节占空比,可以实现调节输出电压的目的,而且输出电压可以无级连续调节.

在使用PWM控制的直流无刷电动机中,PWM控制有两种方式:

(1)使用PWM信号,控制三极管的导通时间,导通的时间越长,那么做功的时间越长,电机的转速就越高

(2)使用PWM控制信号控制三极管导通时间,改变控制电压高低来实现

直流电机单元由DC12V、1.1W的直流电机,小磁钢,霍尔元件及输出电路构成。

PWM示意图如图2-2-1所示。

通过调节T1的脉冲宽度,改变T1的占空比,从而改变输出,达到改变直流电机转速的目的

图2-2-1PWM示意图

利用8255的PB0产生脉冲信号作为控制量,经驱动电路驱动电机运转。

霍尔测速元件输出的脉冲信号记录电机转速构成反馈量。

在参数给定的情况下,经PID运算,电机可在控制量的作用下,按PC机累加器给定的转速运转。

通过PC的0号通道,设置为输出1ms方波,作为采样时钟,PB0产生PWM脉冲计时及转速累加,系统总线上INTR中断用于测量电机转速。

2.3A\D转换原理

图2-3-1ADC0809外部管脚图

本设计用ADC0809完成模拟信号到数字信号的转换。

输入模拟信号有A/D转换单元可调电位器提供的0~5V,将其转换后的数字信号读入累加器,做为控制电机的给定转速。

2.4LED灯的工作原理:

LED灯显示器有8个单色发光二极管构成,在共阳极接法中,各二极管的阳极被连在一起,使用的时候要将它与+5V项链,而把各段的阴极连到器件的相应引脚上。

当某的LED灯的引脚为低电平的时候,该灯工作。

图2-4-1LED灯管脚图

通过8255的A口信号作为输入信号,控制各灯的工作状态。

来显示出此时电机转速的大小变化。

1.5实现两位十进制数的显示:

在计算机中,对数字的输入和输出是用二进制进行的,而在计算机内部十进制数要转换为二进制来表示,要实现两位十进制数的显示,必须将他们转换为目前最普遍使用的字符编码ASCII码。

本设计中通过作除法,即拆分法,将两位十进制AB转换为A*10+B的形式,再通过A+30H与B+30H来转换为ASCII码,若溢出,加7运算。

 

3硬件设计

3.1接线图:

图3-1-1A\D转换接线图

ADC转换单元中,D0-D7分别与系统总线的XD0-XD7对应相连,WR、RD、CLK分别与系统总线的XIOW、XIOR、CLK相连,片选引脚与系统IOY0相连,A、B、C接地,IN0接+5V直流电压源,如图3-1-1所示。

图3-1-2直流电机闭环接线图

直流电机闭环接线中,8255芯片的A口作为输出信号与LED灯项连,即PA0-PA7与系统总线的XD0-XD7相连,同时与ADC0809的D0-D7相连;B口的PB0作为直流电机控制信号输出口,经驱动电路A口,与直流电机相连驱动电机运转;片选信号线接系统的IOY1,读写信号线分别对应系统的XIO、RXIOW相连,其中,系统的中断INTR引脚用于测量电机转速与直流电机的HR引脚相连。

4软件详细设计

4.1转速调节程序设计框图:

(a)转速调节主程序图(b)测速中断处理程序图

(c)定时采样中断处理程序图

图4-1-1转速调节程序设计框图

4.2主程序流程图:

图4-2-1主程序流程图

 

4.3程序清单:

根据主程序流程图和转速调节设计框图写出相应程序,在“轻松编程”软件中完成各个子程序的调试;通过编译和链接,并反复检查没有逻辑错误;调试结果正确以后在进行相应的连接,将各个子模块联系起来,由于自己不具备硬件资源,所以调试的时候只能检查程序本身的错误,经过调试能显示各个子程序的功能,同时嵌套有延时子程序,方便程序的调用,端口地址的选择与确定,在实验室里完成,具体程序设计如下:

INTR_IVADDEQU0038H;INTR对应的中断矢量地址

INTR_OCW1EQU21H;INTR对应PC机内部8259的OCW1地址

INTR_OCW2EQU20H;INTR对应PC机内部8259的OCW2地址

INTR_IMEQU0BFH;INTR对应的中断屏蔽字

PCI_INTCSREQU0CC38H;PCI卡中断控制寄存器地址

IOY0EQU0600H;片选IOY0对应的端口始地址

IOY1EQU0640H;片选IOY0对应的端口始地址

MY8255_AEQUIOY0+00H*4;8255的A口地址

MY8255_BEQUIOY0+01H*4;8255的B口地址

MY8255_CEQUIOY0+02H*4;8255的C口地址

MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址

AD0809EQUIOY1+00H;AD0809的端口地址

STACK1SEGMENTSTACK

DW64DUP(?

TOPLABELWORD

STACK1ENDS

DATASEGMENT

TABLE1DB'AssumedFanSpeed:

(/s)',0AH,0DH,'$';字符串变量

TABLE2DB'CurrentFanSpeed:

(/s)',0AH,0DH,'$';字符串变量

ENTDB0AH,0DH,'$';换行,回车

CS_BAKDW?

;保存INTR原中断处理程序入口段地址的变量

IP_BAKDW?

;保存INTR原中断处理程序入口偏移地址的变量

IM_BAKDB?

;保存INTR原中断屏蔽字的变量

CS_BAK1DW?

;保存定时器0中断处理程序入口段地址的变量

IP_BAK1DW?

;保存定时器0中断处理程序入口偏移地址的变量

IM_BAK1DB?

;保存定时器0中断屏蔽字的变量

TSDB14H;采样周期

SPECDW55;转速给定值

IBANDDW0060H;积分分离值

KPPDW1060H;比例系数

KIIDW0010H;积分系数

KDDDW0020H;微分系数

YKDW?

CKDB?

VADDDW?

ZVDB?

ZVVDB?

TCDB?

FPWMDB?

CK_1DB?

EK_1DW?

AEK_1DW?

BEKDW?

AAAADB?

VAADB?

BBBDB?

VBBDB?

MARKDB?

R0DW?

R1DW?

R2DW?

R3DW?

R4DW?

R5DW?

R6DW?

R7DB?

R8DW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETTABLE1;显示字符串1

MOVAH,09H

INT21H

MOVAX,SPEC;显示给定值

CALLDECSHOW

MOVDX,OFFSETENT;回车,换行

MOVAH,09H

INT21H

MOVDX,OFFSETTABLE2;显示字符串2

MOVAH,09H

INT21H

CLI

MOVAX,0000H

MOVES,AX

MOVDI,0020H

MOVAX,ES:

[DI]

MOVIP_BAK1,AX;保存定时器0中断处理程序入口偏移地址

MOVAX,OFFSETTIMERISR

MOVES:

[DI],AX;设置实验定时中断处理程序入口偏移地址

ADDDI,2

MOVAX,ES:

[DI]

MOVCS_BAK1,AX;保存定时器0中断处理程序入口段地址

MOVAX,SEGTIMERISR

MOVES:

[DI],AX;设置实验定时中断处理程序入口段地址

INAL,21H

MOVIM_BAK1,AL;保存INTR原中断屏蔽字

ANDAL,0F7H

OUT21H,AL;打开定时器0中断屏蔽位

MOVDX,PCI_INTCSR;初始化PCI卡中断控制寄存器

MOVAX,1F00H;向PCI_INTCSR中写入003F1F00H

OUTDX,AX

ADDDX,2

MOVAX,003FH

OUTDX,AX

MOVDI,INTR_IVADD

MOVAX,ES:

[DI]

MOVIP_BAK,AX;保存INTR原中断处理程序入口偏移地址

MOVAX,OFFSETMYISR

MOVES:

[DI],AX;设置当前中断处理程序入口偏移地址

ADDDI,2

MOVAX,ES:

[DI]

MOVCS_BAK,AX;保存INTR原中断处理程序入口段地址

MOVAX,SEGMYISR

MOVES:

[DI],AX;设置当前中断处理程序入口段地址

MOVDX,INTR_OCW1

INAL,DX

MOVIM_BAK,AL;保存INTR原中断屏蔽字

ANDAL,INTR_IM

OUTDX,AL;打开INTR的中断屏蔽位

MOVVADD,0000H;变量的初始化

MOVZV,00H

MOVZVV,00H

MOVCK,00H

MOVYK,0000H

MOVCK_1,00H

MOVEK_1,0000H

MOVAEK_1,0000H

MOVBEK,0000H

MOVBBB,00H

MOVVBB,00H

MOVR0,0000H

MOVR1,0000H

MOVR2,0000H

MOVR3,0000H

MOVR4,0000H

MOVR5,0000H

MOVR6,0000H

MOVR7,00H

MOVR8,0000H

MOVMARK,00H

MOVFPWM,01H

MOVAAAA,7FH

MOVVAA,7FH

MOVTC,00H

MOVAL,80H;初始化8255

MOVDX,MY8255_MODE

OUTDX,AL

MOVAL,00H

MOVDX,MY8255_B

OUTDX,AL

MOVDX,MY8255_A

OUTDX,AL

MOVDX,PC8254_MODE;初始化PC机定时器0,定时1ms

MOVAL,36H

OUTDX,AL

MOVDX,PC8254_COUNT0

MOVAL,8FH

OUTDX,AL

MOVAL,04H

OUTDX,AL

STI

M1:

MOVAL,TS;判断采样周期到否?

SUBAL,TC

JNCM1;没到则继续等待

MOVTC,00H;采样周期到,将采样周期变量清0

MOVAL,ZVV

MOVAH,00H

MOVYK,AX;得到反馈量YK

LOOP1:

MOVDX,AD0809;启动A/D转换

OUTDX,AL

CALLDALLY

MOVDX,AD0809;读出转换结果

INAL,DX

MOVDX,MY8255_A;将结果显示于LED

OUTDX,AL

MOVBL,AL

MOVBH,AL

CALLPID;调用PID子程序,得到控制量CK

MOVAL,CK;把控制量转化成PWM输出

SUBAL,80H

JCIS0

MOVAAAA,AL

JMPCOU

IS0:

MOVAL,10H;电机的启动值不能低于10H

MOVAAAA,AL

COU:

MOVAL,7FH

SUBAL,AAAA

MOVBBB,AL

MOVAX,YK;将反馈值YK送到屏幕显示

CALLDECSHOW

MOVDL,0DH;回车

MOVAH,02H

INT21H

MOVAH,1;判断是否有按键按下

INT16H

JZM1;无按键则跳回继续等待,有则退出

EXIT:

CLI

MOVAL,00H;退出时停止电机运转

MOVDX,MY8255_B

OUTDX,AL

MOVDX,PC8254_MODE;恢复PC机定时器0状态

MOVAL,36H

OUTDX,AL

MOVDX,PC8254_COUNT0

MOVAL,00H

OUTDX,AL

MOVAL,00H

OUTDX,AL

MOVDX,PCI_INTCSR;恢复PCI卡中断控制寄存器

MOVAX,0000H

OUTDX,AX

MOVAX,0000H;恢复INTR原中断矢量

MOVES,AX

MOVDI,INTR_IVADD

MOVAX,IP_BAK;恢复INTR原中断处理程序入口偏移地址

MOVES:

[DI],AX

ADDDI,2

MOVAX,CS_BAK;恢复INTR原中断处理程序入口段地址

MOVES:

[DI],AX

MOVDX,INTR_OCW1;恢复INTR原中断屏蔽寄存器的屏蔽字

MOVAL,IM_BAK

OUTDX,AL

MOVDI,0020H

MOVAX,IP_BAK1;恢复定时器0中断处理程序入口偏移地址

MOVES:

[DI],AX

ADDDI,2

MOVAX,CS_BAK1;恢复定时器0中断处理程序入口段地址

MOVES:

[DI],AX

MOVAL,IM_BAK1

OUT21H,AL;恢复屏蔽字

STI

MOVAX,4C00H

INT21H

MYISRPROCNEAR;系统总线INTR中断处理程序

PUSHAX

PUSHCX

PUSHDX

MOVAX,DATA

MOVDS,AX

MOVAL,MARK

CMPAL,01H

JZIN1

MOVMARK,01H

JMPIN2

IN1:

MOVMARK,00H;计算转速

VV:

MOVDX,0000H

MOVAX,03E8H

MOVCX,VADD

CMPCX,0000H

JZMM1

DIVCX

MM:

MOVZV,AL

MOVVADD,0000H

MM1:

MOVAL,ZV

MOVZVV,AL

IN2:

MOVDX,PCI_INTCSR;清PCI卡控制寄存器标志位

SUBDX,19H

INAL,DX

MOVDX,PCI_INTCSR

ADDDX,2

MOVAX,003FH

OUTDX,AX

MOVDX,INTR_OCW2;向PC机内部8259发送中断结束命令

MOVAL,20H

OUTDX,AL

MOVAL,20H

OUT20H,AL

POPDX

POPCX

POPAX

IRET

MYISRENDP

TIMERISRPROCNEAR;PC机定时器0中断处理程序

PUSHAX

PUSHCX

PUSHDX

MOVAX,DATA

MOVDS,AX

INCTC;采样周期变量加1

CALLKJ

CLC

CMPMARK,01H

JCTT1

INCVADD

CMPVADD,0700H;转速值溢出,赋极值

JCTT1

MOVVADD,0700H

MOVMARK,00H

TT1:

MOVAL,20H;中断结束,发EOI命令

OUT20H,AL

POPDX

POPCX

POPAX

IRET

TIMERISRENDP

KJPROCNEAR;PWM子程序

PUSHAX

CMPFPWM,01H;PWM为1,产生PWM的高电平

JNZTEST2

CMPVAA,00H

JNZANOT0

MOVFPWM,02H

MOVAL,BBB

CLC

RCRAL,01H

MOVVBB,AL

JMPTEST2

ANOT0:

DECVAA

MOVAL,01H;PB0=1电机转动

MOVDX,MY8255_B

OUTDX,AL

TEST2:

CMPFPWM,02H;PWM为2,产生PWM的低电平

JNZOUTT

CMPVBB,00H

JNZBNOTO

MOVFPWM,01H

MOVAL,AAAA

CLC

RCRAL,01H

MOVVAA,AL

JMPOUTT

BNOT0:

DECVBB

MOVAL,00H;PB0=0电机停止

MOVDX,MY8255_B

OUTDX,AL

OUTT:

POPAX

RET

KJENDP

PID:

MOVAX,BX;PID子程序

SUBAX,YK;求偏差EK

MOVR0,AX

MOVR1,AX

SUBAX,EK_1

MOVR2,AX

SUBAX,AEK_1;求BEK

MOVBEK,AX

MOVR8,AX

MOVAX,R1;求偏差变化量AEK

MOVEK_1,AX

MOVAX,R2

MOVAEK_

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

当前位置:首页 > 工程科技 > 材料科学

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

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