基于AVR微控制器的交流信號峰值檢測與校正
算法上,通過測算出來的信號周期值,在1/4個周期上任取兩點就可以推導(dǎo)求出信號的峰值,下面是對該方法的推導(dǎo)和求證。
首先,利用AVR ATmega64的定時器1的輸入捕捉功能,在單位圓的1/4周期內(nèi)截取兩個點yl,y2。無論它的捕捉屬性是上升沿還是下降沿,因為延時的關(guān)系不可能絕對準確地捕捉到電平翻轉(zhuǎn)的瞬間時刻,也就是說檢測的初相不同于真實的初相,又因為初相會隨著峰值和頻率發(fā)生變化,因此不能用勾股定理中使用相位相加為90度方法取出兩點再求出峰值。具體的推導(dǎo)如下。
本文引用地址:http://www.ex-cimer.com/article/163012.htm
在公式(17)中,y1和y2的相位是已知的,幅值可以通過內(nèi)部ADC采樣得到。那么,求峰值的問題就迎刃而解了。
3 算法實現(xiàn)
前面提到,通過AVR內(nèi)部的ICP捕捉到的初相和實際初相有偏差,但因為在下一個周期來臨的時刻又會出現(xiàn)相同的偏差,所以并不影響周期計算的結(jié)果。只要利用Timerl的ICP中斷服務(wù)程序,就可以輕松求得信號周期,然后再將y1的相位增量(φ1=30所對應(yīng)的周期分量:周期的1/12)加到輸出比較寄存器上,以此來控制ADC的啟動并對y1進行采樣。同時利用輸出比較中斷服務(wù)程序和y2的相位增量,開啟ADC并對y2進行采樣。
因為外部的模擬輸入部分是線性電路,在實際測量時,只要取兩點做為校正點,讀取和測取兩組真實值和誤差值,就能求得下面二元二次方程的解Ki和K0:
4 總結(jié)
本文中采用一種新的峰值測算方法,打破傳統(tǒng)方法中對硬件的過度依賴,不僅方法新穎,而且大大簡化了硬件電路的設(shè)計,將測控功能最大程度地轉(zhuǎn)移到軟件系統(tǒng)中來實現(xiàn),使得校正工作變得十分簡單而有效。同時,這種檢測方法具有超乎尋常的高精度,可達O.1%,為工業(yè)測控的一些技術(shù)難題提供了很好的解決方案。
評論