怎么用net123做网站,东莞58同城网,百度文库登录入口,粉丝网站制作Matlab代码#xff1a;综合能源系统(IES)的优化调度 设备#xff1a;风力、光伏、燃气轮机、燃气内燃机、燃气锅炉、余热回收系统、吸收式制冷机、电制冷机、蓄电池等设备。 负荷类型#xff1a;冷、热、电 优化目标#xff1a;IES(综合能源系统#xff09;的运行成本最小…Matlab代码综合能源系统(IES)的优化调度 设备 风力、光伏、燃气轮机、燃气内燃机、燃气锅炉、余热回收系统、吸收式制冷机、电制冷机、蓄电池等设备。 负荷类型 冷、热、电 优化目标 IES(综合能源系统的运行成本最小 成本主要包括 燃气成本、碳排放惩罚成本、失电负荷惩罚成本 优化算法 粒子群算法 优化结果 得到系统的电、冷、热三种能源的优化调度方案及最小运运行成本。 程序注释详细有说明文档有助于提高IES优化程序编写的能力最近在折腾综合能源系统优化调度的Matlab代码发现要把冷热电联供系统玩明白还真得下一番功夫。今天就拿手头这个粒子群算法实现的IES优化案例跟大家唠唠怎么用代码把风电、光伏、燃气机组这些设备调度得既经济又环保。先看核心的目标函数怎么写。这个优化要同时考虑燃气费、碳排放罚款和停电惩罚代码里得把这些成本掰开了揉碎了算function total_cost objective_function(x) % 燃气设备总耗气量计算 gas_consumption sum(x(燃气轮机索引)) * 燃气热值 ... sum(x(燃气锅炉索引)) * 锅炉效率; % 分项成本计算 gas_cost gas_consumption * 天然气单价; % 燃气账单 carbon_cost gas_consumption * 碳排系数 * 碳税; % 环保罚单 penalty_cost sum(负荷缺口.*惩罚系数); % 停电赔偿 total_cost gas_cost carbon_cost penalty_cost; % 三座大山压顶 end这里有个小技巧——把设备索引单独定义成常量后面维护代码会轻松很多。比如燃气轮机索引 1:3;这样既避免了魔法数字又方便增减设备。Matlab代码综合能源系统(IES)的优化调度 设备 风力、光伏、燃气轮机、燃气内燃机、燃气锅炉、余热回收系统、吸收式制冷机、电制冷机、蓄电池等设备。 负荷类型 冷、热、电 优化目标 IES(综合能源系统的运行成本最小 成本主要包括 燃气成本、碳排放惩罚成本、失电负荷惩罚成本 优化算法 粒子群算法 优化结果 得到系统的电、冷、热三种能源的优化调度方案及最小运运行成本。 程序注释详细有说明文档有助于提高IES优化程序编写的能力粒子群算法的实现部分核心是速度更新公式。别被公式吓到其实就是每个粒子在找最优解的过程中不断调整飞行方向for iter 1:最大迭代次数 for i 1:粒子数量 % 速度更新保持惯性个体记忆社会认知 v(i,:) 惯性权重*v(i,:) ... 认知系数*rand*(个体最优位置(i,:)-x(i,:)) ... 社会系数*rand*(全局最优位置-x(i,:)); % 位置越界处理设备出力不能超过铭牌参数 x(i,:) max(设备下限, min(x(i,:)v(i,:), 设备上限)); % 更新最优解 当前成本 objective_function(x(i,:)); if 当前成本 个体最优成本(i) % 找到更好的解就存起来 个体最优位置(i,:) x(i,:); 个体最优成本(i) 当前成本; end end % 更新全局最优注意要判断约束是否满足 [min_cost, idx] min(个体最优成本); if min_cost 全局最优成本 满足约束(个体最优位置(idx,:)) 全局最优位置 个体最优位置(idx,:); 全局最优成本 min_cost; end end这里有个坑要注意——设备间的耦合约束。比如余热回收系统的热输出要和燃气轮机的余热产出匹配处理不好就会导致方案不可行。我的做法是在约束函数里加个强校验function [c, ceq] constraints(x) % 等式约束电冷热功率平衡 ceq(1) 总发电量 - 电负荷 - 电制冷耗电; ceq(2) 热源总出力 - 热负荷; ceq(3) 冷源总出力 - 冷负荷; % 不等式约束设备耦合关系 c(1) 余热回收输入 - 燃气轮机余热产出*0.9; % 余热利用率不超过90% c(2) 蓄电池充放电功率*2 - 蓄电池容量; % 充放电倍率限制 end跑完优化后得把结果可视化才看得明白。推荐画三个子图电热冷负荷平衡图、设备出力堆叠图、成本构成饼图。特别是负荷平衡图能直观看出哪段时间存在能源缺口% 绘制电负荷平衡 subplot(3,1,1) area(1:24, [风电出力, 光伏出力, 燃气轮机发电]); hold on plot(电负荷需求,k,LineWidth,2); title(电力供需平衡); legend(风电,光伏,燃机,总需求);实际跑下来发现凌晨时段光伏出力为零时系统主要靠燃气轮机和蓄电池放电支撑。而在午间光伏大发时蓄电池又切换成充电模式吃下多余电量。这种充放策略能把燃气费压下来10%左右。最后提醒新手两个容易翻车的地方设备爬坡率约束别漏掉特别是燃气轮机不能瞬移出力冷热电耦合要用矩阵运算避免for循环拖慢速度惩罚系数设置要合理建议先用历史数据标定完整代码里每个函数都有详细注释还附了设备参数说明文档。建议先跑通案例再动手改参数这样对综合能源系统的多能流协同会有更深的理解。毕竟纸上得来终觉浅调参改bug才是真修行啊