直流电机转速测量与控制课程设计
- 格式:doc
- 大小:67.50 KB
- 文档页数:7
直流电机转速测量与控制一、系统组成和测控原理转速是工程上一个常用参数,旋转体的转速常以每秒钟或每分钟转数来表示。
转速测量方法很多,由于转速是以单位时间内的转数来衡量,再变换过程中大多是有规律的重复运动;霍尔开关传感器由于其体积小,无接触动态特性好,使用寿命长等特点,在测量旋转体的转速领域得到了广泛的应用。
霍尔器件是由半导体材料制成的一种薄片,在垂直于平面方向上施加外磁场B,在沿平面方向两端加外电场,则使电子在磁场中运动,结果在器件的两个侧面之间产生霍尔电势,其大小和外磁场的磁场强度及电流大小成比例。
本设计选用SPRAGUE300系列霍尔开关传感器3013T,它是一种硅单片集成电路,内含稳压电路、霍尔电势发生器、放大器、施密特触发器和集电极开路输出电路,器件采用三端平塑封装,引出端符号如下:根据霍尔效应原理,将一块永久磁铁固定在电机封轴上的转盘边沿,转盘岁北侧轴旋转,磁钢也跟着同步旋转,在转盘附近安置一个霍尔器件3013T,则霍尔器件首次刚所产生的磁场影响输出脉冲信号,其频率和转速成正比,测出该脉冲的周期或频率即可计算出转速。
直流电机的转速与施加于电机两端的电压、电流大小有关,本设计利用DAC0832控制输出到直流电机的电压, 电流值即通过控制DAC0832 的模拟输出信号量来控制电机的转速。
当测出电机转速小于设定值时增大D/A输出电压; 当测出电机转速大于设定值时减小D/A输出电压,从而使电机以某一速度恒速旋转。
为简化设计,控制算法可采用简单的比例调节器算法(简单的加一、减一法)。
比例调节器的输出为:e(t)y=Kp式中:Y——调节器的输出e(t)——调节器的输入,一般为偏差值K——比例系数P从上式可以看出,调节器的输出Y与输入偏差值e(t )成正比。
因此,只要偏差e(t)一出现就产生与之成比例的调节作用,具有调节及时的特点,这是一种最基本的调节规律。
比例调节作用的大小除了与偏差e(t)有关外,,比例调节系数愈大,调节作用越强,动态特性也越主要取决于比例系数Kp大。
反之,比例系数愈小调节作用越弱。
对于大多数的惯性环节,K太大时p 将会引起自激振荡。
比例调节的主要缺点是存在静差,对于扰动较大惯性也比较大的系统,若采用单纯的比例调节器就难于兼顾动态和静态特性,而需采用PI或PID算法。
二、硬件连线图( 附报告后 )三、流程图( 附报告后 )四、 PID算法程序;MOTOR.ASM;DC MOTOR;SPEED 0-40 R/S;main proc far;data segment 'data'speed db 20hgetsp db 00hcons0 db 2cons1 db 2cons2 db 1sub0 db 00hsub1 db 00hsub2 db 00hmid0 dw 00hmid1 dw 00houtp db 40h ;存放u(k-1)waitt db 1 ;采样时间count db 38 ;时钟频率为1/38data ends;code segment 'code'assume cs:code,ds:data,es:databegin: mov ax,data ;将数据段段值送DS、ESmov ds,axmov es,axmov speed,clmov ax,cs ;显示MESS信息mov es,axmov bp,offset mtmess ;取MESS偏移地址给BPmov ah,4 ;置中断向量,利用内部中断int 14hpush ds ;置中断处理程序xor ax,axmov ds,axlea ax,ringmov ds:20h,ax ;中断类型为08H,时钟中断mov ax,csmov ds:22h,axmov al,13h ;8259初始化,置初始化命令字ICW1out 20h,almov al,08h ;置初始化命令字ICW2out 21h,almov al,0dh ; ICW4,中断正常结束方式out 21h,almov al,0feh ;置操作命令字OCW1,仅IR0未被屏蔽out 21h,almov al,20h ;置操作命令字OCW2,令EOI为1,结束中断out 20h,alpop dscall timer0 ;调用计数器0初始化程序call timer1stimov al,0ffh ;因为电机爬速最低电压为b极为1.25,c极为2.74,消除死区电压out 09h,alout 08h,alrun: jmp run;ring: cli ;关中断,中断服务子程序push ds ;保护现场push axpush bxpush cxpush dxmov ax,data ;载入数据段mov ds,axdec count ;中断次数COUNT-1,判断是否为0,为0,1秒到jnz exitmov count,38 ;恢复初值call timer1 ;重置T1初值dec waitt ;转速采样间隔WAITT-1,判断是否为0,为0,1秒到jnz exitmov waitt,1 ;恢复WITT为1call adjustexit: pop dx ;恢复现场pop cxpop bxpop axpop dsmov al,20h ;8259操作命令字OCW2中EOI置1,结束中断out 20h,alsti ;中断结束,返回iret;adjust: in al,41h ;从T1采样转速值赋给GETSP,读入值为99H-脉冲数mov ah,almov al,99hsub al,ah ;最终为脉冲数,分高8位,低8位das ;十进制调整,结果为十进制数mov getsp,almov ax,cs ;显示SETMESS的字符串mov es,axmov bp,offset setmessmov ah,4 ;串行通信中断调用,发送ES:BP开始的字符串int 14hmov al,speed ;speed显示十位mov cl,4sar al,cladd al,30hmov ah,1int 14hmov al,speed ;speed显示个位and al,0fhadd al,30hmov ah,1int 14hmov ax,cs ;显示GETMESS的字符串 mov es,axmov bp,offset getmessmov ah,4int 14hmov al,getsp ;getsp十位数mov cl,4shr al,cladd al,30hmov ah,1int 14hmov al,getsp ;getsp个位数and al,0fhadd al,30hmov ah,1int 14hmov ax,cs ;显示 RSMESSmov es,axmov bp,offset rsmessmov ah,4int 14hmov al,speed ;码制转换mov cl,4shr al,clmov dl,10imul dlmov bl,almov al,speedand al,0fhadd bl,almov bh,blmov al,getsp ;码制转换mov cl,4sar al,clmov dl,10imul dlmov bl,almov al,getspand al,0fhadd bl,alsub bh,blmov sub0,bh ;计算e(k)mov al,bhmov dl,cons0 ;取a0imul dl ;取a0*e(k)放入AXmov mid0,ax ;a0*e(k)暂存单元mov al,sub1 ;取e(k-1)mov dl,cons1imul dlmov mid1,ax ;a1*e(k-1)暂存单元mov al,sub2mov dl,cons2imul dladd ax,mid0sbb ax,mid1add al,outp ;u(k-1)+a0*e(k)-a1*e(k-1)+e*(k-2) adc ah,00h ;计算cmp ax,0ffh ;上限值比较jg adjst0cmp ax,40h ;下限值比较jl adjst1jmp adjst2adjst0: mov al,0ffhjmp adjst2adjst1: mov al,40hadjst2: out 09h,alout 08h,almov outp,almov al,sub1mov sub2,al ;e(k-1)->e(k-2)mov al,sub0mov sub1,al ;e(k)->e(k-1)retn;timer1: mov al,59h ;8253计数器1初始化(01选择计数器1;01表示只写入低8位;100方式4,软件触发选通,控制字写入OUT为高;1表示十进制)out 43h,almov al,99hout 41h,alretntimer0: mov al,34h ;8253定时器0初始化(00选择计数器0;11为16位计数,先低8位,后高8位;010方式2,分频工作方式,控制字写入OUT为高;0为二进制计数)out 43h,almov al,79out 40h,almov al,245out 40h,alretnmtmess db "********** DC Motor **********",0setmess db " speed=",0getmess db "r/s realspeed=",0rsmess db "r/s ",0main endpcode endsend begin。