⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fitness.m

📁 考虑风电的FTR拍卖模型研究论文基于蒙特卡罗模拟的遗传算法源程序
💻 M
字号:
% FTR Market Bid-Clearing(考虑组对组FTR,启用FACTS相应文献的投标数据)
% GA适应度函数
function C=fitness(x)

%%用标幺值进行计算%%
xmin=[0,0,90,0,0,25,0];                                                    %FTR出清数量下限
xmax=[40,25,120,25,25,70,10];                                              %FTR出清上限
% xmin=zeros(1,7);
% xmax=[100,75,120,90,80,70,100];

n=2000;                                                                    %选取随机样本数目
b1=0.97;                                                                   %线路传输约束的置信度水平可修改
counter=0;                                                                 %计数器初始置0
sum_delta_P=zeros(41,1);                                                   %各线路容量越限值之和初始值
ave_delta_P=zeros(41,1);                                                   %各线路容量越限均值初始值
num=zeros(41,1);                                                           %n种随机情况下各条线路越限情况记数器
k=10000;                                                                   %惩罚因子赋值
Pw=windpower_weibull(n);                                                   %调用产生风机随机功率样本函数
[B,D]=gsdf_ieee30_1;                                                       %调用产生GSDF函数
[b0,P_base,T2,T3]=FTRbid_data;                                             %调用存放FTR拍卖数据文件
f=[-13,-10,-12,-11,-9,12.5,10.5];                                          %FTR投标者报价数据


%判断FTR出清数量是否满足上下限(采用严格惩罚策略对约束条件进行处理)
for i=1:7
    if (x(i)>xmax(i)|x(i)<xmin(i))                                      
        C=1000000000;
       return;                                                                   
    end
end


for i=1:n
    Pline = D*(P_base + T2 * x' + T3 * Pw(i));                             %线路传输容量向量
    if Pline <= (b0'+0.1) & Pline >= -(b0'+0.1)                            %判断条件允许有一定的误差
        counter=counter+1;                                                 %满足条件则计数器加1
    else
        for j=1:41                                                   
            if Pline(j)> b0(j) | Pline(j) < -b0(j)
                num(j)=num(j)+1;                                           %n种随机情况下第j条线路越限情况记数器
                delta_P(j) = abs(Pline(j))- b0(j);                         %第n种随即情况下第j条线路容量越限值
                sum_delta_P(j) = sum_delta_P(j) + delta_P(j);
            end
        end
    end
end



    
if (counter/2000) >=  b1
    C = x * f';                                                            %该个体满足约束条件,则计算相应目标函数值 
else
    %%用线路容量越限均值表示其罚函数惩罚项部分%%
    p=0;                                                                   %惩罚项初值置0
    for j=1:41
        if sum_delta_P(j)>0
            ave_delta_P(j) = sum_delta_P(j) / num(j);
%             ave_delta_P(j) = sum_delta_P(j) / 2000;                        %每条线路容量越限均值
            p= p + k * ave_delta_P(j)^2;
        end
    end                                  
    C= x * f' + p;
    return
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -