主要内容

连续时间建模州流程

混合系统使用模态逻辑从一种模式转换到另一种模式,以响应物理事件和条件。在这些系统中,连续时间动力学控制每个模式。这种混合系统的一个简单例子就是弹跳球。球不断地在空中移动,直到它碰到地面,在那一点上模式改变或不连续发生。结果,球突然改变了方向和速度。有关更多信息,请参阅在连续时间内模拟弹跳球

通过配置状态流模拟响应连续和离散模式的混合系统®连续时间建模的图表。在SoundyFlow图表中,您可以简洁地表示模态逻辑,并直观地作为一系列状态,转换或流程图。您还可以将状态信息表示为连续局部变量,具有自动访问时间衍生物。

连续时间仿真仅在Simulink中的状态流图中支持金宝app金宝app®楷模。如果您的连续系统不包含模态逻辑,请考虑使用Simulink模型。金宝app有关更多信息,请参阅模型连续系统

配置A.州流程连续时间仿真的图表

持续更新是一个状态流图属性。

  1. 右键单击图表内并选择特性从上下文菜单中。

  2. 在“图表属性”对话框中,设置更新方法字段连续。选择此选项时:

    • 启用零交叉检测复选框是选中的。

    • 启用超级步骤语义复选框不可用。

  3. (可选)默认情况下,启用过零点检测。要禁用此选项,请清除启用零交叉检测复选框。有关更多信息,请参阅禁用零交叉检测

  4. 点击好的

笔记

您不能使用Moore图表进行连续时间建模。

与之互动金宝app求解器

在次要时间步骤中保持模式

在连续时间仿真过程中,SequendFlow图表仅在主要时间步骤中更新其模式。在次要时间步骤中,图表基于最后一个主要时间步骤期间基于图表的状态计算输出。有关更多信息,请参阅连续采样时间

每次步骤计算连续状态

定义本地连续变量时,extenflam图表提供对其衍生物的编程访问。Simu金宝applink求解器在当前时间步骤中基于这些变量的值及其在前一步步骤中的衍生物来计算图表的连续状态。有关更多信息,请参阅连续与离散求解器

在状态转换中注册零交叉路口

为了确定何时发生状态转换,状态流图与Simulink求解器一起寄存零交叉功能。金宝app当Simu金宝applink检测到模式的变化时,求解器从先前的一个主要时间步骤开始,以检测发生状态转换的发生时。有关更多信息,请参阅零交叉检测

禁用零交叉检测

状态转换的零交叉检测可以在准确性和性能之间提出权衡。在检测过零点时,模拟模拟模拟模式更改,而不会过度减小步长。金宝app用于展出的系统喋喋不休,或两种连续运行模式之间的频繁波动,过零检测可能会潜在地影响模拟时间。抖振需要一个Simulink模型来检查快速连金宝app续的零交叉,这会减慢仿真的速度。在这些情况下,你可以:

  • 禁用零交点检测。

  • 为图表选择不同的零交叉检测算法。

  • 修改Simulink模型中控制零交叉频率的参数。金宝app

您可以选择不同的零交叉检测算法求解器窗格在“模型配置参数”对话框中。有关更多信息,请参阅零交叉检测

连续时间仿真指南

为了保持连续时间模拟结果的完整性和平滑性,将图表约束为状态流图语义的受限子集。通过限制语义,输入不依赖于不可预知的因素,如:

  • Simulink求解器在每个主要时间步骤中使用的次要间隔的数量。金宝app

  • 稳定集成和零交叉算法所需的迭代次数。

通过最小化这些副作用,状态溢图可以在次要时间步骤中维护其状态,并在主要时间步骤期间仅更新其状态。因此,状态流图可以基于恒定状态计算输出以进行连续时间。

连续时间图表必须至少有一个州

在连续时间仿真期间,图表在对应的次要时间步骤中更新其输出期间活动状态的行动。没有状态的图表不会产生输出。要模拟无状态图表在连续时间内的行为,请创建一个调用其图形功能的单个状态期间行动。

更新本地数据入口出口,以及转换操作

为了在连续时间仿真中保持精度,仅在与状态转换对应的主要时间步骤期间更新离散和连续的本地数据。在状态转换期间,只有这些类型的操作发生:

  • 状态出口在过渡开始之前离开国家之前发生的行动。

  • 状态入口在转换结束时进入新状态后发生的操作。

  • 过渡行动,在过渡期间发生。

  • 转换的条件操作,但仅在转换直接到达状态时。例如,此图表执行操作n ++即使是条件C2.C3.是假的。因为没有状态转换,条件操作更新N在一个小时间步骤中并导致错误。

不要在状态下写入本地连续数据期间操作,因为这些操作发生在次要时间步骤中。

计算衍生品期间行动

在次要步骤中,连续时间图仅执行状态期间行动。因为Simuli金宝appnk模型在次要时间步骤期间读取连续时间导数,计算衍生物期间行动提供最新的计算。

不要在状态下读取输出或衍生物期间行动或过渡条件

在次要步骤中,输出和衍生物可能不会反映其最新的值。要提供平滑的输出,从本地离散数据,本地连续数据和图表输入计算值。

不要打电话金宝app在状态下的功能期间行动或过渡条件

在次要时间步骤中,您无法调用Si金宝appmulink函数。相反,仅在主要时间步骤期间发金宝app生的操作中调用Simulink函数:状态入口出口行动和过渡行动。调用simuli金宝appnk函数在状态下期间在模拟期间,动作或转换条件导致错误。有关更多信息,请参阅在状态溢图中金宝app重用Simulink组件

使用离散变量来管理条件期间行动

防止在主要时间步骤之间的模式变化,影响控制流程的条件期间操作取决于离散变量。离散变量不会在主要时间步骤之间更改值。

不要使用输入事件

输入事件的存在使图表表现得像触发的子系统,并且无法在连续时间内模拟。例如,如果图表使用连续更新方法,则此模型会生成错误。

要模拟输入事件的行为,请通过输入信号击球块作为连续时间图的输入。

不要使用内部过渡

当在连续时间仿真期间发生模式改变时,入口目标状态的动作向Simulink模型指示发生了状态转换。金宝app对于内部过渡,图表永远不会执行入口行动。有关更多信息,请参阅内在过渡

限制时间逻辑

不要使用基于事件的时间逻辑,因为在连续时间仿真中,没有勾号的概念。仅使用绝对时间逻辑以进行连续时间仿真。有关更多信息,请参阅使用时间逻辑控制执行图表执行

请勿使用更改检测运算符

要实现更改检测,状态溢缓冲器以影响次要时间步长和下一个主要时间步长的图表之间的行为的方式变量。

不修改工作点值

不支持修改连续时间图的操作点。金宝app如果您加载连续时间图表的操作点,则无法修改状态的活动或本地或输出图表数据的任何值。有关更多信息,请参阅使用图表操作点的规则

相关的话题