仿真平台:Matlab+Yalmip+Cplex
程序提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调度模型,采用改进的粒子群算法对优化模型进行求解。程序算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!
程序创新点
PSO算法的性能受参数的选择影响。传统PSO算法的惯性权重因子和学习因子是固定不变的,容易陷入局部最优值。针对这一缺点,从惯性权重因子和学习因子两个方面对粒子群算法进行了改进。
主要工作
微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要意义。微电网的发展目标既要满足电力供应的基本需求,又要提高经济效益和环境保护。对此,提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调度模型。同时采用改进的粒子群算法对优化模型进行求解。仿真结果表明,该模型可以有效降低用户的用电成本和环境污染,促进微电网的优化运行,并验证了改进的粒子群算法的优越性能。
粒子群算法简介
粒子群优化算法具有参数设置少,搜索速度快,易于工程实现的优点,广泛应用于神经网络训练程应用领域和随机优化类型等问题的求解。
粒子群算法是一种启发式进化计算技术,来源于对简化社会群体智能行为模型的模拟,是由Kennedy和Eberhart提出的一种进化计算方法,由于该算法具有搜索速度快,简单等一系列特点,已经成功应用于多目标优化问题,被认为是求解多目标优化问题最具潜力的方法之一,主要通过参数设置,与其他算法融合等方式进行研究,将算法不断的优化。
基本步骤
PSO算法是对生物种群觅食行为的仿真,算法描述了数量为N的生物在空间中以不同的速度运动,每只鸟的飞行速度和运动方向,依赖于自身和生物群体的经验,在每一维空间中的速度和运动方向按下式调整:
粒子在多维空间中改变速度以及下一次运动方向的公式如下:
可以得到粒子i在第d维空间中的位置如下:
程序结果
本程序含两个版本,其一是传统粒子群优化方法,结果如下:
其二是改进粒子群优化方法,结果如下:
部分程序
% 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图
将非支配解中的运行成本和环境保护成本分别赋值给yyy,xxx
yyy(i)= mm.swarm(1,i).cost(1);xxx(i)= mm.swarm(1,i).cost(2);
m1=max(yyy);m2=max(xxx);
object(i)= mm.swarm(1,i).cost(1)./m1+ mm.swarm(1,i).cost(2)./m2;
f1(i)=mm.swarm(1,i).cost(1)./m1;
f2(i)=mm.swarm(1,i).cost(2)./m2;
[m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
pg=mm.swarm(1,p).x; %pg为折衷解
'折衷解情况下'); Title = sprintf(
% 第2种寻找总成本最低时的解并画图
object(i)= mm.swarm(1,i).cost(1)+ mm.swarm(1,i).cost(2);
[m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
pg=mm.swarm(1,p).x; %pg为总成本最低时的解
Title = sprintf('总成本最低情况下');
% 第3种寻找运行成本最低时的解并画图
object(i)= mm.swarm(1,i).cost(1);
[m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
pg=mm.swarm(1,p).x; %pg为运行成本最低时的解
'运行成本最低情况下'); Title = sprintf(
% 第4种寻找环境保护成本最低时的解并画图
object(i)= mm.swarm(1,i).cost(2);
[m,p]=min(object); %得到有着最小目标值的微粒所在的行数P
pg=mm.swarm(1,p).x; %pg为环境保护成本最低时的解
'环境保护成本最低情况下'); Title = sprintf(
部分内容源自网络,侵权联系删除!
欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!
更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!