我是靠谱客的博主 善良小甜瓜,最近开发中收集的这篇文章主要介绍【Matlab/Simulink笔记】入门练习——搭建一个弹跳球实验介绍实验背景实验过程结束,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
介绍
- 第一个实例太过简单,而且看不出什么实际效果,因此这次选了一个比较贴近中学物理的实验,弹跳球实验
- 这个实验是在观看一位老师的入门课程时想尝试的实验:MATLAB/Simulink基础入门视频教程:https://www.bilibili.com/video/av19917837/
这位老师详细介绍了Simulink的基本用法和很多入门细节问题,很值得新人花一个小时的时间观看学习。
实验背景
- g是地球上的重力加速度,大约为9.8
实验过程
-
拉取相应控件
-
调整Gain和Memory控件的方向
对称方向调整快捷键:Ctrl+I
-
调整常数控件Constant参数为-9.8,表示重力加速度
-
调整二阶积分器控件Integrator Second-Order参数
- x表示小球的高度,初始值设置为10
- 因为在物理系统中,高度不可能小于0,所以对x的值进行限制,勾选Limit x,设置Lower limit x的值为0,表示最小为0,Upper limit x的值为inf,表示最大为无穷大
- x取名为Postion:在State name x处输入Position,会有红色警告,然后点击右侧的三个点,点击Position Create,弹出Create New Data
输入带英文双引号的"Position",点击Create
点击OK
变量x设置完成
- dx/dt表示小球的速度,我们从外部取值,设置Initial condition source dx/dt为external
- 新建一个变量Velocity,方法和x的Position一样
- 在Attribute中,勾选Reinitialize dx/dt when x reaches saturation
至于这个设置的含义是什么,我们可以右键该设置,弹出what’s this,点击后会看到官方给出的解释
- 设置完成后,Integrator Second-Order的控件显示也会发生变化
-
设置Scope模块,点击左上角的设置符号,讲输入端口个数改为2,表示查看两个信号模块(速度和高度)
-
设置IC模块,用于速度初始值的设置,将初始值设置为15
-
设置Gain模块,用于恢复系数,设置为-0.8
-
还有一个Memory模块,用于避免产生代数环,无需设置。参数设置完成后,如下图所示
-
开始连线
注:这条连线的方法是,在已有线段上点击鼠标右键,出现十字符号,然后连接到Memory模块右侧
- 设置整个系统的参数
在空白处点击鼠标右键,选择Model Configuration Parameters,打开设置面板
将仿真时间设置为25秒,将最大步长设置为0.01
- 一切设置完成后,双击打开Scope,点击Run,我们可以观察到小球速度和高度的变化趋势,蓝色线条是速度,黄色线条是高度
- 我们也可以进行单步调试,每一次点击Step Forward,模型会以0.01的步长进行变化
结束
- 据视频中介绍,实验来源:Simulink帮助文档>Examples>General Applications>Simulation of a Bouncing Ball,我在帮助文档里,找到的是“弹球的仿真”,模型与视频的稍有不同,可能是我们版本不一样的问题,我用的是Matlab R2021a版本。本博文以视频中的操作为准,如果你有兴趣的话,可以去帮助文档里查看该模型。
帮助文档内“弹球的仿真”示例:
- 至此,Simulink基本的建模功能已经掌握,下一次打算尝试视频里的另一篇样例:Simulink帮助文档>Simulation>View and Analyze Simulation Results>Frequently Viewed Topics>Log Signals to the Simulation Data Inspector,我在我的帮助文档里找到的是“容错燃油控制系统建模”,看起来不是不是很有挑战呢。
最后
以上就是善良小甜瓜为你收集整理的【Matlab/Simulink笔记】入门练习——搭建一个弹跳球实验介绍实验背景实验过程结束的全部内容,希望文章能够帮你解决【Matlab/Simulink笔记】入门练习——搭建一个弹跳球实验介绍实验背景实验过程结束所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复