1 简介
Macro/Femtocell作为新一代的异构网络,在用于增加网络覆盖量和提高吞吐量以及保证用户服务需求上有很大的优势,然而大规模的部署Femtocell会导致功率消耗显著增加,同时网络的能量效率也会明显下降.除此之外,为了提高频谱利用率,Macro/Femtocell之间通常采用共享频谱方案,这会导致Macro基站和Femtocell用户之间的跨层干扰,从而明显地降低异构网络的性能.针对上述问题,通过对多目标遗传算法的研究,提出基于能效优化的异构网络资源分配算法.该算法以能量效率为优化目标,在跨层干扰和功率限制等限制条件下,进行子载波信道和功率的联合资源分配.其中,采用遗传和蝙蝠算法进行优化的子载波分配和功率分配方案的求解.仿真结果表明,本文提出的算法在节约能耗方面相比于不考虑干扰限制的算法有很大提升.
一个大的macro基站(MBS),下边带m个用户(MUE),大基站周边i个Femtocell小基站(FBS),每个小基站带k个用户(FUE)。大基站半径:500m, 小基站范围100m。网络能量效率=大小基站所有用户传输速率/所有用户功率消耗。
2 部分代码
clc,clear,close all
warning off
% BA算法参数
maxiter = 100; % 迭代次数
sizepop = 100; % 种群数量
% 频率范围
gain = 3;
popmin = 1; popmax = 30+gain; % x 频率
Qmin = 0.3; % 最小频率
Qmax = 0.9; % 最大频率
nvar = 256; % 最大变量个数
A = 0.5; % 音量 (不变或者减小)
impluse = 0.35; % 脉冲率 (不变或增加)
Vmin = -2; % 最小速度
Vmax = 2; % 最大速度
%% 初始化种群
for i=1:sizepop
pop(i,:) = fix( popmin + (popmax-popmin)*rand(1,nvar) );
pop(i,:) = lb_ub(pop(i,:),popmin,popmax-gain,nvar);
fitness(i) = fun(pop(i,:));
V(i,1:nvar)=0;
end
% 记录一组最优值
[bestfitness,bestindex]=max(fitness);
zbest=pop(bestindex,:); % 全局最佳
fitnesszbest=bestfitness; % 全局最佳适应度值
%% 迭代寻优
for i=1:maxiter
for j=1:sizepop
Q = Qmin + (Qmax-Qmin)*rand;
V(j,:) = V(j,:) + (pop(j,:)-zbest)*Q;
% V--越界限制
V(j,:) = lb_ub(V(j,:),Vmin,Vmax,nvar);
pop(j,:) = fix( pop(j,:) + 1.0*V(j,:) );
% x 越界限制
pop(j,:) = lb_ub(pop(j,:),popmin,popmax-gain,nvar);
[fitness,bestfitness,zbest] = update_pop(pop,j,fitness,bestfitness,zbest);
% 脉冲率
if rand>impluse
pop(j,:) = fix( zbest + A * randn(1,nvar) );
% x 越界限制
pop(j,:) = lb_ub(pop(j,:),popmin,popmax-gain,nvar);
[fitness,bestfitness,zbest] = update_pop(pop,j,fitness,bestfitness,zbest);
else
% pop(j,:) = bin(pop(j,:)); % 置0
% pop(j,:) = [pop(j,end), pop(j,1:end-1)];
pop(j,:) = fix( (mod(i,30))*ones(1,nvar) + + A * randn(1,nvar) );
pop(j,:) = lb_ub(pop(j,:),popmin,popmax-gain,nvar);
[fitness,bestfitness,zbest] = update_pop(pop,j,fitness,bestfitness,zbest);
end
end
fitness_iter(i) = bestfitness;
end
%% 结果显示
disp('最优解')
disp('zbest');
fprintf('\n')
[emsilong_EE, Cmn,Cikn,Rm,Rf,Pm,Pf]= fun_result(zbest);
figure('color',[1,1,1])
plot(fitness_iter,'ro-','linewidth',2)
xlabel('迭代次数'); ylabel('适应度值');
axis tight
save Bat_result.mat
3 仿真结果
4 参考文献
[1]钱进, 王孝, 郭士增. 基于能效优化的异构网络资源分配算法设计[J]. 通信技术, 2016, 49(2):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。