阵列天线方向图乘积定理的Python实现

简述

可以参考最新更新的阵列天线博文直线阵列天线特性和阵列因子(方向图乘积定理、波束扫描、含python代码)

效果如下

对少数量,中等数量,大数量阵列进行了综合,其中黄色线和红色线是我用Python写的方向图乘积定理综合得到的,蓝色的是hfss综合得到的,基本99%以上的重合,归一化方向图完全一致,最大增益在绝大部分阵列一致,有一小部分有5%左右的差异。

16单元组阵

在这里插入图片描述
与HFSS综合完全一致

8单元组阵

在这里插入图片描述
与HFSS综合完全一致

5单元组阵

在这里插入图片描述
与HFSS综合基本一致

2单元组阵

在这里插入图片描述
与HFSS综合基本一致

python实现

先读取单元方向图的数据,然后通过方向图乘积定理综合,写入新的csv,并通过matplot绘制方向图。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pandas as pd
import math
import cmath
import csv
import matplotlib.pyplot as plt

class Pattern:
    def radiation(self):
        data_x = []
        data_y = []
        csv_data = pd.read_csv("./data.csv")
        n_data = len(csv_data)

        for i in range(0, n_data):
            data_x.append(csv_data.loc[i][0])
            data_y.append(csv_data.loc[i][1])

        n_cell = 9
        f = 1.575
        position = [0, 94, 206, 281, 393, 475, 587, 683, 785]
        power = [0.2, 0.8, 0.4, 0.3, 0.5, 0.9, 0.2, 0.7, 0.4]
        phase = [0, 82, 165, 201, 247, 229, 262, 305, 334]

        k = 2 * math.pi * f / 300
        csvfile = open("newdata.csv", "w+", newline='')
        writer = csv.writer(csvfile)
        data_array = []
        data_array.append(['Theta [deg]','Power'])
        data_new = []

        for i in range(0, n_data):
            data_array.append([])
            data_array[i+1].append(data_x[i])
            a = complex(0, 0)
            k_d = k * math.sin(data_x[i] * math.pi / 180)
            for j in range(0, n_cell):
                a = a + power[j] * data_y[i] * cmath.exp(complex(0,(phase[j] * math.pi / 180 + k_d * position[j])))
            data_array[i+1].append(10*math.log10(abs(a)))
            data_new.append(data_array[i+1][1])

        writer.writerows(data_array)

        plt.plot(data_x, data_new,"y")
        plt.show()


def main(argv=None):
    pattern = Pattern()
    pattern.radiation()

if __name__ == '__main__':
    main( )

运行结果

运行结果:增益和副瓣波形包络完全一致,只是副瓣的波峰略有差异。

  • 2
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值