在动力系统仿真阶段

模型编译

当系统的模式是开放的,你模拟模型模拟发生的第一阶段。在Simuli万博1manbetxnk®编辑器,单击。运行模拟功能使Simulink的引擎调用模型编译器。万博1manbetx该模型编译器将模型可执行形式,这个过程被称为编译。特别是,编译器:

  • 评估模型块参数表达式来确定其价值。

  • 确定信号的属性,例如,名称,数据类型,数字型,而维数,没有明确的模型,并检查每个块可以接受连接到其输入端的信号指定。

  • 传播的源信号的,它为了计算在块中先前未指定的属性驱动属性的块的输入。

  • 执行块减少优化。

  • 用块替换虚拟子系统,它们含有(见平展模型分级比较求解器)。

  • 确定通过基于任务的排序块执行顺序。

  • 确定所有块的采样时间中,其采样时间,你没有明确指定模型(见如何传播影响继承样品时报)。

这些事件在本质上是一样的,当你更新图发生什么(更新图和运行仿真)。不同的是,该软件的Simulink模型开始编译为模型模万博1manbetx拟,其中在描述编译直接通向链接阶段的一部分,链接阶段。相反,你开始作为一个模型独立操作一个明确的模型更新。

链接阶段

在这个阶段中,Simulink的引擎分万博1manbetx配的存储器所需的工作区域(信号,状态和运行时间参数)为框图的执行。它也分配和初始化存储器的数据结构,对于每个块存储运行时间信息。对于内置块,块中的主要的运行时数据结构被称为SimBlock。它存储指针的块的输入和输出缓冲器和状态和工作向量。

方法执行列表

在链接阶段,Simulink的发动机还创建方法万博1manbetx执行列表。这些清单列出了最有效的顺序调用模型的方法块计算其输出。在模型编译阶段产生的块执行次序列表被用于构建方法执行列表。

块优先级

您可以将更新优先级块。更高优先级块的输出的方法的要低优先级块的之前被执行。如果他们是用其块的执行顺序相一致,这些优先级仅兑现。

仿真循环阶段

一旦链路阶段完成,仿真进入仿真循环阶段。在这个阶段,发动机的Simulink依万博1manbetx次计算状态和系统的输出在从所述仿真开始时间到结束时间的时间间隔,使用由所述模型提供的信息。在该状态,并输出计算的连续的时间点被称为时间步长。的时间步长之间的长度被称为步长。步长依赖于解算器的类型(见比较求解器用于计算系统的连续状态),系统的基本采样时间(见在系统样品时报),和系统的连续状态是否有间断(见过零检测)。

仿真回路相位有两个子阶段:在环路初始化阶段和循环迭代阶段。在初始化阶段发生一次,在循环的开始。迭代阶段重复一次从仿真开始时间到仿真停止时间每次一步。

在模拟开始时,模型指定要模拟的初始状态和该系统的输出。在每一步,对系统的输入,状态和输出新的值被计算,该模型被更新以反映所计算的值。在模拟结束后,该模型反映了系统的输入,状态和输出的最终值。所述的S万博1manbetximulink软件提供数据显示和记录块。您可以显示和/或通过在模型中,这些块记录中间结果。

下面的流程图说明了模拟回路是如何工作的地方ķ表示大步计数器:

循环迭代

在每个时间步,Simulink的发动机:万博1manbetx

  1. 计算模型输出。

    Simu万博1manbetxlink的发动机启动这个步骤通过调用Simulink模型输出方法。反过来模型输出方法调用模型系统输出方法,该方法调用,该模型包含通过在模拟中的链接阶段生成的输出方法执行列表中指定的顺序块的输出的方法(参见比较求解器)。

    系统输出方法将下列参数到每个块输出方法:的指针块的数据结构及其SimBlock结构。所述SimBlock数据结构指向信息,所述输出方法需要计算该块的输出,包括它的输入缓冲器和输出缓冲器的位置。

  2. 计算模型的状态。

    Simu万博1manbetxlink的发动机通过调用求解计算模型的状态。其求解它调用取决于模型是否没有状态,只有离散状态,只有连续状态,或连续和离散状态。

    如果模型仅具有离散状态,所述的Simulink引擎调用由用户选择的离散的解算器。万博1manbetx求解器计算击中模型的样本倍所需要的时间步长的大小。然后调用模型的更新方法。模型更新方法调用它的系统,这将调用每个系统包含在由在链接阶段生成的更新方法列表中指定的顺序块的更新方法的更新方法。

    如果模型只有连续状态,Simulink的引擎调用由模型指定的连续求解。万博1manbetx根据不同的解算器,解算器或者反过来调用模型一次导数方法或进入的,其中解算器重复调用该模型的输出的方法和衍生物的方法来计算该模型的输出和衍生物在内的连续间隔次要时间步骤的子周期主要的时间步长。这样做是为了增加国家计算的准确性。模型输出方法和衍生方法依次调用其对应的系统中的方法,其中调用块输出和衍生物在通过在链接阶段生成的输出和衍生物的方法执行列表中指定的顺序。

  3. 任选地检查在块的连续状态的不连续性。

    一种技术称为零交叉检测被用于检测在连续状态的不连续性。看到过零检测想要查询更多的信息。

  4. 计算下一个时间步长的时间。

步骤1至4重复,直到达到仿真停止时间。

相关话题