欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 测量测试> 一种电路检测方法、装置及设备独创技术26503字

一种电路检测方法、装置及设备

2021-03-14 18:33:32

一种电路检测方法、装置及设备

  技术领域

  本申请涉及电路技术领域,具体而言,涉及一种电路检测方法、装置及设备。

  背景技术

  电路实验是许多学科教学过程中不可或缺的重要环节,随着计算机技术的发展,越来越多的仿真实验系统被应用到电路实验的教学中,现有的电路实验仿真系统通常以元器件为核心,分析元器件的串并联情况,然后计算各个元器件的电流、电压、电阻等电学参数,由于不同元器件内部通路的数量也不同,因此需要针对每个元器件设计不同的处理逻辑,前期开发工作量大,并且系统在分析元器件的串并联情况时,需要遍历每一条电学路径中的每一个元器件,分析过程复杂,运行效率低,在分析复杂电路时容易出错。

  发明内容

  本申请实施例的目的在于提供一种电路检测方法、装置及设备,用以实现对电路中不同元器件的检测,减轻了开发新元器件的工作量,有效提高了系统运行效率。

  本申请实施例第一方面提供了一种电路检测方法,包括:获取电路中所有实体的属性信息和节点数据集,以及所述节点数据集中每个节点的邻接信息,所述实体包括电源;根据所述邻接信息,对所述节点数据集进行等势点划分,得到多个等势点数组;根据所述属性信息,确定所述等势点数组间的电阻信息;根据所述电阻信息和所述电源的属性信息,计算每个所述实体的电势差信息;根据所述电势差信息,分配所述实体的电学参数。

  于一实施例中,所述根据所述邻接信息,对所述节点进行等势划分,得到多个等势点数组,包括:根据所述邻接信息,确定电流通路;根据所述电流通路,对所述节点数据集进行筛选,得到有效节点数据集;对所述有效节点数据集进行等势点划分,得到多个等势点数组。

  于一实施例中,所述根据所述邻接信息,确定电流通路,包括:获取所述电源的正极节点,加入主栈;根据所述邻接信息,获取所述正极节点的邻接节点,加入辅栈;判断所述辅栈的栈顶元素是否为空集;当所述辅栈的栈顶元素不是空集时,从所述辅栈的栈顶元素中删除第一节点,并将所述第一节点加入所述主栈;根据所述邻接信息,获取所述第一节点的邻接节点,与所述主栈的元素去重后加入所述辅栈;判断对应于所述第一节点的第一实体内部是否连通;当对应于所述第一节点的所述第一实体内部不连通时,判断所述主栈的栈顶元素是否为所述电源的负极节点;当所述主栈的栈顶元素是所述电源的负极节点时,确定所述主栈的元素为一条电流通路。

  于一实施例中,所述根据所述邻接信息,确定电流通路,还包括:当对应于所述第一节点的所述第一实体内部连通时,获取对应于所述第一实体的第二节点,将所述第二节点加入所述主栈;根据所述邻接信息,获取所述第二节点的邻接节点,与所述主栈的元素去重后加入所述辅栈。

  于一实施例中,所述根据所述邻接信息,确定电流通路,还包括:当所述辅栈的栈顶元素为空时,删除所述主栈的栈顶元素和所述辅栈的栈顶元素;转至所述判断所述主栈的栈顶元素是否为所述电源的负极节点的步骤。

  于一实施例中,在所述确定所述主栈的元素为一条电流通路之后,还包括:在所述确定所述主栈的元素为一条电流通路之后,还包括:删除所述主栈的栈顶元素和所述辅栈的栈顶元素;判断所述主栈是否为空栈;当所述主栈不为空栈时,转至所述判断所述辅栈的栈顶元素是否非空的步骤。

  于一实施例中,所述对所述有效节点数据集进行等势点划分,得到多个等势点数组,包括:从所述有效节点数据集中选取一个所述节点作为第三节点;根据所述邻接信息,从所述有效节点数据集中获取第四节点,所述第四节点与所述第三节点之间无电阻;根据所述第三节点和所述第四节点,生成所述等势点数组;删除所述有效节点数据集中的所述第三节点和所述第四节点;判断所述有效节点数据集是否为空集;若所述有效节点数据集不为空集,则继续执行从所述有效节点数据集中选取一个所述节点作为第三节点,根据所述邻接信息,从所述有效节点数据集中获取第四节点,所述第四节点与所述第三节点之间无电阻,根据所述第三节点和所述第四节点,生成所述等势点数组,删除所述有效节点数据集中的所述第三节点和所述第四节点,直至所述有效节点数据集成为空集。

  于一实施例中,所述根据所述电阻信息和所述电源的属性信息,计算每个所述实体的电势差信息,包括:根据所述电阻信息,计算系数矩阵;根据所述系数矩阵,生成方程组;对所述方程组求解,根据所述电源的属性信息,得到每个所述实体的电势差信息。

  本申请实施例第二方面提供了一种电路检测装置,包括:获取模块,用于获取电路中所有实体的属性信息和节点数据集,以及所述节点数据集中每个节点的邻接信息,所述实体包括电源;划分模块,用于根据所述邻接信息,对所述节点数据集进行等势点划分,得到多个等势点数组;确定模块,用于根据所述属性信息,确定所述等势点数组间的电阻信息;计算模块,用于根据所述电阻信息和所述电源的属性信息,计算每个所述实体的电势差信息;分配模块,用于根据所述电势差信息,分配所述实体的电学参数。

  本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法。

  附图说明

  为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

  图1为本申请一实施例的电子设备的结构示意图;

  图2为本申请一实施例的电路检测方法的流程示意图;

  图3为本申请一实施例中步骤220的子步骤的流程示意图;

  图4为本申请一实施例中步骤220的子步骤的流程示意图;

  图5为本申请一实施例的滑动变阻器示意图;

  图6为本申请一实施例的电压表示意图;

  图7为本申请一实施例的电流表示意图;

  图8为本申请一实施例的元器件连线图;

  图9为本申请一实施例的电路检测装置的结构示意图。

  附图标记:

  100-电子设备,110-总线,120-处理器,130-存储器,500-电路检测装置,510-获取模块,520-划分模块,530-确定模块,540-计算模块,550-分配模块。

  具体实施方式

  下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

  在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,并不表示排列序号,也不能理解为指示或暗示相对重要性。

  请参看图1,其为本申请一实施例的电子设备100的结构示意图,包括至少一个处理器120和存储器130,图1中以一个处理器为例。处理器120和存储器130通过总线110连接,存储器130存储有可被至少一个处理器120执行的指令,指令被至少一个处理器120执行,以使至少一个处理器120执行如下述实施例中的电路检测方法。

  如图2所示,其为本申请一实施例的电路检测方法的流程示意图,该方法可由图1所示的电子设备100来执行,以实现电路实验仿真系统内各元器件的电学参数分配。该方法包括如下步骤:

  步骤210:获取电路中所有实体的属性信息和节点数据集,以及节点数据集中每个节点的邻接信息。

  在上述步骤中,电路中的实体包括但不限于电源、电阻、电压表、电流表、滑动变阻器等电学元器件,实体的属性信息包括但不限于元器件的电阻、额定功率等,元器件的一个接线柱为一个节点,若两个节点由导线之间连通,则这两个节点的关系为邻接,节点数据集中包括了每个实体的每个节点,每个节点的邻接信息包括了与该节点邻接的所有其他节点,于一实施例中,邻接信息可以存储为表格形式。

  于一实施例中,对于电压表、电流表、滑动变阻器等多接线柱的元器件,可以将其简化为多个二接线柱元器件的组合,例如滑动变阻器可以简化为两个二接线柱的电阻R1和电阻R2的组合,如图5所示,改变电阻R1和电阻R2的阻值相当于改变滑动变阻器的电阻。同理,电压表(如图6所示)和电流表(如图7所示)也可以简化两个电阻的组合。

  步骤220:根据邻接信息,对节点数据集进行等势点划分,得到多个等势点数组。

  在上述步骤中,可以根据邻接信息,确定从电源的正极节点到电源的负极节点的电流通路。根据电流通路,对节点数据集进行筛选,得到有效节点数据集,若一个节点出现在电流通路中,则说明该节点可能有电流经过,为有效节点,将该节点加入有效节点数据集,若一个节点在所有电流通路中均未出现,则说明该节点无电流经过,为无效节点。对有效节点数据集进行等势点划分,得到多个等势点数组。

  步骤230:根据属性信息,确定等势点数组间的电阻信息。

  在上述步骤中,选取电路中的一个实体,找到该实体的节点分别属于哪个等势点数组,则确定该实体的电阻值为上述等势点数组间的电阻信息,遍历电路中除电源以外的所有实体,确定等势点数组间的电阻信息。

  于一实施例中,假设电路中除电源E1以外包括实体L1、实体L2和实体L3,实体L1、实体L2、实体L3的属性信息均包括电阻值为1欧姆,电源E1包括节点E1-0和E1-1节点,实体L1包括节点L1-0和L1-1节点,实体L2包括节点L2-0和L2-1节点,实体L3包括节点L3-0和L3-1节点,步骤220中得到三个等势点数组,分别记为1号等势点[E1-1,L1-1],2号等势点[L1-0,L2-1,L3-1],3号等势点[L3-0,L2-0,E1-0],则对于实体L1,可以确定号等势点和2号等势点间的电阻信息为实体L1的电阻值1欧姆,可以记为(1,2,1)。对于实体L2,可以确定2号等势点和3号等势点间的电阻信息为实体L1的电阻值1欧姆,可以记为(2,3,1)。对于实体L3,可以确定2号等势点和3号等势点间的电阻信息为实体L3的电阻值1欧姆,可以记为(2,3,1)。

  步骤240:根据电阻信息和电源的属性信息,计算每个实体的电势差信息。

  在上述步骤中,可以根据电阻信息,计算系数矩阵,根据系数矩阵,生成方程组,对方程组求解,根据电源的属性信息,得到每个实体的电势差信息。

  于一实施例中,等势点数组的个数为N,则令系数矩阵A初始为N维零矩阵,将等势点数组间的电阻信息依次代入以下公式进行计算:

  

  其中,Aij表示系数矩阵中第i行第j列的元素,Rij表示i号等势点和j号等势点间的电阻值。然后令系数矩阵A最后一行除第一列以外的元素为0,最后一行第一列的元素为1。根据系数矩阵A,生成基尔霍夫第一定律方程组AX=B,其中N维单位列向量B=(b1,b2,…,bN)',令b1=1,除b1以外的元素为0,对该方程组求解得到N维向量X,结合电源的属性信息,即可得到每个实体的电势差信息。

  于一实施例中,电源的属性信息包括电动势为1.5V且无内阻,步骤230确定等势点数组间的电阻信息记为(1,2,1)、(2,3,1)、(2,3,1),则令将(1,2,1)代入公式(1)计算得将(2,3,1)代入公式(1)计算得将(2,3,1)代入公式(1)计算得令系数矩阵A最后一行除第一列以外的元素为0,最后一行第一列的元素为1,得到令B=(1,0,0)',生成方程组AX=B,结合电源电动势为1.5V,求解方程组得到X=(0,1,1.5)',表示1号等势点和2号等势点间的电势差为1,2号等势点和3号等势点间的电势差为0.5,1号等势点和3号等势点间的电势差为1.5,从而可以得到每个实体的电势差信息。

  步骤250:根据电势差信息,分配实体的电学参数。

  在上述步骤中,可以根据电势差信息,计算并分配每个实体的电学参数,电学参数包括但不限于电压、电流、功率等。

  如图3所示,其为本申请一实施例中步骤220的子步骤的流程示意图,步骤220:根据邻接信息,对节点数据集进行等势点划分,得到多个等势点数组,可以包括:

  步骤301:获取电源的正极节点,加入主栈。

  于一实施例中,为便于理解,后续实施例中将以图8所示的元器件连线图为例进行说明,图8中电源E1包括正极节点E1-1和负极节点E1-0,电源E1的电动势为1.5V,无内部电阻,电阻L1包括节点L1-0和节点L1-1,电阻L2包括节点L2-0和节点L2-1,电阻L3包括节点L3-0和节点L3-1,电阻L1、电阻L2、电阻L3均为1欧姆,获取电源E1的正极节点E1-1,加入主栈。

  步骤302:根据邻接信息,获取正极节点的邻接节点,加入辅栈。

  于一实施例中,获取E1-1的邻接节点L1-1,加入辅栈。

  步骤303:判断辅栈的栈顶元素是否为空集。

  在上述步骤中,栈顶元素是指最新加入栈中的节点集合,判断辅栈的栈顶元素是否为空集,若辅栈的栈顶元素不为空集,则执行步骤304,若辅栈的栈顶元素为空集,则执行步骤309。

  于一实施例中,此时辅栈的栈顶元素为L1-1,不为空集,则执行步骤304。

  步骤304:从辅栈的栈顶元素中删除第一节点,并将第一节点加入主栈。

  于一实施例中,从辅栈的栈顶元素中删除第一节点L1-1,并将第一节点L1-1加入主栈,此时主栈为[E1-1,L1-1],辅栈为[()]。

  步骤305:根据邻接信息,获取第一节点的邻接节点,与主栈的元素去重后加入辅栈。

  于一实施例中,根据邻接信息,获取第一节点L1-1的邻接节点E1-1,由于主栈中已经存在E1-1,故删除E1-1,将一个空集()压入辅栈,此时主栈为[E1-1,L1-1],辅栈为[(),()]。

  步骤306:判断对应于第一节点的第一实体内部是否连通。

  在上述步骤中,可以调用getNextNode算法,判断对应于第一节点的第一实体内部是否连通,若对应于第一节点的第一实体内部连通,则执行步骤307,若对应于第一节点的第一实体内部不连通,则执行步骤310。

  于一实施例中,对应于第一节点L1-1的第一实体L1内部连通,则执行步骤307。

  步骤307:获取对应于第一实体的第二节点,将第二节点加入主栈。

  在上述步骤中,获取对应于第一实体L1的第二节点L1-0,将第二节点L1-0加入主栈。

  步骤308:根据邻接信息,获取第二节点的邻接节点,与主栈的元素去重后加入辅栈。下一步执行步骤313。

  在上述步骤中,获取第二节点L1-0的邻接节点L3-1,L2-1,与主栈的元素去重后加入辅栈,此时主栈为[E1-1,L1-1,L1-0],辅栈为[(),(),L3-1L2-1]。

  步骤309:删除主栈的栈顶元素和辅栈的栈顶元素。

  步骤310:判断主栈的栈顶元素是否为电源的负极节点。

  在上述步骤中,判断主栈的栈顶元素是否为电源的负极节点,若主栈的栈顶元素是电源的负极节点,则执行步骤311,若主栈的栈顶元素不是电源的负极节点,则执行步骤313。

  于一实施例中,主栈的栈顶元素L1-0不是电源的负极节点,则执行步骤313。

  步骤311:确定主栈的元素为一条电流通路。

  步骤312:删除主栈的栈顶元素和辅栈的栈顶元素。

  步骤313:判断主栈是否为空栈。

  在上述步骤中,判断主栈是否为空栈,若主栈不是空栈,则执行步骤303,若主栈为空栈,则执行步骤314。

  于一实施例中,主栈为[E1-1,L1-1,L1-0],非空,则执行步骤303,辅栈为[(),(),L3-1L2-1],辅栈的栈顶元素为L3-1L2-1,不是空集,则执行步骤304,从辅栈的栈顶元素中删除第一节点L3-1,并将第一节点L3-1加入主栈,此时主栈为[E1-1,L1-1,L1-0,L3-1],辅栈为[(),(),L2-1]。获取第一节点L3-1的邻接节点L1-0,由于主栈中已经存在L1-0,故删除L1-0,将一个空集()压入辅栈,此时主栈为[E1-1,L1-1,L1-0,L3-1],辅栈为[(),(),L2-1,()]。对应于第一节点L3-1的第一实体L3内部连通,则获取对应于第一实体L3的第二节点L3-0,将第二节点L3-0加入主栈,获取第二节点L3-0的邻接节点E1-0,L2-0,与主栈的元素去重后加入辅栈,此时主栈为[E1-1,L1-1,L1-0,L3-1,L3-0],辅栈为[(),(),L2-1,(),E1-0L2-0],主栈的栈顶元素L3-0不是电源的负极节点,再次进入循环,依次执行步骤313、步骤303、步骤304、步骤305,得到主栈为[E1-1,L1-1,L1-0,L3-1,L3-0,E1-0],辅栈为[(),(),L2-1,(),L2-0,L2-0],此时对应于第一节点E1-0的第一实体E1内部不连通,主栈的栈顶元素E1-0为电源的负极节点,确定主栈的元素[E1-1,L1-1,L1-0,L3-1,L3-0,E1-0]为一条电流通路。以此类推,可以得到另一条电路通路[E1-1,L1-1,L1-0,L2-1,L2-0,E1-0]。

  步骤314:根据电流通路,对节点数据集进行筛选,得到有效节点数据集。

  在上述步骤中,根据电流通路,对节点数据集进行筛选,电流通路中出现的节点即为有效节点,在所有电流通路中均未出现的节点即为无效节点,根据有效节点得到有效节点数据集。

  步骤315:对有效节点数据集进行等势点划分,得到多个等势点数组。

  如图4所示,其为本申请一实施例中步骤220的子步骤的流程示意图,步骤220:根据邻接信息,对节点数据集进行等势点划分,得到多个等势点数组,可以包括:

  步骤401:根据邻接信息,确定电流通路。

  于一实施例中,根据邻接信息,得到电流通路[E1-1,L1-1,L1-0,L3-1,L3-0,E1-0]和[E1-1,L1-1,L1-0,L2-1,L2-0,E1-0]。

  步骤402:根据电流通路,对节点数据集进行筛选,得到有效节点数据集。

  于一实施例中,有效节点数据集为[E1-0,E1-1,L1-0,L1-1,L2-0,L2-1,L3-0,L3-1]。

  步骤403:从有效节点数据集中选取一个节点作为第三节点。

  于一实施例中,从有效节点数据集中选取一个节点E1-0作为第三节点。

  步骤404:根据邻接信息,从有效节点数据集中获取第四节点。

  在上述步骤中,第四节点与第三节点之间无电阻。

  于一实施例中,根据邻接信息,从有效节点数据集中获取第四节点L2-0,L3-0。

  步骤405:根据第三节点和第四节点,生成等势点数组。

  于一实施例中,根据第三节点E1-0和第四节点L2-0,L3-0,生成等势点数组为[E1-0,L2-0,L3-0]。

  步骤406:删除有效节点数据集中的第三节点和第四节点。

  于一实施例中,删除有效节点数据集中的第三节点E1-0和第四节点L2-0,L3-0,此时有效节点数据集为[E1-1,L1-0,L1-1,L2-1,L3-1]。

  步骤407:判断有效节点数据集是否为空集。

  在上述步骤中,判断有效节点数据集是否为空集,若判断有效节点数据集不为空集,则执行步骤403。

  于一实施例中,有效节点数据集不为空集,则继续依次执行步骤403至步骤407,从有效节点数据集中选取一个节点E1-1作为第三节,根据邻接信息,从有效节点数据集中获取第四节点L1-1,根据第三节点E1-1和第四节点L1-1,生成等势点数组为[E1-1,L1-1],删除有效节点数据集中的第三节点E1-1和第四节点L1-1,此时有效节点数据集为[L1-0,L2-1,L3-1],判断有效节点数据集是否为空集,以此类推,得到等势点数组[E1-0,L2-0,L3-0]、[E1-1,L1-1]和[L1-0,L2-1,L3-1]。

  如图9所示,其为本申请一实施例的电路检测装置500的结构示意图,该装置可应用于图1所示的电子设备100,包括:获取模块510、划分模块520、确定模块530、计算模块540和分配模块550。各个模块的原理关系如下:

  获取模块510,用于获取电路中所有实体的属性信息和节点数据集,以及所述节点数据集中每个节点的邻接信息,所述实体包括电源;

  划分模块520,用于根据所述邻接信息,对所述节点数据集进行等势点划分,得到多个等势点数组;

  确定模块530,用于根据所述属性信息,确定所述等势点数组间的电阻信息;

  计算模块540,用于根据所述电阻信息和所述电源的属性信息,计算每个所述实体的电势差信息;

  分配模块550,用于根据所述电势差信息,分配所述实体的电学参数。

  于一实施例中,所述划分模块520用于:根据所述邻接信息,确定电流通路;根据所述电流通路,对所述节点数据集进行筛选,得到有效节点数据集;对所述有效节点数据集进行等势点划分,得到多个等势点数组。

  于一实施例中,所述划分模块520具体用于:获取所述电源的正极节点,加入主栈;根据所述邻接信息,获取所述正极节点的邻接节点,加入辅栈;判断所述辅栈的栈顶元素是否为空集;当所述辅栈的栈顶元素不是空集时,从所述辅栈的栈顶元素中删除第一节点,并将所述第一节点加入所述主栈;根据所述邻接信息,获取所述第一节点的邻接节点,与所述主栈的元素去重后加入所述辅栈;判断对应于所述第一节点的第一实体内部是否连通;当对应于所述第一节点的所述第一实体内部不连通时,判断所述主栈的栈顶元素是否为所述电源的负极节点;当所述主栈的栈顶元素是所述电源的负极节点时,确定所述主栈的元素为一条电流通路。

  于一实施例中,所述划分模块520具体用于:当对应于所述第一节点的所述第一实体内部连通时,获取对应于所述第一实体的第二节点,将所述第二节点加入所述主栈;根据所述邻接信息,获取所述第二节点的邻接节点,与所述主栈的元素去重后加入所述辅栈。

  于一实施例中,所述划分模块520具体用于:当所述辅栈的栈顶元素为空时,删除所述主栈的栈顶元素和所述辅栈的栈顶元素;转至所述判断所述主栈的栈顶元素是否为所述电源的负极节点的步骤。

  于一实施例中,所述划分模块520具体用于:删除所述主栈的栈顶元素和所述辅栈的栈顶元素;判断所述主栈是否为空栈;当所述主栈不为空栈时,转至所述判断所述辅栈的栈顶元素是否非空的步骤。

  于一实施例中,所述划分模块520用于:从所述有效节点数据集中选取一个所述节点作为第三节点;根据所述邻接信息,从所述有效节点数据集中获取第四节点,所述第四节点与所述第三节点之间无电阻;根据所述第三节点和所述第四节点,生成所述等势点数组;删除所述有效节点数据集中的所述第三节点和所述第四节点;判断所述有效节点数据集是否为空集;若所述有效节点数据集不为空集,则继续执行从所述有效节点数据集中选取一个所述节点作为第三节点,根据所述邻接信息,从所述有效节点数据集中获取第四节点,所述第四节点与所述第三节点之间无电阻,根据所述第三节点和所述第四节点,生成所述等势点数组,删除所述有效节点数据集中的所述第三节点和所述第四节点,直至所述有效节点数据集成为空集。

  于一实施例中,所述计算模块540用于:根据所述电阻信息,计算系数矩阵;根据所述系数矩阵,生成方程组;对所述方程组求解,根据所述电源的属性信息,得到每个所述实体的电势差信息。

  上述电路检测装置500的详细描述,请参见上述实施例中相关方法步骤的描述。

  本发明实施例还提供了一种电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。

  以上仅为本申请的优选实施例而已,并不用于限制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

《一种电路检测方法、装置及设备.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)