设计原理首先确定转速,由此得到采样间隔和采样次数,然后再利用定时器中断进行核心数据采集。虽然VisualC++中提供了很多的关于时间操作的函数,例如WM_TIMER消息映射,这些都只能进行简单的时间控制,而且精度相当低,*多只能精确到54个毫秒,根本无法满足现在这个系统的设计要求,因此另外选用了Windows提供的多媒体定时器。它的精度非常高,*高能达到1kHz,即每毫秒中断一次,与硬件中断相当,恰好能满足设计要求。使用起来非常安全。将系统的数据采集和A/D转换过程放在这个多媒体定时器的响应函数里执行,那么采样速率就和定时器的定时周期对应。
实现方法利用多媒体定时器控制总体流程中,转速的计算是根据两次霍尔信号的间隔时间来计算出来的;采样次数N是根据公式(1)、(2)经过优化算法得到;当这些参数都确定完毕,重新采集一次霍尔信号作为压力采集开始的标志,此时启动多媒体定时器进如核心采集程序,当采集达到预定的次数时就退出采集过程。
误差分析这种实现方法的要点就是要首先采集霍尔信号,计算出转速,然后才能确定采样间隔t,从而计算出多媒体定时器的定时周期T,而且T必须是整数(单位:毫秒),这个已经是多媒体定时器*高的定时精度了,T是t四舍五入的结果,因此就会产生累计误差,必须根据经验进行修正。还有就是系统默认为压缩机在整个运行过程中的转速是不变的,实际情况肯定是有差别,这个也是误差的重要来源。
实现方法精确延时控制系统流程由可以看出,精确延时的周期也是通过先采集前一个运行周期的t获得,然后计算出采样频率,再开始控制核心数据采集,从而完成整个采集过程。误差分析该系统实现时,精确延时子程序的设计和调用时间是关键,它的延时周期是由t确定的,精度可以达到100纳秒。利用这种精确延时方式控制,虽然从理论上可以完全符合系统设计精度要求,但它是和CPU的时钟频率有关,而且是对底层硬件API的操作,更加容易受到其它进程的干扰。实验表明,还是有一定的累计误差存在。
利用精确定时中断服务程序控制,2代表利用精确延时程序控制,3代表粗定时器海量数据采集控制,中列出的就是在这些特征采样点上多次数据采集过程中采集到的实际压力数据的平均值(单位:千帕)。表中可见,不同的控制方法对采集结果的影响很大,因为整个运行周期内几乎每一个时刻的压力值都不完全一样。三种控制方法各有优劣,具体要根据实际采集对象的速度决定用哪种方法。其中,精确定时中断和精确延时程序控制方法比较适合一般的快速数据采集过程,采样速率不大于10KHz;粗定时器海量数据采集控制方法可以达到1MHz的速率,适宜于高速计算机在高速数据采集中的应用。
网页评论共有0条评论