本次電賽做的是A題-THD值檢測(cè)裝置。
電賽方案:
單片機(jī):MSP432E401Y
ADC支持高頻率2MHZ
外圍硬件方案:前端放大器采用增益可調(diào)的放大器,通過(guò)調(diào)節(jié)放大器增益使輸入信號(hào)控制在1-2v之間。
底層外設(shè)配置方案:使用PWM+TIM作為adc觸發(fā)源,使用dma進(jìn)行數(shù)據(jù)傳輸。使采集數(shù)據(jù)可以達(dá)到2MHZ。在 使用定時(shí)器作為觸發(fā)源的時(shí)候,因?yàn)樵搯纹瑱C(jī)的最高定時(shí)器觸發(fā)時(shí)間支持到1.25MHZ,所以在1.25mhz采樣率一下的使用使用定時(shí)器觸發(fā)。在1.25mhz--2mhz的時(shí)候使用pwm觸發(fā)。(在這里做區(qū)分的原因是,tim定時(shí)器作為觸發(fā)源,進(jìn)行觸發(fā)adc的時(shí)候,出發(fā)周期比較穩(wěn)定。而使用pwm作為觸發(fā)源的話,出發(fā)周期,并不能?chē)?yán)格控制在2mhz,設(shè)置完周期之后,會(huì)有一定的周期偏移。)(在增益控制上,直接檢查采集到的信號(hào)值的最大值,使最大值控制在一定范圍內(nèi))
關(guān)于信號(hào)采集速率的設(shè)計(jì):根據(jù)奈奎斯特定理,采集100khz的5次諧波需要1mhz以上的采樣率,但是實(shí)際測(cè)試過(guò)程中1mhz的采樣率,在采集信號(hào)的時(shí)候,信號(hào)采集出來(lái)的數(shù)據(jù)會(huì)有偏移,信號(hào)能量較弱,所以最終使用的是2mhz的采樣率的方案,即基頻*20.
fft處理的方案:在一開(kāi)始的時(shí)候想了2種方案,一種是直接fft之后進(jìn)行計(jì)算,另一種是在fft之前進(jìn)行一次加窗(即進(jìn)行一次fir濾波)。經(jīng)過(guò)matlab仿真之后,發(fā)現(xiàn),對(duì)于采集到的數(shù)據(jù),進(jìn)行加窗之進(jìn)行fft與未加窗進(jìn)行fft結(jié)果沒(méi)有區(qū)別,最后未使用加窗的方案。fft算法使用的是arm官方的arm_math.h數(shù)學(xué)庫(kù)。
基頻計(jì)算方案:本次測(cè)試信號(hào)范圍在1khz-100khz,采用的方案是,將采集的信號(hào)僅從一次fft,之后進(jìn)行范圍的區(qū)分,計(jì)算出是基頻頻率。
關(guān)于thd值的計(jì)算:計(jì)算出基頻之后,針對(duì)基頻設(shè)置相應(yīng)的采樣率進(jìn)行數(shù)據(jù)采集,之后將采集到的數(shù)據(jù)進(jìn)行fft運(yùn)算,然后在特定的數(shù)據(jù)段查找最大值,實(shí)現(xiàn)每個(gè)諧波的最大值查找。查找完成之后,調(diào)用相關(guān)的運(yùn)算公式計(jì)算結(jié)果。
在顯示方面:屏幕采用串口屏幕,單獨(dú)編程,之后單片機(jī)通過(guò)串口與屏幕進(jìn)行通信。波形顯示方面,將每個(gè)周期采集的時(shí)候,通過(guò)使用前面特定的數(shù)據(jù),進(jìn)行顯示,同時(shí)發(fā)送給屏幕的時(shí)候,也會(huì)發(fā)送給手機(jī)app端。
問(wèn)題:1、單片機(jī)的adc采集速率在高于600ksps的時(shí)候,一次dma數(shù)據(jù)傳輸完成之后,會(huì)導(dǎo)致之后讀取的數(shù)據(jù)不能正常讀取,讀取的值都是錯(cuò)誤的。
解決方案:在超過(guò)600ksps的時(shí)候,每讀取完成一次之后,會(huì)進(jìn)行一次系統(tǒng)重啟。
問(wèn)題2:某些頻段使用計(jì)算出來(lái)的基頻進(jìn)行,采集的數(shù)據(jù)進(jìn)行fft之后,會(huì)產(chǎn)生較大的誤差,但是自己設(shè)置頻率,采集之后,有一部分變好了,還有一部分未變好。
解決方案:未解決。
原因分析:可能是硬件電路的問(wèn)題,在單片機(jī)的輸入引腳有電阻電容配置不對(duì)。同時(shí)基頻計(jì)算算法存在問(wèn)題。