【电力系统】基于粒子群算法求解热电联产系统优化配置问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

冷热电联产系统作为一种新型的多目标能源供应形式,符合能的梯级利用原则,具有很高的能源利用率.由于所具有的诸多优势,目前在国内外引起了广泛的注意,得到了很大的发展.电力系统无功优化是保证系统安全,经济运行的有效手段,是提高电力系统电压质量的重要措施之一。无功优化的目的在于确定系统中无功设备的合理配置,以保证电网在满足一定的安全约束条件下,使系统的技术经济性能指标最好,即无功补偿设备的安装投资及电网的运行费用最小。 电力系统无功优化是一个多变量、多约束的混合非线性规划问题,其操作变量既有连续变量又有离散变量,其优化过程比较复杂。本文采用粒子群优化算法求解无功优化问题,给出了运用粒子群优化算法的相应求解步骡,并对部分参数的取值进行了讨论和调整。计算表明,该算法能够同时处理问题中的连续变量和离散变量,能够较好地协调全局搜索和局部搜索,并具有并行计算的特性以及较强的鲁棒性,可以取得令人满意的结果。 

⛄ 部分代码

global gbestcost maxit

%npop=10; maxit=2; 

nvar=nvars;  % or nvar=5

was=1;%wdamp=0.99; c1=2; c2=2;

maxit=options(1);npop=options(2);c1=options(3);

c2=options(4);wdamp=options(5);

xmin=lb';

xmax=ub';

dx=xmax-xmin;

vmax=0.1*dx;

empty_particle.position=[];

empty_particle.velocity=[];

empty_particle.cost=[];

empty_particle.pbest=[];

empty_particle.pbestcost=[];

particle=repmat(empty_particle,npop,1);

gbest=zeros(maxit,nvar);

gbestcost=zeros(maxit,1);

P_select=zeros(maxit,npop);

%xx=zeros(npop,nvar);

%y=zeros(npop,1);

%bb=zeros(maxit,1);

for it=1:maxit

    if it==1

        gbestcost(1)=inf;

        for i=1:npop

            particle(i).velocity=zeros(1,nvar);

            %particle(i).position(1+nvar/2:nvar)=floor(xmin(1+nvar/2:nvar)+(xmax(1+nvar/2:nvar)-xmin(1+nvar/2:nvar)).*rand(1,nvar/2));

            particle(i).position=rand(1,nvar);                    

            particle(i).cost=fun(particle(i).position);

            

            particle(i).pbest=particle(i).position;

            particle(i).pbestcost=particle(i).cost;

            

            if particle(i).pbestcost<gbestcost(it)

                gbest(it,:)=particle(i).pbest;

                gbestcost(it)=particle(i).pbestcost;

            end

        end

    else

        gbest(it,:)=gbest(it-1,:);

        gbestcost(it)=gbestcost(it-1);

        for i=1:npop

            particle(i).velocity=was*particle(i).velocity...

                                +c1*rand*(particle(i).pbest-particle(i).position)...

                                +c2*rand*(gbest(it,:)-particle(i).position);

                            

            particle(i).velocity=min(max(particle(i).velocity,-vmax),vmax);

            %R=rand(1,nvar/2)< 1./(1+exp(particle(i).velocity(1:nvar/2)));

            %particle(i).position(1:nvar/2)=R;

            particle(i).position=particle(i).position+particle(i).velocity;

            

            particle(i).position=min(max(particle(i).position,xmin),xmax);

           

             

           %particle(i).position(nvar-nvar_EV+1:nvar)=min(max(particle(i).position(nvar-nvar_EV+1:nvar),Xmin'),Xmax');

            

            

            particle(i).cost=fun(particle(i).position);

            

            if particle(i).cost<particle(i).pbestcost

                particle(i).pbest=particle(i).position;

                particle(i).pbestcost=particle(i).cost;

                if particle(i).pbestcost<gbestcost(it)

                    gbest(it,:)=particle(i).pbest;

                    gbestcost(it)=particle(i).pbestcost;

                end

            end

        end

    end

    

    disp([  'Iteration ' num2str(it) ':   Best Cost = ' num2str(gbestcost(it))]);

    

    was=was*wdamp;

end

x=gbest(maxit,:);

fval=gbestcost(maxit);

end

⛄ 运行结果

⛄ 参考文献

[1]赵波. 应用粒子群优化算法求解市场环境下的电力系统动态经济调度问题[J]. 电力系统保护与控制, 2004, 032(021):1-5,66.

[2]赵迪迪王梦迪. 粒子群算法在电力系统无功优化的应用[J]. 信息技术与信息化, 2021, 000(009):246-248.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值