主要内容

动态仿真模块子系统的状态

通过使用Simulink®状态流中的子系统®状态时,您可以建模混合动态系统或在周期和连续时间动态之间切换的系统。在您的状态流图中,您可以使用基于Simulink的状态,结合使用转换的切换逻辑对周期或连续动态系统建模。您可以在每个基于Simulink的状态中访问图表的输入和输出。MATLAB中的独立状态流图不支持基于Simulink的状态®

在基于Simulink的状态之间切换时,要初始化Simulink块,请使用Stateflow文本符号或Simulink状态读取器和状态写入器块。

要创建基于Simulink的链接状态,可以使用库来保存动作子系统。当您将操作子系统从库模型复制到Stateflow图中时,它将显示为基于Simulink的链接状态。当您更新库块时,更改将反映在包含该块的所有状态流图中。

使用基于Simulink的状态意味着您不必在Stateflow中使用复杂的文本语法来建模混合系统。

什么时候使用动态仿真模块基于州

使用基于Simulink的状态:

  • 您想要建模混合动态系统,包括连续或周期动态。

  • 系统动态的结构在不同的操作模式之间有很大的变化,例如,建模PID控制器。

对于间歇性调用逻辑的系统,请使用Simulink函数。

当Simulink算法的结构基本不变,但某些增益或参数在不同模型之间切换时,使用Stateflow之外的Simulink逻辑。增益调度就是这类算法的一个例子。看到在Simulink中建模增益计划控制系统(仿真软件控制设计)

基于Simulink的撑杆跳运动员状态建模

这个状态流图通过使用基于Simulink的状态来模拟一个人在撑杆跳各个阶段的运动。

第一个阶段是跳马运动员的进场跑,在基于Simulink的状态下建模Run_up.第二阶段,跳马运动员插杆起跳,该过程采用基于Simulink的状态建模Take_off.最后一个阶段发生在跳马运动员越过杆子并释放撑杆时,这是由基于Simulink的状态建模的

美国Run_up而且用笛卡尔坐标更容易建模。国家Take_off用极坐标更容易建模。要从一个坐标系切换到另一个坐标系,可以使用Simulink函数InitTakeOff而且InitFly

模拟撑杆跳运动员的入路

图表中的默认状态PoleVaulterRun_up.这种状态模拟了撑杆跳运动员沿着地面向起跳方向移动的过程。撑杆跳的起跳高度是零下10度x美元-轴,并趋于0。撑杆跳运动员在地面上移动的过程中,撑杆跳运动员在xy平面上的位置不断变化,但跑步的状态保持不变。在这个模型中,积分器块位置而且速度在Simulink函数中是状态读取器的状态所有者块吗InitTakeOff.该子系统输出撑杆跳运动员的笛卡尔坐标。

将笛卡尔坐标转换为极坐标

的过渡Run_upTake_off发生时撑杆跳运动员的位置沿x美元设在,Run_up.p (1),变得大于-4。在过渡期间InitTakeOff初始化后,State Reader块连接到它的所有者块,并执行函数。这个函数将笛卡尔坐标从位置而且速度极坐标,rθrdot,theta_dot.这些坐标作为状态写入器块输出,连接到状态中的所有者块Take_off.仿真软件的功能InitTakeOff包含这个逻辑:

撑杆跳运动员起跳的模型

当撑杆跳运动员的位置沿着x美元设在,Run_up.p (1),会大于基于Simulink的状态-4Take_off变为活动状态。这种状态模拟撑杆跳运动员在起跳阶段的动作。该子系统输出撑杆跳运动员的笛卡尔坐标。

将极坐标转换为笛卡尔坐标

的过渡Take_off撑杆跳运动员的角度,θ,变成小于\π/ 2美元.在过渡期间,InitFly初始化后,State Reader块连接到它的所有者块,并执行函数。这个函数转换极坐标rθrdot,theta_dot笛卡尔坐标,xy_integ而且xydot.这些坐标作为状态写入器块输出,连接到状态中的所有者块.仿真软件的功能InitFly包含这个逻辑:

模拟撑杆跳运动员的自由落体

当撑杆跳运动员的角度,θ,小于\π/ 2美元,基于Simulink的状态变为活动状态。这种状态模拟了撑杆跳高运动员在跳高后的动作,撑杆跳高运动员正在落地。撑杆跳运动员在下落过程中,撑杆跳运动员在x-y平面上的位置不断变化,但下落状态保持不变。在该模型中,积分器块xydot和xy_integ是Simulink函数InitFly中状态写入器块的状态所有者块。该子系统输出撑杆跳运动员的笛卡尔坐标。

Record块显示了这个模拟的结果。

限制

不能使用基于Simulink的状态:

  • 摩尔的图表

  • 离散事件图表

  • 高密度脂蛋白编码器

  • PLC编码器

  • 仿真软件代码检查器

  • 超级一步转换

基于Simulink的状态不支持调试。

相关的话题

Baidu
map