✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1天线结构图表示与变分图自编码器代理模型将任意天线结构转化为图模型图中节点代表金属贴片顶点或馈电点边代表导体边缘或介质边界。节点特征包括坐标和边界条件类型编码边特征为连接长度和边缘类型。基于此图表示构建一种变分图自编码器编码器为3层图同构网络读出层产生隐变量分布的均值和方差解码器通过内积解码器重建邻接矩阵并通过一个独立的多层感知机预测谐振频率或S参数。该VAE在5000个随机生成的天线结构样本上训练损失函数由重建似然项和KL散度项组成。训练后VAE不仅可以精准预测天线性能谐振频率预测误差1.8%还能通过隐空间插值产生新天线结构作为代理模型替代电磁仿真优化时代理模型单次评估仅需0.02秒相比HFSS仿真加速数千倍。此外隐空间显示出良好的平滑性相邻电位对应于相似电磁响应便于优化搜索。2贝叶斯优化与在线学习相结合的自动设计流程以设计目标如双频谐振为导向采用贝叶斯优化在VAE隐空间中搜索最优天线结构。采集函数采用期望改善并结合约束条件处理。每轮迭代贝叶斯优化建议一组隐变量解码为天线结构调用HFSS验证并将结果返回更新高斯过程代理模型。为减少真实仿真次数还引入在线学习策略在优化过程中持续用新数据对VAE进行微调使代理模型在搜索区域保持高精度。对于双频微带天线设计目标为2.4GHz和5.8GHz经过32次HFSS仿真迭代找到了满足双频谐振且回波损耗优于-15dB的结构。该天线被制作和测试实测结果与优化目标吻合验证了方法的准确性和高效性。整个优化耗时比直接全局搜索减少87%。3多端口天线与MIMO应用扩展将上述方法扩展至双端口MIMO天线设计图模型节点和边加入了端口激励信息。VAE输出扩展为S11、S21等多参数预测损失函数相应改进。贝叶斯优化目标设为同时满足两个频段的带宽和隔离度要求。优化得到一款工作在3.5GHz和4.9GHz的双频双端口天线隔离度优于20dB。通过HFSS验证性能达标。该设计方法展示了图卷积神经网络自编码器在天线优化领域的通用性和潜力大幅缩短了产品的设计周期。import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.nn import GINConv, global_add_pool # 变分图自编码器 class VGAE_Antenna(nn.Module): def __init__(self, input_dim, hidden64, latent16): super().__init__() # 编码器 gin1 GINConv(nn.Sequential(nn.Linear(input_dim, hidden), nn.ReLU(), nn.Linear(hidden, hidden))) gin2 GINConv(nn.Sequential(nn.Linear(hidden, hidden), nn.ReLU(), nn.Linear(hidden, hidden))) self.encoder nn.ModuleList([gin1, gin2]) self.mu_fc nn.Linear(hidden, latent) self.logvar_fc nn.Linear(hidden, latent) # 解码器 self.freq_dec nn.Sequential(nn.Linear(latent, 32), nn.ReLU(), nn.Linear(32, 1)) def encode(self, data): x, edge_index data.x, data.edge_index h self.encoder[0](x, edge_index) h self.encoder[1](h, edge_index) h global_add_pool(h, data.batch) return self.mu_fc(h), self.logvar_fc(h) def reparameterize(self, mu, logvar): std torch.exp(0.5*logvar) eps torch.randn_like(std) return mu eps*std def forward(self, data): mu, logvar self.encode(data) z self.reparameterize(mu, logvar) freq self.freq_dec(z) return freq, mu, logvar # 贝叶斯优化采集函数 def expected_improvement(mu, sigma, best_f, xi0.01): imp mu - best_f - xi Z imp / (sigma 1e-9) ei imp * torch.distributions.Normal(0,1).cdf(Z) sigma * torch.exp(torch.distributions.Normal(0,1).log_prob(Z)) return ei # 在线微调VAE简化 def online_finetune(vae, new_structs, new_perform): optimizer torch.optim.Adam(vae.parameters(), lr5e-4) for e in range(10): pred, mu, logvar vae(new_structs) loss F.mse_loss(pred, new_perform) 0.1 * torch.mean(-0.5 * torch.sum(1logvar - mu.pow(2) - logvar.exp(), dim1)) optimizer.zero_grad(); loss.backward(); optimizer.step() return vae # 示例使用 data torch.randn(5, 4) # 虚构 model VGAE_Antenna(input_dim4) print(隐变量维度:, model.encode(data)[0].shape)