本发明涉及自动测试领域,具体涉及一种射频开关拓扑网络自动构建方法。
背景技术:
1、开关系统是自动测试系统中信号传输与分配的中枢。借助开关系统的不同组态可以充分利用自动测试系统有限的测试资源,实现各种检测与激励信号的灵活路由。自动测试系统中可以经过开关系统切换的信号种类繁多包括:模拟信号、串行数字信号、离散信号、功率信号、射频信号、高速数字信号、其他信号(视频信号、流体信号、光信号等等),本发明主要针对射频链路展开开关拓扑研究。为避免开关通道间的分布电容及开关杂散电容增大,采用单刀多掷开关组成开关阵列。为了使用最少数目的开关达到同样的链路效果,本发明采用了一种启发式算法将开关数目、同时性约束等进行编码求解。
2、在自动测试系统中开关系统的基本拓扑结构分为3种:(1)通用开关。通用开关是最基本的开关结构,在组成开关系统的模块单元中,每一个开关相互独立,其中,单刀双掷开关和单刀单掷开关是通用开关最常见的形式。(2)树型开关。高频信号的测量多采用单线树型开关拓扑结构,树型结构开关同一时刻只能有一路信号导通。树形单刀多掷开关可以通过级联组成开关阵列,由于树型开路开关中开关数量减少,使得开关间并联杂散电容大大减小,所以适合高频信号的传输。(3)矩阵开关。它是一种最灵活的开关拓扑结构,可以通过矩阵开关将任意输入/输出端口相连。在测试应用中它的最小配置规模为输入通道数目与输出通道数目的乘积,所以它的成本最高。
3、本发明适用于高频信号的测试,所以选用树形单刀多掷开关级联构成开关阵列的形式作为开关网络的拓扑结构。
技术实现思路
1、针对现有电子产品调试开关路由技术生成的极度缺乏,本发明提供了一种基于启发式算法的高频电子产品调试开关路由的生成方法。为避免开关通道间的分布电容及开关杂散电容增大,开关网络采用单刀多掷开关组成。本发明具备低冗余度、经济性、配置灵活、快速构建等特点,可根据不同的连接关系输入和约束条件快速生成相应的开关网络,取代人工设计,巨幅缩短了设计时间,大大提升了生成开关拓扑的效率。
2、本发明的思路是,将车间调试系统划分为三个点集,依次运用随机的方式确定三个点集之间以及点集内部的连接关系,设计有效的种群更新算子,充分利用算法求解出有效解,并设计合适的适应度函数对种群进行选择迭代,最终获得最优个体,并将最优个体的拓扑连接关系进行可视化输出。因而本发明技术方案为一种射频开关拓扑网络自动构建方法,该方法包括:
3、步骤1:解析输入条件,将测试设备和测试节点分别以t={t1,t2...tm}和s={s1,s2...sm}表示,m表示测试设备和测试节点总个数;每一个测试点s对应一个待测设备,每一个测试点t对应一个测试设备,按照给定的连接关系以(s,t)的方式输入,并且将同级性约束和同时性约束以(s1,t1)|(s2,t2)的形式输入;同级性约束为:s1到t1经过的开关数目需要和s2到t2经过的开关数目相同;同时性约束为:s1到t1经过的开关不能与s2到t2经过的开关有重叠;
4、步骤2:初始化开关节点集k={k1,k2...ki...km},ki代表其中第i个开关节,点使用笛卡尔积全排列k集合生成s_k list,总共生成m^m种全排列结果;
5、步骤3:生成预定数目的染色体种群,染色体分为两段式编码,第一段为随机生成s到k的连接关系si_list,第二段ki_list为随机生成k到t的连接关系和k到k内部的连接关系;
6、步骤4:首先生成第一段编码,随机从之前生成的s_k list选出一个,依次编入键为si,值为ki的编码;
7、步骤5:生成第二段编码的第一部分,遍历t集合,为每个t节点随机选择一个节点k,将连接关系添加到ki_list中;
8、步骤6:生成第二段编码的第二部分,遍历开关节点集k,针对每个ki,建立valid_ki_list集合,valid_ki_list集合表示开关节点ki能到达的另一个开关节点集合,例如valid_ki_list的形式可以为valid_k1_list={k2,k3,k5},说明k1可以到达的开关节点有{k2,k3,k5},在点集k中搜索是否存在当前节点到ki的路径,若没有,则添加当前节点到valid_ki_list可选节点,并设置相应的权重weights,weights的计算方式为固定值减去当前开关节点ki在染色体中的列表长度,若当前节点的连接长度越长,则权重越小,长度越短,则被选择的权重就越大;若k中有节点与ki有连接,则跳过当前循环在k集合中对下一个节点进行选择;在遍历完k之后,针对所有可选节点进行基于权重的随机选择,选择个数范围为0至valid_ki_list列表的长度,并将选择后的结果添加到ki_list中,完成第二段编码;
9、步骤7:计算染色体适应度,每个染色体的适应度表示为:
10、fitness=1/(self_level+1)
11、染色体的self_level计算方式为先遍历检查是否存在所有开关轮空的情况,若存在,置self_level=9999,接下来进行同时性约束判断和同级性约束判断,若符合约束,则置self_level为连接路由中经过开关数的最大值,若不符合约束,则置self_level=9999;
12、步骤8:生成预定数量的种群,将种群中的个体按适应度降序排序,保留前a%染色体,重新生成后(100-a)%的个体,再迭代种群,直到达到预定的迭代次数;完成迭代后选出适应度最高的染色体记作hist_best,将当前开关数量,循环执行步骤2到步骤8,挑选出当前开关下的最优个体与hist_best作比较,保留最优解更新hist_best;遍历开关数目k,步长为-1,直到当前k<hist_best的开关数目k后退出循环,若不存在hist_best则输出nosolution表示无解;
13、步骤9:将得到的hist_best的拓扑关系通过调用python的networkx库函数进行可视化输出。
14、本方案使用两段式编码设计染色体结构,以染色体某一元素包含的节点长度为权重,巧妙的使随机生成的结果向开关层级最少靠拢(长度越长,被选择的权重越低),同时,使用dfs算法遍历求解目标路径,大大提升了程序效率,最后,将染色体适应度和开关数目结合在一起,使得迭代的结果向开关数目最少的方向逼近,完美的解决了以最小开关层级和最少开关数目的目标求解。
1.一种射频开关拓扑网络自动构建方法,该方法包括: