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