# 基于NSGAII算法的峰谷分时电价引导下的电动汽车充电负荷优化研究附Matlab代码

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

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

🍊个人信条：格物致知。

## ⛄ 部分代码

function f  = genetic_operator(parent_chromosome, M, V, mu,mum, l_limit, u_limit)

[N,m] = size(parent_chromosome);%N是交配池中的个体数量

%clear m

p = 1;

%下面代码找出交配池中非支配等级的最大值和最小值 为自适应概率计算做准备

pc=0.9;

pm=0.1;

%%首先进行交叉工作

for i = 1 : N%这里虽然循环N次，但是每次循环都会有概率产生2个子代，所以最终产生的子代个体数量是2N个

child_1 = [];

child_2 = [];

parent_1 = round(N*rand(1));

if parent_1 < 1

parent_1 = 1;

end

parent_2 = round(N*rand(1));

if parent_2 < 1

parent_2 = 1;

end

while isequal(parent_chromosome(parent_1,:),parent_chromosome(parent_2,:))

parent_2 = round(N*rand(1));

if parent_2 < 1

parent_2 = 1;

end

end

parent_1 = parent_chromosome(parent_1,:);

parent_2 = parent_chromosome(parent_2,:);

child_1=parent_1;

child_2=parent_2;

if rand(1) <pc%交叉概率0.9

for j = 1 : V

u(j) = rand(1);

if u(j) <= 0.5

bq(j) = (2*u(j))^(1/(mu+1));

else

bq(j) = (1/(2*(1 - u(j))))^(1/(mu+1));

end

child_1(j) = ...

0.5*(((1 + bq(j))*parent_1(j)) + (1 - bq(j))*parent_2(j));

child_2(j) = ...

0.5*(((1 - bq(j))*parent_1(j)) + (1 + bq(j))*parent_2(j));

if child_1(j) > u_limit(j)

child_1(j) = u_limit(j);

elseif child_1(j) < l_limit(j)

child_1(j) = l_limit(j);

end

if child_2(j) > u_limit(j)

child_2(j) = u_limit(j);

elseif child_2(j) < l_limit(j)

child_2(j) = l_limit(j);

end

end

child_1(:,V + 1: M + V) = evaluate_objective(child_1, M, V);

child_2(:,V + 1: M + V) = evaluate_objective(child_2, M, V);

end

child(p,:) =  child_1(:, 1: M + V);

child(p+1,:) = child_2(:, 1: M + V);

p = p + 2;

end

[S,L] = size(child);

pp=1;

%%对交叉后的数组的每个个体根据概率进行变异操作

for jj=1:S

child_3 = child(pp,:);

if rand(1)<pm

for ji = 1 : V

r(ji) = rand(1);

if r(ji) < 0.5

delta(ji) = (2*r(ji))^(1/(mum+1)) - 1;

else

delta(ji) = 1 - (2*(1 - r(ji)))^(1/(mum+1));

end

child_3(ji) = child_3(ji) + delta(ji);

if child_3(ji) > u_limit(ji) % 条件约束

child_3(ji) = u_limit(ji);

elseif child_3(ji) < l_limit(ji)

child_3(ji) = l_limit(ji);

end

end

child_3(:,V + 1: M + V) = evaluate_objective(child_3, M, V);

end

child(pp,:) = child_3(:,1:M+V);

pp=pp+1;

end

f = child;

## ⛄ 参考文献

[1]欧名勇, 陈仲伟, 谭玉东,等. 基于峰谷分时电价引导下的电动汽车充电负荷优化[J]. 电力科学与技术学报, 2020, 35(5):6.

## ⛄ 完整代码

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

|
1天前
|

14 0
|
1天前
|

YOLOv2算法应用于昆虫检测，提供实时高效的方法识别和定位图像中的昆虫，提升检测精度。核心是统一检测网络，预测边界框和类别概率。通过预测框尺寸估算昆虫大小，适用于农业监控、生态研究等领域。在matlab2022A上运行，经过关键升级，如采用更优网络结构和损失函数，保证速度与精度。持续优化可增强对不同昆虫的检测能力。![image.png](https://ucc.alicdn.com/pic/developer-ecology/3tnl7rfrqv6tw_e760ff6682a3420cb4e24d1e48b10a2e.png)
9 0
|
2天前
|

8 2
|
3天前
|

9 1
|
3天前
|

8 0
|
3天前
|

m基于PSO粒子群优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了Offset Min-Sum (OMS)译码算法与粒子群优化（PSO）结合，以优化偏移参数，提升LDPC码解码性能。PSO通过迭代寻找最小化误码率（BER）的最佳偏移量。核心程序运用PSO进行参数更新和适应度函数（BER）评估，最终在不同信噪比下展示OMS解码性能，并保存结果。
6 0
|
29天前
|

24 0
|
29天前
|

24 1
|
29天前

77 1
|
29天前
|

44 0