<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 實(shí)現數字電源轉換的方法

實(shí)現數字電源轉換的方法

作者: 時(shí)間:2011-12-27 來(lái)源:網(wǎng)絡(luò ) 收藏

7 PID算法

使用PID算法,將實(shí)際與期望輸出電壓之間的誤差進(jìn)行比例、積分和微分計算,然后將這三項合起來(lái),對PWM占空比的控制。PID算法可以用于采用電壓和電流模式的控制環(huán)路。處理Microchip的DSC不需要DSP技巧(見(jiàn)圖5的代碼列表),控制軟件(圖4)的主要“核心”是PID環(huán)路。PID軟件通常很小,但是其執行速度非???,通常每秒可以反復幾十萬(wàn)次。這么高的反復率需要PID軟件程序盡可能有效地發(fā)揮最佳性能。使用匯編程序是保證“嚴緊代碼”的一種很好的。

PID控制環(huán)路是定期由ADC進(jìn)行中斷驅動(dòng),任何系統功能都能在“空閑環(huán)路”中執行,以便減少PID控制軟件內不必要的工作量。諸如電壓上升/下降、錯誤檢測、前饋計算和通信支持程序功能都是空閑環(huán)路可以執行的,其他中斷驅動(dòng)進(jìn)程的優(yōu)先級都必須比PID環(huán)路低。

空閑環(huán)路在完成系統和外設的初始化任務(wù)之后啟動(dòng)。通常,空閑環(huán)路監控溫度,計算“前饋”條件,并檢查故障狀況。SMPS軟件可執行該控制算法,將ADC中斷驅動(dòng)的PID環(huán)路作為其與時(shí)間關(guān)系最密切的部分。PID軟件不應該使用超過(guò)可用處理器大約66%的帶寬,以便計算資源的其余部分能夠分配給空閑環(huán)路軟件。

假設以30 MIPS運行PID環(huán)路(包括30條指令),執行時(shí)間大約為1μs。如果反復率是500kHz(2μs),那么PID工作量需要消耗一半可用的處理器帶寬,也就是15MIPS。

用于式降壓式器的PID軟件的實(shí)例代碼列表:

CALCULATE_PID:

push.s ; Save SR and W0-W3

bclr.b IFS0+1, #3 ; Clr IRQ flag in interrupt controller

#PID_REG_BASE, w8 ; Init pointer to PID register block

mov #PID_GAIN_REG_BASE, w10 ; Init pointer to PID gain register block

mov ADBUF1, w0 ; Read ADC to get voltage measurement

mov COMMANDED_VOLTAGE, w1 ; Get commanded output voltage

sub w1, w0, w0 ; W0 = proportional voltage error

mov PROPORTIONAL_Error, w1 ; Get previous voltage error

sub w0, w1, w2 ; diff error = new verr - old verr

mov w0, PROPORTIONAL_ERROR ; Store New Proportional Voltage Error

mov w0, PREINTEGRAL_TERM ; Store copy PERR as pre integral term

mov w2, DERIVATIVE_ERROR ; Store new Derivative Error

; These registers are reserved for PID calculations

; w6, w7 = contains data for MAC operations

; w8, w10 = pointers to error terms, and gain coefficients

SUM_PID_TERMS:

clr A, [w8]+=2, w6, [w10]+=2, w7 ; clr A, prefetch w6, w7

mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ; MAC proportional term and gain

mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ; MAC derivative term and gain

mac w6*w7, B, [w8]+=2, w6, [w10]+=2, w7 ; Update Integrator

add ACCA ; Add ACCB (Integrator) to ACCA



關(guān)鍵詞: 方法 轉換 電源 數字 實(shí)現

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>