概述
前面一期我们使用了Simulink进行了一次弹簧阻尼器+位置控制仿真。还记得这个图么:
后面联合仿真的环境配置好后,我在想,如何联合使用AMESIM和SIMULINK比较科学。然后就想到,当时建立Simulink模型时,小球、弹簧阻尼器这些物体之间,根据help中所提供的物理关系:
来进行建模,加入扰动和外力控制,建立了模型中的Relationship模块,如下图:
么如果我不知道这种关系呢?这时候AMESIM就能派上用场啦,AMESIM可以很方便地对物理系统进行建模,即使我不知道他们的关系。然后我们可以像之前的联合仿真一样把建好的物理系统嵌入到Simulink模型中(取代下面蓝色System区域内的模块),下面就来试试吧。
Amesim物理模型建模
首先回到问题,这个物理模型内有一个弹簧阻尼器,一个小球。这里我们直接就可以在AMESIM 1D mechanical里面找到弹簧阻尼器这个模块。小球这个物体没有特殊的意义,这里可以用一个质量块来代替。
另外,由于我们要施加给小球扰动和控制力去稳定小球到固定位置(上一期有讲过),我们这里再安装一个用于外力施加的信号元件和一个小球位置传感器元件。连好后,将力控制信号F与位置传感器信号Displacement连接到Simulink Interface上即可。
然后配置一下这些物理元件的自身属性,如重量,硬度之类的。
如弹簧的k值与阻尼器的c值:
小球(质量块)的质量与初始位置:
设定好各项物理参数,至此AMESIM部分的物理模型就建模完毕了。
Simulink建模
打开Matlab,添加进AMESIM接口模块:
编译好AMESIM物理模型,点击接口模块选择刚编好的模型:
Simulink-Amesim 联合仿真
点击仿真就可以看看效果啦:
发生代数环问题,估计是反馈控制的信号出现了代数环问题,这里在反馈控制的力这里加上一个delay就好了(话说那原来的模型没有加这个,是怎么解决的?):
打开AMESIM就可以看到仿真的效果啦,虽然好像波动有点大,但是最后还是控制在了目标位置x=0.5了:
也可以直接在Simulink里面观测结果:
控制的效果挺差的,调整下试试:
这个模型挺敏感的。。。调慢点
这样就太慢了,再调调看
快了许多,但是这个Delay带来了控制的延迟,影响挺大的。
不知道这个怎么解呢,有没有大佬能够指教一下。。。
最后
以上就是淡淡翅膀为你收集整理的AMESIM学习——弹簧阻尼器小球位置控制Amesim-Simulink联合仿真的全部内容,希望文章能够帮你解决AMESIM学习——弹簧阻尼器小球位置控制Amesim-Simulink联合仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复