The Problem 假设我们有这个模型,这个模型是模拟一个巨大的吊机,你知道,就是吊着一个巨大的铁球,专门拆建筑物的那家伙。 (译者: Ground代表地面,作为参考系。 Bas Motion Actuator模块,表示是驱动这个运动副的接口,驱动信号来源于它输入的Simulink信号。Motion Actuator也是一样。) 对基座施加一个sine曲线的运动轨迹,按理说,末端的黑色球是会晃动的。 可是,它没有! The Explanation 可能你已经注意到了,基座是用一个 Joint Actuator来驱动的,而且设置为运动驱动。如果使用这种配置,三个参数都必须指定。 显然,对应于Sine曲线的位置输入,速度和加速度都是0! The Solution: First Try 想要SimMechanics给你一个合理的输出,那你必然要先给它一个合理的输入。 所以,可能你脑子里一下子就想起来Derivative 微分模块。 如果位置信号是圆滑的话,这样做没有问题,但是,很多时候都会有各种问题。 为什么呢? 如果你的位置信号发生了不连续,那必然会引起速度信号的一个突变,导致加速度甚至到无穷大。无穷大的加速度是不现实的,会导致求解器的差分错误。 A Better Solution 所以我推荐使用 Transfer Function模块来做一个滤波差分器。 现在,我们再来看一下吊机模型: Now it's your turn If you are interested, you can find the model here. Look at the documentation section titled Stabilizing Numerical Derivatives in Actuation Signals for more details and let us know what you think by leaving a comment here. By Guy Rouleau 转自:http://blog.sina.com.cn/s/blog_b2f5027f0101e7u1.html
|
|
来自: 昵称30920862 > 《文件夹1》