新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 數字電源轉換的方案設計

        數字電源轉換的方案設計

        作者: 時間:2011-10-22 來源:網絡 收藏
        7 PID算法

        本文引用地址:http://www.104case.com/article/178497.htm

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

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

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

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

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

          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

          sftac A, -#8 ; scale accumulator (shift)

          mov ACCAH,w0 ; Read MSW of acca (result)

          btst ACCAU,#7 ; Check sign bit of ACCA

          bra z, Output_PWM ; Branch if acca PWM value is positive

          clr w0 ; Clear negative PWM values

          OUTPUT_PWM:

          mov w0, DC1 ; Output new duty cycle value

          pop.s ; Restore SR, w0-w3

          retfie ; Return from Interrupt

          評估板有助于設計人員測試和修改SMPS控制軟件,并理解SMPS的設計原理。在這種情況下,您可以考慮使用Microchip的dsPICDEM SMPS降壓型開發板--卓越的低功耗DC/DC降壓式器來評估DSC器件和控制軟件。該板可通過標準AC/DC 9V,0.75A獲得其輸入。板上有兩個獨立的降壓式器,演示軟件設置可提供高達+5V和+3.3V的輸出。

        圖4 控制軟件的結構

          這個開發板的輸入電壓范圍為8-14V DC。每個輸出負載應該限制在0.75A,而輸入可以通過同軸輸入電源連接器J2或測試夾連接P1和P2提供。該板也可為+5V輸出提供一個動態負載。這個負載是通過1 kHz方波信號驅動的,該信號是由輸出比較模塊產生的。板上動態負載使用一個FET將電阻器負載連接到轉換器對地輸出,實現轉換器激勵,以便可以測量轉換器的動態行為。動態負載的使用可通過跳線模塊和/或軟件由用戶自行選擇。

          用戶可以選擇通過跳線設置,像標準降壓式轉換器或同步降壓式轉換器那樣運行開發板。所提供的軟件能夠以電壓控制模式運行該板,也可以進行電流監控。該板也可通過轉換器輸出端的一個檢測電阻器測量電流,而電壓則被放大并送到dsPIC30F2020器件的ADC輸入端。該板還可提供通過ADC輸入可讀取的三個備用可變電阻器。這些“電位器”可用于在原型設計中的模擬所需的信號。

          8 結語

          通過專用于回路控制的新款DSC,電源設計人員可以容易地在他們的設計中加入新的功能和能力。要做到這一點,無需學習復雜的信號處理器(DSP)處理技巧,使用熟悉的模擬元件和軟件,設計人員就能夠迅速而經濟地使用DSC開發具有更高智能的電源。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐城市| 广元市| 苍山县| 新巴尔虎右旗| 顺平县| 滨海县| 甘谷县| 浦江县| 六盘水市| 新巴尔虎左旗| 通州市| 德格县| 洱源县| 青海省| 西吉县| 白城市| 虹口区| 桓台县| 恩平市| 开平市| 崇仁县| 崇义县| 沂源县| 闸北区| 亚东县| 类乌齐县| 泸定县| 青岛市| 永清县| 新野县| 淮南市| 浪卡子县| 金寨县| 吴旗县| 桂东县| 富民县| 中宁县| 保亭| 敖汉旗| 桐城市| 平江县|