核心内容摘要
个人笔记-WSL2上搭建及使用ROS 2 Humble版本
基于多时间尺度的冷热电联供综合能源系统优化调度模型 摘要代码主要做的是冷热电联供综合能源微网的多时间尺度优化问题其中日前计划中通过多场景描述可再生能源的不确定性侧重于一个运行优化周期内 综合能源微网的经济运行日内调度基于日前计划方案根据冷热电在不同时间尺度上的相关性和互补性提出考虑冷热负荷变化的双层滚动优化平抑模型求解各联供设备的调整出力。
结果非常清晰出图效果也非常清楚具体可以看下图。
注实际结构图与图1可能点差别可联系我看实际设备连接图冷热电联供系统像个精打细算的管家得同时伺候好电力、暖气、制冷三个主子。
今天咱们要聊的这个优化模型就像给管家配了个智能闹钟——把24小时拆成三个时间维度来安排活计。
先看日前调度这层。
风电光伏这些看天吃饭的主儿得用蒙特卡洛搞点场景生成。
代码里这段randn用得挺灵性wind_scenarios mean_wind std_wind * randn(24,
; % 生成100个风速场景 plot(wind_scenarios(:,1:
,LineWidth,
1.
% 随便画几个看看波动这可不是普通的随机数每个波动曲线都带着概率权重参与优化。
目标函数里那个sum(prob.*cost)就是在玩加权平均保证方案既激进又保守。
到了日内调度层画风突变。
冷热负荷预测开始搞事情这时候得祭出双层滚动优化。
核心代码里这个for循环暗藏玄机for rolling_step 1:96 % 15分钟级滚动 update_heat_demand kalman_filter(real_data(rolling_step)); adjust_generator(update_heat_demand); % 调用调整函数 if mod(rolling_step,
0 thermal_storage recalculate_ST(); // 每小时更新蓄热装置 } end注意看那个mod取余操作——每四个15分钟触发一次蓄热装置更新这时间尺度嵌套玩得溜。
冷热惯性大的设备用小时级调整电力这种急性子就得实时伺候。
基于多时间尺度的冷热电联供综合能源系统优化调度模型 摘要代码主要做的是冷热电联供综合能源微网的多时间尺度优化问题其中日前计划中通过多场景描述可再生能源的不确定性侧重于一个运行优化周期内 综合能源微网的经济运行日内调度基于日前计划方案根据冷热电在不同时间尺度上的相关性和互补性提出考虑冷热负荷变化的双层滚动优化平抑模型求解各联供设备的调整出力。
结果非常清晰出图效果也非常清楚具体可以看下图。
注实际结构图与图1可能点差别可联系我看实际设备连接图结果可视化部分最能体现功夫。
下面这段绘图代码里的subtightplot是宝藏工具subtightplot(3,1,1,[
08
05],
0.
; stairs(power_output,Color,#FF4500,LineWidth,
1.
; ylabel(电出力(MW),FontName,宋体);用阶梯图表现离散调度指令配色直接上十六进制码字体指定宋体防乱码。
这种细节处的强迫症才是工业级代码该有的样子。
最后说个坑点冷热电设备约束耦合时那个3维矩阵处理不当分分钟内存爆炸。
看这个reshape操作coupling_const reshape( device_params(:,3:
, [], 3,
;把设备参数表按小时切片处理既避免了循环又提升运算效率。
这种张量操作技巧比写十层for循环优雅多了。
PS文中的设备连接拓扑和实际项目稍有不同想瞅真实架构图的铁子可以私戳我。
毕竟商业项目嘛总得留点小秘密不是~