1. 这套仿真系统的设计意图:为什么是光伏配Boost、电池配DAB
先说点实在的。光伏发电系统的仿真,很多人一开始喜欢把整个系统揉成一个整体,做一个“看起来能出波形”的模型就完事了。但真正到了做项目、写论文、调硬件的时候,才发现这种黑箱模型根本帮不上忙——你没法单独验证控制器,没法独立调参数,更没法定位问题出在哪一环。
这也是我后来坚持用“标准模型+独立变换器”来搭这套系统的原因。标题里说的很清楚:光伏侧用标准的光伏模型,接升压变换器;电池侧用标准的锂离子电池模型,接双有源桥变换器。拆开来看,每一部分都是业内公认的成熟方案,合在一起又是一个完整的直流微网/储能系统架构。这个组合非常适合做三类事情:
- 验证光伏MPPT算法与升压变换器控制是否匹配;
- 验证锂电池充放电策略与隔离型双向变换器的功率控制;
- 把两边联调,观察光伏出力波动时电池如何自动削峰填谷。
这套仿真我实际搭过、跑过、反复调过,Simulink模型做到了直流母线电压稳定、负载突变时电池侧能在几十毫秒内响应。接下来的内容,我会按“设计逻辑→核心参数→建模步骤→调试经验”的顺序,把整个系统的原理和实操讲透。适合正在做光伏储能课题的研究生、准备做电源硬件预研的工程师,以及所有打算用Simulink做电力电子系统仿真但不想只停留在搭积木阶段的人。
1.1 模块化建模的核心思路
模块化的第一个好处,是边界清晰。光伏侧只需要管住“直流母线怎么稳住”,电池侧只需要管住“母线波动时怎么补功率”。两者之间唯一的耦合点是母线电压和功率流向,不需要把光伏阵列内部的物理过程跟电池内部的电化学过程强行搅在一起。
我采用的拓扑结构是:光伏阵列 → Boost升压变换器 → 直流母线;锂电池组 → 双有源桥(DAB)变换器 → 直流母线。直流母线上再挂一个负载电阻或者可编程负载,就可以完整复现一个光储直流系统的运行逻辑。
选择Boost而不用Buck或Buck-Boost,是基于光伏组件的电压特性。常规光伏组件的最大功率点电压在30V到50V之间(标准工况下),而直流母线电压通常设计在200V到400V。Boost变换器在这段升压比下工作效率高、控制实现简单,电感电流连续时电压增益跟占空比的关系也明确,工程上最省事。
电池侧选择双有源桥,看中的是它的双向功率传输能力、电气隔离特性和软开关特性。锂电池既要充电又要放电,DAB天然具备这个优势;高频变压器把低压侧和高压侧隔开,对安全性和共模噪声抑制都更友好;采用移相控制后,开关管在较宽的负载范围内可以实现零电压开通(ZVS),效率曲线很漂亮。
1.2 两套电力电子变换器的分工与耦合
两个变换器不是各干各的,它们通过直流母线电压形成一种隐性的功率平衡关系。光伏侧Boost负责把太阳能尽可能多地从光伏阵列里“抽”出来,也就是执行MPPT;电池侧DAB负责维持母线电压稳定,相当于一个电压源。
当光伏功率大于负载需求时,母线电压有上升趋势,DAB检测到电压偏高后自动进入充电模式,把多余能量灌进电池;当光伏功率不足或有负载冲击时,母线电压下降,DAB立刻切换为放电模式,从电池抽取能量补到母线上。这就是一个典型的“源随荷动、储随压动”的协调机制。
这个机制在Simulink里是通过一个电压外环加功率内环的控制结构实现的。光伏侧的控制环比较简单:Boost的占空比由MPPT算法给出,只需要保证光伏工作点稳定在最大功率附近。电池侧的控制环稍微复杂一点:电压环采样母线电压误差,输出一个功率指令,再经过移相角计算模块,把这个功率指令映射成DAB原副边桥臂之间的移相角。
搞清楚这些分工,再去搭建模型,心里就有底了。下面两个章节,我把光伏侧和电池侧的建模细节分开讲。
2. 光伏侧建模与升压变换器参数设计
2.1 标准光伏模型的选用与设置要点
先明确一个概念:什么叫“标准的光伏模型”?并不是随便拖一个光伏模块就完事,而是指基于光伏电池单二极管五参数等效电路的工程数学模型。这种模型的输出特性曲线与实际光伏组件高度吻合,Simulink中的“PV Array”模块内部用的就是这种模型。
PV Array模块最关键的配置项有五个:光照强度、环境温度、组件串联数、组件并联数、组件参数(包括开路电压、短路电流、最大功率点电压和电流)。
以我常用的配置为例:
- 单个组件:开路电压Voc = 45.6V,短路电流Isc = 8.2A,最大功率点电压Vmp = 36.5V,最大功率点电流Imp = 7.6A;
- 串联数Nseries = 8,并联数Nparallel = 4;
- 标准工况:光照强度1000W/m²,环境温度25°C。
算下来光伏阵列的开路电压约为364.8V,最大功率点电压约为292V,最大功率约8.9kW。注意这里的光伏阵列电压已经接近甚至超过母线电压预设值了,所以要根据实际母线电压来调整串联数。如果母线电压设定为300V,那么串联数取6~7块更合适,留出Boost的升压裕量。
实际设置时,最容易踩的坑是温度系数。PV Array模块内部默认的温度系数是参考某种晶硅组件标定的,如果换了组件型号但忘记修改温度系数,仿真出来的温度特性会偏差很大。我的习惯是:先看组件规格书,把短路电流温度系数、开路电压温度系数、最大功率点电压温度系数三个参数全部填进去,再跑一组不同温度下的I-V曲线对比验证。
另外一个值得注意的点是PV Array模块的“光源”接口。它有多个输入端口:光照强度(Ir)、温度(T)、以及一个可选的质量因子修正输入。如果直接从Constant模块给固定光照值,模型就只有稳态特性;想要模拟云层遮挡的突变工况,就需要用Signal Builder或者Repeating Sequence Stairs给一个随时间变化的光照曲线。我建议从一开始就预留这个动态输入,不然做到后面想加扰动,还得回头改模型结构。
2.2 升压变换器的电感电容计算
Boost变换器在连续导通模式(CCM)下,输入输出电压关系和占空比的关系是:
Vout = Vin / (1 - D)
其中Vin是光伏阵列输入电压,Vout是母线电压,D是开关管占空比。以光伏阵列最大功率点电压292V、母线电压400V为例,占空比D = 1 - 292/400 ≈ 0.27。这个占空比范围非常健康,既不会太小导致电流断续,也不会太大接近极限占空比。
电感值的计算公式:
L = Vin × (Vout - Vin) / (fs × ΔIL × Vout)
fs是开关频率,ΔIL是允许的电感电流纹波。取fs = 20kHz,ΔIL取平均输入电流的20%左右。如果系统额定功率8.9kW,平均输入电流约30.5A,纹波取6A,计算出来:
L = 292 × (400 - 292) / (20000 × 6 × 400) ≈ 1.31mH
实际取1.5mH,留一点余量。电感选大了,电流纹波减小,但动态响应变慢;选小了,体积重量降下来,但纹波电流增大会导致开关管应力上升和光伏侧2倍工频纹波变大。1.5mH在仿真里会表现得比较理想,电流波形平滑,MPPT寻优也稳定。
输出电容设计要从能量缓冲的角度看。母线电压允许纹波假设是1%,即4V,负载功率变化率按最大8.9kW瞬间切换计算:
C ≥ ΔP × Δt / (Vbus × ΔVbus)
工程上常简化为:C = Iout × D / (fs × ΔVout)。Iout是输出电流约22.3A,代入后:
C = 22.3 × 0.27 / (20000 × 4) ≈ 75μF
考虑到我们后面还要接电池侧DAB变换器,母线电容要大一点,我实际用了3300μF。这样母线电压的抗冲击能力明显增强,也给DAB的动态响应留出了缓冲空间。
2.3 MPPT控制器的接入方式
光伏侧Boost的占空比不能直接给定,必须通过MPPT算法实时寻优。Simulink里最常用也最稳定的方法是扰动观察法(P&O),也叫爬山法。它的逻辑很简单:周期性给占空比一个微小扰动,对比扰动前后的功率值,如果功率上升就继续朝同方向扰动,如果功率下降就反向扰动。
在Simulink里实现时,我建议用触发子系统配合零阶保持器来生成一个步进式的占空比指令。每一步的扰动步长取0.001到0.002之间,采样周期取0.01s到0.02s。步长太大,最大功率点附近的振荡幅度就大;步长太小,爬坡速度慢,在光照突变时MPPT会显得迟钝。
我调试中发现一个典型问题:如果直接在一个连续仿真的步长里执行P&O逻辑,占空比指令会每个仿真步长都变一次,高频扰动会让Boost输出电压出现很大的毛刺。解决办法是把MPPT算法放在一个采样周期控制的子系统里,用零阶保持器隔开,这样占空比以步进形式更新,母线电压上就不会出现高频抖动。
P&O算法用到的功率计算很简单:P = V_pv × I_pv,直接连一个乘法器就行。这里特别提醒一点,功率信号一定要经过低通滤波或者取均值之后再送进MPPT判断逻辑。因为光伏阵列的瞬时功率里有开关频率纹波分量,如果直接用它做P&O判断,扰动方向可能被纹波淹没,导致误判和振荡。我常用的做法是加一个截止频率100Hz的一阶低通滤波器,实测对MPPT收敛速度影响很小,但稳定性提升非常明显。
3. 锂离子电池模型与双有源桥变换器实现
3.1 锂电池模型的等效电路与参数辨识
锂离子电池模型最常见的是Thevenin等效电路模型,也就是电压源串内阻,再并一到两阶RC网络。Simulink里自带的Battery模块内部用的正是这种结构,很多论文里的电池模型也基于此。相比电化学模型,等效电路模型的计算量小、参数容易从实验数据中拟合,非常适合系统级仿真。
Battery模块的类型选择里,有“Lithium-Ion”的预设参数。但预设参数的只是理论参考值,实际使用时要根据你自己的电池规格修改:
- 额定容量(Ah);
- 额定电压(V);
- 初始SOC(%);
- 最大容量、截止电压、自放电率;
- 内阻和极化电阻/极化电容。
我经常用一组20Ah、额定电压48V的锂电池组。SOC初始值设80%,仿真时把SOC变化范围限制在20%~90%之间,避免深度过放导致的模型失真。还有一个细节:Battery模块默认把温度固定为常温,如果你要研究低温充放电特性,需要额外引入温度相关参数,普通系统级仿真可以忽略。
RC网络参数的含义要理解到位。串联电阻R0代表电极材料、电解液和接触电阻的总和,它决定了电池在充放电瞬间的电压跳变;RC并联网络代表极化效应,其中R1代表极化电阻,C1代表极化电容,它们共同决定电池电压在电流扰动后的暂态恢复速度。R0越小,电池的“弹性”越好;R1C1时间常数越大,电池的动态响应越慢。
如果手头有实验数据,可以用下面的方法粗略辨识参数:对电池施加一个阶跃电流,记录端电压波形,电压的瞬时突变除以电流就是R0;后续的指数恢复段拟合出时间常数τ和稳态压差,就可以算出R1和C1。没有实验条件的话,用Battery模块默认值也够用,只需按额定容量等比调整。
3.2 DAB工作原理与移相控制方程
双有源桥变换器,英文全称Dual Active Bridge,简称DAB。它由原边全桥、高频变压器、副边全桥和高频电感L组成。原副边都是全桥结构,通过高频变压器实现电气隔离和电压匹配。
DAB的核心工作原理是移相控制。原边全桥和副边全桥都以固定的开关频率工作,占空比50%,但两个桥的驱动信号之间存在一个相位差,这个相位差就是移相角φ。移相角决定了变压器原副边电压之间的相位关系,也就决定了传输功率的大小和方向。
忽略损耗的理想情况下,DAB的传输功率表达式为:
P = (n × V1 × V2 × φ × (π - |φ|)) / (2 × π² × fs × L)
其中V1是原边直流电压,V2是副边直流电压(折算到原边前),n是变压器变比,fs是开关频率,L是辅助电感(可以是变压器漏感加外部电感的总和),φ是移相角。这里φ以弧度表示,且φ在-π/2到π/2之间时,功率方向和φ正负号保持一致。
这个公式是DAB设计的总纲,我建议把它抄下来放在手边。由它可以看出三个直接结论:
- 移相角越大,传输功率越大,但超过π/2后功率反而下降,所以控制范围一般限制在±π/2以内;
- 功率方向由移相角正负决定,正移相角时功率从原边流向副边(放电),负移相角时功率反向(充电);
- 传输功率与开关频率成反比,频率越高,同样体积的电感能传递的功率越大。
DAB实现软开关是一个重要优势。在合适的电压匹配和负载条件下,原副边开关管可以实现ZVS,也就是零电压开通。这需要原边桥臂的开关过渡期间,电感电流方向能对开关管的输出电容进行充放电换流,具体条件是电感电流在开关时刻具备足够的方向和大小。仿真中观察开关管的Vds和电流波形,如果开通瞬间电流已经过零,说明ZVS条件不完全满足。工程上通常通过匹配变比和调整电感值来拓宽ZVS范围。
3.3 DAB关键元件参数整定
DAB本身涉及到几个关键元件:变压器变比、辅助电感L、开关频率、桥臂电容、移相角限幅。我按顺序说。
变压器变比n的选取原则是:在额定工况下,让输出电压折算值接近输入电压,也就是n × V2 ≈ V1。这样两边电压匹配时,DAB可以以较小的移相角传输额定功率,同时ZVS范围更宽。我的系统里,原边接48V电池组,副边接400V母线,变压器变比选8:1左右,高频变压器模型可以用Simulink里的Linear Transformer配合饱和选项,或者直接用理想变压器加漏感。
辅助电感L的设计从功率公式反推。给定额定功率P_nom = 5kW,移相角φ = π/4(这是比较合适的设计点,兼顾功率能力和ZVS范围),开关频率fs = 20kHz,V1 = 48V,n×V2 = 48V代入:
L = (n × V1 × V2 × φ × (π - |φ|)) / (2 × π² × fs × P_nom) = (48 × 48 × 0.785 × (3.142 - 0.785)) / (2 × 9.87 × 20000 × 5000) ≈ 21.7μH
实际取22μH。这个电感值在20kHz下阻抗很小,但高频方波激励下电流变化率很大,波形接近三角波,符合DAB的设计预期。
开关频率的选择要考虑开关器件损耗和磁性元件尺寸的折中。20kHz这个档位在Si基器件时代是经典选择;如果用的是SiC或者GaN器件,可以做到100kHz以上,这时候电感值可以缩小到几微亨,变压器体积也大幅缩小。仿真中改频率很容易,但要注意把DAB的电感值、变压器模型里的漏感参数同步更新。
移相角限幅一定要做。Simulink的控制器里,移相角输出如果不做饱和处理,仿真中可能出现移相角超出π/2导致功率反转的异常现象。我一般把移相角限制在±0.45π以内,留出10%的安全裕量。这样做还会顺带保护后面的PI控制器,防止积分饱和造成失控。
4. Simulink模型搭建的完整步骤与易错点
4.1 子系统划分与信号连接
Simulink建模最忌讳把所有模块堆在同一个窗口里。我的做法是做一个顶层模型,然后用Subsystem把四个功能块封装起来:光伏阵列+MPPT子系统、Boost变换器主电路、电池模型、DAB变换器主电路和控制子系统。
具体到每一层:
- 光伏MPPT子系统内部:PV Array模块、电压电流测量、功率计算、低通滤波、P&O逻辑、占空比输出;
- Boost主电路:使用Simscape Electrical里的MOSFET、Diode、Inductor、Capacitor,还有Pulse Generator或者通过Gate信号控制的开关管驱动;
- 电池模型:Simulink自带的Battery模块,直接把正负极引出,接DAB原边全桥;
- DAB子系统:原边全桥(4个开关管)、高频变压器、辅助电感、副边全桥、母线电容,以及移相角生成逻辑;
- 控制子系统:母线电压采样、误差计算、PI控制器、移相角限幅、PWM信号生成。
这里有一个关键的连通性问题。Simscape Electrical的模块和普通Simulink模块之间通常不能直接连,需要用电气的测量模块做信号转换。电流和电压的测量用Current Sensor和Voltage Sensor,它们输出的是Simulink信号线;反过来,PWM波形的Simulink信号要送给开关管的Gate端口,可以直接连,因为Gate端口是Simscape的物理信号端口而驱动信号常常来自Simulink控制端,通过PS-Simulink和Simulink-PS转换器来桥接。
具体做法是:在控制子系统里用Simulink的PWM Generator生成PWM信号,经过Simulink-PS Converter再连接到MOSFET的Gate端口。反过来,从光伏阵列和母线上用PS-Simulink Converter把电压电流信号变成Simulink数值,供MPPT和电压环路使用。
4.2 求解器、步长与硬件加速
Simulink做电力电子仿真,求解器设置直接决定仿真能不能跑通、跑多久。
我推荐的配置:
- 求解器类型:Variable-step(变步长);
- 求解器:ode23tb或者ode15s,这两个对刚性系统的处理能力比较强。电力电子电路里开关切换造成的高频分量和控制系统里的惯性环节混在一起,属于典型的刚性系统,用ode45经常会出现“步长太小收敛失败”的报错;
- Max step size:设置为开关周期的1/20到1/50。开关频率20kHz时,开关周期50μs,Max step size建议取1μs到2.5μs;
- Relative tolerance:默认1e-3可能不够,尤其你在观察输出电压纹波时,建议设到1e-4甚至1e-5;
- Min step size:保持auto即可,不要手动设太小,否则仿真速度会奇慢。
仿真时间方面,做稳态分析时设0.5s足够,光伏MPPT从启动到收敛大约需要0.1~0.2s,之后系统进入稳态。做动态切换测试时,把光照突变或负载突变的事件放在0.3s左右,仿真时长设1s,观察完整的动态过程。
关于仿真速度,有一点经验:Simscape Electrical的开关管如果选的是“Switching Function”类型,仿真速度会比选“Ideal”慢不少,因为内部要计算开关管开通关断的动态过程。系统级验证时用Switching Function已经足够,只有当你要看开关波形细节时才需要Ideal或者更精细的器件模型。我这里用的是Ideal开关管,但设置了导通电阻Ron = 0.001Ω和关断电阻Roff = 1e6Ω,避免开关瞬间产生无限大的dI/dt,也提高了数值稳定性。
4.3 代数环、初值冲突与仿真发散的处理
这块内容属于“不被折腾一次根本记不住”的典型问题。
代数环是我在搭建光伏Boost时第一次遇到的。MPPT功率计算里,P = V_pv × I_pv,而V_pv和I_pv又是由Boost输入端的电路决定的,Boost的占空比由MPPT输出决定——这条环路如果直接在Simulink里用连续模块连接,就会出现代数环。Simulink会报“Algebraic loop detected”,仿真速度急剧下降。
解决方案有两个。第一个是在反馈路径上添加Memory模块或者Unit Delay,打破代数环。代价是引入一拍延迟,对闭环稳定性有一点点影响,但系统级仿真里基本无感。第二个是把MPPT的P&O逻辑放进触发子系统,用上面提到的零阶保持器隔离,这个方案更干净,推荐优先使用。
初值冲突是另一个高频问题。Boost的输出电容初始电压如果设0V,仿真一开始母线电压从0慢慢爬升,充电电流会特别大,接近短路状态。正确做法是:电容初始电压设成接近母线电压的目标值,比如380V或者400V。电容初始电压设成接近母线电压的目标值,比如380V或者400V。电池模块的初始SOC也按实际需求设置好,避免电池从零电量开始仿真导致模型报警。
仿真发散的情况我也遇到过。典型特征是仿真到某一时刻直接报错“Unable to reduce the step size”,然后再也跑不下去。排查顺序是:先看是不是Max step size设太大,改小;再看是不是某个反馈信号出现了NaN或者Inf,这通常是因为电感电流或者电容电压初值为0导致除零;最后看PI控制器参数是否过激,DAB的移相环如果比例增益太大,功率指令振荡幅度会迅速放大,最终把仿真推向发散。
我调试时会习惯在关键信号线上加Scope和To Workspace,把母线电压、电池电流、移相角、占空比全部记录下来,出问题时直接用数据定位。慢但是有效。
5. 实测波形分析与调参心得
5.1 稳态波形与数据核对
先跑一个基础的稳态工况,光照1000W/m²,负载恒定,电池SOC初始80%,母线电压目标400V。仿真结束后,重点看几个波形。
第一个是光伏阵列的输出功率。正常情况下,MPPT应该在0.1~0.2s内收敛到最大功率点附近,功率曲线呈现小幅锯齿振荡,振荡幅度不超过最大功率的1%~2%。如果振荡幅度过大,说明MPPT步长太大或者扰动周期太长,需要调小。
第二个是母线电压。稳定之后母线电压的纹波应该在400V ± 5V以内,也就是纹波率在1%左右。如果纹波明显偏高,检查Boost输出电容容量和DAB控制的动态均流是否正常。实测下来,DAB接入后母线电压纹波会略有增加,这是DAB功率传输过程中固有脉动造成的,只要控制在2%以内就不必过度担心。
第三个是电池电流。当光伏功率等于负载功率时,电池电流应该接近0,处于涓流状态;当光伏功率高于负载功率时,电池电流变为正(充电),低于负载时变为负(放电)。这个方向变化是判断系统功率平衡是否正确的最直接指标。
我一般还会做一个能量守恒的粗略验证:将光伏输出功率、电池充放电功率、负载消耗功率三个人分别记录,任意时刻都应该满足Pin + Pbat = Pload(DAB和Boost损耗除外)。偏差超过5%就要检查模型里是否有测量换算错误。
5.2 动态切换场景下的问题
模型稳定之后,就该做动态测试了。我设计了三个典型工况:光照突变、负载突变、电池SOC上下限触发。
光照突变最容易暴露MPPT的问题。把光照在0.5s时从1000W/m²阶跃到600W/m²,理想情况是Boost能在大约0.1s内追踪到新的最大功率点,母线电压波动不超过20V,电池电流相应从充电状态转为放电状态。实际调试中,P&O在快速光照变化时经常出现暂时的误判,功率曲线会先往下掉再缓慢爬升,这是扰动观察法在动态条件下的固有缺陷。如果你对动态性能要求更高,可以考虑用电导增量法(INC)替代,它的跟踪速度和稳态精度都比P&O更好,代价是实现稍复杂一点。
负载突变发生在0.6s,负载功率从5kW跳到8kW。这时母线电压会先跌一下,然后在DAB电池放电回调作用下恢复。实测中这个动态恢复时间取决于电压环PI参数:比例系数大,恢复快,但容易超调;积分系数大,稳态误差小,但动态过程可能出现振荡。我在调PI时采用的方法是:先把积分项置零,调比例项让响应不振荡,然后逐步加积分项消除稳态误差,最终达到“电压跌落在15V以内、恢复时间80ms以内”的效果。
SOC上下限触发是验证电池保护的场景。当SOC低于20%时,如果电压环还在给充电指令,说明保护逻辑没有生效。Simulink里可以给电池侧的功率指令加一个SOC条件判定,SOC低于下限就不允许正功率(充电),SOC高于上限就不允许负功率(放电)。这个逻辑虽然简单,但很容易被忽略,实际系统中不做这一步,电池会在浅充浅放循环里损耗寿命甚至引发安全问题。
5.3 一个值得保留的小习惯:参数管理
做到最后,我想专门提一下参数管理。Simulink模型里模块参数是跟着模型文件走的,一旦模型被复制、修改,参数可能被覆盖或者丢失。强烈建议在模型里新建一个MATLAB脚本作为“参数定义文件”,把所有关键参数集中管理,包括:
- 光伏组件的Voc、Isc、Vmp、Imp、串联并联数;
- Boost的L、C、开关频率、负载电阻;
- 电池的容量、额定电压、初始SOC、RC参数;
- DAB的变压器变比、辅助电感、移相角限幅、PI参数。
每次运行仿真前先运行这个脚本,保证所有参数都是最新的。这样做的好处非常明显:换一组电池、改一个负载工况,只需要修改脚本里的变量值,不需要去模型里逐个找模块参数。我甚至会把几组参数配置写好注释,需要时直接取消注释切换,几秒钟就能从“冬天低温工况”切到“夏季高温满发工况”。
仿真模型的版本管理同样值得做。每调一次参数,如果模型有改动,建议把模型文件连同参数脚本一起保存,命名带上日期和工况描述。真到出了问题想回溯时,你会发现这个习惯救了你很多次。
最后说一个我自己反复踩过的坑:仿真结果“完美”的时候,先别急着高兴。把母线电压、电池电流这些关键波形放大看细节,和前一组参数对比一下,确认是控制器在起作用,而不是数值振荡恰好表现出好看的曲线。做电力电子仿真,判断“有效”和“假象”之间的差异,是最重要的基本功。这套光伏+Boost、锂电池+DAB的仿真实例,我已经按这个思路反复迭代过很多次,希望这篇文章能帮你少走几步弯路,把时间真正花在和自己项目相关的问题上。