主要内容

在动态系统仿真阶段

模型编译

第一阶段的仿真时系统的模型是开放和你模拟模型。在仿真软件金宝app®编辑器中,单击运行。运行仿真使仿真软件引擎调用编译器的模型。金宝app模型编译器将模型转换为可执行形式,这一过程被称为编译。特别是,编译器:

  • 评估模型的参数表达式来确定它们的值。

  • 确定信号的属性,如名称、数据类型、数值类型,和维度,而不是显式地指定的模型和检查每一块可以接受的信号连接到它的输入。

  • 传播信号输入源的属性的块驱动为了计算块以前未指定的属性。

  • 减少执行块优化。

  • 趋于平缓的模型层次结构用的块代替虚拟子系统包含(见解决比较)。

  • 决定了块由基于任务的执行顺序排序。

  • 确定样本乘以模型中的所有块的样品你没有显式地指定(参见传播如何影响遗传样本)。

这些事件发生在本质上是一样的当你更新一个图。所不同的是,仿真软件的软件模型编译的一部分模型仿真开始金宝app,编译直接入链接阶段,所述链接阶段。相比之下,你开始一个显式模型更新作为一个独立的操作模型。

当你编译模型或者模型层次结构,可以编译通过单击取消模型取消按钮旁边的进度条。

链接阶段

在此阶段,所需的仿真软件引擎分配内存工金宝app作区域(信号、状态和运行时参数)为执行的框图。分配和初始化内存数据结构,为每个块存储运行时信息。内置的街区,校长为一块叫做SimBlock运行时数据结构。它存储指向一块的输入和输出缓冲区向量和状态和工作。

方法执行列表

在链接阶段,仿真软件引擎还创建方法执行列表。金宝app这些名单列表最有效的顺序调用一块模型的方法来计算其输出。块执行顺序列表生成模型编译阶段用于构造方法执行列表。

块优先级

您可以将更新优先级分配给街区。更高的优先级块的输出方法执行之前的低优先级。这些优先事项是荣幸只有在与其块执行顺序一致。

模拟循环阶段

链接阶段完成后,模拟进入模拟循环阶段。在这个阶段,仿真软件引擎先后计算系统的金宝app状态和输出间隔从仿真开始时间到结束时间,使用提供的信息模型。连续时间点的状态和输出计算被称为时间步骤。之间的时间步骤称为步长。步长取决于类型的解算器(见解决比较)用于计算系统的连续状态,系统的基本示例(见样品在系统),是否系统的连续状态不连续(见讨论二阶导数过零检测)。

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

的模拟,该模型指定系统的初始状态和输出模拟。在每一步,为系统的输入新值,状态,和输出计算,模型更新,以反映计算值。最后的模拟,该模型反映了系统的最终值的输入,州,和输出。仿真软件金宝app的软件提供数据显示和记录。您可以显示和/或日志中间结果模型中包括这些块。

以下流程图解释仿真循环是如何工作的k表示主要步骤计数器:

循环迭代

在每个时间步,仿真软件引擎:金宝app

  1. 计算模型的输出。

    仿真软件金宝app引擎启动这一步通过调用仿真软件模型输出的方法。模型输出方法反过来调用模型系统输出方法,调用模块的输出方法,指定的模型包含的顺序输出方法执行列表中生成(见链接阶段的模拟解决比较)。

    系统输出方法通过以下参数每一块输出方法:一个指向块的数据结构和其SimBlock结构。SimBlock数据结构的信息,输出方法需要计算块的输出,包括它的输入缓冲区的位置和它的输出缓冲区。

  2. 计算模型的状态。

    仿真软件金宝app引擎通过调用一个求解器计算模型的状态。解决它调用取决于模型没有国家,只有离散状态,只有持续的状态,或连续和离散状态。

    如果模型只有离散状态,仿真软件引擎调用离散解算器由用户选定。金宝app求解计算时间步的大小需要冲击模型的示例。然后它调用模型的更新方法。模型更新方法调用系统的更新方法,调用的每个块的更新方法,系统包含在指定的顺序更新方法列表中生成链接阶段。

    如果模型只有连续状态,仿真软件引擎调用指定的连续求解模型。金宝app根据解算器,解算器要么反过来调用衍生品方法模型的一次或进入子循环小时间步的解算器反复调用模型的输出方法和衍生品的方法计算模型的输出和衍生品在连续的时间间隔内的主要步骤。这样做是为了增加状态计算的准确性。模型输出方法和衍生品的方法反过来调用相应的系统方法,它调用块输出和衍生品的顺序指定的输出和衍生品在链接阶段执行列表生成方法。

  3. 可选检查不连续在连续的块。

    一种叫做零交点的技术检测用于检测连续状态的不连续性。看到讨论二阶导数过零检测为更多的信息。

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

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

相关的话题