其工作原理为:把as5040传感器装在电风扇摇头的转轴上,就能感应出电扇转过的角度与初始位置的夹角,计算出当前风扇摇头的速度,在下一个采样周期到来时,as5040旋转编码器测得的速度信号及电机位置反馈信号通过as5040接口反馈到avr单片机169,单片机再根据给定的运动速度与速度的反馈信号相减,得出偏差,给定的位置信号与电机目前的位置信号进行比较,经过防积分饱和的控制算法得出控制量,单片机最终将控制量以pwm的形式输出,经过3966功率放大,驱动直流电机,进入下一个采样周期,实现根据设定值的调节,使电风扇以一定的速度并且摇头角度在设定值范围内转动。
as5040旋转编码器把圆周分成1024份,当转离初始位置后,pwm_lsb端输出pwm脉冲。在0位置处,对应高电平宽度为1us,位置每加1,pwm高电平脉宽相应增加1us。通过对电机pwm的控制可以控制电机的转动,而as5040旋转编码器随电机转轴转动,可以根据lsb端口输出脉冲计数得出电风扇摇头的速度变化,通过检测pwm_lsb输出脉冲可以得出此时刻转动的位置。as5040引脚b_dir_v可以直接检测出电机的正转和反转(输出1为顺时针,0为逆时针转动)。根据编码器工作原理,设计编码器硬件电路如下图2所示
电机的转速ω为:
ω= c ×Δn×(终止角-起始角) ÷360 ÷ts (1)
式中 c为标度变换系数, 可根据转速的量纲来选择,Δn 为一个采样周期中的一次从起始到终止角的计数值,加上pwm输出值,再与1024比值,ts 为采样周期。
avr 单片机169 输出的脉宽调制( pwm) 信号需经过功率放大才能驱动电机,调速控制系统采用的是3966 驱动芯片, 双极性工作方式是指在一个pwm 周期内电机电枢两端的电压呈正负变化,系统采用的双极性pwm控制,采用pi控制算法进行速度调节。驱动接口电路如图3 所示。单片机pwm引脚pf7直接接电机的enable端,它控制着电机的转速的大小。
图3 电机接口电路
2 360度内摇头角度调节装置软件设计
2.1 主程序模块化设计
在主程序的循环中,单片机系统自行给定, 获得电机转动的命令字,包括控制电机的速度和转动方向及转动位置。调用读旋转编码器模块,获得电机的实际转速和转动位置,把给定速度与实际速度作差,得出控制量偏差;把给定的位置与实际位置进行比较作差,得出位置偏差。然后,调用pi控制算法模块控制电风扇的转速。若定时到了,调用pwm 驱动模块,驱动电机,形成控制系统的速度闭环。
读编码器模块程序原理:as5040 的pwm_lsb端输出pwm脉冲,高电平1us对应0位置,位置加1,pwm高电平脉宽增加1us,所以高电平脉宽可以表示出此时电机转动的位置。由 (1) 式可以计算出电机的转速。系统软件采用模块化设计方法,主程序模块化设计框图如图4所示。
2.2 pi控制算法模块设计
在主程序中得到速度的偏差信号和电机转动的位置偏差信号,输入到控制算法模块。系统在每一次采得速度信号的同时也获得风扇转动的位置信息,系统根据输入的位置信号与系统的运行状态判断是否反向运行。对于电机转动的速度偏差,系统通过软件对转速进行防饱和的pi调节方法,算得pwm脉宽。pi控制算法模块框图如5所示。
其中kp 为比例系数,ki 为积分系数, ui 为给定值; uk 是第k 次采样的测量值; qk 相当于校正量中的积分部分,初始值可取qk= 0。在数字pi 控制系统中,当系统启、停或大幅度变动给定值时,系统输出会出现较大的偏差,经过积分项累积后,可能会出现积分饱和,从而增加了系统的调整时间和超调量, 影响控制效果。所以,在pi 算法中加入了防止积分饱和措施,即在速度偏差较大时(即e(k)>emax)采用比例调节方式,这样调节速度很快,且防止积分饱和,当速度偏差较小时(即e(k)<emax)时比例作用较弱,采用比例积分调节方法。
3 调节装置功能实现
1、打开开始按钮,若起始角度,终止角度都处于非零(a终止>a起始)则电扇开始摇头。(注:a终止和a起始都为零,a终止<a起始,不摇头)
2、可以设置定时摇头时间,改变在面板上按向上向下键改变摇头速度。
3、若摇头过程中,需改变摇头角度,需重新输入起始终止角后按确认键后摇头角度更新。
4 结束语
针对市场上的落地电风扇的摇头角度都在90度左右,不能进行调节摇头速度,和摇头角度,本文创新点是采用了avr新型单片机169为微控制器,加上了as5040旋转编码器及3966驱动,构成对直流电机控制,实现了电风扇360度内摇头角度自由调节的功能。
图4 系统程序总的控制流程图
图5 pi控制算法模块框图