【优化电价】基于matlab内点法求解实时电价最优问题【含Matlab源码 1161期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞💞💞💞💞💞💥💥💥💥💥💥
在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进;
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式

⛳️座右铭:行百里者,半于九十。
更多Matlab优化求解仿真内容点击👇
Matlab优化求解 (进阶版)
付费专栏Matlab优化求解(初级版)

⛳️关注优快云海神之光,更多资源等你来!!

⛄一、内点法简介

在这里插入图片描述
法。而且无论是面对LP还是QP,内点法都显示出了相当的极好的性能,例如多项式的算法复杂度。

⛄二、部分源代码

clear;
clc;
errArr=[];
%%
%初始化!!!
initial;
% Start clock
t1 = clock;
%%
ROU=sl’MU_MIN+su’MU_MAX;
MUt=SIGMA
ROU/(2
length(sl));%初始对偶因子与惩罚因子计算%
ik=0;%计迭代次数!!!
%迭代循环过程!!
while(abs(ROU)>=err)
%%
%Calcute h,g matrix
ROU=sl’MU_MIN+su’MU_MAX;
errArr=[errArr;ROU;];
SIGMA=0;
MU=SIGMA
ROU/(2
length(sl)); %中心参数置零%
for i=1:30
temp=0;
for j=1:30
temp=temp-V(j)*aY(i,j)*cos(Vth(i)-Vth(j)-Yth(i,j));
end
if (i>6)
tPg=0;
else
tPg=Pg(i);
end
h(i)=tPg-Pd(i)+V(i)*temp;
end
for i=1:30
temp=0;
for j=1:30
temp=temp-V(j)*aY(i,j)*sin(Vth(i)-Vth(j)-Yth(i,j));
end
if (i>6)
tQg=0;
else
tQg=Qg(i);
end
h(i+30)=tQg-Qd(i)+V(i)*temp;
end % Cal h END

for i=1:6
    g(i)=Pg(i);
    g(i+6)=Qg(i);
end
for i=1:30
    g(i+12)=V(i);
end        % Cal  g  END
%Calcute h,g matrix END
%%
%Calculate Jacobian&Hessian matix
%First Step: Jf,Hf
for i=1:6
    Jf(i)=2*gencost(i,5)*Pg(i)+gencost(i,6);
    Hf(i,i)=2*gencost(i,6);
end
%Second Step: Jh, h为等式约束
for i=1:6         %前6行对Pg求导,由此已求出
    Jh(i,i)=1; 
end
for i=7:12        %7-12行对Qg求导,由此已求出
    Jh(i,i+24)=1; 
end
for i=1:30       %形成13-42行的1-60列
    for j=1:30
        tempVp=0;
        tempVq=0;
        if (j==i)
            for k=1:30
                tempVp=tempVp-V(k)*aY(j,k)*cos(Vth(j)-Vth(k)-Yth(j,k));
                tempVq=tempVq-V(k)*aY(j,k)*sin(Vth(j)-Vth(k)-Yth(j,k));
            end
            Jh(12+j,i)=tempVp-aY(j,j)*V(j)*cos(Yth(j,j));
            Jh(12+j,30+i)=tempVq+aY(j,j)*V(j)*sin(Yth(j,j));
        else
            Jh(12+j,i)=-aY(i,j)*V(i)*cos(Vth(i)-Vth(j)-Yth(i,j));
            Jh(12+j,30+i)=-aY(i,j)*V(i)*sin(Vth(i)-Vth(j)-Yth(i,j));
        end
    end
end
for i=1:30       %形成43-72行的1-60列
    for j=1:30
        tempVp=0;
        tempVq=0;
        if (j==i)
            for k=1:30
                tempVp=tempVp+aY(j,k)*V(k)*sin(Vth(j)-Vth(k)-Yth(j,k));
                tempVq=tempVq-aY(j,k)*V(k)*cos(Vth(j)-Vth(k)-Yth(j,k));
            end
            tempVp=tempVp-V(j)*aY(j,j)*sin(-Yth(j,j));
            tempVq=tempVq+V(j)*aY(j,j)*cos(-Yth(j,j));
            Jh(42+j,i)=V(i)*tempVp;
            Jh(42+j,30+i)=V(i)*tempVq;
        else
            Jh(42+j,i)=-aY(i,j)*V(i)*V(j)*sin(Vth(i)-Vth(j)-Yth(i,j));
            Jh(42+j,30+i)=aY(i,j)*V(i)*V(j)*cos(Vth(i)-Vth(j)-Yth(i,j));
        end
    end
end
%Third Step: Hh
%有功部分
for i=1:30
    for j=1:30
        for k=j:30
            if (j==k&&i~=j) 
                Hh(j+12,k+12,i)=0;          %VV
                Hh(j+42,k+42,i)=V(i)*aY(i,j)*V(j)*cos(Vth(i)-Vth(j)-Yth(i,j)); %%thth
            elseif (j==k&&i==j)
                Hh(j+12,k+12,i)=-2*aY(j,j)*cos(Yth(i,i));  %VV
                temp=0;                   %thth
                for l=1:30
                    temp=temp+aY(j,l)*V(l)*cos(Vth(j)-Vth(l)-Yth(j,l));
                end
                temp=temp-aY(i,i)*V(i)*cos(-Yth(i,i));
                Hh(j+42,k+42,i)=V(i)*temp;
            elseif (k==i)
                Hh(j+12,k+12,i)=-aY(i,j)*cos(Vth(i)-Vth(j)-Yth(i,j));    %VV
                Hh(k+12,j+12,i)=Hh(j+12,k+12,i);
                Hh(j+42,k+42,i)=-V(i)*aY(i,j)*V(j)*cos(Vth(i)-Vth(j)-Yth(i,j));  %thth
                Hh(k+42,j+42,i)=Hh(j+42,k+42,i);
            elseif (j==i)
                Hh(j+12,k+12,i)=-aY(i,k)*cos(Vth(i)-Vth(k)-Yth(i,k));    %VV
                Hh(k+12,j+12,i)=Hh(j+12,k+12,i);
                Hh(j+42,k+42,i)=-V(i)*aY(i,k)*V(k)*cos(Vth(i)-Vth(k)-Yth(i,k));  %thth
                Hh(k+42,j+42,i)=Hh(j+42,k+42,i);
            end
        end
    end
end                 %至此已形成(13-42,13-42)和(42-72,43-72)
for i=1:30
    for j=1:30
        for k=1:30
            if (j==k&&i~=j) 
                Hh(j+42,k+12,i)=-V(i)*aY(i,j)*sin(Vth(i)-Vth(j)-Yth(i,j));      %thV
            elseif (j==k&&i==j)
                temp=0;                   %thV
                for l=1:30
                    temp=temp+aY(j,l)*V(l)*sin(Vth(j)-Vth(l)-Yth(j,l));    
                end
                Hh(j+42,k+12,i)=temp-V(i)*aY(i,i)*sin(-Yth(i,i));
            elseif (j==i)
                Hh(j+42,k+12,i)=V(i)*aY(i,k)*sin(Vth(i)-Vth(k)-Yth(i,k));   %thV   
            elseif (k==i)
                Hh(j+42,k+12,i)=-V(j)*aY(i,j)*sin(Vth(i)-Vth(j)-Yth(i,j));  %thV
            end
        end
    end
    Hh(13:42,43:72,i)=Hh(43:72,13:42,i)';
end                           %至此已形成(42-72,13-42)和(13-42,43-72)
%无功部分
for i=1:30
    for j=1:30
        for k=j:30
            if (j==k&&i~=j) 
                Hh(j+12,k+12,i+30)=0;          %VV
                Hh(j+42,k+42,i+30)=V(i)*aY(i,j)*V(j)*sin(Vth(i)-Vth(j)-Yth(i,j)); %%thth
            elseif (j==k&&i==j)
                Hh(j+12,k+12,i+30)=2*aY(j,j)*sin(Yth(i,i));  %VV
                temp=0;                   %thth
                for l=1:30
                    temp=temp+aY(j,l)*V(l)*sin(Vth(j)-Vth(l)-Yth(j,l));
                end
                temp=temp-aY(i,i)*V(i)*sin(-Yth(i,i));
                Hh(j+42,k+42,i+30)=V(i)*temp;
            elseif (k==i)
                Hh(j+12,k+12,i+30)=-aY(i,j)*sin(Vth(i)-Vth(j)-Yth(i,j));    %VV
                Hh(k+12,j+12,i+30)=Hh(j+12,k+12,i+30);
                Hh(j+42,k+42,i)=-V(i)*aY(i,j)*V(j)*sin(Vth(i)-Vth(j)-Yth(i,j));  %thth
                Hh(k+42,j+42,i+30)=Hh(j+42,k+42,i+30);
            elseif (j==i)
                Hh(j+12,k+12,i+30)=-aY(i,k)*sin(Vth(i)-Vth(k)-Yth(i,k));    %VV
                Hh(k+12,j+12,i+30)=Hh(j+12,k+12,i+30);
                Hh(j+42,k+42,i+30)=-V(i)*aY(i,k)*V(k)*sin(Vth(i)-Vth(k)-Yth(i,k));  %thth
                Hh(k+42,j+42,i+30)=Hh(j+42,k+42,i+30);
            end
        end
    end
end                 %至此已形成(13-42,13-42)和(42-72,43-72)
for i=1:30
    for j=1:30
        for k=1:30
            if (j==k&&i~=j) 
                Hh(j+42,k+12,i+30)=V(i)*aY(i,j)*cos(Vth(i)-Vth(j)-Yth(i,j));      %thV
            elseif (j==k&&i==j)
                temp=0;                   %thV
                for l=1:30
                    temp=temp-aY(j,l)*V(l)*cos(Vth(j)-Vth(l)-Yth(j,l));    
                end
                Hh(j+42,k+12,i+30)=temp+V(i)*aY(i,i)*cos(-Yth(i,i));
            elseif (j==i)
                Hh(j+42,k+12,i+30)=-V(i)*aY(i,k)*cos(Vth(i)-Vth(k)-Yth(i,k));   %thV   
            elseif (k==i)
                Hh(j+42,k+12,i+30)=V(j)*aY(i,j)*cos(Vth(i)-Vth(j)-Yth(i,j));  %thV
            end
        end
    end
    Hh(13:42,43:72,i+30)=Hh(43:72,13:42,i+30)';
end                           %至此已形成(42-72,13-42)和(13-42,43-72)
%Hh形成完毕
%Fourth Step: Jg, Hg
Jg=eye(42,42);
Jg=[Jg;zeros(30,42)];
Hg=zeros(72);
%Calculation Jacobian&Hessian matrix END
%%
%Calculate Newton Iteration 误差迭代量
%Cal LX0-------------------------1
LX0=Jf-Jh*Lam+Jg*(-MU_MIN+MU_MAX);
%Cal LLam-------------------------2
LLam0=h;
pferr=max(LLam0);
%Cal LMU_MIN-------------------------3
LMU_MIN0=g-sl-gmin;
%Cal LMU_MAX-------------------------4

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海神之光

有机会获得赠送范围1份代码

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

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

打赏作者

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

抵扣说明:

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

余额充值