Simulink学习-弹球仿真(二)

Simulink经典案例-弹球仿真(二)


Hi,我是一块大肥皂,请各位大佬多指教~


回顾

接上一期,Simulink中的这个弹球仿真模型看起来比我搭的那个简单多了,想了想,我之前构思的思路太挫了。如果是学习simulink,没必要对所有问题全部重新构思建模,还是着重于学习simulink案例的建模方法和思路吧。

对比上一期中自建的模型与help中的模型,除去对小球触底反弹建模思路的区别,最大区别在于对积分器使用(接口没利用好,产生了额外的接线)和积分器起始值给定方法(没有使用IC模块,做了几个switch去实现信号的切换功能,复杂了很多):

 

积分器的正确用法

help中的这个积分模块,有五个接口

对比下面的素人模块,就两个口

点开积分模块,有许多可以打钩的这里没有打钩。看看Help,有许多可以设置的:

对比学习一下:

Help中的模型,使用了Initial condition source给定了初始速度和高度;使用了External reset来在每次小球碰到地面时重置速度积分器与位置积分器;Show state port在速度积分器中用于模拟每次碰到地面时速度矢量的变化;在位置积分器中输出实时位置作为各模块的触底指示器,用于重置积分器(Show state port虽然是show state,但是可以当成第二个output使用)。

积分器起始值给定方法-IC模块

这个模块不大眼熟:

根据说明,这个模块使得help中速度与位置积分器的初始条件可以给定一个初始值。它第一次输出该值后,就会输入啥就输出啥,这样不需要像我那样做开关来区分起始值和后续值了,方便和简化了非常多。

小结

弹球仿真这个案例其实很简单。但是想着简单,搭出来的模型却很复杂,很丑,还是因为对Simulink模块的使用不够熟练,拖成了两期,后面的学习应该还是尽量直接以例子本身为起点学习,节省时间。

猜你喜欢

转载自blog.csdn.net/weixin_44281768/article/details/108503788