小型直流电机闭环调速系统PID控制器设计 CSU.docx

上传人:b****3 文档编号:6671946 上传时间:2023-05-10 格式:DOCX 页数:31 大小:436.43KB
下载 相关 举报
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第1页
第1页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第2页
第2页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第3页
第3页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第4页
第4页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第5页
第5页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第6页
第6页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第7页
第7页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第8页
第8页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第9页
第9页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第10页
第10页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第11页
第11页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第12页
第12页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第13页
第13页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第14页
第14页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第15页
第15页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第16页
第16页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第17页
第17页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第18页
第18页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第19页
第19页 / 共31页
小型直流电机闭环调速系统PID控制器设计 CSU.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

小型直流电机闭环调速系统PID控制器设计 CSU.docx

《小型直流电机闭环调速系统PID控制器设计 CSU.docx》由会员分享,可在线阅读,更多相关《小型直流电机闭环调速系统PID控制器设计 CSU.docx(31页珍藏版)》请在冰点文库上搜索。

小型直流电机闭环调速系统PID控制器设计 CSU.docx

小型直流电机闭环调速系统PID控制器设计CSU

微机原理课程设计报告

 

小型直流电机闭环调速系统PID控制设计(限2-3人)

 

设计题目:

__________________

学院:

__________________

专业班级:

姓名:

学号:

指导老师:

 

一、实验设计要求--------------------------------------------------------------------2

二、控制系统总体设计方案------------------------------------3

三、系统框图--------------------------------------------------------------------------4

四、程序流程图--------------------------------------------4-5

五、重要单元的介绍----------------------------------------5-9

六、硬件连接图-------------------------------------------9-10

七、系统连接图---------------------------------------------11

八、调试及结果------------------------------------------11-12

九、程序代码----------------------------------------------------------------------13-31

十、心得体会--------------------------------------------------------------------------32

十一、参考文献-----------------------------------------------------------------------33

一、设计要求:

1、设计基于80x86微机接口控制电路;

2、分别用C语言和汇编语言编程完成硬件接口功能设计;

3、程序功能要求:

电机速度由按键分段给定或电位器连续给定,计算机屏幕和数码管同步跟踪显示当前给定速度和电机实际运行速度,实现PID参数在线显示和修改。

二、控制系统总体设计方案

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

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

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

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

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

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

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

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

由于程序中要用到中断,但是在windows下不能使用中断,所以必须在dos环境下才能进行程序的调试。

 

三、系统框图

四、程序流程图

主程序流程图

中断服务子程序流程图

五、重要单元的介绍

5.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.

图1-1-18255控制字

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

5.2转速调节原理:

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

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

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

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

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

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

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

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

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

图1-1-3PWM示意图

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

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

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

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

5.3A\D转换原理

 

图1-1-4ADC0809外部管脚图

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

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

_

5.4LED灯的工作原理:

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

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

图1-1-5LED灯管脚图

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

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

六、硬件连接图

6.1单元接线图:

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

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

1-1-6所示。

 

图1-1-6直流电机闭环接线图

 

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

 

七、系统连线图

 

八、调试及结果

8.1调试步骤:

(1)确认从PC机引出的两根扁平电缆已经连接在平台上。

(2)首先运行CHECK程序,查看I/O空间始地址。

(3)利用查出的地址编写程序,然后编译连接。

(4)参照接线图连接电路。

(5)运行程序,调节电位器的大小,观察电机的运行情况以及显示在屏幕上的结果和LED灯的变化。

9.2结果分析:

A/D实现模拟信号转换为数字信号,通过电位器调节输入电压(0~5V),改变输出的数字信号,进而改变8255的给定信号(给定转速),即通过改变PB0通道输出方波的占空比,实现PWM调速,改变脉冲的宽度。

若占空比越大,高电平时间越长,则输出的脉冲幅度越高,即电压越高.根据直流电动机的机械特性,电机转速与电压呈正比变化。

基本功能实验阶段,在“轻松编程”软件中完成,主要完成各个子程序的调试;在检测程序阶段,在“轻松编程”软件中通过编译和链接,并反复检查没有逻辑错误;调试结果正确以后在进行相应的连接,将各个子模块联系起来,由于自己不具备硬件资源,所以调试的时候只能检查程序本身的错误,经过调试能显示各个子程序的功能,同时嵌套有延时子程序,方便程序的调用,而端口地址的选择与确定,只能在实验室里完成,功能扩展及程序的补充,在实验室里完成,使用唐都硬件实验箱,用TDPIT来编程实现,实验的过程中,注意端口地址,要与硬件实验箱上的匹配;功能验证阶段,实验发现已经编好的程序仍存在问题,其中菜单显示和A/D转换是好的,然而电机不转,LED灯也不能正确的显示电机的转速(即相应的速度对应的相应的等不能正常显示)针对原来的程序及老师给的要求进行修改,并添加了一个判断是否有按键输入的子程序通过调整不同的速度后来实现任意状态下的按键停止。

 

九、程序代码

 

***************根据CHECK配置信息修改下列符号值*******************

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

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

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

INTR_IMEQU0F7H;INTR对应的中断屏蔽字

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

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

IOY1EQU0C440H

IOY2EQU0C480H

IOY3EQU0C4C0H

;*****************************************************************

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

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

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

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

PC8254_COUNT0EQU40H;PC机内8254定时器0端口地址

PC8254_MODEEQU43H;PC机内8254控制寄存器端口地址

AD0809EQUIOY1+00H

STACK1SEGMENTSTACK

DW64DUP(?

TOPLABELWORD

STACK1ENDS

DATASEGMENT

TABLE1DB'AssumedFanSpeed:

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

TABLE2DB'CurrentFanSpeed:

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

ENTDB'','$';换行,回车

CS_BAKDW?

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

IP_BAKDW?

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

IM_BAKDB?

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

CS_BAK1DW?

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

IP_BAK1DW?

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

IM_BAK1DB?

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

DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;键值表,0~F对应的7段数码管的

TSDB14H;采样周期

SPECDW?

;转速给定值

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

MOVSI,3000H;建立缓冲区,存放要显示的键值

MOVAL,00H;先初始化键值为0

MOV[SI],AL

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOVDI,3001H

;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的中断屏蔽位

MOVAL,00H

MOVDX,AD0809;启动A/D转换

OUTDX,AL

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,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;没到则继续等待

;MOVDX,OFFSETTABLE1;显示字符串1

;MOVAH,09H

;INT21H

MOVAL,00H

MOVDX,AD0809;启动A/D转换

OUTDX,AL

CALLDALLY

MOVDX,AD0809;读出转换结果

INAL,DX

MOVCL,00H

CMPAL,CL

JSB2

MOVCL,3ch

CMPCL,AL

JSB2

JMPB3

B1:

MOVAL,00H

JMPB3

B2:

MOVAL,3cH

B3:

MOVDI,OFFSETSPEC

MOV[DI],AL

MOVAX,[DI]

CALLDECSHOW

CALLSHOW1

 

MOVDX,OFFSETENT;回车,换行

MOVAH,09H

INT21H

;MOVDX,OFFSETTABLE2;显示字符串2

;MOVAH,09H

;INT21H

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

MOVAL,ZVV

MOVAH,00H

MOVYK,AX;得到反馈量YK

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:

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2