Skip to content

Repository files navigation

PI-NAS:基于 AI 的阵列天线综合

本项目当前包含三条路线:

  1. pinas_train.py:8x8 最小闭环,用于验证“MLP + 可微阵列因子 + 物理损失”能否跑通。
  2. competition_pinas.py:面向比赛指标的 32x32 千阵元版本,支持和波束、差波束、零陷、阵元失效。
  3. generate_reference_table.py + train_reference_pinn.py:根据会议纪要新增的“参考表 + PINN”路线,先生成少量理想数据,再让网络学习参考表以获得更好的起点,最后用阵列因子公式进行物理损失微调。

环境检查

D:\anaconda\envs\langchain-env\python.exe --version
D:\anaconda\envs\langchain-env\python.exe -c "import torch, matplotlib; print(torch.__version__); print(matplotlib.__version__)"

路线一:小规模最小闭环

D:\anaconda\envs\langchain-env\python.exe .\pinas_train.py --sweep -30 0 30 --epochs 1000 --target-sll-db -20

输出目录:outputs/

路线二:比赛指标版本

单角度 32x32 千阵元测试:

D:\anaconda\envs\langchain-env\python.exe .\competition_pinas.py --theta0 30 --epochs 800

±60 度扫描测试:

D:\anaconda\envs\langchain-env\python.exe .\competition_pinas.py --sweep -60 -30 0 30 60 --epochs 800 --output-dir outputs_competition_full_scan

10% 阵元失效测试:

D:\anaconda\envs\langchain-env\python.exe .\competition_pinas.py --theta0 30 --fault-rate 0.10 --epochs 800 --output-dir outputs_competition_full_fault10

输出目录中重点查看:

  • competition_summary.csv:指标汇总
  • competition_theta_*.png:和波束/差波束方向图
  • competition_theta_*_patterns.csv:方向图数据
  • competition_theta_*_weights.csv:阵元幅相权值

路线三:会议纪要新增的参考表 + PINN 路线

1. 生成理想数据参考表

小规模、宽限制可行性分析:

D:\anaconda\envs\langchain-env\python.exe .\generate_reference_table.py --sizes=8,16 --theta-list="-45,-30,-15,0,15,30,45" --fault-rates=0,0.05 --output=reference_data/reference_table_small.csv

面向比赛规模的参考表:

D:\anaconda\envs\langchain-env\python.exe .\generate_reference_table.py --sizes=8,16,32 --theta-list="-60,-45,-30,-15,0,15,30,45,60" --fault-rates=0,0.05,0.10 --output=reference_data/reference_table.csv

参考表每条数据包含:

  • 阵列规模:rowscolselements
  • 扫描角:theta0_degphi0_deg
  • 窗函数/加权方式:taper
  • 阵元失效率:fault_rate
  • 和波束指标:主瓣指向误差、目标角增益、副瓣电平
  • 差波束指标:目标角零深、差波束副瓣
  • 自适应零陷角度和零陷深度
  • reference_score:用于选择更好起点的综合评分

2. 参考表预训练 + 物理损失微调

小规模、宽限制先验证网络完整性:

D:\anaconda\envs\langchain-env\python.exe .\train_reference_pinn.py --reference reference_data/reference_table_small.csv --rows 8 --cols 8 --sweep -30 0 30 --pretrain-epochs 120 --epochs 240 --output-dir outputs_reference_pinn_small

扩展到 16x16:

D:\anaconda\envs\langchain-env\python.exe .\train_reference_pinn.py --reference reference_data/reference_table_small.csv --rows 16 --cols 16 --sweep -30 0 30 --pretrain-epochs 160 --epochs 300 --output-dir outputs_reference_pinn_16x16

扩展到 32x32:

D:\anaconda\envs\langchain-env\python.exe .\train_reference_pinn.py --reference reference_data/reference_table.csv --rows 32 --cols 32 --theta0 30 --sum-sll-db -35 --diff-null-db -30 --diff-sll-db -20 --null-depth-db -35 --sum-guard-deg 12 --diff-guard-deg 18 --pretrain-epochs 200 --epochs 600 --output-dir outputs_reference_pinn_32x32

当前思路对应会议纪要

  • “生成少量理想数据用于构建参考表”:由 generate_reference_table.py 完成。
  • “每条数据包含阵列数目、扫描角、副瓣等指标”:参考表 CSV 已包含这些字段。
  • “联合阵列因子公式与参考表构建神经网络”:由 train_reference_pinn.py 完成,先学习参考表,再通过可微阵列因子计算物理损失。
  • “网络不盲目迭代,更快获得可行结果”:网络先预测更合适的窗函数/加权起点,再输出残差修正。
  • “优先追求网络完整性”:默认命令采用 8x8、16x16、小规模宽限制。
  • “必要时牺牲指标要求以换取完成度”:小规模默认指标为较宽限制,确认流程完整后再逐步收紧到比赛指标。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages