基于SCA的无人机轨迹优化matlab仿真(单用户,多用户,窃听,UAV-IRS)

该文提供了一个基于SCA(SequentialConvexApproximation)的无人机轨迹优化MATLAB代码示例,涵盖了从单用户场景到两用户场景以及包含UAV-IRS(UnmannedAerialVehicle-IrreversibleSystem)的安全通信场景。代码中包含了速度、加速度和位置的约束条件,以及优化目标函数,旨在最大化通信速率。通过迭代过程,模拟了无人机从起点到终点的飞行路径优化,同时展示了轨迹优化的收敛性。

基于SCA的无人机轨迹优化matlab仿真(单用户,多用户,窃听,UAV-IRS)

单用户场景

单用户轨迹优化

两用户场景

两用户轨迹优化

UAV-IRS安全通信场景

安全通信

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

代码

知乎博文:无线通信中的无人机轨迹优化matlab代码

%% fixed wing UAV trajectory optimization
%% only optimize trajectory of UAV
clc,clear;
close all;

 %% paramters
qs = [0,0]'; % start position
qe = [400,400]';% end position
s = [100,400]'; % BS station
dis  = norm(qe-qs); % distance between qs and qe
T =35; % times slots
deta_T = 1;% delta T
vmax =dis/(T*deta_T)*5; % maximial velocity
vmin = 3;% minimial velocity
amax = 5;% max accle
noise_power = 1e-7;%50dbm
beta0 = 1e-3;% L0 pathloss
beta_hat=beta0/noise_power;

iter_num = 10; % number of iterations
q = zeros(T,2,iter_num+1);% positions variables
v = zeros(T,2,iter_num+1);% velocity variables
v(:,:,1) = sqrt(1/2*dis/(T*deta_T));% 
a = zeros(T,2,iter_num+1);% accelerated velocity

H =20;% hegith  
u = zeros(T,iter_num+1);% slack variables
% straight line flying
q(:,1,1)=linspace(qs(1),qe(1),T);
q(:,2,1)=linspace(qs(2),qe(2),T);
val = zeros(1,iter_num+1);
for ii = 1:T
u(ii,1)= norm(q(ii,:,1)-s)^2;
end

%% optimization
for iter=1:iter_num
    
cvx_begin   quiet
variable q1(T,2)
variable u1(T,1)  nonnegative
variable v1(T,2,1)  
variable a1(T,2,1)   
rate = 0;
% calculate objective functions
for ii = 1:T
    rate = rate + log2(1+beta_hat/(u(ii,iter)+H^2))-1/log(2)*beta_hat/((u(ii,iter)+H^2)^2+beta_hat*(u(ii,iter)+H^2))*(u1(ii)-u(ii,iter));
    
end
maximize (rate)
subject to
% start and end potisiton constraints
q1(1,1)==qs(1,1);
q1(1,2)==qs(2,1);

q1(T,1)==qe(1,1);
q1(T,2)==qe(2,1);
% start and end velocity constraints
v1(1,:) == [vmin,vmin]
v1(T,:) == [vmin,vmin]
% accelerated velocity constraint
norm(a1(1,:))<=amax
% slack variables constraints
norm([1-u1(1),2*(q1(1,:)-s')])<=1+u1(1)

for kk=2:T
    % maximal and minimal velocity constraints
    norm(v1(kk,:))<=vmax
%  
    v(kk,:,iter)*v(kk,:,iter)'+2*v(kk,:,iter)*(v1(kk,:)'-v(kk,:,iter)')>=vmin^2
%     % maximial accelerated constrains  
    norm(a1(kk,:))<=amax
    % position constrains
    q1(kk,:)==q1(kk-1,:)+v1(kk,:)*deta_T+1/2*a1(kk,:)*deta_T^2
    v1(kk,:)==v1(kk-1,:)+a1(kk,:)*deta_T
%     slack constrains
    norm([1-u1(kk),2*(q1(kk,:)-s')])<=1+u1(kk)
end
cvx_end
% save optimized results
q(:,:,iter+1)=q1;
v(:,:,iter+1)=v1;
a(:,:,iter+1)=a1;
u(:,iter+1)=u1;
val(iter+1)=cvx_optval;
disp(iter)
end
%% plot trajectory
figure
hold on
%plot trajectory
plot(q(:,1,1),q(:,2,1),'r-.o','linewidth',1.5);
plot(q(:,1,iter+1),q(:,2,iter+1),'b-d','linewidth',1.5);
plot(s(1),s(2),'s','MarkerFaceColor', 'g','markersize',8)
% plot positions
plot(qs(1),qs(2),'s','MarkerFaceColor', 'g','markersize',8)
plot(qe(1),qe(2),'s','MarkerFaceColor', 'g','markersize',8)
% add text
text(s(1)+15,s(2)+15,'User')
text(qs(1)-15,qs(2)-15,'Inital')
text(qe(1)-20,qe(2)+20,'Final')
grid on
% lim  & label & box
xlim([qs(1)-30,qe(1)+30])
ylim([qs(2)-30,qe(2)+30])
legend('straight flight','Optimized trajectory','Location','southeast')
box on
xlabel('x(m)')
ylabel('y(m)')

%% plot convergence

figure
plot(val,'b-o','linewidth',1.5);
grid on

xlabel('iteration number')
ylabel('objective value')

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值