Main Content

以交互方式对模型进行仿真

仿真基础知识

您可以使用工具条中的运行按钮 在 Simulink® 编辑器中仿真模型。运行按钮还出现在 Simulink 编辑器内的工具中。您可以从包含此按钮的任何工具(如 Scope 查看器)中进行仿真。

开始仿真之前,您可以指定各种选项,如仿真开始时间、停止时间以及用来解算模型的求解器。(请参阅求解器选择标准)您可以在“配置参数”对话框中指定这些选项,该对话框可通过点击建模选项卡上的模型设置 打开。这些设置与模型一起保存在配置集中。您可以为每个模型创建多个配置集,并通过在配置集之间切换来查看不同设置的效果。请参阅模型配置集

默认情况下,仿真在 0.0 秒时开始,在 10.0 秒时结束。

注意

在 Simulink 软件中,时间和所有相关参数(如采样时间)都隐式以秒为单位。如果您选择使用不同的时间单位,请相应地缩放参数。

您可以在求解器配置窗格中为当前所选的仿真配置指定其他开始时间和停止时间。有关详细信息,请参阅 求解器窗格

注意

仿真时间和实际的时钟时间并不相同。例如,运行仿真 10 秒通常不等于时钟上测得的 10 秒。运行仿真实际需要的时间取决于多种因素,包括模型的复杂程度、步长和计算机的速度等。

设置模型配置参数后,即可开始仿真。您可以使用工具条控件暂停、继续和停止仿真。您还可以一次仿真多个模型,所以,当一个仿真运行时可以启动另一个仿真。

在仿真过程中,您不能更改模型的结构,例如添加或删除信号线或模块。但是,您可以在仿真运行时进行以下更改:

  • 修改某些配置参数,包括停止时间和最大步长。

  • 修改模块的参数,只要您不会改变以下内容:

    • 状态、输入或输出的数量

    • 采样时间

    • 过零点的数量

    • 任何模块参数的向量长度

    • 内部模块工作向量的长度

    • 任何信号的维度

您还可以在仿真运行时直观地检查模型。例如,您可以在 Floating Scope 或 Display 模块上点击某条信号线,查看该信号线携带的信号。在模型的仿真过程中,您还可以显示端口值。请参阅使用端口值标签查看信号值

运行、暂停和停止仿真

要开始对模型进行仿真,请点击运行按钮 。您可以使用工具条上的相应控制项来暂停、继续或停止仿真。

模型在指定的开始时间开始仿真,一直运行到指定的结束时间为止。当仿真运行时,编辑器底部的信息会显示仿真完成的百分比和当前仿真时间。

  • 如果发生错误,将停止仿真并显示一条消息。如果发生警告状况,将完成仿真。在这两种情况下,都可以点击编辑器底部的诊断链接查看相应的消息,帮助您定位错误。

  • 暂停操作将在执行完当前时间步之后生效。恢复暂停的仿真将在下一个时间步发生。

  • 如果您停止仿真,将完成当前时间步,然后停止仿真。

  • 如果模型输出到文件或工作区,停止或暂停仿真将会写入数据。

使用模块来停止或暂停仿真

使用 Stop Simulation 模块来停止仿真

当模块的输入非零时,您可以使用 Stop Simulation 模块来停止仿真。如果模块的输入为向量,则任何非零的元素都会导致仿真停止。

  1. 为您的模型添加一个 Stop Simulation 模块。

  2. Stop Simulation 模块连接到在指定的停止时间变成非零值的信号。

例如,当仿真时间达到 10 时,下面的模型将停止仿真。

使用 Assertion 模块暂停仿真

当模块的输入信号为零时,您可以使用 Assertion 模块暂停仿真。Assertion 模块使用 set_param 命令暂停仿真。有关使用 set_param 命令控制 Simulink 模型执行的详细信息,请参阅以编程方式运行仿真

  1. 在您的模型中添加一个 Assertion 模块。

  2. Assertion 模块连接到在所需的暂停时间变成零值的信号。

  3. Assertion 模块对话框中,清除断言失败时停止仿真复选框。输入以下命令作为断言失败时的仿真回调的值:

    set_param(bdroot,'SimulationCommand','pause'),
    disp(sprintf('\nSimulation paused.'))

当仿真时间达到 5 时,下面的模型使用具有这些设置的 Assertion 模块暂停仿真。

当仿真暂停时,将显示一条消息,显示模块暂停仿真的时间。

您可以使用继续继续执行仿真,就像对待任何暂停的仿真一样。

另请参阅

模块

函数

相关主题