找回密码
 注册
Simdroid-非首页
查看: 657|回复: 14

[联合仿真] 请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

[复制链接]
发表于 2005-9-15 22:10:35 | 显示全部楼层 |阅读模式 来自 浙江杭州
在Matlab和ADAMS的联合仿真中
想实现Matlab对ADAMS中系统运动的控制
我的具体做法如下:
在ADAMS系统相应的Joint上设置Motion
在Matlab中直接提供运动的位移信息
通过在ADAMS中设置一个State Variable
将Matlab中的位移信息直接传递给ADAMS中的Motion
Motion中的Function为 VARVAL(displacement)
         (假设State Variable名为displacement)

事实证明这样是不可以的
因为ADAMS中规定Motions should only be functions of TIME。

假设从Matlab中传递过来的是一个速度的信息
那么Function可以写为 VARVAL(velocity)*TIME
这样一个以TIME为参数的函数
则相应的运动是可以实现的

但是我想要实现的就是直接把位移拿过来进行控制
这样就用不到TIME这个参数了
不知道有没有什么办法可以实现

ps:我也试了一下,类似于+TIME-TIME这样伎俩是不管用的,因为不是严格意义上以TIME为参数的

烦请各位大牛指教 谢谢 谢谢了
fangzhen66 该用户已被删除
发表于 2005-9-16 10:02:27 | 显示全部楼层 来自 陕西西安
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2005-9-16 13:53:37 | 显示全部楼层 来自 浙江杭州

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

简单的说是这样的:
一个平台,几条腿撑着
通过控制几条腿的伸长与缩短来实现平台的特定运动
因为直接控制的是腿
所以通过一个位置的反解机构把平台的特定运动转化为相应的腿的伸长或缩短的量
然后用这几个量去控制腿的运动从而实现平台的运动

fangzhen66:
你的是怎么样的
有没有琢磨出什么东西
拿出来大家分享一下吧
发表于 2005-9-19 11:47:25 | 显示全部楼层 来自 陕西西安

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

假设从Matlab中传递过来的是一个速度的信息
那么Function可以写为 VARVAL(velocity)*TIME
这样一个以TIME为参数的函数
则相应的运动是可以实现的

我一直认为通过Matlab接口实现对ADAMS模型中Motion的控制是行不通的,楼主的这种方法倒没尝试过,不知是否真的实现了,并且仿真结果确实是正确的?请指教。
 楼主| 发表于 2005-9-19 16:13:55 | 显示全部楼层 来自 浙江杭州

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

wxd:
我只能说用上述的VARVAL(velocity)*TIME的方式是能够让ADAMS中的模型动起来的
我也只是试到了这一步
至于具体的仿真的结果是不是正确我不知道
你可以去试试看
因为我想要的是直接用位移来控制,而不是速度
fangzhen66 该用户已被删除
发表于 2005-9-20 09:09:26 | 显示全部楼层 来自 陕西西安
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2005-9-29 23:12:16 | 显示全部楼层 来自 北京

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

我也遇到过这种问题,最后还是用Spline了。
 楼主| 发表于 2005-9-30 09:53:53 | 显示全部楼层 来自 浙江杭州

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

reiko:
请问你的spline函数是怎么构造的
是用Matlab中传过来的状态变量构造的吗?
发表于 2005-9-30 22:28:30 | 显示全部楼层 来自 山东济南

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

Matlab写文件,ADAMS导入。
 楼主| 发表于 2005-10-4 14:37:38 | 显示全部楼层 来自 浙江杭州

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

reiko wrote:
Matlab写文件,ADAMS导入。

这样的话是不是意味着
Matlab写文件和ADAMS导入是两个独立的过程
Matlab写完文件后就没有没它什么事了
之后的仿真就只需启动ADAMS
把前面的数据导入就行了

是不是这样?

ps:感觉这样的话,就不像是联合仿真了
      因为我觉得联合仿真应该有两个软件之间的互动
      而这样对于ADAMS来说它接受到的只是一组位置的信息
      至于这组数据是怎么产生的,是你用Matlab算出来的
      还是别的什么软件算出来的都没关系了
发表于 2005-10-5 21:06:47 | 显示全部楼层 来自 北京

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

没办法,没找到出错原因,现在只能这么做。
 楼主| 发表于 2005-10-10 19:31:23 | 显示全部楼层 来自 浙江杭州

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

难道真的就没办法了
唉~~
发表于 2005-10-15 23:10:00 | 显示全部楼层 来自 江苏镇江

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

哪位高手指点一下,我也有此烦恼
发表于 2005-11-14 15:34:14 | 显示全部楼层 来自 北京

Re:请教:如何通过Matlab接口实现对ADAMS模型中Motion的控制

Motion中的Function设为VARVAL(displacement) 是可以实现的。

但是如果按默认的通讯步长0.005的话,向Adams输出的位移值很容易超过Solver setings中的误差限(除非速度很低),导致仿真失败。

所以通过修改误差限或减小通讯步长是可以顺利实现仿真的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2016-2-27 12:50:25 | 显示全部楼层 来自 浙江温州
reiko 发表于 2005-11-14 15:34
Motion中的Function设为VARVAL(displacement) 是可以实现的。

但是如果按默认的通讯步长0.005的话,向Adam ...

是试试看
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-2 01:32 , Processed in 0.055348 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表