DA模拟量控制外接600V高压直流源-设计分析
一、STM32 12位AD DA線性度測試
配置STM32 DA為12bit輸出,AD為12bit檢測,測試AD和DA的線性度與誤差。DAC從0到2.49V步進1mV。Error=DAC 為標(biāo)準(zhǔn)值減去 ADC的測量值。
板子的Vref=2.5V,ADC和DAC的極限為2.5V,測試時直接用杜邦線連接對應(yīng)的IO端口。12bitADC和DAC的檔位只有4095.電源模塊的檔位600/0.1=6000檔。
按12bit計算:DAC的分辨率=2.5/(212-1)= 0.61050061050061050061050061050061mV?0.611mV.
Error=0.0005mV,折算到高壓電源的6000檔位,誤差引起的檔位調(diào)節(jié)量=0.0005*6000=3檔,即SM32板載DA達不到要求,因此需要外掛DA。
圖1和圖2是STM32F407AD和DA線性度測試結(jié)果[matlab]。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1? 線性度
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖2? 誤差
二、程控高壓電源參數(shù)計算
1、需求:DA 0-3.3V 控制0-600V 步進0.1V,即步進100mV。
2、參數(shù)計算:
(1)DA控制誤差
電壓檔位:600/0.1=6000檔。
DA位數(shù):213=8192,至少需要13位精度。例如MAX535.
設(shè)基準(zhǔn)電壓3.3V
DA分辨率:3.3/8191 V= 0.4028812110853376mV=0.403mV,
數(shù)據(jù)修約誤差=0.0012mV, 高壓直流電源電壓放大倍數(shù)為600/3.3,最后的修約誤差傳遞到高壓電源的輸出誤差電壓=0.0012mV*600/3.3=0.218mV。
因此,DA由控制字產(chǎn)生的數(shù)據(jù)修約傳遞到高壓直流電源誤差為0.218mV滿足控制需求。
(2)DA線性噪聲誤差
若按圖2的線性關(guān)系計算MAX535:
線性度擬合: Err=0.008409*DAC-0.001554,3.3V時最大的線性誤差=0.0262V。
線性誤差傳遞到高壓直流電源的誤差電壓為0.0262V*600/3.3=4.76V,遠遠大于0.1V可調(diào)的步進要求。
三、ADC與DAC閉環(huán)
由于ADC本身存在測量誤差,例如,ADC的測量誤差按照3.3V時計算最大26.2mV,若以高壓電源Vref反饋回來的電壓值作為實際輸出的電壓真值,ADC測不準(zhǔn)電壓達到4.76V.因此,若需要閉環(huán)控制,可能還需要外擴更高位數(shù)的ADC,要求通道數(shù)1個,電壓測量幅度大于3.3V,低速即可。
四、討論
1:DA輸出值越高,AD檢測誤差越大。
2:由于沒有高精度電壓表,采用板子的ADC直接測試DAC輸出,不清楚AD還是DA誤差占總誤差的比例大。
3:圖2可以看出來噪聲干擾還是以周期低頻干擾為主,可以考慮到電容濾波處理。
4:如果進一步控制DA的噪聲,則可能將高壓直流電源步進控制在0.1V.根據(jù)上邊分析,最大線性誤差0.0262V即26.2mV,若將DAC噪聲控制在2mV,則最大誤差降為0.36V.若DAC輸出精度夠高,就不需要ADC采樣后進行PID調(diào)節(jié)。
5:抽時間規(guī)劃一下13bitDAC MAX535的硬件設(shè)計。
五、ADC 采樣規(guī)則
取得到的100個轉(zhuǎn)換值的中間20個的平均值作為結(jié)果,連續(xù)取20次這樣的平均值,再求平均值作為最后的結(jié)果。也就是雖然沒有硬件電容濾波,但是我做了軟件濾波處理。
?
總結(jié)
以上是生活随笔為你收集整理的DA模拟量控制外接600V高压直流源-设计分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 调用bat失败_要想顺利通
- 下一篇: 智慧政务解决方案(28页)pdf_【金众