用Amesim仿真风力仿生兽,妙啊!
风力仿生兽,英文名叫Strandbeest,其发明者是被誉为“现代版的达芬奇”的荷兰艺术家泰奥扬森。这些奇特的“生物”主要是由塑料管组合而成框架结构,它们借助自身巧妙的多连杆机构,通过“食用”自然风就可以在海滩上自由漫步,因此也被叫做“噬风兽”。
经过几十年的发展,风力仿生兽演变出很多不同的类型,比如这样的↓↓↓
更为神奇的是,这些“沙滩巨兽”还拥有感应装置,能够进行简单的思考判断,比如它们可以储存风能,在风力较弱的时候也能行走;它们够感知海洋的位置,一旦遇到水就会自动向反方向行走,以防自己被“淹死”;当暴风雨来临时,它们还可以启动锤子锤一根钉子,把自己的身体固定在沙滩上。发明者甚至希望他的生物最终可以自行在海滩上生存进化!
本文就来向大家展示如何用Amesim仿真一只行走的风力仿生兽,最终动画效果如下。
本文的仿真是基于下图所示的三维模型(文末提供了三维模型下载链接,供大家参考)。
支架:即风力仿生兽的“身体”,其他结构都通过支架安装并连结在一起;
风车:用于“食用”自然风,将风能转化为行走所需的能量;
齿轮:将风车的能量和运动传递至曲轴;
曲轴:共有两根,每根曲轴相当于三个相位相差60度的曲柄,曲柄可以带动腿行走;
腿:每条腿由四根杆和两个三角架组成,是整个仿生兽最核心、最精巧的部分;腿共有12条,两两一组(即前腿和后腿)安装在支架和六个曲柄上。
通过分析不难发现,风力仿生兽本质上是一个设计巧妙的多连杆机构,它行走时的运动也是维持在一个2D平面内,因此我们可以用Amesim的2D机械库实现其建模和运动仿真。
下面进入正题,向大家展示风力仿生兽的建模仿真过程。额,有点麻烦。不过不要紧,我们由简到繁,一步一步来!
风力仿生兽的各组成构件通过dynamic_plmbody元件建模,构件间的铰接主要通过plmpivot元件建模。我们采用局部坐标系的方式,先建立曲轴和一条前腿的仿真模型。
首先在三维模型中为每个构件分别建立局部坐标系,然后测得各自的铰点坐标。在草图模式下根据构件的铰接关系搭建模型,如下图所示。在子模型模式下点击首选子模型。
在参数模式下输入各个子模型的局部坐标、质量属性等参数。此时模型只有一个自由度,因此我们右击曲柄锁定其绝对角度状态变量,并在参数中输入曲柄的绝对角度初始值为0进行约束。
进入仿真模式下,双击plmassembly元件打开动画窗口,查看模型初始化结果。
好吧,初始化失败,看来需要更多约束才可以。这里我们在三维模型中测量各构件的初始角度(即各构件的局部坐标系相对于全局坐标系的逆时针旋转角度),并输入Amesim对模型做进一步约束。再次进行初始化,成功!
接下来给这条腿输入一个力矩,仿真一下,查看动画,如下所示。
第2步,建立两条腿的仿真模型
我们把第一步建立的前腿模型复 制粘贴一下,建立相应后腿的模型。需要注意的是,前腿和后腿是镜像对称的,因此其局部坐标系和构件角度也要做相应改变。
鉴于三维模型中两根曲轴的运动完全一致,因此我们只需建立一根曲轴和相应的六条腿的仿真模型即可。
在两条腿的基础上,比葫芦画瓢,完成另外四条腿的建模,如下图所示。
仿真一下,查看动画。看这群魔乱舞的架式,有内味了!
风车和齿轮在模型中主要用于传递运动和力,并非建模重点。我们采用Powertrain库的gear_3p元件进行齿轮建模,采用输入力矩的方式模拟风车受到的风力。另外,由于风车和齿轮不能在动画窗口中显示,为方便后续动画关联运动变量,我们给风车和齿轮添加角位移传感器。
前面四步建模没有考虑支架,本该与支架铰接的点都是和大地铰接。在这一步中,我们来建立支架模型。
支架暂时与大地铰接,约束其x和y方向的平移自由度,如下图所示。此时模型又增加了支架的旋转自由度,因此需要锁定支架的绝对角度状态变量(设置方法可参照第1步),并在参数设置中设置其绝对角度初始值为0。
加入支架后的仿真动画
首先,去除支架与大地之间的铰接,释放其x和y方向的平移自由度,使模型可以落地行走;此时,需要锁定支架重心的x绝对位置状态变量和y绝对位置状态变量,并在参数中设置其重心的坐标初始值(重心坐标初始值可通过三维模型测得)。然后,采用plmcontcont元件建立六只脚与地面的接触模型,如下图所示。
设置完成后,运行仿真。哈~看这精致又急促的小碎步!
至此,仿真模型已搭建完成!最后,我们导入三维模型,使仿真动画看起来更逼真更美观。
在动画窗口中导入三维模型(这里采用的是.stp格式),如下图所示。由于前期建模时,Amesim中的模型采用了和三维模型完全一致的坐标系,所以导入之后所有构件和铰点位置也是完全对应的。
根据模型的对应关系,在Object tree下将导入的三维模型一一拖拽至相应的元件下,使其关联(注:要确保Tools菜单下,Options窗口中,General选项卡里Parent change handling为keep absolute position);
将位移传感器输出变量对应关联到风扇和齿轮Z轴旋转坐标中;
更改模型颜色,调整视图。
最终动画效果
对于Amesim建立的系统仿真模型,除了仿真结果可视化之外,更重要的是我们可以提取力、运动等各种仿真结果,对系统进行性能分析和优化改进。
比如,提取仿生兽行走的位移和速度曲线,如下图所示。可以看出,在恒定力矩输入的情况下,行走速度有较大 波动。
行走位移和速度曲线
再比如,提取脚的行走轨迹曲线,如下图所示。可以看出,仿生兽每迈一步,脚的触地距离非常有限,这也印证了我们动画中看到的“小碎步”。同时,这也说明我们所使用的仿生兽模型尺寸还有进一步优化改进的空间。
脚的行走轨迹曲线
当然,可以分析的点还有很多,本文不再一一列举。
总的来说,Amesim的机械库非常强大,可以完成绝大多数常见机械结构的运动学和动力学仿真。限于篇幅,本文并没有对风力仿真兽的建模仿真过程做过于细致的介绍。文末提供了本文模型(采用Amesim 17版本创建)的下载链接,供大家参考。