《小型直流电机闭环调速系统PID控制器设计概要.doc》由会员分享,可在线阅读,更多相关《小型直流电机闭环调速系统PID控制器设计概要.doc(59页珍藏版)》请在三一办公上搜索。
1、微机原理及接口技术课程设计报告小型直流电机闭环调速系统PID控制器设计目录一、课程设计的目的及意义1二、课程设计的题目与要求1三、基本原理1 1.PID算法1 2.霍尔元件测速原理4 3.转速调节原理5四、基于80x86芯片微机接口控制电路的设计6 1.实现功能6 2.设计思想7 3.模块介绍(附流程图)7 (1)电机控制模块7 1)测速模块9 2)PWN波产生模块10 3)PID计算模块11 (2)键盘扫描与显示单元14 1)键盘扫描模块14五、基于80c51单片机控制电路的仿真设计18 1.实现功能18 2.设计思想18 3.模块介绍19 (1)测速反馈模块19 (2)PID模块19 (3
2、)键盘扫描模块20 4.相关流程图21六、 结束语23附件:程序代码一、课程设计的目的及意义通过本次课程设计要掌握80x86、8255、8251等芯片及基本输入输出电路的使用方法,灵活运用课本知识,加深对所学的知识理解,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后设计时逻辑更加清晰。二、课程设计的题目与要求1.题目小型直流电机闭环调速系统PID控制器设计2.设计要求(1)设计基于80x86微机接口控制电路;(2)分别用C语言或汇编语言或VC+编
3、程完成硬件接口功能设计;(3)程序功能要求:电机速度由按键分段给定或电位器连续给定,计算机屏幕和数码管同步跟踪显示当前给定速度和电机实际运行速度,实现PID参数在线显示和修改。(4)具备本地及远程(串行方式)监控功能。三、基本原理1.PID算法及相关内容在DDC系统中,用计算机取代了模拟器件,控制规律的实现是由计算机软件来完成的。因此,系统中数字控制的设计,实际上是计算机算法的设计。由于计算机只能识别数字量,不能对连续的控制算式直接进行运算,故在计算机控制系统中,首先必须对控制规律进行离散化的算法设计。为将模拟PID控制规律按式(1.2)离散化,我们把图1.1中、在第n次采样的数据分别用、表示
4、,于是式(1.1)变为 := (1.4)当采样周期T很小时可以用T近似代替,可用近似代替,“积分”用“求和”近似代替,即可作如下近似 (1.5) (1.6)这样,式(1.2)便可离散化以下差分方程 (1.7)上式中是偏差为零时的初值,上式中的第一项起比例控制作用,称为比例(P)项,即 (1.8)第二项起积分控制作用,称为积分(I)项即 (1.9)第三项起微分控制作用,称为微分(D)项即 (1.10)这三种作用可单独使用(微分作用一般不单独使用)或合并使用,常用的组合有:P控制: (1.11)PI控制: (1.12)PD控制: (1.13)PID控制: (1.14)式(1.7)的输出量为全量输出
5、,它对于被控对象的执行机构每次采样时刻应达到的位置。因此,式(1.7)又称为位置型PID算式。由(1.7)可看出,位置型控制算式不够方便,这是因为要累加偏差,不仅要占用较多的存储单元,而且不便于编写程序,为此对式(1.7)进行改进。根据式(1.7)不难看出u(n-1)的表达式,即 (1.15)将式(1.7)和式(1.15)相减,即得数字PID增量型控制算式为 (1.16) 从上式可得数字PID位置型控制算式为 (1.17)式中: 称为比例增益; 称为积分系数; 称为微分系数1。数字PID位置型示意图和数字PID增量型示意图分别如图所示:数字PID位置型控制示意图 数字PID增量型控制示意图2.
6、霍尔元件测速原理霍尔传感器是对磁敏感的传感元件,由磁钢、霍耳元件等组成。测量系统的转速传感器选用SiKO 的 NJK-8002D 的霍尔传感器,其响应频率为100KHz,额定电压为5-30(V)、检测距离为10(mm)。其在大电流磁场或磁钢磁场的作用下,能测量高频、工频、直流等各种波形电流。该传感器具有测量精度高、电压范围宽、功耗小、输出功率大等优点,广泛应用在高速计数、测频率、测转速等领域。输出电压425V,直流电源要有足够的滤波电容,测量极性为N极。安装时将一非磁性圆盘固定在电动机的转轴上,将磁钢粘贴在圆盘边缘,磁钢采用永久磁铁,其磁力较强,霍尔元件固定在距圆盘1-10mm处。当磁钢与霍尔
7、元件相对位置发生变化时,通过霍尔元件感磁面的磁场强度就会发生变化。圆盘转动,磁钢靠近霍尔元件,穿过霍尔元件的磁场较强,霍尔元件输出低电平;当磁场减弱时,输出高电平,从而使得在圆盘转动过程中,霍尔元件输出连续脉冲信号。这种传感器不怕灰尘、油污,在工业现场应用广泛。霍尔器件是由半导体材料制成的一种薄片,器件的长、宽、高分别为 l、。若在垂直于薄片平面(沿厚度 )方向施加外磁场,在沿方向的两个端面加一外电场,则有一定的电流流过。由于电子在磁场中运动,所以将受到一个洛仑磁力,其大小为:式中:f洛仑磁力, 载流子电荷, 载流子运动速度, 磁感应强度。这样使电子的运动轨迹发生偏移,在霍尔元器件薄片的两个侧
8、面分别产生电子积聚或电荷过剩,形成霍尔电场,霍尔元器件两个侧面间的电位差称为霍尔电压。霍尔电压大小为: (mV) 式中:霍尔常数, 元件厚度, 磁感应强度, 控制电流设 , 则=(mV)为霍尔器件的灵敏系数(mV/mA/T),它表示该霍尔元件在单位磁感应强度和单位控制电流下输出霍尔电动势的大小。应注意,当电磁感应强度反向时,霍尔电动势也反向。图2.3为霍耳元件的原理结构图。若控制电流保持不变,则霍尔感应电压将随外界磁场强度而变化,根据这一原理,可以将两块永久磁钢固定在电动机转轴上转盘的边沿,转盘随被测轴旋转,磁钢也将跟着同步旋转,在转盘附近安装一个霍尔元件,转盘随轴旋转时,霍尔元件受到磁钢所产
9、生的磁场影响,输出脉冲信号。传感器内置电路对该信号进行放大、整形,输出良好的矩形脉冲信号,测量频率范围更宽,输出信号更精确稳定,已在工业,汽车,航空等测速领域中得到广泛的应用。其频率和转速成正比,测出脉冲的周期或频率即可计算出转速。 图2.3 霍耳元件的原理结构图3.转速调节原理PWM的占空比决定输出到直流电机的平均电压.PWM不是调节电流的.PWM的意思是脉宽调节,也就是调节方波高电平和低电平的时间比,一个20%占空比波形,会有20%的高电平时间和80%的低电平时间,而一个60%占空比的波形则具有60%的高电平时间和40%的低电平时间,占空比越大,高电平时间越长,则输出的脉冲幅度越高,即电压
10、越高.如果占空比为0%,那么高电平时间为0,则没有电压输出.如果占空比为100%,那么输出全部电压. 所以通过调节占空比,可以实现调节输出电压的目的,而且输出电压可以无级连续调节.在使用PWM控制的直流无刷电动机中,PWM控制有两种方式: (1) 使用PWM信号,控制三极管的导通时间,导通的时间越长,那么做功的时间越长,电机的转速就越高。 (2)使用PWM控制信号控制三极管导通时间,改变控制电压高低来实现直流电机单元由DC12V、1.1W的直流电机,小磁钢,霍尔元件及输出电路构成。PWM示意图如图1-1-3所示。通过调节T1的脉冲宽度,改变T1的占空比,从而改变输出,达到改变直流电机转速的目的
11、。图1-1-3 PWM示意图 利用8255的PB0产生脉冲信号作为控制量,经驱动电路驱动电机运转。霍尔测速元件输出的脉冲信号记录电机转速构成反馈量。在参数给定的情况下,经PID运算,电机可在控制量的作用下,按PC机累加器给定的转速运转。通过PC的0号通道,设置为输出1ms方波,作为采样时钟,PB0产生PWM脉冲计时及转速累加,系统总线上INTR中断用于测量电机转速。四、基于80x86芯片微机接口控制电路的设计1.实现功能 1)实现小型直流电机闭环PID控制调速; 2)使用汇编语言完成硬件接口功能的设计; 3)使用小键盘实现现场设置设定速度v、比例参数p、积分参数i、微分数d; 4)使用4位数码
12、管实现现场显示实时速度s、设定速度v、比例参数p、积分参数i、微分参数d; 5)实现控制台屏幕显示设置速度v与实时速度s2.设计思想 整个系统可以的划分为两部分,一部分是直流电机闭环PID调速单元,一部分是键盘扫描和数码管显示单元。直流电机闭环PID调速单元运用PID算法通过对P、I、D、S、V参数的运算得出PID控制量,并将PID控制量转化为PWM通过8255单元输出给直流电机从而实现对直流电机的控制。键盘扫描单元通过对键盘的重复扫描读取用户的输入数据P、I、D、V并进行相应的存储,数码管显示单元分析当前选择状态、读取P、I、D、S、V参数并通过基本输入输出单元进行相应的显示。具体实施过程:
13、将电机闭环调速的PWM波产生模块、PID控制量产生模块、测速生成模块、初始化模块和键盘扫描和数码管显示实验中的键盘扫描模块、数码管显示模块分别编写为子过程;将以上模块进行适当的组合即可完成指定功能,具体可见代码。3.模块介绍 (1)电机控制模块这是一个主要的模块,完成PID反馈控制调速小型直流电机。用8255单元来产生正弦波控制直流电机。通过控制高电平的时间就可以控制电机转速了。其中驱动电路由达林顿管组成。测速元件是霍尔传感器,具体的测度原理见先行知识,模块原理图如下:电机控制模块原理图利用实验平台上8255的PB0产生脉冲信号作为控制量,经驱动电路驱动电机运转。霍尔测速元件输出的脉冲信号记录
14、电机转速构成反馈量。在参数给定情况下,经PID运算,电机可在控制量作用下,按给定转速运转。实验利用PC机定时器0号通道,设置为输出1ms方波,作为采样时钟,PB0产生PWM脉冲计时及转速累加。系统总线上INTR中断用于测量电机转速。程序流程如图所示: 测速中断流程图 定时采样中断流程图直流电机闭环调速流程图1)测速模块 基本原理 霍尔传感器产生一系列反应电机转速的矩形波,矩形波是中断定时器的中断控制信号。通过中断频率就可以知道电机的速度了。 程序代码MYISR PROC NEAR PUSH AX PUSH CX PUSH DX MOV AX,DATA MOV DS,AX MOV AL,MARK
15、 CMP AL,01H JZ IN1 MOV MARK,01H JMP IN2 IN1: MOV MARK,00H ;计算转速 VV: MOV DX,0000H MOV AX,03E8H MOV CX,VADD CMP CX,0000H JZ MM1 DIV CX MM: MOV ZV,AL MOV VADD,0000H MM1: MOV AL,ZV MOV ZVV,AL IN2: MOV DX,PCI_INTCSR ;清PCI卡控制寄存器标志位 SUB DX,19H IN AL,DX MOV DX,PCI_INTCSR ADD DX,2 MOV AX,003FH OUT DX,AX MOV
16、DX,INTR_OCW2 ;向PC机内部8259发送中断结束命令 MOV AL,20H OUT DX,AL MOV AL,20H OUT 20H,AL POP DX POP CX POP AX IRET MYISR ENDP2)PWM波产生模块 基本原理 PWM波的输出高电平的时间点一个周期的比例越大,则输出的平均电压就越大,通过速度反馈及PID计算,然后输出相应占空比的PWM波,占空比越大,则电机两端获得的电压也越大,这里PWM波的信号是通过8255芯的PB0端输出到驱动电路的A端口的 程序代码 KJ PROC NEAR PUSH AX CMP FPWM,01H ;PWM为1,产生PWM的高
17、电平 JNZ TEST2 CMP VAA,00H JNZ ANOT0 MOV FPWM,02H MOV AL,BBB CLC RCR AL,01H MOV VBB,AL JMP TEST2 ANOT0: DEC VAA MOV AL, 01H ;PB0=1 电机转动 MOV DX, MY8255_B OUT DX,AL TEST2: CMP FPWM,02H ;PWM为2,产生PWM的低电平 JNZ OUTT CMP VBB,00H JNZ BNOT0 MOV FPWM,01H MOV AL,AAAA CLC RCR AL,01H MOV VAA,AL JMP OUTT BNOT0: DEC
18、VBB MOV AL,00H ;PB0=0 电机停止 MOV DX,MY8255_B OUT DX,AL OUTT: POP AX RET KJ ENDP3)PID计算模块 基本原理 计算模块就是通过测速反馈得来的实时速度反应量来计算相关的比例项、积分项、微分项。最后得到控制量,送给模块,用于产生控制波。PID PROC NEAR MOV AX,SPEC SUB AX,YK ;求偏差EK MOV R0,AX MOV R1,AX SUB AX,EK_1 MOV R2,AX SUB AX,AEK_1 ;求BEK MOV BEK,AX MOV R8,AX MOV AX,R1 ;求偏差变化量AEK M
19、OV EK_1,AX MOV AX,R2 MOV AEK_1,AX TEST R1,8000H JZ EK1 ;若偏差EK为正数,则不需要求补码 NEG R1 ;若偏差EK为负数,则求偏差EK的补码 EK1: MOV AX,R1 ;判断偏差EK是否在积分分离值的范围内 SUB AX,IBAND JC II ;在积分分离值范围内,则跳转到II,计算积分项 MOV R3,00H ;若不在积分分离值范围内,则将积分项清0 JMP DDD ;计算微分项 II: MOV AL,TS ;计算积分项,结果放在R3变量中(R3=EK*TS/KII) MOV AH,00H ;其中TS和KII均为正数,所以R3的
20、正负由EK决定 MOV CX,R1 MUL CX MOV CX,KII DIV CX MOV R3,AX TEST R0,8000H ;判断积分项的正负 JZ DDD ;为正数,则跳转去计算微分项 NEG R3 ;为负数,则将积分项的结果求补码 DDD: TEST BEK,8000H ;判断BEK的正负 JZ DDD1 ;为正数,则BEK不变 NEG BEK ;为负数,则求BEK的补码 DDD1: MOV AX,BEK ;计算微分项(R4=KDD*BEK/8TS) MOV CX,KDD MUL CX PUSH AX PUSH DX MOV AL,TS MOV AH,00H ;将微分项缩小8倍,
21、防止溢出 MOV CX,0008H MUL CX MOV CX,AX POP DX POP AX DIV CX MOV R4,AX TEST R8,8000H ;判断微分项的正负 JZ DD1 ;为正数,则结果不需要求补码 NEG R4 ;为负数,则微分项结果R4求补码 DD1: MOV AX,R3 ;积分项和微分项相加,结果放在R5变量中 ADD AX,R4 MOV R5,AX JO L9 ;判断溢出 L2: MOV AX,R5 ADD AX,R2 MOV R6,AX ;R6=R5+R2=积分项+微分项+AEK JO L3 L5: MOV AX,R6 ;计算KPP*R6 MOV CX,KPP
22、 IMUL CX MOV CX,1000H IDIV CX MOV CX,AX RCL AH,01H ;判断溢出,溢出赋极值 PUSHF RCR AL,01H POPF JC LLL1 CMP CH,00H JZ LLL2 MOV AL,7FH JMP LLL2 LLL1: CMP CH,0FFH JZ LLL2 MOV AL,80H LLL2: MOV R7,AL ;CK=CK_1+CK ADD AL,CK_1 JO L8 L18: MOV CK_1,AL ADD AL,80H MOV CK,AL RET L8: TEST R7,80H ;CK溢出处理程序 JNZ L17 MOV AL,7F
23、H ;若为正溢出,则赋给正极值7FH JMP L18 L17: MOV AL,80H ;若为负溢出,则赋给赋极值80H JMP L18 L9: TEST R3,8000H JNZ L1 MOV R5,7FFFH ;若为正溢出,则赋给正极值7FFFH JMP L2 L1: MOV R5,8000H ;若为负溢出,则赋给负极值8000H JMP L2 L3: TEST R2,8000H JNZ L4 MOV R6,7FFFH JMP L5 L4: MOV R6,8000H JMP L5 RET PID ENDP2.键盘扫描与显示单元键盘及数码管显示单元通过基本输入输出单元与80x86CPU总线连接
24、,选通信号CS_A、CS_B分别与IOY1、IOY2连接,地址分别为3040H、3080H。通过OA0-OA3与X1-X3相连选通指定行,IA0-IA3与Y1-Y3连接读取当前闭合列,从而确定当前闭合按键。A-G、DP与0B0-OB7连接,根据按键使数码管选通显示相应的数据。 键盘扫描与显示原理图如下图所示: 键盘扫描与显示原理图 键盘扫描模块 基本原理键盘扫描模块,实现了判断是否有按键,并且如果有按键获取按键码的功能,44键盘的编码,从左到右,从上到下,依次编码为0F, 如果有按键, 则转入到按键处理子程序模块执行, 如果没有,则返回主程序循环。 程序代码 KEYSCAN PROC NEAR
25、 PUSH AX PUSH DX MOV AX,DATA MOV DS,AX BEGIN: CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键 JNZ GETKEY1 ;有键按下则跳置GETKEY1 GETKEY1: CALL DIS ;显示刷新 CALL DALLY1 CALL DALLY1 CALL CLEAR ;清屏 CALL CCSCAN ;再次扫描按键 JNZ GETKEY2 ;有键按下则跳置GETKEY2 JMP ENDKEYSCAN ;否则跳回开始继续循环 GETKEY2: MOV CH,0FEH MOV CL,00H ;设置当前检测的
26、是第几列 COLUM: MOV AL,CH ;选取一列,将X1X4中一个置0 MOV DX,MYIO_A OUT DX,AL IN AL,DX LP1: TEST AL,01H ;是否为第1行 JNZ LP2 ;不是则继续判断 MOV AL,00H ;设置第1行第1列的对应的键值 JMP KCODE LP2: TEST AL,02H ;是否为第2行 JNZ LP3 ;不是则继续判断 MOV AL,04H ;设置第2行第1列的对应的键值 JMP KCODE LP3: TEST AL,04H ;是否为第3行 JNZ LP4 ;不是则继续判断 MOV AL,08H ;设置第3行第1列的对应的键值 J
27、MP KCODE LP4: TEST AL,08H ;是否为第4行 JNZ NEXT ;不是则继续判断 MOV AL,0CH ;设置第4行第1列的对应的键值 KCODE: ADD AL,CL ;将第1列的值加上当前列数,确定按键值;CALL CALL INPUTDEAL ;保存按键值,进入相应的按键处理程序 PUSH AX KON: CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键,判断按键是否弹起 JNZ KON ;未弹起则继续循环等待弹起 POP AX NEXT: INC CL ;当前检测的列数递增 MOV AL,CH TEST AL,08H ;检测是否扫描到第4列 JZ KERR ;是则跳回到开始处 ROL AL,1 ;没检测到第4列则准备检测下一列 MOV CH,AL JMP COLUM KERR: ;JMP BEGIN ENDKEYSCAN: POP DX POP AX RET KEYSCAN ENDP 键盘扫描程序流程图五、基于80c51单片机控制电路的仿真设计 1.实现功能 基本功能 1)用仿真基于80c51实现小型直流电机闭环PID控制调速; 2)使用C语言完成硬件接口功能的设计; 3)使用小键盘实现现场设置设定速度v、