[发明专利]一种变量循环/递归定义的自动识别方法在审
申请号: | 202210954124.8 | 申请日: | 2022-08-10 |
公开(公告)号: | CN115374558A | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 黄用华;梁子彦;庄未;骆泽众;萧洪亮;刘夫云;黄美发;钟永全 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | G06F30/17 | 分类号: | G06F30/17;G06F30/20;G06F111/10;G06F119/14 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 541004 广西壮族*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 变量 循环 递归 定义 自动识别 方法 | ||
本发明公开了一种变量循环/递归定义的自动识别方法,用于解决建模过程中因输出模型可能存在变量循环定义及递归定义,使后续重排序不能有效处理,从而导致模型递推计算无法持续进行的问题。本发明公开的算法基于机械化建模输出的脚本文件,通过计算机软硬件平台以自动识别批处理方式准确识别存在循环定义或递归定义的模型变量,其核心算法是,结合集合理论及符号计算原理,通过识别因变量与自变量之间的集合逻辑关系,可准确定位存在循环/递归定义的模型变量,并返回原始建模文档进行校正处理,其结果是模型变量可持续进行数值迭代计算。本发明有效解决因模型变量存在循环定义及递归定义使得后续模型递推计算无法持续进行的问题,利用自动识别批处理方式替代人工检测方式,本算法准确高效且实施简单明了,具有很强的工程意义。
技术领域
本发明涉及机械系统动力学建模技术领域,具体涉及一种变量循环/递归定义的自动识别方法。
背景技术
在传统的机械科学研究领域,动力学模型可以用来进行机械系统的特性仿真分析和实时运动控制;机械化动力学建模是一种建立机械系统动力学模型的有效方法。公开号为CN106383973A的发明专利公开了一种非完整约束系统的机械化力学建模方法,其主要思想是,在运动分析过程中采用正向建模的原理给出运动变量的蕴含关系,进一步采用逆序输出的方法建立系统的递推动力学模型。实践证明,专利CN106383973A建立的递推动力学模型可以有效地减少动力学模型常见的重复计算和冗余计算等缺陷,具有很高的计算效率。
然而,由于运动分析过程中需要人为的参与介入,该方法的输出模型可能存在变量循环定义(即两个或多个变量之间相互被引用定义,形成闭环定义)及递归定义(即单个变量使用其自身属性来为其下定义)的问题,二者都不能使后续重排序有效处理,致使模型递推计算无法持续进行,最终导致机械化动力学建模可靠性降低。
现有针对该问题的解决方案是,对输出模型代入数值计算,根据异常的中断提示,定位计算中断出错的位置,进一步借助人工筛选排查找出存在循环定义或递归定义的变量,最后返回原始建模文档对其进行校正。显然,该方案费时费力,缺少统一可行的自动批量识别对策,尤其是针对复杂的系统建模对象,由于需要采用人工反复试探检测,过程繁杂且效率低下,难以直接应用。
发明内容:
针对现有技术的不足,本发明提出一种变量循环/递归定义的自动识别方法,其目的是自动识别存在循环定义或递归定义的模型变量,并返回原始建模文档由技术人员对其进行处理,从而使模型变量能够持续进行数值迭代计算。
假设现有通过机械化建模方法输出了一个脚本文件作为系统递推动力学模型,并且模型中各变量可能存在循环定义或递归定义的问题,本发明基于该脚本文件对其内部变量进行自动识别。
本发明是通过以下技术方案实现的:
一种变量循环/递归定义的自动识别方法,如图1所示,包括具体步骤如下:
步骤1、导入建模输出的脚本文件,读取内部因式中的变量及表达式;
步骤2、初始化:设定有效变量序列,有效变量表达式序列,因变量集合SA,自变量集合SB,识别次数i;
步骤3、记有效变量序列的长度为N,并设置因变量集合SA的初始维度D等于1;
步骤4、识别次数i清零;
步骤5、在有效变量序列中,放回式不重复抽取D个变量元素置于因变量集合SA中;
步骤6、遍历因变量集合SA中各变量对应表达式,并将所有表达式中自变量的并集置于自变量集合SB中;
步骤7、符号计算:取fA=∑{集合SA各变量},fB=∑{集合SB各变量};
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210954124.8/2.html,转载请声明来源钻瓜专利网。