ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

四开关 buck-boost 升降压:伏秒平衡与 STM32 数字电源

四开关 buck-boost 升降压:伏秒平衡与 STM32 数字电源 很多人第一次看到 buck-boost 的电路图都会被那一堆开关管和二极管绕晕——尤其是四开关版本左边一个半桥、右边一个半桥中间夹着一颗电感看起来比 buck 和 boost 加起来还复杂。但如果你把这套升压降压电路原理拆到只剩一句话它其实只讲了一件事电感在一个开关周期里充进去多少伏秒就得在剩下的时间里把它放掉。所有公式推导、模式划分、参数计算都是从这句话长出来的。我在做宽压输入电源的时候被这个问题折磨过很久。一个 9V 到 36V 的输入要稳定输出 24V低于 24V 的时候得升压高于 24V 的时候得降压输入正好在 24V 附近时两种模式都不好使。当时试过 buck 后面串 boost 的两级方案效率掉得厉害元件也多后来换成单颗电感的 buck-boost问题一下简单了。这篇内容就是把这套电路从头到尾捋一遍从伏秒平衡怎么推、电感电容怎么选一直讲到用 STM32 做四开关数字电源时踩过的那几个坑。基础弱一点也能看懂我会尽量把每个为什么都讲透。1. 把 buck-boost 拆到只剩一句话电感充多少就得放多少1.1 单靠 buck 或者 boost 会卡在哪个电压点上buck 电路的输出电压永远低于输入占空比 D 和输出电压的关系是 Vo Vin × D。这意味着只要输入电压掉到比目标输出还低buck 就彻底没招了——占空比最大也只能到 1输出顶多等于输入再想往上抬一点都做不到。boost 正好反过来Vo Vin / (1 - D)输出永远高于输入输入一旦超过目标输出占空比趋近于 0电路就进入失控区。实际项目里的输入电压往往不是一条直线。电池从满电 4.2V 放到 3.0V中间还要给一个稳定 3.3V 的负载供电这时候前半段需要降压、后半段需要升压车载或工业场景里 9V 到 36V 的宽压输入要出 24V同样横跨了升降压的分界线。这就是 buck 和 boost 各自的死区——只要工作点跨过 Vin Vo 这条线单拓扑方案就会在某个区间彻底失效。1.2 极性反转的老拓扑和四开关拓扑差在哪最老的 buck-boost 拓扑其实特别简单一个开关管、一个二极管、一颗电感、一个输出电容四个元件就完事。但它的输出是负压当开关关断电感通过二极管把能量送到输出端二极管的接法决定了输出电容的正极在地负极才是输出。所以老式电路里你会看到 Vo -Vin × D / (1 - D) 这种带负号的公式用 MC34063 这类芯片做负电源的时候经常碰到。问题在于很多现代系统需要一个同极性的、既能升又能降的输出还要共地。四开关 buck-boost 就是为这个需求长出来的把原来的二极管换成同步整流的 MOS再把电感两端都接成半桥形成左边的 Q1/Q2 和右边的 Q3/Q4。这样电感两端都能被主动驱动能量既可以从左往右流也可以从右往左流输出极性还和输入一致。代价是控制复杂度上升了一个数量级因为你要同时管两个桥臂的时序还要处理模式切换时的抖动。2. 从伏秒平衡推 D/(1-D)占空比和输出电压的真实关系2.1 导通阶段和关断阶段电感两端电压各是多少电感有一个铁律在一个完整的开关周期里它两端的电压对时间的积分必须为零也就是平均电压为零。这个叫伏秒平衡是理解所有开关电源拓扑的钥匙。原因很直白——电感电流如果每周期净增一点几十个周期之后就会一路涨到饱和磁芯直接失效反过来净减就会掉到零进入断续模式。稳态工作时电感电流一定是周期性的充能和放能严格相等。拿四开关的升降压模式举例。设左桥 Q1 的导通占空比为 D右桥 Q4 和它同步导通。第一阶段 Q1 和 Q4 同时导通电感左端 A 点接 Vin右端 B 点通过 Q4 接地所以电感两端电压是 Vin电感电流线性上升上升斜率是 Vin / L。第二阶段 Q1 和 Q4 关断Q2 和 Q3 导通A 点被拉到地B 点接输出 Vo电感两端电压变成 -Vo电流线性下降下降斜率是 Vo / L。一个周期里电感电流上升的那段时间是 D × T上升量是 (Vin / L) × D × T下降的那段时间是 (1 - D) × T下降量是 (Vo / L) × (1 - D) × T。稳态下上升量等于下降量两边约掉 L 和 T就得到Vin × D Vo × (1 - D)整理一下Vo Vin × D / (1 - D)2.2 一步步把因为所以写清楚这个推导里有几个细节值得单独拎出来。第一电感的电压方向是以电流流入端为正来定义的充能阶段电流从左端流入所以 vL Vin放能阶段电流仍从左端流入电感电流不能突变但左端被拉到地、右端接输出所以从电流流入方向看电压是负的vL -Vo。符号搞反是初学者最容易犯的错推导出来的结果会变成 Vo Vin × (1 - D) / D整个逻辑就翻过来了。第二公式里的 D 是充能阶段的占空比也就是 Q1 和 Q4 同时导通的时间比例。当 D 小于 0.5 时D / (1 - D) 小于 1输出低于输入是降压当 D 大于 0.5 时比值大于 1输出高于输入是升压D 正好等于 0.5 时输出等于输入。这和 buck 的线性关系完全不同——buck-boost 的电压增益是以 0.5 为中心的增益曲线在 D 接近 1 时会急剧上扬这也是它不适合做超大升压比的原因。第三这个推导建立在电感电流连续CCM的假设上。如果负载很轻电感电流在放能阶段就掉到零公式会失效输出电压会比理论值更高一些带着负载调整率变差的问题。后面单独有一节讲这个。2.3 为什么 D 越过 0.5 之后电压会起飞D / (1 - D) 这个函数在 D 趋近 1 的时候会发散。D 0.9 时比值是 9D 0.95 时是 19D 0.99 时已经到 99 了。这意味着占空比每往右挪一点点输出电压就成倍地涨。实际做高升压比的时候这个特性会带来两个麻烦一是占空比对输出电压的灵敏度极高环路增益在高压比点被放大控制稍微有点噪声输出就抖得厉害二是开关管的导通时间被压缩得很短电流峰值冲得很高导通损耗和 EMI 都会恶化。我个人的经验是buck-boost 的升压比最好控制在 4 倍以内超过这个范围就考虑更高的匝比变压器方案或者两级结构。同样地降压方向的增益 D 也被限制——当 D 很小时输出等于输入乘以一个很小的数但四开关在升降压模式下 D 小于 0.5 就自动进入降压区实际用的时候会把 D 限制在 0.1 到 0.9 之间两端都留出余量别让电路工作在极限占空比上。拿一个具体的宽压输入例子输入 9V 到 36V输出固定 24V。根据 Vin 和 Vo 的大小关系各段的占空比如下表。输入电压 Vin工作区域占空比 D电感纹波电流(取 L47µH, fsw200kHz)9V升压0.6250.60A12V升压0.5000.64A18V升压0.2500.48A24V临界约 0.5接近 0.6A30V降压0.8000.51A36V降压0.6670.57A这张表实际上是选型的基础。你会发现在整个输入范围内电感纹波都在 0.5A 到 0.65A 之间晃没有一个点特别夸张这说明 47µH 这个值选得比较均衡。如果只按某一个输入点去算很容易在另一个输入点踩坑。3. 电感、电容、管子的参数不是拍脑袋定的3.1 电感量从纹波电流倒推再留 20% 到 30% 余量电感的选择核心是控制纹波电流。纹波太大峰值电流高、损耗大、输出纹波也大纹波太小电感体积和直流电阻都会上去成本不划算。一般的经验值是把纹波电流控制在电感平均电流的 20% 到 40% 之间我通常取 30%。计算步骤是这样先确认电感的平均电流。升压模式下电感电流就是输入电流Iin ≈ Vo × Io / (Vin × η)效率 η 按 0.9 估。以 Vo 24V、Io 2A、Vin 12V 为例Iin 24 × 2 / (12 × 0.9) ≈ 4.44A取 30% 的纹波就是 1.33A。升压模式下电感充能时两端电压是 Vin所以 L Vin × D / (ΔIL × fsw) 12 × 0.5 / (1.33 × 200000) ≈ 22.6µH。但别忘了还要算降压模式。降压模式下 Vo Vin × D电感平均电流等于输出电流 Io 2A纹波取 30% 就是 0.6A。电感充能时的电压是 Vin - Vo所以 L (Vin - Vo) × D / (ΔIL × fsw)。在 Vin 36V、D 24/36 0.667 时L (36 - 24) × 0.667 / (0.6 × 200000) ≈ 66.7µH这个比升压模式算出来的大得多。我第一次做这个电路时就只算了升压模式选了 22µH结果在 36V 输入时纹波电流冲到 1.8A输出噪声大得没法看。后来老老实实把两种模式都算了一遍取最大值再叠 20% 余量最终选了 47µH。这里其实有个更通用的结论对四开关 buck-boost 来说降压模式的电感需求通常比升压模式更苛刻因为降压时电感平均电流小同样的纹波百分比对应的绝对纹波值也更小反推出需要的电感量更大。选型时一定要把输入范围的上下两端都代入一遍。3.2 输入输出电容承受的 RMS 电流比想象中大电感选完之后电容很容易被忽视但实际上它是决定输出纹波和电路寿命的关键。先说输入电容升压模式下电感电流是连续的但输入电流是脉冲的输入电容要吸收这个脉冲电流。粗略估算输入电容的 RMS 电流升压模式下大约是 Io × sqrt(D × (1 - D))降压模式下就是电感纹波电流除以根号 12。输出电容在升压模式下更难受。因为电感只在放能阶段才向输出送能量输出电容得靠自己在剩余时间里撑住负载。输出纹波电压的近似公式是 ΔVout Io × D / (C × fsw)再加上 ESR 贡献的 Io × ESR。以 Io 2A、D 0.5、fsw 200kHz、C 100µF 为例ΔVout 2 × 0.5 / (100e-6 × 200000) 0.05V也就是 50mV。这个值是容量贡献的部分如果不用低 ESR 的陶瓷电容或者固态电容实际纹波会大好几倍。电容的 RMS 电流能力必须单独核对。升压模式下输出电容的 RMS 电流大约等于 Io × sqrt(D / (1 - D))D 0.5 时就是 2AD 0.625 时差不多 2.58A。一颗普通的 1206 封装 22µF 陶瓷电容额定纹波电流可能只有 1A 左右几颗并联才够用。很多人选电容只看容值和耐压结果跑一段时间电容鼓包或者容值衰减问题就出在这。提示输入端建议放一颗至少 100µF 的电解或者聚合物电容做低频储能再并几颗 1µF 到 10µF 的陶瓷电容压高频尖峰。输出侧如果纹波要求高陶瓷电容按 RMS 电流需求的 1.5 倍以上并联配置。3.3 开关管选型Rds(on)、Qg 和死区之间的三角关系MOSFET 的选型要在导通损耗和开关损耗之间取舍。导通损耗由 Rds(on) 决定正比于电流平方开关损耗由 Qg 和开关频率决定正比于 Vgs × Qg × fsw。前者希望管子 Rds(on) 小那就得选大芯片面积的管子代价是 Qg 大、栅极电容大、开关损耗高后者希望 Qg 小那就得选小芯片Rds(on) 又上去了。我的做法是先按电流定 Rds(on) 的量级。假设电感峰值电流是 1.5 倍的平均电流四开关结构里每颗管子只在部分时间里导通实际导通损耗还要乘占空比所以 Rds(on) 可以稍微放松一点。以 5A 峰值、允许每管 2% 的损耗为例管子上的功率约 0.5W分摊到 Rds(on) 上大约 20mΩ 量级就够了实际选 10mΩ 到 20mΩ 之间的型号比较合适。Qg 的影响在死区上会体现出来。Qg 大的管子关断慢关断延迟长死区时间就必须设得更大。死区时间一大体二极管导通的时间就长而体二极管的正向压降比 MOS 沟道大得多反向恢复也慢损耗会明显上升。所以选管子的时候最好把 Qg 和 Rds(on) 的乘积业界叫 figure of meritFOM当成一个综合指标来看而不是单独盯着某一个。四开关拓扑里上下管之间还会互相影响上管的开关噪声会通过米勒电容耦合到下管栅极Qg 小的管子抗干扰能力也更弱一些。参数导通损耗影响开关损耗影响选型倾向Rds(on)正比于 I² × Rds(on) × D几乎无越小越好Qg几乎无正比于 Vgs × Qg × fsw越小越好Coss无影响死区期间的充放电损耗适中体二极管 Trr无影响死区期间的恢复损耗越短越好4. CCM、DCM 和模式切换仿真好看、实物翻车的分水岭4.1 临界电感和断续导通的判定连续导通模式CCM和断续导通模式DCM的分界线是电感电流在放能阶段刚好降到零。判断方法很简单电感电流的平均值等于纹波峰峰值的一半时就是临界点。升压模式下电感平均电流是 Iin纹波峰峰值是 ΔIL临界电感量 Lcrit Vin × D / (2 × ΔIL_avg × fsw)更直观的写法是 Lcrit Vin² × (Vo - Vin) / (2 × Vo² × Io × fsw)。一旦进入 DCM输出电压和占空比的关系就不再是 Vo Vin / (1 - D)而是变成 Vo Vin × (1 D² × T × Vin / (2 × L × Io)) 这类更复杂的表达式输出电压会随着负载变轻一路往上飘。这也是为什么很多电源在空载时输出会比设定值高一截。解决思路通常有三种加大电感让临界点落在满载附近加假负载把最小电流撑住或者干脆做成变频的 DCM 控制器让频率随负载下降。实际项目里我一般不追求全程 CCM因为那意味着电感要做得很大。比较务实的做法是允许轻载进入 DCM然后在控制环里加入占空比补偿或者用跳周期的方式把输出电压压住。判断自己有没有踩到这个问题最简单的方法是用示波器看电感电流波形如果波形底部不是平的一段而是尖三角那就已经进入 DCM 了。4.2 四开关的三种工作模式和切换时的输出跳变四开关 buck-boost 通常会实现三种工作模式靠输入输出电压的比值来切换。当 Vin 明显大于 Vo 时走降压模式左桥高频开关、右桥下管常通右桥的上管基本禁用这时候它的行为和标准 buck 一模一样效率最高。当 Vin 明显小于 Vo 时走升压模式左桥上管常通、右桥高频开关行为和标准 boost 一样。当 Vin 和 Vo 接近时切入升降压模式两个桥臂都开始开关四颗管子都在动。问题就出在升降压模式。这个模式下四颗管子都在开关导通损耗和开关损耗都是三种模式里最高的效率会掉几个百分点。更麻烦的是模式切换的瞬间左桥和右桥的驱动状态会突然改变如果切换点没有处理好输出电压会有一个明显的台阶式跳变负载对电压敏感的话直接就被这一下打挂了。避免频繁切换的办法是加滞环。假设以 24V 为目标输出不要用 Vin Vo 就切降压这样的硬判据而是设成 Vin Vo × 1.05 进入降压、Vin Vo × 0.95 进入升压中间留出 10% 的死区。这样输入电压在临界点附近晃动时模式不会来回跳。4.3 死区时间和体二极管的隐藏成本死区时间是同一桥臂上下管都关断的那段时间目的是防止上下管同时导通造成短路。理论上设得越大越安全但实际上死区越长电流就越多地走体二极管而体二极管的压降通常在 0.7V 到 1.5V比 MOS 沟道的导通压降大十倍以上损耗增加非常明显。死区时间的下限由驱动电路和 MOSFET 的开关时间决定。栅极驱动器的传播延迟、MOSFET 的关断延迟包含米勒平台的放电时间加起来通常在 50ns 到 150ns 之间。我会先用示波器测出实际关断延迟再在这个基础上多留 50ns 到 100ns 的裕量。以 168MHz 主频的 STM32 为例一个计数周期是 5.95ns200ns 死区对应约 34 个计数单位。还有一个容易被忽略的点死区期间电流走体二极管时MOSFET 的 Coss 也在参与充放电。每次死区结束、对管导通时Coss 上储存的能量会在沟道里被消耗掉这个损耗叫 Coss 损耗正比于 V² × Coss × fsw。频率提上去之后这部分会变得很可观。所以我一般把开关频率控制在 150kHz 到 300kHz 之间再高的话 Coss 损耗和死区损耗都会开始抢戏。5. 用 STM32 做四开关 buck-boost 数字电源几个必须落地的动作5.1 定时器的中心对齐、互补输出和死区配置数字电源首选中心对齐 PWM原因是它产生的谐波频谱更集中在开关频率的整数倍附近EMI 更好处理而且中心对齐模式下电感电流的纹波也是对称的采样时机相对好找。STM32 的高级定时器 TIM1 和 TIM8 自带互补输出和死区插入正好合适。配置思路是这样两个半桥分别用 CH1/CH1N 和 CH2/CH2N 驱动定时器工作在中心对齐模式频率由 ARR 和系统时钟共同决定。中心对齐模式下实际开关频率是 fclk / (2 × ARR)。要让 fsw 等于 100kHz、主频 168MHzARR 就取 840。/* TIM1 中心对齐互补 PWM驱动四开关 buck-boost 的两个半桥 */ static void BB_PwmInit(void) { RCC-APB2ENR | RCC_APB2ENR_TIM1EN; TIM1-PSC 0; /* 计数时钟 168MHz */ TIM1-ARR 840 - 1; /* 中心对齐: fsw 168M/(2*840) 100kHz */ TIM1-CR1 TIM_CR1_CMS_0 /* 中心对齐模式 1 */ | TIM_CR1_ARPE; /* ARR 预装载 */ /* 左桥 CH1/CH1N右桥 CH2/CH2N全部 PWM 模式 1 */ TIM1-CCMR1 (6U TIM_CCMR1_OC1M_Pos) | TIM_CCMR1_OC1PE | (6U TIM_CCMR1_OC2M_Pos) | TIM_CCMR1_OC2PE; /* 使能互补输出极性按驱动芯片的高有效/低有效设置 */ TIM1-CCER TIM_CCER_CC1E | TIM_CCER_CC1NE | TIM_CCER_CC2E | TIM_CCER_CC2NE; /* 死区约 200ns: DTG34, 34 * 5.95ns ≈ 202ns */ TIM1-BDTR (34U TIM_BDTR_DTG_Pos) | TIM_BDTR_MOE; /* TRGO 用更新事件给 ADC 做采样触发 */ TIM1-CR2 (2U TIM_CR2_MMS_Pos); TIM1-CR1 | TIM_CR1_CEN; }写这段的时候有两个地方最容易出错。一是 BDTR 里的 MOE 位高级定时器的输出必须置位这个位才会真正输出到引脚忘了置的话波形一直在内部引脚上什么也看不到。二是死区的极性设置不同的栅极驱动器对输入极性的要求不一样有些驱动芯片输入高电平输出低电平配置的时候要把 CCER 里的极性位一起调过来不然上下管的逻辑就反了一上电直接直通。5.2 ADC 采样时刻和 PI 环路的抗积分饱和数字电源的另一个关键点是采样时机。电感电流是三角波为了采到平均值采样点要放在三角波的顶点或者谷底。中心对齐模式下计数器到 ARR 时是向上计数的顶点到 0 时是向下计数的谷底这两个时刻电感电流正好处在平均值附近。我一般用定时器的更新事件触发 ADC在中断里读取结果。采样还要避开开关瞬间。每次管子开通关断都会在电流采样电阻上产生尖峰如果采样点离开关沿太近采到的就是噪声。中心对齐模式下计数器在中间的时段离两个开关沿都最远是最理想的采样窗口。如果用的是比较值触发可以把触发点设在 ARR 的一半位置。控制环我用的是外环电压、内环电流的双环结构外环输出作为内环的给定。PI 环路最容易踩的坑是积分饱和当负载突然加重、输出掉下去误差一下子变得很大积分项疯狂累加等输出恢复时积分项已经饱和回到正常值要很久表现为输出过冲大、恢复慢。typedef struct { float kp, ki; float integ; float out_max, out_min; } pi_ctrl_t; /* 带条件积分的 PI饱和时暂停积分避免积分饱和 */ float PiRun(pi_ctrl_t *p, float ref, float fb) { float err ref - fb; float out p-kp * err p-integ p-ki * err; if (out p-out_max) { out p-out_max; } else if (out p-out_min) { out p-out_min; } else { p-integ p-ki * err; /* 未饱和才累积积分 */ } return out; }这段代码看起来简单但条件积分的位置很关键。有些实现是先累加再判断饱和然后在返回前把这一拍的误差补回去逻辑上等效但要注意别在饱和的时候反复加减造成数值抖动。另外 ki 的量纲要和采样周期匹配采样周期变了 ki 也得跟着调否则环路带宽会漂。5.3 双向能量流动下模式切换的软硬件衔接双向是四开关相对于传统 buck-boost 的一个大优势电池充电和放电可以在同一套硬件上完成能量方向由控制器决定。硬件上其实不需要额外改动四开关的对称结构天然支持双向关键在于软件怎么判断方向。判断依据通常是电感电流的符号。电流为正说明能量从输入流向输出为负说明从输出倒灌回输入。切换方向的时候不能只看瞬时符号因为电流过零附近有噪声容易误判。我会加一个死区比如电流绝对值小于 0.2A 时不改变方向判定超过这个阈值并且持续一段时间才切换。还有个细节反向工作时原本的输出变成了输入控制环的参考值和反馈值要跟着交换。如果还用单向的环路结构会在切换瞬间产生一个很大的误差导致环路剧烈调整。我的做法是维护两个环路的参数集方向切换时把积分项清零并加载对应参数让环路从干净的状态重新开始避免把上一方向的积分残留带过来。6. 上电、轻载、切换三个场景的排查记录6.1 直通炸管从波形反推驱动时序问题第一次上电就炸管这个坑我踩过。现象是上电瞬间电流冲到限流值MOSFET 烫得厉害拆下来一测上下管都短路了。排查思路是从驱动波形往回推先用示波器同时抓同一桥臂上下管的栅极波形看有没有同时为高的时间段。如果确认有交叠再看死区是不是真的生效了。我遇到的情况其实是 BDTR 寄存器写错了。DTG 字段的编码不是线性的DTG[7:5] 为 0 的时候死区时间是 DTG[7:0] 乘以 tDTSDTG[7:5] 为 10x 的时候公式变成 (64 DTG[5:0]) × 2 × tDTS。我一开始按线性公式算了个值写进去实际死区只有几十纳秒比 MOSFET 的关断延迟还短直通就不可避免了。另一个原因是栅极驱动器的传播延迟不一致。上下管如果用的是不同型号的驱动器或者走线长度差得多延迟不同步本来设计好的死区到了实际引脚上就被吃掉了。解决办法是把上管的关断路径做成快关断比如在栅极串一个小电阻加一个加速二极管让关断更快把主动权交给自己而不是依赖驱动器。注意上电调试一定要用可调直流电源从低电压慢慢往上加同时把限流设到额定值的 1.2 倍以内。第一次跑的时候最好在输入串一个功率电阻或者用小容量的保险丝炸管的时候至少不会连带烧掉后面的东西。6.2 轻载输出飘高和最小占空比限制空载的时候输出从 24V 飘到 27V 以上带载后又恢复正常这个现象基本可以锁定是进入了 DCM 或者受最小占空比限制。用示波器看 PWM 波形如果发现占空比已经缩到最小脉宽但输出还是压不下去就是最小占空比的问题如果占空比正常但电感电流断续就是 DCM 导致增益变化。最小脉宽的问题出在数字 PWM 的量化精度上。假设 ARR 840占空比的分辨率是 1/840对应的最小占空比变化量带来的输出电压变化在高压比点会被放大导致输出控制精度不够。解决办法是提高计数分辨率比如把主频提上去或者降低开关频率另一个办法是在轻载时切到跳周期模式让控制器主动跳过若干个周期等效地把占空比降到更低。DCM 导致飘高的处理方式前面提过加假负载是最省事的办法通常加一个额定负载 2% 到 5% 的电阻就能压住。如果对空载功耗有要求那就得让控制器具备变频能力负载变轻时自动降低开关频率维持电感电流连续。这块实现起来复杂一些但效果明显更好。6.3 切换点附近的振荡和滞环设计模式切换的振荡是在调试宽压输入时才发现的。输入电压慢慢从 20V 升到 26V输出在 24V 附近就开始上下晃晃动的频率比开关频率低得多一看就是模式切换在来回跳。原因在于模式判据用的是瞬时比较输入电压稍微高于 24V 就切降压稍微低一点又切回升压两个模式的控制参数不同切换时环路状态没衔接好输出就会抖。解决办法就是前面提到的滞环降压模式进入条件是 Vin Vo × 1.05退出条件是 Vin Vo × 1.02升压模式反过来。两个阈值之间留出的这段区间就是滞环宽度输入电压在里面晃的时候模式保持不变。滞环宽度要按实际输入纹波来定。如果输入源本身纹波就大滞环设得太窄还是会被噪声触发。我的经验是把滞环宽度设成输入纹波峰峰值的两倍以上同时确保两个方向的阈值有重叠区间避免出现既不满足降压也不满足升压的空档。如果输入电压确实会长时间停在这个区间那就老老实实让电路工作在升降压模式虽然效率低一点但至少输出是稳的。最后说个题外话这套四开关 buck-boost 的参数整定其实是互相牵连的。电感量改了纹波变了采样信噪比跟着变环路增益也得跟着调死区时间改了效率变了温升变了长时间跑下来参数又会漂。我的习惯是每改一个值就重新测一遍满载和轻载的两端波形把数据记在本子上跑个十几轮之后再回头看哪个参数是主导、哪个是次要就很清楚了。这种笨办法看着慢但比拍脑袋调参靠谱得多尤其是四开关这种变量多的拓扑靠感觉走很容易在某个角落留下隐患。
返回列表