图1 系统硬件框图
单片机89C58主要负责识别和保存按键值(中断方式),以及直接驱动LCD。
Atmega128单片机有两个串行口,通过串口0和89C58通讯,通过串口1和上位机进行数据交换。
2 频率、电压和相差的计算
ATMEGA128单片机的定时器1和定时器3具有输入捕获的功能。因此频率(周期)的计算可以完全依赖硬件来实现。只需要设计一个转换电路将正弦波变换成为方波即可。方波两个上升沿(或下降沿)之间的时间间隔即是系统侧或对象侧的周期,这样就可以准确地测量出周期。注意,定时器1和定时器3中的计数值尽量不要采用软件清零。笔者刚开始的思路是每隔输入捕获中断将TCNT1或TCNT3的值清零,然后下的计数值乘以计数间隔时间就是系统侧或是对象侧周期长度。但是这样的办法很容易受到其他中断的影响。当外部事件发生的时候(上升沿或下降沿来到),硬件自动将计数值捕捉到相应的捕获寄存器,但如果此时有更中断同时到来的话,就必然会推迟一会才可以进入输入捕获中断程序,则软件必然会推迟清零,因此所测的周期会偏小、频率会偏大。特别是当更高优先级的中断程序执行时间较长时,所测周期根本无法使用。正确的做法是:在初始化时将定时器1和定时器3按照同样的分频系数同时开放,然后就不要对这两个定时器进行清零或其他操作。对于这两个16位定时器的溢出问题,可以通过在定时器1和定时器3的溢出中断程序中设置分别的溢出标志来解决。本装置所设计的波形转换电路如图2 所示。VAA1为对象侧或系统侧经过初步处理的交流信号。
图 2
电压的测量和计算涉及到交流采样技术。交流采样,就是直接对交流电气信号的瞬时值进行采样,再用一定的数值算法求得所关心的信号参数或信息。交流采样有异步采样和同步采样两种,其中后者应用较多。同步采样又可以分为硬件同步(PLL锁相环技术)和软件同步。软件同步就是利用处理器的中断性能跟踪周期的变化且均匀地采样。这就是所谓的频率跟踪。在数据处理方面,本文采用将正弦周期信号展开成为傅立叶级数的形式,然后再离散化,进而求出电压有效值。
具体而言,交流信号用 表示。下面是计算的详细过程。
将周期信号展开成为傅立叶级数的形式:
当 时,可以推出
由7式可以看出只要求 和 ,就可以求出基波的值和有效值。同理可以求出其他高次谐波的相关值。将公式2和公式3离散化,则可以在程序中实现
和 的计算。也就是
其中,N为同步采样点数。
相角的测量有两种实现途径。一种是主要依赖硬件,软件起辅助作用。另一种则完全依赖软件,采用不同的算法。前者的误差主要来自硬件,后者的误差主要是算法所带来的。Atmega128的16位定时器T1/C1和T3/C3均具有输入捕获的功能,可以利用两者对两侧交流信号上升沿进行捕获,捕获的时间差与周期进行比较,就可以折算出两者之间的相差。
但是,迟滞比较器的存在使输出对输入信号的幅值敏感 ,输入信号幅值越大,相移越小,也就是说在电压比较低的时候,误差会比较大。完全依赖软件的测量办法很多,本装置的实现方法如下:
则它们的相位差为 。可以推导
两边同时积分得
离散化得到
其中N为每周期采样点数。将左边应用泰勒级数展开,得到
根据公式18,可求出相差。为了更高,可以展开成为高阶级数。
3 同期过程流程图
笔者所设计的同期装置的同期过程见上图所示。其中,频率要优先调节。频差在要求范围内时,才可以转去调节电压。每次同期操作要设定同期时限,在规定时间内各项指标不能达到定值要求,则此次同期操作失败。
总结
本文介绍的准同期装置设计方案利用了硬件资源,减少了软件误差。装置投入使用后经过测试可以达到机组开关的同期要求,有一定推广价值。
[1]. ATMEGA128 datasheet https://www.dzsc.com/datasheet/ATMEGA128_144651.html.
[2]. 89C58 datasheet https://www.dzsc.com/datasheet/89C58_105392.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。