首页/文章/ 详情

藏在 Ansys Motion里的排错神器:Debug Mode 保姆级教学

1月前浏览568
本期介绍ansys motion里面的debug mode使用方法
Ansys Motion求解器的Debug Mode (调试模式)可让求解器输出辅助信息,用于定位步长缩减等问题的根本原因。输出内容包含方程、构件,以及动态分析过程中阻碍求解器收敛的范数值最大的实体。启用调试模式Debug Mode 后,可在分析过程中监控收敛性较差的构件或实体,便于基于这些信息对模型进行调整。求解器会生成与结果文件同名的 .dbg 文件(如下图所示),并将调试信息写入该文件。

一.如何启用 Debug Mode?

默认条件下,软件并没有开启debug mode,所以如果要打开debug mode调试模式,需要按照下面的流程开启。

1.在motion安装路径下,找到并打开rundfs.bat文件,如下图所示:

2.在 rundfs文本中添加启动参数 -dbglv 1,如下图所示:
NOTE:
你可以通过设置调试级别数值,控制调试信息的输出详细程度。级别为 0 时,Debug Mode 关闭;级别越高,写入 .dbg 文件的信息越丰富,但信息采集耗时越长,文件体积也越大:
  1. 仅在 Newton-Raphson 迭代失败或积分失败时输出详细调试信息,每类方程最多输出 3 条。
  2. 仅在 Newton-Raphson 迭代失败或积分失败时输出详细调试信息,每类方程最多输出 15 条,每次失败均输出警告提示。
  3. 每一次迭代都输出详细调试信息,每次迭代均输出警告提示。

二.debug 信息

在每个分析步的起始阶段,求解器会输出以下信息:
Time:当前分析时间。
STEPSIZE:当前步长大小。
NRES:残差计算的累计次数。
NJAC:Jacobian 矩阵计算的累计次数。
NSTEP:累计分析步数。该值随求解器收敛、进入下一分析步而递增。
NFAIL:Newton-Raphson 失败的累计次数。当本次迭代得到的未知变量范数接近或大于上一轮迭代的范数时,该值递增;发生 Newton-Raphson 失败时,求解器会自动减小步长。
IFAIL:积分失败的累计次数。当单步迭代次数超出最大允许值时,该值递增;发生积分失败时,求解器会自动减小步长。
RFAIL:残差失败的累计次数。当发生 Newton-Raphson 失败或积分失败,且残差范数超出参考阈值时,该值递增。
IPCG:PCG 求解器的累计迭代次数。
在 Newton-Raphson 迭代过程中,求解器会输出以下信息:
Count:当前分析步的迭代序号。该值持续递增,直到求解收敛、发生 Newton-Raphson 失败或积分失败。
NR_STATE:
  • CONTINUE:求解器未收敛,将进入下一次迭代。
  • FAIL:发生 Newton-Raphson 失败或积分失败,求解器将缩减步长。
  • SUCCEED:求解器已收敛,将进入下一分析步。
JACOBIAN:本轮是否执行了 Jacobian 矩阵计算。
CT_SEARCH:本轮是否执行了接触搜索。
DELTA_NORM:未知变量的范数。数值越大,代表构件位置等未知量的收敛程度越低;该值应随迭代推进逐步减小。当该值小于 Newton-Raphson 收敛误差容限时,求解器判定解已收敛并进入下一分析步。为优化求解效果与收敛性,求解器可能不严格遵循此规则。
RES_NORM:运动方程残差的范数。数值越大,代表力等残差的收敛程度越低;该值应随迭代推进逐步减小。当启用「Newton-Raphson 残差误差容差系数」选项时,若运动方程残差范数小于「Newton-Raphson 收敛误差容限 × 残差误差容差系数」,且 DELTA_NORM 小于收敛误差容限,求解器判定解已收敛并进入下一分析步。判定收敛时,求解器会对残差范数做内部缩放,因此输出数值可能与上述收敛判据不完全对应。为优化求解效果与收敛性,求解器可能不严格遵循此规则。
MAX_DELTA:未知变量范数值最大的构件或方程,输出内容包含范数值、构件 / 方程类型、ID 和名称。
MAX_RES:残差范数值最大的构件或方程,输出内容包含范数值、构件 / 方程类型、ID 和名称。

三.详细 Debug 信息

详细调试信息会输出一份列表,包含未知变量范数超出「Newton-Raphson 残差误差容差系数」阈值的所有构件和方程。收敛性最差的构件或实体会排在列表顶部,便于参考调整模型。若某条目的范数标记为 [R] 而非 [D],表示该条目未知变量的范数已满足收敛判据,但残差范数未达标。
每个构件或方程的关联实体会以子列表形式输出;根据调试级别不同,每类实体最多输出 3 条、15 条或全部条目,同时显示每个实体的残差范数。
  • 调试级别为 1 或 2 时,仅在 Newton-Raphson 失败或积分失败时输出详细调试信息。
  • 调试级别为 3 时,每一次迭代都会输出详细调试信息。
注意:
  • 调试级别设为 3 时,.dbg 文件体积可能大幅增长。
  • 若未启用「Newton-Raphson 残差误差容差系数」选项,标记为 [R] 的条目不会影响 Newton-Raphson 迭代的成败判定。
  • 默认子列表不包含 FE 节点和 FE 单元信息。若要在子列表中包含 FE 单元,需为 rundfs 追加参数 -dbgprteleminfo 1;若要包含 FE 节点,需追加参数 -dbgprtndinfo 1。

来源:Ansys Motion学习营
STEPSUGSimulink多体动力学机器人控制ANSYSANSYS Motion
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-07-21
最近编辑:1月前
kenny
研究生 详情请关注"Ansys Motion学习营"
获赞 51粉丝 103文章 49课程 0
点赞
收藏
作者推荐

案例:利用Ansys Motion进行机械臂轨迹规划,逆动力学建模方法介绍

当我们为机械臂规划好一条运动轨迹后,驱动各个关节的电机究竟需要输出多大的扭矩?这个问题,是实现机械臂高性能运动控制的核心。逆向动力学建模,就是通过已知的运动状态(位置、速度、加速度),反向求解出所需关节力矩的过程。今天,我们就来深入探讨如何利用AnsysMotion这一多体动力学利器,高效精准地完成这一任务。1.什么是逆动力学?核心概念:逆动力学是“从果推因”的过程。在机器人学中,这个“果”是机械臂末端的期望运动轨迹(包括位置、速度、加速度),而这个“因”则是驱动机械臂各关节运动所需的力矩或力。一个生动的比喻:如果把机械臂的控制比作驾驶汽车。正运动学:我知道方向盘打了多少,油门踩了多深(输入),我能计算出车子会走出一条什么样的轨迹(输出)。逆运动学:我知道我要走一条特定的S形弯道(轨迹),我需要反算出在每个时刻方向盘应该转多少度(关节角度)。逆动力学:在逆运动学的基础上,我还要考虑车的重量、速度变化、地面摩擦,从而计算出我到底需要使多大的劲来转动方向盘,踩多深的油门和刹车(关节力矩)。逆动力学是运动控制的“力量之源”。为什么它至关重要?实现精确模型预测控制:提前计算所需力矩,实现前馈控制,大幅提升跟踪精度和动态响应。机械结构优化与选型:基于峰值力矩和连续力矩,为电机、减速器等关键部件的选型提供数据支撑。能耗评估与热管理:计算功耗,优化能效,设计散热方案。验证轨迹可行性:判断规划的轨迹是否超出电机扭矩极限,避免失控。2.逆动力学的原理与方法其物理基础是牛顿-欧拉方程或拉格朗日方程,通过建立系统的动力学模型来实现。牛顿-欧拉法:思想:从机械臂的末端或基座开始,通过力/力矩的递推,计算每个连杆的受力情况。过程:通常分为两步:特点:计算效率高,常用于实时控制。向外递推:从基座到末端,根据关节加速度计算各连杆的线加速度和角加速度。向内递推:从末端到基座,根据连杆的惯性力和外力,计算各关节所需的驱动力矩。拉格朗日法:思想:基于系统的能量(动能和势能)来建立动力学方程。通过拉格朗日函数对广义坐标和时间的微分,直接得到系统的动力学方程。特点:推导过程系统化,方程形式规范,但计算量可能较大。手动推导的挑战:对于复杂的多自由度机械臂,手动推导动力学方程极其繁琐且容易出错。这正是我们引入AnsysMotion这类专业软件的原因——它能够自动完成这些复杂的计算。3.轨迹规划的分类与方法轨迹规划是逆动力学分析的前提,它为逆动力学提供了清晰的“输入”。按空间分类:关节空间轨迹规划:直接在机械臂的关节角度空间中进行规划。方法简单,计算量小,不会发生奇异,但末端执行器的路径不确定。笛卡尔空间轨迹规划:在末端执行器的操作空间(三维空间)中进行规划。可以精确控制末端的路径,但需要实时进行逆运动学解算,可能遇到奇异性问题。常见的轨迹规划方法:梯形速度曲线:运动过程分为匀加速、匀速、匀减速三个阶段。轨迹简单,但加速度不连续,可能引起冲击。S型速度曲线:在梯形曲线的基础上,对加速度也进行了平滑处理,使得加加速度(Jerk)连续。运动更加平滑,能有效减少振动和磨损,是现代高性能运动控制的标配。点到点规划:多项式插值:使用三次、五次或更高次的多项式函数来连接路径点。通过设定边界条件(如起点的位置/速度,终点的位置/速度等),可以生成非常平滑的轨迹。五次多项式可以同时约束位置、速度和加速度。样条曲线:当路径点较多时,使用样条曲线(如B样条、NURBS)可以生成一条通过所有路径点且高阶连续的光滑轨迹,非常适合复杂的轨迹任务。分割线------3.AnsysMotion机械臂轨迹规划与逆向动力学建模流程好了,前面部分简单介绍了相关机器人轨迹规划,正,逆向动力学的基础概率,这些大家在网上都可以找到更详细的介绍,这里就不多赘述。下面以6轴机器人为例,介绍如何在WBmotion前处理界面中实现机器人末端轨迹规划和逆动力学建模的方法。3.1几何模型建立与导入这里要做轨迹规划,和得到关节驱动数据后的正向动力学分析,在正向求解,这里我分别用STEP函数和LININT插值函数来定义驱动,所以一共拉了三个project。模型里面包括机器人模型,工作台,被搬运的物体,以及这里定义机器臂末端轨迹路径的三个虚拟球;3.2轨迹规划动力学建模定义机器人连接关系,工作台与移动体接触,三个虚拟球和地面固定等这里特别说明,我们通过在机械臂末端与虚拟球直接定义bushingforce来实现机械臂末端快速移动到第每个虚拟球位置,然后在机械臂直接各旋转关节处定义bushingforce并仅设置阻尼值,来控制机械臂达到每个虚拟球的状态。这里三个虚拟球路径点,所以我们要分别求解三次,来获得机械臂末端到达路径点时,机械臂各关节的角度值,完成连接设置之后,我们需要在求解之前定义各关节角度测量函数,以便在后处理直接提取机械臂关节角度值随时间变化的曲线图。如下图所示完成求解后,可以打开motionpost,读取机械臂各关节的角度曲线图;机械臂末端到第一个虚拟球过程中,各关节角度曲线图机械臂末端到第二个虚拟球过程中,各关节角度曲线图机械臂末端到第三个虚拟球过程中,各关节角度曲线图接下来,记录机械臂末端分别在三个虚拟球时候角度值,如下图所示4.机械臂正动力学分析上一步通过三个虚拟球定义的机械臂末端轨迹,分别得到对应状态下机械臂各关节角度值,现在,可以新建分析,将这些角度值通过函数表达式作为驱动赋予给对应的关节进行驱动。这里,我仅介绍通过LININT插值函数的形式来进行分析设置,创建6个spline,分别用来定义各关节角度时程数据然后,定义对应的LININT函数表达式和jointload,加载到对应的关节。这里机械爪部分接触和运动副常规设置的细节忽略,大家自行设置即可。来源:AnsysMotion学习营

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈