基于单片机的发动机转速和加速时间测量方法
1 引言
某型航空发动机性能试验,需要精确测量发动机各工作状态的转速及从慢车到最大状态的加速时间,传统的测量方法是采用指针表测量转速和人工操作秒表测量时间。由于指针转速表惯性大,分辨率低,加上人工秒表记时全靠手疾眼快,主观影响大,因此很难实现精确测量。在本系统中,我们采用单片机内部计数器来完成转速的精确测量,同时利用程序判别发动机从慢车到最大状态过程的开始时刻和终止时刻,从而实现精确的加速过程时间的测量。
2 原理分析
转速测量:
发动机传感器输出频率与发动机转速成正比,本系统采用频率测量法,即通过测量发动机传感器的输出频率来得到相应的转速,由于转速传感器输出信号的频率太低,如果直接利传感器输出的频率来计数,其转速测量分辨率也很低,因此在转速信号的预处理电路中对经放大整形后的脉冲信号还进行了锁相倍频处理,以提高转速的测量分辨率和测量精度。
脉冲频率的计数由单片机内部16位计数器完成,计数的闸门时间(时基)由晶振提供,闸门时间脉冲通过控制外部中断来控制计数的开始与停止,此设计中还利用了数字滤波技术来提高转速的测量精度和测量稳定性。
加速时间的测量:
典型的发动机加速过程如下图1所示:
如图中所示,测量发动机的加速时间通常是测量慢车状态到最大状态的时间。根据试车大纲的操作要求,从慢车状态快推油门到最大,转速从慢车转速达到峰值的时间即为加速时间,即图1中的t1时间。时间测量的开始时刻通过一个开关控制,在测量时由操作员在推油门的同时通过闭合该开关来启动计时,因此,用单片机测量加速时间的关键是如何正确判别加速过程的终止时刻。
我们采用的判别方法如下:计时开始后,单片机程序一方面测量转速,另一方面不断将当前测量值与上次测到的转速进行比较,如果大于上次的测量值则说明加速过程未结束,如果等于或小于上次的测量值则说明加速过程已结束,单片机通过输出结束计数命令停止计数。
为了提高判别的可靠性,降低由于转速摆动等干扰所造成的误判,软件设计规定必须在连续两个闸门时间内的转速测量值不大于上次的测量值,才被认为转速的加速时间已结束,但由此引起判断的时间的滞后(见图1中的td)。因为闸门时间是确定的,所以可以很容易地通过软件对滞后时间进行补偿。
时间计数器件采用通用十进制计数器,计数脉冲由时基电路产生,频率为10赫兹。加速时间的分辨率为0.1秒。
3 具体实现
3.1 测量频率
根据实测数据,我们所用发动机转速与频率的对应关系是:转速10000转/分时传感器输出频率为83.3333Hz,因此,根据前面的原理分析,为了减小误差,首先要对转速进行倍频,根据对应关系,设计总倍频系数300,并取闸门时间取为0.2S。51系列单片机内部设置了两个16位可编程的定时器/计数器T0和T1,它们具有计数器和定时器两种工作方式和4种工作模式,通过设置状态字,可以方便的选择适当的工作方式与工作模式;同时,单片机设有两个外部中断请求输入线INT0和INT1,用于输入外部中断源的中断请求信号。在此,我们采用计数器T1的16位计数模式,计数器计数 (83.3333*300)*0.2=5000,并从INT0输入0.2秒的外部定时中断,T1在0.2秒内计数5000,测量时,每次采到的频率先乘以 2后再做运算。
3.2 上升时间的测量
用从晶振来的10Hz频率信号作为时间测量的计数输入,计数开始时间由开关(面板上的开始开关)和转速输入(转速必须大于3000转/分)决定。当转速达到某个值(如3000转/分),单片机系统准备计数,时间显示器的小数点以每秒两次的速度闪烁,提醒准备按计数起始按钮。
具体计时由INT1中断完成,在中断程序中完成对外部0.1秒定时脉冲输入的计时,计时的结束时间由转速的峰值时刻决定。转速峰值时刻的判断方法:记录用传感器输出频率的2倍频信号T1,当此次T1值如果大于上次T1值,则该次T1存入峰值单元;如果所测得的T1连续3次(0.6S)不大于所记录峰值,则认为峰值已过。为补偿0.6S滞后时间,接到“开始计时”指令时,延时0.6S才开始计时。
3.3 系统方框图
图2 系统方框图
系统方框图说明:
1 看门狗输入脉冲;
2 看门狗复位脉冲;
3 系统设置开关,为提高测量显示的稳定度,通过数字开关选择滤波系数。滤波系数(平均次数)可在1-16之间由开关设定,滤波系数越大,转速测量速度越慢,但测量显示越稳定。
滤波系数由系统设置开关的最右4位设置:
显示速率分4挡,分别表示每秒显示5次、2.5次、1.25次、0.625次。
显示分辨率也分4挡,分别表示的显示分辨率为1、5、10、50。
3.4 程序流程
3.5 操作面板
时间 测量 方法 加速 转速 单片机 发动机 基于 相关文章:
- VxWorks for x86系统中实时时钟的应用(07-06)
- μC/OS-II中缩短中断关闭时间的方法(04-06)
- RTOS中动静结合的内存管理实现(09-28)
- 嵌入式Linux中断现场保护的改进方法(10-08)
- μC/OS-II的实时系统加速模块设计(01-16)
- 缩短μC/OS-II实时内核中断关闭时间的方法设计(03-27)