本文已参加「新人创造礼」活动,一同开启创造之路。
介绍
- 第一个实例太过简略,并且看不出什么实际效果,因此这次选了一个比较靠近中学物理的试验,弹跳球试验
- 这个试验是在观看一位教师的入门课程时想测验的试验: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,我在我的协助文档里找到的是“容错燃油控制体系建模”,看起来不是不是很有应战呢。