关于Adams驱动函数单位与符号d的问题

关于Adams驱动函数单位与符号d的问题

笔者在做Adams与Matlab联合仿真过程中,设置驱动函数发现与理想的情况不符合。通过上网查资料、问前辈,前后花费了近一个月的时间仍然没有解决问题┗( T﹏T )┛太迷惑了。
最后通过与同学讨论与自己的实验找到了一点规律,希望对有同样的问题的同学有些帮助。
同时,由于实验不充分,许多问题没有得到充分的验证,希望大家以怀疑与纠错的态度阅览本文,若其中有不正确的地方,望多多批评指正。

驱动函数单位与d的联系

  • 对于滑动关节,数值参数后均不加d
  • 转动关节,数值参数后不加d ,理解数值参数单位为弧度;数值参数后加d ,理解数值参数单位为角度。

虽然在软件中设置了默认角度单位值(一般机械设计行业默认MMKS,角度单位为度),但是在转动关节中若数值后不加符号d,默认为弧度。

例如,设置一个幅值为90度,周期为10s的驱动函数,有以下可能情况,但仅方法1满足要求:

# 方法1 (正解)
step (MOD( time , 10 ),0,0d,5,90d) + step (MOD( time , 10 ),5,90d,10,0d) -90d
# 方法2 (所有角度数值均理解为弧度单位)
step (MOD( time , 10 ),0,0,5,90) + step (MOD( time , 10 ),5,90,10,0) -90
# 方法3 (混合方法1与2)
step (MOD( time , 10 ),0,0,5d,90d) + step (MOD( time , 10 ),5,90d,10d,0) -90

关于d的理解

所有表达式、函数的输入、输出参数均无单位(角度无单位换算后即rad)。
若要输入单位为角度的数值参数进行计算,通过将其乘以pi/180,换算为弧度大小,再代入函数实现。为了表述简便,令d = *pi/180

对于输入为角度参数的函数,有两种实现方法:

  1. 输入角度参数单位为弧度,直接代入函数进行计算。
    输入参数为弧度

  2. 输入角度参数单位为角度,将角度参数后加d,换算为弧度后,代入函数进行计算。
    输入参数为角度
    分别详细地有:

  • 在驱动函数表达式中,如果可以将[数值]d视为角度进行表达式的正常计算(调用的函数形参单位可以度时),可以认为d表示前一个数值参数单位为度。
30d  # --> 30度
30d * time  # --> 30*t 度*s
step(time, 0, 0d, 5, 90d)  # step中参数为单位为度
1 + 1d  # --> 1rad + 1度 = 58.296度 (交换律)
1 - 1d  # --> 1rad - 1度 = 56.296度 (交换律)
2 * 45d  # --> 90度 (交换律)
sin(90d)  # --> sin(90d) = 1 = 1rad = 57.296度
  • 在驱动函数表达式中,如果不可以直接视为角度进行表达式的计算(调用的函数形参单位不可为度时),将[角度数值]d(单位: 度)转化为[弧度数值](单位:rad)代入计算。可以理解为
# 除法
1 / 1d # --> 42.8064度
"""
计算过程:
∵d不可直接视为单位进行除法
∴1 / 1d
= 1 / (1 * (pi/180))
= 1 / (1 * (pi/180)) rad
= 180 / pi rad
= 180 / pi * (180/pi) 度
= 3282.80635 度
= 9 * 360度 + 42.806358 度
= 42.806358 度
"""
# 开方
sqrt(1d)  # --> 7.5694度
"""
计算过程:
∵d不可直接视为单位进行开方运算
∴sqrt(1d)
= sqrt(1 * (pi / 180) rad)
= sqrt(1 * (pi / 180))
= sqrt(1 * (pi / 180)) rad
= 0.1321109099 rad
= 7.569397566 度
"""
  • d表示时间微分结果(待研究)
DTOR * 779737d  # --> 0

驱动函数写法

  • 数值参数
# 期望得到180度
3.1415926  # --> 180度
pi # --> 180度
  • 数值参数 + d
# 期望得到180度
180d  # --> 180度
  • 数值参数 + d 并配合可用表达式
# 期望得到0~180度的动态变化
step(time, 0, 0d, 5, 180d)
  • DTOR * 非数值表达式(返回一个无单位数值参数)
# 期望得到一个度数为表达式的返回值的角度(expression = 180, 单位: 度)
# DTOR 为度单位变化为rad的值 = pi/180
DTOR * [expression] # --> 180度

[注意] 语法要求不可直接在表达式之后+d。
例如,表达大小等于10度的角度大小:
不可使用:sqrt(100)d
可替换为:DTOR * sqrt(100)

总结

  • 如果有一个确定的角度数值参数(实际的数值,如180,90之类的数),使用[数值参数]d的方法。
180d
180d * time
  • 如果有一个返回值单位为角度的表达式(例如varval(系统变量)),使用DTOR * [expression]的方法。
DTOR * varval(InputFromMatlab_UintInDegree)
  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: adams运行时间函数是一个用于估算一个物体或多个物体的运动轨迹和所需时间的数学函数。它基于牛顿的运动定律和微积分原理,通过将运动过程离散化,将连续的运动方程转化为递推的差分方程来模拟和计算物体的运动状态。 具体而言,adams运行时间函数将物体的位置、速度和加速度等信息作为输入,然后根据给定的运动方程和初始条件,迭代计算出物体在特定时间点的位置和速度。在每个时间步长上,它使用差分方程将当前状态转化为下一个时间点的状态,并重复这个过程,直到达到所需的时间。 adams运行时间函数的优势在于其可以处理复杂的力学系统,并对多个物体的相互作用进行建模和计算。通过将不同物体的运动方程相互关联,可以得到它们之间的相对运动和相互影响。这使得它在模拟和预测复杂动态系统中的物体运动和相互作用时非常有用。 总之,adams运行时间函数是一个用于估算物体运动轨迹和所需时间的数学函数,基于牛顿的运动定律和微积分原理,通过离散化运动方程和差分方程来模拟和计算物体的运动状态。它的应用范围广泛,适用于模拟和预测复杂力学系统中的物体运动和相互作用。 ### 回答2: adams运行时间函数是一个用于计算程序执行时间的函数。通常我们希望知道一个程序或者某个特定代码块的运行时间,这可以用来评估程序的效率,进而优化代码。 adams运行时间函数可以通过记录程序的开始时间和结束时间来计算程序的执行时间。具体来说,它会使用系统提供的时钟函数来获取当前时间,在程序的不同位置分别记录开始时间和结束时间,然后计算差值得到程序的执行时间。 为了使用adams运行时间函数,我们需要在程序中设定一个开始时间点,通常在代码的开头。我们可以使用系统提供的时间函数,如clock函数或者时间戳函数来获取当前时间,并将其保存在一个变量中。然后在代码的结束位置,我们再次获取当前时间,保存在另一个变量中。 最后,我们可以通过将结束时间减去开始时间得到程序的运行时间。使用适当的单位(如秒、毫秒等)来表示时间。 adams运行时间函数在性能分析、程序优化等方面非常有用。通过测量不同代码段的执行时间,我们可以确定哪些部分需要改进或者优化,从而提高程序的性能。 总之,adams运行时间函数是一个用于计算程序执行时间的函数,通过记录开始时间和结束时间,以及计算时间差值,来提供程序的运行时间信息,从而帮助我们优化代码。 ### 回答3: adams是一个用于多步法求解常微分方程的数值计算方法。在计算过程中,adams方法需要对每一步的函数值进行估计并确定下一个时间步长的函数值。因此,adams方法的运行时间函数可以表示为以下几个方面。 首先,adams方法的运行时间与问题规模相关。问题规模可以通过求解的方程维数、时间步长等参数来衡量。一般来说,问题规模越大,求解所需的运算量也越多,运行时间也相应增加。 其次,adams方法的运行时间与计算机硬件性能有关。较快的计算机硬件可以加快求解过程中的矩阵运算、函数估计等计算步骤,从而减少运行时间。 此外,adams方法的运行时间还与收敛条件有关。对于某些情况下,adams方法可能需要进行多次迭代才能达到所需的精度要求。因此,收敛条件的松紧程度也会影响到adams方法的运行时间。 最后,adams方法的运行时间还与算法实现的优化程度有关。在实际应用中,对于adams方法的算法实现可以进行各种优化,例如使用矩阵计算技巧、并行计算等方法,以减少运行时间。 总的来说,adams方法的运行时间函数问题规模、计算机硬件性能、收敛条件和算法优化等多个因素的影响。在实际使用中,可以通过调整这些因素来优化adams方法的运行时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值