第一次把优化调度算法接到Simulink的光储模型上,我最大的感受是:Simulink本身不难,难在“你以为你建的是物理系统,优化算法面对的却是数字决策变量”这两者之间的对接。很多人包括我自己,一开始容易陷入一个误区——想用一个巨无霸模型把PWM开关、MPPT、电池、并网逆变器和24小时调度全部塞进去,结果仿真慢得像放幻灯片,还三天两头不收敛。
这篇文章就以一个基础光伏储能场景为主线,把“光储系统多目标优化控制仿真”这件事拆开讲清楚。内容适合两类人:一是刚入门Simulink、想拿真实场景练手的同学;二是已经会搭电气模型,但一直没想明白“优化算法怎么和Simulink模型联动”的工程师。我会把光伏、储能、变流器、优化调度、调试排错这几块分别讲透,并给出实际可复现的搭建思路。
1. 光储仿真到底在仿什么
1.1 先看清物理对象:光伏板、电池、变流器、电网,一个都不能漏
我们要仿真的对象是一个典型的光储并网系统:光伏阵列发出直流电,经过DC/DC变换器送到直流母线;储能电池通过双向DC/DC也挂在直流母线上;直流母线再接一台DC/AC逆变器,最终与电网相连,同时也直接给本地负荷供电。再往上一层,还有一个能量管理系统EMS,它负责计算出“什么时候充、什么时候放、从电网买多少电”这些指令。
在你动手搭模型之前,我强烈建议先用一张表把对象和模型粒度梳理清楚,否则建模过程中很容易画着画着就乱套。
| 物理组件 | 建模重点 | Simulink里最常用的替代方式 |
|---|---|---|
| 光伏阵列 | 辐照度、温度到直流功率的映射 | PV Array模块,或受控电流源+查表 |
| 储能电池 | SOC估算、充放电效率、功率边界 | Battery模块,或自定义SOC积分模型 |
| DC/DC变换器 | 升压、降压、恒流/恒功率控制 | 平均化模型,受控电流源/受控电压源 |
| DC/AC逆变器 | 并网电流控制、有功/无功分配 | 三相两电平VSC,或简化的功率平衡模型 |
| 电网与负荷 | 电压、频率、功率交换 | Three-Phase Source/三相RL串联负荷 |
1.2 两种仿真粒度不能混在一起用
这是新手最容易栽跟头的地方。光伏储能系统的仿真,其实有两种完全不同的时间粒度。
第一种是“电磁暂态级”,要看IGBT的开通关断、电流纹波、谐波,步长通常在微秒到毫秒级,仿真几秒钟可能就要跑很久。第二种是“能量管理级”,要看一天24小时里光伏出力、负荷、电价、SOC怎么变化,步长通常是分钟甚至小时级。
“多目标优化控制”关心的是后者,它的决策变量是“这个15分钟光伏发多少、电池放多少、电网买多少”,而不是“下一个微秒IGBT怎么开关”。所以你应该把底层变换器的细节做粗,把能量调度的逻辑做细。我自己的习惯是:变换器一律用平均化模型,电池用SOC积分模型,逆变器用功率平衡模型,仿真主体时间尺度放在秒到分钟级。这样既能保住优化控制的真实性,又不会让仿真时间失控。
1.3 仿真要先回答“这个模型给谁用”
同样是光储模型,给电气设计人员看,和给运营调度人员看,完全不是一回事。面向设计人员,需要波形、纹波、损耗、效率曲线;面向运营调度,需要的是全天功率曲线、SOC轨迹、购电成本。你这次既然做的是“多目标优化控制”,重点就一定放在功率分配和能量轨迹上,所以模型可以更偏向能量管理。
这一步想清楚,后面做多少细节全都有了判断标准。如果发现自己在为某个PI参数调了整整一天,但它在能量管理层面根本无足轻重,那就说明你又走回“巨无霸模型”的老路了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 多目标优化控制的目标拆解与数学表达
2.1 三个核心目标:经济性、平滑性、电池寿命
多目标优化里的“多目标”,在不同文章里说法不一样,但落到光储场景,无非就是三个方向:省钱、稳、耐用。
经济性目标最直接,就是系统一天的运行成本最低。假设电网电价分时计价,光伏发电优先自用,多余的电可以卖给电网,那么目标函数可以写成:
[
J_1 = \sum_{t=1}^{T} \left[ c_{\text{buy}}(t)\cdot P_{\text{grid,buy}}(t) - c_{\text{sell}}(t)\cdot P_{\text{grid,sell}}(t) \right] \Delta t
]
简单地理解就是“从电网买的电费减去卖给电网的收入”,整个值越小越好。这个目标决定了储能系统能不能通过谷时充电、峰时放电赚到价差。
平滑性目标针对的是并网功率的波动。光伏出力受云层遮挡影响会突然大幅下降或回升,储能的一个重要作用就是补偿这个波动。常见的写法是让并网功率的相邻时段变化量尽量小:
[
J_2 = \sum_{t=2}^{T} \left| P_{\text{grid}}(t) - P_{\text{grid}}(t-1) \right|
]
如果你更关注电压稳定性,也可以改成并网功率的方差,作用和这个类似。
电池寿命目标是最容易被忽略的。很多优化算法为了让经济性好看,会让电池频繁深度充放电,但现实里锂电池循环寿命和放电深度直接相关,把SOC从100%放到0%的次数越多,电池老化越快。为简化建模,常用电池的全天能量吞吐量来近似:
[
J_3 = \sum_{t=1}^{T} \left| P_{\text{bat}}(t) \right| \Delta t
]
同样的收益下,
