许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Adams驱动函数单位搞不清?3个d规则解决

Adams驱动函数单位搞不清?3个d规则解决

阅读数 3447
点赞 0
article_banner

做Adams与Matlab联合仿真时,你有没有碰到过这种情况:明明设置了转动角度90度,结果模型转了一个半圈还多?或者驱动函数的运动幅度完全不对?别怀疑,八成是单位“d”的用法踩坑了。我从2023年开始做联合仿真,前前后后被这个d折磨了不下10次。今天把踩坑经验和验证结果整理出来,配合2026版Adams的新变化,帮你一次搞懂。

一、驱动函数单位d到底是什么?先看一个实测

Adams里的驱动函数(比如STEP、IF、SIN)需要输入数值。问题来了:转动关节的角度,到底用弧度还是度?软件默认角度单位是度(MMKS模板下),但实际计算内核用的是弧度。这个矛盾就是d存在的理由。

d本质是一个换算因子: d = pi/180 ≈ 0.0174533。你在数值后面加d,Adams会在计算前自动把数值乘以pi/180,把“度”转成“弧度”。不加d,数值直接被当成弧度。

我做过一个实测对比:在转动关节上设一个恒定转速驱动,要求90度/秒。

  • 写法A:90d → Adams理解为90度/秒,正确
  • 写法B:90 → Adams理解为90弧度/秒,实际约5156度/秒,快了57倍!

一个学生朋友曾经用错,仿真0.5秒后机构直接飞出去了,花了三天查原因才发现是d没加。所以记住:转动关节里,数值后不加d就是弧度,加d才是度。

二、滑动关节和转动关节的d规则,两个案例对比

滑动关节(平动): 不用加d。因为位移单位是mm或m,没有角度转换问题。比如想让滑块移动100mm,直接写100就行。写了100d反而会变成100×0.01745=1.745mm,完全不对。

转动关节(旋转): 看你要用什么单位。想要度,加d;想要弧度,不加d。我建议统一加d——因为你脑子里的角度习惯是30°、90°,而不是0.5236rad。写30d比写0.5236直观得多,而且不容易敲错数字。

实测案例: 做一个摆锤机构,摆动范围±45°,周期2秒。正确的驱动函数写法:

45d * sin( pi * time )

如果写成45 * sin( pi * time ),摆动范围变成±45弧度(±2578°),相当于锤子疯狂转圈,完全不符合物理。

三、表达式里用d的3个坑,我替你踩过了

坑1:不能在运算结果后面直接加d

Adams的语法限制:sqrt(100)d 这种写法会报错。因为d只能跟在确定数值后面,不能跟在表达式后面。

错误示例: step(time,0,0,5,sqrt(100)d)  正确做法: 用DTOR乘表达式。DTOR是系统内置的转换常数,等于pi/180。  step(time,0,0,5,DTOR * sqrt(100)) → sqrt(100)=10,10度正确传入。

坑2:混合运算时d的优先级诡异

看这个例子:1 + 1d 结果是多少?  直觉:1 rad + 1° = 57.3° + 1° = 58.3°。Adams也是这样算的。但 1 / 1d 呢?  1 / (1 * pi/180) = 180/pi ≈ 57.3 rad,再转成度就是3282°,等价于42.8°(减去9圈)。所以结果变成了42.8°,很反直觉。  避坑建议: 不要在同一个表达式里混用纯数值(弧度)和带d数值(度)。要么全转成弧度,要么全转成度。我习惯全用d,确保公式里的角度都是度。

坑3:三角函数里用d要小心

sin(90d) 结果是1,正确(因为sin函数内部把90度转成π/2 rad)。但 sin(90) 是sin(90 rad) ≈ sin(5156°) ≈ 0.893,完全不是你要的值。  结论: 任何三角函数的角度参数,如果你心里想的是度,一定要加d。

四、实操:写出一个周期摆动的驱动函数(附步骤)

假设你要让一个摇臂在0~10秒内,从0度摆到90度,再回到0度,周期10秒,重复3个周期。正确写法如下:

方法1(全用度):

step(MOD(time,10),0,0d,5,90d) + step(MOD(time,10),5,90d,10,0d) - 90d

每个数值后都带d,一致性高,推荐。

方法2(全用弧度,不推荐但可行):

step(MOD(time,10),0,0,5,pi/2) + step(MOD(time,10),5,pi/2,10,0) - pi/2

麻烦在于要手动把90度转成1.5708 rad,容易写错。

实操步骤(2026版Adams验证通过):

  1. 在Adams/View里建一个转动关节,施加旋转驱动(Rotational Joint Motion)
  2. 在驱动函数框里输入上面方法1的表达式
  3. 设置仿真时间30秒,步数300
  4. 运行后测量关节角度,画出曲线:应该是三个三角波,峰值90°,谷值0°
  5. 如果曲线不对,检查MOD函数是否可用(有时需要写成MOD( time, 10 ),注意空格)

一个常见报错: “Expression evaluation error at time 0.0”。这通常是因为MOD函数的分母是0或表达式里有非法运算。检查你的MOD写法,确保第二个参数不为0。

五、总结:两张速查表贴墙上

什么时候加d?

  • 转动关节驱动中,数值是角度 → 加d
  • 转动关节驱动中,数值是弧度 → 不加d
  • 滑动关节驱动 → 不加d
  • 表达式结果(如varval())要转为角度 → 用DTOR * 表达式,不能直接加d

常见正确写法:

  • 常数角度:90d
  • 随时间线性增加:10d * time (每秒10度)
  • 正弦摆动:30d * sin(2*pi*time) (幅度30度,频率1Hz)
  • 来自Matlab的变量(单位度):DTOR * VARVAL(angle_from_matlab)

最后说一句:如果你做联合仿真,从Matlab传过来的角度值通常是度(看你Simulink里的设置),记得在Adams驱动里用DTOR *包一下。我见过有人忘记转换,结果仿真曲线和理论值差了57倍,排查了两天。希望这篇能帮你省下这两天。

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空