直流电机测速控制总结
直流电机测速控制总结
一.测速原理
霍尔开关对垂直于器件且磁通密度达到其动作点Bopn或Bops以上,会使器件开关导通输出为低,此时器件可以吸收1mA的电流。只要磁通密度降低到释放点Brpn或Brps以下,会使器件开关断开输出为高。磁通密度动作点和释放点的差异称为器件的磁滞。该磁滞特性可保证即使出现外部振动和电气噪声,器件的开关过程均无抖动。
利用霍尔开关输出电压与磁通密度的这种这种关系特性,
在直流电机的转动轴上套上一个塑料齿轮,在轮子的一条直径上
对称的放有两块相同的小磁铁块。(如右图)
将霍尔开关放置在齿轮下放合适处,使齿轮转动一周,霍尔开关
就受到两次磁激励而产生两 个脉冲。
霍尔开关
将脉冲输入与P10(INT0)连接;每产生一个脉冲就进中断,对脉冲计数;到1秒将计数之值取出输出;同时将计数清零。由此完成对直流电机的转速测定。
二. 控制原理
采用INT0 中断对转速脉冲CKMOT 计数,每1s 读一次计数值,将此值与预设的转速值比较,若大于预设的转速值则减小DAC0 的数值;若小于转速预设的转速值则增加DAC0 的值来调整直流电机的输入电压达到调整电机的转速直到转速值等于预设定的值。
由于D/A的输出电压范围有限,所以只能测出3转/s---54转/s;
为达到电机控制的稳定,可采用差动输入方法和PDI算法来实现。
本试验采用差动模式,下面是控制程序的部分段;
sfr16 DAC0 = 0xd2; 设定DAC0的数据寄存器地址
unsigned int iDAC0=2048; 设定变量用以初始化DAC0的数据寄存器
void Timer0_ISR (void) interrupt 1 每到1秒进入中断
{
TH0 = (-SYSCLK/1000) >> 8;
TL0 = -SYSCLK/1000;
if (Count1ms) Count1ms--;
if (Count1s) Count1s--;
else 到1秒时开始取值
{
Count1s=1000;
SaveMotorCount=MotorCount;把1秒内得到的脉冲数取出
MotorCount=0; 重新记脉冲数
SD=SaveMotorCount/2-SetSpeed; 将当前转速与设定值比较得到差动量
if (SD)
{
if ((SD>2)||(SD<-2))
iDAC0-=SD;
else
iDAC0-=SD; 改变D/A寄存器值以改变直流电机电压
DAC0=iDAC0;
}
}
}
关键词: 直流电机
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码