在连续时间模型一个弹跳球
这个例子展示了如何配置一个Stateflow®图表,在连续时间模拟一个弹跳球。球不断在空中移动,直到它击中地面,此时发生不连续。结果,球突然改变方向和速度。有关更多信息,请参见连续时间建模Stateflow。
该模型sf_bounce
包含一个图表,在连续时间更新。局部变量的动力学描述自由落下的球的位置和速度。在仿真过程中,模型使用零交点检测来确定当球击中地面。
弹力球的动力学
您可以指定如何自由球落在重力下的位置p和速度v有了这个系统的一阶微分方程:
当p< = 0,球击中地面和反弹。您可以通过更新模型的反弹球的位置和速度:
重置的位置p= 0。
重置速度的负价值就在球撞到地面。
占能源损失,新的速度乘以一个系数分布(-0.8)。
为连续时间模拟配置图
在模型中,BouncingBall图实现了模态逻辑模拟自由落体和离散变化的连续动态与跳跃。在图表属性对话框,这些设置使BouncingBall图表在连续时间模拟:
更新方法是
连续
所以采用连续时间的图表弹力球的动态模拟模型。使讨论二阶导数过零检测所以选择模型®解算器可以准确地确定当球金宝app击中地面。否则,仿真软件模型不能准确地模金宝app拟物理和球似乎降落地面。
定义连续时间变量
BouncingBall图有两个连续时间变量:p
的位置和v
的速度。为每一个变量:
范围是
当地的
。类型是
双
。更新方法是
连续
。
暴露的连续状态图仿真软件模型,BouncingBall图有两个输出变量:金宝appp_out
和v_out
。为每一个变量:
范围是
输出
。类型是
双
。更新方法是
离散
。
表定义了时间导数连续时间变量的隐式:
p_dot
的导数是职位p
。v_dot
随着速度的导数v
。
在Model Explorer,您可以查看连续时间图表中的本地变量和相应的输出。隐式变量导数不出现在Model Explorer或符号窗格。
自由落体的连续动态模型
BouncingBall图由一个单一的国家命名下降
数值是自由落体的微分方程的解。默认的过渡到状态集10米的初始位置和初始速度15米/秒。的在
动作的状态:
定义的位置和速度的导数
分配球的位置和速度的值输出变量
p_out
和v_out
模型离散效应的反弹
的下降
政府自身环这一转换过程模型的不连续反弹作为瞬时模式更改当球突然逆转方向。过渡的条件称为边缘检测算子下降
。这个操作符决定当球击中地面时,通过检测位置跨越阈值为0,变得消极。如果条件是有效的,条件行动重置当球击中地面的位置和速度。
验证图的语义
BouncingBall图表中定义满足设计要求连续时间模拟指南。特别是,图表:
初始化局部变量p, v在缺省转换
将值赋给衍生品p_dot和v_dot
在
行动写入本地变量p, v在过渡行动
不包含事件、内心的转变,基于事件的时序逻辑,或改变检测运营商吗
查看仿真结果
运行模型之后,范围块图表位置和球的速度。位置图表展示预期的反弹格局。