无人机视频传输系统的通信能耗优化

1 问题提出

无人机(Unmanned Aerial Vehicles, UAVs)凭借其卓越的机动性和灵活部署能力,已广泛应用于空中基站,以支持与地面用户(Ground Users, GUs)之间的高质量无线通信连接。与传统地面通信网络相比,UAV能够提供更为优质的通信链路质量,并根据用户需求提供灵活的按需服务。UAV在多个领域具有重要应用,如天然气管道巡检、应急救援和火灾监控等,这些应用场景要求UAV与GUs构建高效的视频传输网络。

视频服务对数据传输速率和画面清晰度有严格要求,但由于视频数据量大且对传输连续性要求高,UAV的视频传输系统在服务质量(Quality of Service, QoS)和体验质量(Quality of Experience, QoE)方面面临更高的挑战。此外,由于UAV机载电池容量受限,飞行时间和任务执行时间受到较大约束,因此,如何在保证QoE和QoS的基础上有效降低UAV系统的能耗,成为亟需解决的重要问题。

为了确保UAV视频传输系统能够满足不同地面用户的服务需求,可以在UAV上配备多根天线,实现同时对多个用户的通信,并通过波束成形技术将信号精确引导至每个用户的最佳接收路径,避免信号干扰并增强信号强度,从而提升系统的整体性能和服务质量。

2 系统模型

a) 系统模型

基于旋翼UAV的空中视频监控系统由K 个单天线GUs和一架配备M x ×M y =M2个均匀矩形阵列(Uniform Rectangular Array , URA)天线的旋翼UAV组成。UAV配备摄像头,从起点起飞并飞往目的地,在飞行过程中捕捉视频。随后,它利用多天线波束成形技术将视频信号传输给K 个单天线用户。

为减少因UAV频繁升降导致的能量消耗,假设UAV的飞行高度保持固定不变,设为恒定值H 0

。将UAV的总运行时间作为优化变量,记为T 。在任意时刻t 0,T 时,UAV的三维位置和速度可表示为q t =[ x u t , y u t , H 0] T∈R 3 ×1 ,其中*⋅* T 代表矩阵的转置操作。初始位置和目的地是预先确定的,k

的坐标为u k =[ x k , y k ,0] T, UAV与用户k 之间的三维距离和水平距离分别表示为

由于UAV处于高空位置,空对地通信信道不仅需要考虑直接路径,还必须考虑来自周围建筑物和物体的多重反射和散射。因此,我们采用了包含视距(Line-of-Sight, LoS)和非视距(Non-Line-of-Sight, NLoS)多路径分量的Racian信道模型如下:

KR为系数,表示LoS路径功率与NLoS路径功率之比。α1 为UAV-GUs链路的路径损耗指数,

,λ*=*c/ fc, c 为光速,fc 为频率。另外,表示LoS路径的贡献,可表示为:

b)视频流模型

我们将时刻t 时UAV分配给GUs的波束成形向量表示为。。

因此,GU k 在时刻t 的信噪比(signal-to-noise ratio, SINR)可以表示为

UAV与用户之间的可达速率为

为了避免视频再缓冲,引入了信息因果约束;即在任意时刻t ,只能在用户处播放已经接收到的视频数据,即

视频用户在时刻t 的视频质量是通过一个具有收益递减性质的对数函数来评估的, 将时刻t 的视频速率变化评估为当前和时间平均播放速率之间的平方差,即.因此,我们将时刻t 的QoE定义为

其中λ 是一个积极的因素来平衡视频质量和视频速率变化之间的权衡。其中需要设置一个下限,以确保视频播放速率高于U min ,即满足以下条件:

C )能量模型

UAV有限的电池容量限制了其飞行时间和传输能力。如何有效管理能源消耗对于空中视频传输至关重要。主要探讨旋翼UAV在飞行推进和通信过程中的能量利用问题。

假设UAV在固定高度运行,假设能够使我们忽略与垂直运动相关的能量消耗,仅关注水平飞行的能量消耗。在时刻t ,UAV的推进功率可表示为:

其中P 0( 1+ 3∥ v t 2 Ω2 r 2) 表示UAV克服空气阻力所消耗的基础功耗,P i( 1+ v t 4 4 v 0 - v t 2 2 v 0) 1/2 表示旋翼的诱导功耗,d 0 ρs**A r 2 v t 3 表示旋翼的驱动功耗。v 0 , Ω*,r* 分别代表旋翼的诱导平均速度、旋翼叶片的角速度以及旋翼的半径。

P 0P i 分别表示悬停状态下的叶型功率和诱导功率。d 0 ,s, A r 分别表示机身阻力比、旋翼的鲁棒性、旋翼盘面积和空气密度。此外,UAV在时刻t 的发射功率可以表示为: 因此,UAV的总能耗可以表示为:

3 优化问题

问题(P1)中的约束条件1规定了UAV的起始和终止位置,约束条件2则限制了其速度,其中V max

表示UAV的最大速度。约束条件3确保在任意时刻t ,只能在用户处播放已经接收到的视频数据.约束条件(12)(13)分别对UAV的传输性能和视频播放速率提出了最低要求。

4 代码实现

  1. 参数初始化

    • num_users:设置用户数量。
    • transmit_power_maxtransmit_power_min:设定无人机最大和最小发射功率(单位:dBm)。
    • distances:每个用户与UAV的随机距离(单位:米)。
    • noise_power:假设的噪声功率(单位:瓦特)。
    • frequency:信号频率(单位:Hz)。
  2. 路径损耗:使用自由空间路径损耗模型来计算每个用户的信号衰减。

  3. 信号-to-噪声比(SNR)和数据速率:根据路径损耗和发射功率计算每个用户的SNR,并使用Shannon公式计算数据速率。

  4. 约束条件 :假设系统中有多个用户,每个用户与基站之间的通信链路受到噪声、路径损耗等因素的影响。我们的目标是通过调整各个用户的发射功率,最小化系统的总体能耗,同时确保每个用户的QoE需求(例如数据速率)得到满足。这个问题可以被建模为一个非凸优化问题 ,其中包括了关于发射功率的约束(功率非负,数据速率约束)和系统的总能耗目标。为了简化问题,我们使用 CVX (MATLAB的优化工具箱)来求解该非凸问题。(cvx工具箱安装教程:MATLAB中cvx工具箱的使用-CSDN博客)

Matlab 复制代码
% CVX工具箱需要预先安装

% 参数初始化
N = 10; % 用户数量
B = 1e6; % 系统带宽 (Hz)
R_min = 1e6; % 最低数据速率要求 (bps)
sigma2 = 1e-10; % 噪声功率 (W)
h = rand(1, N) * 10^(-3); % 每个用户的信道增益(随机值,单位:W)

% 用户间的距离 (单位:米) 用于计算路径损耗
distances = 100 + rand(1, N) * 100; 
% 计算路径损耗 (假设自由空间模型)
path_loss = 20*log10(distances) + 20*log10(2.4e9) - 147.55;

% CVX优化
cvx_begin
    % 定义优化变量:用户的发射功率 p_i (单位:瓦特)
    variable p(N) nonnegative; % 发射功率必须为非负

    % 定义SNR和数据速率
    snr = p ./ (sigma2 * h); % 计算每个用户的SNR
    rate = B * log2(1 + snr); % 计算每个用户的数据速率

    % 目标函数:最小化总能耗
    minimize( sum(p) ); 

    % 约束条件
    subject to
        rate >= R_min * ones(1, N); % 每个用户的数据速率必须大于等于最低要求
        p <= 30; % 每个用户的发射功率不超过30瓦特
        p >= 0.1; % 每个用户的发射功率不低于0.1瓦特(假设的最小功率)
        snr >= 1; % 确保SNR不低于1,避免过低的信号质量
cvx_end

% 输出结果
disp('优化后的发射功率 (瓦特):');
disp(p);
disp('每个用户的SNR:');
disp(snr);
disp('每个用户的数据速率:');
disp(rate);
disp(['总能耗: ', num2str(sum(p))]);

% 绘制优化前后的数据速率对比
figure;
bar(rate);
xlabel('用户编号');
ylabel('数据速率 (bps)');
title('每个用户的优化后数据速率');
grid on;
  1. 优化目标:根据每个用户的数据速率与最低要求进行对比,如果某些用户的速率低于最低要求,则调整其发射功率。

  2. 算法优化:优化部分采用了贪心方法,逐步调整功率,以确保每个用户的速率满足最低要求。也可以用更复杂的优化算法(例如粒子群优化、遗传算法等)

  3. 结果输出:计算并输出每个用户的SNR、数据速率、满足QoE需求的用户数量、总能耗。

  4. 优化后的结果:对功率进行调整后,重新计算优化后的数据速率和总能耗,并与原始结果进行对比。

Matlab 复制代码
% 参数设置
num_users = 10; % 用户数量
transmit_power_max = 30; % 最大发射功率 (dBm)
transmit_power_min = 10; % 最小发射功率 (dBm)
distances = 100 + rand(1, num_users) * 100; % 随机生成用户与UAV的距离 (单位:米)
noise_power = 1e-10; % 噪声功率 (W)
frequency = 2.4e9; % 频率 (Hz)

% 计算路径损耗 (假设自由空间路径损耗模型)
path_loss = 20*log10(distances) + 20*log10(frequency) - 147.55; % 路径损耗 (dB)

% 假设的信号-to-噪声比(SNR)和数据速率的关系
snr_to_data_rate = @(snr) log2(1 + snr); % 基于Shannon公式的简单速率计算

% 目标:最小化通信能耗,满足QoE需求
% QoE需求:最小数据速率要求 (bps)
min_data_rate = 1e6; % 最小数据速率 (1 Mbps)

% 初始化功率分配
transmit_powers = linspace(transmit_power_min, transmit_power_max, num_users); % 初步假设每个用户的发射功率

% 计算每个用户的信号-to-噪声比(SNR)和数据速率
snrs = zeros(1, num_users);
data_rates = zeros(1, num_users);
for i = 1:num_users
    % 计算SNR (dB)
    snrs(i) = transmit_powers(i) - path_loss(i); % dB形式
    % 计算实际SNR (线性)
    snr_linear = 10^(snrs(i)/10);
    % 计算数据速率 (bps)
    data_rates(i) = snr_to_data_rate(snr_linear);
end

% 计算QoE满足条件的用户
valid_users = data_rates >= min_data_rate;

% 计算总能耗
total_energy = sum(10.^(transmit_powers / 10)); % 将dBm转化为瓦特并求和

% 输出结果
disp('每个用户的SNR (dB):');
disp(snrs);
disp('每个用户的数据速率 (bps):');
disp(data_rates);
disp(['满足QoE需求的用户数量: ', num2str(sum(valid_users))]);
disp(['总能耗 (瓦特): ', num2str(total_energy)]);

% 能耗最小化目标函数:约束最小化通信能耗
% 我们将通过优化算法(例如梯度下降、粒子群优化等)来调整发射功率

% 这里用贪心方法作为优化策略:逐渐增加发射功率,确保每个用户的数据速率不低于最低要求
optimize_powers = transmit_powers;
for i = 1:num_users
    if data_rates(i) < min_data_rate
        optimize_powers(i) = transmit_powers(i) + (min_data_rate - data_rates(i)) / 100; % 增加功率
    end
end

% 重新计算优化后的数据速率和总能耗
snrs_opt = zeros(1, num_users);
data_rates_opt = zeros(1, num_users);
for i = 1:num_users
    snrs_opt(i) = optimize_powers(i) - path_loss(i); % dB
    snr_linear_opt = 10^(snrs_opt(i) / 10);
    data_rates_opt(i) = snr_to_data_rate(snr_linear_opt);
end

% 计算优化后的总能耗
total_energy_opt = sum(10.^(optimize_powers / 10)); % 将dBm转化为瓦特并求和

% 输出优化后的结果
disp('优化后的发射功率 (dBm):');
disp(optimize_powers);
disp('优化后的数据速率 (bps):');
disp(data_rates_opt);
disp(['优化后总能耗 (瓦特): ', num2str(total_energy_opt)]);

% 绘制优化前后的数据速率对比
figure;
plot(1:num_users, data_rates, 'b-o', 'DisplayName', '优化前数据速率');
hold on;
plot(1:num_users, data_rates_opt, 'r-o', 'DisplayName', '优化后数据速率');
xlabel('用户编号');
ylabel('数据速率 (bps)');
legend;
title('优化前后数据速率对比');
grid on;

5 代码获取

相关推荐
Dev7z11 小时前
基于Matlab的数字基带通信系统仿真与性能分析
matlab·数字基带通信系统·单极性不归零码·双极性不归零码·单极性归零码·双极性归零码
机器学习之心15 小时前
NGO-VMD北方苍鹰算法优化变分模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码
算法·matlab·重构·信号重构·ngo-vmd·皮尔逊系数·小波阈值降噪
简简单单做算法16 小时前
基于球面透视投影模型的鱼眼图像校正算法matlab仿真
matlab·球面透视投影·鱼眼图像校正
fie88891 天前
基于MATLAB实现的Elman神经网络用于电力负载预测
神经网络·机器学习·matlab
fie88891 天前
基于MATLAB的狼群算法实现
开发语言·算法·matlab
gihigo19981 天前
MATLAB中生成混淆矩阵
开发语言·matlab·矩阵
kaikaile19951 天前
基于MATLAB的传统插值法实现超分辨率重建
人工智能·matlab·超分辨率重建
wearegogog1231 天前
基于MATLAB的谷物颗粒计数方法
开发语言·matlab
MATLAB代码顾问1 天前
多种时间序列预测算法的MATLAB实现
开发语言·算法·matlab
yong99902 天前
MATLAB实现DLT645协议
开发语言·matlab