ADAMS仿真在控制算法验证中的作用

ADAMS(Automatic Dynamic Analysis of Mechanical System)中能够进行装配、静力学、运动学和动力学的仿真。能够准确测量位置、距离、角度、速度、加速度、角速度、角加速度、力、力矩等各种物理量。初学ADAMS的同学都能够按照例程快速地学会导入模型、设置简单的运动副、设置驱动,然后进行仿真。之后在后处理模块中查看仿真动画等。但对于初学者来说,ADAMS除了可以看到导入的模型按照一定的驱动规律运动之外,对于模型的控制算法的验证到底有没有作用以及对于控制算法的推导是否有促进作用,则不得而知了。

    举个例子,假如我设计了一个多自由度的机械臂,然后我根据一些经典的算法,结合自己的机械臂机构,建立了模型,推导出了运动学、动力学或者重力补偿等控制算法。但我并不知道我推导出的控制算法是否有错,或者哪些地方有忽略而导致控制算法不精确。而此时,当你去跟有经验的控制算法工程师交流的时,他们大都会说,你去用ADAMS仿真验证一下。这个时候,你可能有点懵。用ADAMS仿真怎么去验证我的推导的控制算法呢?

    当然,单纯的ADAMS仿真并不能验证算法的准确性。要对算法进行验证,必须结合MATLAB仿真一起进行。大概的思路就是,一方面,在ADAMS中,把在三维建模软件(Solidworks、Pro/E、UG等)中设计好的机构模型导入到ADAMS中,然后正确地设置运动副,直到没有出现冗余约束,模型有准确的运动自由度,之后设置驱动。使模型达到能够正确进行仿真的状态。然后根据需要,在驱动上添加函数驱动。对模型进行仿真,之后对模型上的元素进行测量,得到结果曲线。另一方面,在MATLAB中,根据自己推导出的控制算法,用C语言写出算法代码,利用MATLAB优秀的绘图能力,画出某元素在相同的驱动函数的作用下的结果曲线。把在MATLAB中得出的曲线与在ADAMS仿真中得出的曲线作对比,以找出控制算法的问题所在。比如:在MATLAB中画的图线有异常结果,导致曲线不光滑,出现突变。而ADAMS仿真结果曲线中则没有出现这样的情况,这个情况下,要考虑可能是算法中出现了多解的结果,而对多解没有进行筛选,导致出现结果突变。这可以指导我们对控制算法进行修改。而如果MATLAB中画的结果曲线与在ADAMS仿真中得出的曲线完全不一样,值的范围出入很大。这个时候,则要考虑控制算法的正确性了,是不是控制算法本身的问题,或者是控制算法在该情景下不能使用等等各种因素。

    由于ADAMS中所有的仿真都是在两个坐标系(Marker点)之间来进行的,而自己推导的控制算法则可能是某些经验公式或者对模型有一定简化的情况下推导出的最终结果。因此,在仿真对比时,只要结果曲线的走势基本一致,在数值上有一点的偏差也是在接受范围内的。毕竟,在ADAMS仿真和MATLAB中得出的结果都只是理论结果,而到实际的机械臂控制中,而要结果实际情况,考虑摩擦等因素的存在,进行进一步的优化,才能达到比较完美的控制。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值