做储能系统仿真的朋友,基本都绕不开这样一个模型:把双向DC-DC变换器接在储能电池和直流母线之间,让电池既能吃电又能放电。我最早是从单向Buck和Boost开始搭的,后来发现,只要把两个单向变换器的开关管换成互补控制的一组器件,再把SOC(荷电状态)作为核心判据纳入控制逻辑,整个系统就从简单的电压变换器升级成了一台微型的能量管理机组。这篇文章就把我从零搭建这套"双向DC-DC变换器储能电池SOC充电+放电双模式Simulink仿真"的过程写清楚:模型怎么分块、参数怎么给定、CC-CV充电怎么切、Boost放电怎么稳电压、SOC门限怎么防止模式抖动,以及那些我在仿真里踩过的坑。不管是电气类专业的学生做课题,还是刚接触储能控制想找个现成仿真框架的工程师,这都是一份可以直接照着搭的参考。
1. 为什么储能仿真绕不开双向DC-DC:从单向拓扑说起
先说一个很多人刚接触时都会有的疑问:既然电池充电用Buck、放电用Boost,那我直接搭两个独立变换器不就行了,为什么非要"双向"?
这个问题的答案在能量流方向。光伏、风电、电动汽车V2G、微电网这些场景里,储能电池的工况是周期性的:白天吸收多余电能,晚上或负载尖峰时段再释放出去。如果系统里只有单向Buck,电只能从高压侧流向低压侧,电池的反向放电完全没有通路;如果只有单向Boost,紧急情况下又没法给电池回充。用两个独立变换器虽然理论上可行,但器件数量翻倍、成本翻倍,两台变换器电路之间的切换还有逻辑冲突风险。双向DC-DC的本质,是用同一套磁性元件和开关管,通过改变驱动信号的组合,让功率双向流动。这也是储能变流器里"一个变换器搞定两种工况"的工程意义所在。
1.1 从Buck到双向:多一个开关,多一个能量方向
最常见的入门拓扑是非隔离半桥双向DC-DC,结构上看就是两个开关管Q1、Q2串联,中间节点通过电感L接电池,高压侧接直流母线电容和母线电源,低压侧接电池。只要把这两个开关管换一种驱动方式,电路就从一个方向切换到另一个方向:
- 充电模式:Q1高频斩波,Q2当作续流管,电路等效为Buck降压变换器,能量从高压母线流向电池。
- 放电模式:Q2高频斩波,Q1当作同步整流管,电路等效为Boost升压变换器,能量从电池回馈到高压母线。
我给它起过一个便于记忆的类比:双向DC-DC就像一扇双向旋转的门,Buck和Boost只是门的两个旋转方向,而门的合页是电感、门框是电容,谁做主开关谁做续流则取决于你想让能量往哪个方向走。
仿真里驱动信号可以直接用互补PWM来简化:充电时Q1由PI控制的占空比驱动,Q2给反向信号;放电时反过来。实际操作中两个管子中间要加死区时间,防止直通,但仿真阶段如果只做功能验证,互补逻辑加个很小的死区延时就能满足大多数情况。
1.2 SOC的控制价值:它不只是显示电池剩多少电
SOC的全称是State of Charge,一般用百分比表示,含义和汽车油箱表类似。但它和油箱表最大的区别在于:油箱表只给人看,SOC还要入控制环。储能系统对SOC的要求有两条红线:过充导致电池热失控或寿命衰减,过放导致电池端电压坍塌甚至不可逆损伤。
所以在这套仿真里,我不把SOC当显示量,而是当成模式选择的核心判据。充电状态可以定义为SOC偏低时切入,放电状态只在SOC充足时允许,两个门限之间留一段滞环区间防止临界抖动。更进一步,充电电流参考值也可以随SOC阶段调整,比如SOC低于80%用0.5C恒流,SOC超过80%后电流逐步下降,避免满充时硬灌。
1.3 这套仿真到底能帮你回答哪些问题
动手前先想想目标。我搭这套模型时,希望它回答的问题有:
- 给定一个初始SOC,双向DC-DC能否在充电和放电模式之间正确切换,SOC门限逻辑是否可靠?
- 充电模式下,恒流阶段和恒压阶段如何平滑衔接,母线电压、电感电流、占空比各自呈现什么波形?
- 放电模式下,负载突变时母线电压能否快速恢复,电压外环电流内环的级联控制是否稳定?
- 模式切换瞬间,是否会因为参考值跳变产生电流冲击,如何缓解?
在仿真里把这些问题验证清楚,后面做硬件实验时就能少烧好几个开关管。如果你只是想要一个能跑的模型文件,本文的参数表和控制框图可以直接作为蓝本,但建议还是把控制原理过一遍,因为仿真里很少有"一次就给对"的PI参数。
2. 仿真模型的整体架构与设计思路
搭建Simulink模型的第一步不是拖模块,而是画系统框图。我习惯先把模型拆成五块:电池与电池侧测量、双向DC-DC主电路、控制与模式切换逻辑、PWM产生与驱动、高压母线侧负载与测量。这五块的连接顺序决定了建模的清晰程度,也是后续排查问题的基础。
2.1 顶层模块划分与信号流
模型从Simscape Electrical Specialized Power Systems里取元器件,控制部分用普通Simulink模块,二者之间通过测量信号连接。信号的流向:
- 电池电压、电池电流送给控制逻辑;
- 电池电流也用来做安时积分,实时计算SOC;
- SOC连同用户模式请求一起进入状态选择器,输出"充电"或"放电"或"待机";
- 模式信号决定哪一路PI控制器输出占空比有效,再经过PWM发生器生成开关信号;
- 高压母线侧放一个直流电压源模拟充电源,或者接电阻负载模拟用电设备。
我强烈建议在做任何控制闭环之前,先把主电路裸跑一遍。具体做法是:不给控制信号,只用固定占空比0.5去驱动开关管,观察电感电流和电容电压是否能稳定在理论值附近。主电路验证通过后再接控制器,否则问题一旦出现,你根本分不清是电路参数错误还是控制逻辑错误。
2.2 拓扑选型:非隔离半桥为什么是入门首选
双向DC-DC的成熟拓扑很多,隔离型有双有源全桥(DAB)、LLC型双向变换器,非隔离型有半桥、四开关Buck-Boost、Cuk等。仿真实操里,我最推荐非隔离半桥。原因不难理解:
- 器件少:两个开关管加一个电感、一个母线电容,建模简单,控制变量少;
- 控制方式成熟:Buck和Boost的PI控制思路可以直接复用;
- 实验可迁移:从仿真转到硬件时,电路简单意味着调试难度低,PCB面积和成本都可控;
- 仿真速度更好:器件少意味着电路方程少,仿真步长和收敛压力相对小。
缺点是输入输出之间的电压变换范围受限,不适合宽范围升降压或高电压隔离场景。但对储能电池侧与直流母线的典型电压等级(比如电池96V、母线240V这种2.5倍以内),半桥完全够用。
2.3 主电路参数设计:电感、电容与开关频率
参数设计直接用工程中的纹波指标法。先定几个基准:电池额定电压96V,直流母线额定电压200V,额定充放电电流10A,开关频率f_sw选10kHz,电感电流纹波允许±20%额定电流,母线电压纹波允许±1%。
Buck充电模式下,占空比D ≈ 96 / 200 = 0.48,电感纹波电流按公式ΔI_L = (V_H - V_L) × D / (L × f_sw)估算。把ΔI_L限制在4A以内(20%的10A),得到L ≈ (200-96) × 0.48 / (4 × 10000) ≈ 1.25mH,实际取2mH留余量。Boost放电模式下同样校验,D = 1 - 96/200 = 0.52,ΔI_L = V_L × D / (L × f_sw) ≈ 96 × 0.52 / (2mH × 10kHz) ≈ 2.5A,也在允许范围内。
母线电容按能量缓冲需求估算。若负载阶跃20A,允许母线电压跌落5V,电压环响应时间取2ms,C ≈ ΔI × Δt / ΔV = 20 × 0.002 / 5 = 8000μF,仿真模型里取10000μF即可。这个电容值仿真收敛性和电压动态表现都比较好,也不会明显拖慢速度。
我把参数汇总成一张备查表:
| 参数 | 取值 | 设定依据 |
|---|---|---|
| 电池额定电压 | 96V | 26串磷酸铁锂典型电压 |
| 直流母线电压 | 200V | 后续可接逆变器或直流负载 |
| 额定电流 | 10A | 约1kW级功率 |
| 开关频率 | 10kHz | 兼顾仿真速度与控制带宽 |
| 电感 | 2mH | 纹波电流小于4A |
| 母线电容 | 10000μF | 电压环动态支持,纹波小于1% |
| 电池容量 | 20Ah | 安时积分与SOC变化可观测 |
3. 电池模型与SOC估算:控制变量的精度决定控制效果
这套仿真里,电池不是一个简单的直流源,而是受端电压、内阻和SOC共同影响的可变源。电池模型的复杂度直接影响后面SOC控制的效果。
3.1 Simulink内置电池模型怎么配参数
Simscape库里的Battery模块是首选。它属于Simscape Electrical的电气元件库,可以提供充放电过程中端电压随SOC变化的非线性特性。配置时重点看五个参数:额定电压、额定容量、初始SOC、内阻、响应时间。
在电池模块里,初始SOC和安时积分出来的SOC是独立数据源。我在模型里把初始SOC设置为80%,然后把电池模块输出的即时SOC接到Scope。之后再用自建的安时积分模块单独算一路SOC,两路对比,若差距持续扩大,多半是符号方向或电流采样倍率问题。这一对比动作帮我发现过好几次低级错误。
3.2 自建安时积分模块的思路
安时积分公式是SOC(t) = SOC_0 - (1/Q) × ∫I_bat dt。这里有个符号坑,Simscape电池模块的电流方向定义和你在外面传感器看到的电流方向未必一致。我通常约定:电池放电时,电池电流为正。要让这个约定成立,物理连接时需要保证电流传感器的正方向指向负载侧,然后在安时积分模块里放负号,即SOC = SOC_0 - (1/Q) × ∫I_bat dt。
实际建模块的步骤:
- 电流测量模块输出电流I_bat;
- 乘以1/3600把安时换成容量小时(容量Q以Ah为单位时常需要换算成As);
- 再乘以1/Q得SOC变化率;
- 用积分器Integrator积分并设置初值0.8;
- 加饱和模块,限幅到0~1之间。
这个SOC信号接入模式选择逻辑之前,最好再过一个Rate Limiter,限制SOC变化速率。原因是电流噪声会被积分器放大,导致SOC抖动,尤其在步长较大的仿真里,波动值可能会误导门限逻辑。
3.3 SOC门限与滞环设计
模式切换最忌讳"临界点上反复横跳"。如果充电停止门限是90%,放电启动门限也是90%,模型会由于毛刺而在几毫秒内疯狂切换模式。我采用滞环控制,类似家用空调压缩机的启停逻辑:
- 充电启动条件:SOC <= 75%,且用户使能充电;
- 充电停止条件:SOC >= 85%;
- 放电启动条件:SOC >= 40%,且用户使能放电;
- 放电停止条件:SOC <= 30%。
这样在75%~85%之间充电不动作,在30%~40%之间放电不动作,模式切换之间留了死区,就不会出现微型振荡。具体门限可以根据你的项目需求调整,但滞环原则不变。
4. 充电模式的控制逻辑:从恒流到恒压的平滑过渡
锂电池充电的标准流程是CC-CV:先恒流充电,电压逐渐上升;到达截止电压后转为恒压充电,电流逐渐下降。在双向DC-DC里,充电模式对应Buck降压方向,母线电压高于电池电压,能量从高压侧流向电池。
4.1 恒流充电阶段:电流环是主角
恒流充电的目标是让电池电流稳定在给定值,比如10A。电流环结构是:给定I_ref与反馈I_bat相减,经过PI控制器输出占空比D,再通过PWM发生器驱动Q1。这个环的带宽和稳定性直接决定充电过程的平稳性。
参数整定上,我习惯按"先P后I"的顺序。第一步只给Kp,把Kp从0逐渐加大,观察电感电流是否快速跟随给定且无明显振荡;第二步加Ki消除稳态误差,从Ki = Kp / (10 × T_sw)起步。其中T_sw是开关周期,这里T_sw = 0.1ms,Kp取0.1时,Ki可以从100左右开始。实际值还需根据仿真微调,因为变换器的比例环节、PWM调制器和传感器增益都会影响总增益。
仿真中给电流参考值加一个幅值速率限制,比如从0爬升到10A用0.02s,可以有效降低启动冲击。否则PI在启动瞬间会因误差饱和输出满占空比,电感电流直接冲过30A,再被拉回来,波形很难看而且不贴近真实控制器行为。
4.2 恒压阶段:电压环怎么介入
电池电压达到充电截止电压时,需要停止恒流充电,转为恒压充电。判断条件可以取电池端电压到达某阈值,比如26串磷酸铁锂截止电压约93.6V(按3.6V/串估算)。恒压阶段电压环PI给定一个恒定电压参考值,反馈电池端电压,PI输出作为电流参考,再经过电流内环执行。
电压外环和电流内环构成的级联结构,跟放电模式的母线电压控制很相似。关键区别是这里电压环的目标是电池端电压,不是母线电压。两个环节的带宽照样要拉开,电压环带宽取电流环的1/5到1/10,否则内外环会互相激励振荡。
我实际比较过两种切换方式:一种是按SOC直接切换,一种是按电池电压切换。SOC直接切换的问题在于安时积分存在误差累积,电压判断更接近电池真实的物理状态。最终方案是电压为主判据,SOC为辅判据,两个条件同时满足才进入恒压。这样既保证了过充保护,也避免初始SOC差导致提前切换。
4.3 电流误差与占空比:PI参数整定的实测经验
关于PI整定,我一直觉得手调加观察比脚本自动整定更能培养直觉。手调流程一般是:固定母线电压和电池电压,给定固定电流参考,先把Kp从0.01逐步提升,直到电流波形在1/10开关周期内跟上参考且不振荡,再逐步加Ki消除稳态误差。仿真比硬件调参快得多,所以这类尝试完全可以在几小时内完成。
有一个常被忽略的细节:占空比限幅。PI输出要限幅在0.05~0.95之间,避免启动瞬间占空比达到1.0,导致电感饱和或仿真步长报错。限幅之后,积分器一般也要设计成条件积分(积分饱和限制),在输出超过限幅时停止积分,防止深层饱和。Simulink里可以用Saturate + Integrator的Anti-windup实现,或者直接用PID Controller模块的内置限幅功能。
5. 放电模式的控制逻辑:Boost模式下如何稳住母线
放电模式的拓扑视角和充电相反:电池电压低,母线电压高,能量从电池流向母线,电路工作在Boost升压方向。但更本质的控制目标是另一回事——稳定母线电压,而不是简单地把电流推到某个值。
5.1 放电的系统功能定位
母线电压为什么由电池侧控制器负责?因为母线两侧的负载是变的。在微电网或直流配电应用里,母线电压代表"供电质量",电压跌落就意味着电能供求失衡。Boost变换器的电压闭环看到母线电压低于参考值时,会自动多放些电流出来补偿缺额,看到母线电压偏高时则减少放电。
我给放电模式设置了这样的场景:母线端接一个电阻负载,同时再并联一个阶跃负载源,模拟用电设备的突然接入。模式参考值给定母线电压200V,控制器尝试在任何负载条件下都稳住这个电压。这个场景虽然只涉及电阻负载,但已经能够验证Boost动态性能的核心。
5.2 电压外环电流内环的级联控制
放电控制器结构如图:母线电压反馈与参考值相减,经过电压环PI得到电池电流参考(注意方向:放电电流为正);电流参考与电池电流反馈相减,经过电流环PI得到占空比,驱动Q2。
这个级联结构与充电恒压阶段的差别在于:放电时的外环是母线电压,而充电恒压时的外环是电池电压。两个外环物理含义不同,但设计逻辑相同——外环带宽要明显低于内环。电流环带宽取开关频率的1/20,即500Hz;电压环带宽再降一个数量级,约50~100Hz。这样电压环只能看到电流环已经稳定下来的结果,不会形成正反馈。
设计后的动态指标参考:负载从满载到突加一倍,母线电压跌落的瞬态幅度控制在5%以内(200V跌到约190V),恢复时间在10ms量级。如果观察到的超调或振荡超过这个水平,优先调电压环Kp,把它减小一半再观察。电流环一般不要动,它已经由4.3节的流程整定好了。
5.3 负载突变的动态响应测试
测试方法比较直接:在t=0.3s时闭合一个并联负载开关,等效负载电流从10A跳到20A;在t=0.5s时断开,让它跳回10A。观察母线电压波形、电感电流波形和SOC波形,重点看三件事:
- 母线电压在突变后是否快速回到200V参考值,没有持续性振荡;
- 电感电流是否平滑变化,没有尖峰超过器件额定值;
- SOC曲线在这段时间是否呈线性下降,变化率是否大致对应当前放电功率。
如果母线电压恢复过慢,大概率是电压环的Ki太小;如果恢复过程出现连续几次超调震荡,大概率是电压环Kp偏大或者两个环带宽差距不够。把电压环的Ki减半、Kp也减半是最常见的修正方向。
6. 双模式切换与SOC门限管理:状态机的实现细节
模式切换是整个仿真的灵魂。充电模式、放电模式、待机模式三者之间的编排,直接决定整套系统能不能称之为"储能系统"而不是简单的变换器。
6.1 用逻辑模块搭建切换状态机
Simulink里搭建模式切换状态机有两条路线:一条是用Stateflow状态图,另一条是用纯逻辑模块。我用的是纯逻辑模块加布尔信号组合,原因很实际:逻辑模块数目少,模型中状态可见度高,也便于后续移植到单片机时对照C代码结构。
状态选择器的输入端有三个信号:SOC、用户模式请求(充电或放电)、母线电压状态(可选)。输出是一个整数模式信号:0表示待机,1表示充电,2表示放电。
规则的C语言伪代码如下:
if (user_request == CHARGE && SOC <= CHARGE_STOP) { mode = 1; } else if (user_request == DISCHARGE && SOC >= DISCHARGE_STOP) { mode = 2; } else { mode = 0; }Simulink里用比较器、逻辑运算器和Switch模块组合就能实现。比较器输出SOC<=85%则进入充电候选,再与用户使能求与,最终Switch选通对应控制器的占空比输出。这套逻辑没有使用任何循环跳转,每一步都是组合逻辑,因此模型求解时没有额外的状态变量,仿真要稳定得多。
6.2 滞环区间:防止模式在临界点反复切换
前面3.3节已经给过一组滞环门限,这里补充一个具体实现。由于SOC并非离散信号,而是一个连续变化的慢变量,临界点附近即使有一点噪声,也有可能触发"充电→待机→充电"抖动。滞环处理的本质是把"启动条件"和"停止条件"拆开成二元组:
- 充电滞环:SOC低于75%启动充电,高于85%停止充电;
- 放电滞环:SOC高于40%启动放电,低于30%停止放电。
这两个二元组用置位复位触发器(SR Flip-Flop)实现最简洁。启动信号Set,停止信号Reset,输出就是模式状态。触发器在Simulink的logic库里就有。用触发器替代组合逻辑还有一个好处:模式状态是有记忆的,不会因为输入瞬间变化就丢状态。
6.3 切换瞬间的电流冲击抑制
模式切换瞬间最大的问题是参考值跳变带来的冲击。充电模式给电流环参考10A,放电模式给电流环参考可能也是10A,但方向相反,直接从+10A切到-10A会让电感电流在极短时间内横穿0,电流变化率大得产生明显的电压尖峰。
我采用的缓解手段有三种,按优先级排序:
- 切换后强制清空PI积分值,并用当前占空比初始化输出,避免PI从0开始重新积分导致冲击;
- 电流参考值经过Rate Limiter,比如限制在50A/s的爬升率,让电流环平滑过渡;
- 模式切换瞬间让开关管统一进入待机状态10ms(桥臂闭锁),再按新模式启动。
第一种最见效,特别在Simulink仿真里很容易观察到:不做积分清空时,切换后第一个脉冲占空比可能飙到0.9,电流冲击超过30A;做掉之后冲击能控制在10A以内。这个细节在仿真波形里看得清清楚楚,在硬件里它意味着少烧一个MOSFET。
7. 仿真结果分析与常见坑:波形怎么读、问题怎么排
跑仿真不是跑完就完了。一组可靠的波形能证明仿真模型正确,一类特定的波形异常则对应具体的建模错误。这里给出我最常遇到的现象和排查思路。
7.1 一手好波形该长什么样
正常功能验证的时间轴设成1s就够,因为SOC是慢变量,短时间内在阶跃测试中只有缓慢下降或上升曲线。关键波形是这样分布的:
- SOC曲线:初始80%,放电阶段缓慢下降,速率与放电电流成正比;SOC曲线应该连续无跳变,没有反向增长;
- 母线电压:稳态时200V附近波动小于±2V,负载突变时出现暂态跌落但能在几十毫秒内恢复;
- 电感电流:开关纹波叠加在平均值上,纹波幅度不超过2A~3A,充电阶段10A恒流,放电阶段随负载变化;
- 电池端电压:随SOC缓慢变化,充电恒流段缓慢上升,进入恒压段趋于平缓;
- 占空比:充电D约0.48附近小幅调节,放电D约0.52附近动态调节,切换瞬间无跳变到0或1。
如果这些波形和上述特征偏差很大,看下面的排查清单来定位。
7.2 五类高频仿真错误与排查清单
做这类仿真两个月,我把出错的共性提出来,按出现频率排序:
| 症状 | 根因 | 快速定位与修复 |
|---|---|---|
| 仿真一开始就报"Algebraic Loop" | 传感器信号直接回馈到控制输入端,缺少一拍延迟 | 在反馈路径加Unit Delay或加一个带宽为1kHz的一阶惯性环节 |
| SOC波形跳变或突然清零 | 电池模块初始SOC与积分器初值不一致 | 核对两个初值是否都是0.8,再检查电流方向符号 |
| 开关频率处波形出现刺状尖峰 | 求解器最大步长太大,漏掉了开关切换细节 | 把Max Step Size设为T_sw/20,即5e-6s,或改用离散定步长 |
| 电感电流发散或占空比饱和 | PI参数过大或积分器积分饱和未处理 | 限幅占空比0.05~0.95,加Anti-windup,减少Kp后重新观察 |
| 模式切换后第一个周期就过流 | 切换瞬间PI积分状态没有清空或电流参考跳变过快 | 模式切换时清积分值,电流参考加Rate Limiter |
7.3 仿真精度与加速的取舍
很多人在仿真速度上吃过亏。SOC变化本身极慢:1C放电从80%放到30%需要将近2000s实数时间,如果用变步长仿真跑全程,时间成本非常高。我的经验是分两个阶段跑:功能验证阶段用0.5~1s仿真时长,观察电气动态和控制响应;SOC全循环验证阶段则把电池容量临时从20Ah改小到0.2Ah,这样SOC在20s内就能跑完一个明显循环,验证门限切换逻辑是否正确。
Simulink里还建议用离散定步长仿真器,步长取5e-6s或者10e-6s,配合Powergui设置为Discrete模式。定步长的好处是波形可重现可对比,不会因为变步长自适应把某个开关脉冲漏掉。代价是仿真时间长一点点,但模型逻辑稳定性收益更大。只有做长时间SOC仿真时才考虑切回变步长并且放宽最大步长。
8. 扩展方向:从原理仿真到工程落地的三步走
模型能跑、波形正确之后,下一步该干什么?很多朋友把这套仿真当作业交了就完事了,但仿真真正的价值是作为后续方案的验证工具。我给几条可执行的扩展路线。
8.1 从仿真到硬件实验的差异提醒
仿真里用的理想开关瞬间导通,实际MOSFET有导通压降、开关延迟、死区时间和寄生参数。仿真到硬件的第一道坎就是占空比补偿:由于死区的存在,实际输出占空比比控制占空比小一点点,尤其在开关频率高的时候,要做死区补偿算法。第二道坎是传感器延迟:仿真里电流反馈为零延迟,实际硬件电流传感器有带宽限制,控制环的相位裕度会被吃掉一截。所以仿真里整定的Kp和Ki到硬件上通常要打7折左右再回调。
不过双向半桥这种拓扑的硬件调试路径已经很成熟,作为入门实验项目很合适。建议先在模拟负载上做小功率验证,再逐步加大功率。
8.2 后续可以加入的功能模块
仿真框架搭好后,有无数个扩展方向。我建议按需求选择:
- 加入光伏或风力发电模拟源,构成"源-储"联合系统的功率平衡仿真;
- 加入并网逆变器,把直流母线升压到交流侧,此时直流母线电压稳定性会变得更重要,SOC控制可以与并网功率指令联动;
- 加入SOC平衡算法:如果系统里有多组电池簇,可以比较各簇SOC并调节各自的充放电功率,实现均衡充放电;
- 加入低SOC限制策略:SOC降至下限时,控制器强制切换为待机,同时给出报警信号。
8.3 最后分享一个参数整定小技巧
我个人在反复调PI时最常用的一招是"双参考对比调试法":先在Simulink里并列两套完全相同的控制器,一个用原始PI参数,一个用修改后的参数,把它们各自的电流响应同时显示在一张Scope里。这样不仅能直观看到参数变化带来的效果,还能在参数没收敛时迅速对照差异。具体操作上,把两组信号通过Mux合到同一Scope,加不同颜色标签即可。
这套仿真搭到现在,我用它验证过好几版控制策略,双向DC-DC加SOC门限这套骨架始终没有大改。大家搭建时也可以把主电路和控制逻辑尽量拆开,这样后续换策略、换参数都会方便很多。仿真唯一不变的法则是:波形会告诉你一切,前提是你愿意一层层去查它到底在说什么。