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