You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算空间仰角/俯角以查询theta、phi参数对应的天线增益

垂直角计算优化方案

核心思路

抛弃基于水平角阈值的硬切逻辑,改用水平面向量点积判断目标所在半区,实现角度连续映射,完全适配无人机、基站两类天线的计算需求。

具体实现步骤

1. 统一变量定义(以计算观测端天线指向目标端的垂直角为例)

  • 观测端:当前计算增益的天线搭载设备(无人机/基站)
  • 目标端:通信对端设备
  • 视线向量 vec = (dx, dy, dz) = (target_x - obs_x, target_y - obs_y, target_z - obs_z)
  • 观测端天线水平主瓣指向向量 vec_hor:根据天线主波束水平指向角转换得到,z分量固定为0,例如指向正北时为(0, 1, 0),指向正南时为(0, -1, 0)

2. 计算基础参数

import math
# 计算视线向量在水平面的投影及模长
hor_dx, hor_dy = dx, dy
hor_dist = math.hypot(hor_dx, hor_dy)
# 特殊情况:两点在同一竖直线上,直接赋值即可
if hor_dist == 0:
    raw_vert = 90 if dz > 0 else -90
else:
    raw_vert = math.degrees(math.atan2(dz, hor_dist))
# 计算水平投影和天线主瓣指向的点积
dot_product = hor_dx * vec_hor[0] + hor_dy * vec_hor[1]

3. 映射到0-359度垂直角

if dot_product >= 0:
    # 目标在天线水平前半区
    final_vert = raw_vert % 360
else:
    # 目标在天线水平后半区
    final_vert = (180 - raw_vert) % 360
# 确保角度落在0-359区间
if final_vert < 0:
    final_vert += 360

适配说明

如果你的CSV中垂直角的0度定义、顺时针/逆时针递增规则和计算结果存在固定偏移,仅需在最终结果上加上偏移量后再对360取模即可,无需修改核心逻辑。无人机和基站侧的计算完全复用同一套逻辑,仅需替换观测端、目标端坐标,以及对应观测端的vec_hor参数即可。

原问题修复验证

你提到的基站后方红点场景,点积计算结果为负,若原始计算得到的raw_vert为70度,最终映射结果为180-70=110度,和预期完全一致,且没有硬边界跳变问题。

内容的提问来源于stack exchange,提问作者PaulK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:06:03