微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 数字回路控制电源转换的设计

数字回路控制电源转换的设计

时间:01-31 来源:3721RD 点击:

MPS设计

  因为ADC不能继续不断地监控信号,所以只能以高达每秒兆次采样(MSPS)的量级进行采样。一些DSC具有模拟比较器,可以解放处理器和ADC以完成其他重要的任务。例如,模拟比较器可以利用与传统线性电源控制器直接控制PWM占空比类似的方式进行电流控制。模拟比较器还能够提供对过压或过流状况的独立监测。Microchip的SMPS dsPIC DSC的参考DAC和模拟比较器可以实现从电流测量到PWM更新的大约25ns的延迟。通常,从检测到模拟电压,直到由比较器对PWM输出进行修改,大约需要25ns的时间。与其他必须使用"轮询"技术的ADC以及利用处理器修改PWM输出来响应变化条件的其他DSC相比,这个响应时间是非常迅速的。事实上,这正是DSC实现逐周期电流限制的方法,属于电流模式控制。由于连接模拟比较器的参考DAC也是16位的,PWM分辨率也是相同的,因此同样的控制分辨率对电压和电流模式都是有效的。

       7 PID算法

  使用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    ; sca

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top