基于因子图协同定位辅助的单星定位方法
基于动态协同双向映射的相似执行路径生成方法

基于动态协同双向映射的相似执行路径生成方法郭曦;王盼【摘要】相似执行路径的生成是代码分析和检测的基础性工作之一,现有的方法通常以程序的行为序列或结构为分析对象,通过改变关键谓词的取值等方法来进行分析,但由于缺乏必要的引导信息导致生成的相似路径的有效性较低,另外由于路径的谓词集合较长而难以求解也降低了分析的精度。
提出基于动态协同双向映射的分析方法,通过对程序控制流图的表示形式进行扩展,结合后向符号分析的方法生成候选路径的最弱前置条件,并以此为引导信息使用编辑距离的方法通过改变距离因子的取值来生成有针对性的相似路径集合。
实验结果表明,与现有的方法相比,该方法的准确性和效率有明显的优势。
%Similar execution paths generation is one of the fundamental tasks in code analysis and detection .The current methods usually target to the program behavior or program structure ,and change the value of key predicates ,but these methods has a low effectiveness due to the lack of the necessary guidanceinformation ,Meanwhile ,the predicates set has a large size and usually hard to solve ,thus it will reduce the analyze precision as well .A technique of similar execution paths generation based on dynamic synergy bidirectional mapping is proposed in this paper .According to extend the shape of Control Flow Graph and use the backward symbolic analysis ,the weakest precondition of the candidate path is generated ,which can be used as the guidance information to generate pointed similar execution paths set according to the edit distance via changing the distancefactor .The experimental results show that this method has the advantageof precision and anti-inference .【期刊名称】《电子学报》【年(卷),期】2014(000)011【总页数】6页(P2168-2173)【关键词】静态分析;控制流图;最弱前置条件;相似执行路径【作者】郭曦;王盼【作者单位】华中农业大学信息学院计算机科学系,湖北武汉 430070;武汉电力职业技术学院,湖北武汉 430079; 武汉大学电气工程学院,湖北武汉 430072【正文语种】中文【中图分类】TP3111 引言为了保证软件开发的质量,软件测试作为必要的阶段约占软件开发和维护成本的60%左右,其中程序调试是最耗时、代价最为昂贵的任务之一.程序执行路径分析是调试过程中的发掘程序行为特征的重要方法,该过程需要理解程序的功能、结构、语义以及执行路径的特点,故高效地分析程序执行路径并构建程序的行为特征对于提高软件产品的安全性具有重要意义.程序分析中的一个重要问题是路径可行性判定问题[1],即通过使用符号执行[2]和约束求解等分析方法生成初始变量的取值范围,使得程序能够沿着指定的路径执行,同时对于不能验证的属性,通过生成反例的方法来判断是否存在对应的执行路径.由于这些分析工具通常使用抽象的分析方法生成反例程序,故源代码的抽象程度会对反例生成的效果产生直接的影响.最弱前置条件[3]能够分析程序的执行语义并建模,是一种后向符号分析方法,能够减小抽象操作对分析精度造成的影响.但由于大规模程序的路径约束条件的解空间与程序分支呈指数关系,容易产生状态空间爆炸的问题,从而对程序性质的分析带来干扰.上述问题导致程序路径分析过程中容易产生不可达或者冗余的路径,同时最弱前置条件在计算过程中需要对循环变量进行计算,对程序可能陷入死循环的状态的情况进行预处理.目前的路径生成方法由于缺乏必要的路径引导信息,导致生成较多无效或者冗余的路径集合,故需要对路径条件和检测点之间关联关系进行深入研究.本文针对以上问题,以程序路径的可满足性为研究对象,提出动态协同双向映射的路径生成方法,具体的过程是:首先以程序的控制流图中的循环结构为分析对象,对循环体中的节点设置相互正交的标签变量以区分执行路径在循环提中的节点序列,使得每条执行路径都具有惟一的路径编码;然后在距离因子k的作用下,计算指定节点的最弱前置条件,不断回溯到控制流图的起始节点,在该过程中通过对路径编码在标签变量的作用下进行逆运算,以还原执行路径在循环结构中的节点执行序列,最后通过符号执行工具在最弱前置条件的作用下生成与目标执行路径的编辑距离不超过k的路径集合.该方法可有效减少在符号执行分析过程中由于缺乏路径引导信息而导致的死循环问题,可更加高效地生成有针对性的路径集合.2 相关工作程序执行路径的生成与程序输入有紧密的联系,对于程序P及P中的一条执行路径l,设P的输入空间为S,路径生成问题为:对于程序输入i∈S,i对应的测试用例t在P中所生成的执行路径.程序执行路径的生成可以转化为测试数据的问题,由于通过人工的方式构建测试数据的效率较低,目前测试数据生成已经进入自动化时代.其中主要有基于动态的方法和基于静态方法[4],动态的方法需要通过输入数据使目标程序能够实际运行,故该方法生成的测试数据是确定的,主要有线性式分析法[5],该方法将判断语句转化为布尔型的赋值语句,由于该方法在求解非线性的路径约束条件过程中可能会产生局部极值,故存在不完备性.文献[6]采用动态数据流分析的方法来定位分支条件对应的谓词变量,该方法虽然对于线性路径约束条件具有完备性,但是该方法每次只能分析一个分支谓词变量,故需要频繁地进行迭代操作.文献[7]采用松弛迭代法分析输入和谓词函数之间的依赖关系,通过求解建立的输入变量线性方程组而产生输入数据,由于方法采用线性函数来逼近非线性函数,故当谓词中存在非线性函数时,需要进行多次迭代以产生新的输入数据.文献[8]采用进化的分析方法对搜索空间进行缩减以生成路径覆盖的测试数据,但是对于路径的选择仍然采用人工的分析方式.静态分析方法对路径谓词约束进行求解,从而获得输入数据生成问题的全部解.符号执行是最常用的静态分析方法,它通过将符号引入到程序的输入中来建立约束系统,但是符号执行的方法对于循环变量、数组下表等结构不能准确地进行分析,同时由于符号执行在分析过程中需要对复杂的代数进行运算以缩减状态空间,这些都限制了其使用范围.文献[9]通过最弱前置条件引导符号执行的方法来对程序所具有的性质进行验证,但未对产生最弱前置条件进行约简.文献[10]通过最弱前置条件的方法来检测并定位程序中的错误语句,其分析过程与本文方法中的距离因子k=0情况类似,由于循环结构的执行次数可以通过改变k的取值来调整,故具有更好适应性.对程序中循环结构的分析是本文方法中需要着重研究的内容.循环结构的分析即程序的终止性判定问题,它从可计算性的角度可归结为停机问题,从而是不可判定的,故不存在一个通用的算法能够检测一个给定的程序中是否存在停机现象.目前的研究工作主要集中在程序的终止性和非终止性分析两个方面.对于终止性分析,常用的方法有循环不变式和Ranking函数的方法,包括线性阶和多项式阶函数[11,12],文献[13]提出了抽象精化的方法来分析程序的终止性.对于非终止性分析,文献[14]提出了一种死循环检测方法,但是该方法不能处理诸如嵌套循环等复杂控制结构的程序.文献[15]提出基于lasso(由前缀和环组成)的方法来分析程序的非终止性,但是该方法需要枚举出程序中的lasso,同时文中也指出lasso不能检测出所有的循环结构.3 控制流图中循环结构的预处理定义1 控制流图(Control Flow Graph,CFG).控制流图是由基本块(Basic Block)和边组成的有向图,每一个基本块被抽象成控制流图中的一个节点.控制流图采用形式化的方法可以表示为<N,E,s,f>.其中N是CFG中节点的集合,E⊆N×N 是基本块之间边的集合,若程序的执行路径中的节点序列中存在节点Bi到Bj间的流向,则存在一条边 e=(Bi,Bj)∈E,bin和 bout分别表示控制流图的入口基本块和出口基本块.本文所讨论的控制流图具有单一入口和单一出口,对于其它类型的控制流图,可以添加额外的节点以转化为具有单一入口和单一出口节点的控制流图.定义2 CFG路径的可行性.对于节点序列s=<n1,n2,…,nk>,其中(ni,ni+1)∈E(1≤i≤k),k=|s|为序列的长度,若ni=s,nk=f,则该序列是一条完整的执行路径.称路径l是可行的,当且仅当存在程序的一组输入,使得程序能够沿着指定的节点序列s执行,表示为N×N→{T,F}的计算过程,否则称l是不可行的路径.定义3 路径条件(Path Condition,PC).在控制流图中只可能在分支结构和循环结构的条件判定语句处通过调整谓词的取值产生不同的路径,路径条件是由程序中的分支结构或循环结构对应的约束条件构成的一阶逻辑公式,即分支结构在控制流迭代过程中产生的数据流值.在CFG中,出了入口节点外,其它节点均有入边,即存在从其它节点指向该节点的边.对于循环结构的入口节点,由于存在多条入边,即在满足循环条件的基础上循环体会不断执行从而产生新的路径集合.若CFG中某个节点存在多条入边的时候,则表明程序中存在循环结构或者分支结构.本文方法在分析过程中需要对程序中的循环结构进行处理,用以获取循环体中节点的执行顺序和次数.当检测到CFG中存在环结构的时候,即程序中有循环体,对于循环体中的每一个节点,同时设置特定的码片向量,同时对每条入边设定不同的标签变量,这样获取的执行路径在循环体中节点的连接序列可以保证不同的循环次数对应于不同的路径编码(执行路径在循环体中尾节点处的值),即可以利用不同的路径编码来区分不同的执行路径.循环体中不同节点的码片向量必须设定为互不相同,且相互正交.本文的方法需要通过回溯以获取程序执行序列对应的输入集合,故在回溯过程中通过路径编码和码片向量进行逆运算以区分节点的不同入边,从而还原程序的执行过程.设循环体中某一节点的码片向量为S(-1,-1,-1,1,1,-1,1,1),另一节点的码片向量为T(-1,-1,1,-1,1,1,1,-1).由于S和T是相互正交的两个向量,故其规格化内积为0:同时对每条入边以二进制的方式设定标签变量,这样当执行序列从一个节点经过另一个节点的时候,采用如下方式进行编码:标签变量中的数据比特依次和该节点码片向量进行乘积操作,当编码位为1的时候直接将该码片向量传递给下一个执行路径中的节点;当编码位为0的时候,传递的是该码片向量的反码;当执行序列不经过某一条边时,则不传送任何向量.同时,码片向量与自身的规格化内积为1,而与自身反码的规格化内积为-1,这种性质可以为路径的回溯操作提供依据.当进行回溯操作的时候,通过路径编码和节点的码片向量进行规格化内积操作,即通过计算CFG图中边的标签变量还原出程序的执行路径.在CFG图中使用节点序列表示程序执行的路径,通过以上方法建立起路径编码和执行路径之间的对应关系,可以区分节点的不同入边和不同的出边.同时由于回溯是从CFG的出口基本块开始,故可以通过入边来区分执行路径,且通过一次回溯就可以还原出程序的执行路径.在控制流图中使用带回边的节点集合表示循环结构的执行路径,这些节点构成了一个环结构.图1表示了一个带循环结构的控制流图片段,其中原始的CFG结构如图1(a)所示,图1(b)为消除了循环结构的控制流图,记为CFG∞.该方法使得程序的每条执行路径都有惟一的节点序列与之对应,即拥有惟一的路径编码.在实际分析过程中,由于循环的终止性是不可判定的,即在实验过程中程序的执行次数是有限的,即控制流图可以表示为CFGn,显然CFGn中的节点集合是CFG∞的子集.以下给出CFG节点的码片向量和边的标签变量插入算法.算法1:CFG节点的码片向量和边的标签变量插入算法Input:CFG,loop Output:CFG with chip vector and label variables label variable of loopentry←0;foreach node n in loop do m←number of entry edges ofn;n←chipVector;if m>1 then i←0;foreach InEdge ie of n do label variableof ie←i;i++;endfor endif endfor CFG with chip vector and label variables由于本文的方法需要对循环体进行抽象操作,同时获取程序的执行路径,故对循环结构的分析精度会对相似执行路径的生成产生直接的影响.循环分析主要有线性循环分析和非线性循环分析,由于线性循环分析已有较多的研究,故本文主要针对非线性循环的执行条件进行分析.4 相似路径的生成定义4 最弱前置条件(Weakest Precondition,WP).对于程序中的一条语句,若从入口基本块bin到该语句是路径可行的,且该语句执行后满足结果断言(即后置条件),最弱前置条件是保证这些条件发生的最小前提条件.WP由一组谓词公式组成:WP(S,R),其中S为CFG中语句集合,R是S执行后的结果断言集合.算法2为CFG中各节点对应的最弱前置条件的生成过程.对于CFG中指定节点对应的语句s及其后置条件φpost,通过该算法可以获得该节点的符号状态的集合ST,并对结果进行合并和约简操作.算法2 最弱前置条件生成算法.Input:CFG,φpost Output:weakest precondition 1 varF:{Formula}←Statement;2 var List:pair of(Stateme nt,Formula);3 ∀s∈Statement,F(s)←;4 List← {(ExitNode,φpost)};5 while List≠do;6 (s',φpost)←select from List;7 while(s,s')∈E of CFG do;8φpre←merge(F(s),simplify(WP(s,φpost)));9 if φpre≠false then 10 F(s)← F(s)∪ φpre;11 List←List∪(s,φpre);12 endif 13 end while 14 endwhile 15 return F(EntryNode)最弱前置条件在计算过程中的两个主要的规则表示如下:WP(x=e,Q)=Q[e/x];WP(if(c)s1else s2,Q)=(c→WP(s1,Q))∧(┓c→WP(s2,Q));由于最弱前置条件具有析取性质,故可以实现诸如 WP(s,φ1∨φ2)=WP(s,φ1)∨WP(s,φ2)的约简操作,它是状态集合中被选取的条件的析取范式.为了量化程序执行路径之间的相似程度,本文使用计算路径之间编辑距离(edit distance)的方法来生成与目标路径近邻的执行路径集合,同时引入因子k调整路径编辑距离的值.对于程序Prog所有的可行路径集合Paths,设目标执行路径为l,则与l的编辑距离不超过k的路径集合L表示如下,显然L⊂Paths,其中函数D用来计算编辑距离.对于CFG中节点的路径条件的集合,它是由待分析语句s,语句s处的路径条件pc,程序可行路径path和距离因子k通过笛卡尔乘积经SMT求解器计算得出:对CFG图最弱前置条件操作后,通过自底向上的回溯过程得到包含入口基本块的路径集合L,对于此过程所得到的最弱前置条件集合WP,它是各条回溯路径所得到最弱前置条件的析取:由于距离因子k的取值可以控制相似路径的生成,过小的k取值因生成的路径数量较少,生成的近邻路径也较少,通过回溯所得到的输入域较实际有效的输入域有较大的局限性;若不断增加k的取值,可以生成更多的执行路径,但此时的路径条件集合和最弱前置条件集合也相应地增大,从而对约束求解器的性能提出较高的要求,故需要在路径的规模和分析的精度之间进行权衡.在距离因子k的影响下,最弱前置条件的计算如下所示:5 实验与分析本文采用符号执行和近邻最弱前置条件相结合的分析方法来生成相似执行路径,通过为CFG中循环结构中的节点加入相互正交的标签变量方式为每一条执行路径构建具有惟一的路径编码作为该路径的标识,通过分析本文方法在处理循环结构和相似路径生成的效率来进行实验,实验的整体分析流程如图2所示.我们以WALA作为实验分析平台,并使用其提供的T.J.Watson Libraries进行程序的过程内分析.在前端(Front End)的功能主要是进行代码的预处理,通过修改GCC语法扫描器中的parse.y文件中的语义动作,通过对源文件的扫描生成对应的抽象语法树(AST),并对AST的结构进行划分以获取程序的基本块,然后构建程序的调用图与控制流图,在前端还需对程序中的循环结构进行检测和分析,通过循环展开的方法为后端生成检测路径提供必要的信息.后端(Rear End)的主要功能是使用本文的方法对程序进行最弱前置条件分析,并使用符号执行的方法在距离因子的作用下生成待验证的路径集合,通过分析路径的可满足性来检验所产生的路径的可行性.在后端分析过程中使用CVC3工具对路径谓词集合进行计算和精化,保留可求解的路径谓词集合.本文使用的符号执行工具是Java PathFinder,它以CVC3工具生成的路径谓词集合为前置条件引导程序在CFG中沿着指定的路径执行以生成有针对性的路径集合.本文的基准测试程序来自DaCapo[16]和常见的开源JAVA程序,其中包含有大量的循环语句,故可以较好地满足本文方法的所需要的分析条件.执行路径的生成主要通过遍历CFG的方法生成待检测路径的集合,在此过程中需对循环次数进行分析.虽然可以对程序的循环终止性进行分析,但是在实际的分析过程中往往需要指定循环次数以预防因内存资源耗尽而导致的异常现象,我们可通过调整距离因子k的取值来间接控制循环的次数.由于本文的方法是对传统最弱前置条件分析方法的近似,故距离因子k的取值对路径的生成有直接影响,即k的取值越大,可生成的执行路径也越多,同时时空开销也相应地增长.在相似路径生成方面,传统的符号执行分析方法由于缺少必要的路径引导信息,从而需遍历整个程序状态空间,这种粗粒度的分析方法往往造成很大的开销,且生成大量不可满足的路径,导致路径可行性的分析精度相对较低.最弱前置条件作为后向符号分析方法从CFG图中待分析的节点出发,结合后置条件与本文方法中生成的路径编码进行回溯操作,生成CFG中各节点的最弱前置条件.这样符号执行工具在路径生成过程中由于有各节点的最弱前置条件作为引导信息,可高效地生成与目标路径相近邻的可行路径集合.在实验过程中,主要分析的是本文方法在生成相似执行路径时的效率,考察指标为加入距离因子后生成可行路径的效率,主要从循环结构断点数目与k值之间的关系,以及可行路径生成的数量的两个方面展开讨论. 现有的循环结构处理方法一般通过设置循环的上限,然后使用循环展开的方式来进行分析,但是对于循环次数相对较多的情形,由于没有中断处理过程,可能出现路径编码的值溢出的情况,同时一条执行路径可能包含大量重复的路径片段,故在实验过程中我们引入断点机制,用以检测路径片段与执行路径编码的对应关系.当编码值出现溢出的情况,则使用新设置的一组相互正交的标量变量继续进行路径编码,同时在路径的回溯过程中,应从当前出现溢出的节点开始回溯分析,一直到上一个出现溢出的节点;若不存在这样的上一个溢出节点,则将入口基本块作为回溯的终点.在实验过程中,我们通过距离因子k设定循环执行次数,同时与之对应的执行路径为迭代路径.距离因子k和断点数量之间的对应关系如图3所示,它表示在某一k值情况下具有最多迭代路径的断点个数.实验过程中,k的取值一般不超过20,同时由于迭代路径的数量和k的取值呈指数关系,若k值继续增加可能导致分析的开销过大而出现资源不足的情况.另外需要注意的是,最弱前置条件在分析过程中路径谓词的数量会随着k值的增大而增多,从而使分析的效果趋于仅使用符号执行工具的效果.图4表示生成可行的相似路径数量的对比实验.我们采用符号执行工具Java PathFinder生成执行路径,实验对象为Java PathFinder加入本文方法后生成可行路径与仅使用Java PathFinder所生成的路径数量.对于每一个测试基准程序,仅使用Java PathFinder所生成的可行路径占所生成的所有路径的百分比用黑色的柱状图表示;加入Java PathFinder后所对应的百分比使用灰色的柱状图表示;不可行的路径百分比用带斜线的柱状图.采用本文的方法后,由于Java PathFinder在生成可行路径的时候,由于在分支结构和循环结构中有距离因子以及最弱前置条件的引导,可以生成更有针对性的相似路径集合,提高分析的精度与效率.6 结论及将来工作本文针对符号执行在分析过程中由于缺乏路径引导信息而生成大量无效路径的问题提出一种相似路径生成方法,首先对程序控制流图的表示形式进行改进,通过对CFG中循环体中节点设置相互正交的标签编码,同时使用循环展开的方法消除CFG中的循环结构,从而不同的执行路径具有不同的路径编码,这样最弱前置条件在分析过程中可以依据路径编码来还原程序的执行路径.符号执行工具依据最弱前置条件所生成的引导信息可以生成相似的执行路径.实验分析表明本文的方法可以高效地针对指定的执行路径生成与之近邻的可行路径集合,在程序调试、程序分析过程中有重要的应用价值.将来的工作可从以下两个方面展开:(1)由于本文的方法还不能够处理递归程序,故对于因函数调用而在调用图中出现的环,需分析针对环结构所生成的路径的可行性,从而可以分析函数递归调用而导致的死循环;(2)对于并行程序中的循环结构,由于需要对并行执行线程之间所有的循环条件组合进行分析,如何对本文的方法进行扩展从而支持具有此类结构的程序是下一步需要研究的内容.参考文献【相关文献】[1]张健.精确的程序静态分析[J].计算机学报,2008,31(9):1549-1553.Zhang Jian.Sharp static analysis of programs[J].Chinese Journal of Computers,2008,31(9):1549 -1553.(in Chinese)[2]King J.Symbolic execution and program testing[J].Communications of the ACM,1976,19(7):385 -394.[3] Dijstra E.A discipline of programming[R].Englewood Cliffs:Prentice Hall,1976. [4]单锦辉,王戟,齐治昌.面向路径的测试数据自动生成方法述评[J].电子学报,2004,32(1):109 -113.J HShan,J Wang,Z C Qi.Survey on path-wise automatic generation of test data[J],Acta Electronica Sinica,2004,32(1):109 -113.(in Chinese)[5] Miller W,Spooner D L.Automatic generation of floating point test data[J].IEEE Trans on Software Engineering,1976,2(3):223 -226.[6]Korel B.Automated software test data generation[J].IEEE Trans on Software Engineering,1990,16(8):870 -879.。
基于因子图的协同定位与误差估计算法

FANShiwei,ZHANG Ya,HAO Qiang,JIANGPan,YU Fei
(犛犮犺狅狅犾狅犳犐狀狊狋狉狌犿犲狀狋犛犮犻犲狀犮犲犪狀犱 犈狀犵犻狀犲犲狉犻狀பைடு நூலகம்,犎犪狉犫犻狀犐狀狊狋犻狋狌狋犲狅犳 犜犲犮犺狀狅犾狅犵狔,犎犪狉犫犻狀150001,犆犺犻狀犪)
犃犫狊狋狉犪犮狋:Aimingatthedatafusionproblem ofthefollowerautonomousunderwatervehicle(AUV)inthe cooperativepositioningsystemofmultipleAUVs,themathematicalmodelofthecooperativepositioningsystem isestablishedfirstly.Secondly,theinfluenceofvelocityerrorandheadingerroronthepositioningerrorofthe followerAUVisanalyzed,andthefactorgraph modelofthecooperativepositioninganderrorestimationis designed.Then,acooperativepositioninganderrorestimationalgorithmbasedonGaussiannoiseisproposed. Themeanvalueandvariancearetransferredamongthenodesofthefactorgraphtoestimatethepositionand velocityerrorandheadingerrorofthefollowerAUV.Inordertoverifytheeffectivenessofthealgorithm,the simulationexperimentandofflinedataofrealshipexperimentareusedtoverifythecooperativepositioningand errorestimationalgorithm.Theresultsshowthattheproposedalgorithmcanreducethepositioningerrorofthe follower AUV effectively,especiallyintheautonomouspositioning ofthefollower AUV,improvingthe navigationandpositioningabilityofthefollowerAUVgreatly.
人群跳跃荷载时变协同性因子研究

第 37 卷第 1 期2024 年1 月振 动 工 程 学 报Journal of Vibration EngineeringVol. 37 No. 1Jan. 2024人群跳跃荷载时变协同性因子研究于秉仟1,陈隽1,2,李洋1(1.同济大学土木工程学院,上海 200092; 2.同济大学土木工程防灾国家重点实验室,上海 200092)摘要: 协同性因子是跳跃人群中各单人间动作一致程度的度量指标,是人致结构振动分析中人群跳跃荷载建模的关键参数。
现有协同性因子大都是定义在较长时段内的均值参数,其计算依据也是实验室条件下才能获取的地反力或特征点轨迹等,不能准确反映跳跃者个体差异的时变特性,也难以直接应用于实际场景下结构的振动监测。
对此,提出了人群跳跃荷载的时变协同性因子,采用计算机视觉中的多目标跟踪技术对跳跃人群进行实时监测,并计算协同性因子。
开展了佩戴无线测力鞋垫的多人跳跃实验,通过与实验结果的对比,验证了时变协同性因子的合理性以及多目标跟踪技术的有效性,可用于工程结构的安全运维、人致结构振动分析和人群跳跃时变荷载的模拟。
关键词: 人群跳跃荷载;时变协同性因子;多目标跟踪;智能运维中图分类号: TU312+.1 文献标志码: A 文章编号: 1004-4523(2024)01-0011-09DOI:10.16385/ki.issn.1004-4523.2024.01.0021 概述随着材料科学的不断创新和工程结构设计、施工技术的持续进步,工程结构向轻质化、大跨化发展,大跨楼盖、悬臂看台、连廊等结构呈现出频率低、质量轻和阻尼小等特征,容易因人致动力荷载(步行、跳跃等)而产生振动,引发结构振动的适用性甚至安全性问题[1]。
例如,2015年4月,中国台北“小巨蛋”体育馆的一场演唱会,歌迷随着音乐跳动导致附近民宅振动,引起居民投诉[2];2018年11月,南京奥体中心的一场演唱会在4首歌曲后,因结构振动显著而被紧急叫停[3]。
基于二维单基线的单星高精度无源定位算法

基于二维单基线的单星高精度无源定位算法郑仕力;董乔忠;王笃祥【摘要】Due to the large equipment and the complex structure of multi‐baseline interferometers ,a new high precision passive location by single satellite observer based on particle kinematics is proposed .In view of the unambiguous specialty of the phase rate‐of‐changing and the high precision in direction of the long baseline phase differences ,the ambiguous phase difference and the changing rate of phase difference are used in this al‐gorithm .The particle swarm optimiz ation algorithm is improved to accomplish the high precision passive lo‐calization .The simulation results show that this method can attain the CRLB .%针对长短基线干涉仪定位系统设备量大、系统复杂的问题,提出了基于运动学原理的单星高精度无源定位技术。
以模糊相位差和相位差变化率为观测量,并采用三通道二维单基线阵列构型,充分利用长基线相位差定位精度高的特点,并结合相位差变化率的无模糊特性,通过粒子群改进算法实现高精度的定位。
仿真结果表明,该算法定位精度高,定位性能接近CRLB。
基于因子图的状态估计方法

基于因子图的状态估计方法
刘虎成;程咏梅
【期刊名称】《舰船电子对抗》
【年(卷),期】2018(041)003
【摘要】针对异步、乱序和多状态相关量测下的状态估计问题,结合因子图模型的数据表示方法,给出了一种基于因子图的状态估计方法,详细推导了动态系统的因子图模型建模方法、状态求解过程.
【总页数】6页(P64-68,73)
【作者】刘虎成;程咏梅
【作者单位】中国电子科技集团公司第二十研究所,陕西西安710129;西北工业大学,陕西西安710129
【正文语种】中文
【中图分类】TN911.2
【相关文献】
1.基于因子图的不一致记录对消歧方法 [J], 徐耀丽; 李战怀; 陈群; 王艳艳; 樊峰峰
2.基于因子图的无人机集群分布式协同导航方法 [J], 陈明星;熊智;刘建业;王融;熊骏
3.基于IMU/ODO预积分的多传感器即插即用因子图融合方法 [J], 白师宇;赖际舟;吕品;岑益挺;王炳清;黄凯
4.基于因子图结合卡方检测的多AUV协同定位方法 [J], 涂豫;李国胜;覃羡烘
5.基于随机信标的因子图同时定位构图方法 [J], 王凯;宁云晖;邓福建;翟国威;刘猛
因版权原因,仅展示原文概要,查看原文内容请购买。
基于EKF的星地协同测向时差定位算法

I G I T C W导航 天地GNSS World12DIGITCW2024.040 引言无源定位是辐射源信息获取中重要的一方面[1-3]。
常用的定位方法适用于不同的平台数量,但通常平台样式较为单一,容易受到影响,目前缺乏有效的跨平台协同定位方法。
地球同步轨道(GEO )卫星与地球相对静止,对地观测范围大,能够全天时、全天候工作,具有较强的信号接收能力,并能够对信号进行透明转发。
将其与常规机动平台相结合,能够对辐射源进行高效定位。
本文在测向时差定位算法基础上[4-6],利用GEO 卫星和机动平台相互配合,提出星地协同测向时差定位算法。
传统双星或三星平台定位中需要主邻星波束同时覆盖目标,该算法避免了寻找匹配邻星的问题,且无需高程辅助信息就能对目标进行三维定位[7-10]。
1 算法原理1.1 定位模型星地协同测向时差定位系统由一个侦收主站和一个GEO 卫星构成。
一方面,主站可测得辐射源到主站的方位角和俯仰角;另一方面,主站分别接收辐射源直达信号和经卫星透明转发的信号,并计算得到时间差,由此可计算出距离差。
从几何意义上说,求解空间目标位置的过程即是求解3个曲面(由确定的射平面、由确定的圆锥面以及由确定的双曲面)交点的过程。
假设主站、G E O 卫星的空间位置分别为:、,目标的空间位置为。
目标到主站和GEO 卫星的基线长度分别为(),GEO 卫星到主站的距离为。
几何关系如图1所示。
根据以上观测量,可以得到一个三元二次方程组:1)基于EKF的星地协同测向时差定位算法王 哲(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)摘要:针对无源定位协同化需求,文章提出一种利用到达角、到达时间差的星地协同定位方法,分别研究其定位原理,建立数学定位模型,给出解算方法以及定位精度的表达式,推导基于测向时差参数的扩展卡尔曼滤波(EKF)算法。
仿真结果表明该方法能够达到较高的定位精度;此外,该定位模型仅需单星,避免了传统星载平台定位需要寻找匹配邻星的问题,与机动平台配合,可对辐射源进行快速高效定位,具备一定的工程应用价值。
Plus深读53BP1核体加强了复制不完全的DNA的复制时间,以抑制可遗传的DNA损伤

Plus深读53BP1核体加强了复制不完全的DNA的复制时间,以抑制可遗传的DNA损伤DNA复制不完全是基因组加倍过程中的随机副作用,几乎存在于每个细胞周期中。
有丝分裂时,复制不完全的DNA(UR-DNA)转化为DNA损伤,由子细胞遗传并隔离在53BP1核体(53BP1-NBs)中。
哥本哈根大学的学者们近日在Nature Cell biology上发表文章(/10.1038/s41556-019-0293-6),证明53BP1核体通过调整复制时间和修复路径,能使遗传性UR-DNA完成基因组复制,并防止随机的复制不完全现象转化为基因组不稳定因素。
该研究阐释了新的遏制和修复基因组损伤的方式。
基因组复制的正确性是癌症倾向的决定性因素。
DNA复制的精准性是通过专门的途径来维持的,如纠正核苷酸的错误融合,修复受损的DNA模板,消除复制分叉前进的障碍,恢复表观遗传记忆等。
通过激活与延迟细胞周期偶联的休眠起点,可以在给定的S期促进复制完成。
尽管如此,相当一部分UR-DNA从有丝分裂DNA合成(MiDAS)途径逃逸。
DNA的后续溶解使得染色体得以隔离,但可能损害受影响基因座的完整性。
这种DNA损伤由子细胞遗传,在53BP1核体中被隔离。
53BP1核体的形成与新生子细胞的细胞周期撤回之间存在关联。
细胞周期检查点受损的细胞对53BP1核体形成的回应是在G1期出现短暂延迟,使得UR-DNA类损伤得以重新进入下一个S期。
因此,一个悬而未决的重要问题是,在通过G2/S转换后,含有UR-DNA的细胞是否注定会发生基因组不稳定,或者它们是否有“第二次机会”完成易损基因座的复制,从而阻止染色体不稳定的扩增。
而该研究表明,这样的第二次机会确实存在,该机会存在于53BP1核体固有的能力中,53BP1核体调节遗传的UR-DNA在基因座的复制时间。
该研究主要结果有:1 53BP1核体的溶解与S期后期的DNA复制偶联。
尽管部分转化和非转化细胞在53BP1核体存在的情况下进入S期,但嵌入的UR-DNA的命运未知(图1a)。
基于多层特征嵌入的单目标跟踪算法

基于多层特征嵌入的单目标跟踪算法1. 内容描述基于多层特征嵌入的单目标跟踪算法是一种在计算机视觉领域中广泛应用的跟踪技术。
该算法的核心思想是通过多层特征嵌入来提取目标物体的特征表示,并利用这些特征表示进行目标跟踪。
该算法首先通过预处理步骤对输入图像进行降维和增强,然后将降维后的图像输入到神经网络中,得到不同层次的特征图。
通过对这些特征图进行池化操作,得到一个低维度的特征向量。
将这个特征向量输入到跟踪器中,以实现对目标物体的实时跟踪。
为了提高单目标跟踪算法的性能,本研究提出了一种基于多层特征嵌入的方法。
该方法首先引入了一个自适应的学习率策略,使得神经网络能够根据当前训练状态自动调整学习率。
通过引入注意力机制,使得神经网络能够更加关注重要的特征信息。
为了进一步提高跟踪器的鲁棒性,本研究还采用了一种多目标融合的方法,将多个跟踪器的结果进行加权融合,从而得到更加准确的目标位置估计。
通过实验验证,本研究提出的方法在多种数据集上均取得了显著的性能提升,证明了其在单目标跟踪领域的有效性和可行性。
1.1 研究背景随着计算机视觉和深度学习技术的快速发展,目标跟踪在许多领域(如安防、智能监控、自动驾驶等)中发挥着越来越重要的作用。
单目标跟踪(MOT)算法是一种广泛应用于视频分析领域的技术,它能够实时跟踪视频序列中的单个目标物体,并将其位置信息与相邻帧进行比较,以估计目标的运动轨迹。
传统的单目标跟踪算法在处理复杂场景、遮挡、运动模糊等问题时表现出较差的鲁棒性。
为了解决这些问题,研究者们提出了许多改进的单目标跟踪算法,如基于卡尔曼滤波的目标跟踪、基于扩展卡尔曼滤波的目标跟踪以及基于深度学习的目标跟踪等。
这些方法在一定程度上提高了单目标跟踪的性能,但仍然存在一些局限性,如对多目标跟踪的支持不足、对非平稳运动的适应性差等。
开发一种既能有效跟踪单个目标物体,又能应对多种挑战的单目标跟踪算法具有重要的理论和实际意义。
1.2 研究目的本研究旨在设计一种基于多层特征嵌入的单目标跟踪算法,以提高目标跟踪的准确性和鲁棒性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第39卷第5期 2017年5月系统工程与电子技术System s E ng in e e ring and E le ctro n icsV o l. 39 N o. 5M a y 2017文章编号:l〇〇l-5〇6X(2017)05-1085-〇6网址:www. sys-ele. com 基于因子图协同定位辅助的单星定位方法唐成凯\张玲玲2,廉保旺1(1.西北工业大学电子信息学院,陕西西安710072; 2.西北工业大学航海学院,陕西西安710072)摘要:在诸如行星探测,战争损毁等导航星座拒止环境下,单星定位系统可以快速部署为目标提供定位支持,但单星定位系统较大的定轨误差导致定位误差较大。
针对上述问题,提出了一种基于因子图协同定位辅助的单星定位方法。
首先,通过多组卫星不同时刻的伪距差值构建定位双曲面为定位目标提供连续定位并减小卫星和接收机钟差的影响;其次,利用多个定位目标之间的高精度测距信息建立协作因子图,并利用该协作因子图辅助单星定位系统的定位结果,从而提高定位精度。
将所提出的单星定位方法与现有的多普勒单星定位方法和径向加速度单星定位方法从卫星定轨误差、测距误差和定位误差3方面进行对比。
仿真结果表明,所提出方法的定位误差仅为其他两种方法的1%〜10%。
关键词:单星定位;协同定位;因子图;伪距差值中图分类号:TTN 967. 2 文献标志码:A D O I:10. 3969/j. issn. 1001-506X. 2017. 05. 21Cooperation factor map of co-location aided singlesatellite navigation algorithmTANG Chengkai1 ,ZHANG Lingling2,LIAN Baowang1(1. School o f Electronics and In form ation , NorChzvesCern PolyCechnical University ^X i,an 710072 , China',2. School o f Marine Science and T e ch n o lo g y,NorlJrwesLern PolyLechnical U n iversity,X i’an 710072,China)Abstract:W h e n th e s a te llite n a v ig a tio n syste m is in area d enial due to th e s a te llite is dam aged in w a r o r the p la n e ta ry e x p lo ra tio n w ith o u t th e s a te llite n a v ig a tio n s y s te m, th e single s a te llite n a v ig a tio n system can be q u ic kly deployed to p ro vid e p o s itio n in g s u p p o rt fo r the ta rg e t. H o w e v e r th e la rg e o rb it e rro r o f th e sin g le s a te llite n a v ig a tio n syste m leads to la rg e p o s itio n in g e rro r. In o rd e r to solve th is pro b le m, a cooperation fa cto r map o f colocation aided single s a te llite n a v ig a tio n a lg o rith m is proposed. T h e a lg o rith m u tiliz e s the pseudo range d iffe rences b e tw e en the d iffe re n t s a te llite pseudo ranges in d iffe re n t tim e to c o n s tru c t tw o p o s itio n in g h y p e rb o lic planes and com bines th e a ltitu d e o f th e ta rg e t to achieve ta rg e t c o n tin u o u s p o sitio n. T h e pseudo range d iffe rences can solve th e c lo ck e rro r o f s a te llite and receiver. T h e n, th e a lg o rith m u tiliz e s th e h ig h p re cisio n distance in fo rm a tio n be tw e en m u ltip le ta rg e ts to e s ta b lis h th e co o p era tio n fa c to r m ap and u tiliz e s i t to revise the p o s itio n o f ta rg e ts. T h e proposed a lg o rith m is com pared w ith th e e x is tin g D o p p le r aided sin g le s a te llite n a v ig a tio n a lg or ith m and the ra d ia l acce le ra tio n sin g le s a te llite n a v ig a tio n a lg o rith m fro m th re e aspects o f s a te llite o rb it d e te rm in a tio n e rro r, ra n g in g e rro r and p o s itio n in g e rro r. T h e s im u la tio n re s u lts sh o w th a t th e p o s itio n e rro r o f the proposed a lg o rith m is a b o u t 1 %〜10%o f the o th e r sin g le s a te llite n a v ig a tio n a lg o rith m s.Keywords:single s a te llite n a v ig a tio n;c o-lo c a tio n;fa c to r m a p;pseudo range d iffe re n ce〇引言在小行星探测或者战争状态下,诸如北斗、全球定位系统等卫星星座导航系统由于成本问题并未建立或已经被敌方所击毁[1]。
在这种卫星导航星座拒止环境下,单星定位系统可以快速发射并部署为定位目标提供定位服务[2]。
单星定位系统由于定轨精度较低,所以定位误差较大。
此 外,为了尽可能增大定位服务时间,单星定位系统采用大椭圆轨道,轨道远点部分为定位目标提供定位服务,在轨 道近点部分,导航卫星快速通过非服务区。
但这种工作方式会进一步放大定位误差[3]。
文献[4]提出一种基于卫星发射信号测频的单星定位方法,该方法利用卫星发射信号收稿日期:2016 -05- 10;修回日期:2016-11-14;网络优先出版日期:2016 - 12 - 06…网络优先出版地址:http: //www. cnki. net/kcms/detail/11. 2422. TN. 20161206. 1524. 032. html 基金项目:国家自然科学基金(61501430)资助课题•1086 •系统工程与电子技术第39卷的测频信息构建多个定位辐射面实现单星定位,但当辐射面增大时,定位误差会快速增长。
文献[5]提出一种基于测频测距单星定位方法,该方法在测频基础上增加测距信息构建多个定位曲线实现单星定位,但和文献[4]方法相同,随着定位曲线的距离增长,定位误差呈现指数性增长。
文献[6]提出了一种基于多普勒频移的单星定位方法,该方法利用多普勒频移构建定位双曲面实现单星定位,这需要定位卫星具有较高的移动速度,当卫星移动速度较小时,定位误差较大。
文献[7]提出一种基于测相测角的单星定位方法,该方法利用卫星轨道和定位目标之间的测量角度构建多个定位锥面从而完成定位,但这对测角的精度要求非常高。
文献[8]提出了一种基于径向加速度的单星定位方法,通过对定位目标构建动态模型并通过动态模型的径向加速度完成单星定位,但该方法对动态模型的精确性要求较高,当动态模型的精确性较差时,定位误差较大。
针对上述问题,本文提出了一种基于因子图协同定位辅助 的单星定位方法,该方法首先利用两组不同时刻的伪距差 值构建定位双曲面实现定位目标的单星连续定位,然后利 用同一个单星定位系统覆盖下的具有较短距离的定位目标 构建定位目标群,通过定位目标群中各定位目标之间高精 度的测距信息来修正各自的单星定位结果,从而减小定位 误差,提高定位精度。
1基于伪距差值的单星定位模型针对现有测距、测向和测角等单星定位方法的弊病[9_11],本文采用基于伪距差值的单星定位方法为所有的定位目标 提供连续定位。
基于伪距差值的单星定位方法利用卫星两个不同时刻下卫星和定位目标之间伪距的差值来代替卫 星和定位目标之间的伪距构建一个以卫星两个不同时刻坐 标为圆心的定位双曲面。
每个定位目标通过两个定位双曲 面和自身高度信息所构建的定位球面得到单星定位坐标。
由于本文所提出的单星定位方法的导航卫星和所有的定位 目标之间具有唯一性,所以利用两个不同时间间隔导航卫 星到定位目标之间的伪距差值代替现有的伪距值,和基于 伪距值的单星定位方法相比,基于伪距差值的单星定位方 法可以有效消除卫星钟差,定位目标接收机钟差以及电离 层散射等固态误差的影响,从而提高了定位精度。
并且伪 距差值的方法可以选用具有较长时间间隔的伪距得到伪距 差值以减小双曲面定位几何误差对定位精度的影响。
各个 协作定位目标利用自身的单星定位坐标和各协作定位目标 之间的测距信息,通过因子图协作定位来减小卫星轨道误 差、卫星速度误差等共有误差的影响,从而提高定位精度,其系统原理图如图1所示。