广州航海高等专科学校(广州510725) 李 汉
螺旋桨的直流发电机模拟装置如图1所示,图中 M为船舶推进电动机,G为模拟海船螺旋桨的他励直流发电机,RL为发电机的负载,B为变速器。为了利用直流发电机模拟海船螺旋桨,发电机应提供的阻转矩为:
式中 n为推进电动机的转速 (r/min),GD2为模拟螺旋桨及传动部件的飞轮矩,为发电机及传动部件的飞轮矩,K为桨矩常数。由此可见,为了准确调节推进电动机的阻转矩,要求在一定的时间内精确测量出推进电机的转速及转速变化率。
指标如下:测速范围:3~1500r/min;测速周期:100ms;测速精度:±0.5%;最大转速变化率:±400r/min/s。
图1 海船螺旋桨模拟示意图
为了在电动机低速时仍然能准确地测量转速,必须处理传动轴振动带来的问题。光电编码器的输出信号如图2所示,其中(a)为传动轴平稳运行时的波形,(b)为传动轴有径向振动时的波形。光电编码器输出A、B两相信号,以A相信号为测速脉冲信号,B相信号为参考信号。由图2(a)可看出,当A相信号的上升沿时刻测得B相信号的电位与A相信号的下降沿时刻测得B相信号的电位不同时,此次脉冲为真实脉冲,反之脉冲为干扰脉冲。具体如下:在A相信号的上升沿时刻测量B相信号的电位 Vu,下降沿时刻测量B相信号的电位 Vd,则
当 Vu≠Vd时,判定本次脉冲为真实脉冲;
当 Vu=Vd时,判定本次脉冲为干扰脉冲。
在测速程序中只对真实脉冲给以计数,而忽略干扰脉冲,这样在传动轴出现振动的情况下,使用光电编码器测速的精度将大大提高。
图2 光电编码器输出波形图
设定测速周期为 Tc,系统接收到脉冲之后,识别出A相的干扰脉冲,从而决定是否对脉冲进行计数或作为计时开始/结束时刻。测速系统从A相信号真实脉冲的下降沿开始计时,在 Tc期间对A相信号不断判定输入脉冲的真实性,如果输入为真实脉冲,则测速计数器mp加1,如果输入为干扰脉冲,则测速计数器保持原值不变,直到计时时间到,记录测速计数器的脉冲数 mp、Tc到达前一个真实脉冲下降沿来临时刻的实际计时长度 Tn,由此计算出转速 n。假设计时时钟频率为 fc(MHz),则
在传动轴有振动的情况下,采用如下的方法判定转向:设置判向计数器 Dr,在A相信号脉冲为真实脉冲的下降沿时刻,测量B相信号的电位 Vd,当 Vd=“1”时,Dr加 1,当 Vd=“0”时,Dr减 1,在一个测速周期 Tc内
Dr> 0,则判为正转;
Dr <0,则判为反转。
判向计数器 Dr必须在测速周期开始时清零。这种判向的方法的好处是在一个测速周期内记录A相信号超前于B相信号的脉冲次数来判断转向,不会因为几次干扰造成判向失误,所以抗振动的性能较好。
测量转速之后,为了平滑并求取转速变化率,使用最优二阶滤波器。输入为初次测速 r,输出为转速 n和转速变化率n˙,则滤波器的状态方程为
本系统采用PHILIPS公司生产的基于ARM7TDMI-S内核的32位嵌入式处理器LPC2114,该处理器具有丰富的片内资源,如2个定时器、I2C接口、SPI接口、2个UART接口、PWM、实时时钟RTC、看门狗、A/D转换器、多路中断系统和数量较大的GPIO,给用户系统设计带来较大方便。测速系统硬件电路如图3所示,由信号输入电路、按键和LED显示电路、复位和电源等部分组成。
图3 测速系统硬件电路图
光电编码器输出A、B相信号经施密特触发器整形之后,分别输入到LPC2114的P0.10端和P0.11端,信号处理电路非常简单,无需复杂的硬件电路,抗干扰和脉冲计数都有软件完成。
显示电路有两部分,一部分采用发光二极管,分别显示运行、正转和反转指示信号;另一部分采用8个数码管,用于显示测速的结果。发光二极管直接由 LPC2114 的 GPIO 端口 P0.4、P0.5、P0.6驱动,而8个数码管则通过LED与键盘驱动芯片ZLG7290动态驱动,SegA~H端输出显示码,它们通过220!电阻与数码管的a~h连接,Dig0~7端输出位选码,分两组,第一组Dig0~3与低4位数码管C0~C3连接,第二组Dig4~7与高4位数码管C0~C3连接。ZLG7290通过I2C接口与LPC2114连接,具有独立的晶振电路(6MHz),其复位信号由芯片SP708S提供。
系统采用两个控制按键,一个是开始(START)按键,另一个是停止(STOP)按键。当START按下时系统开始工作,同时运行指示灯亮,而STOP按下后系统将停止测速,运行指示灯灭。
LPC2114需要两种电压,+3.3V 和 +1.8V,同时,逻辑电路和编码器还需要+5V的直流电源,所以电源电路需要通过3种电压。使用三端稳压电路7805、LM11173-3.3和 LM11173-1.8可提供系统所需的电源。为了提高系统的可靠性,复位电路使用专用芯片SP708S。SP708S同时向LPC2114和ZLG7290提供复位信号。
LPC2114内部具有两个32位定时器-定时器0和定时器1,分别具有3路和4路32位的捕获通道,各有4个匹配寄存器,仅使用一个定时器就完成测速周期定时和测速的要求,这里选用定时器1。编码器A相脉冲信号从P0.10端口输入,测速系统需要在A相信号下降沿和上升沿时刻能够产生中断并且捕获该时刻的定时值,因此 P0.10 设置为 CAP1.0。B 相脉冲信号从P0.11端口输入,因B相信号需要检测电位,故P0.11设置为GPIO,方向设置为I。定时器C语言初始化程序如下:
测速系统通过I2C接口与ZLG7290连接,管理按键和显示电路需要将P0.2设置为SCL,P0.3设置为SDA,才能使用I2C接口。I2C接口C语言初始化程序如下:
测速系统的三个发光二极管由端口 P0.4、P0.5、P0.6 控制,故P0.4、P0.5、P0.6 应设置为 GPIO,方向为 O。
系统所用宏定义如下:
初始化程序如下:
抗振动测速和判向主要由定时器1的中断程序完成,时序图如图4所示。图中测速周期0.1s定时由定时器的匹配寄存器MR0产生,MR0配置为匹配时中断并且复位,因此,定时器TC的值在0~110591之间循环,每次循环产生一次中断。中断时记录编码器A相信号真实脉冲计数器mp的值、判向计数器Dr的值、mp个真实脉冲的计时长度Tn,由这些数据可计算出转速和判断转向。在中断程序中计算转速、判断转向和滤波会导致中断程序执行时间过长,为了避免这种情况,使用联络标志位bPro。当测速周期结束时 bPro=“1”,主程序检测到 bPro为“1”则由 mp、Dr、Tn 计算转速、判断转向并进行滤波处理,求出平滑后的转速和转速变化率,处理完毕bPro清零。这样将计算转速、判断转向和滤波的工作交给主程序完成,降低中断程序的负担。为了重新测速,在记录A相脉冲数计数器mp、判向计数器Dr的值之后,mp、Dr应清零。采用标志位bST来识别是否需要记录脉冲的初值。当测速周期开始时,bST=“1”,在此条件下检测到A相真实脉冲下降沿,则记录CAP1.0捕获的计时值(用寄存器Tn0保存)作为测速脉冲开始时刻,同时bST复位,进入正常脉冲计数过程。在正常脉冲计数过程中,CAP1.0不断捕获A相信号边缘的计时值,但只有真实脉冲的下降沿所捕获的计时值才用寄存器Tn保存下来,同时对A相信号的真实脉冲个数进行计数,保存于计数器mp中;检测A相超前于B相的周期数并保存于判向计数器Dr中。到测速周期结束时,Tn保存的值就是真实脉冲计时的终值,此值减去初值Tn0,得到mp的真实脉冲的计时长度Tn(即Tn←Tn-Tn0)。中断程序和主程序的流程图分别如图5、6所示。
图4 抗振动测速判向时序图
本系统使用槽数为500的光电编码器,32位脉冲计数器,在0.1s测速周期内能检测到的最低转速为
图5 中断程序流程图
经过测算,在CPU频率为44.2368MHz的情况下,定时器中断程序在一个测速周期内的平均执行时间不超过3!s(考虑执行中断延时),如果系统在一个测速周期内20%的时间执行中断程序,并且电机高速时运行平稳,光电编码器的干扰脉冲极少,在不考虑干扰的情况下,一个脉冲产生两次中断,则最高转速可达
图6 主程序流程图
可见,本程序能够满足系统测速范围的要求。
测速系统的测试曲线如图7所示,其中(a)(b)分别是使用非抗振动程序和抗振动程序测量结果 (设定转速为 5.6r/min),(c)为电机由静止加速到1200r/min的过程曲线,1为测速系统初始测速曲线,2为经滤波处理之后的转速曲线,3为转速变化率曲线。
(1)在低速转轴振动条件下(设定转速为5.6r/min),采用非抗振动测速程序测量结果为17.1r/min,结果远远偏离设定值,且测向不稳;采用抗振动测速程序测量结果为5.65r/min,非常接近设定转速,同时测向准确,可见采用抗振动程序测速是有效的。
(2)由图(a)和图(b)可见,经滤波后转速曲线较为平滑,使用最佳二阶滤波器取得较好效果。
(3)图(c)分为两段,第一段电动机在40个测速周期内将转速由静止加速到800r/min,转速变化率为200r/min/s,与实测结果基本相符;第二段在25个测速周期内将电动机加速到1200r/min,转速变化率为160r/min/s,与实测结果基本相符。
(4)最佳二阶滤波器具有较好的快速性。
本文在提出一种光电编码器的抗振动测速和判向方法的基础上,研制以32位嵌入式处理器(LPC2114)为控制器的精确测速系统。由于ARM7处理器LPC2114具有丰富的片内资源,在用户系统的硬件和软件设计中都显示出较好的灵活性和简便性。同时,32位数据宽度和流水线设计带来测量的高精度和程序运行的快速性,给测控系统提供了新的活力和用途。本系统设计已应用于海船螺旋桨直流发电机模拟装置中,证实在转速和转速变化率测量方面具有较高的精度,满足该装置的技术要求,取得了较好的实用效果。
图7 测速系统的测试曲线图
[1]宋刚等.基于普通编码器的高精度测速方法[D].上海交通大学学报,2002,8:1169 ~1172
[2]周立功,编著.ARM微控制器基础与实践[M].北京:北京航空航天大学出版社,2005
[3]沈建华,译.ARM嵌入式系统开发-软件设计与优化[M].北京:北京航空航天大学出版社,2005