交流電壓的軟件處理
掃描二維碼
隨時隨地手機看文章
tmp3 = (int16_t)(((uint32_t)ADCBUFx << 4) - (uint32_t)32768);
tmp4 = (int16_t)(((uint32_t)ADCBUFx << 4) - (uint32_t)32768);
tmp5 = (int16_t)(((uint32_t)ADCBUFx << 4) - (uint32_t)32768);
在三相維也納PFC中,對輸入交流電壓采樣處理的代碼如上,上述處理( (ADCBUFx << 4) - 32768 并轉(zhuǎn)換為 int16_t ),主要是為了將ADC采樣值轉(zhuǎn)換為符合控制需求的有符號交流電壓信號,具體原因如下:
1. ADC采樣的原始特性
- 維也納PFC的輸入交流電壓是交變信號(正弦波,正負交替),但多數(shù)ADC是單極性采樣(只能輸出0~滿量程的無符號數(shù)值),無法直接表示負電壓。
- 實際電路中,會通過偏置電路(如疊加直流偏置)將交流電壓抬升為單極性信號(例如將±V的交流信號轉(zhuǎn)換為0~2V的直流偏置信號),確保ADC能完整采集正負半周。
2. 代碼處理的核心目的
(1)消除直流偏置,恢復有符號特性
- 假設(shè)ADC的滿量程對應偏置后的最大電壓(如0~3.3V),其中中間值(如1.65V)對應交流電壓的“0點”。
- 若ADC為12位(輸出范圍0~4095),則中間值為2048(4095/2≈2048),對應原始交流電壓的0V。
- 代碼中 32768 是 2048 << 4 (2048×16=32768),即偏置對應的“0點”采樣值經(jīng)左移后的結(jié)果。
- 減去32768的作用是消除直流偏置,使結(jié)果恢復為以0為中心的有符號值(正半周為正,負半周為負)。
(2)位寬調(diào)整與量程匹配
- ADCBUFx << 4 表示將ADC采樣值左移4位(相當于×16)。
- 若ADC是12位(分辨率12bit),左移4位后變?yōu)?6位,與后續(xù)的 int16_t (16位有符號整數(shù))匹配,充分利用16位數(shù)據(jù)的動態(tài)范圍。
- 同時,左移操作可放大采樣值的量化精度,避免后續(xù)計算中的精度損失。
(3)轉(zhuǎn)換為有符號整數(shù)( int16_t )
- 最終結(jié)果轉(zhuǎn)換為16位有符號整數(shù),符合交流電壓“正負交替”的特性,便于后續(xù)控制算法(如鎖相環(huán)、電壓環(huán)調(diào)節(jié))直接使用。
3. 與維也納PFC的適配性
- 維也納PFC需要精確獲取輸入電壓的相位、幅值和極性,用于正弦波電流跟蹤、功率因數(shù)校正等控制邏輯。
- 經(jīng)上述處理后,采樣值直接反映交流電壓的瞬時值(正負對應電壓極性,大小對應幅值),無需額外轉(zhuǎn)換即可參與控制計算。
在三相維也納PFC的ADC采樣處理中,左移位數(shù)(3位還是4位)取決于ADC的位數(shù)和期望的輸出位寬匹配,核心是為了將ADC的采樣范圍映射到目標有符號整數(shù)的量程內(nèi)。
具體分析左移位數(shù)的選擇:
假設(shè)場景:
- 通常ADC為12位(采樣值范圍0~4095,即 0x000 ~ 0xFFF )。
- 目標是轉(zhuǎn)換為16位有符號整數(shù)( int16_t ,范圍-32768~32767)。
1. 左移4位的邏輯:
12位ADC的最大值為4095( 0xFFF ),左移4位后為 0xFFF0 (65520),減去32768后得到范圍為 -32768~32752 ,剛好接近 int16_t 的滿量程(-32768~32767),能充分利用16位有符號數(shù)的動態(tài)范圍。
2. 若左移3位:
12位ADC最大值左移3位后為 0x7FF8 (32760),減去32768后得到范圍為 -32768~-8 ,此時正向范圍被嚴重壓縮(只能到-8),無法表示正電壓,顯然不符合交流電壓正負交替的特性。
結(jié)論:
左移位數(shù)的核心是將ADC的無符號采樣范圍(如12位)通過移位擴展到16位有符號整數(shù)的量程,確保正負半周的電壓都能被完整表示。
- 12位ADC對應左移4位( 12 + 4 = 16 ),剛好匹配16位輸出。
- 若左移3位,會導致正向電壓無法正確映射,因此不適用。
實際中,左移位數(shù)需根據(jù)ADC位數(shù)(如10位ADC可能左移6位)靈活調(diào)整,核心是滿足“量程匹配”和“正負對稱”。
總結(jié):該代碼本質(zhì)是將單極性ADC采樣值轉(zhuǎn)換為有符號交流電壓信號:通過左移調(diào)整位寬,減去偏置對應的中間值消除直流分量,最終得到符合控制需求的正負交替信號,為維也納PFC的電壓環(huán)、相位檢測等核心邏輯提供準確的原始數(shù)據(jù)。





